common BUFSIZ BSS buffer, small reduce code, data and bss
author"Vladimir N. Oleynik" <dzo@simtreas.ru>
Sat, 15 Oct 2005 10:23:55 +0000 (10:23 -0000)
committer"Vladimir N. Oleynik" <dzo@simtreas.ru>
Sat, 15 Oct 2005 10:23:55 +0000 (10:23 -0000)
coreutils/dos2unix.c
coreutils/tee.c
coreutils/tr.c
editors/vi.c
include/libbb.h
libbb/Makefile.in
libbb/messages.c
loginutils/getty.c
loginutils/sulogin.c
networking/nc.c
shell/ash.c

index 0c419aca79a30d6051fe6a6defcf54345e9756d1..0464df76f5395cec4a86b3bd68942206b47d7233 100644 (file)
  * to pick a random letter to add to out temporary file. */
 typedef unsigned long int bb_uint64_t;
 
+#define tempFn bb_common_bufsiz1
+
 /* if fn is NULL then input is stdin and output is stdout */
 static int convert(char *fn, int ConvType)
 {
        int c, fd;
        struct timeval tv;
-       RESERVE_CONFIG_BUFFER(tempFn, BUFSIZ);
        static bb_uint64_t value=0;
        FILE *in, *out;
 
index ba2e10f90d166965f2a869b2750d6b024ae36eae..1160fc9dd51a39a8ea2390e3afd91160954b32a6 100644 (file)
@@ -39,7 +39,7 @@ int tee_main(int argc, char **argv)
        int retval = EXIT_SUCCESS;
 #ifdef CONFIG_FEATURE_TEE_USE_BLOCK_IO
        ssize_t c;
-       RESERVE_CONFIG_BUFFER(buf, BUFSIZ);
+# define buf bb_common_bufsiz1
 #else
        int c;
 #endif
@@ -88,10 +88,6 @@ int tee_main(int argc, char **argv)
                retval = EXIT_FAILURE;
        }
 
-#ifdef CONFIG_FEATURE_CLEAN_UP
-       RELEASE_CONFIG_BUFFER(buf);
-#endif
-
 #else
        setvbuf(stdout, NULL, _IONBF, 0);
        while ((c = getchar()) != EOF) {
index 6e3f97b36d9f42c741b54f091ec1bfcb17723eb0..e9eca4c60e11033423aab19e9939e2b2a8c66561 100644 (file)
 static char com_fl, del_fl, sq_fl;
 static short in_index, out_index;
 /* these last are pointers to static buffers declared in tr_main */
-static unsigned char *poutput, *pinput;
+static unsigned char *poutput;
 static unsigned char *pvector;
 static char *pinvec, *poutvec;
 
+#define input bb_common_bufsiz1
 
 static void convert(void)
 {
@@ -51,14 +52,14 @@ static void convert(void)
 
        for (;;) {
                if (in_index == read_chars) {
-                       if ((read_chars = read(0, (char *) pinput, BUFSIZ)) <= 0) {
+                       if ((read_chars = read(0, input, BUFSIZ)) <= 0) {
                                if (write(1, (char *) poutput, out_index) != out_index)
                                        bb_error_msg(bb_msg_write_error);
                                exit(0);
                        }
                        in_index = 0;
                }
-               c = pinput[in_index++];
+               c = input[in_index++];
                coded = pvector[c];
                if (del_fl && pinvec[c])
                        continue;
@@ -208,14 +209,12 @@ extern int tr_main(int argc, char **argv)
        int idx = 1;
        int i;
        RESERVE_CONFIG_BUFFER(output, BUFSIZ);
-       RESERVE_CONFIG_BUFFER(input,  BUFSIZ);
        RESERVE_CONFIG_UBUFFER(vector, ASCII+1);
        RESERVE_CONFIG_BUFFER(invec,  ASCII+1);
        RESERVE_CONFIG_BUFFER(outvec, ASCII+1);
 
        /* ... but make them available globally */
        poutput = output;
-       pinput  = input;
        pvector = vector;
        pinvec  = invec;
        poutvec = outvec;
index 1cc1270366f13f6be63ac2b5d261829dc4b70e21..e6c87560d3f373cc21922a2996ac35c87e5ab08d 100644 (file)
@@ -2226,7 +2226,8 @@ static int mysleep(int hund)      // sleep for 'h' 1/100 seconds
        return (FD_ISSET(0, &rfds));
 }
 
-static Byte readbuffer[BUFSIZ];
+#define readbuffer bb_common_bufsiz1
+
 static int readed_for_parse;
 
 //----- IO Routines --------------------------------------------
index e3087db1800d5e74804a3b23ca59f738b316b5cb..b7dd48775be1dc39333de2784b662128f58ead8e 100644 (file)
@@ -333,6 +333,12 @@ extern const char * const bb_path_group_file;
 extern const char * const bb_path_securetty_file;
 extern const char * const bb_path_motd_file;
 extern const char * const bb_dev_null;
+
+#ifndef BUFSIZ
+#define BUFSIZ 4096
+#endif
+extern char bb_common_bufsiz1[BUFSIZ+1];
+
 /*
  * You can change LIBBB_DEFAULT_LOGIN_SHELL, but don`t use,
  * use bb_default_login_shell and next defines,
index 69f8779d2bde284a9fc8316ae663e2d52c25e511..fb4910018a138e669170842c24435d57b4341d25 100644 (file)
@@ -47,7 +47,8 @@ LIBBB_MOBJ0:=full_version.o \
        can_not_create_raw_socket.o perm_denied_are_you_root.o \
        shadow_file.o passwd_file.o group_file.o gshadow_file.o nologin_file.o \
        securetty_file.o motd_file.o \
-       msg_standard_input.o msg_standard_output.o shell_file.o bb_dev_null.o
+       msg_standard_input.o msg_standard_output.o shell_file.o \
+       bb_dev_null.o bb_common_bufsiz1.o
 
 LIBBB_MSRC1:=$(srcdir)/xfuncs.c
 LIBBB_MOBJ1:=xmalloc.o xrealloc.o xcalloc.o xstrdup.o xstrndup.o \
index 9a77aa64b3b0c2a26db4960e23dff32b5cc389a7..e11dddc50f87933d33fe61598a17fce590dffc73 100644 (file)
@@ -101,3 +101,6 @@ const char * const bb_default_login_shell = LIBBB_DEFAULT_LOGIN_SHELL;
 const char * const bb_dev_null = "/dev/null";
 #endif
 
+#ifdef L_bb_common_bufsiz1
+char bb_common_bufsiz1[BUFSIZ+1];
+#endif
index db9a150e01f321ecfbbd99e7721c274d523c4b2f..e8643ef93cca6d3b22e94ae93702bc3cad95dcd7 100644 (file)
@@ -110,15 +110,6 @@ extern void updwtmp(const char *filename, const struct utmp *ut);
 #define TCGETA  TCGETS
 #define TCSETA  TCSETS
 #define TCSETAW TCSETSW
-#endif
-
- /*
-  * This program tries to not use the standard-i/o library.  This keeps the
-  * executable small on systems that do not have shared libraries (System V
-  * Release <3).
-  */
-#ifndef BUFSIZ
-#define BUFSIZ          1024
 #endif
 
  /*
@@ -744,12 +735,12 @@ static void next_speed(struct termio *tp, struct options *op)
 /* return NULL on failure, logname on success */
 static char *get_logname(struct options *op, struct chardata *cp, struct termio *tp)
 {
-       static char logname[BUFSIZ];
+#define logname bb_common_bufsiz1
        char *bp;
-       char c;                                         /* input character, full eight bits */
-       char ascval;                            /* low 7 bits of input character */
-       int bits;                                       /* # of "1" bits per character */
-       int mask;                                       /* mask with 1 bit up */
+       char c;                         /* input character, full eight bits */
+       char ascval;                    /* low 7 bits of input character */
+       int bits;                       /* # of "1" bits per character */
+       int mask;                       /* mask with 1 bit up */
        static char *erase[] = {        /* backspace-space-backspace */
                "\010\040\010",                 /* space parity */
                "\010\040\010",                 /* odd parity */
index a458b6ed7392830157c67a50b0fa286bb1993e65..4e689ad68ec0e456249d07a454a8d6c489dd0e1d 100644 (file)
@@ -21,7 +21,7 @@
 #define SULOGIN_PROMPT "\nGive root password for system maintenance\n" \
        "(or type Control-D for normal startup):"
 
-static const char *forbid[] = {
+static const char * const forbid[] = {
        "ENV",
        "BASH_ENV",
        "HOME",
@@ -53,11 +53,13 @@ extern int sulogin_main(int argc, char **argv)
        char *device = (char *) 0;
        const char *name = "root";
        int timeout = 0;
-       static char pass[BUFSIZ];
+       
+#define pass bb_common_bufsiz1
+       
        struct passwd pwent;
        struct passwd *pwd;
        time_t start, now;
-       const char **p;
+       const char * const *p;
 #ifdef CONFIG_FEATURE_SHADOWPASSWDS
        struct spwd *spwd = NULL;
 #endif                                                 /* CONFIG_FEATURE_SHADOWPASSWDS */
index 8f641ae4f9513d01b2c5f73bc4faa13004b8413d..fda1fb8f68ff362be02f9fed9208a820637415c3 100644 (file)
@@ -48,7 +48,9 @@ static void timeout(int signum)
 int nc_main(int argc, char **argv)
 {
        int do_listen = 0, lport = 0, delay = 0, wsecs = 0, tmpfd, opt, sfd, x;
-       char buf[BUFSIZ];
+       
+#define buf bb_common_bufsiz1
+       
 #ifdef CONFIG_NC_GAPING_SECURITY_HOLE
        char *pr00gie = NULL;
 #endif
index 559238c3f0e2153bce62bf917ed66ae79a495771..6edc48421448b025428d3e4df7e51ad5bee4b380 100644 (file)
@@ -568,7 +568,7 @@ struct parsefile {
 };
 
 static struct parsefile basepf;         /* top level input file */
-static char basebuf[IBUFSIZ];           /* buffer for top level input file */
+#define basebuf bb_common_bufsiz1       /* buffer for top level input file */
 static struct parsefile *parsefile = &basepf;  /* current input file */
 
 
@@ -5939,7 +5939,6 @@ varunset(const char *end, const char *var, const char *umsg, int varflags)
  */
 
 #define EOF_NLEFT -99           /* value of parsenleft when EOF pushed back */
-#define IBUFSIZ (BUFSIZ + 1)
 
 static void pushfile(void);