Mercurial > gnulib
view lib/unictype/combiningclass_name.c @ 36940:c741bc27922a
maint: update all copyright year number ranges
Run "make update-copyright". Compare to commit 1602f0a from last year.
Signed-off-by: Eric Blake <eblake@redhat.com>
author | Eric Blake <eblake@redhat.com> |
---|---|
date | Tue, 01 Jan 2013 00:50:58 +0000 |
parents | 807a2defea28 |
children | 344018b6e5d7 |
line wrap: on
line source
/* Canonical combining classes of Unicode characters. Copyright (C) 2002, 2006-2007, 2011-2013 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2011. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <config.h> /* Specification. */ #include "unictype.h" #include <stdlib.h> static const signed char u_combining_class_index_part1[10] = { 0, /* Not Reordered */ 1, /* Overlay */ -1, -1, -1, -1, -1, 2, /* Nukta */ 3, /* Kana Voicing */ 4 /* Virama */ }; static const signed char u_combining_class_index_part2[241 - 200] = { 5, /* Attached Below Left */ -1, 6, /* Attached Below */ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, /* Attached Above */ -1, 8, /* Attached Above Right */ -1, 9, /* Below Left */ -1, 10, /* Below */ -1, 11, /* Below Right */ -1, 12, /* Left */ -1, 13, /* Right */ -1, 14, /* Above Left */ -1, 15, /* Above */ -1, 16, /* Above Right */ 17, /* Double Below */ 18, /* Double Above */ -1, -1, -1, -1, -1, 19 /* Iota Subscript */ }; static const char u_combining_class_name[20][5] = { "NR", /* Not Reordered */ "OV", /* Overlay */ "NK", /* Nukta */ "KV", /* Kana Voicing */ "VR", /* Virama */ "ATBL", /* Attached Below Left */ "ATB", /* Attached Below */ "ATA", /* Attached Above */ "ATAR", /* Attached Above Right */ "BL", /* Below Left */ "B", /* Below */ "BR", /* Below Right */ "L", /* Left */ "R", /* Right */ "AL", /* Above Left */ "A", /* Above */ "AR", /* Above Right */ "DB", /* Double Below */ "DA", /* Double Above */ "IS" /* Iota Subscript */ }; const char * uc_combining_class_name (int ccc) { if (ccc >= 0) { int index; if (ccc < 10) index = u_combining_class_index_part1[ccc]; else if (ccc >= 200 && ccc < 241) index = u_combining_class_index_part2[ccc - 200]; else return NULL; if (index >= 0) { if (index < sizeof (u_combining_class_name) / sizeof (u_combining_class_name[0])) return u_combining_class_name[index]; else abort (); } } return NULL; }