Hugh McMaster : regedit: Use error handling for missing arguments.
Alexandre Julliard
julliard at winehq.org
Thu Jun 23 11:15:24 CDT 2016
Module: wine
Branch: master
Commit: d418ece9d06865501d696458cf7d80033ad32c3a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d418ece9d06865501d696458cf7d80033ad32c3a
Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date: Wed Jun 22 12:03:29 2016 +0000
regedit: Use error handling for missing arguments.
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
programs/regedit/regedit.c | 42 +++++++++++++++++++-----------------------
1 file changed, 19 insertions(+), 23 deletions(-)
diff --git a/programs/regedit/regedit.c b/programs/regedit/regedit.c
index d2ed891..5e873e1 100644
--- a/programs/regedit/regedit.c
+++ b/programs/regedit/regedit.c
@@ -66,12 +66,6 @@ static BOOL PerformRegAction(REGEDIT_ACTION action, char **argv, int *i)
char *filename = argv[*i];
FILE *reg_file;
- if (!filename[0]) {
- fprintf(stderr, "regedit: No file name was specified\n");
- fprintf(stderr,usage);
- exit(1);
- }
-
if (filename[0]) {
char* realname = NULL;
@@ -113,30 +107,16 @@ static BOOL PerformRegAction(REGEDIT_ACTION action, char **argv, int *i)
break;
}
case ACTION_DELETE: {
- char *reg_key_name = argv[*i];
+ WCHAR *reg_key_nameW = GetWideString(argv[*i]);
- if (!reg_key_name[0]) {
- fprintf(stderr, "regedit: No registry key was specified for removal\n");
- fprintf(stderr,usage);
- exit(1);
- } else
- {
- WCHAR* reg_key_nameW = GetWideString(reg_key_name);
- delete_registry_key(reg_key_nameW);
- HeapFree(GetProcessHeap(), 0, reg_key_nameW);
- }
+ delete_registry_key(reg_key_nameW);
+ HeapFree(GetProcessHeap(), 0, reg_key_nameW);
break;
}
case ACTION_EXPORT: {
char *filename = argv[*i];
WCHAR* filenameW;
- if (!filename[0]) {
- fprintf(stderr, "regedit: No filename was specified\n");
- fprintf(stderr,usage);
- exit(1);
- }
-
filenameW = GetWideString(filename);
if (filenameW[0]) {
char *reg_key_name = argv[++(*i)];
@@ -265,6 +245,22 @@ BOOL ProcessCmdLine(LPSTR lpCmdLine)
}
}
+ if (i == argc)
+ {
+ switch (action)
+ {
+ case ACTION_ADD:
+ case ACTION_EXPORT:
+ fprintf(stderr, "regedit: No file name was specified\n\n");
+ break;
+ case ACTION_DELETE:
+ fprintf(stderr,"regedit: No registry key was specified for removal\n\n");
+ break;
+ }
+ fprintf(stderr, usage);
+ exit(1);
+ }
+
PerformRegAction(action, argv, &i);
for (i = 0; i < argc; i++)
More information about the wine-cvs
mailing list