gss-commit
[Top][All Lists]
Advanced

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

[SCM] GNU gss branch, master, updated. gss-1-0-2-10-g656625e


From: Simon Josefsson
Subject: [SCM] GNU gss branch, master, updated. gss-1-0-2-10-g656625e
Date: Thu, 12 Apr 2012 12:41:30 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU gss".

http://git.savannah.gnu.org/cgit/gss.git/commit/?id=656625e71dc1715583dfa17109f7d96450bf0cdc

The branch, master has been updated
       via  656625e71dc1715583dfa17109f7d96450bf0cdc (commit)
       via  c2252129f592f29bed8bb58dccad47604ba6021c (commit)
       via  36384ee7e35d3e849a44106be44335d71f6c6847 (commit)
      from  b3fa34bc9a1694ad84e7607d7b052b0a07511f33 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 656625e71dc1715583dfa17109f7d96450bf0cdc
Author: Simon Josefsson <address@hidden>
Date:   Tue Apr 3 15:17:36 2012 +0200

    Sync with TP.

commit c2252129f592f29bed8bb58dccad47604ba6021c
Author: Simon Josefsson <address@hidden>
Date:   Tue Apr 3 15:17:31 2012 +0200

    Force copyright updates.

commit 36384ee7e35d3e849a44106be44335d71f6c6847
Author: Simon Josefsson <address@hidden>
Date:   Tue Apr 3 15:16:24 2012 +0200

    Update gnulib files.

-----------------------------------------------------------------------

Summary of changes:
 GNUmakefile              |   14 +---
 build-aux/gnupload       |    2 +-
 cfg.mk                   |    4 +-
 gl/m4/warnings.m4        |   19 +++--
 lib/gl/gettext.h         |    3 +-
 lib/gl/m4/warn-on-use.m4 |    6 +-
 lib/gl/stddef.in.h       |    3 +-
 lib/gl/string.in.h       |   26 +++++-
 lib/gl/strverscmp.c      |    3 +-
 maint.mk                 |   58 ++++++++++----
 po/vi.po.in              |  194 +++++++++++++++++++++++++++-------------------
 src/gl/errno.in.h        |    3 +-
 src/gl/gettext.h         |    3 +-
 src/gl/m4/warn-on-use.m4 |    6 +-
 src/gl/msvc-inval.c      |    3 +-
 src/gl/msvc-inval.h      |    3 +-
 src/gl/msvc-nothrow.c    |    3 +-
 src/gl/msvc-nothrow.h    |    3 +-
 src/gl/stdarg.in.h       |    3 +-
 src/gl/stddef.in.h       |    3 +-
 src/gl/string.in.h       |   26 +++++-
 src/gl/unistd.in.h       |    3 +-
 22 files changed, 233 insertions(+), 158 deletions(-)

diff --git a/GNUmakefile b/GNUmakefile
index d0fd3e8..58f2ead 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -20,20 +20,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/>.
 
-# Systems where /bin/sh is not the default shell need this.  The $(shell)
-# command below won't work with e.g. stock DOS/Windows shells.
-ifeq ($(wildcard /bin/s[h]),/bin/sh)
-SHELL = /bin/sh
-else
-# will be used only with the next shell-test line, then overwritten
-# by a configured-in value
-SHELL = sh
-endif
-
 # If the user runs GNU make but has not yet run ./configure,
 # give them a diagnostic.
-_have-Makefile := $(shell test -f Makefile && echo yes)
-ifeq ($(_have-Makefile),yes)
+_gl-Makefile := $(wildcard [M]akefile)
+ifneq ($(_gl-Makefile),)
 
 # Make tar archive easier to reproduce.
 export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner
diff --git a/build-aux/gnupload b/build-aux/gnupload
index eb450a0..40a59d3 100755
--- a/build-aux/gnupload
+++ b/build-aux/gnupload
@@ -3,7 +3,7 @@
 
 scriptversion=2012-01-15.15; # UTC
 
-# Copyright (C) 2004-2010, 2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-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
diff --git a/cfg.mk b/cfg.mk
index 3119aec..4bf09dc 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2012  Simon Josefsson
+# Copyright (C) 2006-2012 Simon Josefsson
 #
 # This file is part of the Generic Security Service (GSS).
 #
@@ -32,7 +32,7 @@ local-checks-to-skip = sc_copyright_check sc_immutable_NEWS   
        \
        sc_require_config_h_first
 VC_LIST_ALWAYS_EXCLUDE_REGEX = 
^maint.mk|GNUmakefile|gtk-doc.make|po/.*.po.in|doc/fdl-1.3.texi|doc/gendocs_template|m4/pkg.m4|build-aux/|((lib/|src/)?gl)/.*$$
 
-update-copyright-env = UPDATE_COPYRIGHT_HOLDER="Simon Josefsson" 
UPDATE_COPYRIGHT_USE_INTERVALS=2
+update-copyright-env = UPDATE_COPYRIGHT_HOLDER="Simon Josefsson" 
UPDATE_COPYRIGHT_USE_INTERVALS=2 UPDATE_COPYRIGHT_FORCE=1
 
 gtk-doc.make:
        gtkdocize
diff --git a/gl/m4/warnings.m4 b/gl/m4/warnings.m4
index 69d05a6..c14c480 100644
--- a/gl/m4/warnings.m4
+++ b/gl/m4/warnings.m4
@@ -1,4 +1,4 @@
-# warnings.m4 serial 5
+# warnings.m4 serial 6
 dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -14,24 +14,29 @@ m4_ifdef([AS_VAR_APPEND],
 [m4_define([gl_AS_VAR_APPEND],
 [AS_VAR_SET([$1], [AS_VAR_GET([$1])$2])])])
 
+
 # gl_WARN_ADD(PARAMETER, [VARIABLE = WARN_CFLAGS])
 # ------------------------------------------------
 # Adds parameter to WARN_CFLAGS if the compiler supports it.  For example,
 # gl_WARN_ADD([-Wparentheses]).
+#
+# If VARIABLE is a variable name, AC_SUBST it.
 AC_DEFUN([gl_WARN_ADD],
 dnl FIXME: gl_Warn must be used unquoted until we can assume
 dnl autoconf 2.64 or newer.
-[AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_$1])dnl
-AC_CACHE_CHECK([whether compiler handles $1], m4_defn([gl_Warn]), [
-  gl_save_CPPFLAGS="$CPPFLAGS"
-  CPPFLAGS="${CPPFLAGS} $1"
-  AC_PREPROC_IFELSE([AC_LANG_PROGRAM([])],
+[AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]_AC_LANG_ABBREV[]_$1])dnl
+AS_VAR_PUSHDEF([gl_Flags], [_AC_LANG_PREFIX[]FLAGS])dnl
+AC_CACHE_CHECK([whether _AC_LANG compiler handles $1], m4_defn([gl_Warn]), [
+  gl_save_compiler_FLAGS="$gl_Flags"
+  gl_Flags="$gl_Flags $1"
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
                     [AS_VAR_SET(gl_Warn, [yes])],
                     [AS_VAR_SET(gl_Warn, [no])])
-  CPPFLAGS="$gl_save_CPPFLAGS"
+  gl_Flags="$gl_save_compiler_FLAGS"
 ])
 AS_VAR_IF(gl_Warn, [yes],
   [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]), [" $1"])])
+AS_VAR_POPDEF([gl_Flags])dnl
 AS_VAR_POPDEF([gl_Warn])dnl
 m4_ifval([$2], [AS_LITERAL_IF([$2], [AC_SUBST([$2])], [])])dnl
 ])
diff --git a/lib/gl/gettext.h b/lib/gl/gettext.h
index 4fb025b..3108e4a 100644
--- a/lib/gl/gettext.h
+++ b/lib/gl/gettext.h
@@ -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.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _LIBGETTEXT_H
 #define _LIBGETTEXT_H 1
diff --git a/lib/gl/m4/warn-on-use.m4 b/lib/gl/m4/warn-on-use.m4
index 03b113c..a77802e 100644
--- a/lib/gl/m4/warn-on-use.m4
+++ b/lib/gl/m4/warn-on-use.m4
@@ -1,4 +1,4 @@
-# warn-on-use.m4 serial 4
+# warn-on-use.m4 serial 5
 dnl Copyright (C) 2010-2012 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -18,8 +18,8 @@ dnl with or without modifications, as long as this notice is 
preserved.
 # some systems declare functions in the wrong header, then INCLUDES
 # should do likewise.
 #
-# If you assume C89, then it is generally safe to assume declarations
-# for functions declared in that standard (such as gets) without
+# It is generally safe to assume declarations for functions declared
+# in the intersection of C89 and C11 (such as printf) without
 # needing gl_WARN_ON_USE_PREPARE.
 AC_DEFUN([gl_WARN_ON_USE_PREPARE],
 [
diff --git a/lib/gl/stddef.in.h b/lib/gl/stddef.in.h
index 65e1775..17fcaea 100644
--- a/lib/gl/stddef.in.h
+++ b/lib/gl/stddef.in.h
@@ -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 Eric Blake.  */
 
diff --git a/lib/gl/string.in.h b/lib/gl/string.in.h
index 93f70de..f8d7520 100644
--- a/lib/gl/string.in.h
+++ b/lib/gl/string.in.h
@@ -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/>.  */
 
 #ifndef address@hidden@_STRING_H
 
@@ -725,10 +724,14 @@ _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define mbslen rpl_mbslen
 #  endif
-_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string)
+                                  _GL_ATTRIBUTE_PURE
+                                  _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string));
 # else
-_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string)
+                                  _GL_ATTRIBUTE_PURE
+                                  _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string));
 # endif
 _GL_CXXALIASWARN (mbslen);
@@ -738,6 +741,7 @@ _GL_CXXALIASWARN (mbslen);
 /* Return the number of multibyte characters in the character string starting
    at STRING and ending at STRING + LEN.  */
 _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1));
 #endif
 
@@ -751,10 +755,12 @@ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t 
len)
 #   define mbschr rpl_mbschr /* avoid collision with HP-UX function */
 #  endif
 _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c)
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c));
 # else
 _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c)
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c));
 # endif
@@ -771,10 +777,12 @@ _GL_CXXALIASWARN (mbschr);
 #   define mbsrchr rpl_mbsrchr /* avoid collision with system function */
 #  endif
 _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c));
 # else
 _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c));
 # endif
@@ -787,6 +795,7 @@ _GL_CXXALIASWARN (mbsrchr);
    Unlike strstr(), this function works correctly in multibyte locales with
    encodings different from UTF-8.  */
 _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -798,6 +807,7 @@ _GL_EXTERN_C char * mbsstr (const char *haystack, const 
char *needle)
    different lengths!
    Unlike strcasecmp(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -812,6 +822,7 @@ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2)
    Unlike strncasecmp(), this function works correctly in multibyte locales.
    But beware that N is not a byte count but a character count!  */
 _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -825,6 +836,7 @@ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char 
*s2, size_t n)
    Unlike strncasecmp(), this function works correctly in multibyte
    locales.  */
 _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -835,6 +847,7 @@ _GL_EXTERN_C char * mbspcasecmp (const char *string, const 
char *prefix)
    strlen (haystack) < strlen (needle) !
    Unlike strcasestr(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -845,6 +858,7 @@ _GL_EXTERN_C char * mbscasestr (const char *haystack, const 
char *needle)
    if none exists.
    Unlike strcspn(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -858,10 +872,12 @@ _GL_EXTERN_C size_t mbscspn (const char *string, const 
char *accept)
 #   define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */
 #  endif
 _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept));
 # else
 _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept));
 # endif
@@ -875,6 +891,7 @@ _GL_CXXALIASWARN (mbspbrk);
    if none exists.
    Unlike strspn(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -994,6 +1011,7 @@ _GL_WARN_ON_USE (strsignal, "strsignal is unportable - "
 #if @GNULIB_STRVERSCMP@
 # if address@hidden@
 _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 # endif
 _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *));
diff --git a/lib/gl/strverscmp.c b/lib/gl/strverscmp.c
index 6a34933..490773d 100644
--- a/lib/gl/strverscmp.c
+++ b/lib/gl/strverscmp.c
@@ -15,8 +15,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.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #if !_LIBC
 # include <config.h>
diff --git a/maint.mk b/maint.mk
index 1dd6493..2228a37 100644
--- a/maint.mk
+++ b/maint.mk
@@ -178,6 +178,13 @@ syntax-check: $(local-check)
 #     Regular expression (ERE) denoting either a forbidden construct
 #     or a required construct.  Those arguments are exclusive.
 #
+#  exclude
+#
+#     Regular expression (ERE) denoting lines to ignore that matched
+#     a prohibit construct.  For example, this can be used to exclude
+#     comments that mention why the nearby code uses an alternative
+#     construct instead of the simpler prohibited construct.
+#
 #  in_vc_files | in_files
 #
 #     grep-E-style regexp denoting the files to check.  If no files
@@ -212,6 +219,17 @@ syntax-check: $(local-check)
 # when filtering by name via in_files, we explicitly filter out matching
 # names here as well.
 
+# Initialize each, so that envvar settings cannot interfere.
+export require =
+export prohibit =
+export exclude =
+export in_vc_files =
+export in_files =
+export containing =
+export non_containing =
+export halt =
+export with_grep_options =
+
 # By default, _sc_search_regexp does not ignore case.
 export ignore_case =
 _ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :)
@@ -231,6 +249,9 @@ define _sc_search_regexp
    test -z "$$prohibit" && test -z "$$require"                         \
      && { msg='Should specify either prohibit or require'              \
           $(_sc_say_and_exit) } || :;                                  \
+   test -z "$$prohibit" && test -n "$$exclude"                         \
+     && { msg='Use of exclude requires a prohibit pattern'             \
+          $(_sc_say_and_exit) } || :;                                  \
    test -n "$$in_vc_files" && test -n "$$in_files"                     \
      && { msg='Cannot specify both in_vc_files and in_files'           \
           $(_sc_say_and_exit) } || :;                                  \
@@ -258,6 +279,7 @@ define _sc_search_regexp
    if test -n "$$files"; then                                          \
      if test -n "$$prohibit"; then                                     \
        grep $$with_grep_options $(_ignore_case) -nE "$$prohibit" $$files \
+         | grep -vE "$${exclude:-^$$}"                                 \
          && { msg="$$halt" $(_sc_say_and_exit) } || :;                 \
      else                                                              \
        grep $$with_grep_options $(_ignore_case) -LE "$$require" $$files \
@@ -303,12 +325,12 @@ sc_prohibit_atoi_atof:
          $(_sc_search_regexp)
 
 # Use STREQ rather than comparing strcmp == 0, or != 0.
+sp_ = strcmp *\(.+\)
 sc_prohibit_strcmp:
-       @grep -nE '! *str''cmp *\(|\<str''cmp *\(.+\) *[!=]='   \
-           $$($(VC_LIST_EXCEPT))                                       \
-         | grep -vE ':# *define STRN?EQ\(' &&                          \
-         { echo '$(ME): replace str''cmp calls above with STREQ/STRNEQ' \
-               1>&2; exit 1; } || :
+       @prohibit='! *strcmp *\(|\<$(sp_) *[!=]=|[!=]= *$(sp_)'         \
+       exclude=':# *define STRN?EQ\('                                  \
+       halt='$(ME): replace strcmp calls above with STREQ/STRNEQ'      \
+         $(_sc_search_regexp)
 
 # Pass EXIT_*, not number, to usage, exit, and error (when exiting)
 # Convert all uses automatically, via these two commands:
@@ -433,7 +455,8 @@ sc_prohibit_quotearg_without_use:
 
 # Don't include quote.h unless you use one of its functions.
 sc_prohibit_quote_without_use:
-       @h='quote.h' re='\<quote(_n)? *\(' $(_sc_header_without_use)
+       @h='quote.h' re='\<quote((_n)? *\(|_quoting_options\>)' \
+         $(_sc_header_without_use)
 
 # Don't include this header unless you use one of its functions.
 sc_prohibit_long_options_without_use:
@@ -708,12 +731,10 @@ _gl_translatable_diag_func_re ?= error
 # Look for diagnostics that aren't marked for translation.
 # This won't find any for which error's format string is on a separate line.
 sc_unmarked_diagnostics:
-       @grep -nE                                                       \
-           '\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \
-               $$($(VC_LIST_EXCEPT))                                   \
-         | grep -Ev '(_|ngettext ?)\(' &&                              \
-         { echo '$(ME): found unmarked diagnostic(s)' 1>&2;            \
-           exit 1; } || :
+       @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \
+       exclude='(_|ngettext ?)\('                                      \
+       halt='$(ME): found unmarked diagnostic(s)'                      \
+         $(_sc_search_regexp)
 
 # Avoid useless parentheses like those in this example:
 # #if defined (SYMBOL) || defined (SYM2)
@@ -974,10 +995,10 @@ sc_redundant_const:
          $(_sc_search_regexp)
 
 sc_const_long_option:
-       @grep '^ *static.*struct option ' $$($(VC_LIST_EXCEPT))         \
-         | grep -Ev 'const struct option|struct option const' && {     \
-             echo 1>&2 '$(ME): add "const" to the above declarations'; \
-             exit 1; } || :
+       @prohibit='^ *static.*struct option '                           \
+       exclude='const struct option|struct option const'               \
+       halt='$(ME): add "const" to the above declarations'             \
+         $(_sc_search_regexp)
 
 NEWS_hash =                                                            \
   $$(sed -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p'             \
@@ -1234,7 +1255,8 @@ announcement: NEWS ChangeLog $(rel-files)
            --gpg-key-id=$(gpg_key_ID)                                  \
            --news=$(srcdir)/NEWS                                       \
            --bootstrap-tools=$(bootstrap-tools)                        \
-           --gnulib-version=$(gnulib-version)                          \
+           $$(case ,$(bootstrap-tools), in (*,gnulib,*)                \
+              echo --gnulib-version=$(gnulib-version);; esac)          \
            --no-print-checksums                                        \
            $(addprefix --url-dir=, $(url_dir_list))
 
@@ -1311,7 +1333,7 @@ alpha beta stable: $(local-check) writable-files 
$(submodule-checks)
        $(MAKE) vc-diff-check
        $(MAKE) news-check
        $(MAKE) distcheck
-       $(MAKE) dist XZ_OPT=-9ev
+       $(MAKE) dist
        $(MAKE) $(release-prep-hook) RELEASE_TYPE=$@
        $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
 
diff --git a/po/vi.po.in b/po/vi.po.in
index ba79398..709a944 100644
--- a/po/vi.po.in
+++ b/po/vi.po.in
@@ -1,222 +1,227 @@
 # Vietnamese Translation for GSS.
-# Copyright © 2010 Free Software Foundation, Inc.
-# Copyright © 2010 Simon Josefsson (msgid)
+# Copyright © 2012 Free Software Foundation, Inc.
+# Copyright © 2012 Simon Josefsson (msgid)
 # This file is distributed under the same license as the gss package.
 # Clytie Siddall <address@hidden>, 2005-2010.
+# Trần Ngọc Quân <address@hidden>, 2012.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gss 0.1.5\n"
-"Report-Msgid-Bugs-To: address@hidden"
-"POT-Creation-Date: 2010-03-22 10:38+0100\n"
-"PO-Revision-Date: 2010-03-25 22:34+0930\n"
-"Last-Translator: Clytie Siddall <address@hidden>\n"
+"Project-Id-Version: gss-1.0.1\n"
+"Report-Msgid-Bugs-To: address@hidden"
+"POT-Creation-Date: 2010-05-20 15:38+0200\n"
+"PO-Revision-Date: 2012-03-21 07:27+0700\n"
+"Last-Translator: Trần Ngọc Quân <address@hidden>\n"
 "Language-Team: Vietnamese <address@hidden>\n"
+"Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: LocFactoryEditor 1.8\n"
+"X-Poedit-Language: Vietnamese\n"
+"X-Poedit-Country: VIET NAM\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: lib/meta.c:43
+#: lib/meta.c:37
 msgid "Kerberos V5 GSS-API mechanism"
 msgstr "Cơ chế GSS-API Kerberos pb5"
 
-#: lib/error.c:43
+#: lib/error.c:37
 msgid "A required input parameter could not be read"
 msgstr "Một tham số nhập cần thiết không thể đọc được"
 
-#: lib/error.c:45
+#: lib/error.c:39
 msgid "A required output parameter could not be written"
 msgstr "Một tham số xuất cần thiết không thể ghi được"
 
-#: lib/error.c:47
+#: lib/error.c:41
 msgid "A parameter was malformed"
 msgstr "Có một tham số dạng sai"
 
-#: lib/error.c:52
+#: lib/error.c:46
 msgid "An unsupported mechanism was requested"
 msgstr "Đã yêu cầu một cơ chế không được hỗ trợ"
 
-#: lib/error.c:54
+#: lib/error.c:48
 msgid "An invalid name was supplied"
 msgstr "Đã cung cấp một tên không hợp lệ"
 
-#: lib/error.c:56
+#: lib/error.c:50
 msgid "A supplied name was of an unsupported type"
 msgstr "Đã cung cấp một tên có kiểu không được hỗ trợ"
 
-#: lib/error.c:58
+#: lib/error.c:52
 msgid "Incorrect channel bindings were supplied"
 msgstr "Đã cung cấp các tổ hợp kênh không đúng"
 
-#: lib/error.c:60
+#: lib/error.c:54
 msgid "An invalid status code was supplied"
 msgstr "Đã cung cấp một mã trạng thái không hợp lệ"
 
-#: lib/error.c:62
+#: lib/error.c:56
 msgid "A token had an invalid MIC"
 msgstr "Có một hiệu bài với MIC không hợp lệ"
 
-#: lib/error.c:64
+#: lib/error.c:58
 msgid "No credentials were supplied, or the credentials were unavailable or 
inaccessible"
 msgstr "Chưa cung cấp thông tin xác thực, hoặc thông tin xác thực 
chưa sẵn sàng, hoặc không thể được truy cập"
 
-#: lib/error.c:67
+#: lib/error.c:61
 msgid "No context has been established"
 msgstr "Chưa thiết lập ngữ cảnh"
 
-#: lib/error.c:69
+#: lib/error.c:63
 msgid "A token was invalid"
 msgstr "Có một hiệu bài không hợp lệ"
 
-#: lib/error.c:71
+#: lib/error.c:65
 msgid "A credential was invalid"
 msgstr "Có thông tin xác thực không hợp lệ"
 
-#: lib/error.c:73
+#: lib/error.c:67
 msgid "The referenced credentials have expired"
 msgstr "Đã tham chiếu đến thông tin xác thực đã hết hạn"
 
-#: lib/error.c:75
+#: lib/error.c:69
 msgid "The context has expired"
 msgstr "Ngữ cảnh đã hết hạn"
 
-#: lib/error.c:77
+#: lib/error.c:71
 msgid "Unspecified error in underlying mechanism"
 msgstr "Lỗi không rõ trong cơ chế cơ sở"
 
-#: lib/error.c:79
+#: lib/error.c:73
 msgid "The quality-of-protection requested could not be provided"
 msgstr "Không thể cung cấp mức bảo vệ (quality-of-protection) yêu 
cầu"
 
-#: lib/error.c:81
+#: lib/error.c:75
 msgid "The operation is forbidden by local security policy"
 msgstr "Thao tác bị chính sách bảo mật cục bộ cấm"
 
-#: lib/error.c:83
+#: lib/error.c:77
 msgid "The operation or option is unavailable"
 msgstr "Thao tác hay tùy chọn không sẵn sàng"
 
-#: lib/error.c:85
+#: lib/error.c:79
 msgid "The requested credential element already exists"
 msgstr "Đã yêu cầu một phần tử thông tin xác thực đã có"
 
-#: lib/error.c:87
+#: lib/error.c:81
 msgid "The provided name was not a mechanism name"
 msgstr "Đã cung cấp một tên không phải tên cơ chế"
 
-#: lib/error.c:92
+#: lib/error.c:86
 msgid "The gss_init_sec_context() or gss_accept_sec_context() function must be 
called again to complete its function"
 msgstr "Hàm « gss_init_sec_context() » hay « gss_accept_sec_context() » 
phải được gọi lần nữa để hoàn tất chức năng"
 
-#: lib/error.c:95
+#: lib/error.c:89
 msgid "The token was a duplicate of an earlier token"
 msgstr "Hiệu bài là bản sao của một hiệu bài nằm trước"
 
-#: lib/error.c:97
+#: lib/error.c:91
 msgid "The token's validity period has expired"
 msgstr "Thời gian hợp lệ của hiệu bài đã hết hạn"
 
-#: lib/error.c:99
+#: lib/error.c:93
 msgid "A later token has already been processed"
 msgstr "Một hiệu bài nằm sau đã được xử lý"
 
-#: lib/error.c:101
+#: lib/error.c:95
 msgid "An expected per-message token was not received"
 msgstr "Chưa nhận một hiệu bài từng thông điệp mong đợi"
 
-#: lib/error.c:318
+#: lib/error.c:312
 msgid "No error"
 msgstr "Không có lỗi"
 
-#: lib/krb5/error.c:42
+#: lib/krb5/error.c:36
 msgid "No @ in SERVICE-NAME name string"
 msgstr "Không có dấu @ trong chuỗi SERVICE-NAME (tên dịch vụ)"
 
-#: lib/krb5/error.c:44
+#: lib/krb5/error.c:38
 msgid "STRING-UID-NAME contains nondigits"
 msgstr "STRING-UID-NAME (chuỗi-tên-UID) chứa ký tự khác chữ số"
 
-#: lib/krb5/error.c:46
+#: lib/krb5/error.c:40
 msgid "UID does not resolve to username"
 msgstr "UID không giải quyết thành tên người dùng"
 
-#: lib/krb5/error.c:48
+#: lib/krb5/error.c:42
 msgid "Validation error"
 msgstr "Lỗi hợp lệ hoá"
 
-#: lib/krb5/error.c:50
+#: lib/krb5/error.c:44
 msgid "Couldn't allocate gss_buffer_t data"
 msgstr "Không thể phân cấp dữ liệu « gss_buffer_t »"
 
-#: lib/krb5/error.c:52
+#: lib/krb5/error.c:46
 msgid "Message context invalid"
 msgstr "Ngữ cảnh thông điệp không hợp lệ"
 
-#: lib/krb5/error.c:54
+#: lib/krb5/error.c:48
 msgid "Buffer is the wrong size"
 msgstr "Vùng đệm kích cỡ sai"
 
-#: lib/krb5/error.c:56
+#: lib/krb5/error.c:50
 msgid "Credential usage type is unknown"
 msgstr "Không rõ kiểu sử dụng thông tin xác thực"
 
-#: lib/krb5/error.c:58
+#: lib/krb5/error.c:52
 msgid "Unknown quality of protection specified"
 msgstr "Đã ghi rõ mức bảo vệ không rõ"
 
-#: lib/krb5/error.c:61
+#: lib/krb5/error.c:55
 msgid "Principal in credential cache does not match desired name"
 msgstr "Điều chính trong bộ nhớ tạm thông tin xác thực không 
tương ứng với tên yêu cầu"
 
-#: lib/krb5/error.c:63
+#: lib/krb5/error.c:57
 msgid "No principal in keytab matches desired name"
 msgstr "Không có điều chính trong keytab mà tương ứng với tên 
yêu cầu"
 
-#: lib/krb5/error.c:65
+#: lib/krb5/error.c:59
 msgid "Credential cache has no TGT"
 msgstr "Bộ nhớ tạm thông tin xác thực không có TGT"
 
-#: lib/krb5/error.c:67
+#: lib/krb5/error.c:61
 msgid "Authenticator has no subkey"
 msgstr "Nhà xác thực không có khoá phụ"
 
-#: lib/krb5/error.c:69
+#: lib/krb5/error.c:63
 msgid "Context is already fully established"
 msgstr "Ngữ cảnh đã được thiết lập đầy đủ"
 
-#: lib/krb5/error.c:71
+#: lib/krb5/error.c:65
 msgid "Unknown signature type in token"
 msgstr "Không rõ kiểu chữ ký trong hiệu bài"
 
-#: lib/krb5/error.c:73
+#: lib/krb5/error.c:67
 msgid "Invalid field length in token"
 msgstr "Chiều dài trường không hợp lệ trong hiệu bài"
 
-#: lib/krb5/error.c:75
+#: lib/krb5/error.c:69
 msgid "Attempt to use incomplete security context"
 msgstr "Đã thử sử dụng ngữ cảnh bảo mật chưa hoàn tất"
 
-#: lib/krb5/error.c:92
+#: lib/krb5/error.c:86
 msgid "No krb5 error"
 msgstr "Không có lỗi krb5"
 
-#: lib/krb5/error.c:133
+#: lib/krb5/error.c:127
 msgid "Unknown krb5 error"
 msgstr "Lỗi krb5 không rõ"
 
-#: src/gss.c:64
+#: src/gss.c:65
 #, c-format
 msgid "Try `%s --help' for more information.\n"
 msgstr "Hãy thử câu lệnh trợ giúp « %s --help » để tìm thêm 
thông tin.\n"
 
-#: src/gss.c:68
+#: src/gss.c:69
 #, c-format
 msgid "Usage: %s OPTIONS...\n"
 msgstr "Sử dụng: %s TÙY_CHỌN...\n"
 
-#: src/gss.c:71
+#: src/gss.c:72
 msgid ""
 "Command line interface to GSS, used to explain error codes.\n"
 "\n"
@@ -224,23 +229,31 @@ msgstr ""
 "Giao diện dòng lệnh vào GSS, dùng để giải thích mã lỗi.\n"
 "\n"
 
-#: src/gss.c:75
+#: src/gss.c:76
 msgid "Mandatory arguments to long options are mandatory for short options 
too.\n"
 msgstr "Mọi đối số bắt buộc phải sử dụng với tùy chọn dà
i cũng bắt buộc với tùy chọn ngắn.\n"
 
-#: src/gss.c:78
+#: src/gss.c:79
 msgid ""
-"  -h, --help        Print help and exit\n"
-"  -V, --version     Print version and exit\n"
-"  -m, --major=LONG  Describe a `major status' error code vaue in plain 
text.\n"
-"  -q, --quiet       Silent operation  (default=off)\n"
+"  -h, --help        Print help and exit.\n"
+"  -V, --version     Print version and exit.\n"
+"  -l, --list-mechanisms\n"
+"                    List information about supported mechanisms\n"
+"                    in a human readable format.\n"
+"  -m, --major=LONG  Describe a `major status' error code value.\n"
 msgstr ""
-"  -h, --help        Hiển thị trợ giúp, sau đó thoát\n"
-"  -V, --version     Hiển thị số thứ tự phiên bản, sau đó 
thoát\n"
-"  -m, --major=DÀI    Diễn tả một giá trị mã lỗi « trạng thái 
chính » bằng nhập thô.\n"
-"  -q, --quiet       Thao tác mà không xuất chi tiết (mặc định là 
bị tắt)\n"
-
-#: src/gss.c:119
+"  -h, --help        Hiển thị trợ giúp rồi thoát.\n"
+"  -V, --version     Hiển thị phiên bản rồi thoát.\n"
+"  -l, --list-mechanisms\n"
+"                    Lấy danh sách thông tin về các cơ cấu được 
hỗ trợ\n"
+"                    theo định dạng con người có thể đọc 
hiểu.\n"
+"  -m, --major=LONG  Mô tả giá trị một mã sai `major status'.\n"
+
+#: src/gss.c:87
+msgid "  -q, --quiet       Silent operation (default=off).\n"
+msgstr "  -q, --quiet              thực hiện thầm lặng (mặc định 
= tắt).\n"
+
+#: src/gss.c:106
 #, c-format
 msgid ""
 "GSS-API major status code %ld (0x%lx).\n"
@@ -249,7 +262,7 @@ msgstr ""
 "GSS-API mã trạng thái chính %ld (0x%lx).\n"
 "\n"
 
-#: src/gss.c:122
+#: src/gss.c:109
 #, c-format
 msgid ""
 "   MSB                                                                 LSB\n"
@@ -262,7 +275,7 @@ msgstr ""
 "   |    Lỗi gọi    |  Lỗi hàm  |       Thông tin bổ sung       |\n"
 "   | "
 
-#: src/gss.c:136
+#: src/gss.c:123
 #, c-format
 msgid ""
 "|\n"
@@ -275,27 +288,48 @@ msgstr ""
 "Bit 31            24  23            16  15                             0\n"
 "\n"
 
-#: src/gss.c:146
+#: src/gss.c:133
 #, c-format
 msgid "Masked routine error %ld (0x%lx) shifted into %ld (0x%lx):\n"
-msgstr "Lỗi hàm có mặt nạ %ld (0x%lx) đã rời vào %ld (0x%lx):\n"
+msgstr "Lỗi hàm có mặt nạ %ld (0x%lx) đã địch vào %ld (0x%lx):\n"
 
-#: src/gss.c:163 src/gss.c:198 src/gss.c:236
+#: src/gss.c:150 src/gss.c:184 src/gss.c:221
 #, c-format
-msgid "%s: displaying status code failed\n"
-msgstr "%s: lỗi hiển thị mã trạng thái\n"
+msgid "displaying status code failed (%d)"
+msgstr "hiển thị mã trạng thái gặp lỗi (%d)"
 
-#: src/gss.c:184
+#: src/gss.c:170
 #, c-format
 msgid "Masked calling error %ld (0x%lx) shifted into %ld (0x%lx):\n"
 msgstr "Lỗi gói có mặt nạ %ld (0x%lx) đã rời vào %ld (0x%lx):\n"
 
-#: src/gss.c:218
+#: src/gss.c:203
 #, c-format
 msgid "Masked supplementary info %ld (0x%lx) shifted into %ld (0x%lx):\n"
-msgstr "Thông tin bổ sung có mặt nạ %ld (0x%lx) đã rời vào %ld 
(0x%lx):\n"
+msgstr "Thông tin bổ sung có mặt nạ %ld (0x%lx) đã dịch vào %ld 
(0x%lx):\n"
 
-#: src/gss.c:254
+#: src/gss.c:238
 #, c-format
 msgid "No error\n"
 msgstr "Không có lỗi\n"
+
+#: src/gss.c:256
+#, c-format
+msgid "indicating mechanisms failed (%d)"
+msgstr "cơ cấu chỉ thị gặp lỗi (%d)"
+
+#: src/gss.c:271
+#, c-format
+msgid "inquiring information about mechanism failed (%d)"
+msgstr "tìm hiểu thông tin về cơ cấu gặp lỗi (%d)"
+
+#~ msgid ""
+#~ "  -h, --help        Print help and exit\n"
+#~ "  -V, --version     Print version and exit\n"
+#~ "  -m, --major=LONG  Describe a `major status' error code vaue in plain 
text.\n"
+#~ "  -q, --quiet       Silent operation  (default=off)\n"
+#~ msgstr ""
+#~ "  -h, --help        Hiển thị trợ giúp, sau đó thoát\n"
+#~ "  -V, --version     Hiển thị số thứ tự phiên bản, sau đó 
thoát\n"
+#~ "  -m, --major=DÀI    Diễn tả một giá trị mã lỗi « trạng 
thái chính » bằng nhập thô.\n"
+#~ "  -q, --quiet       Thao tác mà không xuất chi tiết (mặc định 
là bị tắt)\n"
diff --git a/src/gl/errno.in.h b/src/gl/errno.in.h
index 5271bcd..2f42612 100644
--- a/src/gl/errno.in.h
+++ b/src/gl/errno.in.h
@@ -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/>.  */
 
 #ifndef address@hidden@_ERRNO_H
 
diff --git a/src/gl/gettext.h b/src/gl/gettext.h
index 4fb025b..3108e4a 100644
--- a/src/gl/gettext.h
+++ b/src/gl/gettext.h
@@ -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.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _LIBGETTEXT_H
 #define _LIBGETTEXT_H 1
diff --git a/src/gl/m4/warn-on-use.m4 b/src/gl/m4/warn-on-use.m4
index 03b113c..a77802e 100644
--- a/src/gl/m4/warn-on-use.m4
+++ b/src/gl/m4/warn-on-use.m4
@@ -1,4 +1,4 @@
-# warn-on-use.m4 serial 4
+# warn-on-use.m4 serial 5
 dnl Copyright (C) 2010-2012 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -18,8 +18,8 @@ dnl with or without modifications, as long as this notice is 
preserved.
 # some systems declare functions in the wrong header, then INCLUDES
 # should do likewise.
 #
-# If you assume C89, then it is generally safe to assume declarations
-# for functions declared in that standard (such as gets) without
+# It is generally safe to assume declarations for functions declared
+# in the intersection of C89 and C11 (such as printf) without
 # needing gl_WARN_ON_USE_PREPARE.
 AC_DEFUN([gl_WARN_ON_USE_PREPARE],
 [
diff --git a/src/gl/msvc-inval.c b/src/gl/msvc-inval.c
index b7a917d..ba76a7e 100644
--- a/src/gl/msvc-inval.c
+++ b/src/gl/msvc-inval.c
@@ -12,8 +12,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.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff --git a/src/gl/msvc-inval.h b/src/gl/msvc-inval.h
index 373f9bf..eb6930b 100644
--- a/src/gl/msvc-inval.h
+++ b/src/gl/msvc-inval.h
@@ -12,8 +12,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.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _MSVC_INVAL_H
 #define _MSVC_INVAL_H
diff --git a/src/gl/msvc-nothrow.c b/src/gl/msvc-nothrow.c
index f0fea17..e5cf181 100644
--- a/src/gl/msvc-nothrow.c
+++ b/src/gl/msvc-nothrow.c
@@ -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.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
diff --git a/src/gl/msvc-nothrow.h b/src/gl/msvc-nothrow.h
index e066b24..2b71945 100644
--- a/src/gl/msvc-nothrow.h
+++ b/src/gl/msvc-nothrow.h
@@ -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.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef _MSVC_NOTHROW_H
 #define _MSVC_NOTHROW_H
diff --git a/src/gl/stdarg.in.h b/src/gl/stdarg.in.h
index 3e0e43f..53104a6 100644
--- a/src/gl/stdarg.in.h
+++ b/src/gl/stdarg.in.h
@@ -12,8 +12,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/>.  */
 
 #ifndef address@hidden@_STDARG_H
 
diff --git a/src/gl/stddef.in.h b/src/gl/stddef.in.h
index 65e1775..17fcaea 100644
--- a/src/gl/stddef.in.h
+++ b/src/gl/stddef.in.h
@@ -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 Eric Blake.  */
 
diff --git a/src/gl/string.in.h b/src/gl/string.in.h
index 93f70de..f8d7520 100644
--- a/src/gl/string.in.h
+++ b/src/gl/string.in.h
@@ -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/>.  */
 
 #ifndef address@hidden@_STRING_H
 
@@ -725,10 +724,14 @@ _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - "
 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 #   define mbslen rpl_mbslen
 #  endif
-_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_RPL (mbslen, size_t, (const char *string)
+                                  _GL_ATTRIBUTE_PURE
+                                  _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string));
 # else
-_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ARG_NONNULL ((1)));
+_GL_FUNCDECL_SYS (mbslen, size_t, (const char *string)
+                                  _GL_ATTRIBUTE_PURE
+                                  _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string));
 # endif
 _GL_CXXALIASWARN (mbslen);
@@ -738,6 +741,7 @@ _GL_CXXALIASWARN (mbslen);
 /* Return the number of multibyte characters in the character string starting
    at STRING and ending at STRING + LEN.  */
 _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1));
 #endif
 
@@ -751,10 +755,12 @@ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t 
len)
 #   define mbschr rpl_mbschr /* avoid collision with HP-UX function */
 #  endif
 _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c)
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c));
 # else
 _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c)
+                                  _GL_ATTRIBUTE_PURE
                                   _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c));
 # endif
@@ -771,10 +777,12 @@ _GL_CXXALIASWARN (mbschr);
 #   define mbsrchr rpl_mbsrchr /* avoid collision with system function */
 #  endif
 _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c));
 # else
 _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c));
 # endif
@@ -787,6 +795,7 @@ _GL_CXXALIASWARN (mbsrchr);
    Unlike strstr(), this function works correctly in multibyte locales with
    encodings different from UTF-8.  */
 _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -798,6 +807,7 @@ _GL_EXTERN_C char * mbsstr (const char *haystack, const 
char *needle)
    different lengths!
    Unlike strcasecmp(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -812,6 +822,7 @@ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2)
    Unlike strncasecmp(), this function works correctly in multibyte locales.
    But beware that N is not a byte count but a character count!  */
 _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -825,6 +836,7 @@ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char 
*s2, size_t n)
    Unlike strncasecmp(), this function works correctly in multibyte
    locales.  */
 _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -835,6 +847,7 @@ _GL_EXTERN_C char * mbspcasecmp (const char *string, const 
char *prefix)
    strlen (haystack) < strlen (needle) !
    Unlike strcasestr(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -845,6 +858,7 @@ _GL_EXTERN_C char * mbscasestr (const char *haystack, const 
char *needle)
    if none exists.
    Unlike strcspn(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -858,10 +872,12 @@ _GL_EXTERN_C size_t mbscspn (const char *string, const 
char *accept)
 #   define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */
 #  endif
 _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept));
 # else
 _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept));
 # endif
@@ -875,6 +891,7 @@ _GL_CXXALIASWARN (mbspbrk);
    if none exists.
    Unlike strspn(), this function works correctly in multibyte locales.  */
 _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject)
+     _GL_ATTRIBUTE_PURE
      _GL_ARG_NONNULL ((1, 2));
 #endif
 
@@ -994,6 +1011,7 @@ _GL_WARN_ON_USE (strsignal, "strsignal is unportable - "
 #if @GNULIB_STRVERSCMP@
 # if address@hidden@
 _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *)
+                                   _GL_ATTRIBUTE_PURE
                                    _GL_ARG_NONNULL ((1, 2)));
 # endif
 _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *));
diff --git a/src/gl/unistd.in.h b/src/gl/unistd.in.h
index 660094a..1b26c09 100644
--- a/src/gl/unistd.in.h
+++ b/src/gl/unistd.in.h
@@ -12,8 +12,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/>.  */
 
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@


hooks/post-receive
-- 
GNU gss



reply via email to

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