11 * num_parms() - discover number of parameters...
13 int num_parms(char *source)
18 for (a=0; a<strlen(source); ++a)
19 if (source[a]=='|') ++count;
25 * extract() - extract a parameter from a series of "|" separated...
27 void extract(char *dest, char *source, int parmnum)
33 n = num_parms(source);
40 if ( (parmnum == 0) && (n == 1) ) {
45 while (count++ < parmnum) do {
47 } while( (strlen(buf)>0) && (buf[0]!='|') );
48 if (buf[0]=='|') strcpy(buf,&buf[1]);
49 for (count = 0; count<strlen(buf); ++count)
50 if (buf[count] == '|') buf[count] = 0;
55 * extract_int() - extract an int parm w/o supplying a buffer
57 int extract_int(char *source, int parmnum)
61 extract(buf,source,parmnum);
67 * extract_long() - extract an long parm w/o supplying a buffer
69 long extract_long(char *source, int parmnum)
73 extract(buf,source,parmnum);
92 printf("%s\n",&buf[4]);
95 printf(" User Name Num L LastCall Calls Posts\n");
96 printf("------------------------- ----- - ---------- ----- -----\n");
97 while (serv_gets(buf), strcmp(buf,"000")) {
100 printf("%5ld %d ",extract_long(buf,2),
102 lc = extract_long(buf,3);
103 tmbuf = (struct tm *)localtime(&lc);
104 printf("%02d/%02d/%04d ",
107 (tmbuf->tm_year + 1900));
108 printf("%5ld %5ld\n",
109 extract_long(buf,4),extract_long(buf,5));
115 int main(int argc, char **argv)
119 attach_to_server(argc,argv);
121 if ((buf[0]!='2')&&(strncmp(buf,"551",3))) {
122 fprintf(stderr,"%s: %s\n",argv[0],&buf[4]);
134 #ifndef HAVE_STRERROR
136 * replacement strerror() for systems that don't have it
138 char *strerror(int e)
142 sprintf(buf,"errno = %d",e);