2 * tools.c -- Miscellaneous routines
10 char *safestrncpy(char *dest, const char *src, size_t n)
12 if (dest == NULL || src == NULL)
14 fprintf(stderr, "safestrncpy: NULL argument\n");
17 strncpy(dest, src, n);
24 * num_parms() - discover number of parameters...
26 int num_parms(char *source)
31 for (a=0; a<strlen(source); ++a)
32 if (source[a]=='|') ++count;
37 * extract() - extract a parameter from a series of "|" separated...
39 void extract(char *dest, char *source, int parmnum)
45 if (strlen(source)==0) {
50 n = num_parms(source);
57 if ( (parmnum == 0) && (n == 1) ) {
59 for (n=0; n<strlen(dest); ++n)
60 if (dest[n]=='|') dest[n] = 0;
64 while (count++ < parmnum) do {
66 } while( (strlen(buf)>0) && (buf[0]!='|') );
67 if (buf[0]=='|') strcpy(buf,&buf[1]);
68 for (count = 0; count<strlen(buf); ++count)
69 if (buf[count] == '|') buf[count] = 0;
74 * extract_int() - extract an int parm w/o supplying a buffer
76 int extract_int(char *source, int parmnum)
80 extract(buf,source,parmnum);
85 * extract_long() - extract an long parm w/o supplying a buffer
87 long extract_long(char *source, long int parmnum)
91 extract(buf,source,parmnum);
97 * check for the presence of a character within a string (returns count)
104 for (a=0; a<strlen(st); ++a) if (st[a]==ch) ++b;