1/* Determine the number of screen columns needed for a character. 2 Copyright (C) 2006, 2007 Free Software Foundation, Inc. 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2, or (at your option) 7 any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program; if not, write to the Free Software Foundation, 16 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ 17 18#ifndef _gl_WCWIDTH_H 19#define _gl_WCWIDTH_H 20 21#if HAVE_WCHAR_T 22 23/* Get wcwidth if available, along with wchar_t. */ 24# include <wchar.h> 25 26/* Get iswprint. */ 27# include <wctype.h> 28 29# ifndef HAVE_DECL_WCWIDTH 30"this configure-time declaration test was not run" 31# endif 32# ifndef wcwidth 33# if !HAVE_WCWIDTH 34 35/* wcwidth doesn't exist, so assume all printable characters have 36 width 1. */ 37static inline int 38wcwidth (wchar_t wc) 39{ 40 return wc == 0 ? 0 : iswprint (wc) ? 1 : -1; 41} 42 43# elif !HAVE_DECL_WCWIDTH 44 45/* wcwidth exists but is not declared. */ 46extern 47# ifdef __cplusplus 48"C" 49# endif 50int wcwidth (int /* actually wchar_t */); 51 52# endif 53# endif 54 55#endif /* HAVE_WCHAR_T */ 56 57#endif /* _gl_WCWIDTH_H */ 58