https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6b6163a5d9e64ed980b36f...
commit 6b6163a5d9e64ed980b36f757b0b96043e25520a Author: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org AuthorDate: Tue May 30 00:15:54 2017 +0000 Commit: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org 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 */