Commit | Line | Data |
8d063cd8 |
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(); |