[USETUP] Move the SetupExtractFile() function to where it is (only) used.
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Mon, 4 Sep 2017 20:00:22 +0000 (20:00 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sat, 27 Oct 2018 22:59:44 +0000 (00:59 +0200)
svn path=/branches/setup_improvements/; revision=75762

base/setup/usetup/filequeue.c
base/setup/usetup/filequeue.h
base/setup/usetup/filesup.c
base/setup/usetup/filesup.h

index 2d928fb..b49e56e 100644 (file)
@@ -56,6 +56,88 @@ typedef struct _FILEQUEUEHEADER
 
 /* FUNCTIONS ****************************************************************/
 
+static BOOLEAN HasCurrentCabinet = FALSE;
+static WCHAR CurrentCabinetName[MAX_PATH];
+static CAB_SEARCH Search;
+
+NTSTATUS
+SetupExtractFile(
+    PWCHAR CabinetFileName,
+    PWCHAR SourceFileName,
+    PWCHAR DestinationPathName)
+{
+    ULONG CabStatus;
+
+    DPRINT("SetupExtractFile(CabinetFileName %S, SourceFileName %S, DestinationPathName %S)\n",
+           CabinetFileName, SourceFileName, DestinationPathName);
+
+    if (HasCurrentCabinet)
+    {
+        DPRINT("CurrentCabinetName: %S\n", CurrentCabinetName);
+    }
+
+    if ((HasCurrentCabinet) && (wcscmp(CabinetFileName, CurrentCabinetName) == 0))
+    {
+        DPRINT("Using same cabinet as last time\n");
+
+        /* Use our last location because the files should be sequential */
+        CabStatus = CabinetFindNextFileSequential(SourceFileName, &Search);
+        if (CabStatus != CAB_STATUS_SUCCESS)
+        {
+            DPRINT("Sequential miss on file: %S\n", SourceFileName);
+
+            /* Looks like we got unlucky */
+            CabStatus = CabinetFindFirst(SourceFileName, &Search);
+        }
+    }
+    else
+    {
+        DPRINT("Using new cabinet\n");
+
+        if (HasCurrentCabinet)
+        {
+            CabinetCleanup();
+        }
+
+        wcscpy(CurrentCabinetName, CabinetFileName);
+
+        CabinetInitialize();
+        CabinetSetEventHandlers(NULL, NULL, NULL);
+        CabinetSetCabinetName(CabinetFileName);
+
+        CabStatus = CabinetOpen();
+        if (CabStatus == CAB_STATUS_SUCCESS)
+        {
+            DPRINT("Opened cabinet %S\n", CabinetGetCabinetName());
+            HasCurrentCabinet = TRUE;
+        }
+        else
+        {
+            DPRINT("Cannot open cabinet (%d)\n", CabStatus);
+            return STATUS_UNSUCCESSFUL;
+        }
+
+        /* We have to start at the beginning here */
+        CabStatus = CabinetFindFirst(SourceFileName, &Search);
+    }
+
+    if (CabStatus != CAB_STATUS_SUCCESS)
+    {
+        DPRINT1("Unable to find '%S' in cabinet '%S'\n", SourceFileName, CabinetGetCabinetName());
+        return STATUS_UNSUCCESSFUL;
+    }
+
+    CabinetSetDestinationPath(DestinationPathName);
+    CabStatus = CabinetExtractFile(&Search);
+    if (CabStatus != CAB_STATUS_SUCCESS)
+    {
+        DPRINT("Cannot extract file %S (%d)\n", SourceFileName, CabStatus);
+        return STATUS_UNSUCCESSFUL;
+    }
+
+    return STATUS_SUCCESS;
+}
+
 HSPFILEQ
 WINAPI
 SetupOpenFileQueue(VOID)
index f43ef91..1623440 100644 (file)
@@ -69,6 +69,12 @@ typedef struct _COPYCONTEXT
 
 /* FUNCTIONS ****************************************************************/
 
+NTSTATUS
+SetupExtractFile(
+    PWCHAR CabinetFileName,
+    PWCHAR SourceFileName,
+    PWCHAR DestinationFileName);
+
 HSPFILEQ
 WINAPI
 SetupOpenFileQueue(VOID);
index fa13a0d..b648471 100644 (file)
 
 /* FUNCTIONS ****************************************************************/
 
-static BOOLEAN HasCurrentCabinet = FALSE;
-static WCHAR CurrentCabinetName[MAX_PATH];
-static CAB_SEARCH Search;
-
 static
 NTSTATUS
 SetupCreateSingleDirectory(
@@ -142,84 +138,6 @@ done:
     return Status;
 }
 
-NTSTATUS
-SetupExtractFile(
-    PWCHAR CabinetFileName,
-    PWCHAR SourceFileName,
-    PWCHAR DestinationPathName)
-{
-    ULONG CabStatus;
-
-    DPRINT("SetupExtractFile(CabinetFileName %S, SourceFileName %S, DestinationPathName %S)\n",
-           CabinetFileName, SourceFileName, DestinationPathName);
-
-    if (HasCurrentCabinet)
-    {
-        DPRINT("CurrentCabinetName: %S\n", CurrentCabinetName);
-    }
-
-    if ((HasCurrentCabinet) && (wcscmp(CabinetFileName, CurrentCabinetName) == 0))
-    {
-        DPRINT("Using same cabinet as last time\n");
-
-        /* Use our last location because the files should be sequential */
-        CabStatus = CabinetFindNextFileSequential(SourceFileName, &Search);
-        if (CabStatus != CAB_STATUS_SUCCESS)
-        {
-            DPRINT("Sequential miss on file: %S\n", SourceFileName);
-
-            /* Looks like we got unlucky */
-            CabStatus = CabinetFindFirst(SourceFileName, &Search);
-        }
-    }
-    else
-    {
-        DPRINT("Using new cabinet\n");
-
-        if (HasCurrentCabinet)
-        {
-            CabinetCleanup();
-        }
-
-        wcscpy(CurrentCabinetName, CabinetFileName);
-
-        CabinetInitialize();
-        CabinetSetEventHandlers(NULL, NULL, NULL);
-        CabinetSetCabinetName(CabinetFileName);
-
-        CabStatus = CabinetOpen();
-        if (CabStatus == CAB_STATUS_SUCCESS)
-        {
-            DPRINT("Opened cabinet %S\n", CabinetGetCabinetName());
-            HasCurrentCabinet = TRUE;
-        }
-        else
-        {
-            DPRINT("Cannot open cabinet (%d)\n", CabStatus);
-            return STATUS_UNSUCCESSFUL;
-        }
-
-        /* We have to start at the beginning here */
-        CabStatus = CabinetFindFirst(SourceFileName, &Search);
-    }
-
-    if (CabStatus != CAB_STATUS_SUCCESS)
-    {
-        DPRINT1("Unable to find '%S' in cabinet '%S'\n", SourceFileName, CabinetGetCabinetName());
-        return STATUS_UNSUCCESSFUL;
-    }
-
-    CabinetSetDestinationPath(DestinationPathName);
-    CabStatus = CabinetExtractFile(&Search);
-    if (CabStatus != CAB_STATUS_SUCCESS)
-    {
-        DPRINT("Cannot extract file %S (%d)\n", SourceFileName, CabStatus);
-        return STATUS_UNSUCCESSFUL;
-    }
-
-    return STATUS_SUCCESS;
-}
-
 BOOLEAN
 IsValidPath(
     IN PCWSTR InstallDir)
index 884d384..a441ea4 100644 (file)
@@ -12,12 +12,6 @@ NTSTATUS
 SetupCreateDirectory(
     PWCHAR DirectoryName);
 
-NTSTATUS
-SetupExtractFile(
-    PWCHAR CabinetFileName,
-    PWCHAR SourceFileName,
-    PWCHAR DestinationFileName);
-
 BOOLEAN
 IsValidPath(
     IN PCWSTR InstallDir);