fix crash with memmove and cols == 0 - sob - simple output bar
 (HTM) git clone git://git.codemadness.org/sob
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit c02257b852543ca38d39f9c2ae1654adecb398fb
 (DIR) parent 12656a030acf296f0b6299175f982a6eae630646
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Thu,  2 Oct 2014 21:32:13 +0000
       
       fix crash with memmove and cols == 0
       
       Diffstat:
         M sob.c                               |      10 ++++++----
       
       1 file changed, 6 insertions(+), 4 deletions(-)
       ---
 (DIR) diff --git a/sob.c b/sob.c
       @@ -87,7 +87,8 @@ line_inserttext(const char *s)
                        memmove(&line.line[line.pos], s, len);
                } else {
                        /* insert */
       -                memmove(&line.line[line.pos + len], &line.line[line.pos], line.len - line.pos);
       +                memmove(&line.line[line.pos + len], &line.line[line.pos],
       +                        line.len - line.pos);
                        memcpy(&line.line[line.pos], s, len);
                }
                line.len += len;
       @@ -162,7 +163,7 @@ line_cursor_move(size_t newpos)
                x += len;
        
                /* linewrap */
       -        if(x > cols - 1) {
       +        if(cols > 0 && x > cols - 1) {
                        x = x % cols;
                        y = ((newpos + len) - x) / cols;
                }
       @@ -239,7 +240,7 @@ line_delcharnext(void)
                        return;
        
                memmove(&line.line[line.pos], &line.line[line.pos + 1],
       -                line.line[line.len - line.pos - 1]);
       +                line.len - line.pos - 1);
                line.len--;
                line.line[line.len] = '\0';
                line_draw();
       @@ -250,8 +251,9 @@ line_delcharback(void)
        {
                if(line.pos <= 0 || line.len <= 0)
                        return;
       +
                memmove(&line.line[line.pos - 1], &line.line[line.pos],
       -                line.line[line.len - line.pos]);
       +                line.len - line.pos);
                line.len--;
                line.line[line.len] = '\0';
                line_cursor_prev();