mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpgtar,w32: Support file names longer than MAX_PATH.
* tools/gpgtar.c: Replace assert by log_assert. * tools/gpgtar-extract.c: Ditto. (extract_regular): Create files with sysopen flag. * tools/gpgtar-create.c (scan_directory): Use gpgrt_fname_to_wchar. -- Note that for this change libgpg-error 1.45 is required for Windows.
This commit is contained in:
parent
4122896a39
commit
5492079def
3 changed files with 10 additions and 13 deletions
|
@ -36,7 +36,6 @@
|
|||
# include <pwd.h>
|
||||
# include <grp.h>
|
||||
#endif /*!HAVE_W32_SYSTEM*/
|
||||
#include <assert.h>
|
||||
|
||||
#include "../common/i18n.h"
|
||||
#include "../common/exectool.h"
|
||||
|
@ -114,7 +113,7 @@ fillup_entry_w32 (tar_header_t hdr)
|
|||
for (p=hdr->name; *p; p++)
|
||||
if (*p == '/')
|
||||
*p = '\\';
|
||||
wfname = utf8_to_wchar (hdr->name);
|
||||
wfname = gpgrt_fname_to_wchar (hdr->name);
|
||||
for (p=hdr->name; *p; p++)
|
||||
if (*p == '\\')
|
||||
*p = '/';
|
||||
|
@ -345,7 +344,7 @@ scan_directory (const char *dname, scanctrl_t scanctrl)
|
|||
for (p=fname; *p; p++)
|
||||
if (*p == '/')
|
||||
*p = '\\';
|
||||
wfname = utf8_to_wchar (fname);
|
||||
wfname = gpgrt_fname_to_wchar (fname);
|
||||
xfree (fname);
|
||||
if (!wfname)
|
||||
{
|
||||
|
@ -448,7 +447,7 @@ scan_recursive (const char *dname, scanctrl_t scanctrl)
|
|||
}
|
||||
scanctrl->nestlevel++;
|
||||
|
||||
assert (scanctrl->flist_tail);
|
||||
log_assert (scanctrl->flist_tail);
|
||||
start_tail = scanctrl->flist_tail;
|
||||
scan_directory (dname, scanctrl);
|
||||
stop_tail = scanctrl->flist_tail;
|
||||
|
@ -903,7 +902,7 @@ write_file (estream_t stream, tar_header_t hdr)
|
|||
|
||||
if (hdr->typeflag == TF_REGULAR)
|
||||
{
|
||||
infp = es_fopen (hdr->name, "rb");
|
||||
infp = es_fopen (hdr->name, "rb,sysopen");
|
||||
if (!infp)
|
||||
{
|
||||
err = gpg_error_from_syserror ();
|
||||
|
@ -1152,7 +1151,7 @@ gpgtar_create (char **inpattern, const char *files_from, int null_names,
|
|||
if (!strcmp (opt.outfile, "-"))
|
||||
outstream = es_stdout;
|
||||
else
|
||||
outstream = es_fopen (opt.outfile, "wb");
|
||||
outstream = es_fopen (opt.outfile, "wb,sysopen");
|
||||
if (!outstream)
|
||||
{
|
||||
err = gpg_error_from_syserror ();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue