1 /* $Id: tools.c,v 1.17 2005/10/06 13:08:28 sys-op Exp $
2 * -------------------------------------------------------
3 * Copyright (c) 1998-2002 Sebastian Kienzl <zap@riot.org>
4 * (c) 2002 Lee Hardy <lee@leeh.co.uk>
5 * -------------------------------------------------------
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 */
16
17 #include "muh.h"
18 #include "tools.h"
19
upcase(char * what)20 void upcase( char *what )
21 {
22 char *doit;
23 if( what ) for( doit = what; doit && *doit; doit++ ) *doit = toupper( *doit );
24 }
25
randname(char * randchar,int length)26 void randname( char *randchar, int length )
27 {
28 int i;
29 if(randchar)
30 {
31 for( i = 0; i < length; i++ ) randchar[ i ] = ( char )( 'A' + ( rand() % 56 ) );
32 randchar[ length ] = 0;
33 }
34 }
35
pos(char * str,char what)36 int pos( char *str, char what )
37 {
38 int i = 0;
39 if( str ) {
40 while( str[ i ] ) {
41 if( str[ i ] == what ) return i;
42 i++;
43 }
44 }
45 return -1;
46 }
47
lastpos(char * str,char what)48 int lastpos( char *str, char what )
49 {
50 int i;
51 if( str ) {
52 i = strlen( str ) - 1;
53 while( i ) {
54 if( str[ i ] == what ) return i;
55 i--;
56 }
57 }
58 return -1;
59 }
60
nextword(char * string)61 char *nextword( char *string )
62 {
63 int i;
64 if( ( i = pos( string, ' ' ) ) < 0 )
65 return NULL;
66 else
67 return ( string + i + 1 );
68 }
69
70
lastword(char * from)71 char *lastword( char *from )
72 {
73 int i;
74 if( ( i = lastpos( from, ' ' ) ) < 0 )
75 return from;
76 else return from + i + 1;
77 }
78
79 /* gettimestamp()
80 *
81 * Creates a timestamp in the form:
82 * [Sun 21 Mar 11:23:12]
83 */
gettimestamp()84 char *gettimestamp()
85 {
86 time_t t;
87 struct tm *lt;
88 static char stamp[ 100 ];
89
90 time( &t );
91 lt = localtime( &t );
92 strftime( stamp, 99, "[%a %d %b %H:%M:%S]", lt );
93 return stamp;
94 }
95
96 /* gettimestamp2()
97 *
98 * Creates a timestamp in the form:
99 * [11:23]
100 */
gettimestamp2()101 char *gettimestamp2()
102 {
103 time_t now;
104 struct tm *form;
105 static char stamp[8];
106
107 time(&now);
108 form = localtime(&now);
109 strftime(stamp, 8, "[%H:%M]", form);
110 return stamp;
111 }
112
getuptime(time_t now,int * days,int * hours,int * minutes,int * seconds)113 void getuptime(time_t now, int *days, int *hours,
114 int *minutes, int *seconds)
115 {
116 *days = now / 86400;
117 now %= 86400;
118 *hours = now / 3600;
119 now %= 3600;
120 *minutes = now / 60;
121 *seconds = now % 60;
122 }
123
report(char * format,...)124 void report( char *format, ... )
125 {
126 char buffer[ 150 ];
127 va_list va;
128
129 va_start( va, format );
130 vsnprintf( buffer, 149, format, va );
131 va_end( va );
132 fprintf( stdout, "%s + %s", gettimestamp(), buffer );
133 }
134
error(char * format,...)135 void error( char *format, ... )
136 {
137 char buffer[ 150 ];
138 va_list va;
139
140 va_start( va, format );
141 vsnprintf( buffer, 149, format, va );
142 va_end( va );
143 fprintf( stdout, "%s - %s", gettimestamp(), buffer );
144 }
145
146