Blame locale/programs/charmap.h

Packit Service 82fcde
/* Copyright (C) 1996-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@gnu.org>, 1996.
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 _CHARMAP_H
Packit Service 82fcde
#define _CHARMAP_H
Packit Service 82fcde
Packit Service 82fcde
#include <obstack.h>
Packit Service 82fcde
#include <stdbool.h>
Packit Service 82fcde
#include <stdint.h>
Packit Service 82fcde
Packit Service 82fcde
#include "repertoire.h"
Packit Service 82fcde
#include "simple-hash.h"
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
struct width_rule
Packit Service 82fcde
{
Packit Service 82fcde
  struct charseq *from;
Packit Service 82fcde
  struct charseq *to;
Packit Service 82fcde
  unsigned int width;
Packit Service 82fcde
};
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
struct charmap_t
Packit Service 82fcde
{
Packit Service 82fcde
  const char *code_set_name;
Packit Service 82fcde
  const char *repertoiremap;
Packit Service 82fcde
  int mb_cur_min;
Packit Service 82fcde
  int mb_cur_max;
Packit Service 82fcde
Packit Service 82fcde
  struct width_rule *width_rules;
Packit Service 82fcde
  size_t nwidth_rules;
Packit Service 82fcde
  size_t nwidth_rules_max;
Packit Service 82fcde
  unsigned int width_default;
Packit Service 82fcde
Packit Service 82fcde
  struct obstack mem_pool;
Packit Service 82fcde
  hash_table char_table;
Packit Service 82fcde
  hash_table byte_table;
Packit Service 82fcde
  hash_table ucs4_table;
Packit Service 82fcde
};
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
/* This is the structure used for entries in the hash table.  It represents
Packit Service 82fcde
   the sequence of bytes used for the coded character.  */
Packit Service 82fcde
struct charseq
Packit Service 82fcde
{
Packit Service 82fcde
  const char *name;
Packit Service 82fcde
  uint32_t ucs4;
Packit Service 82fcde
  int nbytes;
Packit Service 82fcde
  unsigned char bytes[0];
Packit Service 82fcde
};
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
/* True if the encoding is not ASCII compatible.  */
Packit Service 82fcde
extern bool enc_not_ascii_compatible;
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
/* Prototypes for charmap handling functions.  */
Packit Service 82fcde
extern struct charmap_t *charmap_read (const char *filename, int verbose,
Packit Service 82fcde
				       int error_not_found, int be_quiet,
Packit Service 82fcde
				       int use_default);
Packit Service 82fcde
Packit Service 82fcde
/* Return the value stored under the given key in the hashing table.  */
Packit Service 82fcde
extern struct charseq *charmap_find_value (const struct charmap_t *charmap,
Packit Service 82fcde
					   const char *name, size_t len);
Packit Service 82fcde
Packit Service 82fcde
/* Return symbol for given multibyte sequence.  */
Packit Service 82fcde
extern struct charseq *charmap_find_symbol (const struct charmap_t *charmap,
Packit Service 82fcde
					    const char *name, size_t len);
Packit Service 82fcde
Packit Service 82fcde
#endif /* charmap.h */