bug-gnulib
[Top][All Lists]
Advanced

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

Re: Fwd: sed porting trouble


From: Bruno Haible
Subject: Re: Fwd: sed porting trouble
Date: Mon, 4 Oct 2010 00:36:59 +0200
User-agent: KMail/1.9.9

Hi Paul,

Some of your proposed changes are undoubtedly good. I like the new macro
in math.in.h, and comment lines have usually no reason to be longer than
80 columns.

I've applied the part of your patch which I agree with (see below).

However, the main reasons why I want to handle this portability problem using
@PRAGMA_COLUMNS@ still stand:

  * I want a solution that does not bring a burden for all future developments.
    In particular, I don't want to remember (and to remind contributors about)
    syntactic rules for some gnulib files, if that can be avoided.

  * The set of files to which these rules would apply is unreliable. First we
    thought that only the *.in.h files are affected. Joachim then noticed that
    build-aux/c++defs.h is also affected. Then you found out that there is also
    lib/alignof.h and lib/stdio-impl.h. What else?!

Regarding the indentation: I value consistency higher than an occasional use
of long lines. If the idiom is to use

  #define func rpl_func

then someone will be use using some day a

  $ grep '#define \(.*\) rpl_'

command. If the preprocessor directive is broken into two lines, the 'grep'
command will miss it. In fact, because of the size that gnulib now has,
many of my gnulib commits (and some of Paolo as well) are done with the use
of 'grep' or 'sed'. Consistency of the formatting therefore has become
essential.

> Most people who edit GNU code use 80-column windows

The maximize button is just a mouse click away.

> > 2) Reliability. Your patch "fixes" 24 places. But how long will it take for
> >    another commit to reintroduce a line longer than 80 columns?
> 
> Good point, thanks.  The revised patch, proposed below, addresses this
> by adding a syntax check for the problem.  (A syntax check of some
> sort should be added no matter what solution we adopt.)

Actually, I'm against such a syntax check, because it forces inconsistent
formatting in some cases, as explained above.

> > 3) A limit on the line length invariably creates a pressure to use short
> >    identifiers - a bad habit which we have finally nearly eliminated from 
> > our
> >    minds.
> 
> That pressure is created only when using indenting styles in which
> identifier line length significantly contributes to the indenting.
> ...
> in my experience, once an identifier becomes so long that one
> cannot reasonably indent code, then it's almost invariably too long
> for other reasons as well.

You falsify this claim yourself, by proposing this hunk to lib/alignof.h:

  > @@ -25,10 +25,10 @@
  >     Note: The result cannot be used as a value for an 'enum' constant,
  >     due to bugs in HP-UX 10.20 cc and AIX 3.2.5 xlc.  */
  >  #if defined __cplusplus
  > -  template <class type> struct alignof_helper { char __slot1; type 
__slot2; };
  > -# define alignof_slot(type) offsetof (alignof_helper<type>, __slot2)
  > +  template <class type> struct alignof_helper { char __x; type __y; };
  > +# define alignof_slot(type) offsetof (alignof_helper<type>, __y)
  >  #else
  > -# define alignof_slot(type) offsetof (struct { char __slot1; type __slot2; 
}, __slot2)
  > +# define alignof_slot(type) offsetof (struct { char __x; type __y; }, __y)
  >  #endif

This hunk proposed to replace 'slot1' and 'slot2' with 'x' and 'y', which makes
people think of two-dimensional geometry.

> >    The results of following an 80-columns limit does not produce readable 
> > code
> >    either. These snippets are taken from glibc's header files.
> ... we can easily use a different style for our own code, should the
> problem come up.  For example:
> 
>   extern int posix_spawnattr_setschedparam
>     (
>       posix_spawnattr_t *restrict attr,
>       struct sched_param const *restrict schedparam
>     ) __THROW;

Yes, we can. I tried such a different style in lib/unistr.h for example. But
the more experiments we make on this topic, the more it puts off people who
want to see consistently indented code, and the more it makes 'grep'ping for
a particular definition unreliable - since you don't know how it's indented.

> > 5) There are cases where you can't even reasonably insert a line break at 
> > all.
> >    Namely when you have an URL longer than 80 characters.
> 
> I'm not a big fan of those particular URLs, as they make the code hard
> to read and they're not important enough to be directly in the code
> (they could be in a ChangeLog entry, or in some other auxiliary
> document).  However, if they are to be in the code, they can easily be
> shortened, which I do in my patch proposed below.

The use of URL shorteners has security implications. When I click on
<http://www.dragonflybsd.org/cvsweb/...> I know that I can do this with an
unsecure browser, with low risk. But when people should click on
<http://tinyurl.com/24lancp>, they should better use a browser with up-to-date
security patches and anti-phishing devices.

More on this topic:
<http://unweary.com/2009/04/the-security-implications-of-url-shortening-services.html>

> Here's a proposed patch that takes the above comments into account.

> +#define _GL_WARN_UNPORTABLE(name)                                       \
> +  _GL_WARN_ON_USE (name,                                                \
> +                   (#name " is unportable - "                           \
> +                    "use gnulib module " #name " for portability"))
> +

I haven't applied this because for every function, the maintainer should think
whether "is unportable" is the right summary, or whether there is a better
problem description. _GL_WARN_UNPORTABLE encourages to not think about it.

>  #if defined __cplusplus
> -  template <class type> struct alignof_helper { char __slot1; type __slot2; 
> };
> -# define alignof_slot(type) offsetof (alignof_helper<type>, __slot2)
> +  template <class type> struct alignof_helper { char __x; type __y; };
> +# define alignof_slot(type) offsetof (alignof_helper<type>, __y)
>  #else
> -# define alignof_slot(type) offsetof (struct { char __slot1; type __slot2; 
> }, __slot2)
> +# define alignof_slot(type) offsetof (struct { char __x; type __y; }, __y)
>  #endif

I don't like this because it shortens some identifiers.

>  /* Need to cast, because on glibc systems, the fourth parameter is
>                          int (*cmp) (const void *, const void *).  */
> -_GL_CXXALIAS_SYS_CAST (scandir, int,
> -                       (const char *dir, struct dirent ***namelist,
> -                        int (*filter) (const struct dirent *),
> -                        int (*cmp) (const struct dirent **, const struct 
> dirent **)));
> +_GL_CXXALIAS_SYS_CAST
> +(scandir, int,
> + (const char *dir, struct dirent ***namelist,
> +  int (*filter) (const struct dirent *),
> +  int (*cmp) (const struct dirent **, const struct dirent **)));

I haven't applied this because this style would make grepping harder.

>  #if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX)
> -# error "This file assumes that 'int' has exactly 32 bits. Please report 
> your platform and compiler to <address@hidden>."
> +# error "This file assumes that 'int' has exactly 32 bits." \
> +        "Please report your platform and compiler to <address@hidden>."
>  #endif

I haven't applied this because I don't know how portable the use of multiple
string arguments to #error is.

>  # if @HAVE_ISNAND@
> -/* The original <math.h> included above provides a declaration of isnan 
> macro.  */
> +/* The <math.h> included above provides a declaration of the isnan macro.  */

I haven't applied this because it shortens a comment.

>  # if @REPLACE_POSIX_SPAWN@
>  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
> -#   define posix_spawn_file_actions_addclose 
> rpl_posix_spawn_file_actions_addclose
> +#   define posix_spawn_file_actions_addclose \
> +       rpl_posix_spawn_file_actions_addclose
>  #  endif

I am opposed to this because it makes grepping harder.

>     breaks if this is not the case.  If this check fails, the reason is likely
>     to be found in the autoconf macros.  */
> -typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof 
> (uintmax_t)) - 1];
> +typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
> +                                ? 1 : -1];

I am opposed to this, because in C89, conditional expressions were not allowed
in constant expressions, whereas * and - expressions were. Yes, it was probably
an oversight in the standard, but it's like this in the standard.

>  #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@
> -# if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \
> -     || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && 
> @GNULIB_STDIO_H_SIGPIPE@)
> +# if ((@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@)             \
> +      || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@       \
> +          && @GNULIB_STDIO_H_SIGPIPE@))
>  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)

I haven't applied this because the 3-line code is not really simpler to
understand, IMO.

Bruno


2010-10-03  Paul Eggert  <address@hidden>

        Avoid some lines longer than 80 characters.
        * lib/stdint.in.h: Break long comment lines.
        * lib/math.in.h: Likewise.
        (_GL_NUM_UINT_WORDS): New macro, for readability.
        (gl_signbitf, gl_signbitd, gl_signbitl): Use it.
        * lib/stdio.in.h: Break lines in _GL_WARN_ON_USE calls.
        * lib/stdlib.in.h: Likewise.
        * lib/spawn.in.h: Likewise.
        * lib/sys_socket.in.h: Update an URL.
        * lib/sys_stat.in.h: Break long line.

--- lib/math.in.h.orig  Sun Oct  3 23:47:33 2010
+++ lib/math.in.h       Sun Oct  3 23:29:08 2010
@@ -609,7 +609,8 @@
    This function is a gnulib extension, unlike isnan() which applied only
    to 'double' numbers earlier but now is a type-generic macro.  */
 # if @HAVE_ISNAND@
-/* The original <math.h> included above provides a declaration of isnan macro. 
 */
+/* The original <math.h> included above provides a declaration of isnan
+   macro.  */
 #  if __GNUC__ >= 4
     /* GCC 4.0 and newer provides three built-ins for isnan.  */
 #   undef isnand
@@ -629,7 +630,8 @@
 #if @GNULIB_ISNANL@
 /* Test for NaN for 'long double' numbers.  */
 # if @HAVE_ISNANL@
-/* The original <math.h> included above provides a declaration of isnan macro 
or (older) isnanl function.  */
+/* The original <math.h> included above provides a declaration of isnan
+   macro or (older) isnanl function.  */
 #  if __GNUC__ >= 4
     /* GCC 4.0 and newer provides three built-ins for isnan.  */
 #   undef isnanl
@@ -701,11 +703,13 @@
 _GL_EXTERN_C int gl_signbitd (double arg);
 _GL_EXTERN_C int gl_signbitl (long double arg);
 #  if __GNUC__ >= 2 && !__STRICT_ANSI__
+#   define _GL_NUM_UINT_WORDS(type) \
+      ((sizeof (type) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
 #   if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined 
gl_signbitf
 #    define gl_signbitf_OPTIMIZED_MACRO
 #    define gl_signbitf(arg) \
        ({ union { float _value;                                         \
-                  unsigned int _word[(sizeof (float) + sizeof (unsigned int) - 
1) / sizeof (unsigned int)]; \
+                  unsigned int _word[_GL_NUM_UINT_WORDS (float)];       \
                 } _m;                                                   \
           _m._value = (arg);                                            \
           (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1;          \
@@ -714,8 +718,8 @@
 #   if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined 
gl_signbitd
 #    define gl_signbitd_OPTIMIZED_MACRO
 #    define gl_signbitd(arg) \
-       ({ union { double _value;                                               
 \
-                  unsigned int _word[(sizeof (double) + sizeof (unsigned int) 
- 1) / sizeof (unsigned int)]; \
+       ({ union { double _value;                                        \
+                  unsigned int _word[_GL_NUM_UINT_WORDS (double)];      \
                 } _m;                                                   \
           _m._value = (arg);                                            \
           (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1;          \
@@ -725,10 +729,10 @@
 #    define gl_signbitl_OPTIMIZED_MACRO
 #    define gl_signbitl(arg) \
        ({ union { long double _value;                                   \
-                  unsigned int _word[(sizeof (long double) + sizeof (unsigned 
int) - 1) / sizeof (unsigned int)]; \
+                  unsigned int _word[_GL_NUM_UINT_WORDS (long double)]; \
                 } _m;                                                   \
           _m._value = (arg);                                            \
-          (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1;               
 \
+          (_m._word[LDBL_SIGNBIT_WORD] >> LDBL_SIGNBIT_BIT) & 1;        \
         })
 #   endif
 #  endif
--- lib/spawn.in.h.orig Sun Oct  3 23:47:33 2010
+++ lib/spawn.in.h      Sun Oct  3 23:40:26 2010
@@ -295,7 +295,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_destroy
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_DESTROY
-_GL_WARN_ON_USE (posix_spawnattr_destroy, "posix_spawnattr_destroy is 
unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_destroy,
+                 "posix_spawnattr_destroy is unportable - "
                  "use gnulib module posix_spawnattr_destroy for portability");
 # endif
 #endif
@@ -329,7 +330,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_getsigdefault
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSIGDEFAULT
-_GL_WARN_ON_USE (posix_spawnattr_getsigdefault, "posix_spawnattr_getsigdefault 
is unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_getsigdefault,
+                 "posix_spawnattr_getsigdefault is unportable - "
                  "use gnulib module posix_spawnattr_getsigdefault for 
portability");
 # endif
 #endif
@@ -362,7 +364,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_setsigdefault
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSIGDEFAULT
-_GL_WARN_ON_USE (posix_spawnattr_setsigdefault, "posix_spawnattr_setsigdefault 
is unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_setsigdefault,
+                 "posix_spawnattr_setsigdefault is unportable - "
                  "use gnulib module posix_spawnattr_setsigdefault for 
portability");
 # endif
 #endif
@@ -395,7 +398,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_getsigmask
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSIGMASK
-_GL_WARN_ON_USE (posix_spawnattr_getsigmask, "posix_spawnattr_getsigmask is 
unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_getsigmask,
+                 "posix_spawnattr_getsigmask is unportable - "
                  "use gnulib module posix_spawnattr_getsigmask for 
portability");
 # endif
 #endif
@@ -428,7 +432,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_setsigmask
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSIGMASK
-_GL_WARN_ON_USE (posix_spawnattr_setsigmask, "posix_spawnattr_setsigmask is 
unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_setsigmask,
+                 "posix_spawnattr_setsigmask is unportable - "
                  "use gnulib module posix_spawnattr_setsigmask for 
portability");
 # endif
 #endif
@@ -461,7 +466,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_getflags
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETFLAGS
-_GL_WARN_ON_USE (posix_spawnattr_getflags, "posix_spawnattr_getflags is 
unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_getflags,
+                 "posix_spawnattr_getflags is unportable - "
                  "use gnulib module posix_spawnattr_getflags for portability");
 # endif
 #endif
@@ -490,7 +496,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_setflags
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETFLAGS
-_GL_WARN_ON_USE (posix_spawnattr_setflags, "posix_spawnattr_setflags is 
unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_setflags,
+                 "posix_spawnattr_setflags is unportable - "
                  "use gnulib module posix_spawnattr_setflags for portability");
 # endif
 #endif
@@ -523,7 +530,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_getpgroup
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETPGROUP
-_GL_WARN_ON_USE (posix_spawnattr_getpgroup, "posix_spawnattr_getpgroup is 
unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_getpgroup,
+                 "posix_spawnattr_getpgroup is unportable - "
                  "use gnulib module posix_spawnattr_getpgroup for 
portability");
 # endif
 #endif
@@ -552,7 +560,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_setpgroup
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETPGROUP
-_GL_WARN_ON_USE (posix_spawnattr_setpgroup, "posix_spawnattr_setpgroup is 
unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_setpgroup,
+                 "posix_spawnattr_setpgroup is unportable - "
                  "use gnulib module posix_spawnattr_setpgroup for 
portability");
 # endif
 #endif
@@ -585,7 +594,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_getschedpolicy
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSCHEDPOLICY
-_GL_WARN_ON_USE (posix_spawnattr_getschedpolicy, 
"posix_spawnattr_getschedpolicy is unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_getschedpolicy,
+                 "posix_spawnattr_getschedpolicy is unportable - "
                  "use gnulib module posix_spawnattr_getschedpolicy for 
portability");
 # endif
 #endif
@@ -614,7 +624,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_setschedpolicy
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSCHEDPOLICY
-_GL_WARN_ON_USE (posix_spawnattr_setschedpolicy, 
"posix_spawnattr_setschedpolicy is unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_setschedpolicy,
+                 "posix_spawnattr_setschedpolicy is unportable - "
                  "use gnulib module posix_spawnattr_setschedpolicy for 
portability");
 # endif
 #endif
@@ -647,7 +658,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_getschedparam
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_GETSCHEDPARAM
-_GL_WARN_ON_USE (posix_spawnattr_getschedparam, "posix_spawnattr_getschedparam 
is unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_getschedparam,
+                 "posix_spawnattr_getschedparam is unportable - "
                  "use gnulib module posix_spawnattr_getschedparam for 
portability");
 # endif
 #endif
@@ -680,7 +692,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawnattr_setschedparam
 # if HAVE_RAW_DECL_POSIX_SPAWNATTR_SETSCHEDPARAM
-_GL_WARN_ON_USE (posix_spawnattr_setschedparam, "posix_spawnattr_setschedparam 
is unportable - "
+_GL_WARN_ON_USE (posix_spawnattr_setschedparam,
+                 "posix_spawnattr_setschedparam is unportable - "
                  "use gnulib module posix_spawnattr_setschedparam for 
portability");
 # endif
 #endif
@@ -710,7 +723,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawn_file_actions_init
 # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_INIT
-_GL_WARN_ON_USE (posix_spawn_file_actions_init, "posix_spawn_file_actions_init 
is unportable - "
+_GL_WARN_ON_USE (posix_spawn_file_actions_init,
+                 "posix_spawn_file_actions_init is unportable - "
                  "use gnulib module posix_spawn_file_actions_init for 
portability");
 # endif
 #endif
@@ -739,7 +753,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawn_file_actions_destroy
 # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_DESTROY
-_GL_WARN_ON_USE (posix_spawn_file_actions_destroy, 
"posix_spawn_file_actions_destroy is unportable - "
+_GL_WARN_ON_USE (posix_spawn_file_actions_destroy,
+                 "posix_spawn_file_actions_destroy is unportable - "
                  "use gnulib module posix_spawn_file_actions_destroy for 
portability");
 # endif
 #endif
@@ -777,7 +792,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawn_file_actions_addopen
 # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDOPEN
-_GL_WARN_ON_USE (posix_spawn_file_actions_addopen, 
"posix_spawn_file_actions_addopen is unportable - "
+_GL_WARN_ON_USE (posix_spawn_file_actions_addopen,
+                 "posix_spawn_file_actions_addopen is unportable - "
                  "use gnulib module posix_spawn_file_actions_addopen for 
portability");
 # endif
 #endif
@@ -807,7 +823,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawn_file_actions_addclose
 # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDCLOSE
-_GL_WARN_ON_USE (posix_spawn_file_actions_addclose, 
"posix_spawn_file_actions_addclose is unportable - "
+_GL_WARN_ON_USE (posix_spawn_file_actions_addclose,
+                 "posix_spawn_file_actions_addclose is unportable - "
                  "use gnulib module posix_spawn_file_actions_addclose for 
portability");
 # endif
 #endif
@@ -841,7 +858,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef posix_spawn_file_actions_adddup2
 # if HAVE_RAW_DECL_POSIX_SPAWN_FILE_ACTIONS_ADDDUP2
-_GL_WARN_ON_USE (posix_spawn_file_actions_adddup2, 
"posix_spawn_file_actions_adddup2 is unportable - "
+_GL_WARN_ON_USE (posix_spawn_file_actions_adddup2,
+                 "posix_spawn_file_actions_adddup2 is unportable - "
                  "use gnulib module posix_spawn_file_actions_adddup2 for 
portability");
 # endif
 #endif
--- lib/stdint.in.h.orig        Sun Oct  3 23:47:33 2010
+++ lib/stdint.in.h     Sun Oct  3 23:30:19 2010
@@ -475,8 +475,9 @@
 
 /* wchar_t limits */
 /* Get WCHAR_MIN, WCHAR_MAX.
-   This include is not on the top, above, because on OSF/1 4.0 we have a 
sequence of nested
-   includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter 
includes
+   This include is not on the top, above, because on OSF/1 4.0 we have a
+   sequence of nested includes
+   <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
    <stdint.h> and assumes its types are already defined.  */
 #if ! (defined WCHAR_MIN && defined WCHAR_MAX)
 # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
--- lib/stdio.in.h.orig Sun Oct  3 23:47:33 2010
+++ lib/stdio.in.h      Sun Oct  3 23:37:58 2010
@@ -265,7 +265,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef freopen
 /* Assume freopen is always declared.  */
-_GL_WARN_ON_USE (freopen, "freopen on Win32 platforms is not POSIX compatible 
- "
+_GL_WARN_ON_USE (freopen,
+                 "freopen on Win32 platforms is not POSIX compatible - "
                  "use gnulib module freopen for portability");
 #endif
 
--- lib/stdlib.in.h.orig        Sun Oct  3 23:47:33 2010
+++ lib/stdlib.in.h     Sun Oct  3 23:36:29 2010
@@ -177,7 +177,8 @@
 #elif defined GNULIB_POSIXCHECK
 # undef canonicalize_file_name
 # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
-_GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable 
- "
+_GL_WARN_ON_USE (canonicalize_file_name,
+                 "canonicalize_file_name is unportable - "
                  "use gnulib module canonicalize-lgpl for portability");
 # endif
 #endif
--- lib/sys_socket.in.h.orig    Sun Oct  3 23:47:33 2010
+++ lib/sys_socket.in.h Sun Oct  3 23:32:51 2010
@@ -122,8 +122,8 @@
    adding AC_DEFINE(WINVER, 0x0501) to configure.ac.  Note that your
    code may not run on older Windows releases then.  My Windows 2000
    box was not able to run the code, for example.  The situation is
-   slightly confusing because:
-   
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/getaddrinfo_2.asp
+   slightly confusing because
+   <http://msdn.microsoft.com/en-us/library/ms738520>
    suggests that getaddrinfo should be available on all Windows
    releases. */
 
--- lib/sys_stat.in.h.orig      Sun Oct  3 23:47:33 2010
+++ lib/sys_stat.in.h   Sun Oct  3 23:35:01 2010
@@ -594,7 +594,8 @@
 #  else /* !_LARGE_FILES */
 #   define stat(name, st) rpl_stat (name, st)
 #  endif /* !_LARGE_FILES */
-_GL_EXTERN_C int stat (const char *name, struct stat *buf) _GL_ARG_NONNULL 
((1, 2));
+_GL_EXTERN_C int stat (const char *name, struct stat *buf)
+                      _GL_ARG_NONNULL ((1, 2));
 # endif
 #elif defined GNULIB_POSIXCHECK
 # undef stat



reply via email to

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