tsbuf: extend the buffer more eagerly - neatvi - [fork] simple vi-type editor with UTF-8 support
 (HTM) git clone git://src.adamsgaard.dk/neatvi
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit d45220ca72fc434031d68ec33a553de6ebf0262e
 (DIR) parent 5266f5c8be4e977eaac06ea4a978d13c9b378d28
 (HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
       Date:   Thu, 11 Jun 2015 15:41:18 +0430
       
       sbuf: extend the buffer more eagerly
       
       Diffstat:
         M sbuf.c                              |       5 +++--
       
       1 file changed, 3 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/sbuf.c b/sbuf.c
       t@@ -7,6 +7,7 @@
        
        #define SBUFSZ                128
        #define ALIGN(n, a)        (((n) + (a) - 1) & ~((a) - 1))
       +#define NEXTSZ(o, r)        ALIGN(MAX((o) * 2, (o) + (r)), SBUFSZ)
        
        struct sbuf {
                char *s;                /* allocated buffer */
       t@@ -55,14 +56,14 @@ void sbuf_free(struct sbuf *sb)
        void sbuf_chr(struct sbuf *sbuf, int c)
        {
                if (sbuf->s_n + 2 >= sbuf->s_sz)
       -                sbuf_extend(sbuf, sbuf->s_sz + SBUFSZ);
       +                sbuf_extend(sbuf, NEXTSZ(sbuf->s_sz, 1));
                sbuf->s[sbuf->s_n++] = c;
        }
        
        void sbuf_mem(struct sbuf *sbuf, char *s, int len)
        {
                if (sbuf->s_n + len + 1 >= sbuf->s_sz)
       -                sbuf_extend(sbuf, ALIGN(sbuf->s_n + len + 1, SBUFSZ));
       +                sbuf_extend(sbuf, NEXTSZ(sbuf->s_sz, len + 1));
                memcpy(sbuf->s + sbuf->s_n, s, len);
                sbuf->s_n += len;
        }