]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Library/UefiShellLevel2CommandsLib/Vol.c
ShellPkg: Follow spec to remove the last '\' char in return name of GetCurDir().
[mirror_edk2.git] / ShellPkg / Library / UefiShellLevel2CommandsLib / Vol.c
index 9300d5ec35a1f46cec9594b90ac5e7d92705d185..a6f0296d760363a511f4d35261ed2c9a9c9e81ac 100644 (file)
@@ -1,7 +1,8 @@
 /** @file\r
   Main file for vol shell level 2 function.\r
 \r
-  Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
+  (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
+  Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -63,7 +64,7 @@ HandleVol(
       StrStr(Name, L"/") != NULL ||\r
       StrStr(Name, L" ") != NULL )\r
       ){\r
-    ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel2HiiHandle, Name);\r
+    ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellLevel2HiiHandle, L"vol", Name);  \r
     return (SHELL_INVALID_PARAMETER);\r
   }\r
 \r
@@ -73,7 +74,7 @@ HandleVol(
     Name != NULL?EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE:EFI_FILE_MODE_READ);\r
 \r
   if (EFI_ERROR(Status) || ShellFileHandle == NULL) {\r
-    ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel2HiiHandle, Path);\r
+    ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_OPEN_FAIL), gShellLevel2HiiHandle, L"vol", Path);  \r
     return (SHELL_ACCESS_DENIED);\r
   }\r
 \r
@@ -101,7 +102,7 @@ HandleVol(
   ASSERT(SysInfo != NULL);\r
 \r
   if (Delete) {\r
-    StrCpy ((CHAR16 *) SysInfo->VolumeLabel, L"");\r
+    *((CHAR16 *) SysInfo->VolumeLabel) = CHAR_NULL;\r
     SysInfo->Size = SIZE_OF_EFI_FILE_SYSTEM_INFO + StrSize(SysInfo->VolumeLabel);\r
     Status = EfiFpHandle->SetInfo(\r
       EfiFpHandle,\r
@@ -114,12 +115,15 @@ HandleVol(
     if (Size1 > Size2) {\r
       SysInfo = ReallocatePool((UINTN)SysInfo->Size, (UINTN)SysInfo->Size + Size1 - Size2, SysInfo);\r
       if (SysInfo == NULL) {\r
-        ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellLevel2HiiHandle);\r
+        ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_OUT_MEM), gShellLevel2HiiHandle, L"vol");  \r
         ShellStatus = SHELL_OUT_OF_RESOURCES;\r
       } \r
     }\r
     if (SysInfo != NULL) {\r
-      StrCpy ((CHAR16 *) SysInfo->VolumeLabel, Name);\r
+      StrCpyS ( (CHAR16 *) SysInfo->VolumeLabel, \r
+                  (Size1>Size2? Size1/sizeof(CHAR16) : Size2/sizeof(CHAR16)), \r
+                  Name\r
+                  );\r
       SysInfo->Size = SIZE_OF_EFI_FILE_SYSTEM_INFO + Size1;\r
       Status = EfiFpHandle->SetInfo(\r
         EfiFpHandle,\r
@@ -133,7 +137,7 @@ HandleVol(
 \r
   if (Delete || Name != NULL) {\r
     if (EFI_ERROR(Status)) {\r
-      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_AD), gShellLevel2HiiHandle, Path);\r
+      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_AD), gShellLevel2HiiHandle, L"vol", Path);  \r
       ShellStatus = SHELL_ACCESS_DENIED;\r
     }\r
   }\r
@@ -238,7 +242,7 @@ ShellCommandRunVol (
   Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);\r
   if (EFI_ERROR(Status)) {\r
     if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {\r
-      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel2HiiHandle, ProblemParam);\r
+      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel2HiiHandle, L"vol", ProblemParam);  \r
       FreePool(ProblemParam);\r
       ShellStatus = SHELL_INVALID_PARAMETER;\r
     } else {\r
@@ -253,7 +257,7 @@ ShellCommandRunVol (
     }\r
 \r
     if (ShellCommandLineGetCount(Package) > 2) {\r
-      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle);\r
+      ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellLevel2HiiHandle, L"vol");  \r
       ShellStatus = SHELL_INVALID_PARAMETER;\r
     } else {\r
       PathName = ShellCommandLineGetRawValue(Package, 1);\r
@@ -261,7 +265,7 @@ ShellCommandRunVol (
         CurDir = gEfiShellProtocol->GetCurDir(NULL);\r
         if (CurDir == NULL) {\r
           ShellStatus = SHELL_NOT_FOUND;\r
-          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle);\r
+          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_CWD), gShellLevel2HiiHandle, L"vol");  \r
         } else {\r
           PathName = CurDir;\r
         }\r
@@ -280,13 +284,13 @@ ShellCommandRunVol (
         DeleteMode = ShellCommandLineGetFlag(Package, L"-d");\r
         NewName    = ShellCommandLineGetValue(Package, L"-n");\r
         if (DeleteMode && ShellCommandLineGetFlag(Package, L"-n")) {\r
-          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CON), gShellLevel2HiiHandle);\r
+          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellLevel2HiiHandle, L"vol", L"-d", L"-n");  \r
           ShellStatus = SHELL_INVALID_PARAMETER;\r
         } else if (ShellCommandLineGetFlag(Package, L"-n") && NewName == NULL) {\r
-          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellLevel2HiiHandle, L"-n");\r
+          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellLevel2HiiHandle, L"vol", L"-n");  \r
           ShellStatus = SHELL_INVALID_PARAMETER;\r
         } else if (NewName != NULL && StrLen(NewName) > 11) {\r
-          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellLevel2HiiHandle, L"-n");\r
+          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellLevel2HiiHandle, L"vol", NewName, L"-n");  \r
           ShellStatus = SHELL_INVALID_PARAMETER;\r
         } else if (ShellStatus == SHELL_SUCCESS) {\r
           ShellStatus = HandleVol(\r