Blame lib/mbswidth.h

Packit 8f70b4
/* Determine the number of screen columns needed for a string.
Packit 8f70b4
   Copyright (C) 2000-2004, 2007, 2009-2018 Free Software Foundation, Inc.
Packit 8f70b4
Packit 8f70b4
   This program is free software: you can redistribute it and/or modify
Packit 8f70b4
   it under the terms of the GNU General Public License as published by
Packit 8f70b4
   the Free Software Foundation; either version 3 of the License, or
Packit 8f70b4
   (at your option) any later version.
Packit 8f70b4
Packit 8f70b4
   This program is distributed in the hope that it will be useful,
Packit 8f70b4
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 8f70b4
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 8f70b4
   GNU General Public License for more details.
Packit 8f70b4
Packit 8f70b4
   You should have received a copy of the GNU General Public License
Packit 8f70b4
   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
Packit 8f70b4
Packit 8f70b4
#include <stddef.h>
Packit 8f70b4
Packit 8f70b4
/* Avoid a clash of our mbswidth() with a function of the same name defined
Packit 8f70b4
   in UnixWare 7.1.1 <wchar.h>.  We need this #include before the #define
Packit 8f70b4
   below.
Packit 8f70b4
   However, we don't want to #include <wchar.h> on all platforms because
Packit 8f70b4
   - Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
Packit 8f70b4
     <wchar.h>.
Packit 8f70b4
   - BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
Packit 8f70b4
     <wchar.h>.  */
Packit 8f70b4
#if HAVE_DECL_MBSWIDTH_IN_WCHAR_H
Packit 8f70b4
# include <wchar.h>
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
Packit 8f70b4
#ifdef __cplusplus
Packit 8f70b4
extern "C" {
Packit 8f70b4
#endif
Packit 8f70b4
Packit 8f70b4
Packit 8f70b4
/* Optional flags to influence mbswidth/mbsnwidth behavior.  */
Packit 8f70b4
Packit 8f70b4
/* If this bit is set, return -1 upon finding an invalid or incomplete
Packit 8f70b4
   character.  Otherwise, assume invalid characters have width 1.  */
Packit 8f70b4
#define MBSW_REJECT_INVALID 1
Packit 8f70b4
Packit 8f70b4
/* If this bit is set, return -1 upon finding a non-printable character.
Packit 8f70b4
   Otherwise, assume unprintable characters have width 0 if they are
Packit 8f70b4
   control characters and 1 otherwise.  */
Packit 8f70b4
#define MBSW_REJECT_UNPRINTABLE 2
Packit 8f70b4
Packit 8f70b4
Packit 8f70b4
/* Returns the number of screen columns needed for STRING.  */
Packit 8f70b4
#define mbswidth gnu_mbswidth  /* avoid clash with UnixWare 7.1.1 function */
Packit 8f70b4
extern int mbswidth (const char *string, int flags);
Packit 8f70b4
Packit 8f70b4
/* Returns the number of screen columns needed for the NBYTES bytes
Packit 8f70b4
   starting at BUF.  */
Packit 8f70b4
extern int mbsnwidth (const char *buf, size_t nbytes, int flags);
Packit 8f70b4
Packit 8f70b4
Packit 8f70b4
#ifdef __cplusplus
Packit 8f70b4
}
Packit 8f70b4
#endif