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]",