105436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
205436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Display width functions.
305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Copyright (C) 2001-2002, 2005, 2007, 2009-2012 Free Software Foundation,
405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   Inc.
505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This program is free software: you can redistribute it and/or modify it
705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   under the terms of the GNU General Public License as published
805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   by the Free Software Foundation; either version 3 of the License, or
905436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (at your option) any later version.
1005436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1105436638acc7c010349a69c3395f1a57c642dc62Ying Wang   This program is distributed in the hope that it will be useful,
1205436638acc7c010349a69c3395f1a57c642dc62Ying Wang   but WITHOUT ANY WARRANTY; without even the implied warranty of
1305436638acc7c010349a69c3395f1a57c642dc62Ying Wang   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1405436638acc7c010349a69c3395f1a57c642dc62Ying Wang   General Public License for more details.
1505436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   You should have received a copy of the GNU General Public License
1705436638acc7c010349a69c3395f1a57c642dc62Ying Wang   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
1805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
1905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifndef _UNIWIDTH_H
2005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define _UNIWIDTH_H
2105436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include "unitypes.h"
2305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2405436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Get size_t.  */
2505436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include <stddef.h>
2605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
2705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Get locale_charset() declaration.  */
2805436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include "localcharset.h"
2905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3005436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef __cplusplus
3105436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern "C" {
3205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
3305436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Display width.  */
3605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
3705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* These functions are locale dependent.  The encoding argument identifies
3805436638acc7c010349a69c3395f1a57c642dc62Ying Wang   the encoding (e.g. "ISO-8859-2" for Polish).  */
3905436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4005436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Determine number of column positions required for UC.  */
4105436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern int
4205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       uc_width (ucs4_t uc, const char *encoding)
4305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _UC_ATTRIBUTE_PURE;
4405436638acc7c010349a69c3395f1a57c642dc62Ying Wang
4505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Determine number of column positions required for first N units
4605436638acc7c010349a69c3395f1a57c642dc62Ying Wang   (or fewer if S ends before this) in S.  */
4705436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern int
4805436638acc7c010349a69c3395f1a57c642dc62Ying Wang       u8_width (const uint8_t *s, size_t n, const char *encoding)
4905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _UC_ATTRIBUTE_PURE;
5005436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern int
5105436638acc7c010349a69c3395f1a57c642dc62Ying Wang       u16_width (const uint16_t *s, size_t n, const char *encoding)
5205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _UC_ATTRIBUTE_PURE;
5305436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern int
5405436638acc7c010349a69c3395f1a57c642dc62Ying Wang       u32_width (const uint32_t *s, size_t n, const char *encoding)
5505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _UC_ATTRIBUTE_PURE;
5605436638acc7c010349a69c3395f1a57c642dc62Ying Wang
5705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Determine number of column positions required for S.  */
5805436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern int
5905436638acc7c010349a69c3395f1a57c642dc62Ying Wang       u8_strwidth (const uint8_t *s, const char *encoding)
6005436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _UC_ATTRIBUTE_PURE;
6105436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern int
6205436638acc7c010349a69c3395f1a57c642dc62Ying Wang       u16_strwidth (const uint16_t *s, const char *encoding)
6305436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _UC_ATTRIBUTE_PURE;
6405436638acc7c010349a69c3395f1a57c642dc62Ying Wangextern int
6505436638acc7c010349a69c3395f1a57c642dc62Ying Wang       u32_strwidth (const uint32_t *s, const char *encoding)
6605436638acc7c010349a69c3395f1a57c642dc62Ying Wang       _UC_ATTRIBUTE_PURE;
6705436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6805436638acc7c010349a69c3395f1a57c642dc62Ying Wang
6905436638acc7c010349a69c3395f1a57c642dc62Ying Wang#ifdef __cplusplus
7005436638acc7c010349a69c3395f1a57c642dc62Ying Wang}
7105436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif
7205436638acc7c010349a69c3395f1a57c642dc62Ying Wang
7305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#endif /* _UNIWIDTH_H */
74