Sync(12): winedump

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

License: X11

ChangeLog:

  Jon Griffiths <jon_p_griffiths@yahoo.com>

  +tools/winedump/pe.c tools/winedump/msmangle.c
   tools/winedump/symbol.c
   Support float and function ptr args better, -W warning fixes.

  +tools/winedump/README
   Spelling.

=====
"Don't wait for the seas to part, or messiahs to come;
 Don't you sit around and waste this chance..." - Live

jon_p_griffiths@yahoo.com

__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com
diff -u wine/tools/winedump/README wine-develop/tools/winedump/README
--- wine/tools/winedump/README	Fri Jul  4 17:48:46 2003
+++ wine-develop/tools/winedump/README	Thu Jul 17 23:10:40 2003
@@ -543,7 +543,7 @@
 
 Now uncomment the line that winedump inserted into msvcrt.spec:
 
-#inport ms_msvcrt.dll
+#import ms_msvcrt.dll
 
 And recompile Wine.
 
diff -u wine/tools/winedump/msmangle.c wine-develop/tools/winedump/msmangle.c
--- wine/tools/winedump/msmangle.c	Sat Oct 19 17:16:29 2002
+++ wine-develop/tools/winedump/msmangle.c	Thu Jul 17 23:10:40 2003
@@ -507,11 +507,12 @@
 	{
 	  if (*iter == '6')
 	  {
+	      int sub_expressions = 0;
 	      /* FIXME: there are a tons of memory leaks here */
 	      /* FIXME: this is still broken in some cases and it has to be
 	       * merged with the function prototype parsing above...
 	       */
-	      iter += 3; /* FIXME */
+	      iter += iter[1] == 'A' ? 2 : 3; /* FIXME */
 	      if (!demangle_datatype (&iter, &sub_ct, sym))
 		  return NULL;
 	      ct->expression = str_create(2, sub_ct.expression, " (*)(");
@@ -523,8 +524,12 @@
 		      INIT_CT (sub_ct);
 		      if (!demangle_datatype (&iter, &sub_ct, sym))
 			  return NULL;
-		      ct->expression = str_create(3, ct->expression, ", ", sub_ct.expression);
+		      if (sub_expressions)
+                              ct->expression = str_create(3, ct->expression, ", ", sub_ct.expression);
+		      else
+                              ct->expression = str_create(2, ct->expression, sub_ct.expression);
 		      while (*iter == '@') iter++;
+		      sub_expressions++;
 		  }
 	      } else while (*iter == '@') iter++;
 	      iter++;
@@ -739,7 +744,7 @@
   case 'J': case 'K':
     return ARG_LONG;
   case 'M':
-    return -1; /* FIXME */
+    return ARG_FLOAT;
   case 'N': case 'O':
     return ARG_DOUBLE;
   case 'P': case 'Q':
diff -u wine/tools/winedump/pe.c wine-develop/tools/winedump/pe.c
--- wine/tools/winedump/pe.c	Sat May 31 12:38:16 2003
+++ wine-develop/tools/winedump/pe.c	Thu Jul 17 23:10:40 2003
@@ -673,7 +673,7 @@
         "HTML"
     };
 
-    if (id < sizeof(types)/sizeof(types[0])) return types[id];
+    if ((size_t)id < sizeof(types)/sizeof(types[0])) return types[id];
     return NULL;
 }
 
@@ -948,7 +948,7 @@
 #endif
     {
         if (!(PE_base = malloc( PE_total_len ))) fatal( "Out of memory" );
-        if (read( fd, PE_base, PE_total_len ) != (int)PE_total_len) fatal( "Cannot read file" );
+        if ((unsigned long)read( fd, PE_base, PE_total_len ) != (int)PE_total_len) fatal( "Cannot read file" );
     }
 
     effective_sig = check_headers();
diff -u wine/tools/winedump/symbol.c wine-develop/tools/winedump/symbol.c
--- wine/tools/winedump/symbol.c	Thu Sep 12 17:29:12 2002
+++ wine-develop/tools/winedump/symbol.c	Thu Jul 17 23:10:40 2003
@@ -259,6 +259,9 @@
   if (strstr (string, "double"))
     return ARG_DOUBLE;
 
+  if (strstr (string, "float"))
+    return ARG_FLOAT;
+
   if (strstr (string, "void") || strstr (string, "VOID"))
     return ARG_VOID;
 

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux