Noticed when looking into segfault. The "discarding const qualifier" warning always makes me worried as it tends to come from bad code. --- arrayfunc.c | 18 ++++++++++-------- arrayfunc.h | 12 ++++++------ 2 files changed, 16 insertions(+), 14 deletions(-)
diff --git a/arrayfunc.c b/arrayfunc.c index fb87112281d8..eca6e03a642e 100644 --- a/arrayfunc.c +++ b/arrayfunc.c @@ -48,7 +48,7 @@ static SHELL_VAR *assign_array_element_internal __P((SHELL_VAR *, char *, char * static char *quote_assign __P((const char *)); static void quote_array_assignment_chars __P((WORD_LIST *)); -static char *array_value_internal __P((char *, int, int, int *, arrayind_t *)); +static char *array_value_internal __P((const char *, int, int, int *, arrayind_t *)); /* Standard error message to use when encountering an invalid array subscript */ const char * const bash_badsub_errmsg = N_("bad array subscript"); @@ -881,7 +881,7 @@ print_assoc_assignment (var, quoted) /* Return 1 if NAME is a properly-formed array reference v[sub]. */ int valid_array_reference (name, flags) - char *name; + const char *name; int flags; { char *t; @@ -948,7 +948,8 @@ array_expand_index (var, s, len) in *LENP. This returns newly-allocated memory. */ char * array_variable_name (s, subp, lenp) - char *s, **subp; + const char *s; + char **subp; int *lenp; { char *t, *ret; @@ -992,7 +993,8 @@ array_variable_name (s, subp, lenp) If LENP is non-null, the length of the subscript is returned in *LENP. */ SHELL_VAR * array_variable_part (s, subp, lenp) - char *s, **subp; + const char *s; + char **subp; int *lenp; { char *t; @@ -1029,7 +1031,7 @@ array_variable_part (s, subp, lenp) reference is name[@], and 0 otherwise. */ static char * array_value_internal (s, quoted, flags, rtype, indp) - char *s; + const char *s; int quoted, flags, *rtype; arrayind_t *indp; { @@ -1149,7 +1151,7 @@ array_value_internal (s, quoted, flags, rtype, indp) subscript contained in S, obeying quoting for subscripts * and @. */ char * array_value (s, quoted, flags, rtype, indp) - char *s; + const char *s; int quoted, flags, *rtype; arrayind_t *indp; { @@ -1162,7 +1164,7 @@ array_value (s, quoted, flags, rtype, indp) evaluator in expr.c. */ char * get_array_value (s, flags, rtype, indp) - char *s; + const char *s; int flags, *rtype; arrayind_t *indp; { @@ -1171,7 +1173,7 @@ get_array_value (s, flags, rtype, indp) char * array_keys (s, quoted) - char *s; + const char *s; int quoted; { int len; diff --git a/arrayfunc.h b/arrayfunc.h index 3a29a594e98e..46bf2c70f024 100644 --- a/arrayfunc.h +++ b/arrayfunc.h @@ -58,14 +58,14 @@ extern void print_array_assignment __P((SHELL_VAR *, int)); extern void print_assoc_assignment __P((SHELL_VAR *, int)); extern arrayind_t array_expand_index __P((SHELL_VAR *, char *, int)); -extern int valid_array_reference __P((char *, int)); -extern char *array_value __P((char *, int, int, int *, arrayind_t *)); -extern char *get_array_value __P((char *, int, int *, arrayind_t *)); +extern int valid_array_reference __P((const char *, int)); +extern char *array_value __P((const char *, int, int, int *, arrayind_t *)); +extern char *get_array_value __P((const char *, int, int *, arrayind_t *)); -extern char *array_keys __P((char *, int)); +extern char *array_keys __P((const char *, int)); -extern char *array_variable_name __P((char *, char **, int *)); -extern SHELL_VAR *array_variable_part __P((char *, char **, int *)); +extern char *array_variable_name __P((const char *, char **, int *)); +extern SHELL_VAR *array_variable_part __P((const char *, char **, int *)); #else -- 2.9.0