diff options
author | jcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-08-10 14:48:14 +0000 |
---|---|---|
committer | jcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-08-10 14:48:14 +0000 |
commit | 382e78c09ccaee02c8e709f630c9e094d37be470 (patch) | |
tree | 9b07f10bdaa0121c19101b1adc6a791214d97b25 /ShellPkg | |
parent | b5827cbd09f9fe3fa649036bd7aeae4f8546cd18 (diff) | |
download | edk2-platforms-382e78c09ccaee02c8e709f630c9e094d37be470.tar.xz |
ShellPkg: bug fix for edit search/replace function
* 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
Diffstat (limited to 'ShellPkg')
-rw-r--r-- | ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.c | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.c index 9a2427f4e9..ba622983e1 100644 --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.c +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Edit/FileBuffer.c @@ -2956,7 +2956,8 @@ FileBufferSearch ( BOOLEAN Found;
Column = 0;
-
+ Position = 0;
+
//
// search if in current line
//
@@ -2969,20 +2970,20 @@ FileBufferSearch ( Current = FileBuffer.CurrentLine->Buffer + FileBuffer.CurrentLine->Size;
}
+ Found = FALSE;
+
CharPos = StrStr (Current, Str);
if (CharPos != NULL) {
- Position = CharPos - Current;
- } else {
- Position = 0;
- }
+ Position = CharPos - Current + 1;
+ Found = TRUE;
+ }
//
// found
//
- if (Position != 0) {
+ if (Found == TRUE) {
Column = (Position - 1) + FileBuffer.FilePosition.Column + Offset;
Row = FileBuffer.FilePosition.Row;
- Found = TRUE;
} else {
//
// not found so find through next lines
@@ -2995,9 +2996,11 @@ FileBufferSearch ( // Position = StrStr (Line->Buffer, Str);
CharPos = StrStr (Line->Buffer, Str);
if (CharPos != NULL) {
- Position = CharPos - Line->Buffer;
- }
- if (Position != 0) {
+ Position = CharPos - Line->Buffer + 1;
+ Found = TRUE;
+ }
+
+ if (Found == TRUE) {
//
// found
//
@@ -3096,14 +3099,14 @@ FileBufferReplace ( //
// set replace into it
//
- Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column;
+ Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column - 1;
for (Index = 0; Index < ReplaceLen; Index++) {
Buffer[Index] = Replace[Index];
}
}
if (ReplaceLen < SearchLen) {
- Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column;
+ Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column - 1;
for (Index = 0; Index < ReplaceLen; Index++) {
Buffer[Index] = Replace[Index];
@@ -3122,7 +3125,7 @@ FileBufferReplace ( }
if (ReplaceLen == SearchLen) {
- Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column;
+ Buffer = FileBuffer.CurrentLine->Buffer + FileBuffer.FilePosition.Column - 1;
for (Index = 0; Index < ReplaceLen; Index++) {
Buffer[Index] = Replace[Index];
}
|