(show_archive_content): Add verbose argument.
[kopensolaris-gnu/glibc.git] / locale / programs / localedef.h
index 31721c5..3217338 100644 (file)
@@ -1,31 +1,34 @@
 /* General definitions for localedef(1).
-   Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
 
    The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
    The GNU C Library 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
-   Library General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _LOCALEDEF_H
 #define _LOCALEDEF_H   1
 
 /* Get the basic locale definitions.  */
+#include <errno.h>
 #include <locale.h>
+#include <stdbool.h>
 #include <stddef.h>
 
 #include "repertoire.h"
+#include "../locarchive.h"
 
 
 /* We need a bitmask for the locales.  */
@@ -111,7 +114,10 @@ struct localedef_t
 /* Global variables of the localedef program.  */
 extern int verbose;
 extern int be_quiet;
+extern int oldstyle_tables;
 extern const char *repertoire_global;
+extern int max_locarchive_open_retry;
+extern bool no_archive;
 
 
 /* Prototypes for a few program-wide used functions.  */
@@ -121,14 +127,54 @@ extern void *xrealloc (void *__p, size_t __n);
 extern char *xstrdup (const char *__str);
 
 
+/* Wrapper to switch LC_CTYPE back to the locale specified in the
+   environment for output.  */
+#define WITH_CUR_LOCALE(stmt)                                  \
+  do {                                                         \
+      int saved_errno = errno;                                 \
+      const char *cur_locale_ = setlocale (LC_CTYPE, NULL);    \
+      setlocale (LC_CTYPE, "");                                        \
+      errno = saved_errno;                                     \
+      stmt;                                                    \
+      setlocale (LC_CTYPE, cur_locale_);                       \
+  } while (0)
+
+
 /* Mark given locale as to be read.  */
 extern struct localedef_t *add_to_readlist (int locale, const char *name,
                                            const char *repertoire_name,
-                                           int generate);
+                                           int generate,
+                                           struct localedef_t *copy_locale);
 
 /* Find the information for the locale NAME.  */
 extern struct localedef_t *find_locale (int locale, const char *name,
                                        const char *repertoire_name,
-                                       struct charmap_t *charmap);
+                                       const struct charmap_t *charmap);
+
+/* Load (if necessary) the information for the locale NAME.  */
+extern struct localedef_t *load_locale (int locale, const char *name,
+                                       const char *repertoire_name,
+                                       const struct charmap_t *charmap,
+                                       struct localedef_t *copy_locale);
+
+
+/* Open the locale archive.  */
+extern void open_archive (struct locarhandle *ah, bool readonly);
+
+/* Close the locale archive.  */
+extern void close_archive (struct locarhandle *ah);
+
+/* Add given locale data to the archive.  */
+extern int add_locale_to_archive (struct locarhandle *ah, const char *name,
+                                 locale_data_t data, bool replace);
+
+/* Add content of named directories to locale archive.  */
+extern int add_locales_to_archive (size_t nlist, char *list[], bool replace);
+
+/* Removed named locales from archive.  */
+extern int delete_locales_from_archive (size_t nlist, char *list[]);
+
+/* List content of locale archive.  */
+extern void show_archive_content (int verbose);
 
 #endif /* localedef.h */