libgrapheme

Freestanding C library for unicode string handling
git clone https://git.sinitax.com/suckless/libgrapheme
Log | Files | Refs | README | LICENSE | sfeed.txt

character.c (1727B)


      1/* See LICENSE file for copyright and license details. */
      2#include <stddef.h>
      3
      4#include "util.h"
      5
      6#define FILE_EMOJI    "data/emoji-data.txt"
      7#define FILE_GRAPHEME "data/GraphemeBreakProperty.txt"
      8
      9static const struct property_spec char_break_property[] = {
     10	{
     11		.enumname = "OTHER",
     12		.file = NULL,
     13		.ucdname = NULL,
     14	},
     15	{
     16		.enumname = "CONTROL",
     17		.file = FILE_GRAPHEME,
     18		.ucdname = "Control",
     19	},
     20	{
     21		.enumname = "CR",
     22		.file = FILE_GRAPHEME,
     23		.ucdname = "CR",
     24	},
     25	{
     26		.enumname = "EXTEND",
     27		.file = FILE_GRAPHEME,
     28		.ucdname = "Extend",
     29	},
     30	{
     31		.enumname = "EXTENDED_PICTOGRAPHIC",
     32		.file = FILE_EMOJI,
     33		.ucdname = "Extended_Pictographic",
     34	},
     35	{
     36		.enumname = "HANGUL_L",
     37		.file = FILE_GRAPHEME,
     38		.ucdname = "L",
     39	},
     40	{
     41		.enumname = "HANGUL_V",
     42		.file = FILE_GRAPHEME,
     43		.ucdname = "V",
     44	},
     45	{
     46		.enumname = "HANGUL_T",
     47		.file = FILE_GRAPHEME,
     48		.ucdname = "T",
     49	},
     50	{
     51		.enumname = "HANGUL_LV",
     52		.file = FILE_GRAPHEME,
     53		.ucdname = "LV",
     54	},
     55	{
     56		.enumname = "HANGUL_LVT",
     57		.file = FILE_GRAPHEME,
     58		.ucdname = "LVT",
     59	},
     60	{
     61		.enumname = "LF",
     62		.file = FILE_GRAPHEME,
     63		.ucdname = "LF",
     64	},
     65	{
     66		.enumname = "PREPEND",
     67		.file = FILE_GRAPHEME,
     68		.ucdname = "Prepend",
     69	},
     70	{
     71		.enumname = "REGIONAL_INDICATOR",
     72		.file = FILE_GRAPHEME,
     73		.ucdname = "Regional_Indicator",
     74	},
     75	{
     76		.enumname = "SPACINGMARK",
     77		.file = FILE_GRAPHEME,
     78		.ucdname = "SpacingMark",
     79	},
     80	{
     81		.enumname = "ZWJ",
     82		.file = FILE_GRAPHEME,
     83		.ucdname = "ZWJ",
     84	},
     85};
     86
     87int
     88main(int argc, char *argv[])
     89{
     90	(void)argc;
     91
     92	properties_generate_break_property(char_break_property,
     93	                                   LEN(char_break_property), NULL, NULL,
     94	                                   NULL, "char_break", argv[0]);
     95
     96	return 0;
     97}