On Tue, Jan 28, 2014 at 10:58 PM, Ángel González <[email protected]>
wrote:
On 28/01/14 20:15, Darshit Shah wrote:
We would Wget to silently ignore the --debug flag if it is passed to
it and
the executable was compiled without debugging support.
This is required so that existing commands / scripts that call the
--debug
flag will still work.
I am attaching a patch which will cause Wget to turn the --debug
flag into
a no-op on non-debugging systems.
Shouldn't it print a message saying that --debug is not available for
this build?
Attached a new patch with the output statement
>From 3a62b82d1844ccd6134ad6fbc6852103af6a776c Mon Sep 17 00:00:00 2001
From: Darshit Shah <[email protected]>
Date: Sat, 1 Feb 2014 10:46:30 +0100
Subject: [PATCH] Turn --debug into no-op if compiled without debugging support
---
src/ChangeLog | 10 ++++++++++
src/init.c | 2 --
src/main.c | 24 +++++++++++++++---------
src/options.h | 2 --
4 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/src/ChangeLog b/src/ChangeLog
index b139775..a786d9e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,13 @@
+2014-01-29 Darshit Shah <[email protected]>
+
+ * main.c: Remove pre-processor variable WHEN_DEBUG
+ (option_data[]): Do not fail on --debug even if debug support is not
+ compiled in.
+ (main): Explicitly set opt.debug to false in case debugging support was not
+ compiled.
+ * init.c (commands[]): Support --debug wven when support is not compiled in.
+ * options.h: Same
+
2014-01-17 Darshit Shah <[email protected]>
* init.c (commands[]): Add --no-config.
diff --git a/src/init.c b/src/init.c
index 9199eb6..099989e 100644
--- a/src/init.c
+++ b/src/init.c
@@ -157,9 +157,7 @@ static const struct {
{ "convertlinks", &opt.convert_links, cmd_boolean },
{ "cookies", &opt.cookies, cmd_boolean },
{ "cutdirs", &opt.cut_dirs, cmd_number },
-#ifdef ENABLE_DEBUG
{ "debug", &opt.debug, cmd_boolean },
-#endif
{ "defaultpage", &opt.default_page, cmd_string },
{ "deleteafter", &opt.delete_after, cmd_boolean },
{ "dirprefix", &opt.dir_prefix, cmd_directory },
diff --git a/src/main.c b/src/main.c
index 58a00f3..dd66f91 100644
--- a/src/main.c
+++ b/src/main.c
@@ -128,12 +128,6 @@ static void print_version (void);
# define IF_SSL(x) NULL
#endif
-#ifdef ENABLE_DEBUG
-# define WHEN_DEBUG(x) x
-#else
-# define WHEN_DEBUG(x) NULL
-#endif
-
struct cmdline_option {
const char *long_name;
char short_name;
@@ -184,7 +178,7 @@ static struct cmdline_option option_data[] =
{ "content-on-error", 0, OPT_BOOLEAN, "contentonerror", -1 },
{ "cookies", 0, OPT_BOOLEAN, "cookies", -1 },
{ "cut-dirs", 0, OPT_VALUE, "cutdirs", -1 },
- { WHEN_DEBUG ("debug"), 'd', OPT_BOOLEAN, "debug", -1 },
+ { "debug", 'd', OPT_BOOLEAN, "debug", -1 },
{ "default-page", 0, OPT_VALUE, "defaultpage", -1 },
{ "delete-after", 0, OPT_BOOLEAN, "deleteafter", -1 },
{ "directories", 0, OPT_BOOLEAN, "dirstruct", -1 },
@@ -321,7 +315,6 @@ static struct cmdline_option option_data[] =
#endif
};
-#undef WHEN_DEBUG
#undef IF_SSL
/* Return a string that contains S with "no-" prepended. The string
@@ -1228,9 +1221,22 @@ main (int argc, char **argv)
nurl = argc - optind;
+ /* If we do not have Debug support compiled in AND Wget is invoked with the
+ * --debug switch, instead of failing, we silently turn it into a no-op. For
+ * this no-op, we explicitly set opt.debug to false and hence none of the
+ * Debug output messages will be printed.
+ */
+#ifndef ENABLE_DEBUG
+ if (opt.debug)
+ {
+ fprintf (stderr, _("Debugging support not compiled in. "
+ "Ignoring --debug flag.\n"));
+ opt.debug = false;
+ }
+#endif
+
/* All user options have now been processed, so it's now safe to do
interoption dependency checks. */
-
if (opt.noclobber && opt.convert_links)
{
fprintf (stderr,
diff --git a/src/options.h b/src/options.h
index 145993f..b7c268c 100644
--- a/src/options.h
+++ b/src/options.h
@@ -161,9 +161,7 @@ struct options
bool content_on_error; /* Do we output the content when the HTTP
status code indicates a server error */
-#ifdef ENABLE_DEBUG
bool debug; /* Debugging on/off */
-#endif
#ifdef USE_WATT32
bool wdebug; /* Watt-32 tcp/ip debugging on/off */
--
1.8.5.3