regedit: Use error handling for missing arguments.
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
53c9a78970
commit
d418ece9d0
|
@ -66,12 +66,6 @@ static BOOL PerformRegAction(REGEDIT_ACTION action, char **argv, int *i)
|
||||||
char *filename = argv[*i];
|
char *filename = argv[*i];
|
||||||
FILE *reg_file;
|
FILE *reg_file;
|
||||||
|
|
||||||
if (!filename[0]) {
|
|
||||||
fprintf(stderr, "regedit: No file name was specified\n");
|
|
||||||
fprintf(stderr,usage);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (filename[0]) {
|
if (filename[0]) {
|
||||||
char* realname = NULL;
|
char* realname = NULL;
|
||||||
|
|
||||||
|
@ -113,30 +107,16 @@ static BOOL PerformRegAction(REGEDIT_ACTION action, char **argv, int *i)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ACTION_DELETE: {
|
case ACTION_DELETE: {
|
||||||
char *reg_key_name = argv[*i];
|
WCHAR *reg_key_nameW = GetWideString(argv[*i]);
|
||||||
|
|
||||||
if (!reg_key_name[0]) {
|
delete_registry_key(reg_key_nameW);
|
||||||
fprintf(stderr, "regedit: No registry key was specified for removal\n");
|
HeapFree(GetProcessHeap(), 0, reg_key_nameW);
|
||||||
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);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ACTION_EXPORT: {
|
case ACTION_EXPORT: {
|
||||||
char *filename = argv[*i];
|
char *filename = argv[*i];
|
||||||
WCHAR* filenameW;
|
WCHAR* filenameW;
|
||||||
|
|
||||||
if (!filename[0]) {
|
|
||||||
fprintf(stderr, "regedit: No filename was specified\n");
|
|
||||||
fprintf(stderr,usage);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
filenameW = GetWideString(filename);
|
filenameW = GetWideString(filename);
|
||||||
if (filenameW[0]) {
|
if (filenameW[0]) {
|
||||||
char *reg_key_name = argv[++(*i)];
|
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);
|
PerformRegAction(action, argv, &i);
|
||||||
|
|
||||||
for (i = 0; i < argc; i++)
|
for (i = 0; i < argc; i++)
|
||||||
|
|
Loading…
Reference in New Issue