File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libiconv / srclib / uniwidth.in.h
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue May 29 09:29:43 2012 UTC (12 years, 1 month ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    1: /* Display width functions.
    2:    Copyright (C) 2001-2002, 2005, 2007, 2009-2011 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 <http://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: 
   43: /* Determine number of column positions required for first N units
   44:    (or fewer if S ends before this) in S.  */
   45: extern int
   46:        u8_width (const uint8_t *s, size_t n, const char *encoding);
   47: extern int
   48:        u16_width (const uint16_t *s, size_t n, const char *encoding);
   49: extern int
   50:        u32_width (const uint32_t *s, size_t n, const char *encoding);
   51: 
   52: /* Determine number of column positions required for S.  */
   53: extern int
   54:        u8_strwidth (const uint8_t *s, const char *encoding);
   55: extern int
   56:        u16_strwidth (const uint16_t *s, const char *encoding);
   57: extern int
   58:        u32_strwidth (const uint32_t *s, const char *encoding);
   59: 
   60: 
   61: #ifdef __cplusplus
   62: }
   63: #endif
   64: 
   65: #endif /* _UNIWIDTH_H */

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