intprops: port to Oracle Studio c99
[gnulib.git] / lib / savewd.h
index 115a735..7dedbee 100644 (file)
@@ -1,11 +1,11 @@
 /* Save and restore the working directory, possibly using a subprocess.
 
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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 2, or (at your option)
-   any later version.
+   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
@@ -13,8 +13,7 @@
    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, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert.  */
 
 #include <stdbool.h>
 #include <sys/types.h>
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef SAVEWD_INLINE
+# define SAVEWD_INLINE _GL_INLINE
+#endif
+
 /* A saved working directory.  The member names and constants defined
    by this structure are private to the savewd module.  */
 struct savewd
@@ -32,29 +39,29 @@ struct savewd
   enum
     {
       /* This object has been created but does not yet represent
-        the working directory.  */
+         the working directory.  */
       INITIAL_STATE,
 
       /* val.fd is the original working directory's file descriptor.
-        It is still the working directory.  */
+         It is still the working directory.  */
       FD_STATE,
 
       /* Like FD_STATE, but the working directory has changed, so
-        restoring it will require a fchdir.  */
+         restoring it will require a fchdir.  */
       FD_POST_CHDIR_STATE,
 
       /* Fork and let the subprocess do the work.  val.child is 0 in a
-        child, negative in a childless parent, and the child process
-        ID in a parent with a child.  */
+         child, negative in a childless parent, and the child process
+         ID in a parent with a child.  */
       FORKING_STATE,
 
       /* A serious problem argues against further efforts.  val.errnum
-        contains the error number (e.g., EIO).  */
+         contains the error number (e.g., EIO).  */
       ERROR_STATE,
 
       /* savewd_finish has been called, so the application no longer
-        cares whether the working directory is saved, and there is no
-        more work to do.  */
+         cares whether the working directory is saved, and there is no
+         more work to do.  */
       FINAL_STATE
     } state;
 
@@ -68,7 +75,7 @@ struct savewd
 };
 
 /* Initialize a saved working directory object.  */
-static inline void
+SAVEWD_INLINE void
 savewd_init (struct savewd *wd)
 {
   wd->state = INITIAL_STATE;
@@ -107,7 +114,7 @@ enum
    Return -2 if a subprocess was spun off to do the real work, -1
    (setting errno) if unsuccessful, 0 if successful.  */
 int savewd_chdir (struct savewd *wd, char const *dir, int options,
-                 int open_result[2]);
+                  int open_result[2]);
 
 /* Restore the working directory from *WD.  STATUS indicates the exit
    status corresponding to the work done since the last save; this is
@@ -118,7 +125,7 @@ int savewd_chdir (struct savewd *wd, char const *dir, int options,
 int savewd_restore (struct savewd *wd, int status);
 
 /* Return WD's error number, or 0 if WD is not in an error state.  */
-static inline int
+SAVEWD_INLINE int
 savewd_errno (struct savewd const *wd)
 {
   return (wd->state == ERROR_STATE ? wd->val.errnum : 0);
@@ -131,7 +138,7 @@ void savewd_finish (struct savewd *wd);
 /* Process N_FILES file names, FILE[0] through FILE[N_FILES - 1].
    For each file name F, call ACT (F, WD, OPTIONS); ACT should invoke
    savewd_chdir as needed, and should return an exit status.  WD
-   represents thw working directory; it may be in an error state when
+   represents the working directory; it may be in an error state when
    ACT is called.
 
    Save and restore the working directory as needed by the file name
@@ -143,7 +150,9 @@ void savewd_finish (struct savewd *wd);
    Return the maximum exit status that any call to ACT returned, or
    EXIT_SUCCESS (i.e., 0) if no calls were made.  */
 int savewd_process_files (int n_files, char **file,
-                         int (*act) (char *, struct savewd *, void *),
-                         void *options);
+                          int (*act) (char *, struct savewd *, void *),
+                          void *options);
+
+_GL_INLINE_HEADER_END
 
 #endif