aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-01-30 22:44:07 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-01-30 22:44:07 +0000
commit71d8abf30cee76141fbb86f5e80f97de284041a6 (patch)
treecc805016f5c28c2eb1bb61cb2607a0739fb45077
parentbb81c5831aa81a9e0ef793681e21ea2352bc6f57 (diff)
downloadbusybox-w32-71d8abf30cee76141fbb86f5e80f97de284041a6.tar.gz
busybox-w32-71d8abf30cee76141fbb86f5e80f97de284041a6.tar.bz2
busybox-w32-71d8abf30cee76141fbb86f5e80f97de284041a6.zip
lash: -Wwrite-strings fixes
-rw-r--r--shell/lash.c46
1 files changed, 24 insertions, 22 deletions
diff --git a/shell/lash.c b/shell/lash.c
index 90bd16885..51ad3cc06 100644
--- a/shell/lash.c
+++ b/shell/lash.c
@@ -90,8 +90,8 @@ struct job {
90}; 90};
91 91
92struct built_in_command { 92struct built_in_command {
93 char *cmd; /* name */ 93 const char *cmd; /* name */
94 char *descr; /* description */ 94 const char *descr; /* description */
95 int (*function) (struct child_prog *); /* function ptr */ 95 int (*function) (struct child_prog *); /* function ptr */
96}; 96};
97 97
@@ -122,7 +122,7 @@ static int busy_loop(FILE * input);
122/* Table of built-in functions (these are non-forking builtins, meaning they 122/* Table of built-in functions (these are non-forking builtins, meaning they
123 * can change global variables in the parent shell process but they will not 123 * can change global variables in the parent shell process but they will not
124 * work with pipes and redirects; 'unset foo | whatever' will not work) */ 124 * work with pipes and redirects; 'unset foo | whatever' will not work) */
125static struct built_in_command bltins[] = { 125static const struct built_in_command bltins[] = {
126 {"bg", "Resume a job in the background", builtin_fg_bg}, 126 {"bg", "Resume a job in the background", builtin_fg_bg},
127 {"cd", "Change working directory", builtin_cd}, 127 {"cd", "Change working directory", builtin_cd},
128 {"exec", "Exec command, replacing this shell with the exec'd process", builtin_exec}, 128 {"exec", "Exec command, replacing this shell with the exec'd process", builtin_exec},
@@ -160,8 +160,8 @@ static int last_return_code;
160static int last_bg_pid; 160static int last_bg_pid;
161static unsigned int last_jobid; 161static unsigned int last_jobid;
162static int shell_terminal; 162static int shell_terminal;
163static char *PS1; 163static const char *PS1;
164static char *PS2 = "> "; 164static const char *PS2 = "> ";
165 165
166 166
167#ifdef DEBUG_SHELL 167#ifdef DEBUG_SHELL
@@ -303,17 +303,17 @@ static int builtin_fg_bg(struct child_prog *child)
303/* built-in 'help' handler */ 303/* built-in 'help' handler */
304static int builtin_help(struct child_prog ATTRIBUTE_UNUSED *dummy) 304static int builtin_help(struct child_prog ATTRIBUTE_UNUSED *dummy)
305{ 305{
306 struct built_in_command *x; 306 const struct built_in_command *x;
307 307
308 printf("\nBuilt-in commands:\n" 308 printf("\nBuilt-in commands:\n"
309 "-------------------\n"); 309 "-------------------\n");
310 for (x = bltins; x->cmd; x++) { 310 for (x = bltins; x->cmd; x++) {
311 if (x->descr==NULL) 311 if (x->descr == NULL)
312 continue; 312 continue;
313 printf("%s\t%s\n", x->cmd, x->descr); 313 printf("%s\t%s\n", x->cmd, x->descr);
314 } 314 }
315 for (x = bltins_forking; x->cmd; x++) { 315 for (x = bltins_forking; x->cmd; x++) {
316 if (x->descr==NULL) 316 if (x->descr == NULL)
317 continue; 317 continue;
318 printf("%s\t%s\n", x->cmd, x->descr); 318 printf("%s\t%s\n", x->cmd, x->descr);
319 } 319 }
@@ -325,7 +325,7 @@ static int builtin_help(struct child_prog ATTRIBUTE_UNUSED *dummy)
325static int builtin_jobs(struct child_prog *child) 325static int builtin_jobs(struct child_prog *child)
326{ 326{
327 struct job *job; 327 struct job *job;
328 char *status_string; 328 const char *status_string;
329 329
330 for (job = child->family->job_list->head; job; job = job->next) { 330 for (job = child->family->job_list->head; job; job = job->next) {
331 if (job->running_progs == job->stopped_progs) 331 if (job->running_progs == job->stopped_progs)
@@ -622,20 +622,22 @@ static inline void cmdedit_set_initial_prompt(void)
622#endif 622#endif
623} 623}
624 624
625static inline void setup_prompt_string(char **prompt_str) 625static inline const char* setup_prompt_string(void)
626{ 626{
627#if !ENABLE_FEATURE_EDITING_FANCY_PROMPT 627#if !ENABLE_FEATURE_EDITING_FANCY_PROMPT
628 /* Set up the prompt */ 628 /* Set up the prompt */
629 if (shell_context == 0) { 629 if (shell_context == 0) {
630 free(PS1); 630 char *ns;
631 PS1=xmalloc(strlen(cwd)+4); 631 free((char*)PS1);
632 sprintf(PS1, "%s %c ", cwd, ( geteuid() != 0 ) ? '$': '#'); 632 ns = xmalloc(strlen(cwd)+4);
633 *prompt_str = PS1; 633 sprintf(ns, "%s %c ", cwd, (geteuid() != 0) ? '$': '#');
634 PS1 = ns;
635 return ns;
634 } else { 636 } else {
635 *prompt_str = PS2; 637 return PS2;
636 } 638 }
637#else 639#else
638 *prompt_str = (shell_context==0)? PS1 : PS2; 640 return (shell_context==0)? PS1 : PS2;
639#endif 641#endif
640} 642}
641 643
@@ -645,7 +647,7 @@ static line_input_t *line_input_state;
645 647
646static int get_command(FILE * source, char *command) 648static int get_command(FILE * source, char *command)
647{ 649{
648 char *prompt_str; 650 const char *prompt_str;
649 651
650 if (source == NULL) { 652 if (source == NULL) {
651 if (local_pending_command) { 653 if (local_pending_command) {
@@ -659,7 +661,7 @@ static int get_command(FILE * source, char *command)
659 } 661 }
660 662
661 if (source == stdin) { 663 if (source == stdin) {
662 setup_prompt_string(&prompt_str); 664 prompt_str = setup_prompt_string();
663 665
664#if ENABLE_FEATURE_EDITING 666#if ENABLE_FEATURE_EDITING
665 /* 667 /*
@@ -797,7 +799,7 @@ static int expand_arguments(char *command)
797 break; 799 break;
798 case '!': 800 case '!':
799 if (last_bg_pid==-1) 801 if (last_bg_pid==-1)
800 *(var)='\0'; 802 *var = '\0';
801 else 803 else
802 var = itoa(last_bg_pid); 804 var = itoa(last_bg_pid);
803 break; 805 break;
@@ -853,7 +855,7 @@ static int expand_arguments(char *command)
853 } 855 }
854 if (var == NULL) { 856 if (var == NULL) {
855 /* Seems we got an un-expandable variable. So delete it. */ 857 /* Seems we got an un-expandable variable. So delete it. */
856 var = ""; 858 var = (char*)"";
857 } 859 }
858 { 860 {
859 int subst_len = strlen(var); 861 int subst_len = strlen(var);
@@ -1128,7 +1130,7 @@ empty_command_in_pipe:
1128 */ 1130 */
1129static int pseudo_exec(struct child_prog *child) 1131static int pseudo_exec(struct child_prog *child)
1130{ 1132{
1131 struct built_in_command *x; 1133 const struct built_in_command *x;
1132 1134
1133 /* Check if the command matches any of the non-forking builtins. 1135 /* Check if the command matches any of the non-forking builtins.
1134 * Depending on context, this might be redundant. But it's 1136 * Depending on context, this might be redundant. But it's
@@ -1227,7 +1229,7 @@ static int run_command(struct job *newjob, int inbg, int outpipe[2])
1227 int i; 1229 int i;
1228 int nextin, nextout; 1230 int nextin, nextout;
1229 int pipefds[2]; /* pipefd[0] is for reading */ 1231 int pipefds[2]; /* pipefd[0] is for reading */
1230 struct built_in_command *x; 1232 const struct built_in_command *x;
1231 struct child_prog *child; 1233 struct child_prog *child;
1232 1234
1233 nextin = 0, nextout = 1; 1235 nextin = 0, nextout = 1;