2 * tools.c -- Miscellaneous routines
13 #include <sys/types.h>
15 #include <sys/socket.h>
18 #include <netinet/in.h>
31 char *safestrncpy(char *dest, const char *src, size_t n)
33 if (dest == NULL || src == NULL) {
34 fprintf(stderr, "safestrncpy: NULL argument\n");
37 strncpy(dest, src, n);
44 * num_parms() - discover number of parameters...
46 int num_parms(char *source)
51 for (a = 0; a < strlen(source); ++a)
58 * extract() - extract a parameter from a series of "|" separated...
60 void extract(char *dest, char *source, int parmnum)
66 if (strlen(source) == 0) {
70 n = num_parms(source);
77 if ((parmnum == 0) && (n == 1)) {
79 for (n = 0; n < strlen(dest); ++n)
84 while (count++ < parmnum)
87 } while ((strlen(buf) > 0) && (buf[0] != '|'));
90 for (count = 0; count < strlen(buf); ++count)
91 if (buf[count] == '|')
97 * extract_int() - extract an int parm w/o supplying a buffer
99 int extract_int(char *source, int parmnum)
103 extract(buf, source, parmnum);
108 * extract_long() - extract an long parm w/o supplying a buffer
110 long extract_long(char *source, long int parmnum)
114 extract(buf, source, parmnum);
120 * check for the presence of a character within a string (returns count)
128 for (a = 0; a < strlen(st); ++a)