mirror of
git://git.gnupg.org/gnupg.git
synced 2025-06-17 20:27:03 +02:00
* g10.c: New options --[no-]mangle-dos-filenames.
* options.h (opt): Added mangle-dos-filenames. * openfile.c (open_outfile) [USE_ONLY_8DOT3]: Truncate the filename only when this option is set; this is the default. NOT YET TESTED!
This commit is contained in:
parent
1ae9261ef6
commit
9a34b607ab
@ -1,3 +1,10 @@
|
|||||||
|
2002-12-05 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* g10.c: New options --[no-]mangle-dos-filenames.
|
||||||
|
* options.h (opt): Added mangle-dos-filenames.
|
||||||
|
* openfile.c (open_outfile) [USE_ONLY_8DOT3]: Truncate the
|
||||||
|
filename only when this option is set; this is the default.
|
||||||
|
|
||||||
2002-12-04 David Shaw <dshaw@jabberwocky.com>
|
2002-12-04 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* main.h, keyedit.c, keygen.c: Back out previous (2002-12-01)
|
* main.h, keyedit.c, keygen.c: Back out previous (2002-12-01)
|
||||||
|
29
g10/g10.c
29
g10/g10.c
@ -149,13 +149,9 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
oDebug,
|
oDebug,
|
||||||
oDebugAll,
|
oDebugAll,
|
||||||
oStatusFD,
|
oStatusFD,
|
||||||
#ifdef __riscos__
|
oStatusFile, /* only used with risc os */
|
||||||
oStatusFile,
|
|
||||||
#endif /* __riscos__ */
|
|
||||||
oAttributeFD,
|
oAttributeFD,
|
||||||
#ifdef __riscos__
|
oAttributeFile, /* only used with risc os */
|
||||||
oAttributeFile,
|
|
||||||
#endif /* __riscos__ */
|
|
||||||
oSKComments,
|
oSKComments,
|
||||||
oNoSKComments,
|
oNoSKComments,
|
||||||
oNoVersion,
|
oNoVersion,
|
||||||
@ -179,13 +175,9 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
oCertDigestAlgo,
|
oCertDigestAlgo,
|
||||||
oCompressAlgo,
|
oCompressAlgo,
|
||||||
oPasswdFD,
|
oPasswdFD,
|
||||||
#ifdef __riscos__
|
oPasswdFile, /* only used with risc os */
|
||||||
oPasswdFile,
|
|
||||||
#endif /* __riscos__ */
|
|
||||||
oCommandFD,
|
oCommandFD,
|
||||||
#ifdef __riscos__
|
oCommandFile, /* only used with risc os */
|
||||||
oCommandFile,
|
|
||||||
#endif /* __riscos__ */
|
|
||||||
oQuickRandom,
|
oQuickRandom,
|
||||||
oNoVerbose,
|
oNoVerbose,
|
||||||
oTrustDBName,
|
oTrustDBName,
|
||||||
@ -251,9 +243,7 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
oEncryptTo,
|
oEncryptTo,
|
||||||
oNoEncryptTo,
|
oNoEncryptTo,
|
||||||
oLoggerFD,
|
oLoggerFD,
|
||||||
#ifdef __riscos__
|
oLoggerFile, /* only used with risc os */
|
||||||
oLoggerFile,
|
|
||||||
#endif /* __riscos__ */
|
|
||||||
oUtf8Strings,
|
oUtf8Strings,
|
||||||
oNoUtf8Strings,
|
oNoUtf8Strings,
|
||||||
oDisableCipherAlgo,
|
oDisableCipherAlgo,
|
||||||
@ -304,6 +294,8 @@ enum cmd_and_opt_values { aNull = 0,
|
|||||||
oGroup,
|
oGroup,
|
||||||
oStrict,
|
oStrict,
|
||||||
oNoStrict,
|
oNoStrict,
|
||||||
|
oMangleDosFilenames,
|
||||||
|
oNoMangleDosFilenames,
|
||||||
aTest };
|
aTest };
|
||||||
|
|
||||||
|
|
||||||
@ -597,6 +589,8 @@ static ARGPARSE_OPTS opts[] = {
|
|||||||
{ oGroup, "group", 2, "@" },
|
{ oGroup, "group", 2, "@" },
|
||||||
{ oStrict, "strict", 0, "@" },
|
{ oStrict, "strict", 0, "@" },
|
||||||
{ oNoStrict, "no-strict", 0, "@" },
|
{ oNoStrict, "no-strict", 0, "@" },
|
||||||
|
{ oMangleDosFilenames, "mangle-dos-filenames", 0, "@" },
|
||||||
|
{ oNoMangleDosFilenames, "no-mangle-dos-filenames", 0, "@" },
|
||||||
{0} };
|
{0} };
|
||||||
|
|
||||||
|
|
||||||
@ -1112,6 +1106,7 @@ main( int argc, char **argv )
|
|||||||
EXPORT_INCLUDE_NON_RFC|EXPORT_INCLUDE_ATTRIBUTES;
|
EXPORT_INCLUDE_NON_RFC|EXPORT_INCLUDE_ATTRIBUTES;
|
||||||
opt.keyserver_options.include_subkeys=1;
|
opt.keyserver_options.include_subkeys=1;
|
||||||
opt.keyserver_options.include_revoked=1;
|
opt.keyserver_options.include_revoked=1;
|
||||||
|
opt.mangle_dos_filenames = 1;
|
||||||
#if defined (__MINGW32__)
|
#if defined (__MINGW32__)
|
||||||
set_homedir ( read_w32_registry_string( NULL,
|
set_homedir ( read_w32_registry_string( NULL,
|
||||||
"Software\\GNU\\GnuPG", "HomeDir" ));
|
"Software\\GNU\\GnuPG", "HomeDir" ));
|
||||||
@ -1685,6 +1680,10 @@ main( int argc, char **argv )
|
|||||||
case oGroup: add_group(pargs.r.ret_str); break;
|
case oGroup: add_group(pargs.r.ret_str); break;
|
||||||
case oStrict: /* noop */ break;
|
case oStrict: /* noop */ break;
|
||||||
case oNoStrict: /* noop */ break;
|
case oNoStrict: /* noop */ break;
|
||||||
|
|
||||||
|
case oMangleDosFilenames: opt.mangle_dos_filenames = 1; break;
|
||||||
|
case oNoMangleDosFilenames: opt.mangle_dos_filenames = 0; break;
|
||||||
|
|
||||||
default : pargs.err = configfp? 1:2; break;
|
default : pargs.err = configfp? 1:2; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -193,6 +193,8 @@ open_outfile( const char *iname, int mode, IOBUF *a )
|
|||||||
name = opt.outfile;
|
name = opt.outfile;
|
||||||
else {
|
else {
|
||||||
#ifdef USE_ONLY_8DOT3
|
#ifdef USE_ONLY_8DOT3
|
||||||
|
if (opt.mangle_dos_filenames)
|
||||||
|
{
|
||||||
/* It is quite common DOS system to have only one dot in a
|
/* It is quite common DOS system to have only one dot in a
|
||||||
* a filename So if we have something like this, we simple
|
* a filename So if we have something like this, we simple
|
||||||
* replace the suffix execpt in cases where the suffix is
|
* replace the suffix execpt in cases where the suffix is
|
||||||
@ -208,25 +210,31 @@ open_outfile( const char *iname, int mode, IOBUF *a )
|
|||||||
strcpy(buf,iname);
|
strcpy(buf,iname);
|
||||||
dot = strchr(buf, '.' );
|
dot = strchr(buf, '.' );
|
||||||
if ( dot && dot > buf && dot[1] && strlen(dot) <= 4
|
if ( dot && dot > buf && dot[1] && strlen(dot) <= 4
|
||||||
&& CMP_FILENAME(newsfx, dot) ) {
|
&& CMP_FILENAME(newsfx, dot) )
|
||||||
|
{
|
||||||
strcpy(dot, newsfx );
|
strcpy(dot, newsfx );
|
||||||
}
|
}
|
||||||
else if ( dot && !dot[1] ) /* don't duplicate a dot */
|
else if ( dot && !dot[1] ) /* don't duplicate a dot */
|
||||||
strcpy( dot, newsfx+1 );
|
strcpy( dot, newsfx+1 );
|
||||||
else
|
else
|
||||||
strcat ( buf, newsfx );
|
strcat ( buf, newsfx );
|
||||||
#else
|
}
|
||||||
|
if (!buf)
|
||||||
|
#endif /* USE_ONLY_8DOT3 */
|
||||||
|
{
|
||||||
buf = m_alloc(strlen(iname)+4+1);
|
buf = m_alloc(strlen(iname)+4+1);
|
||||||
strcpy(stpcpy(buf,iname), mode==1 ? EXTSEP_S "asc" :
|
strcpy(stpcpy(buf,iname), mode==1 ? EXTSEP_S "asc" :
|
||||||
mode==2 ? EXTSEP_S "sig" : EXTSEP_S "gpg");
|
mode==2 ? EXTSEP_S "sig" : EXTSEP_S "gpg");
|
||||||
#endif
|
}
|
||||||
name = buf;
|
name = buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = 0;
|
rc = 0;
|
||||||
while( !overwrite_filep (name) ) {
|
while( !overwrite_filep (name) )
|
||||||
|
{
|
||||||
char *tmp = ask_outfile_name (NULL, 0);
|
char *tmp = ask_outfile_name (NULL, 0);
|
||||||
if ( !tmp || !*tmp ) {
|
if ( !tmp || !*tmp )
|
||||||
|
{
|
||||||
m_free (tmp);
|
m_free (tmp);
|
||||||
rc = G10ERR_FILE_EXISTS;
|
rc = G10ERR_FILE_EXISTS;
|
||||||
break;
|
break;
|
||||||
@ -235,8 +243,10 @@ open_outfile( const char *iname, int mode, IOBUF *a )
|
|||||||
name = buf = tmp;
|
name = buf = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !rc ) {
|
if( !rc )
|
||||||
if( !(*a = iobuf_create( name )) ) {
|
{
|
||||||
|
if( !(*a = iobuf_create( name )) )
|
||||||
|
{
|
||||||
log_error(_("%s: can't create: %s\n"), name, strerror(errno) );
|
log_error(_("%s: can't create: %s\n"), name, strerror(errno) );
|
||||||
rc = G10ERR_CREATE_FILE;
|
rc = G10ERR_CREATE_FILE;
|
||||||
}
|
}
|
||||||
@ -245,6 +255,7 @@ open_outfile( const char *iname, int mode, IOBUF *a )
|
|||||||
}
|
}
|
||||||
m_free(buf);
|
m_free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,6 +178,7 @@ struct {
|
|||||||
int no_homedir_creation;
|
int no_homedir_creation;
|
||||||
int show_keyring;
|
int show_keyring;
|
||||||
struct groupitem *grouplist;
|
struct groupitem *grouplist;
|
||||||
|
int mangle_dos_filenames;
|
||||||
} opt;
|
} opt;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user