6 * Copyright (C) 1987 by the Massachusetts Institute of Technology
7 * For copying and distribution information, please see the file
10 * Miscellaneous string functions.
14 static char *rcsid_strs_c = "$Header$";
17 #include <mit-copyright.h>
18 #include <sys/types.h>
22 extern char *malloc(), *realloc();
25 * Random string functions which should be in the C library..
29 * Make a copy of a string.
37 /* Kludge for sloppy string semantics */
39 printf("NULL != \"\" !!!!\r\n");
45 p = malloc((u_int)len);
46 if (p) bcopy(s, p, len);
50 * Trim whitespace off both ends of a string.
58 while (isspace(*s)) s++;
59 /* skip to end of string */
65 for (t = s; *t; t++) continue;
78 /* Modify a string for all of the letters to be uppercase. */
104 #ifdef NEED_STRCASECMP
106 /* Case independant string comparison. Only compile this if your C
107 * library doesn't have a local routine which is faster.
110 static char map[] = {
111 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
112 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
113 ' ', '!', '"', '#', '$', '%', '&', '\'',
114 '(', ')', '*', '+', ',', '-', '.', '/',
115 '0', '1', '2', '3', '4', '5', '6', '7',
116 '8', '9', ':', ';', '<', '=', '>', '?',
117 '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
118 'h', 'i', 'k', 'j', 'l', 'm', 'n', 'o',
119 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
120 'x', 'y', 'z', '[', '\\', ']', '^', '_',
121 '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
122 'h', 'i', 'k', 'j', 'l', 'm', 'n', 'o',
123 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
124 'x', 'y', 'z', '{', '|', '}', '~', 127,
125 128, 129, 130, 131, 132, 133, 134, 135,
126 136, 137, 138, 139, 140, 141, 142, 143,
127 144, 145, 146, 147, 148, 149, 150, 151,
128 152, 153, 154, 155, 156, 157, 158, 159,
129 160, 161, 162, 163, 164, 165, 166, 167,
130 168, 169, 170, 171, 172, 173, 174, 175,
131 176, 177, 178, 179, 180, 181, 182, 183,
132 184, 185, 186, 187, 188, 189, 190, 191,
133 192, 193, 194, 195, 196, 197, 198, 199,
134 200, 201, 202, 203, 204, 205, 206, 207,
135 208, 209, 210, 211, 212, 213, 214, 215,
136 216, 217, 218, 219, 220, 221, 222, 223,
137 224, 225, 226, 227, 228, 229, 230, 231,
138 232, 233, 234, 235, 236, 237, 238, 239,
139 240, 241, 242, 243, 244, 245, 246, 247,
140 248, 249, 250, 251, 252, 253, 254, 255
144 int strcasecmp(s1, s2)
148 while (map[*s1] == map[*s2]) {
154 return(map[*s1] - map[*s2]);
157 #endif /* NEED_STRCASECMP */