Remove trailing whitespace. Update copyright to include 2004.

This commit is contained in:
Eric Andersen
2004-03-15 08:29:22 +00:00
parent 8854004b41
commit c7bda1ce65
374 changed files with 2048 additions and 2051 deletions

View File

@ -41,7 +41,7 @@ config CONFIG_ASH
the most complete and most pedantically correct shell included with
busybox. This shell is actually a derivative of the Debian 'dash'
shell (by Herbert Xu), which was created by porting the 'ash' shell
(written by Kenneth Almquist) from NetBSD.
(written by Kenneth Almquist) from NetBSD.
comment "Ash Shell Options"
depends on CONFIG_ASH

View File

@ -1,6 +1,6 @@
# Makefile for busybox
#
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@ -1,6 +1,6 @@
# Makefile for busybox
#
# Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View File

@ -7615,7 +7615,7 @@ cmdputs(const char *s)
int quoted = 0;
static const char *const vstype[16] = {
nullstr, "}", "-", "+", "?", "=",
"%", "%%", "#", "##", nullstr
"%", "%%", "#", "##", nullstr
};
nextc = makestrspace((strlen(s) + 1) * 8, cmdnextc);

View File

@ -12,7 +12,7 @@
* written Dec 2000 and Jan 2001 by Larry Doolittle. The
* execution engine, the builtins, and much of the underlying
* support has been adapted from busybox-0.49pre's lash, which is
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
* written by Erik Andersen <andersen@codepoet.org>. That, in turn,
* is based in part on ladsh.c, by Michael K. Johnson and Erik W.
* Troan, which they placed in the public domain. I don't know
@ -197,7 +197,7 @@ struct redir_struct {
redir_type type; /* type of redirection */
int fd; /* file descriptor being redirected */
int dup; /* -1, or file descriptor being duplicated */
struct redir_struct *next; /* pointer to the next redirect in the list */
struct redir_struct *next; /* pointer to the next redirect in the list */
glob_t word; /* *word.gl_pathv is the filename */
};
@ -248,7 +248,7 @@ char **global_argv;
unsigned int global_argc;
unsigned int last_return_code;
extern char **environ; /* This is in <unistd.h>, but protected with __USE_GNU */
/* "globals" within this file */
static char *ifs;
static char map[256];
@ -421,7 +421,7 @@ static struct built_in_command bltins[] = {
{"continue", "Continue for, while or until loop", builtin_not_written},
{"env", "Print all environment variables", builtin_env},
{"eval", "Construct and run shell command", builtin_eval},
{"exec", "Exec command, replacing this shell with the exec'd process",
{"exec", "Exec command, replacing this shell with the exec'd process",
builtin_exec},
{"exit", "Exit from shell()", builtin_exit},
{"export", "Set environment variable", builtin_export},
@ -456,10 +456,10 @@ static int builtin_eval(struct child_prog *child)
{
char *str = NULL;
int rcode = EXIT_SUCCESS;
if (child->argv[1]) {
str = make_string(child->argv + 1);
parse_string_outer(str, FLAG_EXIT_FROM_LOOP |
parse_string_outer(str, FLAG_EXIT_FROM_LOOP |
FLAG_PARSE_SEMICOLON);
free(str);
rcode = last_return_code;
@ -873,7 +873,7 @@ static inline void cmdedit_set_initial_prompt(void)
PS1 = getenv("PS1");
if(PS1==0)
PS1 = "\\w \\$ ";
#endif
#endif
}
static inline void setup_prompt_string(int promptmode, char **prompt_str)
@ -919,7 +919,7 @@ static void get_user_input(struct in_str *i)
i->p = the_command;
}
/* This is the magic location that prints prompts
/* This is the magic location that prints prompts
* and gets data back from the user */
static int file_get(struct in_str *i)
{
@ -1110,14 +1110,14 @@ static void pseudo_exec(struct child_prog *child)
}
/* Check if the command matches any busybox internal commands
* ("applets") here.
* ("applets") here.
* FIXME: This feature is not 100% safe, since
* BusyBox is not fully reentrant, so we have no guarantee the things
* from the .bss are still zeroed, or that things from .data are still
* at their defaults. We could exec ourself from /proc/self/exe, but I
* really dislike relying on /proc for things. We could exec ourself
* from global_argv[0], but if we are in a chroot, we may not be able
* to find ourself... */
* to find ourself... */
#ifdef CONFIG_FEATURE_SH_STANDALONE_SHELL
{
int argc_l;
@ -1196,7 +1196,7 @@ static void insert_bg_job(struct pipe *pi)
}
}
/* we don't wait for background thejobs to return -- append it
/* we don't wait for background thejobs to return -- append it
to the list of backgrounded thejobs and leave it alone */
printf("[%d] %d\n", thejob->jobid, thejob->progs[0].pid);
last_bg_pid = thejob->progs[0].pid;
@ -1226,7 +1226,7 @@ static void remove_bg_job(struct pipe *pi)
free(pi);
}
/* Checks to see if any processes have exited -- if they
/* Checks to see if any processes have exited -- if they
have, figure out why and see if a job has completed */
static int checkjobs(struct pipe* fg_pipe)
{
@ -1246,7 +1246,7 @@ static int checkjobs(struct pipe* fg_pipe)
int i, rcode = 0;
for (i=0; i < fg_pipe->num_progs; i++) {
if (fg_pipe->progs[i].pid == childpid) {
if (i==fg_pipe->num_progs-1)
if (i==fg_pipe->num_progs-1)
rcode=WEXITSTATUS(status);
(fg_pipe->num_progs)--;
return(rcode);
@ -1289,7 +1289,7 @@ static int checkjobs(struct pipe* fg_pipe)
if (pi->stopped_progs == pi->num_progs) {
printf("\n"JOB_STATUS_FORMAT, pi->jobid, "Stopped", pi->text);
}
#endif
#endif
}
}
@ -1378,7 +1378,7 @@ static int run_pipe_real(struct pipe *pi)
/* Ok, this case is tricky. We have to decide if this is a
* local variable, or an already exported variable. If it is
* already exported, we have to export the new value. If it is
* not exported, we need only set this as a local variable.
* not exported, we need only set this as a local variable.
* This junk is all to decide whether or not to export this
* variable. */
int export_me=0;
@ -1408,7 +1408,7 @@ static int run_pipe_real(struct pipe *pi)
}
if (child->sp) {
char * str = NULL;
str = make_string((child->argv + i));
parse_string_outer(str, FLAG_EXIT_FROM_LOOP | FLAG_REPARSING);
free(str);
@ -1454,7 +1454,7 @@ static int run_pipe_real(struct pipe *pi)
#if !defined(__UCLIBC__) || defined(__UCLIBC_HAS_MMU__)
if (!(child->pid = fork()))
#else
if (!(child->pid = vfork()))
if (!(child->pid = vfork()))
#endif
{
/* Set the handling for job control signals back to the default. */
@ -1465,7 +1465,7 @@ static int run_pipe_real(struct pipe *pi)
signal(SIGTTIN, SIG_DFL);
signal(SIGTTOU, SIG_DFL);
signal(SIGCHLD, SIG_DFL);
close_all();
if (nextin != 0) {
@ -1497,7 +1497,7 @@ static int run_pipe_real(struct pipe *pi)
pseudo_exec(child);
}
/* put our child in the process group whose leader is the
first process in this pipe */
@ -1513,7 +1513,7 @@ static int run_pipe_real(struct pipe *pi)
if (nextout != 1)
close(nextout);
/* If there isn't another process, nextin is garbage
/* If there isn't another process, nextin is garbage
but it doesn't matter */
nextin = pipefds[0];
}
@ -1539,12 +1539,12 @@ static int run_list_real(struct pipe *pi)
(rpipe->next == NULL)) {
syntax();
return 1;
}
if ((rpipe->r_mode == RES_IN &&
(rpipe->next->r_mode == RES_IN &&
}
if ((rpipe->r_mode == RES_IN &&
(rpipe->next->r_mode == RES_IN &&
rpipe->next->progs->argv != NULL))||
(rpipe->r_mode == RES_FOR &&
rpipe->next->r_mode != RES_IN)) {
rpipe->next->r_mode != RES_IN)) {
syntax();
return 1;
}
@ -1572,7 +1572,7 @@ static int run_list_real(struct pipe *pi)
if (rmode == RES_ELIF && !if_code) continue;
if (rmode == RES_FOR && pi->num_progs) {
if (!list) {
/* if no variable values after "in" we skip "for" */
/* if no variable values after "in" we skip "for" */
if (!pi->next->progs->argv) continue;
/* create list of variable values */
list = make_list_in(pi->next->progs->argv,
@ -1581,7 +1581,7 @@ static int run_list_real(struct pipe *pi)
save_name = pi->progs->argv[0];
pi->progs->argv[0] = NULL;
flag_rep = 1;
}
}
if (!(*list)) {
free(pi->progs->argv[0]);
free(save_list);
@ -1591,26 +1591,26 @@ static int run_list_real(struct pipe *pi)
pi->progs->glob_result.gl_pathv[0] =
pi->progs->argv[0];
continue;
} else {
} else {
/* insert new value from list for variable */
if (pi->progs->argv[0])
if (pi->progs->argv[0])
free(pi->progs->argv[0]);
pi->progs->argv[0] = *list++;
pi->progs->glob_result.gl_pathv[0] =
pi->progs->argv[0];
}
}
}
if (rmode == RES_IN) continue;
if (rmode == RES_DO) {
if (!flag_rep) continue;
}
}
if ((rmode == RES_DONE)) {
if (flag_rep) {
flag_restore = 1;
} else {
rpipe = NULL;
}
}
}
if (pi->num_progs == 0) continue;
save_num_progs = pi->num_progs; /* save number of programs */
rcode = run_pipe_real(pi);
@ -1642,9 +1642,9 @@ static int run_list_real(struct pipe *pi)
pi->num_progs = save_num_progs; /* restore number of programs */
if ( rmode == RES_IF || rmode == RES_ELIF )
next_if_code=rcode; /* can be overwritten a number of times */
if (rmode == RES_WHILE)
if (rmode == RES_WHILE)
flag_rep = !last_return_code;
if (rmode == RES_UNTIL)
if (rmode == RES_UNTIL)
flag_rep = last_return_code;
if ( (rcode==EXIT_SUCCESS && pi->followup==PIPE_OR) ||
(rcode!=EXIT_SUCCESS && pi->followup==PIPE_AND) )
@ -1723,7 +1723,7 @@ static int free_pipe_list(struct pipe *head, int indent)
pi->next=NULL;
free(pi);
}
return rcode;
return rcode;
}
/* Select which version we will use */
@ -1732,7 +1732,7 @@ static int run_list(struct pipe *pi)
int rcode=0;
if (fake_mode==0) {
rcode = run_list_real(pi);
}
}
/* free_pipe_list has the side effect of clearing memory
* In the long run that function can be merged with run_list_real,
* but doing that now would hobble the debugging effort. */
@ -1862,7 +1862,7 @@ static int set_local_var(const char *s, int flg_export)
/* Assume when we enter this function that we are already in
* NAME=VALUE format. So the first order of business is to
* split 's' on the '=' into 'name' and 'value' */
* split 's' on the '=' into 'name' and 'value' */
value = strchr(name, '=');
if (value==0 && ++value==0) {
free(name);
@ -1991,7 +1991,7 @@ static int setup_redirect(struct p_context *ctx, int fd, redir_type style,
debug_printf("Redirect type %d%s\n", redir->fd, redir_table[style].descrip);
/* Check for a '2>&1' type redirect */
/* Check for a '2>&1' type redirect */
redir->dup = redirect_dup_num(input);
if (redir->dup == -2) return 1; /* syntax error */
if (redir->dup != -1) {
@ -2377,9 +2377,9 @@ static int parse_group(o_string *dest, struct p_context *ctx,
static char *lookup_param(char *src)
{
char *p=NULL;
if (src) {
if (src) {
p = getenv(src);
if (!p)
if (!p)
p = get_local_var(src);
}
return p;
@ -2499,7 +2499,7 @@ int parse_stream(o_string *dest, struct p_context *ctx,
if (m==2) { /* unquoted IFS */
if (done_word(dest, ctx)) {
return 1;
}
}
/* If we aren't performing a substitution, treat a newline as a
* command separator. */
if (end_trigger != '\0' && ch=='\n')
@ -2624,7 +2624,7 @@ int parse_stream(o_string *dest, struct p_context *ctx,
}
/* complain if quote? No, maybe we just finished a command substitution
* that was quoted. Example:
* $ echo "`cat foo` plus more"
* $ echo "`cat foo` plus more"
* and we just got the EOF generated by the subshell that ran "cat foo"
* The only real complaint is if we got an EOF when end_trigger != '\0',
* that is, we were really supposed to get end_trigger, and never got
@ -2684,7 +2684,7 @@ int parse_stream_outer(struct in_str *inp, int flag)
if (ctx.old_flag != 0) {
free(ctx.stack);
b_reset(&temp);
}
}
temp.nonnull = 0;
temp.quote = 0;
inp->p = NULL;
@ -2748,9 +2748,9 @@ int hush_main(int argc, char **argv)
/* XXX what should these be while sourcing /etc/profile? */
global_argc = argc;
global_argv = argv;
/* (re?) initialize globals. Sometimes hush_main() ends up calling
* hush_main(), therefore we cannot rely on the BSS to zero out this
* hush_main(), therefore we cannot rely on the BSS to zero out this
* stuff. Reset these to 0 every time. */
ifs = NULL;
/* map[] is taken care of with call to update_ifs_map() */
@ -2770,7 +2770,7 @@ int hush_main(int argc, char **argv)
#endif
PS2 = "> ";
/* initialize our shell local variables with the values
/* initialize our shell local variables with the values
* currently living in the environment */
if (e) {
for (; *e; e++)
@ -2790,7 +2790,7 @@ int hush_main(int argc, char **argv)
}
}
input=stdin;
while ((opt = getopt(argc, argv, "c:xif")) > 0) {
switch (opt) {
case 'c':
@ -2832,13 +2832,13 @@ int hush_main(int argc, char **argv)
debug_printf("\ninteractive=%d\n", interactive);
if (interactive) {
/* Looks like they want an interactive shell */
#ifndef CONFIG_FEATURE_SH_EXTRA_QUIET
#ifndef CONFIG_FEATURE_SH_EXTRA_QUIET
printf( "\n\n" BB_BANNER " hush - the humble shell v0.01 (testing)\n");
printf( "Enter 'help' for a list of built-in commands.\n\n");
#endif
setup_job_control();
}
if (argv[optind]==NULL) {
opt=parse_file_outer(stdin);
goto final_return;
@ -2877,7 +2877,7 @@ static char *insert_var_value(char *inp)
int len;
int done = 0;
char *p, *p1, *res_str = NULL;
while ((p = strchr(inp, SPECIAL_VAR_SYMBOL))) {
if (p != inp) {
len = p - inp;
@ -2893,7 +2893,7 @@ static char *insert_var_value(char *inp)
res_str = xrealloc(res_str, (1 + len));
strcpy((res_str + res_str_len), p1);
res_str_len = len;
}
}
*p = SPECIAL_VAR_SYMBOL;
inp = ++p;
done = 1;
@ -2915,8 +2915,8 @@ static char **make_list_in(char **inp, char *name)
int n = 0;
char **list;
char *p1, *p2, *p3;
/* create list of variable values */
/* create list of variable values */
list = xmalloc(sizeof(*list));
for (i = 0; inp[i]; i++) {
p3 = insert_var_value(inp[i]);
@ -2928,13 +2928,13 @@ static char **make_list_in(char **inp, char *name)
}
if ((p2 = strchr(p1, ' '))) {
len = p2 - p1;
} else {
} else {
len = strlen(p1);
p2 = p1 + len;
}
/* we use n + 2 in realloc for list,because we add
/* we use n + 2 in realloc for list,because we add
* new element and then we will add NULL element */
list = xrealloc(list, sizeof(*list) * (n + 2));
list = xrealloc(list, sizeof(*list) * (n + 2));
list[n] = xmalloc(2 + name_len + len);
strcpy(list[n], name);
strcat(list[n], "=");
@ -2946,7 +2946,7 @@ static char **make_list_in(char **inp, char *name)
}
list[n] = NULL;
return list;
}
}
/* Make new string for parser */
static char * make_string(char ** inp)

View File

@ -2,7 +2,7 @@
/*
* lash -- the BusyBox Lame-Ass SHell
*
* Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
* Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
*
* Based in part on ladsh.c by Michael K. Johnson and Erik W. Troan, which is
* under the following liberal license: "We have placed this source code in the
@ -927,7 +927,7 @@ static int expand_arguments(char *command)
}
if (var) {
/* a single character construction was found, and
/* a single character construction was found, and
* already handled in the case statement */
src=dst+2;
} else {
@ -1093,7 +1093,7 @@ static int parse_command(char **command_ptr, struct job *job, int *inbg)
prog->redirects[i].fd = -1;
if (buf != prog->argv[argc_l]) {
/* the stuff before this character may be the file number
/* the stuff before this character may be the file number
being redirected */
prog->redirects[i].fd =
strtol(prog->argv[argc_l], &chptr, 10);

View File

@ -23,7 +23,7 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*
* Original copyright notice is retained at the end of this file.
*/
@ -770,7 +770,7 @@ extern int msh_main(int argc, char **argv)
if (--argc > 0)
PUSHIO(aword, *++argv, iof = nlchar);
break;
case 'q':
qflag = SIG_DFL;
break;
@ -784,7 +784,7 @@ extern int msh_main(int argc, char **argv)
setval(prompt, "");
iof = linechar;
break;
case 'i':
interactive++;
default:
@ -809,7 +809,7 @@ extern int msh_main(int argc, char **argv)
PUSHIO(afile, 0, iof);
if (isatty(0) && isatty(1) && !cflag) {
interactive++;
#ifndef CONFIG_FEATURE_SH_EXTRA_QUIET
#ifndef CONFIG_FEATURE_SH_EXTRA_QUIET
printf( "\n\n" BB_BANNER " Built-in shell (msh)\n");
printf( "Enter 'help' for a list of built-in commands.\n\n");
#endif
@ -838,7 +838,7 @@ extern int msh_main(int argc, char **argv)
ap++;
}
}
}
}
setval(lookup("#"), putn((--dolc < 0) ? (dolc = 0) : dolc));
for (;;) {
@ -2303,7 +2303,7 @@ int act;
#if __GNUC__
/* Avoid longjmp clobbering */
(void) &wp;
#endif
#endif
if (t == NULL)
@ -2318,7 +2318,7 @@ int act;
case TPAREN:
rv = execute(t->left, pin, pout, 0);
break;
case TCOM:
{
int child;
@ -2395,7 +2395,7 @@ int act;
} else {
i = -1;
while (*wp++ != NULL)
;
;
}
vp = lookup(t->str);
while (setjmp(bc.brkpt))
@ -2497,7 +2497,7 @@ forkexec( register struct op *t, int *pin, int *pout, int act, char **wp, int *p
(void) &cp;
(void) &resetsig;
(void) &owp;
#endif
#endif
owp = wp;
resetsig = 0;
@ -2532,7 +2532,7 @@ forkexec( register struct op *t, int *pin, int *pout, int act, char **wp, int *p
hintr = intr;
hbrklist = brklist;
hexecflg = execflg;
i = vfork();
if (i != 0) {
/* who wrote this crappy non vfork safe shit? */
@ -2563,7 +2563,7 @@ forkexec( register struct op *t, int *pin, int *pout, int act, char **wp, int *p
(*pforked)++;
brklist = 0;
execflg = 0;
}
}
if (owp != NULL)
while ((cp = *owp++) != NULL && assign(cp, COPYV))
if (shcom == NULL)
@ -2841,7 +2841,7 @@ char *c, **v, **envp;
#endif
optind = 1;
if (find_applet_by_name(name)) {
/* We have to exec here since we vforked. Running
/* We have to exec here since we vforked. Running
* run_applet_by_name() won't work and bad things
* will happen. */
execve("/proc/self/exe", v, envp);
@ -2964,8 +2964,8 @@ static int dohelp(struct op *t )
for (i=0, applet = applets; i < NUM_APPLETS; applet++, i++) {
if (!applet->name)
continue;
col += printf("%s%s", ((col == 0) ? "\t" : " "),
col += printf("%s%s", ((col == 0) ? "\t" : " "),
applet->name);
if (col > 60) {
printf("\n");
@ -3194,7 +3194,7 @@ register struct op *t;
if (n == SIGINT)
setsig(n, onintr);
else
setsig(n, n == SIGQUIT ? SIG_IGN
setsig(n, n == SIGQUIT ? SIG_IGN
: SIG_DFL);
else
setsig(n, SIG_DFL);
@ -3784,7 +3784,7 @@ int quoted;
/* Avoid longjmp clobbering */
(void) &cp;
#endif
for (cp = e.iop->argp->aword; *cp != '`'; cp++)
if (*cp == 0) {
err("no closing `");
@ -3837,7 +3837,7 @@ int quoted;
err("unclosed ${\n");
return(0);
}
if (operator) {
if (operator) {
src++;
while (*src && (*src != '}')) {
alt_value[alt_index++] = *src++;
@ -3875,7 +3875,7 @@ int quoted;
}
}
*dest = '\0';
if (openpipe(pf) < 0)
return(0);
while ((i = vfork()) == -1 && errno == EAGAIN)
@ -3897,7 +3897,7 @@ int quoted;
for (j=0; j<=_NSIG; j++)
if (ourtrap[j] && signal(j, SIG_IGN) != SIG_IGN)
signal(j, SIG_DFL);
dup2(pf[1], 1);
closepipe(pf);
@ -4121,7 +4121,7 @@ register struct wdblock *wb;
wb->w_words[wb->w_nword++] = wd;
return(wb);
}
static
static
char **
getwords(wb)
register struct wdblock *wb;
@ -4557,7 +4557,7 @@ register struct ioarg *ap;
c = mycommand[position];
position++;
return(c);
} else
} else
#endif
{
i = safe_read(ap->afile, &c, sizeof(c));
@ -4858,7 +4858,7 @@ int xdoll;
char c;
char tname[30] = ".msh_XXXXXX";
jmp_buf ev;
tf = mkstemp(tname);
if (tf < 0)
return (-1);
@ -4917,24 +4917,24 @@ int area;
/*
* Copyright (c) 1987,1997, Prentice Hall
* All rights reserved.
*
*
* Redistribution and use of the MINIX operating system in source and
* binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
*
* Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
*
* Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
*
*
* Neither the name of Prentice Hall nor the names of the software
* authors or contributors may be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS, AUTHORS, AND
* CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF