From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1955) id 14A3E3858D1E; Fri, 28 Jan 2022 09:09:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 14A3E3858D1E To: cygwin-apps-cvs@sourceware.org Subject: [cygutils - Chuck Wilson's collection of Cygwin utilities] branch master, updated. v1_4_16-12-ga804501 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 3e94e050af7ad4ac84d12c18e9408e4c4f34cb56 X-Git-Newrev: a804501b8c33c55a45a87b6e505b4e5db41e4f2f Message-Id: <20220128090923.14A3E3858D1E@sourceware.org> Date: Fri, 28 Jan 2022 09:09:23 +0000 (GMT) From: Mark Geisert X-BeenThere: cygwin-apps-cvs@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin-apps git logs List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Jan 2022 09:09:23 -0000 https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/cygutils.git;h=a804501b8c33c55a45a87b6e505b4e5db41e4f2f commit a804501b8c33c55a45a87b6e505b4e5db41e4f2f Author: Mark Geisert Date: Fri Jan 28 01:07:45 2022 -0800 Fold in latest clip fixes Diff: --- BRANCHES | 2 ++ ChangeLog | 22 +++++++++++++++++++--- NEWS | 3 +++ configure.ac | 2 +- cygutils.cygport | 4 ++-- src/clip/getclip.c | 8 ++++++-- src/clip/putclip.c | 26 +++++++++++++++++++++----- 7 files changed, 54 insertions(+), 13 deletions(-) diff --git a/BRANCHES b/BRANCHES index 753f632..f0a432c 100644 --- a/BRANCHES +++ b/BRANCHES @@ -104,3 +104,5 @@ v1_4_14 v1_4_15 | v1_4_16 + | +v1_4_17 diff --git a/ChangeLog b/ChangeLog index 98e8d40..0a1709c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,26 @@ +2022-01-28 Mark Geisert + + Release 1.4.17 + * configure.ac: Bump version number to 1.4.17. + * BRANCHES: Ditto. + * cygutils.cygport: Ditto. + * src/clip/getclip.c: Fix segfault on xterm selections. Thanks to + Denis Excoffier for the report, Brian Inglis, Andrey Repin, and Jon + Turney for the discussion. + * src/clip/putclip.c: Add missing 32/64 timespec expansion. Thanks to + Takashi Yano for the report and investigation. + * src/clip/putclip.c: Make sure allocated buf is large enough to + append a NUL character. Thanks to Marco Atzeri for the report. + * src/clip/putclip.c: Add debugging feature to allow a file name in + argv (undocumented). + 2021-11-03 Mark Geisert (1.4.16-8) * src/clip/{get,put}clip.c: Replace use of Windows UTF-8 conversion functions with corresponding POSIX functions. MultiByteToWideChar-> mbstowcs, WideCharToMultiByte->wcstombs. Thanks to Takashi Yano. - * src/putclip.c: Have putclip open the clipboard just once instead - of multiple times for multiple formats. Thanks to Takashi Yano. + * src/clip/putclip.c: Have putclip open the clipboard just once + instead of multiple times for multiple formats. Thanks to Takashi Yano. 2021-09-23 Mark Geisert (1.4.16-7) @@ -32,7 +48,7 @@ didn't make it into the released -3 package. Thank you Takashi Yano. * Fix maintainer build environment issues that caused cygstart crash on non-AVX user systems: Thank you Takashi Yano, Brian Inglis, Achim - Gratz and user Jay Abel for reporting the issue. + Gratz, and user Jay Abel for reporting the issue. * src/cygdrop/cygdrop.cc: Fix crash with recent gcc and fix printf format strings. Thank you Christian Franke. diff --git a/NEWS b/NEWS index f1cedc0..3b42b62 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,6 @@ +1.4.17 + * More bug fixes to getclip and putclip. + 1.4.16 * Unicode support added to mkshortcut and readshortcut by Thomas Wolff. * Minor formatting fixes to quash compiler warnings. diff --git a/configure.ac b/configure.ac index 830f1bf..ce5b38a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.69) -AC_INIT(cygutils, 1.4.16, cygwin@cygwin.com) +AC_INIT(cygutils, 1.4.17, cygwin@cygwin.com) AC_CONFIG_SRCDIR([config.h.in]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) diff --git a/cygutils.cygport b/cygutils.cygport index d2ca1f5..9898b51 100644 --- a/cygutils.cygport +++ b/cygutils.cygport @@ -1,6 +1,6 @@ NAME=cygutils -VERSION=1.4.16 -RELEASE=7 +VERSION=1.4.17 +RELEASE=1 SUMM="A collection of simple utilities" DESC="A collection of simple (single source file) utilities, including" diff --git a/src/clip/getclip.c b/src/clip/getclip.c index 4dbaa97..4f422d9 100644 --- a/src/clip/getclip.c +++ b/src/clip/getclip.c @@ -479,7 +479,9 @@ getclip (FILE * out, flags_struct flags, FILE * f, char *name) char *prev; char *curr; char *pos; +#if DEBUGGING UINT format; +#endif OpenClipboard (0); #if DEBUGGING @@ -505,7 +507,7 @@ getclip (FILE * out, flags_struct flags, FILE * f, char *name) DWORD err = GetLastError (); #if DEBUGGING /* look up error code displayed here in w32api/winerror.h */ - fprintf (stderr, "GetClipboardData returns %ld\n", err); + fprintf (stderr, "GetClipboardData returns %d\n", err); #endif CloseClipboard (); return err != 0; @@ -563,7 +565,9 @@ getclip (FILE * out, flags_struct flags, FILE * f, char *name) char *prev; char *curr; char *pos; +#if DEBUGGING UINT format; +#endif OpenClipboard (0); #if DEBUGGING @@ -589,7 +593,7 @@ getclip (FILE * out, flags_struct flags, FILE * f, char *name) DWORD err = GetLastError (); #if DEBUGGING /* look up error code displayed here in w32api/winerror.h */ - fprintf (stderr, "GetClipboardData returns %ld\n", err); + fprintf (stderr, "GetClipboardData returns %d\n", err); #endif CloseClipboard (); return err != 0; diff --git a/src/clip/putclip.c b/src/clip/putclip.c index fb54416..ff0e4b8 100644 --- a/src/clip/putclip.c +++ b/src/clip/putclip.c @@ -203,9 +203,21 @@ main (int argc, const char **argv) setlocale (LC_ALL, ""); if (rest == NULL) +#if DEBUGGING +ready: +#endif ec |= putclip (stdin, flags, stderr, program_name); else { +#if DEBUGGING + // undocumented debugging feature: read stdin from file named in argv + if (isalpha (**rest)) + { + FILE *tmpin = freopen (*rest, "rb", stdin); + if (tmpin == stdin && !*(rest + 1)) + goto ready; + } +#endif fprintf (stderr, "Extra args ignored: "); while (*rest) fprintf (stderr, "%s ", *rest++); @@ -409,6 +421,10 @@ putclip (FILE * in, flags_struct flags, FILE * f, char *name) { UINT cygnativeformat; + // make sure buf and copies of it have space for a NUL to be appended + // DO NOT CHANGE len TO ACCOUNT FOR THIS + buf = realloc (buf, len + 1); + // if flags.endl_mode == ENDLMODE_NOCONV convbuf = buf; convlen = len; @@ -530,7 +546,7 @@ putclip (FILE * in, flags_struct flags, FILE * f, char *name) #if DEBUGGING DWORD err = GetLastError (); /* look up error code displayed here in w32api/winerror.h */ - fprintf (stderr, "OpenClipboard returns %ld\n", err); + fprintf (stderr, "OpenClipboard returns %d\n", err); #endif goto failout2; } @@ -573,7 +589,7 @@ putclip (FILE * in, flags_struct flags, FILE * f, char *name) clipbufX->cb_sec = clipbufX->ts.tv_sec; #endif clipbufX->cb_size = convlen; - memcpy (&clipbufX[1], convbuf, convlen); + memcpy (((char *) clipbufX) + sizeof (cygcb_t), convbuf, convlen); } else if (cygNewFormat == 1) { @@ -597,7 +613,7 @@ putclip (FILE * in, flags_struct flags, FILE * f, char *name) #if DEBUGGING DWORD err = GetLastError (); /* look up error code displayed here in w32api/winerror.h */ - fprintf (stderr, "SetClipboardData returns %ld\n", err); + fprintf (stderr, "SetClipboardData returns %d\n", err); #endif goto failout; } @@ -647,7 +663,7 @@ putclip (FILE * in, flags_struct flags, FILE * f, char *name) #if DEBUGGING DWORD err = GetLastError (); /* look up error code displayed here in w32api/winerror.h */ - fprintf (stderr, "SetClipboardData returns %ld\n", err); + fprintf (stderr, "SetClipboardData returns %d\n", err); #endif goto failout; } @@ -685,7 +701,7 @@ putclip (FILE * in, flags_struct flags, FILE * f, char *name) #if DEBUGGING DWORD err = GetLastError (); /* look up error code displayed here in w32api/winerror.h */ - fprintf (stderr, "SetClipboardData returns %ld\n", err); + fprintf (stderr, "SetClipboardData returns %d\n", err); #endif goto failout; }