diff options
Diffstat (limited to 'src/include/unicode.h')
-rw-r--r-- | src/include/unicode.h | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/src/include/unicode.h b/src/include/unicode.h index 90dab113..d5351c35 100644 --- a/src/include/unicode.h +++ b/src/include/unicode.h @@ -1,5 +1,5 @@ // -*- C++ -*- -/* Copyright (C) 2002, 2003 +/* Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. Written by Werner Lemberg <wl@gnu.org> @@ -19,8 +19,47 @@ You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ +// Convert a groff glyph name to a string containing an underscore-separated +// list of Unicode code points. For example, +// +// `-' -> `2010' +// `,c' -> `00E7' +// `fl' -> `0066_006C' +// +// Return NULL if there is no equivalent. const char *glyph_name_to_unicode(const char *); + +// Convert a string containing an underscore-separated list of Unicode code +// points to a groff glyph name. For example, +// +// `2010' -> `hy' +// `0066_006C' -> `fl' +// +// Return NULL if there is no equivalent. const char *unicode_to_glyph_name(const char *); + +// Convert a string containing a precomposed Unicode character to a string +// containing an underscore-separated list of Unicode code points, +// representing its canonical decomposition. Also perform compatibility +// equivalent replacement. For example, +// +// `1F3A' -> `0399_0313_0300' +// `FA6A' -> `983B' +// +// Return NULL if there is no equivalent. const char *decompose_unicode(const char *); +// Test whether the given string denotes a Unicode character. It must +// be of the form `uNNNN', obeying the following rules. +// +// - `NNNN' must consist of at least 4 hexadecimal digits in upper case. +// - If there are more than 4 hexadecimal digits, the leading one must not +// be zero, +// - `NNNN' must denote a valid Unicode code point (U+0000..U+10FFFF, +// excluding surrogate code points. +// +// Return a pointer to `NNNN' (skipping the leading `u' character) in case +// of success, NULL otherwise. const char *check_unicode_name(const char *); + +// end of unicode.h |