12 * num_parms() - discover number of parameters...
14 int num_parms(char *source)
19 for (a=0; a<strlen(source); ++a)
20 if (source[a]=='|') ++count;
26 * extract() - extract a parameter from a series of "|" separated...
28 void extract(char *dest, char *source, int parmnum)
34 n = num_parms(source);
41 if ( (parmnum == 0) && (n == 1) ) {
46 while (count++ < parmnum) do {
48 } while( (strlen(buf)>0) && (buf[0]!='|') );
49 if (buf[0]=='|') strcpy(buf,&buf[1]);
50 for (count = 0; count<strlen(buf); ++count)
51 if (buf[count] == '|') buf[count] = 0;
56 * extract_int() - extract an int parm w/o supplying a buffer
58 int extract_int(char *source, int parmnum)
62 extract(buf,source,parmnum);
68 * extract_long() - extract an long parm w/o supplying a buffer
70 long extract_long(char *source, int parmnum)
74 extract(buf,source,parmnum);
93 printf("%s\n",&buf[4]);
96 printf(" User Name Num L LastCall Calls Posts\n");
97 printf("------------------------- ----- - ---------- ----- -----\n");
98 while (serv_gets(buf), strcmp(buf,"000")) {
101 printf("%5ld %d ",extract_long(buf,2),
103 lc = extract_long(buf,3);
104 tmbuf = (struct tm *)localtime(&lc);
105 printf("%02d/%02d/%04d ",
108 (tmbuf->tm_year + 1900));
109 printf("%5ld %5ld\n",
110 extract_long(buf,4),extract_long(buf,5));
116 int main(int argc, char **argv)
120 attach_to_server(argc,argv);
122 if ((buf[0]!='2')&&(strncmp(buf,"551",3))) {
123 fprintf(stderr,"%s: %s\n",argv[0],&buf[4]);
135 #ifndef HAVE_STRERROR
137 * replacement strerror() for systems that don't have it
139 char *strerror(int e)
143 sprintf(buf,"errno = %d",e);