19fc502cfSedward /* 2*9ae781f3Sbostic * Copyright (c) 1983, 1993 3*9ae781f3Sbostic * The Regents of the University of California. All rights reserved. 4bac0d407Sbostic * 58e751acfSbostic * This code is derived from software contributed to Berkeley by 68e751acfSbostic * Edward Wang at The University of California, Berkeley. 78e751acfSbostic * 8122a1d9eSbostic * %sccs.include.redist.c% 9bac0d407Sbostic * 10*9ae781f3Sbostic * @(#)string.h 8.1 (Berkeley) 06/06/93 11ed4d29f6Sedward */ 12ed4d29f6Sedward 136f63c66bSedward #define STR_DEBUG 149fc502cfSedward 159fc502cfSedward char *str_cpy(); 1656f346fbSedward char *str_ncpy(); 179fc502cfSedward char *str_cat(); 189fc502cfSedward char *str_itoa(); 199fc502cfSedward 209fc502cfSedward #define str_cmp(a, b) strcmp(a, b) 216f63c66bSedward 226f63c66bSedward #ifdef STR_DEBUG 236f63c66bSedward struct string { 246f63c66bSedward struct string *s_forw; 256f63c66bSedward struct string *s_back; 266f63c66bSedward char s_data[1]; 276f63c66bSedward }; 286f63c66bSedward 296f63c66bSedward struct string str_head; 306f63c66bSedward 316f63c66bSedward #define str_offset ((unsigned)str_head.s_data - (unsigned)&str_head) 326f63c66bSedward #define str_stos(s) ((struct string *)((unsigned)(s) - str_offset)) 336f63c66bSedward 346f63c66bSedward char *str_alloc(); 356f63c66bSedward int str_free(); 366f63c66bSedward #else 376f63c66bSedward #define str_free(s) free(s) 386f63c66bSedward #define str_alloc(s) malloc(s) 396f63c66bSedward #endif 40