aboutsummaryrefslogtreecommitdiffstats
path: root/g10/openfile.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>1999-07-01 10:53:35 +0000
committerWerner Koch <[email protected]>1999-07-01 10:53:35 +0000
commit28eb86c0063dabf55763e00c4f9abcae8117c493 (patch)
treedd18314317ef387a4d65464277a44355a00773d6 /g10/openfile.c
parentSee ChangeLog: Tue Jun 29 21:44:25 CEST 1999 Werner Koch (diff)
downloadgnupg-28eb86c0063dabf55763e00c4f9abcae8117c493.tar.gz
gnupg-28eb86c0063dabf55763e00c4f9abcae8117c493.zip
See ChangeLog: Thu Jul 1 12:47:31 CEST 1999 Werner Koch
Diffstat (limited to 'g10/openfile.c')
-rw-r--r--g10/openfile.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/g10/openfile.c b/g10/openfile.c
index af0ab3c1d..ebf954843 100644
--- a/g10/openfile.c
+++ b/g10/openfile.c
@@ -99,6 +99,44 @@ make_outfile_name( const char *iname )
}
+/****************
+ * Ask for a outputfilename and use the given one as default.
+ * Return NULL if no file has been given or it is not possible to
+ * ask the user.
+ */
+char *
+ask_outfile_name( const char *name, size_t namelen )
+{
+ size_t n;
+ const char *s;
+ char *prompt;
+ char *fname;
+ char *defname;
+
+ if( opt.batch )
+ return NULL;
+
+ s = _("Enter new filename");
+
+ n = strlen(s) + namelen + 10;
+ defname = name && namelen? make_printable_string( name, namelen, 0): NULL;
+ prompt = m_alloc(n);
+ if( defname )
+ sprintf(prompt, "%s [%s]: ", s, defname );
+ else
+ sprintf(prompt, "%s: ", s );
+ fname = cpr_get("openfile.askoutname", prompt );
+ cpr_kill_prompt();
+ m_free(prompt);
+ if( !*fname ) {
+ m_free( fname ); fname = NULL;
+ fname = defname; defname = NULL;
+ }
+ m_free(defname);
+ return fname;
+}
+
+
/****************
* Make an output filename for the inputfile INAME.