From 3534c3af248f7e657e0ce5122260fbcf367dc478 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 2 Oct 2010 18:54:05 +0200 Subject: [PATCH] Define missing EDQUOT on NonStop Kernel. * lib/errno.in.h (EDQUOT): Assign a value if missing. * lib/strerror.c (rpl_strerror): Handle missing EDQUOT. * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Also test whether EDQUOT is missing. * doc/posix-headers/errno.texi: Mention the NSK bug. * doc/posix-functions/strerror.texi: Mention the workaround on NSK. Reported by Joachim Schmitz . --- ChangeLog | 11 +++++++++++ doc/posix-functions/strerror.texi | 2 +- doc/posix-headers/errno.texi | 7 +++++-- lib/errno.in.h | 6 ++++++ lib/strerror.c | 6 ++++++ m4/errno_h.m4 | 7 +++++-- 6 files changed, 34 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 083d820f4..72d5fa8c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,16 @@ 2010-10-02 Bruno Haible + Define missing EDQUOT on NonStop Kernel. + * lib/errno.in.h (EDQUOT): Assign a value if missing. + * lib/strerror.c (rpl_strerror): Handle missing EDQUOT. + * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Also test whether EDQUOT is + missing. + * doc/posix-headers/errno.texi: Mention the NSK bug. + * doc/posix-functions/strerror.texi: Mention the workaround on NSK. + Reported by Joachim Schmitz . + +2010-10-02 Bruno Haible + Update doc for POSIX:2008. * doc/posix-headers/*.texi [except ucontext.texi, sys_timeb.texi]: Update URL of POSIX specification. diff --git a/doc/posix-functions/strerror.texi b/doc/posix-functions/strerror.texi index 4fbadf59d..84d92c3f1 100644 --- a/doc/posix-functions/strerror.texi +++ b/doc/posix-functions/strerror.texi @@ -11,7 +11,7 @@ Portability problems fixed by Gnulib: @item This function does not support the error values that are specified by POSIX but not defined by the system, on some platforms: -OpenBSD 4.0, OSF/1 5.1, Cygwin 1.5.x, mingw. +OpenBSD 4.0, OSF/1 5.1, NonStop Kernel, Cygwin 1.5.x, mingw. @item This function fails to return a string for out-of-range integers on some platforms: diff --git a/doc/posix-headers/errno.texi b/doc/posix-headers/errno.texi index f86f1d26c..eb1623dc7 100644 --- a/doc/posix-headers/errno.texi +++ b/doc/posix-headers/errno.texi @@ -22,14 +22,17 @@ OpenBSD 4.0, mingw. The macro @code{ESTALE} is not defined on some platforms: mingw, Interix 3.5. @item +The macro @code{EDQUOT} is not defined on some platforms: +NonStop Kernel, mingw. +@item The macros @code{EWOULDBLOCK}, @code{ETXTBSY}, @code{ELOOP}, @code{ENOTSOCK}, @code{EDESTADDRREQ}, @code{EMSGSIZE}, @code{EPROTOTYPE}, @code{ENOPROTOOPT}, @code{EPROTONOSUPPORT}, @code{EOPNOTSUPP}, @code{EAFNOSUPPORT}, @code{EADDRINUSE}, @code{EADDRNOTAVAIL}, @code{ENETDOWN}, @code{ENETUNREACH}, @code{ENETRESET}, @code{ECONNABORTED}, @code{ECONNRESET}, @code{ENOBUFS}, @code{EISCONN}, @code{ENOTCONN}, @code{ETIMEDOUT}, @code{ECONNREFUSED}, -@code{EHOSTUNREACH}, @code{EALREADY}, @code{EINPROGRESS}, @code{EDQUOT} are -not defined on some platforms: +@code{EHOSTUNREACH}, @code{EALREADY}, @code{EINPROGRESS} are not defined on +some platforms: mingw. @end itemize diff --git a/lib/errno.in.h b/lib/errno.in.h index 9ac3a5b4e..cf8dde6ff 100644 --- a/lib/errno.in.h +++ b/lib/errno.in.h @@ -98,6 +98,7 @@ /* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK, EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined. + Likewise, on NonStop Kernel, EDQUOT is not defined. Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151, HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133. @@ -150,6 +151,11 @@ # define GNULIB_defined_ESTALE 1 # endif +# ifndef EDQUOT +# define EDQUOT 2010 +# define GNULIB_defined_EDQUOT 1 +# endif + # ifndef ECANCELED # define ECANCELED 2008 # define GNULIB_defined_ECANCELED 1 diff --git a/lib/strerror.c b/lib/strerror.c index 46153abf5..6e1c0b0eb 100644 --- a/lib/strerror.c +++ b/lib/strerror.c @@ -322,6 +322,12 @@ rpl_strerror (int n) break; # endif +# if GNULIB_defined_EDQUOT + case EDQUOT: + msg = "Disk quota exceeded"; + break; +# endif + # if GNULIB_defined_ECANCELED case ECANCELED: msg = "Operation canceled"; diff --git a/m4/errno_h.m4 b/m4/errno_h.m4 index d02a03936..e4325ac66 100644 --- a/m4/errno_h.m4 +++ b/m4/errno_h.m4 @@ -1,5 +1,5 @@ -# errno_h.m4 serial 6 -dnl Copyright (C) 2004, 2006, 2008, 2009, 2010 Free Software Foundation, Inc. +# errno_h.m4 serial 7 +dnl Copyright (C) 2004, 2006, 2008-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -37,6 +37,9 @@ booboo #if !defined ESTALE booboo #endif +#if !defined EDQUOT +booboo +#endif #if !defined ECANCELED booboo #endif -- 2.11.0