Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=yaxmenu.git;a=commitdiff;h=4d7d78267f82583cfc7ac782289c60a877b30911
commit 4d7d78267f82583cfc7ac782289c60a877b30911 Author: James Buren <r...@frugalware.org> Date: Thu Dec 3 13:47:00 2009 -0600 autostring.h * rewrite to use non-inline functions diff --git a/src/autostring.h b/src/autostring.h index bf8db23..02bd6f4 100644 --- a/src/autostring.h +++ b/src/autostring.h @@ -1,55 +1,13 @@ #ifndef _autostring_header_ #define _autostring_header_ #include "includes.h" -#include "utility.h" -#define AS_INITIAL_LENGTH 64U +typedef struct _as as_t; -typedef struct { - char *str; - size_t cl; - size_t ml; -} as_t; - -static inline void as_init(as_t *as) { - assert(as); - - as->str = xnew(char,as->ml = AS_INITIAL_LENGTH); - - as->cl = 0; -} - -static inline void as_putc(as_t *as,char ch) { - assert(as); - - if(as->cl == as->ml) - as->str = xrenew(as->str,char,as->ml *= 2); - - as->str[as->cl++] = ch; -} - -static inline void as_puts(as_t *as,const char *str) { - assert(as && str); - - while(*str) - as_putc(as,*str++); -} - -static inline void as_reset(as_t *as) { - assert(as); - - as->cl = 0; -} - -static inline void as_compact(as_t *as) { - assert(as); - - as->str = xrenew(as->str,char,as->ml = as->cl); -} - -static inline void as_free(as_t *as) { - assert(as); - - free(as->str); -} +as_t *as_new(void); +void as_puts(as_t *,size_t,...); +void as_reset(as_t *); +void as_compact(as_t *); +char *as_gets(as_t *); +void as_free(as_t *,bool); #endif _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git