diff options
Diffstat (limited to 'locale/programs/locfile.h')
-rw-r--r-- | locale/programs/locfile.h | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/locale/programs/locfile.h b/locale/programs/locfile.h index 83bf421ece..bdd87cc426 100644 --- a/locale/programs/locfile.h +++ b/locale/programs/locfile.h @@ -21,15 +21,17 @@ #include <stdint.h> #include <sys/uio.h> +#include "obstack.h" #include "linereader.h" #include "localedef.h" - -/* Header of the locale data files. */ +/* Structure for storing the contents of a category file. */ struct locale_file { - int magic; - int n; + size_t n_elements, next_element; + uint32_t *offsets; + struct obstack data; + int structure_stage; }; @@ -66,9 +68,26 @@ extern void write_all_categories (struct localedef_t *definitions, const char *output_path); /* Write out the data. */ +extern void init_locale_data (struct locale_file *file, size_t n_elements); +extern void align_locale_data (struct locale_file *file, size_t boundary); +extern void add_locale_empty (struct locale_file *file); +extern void add_locale_raw_data (struct locale_file *file, const void *data, + size_t size); +extern void add_locale_raw_obstack (struct locale_file *file, + struct obstack *obstack); +extern void add_locale_string (struct locale_file *file, const char *string); +extern void add_locale_wstring (struct locale_file *file, + const uint32_t *string); +extern void add_locale_uint32 (struct locale_file *file, uint32_t value); +extern void add_locale_uint32_array (struct locale_file *file, + const uint32_t *data, size_t n_elems); +extern void add_locale_char (struct locale_file *file, char value); +extern void start_locale_structure (struct locale_file *file); +extern void end_locale_structure (struct locale_file *file); +extern void start_locale_prelude (struct locale_file *file); +extern void end_locale_prelude (struct locale_file *file); extern void write_locale_data (const char *output_path, int catidx, - const char *category, size_t n_elem, - struct iovec *vec); + const char *category, struct locale_file *file); /* Entrypoints for the parsers of the individual categories. */ |