diff options
Diffstat (limited to 'builtins/set.def')
-rw-r--r-- | builtins/set.def | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/builtins/set.def b/builtins/set.def index 700b5188..8f960171 100644 --- a/builtins/set.def +++ b/builtins/set.def @@ -49,8 +49,10 @@ $PRODUCES set.c # include "../bashhist.h" #endif -extern int interactive; extern int noclobber, posixly_correct, ignoreeof, eof_encountered_limit; +#if defined (HISTORY) +extern int dont_save_function_defs; +#endif #if defined (READLINE) extern int no_line_editing; #endif /* READLINE */ @@ -92,6 +94,7 @@ $SHORT_DOC set [--abefhkmnptuvxBCHP] [-o option] [arg ...] noclobber same as -C noexec same as -n noglob same as -f + nolog currently accepted but ignored notify same as -b nounset same as -u onecmd same as -t @@ -132,16 +135,19 @@ parameters and are assigned, in order, to $1, $2, .. $n. If no ARGs are given, all shell variables are printed. $END -static int set_ignoreeof (); -static int set_posix_mode (); +static void print_minus_o_option __P((char *, int, int)); +static void print_all_shell_variables __P((void)); + +static int set_ignoreeof __P((int, char *)); +static int set_posix_mode __P((int, char *)); #if defined (READLINE) -static int set_edit_mode (); -static int get_edit_mode (); +static int set_edit_mode __P((int, char *)); +static int get_edit_mode __P((char *)); #endif #if defined (HISTORY) -static int bash_set_history (); +static int bash_set_history __P((int, char *)); #endif static char *on = "on"; @@ -179,23 +185,29 @@ struct { {(char *)NULL, 0 }, }; +typedef int setopt_set_func_t __P((int, char *)); +typedef int setopt_get_func_t __P((char *)); + struct { char *name; int *variable; - Function *set_func; - Function *get_func; + setopt_set_func_t *set_func; + setopt_get_func_t *get_func; } binary_o_options[] = { #if defined (HISTORY) - { "history", &remember_on_history, bash_set_history, (Function *)NULL }, + { "history", &remember_on_history, bash_set_history, (setopt_get_func_t *)NULL }, +#endif + { "ignoreeof", &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL }, + { "interactive-comments", &interactive_comments, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL }, +#if defined (HISTORY) + { "nolog", &dont_save_function_defs, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL }, #endif - { "ignoreeof", &ignoreeof, set_ignoreeof, (Function *)NULL }, - { "interactive-comments", &interactive_comments, (Function *)NULL, (Function *)NULL }, - { "posix", &posixly_correct, set_posix_mode, (Function *)NULL }, + { "posix", &posixly_correct, set_posix_mode, (setopt_get_func_t *)NULL }, #if defined (READLINE) { "emacs", (int *)NULL, set_edit_mode, get_edit_mode }, { "vi", (int *)NULL, set_edit_mode, get_edit_mode }, #endif - { (char *)NULL, (int *)NULL } + { (char *)NULL, (int *)NULL, (setopt_set_func_t *)NULL, (setopt_get_func_t *)NULL } }; #define GET_BINARY_O_OPTION_VALUE(i, name) \ @@ -375,7 +387,6 @@ set_minus_o_option (on_or_off, option_name) char *option_name; { int option_char; - VFunction *set_func; register int i; for (i = 0; binary_o_options[i].name; i++) @@ -387,7 +398,7 @@ set_minus_o_option (on_or_off, option_name) } } - for (i = 0, option_char = -1, set_func = 0; o_options[i].name; i++) + for (i = 0, option_char = -1; o_options[i].name; i++) { if (STREQ (option_name, o_options[i].name)) { @@ -450,7 +461,7 @@ set_shellopts () if (GET_BINARY_O_OPTION_VALUE (i, binary_o_options[i].name)) vsize += strlen (binary_o_options[i].name) + 1; - value = xmalloc (vsize + 1); + value = (char *)xmalloc (vsize + 1); for (i = vptr = 0; o_options[i].name; i++) { @@ -752,6 +763,7 @@ unset_builtin (list) name = list->word->word; #if defined (ARRAY_VARS) + unset_array = 0; if (!unset_function && valid_array_reference (name)) { t = strchr (name, '['); |