diff --git a/ChangeLog b/ChangeLog index fc2e0bc5..7986bc97 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-06-20 Hrvoje Niksic + + * configure.in: Don't check for the return type of signal + handlers; C89 requires it to be void. + 2005-06-19 Hrvoje Niksic * aclocal.m4: Remove support for K&R compilers. diff --git a/configure.in b/configure.in index ca56ace1..09e9bd5f 100644 --- a/configure.in +++ b/configure.in @@ -191,7 +191,6 @@ dnl AC_TYPE_SIZE_T AC_TYPE_PID_T AC_CHECK_TYPES(uint32_t) -AC_TYPE_SIGNAL AC_CHECK_TYPES(sig_atomic_t, [], [], [ #include #include diff --git a/src/ChangeLog b/src/ChangeLog index fc3a5bc1..a3b726c2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2005-06-20 Hrvoje Niksic + + * all: Return type of signal handlers is `void'. Include signal.h + unconditionally. + + * all: Don't explicitly cast values returned by malloc. We no + longer support ancient compilers that don't declare malloc, and we + never supported C++ builds. + 2005-06-19 Hrvoje Niksic * all: Don't declare errno. Include both time.h and sys/time.h, diff --git a/src/convert.c b/src/convert.c index 04beea24..8c1d007c 100644 --- a/src/convert.c +++ b/src/convert.c @@ -382,7 +382,7 @@ construct_relative (const char *basefile, const char *linkfile) } /* Construct LINK as explained above. */ - link = (char *)xmalloc (3 * basedirs + strlen (linkfile) + 1); + link = xmalloc (3 * basedirs + strlen (linkfile) + 1); for (i = 0; i < basedirs; i++) memcpy (link + 3 * i, "../", 3); strcpy (link + 3 * i, linkfile); @@ -985,7 +985,7 @@ html_quote_string (const char *s) else if (*s == ' ') i += 4; /* #32; */ } - res = (char *)xmalloc (i + 1); + res = xmalloc (i + 1); s = b; for (p = res; *s; s++) { diff --git a/src/ftp-ls.c b/src/ftp-ls.c index ca56a094..6fa16fa6 100644 --- a/src/ftp-ls.c +++ b/src/ftp-ls.c @@ -330,7 +330,7 @@ ftp_parse_unix_ls (const char *file, int ignore_perms) default -F output. I believe these cases are very rare. */ fnlen = strlen (tok); /* re-calculate `fnlen' */ - cur.name = (char *)xmalloc (fnlen + 1); + cur.name = xmalloc (fnlen + 1); memcpy (cur.name, tok, fnlen + 1); if (fnlen) { @@ -775,14 +775,14 @@ ftp_parse_vms_ls (const char *file) /* And put everything into the linked list */ if (!dir) { - l = dir = (struct fileinfo *)xmalloc (sizeof (struct fileinfo)); + l = dir = xnew (struct fileinfo); memcpy (l, &cur, sizeof (cur)); l->prev = l->next = NULL; } else { cur.prev = l; - l->next = (struct fileinfo *)xmalloc (sizeof (struct fileinfo)); + l->next = xnew (struct fileinfo); l = l->next; memcpy (l, &cur, sizeof (cur)); l->next = NULL; diff --git a/src/hash.c b/src/hash.c index e344092e..ec9b7b54 100644 --- a/src/hash.c +++ b/src/hash.c @@ -1,5 +1,5 @@ /* Hash tables. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000-2003 Free Software Foundation, Inc. This file is part of GNU Wget. @@ -48,8 +48,7 @@ so, delete this exception statement from your version. */ /* Make do without them. */ # define xnew(x) xmalloc (sizeof (x)) # define xnew_array(type, x) xmalloc (sizeof (type) * (x)) -# define xmalloc malloc /* or something that exits - if not enough memory */ +# define xmalloc malloc # define xfree free # define countof(x) (sizeof (x) / sizeof ((x)[0])) # define TOLOWER(x) ('A' <= (x) && (x) <= 'Z' ? (x) - 32 : (x)) diff --git a/src/html-parse.c b/src/html-parse.c index 4a0a5257..19fbd3cf 100644 --- a/src/html-parse.c +++ b/src/html-parse.c @@ -241,7 +241,7 @@ struct pool { if (ga_newsize != (sizevar)) \ { \ if (resized) \ - basevar = (type *)xrealloc (basevar, ga_newsize * sizeof (type)); \ + basevar = xrealloc (basevar, ga_newsize * sizeof (type)); \ else \ { \ void *ga_new = xmalloc (ga_newsize * sizeof (type)); \ @@ -1051,7 +1051,7 @@ test_mapper (struct taginfo *taginfo, void *arg) int main () { int size = 256; - char *x = (char *)xmalloc (size); + char *x = xmalloc (size); int length = 0; int read_count; int tag_counter = 0; @@ -1060,7 +1060,7 @@ int main () { length += read_count; size <<= 1; - x = (char *)xrealloc (x, size); + x = xrealloc (x, size); } map_html_tags (x, length, test_mapper, &tag_counter, 0, NULL, NULL); diff --git a/src/http.c b/src/http.c index 7b3f379d..06c3c5bd 100644 --- a/src/http.c +++ b/src/http.c @@ -2870,14 +2870,14 @@ digest_authentication_encode (const char *au, const char *user, gen_md5_finish (ctx, hash); dump_hash (response_digest, hash); - res = (char*) xmalloc (strlen (user) - + strlen (user) - + strlen (realm) - + strlen (nonce) - + strlen (path) - + 2 * MD5_HASHLEN /*strlen (response_digest)*/ - + (opaque ? strlen (opaque) : 0) - + 128); + res = xmalloc (strlen (user) + + strlen (user) + + strlen (realm) + + strlen (nonce) + + strlen (path) + + 2 * MD5_HASHLEN /*strlen (response_digest)*/ + + (opaque ? strlen (opaque) : 0) + + 128); sprintf (res, "Digest \ username=\"%s\", realm=\"%s\", nonce=\"%s\", uri=\"%s\", response=\"%s\"", user, realm, nonce, path, response_digest); diff --git a/src/log.c b/src/log.c index 8823f736..d0b5370a 100644 --- a/src/log.c +++ b/src/log.c @@ -208,7 +208,7 @@ saved_append_1 (const char *start, const char *end) { /* Allocate memory and concatenate the old and the new contents. */ - ln->malloced_line = (char *)xmalloc (old_len + len + 1); + ln->malloced_line = xmalloc (old_len + len + 1); memcpy (ln->malloced_line, ln->static_line, old_len); memcpy (ln->malloced_line + old_len, start, len); diff --git a/src/main.c b/src/main.c index f9eabaf8..43496dcf 100644 --- a/src/main.c +++ b/src/main.c @@ -35,9 +35,7 @@ so, delete this exception statement from your version. */ # include #endif /* HAVE_UNISTD_H */ #include -#ifdef HAVE_SIGNAL_H -# include -#endif +#include #ifdef HAVE_NLS #ifdef HAVE_LOCALE_H # include @@ -70,7 +68,7 @@ extern char *version_string; extern struct cookie_jar *wget_cookie_jar; -static RETSIGTYPE redirect_output_signal (int); +static void redirect_output_signal (int); const char *exec_name; @@ -993,13 +991,9 @@ Can't timestamp and not clobber old files at the same time.\n")); #ifdef HAVE_SIGNAL /* Hangup signal handler. When wget receives SIGHUP or SIGUSR1, it will proceed operation as usual, trying to write into a log file. - If that is impossible, the output will be turned off. + If that is impossible, the output will be turned off. */ - #### It is unsafe to do call libc functions from a signal handler. - What we should do is, set a global variable, and have the code in - log.c pick it up. */ - -static RETSIGTYPE +static void redirect_output_signal (int sig) { const char *signal_name = (sig == SIGHUP ? "SIGHUP" : diff --git a/src/mswindows.c b/src/mswindows.c index 18a4e07f..909c2abc 100644 --- a/src/mswindows.c +++ b/src/mswindows.c @@ -499,7 +499,7 @@ ws_changetitle (const char *url) { xfree_null (title_buf); xfree_null (curr_url); - title_buf = (char *)xmalloc (strlen (url) + 20); + title_buf = xmalloc (strlen (url) + 20); curr_url = xstrdup (url); old_percentage = -1; sprintf (title_buf, "Wget %s", curr_url); diff --git a/src/netrc.c b/src/netrc.c index 15cf0a68..158ef39f 100644 --- a/src/netrc.c +++ b/src/netrc.c @@ -164,7 +164,7 @@ read_whole_line (FILE *fp) { int length = 0; int bufsize = 81; - char *line = (char *)xmalloc (bufsize); + char *line = xmalloc (bufsize); while (fgets (line + length, bufsize - length, fp)) { @@ -220,7 +220,7 @@ maybe_add_to_list (acc_t **newentry, acc_t **list) } /* Allocate a new acc_t structure. */ - a = (acc_t *)xmalloc (sizeof (acc_t)); + a = xmalloc (sizeof (acc_t)); } /* Zero the structure, so that it is ready to use. */ diff --git a/src/progress.c b/src/progress.c index 04c7fc5c..28ad27de 100644 --- a/src/progress.c +++ b/src/progress.c @@ -36,9 +36,7 @@ so, delete this exception statement from your version. */ #ifdef HAVE_UNISTD_H # include #endif -#ifdef HAVE_SIGNAL_H -# include -#endif +#include #include "wget.h" #include "progress.h" @@ -956,7 +954,7 @@ bar_set_params (const char *params) } #ifdef SIGWINCH -RETSIGTYPE +void progress_handle_sigwinch (int sig) { received_sigwinch = 1; diff --git a/src/progress.h b/src/progress.h index 77907a99..e8e78700 100644 --- a/src/progress.h +++ b/src/progress.h @@ -39,6 +39,6 @@ int progress_interactive_p (void *); void progress_update (void *, wgint, double); void progress_finish (void *, double); -RETSIGTYPE progress_handle_sigwinch (int); +void progress_handle_sigwinch (int); #endif /* PROGRESS_H */ diff --git a/src/url.c b/src/url.c index 4aa51b5e..5f722c1a 100644 --- a/src/url.c +++ b/src/url.c @@ -205,7 +205,7 @@ url_escape_1 (const char *s, unsigned char mask, int allow_passthrough) return allow_passthrough ? (char *)s : xstrdup (s); newlen = (p1 - s) + addition; - newstr = (char *)xmalloc (newlen + 1); + newstr = xmalloc (newlen + 1); p1 = s; p2 = newstr; @@ -984,7 +984,7 @@ char * url_full_path (const struct url *url) { int length = full_path_length (url); - char *full_path = (char *) xmalloc (length + 1); + char *full_path = xmalloc (length + 1); full_path_write (url, full_path); full_path[length] = '\0'; @@ -1692,7 +1692,7 @@ uri_merge (const char *base, const char *link) start_insert = base; span = start_insert - base; - merge = (char *)xmalloc (span + linklength + 1); + merge = xmalloc (span + linklength + 1); if (span) memcpy (merge, base, span); memcpy (merge + span, link, linklength); @@ -1747,7 +1747,7 @@ uri_merge (const char *base, const char *link) start_insert = slash; span = start_insert - base; - merge = (char *)xmalloc (span + linklength + 1); + merge = xmalloc (span + linklength + 1); if (span) memcpy (merge, base, span); memcpy (merge + span, link, linklength); @@ -1785,7 +1785,7 @@ uri_merge (const char *base, const char *link) } span = start_insert - base; - merge = (char *)xmalloc (span + linklength + 1); + merge = xmalloc (span + linklength + 1); if (span) memcpy (merge, base, span); if (need_explicit_slash) diff --git a/src/utils.c b/src/utils.c index 38cc6d06..caf83412 100644 --- a/src/utils.c +++ b/src/utils.c @@ -45,9 +45,6 @@ so, delete this exception statement from your version. */ #ifdef HAVE_PWD_H # include #endif -#ifdef HAVE_LIMITS_H -# include -#endif #ifdef HAVE_UTIME_H # include #endif @@ -71,10 +68,7 @@ so, delete this exception statement from your version. */ #endif /* Needed for run_with_timeout. */ -#undef USE_SIGNAL_TIMEOUT -#ifdef HAVE_SIGNAL_H -# include -#endif +#include #ifdef HAVE_SETJMP_H # include #endif @@ -86,11 +80,9 @@ so, delete this exception statement from your version. */ # endif #endif +#undef USE_SIGNAL_TIMEOUT #ifdef HAVE_SIGNAL -# ifdef HAVE_SIGSETJMP -# define USE_SIGNAL_TIMEOUT -# endif -# ifdef HAVE_SIGBLOCK +# if defined(HAVE_SIGSETJMP) || defined(HAVE_SIGBLOCK) # define USE_SIGNAL_TIMEOUT # endif #endif @@ -117,7 +109,7 @@ xstrdup_lower (const char *s) char * strdupdelim (const char *beg, const char *end) { - char *res = (char *)xmalloc (end - beg + 1); + char *res = xmalloc (end - beg + 1); memcpy (res, beg, end - beg); res[end - beg] = '\0'; return res; @@ -141,7 +133,7 @@ sepstring (const char *s) { if (*s == ',') { - res = (char **)xrealloc (res, (i + 2) * sizeof (char *)); + res = xrealloc (res, (i + 2) * sizeof (char *)); res[i] = strdupdelim (p, s); res[++i] = NULL; ++s; @@ -153,7 +145,7 @@ sepstring (const char *s) else ++s; } - res = (char **)xrealloc (res, (i + 2) * sizeof (char *)); + res = xrealloc (res, (i + 2) * sizeof (char *)); res[i] = strdupdelim (p, s); res[i + 1] = NULL; return res; @@ -616,7 +608,7 @@ file_merge (const char *base, const char *file) if (!cut) return xstrdup (file); - result = (char *)xmalloc (cut - base + 1 + strlen (file) + 1); + result = xmalloc (cut - base + 1 + strlen (file) + 1); memcpy (result, base, cut - base); result[cut - base] = '/'; strcpy (result + (cut - base) + 1, file); @@ -853,7 +845,7 @@ read_whole_line (FILE *fp) { int length = 0; int bufsize = 82; - char *line = (char *)xmalloc (bufsize); + char *line = xmalloc (bufsize); while (fgets (line + length, bufsize - length, fp)) { @@ -1065,7 +1057,7 @@ merge_vecs (char **v1, char **v2) /* Count v2. */ for (j = 0; v2[j]; j++); /* Reallocate v1. */ - v1 = (char **)xrealloc (v1, (i + j + 1) * sizeof (char **)); + v1 = xrealloc (v1, (i + j + 1) * sizeof (char **)); memcpy (v1 + i, v2, (j + 1) * sizeof (char *)); xfree (v2); return v1; @@ -1633,7 +1625,7 @@ random_float (void) static sigjmp_buf run_with_timeout_env; -static RETSIGTYPE +static void abort_run_with_timeout (int sig) { assert (sig == SIGALRM); @@ -1644,7 +1636,7 @@ abort_run_with_timeout (int sig) static jmp_buf run_with_timeout_env; -static RETSIGTYPE +static void abort_run_with_timeout (int sig) { assert (sig == SIGALRM); diff --git a/src/wget.h b/src/wget.h index 759825e7..d382d3da 100644 --- a/src/wget.h +++ b/src/wget.h @@ -213,7 +213,7 @@ typedef off_t wgint; (sizevar) = DR_newsize; \ } \ if (DR_newsize) \ - basevar = (type *)xrealloc (basevar, DR_newsize * sizeof (type)); \ + basevar = xrealloc (basevar, DR_newsize * sizeof (type)); \ } while (0) /* Used to print pointers (usually for debugging). Print pointers diff --git a/src/xmalloc.h b/src/xmalloc.h index c094e7c9..94f3aaaa 100644 --- a/src/xmalloc.h +++ b/src/xmalloc.h @@ -83,10 +83,10 @@ void debugging_free (void *, const char *, int); necessary in standard C, but Wget performs them anyway for the sake of pre-standard environments and possibly C++. */ -#define xnew(type) ((type *) xmalloc (sizeof (type))) -#define xnew0(type) ((type *) xmalloc0 (sizeof (type))) -#define xnew_array(type, len) ((type *) xmalloc ((len) * sizeof (type))) -#define xnew0_array(type, len) ((type *) xmalloc0 ((len) * sizeof (type))) +#define xnew(type) (xmalloc (sizeof (type))) +#define xnew0(type) (xmalloc0 (sizeof (type))) +#define xnew_array(type, len) (xmalloc ((len) * sizeof (type))) +#define xnew0_array(type, len) (xmalloc0 ((len) * sizeof (type))) #define alloca_array(type, size) ((type *) alloca ((size) * sizeof (type)))