sbase-box: Reduce bss size using dynamic memory - sbase - suckless unix tools
 (HTM) git clone git://git.suckless.org/sbase
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 7ff51bffd1c7fa34429b6c063fac1d4f7db85d9d
 (DIR) parent 13db2e48d4b7899c04d7fdbc88cab29397b3f44b
 (HTM) Author: Roberto E. Vargas Caballero <k0ga@shike2.net>
       Date:   Mon,  8 Dec 2025 18:13:14 +0100
       
       sbase-box: Reduce bss size using dynamic memory
       
       There are several big buffers that consume a lot of bss
       memory even when the applications are not used. This patch
       removes several of them using dynamic memory instead.
       
       Diffstat:
         M ls.c                                |       4 +++-
         M xargs.c                             |       3 ++-
       
       2 files changed, 5 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/ls.c b/ls.c
       @@ -33,7 +33,7 @@ struct entry {
        static struct {
                dev_t dev;
                ino_t ino;
       -} tree[PATH_MAX];
       +} *tree;
        
        static int ret   = 0;
        static int Aflag = 0;
       @@ -371,6 +371,8 @@ main(int argc, char *argv[])
                struct entry ent, *dents, *fents;
                size_t i, ds, fs;
        
       +        tree = ereallocarray(NULL, PATH_MAX, sizeof(*tree));
       +
                ARGBEGIN {
                case '1':
                        /* force output to 1 entry per line */
 (DIR) diff --git a/xargs.c b/xargs.c
       @@ -29,7 +29,7 @@ static size_t curprocs, maxprocs = 1;
        static int    nerrors;
        static int    nulflag, nflag, pflag, rflag, tflag, xflag, Iflag;
        static char  *argb;
       -static char  *cmd[NARGS];
       +static char  **cmd;
        static char  *eofstr;
        
        static int
       @@ -259,6 +259,7 @@ main(int argc, char *argv[])
                        argmaxsz = _POSIX_ARG_MAX;
                /* Leave some room for environment variables */
                argmaxsz -= 4096;
       +        cmd = emalloc(NARGS * sizeof(*cmd));
        
                ARGBEGIN {
                case '0':