Andreas Krennmair:
authorak1 <ak1@e385b8ad-14ed-0310-8656-cc95a2468c6d>
Mon, 17 Jan 2005 23:19:03 +0000 (23:19 +0000)
committerak1 <ak1@e385b8ad-14ed-0310-8656-cc95a2468c6d>
Mon, 17 Jan 2005 23:19:03 +0000 (23:19 +0000)
fixed format string error found by pscan(1).

git-svn-id: svn://svn.berlios.de/mutt-ng/trunk@17 e385b8ad-14ed-0310-8656-cc95a2468c6d

browser.c
hook.c
intl/plural.c
regex.c
smime.c

index 9ae55ac..61bf178 100644 (file)
--- a/browser.c
+++ b/browser.c
@@ -690,7 +690,7 @@ static void init_menu (struct browser_state *state, MUTTMENU *menu, char *title,
   if (option (OPTNEWS))
   {
     if (buffy)
-      snprintf (title, titlelen, _("Subscribed newsgroups"));
+      snprintf (title, titlelen, "%s", _("Subscribed newsgroups"));
     else
       snprintf (title, titlelen, _("Newsgroups on server [%s]"),
                CurrentNewsSrv->conn->account.host);
diff --git a/hook.c b/hook.c
index b157f05..12d455f 100644 (file)
--- a/hook.c
+++ b/hook.c
@@ -270,8 +270,7 @@ int mutt_parse_unhook (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
       }
       if (current_hook_type == type)
       {
-       snprintf (err->data, err->dsize,
-                 _("unhook: Can't delete a %s from within a %s."),
+       snprintf (err->data, err->dsize, _("unhook: Can't delete a %s from within a %s."),
                  buf->data, buf->data);
        return -1;
       }
index 5f415ce..d30a8d6 100644 (file)
@@ -1,21 +1,84 @@
-/* A Bison parser, made from plural.y
-   by GNU bison 1.35.  */
+/* A Bison parser, made by GNU Bison 1.875a.  */
 
-#define YYBISON 1  /* Identify Bison output.  */
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 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 2, 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, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Written by Richard Stallman by simplifying the original so called
+   ``semantic'' parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 1
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
+
+/* If NAME_PREFIX is specified substitute the variables and functions
+   names.  */
 #define yyparse __gettextparse
-#define yylex __gettextlex
+#define yylex   __gettextlex
 #define yyerror __gettexterror
-#define yylval __gettextlval
-#define yychar __gettextchar
+#define yylval  __gettextlval
+#define yychar  __gettextchar
 #define yydebug __gettextdebug
 #define yynerrs __gettextnerrs
-# define       EQUOP2  257
-# define       CMPOP2  258
-# define       ADDOP2  259
-# define       MULOP2  260
-# define       NUMBER  261
 
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     EQUOP2 = 258,
+     CMPOP2 = 259,
+     ADDOP2 = 260,
+     MULOP2 = 261,
+     NUMBER = 262
+   };
+#endif
+#define EQUOP2 258
+#define CMPOP2 259
+#define ADDOP2 260
+#define MULOP2 261
+#define NUMBER 262
+
+
+
+
+/* Copy the first part of user declarations.  */
 #line 1 "plural.y"
 
 /* Expression parsing for plural form selection.
 #define YYLEX_PARAM    &((struct parse_args *) arg)->cp
 #define YYPARSE_PARAM  arg
 
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 #line 53 "plural.y"
-#ifndef YYSTYPE
-typedef union {
+typedef union YYSTYPE {
   unsigned long int num;
   enum operator op;
   struct expression *exp;
-} yystype;
-# define YYSTYPE yystype
+} YYSTYPE;
+/* Line 191 of yacc.c.  */
+#line 155 "plural.c"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
+
+
+
+/* Copy the second part of user declarations.  */
 #line 59 "plural.y"
 
 /* Prototypes for local functions.  */
@@ -174,196 +258,12 @@ new_exp_3 (op, bexp, tbranch, fbranch)
   return new_exp (3, op, args);
 }
 
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-
-
-#define        YYFINAL         27
-#define        YYFLAG          -32768
-#define        YYNTBASE        16
-
-/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
-#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18)
-
-/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
-static const char yytranslate[] =
-{
-       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    10,     2,     2,     2,     2,     5,     2,
-      14,    15,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    12,     2,
-       2,     2,     2,     3,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-      13,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     4,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     6,     7,     8,
-       9,    11
-};
-
-#if YYDEBUG
-static const short yyprhs[] =
-{
-       0,     0,     2,     8,    12,    16,    20,    24,    28,    32,
-      35,    37,    39
-};
-static const short yyrhs[] =
-{
-      17,     0,    17,     3,    17,    12,    17,     0,    17,     4,
-      17,     0,    17,     5,    17,     0,    17,     6,    17,     0,
-      17,     7,    17,     0,    17,     8,    17,     0,    17,     9,
-      17,     0,    10,    17,     0,    13,     0,    11,     0,    14,
-      17,    15,     0
-};
-
-#endif
-
-#if YYDEBUG
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const short yyrline[] =
-{
-       0,   178,   186,   190,   194,   198,   202,   206,   210,   214,
-     218,   222,   227
-};
-#endif
-
-
-#if (YYDEBUG) || defined YYERROR_VERBOSE
-
-/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
-static const char *const yytname[] =
-{
-  "$", "error", "$undefined.", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2", 
-  "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'", 
-  "start", "exp", 0
-};
-#endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const short yyr1[] =
-{
-       0,    16,    17,    17,    17,    17,    17,    17,    17,    17,
-      17,    17,    17
-};
-
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const short yyr2[] =
-{
-       0,     1,     5,     3,     3,     3,     3,     3,     3,     2,
-       1,     1,     3
-};
-
-/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
-   doesn't specify something else to do.  Zero means the default is an
-   error. */
-static const short yydefact[] =
-{
-       0,     0,    11,    10,     0,     1,     9,     0,     0,     0,
-       0,     0,     0,     0,     0,    12,     0,     3,     4,     5,
-       6,     7,     8,     0,     2,     0,     0,     0
-};
-
-static const short yydefgoto[] =
-{
-      25,     5
-};
-
-static const short yypact[] =
-{
-      -9,    -9,-32768,-32768,    -9,    34,-32768,    11,    -9,    -9,
-      -9,    -9,    -9,    -9,    -9,-32768,    24,    39,    43,    16,
-      26,    -3,-32768,    -9,    34,    21,    53,-32768
-};
-
-static const short yypgoto[] =
-{
-  -32768,    -1
-};
-
-
-#define        YYLAST          53
-
-
-static const short yytable[] =
-{
-       6,     1,     2,     7,     3,     4,    14,    16,    17,    18,
-      19,    20,    21,    22,     8,     9,    10,    11,    12,    13,
-      14,    26,    24,    12,    13,    14,    15,     8,     9,    10,
-      11,    12,    13,    14,    13,    14,    23,     8,     9,    10,
-      11,    12,    13,    14,    10,    11,    12,    13,    14,    11,
-      12,    13,    14,    27
-};
-
-static const short yycheck[] =
-{
-       1,    10,    11,     4,    13,    14,     9,     8,     9,    10,
-      11,    12,    13,    14,     3,     4,     5,     6,     7,     8,
-       9,     0,    23,     7,     8,     9,    15,     3,     4,     5,
-       6,     7,     8,     9,     8,     9,    12,     3,     4,     5,
-       6,     7,     8,     9,     5,     6,     7,     8,     9,     6,
-       7,     8,     9,     0
-};
-#define YYPURE 1
 
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/sw/share/bison/bison.simple"
 
-/* Skeleton output parser for bison,
+/* Line 214 of yacc.c.  */
+#line 265 "plural.c"
 
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 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 2, 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, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* This is the parser code that is written into each bison parser when
-   the %semantic_parser declaration is not specified in the grammar.
-   It was written by Richard Stallman by simplifying the hairy parser
-   used when %semantic_parser is specified.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
@@ -392,37 +292,28 @@ static const short yycheck[] =
 #  define YYSTACK_ALLOC malloc
 #  define YYSTACK_FREE free
 # endif
-#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
 
 
 #if (! defined (yyoverflow) \
      && (! defined (__cplusplus) \
-        || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+        || (YYSTYPE_IS_TRIVIAL)))
 
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
   short yyss;
   YYSTYPE yyvs;
-# if YYLSP_NEEDED
-  YYLTYPE yyls;
-# endif
-};
+  };
 
 /* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
 
 /* The size of an array large to enough to hold all stacks, each with
    N elements.  */
-# if YYLSP_NEEDED
-#  define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))     \
-      + 2 * YYSTACK_GAP_MAX)
-# else
-#  define YYSTACK_BYTES(N) \
+# define YYSTACK_BYTES(N) \
      ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
-      + YYSTACK_GAP_MAX)
-# endif
+      + YYSTACK_GAP_MAXIMUM)
 
 /* Copy COUNT objects from FROM to TO.  The source and destination do
    not overlap.  */
@@ -453,13 +344,199 @@ union yyalloc
        YYSIZE_T yynewbytes;                                            \
        YYCOPY (&yyptr->Stack, Stack, yysize);                          \
        Stack = &yyptr->Stack;                                          \
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        yyptr += yynewbytes / sizeof (*yyptr);                          \
       }                                                                        \
     while (0)
 
 #endif
 
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short yysigned_char;
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  9
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   54
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  16
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  3
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  13
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  27
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   262
+
+#define YYTRANSLATE(YYX)                                               \
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const unsigned char yytranslate[] =
+{
+       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,    10,     2,     2,     2,     2,     5,     2,
+      14,    15,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    12,     2,
+       2,     2,     2,     3,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+      13,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     4,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     6,     7,
+       8,     9,    11
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned char yyprhs[] =
+{
+       0,     0,     3,     5,    11,    15,    19,    23,    27,    31,
+      35,    38,    40,    42
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yysigned_char yyrhs[] =
+{
+      17,     0,    -1,    18,    -1,    18,     3,    18,    12,    18,
+      -1,    18,     4,    18,    -1,    18,     5,    18,    -1,    18,
+       6,    18,    -1,    18,     7,    18,    -1,    18,     8,    18,
+      -1,    18,     9,    18,    -1,    10,    18,    -1,    13,    -1,
+      11,    -1,    14,    18,    15,    -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned char yyrline[] =
+{
+       0,   178,   178,   186,   190,   194,   198,   202,   206,   210,
+     214,   218,   222,   227
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2", 
+  "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'", 
+  "$accept", "start", "exp", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short yytoknum[] =
+{
+       0,   256,   257,    63,   124,    38,   258,   259,   260,   261,
+      33,   262,    58,   110,    40,    41
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned char yyr1[] =
+{
+       0,    16,    17,    18,    18,    18,    18,    18,    18,    18,
+      18,    18,    18,    18
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const unsigned char yyr2[] =
+{
+       0,     2,     1,     5,     3,     3,     3,     3,     3,     3,
+       2,     1,     1,     3
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const unsigned char yydefact[] =
+{
+       0,     0,    12,    11,     0,     0,     2,    10,     0,     1,
+       0,     0,     0,     0,     0,     0,     0,    13,     0,     4,
+       5,     6,     7,     8,     9,     0,     3
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yysigned_char yydefgoto[] =
+{
+      -1,     5,     6
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -10
+static const yysigned_char yypact[] =
+{
+      -9,    -9,   -10,   -10,    -9,     8,    36,   -10,    13,   -10,
+      -9,    -9,    -9,    -9,    -9,    -9,    -9,   -10,    26,    41,
+      45,    18,    -2,    14,   -10,    -9,    36
+};
+
+/* YYPGOTO[NTERM-NUM].  */
+static const yysigned_char yypgoto[] =
+{
+     -10,   -10,    -1
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -1
+static const unsigned char yytable[] =
+{
+       7,     1,     2,     8,     3,     4,    15,    16,     9,    18,
+      19,    20,    21,    22,    23,    24,    10,    11,    12,    13,
+      14,    15,    16,    16,    26,    14,    15,    16,    17,    10,
+      11,    12,    13,    14,    15,    16,     0,     0,    25,    10,
+      11,    12,    13,    14,    15,    16,    12,    13,    14,    15,
+      16,    13,    14,    15,    16
+};
+
+static const yysigned_char yycheck[] =
+{
+       1,    10,    11,     4,    13,    14,     8,     9,     0,    10,
+      11,    12,    13,    14,    15,    16,     3,     4,     5,     6,
+       7,     8,     9,     9,    25,     7,     8,     9,    15,     3,
+       4,     5,     6,     7,     8,     9,    -1,    -1,    12,     3,
+       4,     5,     6,     7,     8,     9,     5,     6,     7,     8,
+       9,     6,     7,     8,     9
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const unsigned char yystos[] =
+{
+       0,    10,    11,    13,    14,    17,    18,    18,    18,     0,
+       3,     4,     5,     6,     7,     8,     9,    15,    18,    18,
+      18,    18,    18,    18,    18,    12,    18
+};
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
@@ -479,29 +556,35 @@ union yyalloc
 
 #define yyerrok                (yyerrstatus = 0)
 #define yyclearin      (yychar = YYEMPTY)
-#define YYEMPTY                -2
+#define YYEMPTY                (-2)
 #define YYEOF          0
+
 #define YYACCEPT       goto yyacceptlab
-#define YYABORT        goto yyabortlab
+#define YYABORT                goto yyabortlab
 #define YYERROR                goto yyerrlab1
+
+
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
+
 #define YYFAIL         goto yyerrlab
+
 #define YYRECOVERING()  (!!yyerrstatus)
+
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
   if (yychar == YYEMPTY && yylen == 1)                         \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
-      yychar1 = YYTRANSLATE (yychar);                          \
+      yytoken = YYTRANSLATE (yychar);                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
   else                                                         \
     {                                                          \
-      yyerror ("syntax error: cannot back up");                        \
+      yyerror ("syntax error: cannot back up");\
       YYERROR;                                                 \
     }                                                          \
 while (0)
@@ -509,41 +592,24 @@ while (0)
 #define YYTERROR       1
 #define YYERRCODE      256
 
-
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).
-
-   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
-   first token.  By default, to implement support for ranges, extend
-   its range to the last symbol.  */
+   are run).  */
 
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)               \
-   Current.last_line   = Rhs[N].last_line;     \
-   Current.last_column = Rhs[N].last_column;
+# define YYLLOC_DEFAULT(Current, Rhs, N)         \
+  Current.first_line   = Rhs[1].first_line;      \
+  Current.first_column = Rhs[1].first_column;    \
+  Current.last_line    = Rhs[N].last_line;       \
+  Current.last_column  = Rhs[N].last_column;
 #endif
 
-
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
-#if YYPURE
-# if YYLSP_NEEDED
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, &yylloc, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval, &yylloc)
-#  endif
-# else /* !YYLSP_NEEDED */
-#  ifdef YYLEX_PARAM
-#   define YYLEX               yylex (&yylval, YYLEX_PARAM)
-#  else
-#   define YYLEX               yylex (&yylval)
-#  endif
-# endif /* !YYLSP_NEEDED */
-#else /* !YYPURE */
-# define YYLEX                 yylex ()
-#endif /* !YYPURE */
-
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (&yylval, YYLEX_PARAM)
+#else
+# define YYLEX yylex (&yylval)
+#endif
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -558,13 +624,93 @@ do {                                              \
   if (yydebug)                                 \
     YYFPRINTF Args;                            \
 } while (0)
+
+# define YYDSYMPRINT(Args)                     \
+do {                                           \
+  if (yydebug)                                 \
+    yysymprint Args;                           \
+} while (0)
+
+# define YYDSYMPRINTF(Title, Token, Value, Location)           \
+do {                                                           \
+  if (yydebug)                                                 \
+    {                                                          \
+      YYFPRINTF (stderr, "%s ", Title);                                \
+      yysymprint (stderr,                                      \
+                  Token, Value);       \
+      YYFPRINTF (stderr, "\n");                                        \
+    }                                                          \
+} while (0)
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (cinluded).                                                   |
+`------------------------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short *bottom, short *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    short *bottom;
+    short *top;
+#endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (/* Nothing. */; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)                           \
+do {                                                           \
+  if (yydebug)                                                 \
+    yy_stack_print ((Bottom), (Top));                          \
+} while (0)
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+    int yyrule;
+#endif
+{
+  int yyi;
+  unsigned int yylineno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
+             yyrule - 1, yylineno);
+  /* Print the symbols being reduced, and their result.  */
+  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
+  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule)         \
+do {                                   \
+  if (yydebug)                         \
+    yy_reduce_print (Rule);            \
+} while (0)
+
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
+# define YYDSYMPRINT(Args)
+# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
 #endif /* !YYDEBUG */
 
+
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 # define YYINITDEPTH 200
@@ -584,8 +730,10 @@ int yydebug;
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
+
 \f
-#ifdef YYERROR_VERBOSE
+
+#if YYERROR_VERBOSE
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
@@ -635,78 +783,126 @@ yystpcpy (yydest, yysrc)
 }
 #  endif
 # endif
-#endif
+
+#endif /* !YYERROR_VERBOSE */
+
 \f
-#line 315 "/sw/share/bison/bison.simple"
 
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
 
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-   into yyparse.  The argument should have type void *.
-   It should actually point to an object.
-   Grammar actions can access the variable by casting it
-   to the proper pointer type.  */
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (yytype < YYNTOKENS)
+    {
+      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+# ifdef YYPRINT
+      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+    }
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+  YYFPRINTF (yyoutput, ")");
+}
+
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yytype, yyvaluep)
+    int yytype;
+    YYSTYPE *yyvaluep;
+#endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
+\f
+
+/* Prevent warnings from -Wmissing-prototypes.  */
 
 #ifdef YYPARSE_PARAM
 # if defined (__STDC__) || defined (__cplusplus)
-#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL
+int yyparse (void *YYPARSE_PARAM);
 # else
-#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+int yyparse ();
 # endif
-#else /* !YYPARSE_PARAM */
-# define YYPARSE_PARAM_ARG
-# define YYPARSE_PARAM_DECL
-#endif /* !YYPARSE_PARAM */
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-# ifdef YYPARSE_PARAM
-int yyparse (void *);
-# else
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
 int yyparse (void);
-# endif
+#else
+int yyparse ();
 #endif
+#endif /* ! YYPARSE_PARAM */
+
 
-/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
-   variables are global, or local to YYPARSE.  */
-
-#define YY_DECL_NON_LSP_VARIABLES                      \
-/* The lookahead symbol.  */                           \
-int yychar;                                            \
-                                                       \
-/* The semantic value of the lookahead symbol. */      \
-YYSTYPE yylval;                                                \
-                                                       \
-/* Number of parse errors so far.  */                  \
-int yynerrs;
 
-#if YYLSP_NEEDED
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES                      \
-                                               \
-/* Location data for the lookahead symbol.  */ \
-YYLTYPE yylloc;
-#else
-# define YY_DECL_VARIABLES                     \
-YY_DECL_NON_LSP_VARIABLES
-#endif
 
 
-/* If nonreentrant, generate the variables here. */
 
-#if !YYPURE
-YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+/*----------.
+| yyparse.  |
+`----------*/
 
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+  void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
 int
-yyparse (YYPARSE_PARAM_ARG)
-     YYPARSE_PARAM_DECL
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
 {
-  /* If reentrant, generate the variables here. */
-#if YYPURE
-  YY_DECL_VARIABLES
-#endif  /* !YYPURE */
+  /* The lookahead symbol.  */
+int yychar;
+
+/* The semantic value of the lookahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
 
   register int yystate;
   register int yyn;
@@ -714,7 +910,7 @@ yyparse (YYPARSE_PARAM_ARG)
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
-  int yychar1 = 0;
+  int yytoken = 0;
 
   /* Three stacks and their tools:
      `yyss': related to states,
@@ -724,7 +920,7 @@ yyparse (YYPARSE_PARAM_ARG)
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
-  /* The state stack. */
+  /* The state stack.  */
   short        yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
@@ -734,31 +930,19 @@ yyparse (YYPARSE_PARAM_ARG)
   YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
 
-#if YYLSP_NEEDED
-  /* The location stack.  */
-  YYLTYPE yylsa[YYINITDEPTH];
-  YYLTYPE *yyls = yylsa;
-  YYLTYPE *yylsp;
-#endif
 
-#if YYLSP_NEEDED
-# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-#else
-# define YYPOPSTACK   (yyvsp--, yyssp--)
-#endif
 
-  YYSIZE_T yystacksize = YYINITDEPTH;
+#define YYPOPSTACK   (yyvsp--, yyssp--)
 
+  YYSIZE_T yystacksize = YYINITDEPTH;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
-#if YYLSP_NEEDED
-  YYLTYPE yyloc;
-#endif
+
 
   /* When reducing, the number of symbols on the RHS of the reduced
-     rule. */
+     rule.  */
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
@@ -775,9 +959,7 @@ yyparse (YYPARSE_PARAM_ARG)
 
   yyssp = yyss;
   yyvsp = yyvs;
-#if YYLSP_NEEDED
-  yylsp = yyls;
-#endif
+
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -792,7 +974,7 @@ yyparse (YYPARSE_PARAM_ARG)
  yysetstate:
   *yyssp = yystate;
 
-  if (yyssp >= yyss + yystacksize - 1)
+  if (yyss + yystacksize - 1 <= yyssp)
     {
       /* Get the current used size of the three stacks, in elements.  */
       YYSIZE_T yysize = yyssp - yyss + 1;
@@ -805,24 +987,17 @@ yyparse (YYPARSE_PARAM_ARG)
        YYSTYPE *yyvs1 = yyvs;
        short *yyss1 = yyss;
 
+
        /* Each stack pointer address is followed by the size of the
-          data in use in that stack, in bytes.  */
-# if YYLSP_NEEDED
-       YYLTYPE *yyls1 = yyls;
-       /* This used to be a conditional around just the two extra args,
-          but that might be undefined if yyoverflow is a macro.  */
-       yyoverflow ("parser stack overflow",
-                   &yyss1, yysize * sizeof (*yyssp),
-                   &yyvs1, yysize * sizeof (*yyvsp),
-                   &yyls1, yysize * sizeof (*yylsp),
-                   &yystacksize);
-       yyls = yyls1;
-# else
+          data in use in that stack, in bytes.  This used to be a
+          conditional around just the two extra args, but that might
+          be undefined if yyoverflow is a macro.  */
        yyoverflow ("parser stack overflow",
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
+
                    &yystacksize);
-# endif
+
        yyss = yyss1;
        yyvs = yyvs1;
       }
@@ -831,10 +1006,10 @@ yyparse (YYPARSE_PARAM_ARG)
       goto yyoverflowlab;
 # else
       /* Extend the stack our own way.  */
-      if (yystacksize >= YYMAXDEPTH)
+      if (YYMAXDEPTH <= yystacksize)
        goto yyoverflowlab;
       yystacksize *= 2;
-      if (yystacksize > YYMAXDEPTH)
+      if (YYMAXDEPTH < yystacksize)
        yystacksize = YYMAXDEPTH;
 
       {
@@ -845,10 +1020,8 @@ yyparse (YYPARSE_PARAM_ARG)
          goto yyoverflowlab;
        YYSTACK_RELOCATE (yyss);
        YYSTACK_RELOCATE (yyvs);
-# if YYLSP_NEEDED
-       YYSTACK_RELOCATE (yyls);
-# endif
-# undef YYSTACK_RELOCATE
+
+#  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
       }
@@ -857,14 +1030,12 @@ yyparse (YYPARSE_PARAM_ARG)
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
-#if YYLSP_NEEDED
-      yylsp = yyls + yysize - 1;
-#endif
+
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
-      if (yyssp >= yyss + yystacksize - 1)
+      if (yyss + yystacksize - 1 <= yyssp)
        YYABORT;
     }
 
@@ -872,7 +1043,6 @@ yyparse (YYPARSE_PARAM_ARG)
 
   goto yybackup;
 
-
 /*-----------.
 | yybackup.  |
 `-----------*/
@@ -885,88 +1055,55 @@ yybackup:
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
-  if (yyn == YYFLAG)
+  if (yyn == YYPACT_NINF)
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
 
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
-
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
-  /* Convert token to internal form (in yychar1) for indexing tables with */
-
-  if (yychar <= 0)             /* This means end of input. */
+  if (yychar <= YYEOF)
     {
-      yychar1 = 0;
-      yychar = YYEOF;          /* Don't call YYLEX any more */
-
+      yychar = yytoken = YYEOF;
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
-      yychar1 = YYTRANSLATE (yychar);
-
-#if YYDEBUG
-     /* We have to keep this `#if YYDEBUG', since we use variables
-       which are defined only if `YYDEBUG' is set.  */
-      if (yydebug)
-       {
-         YYFPRINTF (stderr, "Next token is %d (%s",
-                    yychar, yytname[yychar1]);
-         /* Give the individual parser a way to print the precise
-            meaning of a token, for further debugging info.  */
-# ifdef YYPRINT
-         YYPRINT (stderr, yychar, yylval);
-# endif
-         YYFPRINTF (stderr, ")\n");
-       }
-#endif
+      yytoken = YYTRANSLATE (yychar);
+      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
     }
 
-  yyn += yychar1;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
     goto yydefault;
-
   yyn = yytable[yyn];
-
-  /* yyn is what to do for this token type in this state.
-     Negative => reduce, -yyn is rule number.
-     Positive => shift, yyn is new state.
-       New state is final state => don't bother to shift,
-       just return success.
-     0, or most negative number => error.  */
-
-  if (yyn < 0)
+  if (yyn <= 0)
     {
-      if (yyn == YYFLAG)
+      if (yyn == 0 || yyn == YYTABLE_NINF)
        goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
-  else if (yyn == 0)
-    goto yyerrlab;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
   /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
-             yychar, yytname[yychar1]));
+  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
@@ -997,140 +1134,118 @@ yyreduce:
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
-     Otherwise, the following line sets YYVAL to the semantic value of
-     the lookahead token.  This behavior is undocumented and Bison
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
-#if YYLSP_NEEDED
-  /* Similarly for the default location.  Let the user run additional
-     commands if for instance locations are ranges.  */
-  yyloc = yylsp[1-yylen];
-  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
-#endif
 
-#if YYDEBUG
-  /* We have to keep this `#if YYDEBUG', since we use variables which
-     are defined only if `YYDEBUG' is set.  */
-  if (yydebug)
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
     {
-      int yyi;
-
-      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
-                yyn, yyrline[yyn]);
-
-      /* Print the symbols being reduced, and their result.  */
-      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
-       YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
-      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-    }
-#endif
-
-  switch (yyn) {
-
-case 1:
+        case 2:
 #line 179 "plural.y"
-{
+    {
            if (yyvsp[0].exp == NULL)
              YYABORT;
            ((struct parse_args *) arg)->res = yyvsp[0].exp;
          }
     break;
-case 2:
+
+  case 3:
 #line 187 "plural.y"
-{
+    {
            yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
-case 3:
+
+  case 4:
 #line 191 "plural.y"
-{
+    {
            yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
-case 4:
+
+  case 5:
 #line 195 "plural.y"
-{
+    {
            yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
-case 5:
+
+  case 6:
 #line 199 "plural.y"
-{
+    {
            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
-case 6:
+
+  case 7:
 #line 203 "plural.y"
-{
+    {
            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
-case 7:
+
+  case 8:
 #line 207 "plural.y"
-{
+    {
            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
-case 8:
+
+  case 9:
 #line 211 "plural.y"
-{
+    {
            yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
          }
     break;
-case 9:
+
+  case 10:
 #line 215 "plural.y"
-{
+    {
            yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
          }
     break;
-case 10:
+
+  case 11:
 #line 219 "plural.y"
-{
+    {
            yyval.exp = new_exp_0 (var);
          }
     break;
-case 11:
+
+  case 12:
 #line 223 "plural.y"
-{
+    {
            if ((yyval.exp = new_exp_0 (num)) != NULL)
              yyval.exp->val.num = yyvsp[0].num;
          }
     break;
-case 12:
+
+  case 13:
 #line 228 "plural.y"
-{
+    {
            yyval.exp = yyvsp[-1].exp;
          }
     break;
-}
 
-#line 705 "/sw/share/bison/bison.simple"
 
+    }
+
+/* Line 999 of yacc.c.  */
+#line 1240 "plural.c"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
-#if YYLSP_NEEDED
-  yylsp -= yylen;
-#endif
 
-#if YYDEBUG
-  if (yydebug)
-    {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+
+  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
-#if YYLSP_NEEDED
-  *++yylsp = yyloc;
-#endif
+
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
@@ -1138,11 +1253,11 @@ case 12:
 
   yyn = yyr1[yyn];
 
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     yystate = yytable[yystate];
   else
-    yystate = yydefgoto[yyn - YYNTBASE];
+    yystate = yydefgoto[yyn - YYNTOKENS];
 
   goto yynewstate;
 
@@ -1155,13 +1270,13 @@ yyerrlab:
   if (!yyerrstatus)
     {
       ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
+#if YYERROR_VERBOSE
       yyn = yypact[yystate];
 
-      if (yyn > YYFLAG && yyn < YYLAST)
+      if (YYPACT_NINF < yyn && yyn < YYLAST)
        {
          YYSIZE_T yysize = 0;
+         int yytype = YYTRANSLATE (yychar);
          char *yymsg;
          int yyx, yycount;
 
@@ -1170,15 +1285,15 @@ yyerrlab:
             YYCHECK.  */
          for (yyx = yyn < 0 ? -yyn : 0;
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-           if (yycheck[yyx + yyn] == yyx)
+           if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;
-         yysize += yystrlen ("parse error, unexpected ") + 1;
-         yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
+         yysize += yystrlen ("syntax error, unexpected ") + 1;
+         yysize += yystrlen (yytname[yytype]);
          yymsg = (char *) YYSTACK_ALLOC (yysize);
          if (yymsg != 0)
            {
-             char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
-             yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
+             char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
+             yyp = yystpcpy (yyp, yytname[yytype]);
 
              if (yycount < 5)
                {
@@ -1186,7 +1301,7 @@ yyerrlab:
                  for (yyx = yyn < 0 ? -yyn : 0;
                       yyx < (int) (sizeof (yytname) / sizeof (char *));
                       yyx++)
-                   if (yycheck[yyx + yyn] == yyx)
+                   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
                      {
                        const char *yyq = ! yycount ? ", expecting " : " or ";
                        yyp = yystpcpy (yyp, yyq);
@@ -1198,102 +1313,77 @@ yyerrlab:
              YYSTACK_FREE (yymsg);
            }
          else
-           yyerror ("parse error; also virtual memory exhausted");
+           yyerror ("syntax error; also virtual memory exhausted");
        }
       else
-#endif /* defined (YYERROR_VERBOSE) */
-       yyerror ("parse error");
+#endif /* YYERROR_VERBOSE */
+       yyerror ("syntax error");
     }
-  goto yyerrlab1;
 
 
-/*--------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action |
-`--------------------------------------------------*/
-yyerrlab1:
+
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
-      /* return failure if at end of input */
+      /* Return failure if at end of input.  */
       if (yychar == YYEOF)
-       YYABORT;
-      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
-                 yychar, yytname[yychar1]));
+        {
+         /* Pop the error token.  */
+          YYPOPSTACK;
+         /* Pop the rest of the stack.  */
+         while (yyss < yyssp)
+           {
+             YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+             yydestruct (yystos[*yyssp], yyvsp);
+             YYPOPSTACK;
+           }
+         YYABORT;
+        }
+
+      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
+      yydestruct (yytoken, &yylval);
       yychar = YYEMPTY;
+
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
-
-  yyerrstatus = 3;             /* Each real token shifted decrements this */
-
-  goto yyerrhandle;
-
-
-/*-------------------------------------------------------------------.
-| yyerrdefault -- current state does not do anything special for the |
-| error token.                                                       |
-`-------------------------------------------------------------------*/
-yyerrdefault:
-#if 0
-  /* This is wrong; only states that explicitly want error tokens
-     should shift them.  */
-
-  /* If its default is to accept any token, ok.  Otherwise pop it.  */
-  yyn = yydefact[yystate];
-  if (yyn)
-    goto yydefault;
-#endif
+  goto yyerrlab1;
 
 
-/*---------------------------------------------------------------.
-| yyerrpop -- pop the current state because it cannot handle the |
-| error token                                                    |
-`---------------------------------------------------------------*/
-yyerrpop:
-  if (yyssp == yyss)
-    YYABORT;
-  yyvsp--;
-  yystate = *--yyssp;
-#if YYLSP_NEEDED
-  yylsp--;
-#endif
+/*----------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action.  |
+`----------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;     /* Each real token shifted decrements this.  */
 
-#if YYDEBUG
-  if (yydebug)
+  for (;;)
     {
-      short *yyssp1 = yyss - 1;
-      YYFPRINTF (stderr, "Error: state stack now");
-      while (yyssp1 != yyssp)
-       YYFPRINTF (stderr, " %d", *++yyssp1);
-      YYFPRINTF (stderr, "\n");
-    }
-#endif
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+       {
+         yyn += YYTERROR;
+         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+           {
+             yyn = yytable[yyn];
+             if (0 < yyn)
+               break;
+           }
+       }
 
-/*--------------.
-| yyerrhandle.  |
-`--------------*/
-yyerrhandle:
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yyerrdefault;
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+       YYABORT;
 
-  yyn += YYTERROR;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-    goto yyerrdefault;
+      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
+      yydestruct (yystos[yystate], yyvsp);
+      yyvsp--;
+      yystate = *--yyssp;
 
-  yyn = yytable[yyn];
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-       goto yyerrpop;
-      yyn = -yyn;
-      goto yyreduce;
+      YY_STACK_PRINT (yyss, yyssp);
     }
-  else if (yyn == 0)
-    goto yyerrpop;
 
   if (yyn == YYFINAL)
     YYACCEPT;
@@ -1301,9 +1391,7 @@ yyerrhandle:
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
-#if YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
 
   yystate = yyn;
   goto yynewstate;
@@ -1323,13 +1411,15 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-/*---------------------------------------------.
-| yyoverflowab -- parser overflow comes here.  |
-`---------------------------------------------*/
+#ifndef yyoverflow
+/*----------------------------------------------.
+| yyoverflowlab -- parser overflow comes here.  |
+`----------------------------------------------*/
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
+#endif
 
 yyreturn:
 #ifndef yyoverflow
@@ -1338,6 +1428,8 @@ yyreturn:
 #endif
   return yyresult;
 }
+
+
 #line 233 "plural.y"
 
 
@@ -1520,3 +1612,4 @@ yyerror (str)
 {
   /* Do nothing.  We don't print error messages here.  */
 }
+
diff --git a/regex.c b/regex.c
index 398f7f9..eefc2cb 100644 (file)
--- a/regex.c
+++ b/regex.c
@@ -29,9 +29,9 @@
  * 
  * Use _regex.h instead of regex.h.  tlr, 1999-01-06
  * Make REGEX_MALLOC depend on HAVE_ALLOCA &c.
- *                                  tlr, 1999-02-14
+ *                                      tlr, 1999-02-14
  * Don't switch on regex debugging when debugging mutt.
- *                                  tlr, 1999-02-25
+ *                                      tlr, 1999-02-25
  */
 
 /* The following doesn't mix too well with autoconfiguring
@@ -47,7 +47,7 @@
 
 #endif
 
-#undef _GNU_SOURCE
+#undef        _GNU_SOURCE
 #define _GNU_SOURCE
 
 #ifdef HAVE_CONFIG_H
 #if defined (STDC_HEADERS) || defined (_LIBC)
 #include <stdlib.h>
 #else
-char *malloc ();       /* __MEM_CHECKED__ */
-char *realloc ();      /* __MEM_CHECKED__ */
+char *malloc ();        /* __MEM_CHECKED__ */
+char *realloc ();        /* __MEM_CHECKED__ */
 #endif
 
 /* When used in Emacs's lib-src, we need to get bzero and bcopy somehow.
@@ -130,13 +130,13 @@ char *realloc (); /* __MEM_CHECKED__ */
 #if defined (HAVE_STRING_H) || defined (STDC_HEADERS) || defined (_LIBC)
 #include <string.h>
 #ifndef bcmp
-#define bcmp(s1, s2, n)        memcmp ((s1), (s2), (n))
+#define bcmp(s1, s2, n)        memcmp ((s1), (s2), (n))
 #endif
 #ifndef bcopy
-#define bcopy(s, d, n) memcpy ((d), (s), (n))
+#define bcopy(s, d, n)        memcpy ((d), (s), (n))
 #endif
 #ifndef bzero
-#define bzero(s, n)    memset ((s), 0, (n))
+#define bzero(s, n)        memset ((s), 0, (n))
 #endif
 #else
 #include <strings.h>
@@ -168,6 +168,59 @@ extern char *re_syntax_table;
 
 static char re_syntax_table[CHAR_SET_SIZE];
 
+enum { MUTT_ALNUM, MUTT_ALPHA, MUTT_BLANK, MUTT_CNTRL, MUTT_DIGIT, MUTT_GRAPH,
+       MUTT_LOWER, MUTT_PRINT, MUTT_PUNCT, MUTT_SPACE, MUTT_UPPER, MUTT_XDIGIT,
+       MUTT_INVALID
+     };
+
+static int ctype(const char *name)
+{
+  if (0==strcmp(name,"alnum"))
+    return MUTT_ALNUM;
+  if (0==strcmp(name,"alpha"))
+    return MUTT_ALPHA;
+  if (0==strcmp(name,"blank"))
+    return MUTT_BLANK;
+  if (0==strcmp(name,"cntrl"))
+    return MUTT_CNTRL;
+  if (0==strcmp(name,"digit"))
+    return MUTT_DIGIT;
+  if (0==strcmp(name,"graph"))
+    return MUTT_GRAPH;
+  if (0==strcmp(name,"lower"))
+    return MUTT_LOWER;
+  if (0==strcmp(name,"print"))
+    return MUTT_PRINT;
+  if (0==strcmp(name,"punct"))
+    return MUTT_PUNCT;
+  if (0==strcmp(name,"space"))
+    return MUTT_SPACE;
+  if (0==strcmp(name,"upper"))
+    return MUTT_UPPER;
+  if (0==strcmp(name,"xdigit"))
+    return MUTT_XDIGIT;
+  return MUTT_INVALID;
+}
+
+static int isctype(char c, int desc)
+{
+  switch (desc) {
+    case MUTT_ALNUM: return isalnum(c);
+    case MUTT_ALPHA: return isalpha(c);
+    case MUTT_BLANK: return isblank(c);
+    case MUTT_CNTRL: return iscntrl(c);
+    case MUTT_DIGIT: return isdigit(c);
+    case MUTT_GRAPH: return isgraph(c);
+    case MUTT_LOWER: return islower(c);
+    case MUTT_PRINT: return isprint(c);
+    case MUTT_PUNCT: return ispunct(c);
+    case MUTT_SPACE: return isspace(c);
+    case MUTT_UPPER: return isupper(c);
+    case MUTT_XDIGIT: return isxdigit(c);
+  }
+  return 0; /* false */
+}
+
 static void
 init_syntax_once ()
 {
@@ -304,9 +357,9 @@ char *alloca ();
 #define REGEX_ALLOCATE alloca
 
 /* Assumes a `char *destination' variable.  */
-#define REGEX_REALLOCATE(source, osize, nsize)                         \
-  (destination = (char *) alloca (nsize),                              \
-   bcopy (source, destination, osize),                                 \
+#define REGEX_REALLOCATE(source, osize, nsize)                                \
+  (destination = (char *) alloca (nsize),                                \
+   bcopy (source, destination, osize),                                        \
    destination)
 
 /* No need to do anything to free, after alloca.  */
@@ -318,11 +371,11 @@ char *alloca ();
 
 #if defined (REL_ALLOC) && defined (REGEX_MALLOC)
 
-#define REGEX_ALLOCATE_STACK(size)                             \
+#define REGEX_ALLOCATE_STACK(size)                                \
   r_alloc (&failure_stack_ptr, (size))
-#define REGEX_REALLOCATE_STACK(source, osize, nsize)           \
+#define REGEX_REALLOCATE_STACK(source, osize, nsize)                \
   r_re_alloc (&failure_stack_ptr, (nsize))
-#define REGEX_FREE_STACK(ptr)                                  \
+#define REGEX_FREE_STACK(ptr)                                        \
   r_alloc_free (&failure_stack_ptr)
 
 #else /* not using relocating allocator */
@@ -337,7 +390,7 @@ char *alloca ();
 
 #define REGEX_ALLOCATE_STACK alloca
 
-#define REGEX_REALLOCATE_STACK(source, osize, nsize)                   \
+#define REGEX_REALLOCATE_STACK(source, osize, nsize)                        \
    REGEX_REALLOCATE (source, osize, nsize)
 /* No need to explicitly free anything.  */
 #define REGEX_FREE_STACK(arg)
@@ -349,7 +402,7 @@ char *alloca ();
 /* True if `size1' is non-NULL and PTR is pointing anywhere inside
    `string1' or just past its end.  This works if PTR is NULL, which is
    a good thing.  */
-#define FIRST_STRING_P(ptr)                                    \
+#define FIRST_STRING_P(ptr)                                         \
   (size1 && string1 <= (ptr) && (ptr) <= string1 + size1)
 
 /* (Re)Allocate N items of type T using malloc, or fail.  */
@@ -442,7 +495,7 @@ typedef enum
         /* Followed by two byte relative address to which to jump.  */
   jump,
 
-       /* Same as jump, but marks the end of an alternative.  */
+        /* Same as jump, but marks the end of an alternative.  */
   jump_past_alt,
 
         /* Followed by two-byte relative address of place to resume at
@@ -473,8 +526,8 @@ typedef enum
            of jump when compiling an alternative.  */
   dummy_failure_jump,
 
-       /* Push a dummy failure point and continue.  Used at the end of
-          alternatives.  */
+        /* Push a dummy failure point and continue.  Used at the end of
+           alternatives.  */
   push_dummy_failure,
 
         /* Followed by two-byte relative address and two-byte number n.
@@ -490,25 +543,25 @@ typedef enum
            bytes of number.  */
   set_number_at,
 
-  wordchar,    /* Matches any word-constituent character.  */
-  notwordchar, /* Matches any char that is not a word-constituent.  */
+  wordchar,        /* Matches any word-constituent character.  */
+  notwordchar,        /* Matches any char that is not a word-constituent.  */
 
-  wordbeg,     /* Succeeds if at word beginning.  */
-  wordend,     /* Succeeds if at word end.  */
+  wordbeg,        /* Succeeds if at word beginning.  */
+  wordend,        /* Succeeds if at word end.  */
 
-  wordbound,   /* Succeeds if at a word boundary.  */
-  notwordbound /* Succeeds if not at a word boundary.  */
+  wordbound,        /* Succeeds if at a word boundary.  */
+  notwordbound        /* Succeeds if not at a word boundary.  */
 
 #ifdef emacs
-  ,before_dot, /* Succeeds if before point.  */
-  at_dot,      /* Succeeds if at point.  */
-  after_dot,   /* Succeeds if after point.  */
+  ,before_dot,        /* Succeeds if before point.  */
+  at_dot,        /* Succeeds if at point.  */
+  after_dot,        /* Succeeds if after point.  */
 
-       /* Matches any character whose syntax is specified.  Followed by
+        /* Matches any character whose syntax is specified.  Followed by
            a byte which contains a syntax code, e.g., Sword.  */
   syntaxspec,
 
-       /* Matches any character whose syntax is not that specified.  */
+        /* Matches any character whose syntax is not that specified.  */
   notsyntaxspec
 #endif /* emacs */
 } re_opcode_t;
@@ -517,29 +570,29 @@ typedef enum
 
 /* Store NUMBER in two contiguous bytes starting at DESTINATION.  */
 
-#define STORE_NUMBER(destination, number)                              \
-  do {                                                                 \
-    (destination)[0] = (number) & 0377;                                        \
-    (destination)[1] = (number) >> 8;                                  \
+#define STORE_NUMBER(destination, number)                                \
+  do {                                                                        \
+    (destination)[0] = (number) & 0377;                                        \
+    (destination)[1] = (number) >> 8;                                        \
   } while (0)
 
 /* Same as STORE_NUMBER, except increment DESTINATION to
    the byte after where the number is stored.  Therefore, DESTINATION
    must be an lvalue.  */
 
-#define STORE_NUMBER_AND_INCR(destination, number)                     \
-  do {                                                                 \
-    STORE_NUMBER (destination, number);                                        \
-    (destination) += 2;                                                        \
+#define STORE_NUMBER_AND_INCR(destination, number)                        \
+  do {                                                                        \
+    STORE_NUMBER (destination, number);                                        \
+    (destination) += 2;                                                        \
   } while (0)
 
 /* Put into DESTINATION a number stored in two contiguous bytes starting
    at SOURCE.  */
 
-#define EXTRACT_NUMBER(destination, source)                            \
-  do {                                                                 \
-    (destination) = *(source) & 0377;                                  \
-    (destination) += SIGN_EXTEND_CHAR (*((source) + 1)) << 8;          \
+#define EXTRACT_NUMBER(destination, source)                                \
+  do {                                                                        \
+    (destination) = *(source) & 0377;                                        \
+    (destination) += SIGN_EXTEND_CHAR (*((source) + 1)) << 8;                \
   } while (0)
 
 #ifdef DEBUG
@@ -564,15 +617,15 @@ extract_number (dest, source)
 /* Same as EXTRACT_NUMBER, except increment SOURCE to after the number.
    SOURCE must be an lvalue.  */
 
-#define EXTRACT_NUMBER_AND_INCR(destination, source)                   \
-  do {                                                                 \
-    EXTRACT_NUMBER (destination, source);                              \
-    (source) += 2;                                                     \
+#define EXTRACT_NUMBER_AND_INCR(destination, source)                        \
+  do {                                                                        \
+    EXTRACT_NUMBER (destination, source);                                \
+    (source) += 2;                                                         \
   } while (0)
 
 #ifdef DEBUG
 static void extract_number_and_incr _RE_ARGS ((int *destination,
-                                              unsigned char **source));
+                                               unsigned char **source));
 static void
 extract_number_and_incr (destination, source)
     int *destination;
@@ -611,9 +664,9 @@ static int debug = 0;
 #define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2)
 #define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3)
 #define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4)
-#define DEBUG_PRINT_COMPILED_PATTERN(p, s, e)                          \
+#define DEBUG_PRINT_COMPILED_PATTERN(p, s, e)                                 \
   if (debug) print_partial_compiled_pattern (s, e)
-#define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2)                 \
+#define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2)                        \
   if (debug) print_double_string (w, s1, sz1, s2, sz2)
 
 
@@ -629,15 +682,15 @@ print_fastmap (fastmap)
   while (i < (1 << BYTEWIDTH))
     {
       if (fastmap[i++])
-       {
-         was_a_range = 0;
+        {
+          was_a_range = 0;
           putchar (i - 1);
           while (i < (1 << BYTEWIDTH)  &&  fastmap[i])
             {
               was_a_range = 1;
               i++;
             }
-         if (was_a_range)
+          if (was_a_range)
             {
               printf ("-");
               putchar (i - 1);
@@ -673,211 +726,211 @@ print_partial_compiled_pattern (start, end)
       printf ("%d:\t", p - start);
 
       switch ((re_opcode_t) *p++)
-       {
+        {
         case no_op:
           printf ("/no_op");
           break;
 
-       case exactn:
-         mcnt = *p++;
+        case exactn:
+          mcnt = *p++;
           printf ("/exactn/%d", mcnt);
           do
-           {
+            {
               putchar ('/');
-             putchar (*p++);
+              putchar (*p++);
             }
           while (--mcnt);
           break;
 
-       case start_memory:
+        case start_memory:
           mcnt = *p++;
           printf ("/start_memory/%d/%d", mcnt, *p++);
           break;
 
-       case stop_memory:
+        case stop_memory:
           mcnt = *p++;
-         printf ("/stop_memory/%d/%d", mcnt, *p++);
+          printf ("/stop_memory/%d/%d", mcnt, *p++);
           break;
 
-       case duplicate:
-         printf ("/duplicate/%d", *p++);
-         break;
+        case duplicate:
+          printf ("/duplicate/%d", *p++);
+          break;
 
-       case anychar:
-         printf ("/anychar");
-         break;
+        case anychar:
+          printf ("/anychar");
+          break;
 
-       case charset:
+        case charset:
         case charset_not:
           {
             register int c, last = -100;
-           register int in_range = 0;
+            register int in_range = 0;
 
-           printf ("/charset [%s",
-                   (re_opcode_t) *(p - 1) == charset_not ? "^" : "");
+            printf ("/charset [%s",
+                    (re_opcode_t) *(p - 1) == charset_not ? "^" : "");
 
             assert (p + *p < pend);
 
             for (c = 0; c < 256; c++)
-             if (c / 8 < *p
-                 && (p[1 + (c/8)] & (1 << (c % 8))))
-               {
-                 /* Are we starting a range?  */
-                 if (last + 1 == c && ! in_range)
-                   {
-                     putchar ('-');
-                     in_range = 1;
-                   }
-                 /* Have we broken a range?  */
-                 else if (last + 1 != c && in_range)
+              if (c / 8 < *p
+                  && (p[1 + (c/8)] & (1 << (c % 8))))
+                {
+                  /* Are we starting a range?  */
+                  if (last + 1 == c && ! in_range)
+                    {
+                      putchar ('-');
+                      in_range = 1;
+                    }
+                  /* Have we broken a range?  */
+                  else if (last + 1 != c && in_range)
               {
-                     putchar (last);
-                     in_range = 0;
-                   }
+                      putchar (last);
+                      in_range = 0;
+                    }
 
-                 if (! in_range)
-                   putchar (c);
+                  if (! in_range)
+                    putchar (c);
 
-                 last = c;
+                  last = c;
               }
 
-           if (in_range)
-             putchar (last);
+            if (in_range)
+              putchar (last);
 
-           putchar (']');
+            putchar (']');
 
-           p += 1 + *p;
-         }
-         break;
+            p += 1 + *p;
+          }
+          break;
 
-       case begline:
-         printf ("/begline");
+        case begline:
+          printf ("/begline");
           break;
 
-       case endline:
+        case endline:
           printf ("/endline");
           break;
 
-       case on_failure_jump:
+        case on_failure_jump:
           extract_number_and_incr (&mcnt, &p);
-         printf ("/on_failure_jump to %d", p + mcnt - start);
+            printf ("/on_failure_jump to %d", p + mcnt - start);
           break;
 
-       case on_failure_keep_string_jump:
+        case on_failure_keep_string_jump:
           extract_number_and_incr (&mcnt, &p);
-         printf ("/on_failure_keep_string_jump to %d", p + mcnt - start);
+            printf ("/on_failure_keep_string_jump to %d", p + mcnt - start);
           break;
 
-       case dummy_failure_jump:
+        case dummy_failure_jump:
           extract_number_and_incr (&mcnt, &p);
-         printf ("/dummy_failure_jump to %d", p + mcnt - start);
+            printf ("/dummy_failure_jump to %d", p + mcnt - start);
           break;
 
-       case push_dummy_failure:
+        case push_dummy_failure:
           printf ("/push_dummy_failure");
           break;
 
         case maybe_pop_jump:
           extract_number_and_incr (&mcnt, &p);
-         printf ("/maybe_pop_jump to %d", p + mcnt - start);
-         break;
+            printf ("/maybe_pop_jump to %d", p + mcnt - start);
+          break;
 
         case pop_failure_jump:
-         extract_number_and_incr (&mcnt, &p);
-         printf ("/pop_failure_jump to %d", p + mcnt - start);
-         break;
+          extract_number_and_incr (&mcnt, &p);
+            printf ("/pop_failure_jump to %d", p + mcnt - start);
+          break;
 
         case jump_past_alt:
-         extract_number_and_incr (&mcnt, &p);
-         printf ("/jump_past_alt to %d", p + mcnt - start);
-         break;
+          extract_number_and_incr (&mcnt, &p);
+            printf ("/jump_past_alt to %d", p + mcnt - start);
+          break;
 
         case jump:
-         extract_number_and_incr (&mcnt, &p);
-         printf ("/jump to %d", p + mcnt - start);
-         break;
+          extract_number_and_incr (&mcnt, &p);
+            printf ("/jump to %d", p + mcnt - start);
+          break;
 
         case succeed_n:
           extract_number_and_incr (&mcnt, &p);
-         p1 = p + mcnt;
+          p1 = p + mcnt;
           extract_number_and_incr (&mcnt2, &p);
-         printf ("/succeed_n to %d, %d times", p1 - start, mcnt2);
+          printf ("/succeed_n to %d, %d times", p1 - start, mcnt2);
           break;
 
         case jump_n:
           extract_number_and_incr (&mcnt, &p);
-         p1 = p + mcnt;
+          p1 = p + mcnt;
           extract_number_and_incr (&mcnt2, &p);
-         printf ("/jump_n to %d, %d times", p1 - start, mcnt2);
+          printf ("/jump_n to %d, %d times", p1 - start, mcnt2);
           break;
 
         case set_number_at:
           extract_number_and_incr (&mcnt, &p);
-         p1 = p + mcnt;
+          p1 = p + mcnt;
           extract_number_and_incr (&mcnt2, &p);
-         printf ("/set_number_at location %d to %d", p1 - start, mcnt2);
+          printf ("/set_number_at location %d to %d", p1 - start, mcnt2);
           break;
 
         case wordbound:
-         printf ("/wordbound");
-         break;
+          printf ("/wordbound");
+          break;
 
-       case notwordbound:
-         printf ("/notwordbound");
+        case notwordbound:
+          printf ("/notwordbound");
           break;
 
-       case wordbeg:
-         printf ("/wordbeg");
-         break;
+        case wordbeg:
+          printf ("/wordbeg");
+          break;
 
-       case wordend:
-         printf ("/wordend");
+        case wordend:
+          printf ("/wordend");
 
 #ifdef emacs
-       case before_dot:
-         printf ("/before_dot");
+        case before_dot:
+          printf ("/before_dot");
           break;
 
-       case at_dot:
-         printf ("/at_dot");
+        case at_dot:
+          printf ("/at_dot");
           break;
 
-       case after_dot:
-         printf ("/after_dot");
+        case after_dot:
+          printf ("/after_dot");
           break;
 
-       case syntaxspec:
+        case syntaxspec:
           printf ("/syntaxspec");
-         mcnt = *p++;
-         printf ("/%d", mcnt);
+          mcnt = *p++;
+          printf ("/%d", mcnt);
           break;
 
-       case notsyntaxspec:
+        case notsyntaxspec:
           printf ("/notsyntaxspec");
-         mcnt = *p++;
-         printf ("/%d", mcnt);
-         break;
+          mcnt = *p++;
+          printf ("/%d", mcnt);
+          break;
 #endif /* emacs */
 
-       case wordchar:
-         printf ("/wordchar");
+        case wordchar:
+          printf ("/wordchar");
           break;
 
-       case notwordchar:
-         printf ("/notwordchar");
+        case notwordchar:
+          printf ("/notwordchar");
           break;
 
-       case begbuf:
-         printf ("/begbuf");
+        case begbuf:
+          printf ("/begbuf");
           break;
 
-       case endbuf:
-         printf ("/endbuf");
+        case endbuf:
+          printf ("/endbuf");
           break;
 
         default:
           printf ("?%d", *(p-1));
-       }
+        }
 
       putchar ('\n');
     }
@@ -894,7 +947,7 @@ print_compiled_pattern (bufp)
 
   print_partial_compiled_pattern (buffer, buffer + bufp->used);
   printf ("%ld bytes used/%ld bytes allocated.\n",
-         bufp->used, bufp->allocated);
+          bufp->used, bufp->allocated);
 
   if (bufp->fastmap_accurate && bufp->fastmap)
     {
@@ -1001,18 +1054,18 @@ re_set_syntax (syntax)
 
 static const char *re_error_msgid[] =
   {
-    gettext_noop ("Success"),  /* REG_NOERROR */
-    gettext_noop ("No match"), /* REG_NOMATCH */
+    gettext_noop ("Success"),        /* REG_NOERROR */
+    gettext_noop ("No match"),        /* REG_NOMATCH */
     gettext_noop ("Invalid regular expression"), /* REG_BADPAT */
     gettext_noop ("Invalid collation character"), /* REG_ECOLLATE */
     gettext_noop ("Invalid character class name"), /* REG_ECTYPE */
     gettext_noop ("Trailing backslash"), /* REG_EESCAPE */
     gettext_noop ("Invalid back reference"), /* REG_ESUBREG */
-    gettext_noop ("Unmatched [ or [^"),        /* REG_EBRACK */
+    gettext_noop ("Unmatched [ or [^"),        /* REG_EBRACK */
     gettext_noop ("Unmatched ( or \\("), /* REG_EPAREN */
     gettext_noop ("Unmatched \\{"), /* REG_EBRACE */
     gettext_noop ("Invalid content of \\{\\}"), /* REG_BADBR */
-    gettext_noop ("Invalid range end"),        /* REG_ERANGE */
+    gettext_noop ("Invalid range end"),        /* REG_ERANGE */
     gettext_noop ("Memory exhausted"), /* REG_ESPACE */
     gettext_noop ("Invalid preceding regular expression"), /* REG_BADRPT */
     gettext_noop ("Premature end of regular expression"), /* REG_EEND */
@@ -1097,7 +1150,7 @@ typedef struct
 {
   fail_stack_elt_t *stack;
   unsigned long int size;
-  unsigned long int avail;             /* Offset of next open position.  */
+  unsigned long int avail;                /* Offset of next open position.  */
 } fail_stack_type;
 
 #else /* not INT_IS_16BIT */
@@ -1122,7 +1175,7 @@ typedef struct
 {
   fail_stack_elt_t *stack;
   unsigned size;
-  unsigned avail;                      /* Offset of next open position.  */
+  unsigned avail;                        /* Offset of next open position.  */
 } fail_stack_type;
 
 #endif /* INT_IS_16BIT */
@@ -1136,23 +1189,23 @@ typedef struct
    Do `return -2' if the alloc fails.  */
 
 #ifdef MATCH_MAY_ALLOCATE
-#define INIT_FAIL_STACK()                                              \
-  do {                                                                 \
-    fail_stack.stack = (fail_stack_elt_t *)                            \
-      REGEX_ALLOCATE_STACK (INIT_FAILURE_ALLOC * sizeof (fail_stack_elt_t));   \
-                                                                       \
-    if (fail_stack.stack == NULL)                                      \
-      return -2;                                                       \
-                                                                       \
-    fail_stack.size = INIT_FAILURE_ALLOC;                              \
-    fail_stack.avail = 0;                                              \
+#define INIT_FAIL_STACK()                                                \
+  do {                                                                        \
+    fail_stack.stack = (fail_stack_elt_t *)                                \
+      REGEX_ALLOCATE_STACK (INIT_FAILURE_ALLOC * sizeof (fail_stack_elt_t));        \
+                                                                        \
+    if (fail_stack.stack == NULL)                                        \
+      return -2;                                                        \
+                                                                        \
+    fail_stack.size = INIT_FAILURE_ALLOC;                                \
+    fail_stack.avail = 0;                                                \
   } while (0)
 
 #define RESET_FAIL_STACK()  REGEX_FREE_STACK (fail_stack.stack)
 #else
-#define INIT_FAIL_STACK()                                              \
-  do {                                                                 \
-    fail_stack.avail = 0;                                              \
+#define INIT_FAIL_STACK()                                                \
+  do {                                                                        \
+    fail_stack.avail = 0;                                                \
   } while (0)
 
 #define RESET_FAIL_STACK()
@@ -1166,46 +1219,46 @@ typedef struct
 
    REGEX_REALLOCATE_STACK requires `destination' be declared.   */
 
-#define DOUBLE_FAIL_STACK(fail_stack)                                  \
-  ((fail_stack).size > (unsigned) (re_max_failures * MAX_FAILURE_ITEMS)        \
-   ? 0                                                                 \
-   : ((fail_stack).stack = (fail_stack_elt_t *)                                \
-        REGEX_REALLOCATE_STACK ((fail_stack).stack,                    \
-          (fail_stack).size * sizeof (fail_stack_elt_t),               \
-          ((fail_stack).size << 1) * sizeof (fail_stack_elt_t)),       \
-                                                                       \
-      (fail_stack).stack == NULL                                       \
-      ? 0                                                              \
-      : ((fail_stack).size <<= 1,                                      \
+#define DOUBLE_FAIL_STACK(fail_stack)                                        \
+  ((fail_stack).size > (unsigned) (re_max_failures * MAX_FAILURE_ITEMS)        \
+   ? 0                                                                        \
+   : ((fail_stack).stack = (fail_stack_elt_t *)                                \
+        REGEX_REALLOCATE_STACK ((fail_stack).stack,                         \
+          (fail_stack).size * sizeof (fail_stack_elt_t),                \
+          ((fail_stack).size << 1) * sizeof (fail_stack_elt_t)),        \
+                                                                        \
+      (fail_stack).stack == NULL                                        \
+      ? 0                                                                \
+      : ((fail_stack).size <<= 1,                                         \
          1)))
 
 
 /* Push pointer POINTER on FAIL_STACK.
    Return 1 if was able to do so and 0 if ran out of memory allocating
    space to do so.  */
-#define PUSH_PATTERN_OP(POINTER, FAIL_STACK)                           \
-  ((FAIL_STACK_FULL ()                                                 \
-    && !DOUBLE_FAIL_STACK (FAIL_STACK))                                        \
-   ? 0                                                                 \
-   : ((FAIL_STACK).stack[(FAIL_STACK).avail++].pointer = POINTER,      \
+#define PUSH_PATTERN_OP(POINTER, FAIL_STACK)                                \
+  ((FAIL_STACK_FULL ()                                                        \
+    && !DOUBLE_FAIL_STACK (FAIL_STACK))                                        \
+   ? 0                                                                        \
+   : ((FAIL_STACK).stack[(FAIL_STACK).avail++].pointer = POINTER,        \
       1))
 
 /* Push a pointer value onto the failure stack.
    Assumes the variable `fail_stack'.  Probably should only
    be called from within `PUSH_FAILURE_POINT'.  */
-#define PUSH_FAILURE_POINTER(item)                                     \
+#define PUSH_FAILURE_POINTER(item)                                        \
   fail_stack.stack[fail_stack.avail++].pointer = (unsigned char *) (item)
 
 /* This pushes an integer-valued item onto the failure stack.
    Assumes the variable `fail_stack'.  Probably should only
    be called from within `PUSH_FAILURE_POINT'.  */
-#define PUSH_FAILURE_INT(item)                                 \
+#define PUSH_FAILURE_INT(item)                                        \
   fail_stack.stack[fail_stack.avail++].integer = (item)
 
 /* Push a fail_stack_elt_t value onto the failure stack.
    Assumes the variable `fail_stack'.  Probably should only
    be called from within `PUSH_FAILURE_POINT'.  */
-#define PUSH_FAILURE_ELT(item)                                 \
+#define PUSH_FAILURE_ELT(item)                                        \
   fail_stack.stack[fail_stack.avail++] =  (item)
 
 /* These three POP... operations complement the three PUSH... operations.
@@ -1233,82 +1286,82 @@ typedef struct
 
    Does `return FAILURE_CODE' if runs out of memory.  */
 
-#define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code)  \
-  do {                                                                 \
-    char *destination;                                                 \
-    /* Must be int, so when we don't save any registers, the arithmetic        \
-       of 0 + -1 isn't done as unsigned.  */                           \
-    /* Can't be int, since there is not a shred of a guarantee that int        \
-       is wide enough to hold a value of something to which pointer can        \
-       be assigned */                                                  \
-    s_reg_t this_reg;                                                  \
-                                                                       \
-    DEBUG_STATEMENT (failure_id++);                                    \
-    DEBUG_STATEMENT (nfailure_points_pushed++);                                \
-    DEBUG_PRINT2 ("\nPUSH_FAILURE_POINT #%u:\n", failure_id);          \
+#define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code)        \
+  do {                                                                        \
+    char *destination;                                                        \
+    /* Must be int, so when we don't save any registers, the arithmetic        \
+       of 0 + -1 isn't done as unsigned.  */                                \
+    /* Can't be int, since there is not a shred of a guarantee that int        \
+       is wide enough to hold a value of something to which pointer can        \
+       be assigned */                                                        \
+    s_reg_t this_reg;                                                        \
+                                                                            \
+    DEBUG_STATEMENT (failure_id++);                                        \
+    DEBUG_STATEMENT (nfailure_points_pushed++);                                \
+    DEBUG_PRINT2 ("\nPUSH_FAILURE_POINT #%u:\n", failure_id);                \
     DEBUG_PRINT2 ("  Before push, next avail: %d\n", (fail_stack).avail);\
     DEBUG_PRINT2 ("                     size: %d\n", (fail_stack).size);\
-                                                                       \
-    DEBUG_PRINT2 ("  slots needed: %d\n", NUM_FAILURE_ITEMS);          \
-    DEBUG_PRINT2 ("     available: %d\n", REMAINING_AVAIL_SLOTS);      \
-                                                                       \
-    /* Ensure we have enough space allocated for what we will push.  */        \
-    while (REMAINING_AVAIL_SLOTS < NUM_FAILURE_ITEMS)                  \
-      {                                                                        \
-        if (!DOUBLE_FAIL_STACK (fail_stack))                           \
-          return failure_code;                                         \
-                                                                       \
-        DEBUG_PRINT2 ("\n  Doubled stack; size now: %d\n",             \
-                      (fail_stack).size);                              \
+                                                                        \
+    DEBUG_PRINT2 ("  slots needed: %d\n", NUM_FAILURE_ITEMS);                \
+    DEBUG_PRINT2 ("     available: %d\n", REMAINING_AVAIL_SLOTS);        \
+                                                                        \
+    /* Ensure we have enough space allocated for what we will push.  */        \
+    while (REMAINING_AVAIL_SLOTS < NUM_FAILURE_ITEMS)                        \
+      {                                                                        \
+        if (!DOUBLE_FAIL_STACK (fail_stack))                                \
+          return failure_code;                                                \
+                                                                        \
+        DEBUG_PRINT2 ("\n  Doubled stack; size now: %d\n",                \
+                       (fail_stack).size);                                \
         DEBUG_PRINT2 ("  slots available: %d\n", REMAINING_AVAIL_SLOTS);\
-      }                                                                        \
-                                                                       \
-    /* Push the info, starting with the registers.  */                 \
-    DEBUG_PRINT1 ("\n");                                               \
-                                                                       \
-    if (1)                                                             \
+      }                                                                        \
+                                                                        \
+    /* Push the info, starting with the registers.  */                        \
+    DEBUG_PRINT1 ("\n");                                                \
+                                                                        \
+    if (1)                                                                \
       for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; \
-          this_reg++)                                                  \
-       {                                                               \
-         DEBUG_PRINT2 ("  Pushing reg: %d\n", this_reg);               \
-         DEBUG_STATEMENT (num_regs_pushed++);                          \
-                                                                       \
-         DEBUG_PRINT2 ("    start: 0x%x\n", regstart[this_reg]);       \
-         PUSH_FAILURE_POINTER (regstart[this_reg]);                    \
-                                                                       \
-         DEBUG_PRINT2 ("    end: 0x%x\n", regend[this_reg]);           \
-         PUSH_FAILURE_POINTER (regend[this_reg]);                      \
-                                                                       \
-         DEBUG_PRINT2 ("    info: 0x%x\n      ", reg_info[this_reg]);  \
-         DEBUG_PRINT2 (" match_null=%d",                               \
-                       REG_MATCH_NULL_STRING_P (reg_info[this_reg]));  \
-         DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg]));  \
-         DEBUG_PRINT2 (" matched_something=%d",                        \
-                       MATCHED_SOMETHING (reg_info[this_reg]));        \
-         DEBUG_PRINT2 (" ever_matched=%d",                             \
-                       EVER_MATCHED_SOMETHING (reg_info[this_reg]));   \
-         DEBUG_PRINT1 ("\n");                                          \
-         PUSH_FAILURE_ELT (reg_info[this_reg].word);                   \
-       }                                                               \
-                                                                       \
+           this_reg++)                                                        \
+        {                                                                \
+          DEBUG_PRINT2 ("  Pushing reg: %d\n", this_reg);                \
+          DEBUG_STATEMENT (num_regs_pushed++);                                \
+                                                                        \
+          DEBUG_PRINT2 ("    start: 0x%x\n", regstart[this_reg]);        \
+          PUSH_FAILURE_POINTER (regstart[this_reg]);                        \
+                                                                        \
+          DEBUG_PRINT2 ("    end: 0x%x\n", regend[this_reg]);                \
+          PUSH_FAILURE_POINTER (regend[this_reg]);                        \
+                                                                        \
+          DEBUG_PRINT2 ("    info: 0x%x\n      ", reg_info[this_reg]);        \
+          DEBUG_PRINT2 (" match_null=%d",                                \
+                        REG_MATCH_NULL_STRING_P (reg_info[this_reg]));        \
+          DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg]));        \
+          DEBUG_PRINT2 (" matched_something=%d",                        \
+                        MATCHED_SOMETHING (reg_info[this_reg]));        \
+          DEBUG_PRINT2 (" ever_matched=%d",                                \
+                        EVER_MATCHED_SOMETHING (reg_info[this_reg]));        \
+          DEBUG_PRINT1 ("\n");                                                \
+          PUSH_FAILURE_ELT (reg_info[this_reg].word);                        \
+        }                                                                \
+                                                                        \
     DEBUG_PRINT2 ("  Pushing  low active reg: %d\n", lowest_active_reg);\
-    PUSH_FAILURE_INT (lowest_active_reg);                              \
-                                                                       \
+    PUSH_FAILURE_INT (lowest_active_reg);                                \
+                                                                        \
     DEBUG_PRINT2 ("  Pushing high active reg: %d\n", highest_active_reg);\
-    PUSH_FAILURE_INT (highest_active_reg);                             \
-                                                                       \
-    DEBUG_PRINT2 ("  Pushing pattern 0x%x:\n", pattern_place);         \
-    DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend);          \
-    PUSH_FAILURE_POINTER (pattern_place);                              \
-                                                                       \
-    DEBUG_PRINT2 ("  Pushing string 0x%x: `", string_place);           \
+    PUSH_FAILURE_INT (highest_active_reg);                                \
+                                                                        \
+    DEBUG_PRINT2 ("  Pushing pattern 0x%x:\n", pattern_place);                \
+    DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend);                \
+    PUSH_FAILURE_POINTER (pattern_place);                                \
+                                                                        \
+    DEBUG_PRINT2 ("  Pushing string 0x%x: `", string_place);                \
     DEBUG_PRINT_DOUBLE_STRING (string_place, string1, size1, string2,   \
-                                size2);                                \
-    DEBUG_PRINT1 ("'\n");                                              \
-    PUSH_FAILURE_POINTER (string_place);                               \
-                                                                       \
-    DEBUG_PRINT2 ("  Pushing failure id: %u\n", failure_id);           \
-    DEBUG_PUSH (failure_id);                                           \
+                                 size2);                                \
+    DEBUG_PRINT1 ("'\n");                                                \
+    PUSH_FAILURE_POINTER (string_place);                                \
+                                                                        \
+    DEBUG_PRINT2 ("  Pushing failure id: %u\n", failure_id);                \
+    DEBUG_PUSH (failure_id);                                                \
   } while (0)
 
 /* This is the number of items that are pushed and popped on the stack
@@ -1329,10 +1382,10 @@ typedef struct
 #define MAX_FAILURE_ITEMS (5 * NUM_REG_ITEMS + NUM_NONREG_ITEMS)
 
 /* We actually push this many items.  */
-#define NUM_FAILURE_ITEMS                              \
-  (((0                                                 \
-     ? 0 : highest_active_reg - lowest_active_reg + 1) \
-    * NUM_REG_ITEMS)                                   \
+#define NUM_FAILURE_ITEMS                                \
+  (((0                                                        \
+     ? 0 : highest_active_reg - lowest_active_reg + 1)        \
+    * NUM_REG_ITEMS)                                        \
    + NUM_NONREG_ITEMS)
 
 /* How many items can still be added to the stack without overflowing it.  */
@@ -1352,72 +1405,72 @@ typedef struct
    `pend', `string1', `size1', `string2', and `size2'.  */
 
 #define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\
-{                                                                      \
-  DEBUG_STATEMENT (fail_stack_elt_t failure_id;)                       \
-  s_reg_t this_reg;                                                    \
-  const unsigned char *string_temp;                                    \
-                                                                       \
-  assert (!FAIL_STACK_EMPTY ());                                       \
-                                                                       \
-  /* Remove failure points and point to how many regs pushed.  */      \
-  DEBUG_PRINT1 ("POP_FAILURE_POINT:\n");                               \
-  DEBUG_PRINT2 ("  Before pop, next avail: %d\n", fail_stack.avail);   \
-  DEBUG_PRINT2 ("                    size: %d\n", fail_stack.size);    \
-                                                                       \
-  assert (fail_stack.avail >= NUM_NONREG_ITEMS);                       \
-                                                                       \
-  DEBUG_POP (&failure_id);                                             \
-  DEBUG_PRINT2 ("  Popping failure id: %u\n", failure_id);             \
-                                                                       \
-  /* If the saved string location is NULL, it came from an             \
-     on_failure_keep_string_jump opcode, and we want to throw away the \
-     saved NULL, thus retaining our current position in the string.  */        \
-  string_temp = POP_FAILURE_POINTER ();                                        \
-  if (string_temp != NULL)                                             \
-    str = (const char *) string_temp;                                  \
-                                                                       \
-  DEBUG_PRINT2 ("  Popping string 0x%x: `", str);                      \
-  DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2);     \
-  DEBUG_PRINT1 ("'\n");                                                        \
-                                                                       \
-  pat = (unsigned char *) POP_FAILURE_POINTER ();                      \
-  DEBUG_PRINT2 ("  Popping pattern 0x%x:\n", pat);                     \
-  DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend);                      \
-                                                                       \
-  /* Restore register info.  */                                                \
-  high_reg = (active_reg_t) POP_FAILURE_INT ();                                \
-  DEBUG_PRINT2 ("  Popping high active reg: %d\n", high_reg);          \
-                                                                       \
-  low_reg = (active_reg_t) POP_FAILURE_INT ();                         \
-  DEBUG_PRINT2 ("  Popping  low active reg: %d\n", low_reg);           \
-                                                                       \
-  if (1)                                                               \
-    for (this_reg = high_reg; this_reg >= low_reg; this_reg--)         \
-      {                                                                        \
-       DEBUG_PRINT2 ("    Popping reg: %d\n", this_reg);               \
-                                                                       \
-       reg_info[this_reg].word = POP_FAILURE_ELT ();                   \
-       DEBUG_PRINT2 ("      info: 0x%x\n", reg_info[this_reg]);        \
-                                                                       \
-       regend[this_reg] = (const char *) POP_FAILURE_POINTER ();       \
-       DEBUG_PRINT2 ("      end: 0x%x\n", regend[this_reg]);           \
-                                                                       \
-       regstart[this_reg] = (const char *) POP_FAILURE_POINTER ();     \
-       DEBUG_PRINT2 ("      start: 0x%x\n", regstart[this_reg]);       \
-      }                                                                        \
-  else                                                                 \
-    {                                                                  \
+{                                                                        \
+  DEBUG_STATEMENT (fail_stack_elt_t failure_id;)                        \
+  s_reg_t this_reg;                                                        \
+  const unsigned char *string_temp;                                        \
+                                                                        \
+  assert (!FAIL_STACK_EMPTY ());                                        \
+                                                                        \
+  /* Remove failure points and point to how many regs pushed.  */        \
+  DEBUG_PRINT1 ("POP_FAILURE_POINT:\n");                                \
+  DEBUG_PRINT2 ("  Before pop, next avail: %d\n", fail_stack.avail);        \
+  DEBUG_PRINT2 ("                    size: %d\n", fail_stack.size);        \
+                                                                        \
+  assert (fail_stack.avail >= NUM_NONREG_ITEMS);                        \
+                                                                        \
+  DEBUG_POP (&failure_id);                                                \
+  DEBUG_PRINT2 ("  Popping failure id: %u\n", failure_id);                \
+                                                                        \
+  /* If the saved string location is NULL, it came from an                \
+     on_failure_keep_string_jump opcode, and we want to throw away the        \
+     saved NULL, thus retaining our current position in the string.  */        \
+  string_temp = POP_FAILURE_POINTER ();                                        \
+  if (string_temp != NULL)                                                \
+    str = (const char *) string_temp;                                        \
+                                                                        \
+  DEBUG_PRINT2 ("  Popping string 0x%x: `", str);                        \
+  DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2);        \
+  DEBUG_PRINT1 ("'\n");                                                        \
+                                                                        \
+  pat = (unsigned char *) POP_FAILURE_POINTER ();                        \
+  DEBUG_PRINT2 ("  Popping pattern 0x%x:\n", pat);                        \
+  DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend);                        \
+                                                                        \
+  /* Restore register info.  */                                                \
+  high_reg = (active_reg_t) POP_FAILURE_INT ();                                \
+  DEBUG_PRINT2 ("  Popping high active reg: %d\n", high_reg);                \
+                                                                        \
+  low_reg = (active_reg_t) POP_FAILURE_INT ();                                \
+  DEBUG_PRINT2 ("  Popping  low active reg: %d\n", low_reg);                \
+                                                                        \
+  if (1)                                                                \
+    for (this_reg = high_reg; this_reg >= low_reg; this_reg--)                \
+      {                                                                        \
+        DEBUG_PRINT2 ("    Popping reg: %d\n", this_reg);                \
+                                                                        \
+        reg_info[this_reg].word = POP_FAILURE_ELT ();                        \
+        DEBUG_PRINT2 ("      info: 0x%x\n", reg_info[this_reg]);        \
+                                                                        \
+        regend[this_reg] = (const char *) POP_FAILURE_POINTER ();        \
+        DEBUG_PRINT2 ("      end: 0x%x\n", regend[this_reg]);                \
+                                                                        \
+        regstart[this_reg] = (const char *) POP_FAILURE_POINTER ();        \
+        DEBUG_PRINT2 ("      start: 0x%x\n", regstart[this_reg]);        \
+      }                                                                        \
+  else                                                                        \
+    {                                                                        \
       for (this_reg = highest_active_reg; this_reg > high_reg; this_reg--) \
-       {                                                               \
-         reg_info[this_reg].word.integer = 0;                          \
-         regend[this_reg] = 0;                                         \
-         regstart[this_reg] = 0;                                       \
-       }                                                               \
-      highest_active_reg = high_reg;                                   \
-    }                                                                  \
-                                                                       \
-  set_regs_matched_done = 0;                                           \
-  DEBUG_STATEMENT (nfailure_points_popped++);                          \
+        {                                                                \
+          reg_info[this_reg].word.integer = 0;                                \
+          regend[this_reg] = 0;                                                \
+          regstart[this_reg] = 0;                                        \
+        }                                                                \
+      highest_active_reg = high_reg;                                        \
+    }                                                                        \
+                                                                        \
+  set_regs_matched_done = 0;                                                \
+  DEBUG_STATEMENT (nfailure_points_popped++);                                \
 } /* POP_FAILURE_POINT */
 
 
@@ -1460,21 +1513,21 @@ typedef union
 /* Call this when have matched a real character; it sets `matched' flags
    for the subexpressions which we are currently inside.  Also records
    that those subexprs have matched.  */
-#define SET_REGS_MATCHED()                                             \
-  do                                                                   \
-    {                                                                  \
-      if (!set_regs_matched_done)                                      \
-       {                                                               \
-         active_reg_t r;                                               \
-         set_regs_matched_done = 1;                                    \
-         for (r = lowest_active_reg; r <= highest_active_reg; r++)     \
-           {                                                           \
-             MATCHED_SOMETHING (reg_info[r])                           \
-               = EVER_MATCHED_SOMETHING (reg_info[r])                  \
-               = 1;                                                    \
-           }                                                           \
-       }                                                               \
-    }                                                                  \
+#define SET_REGS_MATCHED()                                                \
+  do                                                                        \
+    {                                                                        \
+      if (!set_regs_matched_done)                                        \
+        {                                                                \
+          active_reg_t r;                                                \
+          set_regs_matched_done = 1;                                        \
+          for (r = lowest_active_reg; r <= highest_active_reg; r++)        \
+            {                                                                \
+              MATCHED_SOMETHING (reg_info[r])                                \
+                = EVER_MATCHED_SOMETHING (reg_info[r])                        \
+                = 1;                                                        \
+            }                                                                \
+        }                                                                \
+    }                                                                        \
   while (0)
 
 /* Registers are set to a sentinel when they haven't yet matched.  */
@@ -1485,42 +1538,42 @@ static char reg_unset_dummy;
 /* Subroutine declarations and macros for regex_compile.  */
 
 static reg_errcode_t regex_compile _RE_ARGS ((const char *pattern, size_t size,
-                                             reg_syntax_t syntax,
-                                             struct re_pattern_buffer *bufp));
+                                              reg_syntax_t syntax,
+                                              struct re_pattern_buffer *bufp));
 static void store_op1 _RE_ARGS ((re_opcode_t op, unsigned char *loc, int arg));
 static void store_op2 _RE_ARGS ((re_opcode_t op, unsigned char *loc,
-                                int arg1, int arg2));
+                                 int arg1, int arg2));
 static void insert_op1 _RE_ARGS ((re_opcode_t op, unsigned char *loc,
-                                 int arg, unsigned char *end));
+                                  int arg, unsigned char *end));
 static void insert_op2 _RE_ARGS ((re_opcode_t op, unsigned char *loc,
-                                 int arg1, int arg2, unsigned char *end));
+                                  int arg1, int arg2, unsigned char *end));
 static boolean at_begline_loc_p _RE_ARGS ((const char *pattern, const char *p,
-                                          reg_syntax_t syntax));
+                                           reg_syntax_t syntax));
 static boolean at_endline_loc_p _RE_ARGS ((const char *p, const char *pend,
-                                          reg_syntax_t syntax));
+                                           reg_syntax_t syntax));
 static reg_errcode_t compile_range _RE_ARGS ((const char **p_ptr,
-                                             const char *pend,
-                                             char *translate,
-                                             reg_syntax_t syntax,
-                                             unsigned char *b));
+                                              const char *pend,
+                                              char *translate,
+                                              reg_syntax_t syntax,
+                                              unsigned char *b));
 
 /* Fetch the next character in the uncompiled pattern---translating it
    if necessary.  Also cast from a signed character in the constant
    string passed to us by the user to an unsigned char that we can use
    as an array index (in, e.g., `translate').  */
 #ifndef PATFETCH
-#define PATFETCH(c)                                                    \
-  do {if (p == pend) return REG_EEND;                                  \
-    c = (unsigned char) *p++;                                          \
-    if (translate) c = (unsigned char) translate[c];                   \
+#define PATFETCH(c)                                                        \
+  do {if (p == pend) return REG_EEND;                                        \
+    c = (unsigned char) *p++;                                                \
+    if (translate) c = (unsigned char) translate[c];                        \
   } while (0)
 #endif
 
 /* Fetch the next character in the uncompiled pattern, with no
    translation.  */
-#define PATFETCH_RAW(c)                                                        \
-  do {if (p == pend) return REG_EEND;                                  \
-    c = (unsigned char) *p++;                                          \
+#define PATFETCH_RAW(c)                                                        \
+  do {if (p == pend) return REG_EEND;                                        \
+    c = (unsigned char) *p++;                                                 \
   } while (0)
 
 /* Go backwards one character in the pattern.  */
@@ -1543,34 +1596,34 @@ static reg_errcode_t compile_range _RE_ARGS ((const char **p_ptr,
 #define INIT_BUF_SIZE  32
 
 /* Make sure we have at least N more bytes of space in buffer.  */
-#define GET_BUFFER_SPACE(n)                                            \
-    while ((unsigned long) (b - bufp->buffer + (n)) > bufp->allocated) \
+#define GET_BUFFER_SPACE(n)                                                \
+    while ((unsigned long) (b - bufp->buffer + (n)) > bufp->allocated)        \
       EXTEND_BUFFER ()
 
 /* Make sure we have one more byte of buffer space and then add C to it.  */
-#define BUF_PUSH(c)                                                    \
-  do {                                                                 \
-    GET_BUFFER_SPACE (1);                                              \
-    *b++ = (unsigned char) (c);                                                \
+#define BUF_PUSH(c)                                                        \
+  do {                                                                        \
+    GET_BUFFER_SPACE (1);                                                \
+    *b++ = (unsigned char) (c);                                                \
   } while (0)
 
 
 /* Ensure we have two more bytes of buffer space and then append C1 and C2.  */
-#define BUF_PUSH_2(c1, c2)                                             \
-  do {                                                                 \
-    GET_BUFFER_SPACE (2);                                              \
-    *b++ = (unsigned char) (c1);                                       \
-    *b++ = (unsigned char) (c2);                                       \
+#define BUF_PUSH_2(c1, c2)                                                \
+  do {                                                                        \
+    GET_BUFFER_SPACE (2);                                                \
+    *b++ = (unsigned char) (c1);                                        \
+    *b++ = (unsigned char) (c2);                                        \
   } while (0)
 
 
 /* As with BUF_PUSH_2, except for three bytes.  */
-#define BUF_PUSH_3(c1, c2, c3)                                         \
-  do {                                                                 \
-    GET_BUFFER_SPACE (3);                                              \
-    *b++ = (unsigned char) (c1);                                       \
-    *b++ = (unsigned char) (c2);                                       \
-    *b++ = (unsigned char) (c3);                                       \
+#define BUF_PUSH_3(c1, c2, c3)                                                \
+  do {                                                                        \
+    GET_BUFFER_SPACE (3);                                                \
+    *b++ = (unsigned char) (c1);                                        \
+    *b++ = (unsigned char) (c2);                                        \
+    *b++ = (unsigned char) (c3);                                        \
   } while (0)
 
 
@@ -1615,29 +1668,29 @@ static reg_errcode_t compile_range _RE_ARGS ((const char **p_ptr,
    reset the pointers that pointed into the old block to point to the
    correct places in the new one.  If extending the buffer results in it
    being larger than MAX_BUF_SIZE, then flag memory exhausted.  */
-#define EXTEND_BUFFER()                                                        \
-  do {                                                                         \
-    unsigned char *old_buffer = bufp->buffer;                          \
-    if (bufp->allocated == MAX_BUF_SIZE)                               \
-      return REG_ESIZE;                                                        \
-    bufp->allocated <<= 1;                                             \
-    if (bufp->allocated > MAX_BUF_SIZE)                                        \
-      bufp->allocated = MAX_BUF_SIZE;                                  \
+#define EXTEND_BUFFER()                                                        \
+  do {                                                                         \
+    unsigned char *old_buffer = bufp->buffer;                                \
+    if (bufp->allocated == MAX_BUF_SIZE)                                 \
+      return REG_ESIZE;                                                        \
+    bufp->allocated <<= 1;                                                \
+    if (bufp->allocated > MAX_BUF_SIZE)                                        \
+      bufp->allocated = MAX_BUF_SIZE;                                         \
     bufp->buffer = (unsigned char *) REALLOC (bufp->buffer, bufp->allocated);\
-    if (bufp->buffer == NULL)                                          \
-      return REG_ESPACE;                                               \
-    /* If the buffer moved, move all the pointers into it.  */         \
-    if (old_buffer != bufp->buffer)                                    \
-      {                                                                        \
-        b = (b - old_buffer) + bufp->buffer;                           \
-        begalt = (begalt - old_buffer) + bufp->buffer;                 \
-        if (fixup_alt_jump)                                            \
+    if (bufp->buffer == NULL)                                                \
+      return REG_ESPACE;                                                \
+    /* If the buffer moved, move all the pointers into it.  */                \
+    if (old_buffer != bufp->buffer)                                        \
+      {                                                                        \
+        b = (b - old_buffer) + bufp->buffer;                                \
+        begalt = (begalt - old_buffer) + bufp->buffer;                        \
+        if (fixup_alt_jump)                                                \
           fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer;\
-        if (laststart)                                                 \
-          laststart = (laststart - old_buffer) + bufp->buffer;         \
-        if (pending_exact)                                             \
-          pending_exact = (pending_exact - old_buffer) + bufp->buffer; \
-      }                                                                        \
+        if (laststart)                                                        \
+          laststart = (laststart - old_buffer) + bufp->buffer;                \
+        if (pending_exact)                                                \
+          pending_exact = (pending_exact - old_buffer) + bufp->buffer;        \
+      }                                                                        \
   } while (0)
 
 
@@ -1672,7 +1725,7 @@ typedef struct
 {
   compile_stack_elt_t *stack;
   unsigned size;
-  unsigned avail;                      /* Offset of next open position.  */
+  unsigned avail;                        /* Offset of next open position.  */
 } compile_stack_type;
 
 
@@ -1692,20 +1745,20 @@ typedef struct
 
 
 /* Get the next unsigned number in the uncompiled pattern.  */
-#define GET_UNSIGNED_NUMBER(num)                                       \
-  { if (p != pend)                                                     \
-     {                                                                 \
-       PATFETCH (c);                                                   \
-       while (ISDIGIT (c))                                             \
-         {                                                             \
-           if (num < 0)                                                        \
-              num = 0;                                                 \
-           num = num * 10 + c - '0';                                   \
-           if (p == pend)                                              \
-              break;                                                   \
-           PATFETCH (c);                                               \
-         }                                                             \
-       }                                                               \
+#define GET_UNSIGNED_NUMBER(num)                                         \
+  { if (p != pend)                                                        \
+     {                                                                        \
+       PATFETCH (c);                                                         \
+       while (ISDIGIT (c))                                                 \
+         {                                                                 \
+           if (num < 0)                                                        \
+              num = 0;                                                        \
+           num = num * 10 + c - '0';                                         \
+           if (p == pend)                                                 \
+              break;                                                         \
+           PATFETCH (c);                                                \
+         }                                                                 \
+       }                                                                 \
     }
 
 #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
@@ -1723,12 +1776,12 @@ typedef struct
 #else
 # define CHAR_CLASS_MAX_LENGTH  6 /* Namely, `xdigit'.  */
 
-# define IS_CHAR_CLASS(string)                                         \
-   (STREQ (string, "alpha") || STREQ (string, "upper")                 \
-    || STREQ (string, "lower") || STREQ (string, "digit")              \
-    || STREQ (string, "alnum") || STREQ (string, "xdigit")             \
-    || STREQ (string, "space") || STREQ (string, "print")              \
-    || STREQ (string, "punct") || STREQ (string, "graph")              \
+# define IS_CHAR_CLASS(string)                                                \
+   (STREQ (string, "alpha") || STREQ (string, "upper")                        \
+    || STREQ (string, "lower") || STREQ (string, "digit")                \
+    || STREQ (string, "alnum") || STREQ (string, "xdigit")                \
+    || STREQ (string, "space") || STREQ (string, "print")                \
+    || STREQ (string, "punct") || STREQ (string, "graph")                \
     || STREQ (string, "cntrl") || STREQ (string, "blank"))
 #endif
 \f
@@ -1764,14 +1817,14 @@ regex_grow_registers (num_regs)
 {
   if (num_regs > regs_allocated_size)
     {
-      RETALLOC_IF (regstart,    num_regs, const char *);
-      RETALLOC_IF (regend,      num_regs, const char *);
+      RETALLOC_IF (regstart,         num_regs, const char *);
+      RETALLOC_IF (regend,         num_regs, const char *);
       RETALLOC_IF (old_regstart, num_regs, const char *);
-      RETALLOC_IF (old_regend,  num_regs, const char *);
+      RETALLOC_IF (old_regend,         num_regs, const char *);
       RETALLOC_IF (best_regstart, num_regs, const char *);
-      RETALLOC_IF (best_regend,         num_regs, const char *);
-      RETALLOC_IF (reg_info,    num_regs, register_info_type);
-      RETALLOC_IF (reg_dummy,   num_regs, const char *);
+      RETALLOC_IF (best_regend,         num_regs, const char *);
+      RETALLOC_IF (reg_info,         num_regs, register_info_type);
+      RETALLOC_IF (reg_dummy,         num_regs, const char *);
       RETALLOC_IF (reg_info_dummy, num_regs, register_info_type);
 
       regs_allocated_size = num_regs;
@@ -1781,8 +1834,8 @@ regex_grow_registers (num_regs)
 #endif /* not MATCH_MAY_ALLOCATE */
 \f
 static boolean group_in_compile_stack _RE_ARGS ((compile_stack_type
-                                                compile_stack,
-                                                regnum_t regnum));
+                                                 compile_stack,
+                                                 regnum_t regnum));
 
 /* `regex_compile' compiles PATTERN (of length SIZE) according to SYNTAX.
    Returns one of error codes defined in `regex.h', or zero for success.
@@ -1803,8 +1856,8 @@ static boolean group_in_compile_stack _RE_ARGS ((compile_stack_type
    examined nor set.  */
 
 /* Return, freeing storage we allocated.  */
-#define FREE_STACK_RETURN(value)               \
-  return (free (compile_stack.stack), value)           /* __MEM_CHECKED__ */
+#define FREE_STACK_RETURN(value)                \
+  return (free (compile_stack.stack), value)                /* __MEM_CHECKED__ */
 
 static reg_errcode_t
 regex_compile (pattern, size, syntax, bufp)
@@ -1903,7 +1956,7 @@ regex_compile (pattern, size, syntax, bufp)
   if (bufp->allocated == 0)
     {
       if (bufp->buffer)
-       { /* If zero allocated, but buffer is non-null, try to realloc
+        { /* If zero allocated, but buffer is non-null, try to realloc
              enough space.  This loses if buffer's address is bogus, but
              that is the user's responsibility.  */
           RETALLOC (bufp->buffer, INIT_BUF_SIZE, unsigned char);
@@ -1956,7 +2009,7 @@ regex_compile (pattern, size, syntax, bufp)
            break;
 
 
-       case '+':
+        case '+':
         case '?':
           if ((syntax & RE_BK_PLUS_QM)
               || (syntax & RE_LIMITED_OPS))
@@ -2050,7 +2103,7 @@ regex_compile (pattern, size, syntax, bufp)
                    the `*'.  Do we have to do something analogous here
                    for null bytes, because of RE_DOT_NOT_NULL?  */
                 if (TRANSLATE (*(p - 2)) == TRANSLATE ('.')
-                   && zero_times_ok
+                    && zero_times_ok
                     && p < pend && TRANSLATE (*p) == TRANSLATE ('\n')
                     && !(syntax & RE_DOT_NEWLINE))
                   { /* We have .*\n.  */
@@ -2086,10 +2139,10 @@ regex_compile (pattern, size, syntax, bufp)
                 b += 3;
               }
             }
-         break;
+          break;
 
 
-       case '.':
+        case '.':
           laststart = b;
           BUF_PUSH (anychar);
           break;
@@ -2103,7 +2156,7 @@ regex_compile (pattern, size, syntax, bufp)
 
             /* Ensure that we have enough space to push a charset: the
                opcode, the length count, and the bitset; 34 bytes in all.  */
-           GET_BUFFER_SPACE (34);
+            GET_BUFFER_SPACE (34);
 
             laststart = b;
 
@@ -2173,7 +2226,7 @@ regex_compile (pattern, size, syntax, bufp)
                   { /* This handles ranges made up of characters only.  */
                     reg_errcode_t ret;
 
-                   /* Move past the `-'.  */
+                    /* Move past the `-'.  */
                     PATFETCH (c1);
 
                     ret = compile_range (&p, pend, translate, syntax, b);
@@ -2211,12 +2264,12 @@ regex_compile (pattern, size, syntax, bufp)
 #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
                         boolean is_lower = STREQ (str, "lower");
                         boolean is_upper = STREQ (str, "upper");
-                       wctype_t wt;
+                        int wt;
                         int ch;
 
-                       wt = wctype (str);
-                       if (wt == 0)
-                         FREE_STACK_RETURN (REG_ECTYPE);
+                        wt = ctype (str);
+                        if (wt == 0)
+                          FREE_STACK_RETURN (REG_ECTYPE);
 
                         /* Throw away the ] at the end of the character
                            class.  */
@@ -2225,14 +2278,14 @@ regex_compile (pattern, size, syntax, bufp)
                         if (p == pend) FREE_STACK_RETURN (REG_EBRACK);
 
                         for (ch = 0; ch < 1 << BYTEWIDTH; ++ch)
-                         {
-                           if (iswctype (btowc (ch), wt))
-                             SET_LIST_BIT (ch);
+                          {
+                            if (isctype (ch, wt))
+                              SET_LIST_BIT (ch);
 
-                           if (translate && (is_upper || is_lower)
-                               && (ISUPPER (ch) || ISLOWER (ch)))
-                             SET_LIST_BIT (ch);
-                         }
+                            if (translate && (is_upper || is_lower)
+                                && (ISUPPER (ch) || ISLOWER (ch)))
+                              SET_LIST_BIT (ch);
+                          }
 
                         had_char_class = true;
 #else
@@ -2251,7 +2304,7 @@ regex_compile (pattern, size, syntax, bufp)
                         boolean is_xdigit = STREQ (str, "xdigit");
 
                         if (!IS_CHAR_CLASS (str))
-                         FREE_STACK_RETURN (REG_ECTYPE);
+                          FREE_STACK_RETURN (REG_ECTYPE);
 
                         /* Throw away the ] at the end of the character
                            class.  */
@@ -2261,29 +2314,29 @@ regex_compile (pattern, size, syntax, bufp)
 
                         for (ch = 0; ch < 1 << BYTEWIDTH; ch++)
                           {
-                           /* This was split into 3 if's to
-                              avoid an arbitrary limit in some compiler.  */
+                            /* This was split into 3 if's to
+                               avoid an arbitrary limit in some compiler.  */
                             if (   (is_alnum  && ISALNUM (ch))
                                 || (is_alpha  && ISALPHA (ch))
                                 || (is_blank  && ISBLANK (ch))
                                 || (is_cntrl  && ISCNTRL (ch)))
-                             SET_LIST_BIT (ch);
-                           if (   (is_digit  && ISDIGIT (ch))
+                              SET_LIST_BIT (ch);
+                            if (   (is_digit  && ISDIGIT (ch))
                                 || (is_graph  && ISGRAPH (ch))
                                 || (is_lower  && ISLOWER (ch))
                                 || (is_print  && ISPRINT (ch)))
-                             SET_LIST_BIT (ch);
-                           if (   (is_punct  && ISPUNCT (ch))
+                              SET_LIST_BIT (ch);
+                            if (   (is_punct  && ISPUNCT (ch))
                                 || (is_space  && ISSPACE (ch))
                                 || (is_upper  && ISUPPER (ch))
                                 || (is_xdigit && ISXDIGIT (ch)))
-                             SET_LIST_BIT (ch);
-                           if (   translate && (is_upper || is_lower)
-                               && (ISUPPER (ch) || ISLOWER (ch)))
-                             SET_LIST_BIT (ch);
+                              SET_LIST_BIT (ch);
+                            if (   translate && (is_upper || is_lower)
+                                && (ISUPPER (ch) || ISLOWER (ch)))
+                              SET_LIST_BIT (ch);
                           }
                         had_char_class = true;
-#endif /* libc || wctype.h */
+#endif        /* libc || wctype.h */
                       }
                     else
                       {
@@ -2311,7 +2364,7 @@ regex_compile (pattern, size, syntax, bufp)
           break;
 
 
-       case '(':
+        case '(':
           if (syntax & RE_NO_BK_PARENS)
             goto handle_open;
           else
@@ -2332,7 +2385,7 @@ regex_compile (pattern, size, syntax, bufp)
             goto normal_char;
 
 
-       case '|':
+        case '|':
           if (syntax & RE_NO_BK_VBAR)
             goto handle_alt;
           else
@@ -2398,10 +2451,10 @@ regex_compile (pattern, size, syntax, bufp)
               fixup_alt_jump = 0;
               laststart = 0;
               begalt = b;
-             /* If we've reached MAX_REGNUM groups, then this open
-                won't actually generate any code, so we'll have to
-                clear pending_exact explicitly.  */
-             pending_exact = 0;
+              /* If we've reached MAX_REGNUM groups, then this open
+                 won't actually generate any code, so we'll have to
+                 clear pending_exact explicitly.  */
+              pending_exact = 0;
               break;
 
 
@@ -2451,10 +2504,10 @@ regex_compile (pattern, size, syntax, bufp)
                     : 0;
                 laststart = bufp->buffer + COMPILE_STACK_TOP.laststart_offset;
                 this_group_regnum = COMPILE_STACK_TOP.regnum;
-               /* If we've reached MAX_REGNUM groups, then this open
-                  won't actually generate any code, so we'll have to
-                  clear pending_exact explicitly.  */
-               pending_exact = 0;
+                /* If we've reached MAX_REGNUM groups, then this open
+                   won't actually generate any code, so we'll have to
+                   clear pending_exact explicitly.  */
+                pending_exact = 0;
 
                 /* We're at the end of the group, so now we know how many
                    groups were inside this one.  */
@@ -2471,7 +2524,7 @@ regex_compile (pattern, size, syntax, bufp)
               break;
 
 
-            case '|':                                  /* `\|'.  */
+            case '|':                                        /* `\|'.  */
               if (syntax & RE_LIMITED_OPS || syntax & RE_NO_BK_VBAR)
                 goto normal_backslash;
             handle_alt:
@@ -2707,54 +2760,54 @@ regex_compile (pattern, size, syntax, bufp)
 
 
             case 'w':
-             if (re_syntax_options & RE_NO_GNU_OPS)
-               goto normal_char;
+              if (re_syntax_options & RE_NO_GNU_OPS)
+                goto normal_char;
               laststart = b;
               BUF_PUSH (wordchar);
               break;
 
 
             case 'W':
-             if (re_syntax_options & RE_NO_GNU_OPS)
-               goto normal_char;
+              if (re_syntax_options & RE_NO_GNU_OPS)
+                goto normal_char;
               laststart = b;
               BUF_PUSH (notwordchar);
               break;
 
 
             case '<':
-             if (re_syntax_options & RE_NO_GNU_OPS)
-               goto normal_char;
+              if (re_syntax_options & RE_NO_GNU_OPS)
+                goto normal_char;
               BUF_PUSH (wordbeg);
               break;
 
             case '>':
-             if (re_syntax_options & RE_NO_GNU_OPS)
-               goto normal_char;
+              if (re_syntax_options & RE_NO_GNU_OPS)
+                goto normal_char;
               BUF_PUSH (wordend);
               break;
 
             case 'b':
-             if (re_syntax_options & RE_NO_GNU_OPS)
-               goto normal_char;
+              if (re_syntax_options & RE_NO_GNU_OPS)
+                goto normal_char;
               BUF_PUSH (wordbound);
               break;
 
             case 'B':
-             if (re_syntax_options & RE_NO_GNU_OPS)
-               goto normal_char;
+              if (re_syntax_options & RE_NO_GNU_OPS)
+                goto normal_char;
               BUF_PUSH (notwordbound);
               break;
 
             case '`':
-             if (re_syntax_options & RE_NO_GNU_OPS)
-               goto normal_char;
+              if (re_syntax_options & RE_NO_GNU_OPS)
+                goto normal_char;
               BUF_PUSH (begbuf);
               break;
 
             case '\'':
-             if (re_syntax_options & RE_NO_GNU_OPS)
-               goto normal_char;
+              if (re_syntax_options & RE_NO_GNU_OPS)
+                goto normal_char;
               BUF_PUSH (endbuf);
               break;
 
@@ -2795,39 +2848,39 @@ regex_compile (pattern, size, syntax, bufp)
           break;
 
 
-       default:
+        default:
         /* Expects the character in `c'.  */
-       normal_char:
-             /* If no exactn currently being built.  */
+        normal_char:
+              /* If no exactn currently being built.  */
           if (!pending_exact
 
               /* If last exactn not at current position.  */
               || pending_exact + *pending_exact + 1 != b
 
               /* We have only one byte following the exactn for the count.  */
-             || *pending_exact == (1 << BYTEWIDTH) - 1
+              || *pending_exact == (1 << BYTEWIDTH) - 1
 
               /* If followed by a repetition operator.  */
               || *p == '*' || *p == '^'
-             || ((syntax & RE_BK_PLUS_QM)
-                 ? *p == '\\' && (p[1] == '+' || p[1] == '?')
-                 : (*p == '+' || *p == '?'))
-             || ((syntax & RE_INTERVALS)
+              || ((syntax & RE_BK_PLUS_QM)
+                  ? *p == '\\' && (p[1] == '+' || p[1] == '?')
+                  : (*p == '+' || *p == '?'))
+              || ((syntax & RE_INTERVALS)
                   && ((syntax & RE_NO_BK_BRACES)
-                     ? *p == '{'
+                      ? *p == '{'
                       : (p[0] == '\\' && p[1] == '{'))))
-           {
-             /* Start building a new exactn.  */
+            {
+              /* Start building a new exactn.  */
 
               laststart = b;
 
-             BUF_PUSH_2 (exactn, 0);
-             pending_exact = b - 1;
+              BUF_PUSH_2 (exactn, 0);
+              pending_exact = b - 1;
             }
 
-         BUF_PUSH (c);
+          BUF_PUSH (c);
           (*pending_exact)++;
-         break;
+          break;
         } /* switch (c) */
     } /* while p != pend */
 
@@ -2845,7 +2898,7 @@ regex_compile (pattern, size, syntax, bufp)
   if (syntax & RE_NO_POSIX_BACKTRACKING)
     BUF_PUSH (succeed);
 
-  free (compile_stack.stack);  /* __MEM_CHECKED__ */
+  free (compile_stack.stack);        /* __MEM_CHECKED__ */
 
   /* We have succeeded; set the length of the buffer.  */
   bufp->used = b - bufp->buffer;
@@ -2870,28 +2923,28 @@ regex_compile (pattern, size, syntax, bufp)
        is 2 * re_max_failures failure points.  */
     if (fail_stack.size < (2 * re_max_failures * MAX_FAILURE_ITEMS))
       {
-       fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS);
+        fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS);
 
 #ifdef emacs
-       if (! fail_stack.stack)
-         fail_stack.stack
-           = (fail_stack_elt_t *) xmalloc (fail_stack.size
-                                           * sizeof (fail_stack_elt_t));
-       else
-         fail_stack.stack
-           = (fail_stack_elt_t *) xrealloc (fail_stack.stack,
-                                            (fail_stack.size
-                                             * sizeof (fail_stack_elt_t)));
+        if (! fail_stack.stack)
+          fail_stack.stack
+            = (fail_stack_elt_t *) xmalloc (fail_stack.size
+                                            * sizeof (fail_stack_elt_t));
+        else
+          fail_stack.stack
+            = (fail_stack_elt_t *) xrealloc (fail_stack.stack,
+                                             (fail_stack.size
+                                              * sizeof (fail_stack_elt_t)));
 #else /* not emacs */
-       if (! fail_stack.stack)
-         fail_stack.stack
-           = (fail_stack_elt_t *) malloc (fail_stack.size      /* __MEM_CHECKED__ */
-                                          * sizeof (fail_stack_elt_t));
-       else
-         fail_stack.stack
-           = (fail_stack_elt_t *) realloc (fail_stack.stack,   /* __MEM_CHECKED__ */
-                                           (fail_stack.size
-                                            * sizeof (fail_stack_elt_t)));
+        if (! fail_stack.stack)
+          fail_stack.stack
+            = (fail_stack_elt_t *) malloc (fail_stack.size        /* __MEM_CHECKED__ */
+                                           * sizeof (fail_stack_elt_t));
+        else
+          fail_stack.stack
+            = (fail_stack_elt_t *) realloc (fail_stack.stack,        /* __MEM_CHECKED__ */
+                                            (fail_stack.size
+                                             * sizeof (fail_stack_elt_t)));
 #endif /* not emacs */
       }
 
@@ -3140,130 +3193,130 @@ re_compile_fastmap (bufp)
 
   INIT_FAIL_STACK ();
   bzero (fastmap, 1 << BYTEWIDTH);  /* Assume nothing's valid.  */
-  bufp->fastmap_accurate = 1;      /* It will be when we're done.  */
+  bufp->fastmap_accurate = 1;            /* It will be when we're done.  */
   bufp->can_be_null = 0;
 
   while (1)
     {
       if (p == pend || *p == succeed)
-       {
-         /* We have reached the (effective) end of pattern.  */
-         if (!FAIL_STACK_EMPTY ())
-           {
-             bufp->can_be_null |= path_can_be_null;
+        {
+          /* We have reached the (effective) end of pattern.  */
+          if (!FAIL_STACK_EMPTY ())
+            {
+              bufp->can_be_null |= path_can_be_null;
 
-             /* Reset for next path.  */
-             path_can_be_null = true;
+              /* Reset for next path.  */
+              path_can_be_null = true;
 
-             p = fail_stack.stack[--fail_stack.avail].pointer;
+              p = fail_stack.stack[--fail_stack.avail].pointer;
 
-             continue;
-           }
-         else
-           break;
-       }
+              continue;
+            }
+          else
+            break;
+        }
 
       /* We should never be about to go beyond the end of the pattern.  */
       assert (p < pend);
 
       switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++))
-       {
+        {
 
         /* I guess the idea here is to simply not bother with a fastmap
            if a backreference is used, since it's too hard to figure out
            the fastmap for the corresponding group.  Setting
            `can_be_null' stops `re_search_2' from using the fastmap, so
            that is all we do.  */
-       case duplicate:
-         bufp->can_be_null = 1;
+        case duplicate:
+          bufp->can_be_null = 1;
           goto done;
 
 
       /* Following are the cases which match a character.  These end
          with `break'.  */
 
-       case exactn:
+        case exactn:
           fastmap[p[1]] = 1;
-         break;
+          break;
 
 
         case charset:
           for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
-           if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))
+            if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))
               fastmap[j] = 1;
-         break;
+          break;
 
 
-       case charset_not:
-         /* Chars beyond end of map must be allowed.  */
-         for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++)
+        case charset_not:
+          /* Chars beyond end of map must be allowed.  */
+          for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++)
             fastmap[j] = 1;
 
-         for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
-           if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))))
+          for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
+            if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))))
               fastmap[j] = 1;
           break;
 
 
-       case wordchar:
-         for (j = 0; j < (1 << BYTEWIDTH); j++)
-           if (SYNTAX (j) == Sword)
-             fastmap[j] = 1;
-         break;
+        case wordchar:
+          for (j = 0; j < (1 << BYTEWIDTH); j++)
+            if (SYNTAX (j) == Sword)
+              fastmap[j] = 1;
+          break;
 
 
-       case notwordchar:
-         for (j = 0; j < (1 << BYTEWIDTH); j++)
-           if (SYNTAX (j) != Sword)
-             fastmap[j] = 1;
-         break;
+        case notwordchar:
+          for (j = 0; j < (1 << BYTEWIDTH); j++)
+            if (SYNTAX (j) != Sword)
+              fastmap[j] = 1;
+          break;
 
 
         case anychar:
-         {
-           int fastmap_newline = fastmap['\n'];
+          {
+            int fastmap_newline = fastmap['\n'];
 
-           /* `.' matches anything ...  */
-           for (j = 0; j < (1 << BYTEWIDTH); j++)
-             fastmap[j] = 1;
+            /* `.' matches anything ...  */
+            for (j = 0; j < (1 << BYTEWIDTH); j++)
+              fastmap[j] = 1;
 
-           /* ... except perhaps newline.  */
-           if (!(bufp->syntax & RE_DOT_NEWLINE))
-             fastmap['\n'] = fastmap_newline;
+            /* ... except perhaps newline.  */
+            if (!(bufp->syntax & RE_DOT_NEWLINE))
+              fastmap['\n'] = fastmap_newline;
 
-           /* Return if we have already set `can_be_null'; if we have,
-              then the fastmap is irrelevant.  Something's wrong here.  */
-           else if (bufp->can_be_null)
-             goto done;
+            /* Return if we have already set `can_be_null'; if we have,
+               then the fastmap is irrelevant.  Something's wrong here.  */
+            else if (bufp->can_be_null)
+              goto done;
 
-           /* Otherwise, have to check alternative paths.  */
-           break;
-         }
+            /* Otherwise, have to check alternative paths.  */
+            break;
+          }
 
 #ifdef emacs
         case syntaxspec:
-         k = *p++;
-         for (j = 0; j < (1 << BYTEWIDTH); j++)
-           if (SYNTAX (j) == (enum syntaxcode) k)
-             fastmap[j] = 1;
-         break;
+          k = *p++;
+          for (j = 0; j < (1 << BYTEWIDTH); j++)
+            if (SYNTAX (j) == (enum syntaxcode) k)
+              fastmap[j] = 1;
+          break;
 
 
-       case notsyntaxspec:
-         k = *p++;
-         for (j = 0; j < (1 << BYTEWIDTH); j++)
-           if (SYNTAX (j) != (enum syntaxcode) k)
-             fastmap[j] = 1;
-         break;
+        case notsyntaxspec:
+          k = *p++;
+          for (j = 0; j < (1 << BYTEWIDTH); j++)
+            if (SYNTAX (j) != (enum syntaxcode) k)
+              fastmap[j] = 1;
+          break;
 
 
       /* All cases after this match the empty string.  These end with
          `continue'.  */
 
 
-       case before_dot:
-       case at_dot:
-       case after_dot:
+        case before_dot:
+        case at_dot:
+        case after_dot:
           continue;
 #endif /* emacs */
 
@@ -3271,26 +3324,26 @@ re_compile_fastmap (bufp)
         case no_op:
         case begline:
         case endline:
-       case begbuf:
-       case endbuf:
-       case wordbound:
-       case notwordbound:
-       case wordbeg:
-       case wordend:
+        case begbuf:
+        case endbuf:
+        case wordbound:
+        case notwordbound:
+        case wordbeg:
+        case wordend:
         case push_dummy_failure:
           continue;
 
 
-       case jump_n:
+        case jump_n:
         case pop_failure_jump:
-       case maybe_pop_jump:
-       case jump:
+        case maybe_pop_jump:
+        case jump:
         case jump_past_alt:
-       case dummy_failure_jump:
+        case dummy_failure_jump:
           EXTRACT_NUMBER_AND_INCR (j, p);
-         p += j;
-         if (j > 0)
-           continue;
+          p += j;
+          if (j > 0)
+            continue;
 
           /* Jump backward implies we just went through the body of a
              loop and matched nothing.  Opcode jumped to should be
@@ -3298,8 +3351,8 @@ re_compile_fastmap (bufp)
              ordinary jump.  For a * loop, it has pushed its failure
              point already; if so, discard that as redundant.  */
           if ((re_opcode_t) *p != on_failure_jump
-             && (re_opcode_t) *p != succeed_n)
-           continue;
+              && (re_opcode_t) *p != succeed_n)
+            continue;
 
           p++;
           EXTRACT_NUMBER_AND_INCR (j, p);
@@ -3307,7 +3360,7 @@ re_compile_fastmap (bufp)
 
           /* If what's on the stack is where we are now, pop it.  */
           if (!FAIL_STACK_EMPTY ()
-             && fail_stack.stack[fail_stack.avail - 1].pointer == p)
+              && fail_stack.stack[fail_stack.avail - 1].pointer == p)
             fail_stack.avail--;
 
           continue;
@@ -3315,7 +3368,7 @@ re_compile_fastmap (bufp)
 
         case on_failure_jump:
         case on_failure_keep_string_jump:
-       handle_on_failure_jump:
+        handle_on_failure_jump:
           EXTRACT_NUMBER_AND_INCR (j, p);
 
           /* For some patterns, e.g., `(a?)?', `p+j' here points to the
@@ -3328,50 +3381,50 @@ re_compile_fastmap (bufp)
           if (p + j < pend)
             {
               if (!PUSH_PATTERN_OP (p + j, fail_stack))
-               {
-                 RESET_FAIL_STACK ();
-                 return -2;
-               }
+                {
+                  RESET_FAIL_STACK ();
+                  return -2;
+                }
             }
           else
             bufp->can_be_null = 1;
 
           if (succeed_n_p)
             {
-              EXTRACT_NUMBER_AND_INCR (k, p);  /* Skip the n.  */
+              EXTRACT_NUMBER_AND_INCR (k, p);        /* Skip the n.  */
               succeed_n_p = false;
-           }
+            }
 
           continue;
 
 
-       case succeed_n:
+        case succeed_n:
           /* Get to the number of times to succeed.  */
           p += 2;
 
           /* Increment p past the n for when k != 0.  */
           EXTRACT_NUMBER_AND_INCR (k, p);
           if (k == 0)
-           {
+            {
               p -= 4;
-             succeed_n_p = true;  /* Spaghetti code alert.  */
+                succeed_n_p = true;  /* Spaghetti code alert.  */
               goto handle_on_failure_jump;
             }
           continue;
 
 
-       case set_number_at:
+        case set_number_at:
           p += 4;
           continue;
 
 
-       case start_memory:
+        case start_memory:
         case stop_memory:
-         p += 2;
-         continue;
+          p += 2;
+          continue;
 
 
-       default:
+        default:
           abort (); /* We have listed all the cases.  */
         } /* switch *p++ */
 
@@ -3442,7 +3495,7 @@ re_search (bufp, string, size, startpos, range, regs)
      struct re_registers *regs;
 {
   return re_search_2 (bufp, NULL, 0, string, size, startpos, range,
-                     regs, size);
+                      regs, size);
 }
 
 
@@ -3500,9 +3553,9 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
   if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == begbuf && range > 0)
     {
       if (startpos > 0)
-       return -1;
+        return -1;
       else
-       range = 1;
+        range = 1;
     }
 
 #ifdef emacs
@@ -3512,7 +3565,7 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
     {
       range = PT - startpos;
       if (range <= 0)
-       return -1;
+        return -1;
     }
 #endif /* emacs */
 
@@ -3529,49 +3582,49 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
          null string, however, we don't need to skip characters; we want
          the first null string.  */
       if (fastmap && startpos < total_size && !bufp->can_be_null)
-       {
-         if (range > 0)        /* Searching forwards.  */
-           {
-             register const char *d;
-             register int lim = 0;
-             int irange = range;
+        {
+          if (range > 0)        /* Searching forwards.  */
+            {
+              register const char *d;
+              register int lim = 0;
+              int irange = range;
 
               if (startpos < size1 && startpos + range >= size1)
                 lim = range - (size1 - startpos);
 
-             d = (startpos >= size1 ? string2 - size1 : string1) + startpos;
+              d = (startpos >= size1 ? string2 - size1 : string1) + startpos;
 
               /* Written out as an if-else to avoid testing `translate'
                  inside the loop.  */
-             if (translate)
+              if (translate)
                 while (range > lim
                        && !fastmap[(unsigned char)
-                                  translate[(unsigned char) *d++]])
+                                   translate[(unsigned char) *d++]])
                   range--;
-             else
+              else
                 while (range > lim && !fastmap[(unsigned char) *d++])
                   range--;
 
-             startpos += irange - range;
-           }
-         else                          /* Searching backwards.  */
-           {
-             register char c = (size1 == 0 || startpos >= size1
+              startpos += irange - range;
+            }
+          else                                /* Searching backwards.  */
+            {
+              register char c = (size1 == 0 || startpos >= size1
                                  ? string2[startpos - size1]
                                  : string1[startpos]);
 
-             if (!fastmap[(unsigned char) TRANSLATE (c)])
-               goto advance;
-           }
-       }
+              if (!fastmap[(unsigned char) TRANSLATE (c)])
+                goto advance;
+            }
+        }
 
       /* If can't match the null string, and that's all we have left, fail.  */
       if (range >= 0 && startpos == total_size && fastmap
           && !bufp->can_be_null)
-       return -1;
+        return -1;
 
       val = re_match_2_internal (bufp, string1, size1, string2, size2,
-                                startpos, regs, stop);
+                                 startpos, regs, stop);
 #ifndef REGEX_MALLOC
 #ifdef C_ALLOCA
       alloca (0);
@@ -3579,10 +3632,10 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
 #endif
 
       if (val >= 0)
-       return startpos;
+        return startpos;
 
       if (val == -2)
-       return -2;
+        return -2;
 
     advance:
       if (!range)
@@ -3603,9 +3656,9 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
 \f
 /* This converts PTR, a pointer into one of the search strings `string1'
    and `string2' into an offset from the beginning of that string.  */
-#define POINTER_TO_OFFSET(ptr)                 \
-  (FIRST_STRING_P (ptr)                                \
-   ? ((regoff_t) ((ptr) - string1))            \
+#define POINTER_TO_OFFSET(ptr)                        \
+  (FIRST_STRING_P (ptr)                                \
+   ? ((regoff_t) ((ptr) - string1))                \
    : ((regoff_t) ((ptr) - string2 + size1)))
 
 /* Macros for dealing with the split strings in re_match_2.  */
@@ -3614,15 +3667,15 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
 
 /* Call before fetching a character with *d.  This switches over to
    string2 if necessary.  */
-#define PREFETCH()                                                     \
-  while (d == dend)                                                    \
-    {                                                                  \
-      /* End of string2 => fail.  */                                   \
-      if (dend == end_match_2)                                                 \
-        goto fail;                                                     \
-      /* End of string1 => advance to string2.  */                     \
-      d = string2;                                                     \
-      dend = end_match_2;                                              \
+#define PREFETCH()                                                        \
+  while (d == dend)                                                            \
+    {                                                                        \
+      /* End of string2 => fail.  */                                        \
+      if (dend == end_match_2)                                                 \
+        goto fail;                                                        \
+      /* End of string1 => advance to string2.  */                         \
+      d = string2;                                                        \
+      dend = end_match_2;                                                \
     }
 
 
@@ -3636,35 +3689,35 @@ re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
    two special cases to check for: if past the end of string1, look at
    the first character in string2; and if before the beginning of
    string2, look at the last character in string1.  */
-#define WORDCHAR_P(d)                                                  \
-  (SYNTAX ((d) == end1 ? *string2                                      \
-           : (d) == string2 - 1 ? *(end1 - 1) : *(d))                  \
+#define WORDCHAR_P(d)                                                        \
+  (SYNTAX ((d) == end1 ? *string2                                        \
+           : (d) == string2 - 1 ? *(end1 - 1) : *(d))                        \
    == Sword)
 
 /* Disabled due to a compiler bug -- see comment at case wordbound */
 #if 0
 /* Test if the character before D and the one at D differ with respect
    to being word-constituent.  */
-#define AT_WORD_BOUNDARY(d)                                            \
-  (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)                            \
+#define AT_WORD_BOUNDARY(d)                                                \
+  (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)                                \
    || WORDCHAR_P (d - 1) != WORDCHAR_P (d))
 #endif
 
 /* Free everything we malloc.  */
 #ifdef MATCH_MAY_ALLOCATE
 #define FREE_VAR(var) if (var) REGEX_FREE (var); var = NULL
-#define FREE_VARIABLES()                                               \
-  do {                                                                 \
-    REGEX_FREE_STACK (fail_stack.stack);                               \
-    FREE_VAR (regstart);                                               \
-    FREE_VAR (regend);                                                 \
-    FREE_VAR (old_regstart);                                           \
-    FREE_VAR (old_regend);                                             \
-    FREE_VAR (best_regstart);                                          \
-    FREE_VAR (best_regend);                                            \
-    FREE_VAR (reg_info);                                               \
-    FREE_VAR (reg_dummy);                                              \
-    FREE_VAR (reg_info_dummy);                                         \
+#define FREE_VARIABLES()                                                \
+  do {                                                                        \
+    REGEX_FREE_STACK (fail_stack.stack);                                \
+    FREE_VAR (regstart);                                                \
+    FREE_VAR (regend);                                                        \
+    FREE_VAR (old_regstart);                                                \
+    FREE_VAR (old_regend);                                                \
+    FREE_VAR (best_regstart);                                                \
+    FREE_VAR (best_regend);                                                \
+    FREE_VAR (reg_info);                                                \
+    FREE_VAR (reg_dummy);                                                \
+    FREE_VAR (reg_info_dummy);                                                \
   } while (0)
 #else
 #define FREE_VARIABLES() ((void)0) /* Do nothing!  But inhibit gcc warning.  */
@@ -3693,7 +3746,7 @@ re_match (bufp, string, size, pos, regs)
      struct re_registers *regs;
 {
   int result = re_match_2_internal (bufp, NULL, 0, string, size,
-                                   pos, regs, size);
+                                    pos, regs, size);
 #ifndef REGEX_MALLOC
 #ifdef C_ALLOCA
   alloca (0);
@@ -3704,16 +3757,16 @@ re_match (bufp, string, size, pos, regs)
 #endif /* not emacs */
 
 static boolean group_match_null_string_p _RE_ARGS ((unsigned char **p,
-                                                   unsigned char *end,
-                                               register_info_type *reg_info));
+                                                    unsigned char *end,
+                                                register_info_type *reg_info));
 static boolean alt_match_null_string_p _RE_ARGS ((unsigned char *p,
-                                                 unsigned char *end,
-                                               register_info_type *reg_info));
+                                                  unsigned char *end,
+                                                register_info_type *reg_info));
 static boolean common_op_match_null_string_p _RE_ARGS ((unsigned char **p,
-                                                       unsigned char *end,
-                                               register_info_type *reg_info));
+                                                        unsigned char *end,
+                                                register_info_type *reg_info));
 static int bcmp_translate _RE_ARGS ((const char *s1, const char *s2,
-                                    int len, char *translate));
+                                     int len, char *translate));
 
 /* re_match_2 matches the compiled pattern in BUFP against the
    the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1
@@ -3738,7 +3791,7 @@ re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
      int stop;
 {
   int result = re_match_2_internal (bufp, string1, size1, string2, size2,
-                                   pos, regs, stop);
+                                    pos, regs, stop);
 #ifndef REGEX_MALLOC
 #ifdef C_ALLOCA
   alloca (0);
@@ -3997,26 +4050,26 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 #endif
 
       if (p == pend)
-       { /* End of pattern means we might have succeeded.  */
+        { /* End of pattern means we might have succeeded.  */
           DEBUG_PRINT1 ("end of pattern ... ");
 
-         /* If we haven't matched the entire string, and we want the
+          /* If we haven't matched the entire string, and we want the
              longest match, try backtracking.  */
           if (d != end_match_2)
-           {
-             /* 1 if this match ends in the same string (string1 or string2)
-                as the best previous match.  */
-             boolean same_str_p = (FIRST_STRING_P (match_end)
-                                   == MATCHING_IN_FIRST_STRING);
-             /* 1 if this match is the best seen so far.  */
-             boolean best_match_p;
-
-             /* AIX compiler got confused when this was combined
-                with the previous declaration.  */
-             if (same_str_p)
-               best_match_p = d > match_end;
-             else
-               best_match_p = !MATCHING_IN_FIRST_STRING;
+            {
+              /* 1 if this match ends in the same string (string1 or string2)
+                 as the best previous match.  */
+              boolean same_str_p = (FIRST_STRING_P (match_end)
+                                    == MATCHING_IN_FIRST_STRING);
+              /* 1 if this match is the best seen so far.  */
+              boolean best_match_p;
+
+              /* AIX compiler got confused when this was combined
+                 with the previous declaration.  */
+              if (same_str_p)
+                best_match_p = d > match_end;
+              else
+                best_match_p = !MATCHING_IN_FIRST_STRING;
 
               DEBUG_PRINT1 ("backtracking.\n");
 
@@ -4045,7 +4098,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                  best one. */
               else if (best_regs_set && !best_match_p)
                 {
-               restore_best_regs:
+                  restore_best_regs:
                   /* Restore best match.  It may happen that `dend ==
                      end_match_1' while the restored d is in string2.
                      For example, the pattern `x.*y.*z' against the
@@ -4055,22 +4108,22 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 
                   d = match_end;
                   dend = ((d >= string1 && d <= end1)
-                          ? end_match_1 : end_match_2);
+                           ? end_match_1 : end_match_2);
 
-                 for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
-                   {
-                     regstart[mcnt] = best_regstart[mcnt];
-                     regend[mcnt] = best_regend[mcnt];
-                   }
+                  for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++)
+                    {
+                      regstart[mcnt] = best_regstart[mcnt];
+                      regend[mcnt] = best_regend[mcnt];
+                    }
                 }
             } /* d != end_match_2 */
 
-       succeed_label:
+        succeed_label:
           DEBUG_PRINT1 ("Accepting match.\n");
 
           /* If caller wants register contents data back, do it.  */
           if (regs && !bufp->no_sub)
-           {
+            {
               /* Have the register data arrays been allocated?  */
               if (bufp->regs_allocated == REGS_UNALLOCATED)
                 { /* No.  So allocate them with malloc.  We need one
@@ -4080,10 +4133,10 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                   regs->start = TALLOC (regs->num_regs, regoff_t);
                   regs->end = TALLOC (regs->num_regs, regoff_t);
                   if (regs->start == NULL || regs->end == NULL)
-                   {
-                     FREE_VARIABLES ();
-                     return -2;
-                   }
+                    {
+                      FREE_VARIABLES ();
+                      return -2;
+                    }
                   bufp->regs_allocated = REGS_REALLOCATE;
                 }
               else if (bufp->regs_allocated == REGS_REALLOCATE)
@@ -4096,18 +4149,18 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                       RETALLOC (regs->start, regs->num_regs, regoff_t);
                       RETALLOC (regs->end, regs->num_regs, regoff_t);
                       if (regs->start == NULL || regs->end == NULL)
-                       {
-                         FREE_VARIABLES ();
-                         return -2;
-                       }
+                        {
+                          FREE_VARIABLES ();
+                          return -2;
+                        }
                     }
                 }
               else
-               {
-                 /* These braces fend off a "empty body in an else-statement"
-                    warning under GCC when assert expands to nothing.  */
-                 assert (bufp->regs_allocated == REGS_FIXED);
-               }
+                {
+                  /* These braces fend off a "empty body in an else-statement"
+                     warning under GCC when assert expands to nothing.  */
+                  assert (bufp->regs_allocated == REGS_FIXED);
+                }
 
               /* Convert the pointer data in `regstart' and `regend' to
                  indices.  Register zero has to be set differently,
@@ -4116,25 +4169,25 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                 {
                   regs->start[0] = pos;
                   regs->end[0] = (MATCHING_IN_FIRST_STRING
-                                 ? ((regoff_t) (d - string1))
-                                 : ((regoff_t) (d - string2 + size1)));
+                                  ? ((regoff_t) (d - string1))
+                                  : ((regoff_t) (d - string2 + size1)));
                 }
 
               /* Go through the first `min (num_regs, regs->num_regs)'
                  registers, since that is all we initialized.  */
-             for (mcnt = 1; (unsigned) mcnt < MIN (num_regs, regs->num_regs);
-                  mcnt++)
-               {
+              for (mcnt = 1; (unsigned) mcnt < MIN (num_regs, regs->num_regs);
+                   mcnt++)
+                {
                   if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt]))
                     regs->start[mcnt] = regs->end[mcnt] = -1;
                   else
                     {
-                     regs->start[mcnt]
-                       = (regoff_t) POINTER_TO_OFFSET (regstart[mcnt]);
+                      regs->start[mcnt]
+                        = (regoff_t) POINTER_TO_OFFSET (regstart[mcnt]);
                       regs->end[mcnt]
-                       = (regoff_t) POINTER_TO_OFFSET (regend[mcnt]);
+                        = (regoff_t) POINTER_TO_OFFSET (regend[mcnt]);
                     }
-               }
+                }
 
               /* If the regs structure we return has more elements than
                  were in the pattern, set the extra elements to -1.  If
@@ -4143,7 +4196,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                  -1 at the end.  */
               for (mcnt = num_regs; (unsigned) mcnt < regs->num_regs; mcnt++)
                 regs->start[mcnt] = regs->end[mcnt] = -1;
-           } /* regs && !bufp->no_sub */
+            } /* regs && !bufp->no_sub */
 
           DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n",
                         nfailure_points_pushed, nfailure_points_popped,
@@ -4151,8 +4204,8 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
           DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed);
 
           mcnt = d - pos - (MATCHING_IN_FIRST_STRING
-                           ? string1
-                           : string2 - size1);
+                            ? string1
+                            : string2 - size1);
 
           DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt);
 
@@ -4162,91 +4215,91 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 
       /* Otherwise match next pattern command.  */
       switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++))
-       {
+        {
         /* Ignore these.  Used to ignore the n of succeed_n's which
            currently have n == 0.  */
         case no_op:
           DEBUG_PRINT1 ("EXECUTING no_op.\n");
           break;
 
-       case succeed:
+        case succeed:
           DEBUG_PRINT1 ("EXECUTING succeed.\n");
-         goto succeed_label;
+          goto succeed_label;
 
         /* Match the next n pattern characters exactly.  The following
            byte in the pattern defines n, and the n bytes after that
            are the characters to match.  */
-       case exactn:
-         mcnt = *p++;
+        case exactn:
+          mcnt = *p++;
           DEBUG_PRINT2 ("EXECUTING exactn %d.\n", mcnt);
 
           /* This is written out as an if-else so we don't waste time
              testing `translate' inside the loop.  */
           if (translate)
-           {
-             do
-               {
-                 PREFETCH ();
-                 if ((unsigned char) translate[(unsigned char) *d++]
-                     != (unsigned char) *p++)
+            {
+              do
+                {
+                  PREFETCH ();
+                  if ((unsigned char) translate[(unsigned char) *d++]
+                      != (unsigned char) *p++)
                     goto fail;
-               }
-             while (--mcnt);
-           }
-         else
-           {
-             do
-               {
-                 PREFETCH ();
-                 if (*d++ != (char) *p++) goto fail;
-               }
-             while (--mcnt);
-           }
-         SET_REGS_MATCHED ();
+                }
+              while (--mcnt);
+            }
+          else
+            {
+              do
+                {
+                  PREFETCH ();
+                  if (*d++ != (char) *p++) goto fail;
+                }
+              while (--mcnt);
+            }
+          SET_REGS_MATCHED ();
           break;
 
 
         /* Match any character except possibly a newline or a null.  */
-       case anychar:
+        case anychar:
           DEBUG_PRINT1 ("EXECUTING anychar.\n");
 
           PREFETCH ();
 
           if ((!(bufp->syntax & RE_DOT_NEWLINE) && TRANSLATE (*d) == '\n')
               || (bufp->syntax & RE_DOT_NOT_NULL && TRANSLATE (*d) == '\000'))
-           goto fail;
+            goto fail;
 
           SET_REGS_MATCHED ();
           DEBUG_PRINT2 ("  Matched `%d'.\n", *d);
           d++;
-         break;
+          break;
 
 
-       case charset:
-       case charset_not:
-         {
-           register unsigned char c;
-           boolean not = (re_opcode_t) *(p - 1) == charset_not;
+        case charset:
+        case charset_not:
+          {
+            register unsigned char c;
+            boolean not = (re_opcode_t) *(p - 1) == charset_not;
 
             DEBUG_PRINT2 ("EXECUTING charset%s.\n", not ? "_not" : "");
 
-           PREFETCH ();
-           c = TRANSLATE (*d); /* The character to match.  */
+            PREFETCH ();
+            c = TRANSLATE (*d); /* The character to match.  */
 
             /* Cast to `unsigned' instead of `unsigned char' in case the
                bit list is a full 32 bytes long.  */
-           if (c < (unsigned) (*p * BYTEWIDTH)
-               && p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
-             not = !not;
+            if (c < (unsigned) (*p * BYTEWIDTH)
+                && p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
+              not = !not;
 
-           p += 1 + *p;
+            p += 1 + *p;
 
-           if (!not) goto fail;
+            if (!not) goto fail;
 
-           SET_REGS_MATCHED ();
+            SET_REGS_MATCHED ();
             d++;
-           break;
-         }
+            break;
+          }
 
 
         /* The beginning of a group is represented by start_memory.
@@ -4255,10 +4308,10 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
            matched within the group is recorded (in the internal
            registers data structure) under the register number.  */
         case start_memory:
-         DEBUG_PRINT3 ("EXECUTING start_memory %d (%d):\n", *p, p[1]);
+          DEBUG_PRINT3 ("EXECUTING start_memory %d (%d):\n", *p, p[1]);
 
           /* Find out if this group can match the empty string.  */
-         p1 = p;               /* To send to group_match_null_string_p.  */
+          p1 = p;                /* To send to group_match_null_string_p.  */
 
           if (REG_MATCH_NULL_STRING_P (reg_info[*p]) == MATCH_NULL_UNSET_VALUE)
             REG_MATCH_NULL_STRING_P (reg_info[*p])
@@ -4272,17 +4325,17 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
           old_regstart[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
                              ? REG_UNSET (regstart[*p]) ? d : regstart[*p]
                              : regstart[*p];
-         DEBUG_PRINT2 ("  old_regstart: %d\n",
-                        POINTER_TO_OFFSET (old_regstart[*p]));
+          DEBUG_PRINT2 ("  old_regstart: %d\n",
+                         POINTER_TO_OFFSET (old_regstart[*p]));
 
           regstart[*p] = d;
-         DEBUG_PRINT2 ("  regstart: %d\n", POINTER_TO_OFFSET (regstart[*p]));
+          DEBUG_PRINT2 ("  regstart: %d\n", POINTER_TO_OFFSET (regstart[*p]));
 
           IS_ACTIVE (reg_info[*p]) = 1;
           MATCHED_SOMETHING (reg_info[*p]) = 0;
 
-         /* Clear this whenever we change the register activity status.  */
-         set_regs_matched_done = 0;
+          /* Clear this whenever we change the register activity status.  */
+          set_regs_matched_done = 0;
 
           /* This is the new highest active register.  */
           highest_active_reg = *p;
@@ -4294,7 +4347,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 
           /* Move past the register number and inner group count.  */
           p += 2;
-         just_past_start_mem = p;
+          just_past_start_mem = p;
 
           break;
 
@@ -4302,8 +4355,8 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
         /* The stop_memory opcode represents the end of a group.  Its
            arguments are the same as start_memory's: the register
            number, and the number of inner groups.  */
-       case stop_memory:
-         DEBUG_PRINT3 ("EXECUTING stop_memory %d (%d):\n", *p, p[1]);
+        case stop_memory:
+          DEBUG_PRINT3 ("EXECUTING stop_memory %d (%d):\n", *p, p[1]);
 
           /* We need to save the string position the last time we were at
              this close-group operator in case the group is operated
@@ -4312,18 +4365,18 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
              the string in case this attempt to match fails.  */
           old_regend[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
                            ? REG_UNSET (regend[*p]) ? d : regend[*p]
-                          : regend[*p];
-         DEBUG_PRINT2 ("      old_regend: %d\n",
-                        POINTER_TO_OFFSET (old_regend[*p]));
+                           : regend[*p];
+          DEBUG_PRINT2 ("      old_regend: %d\n",
+                         POINTER_TO_OFFSET (old_regend[*p]));
 
           regend[*p] = d;
-         DEBUG_PRINT2 ("      regend: %d\n", POINTER_TO_OFFSET (regend[*p]));
+          DEBUG_PRINT2 ("      regend: %d\n", POINTER_TO_OFFSET (regend[*p]));
 
           /* This register isn't active anymore.  */
           IS_ACTIVE (reg_info[*p]) = 0;
 
-         /* Clear this whenever we change the register activity status.  */
-         set_regs_matched_done = 0;
+          /* Clear this whenever we change the register activity status.  */
+          set_regs_matched_done = 0;
 
           /* If this was the only register active, nothing is active
              anymore.  */
@@ -4348,7 +4401,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                  registers 1 and 2 as a result of the *, but when we pop
                  back to the second ), we are at the stop_memory 1.
                  Thus, nothing is active.  */
-             if (r == 0)
+              if (r == 0)
                 {
                   lowest_active_reg = NO_LOWEST_ACTIVE_REG;
                   highest_active_reg = NO_HIGHEST_ACTIVE_REG;
@@ -4364,7 +4417,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
              last match.  */
           if ((!MATCHED_SOMETHING (reg_info[*p])
                || just_past_start_mem == p - 1)
-             && (p + 2) < pend)
+              && (p + 2) < pend)
             {
               boolean is_a_jump_n = false;
 
@@ -4373,29 +4426,29 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
               switch ((re_opcode_t) *p1++)
                 {
                   case jump_n:
-                   is_a_jump_n = true;
+                    is_a_jump_n = true;
                   case pop_failure_jump:
-                 case maybe_pop_jump:
-                 case jump:
-                 case dummy_failure_jump:
+                  case maybe_pop_jump:
+                  case jump:
+                  case dummy_failure_jump:
                     EXTRACT_NUMBER_AND_INCR (mcnt, p1);
-                   if (is_a_jump_n)
-                     p1 += 2;
+                    if (is_a_jump_n)
+                      p1 += 2;
                     break;
 
                   default:
                     /* do nothing */ ;
                 }
-             p1 += mcnt;
+              p1 += mcnt;
 
               /* If the next operation is a jump backwards in the pattern
-                to an on_failure_jump right before the start_memory
+                 to an on_failure_jump right before the start_memory
                  corresponding to this stop_memory, exit from the loop
                  by forcing a failure after pushing on the stack the
                  on_failure_jump's jump in the pattern, and d.  */
               if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump
                   && (re_opcode_t) p1[3] == start_memory && p1[4] == *p)
-               {
+                {
                   /* If this group ever matched anything, then restore
                      what its registers were before trying this last
                      failed match, e.g., with `(a*)*b' against `ab' for
@@ -4407,14 +4460,14 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                      otherwise get trashed).  */
 
                   if (EVER_MATCHED_SOMETHING (reg_info[*p]))
-                   {
-                     unsigned r;
+                    {
+                      unsigned r;
 
                       EVER_MATCHED_SOMETHING (reg_info[*p]) = 0;
 
-                     /* Restore this and inner groups' (if any) registers.  */
+                      /* Restore this and inner groups' (if any) registers.  */
                       for (r = *p; r < (unsigned) *p + (unsigned) *(p + 1);
-                          r++)
+                           r++)
                         {
                           regstart[r] = old_regstart[r];
 
@@ -4423,7 +4476,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                             regend[r] = old_regend[r];
                         }
                     }
-                 p1++;
+                  p1++;
                   EXTRACT_NUMBER_AND_INCR (mcnt, p1);
                   PUSH_FAILURE_POINT (p1 + mcnt, d, -2);
 
@@ -4436,15 +4489,15 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
           break;
 
 
-       /* \<digit> has been turned into a `duplicate' command which is
+        /* \<digit> has been turned into a `duplicate' command which is
            followed by the numeric value of <digit> as the register number.  */
         case duplicate:
-         {
-           register const char *d2, *dend2;
-           int regno = *p++;   /* Get which register to match against.  */
-           DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno);
+          {
+            register const char *d2, *dend2;
+            int regno = *p++;   /* Get which register to match against.  */
+            DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno);
 
-           /* Can't back reference a group which we've never matched.  */
+            /* Can't back reference a group which we've never matched.  */
             if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno]))
               goto fail;
 
@@ -4457,54 +4510,54 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                the end of the first string.  */
 
             dend2 = ((FIRST_STRING_P (regstart[regno])
-                     == FIRST_STRING_P (regend[regno]))
-                    ? regend[regno] : end_match_1);
-           for (;;)
-             {
-               /* If necessary, advance to next segment in register
+                      == FIRST_STRING_P (regend[regno]))
+                     ? regend[regno] : end_match_1);
+            for (;;)
+              {
+                /* If necessary, advance to next segment in register
                    contents.  */
-               while (d2 == dend2)
-                 {
-                   if (dend2 == end_match_2) break;
-                   if (dend2 == regend[regno]) break;
+                while (d2 == dend2)
+                  {
+                    if (dend2 == end_match_2) break;
+                    if (dend2 == regend[regno]) break;
 
                     /* End of string1 => advance to string2. */
                     d2 = string2;
                     dend2 = regend[regno];
-                 }
-               /* At end of register contents => success */
-               if (d2 == dend2) break;
+                  }
+                /* At end of register contents => success */
+                if (d2 == dend2) break;
 
-               /* If necessary, advance to next segment in data.  */
-               PREFETCH ();
+                /* If necessary, advance to next segment in data.  */
+                PREFETCH ();
 
-               /* How many characters left in this segment to match.  */
-               mcnt = dend - d;
+                /* How many characters left in this segment to match.  */
+                mcnt = dend - d;
 
-               /* Want how many consecutive characters we can match in
+                /* Want how many consecutive characters we can match in
                    one shot, so, if necessary, adjust the count.  */
                 if (mcnt > dend2 - d2)
-                 mcnt = dend2 - d2;
+                  mcnt = dend2 - d2;
 
-               /* Compare that many; failure if mismatch, else move
+                /* Compare that many; failure if mismatch, else move
                    past them.  */
-               if (translate
+                if (translate
                     ? bcmp_translate (d, d2, mcnt, translate)
                     : bcmp (d, d2, mcnt))
-                 goto fail;
-               d += mcnt, d2 += mcnt;
+                  goto fail;
+                d += mcnt, d2 += mcnt;
 
-               /* Do this because we've match some characters.  */
-               SET_REGS_MATCHED ();
-             }
-         }
-         break;
+                /* Do this because we've match some characters.  */
+                SET_REGS_MATCHED ();
+              }
+          }
+          break;
 
 
         /* begline matches the empty string at the beginning of the string
            (unless `not_bol' is set in `bufp'), and, if
            `newline_anchor' is set, after newlines.  */
-       case begline:
+        case begline:
           DEBUG_PRINT1 ("EXECUTING begline.\n");
 
           if (AT_STRINGS_BEG (d))
@@ -4520,7 +4573,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 
 
         /* endline is the dual of begline.  */
-       case endline:
+        case endline:
           DEBUG_PRINT1 ("EXECUTING endline.\n");
 
           if (AT_STRINGS_END (d))
@@ -4537,7 +4590,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
           goto fail;
 
 
-       /* Match at the very beginning of the data.  */
+        /* Match at the very beginning of the data.  */
         case begbuf:
           DEBUG_PRINT1 ("EXECUTING begbuf.\n");
           if (AT_STRINGS_BEG (d))
@@ -4545,11 +4598,11 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
           goto fail;
 
 
-       /* Match at the very end of the data.  */
+        /* Match at the very end of the data.  */
         case endbuf:
           DEBUG_PRINT1 ("EXECUTING endbuf.\n");
-         if (AT_STRINGS_END (d))
-           break;
+          if (AT_STRINGS_END (d))
+            break;
           goto fail;
 
 
@@ -4583,7 +4636,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
           break;
 
 
-       /* Uses of on_failure_jump:
+        /* Uses of on_failure_jump:
 
            Each alternative starts with an on_failure_jump that points
            to the beginning of the next alternative.  Each alternative
@@ -4595,7 +4648,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
            Repeats start with an on_failure_jump that points past both
            the repetition text and either the following jump or
            pop_failure_jump back to this on_failure_jump.  */
-       case on_failure_jump:
+        case on_failure_jump:
         on_failure:
           DEBUG_PRINT1 ("EXECUTING on_failure_jump");
 
@@ -4641,12 +4694,12 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 
 
         /* A smart repeat ends with `maybe_pop_jump'.
-          We change it to either `pop_failure_jump' or `jump'.  */
+           We change it to either `pop_failure_jump' or `jump'.  */
         case maybe_pop_jump:
           EXTRACT_NUMBER_AND_INCR (mcnt, p);
           DEBUG_PRINT2 ("EXECUTING maybe_pop_jump %d.\n", mcnt);
           {
-           register unsigned char *p2 = p;
+            register unsigned char *p2 = p;
 
             /* Compare the beginning of the repeat with what in the
                pattern follows its end. If we can establish that there
@@ -4661,141 +4714,141 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                detect that here, the alternative has put on a dummy
                failure point which is what we will end up popping.  */
 
-           /* Skip over open/close-group commands.
-              If what follows this loop is a ...+ construct,
-              look at what begins its body, since we will have to
-              match at least one of that.  */
-           while (1)
-             {
-               if (p2 + 2 < pend
-                   && ((re_opcode_t) *p2 == stop_memory
-                       || (re_opcode_t) *p2 == start_memory))
-                 p2 += 3;
-               else if (p2 + 6 < pend
-                        && (re_opcode_t) *p2 == dummy_failure_jump)
-                 p2 += 6;
-               else
-                 break;
-             }
-
-           p1 = p + mcnt;
-           /* p1[0] ... p1[2] are the `on_failure_jump' corresponding
-              to the `maybe_finalize_jump' of this case.  Examine what
-              follows.  */
+            /* Skip over open/close-group commands.
+               If what follows this loop is a ...+ construct,
+               look at what begins its body, since we will have to
+               match at least one of that.  */
+            while (1)
+              {
+                if (p2 + 2 < pend
+                    && ((re_opcode_t) *p2 == stop_memory
+                        || (re_opcode_t) *p2 == start_memory))
+                  p2 += 3;
+                else if (p2 + 6 < pend
+                         && (re_opcode_t) *p2 == dummy_failure_jump)
+                  p2 += 6;
+                else
+                  break;
+              }
+
+            p1 = p + mcnt;
+            /* p1[0] ... p1[2] are the `on_failure_jump' corresponding
+               to the `maybe_finalize_jump' of this case.  Examine what
+               follows.  */
 
             /* If we're at the end of the pattern, we can change.  */
             if (p2 == pend)
-             {
-               /* Consider what happens when matching ":\(.*\)"
-                  against ":/".  I don't really understand this code
-                  yet.  */
-               p[-3] = (unsigned char) pop_failure_jump;
+              {
+                /* Consider what happens when matching ":\(.*\)"
+                   against ":/".  I don't really understand this code
+                   yet.  */
+                  p[-3] = (unsigned char) pop_failure_jump;
                 DEBUG_PRINT1
                   ("  End of pattern: change to `pop_failure_jump'.\n");
               }
 
             else if ((re_opcode_t) *p2 == exactn
-                    || (bufp->newline_anchor && (re_opcode_t) *p2 == endline))
-             {
-               register unsigned char c
+                     || (bufp->newline_anchor && (re_opcode_t) *p2 == endline))
+              {
+                register unsigned char c
                   = *p2 == (unsigned char) endline ? '\n' : p2[2];
 
                 if ((re_opcode_t) p1[3] == exactn && p1[5] != c)
                   {
-                   p[-3] = (unsigned char) pop_failure_jump;
+                      p[-3] = (unsigned char) pop_failure_jump;
                     DEBUG_PRINT3 ("  %c != %c => pop_failure_jump.\n",
                                   c, p1[5]);
                   }
 
-               else if ((re_opcode_t) p1[3] == charset
-                        || (re_opcode_t) p1[3] == charset_not)
-                 {
-                   int not = (re_opcode_t) p1[3] == charset_not;
+                else if ((re_opcode_t) p1[3] == charset
+                         || (re_opcode_t) p1[3] == charset_not)
+                  {
+                    int not = (re_opcode_t) p1[3] == charset_not;
 
-                   if (c < (unsigned char) (p1[4] * BYTEWIDTH)
-                       && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
-                     not = !not;
+                    if (c < (unsigned char) (p1[4] * BYTEWIDTH)
+                        && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
+                      not = !not;
 
                     /* `not' is equal to 1 if c would match, which means
                         that we can't change to pop_failure_jump.  */
-                   if (!not)
+                    if (!not)
                       {
-                       p[-3] = (unsigned char) pop_failure_jump;
+                          p[-3] = (unsigned char) pop_failure_jump;
                         DEBUG_PRINT1 ("  No match => pop_failure_jump.\n");
                       }
-                 }
-             }
+                  }
+              }
             else if ((re_opcode_t) *p2 == charset)
-             {
+              {
 #ifdef DEBUG
-               register unsigned char c
+                register unsigned char c
                   = *p2 == (unsigned char) endline ? '\n' : p2[2];
 #endif
 
 #if 0
                 if ((re_opcode_t) p1[3] == exactn
-                   && ! ((int) p2[1] * BYTEWIDTH > (int) p1[5]
-                         && (p2[2 + p1[5] / BYTEWIDTH]
-                             & (1 << (p1[5] % BYTEWIDTH)))))
+                    && ! ((int) p2[1] * BYTEWIDTH > (int) p1[5]
+                          && (p2[2 + p1[5] / BYTEWIDTH]
+                              & (1 << (p1[5] % BYTEWIDTH)))))
 #else
                 if ((re_opcode_t) p1[3] == exactn
-                   && ! ((int) p2[1] * BYTEWIDTH > (int) p1[4]
-                         && (p2[2 + p1[4] / BYTEWIDTH]
-                             & (1 << (p1[4] % BYTEWIDTH)))))
+                    && ! ((int) p2[1] * BYTEWIDTH > (int) p1[4]
+                          && (p2[2 + p1[4] / BYTEWIDTH]
+                              & (1 << (p1[4] % BYTEWIDTH)))))
 #endif
                   {
-                   p[-3] = (unsigned char) pop_failure_jump;
+                      p[-3] = (unsigned char) pop_failure_jump;
                     DEBUG_PRINT3 ("  %c != %c => pop_failure_jump.\n",
                                   c, p1[5]);
                   }
 
-               else if ((re_opcode_t) p1[3] == charset_not)
-                 {
-                   int idx;
-                   /* We win if the charset_not inside the loop
-                      lists every character listed in the charset after.  */
-                   for (idx = 0; idx < (int) p2[1]; idx++)
-                     if (! (p2[2 + idx] == 0
-                            || (idx < (int) p1[4]
-                                && ((p2[2 + idx] & ~ p1[5 + idx]) == 0))))
-                       break;
-
-                   if (idx == p2[1])
+                else if ((re_opcode_t) p1[3] == charset_not)
+                  {
+                    int idx;
+                    /* We win if the charset_not inside the loop
+                       lists every character listed in the charset after.  */
+                    for (idx = 0; idx < (int) p2[1]; idx++)
+                      if (! (p2[2 + idx] == 0
+                             || (idx < (int) p1[4]
+                                 && ((p2[2 + idx] & ~ p1[5 + idx]) == 0))))
+                        break;
+
+                    if (idx == p2[1])
                       {
-                       p[-3] = (unsigned char) pop_failure_jump;
+                          p[-3] = (unsigned char) pop_failure_jump;
                         DEBUG_PRINT1 ("  No match => pop_failure_jump.\n");
                       }
-                 }
-               else if ((re_opcode_t) p1[3] == charset)
-                 {
-                   int idx;
-                   /* We win if the charset inside the loop
-                      has no overlap with the one after the loop.  */
-                   for (idx = 0;
-                        idx < (int) p2[1] && idx < (int) p1[4];
-                        idx++)
-                     if ((p2[2 + idx] & p1[5 + idx]) != 0)
-                       break;
-
-                   if (idx == p2[1] || idx == p1[4])
+                  }
+                else if ((re_opcode_t) p1[3] == charset)
+                  {
+                    int idx;
+                    /* We win if the charset inside the loop
+                       has no overlap with the one after the loop.  */
+                    for (idx = 0;
+                         idx < (int) p2[1] && idx < (int) p1[4];
+                         idx++)
+                      if ((p2[2 + idx] & p1[5 + idx]) != 0)
+                        break;
+
+                    if (idx == p2[1] || idx == p1[4])
                       {
-                       p[-3] = (unsigned char) pop_failure_jump;
+                          p[-3] = (unsigned char) pop_failure_jump;
                         DEBUG_PRINT1 ("  No match => pop_failure_jump.\n");
                       }
-                 }
-             }
-         }
-         p -= 2;               /* Point at relative address again.  */
-         if ((re_opcode_t) p[-1] != pop_failure_jump)
-           {
-             p[-1] = (unsigned char) jump;
+                  }
+              }
+          }
+          p -= 2;                /* Point at relative address again.  */
+          if ((re_opcode_t) p[-1] != pop_failure_jump)
+            {
+              p[-1] = (unsigned char) jump;
               DEBUG_PRINT1 ("  Match => jump.\n");
-             goto unconditional_jump;
-           }
+              goto unconditional_jump;
+            }
         /* Note fall through.  */
 
 
-       /* The end of a simple repeat has a pop_failure_jump back to
+        /* The end of a simple repeat has a pop_failure_jump back to
            its matching on_failure_jump, where the latter will push a
            failure point.  The pop_failure_jump takes off failure
            points put on by this pop_failure_jump's matching
@@ -4817,27 +4870,27 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                                dummy_low_reg, dummy_high_reg,
                                reg_dummy, reg_dummy, reg_info_dummy);
           }
-         /* Note fall through.  */
+          /* Note fall through.  */
 
-       unconditional_jump:
+        unconditional_jump:
 #ifdef _LIBC
-         DEBUG_PRINT2 ("\n%p: ", p);
+          DEBUG_PRINT2 ("\n%p: ", p);
 #else
-         DEBUG_PRINT2 ("\n0x%x: ", p);
+          DEBUG_PRINT2 ("\n0x%x: ", p);
 #endif
           /* Note fall through.  */
 
         /* Unconditionally jump (without popping any failure points).  */
         case jump:
-         EXTRACT_NUMBER_AND_INCR (mcnt, p);    /* Get the amount to jump.  */
+          EXTRACT_NUMBER_AND_INCR (mcnt, p);        /* Get the amount to jump.  */
           DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt);
-         p += mcnt;                            /* Do the jump.  */
+          p += mcnt;                                /* Do the jump.  */
 #ifdef _LIBC
           DEBUG_PRINT2 ("(to %p).\n", p);
 #else
           DEBUG_PRINT2 ("(to 0x%x).\n", p);
 #endif
-         break;
+          break;
 
 
         /* We need this opcode so we can detect where alternatives end
@@ -4883,7 +4936,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
           if (mcnt > 0)
             {
                mcnt--;
-              p += 2;
+               p += 2;
                STORE_NUMBER_AND_INCR (p, mcnt);
 #ifdef _LIBC
                DEBUG_PRINT3 ("  Setting %p to %d.\n", p - 2, mcnt);
@@ -4891,14 +4944,14 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
                DEBUG_PRINT3 ("  Setting 0x%x to %d.\n", p - 2, mcnt);
 #endif
             }
-         else if (mcnt == 0)
+          else if (mcnt == 0)
             {
 #ifdef _LIBC
               DEBUG_PRINT2 ("  Setting two bytes from %p to no_op.\n", p+2);
 #else
               DEBUG_PRINT2 ("  Setting two bytes from 0x%x to no_op.\n", p+2);
 #endif
-             p[2] = (unsigned char) no_op;
+              p[2] = (unsigned char) no_op;
               p[3] = (unsigned char) no_op;
               goto on_failure;
             }
@@ -4918,15 +4971,15 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 #else
                DEBUG_PRINT3 ("  Setting 0x%x to %d.\n", p + 2, mcnt);
 #endif
-              goto unconditional_jump;
+               goto unconditional_jump;
             }
           /* If don't have to jump any more, skip over the rest of command.  */
-         else
-           p += 4;
+          else
+            p += 4;
           break;
 
-       case set_number_at:
-         {
+        case set_number_at:
+          {
             DEBUG_PRINT1 ("EXECUTING set_number_at.\n");
 
             EXTRACT_NUMBER_AND_INCR (mcnt, p);
@@ -4937,155 +4990,155 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 #else
             DEBUG_PRINT3 ("  Setting 0x%x to %d.\n", p1, mcnt);
 #endif
-           STORE_NUMBER (p1, mcnt);
+            STORE_NUMBER (p1, mcnt);
             break;
           }
 
 #if 0
-       /* The DEC Alpha C compiler 3.x generates incorrect code for the
-          test  WORDCHAR_P (d - 1) != WORDCHAR_P (d)  in the expansion of
-          AT_WORD_BOUNDARY, so this code is disabled.  Expanding the
-          macro and introducing temporary variables works around the bug.  */
-
-       case wordbound:
-         DEBUG_PRINT1 ("EXECUTING wordbound.\n");
-         if (AT_WORD_BOUNDARY (d))
-           break;
-         goto fail;
-
-       case notwordbound:
-         DEBUG_PRINT1 ("EXECUTING notwordbound.\n");
-         if (AT_WORD_BOUNDARY (d))
-           goto fail;
-         break;
+        /* The DEC Alpha C compiler 3.x generates incorrect code for the
+           test  WORDCHAR_P (d - 1) != WORDCHAR_P (d)  in the expansion of
+           AT_WORD_BOUNDARY, so this code is disabled.  Expanding the
+           macro and introducing temporary variables works around the bug.  */
+
+        case wordbound:
+          DEBUG_PRINT1 ("EXECUTING wordbound.\n");
+          if (AT_WORD_BOUNDARY (d))
+            break;
+          goto fail;
+
+        case notwordbound:
+          DEBUG_PRINT1 ("EXECUTING notwordbound.\n");
+          if (AT_WORD_BOUNDARY (d))
+            goto fail;
+          break;
 #else
-       case wordbound:
-       {
-         boolean prevchar, thischar;
+        case wordbound:
+        {
+          boolean prevchar, thischar;
 
-         DEBUG_PRINT1 ("EXECUTING wordbound.\n");
-         if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d))
-           break;
+          DEBUG_PRINT1 ("EXECUTING wordbound.\n");
+          if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d))
+            break;
 
-         prevchar = WORDCHAR_P (d - 1);
-         thischar = WORDCHAR_P (d);
-         if (prevchar != thischar)
-           break;
-         goto fail;
-       }
+          prevchar = WORDCHAR_P (d - 1);
+          thischar = WORDCHAR_P (d);
+          if (prevchar != thischar)
+            break;
+          goto fail;
+        }
 
       case notwordbound:
-       {
-         boolean prevchar, thischar;
-
-         DEBUG_PRINT1 ("EXECUTING notwordbound.\n");
-         if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d))
-           goto fail;
-
-         prevchar = WORDCHAR_P (d - 1);
-         thischar = WORDCHAR_P (d);
-         if (prevchar != thischar)
-           goto fail;
-         break;
-       }
+        {
+          boolean prevchar, thischar;
+
+          DEBUG_PRINT1 ("EXECUTING notwordbound.\n");
+          if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d))
+            goto fail;
+
+          prevchar = WORDCHAR_P (d - 1);
+          thischar = WORDCHAR_P (d);
+          if (prevchar != thischar)
+            goto fail;
+          break;
+        }
 #endif
 
-       case wordbeg:
+        case wordbeg:
           DEBUG_PRINT1 ("EXECUTING wordbeg.\n");
-         if (WORDCHAR_P (d) && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1)))
-           break;
+          if (WORDCHAR_P (d) && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1)))
+            break;
           goto fail;
 
-       case wordend:
+        case wordend:
           DEBUG_PRINT1 ("EXECUTING wordend.\n");
-         if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1)
+          if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1)
               && (!WORDCHAR_P (d) || AT_STRINGS_END (d)))
-           break;
+            break;
           goto fail;
 
 #ifdef emacs
-       case before_dot:
+          case before_dot:
           DEBUG_PRINT1 ("EXECUTING before_dot.\n");
-         if (PTR_CHAR_POS ((unsigned char *) d) >= point)
-           goto fail;
-         break;
+           if (PTR_CHAR_POS ((unsigned char *) d) >= point)
+              goto fail;
+            break;
 
-       case at_dot:
+          case at_dot:
           DEBUG_PRINT1 ("EXECUTING at_dot.\n");
-         if (PTR_CHAR_POS ((unsigned char *) d) != point)
-           goto fail;
-         break;
+           if (PTR_CHAR_POS ((unsigned char *) d) != point)
+              goto fail;
+            break;
 
-       case after_dot:
+          case after_dot:
           DEBUG_PRINT1 ("EXECUTING after_dot.\n");
           if (PTR_CHAR_POS ((unsigned char *) d) <= point)
-           goto fail;
-         break;
+              goto fail;
+            break;
 
-       case syntaxspec:
+        case syntaxspec:
           DEBUG_PRINT2 ("EXECUTING syntaxspec %d.\n", mcnt);
-         mcnt = *p++;
-         goto matchsyntax;
+          mcnt = *p++;
+          goto matchsyntax;
 
         case wordchar:
           DEBUG_PRINT1 ("EXECUTING Emacs wordchar.\n");
-         mcnt = (int) Sword;
+          mcnt = (int) Sword;
         matchsyntax:
-         PREFETCH ();
-         /* Can't use *d++ here; SYNTAX may be an unsafe macro.  */
-         d++;
-         if (SYNTAX (d[-1]) != (enum syntaxcode) mcnt)
-           goto fail;
+          PREFETCH ();
+          /* Can't use *d++ here; SYNTAX may be an unsafe macro.  */
+          d++;
+          if (SYNTAX (d[-1]) != (enum syntaxcode) mcnt)
+            goto fail;
           SET_REGS_MATCHED ();
-         break;
+          break;
 
-       case notsyntaxspec:
+        case notsyntaxspec:
           DEBUG_PRINT2 ("EXECUTING notsyntaxspec %d.\n", mcnt);
-         mcnt = *p++;
-         goto matchnotsyntax;
+          mcnt = *p++;
+          goto matchnotsyntax;
 
         case notwordchar:
           DEBUG_PRINT1 ("EXECUTING Emacs notwordchar.\n");
-         mcnt = (int) Sword;
+          mcnt = (int) Sword;
         matchnotsyntax:
-         PREFETCH ();
-         /* Can't use *d++ here; SYNTAX may be an unsafe macro.  */
-         d++;
-         if (SYNTAX (d[-1]) == (enum syntaxcode) mcnt)
-           goto fail;
-         SET_REGS_MATCHED ();
+          PREFETCH ();
+          /* Can't use *d++ here; SYNTAX may be an unsafe macro.  */
+          d++;
+          if (SYNTAX (d[-1]) == (enum syntaxcode) mcnt)
+            goto fail;
+          SET_REGS_MATCHED ();
           break;
 
 #else /* not emacs */
-       case wordchar:
+        case wordchar:
           DEBUG_PRINT1 ("EXECUTING non-Emacs wordchar.\n");
-         PREFETCH ();
+          PREFETCH ();
           if (!WORDCHAR_P (d))
             goto fail;
-         SET_REGS_MATCHED ();
+          SET_REGS_MATCHED ();
           d++;
-         break;
+          break;
 
-       case notwordchar:
+        case notwordchar:
           DEBUG_PRINT1 ("EXECUTING non-Emacs notwordchar.\n");
-         PREFETCH ();
-         if (WORDCHAR_P (d))
+          PREFETCH ();
+          if (WORDCHAR_P (d))
             goto fail;
           SET_REGS_MATCHED ();
           d++;
-         break;
+          break;
 #endif /* not emacs */
 
         default:
           abort ();
-       }
+        }
       continue;  /* Successfully executed one pattern command; keep going.  */
 
 
     /* We goto here if a matching operation fails. */
     fail:
       if (!FAIL_STACK_EMPTY ())
-       { /* A restart point is known.  Restore to that state.  */
+        { /* A restart point is known.  Restore to that state.  */
           DEBUG_PRINT1 ("\nFAIL:\n");
           POP_FAILURE_POINT (d, p,
                              lowest_active_reg, highest_active_reg,
@@ -5093,10 +5146,10 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 
           /* If this failure point is a dummy, try the next one.  */
           if (!p)
-           goto fail;
+            goto fail;
 
           /* If we failed to the end of the pattern, don't examine *p.  */
-         assert (p <= pend);
+          assert (p <= pend);
           if (p < pend)
             {
               boolean is_a_jump_n = false;
@@ -5125,7 +5178,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
             }
 
           if (d >= string1 && d <= end1)
-           dend = end_match_1;
+            dend = end_match_1;
         }
       else
         break;   /* Matching at this starting point really fails.  */
@@ -5136,7 +5189,7 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
 
   FREE_VARIABLES ();
 
-  return -1;                           /* Failure to match.  */
+  return -1;                                 /* Failure to match.  */
 } /* re_match_2 */
 \f
 /* Subroutine definitions for re_match_2.  */
@@ -5164,7 +5217,7 @@ group_match_null_string_p (p, end, reg_info)
   while (p1 < end)
     {
       /* Skip over opcodes that can match nothing, and return true or
-        false, as appropriate, when we get to one that can't, or to the
+         false, as appropriate, when we get to one that can't, or to the
          matching stop_memory.  */
 
       switch ((re_opcode_t) *p1)
@@ -5175,10 +5228,10 @@ group_match_null_string_p (p, end, reg_info)
           EXTRACT_NUMBER_AND_INCR (mcnt, p1);
 
           /* If the next operation is not a jump backwards in the
-            pattern.  */
+             pattern.  */
 
-         if (mcnt >= 0)
-           {
+          if (mcnt >= 0)
+            {
               /* Go through the on_failure_jumps of the alternatives,
                  seeing if any of the alternatives cannot match nothing.
                  The last alternative starts with only a jump,
@@ -5204,11 +5257,11 @@ group_match_null_string_p (p, end, reg_info)
                      its number.  */
 
                   if (!alt_match_null_string_p (p1, p1 + mcnt - 3,
-                                                     reg_info))
+                                                      reg_info))
                     return false;
 
                   /* Move to right after this alternative, including the
-                    jump_past_alt.  */
+                     jump_past_alt.  */
                   p1 += mcnt;
 
                   /* Break if it's the beginning of an n-th alternative
@@ -5216,13 +5269,13 @@ group_match_null_string_p (p, end, reg_info)
                   if ((re_opcode_t) *p1 != on_failure_jump)
                     break;
 
-                 /* Still have to check that it's not an n-th
-                    alternative that starts with an on_failure_jump.  */
-                 p1++;
+                  /* Still have to check that it's not an n-th
+                     alternative that starts with an on_failure_jump.  */
+                  p1++;
                   EXTRACT_NUMBER_AND_INCR (mcnt, p1);
                   if ((re_opcode_t) p1[mcnt-3] != jump_past_alt)
                     {
-                     /* Get to the beginning of the n-th alternative.  */
+                      /* Get to the beginning of the n-th alternative.  */
                       p1 -= 3;
                       break;
                     }
@@ -5236,13 +5289,13 @@ group_match_null_string_p (p, end, reg_info)
               if (!alt_match_null_string_p (p1, p1 + mcnt, reg_info))
                 return false;
 
-              p1 += mcnt;      /* Get past the n-th alternative.  */
+              p1 += mcnt;        /* Get past the n-th alternative.  */
             } /* if mcnt > 0 */
           break;
 
 
         case stop_memory:
-         assert (p1[1] == **p);
+          assert (p1[1] == **p);
           *p = p1 + 2;
           return true;
 
@@ -5276,14 +5329,14 @@ alt_match_null_string_p (p, end, reg_info)
 
       switch ((re_opcode_t) *p1)
         {
-       /* It's a loop.  */
+        /* It's a loop.  */
         case on_failure_jump:
           p1++;
           EXTRACT_NUMBER_AND_INCR (mcnt, p1);
           p1 += mcnt;
           break;
 
-       default:
+        default:
           if (!common_op_match_null_string_p (&p1, end, reg_info))
             return false;
         }
@@ -5463,20 +5516,20 @@ re_comp (s)
   if (!s)
     {
       if (!re_comp_buf.buffer)
-       return gettext ("No previous regular expression");
+        return gettext ("No previous regular expression");
       return 0;
     }
 
   if (!re_comp_buf.buffer)
     {
-      re_comp_buf.buffer = (unsigned char *) malloc (200);     /* __MEM_CHECKED__ */
+      re_comp_buf.buffer = (unsigned char *) malloc (200);        /* __MEM_CHECKED__ */
       if (re_comp_buf.buffer == NULL)
         return gettext (re_error_msgid[(int) REG_ESPACE]);
       re_comp_buf.allocated = 200;
 
-      re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH);  /* __MEM_CHECKED__ */
+      re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH);        /* __MEM_CHECKED__ */
       if (re_comp_buf.fastmap == NULL)
-       return gettext (re_error_msgid[(int) REG_ESPACE]);
+        return gettext (re_error_msgid[(int) REG_ESPACE]);
     }
 
   /* Since `re_exec' always passes NULL for the `regs' argument, we
@@ -5574,8 +5627,8 @@ regcomp (preg, pattern, cflags)
       unsigned i;
 
       preg->translate
-       = (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE     /* __MEM_CHECKED__ */
-                                     * sizeof (*(RE_TRANSLATE_TYPE)0));
+        = (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE        /* __MEM_CHECKED__ */
+                                      * sizeof (*(RE_TRANSLATE_TYPE)0));
       if (preg->translate == NULL)
         return (int) REG_ESPACE;
 
@@ -5678,8 +5731,8 @@ regexec (preg, string, nmatch, pmatch, eflags)
         }
 
       /* If we needed the temporary register info, free the space now.  */
-      free (regs.start);       /* __MEM_CHECKED__ */
-      free (regs.end);         /* __MEM_CHECKED__ */
+      free (regs.start);        /* __MEM_CHECKED__ */
+      free (regs.end);                /* __MEM_CHECKED__ */
     }
 
   /* We want zero return to mean success, unlike `re_search'.  */
@@ -5702,7 +5755,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
 
   if (errcode < 0
       || errcode >= (int) (sizeof (re_error_msgid)
-                          / sizeof (re_error_msgid[0])))
+                           / sizeof (re_error_msgid[0])))
     /* Only error codes returned by the rest of the code should be passed
        to this routine.  If we are given anything else, or if other regex
        code generates an invalid error code, then the program has a bug.
@@ -5721,7 +5774,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
           errbuf[errbuf_size - 1] = 0;
         }
       else
-        strcpy (errbuf, msg);  /* __STRCPY_CHECKED__ */
+        strcpy (errbuf, msg);        /* __STRCPY_CHECKED__ */
     }
 
   return msg_size;
@@ -5735,19 +5788,19 @@ regfree (preg)
     regex_t *preg;
 {
   if (preg->buffer != NULL)
-    free (preg->buffer);       /* __MEM_CHECKED__ */
+    free (preg->buffer);        /* __MEM_CHECKED__ */
   preg->buffer = NULL;
 
   preg->allocated = 0;
   preg->used = 0;
 
   if (preg->fastmap != NULL)
-    free (preg->fastmap);      /* __MEM_CHECKED__ */
+    free (preg->fastmap);        /* __MEM_CHECKED__ */
   preg->fastmap = NULL;
   preg->fastmap_accurate = 0;
 
   if (preg->translate != NULL)
-    free (preg->translate);    /* __MEM_CHECKED__ */
+    free (preg->translate);        /* __MEM_CHECKED__ */
   preg->translate = NULL;
 }
 
diff --git a/smime.c b/smime.c
index fda19e9..a7498e5 100644 (file)
--- a/smime.c
+++ b/smime.c
@@ -542,7 +542,7 @@ char *smime_get_field_from_db (char *mailbox, char *query, short public, short m
          }
          else if (choice == M_YES)
          {
-           snprintf (key,mutt_strlen(key)+1, fields[1]);
+           snprintf (key,mutt_strlen(key)+1, "%s", fields[1]);
            ask = 0;
            break;
          }