diff options
author | Werner Koch <[email protected]> | 2022-03-04 13:54:17 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2022-03-08 06:50:17 +0000 |
commit | 70b738f93f1ae6b606af701f6def55a6f0f3d04b (patch) | |
tree | 9ccf96873d95fb17944ed4b1d08b7df0328f9731 /tools/gpgtar-create.c | |
parent | common,w32: Support file names longer than MAX_PATH in iobuf. (diff) | |
download | gnupg-70b738f93f1ae6b606af701f6def55a6f0f3d04b.tar.gz gnupg-70b738f93f1ae6b606af701f6def55a6f0f3d04b.zip |
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.
Diffstat (limited to 'tools/gpgtar-create.c')
-rw-r--r-- | tools/gpgtar-create.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/tools/gpgtar-create.c b/tools/gpgtar-create.c index 80860befd..d17467077 100644 --- a/tools/gpgtar-create.c +++ b/tools/gpgtar-create.c @@ -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 (); @@ -1142,7 +1141,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 (); |