Andrew Boyarshin : widl: Support midl_pragma default option.

Alexandre Julliard julliard at winehq.org
Tue Feb 16 16:03:19 CST 2021


Module: wine
Branch: master
Commit: a55a37d1dae2231d8dec9f3191449f89be0b10dc
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a55a37d1dae2231d8dec9f3191449f89be0b10dc

Author: Andrew Boyarshin <andrew.boyarshin at gmail.com>
Date:   Tue Feb 16 20:53:52 2021 +0100

widl: Support midl_pragma default option.

Signed-off-by: Andrew Boyarshin <andrew.boyarshin at gmail.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 tools/widl/parser.h | 2 +-
 tools/widl/parser.l | 4 ++--
 tools/widl/parser.y | 7 ++++++-
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/tools/widl/parser.h b/tools/widl/parser.h
index a67b160d48a..bc0c50792e1 100644
--- a/tools/widl/parser.h
+++ b/tools/widl/parser.h
@@ -39,7 +39,7 @@ void pop_import(void);
 
 int is_type(const char *name);
 
-int do_warning(char *toggle, warning_list_t *wnum);
+int do_warning(const char *toggle, warning_list_t *wnum);
 int is_warning_enabled(int warning);
 
 extern char *temp_name;
diff --git a/tools/widl/parser.l b/tools/widl/parser.l
index 946dba84cd6..3e34bc41173 100644
--- a/tools/widl/parser.l
+++ b/tools/widl/parser.l
@@ -645,7 +645,7 @@ static void warning_enable(int warning)
         }
 }
 
-int do_warning(char *toggle, warning_list_t *wnum)
+int do_warning(const char *toggle, warning_list_t *wnum)
 {
     warning_t *warning, *next;
     int ret = 1;
@@ -658,7 +658,7 @@ int do_warning(char *toggle, warning_list_t *wnum)
     if(!strcmp(toggle, "disable"))
         LIST_FOR_EACH_ENTRY(warning, wnum, warning_t, entry)
             warning_disable(warning->num);
-    else if(!strcmp(toggle, "enable"))
+    else if(!strcmp(toggle, "enable") || !strcmp(toggle, "default"))
         LIST_FOR_EACH_ENTRY(warning, wnum, warning_t, entry)
             warning_enable(warning->num);
     else
diff --git a/tools/widl/parser.y b/tools/widl/parser.y
index 6ab4f83a0ad..e9071f8290e 100644
--- a/tools/widl/parser.y
+++ b/tools/widl/parser.y
@@ -425,7 +425,12 @@ pragma_warning: tPRAGMA_WARNING '(' aIDENTIFIER ':' warnings ')'
                       $$ = NULL;
                       result = do_warning($3, $5);
                       if(!result)
-                          error_loc("expected \"disable\" or \"enable\"\n");
+                          error_loc("expected \"disable\", \"enable\" or \"default\"\n");
+                  }
+              | tPRAGMA_WARNING '(' tDEFAULT ':' warnings ')'
+                  {
+                      $$ = NULL;
+                      do_warning("default", $5);
                   }
 	;
 




More information about the wine-cvs mailing list