regedit: Correctly parse key name containing ']' when
deleting/exporting
Lei Zhang
thestig at google.com
Thu Mar 1 20:55:03 CST 2007
Hi,
I noticed Wine's regedit does not properly export key names containing
']', or delete them when running "regedit /D key" from the command
line. (Bug 7599)
-------------- next part --------------
From 017aaced7cd409567981ee3c8eb6e7de793fc28e Mon Sep 17 00:00:00 2001
From: Lei Zhang <thestig at google.com>
Date: Thu, 1 Mar 2007 16:34:42 -0800
Subject: regedit: Correctly parse key name containing ']' when deleting/exporting.
---
programs/regedit/regproc.c | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index 6c8e3a5..16a2b8c 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -449,12 +449,16 @@ LPSTR getRegKeyName(LPSTR lpLine)
keyNameBeg = strchr(lpLineCopy, '\\'); /* The key name start by '\' */
if (keyNameBeg) {
- LPSTR keyNameEnd;
-
keyNameBeg++; /* is not part of the name */
- keyNameEnd = strrchr(lpLineCopy, ']');
- if (keyNameEnd) {
- *keyNameEnd = '\0'; /* remove ']' from the key name */
+
+ if (lpLine[0] == '[') /* need to find matching ']' */
+ {
+ LPSTR keyNameEnd;
+
+ keyNameEnd = strrchr(lpLineCopy, ']');
+ if (keyNameEnd) {
+ *keyNameEnd = '\0'; /* remove ']' from the key name */
+ }
}
} else {
keyNameBeg = lpLineCopy + strlen(lpLineCopy); /* branch - empty string */
--
1.4.1
More information about the wine-patches
mailing list