Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-05-18 08:30:29

0001 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
0002 /* Word breaks in Unicode strings.
0003    Copyright (C) 2001-2003, 2005-2022 Free Software Foundation, Inc.
0004    Written by Bruno Haible <bruno@clisp.org>, 2009.
0005 
0006    This file is free software.
0007    It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
0008    You can redistribute it and/or modify it under either
0009      - the terms of the GNU Lesser General Public License as published
0010        by the Free Software Foundation, either version 3, or (at your
0011        option) any later version, or
0012      - the terms of the GNU General Public License as published by the
0013        Free Software Foundation; either version 2, or (at your option)
0014        any later version, or
0015      - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
0016 
0017    This file is distributed in the hope that it will be useful,
0018    but WITHOUT ANY WARRANTY; without even the implied warranty of
0019    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0020    Lesser General Public License and the GNU General Public License
0021    for more details.
0022 
0023    You should have received a copy of the GNU Lesser General Public
0024    License and of the GNU General Public License along with this
0025    program.  If not, see <https://www.gnu.org/licenses/>.  */
0026 
0027 #ifndef _UNIWBRK_H
0028 #define _UNIWBRK_H
0029 
0030 /* Get size_t.  */
0031 #include <stddef.h>
0032 
0033 #include "unitypes.h"
0034 
0035 
0036 #ifdef __cplusplus
0037 extern "C" {
0038 #endif
0039 
0040 /* ========================================================================= */
0041 
0042 /* Property defined in Unicode Standard Annex #29, section "Word Boundaries"
0043    <https://www.unicode.org/reports/tr29/#Word_Boundaries>  */
0044 
0045 /* Possible values of the Word_Break property.
0046    This enumeration may be extended in the future.  */
0047 enum
0048 {
0049   WBP_OTHER        = 0,
0050   WBP_CR           = 11,
0051   WBP_LF           = 12,
0052   WBP_NEWLINE      = 10,
0053   WBP_EXTEND       = 8,
0054   WBP_FORMAT       = 9,
0055   WBP_KATAKANA     = 1,
0056   WBP_ALETTER      = 2,
0057   WBP_MIDNUMLET    = 3,
0058   WBP_MIDLETTER    = 4,
0059   WBP_MIDNUM       = 5,
0060   WBP_NUMERIC      = 6,
0061   WBP_EXTENDNUMLET = 7,
0062   WBP_RI           = 13,
0063   WBP_DQ           = 14,
0064   WBP_SQ           = 15,
0065   WBP_HL           = 16,
0066   WBP_ZWJ          = 17,
0067   WBP_EB           = 18, /* obsolete */
0068   WBP_EM           = 19, /* obsolete */
0069   WBP_GAZ          = 20, /* obsolete */
0070   WBP_EBG          = 21, /* obsolete */
0071   WBP_WSS          = 22
0072 };
0073 
0074 /* Return the Word_Break property of a Unicode character.  */
0075 extern int
0076        uc_wordbreak_property (ucs4_t uc)
0077        _UC_ATTRIBUTE_CONST;
0078 
0079 /* ========================================================================= */
0080 
0081 /* Word breaks.  */
0082 
0083 /* Determine the word break points in S, and store the result at p[0..n-1].
0084    p[i] = 1 means that there is a word boundary between s[i-1] and s[i].
0085    p[i] = 0 means that s[i-1] and s[i] must not be separated.
0086  */
0087 extern void
0088        u8_wordbreaks (const uint8_t *s, size_t n, char *p);
0089 extern void
0090        u16_wordbreaks (const uint16_t *s, size_t n, char *p);
0091 extern void
0092        u32_wordbreaks (const uint32_t *s, size_t n, char *p);
0093 extern void
0094        ulc_wordbreaks (const char *s, size_t n, char *_UC_RESTRICT p);
0095 
0096 /* ========================================================================= */
0097 
0098 #ifdef __cplusplus
0099 }
0100 #endif
0101 
0102 
0103 #endif /* _UNIWBRK_H */