tlibString.h - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       tlibString.h (1456B)
       ---
            1 #ifndef _LIBSTRING_H_
            2 #define _LIBSTRING_H_ 1
            3 #if defined(__cplusplus)
            4 extern "C" { 
            5 #endif
            6 
            7 /*
            8 #pragma        src        "/sys/src/libString"
            9 #pragma        lib        "libString.a"
           10 */
           11 AUTOLIB(String)
           12 
           13 /* extensible Strings */
           14 typedef struct String {
           15         Lock        lk;
           16         char        *base;        /* base of String */
           17         char        *end;        /* end of allocated space+1 */
           18         char        *ptr;        /* ptr into String */
           19         short        ref;
           20         uchar        fixed;
           21 } String;
           22 
           23 #define s_clone(s) s_copy((s)->base)
           24 #define s_to_c(s) ((s)->base)
           25 #define s_len(s) ((s)->ptr-(s)->base)
           26 
           27 extern String*        s_append(String*, char*);
           28 extern String*        s_array(char*, int);
           29 extern String*        s_copy(char*);
           30 extern void        s_free(String*);
           31 extern String*        s_incref(String*);        
           32 extern String*        s_memappend(String*, char*, int);
           33 extern String*        s_nappend(String*, char*, int);
           34 extern String*        s_new(void);
           35 extern String*        s_newalloc(int);
           36 extern String*        s_parse(String*, String*);
           37 extern String*        s_reset(String*);
           38 extern String*        s_restart(String*);
           39 extern void        s_terminate(String*);
           40 extern void        s_tolower(String*);
           41 extern void        s_putc(String*, int);
           42 extern String*        s_unique(String*);
           43 extern String*        s_grow(String*, int);
           44 
           45 #ifdef BGETC
           46 extern int        s_read(Biobuf*, String*, int);
           47 extern char        *s_read_line(Biobuf*, String*);
           48 extern char        *s_getline(Biobuf*, String*);
           49 typedef struct Sinstack Sinstack;
           50 extern char        *s_rdinstack(Sinstack*, String*);
           51 extern Sinstack        *s_allocinstack(char*);
           52 extern void        s_freeinstack(Sinstack*);
           53 #endif /* BGETC */
           54 #if defined(__cplusplus)
           55 }
           56 #endif
           57 #endif