Commit | Line | Data |
---|---|---|
8d063cd8 LW |
1 | /* $Header: str.h,v 1.0 87/12/18 13:06:26 root Exp $ |
2 | * | |
3 | * $Log: str.h,v $ | |
4 | * Revision 1.0 87/12/18 13:06:26 root | |
5 | * Initial revision | |
6 | * | |
7 | */ | |
8 | ||
9 | struct string { | |
10 | char * str_ptr; /* pointer to malloced string */ | |
11 | double str_nval; /* numeric value, if any */ | |
12 | int str_len; /* allocated size */ | |
13 | int str_cur; /* length of str_ptr as a C string */ | |
14 | union { | |
15 | STR *str_next; /* while free, link to next free str */ | |
16 | STAB *str_magic; /* while in use, ptr to magic stab, if any */ | |
17 | } str_link; | |
18 | char str_pok; /* state of str_ptr */ | |
19 | char str_nok; /* state of str_nval */ | |
20 | }; | |
21 | ||
22 | #define Nullstr Null(STR*) | |
23 | ||
24 | /* the following macro updates any magic values this str is associated with */ | |
25 | ||
26 | #define STABSET(x) (x->str_link.str_magic && stabset(x->str_link.str_magic,x)) | |
27 | ||
28 | EXT STR **tmps_list; | |
29 | EXT long tmps_max INIT(-1); | |
30 | ||
31 | char *str_2ptr(); | |
32 | double str_2num(); | |
33 | STR *str_static(); | |
34 | STR *str_make(); | |
35 | STR *str_nmake(); |