Alexandre Julliard : winebuild: Allow optional keywords to be in any order in a .def file.

Alexandre Julliard julliard at winehq.org
Wed Dec 30 10:18:11 CST 2009


Module: wine
Branch: master
Commit: 4939acf0ace95e5c090e2c0b118c4c0ab9eb76f0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4939acf0ace95e5c090e2c0b118c4c0ab9eb76f0

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Dec 28 23:23:54 2009 +0100

winebuild: Allow optional keywords to be in any order in a .def file.

---

 tools/winebuild/parser.c |   43 ++++++++++++++++++++++---------------------
 1 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/tools/winebuild/parser.c b/tools/winebuild/parser.c
index 642ccac..57807ed 100644
--- a/tools/winebuild/parser.c
+++ b/tools/winebuild/parser.c
@@ -945,33 +945,34 @@ static int parse_def_export( char *name, DLLSPEC *spec )
 
     /* check for other optional keywords */
 
-    if (token && !strcmp( token, "NONAME" ))
+    while (token)
     {
-        if (odp->ordinal == -1)
+        if (!strcmp( token, "NONAME" ))
         {
-            error( "NONAME requires an ordinal\n" );
+            if (odp->ordinal == -1)
+            {
+                error( "NONAME requires an ordinal\n" );
+                goto error;
+            }
+            odp->export_name = odp->name;
+            odp->name = NULL;
+            odp->flags |= FLAG_NONAME;
+        }
+        else if (!strcmp( token, "PRIVATE" ))
+        {
+            odp->flags |= FLAG_PRIVATE;
+        }
+        else if (!strcmp( token, "DATA" ))
+        {
+            odp->type = TYPE_EXTERN;
+        }
+        else
+        {
+            error( "Garbage text '%s' found at end of export declaration\n", token );
             goto error;
         }
-        odp->export_name = odp->name;
-        odp->name = NULL;
-        odp->flags |= FLAG_NONAME;
         token = GetToken(1);
     }
-    if (token && !strcmp( token, "PRIVATE" ))
-    {
-        odp->flags |= FLAG_PRIVATE;
-        token = GetToken(1);
-    }
-    if (token && !strcmp( token, "DATA" ))
-    {
-        odp->type = TYPE_EXTERN;
-        token = GetToken(1);
-    }
-    if (token)
-    {
-        error( "Garbage text '%s' found at end of export declaration\n", token );
-        goto error;
-    }
     return 1;
 
 error:




More information about the wine-cvs mailing list