Blame locale/programs/repertoire.h

Packit Service 82fcde
/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
Packit Service 82fcde
   This file is part of the GNU C Library.
Packit Service 82fcde
   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
Packit Service 82fcde
Packit Service 82fcde
   This program is free software; you can redistribute it and/or modify
Packit Service 82fcde
   it under the terms of the GNU General Public License as published
Packit Service 82fcde
   by the Free Software Foundation; version 2 of the License, or
Packit Service 82fcde
   (at your option) any later version.
Packit Service 82fcde
Packit Service 82fcde
   This program is distributed in the hope that it will be useful,
Packit Service 82fcde
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 82fcde
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 82fcde
   GNU General Public License for more details.
Packit Service 82fcde
Packit Service 82fcde
   You should have received a copy of the GNU General Public License
Packit Service 82fcde
   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
Packit Service 82fcde
Packit Service 82fcde
#ifndef _REPERTOIREMAP_H
Packit Service 82fcde
#define _REPERTOIREMAP_H	1
Packit Service 82fcde
Packit Service 82fcde
#include <obstack.h>
Packit Service 82fcde
#include <stdint.h>
Packit Service 82fcde
Packit Service 82fcde
#include "charmap.h"
Packit Service 82fcde
#include "simple-hash.h"
Packit Service 82fcde
Packit Service 82fcde
struct repertoire_t
Packit Service 82fcde
{
Packit Service 82fcde
  const char *name;
Packit Service 82fcde
  struct obstack mem_pool;
Packit Service 82fcde
  hash_table char_table;
Packit Service 82fcde
  hash_table reverse_table;
Packit Service 82fcde
  hash_table seq_table;
Packit Service 82fcde
};
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
/* We need one value to mark the error case.  Let's use 0xffffffff.
Packit Service 82fcde
   I.e., it is placed in the last page of ISO 10646.  For now only the
Packit Service 82fcde
   first is used and we have plenty of room.  */
Packit Service 82fcde
#define ILLEGAL_CHAR_VALUE ((uint32_t) 0xffffffffu)
Packit Service 82fcde
Packit Service 82fcde
/* Another value is needed to signal that a value is not yet determined.  */
Packit Service 82fcde
#define UNINITIALIZED_CHAR_VALUE ((uint32_t) 0xfffffffeu)
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
/* Prototypes for repertoire map handling functions.  */
Packit Service 82fcde
extern struct repertoire_t *repertoire_read (const char *filename);
Packit Service 82fcde
Packit Service 82fcde
/* Report missing repertoire map.  */
Packit Service 82fcde
extern void repertoire_complain (const char *name);
Packit Service 82fcde
Packit Service 82fcde
/* Return UCS4 value of character with given NAME.  */
Packit Service 82fcde
extern uint32_t repertoire_find_value (const struct repertoire_t *repertoire,
Packit Service 82fcde
				       const char *name, size_t len);
Packit Service 82fcde
Packit Service 82fcde
/* Return symbol for given UCS4 value.  */
Packit Service 82fcde
extern const char *repertoire_find_symbol (const struct repertoire_t *repertoire,
Packit Service 82fcde
					   uint32_t ucs);
Packit Service 82fcde
Packit Service 82fcde
/* Query the has table to memoize mapping from UCS4 to byte sequences.  */
Packit Service 82fcde
extern struct charseq *repertoire_find_seq (const struct repertoire_t *rep,
Packit Service 82fcde
					    uint32_t ucs);
Packit Service 82fcde
Packit Service 82fcde
#endif /* repertoiremap.h */