https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6b6163a5d9e64ed980b36f757b0b96043e25520a

commit 6b6163a5d9e64ed980b36f757b0b96043e25520a
Author:     Hermès Bélusca-Maïto <[email protected]>
AuthorDate: Tue May 30 00:15:54 2017 +0000
Commit:     Hermès Bélusca-Maïto <[email protected]>
CommitDate: Sun Jun 3 22:12:43 2018 +0200

    [USETUP] Minor fixes & simplifications.
    
    - Remove a redundant NtClose() call;
    - Return failure if NtQuerySymbolicLinkObject() fails;
    - Use RTL_CONSTANT_STRING and RtlInitEmptyUnicodeString() where needed;
    - Reduce code indent level;
    - Add old-style function annotations;
    - Remove the deprecated code copyright notice, since the copyright in usage 
is already reported in the COPYING file in the top level ReactOS source code 
directory.
    
    svn path=/branches/setup_improvements/; revision=74698
---
 base/setup/usetup/drivesup.c | 69 +++++++++++++++-----------------------------
 base/setup/usetup/drivesup.h | 24 ++-------------
 2 files changed, 26 insertions(+), 67 deletions(-)

diff --git a/base/setup/usetup/drivesup.c b/base/setup/usetup/drivesup.c
index c81b987fc1..b8561d77ed 100644
--- a/base/setup/usetup/drivesup.c
+++ b/base/setup/usetup/drivesup.c
@@ -1,21 +1,3 @@
-/*
- *  ReactOS kernel
- *  Copyright (C) 2002 ReactOS Team
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with this program; if not, write to the Free Software Foundation, Inc.,
- *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
 /*
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS text-mode setup
@@ -35,22 +17,19 @@
 
 NTSTATUS
 GetSourcePaths(
-    PUNICODE_STRING SourcePath,
-    PUNICODE_STRING SourceRootPath,
-    PUNICODE_STRING SourceRootDir)
+    OUT PUNICODE_STRING SourcePath,
+    OUT PUNICODE_STRING SourceRootPath,
+    OUT PUNICODE_STRING SourceRootDir)
 {
+    NTSTATUS Status;
     OBJECT_ATTRIBUTES ObjectAttributes;
-    UNICODE_STRING LinkName;
+    UNICODE_STRING LinkName = RTL_CONSTANT_STRING(L"\\SystemRoot");
     UNICODE_STRING SourceName;
-    WCHAR SourceBuffer[MAX_PATH] = {L'\0'};
+    WCHAR SourceBuffer[MAX_PATH] = L"";
     HANDLE Handle;
-    NTSTATUS Status;
     ULONG Length;
     PWCHAR Ptr;
 
-    RtlInitUnicodeString(&LinkName,
-                         L"\\SystemRoot");
-
     InitializeObjectAttributes(&ObjectAttributes,
                                &LinkName,
                                OBJ_CASE_INSENSITIVE,
@@ -63,35 +42,33 @@ GetSourcePaths(
     if (!NT_SUCCESS(Status))
         return Status;
 
-    SourceName.Length = 0;
-    SourceName.MaximumLength = MAX_PATH * sizeof(WCHAR);
-    SourceName.Buffer = SourceBuffer;
+    RtlInitEmptyUnicodeString(&SourceName, SourceBuffer, sizeof(SourceBuffer));
 
     Status = NtQuerySymbolicLinkObject(Handle,
                                        &SourceName,
                                        &Length);
     NtClose(Handle);
 
-    if (NT_SUCCESS(Status))
-    {
-        RtlCreateUnicodeString(SourcePath,
-                               SourceName.Buffer);
+    if (!NT_SUCCESS(Status))
+        return Status;
 
-        /* strip trailing directory */
-        Ptr = wcsrchr(SourceName.Buffer, L'\\');
-        if (Ptr)
-        {
-            RtlCreateUnicodeString(SourceRootDir, Ptr);
-            *Ptr = 0;
-        }
-        else
-            RtlCreateUnicodeString(SourceRootDir, L"");
+    RtlCreateUnicodeString(SourcePath,
+                           SourceName.Buffer);
 
-        RtlCreateUnicodeString(SourceRootPath,
-                               SourceName.Buffer);
+    /* Strip trailing directory */
+    Ptr = wcsrchr(SourceName.Buffer, OBJ_NAME_PATH_SEPARATOR);
+    if (Ptr)
+    {
+        RtlCreateUnicodeString(SourceRootDir, Ptr);
+        *Ptr = UNICODE_NULL;
+    }
+    else
+    {
+        RtlCreateUnicodeString(SourceRootDir, L"");
     }
 
-    NtClose(Handle);
+    RtlCreateUnicodeString(SourceRootPath,
+                           SourceName.Buffer);
 
     return STATUS_SUCCESS;
 }
diff --git a/base/setup/usetup/drivesup.h b/base/setup/usetup/drivesup.h
index 5cd200d8fc..01b38a3c57 100644
--- a/base/setup/usetup/drivesup.h
+++ b/base/setup/usetup/drivesup.h
@@ -1,21 +1,3 @@
-/*
- *  ReactOS kernel
- *  Copyright (C) 2002 ReactOS Team
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with this program; if not, write to the Free Software Foundation, Inc.,
- *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
 /*
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS text-mode setup
@@ -28,8 +10,8 @@
 
 NTSTATUS
 GetSourcePaths(
-    PUNICODE_STRING SourcePath,
-    PUNICODE_STRING SourceRootPath,
-    PUNICODE_STRING SourceRootDir);
+    OUT PUNICODE_STRING SourcePath,
+    OUT PUNICODE_STRING SourceRootPath,
+    OUT PUNICODE_STRING SourceRootDir);
 
 /* EOF */

Reply via email to