]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ShellPkg: bug fix for edit search/replace function
authorjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 10 Aug 2011 14:48:14 +0000 (14:48 +0000)
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 10 Aug 2011 14:48:14 +0000 (14:48 +0000)
* Fix the search bug: if word to be searched at the beginning of the line, it can not be found out.

Signed-off-by: kidzyoung
reviewed-by: jcarsey

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

ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.c

index 9a2427f4e995f8aba9fd80ca168f6ba2129b359c..ba622983e1a19ccc066da1b7ca961a98d6e44bef 100644 (file)
@@ -2956,7 +2956,8 @@ FileBufferSearch (
   BOOLEAN         Found;\r
 \r
   Column = 0;\r
-\r
+  Position = 0;\r
+  \r
   //\r
   // search if in current line\r
   //\r
@@ -2969,20 +2970,20 @@ FileBufferSearch (
     Current = FileBuffer.CurrentLine->Buffer + FileBuffer.CurrentLine->Size;\r
   }\r
 \r
+  Found = FALSE;\r
+\r
   CharPos  =  StrStr (Current, Str);\r
   if (CharPos != NULL) {\r
-    Position = CharPos - Current;\r
-  } else {\r
-    Position = 0;\r
-  }\r
+    Position = CharPos - Current + 1;\r
+    Found   = TRUE;\r
+  } \r
 \r
   //\r
   // found\r
   //\r
-  if (Position != 0) {\r
+  if (Found == TRUE) {\r
     Column  = (Position - 1) + FileBuffer.FilePosition.Column + Offset;\r
     Row     = FileBuffer.FilePosition.Row;\r
-    Found   = TRUE;\r
   } else {\r
     //\r
     // not found so find through next lines\r
@@ -2995,9 +2996,11 @@ FileBufferSearch (
 //      Position  = StrStr (Line->Buffer, Str);\r
       CharPos  =  StrStr (Line->Buffer, Str);\r
       if (CharPos != NULL) {\r
-        Position = CharPos - Line->Buffer;\r
-      }\r
-      if (Position != 0) {\r
+        Position = CharPos - Line->Buffer + 1;\r
+        Found   = TRUE;\r
+      } \r
+      \r
+      if (Found == TRUE) {\r
         //\r
         // found\r
         //\r
@@ -3096,14 +3099,14 @@ FileBufferReplace (
     //\r
     // set replace into it\r
     //\r
-    Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column;\r
+    Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column - 1;\r
     for (Index = 0; Index < ReplaceLen; Index++) {\r
       Buffer[Index] = Replace[Index];\r
     }\r
   }\r
 \r
   if (ReplaceLen < SearchLen) {\r
-    Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column;\r
+    Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column - 1;\r
 \r
     for (Index = 0; Index < ReplaceLen; Index++) {\r
       Buffer[Index] = Replace[Index];\r
@@ -3122,7 +3125,7 @@ FileBufferReplace (
   }\r
 \r
   if (ReplaceLen == SearchLen) {\r
-    Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column;\r
+    Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column - 1;\r
     for (Index = 0; Index < ReplaceLen; Index++) {\r
       Buffer[Index] = Replace[Index];\r
     }\r