File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libiconv / srclib / uniwidth.in.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 13:38:46 2021 UTC (3 years, 3 months ago) by misho
Branches: libiconv, MAIN
CVS tags: v1_16p0, HEAD
libiconv 1.16

    1: /* Display width functions.
    2:    Copyright (C) 2001-2002, 2005, 2007, 2009-2019 Free Software Foundation,
    3:    Inc.
    4: 
    5:    This program is free software: you can redistribute it and/or modify it
    6:    under the terms of the GNU General Public License as published
    7:    by the Free Software Foundation; either version 3 of the License, or
    8:    (at your option) any later version.
    9: 
   10:    This program is distributed in the hope that it will be useful,
   11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   13:    General Public License for more details.
   14: 
   15:    You should have received a copy of the GNU General Public License
   16:    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
   17: 
   18: #ifndef _UNIWIDTH_H
   19: #define _UNIWIDTH_H
   20: 
   21: #include "unitypes.h"
   22: 
   23: /* Get size_t.  */
   24: #include <stddef.h>
   25: 
   26: /* Get locale_charset() declaration.  */
   27: #include "localcharset.h"
   28: 
   29: #ifdef __cplusplus
   30: extern "C" {
   31: #endif
   32: 
   33: 
   34: /* Display width.  */
   35: 
   36: /* These functions are locale dependent.  The encoding argument identifies
   37:    the encoding (e.g. "ISO-8859-2" for Polish).  */
   38: 
   39: /* Determine number of column positions required for UC.  */
   40: extern int
   41:        uc_width (ucs4_t uc, const char *encoding)
   42:        _UC_ATTRIBUTE_PURE;
   43: 
   44: /* Determine number of column positions required for first N units
   45:    (or fewer if S ends before this) in S.  */
   46: extern int
   47:        u8_width (const uint8_t *s, size_t n, const char *encoding)
   48:        _UC_ATTRIBUTE_PURE;
   49: extern int
   50:        u16_width (const uint16_t *s, size_t n, const char *encoding)
   51:        _UC_ATTRIBUTE_PURE;
   52: extern int
   53:        u32_width (const uint32_t *s, size_t n, const char *encoding)
   54:        _UC_ATTRIBUTE_PURE;
   55: 
   56: /* Determine number of column positions required for S.  */
   57: extern int
   58:        u8_strwidth (const uint8_t *s, const char *encoding)
   59:        _UC_ATTRIBUTE_PURE;
   60: extern int
   61:        u16_strwidth (const uint16_t *s, const char *encoding)
   62:        _UC_ATTRIBUTE_PURE;
   63: extern int
   64:        u32_strwidth (const uint32_t *s, const char *encoding)
   65:        _UC_ATTRIBUTE_PURE;
   66: 
   67: 
   68: #ifdef __cplusplus
   69: }
   70: #endif
   71: 
   72: #endif /* _UNIWIDTH_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>