]> git.deb.at Git - pkg/abook.git/blobdiff - intl/plural-exp.h
Merge remote-tracking branch 'upstream/master' into upstream
[pkg/abook.git] / intl / plural-exp.h
index d6cb8c51b65debd4a6283b5da38f9d2b418afdab..49e2c5bfc66f8b4609b06f575c31bc4078418b25 100644 (file)
@@ -1,5 +1,5 @@
 /* Expression parsing and evaluation for plural form selection.
-   Copyright (C) 2000-2003, 2005-2007 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003 Free Software Foundation, Inc.
    Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
 
    This program is free software; you can redistribute it and/or modify it
@@ -14,7 +14,7 @@
 
    You should have received a copy of the GNU Library General Public
    License along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
    USA.  */
 
 #ifndef _PLURAL_EXP_H
 # define attribute_hidden
 #endif
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-enum expression_operator
-{
-  /* Without arguments:  */
-  var,                         /* The variable "n".  */
-  num,                         /* Decimal number.  */
-  /* Unary operators:  */
-  lnot,                                /* Logical NOT.  */
-  /* Binary operators:  */
-  mult,                                /* Multiplication.  */
-  divide,                      /* Division.  */
-  module,                      /* Modulo operation.  */
-  plus,                                /* Addition.  */
-  minus,                       /* Subtraction.  */
-  less_than,                   /* Comparison.  */
-  greater_than,                        /* Comparison.  */
-  less_or_equal,               /* Comparison.  */
-  greater_or_equal,            /* Comparison.  */
-  equal,                       /* Comparison for equality.  */
-  not_equal,                   /* Comparison for inequality.  */
-  land,                                /* Logical AND.  */
-  lor,                         /* Logical OR.  */
-  /* Ternary operators:  */
-  qmop                         /* Question mark operator.  */
-};
 
 /* This is the representation of the expressions to determine the
    plural form.  */
 struct expression
 {
   int nargs;                   /* Number of arguments.  */
-  enum expression_operator operation;
+  enum operator
+  {
+    /* Without arguments:  */
+    var,                       /* The variable "n".  */
+    num,                       /* Decimal number.  */
+    /* Unary operators:  */
+    lnot,                      /* Logical NOT.  */
+    /* Binary operators:  */
+    mult,                      /* Multiplication.  */
+    divide,                    /* Division.  */
+    module,                    /* Modulo operation.  */
+    plus,                      /* Addition.  */
+    minus,                     /* Subtraction.  */
+    less_than,                 /* Comparison.  */
+    greater_than,              /* Comparison.  */
+    less_or_equal,             /* Comparison.  */
+    greater_or_equal,          /* Comparison.  */
+    equal,                     /* Comparison for equality.  */
+    not_equal,                 /* Comparison for inequality.  */
+    land,                      /* Logical AND.  */
+    lor,                       /* Logical OR.  */
+    /* Ternary operators:  */
+    qmop                       /* Question mark operator.  */
+  } operation;
   union
   {
     unsigned long int num;     /* Number value for `num'.  */
@@ -112,18 +106,13 @@ extern void FREE_EXPRESSION (struct expression *exp)
 extern int PLURAL_PARSE (void *arg);
 extern struct expression GERMANIC_PLURAL attribute_hidden;
 extern void EXTRACT_PLURAL_EXPRESSION (const char *nullentry,
-                                      const struct expression **pluralp,
+                                      struct expression **pluralp,
                                       unsigned long int *npluralsp)
      internal_function;
 
-#if !defined (_LIBC) && !defined (IN_LIBINTL) && !defined (IN_LIBGLOCALE)
-extern unsigned long int plural_eval (const struct expression *pexp,
+#if !defined (_LIBC) && !defined (IN_LIBINTL)
+extern unsigned long int plural_eval (struct expression *pexp,
                                      unsigned long int n);
 #endif
 
-
-#ifdef __cplusplus
-}
-#endif
-
 #endif /* _PLURAL_EXP_H */