Port more function definitions and declarations to C23. This includes adding a return type when it defaulted to int. Add some casts to and from GENERIC_LIST * that are needed now that the list functions are prototyped.
This does not finish the job, as some trickier functions still won't work with C23. However, one step at a time. --- aclocal.m4 | 20 ++++-------- array.c | 3 ++ array2.c | 5 ++- braces.c | 4 +-- builtins/common.c | 2 +- builtins/getopts.def | 16 +++------ builtins/mkbuiltins.c | 2 +- builtins/psize-posix.c | 1 + examples/loadables/bsdos.glue.c | 31 ++++++------------ examples/loadables/finfo.c | 54 ++++++++++--------------------- examples/loadables/getconf.c | 3 +- examples/loadables/id.c | 4 +-- examples/loadables/pathchk.c | 3 +- examples/loadables/pushd.def | 42 +++++++++--------------- examples/loadables/tee.c | 2 +- examples/loadables/tty.c | 2 +- execute_cmd.c | 2 +- expr.c | 12 +++++-- externs.h | 10 +++--- include/memalloc.h | 14 +++----- input.c | 1 + lib/glob/glob.c | 5 ++- lib/glob/gm_loop.c | 11 ++----- lib/glob/ndir.h | 9 +++--- lib/glob/strmatch.c | 5 ++- lib/malloc/memtest.c | 1 + lib/readline/bind.c | 4 +-- lib/readline/doc/hstech.texi | 5 ++- lib/readline/doc/rltech.texi | 18 ++++------- lib/readline/examples/fileman.c | 14 +++----- lib/readline/examples/histexamp.c | 4 +-- lib/readline/examples/rl.c | 4 +-- lib/readline/examples/rlcat.c | 10 ++---- lib/readline/rltty.c | 3 +- lib/readline/text.c | 3 +- lib/sh/getcwd.c | 5 ++- lib/sh/snprintf.c | 1 + lib/sh/strftime.c | 4 +-- lib/sh/stringlist.c | 2 +- lib/sh/stringvec.c | 2 +- lib/termcap/termcap.c | 5 ++- lib/termcap/tparam.c | 5 ++- lib/tilde/shell.c | 2 +- lib/tilde/tilde.c | 3 +- pcomplete.c | 2 +- shell.c | 2 +- subst.c | 7 ++-- support/bashversion.c | 4 +-- support/endian.c | 5 ++- support/memtest.c | 1 + support/mksignames.c | 7 ++-- support/printenv.c | 4 +-- support/recho.c | 9 ++---- support/rlvers.sh | 1 + support/version2.c | 3 +- support/xcase.c | 4 +-- support/zecho.c | 4 +-- tests/misc/regress/getdate.y | 7 ++-- variables.c | 3 +- version.c | 3 +- 60 files changed, 164 insertions(+), 260 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 index 37546c6c..e6e18737 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -432,6 +432,7 @@ AC_CACHE_VAL(bash_cv_sizeof_rlim_cur, #endif #include <stdlib.h> #include <sys/resource.h> +int main() { struct rlimit r; @@ -457,6 +458,7 @@ AC_CACHE_VAL(bash_cv_sizeof_quad_t, #include <stdint.h> #endif +int main() { #if HAVE_QUAD_T @@ -841,9 +843,7 @@ AC_CACHE_VAL(bash_cv_func_strcoll_broken, #include <stdlib.h> int -main(c, v) -int c; -char *v[]; +main (int c, char **v) { int r1, r2; char *deflocale, *defcoll; @@ -1345,15 +1345,13 @@ AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers, #endif #include <stdlib.h> -typedef void sigfunc(); +typedef void sigfunc (int); volatile int nsigint; #ifdef HAVE_POSIX_SIGNALS sigfunc * -set_signal_handler(sig, handler) - int sig; - sigfunc *handler; +set_signal_handler (int sig, sigfunc *handler) { struct sigaction act, oact; act.sa_handler = handler; @@ -1836,9 +1834,7 @@ bash_cv_wcwidth_broken, #include <wchar.h> int -main(c, v) -int c; -char **v; +main (int c, char **v) { int w; @@ -2156,9 +2152,7 @@ AC_CACHE_VAL(bash_cv_wexitstatus_offset, #include <sys/wait.h> int -main(c, v) - int c; - char **v; +main (int c, char **v) { pid_t pid, p; int s, i, n; diff --git a/array.c b/array.c index 61894e0b..6f8926eb 100644 --- a/array.c +++ b/array.c @@ -1119,6 +1119,7 @@ quote_string(char *s) return savestring(s); } +int print_element(ARRAY_ELEMENT *ae) { char lbuf[INT_STRLEN_BOUND (intmax_t) + 1]; @@ -1128,12 +1129,14 @@ print_element(ARRAY_ELEMENT *ae) element_value(ae)); } +int print_array(ARRAY *a) { printf("\n"); array_walk(a, print_element, (void *)NULL); } +int main(int c, char **v) { ARRAY *a, *new_a, *copy_of_a; diff --git a/array2.c b/array2.c index 2988f3b1..3b6a62e7 100644 --- a/array2.c +++ b/array2.c @@ -789,9 +789,7 @@ array_to_kvpair_list (ARRAY *a) } ARRAY * -array_assign_list (array, list) -ARRAY *array; -WORD_LIST *list; +array_assign_list (ARRAY *array, WORD_LIST *list) { register WORD_LIST *l; register arrayind_t i; @@ -1194,6 +1192,7 @@ print_array(ARRAY *a) array_walk(a, print_element, (void *)NULL); } +int main(int c, char **v) { ARRAY *a, *new_a, *copy_of_a; diff --git a/braces.c b/braces.c index e21160c1..4715e5b4 100644 --- a/braces.c +++ b/braces.c @@ -81,8 +81,7 @@ static char **array_concat (char **, char **); #if 0 static void -dump_result (a) - char **a; +dump_result (char **a) { int i; @@ -794,6 +793,7 @@ internal_error (char *format, char *arg1, char *arg2) fprintf (stderr, "\n"); } +int main (int c, char **v) { char example[256]; diff --git a/builtins/common.c b/builtins/common.c index 69e3fc76..2679fae3 100644 --- a/builtins/common.c +++ b/builtins/common.c @@ -389,7 +389,7 @@ remember_args (WORD_LIST *list, int destructive) { dispose_words (rest_of_args); rest_of_args = copy_word_list (list); - posparam_count += list_length (list); + posparam_count += list_length ((GENERIC_LIST *) list); } if (destructive) diff --git a/builtins/getopts.def b/builtins/getopts.def index fc4142b0..2fa68b9c 100644 --- a/builtins/getopts.def +++ b/builtins/getopts.def @@ -93,16 +93,14 @@ static int dogetopts (int, char **); /* getopts_reset is magic code for when OPTIND is reset. N is the value that has just been assigned to OPTIND. */ void -getopts_reset (newind) - int newind; +getopts_reset (int newind) { sh_optind = newind; sh_badopt = 0; } static int -getopts_unbind_variable (name) - char *name; +getopts_unbind_variable (char *name) { #if 0 return (unbind_variable (name)); @@ -112,8 +110,7 @@ getopts_unbind_variable (name) } static int -getopts_bind_variable (name, value) - char *name, *value; +getopts_bind_variable (char *name, char *value) { SHELL_VAR *v; @@ -159,9 +156,7 @@ getopts_bind_variable (name, value) */ static int -dogetopts (argc, argv) - int argc; - char **argv; +dogetopts (int argc, char **argv) { int ret, special_error, old_opterr, i, n; char strval[2], numval[16]; @@ -312,8 +307,7 @@ dogetopts (argc, argv) /* The getopts builtin. Build an argv, and call dogetopts with it. */ int -getopts_builtin (list) - WORD_LIST *list; +getopts_builtin (WORD_LIST *list) { char **av; int ac, ret; diff --git a/builtins/mkbuiltins.c b/builtins/mkbuiltins.c index 2ba37471..7b7f68ce 100644 --- a/builtins/mkbuiltins.c +++ b/builtins/mkbuiltins.c @@ -59,7 +59,7 @@ extern int errno; #endif -static char *xmalloc (), *xrealloc (); +static char *xmalloc (size_t), *xrealloc (void *, size_t); #if !defined (__STDC__) && !defined (strcpy) extern char *strcpy (); diff --git a/builtins/psize-posix.c b/builtins/psize-posix.c index 13abe2ca..1eadd083 100644 --- a/builtins/psize-posix.c +++ b/builtins/psize-posix.c @@ -22,6 +22,7 @@ #include <unistd.h> #include <stdlib.h> +int main(int c, char **v) { char *p; diff --git a/examples/loadables/bsdos.glue.c b/examples/loadables/bsdos.glue.c index 9df731b7..4cbb6e83 100644 --- a/examples/loadables/bsdos.glue.c +++ b/examples/loadables/bsdos.glue.c @@ -33,8 +33,7 @@ builtin_error (const char *format, ...) } int -no_options(list) -WORD_LIST *list; +no_options (WORD_LIST *list) { reset_internal_getopt (); if (internal_getopt (list, "") != -1) @@ -46,9 +45,7 @@ WORD_LIST *list; } int -legal_number (string, result) - char *string; - long *result; +legal_number (char *string, long *result) { long value; char *ep; @@ -75,8 +72,7 @@ legal_number (string, result) /* Return the number of elements in LIST, a generic list. */ int -list_length (list) - GENERIC_LIST *list; +list_length (GENERIC_LIST *list) { register int i; @@ -85,8 +81,7 @@ list_length (list) } GENERIC_LIST * -reverse_list (list) - GENERIC_LIST *list; +reverse_list (GENERIC_LIST *list) { register GENERIC_LIST *next, *prev; @@ -101,8 +96,7 @@ reverse_list (list) } WORD_DESC * -make_bare_word (string) - char *string; +make_bare_word (char *string) { WORD_DESC *temp; @@ -119,9 +113,7 @@ make_bare_word (string) return (temp); } WORD_LIST * -make_word_list (word, link) - WORD_DESC *word; - WORD_LIST *link; +make_word_list (WORD_DESC *word, WORD_LIST *link) { WORD_LIST *temp; @@ -140,16 +132,13 @@ builtin_usage() } char * -xmalloc(s) - size_t s; +xmalloc (size_t s) { return (malloc (s)); } WORD_LIST * -argv_to_word_list (array, copy, starting_index) - char **array; - int copy, starting_index; +argv_to_word_list (char **array, int copy, int starting_index) { WORD_LIST *list; WORD_DESC *w; @@ -178,9 +167,7 @@ argv_to_word_list (array, copy, starting_index) in the list in *IP, if IP is non-null. A convenience function for loadable builtins; also used by `test'. */ char ** -make_builtin_argv (list, ip) - WORD_LIST *list; - int *ip; +make_builtin_argv (WORD_LIST *list, int *ip) { char **argv; diff --git a/examples/loadables/finfo.c b/examples/loadables/finfo.c index 6491ef0e..24f20186 100644 --- a/examples/loadables/finfo.c +++ b/examples/loadables/finfo.c @@ -96,8 +96,7 @@ static int pmask; #define OPTIONS "acdgiflmnopsuACGMP:U" static int -octal(s) -char *s; +octal (char *s) { int r; @@ -108,9 +107,7 @@ char *s; } static int -finfo_main(argc, argv) -int argc; -char **argv; +finfo_main (int argc, char **argv) { register int i; int mode, flags, opt; @@ -162,8 +159,7 @@ char **argv; } static struct stat * -getstat(f) -char *f; +getstat (char *f) { static struct stat st; int fd, r; @@ -190,8 +186,7 @@ char *f; } static int -printfinfo(f) -char *f; +printfinfo (char *f) { struct stat *st; @@ -200,15 +195,13 @@ char *f; } static int -getperm(m) -int m; +getperm (int m) { return (m & (S_IRWXU|S_IRWXG|S_IRWXO|S_ISUID|S_ISGID)); } static void -perms(m) -int m; +perms (int m) { char ubits[4], gbits[4], obits[4]; /* u=rwx,g=rwx,o=rwx */ int i; @@ -251,8 +244,7 @@ int m; } static void -printmode(mode) -int mode; +printmode (int mode) { if (S_ISBLK(mode)) printf("S_IFBLK "); @@ -277,8 +269,7 @@ int mode; } static int -printst(st) -struct stat *st; +printst (struct stat *st) { struct passwd *pw; struct group *gr; @@ -314,9 +305,7 @@ struct stat *st; } static int -printsome(f, flags) -char *f; -int flags; +printsome (char *f, int flags) { struct stat *st; struct passwd *pw; @@ -400,8 +389,7 @@ int flags; #ifndef NOBUILTIN int -finfo_builtin(list) - WORD_LIST *list; +finfo_builtin (WORD_LIST *list) { int c, r; char **v; @@ -466,9 +454,8 @@ struct builtin finfo_struct = { char *this_command_name; -main(argc, argv) -int argc; -char **argv; +int +main (int argc, char **argv) { this_command_name = argv[0]; exit(finfo_main(argc, argv)); @@ -482,8 +469,7 @@ builtin_usage() #ifndef HAVE_STRERROR char * -strerror(e) -int e; +strerror (int e) { static char ebuf[40]; extern int sys_nerr; @@ -498,8 +484,7 @@ int e; #endif char * -xmalloc(s) -size_t s; +xmalloc (ssize_t s) { char *ret; extern char *malloc(); @@ -512,8 +497,7 @@ size_t s; } char * -base_pathname(p) -char *p; +base_pathname (char *p) { char *t; @@ -523,9 +507,7 @@ char *p; } int -legal_number (string, result) - char *string; - long *result; +legal_number (char *string, long *resuls) { int sign; long value; @@ -584,9 +566,7 @@ extern int optind; extern char *optarg; int -sh_getopt(c, v, o) -int c; -char **v, *o; +sh_getopt (int c, char **v, char *o) { int r; diff --git a/examples/loadables/getconf.c b/examples/loadables/getconf.c index 7edfbc96..0fcbbb56 100644 --- a/examples/loadables/getconf.c +++ b/examples/loadables/getconf.c @@ -1135,7 +1135,8 @@ getconf_builtin (WORD_LIST *list) } list = loptend; - if ((aflag == 0 && list == 0) || (aflag && list) || list_length(list) > 2) + if ((aflag == 0 && list == 0) || (aflag && list) + || list_length ((GENERIC_LIST *) list) > 2) { builtin_usage(); return (EX_USAGE); diff --git a/examples/loadables/id.c b/examples/loadables/id.c index f46f75ce..98c37ea3 100644 --- a/examples/loadables/id.c +++ b/examples/loadables/id.c @@ -41,9 +41,9 @@ #endif #if !defined (HAVE_GETPW_DECLS) -extern struct passwd *getpwuid (); +extern struct passwd *getpwuid (uid_t); #endif -extern struct group *getgrgid (); +extern struct group *getgrgid (gid_t); #include "shell.h" #include "builtins.h" diff --git a/examples/loadables/pathchk.c b/examples/loadables/pathchk.c index 174ba976..59abd9b4 100644 --- a/examples/loadables/pathchk.c +++ b/examples/loadables/pathchk.c @@ -99,8 +99,7 @@ extern char *strerror (int); static int validate_path (char *, int); int -pathchk_builtin (list) - WORD_LIST *list; +pathchk_builtin (WORD_LIST *list) { int retval, pflag, opt; diff --git a/examples/loadables/pushd.def b/examples/loadables/pushd.def index 87300dca..55bc2e1c 100644 --- a/examples/loadables/pushd.def +++ b/examples/loadables/pushd.def @@ -127,12 +127,12 @@ static int directory_list_size; /* Offset to the end of the list. */ static int directory_list_offset; -static void pushd_error (); +static void pushd_error (int, char *); static void clear_directory_stack (); -static int cd_to_string (); -static int change_to_temp (); -static int get_dirstack_index (); -static void add_dirstack_element (); +static int cd_to_string (char *); +static int change_to_temp (char *); +static int get_dirstack_index (int, int, int *); +static void add_dirstack_element (char *); #define NOCD 0x01 #define ROTATE 0x02 @@ -140,8 +140,7 @@ static void add_dirstack_element (); #define CLEARSTAK 0x08 int -pushd_builtin (list) - WORD_LIST *list; +pushd_builtin (WORD_LIST *list) { char *temp, *current_directory, *top; int j, flags; @@ -274,8 +273,7 @@ pushd_builtin (list) If LIST is non-null it should consist of a word +N or -N, which says what element to delete from the stack. The default is the top one. */ int -popd_builtin (list) - WORD_LIST *list; +popd_builtin (WORD_LIST *list) { register int i; long which; @@ -351,8 +349,7 @@ popd_builtin (list) /* Print the current list of directories on the directory stack. */ int -dirs_builtin (list) - WORD_LIST *list; +dirs_builtin (WORD_LIST *list) { int flags, desired_index, index_flag, vflag; long i; @@ -460,9 +457,7 @@ dirs_builtin (list) } static void -pushd_error (offset, arg) - int offset; - char *arg; +pushd_error (int offset, char *arg) { if (offset == 0) builtin_error ("directory stack empty"); @@ -486,8 +481,7 @@ clear_directory_stack () so if the result is EXECUTION_FAILURE then an error message has already been printed. */ static int -cd_to_string (name) - char *name; +cd_to_string (char *name) { WORD_LIST *tlist; int result; @@ -499,8 +493,7 @@ cd_to_string (name) } static int -change_to_temp (temp) - char *temp; +change_to_temp (char *temp) { int tt; @@ -513,8 +506,7 @@ change_to_temp (temp) } static void -add_dirstack_element (dir) - char *dir; +add_dirstack_element (char *dir) { int j; @@ -527,8 +519,7 @@ add_dirstack_element (dir) } static int -get_dirstack_index (ind, sign, indexp) - int ind, sign, *indexp; +get_dirstack_index (int ind, int sign, int *indexp) { if (indexp) *indexp = sign > 0 ? 1 : 2; @@ -548,8 +539,7 @@ get_dirstack_index (ind, sign, indexp) } char * -get_dirstack_element (ind, sign) - int ind, sign; +get_dirstack_element (int ind, int sign) { int i; @@ -559,9 +549,7 @@ get_dirstack_element (ind, sign) } void -set_dirstack_element (ind, sign, value) - int ind, sign; - char *value; +set_dirstack_element (int ind, int sign, char *value) { int i; diff --git a/examples/loadables/tee.c b/examples/loadables/tee.c index 9f26b2d4..c74cb647 100644 --- a/examples/loadables/tee.c +++ b/examples/loadables/tee.c @@ -58,7 +58,7 @@ static FLIST *tee_flist; extern int interrupt_immediately; -extern char *strerror (); +extern char *strerror (int); int tee_builtin (WORD_LIST *list) diff --git a/examples/loadables/tty.c b/examples/loadables/tty.c index b717766a..27a851bf 100644 --- a/examples/loadables/tty.c +++ b/examples/loadables/tty.c @@ -28,7 +28,7 @@ #include "bashgetopt.h" #include "common.h" -extern char *ttyname (); +extern char *ttyname (int); int tty_builtin (WORD_LIST *list) diff --git a/execute_cmd.c b/execute_cmd.c index 7a861826..6546ea8c 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -3365,7 +3365,7 @@ execute_select_command (SELECT_COM *select_command) /* command and arithmetic substitution, parameter and variable expansion, word splitting, pathname expansion, and quote removal. */ list = releaser = expand_words_no_vars (select_command->map_list); - list_len = list_length (list); + list_len = list_length ((GENERIC_LIST *) list); if (list == 0 || list_len == 0) { if (list) diff --git a/expr.c b/expr.c index 1b4e4658..164e031e 100644 --- a/expr.c +++ b/expr.c @@ -1615,6 +1615,9 @@ strlong (char *num) } #if defined (EXPR_TEST) + +#include <stdarg.h> + void * xmalloc (size_t n) { @@ -1634,6 +1637,7 @@ char *get_string_value () { return 0; } procenv_t top_level; +int main (int argc, char **argv) { register int i; @@ -1655,11 +1659,13 @@ main (int argc, char **argv) } int -builtin_error (format, arg1, arg2, arg3, arg4, arg5) - char *format; +builtin_error (const char *format, ...) { + va_list args; + va_start (args, format); fprintf (stderr, "expr: "); - fprintf (stderr, format, arg1, arg2, arg3, arg4, arg5); + vfprintf (stderr, format, args); + va_end (args); fprintf (stderr, "\n"); return 0; } diff --git a/externs.h b/externs.h index a5945060..919cf333 100644 --- a/externs.h +++ b/externs.h @@ -152,12 +152,10 @@ extern int locale_decpoint (void); /* Declarations for functions defined in list.c. */ extern void list_walk (GENERIC_LIST *, sh_glist_func_t *); extern void wlist_walk (WORD_LIST *, sh_icpfunc_t *); -/* type punning used to pass arbitrary list types to list_reverse, et al so - there are no prototypes. */ -extern GENERIC_LIST *list_reverse (); -extern int list_length (); -extern GENERIC_LIST *list_append (); -extern GENERIC_LIST *list_remove (); /* unused */ +extern GENERIC_LIST *list_reverse (GENERIC_LIST *); +extern int list_length (GENERIC_LIST *); +extern GENERIC_LIST *list_append (GENERIC_LIST *, GENERIC_LIST *); +extern GENERIC_LIST *list_remove (GENERIC_LIST **, sh_gcp_func_t *, char *); /* unused */ /* Declarations for functions defined in stringlib.c */ extern int find_string_in_alist (char *, STRING_INT_ALIST *, int); diff --git a/include/memalloc.h b/include/memalloc.h index 57318b9d..4ec98e8f 100644 --- a/include/memalloc.h +++ b/include/memalloc.h @@ -45,17 +45,13 @@ # include <alloca.h> # endif /* !IBMESA */ # else /* !HAVE_ALLOCA_H || C_ALLOCA */ -# if defined (__hpux) && defined (__STDC__) && !defined (alloca) -extern void *alloca (); -# else -# if !defined (alloca) -# if defined (__STDC__) +# if !defined (alloca) +# if defined (__STDC__) extern void *alloca (size_t); -# else +# else extern char *alloca (); -# endif /* !__STDC__ */ -# endif /* !alloca */ -# endif /* !__hpux || !__STDC__ && !alloca */ +# endif /* !__STDC__ */ +# endif /* !alloca */ # endif /* !HAVE_ALLOCA_H || C_ALLOCA */ #endif /* !__GNUC__ || C_ALLOCA */ diff --git a/input.c b/input.c index f739de18..ad0d2f68 100644 --- a/input.c +++ b/input.c @@ -632,6 +632,7 @@ BASH_INPUT bash_input; struct stat dsb; /* can be used from gdb */ /* imitate /bin/cat */ +int main(int argc, char **argv) { register int i; diff --git a/lib/glob/glob.c b/lib/glob/glob.c index f9a73b80..4f7b746b 100644 --- a/lib/glob/glob.c +++ b/lib/glob/glob.c @@ -1550,9 +1550,8 @@ only_filename: #if defined (TEST) -main (argc, argv) - int argc; - char **argv; +int +main (int argc, char **argv) { unsigned int i; diff --git a/lib/glob/gm_loop.c b/lib/glob/gm_loop.c index 840631da..583ba2f4 100644 --- a/lib/glob/gm_loop.c +++ b/lib/glob/gm_loop.c @@ -18,8 +18,7 @@ #if EXTENDED_GLOB int -EXTGLOB_PATTERN_P (pat) - const CHAR *pat; +EXTGLOB_PATTERN_P (const CHAR *pat) { switch (pat[0]) { @@ -42,9 +41,7 @@ EXTGLOB_PATTERN_P (pat) versions. FLAGS is a subset of strmatch flags; used to do case-insensitive matching for now. */ int -MATCH_PATTERN_CHAR (pat, string, flags) - CHAR *pat, *string; - int flags; +MATCH_PATTERN_CHAR (CHAR *pat, CHAR *string, int flags) { CHAR c; @@ -71,9 +68,7 @@ MATCH_PATTERN_CHAR (pat, string, flags) } int -MATCHLEN (pat, max) - CHAR *pat; - size_t max; +MATCHLEN (CHAR *pat, size_t max) { CHAR c; int matlen, bracklen, in_cclass, in_collsym, in_equiv; diff --git a/lib/glob/ndir.h b/lib/glob/ndir.h index 31261eb0..60c8137a 100644 --- a/lib/glob/ndir.h +++ b/lib/glob/ndir.h @@ -42,9 +42,10 @@ typedef struct { char dd_buf[DIRBLKSIZ]; /* Directory block. */ } DIR; -extern DIR *opendir (); -extern struct direct *readdir (); -extern long telldir (); -extern void seekdir (), closedir (); +extern DIR *opendir (const char *); +extern struct direct *readdir (DIR *); +extern long telldir (DIR *); +extern void seekdir (DIR *, long); +int closedir (DIR *); #define rewinddir(dirp) seekdir (dirp, 0L) diff --git a/lib/glob/strmatch.c b/lib/glob/strmatch.c index 5a2c15f9..076ef2cf 100644 --- a/lib/glob/strmatch.c +++ b/lib/glob/strmatch.c @@ -50,9 +50,8 @@ wcsmatch (wchar_t *wpattern, wchar_t *wstring, int flags) #endif #ifdef TEST -main (c, v) - int c; - char **v; +int +main (int c, char **v) { char *string, *pat; diff --git a/lib/malloc/memtest.c b/lib/malloc/memtest.c index 911567f9..9d537446 100644 --- a/lib/malloc/memtest.c +++ b/lib/malloc/memtest.c @@ -35,6 +35,7 @@ static char xp[64]; +int main(int c, char **v) { char *p; diff --git a/lib/readline/bind.c b/lib/readline/bind.c index 54ee5cde..524ef34a 100644 --- a/lib/readline/bind.c +++ b/lib/readline/bind.c @@ -1167,9 +1167,7 @@ _rl_init_file_error (va_alist) /* **************************************************************** */ static int -parse_comparison_op (s, indp) - const char *s; - int *indp; +parse_comparison_op (const char *s, int *indp) { int i, peekc, op; diff --git a/lib/readline/doc/hstech.texi b/lib/readline/doc/hstech.texi index 7a6d7627..5d4efe53 100644 --- a/lib/readline/doc/hstech.texi +++ b/lib/readline/doc/hstech.texi @@ -517,9 +517,8 @@ The following program demonstrates simple use of the @sc{gnu} History Library. #include <stdio.h> #include <readline/history.h> -main (argc, argv) - int argc; - char **argv; +int +main (int argc, char **argv) @{ char line[1024], *t; int len, done = 0; diff --git a/lib/readline/doc/rltech.texi b/lib/readline/doc/rltech.texi index f40bc2bd..0ba1510e 100644 --- a/lib/readline/doc/rltech.texi +++ b/lib/readline/doc/rltech.texi @@ -2425,8 +2425,8 @@ COMMAND commands[] = @{ @}; /* Forward declarations. */ -char *stripwhite (); -COMMAND *find_command (); +char *stripwhite (char *); +COMMAND *find_command (char *); /* The name of this program, as taken from argv[0]. */ char *progname; @@ -2435,8 +2435,7 @@ char *progname; int done; char * -dupstr (s) - char *s; +dupstr (char *s) @{ char *r; @@ -2445,9 +2444,8 @@ dupstr (s) return (r); @} -main (argc, argv) - int argc; - char **argv; +int +main (int argc, char **argv) @{ char *line, *s; @@ -2523,8 +2521,7 @@ execute_line (line) /* Look up NAME as the name of a command, and return a pointer to that command. Return a NULL pointer if NAME isn't a command name. */ COMMAND * -find_command (name) - char *name; +find_command (char *name) @{ register int i; @@ -2538,8 +2535,7 @@ find_command (name) /* Strip whitespace from the start and end of STRING. Return a pointer into STRING. */ char * -stripwhite (string) - char *string; +stripwhite (char *string) @{ register char *s, *t; diff --git a/lib/readline/examples/fileman.c b/lib/readline/examples/fileman.c index 2a8b097a..25085beb 100644 --- a/lib/readline/examples/fileman.c +++ b/lib/readline/examples/fileman.c @@ -105,8 +105,8 @@ COMMAND commands[] = { }; /* Forward declarations. */ -char *stripwhite (); -COMMAND *find_command (); +char *stripwhite (char *); +COMMAND *find_command (char *); /* The name of this program, as taken from argv[0]. */ char *progname; @@ -126,9 +126,7 @@ dupstr (s) } int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { char *line, *s; @@ -202,8 +200,7 @@ execute_line (line) /* Look up NAME as the name of a command, and return a pointer to that command. Return a NULL pointer if NAME isn't a command name. */ COMMAND * -find_command (name) - char *name; +find_command (char *name) { register int i; @@ -217,8 +214,7 @@ find_command (name) /* Strip whitespace from the start and end of STRING. Return a pointer into STRING. */ char * -stripwhite (string) - char *string; +stripwhite (char *string) { register char *s, *t; diff --git a/lib/readline/examples/histexamp.c b/lib/readline/examples/histexamp.c index b321dd0b..b97ee66a 100644 --- a/lib/readline/examples/histexamp.c +++ b/lib/readline/examples/histexamp.c @@ -32,9 +32,7 @@ #include <string.h> int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { char line[1024], *t; int len, done; diff --git a/lib/readline/examples/rl.c b/lib/readline/examples/rl.c index 39e5b8eb..726ca951 100644 --- a/lib/readline/examples/rl.c +++ b/lib/readline/examples/rl.c @@ -82,9 +82,7 @@ usage() } int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { char *temp, *prompt; struct stat sb; diff --git a/lib/readline/examples/rlcat.c b/lib/readline/examples/rlcat.c index aabe0ca3..211416cc 100644 --- a/lib/readline/examples/rlcat.c +++ b/lib/readline/examples/rlcat.c @@ -64,7 +64,7 @@ extern int errno; extern int optind; extern char *optarg; -static int stdcat(); +static int stdcat (int, char **); static char *progname; static int vflag; @@ -76,9 +76,7 @@ usage() } int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { char *temp; int opt, Vflag, Nflag; @@ -155,9 +153,7 @@ fcopy(fp) } int -stdcat (argc, argv) - int argc; - char **argv; +stdcat (int argc, char **argv) { int i, fd, r; char *s; diff --git a/lib/readline/rltty.c b/lib/readline/rltty.c index d9b0cd1c..1bb2338c 100644 --- a/lib/readline/rltty.c +++ b/lib/readline/rltty.c @@ -80,8 +80,7 @@ static int ksrflow; /* Dummy call to force a backgrounded readline to stop before it tries to get the tty settings. */ static void -set_winsize (tty) - int tty; +set_winsize (int tty) { #if defined (TIOCGWINSZ) struct winsize w; diff --git a/lib/readline/text.c b/lib/readline/text.c index abe99b34..62e4da2a 100644 --- a/lib/readline/text.c +++ b/lib/readline/text.c @@ -1764,8 +1764,7 @@ _rl_char_search (int count, int fdir, int bdir) #if defined (READLINE_CALLBACKS) static int -_rl_char_search_callback (data) - _rl_callback_generic_arg *data; +_rl_char_search_callback (_rl_callback_generic_arg *data) { _rl_callback_func = 0; _rl_want_redisplay = 1; diff --git a/lib/sh/getcwd.c b/lib/sh/getcwd.c index 1a39b9f6..8bd6c31f 100644 --- a/lib/sh/getcwd.c +++ b/lib/sh/getcwd.c @@ -325,9 +325,8 @@ getcwd (char *buf, size_t size) #if defined (TEST) # include <stdio.h> -main (argc, argv) - int argc; - char **argv; +int +main (int argc, char **argv) { char b[PATH_MAX]; diff --git a/lib/sh/snprintf.c b/lib/sh/snprintf.c index 68258e46..891ba91b 100644 --- a/lib/sh/snprintf.c +++ b/lib/sh/snprintf.c @@ -1757,6 +1757,7 @@ xfree(void *x) } /* set of small tests for snprintf() */ +int main(int c, char **v) { char holder[100]; diff --git a/lib/sh/strftime.c b/lib/sh/strftime.c index 60bee79f..ef1440c8 100644 --- a/lib/sh/strftime.c +++ b/lib/sh/strftime.c @@ -981,9 +981,7 @@ static char *array[] = /* main routine. */ int -main(argc, argv) -int argc; -char **argv; +main (int argc, char **argv) { long time(); diff --git a/lib/sh/stringlist.c b/lib/sh/stringlist.c index 61e41bf3..f08691b1 100644 --- a/lib/sh/stringlist.c +++ b/lib/sh/stringlist.c @@ -253,7 +253,7 @@ strlist_from_word_list (WORD_LIST *list, int alloc, int starting_index, int *ip) *ip = 0; return ((STRINGLIST *)0); } - slen = list_length (list); + slen = list_length ((GENERIC_LIST *) list); ret = (STRINGLIST *)xmalloc (sizeof (STRINGLIST)); ret->list = strvec_from_word_list (list, alloc, starting_index, &len); ret->list_size = slen + starting_index; diff --git a/lib/sh/stringvec.c b/lib/sh/stringvec.c index 2e71fe5d..8b3929cc 100644 --- a/lib/sh/stringvec.c +++ b/lib/sh/stringvec.c @@ -206,7 +206,7 @@ strvec_from_word_list (WORD_LIST *list, int alloc, int starting_index, int *ip) int count; char **array; - count = list_length (list); + count = list_length ((GENERIC_LIST *) list); array = (char **)xmalloc ((1 + count + starting_index) * sizeof (char *)); for (count = 0; count < starting_index; count++) diff --git a/lib/termcap/termcap.c b/lib/termcap/termcap.c index 87fae05f..51e26b6f 100644 --- a/lib/termcap/termcap.c +++ b/lib/termcap/termcap.c @@ -770,9 +770,8 @@ gobble_line (fd, bufp, append_end) #include <stdio.h> -main (argc, argv) - int argc; - char **argv; +int +main (int argc, int argv) { char *term; char *buf; diff --git a/lib/termcap/tparam.c b/lib/termcap/tparam.c index c4bff088..72fa558d 100644 --- a/lib/termcap/tparam.c +++ b/lib/termcap/tparam.c @@ -328,9 +328,8 @@ tparam1 (string, outstring, len, up, left, argp) #ifdef DEBUG -main (argc, argv) - int argc; - char **argv; +int +main (int argc, char **argv) { char buf[50]; int args[3]; diff --git a/lib/tilde/shell.c b/lib/tilde/shell.c index 9805a924..de974366 100644 --- a/lib/tilde/shell.c +++ b/lib/tilde/shell.c @@ -45,7 +45,7 @@ #include <pwd.h> #if !defined (HAVE_GETPW_DECLS) -extern struct passwd *getpwuid (); +extern struct passwd *getpwuid (uid_t); #endif /* !HAVE_GETPW_DECLS */ char * diff --git a/lib/tilde/tilde.c b/lib/tilde/tilde.c index c31f9213..84137c00 100644 --- a/lib/tilde/tilde.c +++ b/lib/tilde/tilde.c @@ -50,7 +50,7 @@ #include "tilde.h" #if defined (TEST) || defined (STATIC_MALLOC) -static void *xmalloc (), *xrealloc (); +static void *xmalloc (size_t), *xrealloc (void *, int); #else # include "xmalloc.h" #endif /* TEST || STATIC_MALLOC */ @@ -423,6 +423,7 @@ tilde_expand_word (const char *filename) #undef NULL #include <stdio.h> +int main (int argc, char **argv) { char *result, line[512]; diff --git a/pcomplete.c b/pcomplete.c index 9eb20eae..3d54d296 100644 --- a/pcomplete.c +++ b/pcomplete.c @@ -893,7 +893,7 @@ gen_wordlist_matches (COMPSPEC *cs, const char *text) l2 = expand_words_shellexp (l); dispose_words (l); - nw = list_length (l2); + nw = list_length ((GENERIC_LIST *) l2); sl = strlist_create (nw + 1); ntxt = bash_dequote_text (text); diff --git a/shell.c b/shell.c index 28940ad1..993b9a1f 100644 --- a/shell.c +++ b/shell.c @@ -94,7 +94,7 @@ extern int get_tty_state (void); #endif #if !defined (HAVE_GETPW_DECLS) -extern struct passwd *getpwuid (); +extern struct passwd *getpwuid (uid_t); #endif /* !HAVE_GETPW_DECLS */ #if !defined (errno) diff --git a/subst.c b/subst.c index a2b719ff..f45e29b8 100644 --- a/subst.c +++ b/subst.c @@ -12053,7 +12053,9 @@ glob_expand_word_list (WORD_LIST *tlist, int eflags) if (glob_list) { - output_list = (WORD_LIST *)list_append (glob_list, output_list); + output_list = ((WORD_LIST *) + list_append ((GENERIC_LIST *) glob_list, + (GENERIC_LIST *) output_list)); PREPEND_LIST (tlist, disposables); } else if (fail_glob_expansion != 0) @@ -12532,7 +12534,8 @@ shell_expand_word_list (WORD_LIST *tlist, int eflags) } expanded = REVERSE_LIST (temp_list, WORD_LIST *); - new_list = (WORD_LIST *)list_append (expanded, new_list); + new_list = (WORD_LIST *)list_append ((GENERIC_LIST *) expanded, + (GENERIC_LIST *) new_list); } if (orig_list) diff --git a/support/bashversion.c b/support/bashversion.c index 63a634d0..fe11f5ea 100644 --- a/support/bashversion.c +++ b/support/bashversion.c @@ -60,9 +60,7 @@ usage() } int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { int opt, oflags; char dv[128], *rv; diff --git a/support/endian.c b/support/endian.c index 3c92ae8f..27f5b125 100644 --- a/support/endian.c +++ b/support/endian.c @@ -39,9 +39,8 @@ char nstring[9]; /* Stuff "1234" into a long, and compare it against a character string "1234". If the results are EQ, the machine is big endian like a 68000 or Sparc, otherwise it is little endian, like a Vax, or 386. */ -main (argc, argv) - int argc; - char **argv; +int +main (int argc, char **argv) { #if defined (__STDC__) register size_t i; diff --git a/support/memtest.c b/support/memtest.c index 39ffd0f3..80cafa23 100644 --- a/support/memtest.c +++ b/support/memtest.c @@ -37,6 +37,7 @@ int interrupt_immediately = 0; static char xp[64]; +int main(int c, char **v) { char *p; diff --git a/support/mksignames.c b/support/mksignames.c index 0a48cee4..98c4c743 100644 --- a/support/mksignames.c +++ b/support/mksignames.c @@ -45,8 +45,7 @@ extern char *signal_names[]; char *progname; void -write_signames (stream) - FILE *stream; +write_signames (FILE *stream) { register int i; @@ -71,9 +70,7 @@ write_signames (stream) } int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { char *stream_name; FILE *stream; diff --git a/support/printenv.c b/support/printenv.c index 154e086c..c055ec17 100644 --- a/support/printenv.c +++ b/support/printenv.c @@ -34,9 +34,7 @@ extern char **environ; int -main (argc, argv) - int argc; - char **argv; +main (int argc, char **argv) { register char **envp, *eval; int len; diff --git a/support/recho.c b/support/recho.c index 7e3c6bc6..f4a36084 100644 --- a/support/recho.c +++ b/support/recho.c @@ -31,12 +31,10 @@ #include "bashansi.h" #include <stdio.h> -void strprint(); +void strprint (char *); int -main(argc, argv) -int argc; -char **argv; +main (int argc, char **argv) { register int i; @@ -49,8 +47,7 @@ char **argv; } void -strprint(str) -char *str; +strprint (char *str) { register unsigned char *s; diff --git a/support/rlvers.sh b/support/rlvers.sh index 64cadc77..03ed901f 100644 --- a/support/rlvers.sh +++ b/support/rlvers.sh @@ -78,6 +78,7 @@ cat > $TDIR/rlvers.c << EOF #include <stdio.h> extern char *rl_library_version; +int main() { printf("%s\n", rl_library_version ? rl_library_version : "0"); diff --git a/support/version2.c b/support/version2.c index 83e2b13f..dd14dcd0 100644 --- a/support/version2.c +++ b/support/version2.c @@ -77,8 +77,7 @@ shell_version_string () } void -show_shell_version (extended) - int extended; +show_shell_version (int extended) { printf (_("GNU bash, version %s (%s)\n"), shell_version_string (), MACHTYPE); if (extended) diff --git a/support/xcase.c b/support/xcase.c index 527840db..86d48b60 100644 --- a/support/xcase.c +++ b/support/xcase.c @@ -42,9 +42,7 @@ extern int optind; #define UPPER 2 int -main(ac, av) -int ac; -char **av; +main (int ac, char **av) { int c, x; int op; diff --git a/support/zecho.c b/support/zecho.c index f3a4fe03..9237783e 100644 --- a/support/zecho.c +++ b/support/zecho.c @@ -26,9 +26,7 @@ #include <stdio.h> int -main(argc, argv) -int argc; -char **argv; +main (int argc, char **argv) { argv++; diff --git a/tests/misc/regress/getdate.y b/tests/misc/regress/getdate.y index 1df37738..5b0c288e 100644 --- a/tests/misc/regress/getdate.y +++ b/tests/misc/regress/getdate.y @@ -111,7 +111,7 @@ static int mdays[12] = {31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; #define epoch 1970 -extern struct tm *localtime(); +extern struct tm *localtime (const time_t *); static time_t dateconv(mm, dd, yy, h, m, s, mer, zone, dayflag) @@ -545,9 +545,8 @@ struct timeb *now; yyerror(s) char *s; {} -main(c, v) -int c; -char **v; +int +main (int c, char **v) { printf("%d\n", getdate(v[1], (struct timeb *)0)); } diff --git a/variables.c b/variables.c index 9f944067..1d67cc8c 100644 --- a/variables.c +++ b/variables.c @@ -2445,8 +2445,7 @@ find_function_def (const char *name) /* Return the value of VAR. VAR is assumed to have been the result of a lookup without any subscript, if arrays are compiled into the shell. */ char * -get_variable_value (var) - SHELL_VAR *var; +get_variable_value (SHELL_VAR *var) { if (var == 0) return ((char *)NULL); diff --git a/version.c b/version.c index 5bb456ac..90aab5c9 100644 --- a/version.c +++ b/version.c @@ -80,8 +80,7 @@ shell_version_string () } void -show_shell_version (extended) - int extended; +show_shell_version (int extended) { printf (_("GNU bash, version %s (%s)\n"), shell_version_string (), MACHTYPE); if (extended) -- 2.39.2