Allow switching off/on of debugmsgs in the debugger.
diff --git a/debugger/dbg.y b/debugger/dbg.y
index 092bc63..24e0f02 100644
--- a/debugger/dbg.y
+++ b/debugger/dbg.y
@@ -23,6 +23,7 @@
#include "debugger.h"
#include "neexe.h"
#include "process.h"
+#include "main.h"
#include "ts_xlib.h"
#include "expr.h"
@@ -56,13 +57,13 @@
}
%token tCONT tSTEP tLIST tNEXT tQUIT tHELP tBACKTRACE tINFO tWALK tUP tDOWN
-%token tENABLE tDISABLE tBREAK tDELETE tSET tMODE tPRINT tEXAM tABORT
+%token tENABLE tDISABLE tBREAK tDELETE tSET tMODE tPRINT tEXAM tABORT tDEBUGMSG
%token tCLASS tMAPS tMODULE tSTACK tSEGMENTS tREGS tWND tQUEUE tLOCAL
-%token tEOL tSTRING
+%token tEOL tSTRING tDEBUGSTR
%token tFRAME tSHARE tCOND tDISPLAY tUNDISPLAY tDISASSEMBLE
%token tSTEPI tNEXTI tFINISH tSHOW tDIR
%token <string> tPATH
-%token <string> tIDENTIFIER tSTRING
+%token <string> tIDENTIFIER tSTRING tDEBUGSTR
%token <integer> tNUM tFORMAT
%token <reg> tREG
@@ -154,6 +155,7 @@
| tUNDISPLAY tEOL { DEBUG_DelDisplay( -1 ); }
| tCOND tNUM tEOL { DEBUG_AddBPCondition($2, NULL); }
| tCOND tNUM expr tEOL { DEBUG_AddBPCondition($2, $3); }
+ | tDEBUGMSG tDEBUGSTR tEOL { MAIN_ParseDebugOptions($2); }
| list_command
| disassemble_command
| set_command
diff --git a/debugger/debug.l b/debugger/debug.l
index 7dd2cb2..fd31b35 100644
--- a/debugger/debug.l
+++ b/debugger/debug.l
@@ -46,6 +46,7 @@
%s WALK_CMD
%s SHOW_CMD
%s NOCMD
+%s DEBUGSTR
%%
@@ -78,6 +79,7 @@
<FORMAT_EXPECTED>"/"{FORMAT} { yylval.integer = (1 << 8) | yytext[1]; return tFORMAT; }
{STRING} { yylval.string = make_symbol(yytext); return tSTRING; }
+<DEBUGSTR>[a-z+\-,]* { yylval.string = yytext; return tDEBUGSTR; }
$pc { yylval.reg = REG_EIP; return tREG; }
$flags { yylval.reg = REG_EFL; return tREG; }
@@ -112,6 +114,7 @@
<INITIAL>frame|fram|fra|fr { BEGIN(NOCMD); return tFRAME; }
<INITIAL>list|lis|li|l { BEGIN(PATH_EXPECTED); return tLIST; }
<INITIAL>enable|enabl|enab|ena { BEGIN(NOCMD); return tENABLE;}
+<INITIAL>debugmsg|debugms|debugm|debug|debu|deb { BEGIN(DEBUGSTR); return tDEBUGMSG;}
<INITIAL>disable|disabl|disab|disa|dis { BEGIN(NOCMD); return tDISABLE; }
<INITIAL>disassemble|disassembl|disassemb|disassem|disasse|disass|disas { BEGIN(NOCMD); return tDISASSEMBLE; }
<INITIAL,INFO_CMD,DEL_CMD>display|displa|displ|disp { BEGIN(FORMAT_EXPECTED); return tDISPLAY; }
diff --git a/debugger/info.c b/debugger/info.c
index 5dc6247..325b95a 100644
--- a/debugger/info.c
+++ b/debugger/info.c
@@ -138,7 +138,7 @@
" frame <n> finish",
" show dir dir <path>",
" display <expr> undisplay <disnum>",
-" delete display <disnum>\n",
+" delete display <disnum> debugmsg <class>[-+]<type>\n",
"Wine-specific commands:",
" mode [16,32] walk [wnd,class,queue,module]",