[PATCH 4/4] regedit: Return success or failure from import functions
Hugh McMaster
hugh.mcmaster at outlook.com
Thu Mar 16 07:05:35 CDT 2017
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
programs/regedit/regproc.c | 35 +++++++++++++++--------------------
1 file changed, 15 insertions(+), 20 deletions(-)
diff --git a/programs/regedit/regproc.c b/programs/regedit/regproc.c
index c04643e..23b809b 100644
--- a/programs/regedit/regproc.c
+++ b/programs/regedit/regproc.c
@@ -738,7 +738,7 @@ static char *get_lineA(FILE *fp, char **buf)
return NULL;
}
-static void processRegLinesA(FILE *fp, char *two_chars)
+static BOOL processRegLinesA(FILE *fp, char *two_chars)
{
char *buf = NULL, *line, *header;
WCHAR *lineW;
@@ -759,7 +759,7 @@ static void processRegLinesA(FILE *fp, char *two_chars)
if (reg_version == REG_VERSION_INVALID)
{
HeapFree(GetProcessHeap(), 0, buf);
- return;
+ return FALSE;
}
while ((line = get_lineA(fp, &buf)))
@@ -776,6 +776,7 @@ static void processRegLinesA(FILE *fp, char *two_chars)
closeKey();
HeapFree(GetProcessHeap(), 0, buf);
+ return TRUE;
}
static WCHAR *get_lineW(FILE *fp, WCHAR **buf)
@@ -842,7 +843,7 @@ static WCHAR *get_lineW(FILE *fp, WCHAR **buf)
return NULL;
}
-static void processRegLinesW(FILE *fp)
+static BOOL processRegLinesW(FILE *fp)
{
WCHAR *buf = NULL, *line;
int reg_version;
@@ -852,7 +853,7 @@ static void processRegLinesW(FILE *fp)
if (reg_version == REG_VERSION_INVALID)
{
HeapFree(GetProcessHeap(), 0, buf);
- return;
+ return FALSE;
}
while ((line = get_lineW(fp, &buf)))
@@ -860,6 +861,7 @@ static void processRegLinesW(FILE *fp)
closeKey();
HeapFree(GetProcessHeap(), 0, buf);
+ return TRUE;
}
/******************************************************************************
@@ -1335,22 +1337,15 @@ BOOL export_registry_key(WCHAR *file_name, WCHAR *reg_key_name, DWORD format)
*/
BOOL import_registry_file(FILE* reg_file)
{
- if (reg_file)
- {
- BYTE s[2];
- if (fread( s, 2, 1, reg_file) == 1)
- {
- if (s[0] == 0xff && s[1] == 0xfe)
- {
- processRegLinesW(reg_file);
- } else
- {
- processRegLinesA(reg_file, (char*)s);
- }
- }
- return TRUE;
- }
- return FALSE;
+ BYTE s[2];
+
+ if (!reg_file || (fread(s, 2, 1, reg_file) != 1))
+ return FALSE;
+
+ if (s[0] == 0xff && s[1] == 0xfe)
+ return processRegLinesW(reg_file);
+ else
+ return processRegLinesA(reg_file, (char *)s);
}
/******************************************************************************
--
2.7.4
More information about the wine-patches
mailing list