Hi Supreeth,

This patch can't be applied to the lasted code base SHA-1: 33022e. 
One patch from <Lokesh B V> may already fix the issue. Please check again.

Best Regards
Eric

-----Original Message-----
From: edk2-devel <edk2-devel-boun...@lists.01.org> On Behalf Of Supreeth 
Venkatesh
Sent: Friday, March 29, 2019 7:08 AM
To: supreeth.venkat...@arm.com; edk2-devel@lists.01.org
Subject: [edk2] [edk2-test][PATCH v2] SctPkg/Tools: Fix incorrect line ending 
detection by GenBin tool

From: Lokesh B V <lokesh...@arm.com>

Some windows editors uses "\r\n" for line feed. While processing uefi sct 
testcase info file, the GenBin tool logic to skip line feed doesn't consider 
the presence of carraige return(\r) in line feed. So this results in incorrect 
format error.

Fixed this issue by changing logic of Trim and Getline functions used in GenBin 
source code.

Cc: Supreeth Venkatesh <supreeth.venkat...@arm.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Lokesh B V <lokesh...@arm.com>
---
Changes since v1:
* Adopted changes suggested by Supreeth.
* modified Copyright content

 uefi-sct/SctPkg/Tools/Source/GenBin/GenBin.c | 58 +++++++++++++---------------
 1 file changed, 26 insertions(+), 32 deletions(-)

diff --git a/uefi-sct/SctPkg/Tools/Source/GenBin/GenBin.c 
b/uefi-sct/SctPkg/Tools/Source/GenBin/GenBin.c
index 61bb35b..6d8e844 100644
--- a/uefi-sct/SctPkg/Tools/Source/GenBin/GenBin.c
+++ b/uefi-sct/SctPkg/Tools/Source/GenBin/GenBin.c
@@ -2,6 +2,7 @@
 
   Copyright 2006 - 2010 Unified EFI, Inc.<BR>
   Copyright (c) 2010 Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2018 ARM Ltd. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD 
License @@ -32,6 +33,7 @@ Abstract:
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <ctype.h>
 
 //
 // Definitions
@@ -49,7 +51,7 @@ PrintUsage (
   void
   );
 
-void
+char *
 Trim (
   char        *String
   );
@@ -159,50 +161,42 @@ PrintUsage (
 }
 
 
-void
+char *
 Trim (
   char        *String
   )
 {
-  int   Index1;
-  int   Index2;
   int   Length;
+  char  *end;
 
   Length = strlen (String);
 
-  //
-  // Remove the space characters from the beginning of this string
-  //
-  for (Index1 = 0; Index1 < Length; Index1++) {
-    if ((String[Index1] != ' ' ) &&
-        (String[Index1] != '\t') &&
-        (String[Index1] != '\n')) {
-      break;
-    }
-  }
-
-  for (Index2 = Index1; Index2 < Length; Index2++) {
-    String[Index2 - Index1] = String[Index2];
+  if (!Length) {
+    return String;
   }
 
-  Length = Length - Index1;
+  end = String + Length - 1;
 
   //
   // Remove the space characters from the end of this string
   //
-  for (Index1 = 0; Index1 < Length; Index1++) {
-    if ((String[Length - 1 - Index1] != ' ' ) &&
-        (String[Length - 1 - Index1] != '\t') &&
-        (String[Length - 1 - Index1] != '\n')) {
-      break;
-    }
+  while (end >= String && isspace (*end)) {
+    end--;
   }
 
-  String[Length - Index1] = '\0';
+  *(end + 1) = '\0';
+
+  //
+  // Remove the space characters from the beginning of this string  //  
+ while (*String && isspace (*String)) {
+    String++;
+  }
 
   //
   // Done
   //
+  return String;
 }
 
 
@@ -227,20 +221,20 @@ GetLine (
       return -1;
     }
 
-    (*LineNo)++;
-
     //
     // Remove the beginning and ending space characters
     //
-    Trim (String);
+    String = Trim (Result);
 
     //
-    // Ignore the empty line and comment line
+    // Skip the empty line and comment line
     //
-    if ((String[0] != '\0') &&
-        (String[0] != '#' )) {
-      break;
+    if ((String[0] == '\0') ||
+        (String[0] == '#' )) {
+      continue;
     }
+
+    (*LineNo)++;
   }
 
   //
--
2.7.4


_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to