mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
* main.h, misc.c (parse_options): New general option line parser. Fix the
bug in the old version that did not handle report syntax errors after a valid entry. * import.c (parse_import_options), export.c (parse_export_options): Call it here instead of duplicating the code.
This commit is contained in:
parent
d6e7a14fa7
commit
c8abff498a
5 changed files with 60 additions and 72 deletions
37
g10/import.c
37
g10/import.c
|
@ -86,13 +86,7 @@ static int merge_keysigs( KBNODE dst, KBNODE src, int *n_sigs,
|
|||
int
|
||||
parse_import_options(char *str,unsigned int *options)
|
||||
{
|
||||
char *tok;
|
||||
int hit=0;
|
||||
struct
|
||||
{
|
||||
char *name;
|
||||
unsigned int bit;
|
||||
} import_opts[]=
|
||||
struct parse_options import_opts[]=
|
||||
{
|
||||
{"allow-local-sigs",IMPORT_ALLOW_LOCAL_SIGS},
|
||||
{"repair-hkp-subkey-bug",IMPORT_REPAIR_PKS_SUBKEY_BUG},
|
||||
|
@ -100,34 +94,7 @@ parse_import_options(char *str,unsigned int *options)
|
|||
{NULL,0}
|
||||
};
|
||||
|
||||
while((tok=strsep(&str," ,")))
|
||||
{
|
||||
int i,rev=0;
|
||||
|
||||
if(ascii_strncasecmp("no-",tok,3)==0)
|
||||
{
|
||||
rev=1;
|
||||
tok+=3;
|
||||
}
|
||||
|
||||
for(i=0;import_opts[i].name;i++)
|
||||
{
|
||||
if(ascii_strcasecmp(import_opts[i].name,tok)==0)
|
||||
{
|
||||
if(rev)
|
||||
*options&=~import_opts[i].bit;
|
||||
else
|
||||
*options|=import_opts[i].bit;
|
||||
hit=1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!hit && !import_opts[i].name)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return hit;
|
||||
return parse_options(str,options,import_opts);
|
||||
}
|
||||
|
||||
void *
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue