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