|
|
1.1 root 1: /*
2: * Copyright (c) 1983 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that the above copyright notice and this paragraph are
7: * duplicated in all such forms and that any documentation,
8: * advertising materials, and other materials related to such
9: * distribution and use acknowledge that the software was developed
10: * by the University of California, Berkeley. The name of the
11: * University may not be used to endorse or promote products derived
12: * from this software without specific prior written permission.
13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16: *
17: * @(#)string.h 3.7 (Berkeley) 6/29/88
18: */
19:
20: #define STR_DEBUG
21:
22: char *str_cpy();
23: char *str_ncpy();
24: char *str_cat();
25: char *str_itoa();
26:
27: #define str_cmp(a, b) strcmp(a, b)
28:
29: #ifdef STR_DEBUG
30: struct string {
31: struct string *s_forw;
32: struct string *s_back;
33: char s_data[1];
34: };
35:
36: struct string str_head;
37:
38: #define str_offset ((unsigned)str_head.s_data - (unsigned)&str_head)
39: #define str_stos(s) ((struct string *)((unsigned)(s) - str_offset))
40:
41: char *str_alloc();
42: int str_free();
43: #else
44: #define str_free(s) free(s)
45: #define str_alloc(s) malloc(s)
46: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.