aboutsummaryrefslogtreecommitdiffstats
path: root/g10/g10.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/g10.c')
-rw-r--r--g10/g10.c54
1 files changed, 29 insertions, 25 deletions
diff --git a/g10/g10.c b/g10/g10.c
index 6393c522c..0749ff6dc 100644
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -2853,37 +2853,41 @@ main( int argc, char **argv )
}
break;
- case aSignKey: /* sign the key given as argument */
+ case aSignKey:
if( argc != 1 )
- wrong_args(_("--sign-key user-id"));
- username = make_username( fname );
- keyedit_menu(fname, locusr, NULL, 1 );
- m_free(username);
- break;
-
+ wrong_args(_("--sign-key user-id"));
+ /* fall through */
case aLSignKey:
if( argc != 1 )
- wrong_args(_("--lsign-key user-id"));
- username = make_username( fname );
- keyedit_menu(fname, locusr, NULL, 2 );
- m_free(username);
- break;
-
+ wrong_args(_("--lsign-key user-id"));
+ /* fall through */
case aNRSignKey:
if( argc != 1 )
- wrong_args(_("--nrsign-key user-id"));
- username = make_username( fname );
- keyedit_menu(fname, locusr, NULL, 3 );
- m_free(username);
- break;
-
+ wrong_args(_("--nrsign-key user-id"));
+ /* fall through */
case aNRLSignKey:
if( argc != 1 )
- wrong_args(_("--nrlsign-key user-id"));
+ wrong_args(_("--nrlsign-key user-id"));
+
+ sl=NULL;
+
+ if(cmd==aSignKey)
+ append_to_strlist(&sl,"sign");
+ else if(cmd==aLSignKey)
+ append_to_strlist(&sl,"lsign");
+ else if(cmd==aNRSignKey)
+ append_to_strlist(&sl,"nrsign");
+ else if(cmd==aNRLSignKey)
+ append_to_strlist(&sl,"nrlsign");
+ else
+ BUG();
+
+ append_to_strlist( &sl, "save" );
username = make_username( fname );
- keyedit_menu(fname, locusr, NULL, 4 );
- m_free(username);
- break;
+ keyedit_menu(fname, locusr, sl, 0, 0 );
+ m_free(username);
+ free_strlist(sl);
+ break;
case aEditKey: /* Edit a key signature */
if( !argc )
@@ -2893,11 +2897,11 @@ main( int argc, char **argv )
sl = NULL;
for( argc--, argv++ ; argc; argc--, argv++ )
append_to_strlist( &sl, *argv );
- keyedit_menu( username, locusr, sl, 0 );
+ keyedit_menu( username, locusr, sl, 0, 1 );
free_strlist(sl);
}
else
- keyedit_menu(username, locusr, NULL, 0 );
+ keyedit_menu(username, locusr, NULL, 0, 1 );
m_free(username);
break;