[PATCH] cabarc: Display message when extracting cab like in native.

Christian Costa titan.costa at gmail.com
Fri Nov 30 02:14:24 CST 2012


---
 programs/cabarc/cabarc.c |   20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/programs/cabarc/cabarc.c b/programs/cabarc/cabarc.c
index a11ebfb..1c906da 100644
--- a/programs/cabarc/cabarc.c
+++ b/programs/cabarc/cabarc.c
@@ -618,6 +618,7 @@ int wmain( int argc, WCHAR *argv[] )
     char buffer[MAX_PATH];
     char *cab_file, *file_part;
     int i;
+    int ret;
 
     while (argv[1] && argv[1][0] == '-')
     {
@@ -682,10 +683,10 @@ int wmain( int argc, WCHAR *argv[] )
     if (!GetFullPathNameA( cab_file, MAX_PATH, buffer, &file_part ) || !file_part)
     {
         WINE_ERR( "cannot get full name for %s\n", wine_dbgstr_a( cab_file ));
+        cab_free(cab_file);
         return 1;
     }
     file_part[-1] = 0;
-    cab_free( cab_file );
 
     /* map slash to backslash in all file arguments */
     for (i = 1; i < argc; i++)
@@ -698,10 +699,12 @@ int wmain( int argc, WCHAR *argv[] )
     {
     case 'l':
     case 'L':
-        return list_cabinet( buffer );
+        ret = list_cabinet( buffer );
+        break;
     case 'n':
     case 'N':
-        return new_cabinet( buffer );
+        ret = new_cabinet( buffer );
+        break;
     case 'x':
     case 'X':
         if (argc > 1)  /* check for destination dir as last argument */
@@ -713,9 +716,16 @@ int wmain( int argc, WCHAR *argv[] )
                 argv[--argc] = NULL;
             }
         }
-        return extract_cabinet( buffer );
+        WINE_MESSAGE("Extracting file(s) from cabinet %s\n", wine_dbgstr_a(cab_file));
+        ret = extract_cabinet( buffer );
+        break;
     default:
         usage();
-        return 1;
+        ret = 1;
+        break;
     }
+
+    cab_free(cab_file);
+
+    return ret;
 }




More information about the wine-patches mailing list