]> git.proxmox.com Git - mirror_edk2.git/commitdiff
fix changing time daylight settings without changing the time.
authorjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 29 Mar 2011 19:59:37 +0000 (19:59 +0000)
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 29 Mar 2011 19:59:37 +0000 (19:59 +0000)
add extra output for daylight setting.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11449 6f19259b-4bc3-4df7-8a09-765794883524

ShellPkg/Library/UefiShellLevel2CommandsLib/TimeDate.c
ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.uni

index 510aa60b2a85bccf4dd391fbe6ea676efbb0428f..115013a1e30027d73b07a23598aa05b3466c768e 100644 (file)
@@ -298,13 +298,16 @@ CheckAndSetTime (
   if (TimeString != NULL && !InternalIsTimeLikeString(TimeString, L':', 1, 2, FALSE)) {\r
     return (SHELL_INVALID_PARAMETER);\r
   }\r
+  if (((Daylight & (EFI_TIME_IN_DAYLIGHT|EFI_TIME_ADJUST_DAYLIGHT)) != Daylight)) {\r
+    return (SHELL_INVALID_PARAMETER);\r
+  }\r
 \r
   Status = gRT->GetTime(&TheTime, NULL);\r
   ASSERT_EFI_ERROR(Status);\r
-  TimeStringCopy = NULL;\r
-  TimeStringCopy = StrnCatGrow(&TimeStringCopy, NULL, TimeString, 0);\r
 \r
   if (TimeString != NULL) {\r
+    TimeStringCopy = NULL;\r
+    TimeStringCopy = StrnCatGrow(&TimeStringCopy, NULL, TimeString, 0);\r
     Walker1          = TimeStringCopy;\r
     TheTime.Hour    = 0xFF;\r
     TheTime.Minute  = 0xFF;\r
@@ -330,16 +333,16 @@ CheckAndSetTime (
         TheTime.Second = (UINT8)ShellStrToUintn (Walker1);\r
       }\r
     }\r
+    SHELL_FREE_NON_NULL(TimeStringCopy);\r
   }\r
 \r
-  FreePool(TimeStringCopy);\r
 \r
   if ((Tz >= -1440 && Tz <= 1440)||(Tz == 0x7FF)) {\r
     TheTime.TimeZone = Tz;\r
   }\r
-  if (Daylight <= 3 && Daylight != 2) {\r
-    TheTime.Daylight = Daylight;\r
-  }\r
+\r
+  TheTime.Daylight = Daylight;\r
+\r
   Status = gRT->SetTime(&TheTime);\r
 \r
   if (!EFI_ERROR(Status)){\r
@@ -466,6 +469,9 @@ ShellCommandRunTime (
           TzMinutes\r
          );\r
           switch (TheTime.Daylight) {\r
+            case 0:\r
+              ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_TIME_DST0), gShellLevel2HiiHandle);\r
+              break;\r
             case EFI_TIME_ADJUST_DAYLIGHT:\r
               ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_TIME_DST1), gShellLevel2HiiHandle);\r
               break;\r
@@ -493,7 +499,7 @@ ShellCommandRunTime (
               Tz = (INT16)ShellStrToUintn(TempLocation);\r
             }\r
             if (!(Tz >= -1440 && Tz <= 1440) && Tz != 2047) {\r
-              ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel2HiiHandle, L"-d");\r
+              ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellLevel2HiiHandle, L"-tz");\r
               ShellStatus = SHELL_INVALID_PARAMETER;\r
             }\r
           } else {\r
@@ -506,7 +512,7 @@ ShellCommandRunTime (
           if (TempLocation != NULL) {\r
             Daylight = (UINT8)ShellStrToUintn(TempLocation);\r
             if (Daylight != 0 && Daylight != 1 && Daylight != 3) {\r
-              ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellLevel2HiiHandle, L"-d");\r
+              ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellLevel2HiiHandle, L"-d");\r
               ShellStatus = SHELL_INVALID_PARAMETER;\r
             }\r
           } else {\r
index 7a1e8f5b836ea99c124443f96f28e8f336c914dd..f9c11811da2d78f41c9238cc26a4b28a517525c4 100644 (file)
Binary files a/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.uni and b/ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.uni differ