diff --git a/coreutils/md5sum.c b/coreutils/md5sum.c index ecc1458a2..2c08b29c5 100644 --- a/coreutils/md5sum.c +++ b/coreutils/md5sum.c @@ -26,13 +26,6 @@ #include #include -/* It turns out that libc5 doesn't have this in its headers - * even though it is actually in the lib. Force it to work */ -#if ! defined __GLIBC__ && ! defined __UCLIBC__ -#define getline __getline -extern _IO_ssize_t getline __P ((char **, size_t *, FILE *)); -#endif - //---------------------------------------------------------------------------- //--------md5.c //---------------------------------------------------------------------------- @@ -680,8 +673,7 @@ static int md5_check(const char *checkfile_name) int n_open_or_read_failures = 0; unsigned char md5buffer[16]; size_t line_number; - char *line; - size_t line_chars_allocated; + char line[BUFSIZ]; if (STREQ(checkfile_name, "-")) { have_read_stdin = 1; @@ -695,8 +687,6 @@ static int md5_check(const char *checkfile_name) } line_number = 0; - line = 0; - line_chars_allocated = 0; do { char *filename; @@ -706,7 +696,8 @@ static int md5_check(const char *checkfile_name) ++line_number; - line_length = getline(&line, &line_chars_allocated, checkfile_stream); + fgets(line, BUFSIZ-1, checkfile_stream); + line_length = strlen(line); if (line_length <= 0) break; diff --git a/lash.c b/lash.c index 590f5ee89..b8ddc87c1 100644 --- a/lash.c +++ b/lash.c @@ -137,6 +137,8 @@ static int builtin_if(struct child_prog *cmd); static int builtin_then(struct child_prog *cmd); static int builtin_else(struct child_prog *cmd); static int builtin_fi(struct child_prog *cmd); +/* function prototypes for shell stuff */ +static int run_command_predicate(char *cmd); #endif @@ -146,7 +148,6 @@ static int get_command(FILE * source, char *command); static int parse_command(char **command_ptr, struct job *job, int *inbg); static int run_command(struct job *newjob, int inbg, int outpipe[2]); static int pseudo_exec(struct child_prog *cmd) __attribute__ ((noreturn)); -static int run_command_predicate(char *cmd); static int busy_loop(FILE * input); @@ -580,6 +581,7 @@ static int builtin_unset(struct child_prog *child) return EXIT_SUCCESS; } +#ifdef BB_FEATURE_SH_IF_EXPRESSIONS /* currently used by if/then/else. * Needlessly (?) forks and reparses the command line. * But pseudo_exec on the pre-parsed args doesn't have the @@ -596,6 +598,7 @@ static int run_command_predicate(char *cmd) local_pending_command[n]='\0'; return( busy_loop(NULL)); } +#endif /* free up all memory from a job */ static void free_job(struct job *cmd) diff --git a/md5sum.c b/md5sum.c index ecc1458a2..2c08b29c5 100644 --- a/md5sum.c +++ b/md5sum.c @@ -26,13 +26,6 @@ #include #include -/* It turns out that libc5 doesn't have this in its headers - * even though it is actually in the lib. Force it to work */ -#if ! defined __GLIBC__ && ! defined __UCLIBC__ -#define getline __getline -extern _IO_ssize_t getline __P ((char **, size_t *, FILE *)); -#endif - //---------------------------------------------------------------------------- //--------md5.c //---------------------------------------------------------------------------- @@ -680,8 +673,7 @@ static int md5_check(const char *checkfile_name) int n_open_or_read_failures = 0; unsigned char md5buffer[16]; size_t line_number; - char *line; - size_t line_chars_allocated; + char line[BUFSIZ]; if (STREQ(checkfile_name, "-")) { have_read_stdin = 1; @@ -695,8 +687,6 @@ static int md5_check(const char *checkfile_name) } line_number = 0; - line = 0; - line_chars_allocated = 0; do { char *filename; @@ -706,7 +696,8 @@ static int md5_check(const char *checkfile_name) ++line_number; - line_length = getline(&line, &line_chars_allocated, checkfile_stream); + fgets(line, BUFSIZ-1, checkfile_stream); + line_length = strlen(line); if (line_length <= 0) break; diff --git a/sh.c b/sh.c index 590f5ee89..b8ddc87c1 100644 --- a/sh.c +++ b/sh.c @@ -137,6 +137,8 @@ static int builtin_if(struct child_prog *cmd); static int builtin_then(struct child_prog *cmd); static int builtin_else(struct child_prog *cmd); static int builtin_fi(struct child_prog *cmd); +/* function prototypes for shell stuff */ +static int run_command_predicate(char *cmd); #endif @@ -146,7 +148,6 @@ static int get_command(FILE * source, char *command); static int parse_command(char **command_ptr, struct job *job, int *inbg); static int run_command(struct job *newjob, int inbg, int outpipe[2]); static int pseudo_exec(struct child_prog *cmd) __attribute__ ((noreturn)); -static int run_command_predicate(char *cmd); static int busy_loop(FILE * input); @@ -580,6 +581,7 @@ static int builtin_unset(struct child_prog *child) return EXIT_SUCCESS; } +#ifdef BB_FEATURE_SH_IF_EXPRESSIONS /* currently used by if/then/else. * Needlessly (?) forks and reparses the command line. * But pseudo_exec on the pre-parsed args doesn't have the @@ -596,6 +598,7 @@ static int run_command_predicate(char *cmd) local_pending_command[n]='\0'; return( busy_loop(NULL)); } +#endif /* free up all memory from a job */ static void free_job(struct job *cmd) diff --git a/shell/lash.c b/shell/lash.c index 590f5ee89..b8ddc87c1 100644 --- a/shell/lash.c +++ b/shell/lash.c @@ -137,6 +137,8 @@ static int builtin_if(struct child_prog *cmd); static int builtin_then(struct child_prog *cmd); static int builtin_else(struct child_prog *cmd); static int builtin_fi(struct child_prog *cmd); +/* function prototypes for shell stuff */ +static int run_command_predicate(char *cmd); #endif @@ -146,7 +148,6 @@ static int get_command(FILE * source, char *command); static int parse_command(char **command_ptr, struct job *job, int *inbg); static int run_command(struct job *newjob, int inbg, int outpipe[2]); static int pseudo_exec(struct child_prog *cmd) __attribute__ ((noreturn)); -static int run_command_predicate(char *cmd); static int busy_loop(FILE * input); @@ -580,6 +581,7 @@ static int builtin_unset(struct child_prog *child) return EXIT_SUCCESS; } +#ifdef BB_FEATURE_SH_IF_EXPRESSIONS /* currently used by if/then/else. * Needlessly (?) forks and reparses the command line. * But pseudo_exec on the pre-parsed args doesn't have the @@ -596,6 +598,7 @@ static int run_command_predicate(char *cmd) local_pending_command[n]='\0'; return( busy_loop(NULL)); } +#endif /* free up all memory from a job */ static void free_job(struct job *cmd)