Readline: Cleanup some warnings

Message ID 20190129144438.72441-1-alan.hayward@arm.com
State New
Headers show
Series
  • Readline: Cleanup some warnings
Related show

Commit Message

Alan Hayward Jan. 29, 2019, 2:44 p.m.
Cleanup the readline warnings that gdb buildbot complains about.

To prevent wcwidth missing declaration warnings, add the SOURCE /
EXTENSION macros to config.in that have already been checked for
in configure.  Use the exact same list as GDB - it seemed sensible
to add all of them.

Ensure pid is a long before printing as one.  Also fix GNU style.

Check the return value of write the same way as history_do_write ().

(I think this is the correct mailing list for readline. Built on X86
 and AArch64. Couldn't see a readline testsuite, so ran the GDB
 testsuite on both. Happy to split into three smaller patches.)

readline/ChangeLog.gdb:

2019-01-29  Alan Hayward  <alan.hayward@arm.com>

	* config.h.in: Add SOURCE/EXTENSION macros.
	* histfile.c (history_truncate_file): Check return of write.
	* util.c: Ensure pid is long.
---
 readline/config.h.in | 21 +++++++++++++++++++++
 readline/histfile.c  |  3 ++-
 readline/util.c      |  6 +++---
 3 files changed, 26 insertions(+), 4 deletions(-)

-- 
2.17.2 (Apple Git-113)

Comments

Alan Modra Jan. 30, 2019, 1:45 a.m. | #1
On Tue, Jan 29, 2019 at 02:44:53PM +0000, Alan Hayward wrote:
> (I think this is the correct mailing list for readline.


No, gdb-patches is more appropriate.  Or better, see
https://tiswww.case.edu/php/chet/readline/rltop.html and make patches
against upstream readline then consider importing the latest to gdb.

-- 
Alan Modra
Australia Development Lab, IBM

Patch

diff --git a/readline/config.h.in b/readline/config.h.in
index 86d86cfa3d..81575f43f7 100644
--- a/readline/config.h.in
+++ b/readline/config.h.in
@@ -271,3 +271,24 @@ 
 #    define USE_VARARGS
 #  endif
 #endif
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
diff --git a/readline/histfile.c b/readline/histfile.c
index fffeb3fd31..56cbbf0498 100644
--- a/readline/histfile.c
+++ b/readline/histfile.c
@@ -407,7 +407,8 @@  history_truncate_file (fname, lines)
      truncate to. */
   if (bp > buffer && ((file = open (filename, O_WRONLY|O_TRUNC|O_BINARY, 0600)) != -1))
     {
-      write (file, bp, chars_read - (bp - buffer));
+      if (write (file, bp, chars_read - (bp - buffer)) < 0)
+	rv = errno;
 
 #if defined (__BEOS__)
       /* BeOS ignores O_TRUNC. */
diff --git a/readline/util.c b/readline/util.c
index d402fce842..13bd00c09c 100644
--- a/readline/util.c
+++ b/readline/util.c
@@ -515,11 +515,11 @@  _rl_tropen ()
 	   (sh_get_env_value ("TEMP")
 	    ? sh_get_env_value ("TEMP")
 	    : "."),
-	   getpid());
+	   getpid ());
 #else
-  sprintf (fnbuf, "/var/tmp/rltrace.%ld", getpid());
+  sprintf (fnbuf, "/var/tmp/rltrace.%ld", (long) getpid ());
 #endif
-  unlink(fnbuf);
+  unlink (fnbuf);
   _rl_tracefp = fopen (fnbuf, "w+");
   return _rl_tracefp != 0;
 }