From 338946f4597bd0f4bc2510a4fef1527f2d526c23 Mon Sep 17 00:00:00 2001 From: pdmef Date: Sat, 27 Aug 2005 17:45:30 +0000 Subject: [PATCH] Rocco Rutte: - make debug level tunable at runtime to get better less noisy results - add missing chunk for main.c in connection with variable dumping git-svn-id: svn://svn.berlios.de/mutt-ng/trunk@453 e385b8ad-14ed-0310-8656-cc95a2468c6d --- UPGRADING | 2 ++ VERSION.svn | 2 +- init.c | 20 ++++++++++++++++++++ init.h | 19 +++++++++++++++++++ main.c | 36 +++++++++++++++++------------------- 5 files changed, 59 insertions(+), 20 deletions(-) diff --git a/UPGRADING b/UPGRADING index 1677d71..cb0fbf8 100644 --- a/UPGRADING +++ b/UPGRADING @@ -12,6 +12,8 @@ sources of information. 2005-08-27: + The $debug_level option has been added. + It's now possible to define and use arbitrary self-defined variables as long as prefixed with user_. diff --git a/VERSION.svn b/VERSION.svn index 8670c73..534b992 100644 --- a/VERSION.svn +++ b/VERSION.svn @@ -1 +1 @@ -452 +453 diff --git a/init.c b/init.c index 419d892..7d2f1e6 100644 --- a/init.c +++ b/init.c @@ -88,6 +88,10 @@ static int check_history (const char* option, unsigned long val, /* this checks that numbers are >= 0 */ static int check_num (const char* option, unsigned long val, char* errbuf, size_t errlen); +#ifdef DEBUG +static int check_debug (const char* option, unsigned long val, + char* errbuf, size_t errlen); +#endif /* use this to check only */ static int check_special (const char* option, unsigned long val, @@ -109,6 +113,9 @@ static struct { #endif { "history", check_history }, { "pager_index_lines", check_num }, +#ifdef DEBUG + { "debug_level", check_debug }, +#endif /* last */ { NULL, NULL } }; @@ -1412,6 +1419,19 @@ static int check_num (const char* option, unsigned long p, return (1); } +#ifdef DEBUG +static int check_debug (const char* option, unsigned long p, + char* errbuf, size_t errlen) { + if ((int) p <= DEBUG_MAX_LEVEL && + (int) p >= DEBUG_MIN_LEVEL) + return (1); + + if (errbuf) + snprintf (errbuf, errlen, _("'%d' is invalid for $%s"), (int) p, option); + return (0); +} +#endif + static int check_history (const char* option, unsigned long p, char* errbuf, size_t errlen) { if (!check_num ("history", p, errbuf, errlen)) diff --git a/init.h b/init.h index fd3d191..4398ad0 100644 --- a/init.h +++ b/init.h @@ -18,6 +18,7 @@ #endif #include "buffy.h" +#include "lib/debug.h" #ifndef _MAKEDOC #define DT_MASK 0x0f @@ -514,6 +515,24 @@ struct option_t MuttVars[] = { ** rest of the string are expanded in the \fIC\fP locale (that is in US ** English). */ +#ifdef DEBUG + {"debug_level", DT_NUM, R_NONE, UL &DebugLevel, "0" }, + /* + ** .pp + ** Availability: debug + ** + ** .pp + ** This variable specifies the current debug level and + ** may be used to increase or decrease the verbosity level + ** during runtime. It overrides the level given with the + ** \fT-d\fP command line option. + ** + ** .pp + ** Currently, this number must be >= 0 and <= 5 and muttng + ** must be started with \fT-d\fP to enable debugging at all; + ** enabling at runtime is not possible. + */ +#endif {"default_hook", DT_STR, R_NONE, UL &DefaultHook, "~f %s !~P | (~P ~C %s)"}, /* ** .pp diff --git a/main.c b/main.c index b8a5a11..090c913 100644 --- a/main.c +++ b/main.c @@ -132,7 +132,8 @@ static void mutt_usage (void) ("usage: muttng [ -nRyzZ ] [ -e ] [ -F ] [ -m ] [ -f ]\n\ muttng [ -nR ] [ -e ] [ -F ] -Q [ -Q ] [...]\n\ muttng [ -nR ] [ -e ] [ -F ] -A [ -A ] [...]\n\ - muttng [ -nR ] [ -e ] [ -F ] -D\n\ + muttng [ -nR ] [ -e ] [ -F ] -t\n\ + muttng [ -nR ] [ -e ] [ -F ] -T\n\ muttng [ -nx ] [ -e ] [ -a ] [ -F ] [ -H ] [ -i ] [ -s ] [ -b ] [ -c ] [ ... ]\n\ muttng [ -n ] [ -e ] [ -F ] -p\n\ muttng -v[v]\n\ @@ -141,8 +142,7 @@ options:\n\ -A \texpand the given alias\n\ -a \tattach a file to the message\n\ -b
\tspecify a blind carbon-copy (BCC) address\n\ - -c
\tspecify a carbon-copy (CC) address\n\ - -D\t\tprint the value of all variables to stdout"); + -c
\tspecify a carbon-copy (CC) address"); #if DEBUG puts _(" -d \tlog debugging output to ~/.muttngdebug0"); #endif @@ -161,6 +161,8 @@ options:\n\ -Q \tquery a configuration variable\n\ -R\t\topen mailbox in read-only mode\n\ -s \tspecify a subject (must be in quotes if it has spaces)\n\ + -t\t\tprint the value of all variables to stdout\n\ + -T\t\tprint the value of all changed variables to stdout\n\ -v\t\tshow version and compile-time definitions\n\ -x\t\tsimulate the mailx send mode\n\ -y\t\tselect a mailbox specified in your `mailboxes' list\n\ @@ -558,7 +560,7 @@ int main (int argc, char **argv) int version = 0; int i; int explicit_folder = 0; - int dump_variables = 0; + int dump_variables = -1; extern char *optarg; extern int optind; @@ -592,10 +594,10 @@ int main (int argc, char **argv) #ifdef USE_NNTP while ((i = getopt (argc, argv, - "A:a:b:F:f:c:Dd:e:g:GH:s:i:hm:npQ:RvxyzZ")) != EOF) + "A:a:b:F:f:c:d:e:g:GH:s:i:hm:npQ:RTtvxyzZ")) != EOF) #else while ((i = - getopt (argc, argv, "A:a:b:F:f:c:Dd:e:H:s:i:hm:npQ:RvxyzZ")) != EOF) + getopt (argc, argv, "A:a:b:F:f:c:d:e:H:s:i:hm:npQ:RTtvxyzZ")) != EOF) #endif switch (i) { case 'A': @@ -633,20 +635,16 @@ int main (int argc, char **argv) case 'd': debug_setlevel(atoi(optarg)); -#ifdef DEBUG - if (atoi(optarg) <= DEBUG_MAX_LEVEL && atoi(optarg) >= DEBUG_MIN_LEVEL) - printf (_("Debugging at level %d.\n"), atoi(optarg)); - else { - printf(_("Please specify a valid debugging level (" - DEBUG_MIN_LEVEL_S "-" DEBUG_MAX_LEVEL_S ").\n")); - return 1; - } -#else +#ifndef DEBUG printf _("DEBUG was not defined during compilation. Ignored.\n"); #endif break; - case 'D': + case 't': + dump_variables = 2; + break; + + case 'T': dump_variables = 1; break; @@ -739,7 +737,7 @@ int main (int argc, char **argv) } /* Check for a batch send. */ - if (!isatty (0) || queries || alias_queries || dump_variables) { + if (!isatty (0) || queries || alias_queries || dump_variables > 0) { set_option (OPTNOCURSES); sendflags = SENDBATCH; } @@ -759,8 +757,8 @@ int main (int argc, char **argv) if (queries) return mutt_query_variables (queries); - if (dump_variables) - return (mutt_dump_variables ()); + if (dump_variables > 0) + return (mutt_dump_variables (dump_variables-1)); if (alias_queries) { int rv = 0; -- 2.20.1