bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 8/9] pipe-filter-gi, pipe-filter-ii: better use of 'inline'


From: Paul Eggert
Subject: [PATCH 8/9] pipe-filter-gi, pipe-filter-ii: better use of 'inline'
Date: Wed, 29 Aug 2012 23:26:12 -0700
User-agent: Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20120714 Thunderbird/14.0

* lib/pipe-filter-aux.c: New file.
* lib/pipe-filter-aux.h (PIPE_FILTER_AUX_INLINE): New macro.
Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* lib/pipe-filter-gi.c (filter_init, filter_cleanup)
(filter_retcode): No real need for inline here.
* modules/pipe-filter-gi, modules/pipe-filter-ii:
(Files): Add lib/pipe-filter-aux.c.
(Depends-on): Add extern-inline.
(configure.ac): Do not require AC_C_INLINE.
(lib_SOURCES): Add pipe-filter-aux.c.
---
 ChangeLog              | 13 +++++++++++++
 lib/pipe-filter-aux.c  | 43 +++++++++++++++++++++++++++++++++++++++++++
 lib/pipe-filter-aux.h  | 14 ++++++++++----
 lib/pipe-filter-gi.c   | 14 +++++++-------
 modules/pipe-filter-gi |  5 +++--
 modules/pipe-filter-ii |  5 +++--
 6 files changed, 79 insertions(+), 15 deletions(-)
 create mode 100644 lib/pipe-filter-aux.c

diff --git a/ChangeLog b/ChangeLog
index 9ac7316..d177653 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,18 @@
 2012-08-29  Paul Eggert  <address@hidden>
 
+       pipe-filter-gi, pipe-filter-ii: better use of 'inline'
+       * lib/pipe-filter-aux.c: New file.
+       * lib/pipe-filter-aux.h (PIPE_FILTER_AUX_INLINE): New macro.
+       Replace all uses of 'static inline' with it.
+       Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
+       * lib/pipe-filter-gi.c (filter_init, filter_cleanup)
+       (filter_retcode): No real need for inline here.
+       * modules/pipe-filter-gi, modules/pipe-filter-ii:
+       (Files): Add lib/pipe-filter-aux.c.
+       (Depends-on): Add extern-inline.
+       (configure.ac): Do not require AC_C_INLINE.
+       (lib_SOURCES): Add pipe-filter-aux.c.
+
        fdutimensat: omit unnecessary AC_C_INLINE
        * modules/fdutimensat (configure.ac): Remove AC_C_INLINE.
 
diff --git a/lib/pipe-filter-aux.c b/lib/pipe-filter-aux.c
new file mode 100644
index 0000000..68c4a4f
--- /dev/null
+++ b/lib/pipe-filter-aux.c
@@ -0,0 +1,43 @@
+/* Auxiliary code for filtering of data through a subprocess.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#define PIPE_FILTER_AUX_INLINE _GL_EXTERN_INLINE
+
+#include "pipe-filter.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <unistd.h>
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# include <windows.h>
+#else
+# include <signal.h>
+# include <sys/select.h>
+#endif
+
+#include "error.h"
+#include "spawn-pipe.h"
+#include "wait-process.h"
+#include "gettext.h"
+
+#define _(str) gettext (str)
+
+#include "pipe-filter-aux.h"
diff --git a/lib/pipe-filter-aux.h b/lib/pipe-filter-aux.h
index 38fa164..713c1a0 100644
--- a/lib/pipe-filter-aux.h
+++ b/lib/pipe-filter-aux.h
@@ -15,6 +15,10 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+_GL_INLINE_HEADER_BEGIN
+#ifndef PIPE_FILTER_AUX_INLINE
+# define PIPE_FILTER_AUX_INLINE _GL_INLINE
+#endif
 
 #ifndef SSIZE_MAX
 # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
@@ -39,7 +43,7 @@
    These functions can return -1/EINTR even though we don't have any
    signal handlers set up, namely when we get interrupted via SIGSTOP.  */
 
-static inline int
+PIPE_FILTER_AUX_INLINE int
 nonintr_close (int fd)
 {
   int retval;
@@ -53,7 +57,7 @@ nonintr_close (int fd)
 #undef close /* avoid warning related to gnulib module unistd */
 #define close nonintr_close
 
-static inline ssize_t
+PIPE_FILTER_AUX_INLINE ssize_t
 nonintr_read (int fd, void *buf, size_t count)
 {
   ssize_t retval;
@@ -66,7 +70,7 @@ nonintr_read (int fd, void *buf, size_t count)
 }
 #define read nonintr_read
 
-static inline ssize_t
+PIPE_FILTER_AUX_INLINE ssize_t
 nonintr_write (int fd, const void *buf, size_t count)
 {
   ssize_t retval;
@@ -82,7 +86,7 @@ nonintr_write (int fd, const void *buf, size_t count)
 
 # if HAVE_SELECT
 
-static inline int
+PIPE_FILTER_AUX_INLINE int
 nonintr_select (int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
                 struct timeval *timeout)
 {
@@ -111,3 +115,5 @@ nonintr_select (int n, fd_set *readfds, fd_set *writefds, 
fd_set *exceptfds,
 #  define IS_EAGAIN(errcode) ((errcode) == EAGAIN)
 # endif
 #endif
+
+_GL_INLINE_HEADER_END
diff --git a/lib/pipe-filter-gi.c b/lib/pipe-filter-gi.c
index c1ccec3..8db5d85 100644
--- a/lib/pipe-filter-gi.c
+++ b/lib/pipe-filter-gi.c
@@ -81,7 +81,7 @@ struct pipe_filter_gi
 
 /* Perform additional initializations.
    Return 0 if successful, -1 upon failure.  */
-static inline int filter_init (struct pipe_filter_gi *filter);
+static int filter_init (struct pipe_filter_gi *filter);
 
 /* Write count bytes starting at buf, while at the same time invoking the
    read iterator (the functions prepare_read/done_read) when needed.  */
@@ -91,8 +91,8 @@ static void filter_loop (struct pipe_filter_gi *filter,
 /* Perform cleanup actions at the end.
    finish_reading is true if there was no error, or false if some error
    occurred already.  */
-static inline void filter_cleanup (struct pipe_filter_gi *filter,
-                                   bool finish_reading);
+static void filter_cleanup (struct pipe_filter_gi *filter,
+                            bool finish_reading);
 
 
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
@@ -136,7 +136,7 @@ reader_thread_func (void *thread_arg)
   abort ();
 }
 
-static inline int
+static int
 filter_init (struct pipe_filter_gi *filter)
 {
   InitializeCriticalSection (&filter->lock);
@@ -200,7 +200,7 @@ filter_loop (struct pipe_filter_gi *filter, const char 
*wbuf, size_t count)
     }
 }
 
-static inline void
+static void
 filter_cleanup (struct pipe_filter_gi *filter, bool finish_reading)
 {
   if (finish_reading)
@@ -218,7 +218,7 @@ filter_cleanup (struct pipe_filter_gi *filter, bool 
finish_reading)
 #else
 /* Unix API.  */
 
-static inline int
+static int
 filter_init (struct pipe_filter_gi *filter)
 {
 #if !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
@@ -459,7 +459,7 @@ filter_terminate (struct pipe_filter_gi *filter)
    Return 0 upon success, or (only if exit_on_error is false):
    - -1 with errno set upon failure,
    - the positive exit code of the subprocess if that failed.  */
-static inline int
+static int
 filter_retcode (struct pipe_filter_gi *filter)
 {
   if (filter->writer_errno != 0)
diff --git a/modules/pipe-filter-gi b/modules/pipe-filter-gi
index ac56c60..a8df3cb 100644
--- a/modules/pipe-filter-gi
+++ b/modules/pipe-filter-gi
@@ -5,11 +5,13 @@ Files:
 lib/pipe-filter.h
 lib/pipe-filter-gi.c
 lib/pipe-filter-aux.h
+lib/pipe-filter-aux.c
 
 Depends-on:
 spawn-pipe
 wait-process
 error
+extern-inline
 fcntl-h
 gettext-h
 stdbool
@@ -19,11 +21,10 @@ sys_select
 unistd
 
 configure.ac:
-AC_REQUIRE([AC_C_INLINE])
 AC_CHECK_FUNCS_ONCE([select])
 
 Makefile.am:
-lib_SOURCES += pipe-filter-gi.c
+lib_SOURCES += pipe-filter-gi.c pipe-filter-aux.c
 
 Include:
 "pipe-filter.h"
diff --git a/modules/pipe-filter-ii b/modules/pipe-filter-ii
index faa4e1a..9f29e3d 100644
--- a/modules/pipe-filter-ii
+++ b/modules/pipe-filter-ii
@@ -5,11 +5,13 @@ Files:
 lib/pipe-filter.h
 lib/pipe-filter-ii.c
 lib/pipe-filter-aux.h
+lib/pipe-filter-aux.c
 
 Depends-on:
 spawn-pipe
 wait-process
 error
+extern-inline
 fcntl-h
 gettext-h
 stdbool
@@ -19,11 +21,10 @@ sys_select
 unistd
 
 configure.ac:
-AC_REQUIRE([AC_C_INLINE])
 AC_CHECK_FUNCS_ONCE([select])
 
 Makefile.am:
-lib_SOURCES += pipe-filter-ii.c
+lib_SOURCES += pipe-filter-ii.c pipe-filter-aux.c
 
 Include:
 "pipe-filter.h"
-- 
1.7.11.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]