grep: Minor stylistic changes - sbase - suckless unix tools
 (HTM) git clone git://git.suckless.org/sbase
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 931eb042009af6d402a9a80f3d03e37f5dfa6749
 (DIR) parent 1c444555b8c9530a15ea84cd94e4b8de4d8e6019
 (HTM) Author: Santtu Lakkala <inz@inz.fi>
       Date:   Fri,  7 Nov 2025 12:22:02 +0200
       
       grep: Minor stylistic changes
       
       Use a flexible array member for pattern string to simplify addpattern()
       
       Remove two redundant length checks; both already checked in loop
       conditional.
       
       Diffstat:
         M grep.c                              |      19 ++++++++-----------
       
       1 file changed, 8 insertions(+), 11 deletions(-)
       ---
 (DIR) diff --git a/grep.c b/grep.c
       @@ -29,9 +29,9 @@ static int many;
        static int mode;
        
        struct pattern {
       -        char *pattern;
                regex_t preg;
                SLIST_ENTRY(pattern) entry;
       +        char pattern[];
        };
        
        static SLIST_HEAD(phead, pattern) phead;
       @@ -40,26 +40,23 @@ static void
        addpattern(const char *pattern)
        {
                struct pattern *pnode;
       -        char *tmp;
                size_t patlen;
        
                patlen = strlen(pattern);
        
       +        pnode = enmalloc(Error, sizeof(*pnode) + patlen + 9);
       +        SLIST_INSERT_HEAD(&phead, pnode, entry);
       +
                if (Fflag || (!xflag && !wflag)) {
       -                tmp = enstrdup(Error, pattern);
       +                memcpy(pnode->pattern, pattern, patlen + 1);
                } else {
       -                tmp = enmalloc(Error, patlen + 9);
       -                sprintf(tmp, "%s%s%s%s%s",
       +                sprintf(pnode->pattern, "%s%s%s%s%s",
                                xflag ? "^" : "\\<",
                                Eflag ? "(" : "\\(",
                                pattern,
                                Eflag ? ")" : "\\)",
                                xflag ? "$" : "\\>");
                }
       -
       -        pnode = enmalloc(Error, sizeof(*pnode));
       -        pnode->pattern = tmp;
       -        SLIST_INSERT_HEAD(&phead, pnode, entry);
        }
        
        static void
       @@ -70,7 +67,7 @@ addpatternfile(FILE *fp)
                ssize_t len = 0;
        
                while ((len = getline(&buf, &size, fp)) > 0) {
       -                if (len > 0 && buf[len - 1] == '\n')
       +                if (buf[len - 1] == '\n')
                                buf[len - 1] = '\0';
                        addpattern(buf);
                }
       @@ -90,7 +87,7 @@ grep(FILE *fp, const char *str)
        
                for (n = 1; (len = getline(&buf, &size, fp)) > 0; n++) {
                        /* Remove the trailing newline if one is present. */
       -                if (len && buf[len - 1] == '\n')
       +                if (buf[len - 1] == '\n')
                                buf[len - 1] = '\0';
                        match = 0;
                        SLIST_FOREACH(pnode, &phead, entry) {