aboutsummaryrefslogtreecommitdiffstats
path: root/g10/g10.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/g10.c')
-rw-r--r--g10/g10.c29
1 files changed, 24 insertions, 5 deletions
diff --git a/g10/g10.c b/g10/g10.c
index 8ab8493c3..1cf7c09d9 100644
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -367,8 +367,8 @@ our_pk_test_algo( int algo )
}
-const char *
-strusage( int level )
+static const char *
+my_strusage( int level )
{
static char *digests, *pubkeys, *ciphers;
const char *p;
@@ -410,7 +410,7 @@ strusage( int level )
p = digests;
break;
- default: p = default_strusage(level);
+ default: p = NULL;
}
return p;
}
@@ -487,6 +487,25 @@ make_username( const char *string )
static void
+register_extension( const char *mainpgm, const char *fname )
+{
+ if( *fname != '/' ) { /* do tilde expansion etc */
+ char *tmp;
+
+ if( strchr(fname, '/') )
+ tmp = make_filename(fname, NULL);
+ else
+ tmp = make_filename(GNUPG_LIBDIR, fname, NULL);
+ register_cipher_extension( mainpgm, tmp );
+ m_free(tmp);
+ }
+ else
+ register_cipher_extension( mainpgm, fname );
+}
+
+
+
+static void
set_debug(void)
{
if( opt.debug & DBG_MEMORY_VALUE )
@@ -564,6 +583,7 @@ main( int argc, char **argv )
#endif
trap_unaligned();
+ set_strusage( my_strusage );
secmem_set_flags( secmem_get_flags() | 2 ); /* suspend warnings */
/* Please note that we may running SUID(ROOT), so be very CAREFUL
* when adding any stuff between here and the call to
@@ -782,8 +802,7 @@ main( int argc, char **argv )
case aListSecretKeys: set_cmd( &cmd, aListSecretKeys); break;
case oAlwaysTrust: opt.always_trust = 1; break;
case oLoadExtension:
- register_cipher_extension(orig_argc? *orig_argv:NULL,
- pargs.r.ret_str);
+ register_extension(orig_argc? *orig_argv:NULL, pargs.r.ret_str);
break;
case oRFC1991:
opt.rfc1991 = 1;