shuffled lines - iomenu - interactive terminal-based selection menu
 (HTM) git clone git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit bc428475d5d8e678f99f9006aab8bc1d656c61b6
 (DIR) parent fa78594463743c4e84f2ad6dbcf599326f170539
 (HTM) Author: Josuah Demangeonā  ā µ <mail@josuah.net>
       Date:   Sun,  2 Apr 2017 18:25:46 +0200
       
       shuffled lines
       
       Diffstat:
         M utf.c                               |      56 ++++++++++++++++----------------
         M utf.h                               |       2 +-
       
       2 files changed, 29 insertions(+), 29 deletions(-)
       ---
 (DIR) diff --git a/utf.c b/utf.c
       @@ -157,34 +157,6 @@ runetoutf(char *s, long r)
        
        
        /*
       - * Read a newly allocated string from `f` up to the first '\n'
       - * character or the end of the fifle.  It is stored as a rune array,
       - * and `r` is set to point to it.
       - */
       -int
       -getutf(long **r, FILE *f)
       -{
       -        int slen, rlen = 0, c, size = BUFSIZ;
       -        char *s;
       -
       -        if (!(s = malloc(size))) return -1;
       -        for (slen = 0; (c = fgetc(f)) != EOF && (c != '\n'); slen++) {
       -                s[slen] = c;
       -
       -                if (slen >= size)
       -                        if (!(s = realloc(s, ++size))) return -1;
       -        }
       -
       -        if (!(*r = malloc(size * sizeof (long)))) return -1;
       -        for (int i = 0; i < slen; rlen++)
       -                i += utftorune(*r + rlen, s + i, slen - i);
       -
       -        free(s);
       -        return rlen;
       -}
       -
       -
       -/*
         * Returns 1 if the rune is a printable character and 0 if not.
         */
        int
       @@ -243,6 +215,34 @@ runetoprint(char *s, long r, int col)
        }
        
        
       +/*
       + * Read a newly allocated string from `f` up to the first '\n'
       + * character or the end of the file.  It is stored as a rune array, and
       + * `r` is set to point to it.  The length of the string is returned, or
       + * -1 if malloc fails.
       + */
       +int
       +getutf(long **r, FILE *f)
       +{
       +        int slen, rlen = 0, c, size = BUFSIZ;
       +        char *s;
       +
       +        if (!(s = malloc(size))) return -1;
       +        for (slen = 0; (c = fgetc(f)) != EOF && (c != '\n'); slen++) {
       +                if (slen > size)
       +                        if (!(s = realloc(s, ++size))) return -1;
       +                s[slen] = c;
       +        }
       +
       +        if (!(*r = malloc(size * sizeof (long)))) return -1;
       +        for (int i = 0; i < slen; rlen++)
       +                i += utftorune(*r + rlen, s + i, slen - i);
       +
       +        free(s);
       +        return rlen;
       +}
       +
       +
        int
        main()
        {
 (DIR) diff --git a/utf.h b/utf.h
       @@ -10,5 +10,5 @@ int runetoutf(char *, long);
        int isprintrune(long);
        
        /* stdin / stdout */
       -int getutf(long **, FILE *);
        int runetoprint(char *, long, int);
       +int getutf(long **, FILE *);