Codebase list teckit / 7db47e4
New upstream version 2.5.9+ds1 Norbert Preining 5 years ago
39 changed file(s) with 1382 addition(s) and 809 deletion(s). Raw diff Collapse all Expand all
0 (Not here. See the Subversion logs.)
0 See the commit history from git.
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.15.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
635635 ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
636636 || chmod -R a+r "$(distdir)"
637637 dist-gzip: distdir
638 tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
638 tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
639639 $(am__post_remove_distdir)
640640
641641 dist-bzip2: distdir
661661 @echo WARNING: "Support for shar distribution archives is" \
662662 "deprecated." >&2
663663 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
664 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
664 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
665665 $(am__post_remove_distdir)
666666
667667 dist-zip: distdir
679679 distcheck: dist
680680 case '$(DIST_ARCHIVES)' in \
681681 *.tar.gz*) \
682 GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
682 eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
683683 *.tar.bz2*) \
684684 bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
685685 *.tar.lz*) \
689689 *.tar.Z*) \
690690 uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
691691 *.shar.gz*) \
692 GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
692 eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
693693 *.zip*) \
694694 unzip $(distdir).zip ;;\
695695 esac
0 2019-03-18
1 Version 2.5.9
2 Updated Unicode character names and normalization data to 12.0.0
3 Various improvements for testing, compiling, and documentation.
4
05 2018-06-18
16 Version 2.5.8
27 Updated Unicode character names and normalization data to 11.0.0
66 See the Documentation folder for information on the TECkit mapping language
77 and conversion tool usage notes.
88
9 The TECkit libraries have been updated to support the Unicode 11.0.0 character
9 The TECkit libraries have been updated to support the Unicode 12.0.0 character
1010 repertoire.
1111
1212 Starting with TECkit version 2.5.7 there are several changes with the Windows
312312 long fileSize = ftell(mapFile);
313313 fseek(mapFile, 0, SEEK_SET);
314314
315 unsigned char* buf = (unsigned char*)malloc(fileSize);
315 unsigned char* buf = static_cast<unsigned char*>(malloc(fileSize));
316316 if (buf == 0) {
317317 fprintf(stderr, "unable to read mapping file for %s (file %s)\n", mappingName.c_str(), mapFileName.c_str());
318318 exit(1);
356356 size_t len = fread(buf, 1, sizeof(buf), ctlFile);
357357 done = len < sizeof(buf);
358358 if (!XML_Parse(parser, buf, len, done)) {
359 fprintf(stderr, "XML parse error: %s at line %lu\n", XML_ErrorString(XML_GetErrorCode(parser)), (unsigned long)XML_GetCurrentLineNumber(parser));
359 fprintf(stderr, "XML parse error: %s at line %lu\n", XML_ErrorString(XML_GetErrorCode(parser)), static_cast<unsigned long>(XML_GetCurrentLineNumber(parser)));
360360 status = 1;
361361 }
362362 } while (!status && !done);
453453 while (1) {
454454 UInt32 sourceUsed, destUsed, destUsed2;
455455 status = TECkit_ConvertBuffer(converter,
456 (Byte*)marker.data(),
456 reinterpret_cast<const Byte*>(marker.data()),
457457 marker.size() * 2,
458458 &sourceUsed,
459 (Byte*)cnvMarker.data(),
459 const_cast<Byte*>(reinterpret_cast<const Byte*>(cnvMarker.data())),
460460 cnvMarker.size(),
461461 &destUsed,
462462 true);
465465 continue;
466466 }
467467 status = TECkit_Flush(converter,
468 (Byte*)cnvMarker.data() + destUsed,
468 const_cast<Byte*>(reinterpret_cast<const Byte*>(cnvMarker.data()) + destUsed),
469469 cnvMarker.size() - destUsed,
470470 &destUsed2);
471471 if (status == kStatus_OutputBufferFull) {
490490 UInt32 sourceUsed, destUsed, destUsed2;
491491
492492 status = TECkit_ConvertBuffer(converter,
493 (Byte*)&inChar,
493 reinterpret_cast<const Byte*>(&inChar),
494494 2,
495495 &sourceUsed,
496496 &buf[0],
587587 map<string,string>::const_iterator i;
588588 switch (dataType) {
589589 case BODY_TEXT:
590 write_converted((Byte*)reader.text.data(), reader.text.length(), converterStack.back(), outFile);
590 write_converted(reinterpret_cast<const Byte*>(reader.text.data()), reader.text.length(), converterStack.back(), outFile);
591591 break;
592592
593593 case SFM:
597597 else
598598 converterStack.assign(1, converters[i->second]);
599599 reader.text.insert(reader.text.begin(), reader.escapeChar);
600 write_converted((Byte*)reader.text.data(), reader.text.length(), sfmConverter, outFile);
600 write_converted(reinterpret_cast<const Byte*>(reader.text.data()), reader.text.length(), sfmConverter, outFile);
601601 break;
602602
603603 case INLINE_MARKER:
607607 else
608608 converterStack.assign(1, converters[i->second]);
609609 reader.text.insert(reader.text.begin(), reader.escapeChar);
610 write_converted((Byte*)reader.text.data(), reader.text.length(), inlineConverter, outFile);
610 write_converted(reinterpret_cast<const Byte*>(reader.text.data()), reader.text.length(), inlineConverter, outFile);
611611 break;
612612
613613 case INLINE_START:
618618 converterStack.push_back(converters[i->second]);
619619 reader.text.insert(reader.text.begin(), reader.inlineEscapeChar);
620620 reader.text.insert(reader.text.end(), reader.startInline);
621 write_converted((Byte*)reader.text.data(), reader.text.length(), inlineConverter, outFile);
621 write_converted(reinterpret_cast<const Byte*>(reader.text.data()), reader.text.length(), inlineConverter, outFile);
622622 break;
623623
624624 case INLINE_END:
625625 reader.text.insert(reader.text.end(), reader.endInline);
626 write_converted((Byte*)reader.text.data(), reader.text.length(), inlineConverter, outFile);
626 write_converted(reinterpret_cast<const Byte*>(reader.text.data()), reader.text.length(), inlineConverter, outFile);
627627 converterStack.pop_back();
628628 break;
629629 }
680680 static string cnvMarker;
681681 switch (dataType) {
682682 case BODY_TEXT:
683 write_converted((Byte*)reader.text.data(), reader.text.length() * 2, converterStack.back(), outFile);
683 write_converted(reinterpret_cast<const Byte*>(reader.text.data()), reader.text.length() * 2, converterStack.back(), outFile);
684684 break;
685685
686686 case SFM:
691691 else
692692 converterStack.assign(1, converters[i->second]);
693693 reader.text.insert(reader.text.begin(), reader.escapeChar);
694 write_converted((Byte*)reader.text.data(), reader.text.length() * 2, sfmConverter, outFile);
694 write_converted(reinterpret_cast<const Byte*>(reader.text.data()), reader.text.length() * 2, sfmConverter, outFile);
695695 break;
696696
697697 case INLINE_MARKER:
702702 else
703703 converterStack.assign(1, converters[i->second]);
704704 reader.text.insert(reader.text.begin(), reader.inlineEscapeChar);
705 write_converted((Byte*)reader.text.data(), reader.text.length() * 2, inlineConverter, outFile);
705 write_converted(reinterpret_cast<const Byte*>(reader.text.data()), reader.text.length() * 2, inlineConverter, outFile);
706706 break;
707707
708708 case INLINE_START:
714714 converterStack.push_back(converters[i->second]);
715715 reader.text.insert(reader.text.begin(), reader.inlineEscapeChar);
716716 reader.text.insert(reader.text.end(), reader.startInline);
717 write_converted((Byte*)reader.text.data(), reader.text.length() * 2, inlineConverter, outFile);
717 write_converted(reinterpret_cast<const Byte*>(reader.text.data()), reader.text.length() * 2, inlineConverter, outFile);
718718 break;
719719
720720 case INLINE_END:
721721 reader.text.insert(reader.text.end(), reader.endInline);
722 write_converted((Byte*)reader.text.data(), reader.text.length() * 2, inlineConverter, outFile);
722 write_converted(reinterpret_cast<const Byte*>(reader.text.data()), reader.text.length() * 2, inlineConverter, outFile);
723723 converterStack.pop_back();
724724 break;
725725 }
88 #define INLINE_START 2
99 #define INLINE_END 3
1010 #define INLINE_MARKER 4
11 #define UNI_REPLACEMENT_CHAR (uint32_t)0x0000FFFD
12 #define UNI_MAX_BMP (uint32_t)0x0000FFFF
13 #define UNI_MAX_UTF16 (uint32_t)0x0010FFFF
11 #define UNI_REPLACEMENT_CHAR uint32_t(0x0000FFFD)
12 #define UNI_MAX_BMP uint32_t(0x0000FFFF)
13 #define UNI_MAX_UTF16 uint32_t(0x0010FFFF)
1414
1515 template<class C>
1616 class sfReader
0 #ifndef __ushort_chartraits_h__
1 #define __ushort_chartraits_h__
0 #pragma once
21
32 #include <iostream>
43 #include <string>
5150 {
5251 const char_type* __p = __s;
5352 while (*__p) ++__p;
54 return (__p - __s);
53 return static_cast<size_t>(__p - __s);
5554 }
5655
5756 static const char_type*
6463
6564 static char_type*
6665 move(char_type* __s1, const char_type* __s2, size_t __n)
67 { return (char_type*) memmove(__s1, __s2, __n * sizeof(char_type)); }
66 { return static_cast<char_type*>(memmove(__s1, __s2, __n * sizeof(char_type))); }
6867
6968 static char_type*
7069 copy(char_type* __s1, const char_type* __s2, size_t __n)
71 { return (char_type*) memcpy(__s1, __s2, __n * sizeof(char_type)); }
70 { return static_cast<char_type*>(memcpy(__s1, __s2, __n * sizeof(char_type))); }
7271
7372 static char_type*
7473 assign(char_type* __s, size_t __n, char_type __a)
9089 { return __c1 == __c2; }
9190
9291 static int_type
93 eof() { return static_cast<int_type>(-1); }
92 eof() { return int_type(-1); }
9493
9594 static int_type
9695 not_eof(const int_type& __c)
9796 { return eq_int_type(__c, eof()) ? int_type(0) : __c; }
9897 };
9998 }
100
101 #endif
0 # generated automatically by aclocal 1.15 -*- Autoconf -*-
1
2 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
0 # generated automatically by aclocal 1.15.1 -*- Autoconf -*-
1
2 # Copyright (C) 1996-2017 Free Software Foundation, Inc.
33
44 # This file is free software; the Free Software Foundation
55 # gives unlimited permission to copy and/or distribute it,
1919 If you have problems, you may need to regenerate the build system entirely.
2020 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
2121
22 # Copyright (C) 2002-2014 Free Software Foundation, Inc.
22 # Copyright (C) 2002-2017 Free Software Foundation, Inc.
2323 #
2424 # This file is free software; the Free Software Foundation
2525 # gives unlimited permission to copy and/or distribute it,
3434 [am__api_version='1.15'
3535 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
3636 dnl require some minimum version. Point them to the right macro.
37 m4_if([$1], [1.15], [],
37 m4_if([$1], [1.15.1], [],
3838 [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
3939 ])
4040
5050 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
5151 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
5252 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
53 [AM_AUTOMAKE_VERSION([1.15])dnl
53 [AM_AUTOMAKE_VERSION([1.15.1])dnl
5454 m4_ifndef([AC_AUTOCONF_VERSION],
5555 [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
5656 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
5757
5858 # AM_AUX_DIR_EXPAND -*- Autoconf -*-
5959
60 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
60 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
6161 #
6262 # This file is free software; the Free Software Foundation
6363 # gives unlimited permission to copy and/or distribute it,
109109
110110 # AM_CONDITIONAL -*- Autoconf -*-
111111
112 # Copyright (C) 1997-2014 Free Software Foundation, Inc.
112 # Copyright (C) 1997-2017 Free Software Foundation, Inc.
113113 #
114114 # This file is free software; the Free Software Foundation
115115 # gives unlimited permission to copy and/or distribute it,
140140 Usually this means the macro was only invoked conditionally.]])
141141 fi])])
142142
143 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
143 # Copyright (C) 1999-2017 Free Software Foundation, Inc.
144144 #
145145 # This file is free software; the Free Software Foundation
146146 # gives unlimited permission to copy and/or distribute it,
331331
332332 # Generate code to set up dependency tracking. -*- Autoconf -*-
333333
334 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
334 # Copyright (C) 1999-2017 Free Software Foundation, Inc.
335335 #
336336 # This file is free software; the Free Software Foundation
337337 # gives unlimited permission to copy and/or distribute it,
407407
408408 # Do all the work for Automake. -*- Autoconf -*-
409409
410 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
410 # Copyright (C) 1996-2017 Free Software Foundation, Inc.
411411 #
412412 # This file is free software; the Free Software Foundation
413413 # gives unlimited permission to copy and/or distribute it,
604604 done
605605 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
606606
607 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
607 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
608608 #
609609 # This file is free software; the Free Software Foundation
610610 # gives unlimited permission to copy and/or distribute it,
625625 fi
626626 AC_SUBST([install_sh])])
627627
628 # Copyright (C) 2003-2014 Free Software Foundation, Inc.
628 # Copyright (C) 2003-2017 Free Software Foundation, Inc.
629629 #
630630 # This file is free software; the Free Software Foundation
631631 # gives unlimited permission to copy and/or distribute it,
647647 # Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
648648 # From Jim Meyering
649649
650 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
650 # Copyright (C) 1996-2017 Free Software Foundation, Inc.
651651 #
652652 # This file is free software; the Free Software Foundation
653653 # gives unlimited permission to copy and/or distribute it,
682682
683683 # Check to see how 'make' treats includes. -*- Autoconf -*-
684684
685 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
685 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
686686 #
687687 # This file is free software; the Free Software Foundation
688688 # gives unlimited permission to copy and/or distribute it,
732732
733733 # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
734734
735 # Copyright (C) 1997-2014 Free Software Foundation, Inc.
735 # Copyright (C) 1997-2017 Free Software Foundation, Inc.
736736 #
737737 # This file is free software; the Free Software Foundation
738738 # gives unlimited permission to copy and/or distribute it,
773773 # Obsolete and "removed" macros, that must however still report explicit
774774 # error messages when used, to smooth transition.
775775 #
776 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
776 # Copyright (C) 1996-2017 Free Software Foundation, Inc.
777777 #
778778 # This file is free software; the Free Software Foundation
779779 # gives unlimited permission to copy and/or distribute it,
800800
801801 # Helper functions for option handling. -*- Autoconf -*-
802802
803 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
803 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
804804 #
805805 # This file is free software; the Free Software Foundation
806806 # gives unlimited permission to copy and/or distribute it,
829829 AC_DEFUN([_AM_IF_OPTION],
830830 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
831831
832 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
832 # Copyright (C) 1999-2017 Free Software Foundation, Inc.
833833 #
834834 # This file is free software; the Free Software Foundation
835835 # gives unlimited permission to copy and/or distribute it,
876876 # For backward compatibility.
877877 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
878878
879 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
879 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
880880 #
881881 # This file is free software; the Free Software Foundation
882882 # gives unlimited permission to copy and/or distribute it,
895895
896896 # Check to make sure that the build environment is sane. -*- Autoconf -*-
897897
898 # Copyright (C) 1996-2014 Free Software Foundation, Inc.
898 # Copyright (C) 1996-2017 Free Software Foundation, Inc.
899899 #
900900 # This file is free software; the Free Software Foundation
901901 # gives unlimited permission to copy and/or distribute it,
976976 rm -f conftest.file
977977 ])
978978
979 # Copyright (C) 2009-2014 Free Software Foundation, Inc.
979 # Copyright (C) 2009-2017 Free Software Foundation, Inc.
980980 #
981981 # This file is free software; the Free Software Foundation
982982 # gives unlimited permission to copy and/or distribute it,
10361036 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
10371037 ])
10381038
1039 # Copyright (C) 2001-2014 Free Software Foundation, Inc.
1039 # Copyright (C) 2001-2017 Free Software Foundation, Inc.
10401040 #
10411041 # This file is free software; the Free Software Foundation
10421042 # gives unlimited permission to copy and/or distribute it,
10641064 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
10651065 AC_SUBST([INSTALL_STRIP_PROGRAM])])
10661066
1067 # Copyright (C) 2006-2014 Free Software Foundation, Inc.
1067 # Copyright (C) 2006-2017 Free Software Foundation, Inc.
10681068 #
10691069 # This file is free software; the Free Software Foundation
10701070 # gives unlimited permission to copy and/or distribute it,
10831083
10841084 # Check how to create a tarball. -*- Autoconf -*-
10851085
1086 # Copyright (C) 2004-2014 Free Software Foundation, Inc.
1086 # Copyright (C) 2004-2017 Free Software Foundation, Inc.
10871087 #
10881088 # This file is free software; the Free Software Foundation
10891089 # gives unlimited permission to copy and/or distribute it,
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.15.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
00 #! /bin/sh
11 # Attempt to guess a canonical system name.
2 # Copyright 1992-2015 Free Software Foundation, Inc.
3
4 timestamp='2015-08-20'
2 # Copyright 1992-2018 Free Software Foundation, Inc.
3
4 timestamp='2018-02-24'
55
66 # This file is free software; you can redistribute it and/or modify it
77 # under the terms of the GNU General Public License as published by
1414 # General Public License for more details.
1515 #
1616 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, see <http://www.gnu.org/licenses/>.
17 # along with this program; if not, see <https://www.gnu.org/licenses/>.
1818 #
1919 # As a special exception to the GNU General Public License, if you
2020 # distribute this file as part of a program that contains a
2626 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
2727 #
2828 # You can get the latest version of this script from:
29 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
29 # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
3030 #
3131 # Please send patches to <config-patches@gnu.org>.
3232
3838
3939 Output the configuration name of the system \`$me' is run on.
4040
41 Operation modes:
41 Options:
4242 -h, --help print this help, then exit
4343 -t, --time-stamp print date of last modification, then exit
4444 -v, --version print version number, then exit
4949 GNU config.guess ($timestamp)
5050
5151 Originally written by Per Bothner.
52 Copyright 1992-2015 Free Software Foundation, Inc.
52 Copyright 1992-2018 Free Software Foundation, Inc.
5353
5454 This is free software; see the source for copying conditions. There is NO
5555 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
106106 dummy=$tmp/dummy ;
107107 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
108108 case $CC_FOR_BUILD,$HOST_CC,$CC in
109 ,,) echo "int x;" > $dummy.c ;
109 ,,) echo "int x;" > "$dummy.c" ;
110110 for c in cc gcc c89 c99 ; do
111 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
111 if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
112112 CC_FOR_BUILD="$c"; break ;
113113 fi ;
114114 done ;
131131 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
132132 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
133133
134 case "${UNAME_SYSTEM}" in
134 case "$UNAME_SYSTEM" in
135135 Linux|GNU|GNU/*)
136136 # If the system lacks a compiler, then just pick glibc.
137137 # We could probably try harder.
138138 LIBC=gnu
139139
140 eval $set_cc_for_build
141 cat <<-EOF > $dummy.c
140 eval "$set_cc_for_build"
141 cat <<-EOF > "$dummy.c"
142142 #include <features.h>
143143 #if defined(__UCLIBC__)
144144 LIBC=uclibc
148148 LIBC=gnu
149149 #endif
150150 EOF
151 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
151 eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
152
153 # If ldd exists, use it to detect musl libc.
154 if command -v ldd >/dev/null && \
155 ldd --version 2>&1 | grep -q ^musl
156 then
157 LIBC=musl
158 fi
152159 ;;
153160 esac
154161
155162 # Note: order is significant - the case branches are not exclusive.
156163
157 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
164 case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
158165 *:NetBSD:*:*)
159166 # NetBSD (nbsd) targets should (where applicable) match one or
160167 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
168175 # portion of the name. We always set it to "unknown".
169176 sysctl="sysctl -n hw.machine_arch"
170177 UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
171 /sbin/$sysctl 2>/dev/null || \
172 /usr/sbin/$sysctl 2>/dev/null || \
178 "/sbin/$sysctl" 2>/dev/null || \
179 "/usr/sbin/$sysctl" 2>/dev/null || \
173180 echo unknown)`
174 case "${UNAME_MACHINE_ARCH}" in
181 case "$UNAME_MACHINE_ARCH" in
175182 armeb) machine=armeb-unknown ;;
176183 arm*) machine=arm-unknown ;;
177184 sh3el) machine=shl-unknown ;;
178185 sh3eb) machine=sh-unknown ;;
179186 sh5el) machine=sh5le-unknown ;;
180187 earmv*)
181 arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
182 endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
183 machine=${arch}${endian}-unknown
188 arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
189 endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
190 machine="${arch}${endian}"-unknown
184191 ;;
185 *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
192 *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
186193 esac
187194 # The Operating System including object format, if it has switched
188 # to ELF recently, or will in the future.
189 case "${UNAME_MACHINE_ARCH}" in
190 arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
191 eval $set_cc_for_build
195 # to ELF recently (or will in the future) and ABI.
196 case "$UNAME_MACHINE_ARCH" in
197 earm*)
198 os=netbsdelf
199 ;;
200 arm*|i386|m68k|ns32k|sh3*|sparc|vax)
201 eval "$set_cc_for_build"
192202 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
193203 | grep -q __ELF__
194204 then
204214 ;;
205215 esac
206216 # Determine ABI tags.
207 case "${UNAME_MACHINE_ARCH}" in
217 case "$UNAME_MACHINE_ARCH" in
208218 earm*)
209219 expr='s/^earmv[0-9]/-eabi/;s/eb$//'
210 abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
220 abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
211221 ;;
212222 esac
213223 # The OS release
215225 # thus, need a distinct triplet. However, they do not need
216226 # kernel version information, so it can be replaced with a
217227 # suitable tag, in the style of linux-gnu.
218 case "${UNAME_VERSION}" in
228 case "$UNAME_VERSION" in
219229 Debian*)
220230 release='-gnu'
221231 ;;
222232 *)
223 release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
233 release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
224234 ;;
225235 esac
226236 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
227237 # contains redundant information, the shorter form:
228238 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
229 echo "${machine}-${os}${release}${abi}"
239 echo "$machine-${os}${release}${abi}"
230240 exit ;;
231241 *:Bitrig:*:*)
232242 UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
233 echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
243 echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
234244 exit ;;
235245 *:OpenBSD:*:*)
236246 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
237 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
247 echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
248 exit ;;
249 *:LibertyBSD:*:*)
250 UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
251 echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
252 exit ;;
253 *:MidnightBSD:*:*)
254 echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
238255 exit ;;
239256 *:ekkoBSD:*:*)
240 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
257 echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
241258 exit ;;
242259 *:SolidBSD:*:*)
243 echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
260 echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
244261 exit ;;
245262 macppc:MirBSD:*:*)
246 echo powerpc-unknown-mirbsd${UNAME_RELEASE}
263 echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
247264 exit ;;
248265 *:MirBSD:*:*)
249 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
266 echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
250267 exit ;;
251268 *:Sortix:*:*)
252 echo ${UNAME_MACHINE}-unknown-sortix
253 exit ;;
269 echo "$UNAME_MACHINE"-unknown-sortix
270 exit ;;
271 *:Redox:*:*)
272 echo "$UNAME_MACHINE"-unknown-redox
273 exit ;;
274 mips:OSF1:*.*)
275 echo mips-dec-osf1
276 exit ;;
254277 alpha:OSF1:*:*)
255278 case $UNAME_RELEASE in
256279 *4.0)
267290 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
268291 case "$ALPHA_CPU_TYPE" in
269292 "EV4 (21064)")
270 UNAME_MACHINE="alpha" ;;
293 UNAME_MACHINE=alpha ;;
271294 "EV4.5 (21064)")
272 UNAME_MACHINE="alpha" ;;
295 UNAME_MACHINE=alpha ;;
273296 "LCA4 (21066/21068)")
274 UNAME_MACHINE="alpha" ;;
297 UNAME_MACHINE=alpha ;;
275298 "EV5 (21164)")
276 UNAME_MACHINE="alphaev5" ;;
299 UNAME_MACHINE=alphaev5 ;;
277300 "EV5.6 (21164A)")
278 UNAME_MACHINE="alphaev56" ;;
301 UNAME_MACHINE=alphaev56 ;;
279302 "EV5.6 (21164PC)")
280 UNAME_MACHINE="alphapca56" ;;
303 UNAME_MACHINE=alphapca56 ;;
281304 "EV5.7 (21164PC)")
282 UNAME_MACHINE="alphapca57" ;;
305 UNAME_MACHINE=alphapca57 ;;
283306 "EV6 (21264)")
284 UNAME_MACHINE="alphaev6" ;;
307 UNAME_MACHINE=alphaev6 ;;
285308 "EV6.7 (21264A)")
286 UNAME_MACHINE="alphaev67" ;;
309 UNAME_MACHINE=alphaev67 ;;
287310 "EV6.8CB (21264C)")
288 UNAME_MACHINE="alphaev68" ;;
311 UNAME_MACHINE=alphaev68 ;;
289312 "EV6.8AL (21264B)")
290 UNAME_MACHINE="alphaev68" ;;
313 UNAME_MACHINE=alphaev68 ;;
291314 "EV6.8CX (21264D)")
292 UNAME_MACHINE="alphaev68" ;;
315 UNAME_MACHINE=alphaev68 ;;
293316 "EV6.9A (21264/EV69A)")
294 UNAME_MACHINE="alphaev69" ;;
317 UNAME_MACHINE=alphaev69 ;;
295318 "EV7 (21364)")
296 UNAME_MACHINE="alphaev7" ;;
319 UNAME_MACHINE=alphaev7 ;;
297320 "EV7.9 (21364A)")
298 UNAME_MACHINE="alphaev79" ;;
321 UNAME_MACHINE=alphaev79 ;;
299322 esac
300323 # A Pn.n version is a patched version.
301324 # A Vn.n version is a released version.
302325 # A Tn.n version is a released field test version.
303326 # A Xn.n version is an unreleased experimental baselevel.
304327 # 1.2 uses "1.2" for uname -r.
305 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
328 echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
306329 # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
307330 exitcode=$?
308331 trap '' 0
309332 exit $exitcode ;;
310 Alpha\ *:Windows_NT*:*)
311 # How do we know it's Interix rather than the generic POSIX subsystem?
312 # Should we change UNAME_MACHINE based on the output of uname instead
313 # of the specific Alpha model?
314 echo alpha-pc-interix
315 exit ;;
316 21064:Windows_NT:50:3)
317 echo alpha-dec-winnt3.5
318 exit ;;
319333 Amiga*:UNIX_System_V:4.0:*)
320334 echo m68k-unknown-sysv4
321335 exit ;;
322336 *:[Aa]miga[Oo][Ss]:*:*)
323 echo ${UNAME_MACHINE}-unknown-amigaos
337 echo "$UNAME_MACHINE"-unknown-amigaos
324338 exit ;;
325339 *:[Mm]orph[Oo][Ss]:*:*)
326 echo ${UNAME_MACHINE}-unknown-morphos
340 echo "$UNAME_MACHINE"-unknown-morphos
327341 exit ;;
328342 *:OS/390:*:*)
329343 echo i370-ibm-openedition
335349 echo powerpc-ibm-os400
336350 exit ;;
337351 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
338 echo arm-acorn-riscix${UNAME_RELEASE}
352 echo arm-acorn-riscix"$UNAME_RELEASE"
339353 exit ;;
340354 arm*:riscos:*:*|arm*:RISCOS:*:*)
341355 echo arm-unknown-riscos
362376 sparc) echo sparc-icl-nx7; exit ;;
363377 esac ;;
364378 s390x:SunOS:*:*)
365 echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
379 echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
366380 exit ;;
367381 sun4H:SunOS:5.*:*)
368 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
382 echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
369383 exit ;;
370384 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
371 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
385 echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
372386 exit ;;
373387 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
374 echo i386-pc-auroraux${UNAME_RELEASE}
388 echo i386-pc-auroraux"$UNAME_RELEASE"
375389 exit ;;
376390 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
377 eval $set_cc_for_build
378 SUN_ARCH="i386"
391 eval "$set_cc_for_build"
392 SUN_ARCH=i386
379393 # If there is a compiler, see if it is configured for 64-bit objects.
380394 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
381395 # This test works for both compilers.
382 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
396 if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
383397 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
384 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
398 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
385399 grep IS_64BIT_ARCH >/dev/null
386400 then
387 SUN_ARCH="x86_64"
401 SUN_ARCH=x86_64
388402 fi
389403 fi
390 echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
404 echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
391405 exit ;;
392406 sun4*:SunOS:6*:*)
393407 # According to config.sub, this is the proper way to canonicalize
394408 # SunOS6. Hard to guess exactly what SunOS6 will be like, but
395409 # it's likely to be more like Solaris than SunOS4.
396 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
410 echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
397411 exit ;;
398412 sun4*:SunOS:*:*)
399413 case "`/usr/bin/arch -k`" in
402416 ;;
403417 esac
404418 # Japanese Language versions have a version number like `4.1.3-JL'.
405 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
419 echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
406420 exit ;;
407421 sun3*:SunOS:*:*)
408 echo m68k-sun-sunos${UNAME_RELEASE}
422 echo m68k-sun-sunos"$UNAME_RELEASE"
409423 exit ;;
410424 sun*:*:4.2BSD:*)
411425 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
412 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
426 test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
413427 case "`/bin/arch`" in
414428 sun3)
415 echo m68k-sun-sunos${UNAME_RELEASE}
429 echo m68k-sun-sunos"$UNAME_RELEASE"
416430 ;;
417431 sun4)
418 echo sparc-sun-sunos${UNAME_RELEASE}
432 echo sparc-sun-sunos"$UNAME_RELEASE"
419433 ;;
420434 esac
421435 exit ;;
422436 aushp:SunOS:*:*)
423 echo sparc-auspex-sunos${UNAME_RELEASE}
437 echo sparc-auspex-sunos"$UNAME_RELEASE"
424438 exit ;;
425439 # The situation for MiNT is a little confusing. The machine name
426440 # can be virtually everything (everything which is not
431445 # MiNT. But MiNT is downward compatible to TOS, so this should
432446 # be no problem.
433447 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
434 echo m68k-atari-mint${UNAME_RELEASE}
448 echo m68k-atari-mint"$UNAME_RELEASE"
435449 exit ;;
436450 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
437 echo m68k-atari-mint${UNAME_RELEASE}
451 echo m68k-atari-mint"$UNAME_RELEASE"
438452 exit ;;
439453 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
440 echo m68k-atari-mint${UNAME_RELEASE}
454 echo m68k-atari-mint"$UNAME_RELEASE"
441455 exit ;;
442456 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
443 echo m68k-milan-mint${UNAME_RELEASE}
457 echo m68k-milan-mint"$UNAME_RELEASE"
444458 exit ;;
445459 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
446 echo m68k-hades-mint${UNAME_RELEASE}
460 echo m68k-hades-mint"$UNAME_RELEASE"
447461 exit ;;
448462 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
449 echo m68k-unknown-mint${UNAME_RELEASE}
463 echo m68k-unknown-mint"$UNAME_RELEASE"
450464 exit ;;
451465 m68k:machten:*:*)
452 echo m68k-apple-machten${UNAME_RELEASE}
466 echo m68k-apple-machten"$UNAME_RELEASE"
453467 exit ;;
454468 powerpc:machten:*:*)
455 echo powerpc-apple-machten${UNAME_RELEASE}
469 echo powerpc-apple-machten"$UNAME_RELEASE"
456470 exit ;;
457471 RISC*:Mach:*:*)
458472 echo mips-dec-mach_bsd4.3
459473 exit ;;
460474 RISC*:ULTRIX:*:*)
461 echo mips-dec-ultrix${UNAME_RELEASE}
475 echo mips-dec-ultrix"$UNAME_RELEASE"
462476 exit ;;
463477 VAX*:ULTRIX*:*:*)
464 echo vax-dec-ultrix${UNAME_RELEASE}
478 echo vax-dec-ultrix"$UNAME_RELEASE"
465479 exit ;;
466480 2020:CLIX:*:* | 2430:CLIX:*:*)
467 echo clipper-intergraph-clix${UNAME_RELEASE}
481 echo clipper-intergraph-clix"$UNAME_RELEASE"
468482 exit ;;
469483 mips:*:*:UMIPS | mips:*:*:RISCos)
470 eval $set_cc_for_build
471 sed 's/^ //' << EOF >$dummy.c
484 eval "$set_cc_for_build"
485 sed 's/^ //' << EOF > "$dummy.c"
472486 #ifdef __cplusplus
473487 #include <stdio.h> /* for printf() prototype */
474488 int main (int argc, char *argv[]) {
477491 #endif
478492 #if defined (host_mips) && defined (MIPSEB)
479493 #if defined (SYSTYPE_SYSV)
480 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
494 printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
481495 #endif
482496 #if defined (SYSTYPE_SVR4)
483 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
497 printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
484498 #endif
485499 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
486 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
500 printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
487501 #endif
488502 #endif
489503 exit (-1);
490504 }
491505 EOF
492 $CC_FOR_BUILD -o $dummy $dummy.c &&
493 dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
494 SYSTEM_NAME=`$dummy $dummyarg` &&
506 $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
507 dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
508 SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
495509 { echo "$SYSTEM_NAME"; exit; }
496 echo mips-mips-riscos${UNAME_RELEASE}
510 echo mips-mips-riscos"$UNAME_RELEASE"
497511 exit ;;
498512 Motorola:PowerMAX_OS:*:*)
499513 echo powerpc-motorola-powermax
519533 AViiON:dgux:*:*)
520534 # DG/UX returns AViiON for all architectures
521535 UNAME_PROCESSOR=`/usr/bin/uname -p`
522 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
536 if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
523537 then
524 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
525 [ ${TARGET_BINARY_INTERFACE}x = x ]
538 if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
539 [ "$TARGET_BINARY_INTERFACE"x = x ]
526540 then
527 echo m88k-dg-dgux${UNAME_RELEASE}
541 echo m88k-dg-dgux"$UNAME_RELEASE"
528542 else
529 echo m88k-dg-dguxbcs${UNAME_RELEASE}
543 echo m88k-dg-dguxbcs"$UNAME_RELEASE"
530544 fi
531545 else
532 echo i586-dg-dgux${UNAME_RELEASE}
546 echo i586-dg-dgux"$UNAME_RELEASE"
533547 fi
534548 exit ;;
535549 M88*:DolphinOS:*:*) # DolphinOS (SVR3)
546560 echo m68k-tektronix-bsd
547561 exit ;;
548562 *:IRIX*:*:*)
549 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
563 echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
550564 exit ;;
551565 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
552566 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
558572 if [ -x /usr/bin/oslevel ] ; then
559573 IBM_REV=`/usr/bin/oslevel`
560574 else
561 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
562 fi
563 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
575 IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
576 fi
577 echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
564578 exit ;;
565579 *:AIX:2:3)
566580 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
567 eval $set_cc_for_build
568 sed 's/^ //' << EOF >$dummy.c
581 eval "$set_cc_for_build"
582 sed 's/^ //' << EOF > "$dummy.c"
569583 #include <sys/systemcfg.h>
570584
571585 main()
576590 exit(0);
577591 }
578592 EOF
579 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
593 if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
580594 then
581595 echo "$SYSTEM_NAME"
582596 else
590604 exit ;;
591605 *:AIX:*:[4567])
592606 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
593 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
607 if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
594608 IBM_ARCH=rs6000
595609 else
596610 IBM_ARCH=powerpc
599613 IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
600614 awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
601615 else
602 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
603 fi
604 echo ${IBM_ARCH}-ibm-aix${IBM_REV}
616 IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
617 fi
618 echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
605619 exit ;;
606620 *:AIX:*:*)
607621 echo rs6000-ibm-aix
608622 exit ;;
609 ibmrt:4.4BSD:*|romp-ibm:BSD:*)
623 ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
610624 echo romp-ibm-bsd4.4
611625 exit ;;
612626 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
613 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
627 echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
614628 exit ;; # report: romp-ibm BSD 4.3
615629 *:BOSX:*:*)
616630 echo rs6000-bull-bosx
625639 echo m68k-hp-bsd4.4
626640 exit ;;
627641 9000/[34678]??:HP-UX:*:*)
628 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
629 case "${UNAME_MACHINE}" in
630 9000/31? ) HP_ARCH=m68000 ;;
631 9000/[34]?? ) HP_ARCH=m68k ;;
642 HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
643 case "$UNAME_MACHINE" in
644 9000/31?) HP_ARCH=m68000 ;;
645 9000/[34]??) HP_ARCH=m68k ;;
632646 9000/[678][0-9][0-9])
633647 if [ -x /usr/bin/getconf ]; then
634648 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
635649 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
636 case "${sc_cpu_version}" in
637 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
638 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
650 case "$sc_cpu_version" in
651 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
652 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
639653 532) # CPU_PA_RISC2_0
640 case "${sc_kernel_bits}" in
641 32) HP_ARCH="hppa2.0n" ;;
642 64) HP_ARCH="hppa2.0w" ;;
643 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
654 case "$sc_kernel_bits" in
655 32) HP_ARCH=hppa2.0n ;;
656 64) HP_ARCH=hppa2.0w ;;
657 '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
644658 esac ;;
645659 esac
646660 fi
647 if [ "${HP_ARCH}" = "" ]; then
648 eval $set_cc_for_build
649 sed 's/^ //' << EOF >$dummy.c
661 if [ "$HP_ARCH" = "" ]; then
662 eval "$set_cc_for_build"
663 sed 's/^ //' << EOF > "$dummy.c"
650664
651665 #define _HPUX_SOURCE
652666 #include <stdlib.h>
679693 exit (0);
680694 }
681695 EOF
682 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
696 (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
683697 test -z "$HP_ARCH" && HP_ARCH=hppa
684698 fi ;;
685699 esac
686 if [ ${HP_ARCH} = "hppa2.0w" ]
700 if [ "$HP_ARCH" = hppa2.0w ]
687701 then
688 eval $set_cc_for_build
702 eval "$set_cc_for_build"
689703
690704 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
691705 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
696710 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
697711 # => hppa64-hp-hpux11.23
698712
699 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
713 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
700714 grep -q __LP64__
701715 then
702 HP_ARCH="hppa2.0w"
716 HP_ARCH=hppa2.0w
703717 else
704 HP_ARCH="hppa64"
718 HP_ARCH=hppa64
705719 fi
706720 fi
707 echo ${HP_ARCH}-hp-hpux${HPUX_REV}
721 echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
708722 exit ;;
709723 ia64:HP-UX:*:*)
710 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
711 echo ia64-hp-hpux${HPUX_REV}
724 HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
725 echo ia64-hp-hpux"$HPUX_REV"
712726 exit ;;
713727 3050*:HI-UX:*:*)
714 eval $set_cc_for_build
715 sed 's/^ //' << EOF >$dummy.c
728 eval "$set_cc_for_build"
729 sed 's/^ //' << EOF > "$dummy.c"
716730 #include <unistd.h>
717731 int
718732 main ()
737751 exit (0);
738752 }
739753 EOF
740 $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
754 $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
741755 { echo "$SYSTEM_NAME"; exit; }
742756 echo unknown-hitachi-hiuxwe2
743757 exit ;;
744 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
758 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
745759 echo hppa1.1-hp-bsd
746760 exit ;;
747761 9000/8??:4.3bsd:*:*)
750764 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
751765 echo hppa1.0-hp-mpeix
752766 exit ;;
753 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
767 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
754768 echo hppa1.1-hp-osf
755769 exit ;;
756770 hp8??:OSF1:*:*)
758772 exit ;;
759773 i*86:OSF1:*:*)
760774 if [ -x /usr/sbin/sysversion ] ; then
761 echo ${UNAME_MACHINE}-unknown-osf1mk
775 echo "$UNAME_MACHINE"-unknown-osf1mk
762776 else
763 echo ${UNAME_MACHINE}-unknown-osf1
777 echo "$UNAME_MACHINE"-unknown-osf1
764778 fi
765779 exit ;;
766780 parisc*:Lites*:*:*)
785799 echo c4-convex-bsd
786800 exit ;;
787801 CRAY*Y-MP:*:*:*)
788 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
802 echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
789803 exit ;;
790804 CRAY*[A-Z]90:*:*:*)
791 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
805 echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
792806 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
793807 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
794808 -e 's/\.[^.]*$/.X/'
795809 exit ;;
796810 CRAY*TS:*:*:*)
797 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
811 echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
798812 exit ;;
799813 CRAY*T3E:*:*:*)
800 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
814 echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
801815 exit ;;
802816 CRAY*SV1:*:*:*)
803 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
817 echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
804818 exit ;;
805819 *:UNICOS/mp:*:*)
806 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
820 echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
807821 exit ;;
808822 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
809 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
810 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
811 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
823 FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
824 FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
825 FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
812826 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
813827 exit ;;
814828 5000:UNIX_System_V:4.*:*)
815 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
816 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
829 FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
830 FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
817831 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
818832 exit ;;
819833 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
820 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
834 echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
821835 exit ;;
822836 sparc*:BSD/OS:*:*)
823 echo sparc-unknown-bsdi${UNAME_RELEASE}
837 echo sparc-unknown-bsdi"$UNAME_RELEASE"
824838 exit ;;
825839 *:BSD/OS:*:*)
826 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
840 echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
827841 exit ;;
828842 *:FreeBSD:*:*)
829843 UNAME_PROCESSOR=`/usr/bin/uname -p`
830 case ${UNAME_PROCESSOR} in
844 case "$UNAME_PROCESSOR" in
831845 amd64)
832 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
833 *)
834 echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
846 UNAME_PROCESSOR=x86_64 ;;
847 i386)
848 UNAME_PROCESSOR=i586 ;;
835849 esac
850 echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
836851 exit ;;
837852 i*:CYGWIN*:*)
838 echo ${UNAME_MACHINE}-pc-cygwin
853 echo "$UNAME_MACHINE"-pc-cygwin
839854 exit ;;
840855 *:MINGW64*:*)
841 echo ${UNAME_MACHINE}-pc-mingw64
856 echo "$UNAME_MACHINE"-pc-mingw64
842857 exit ;;
843858 *:MINGW*:*)
844 echo ${UNAME_MACHINE}-pc-mingw32
859 echo "$UNAME_MACHINE"-pc-mingw32
845860 exit ;;
846861 *:MSYS*:*)
847 echo ${UNAME_MACHINE}-pc-msys
848 exit ;;
849 i*:windows32*:*)
850 # uname -m includes "-pc" on this system.
851 echo ${UNAME_MACHINE}-mingw32
862 echo "$UNAME_MACHINE"-pc-msys
852863 exit ;;
853864 i*:PW*:*)
854 echo ${UNAME_MACHINE}-pc-pw32
865 echo "$UNAME_MACHINE"-pc-pw32
855866 exit ;;
856867 *:Interix*:*)
857 case ${UNAME_MACHINE} in
868 case "$UNAME_MACHINE" in
858869 x86)
859 echo i586-pc-interix${UNAME_RELEASE}
870 echo i586-pc-interix"$UNAME_RELEASE"
860871 exit ;;
861872 authenticamd | genuineintel | EM64T)
862 echo x86_64-unknown-interix${UNAME_RELEASE}
873 echo x86_64-unknown-interix"$UNAME_RELEASE"
863874 exit ;;
864875 IA64)
865 echo ia64-unknown-interix${UNAME_RELEASE}
876 echo ia64-unknown-interix"$UNAME_RELEASE"
866877 exit ;;
867878 esac ;;
868 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
869 echo i${UNAME_MACHINE}-pc-mks
870 exit ;;
871 8664:Windows_NT:*)
872 echo x86_64-pc-mks
873 exit ;;
874 i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
875 # How do we know it's Interix rather than the generic POSIX subsystem?
876 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
877 # UNAME_MACHINE based on the output of uname instead of i386?
878 echo i586-pc-interix
879 exit ;;
880879 i*:UWIN*:*)
881 echo ${UNAME_MACHINE}-pc-uwin
880 echo "$UNAME_MACHINE"-pc-uwin
882881 exit ;;
883882 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
884883 echo x86_64-unknown-cygwin
885884 exit ;;
886 p*:CYGWIN*:*)
887 echo powerpcle-unknown-cygwin
888 exit ;;
889885 prep*:SunOS:5.*:*)
890 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
886 echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
891887 exit ;;
892888 *:GNU:*:*)
893889 # the GNU system
894 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
890 echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
895891 exit ;;
896892 *:GNU/*:*:*)
897893 # other systems with GNU libc and userland
898 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
894 echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
899895 exit ;;
900896 i*86:Minix:*:*)
901 echo ${UNAME_MACHINE}-pc-minix
897 echo "$UNAME_MACHINE"-pc-minix
902898 exit ;;
903899 aarch64:Linux:*:*)
904 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
900 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
905901 exit ;;
906902 aarch64_be:Linux:*:*)
907903 UNAME_MACHINE=aarch64_be
908 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
904 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
909905 exit ;;
910906 alpha:Linux:*:*)
911907 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
918914 EV68*) UNAME_MACHINE=alphaev68 ;;
919915 esac
920916 objdump --private-headers /bin/sh | grep -q ld.so.1
921 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
922 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
917 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
918 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
923919 exit ;;
924920 arc:Linux:*:* | arceb:Linux:*:*)
925 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
921 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
926922 exit ;;
927923 arm*:Linux:*:*)
928 eval $set_cc_for_build
924 eval "$set_cc_for_build"
929925 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
930926 | grep -q __ARM_EABI__
931927 then
932 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
928 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
933929 else
934930 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
935931 | grep -q __ARM_PCS_VFP
936932 then
937 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
933 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
938934 else
939 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
935 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
940936 fi
941937 fi
942938 exit ;;
943939 avr32*:Linux:*:*)
944 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
940 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
945941 exit ;;
946942 cris:Linux:*:*)
947 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
943 echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
948944 exit ;;
949945 crisv32:Linux:*:*)
950 echo ${UNAME_MACHINE}-axis-linux-${LIBC}
946 echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
951947 exit ;;
952948 e2k:Linux:*:*)
953 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
949 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
954950 exit ;;
955951 frv:Linux:*:*)
956 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
952 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
957953 exit ;;
958954 hexagon:Linux:*:*)
959 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
955 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
960956 exit ;;
961957 i*86:Linux:*:*)
962 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
958 echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
963959 exit ;;
964960 ia64:Linux:*:*)
965 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
961 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
962 exit ;;
963 k1om:Linux:*:*)
964 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
966965 exit ;;
967966 m32r*:Linux:*:*)
968 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
967 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
969968 exit ;;
970969 m68*:Linux:*:*)
971 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
970 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
972971 exit ;;
973972 mips:Linux:*:* | mips64:Linux:*:*)
974 eval $set_cc_for_build
975 sed 's/^ //' << EOF >$dummy.c
973 eval "$set_cc_for_build"
974 sed 's/^ //' << EOF > "$dummy.c"
976975 #undef CPU
977976 #undef ${UNAME_MACHINE}
978977 #undef ${UNAME_MACHINE}el
986985 #endif
987986 #endif
988987 EOF
989 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
990 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
988 eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
989 test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
991990 ;;
991 mips64el:Linux:*:*)
992 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
993 exit ;;
992994 openrisc*:Linux:*:*)
993 echo or1k-unknown-linux-${LIBC}
995 echo or1k-unknown-linux-"$LIBC"
994996 exit ;;
995997 or32:Linux:*:* | or1k*:Linux:*:*)
996 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
998 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
997999 exit ;;
9981000 padre:Linux:*:*)
999 echo sparc-unknown-linux-${LIBC}
1001 echo sparc-unknown-linux-"$LIBC"
10001002 exit ;;
10011003 parisc64:Linux:*:* | hppa64:Linux:*:*)
1002 echo hppa64-unknown-linux-${LIBC}
1004 echo hppa64-unknown-linux-"$LIBC"
10031005 exit ;;
10041006 parisc:Linux:*:* | hppa:Linux:*:*)
10051007 # Look for CPU level
10061008 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
1007 PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
1008 PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
1009 *) echo hppa-unknown-linux-${LIBC} ;;
1009 PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
1010 PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
1011 *) echo hppa-unknown-linux-"$LIBC" ;;
10101012 esac
10111013 exit ;;
10121014 ppc64:Linux:*:*)
1013 echo powerpc64-unknown-linux-${LIBC}
1015 echo powerpc64-unknown-linux-"$LIBC"
10141016 exit ;;
10151017 ppc:Linux:*:*)
1016 echo powerpc-unknown-linux-${LIBC}
1018 echo powerpc-unknown-linux-"$LIBC"
10171019 exit ;;
10181020 ppc64le:Linux:*:*)
1019 echo powerpc64le-unknown-linux-${LIBC}
1021 echo powerpc64le-unknown-linux-"$LIBC"
10201022 exit ;;
10211023 ppcle:Linux:*:*)
1022 echo powerpcle-unknown-linux-${LIBC}
1024 echo powerpcle-unknown-linux-"$LIBC"
1025 exit ;;
1026 riscv32:Linux:*:* | riscv64:Linux:*:*)
1027 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10231028 exit ;;
10241029 s390:Linux:*:* | s390x:Linux:*:*)
1025 echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
1030 echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
10261031 exit ;;
10271032 sh64*:Linux:*:*)
1028 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1033 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10291034 exit ;;
10301035 sh*:Linux:*:*)
1031 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1036 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10321037 exit ;;
10331038 sparc:Linux:*:* | sparc64:Linux:*:*)
1034 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1039 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10351040 exit ;;
10361041 tile*:Linux:*:*)
1037 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1042 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10381043 exit ;;
10391044 vax:Linux:*:*)
1040 echo ${UNAME_MACHINE}-dec-linux-${LIBC}
1045 echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
10411046 exit ;;
10421047 x86_64:Linux:*:*)
1043 echo ${UNAME_MACHINE}-pc-linux-${LIBC}
1048 if objdump -f /bin/sh | grep -q elf32-x86-64; then
1049 echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32
1050 else
1051 echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
1052 fi
10441053 exit ;;
10451054 xtensa*:Linux:*:*)
1046 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
1055 echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
10471056 exit ;;
10481057 i*86:DYNIX/ptx:4*:*)
10491058 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
10571066 # I am not positive that other SVR4 systems won't match this,
10581067 # I just have to hope. -- rms.
10591068 # Use sysv4.2uw... so that sysv4* matches it.
1060 echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
1069 echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
10611070 exit ;;
10621071 i*86:OS/2:*:*)
10631072 # If we were able to find `uname', then EMX Unix compatibility
10641073 # is probably installed.
1065 echo ${UNAME_MACHINE}-pc-os2-emx
1074 echo "$UNAME_MACHINE"-pc-os2-emx
10661075 exit ;;
10671076 i*86:XTS-300:*:STOP)
1068 echo ${UNAME_MACHINE}-unknown-stop
1077 echo "$UNAME_MACHINE"-unknown-stop
10691078 exit ;;
10701079 i*86:atheos:*:*)
1071 echo ${UNAME_MACHINE}-unknown-atheos
1080 echo "$UNAME_MACHINE"-unknown-atheos
10721081 exit ;;
10731082 i*86:syllable:*:*)
1074 echo ${UNAME_MACHINE}-pc-syllable
1083 echo "$UNAME_MACHINE"-pc-syllable
10751084 exit ;;
10761085 i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
1077 echo i386-unknown-lynxos${UNAME_RELEASE}
1086 echo i386-unknown-lynxos"$UNAME_RELEASE"
10781087 exit ;;
10791088 i*86:*DOS:*:*)
1080 echo ${UNAME_MACHINE}-pc-msdosdjgpp
1081 exit ;;
1082 i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
1083 UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
1089 echo "$UNAME_MACHINE"-pc-msdosdjgpp
1090 exit ;;
1091 i*86:*:4.*:*)
1092 UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
10841093 if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
1085 echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
1094 echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
10861095 else
1087 echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
1096 echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
10881097 fi
10891098 exit ;;
10901099 i*86:*:5:[678]*)
10941103 *Pentium) UNAME_MACHINE=i586 ;;
10951104 *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
10961105 esac
1097 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
1106 echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
10981107 exit ;;
10991108 i*86:*:3.2:*)
11001109 if test -f /usr/options/cb.name; then
11011110 UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
1102 echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
1111 echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
11031112 elif /bin/uname -X 2>/dev/null >/dev/null ; then
11041113 UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
11051114 (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
11091118 && UNAME_MACHINE=i686
11101119 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
11111120 && UNAME_MACHINE=i686
1112 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
1121 echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
11131122 else
1114 echo ${UNAME_MACHINE}-pc-sysv32
1123 echo "$UNAME_MACHINE"-pc-sysv32
11151124 fi
11161125 exit ;;
11171126 pc:*:*:*)
11191128 # uname -m prints for DJGPP always 'pc', but it prints nothing about
11201129 # the processor, so we play safe by assuming i586.
11211130 # Note: whatever this is, it MUST be the same as what config.sub
1122 # prints for the "djgpp" host, or else GDB configury will decide that
1131 # prints for the "djgpp" host, or else GDB configure will decide that
11231132 # this is a cross-build.
11241133 echo i586-pc-msdosdjgpp
11251134 exit ;;
11311140 exit ;;
11321141 i860:*:4.*:*) # i860-SVR4
11331142 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
1134 echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
1143 echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
11351144 else # Add other i860-SVR4 vendors below as they are discovered.
1136 echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
1145 echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
11371146 fi
11381147 exit ;;
11391148 mini*:CTIX:SYS*5:*)
11531162 test -r /etc/.relid \
11541163 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
11551164 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1156 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1165 && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
11571166 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1158 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1167 && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
11591168 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
11601169 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
11611170 && { echo i486-ncr-sysv4; exit; } ;;
11641173 test -r /etc/.relid \
11651174 && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
11661175 /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
1167 && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
1176 && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
11681177 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
1169 && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
1178 && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
11701179 /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
1171 && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
1180 && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
11721181 m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
1173 echo m68k-unknown-lynxos${UNAME_RELEASE}
1182 echo m68k-unknown-lynxos"$UNAME_RELEASE"
11741183 exit ;;
11751184 mc68030:UNIX_System_V:4.*:*)
11761185 echo m68k-atari-sysv4
11771186 exit ;;
11781187 TSUNAMI:LynxOS:2.*:*)
1179 echo sparc-unknown-lynxos${UNAME_RELEASE}
1188 echo sparc-unknown-lynxos"$UNAME_RELEASE"
11801189 exit ;;
11811190 rs6000:LynxOS:2.*:*)
1182 echo rs6000-unknown-lynxos${UNAME_RELEASE}
1191 echo rs6000-unknown-lynxos"$UNAME_RELEASE"
11831192 exit ;;
11841193 PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
1185 echo powerpc-unknown-lynxos${UNAME_RELEASE}
1194 echo powerpc-unknown-lynxos"$UNAME_RELEASE"
11861195 exit ;;
11871196 SM[BE]S:UNIX_SV:*:*)
1188 echo mips-dde-sysv${UNAME_RELEASE}
1197 echo mips-dde-sysv"$UNAME_RELEASE"
11891198 exit ;;
11901199 RM*:ReliantUNIX-*:*:*)
11911200 echo mips-sni-sysv4
11961205 *:SINIX-*:*:*)
11971206 if uname -p 2>/dev/null >/dev/null ; then
11981207 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1199 echo ${UNAME_MACHINE}-sni-sysv4
1208 echo "$UNAME_MACHINE"-sni-sysv4
12001209 else
12011210 echo ns32k-sni-sysv
12021211 fi
12161225 exit ;;
12171226 i*86:VOS:*:*)
12181227 # From Paul.Green@stratus.com.
1219 echo ${UNAME_MACHINE}-stratus-vos
1228 echo "$UNAME_MACHINE"-stratus-vos
12201229 exit ;;
12211230 *:VOS:*:*)
12221231 # From Paul.Green@stratus.com.
12231232 echo hppa1.1-stratus-vos
12241233 exit ;;
12251234 mc68*:A/UX:*:*)
1226 echo m68k-apple-aux${UNAME_RELEASE}
1235 echo m68k-apple-aux"$UNAME_RELEASE"
12271236 exit ;;
12281237 news*:NEWS-OS:6*:*)
12291238 echo mips-sony-newsos6
12301239 exit ;;
12311240 R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
12321241 if [ -d /usr/nec ]; then
1233 echo mips-nec-sysv${UNAME_RELEASE}
1242 echo mips-nec-sysv"$UNAME_RELEASE"
12341243 else
1235 echo mips-unknown-sysv${UNAME_RELEASE}
1244 echo mips-unknown-sysv"$UNAME_RELEASE"
12361245 fi
12371246 exit ;;
12381247 BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
12511260 echo x86_64-unknown-haiku
12521261 exit ;;
12531262 SX-4:SUPER-UX:*:*)
1254 echo sx4-nec-superux${UNAME_RELEASE}
1263 echo sx4-nec-superux"$UNAME_RELEASE"
12551264 exit ;;
12561265 SX-5:SUPER-UX:*:*)
1257 echo sx5-nec-superux${UNAME_RELEASE}
1266 echo sx5-nec-superux"$UNAME_RELEASE"
12581267 exit ;;
12591268 SX-6:SUPER-UX:*:*)
1260 echo sx6-nec-superux${UNAME_RELEASE}
1269 echo sx6-nec-superux"$UNAME_RELEASE"
12611270 exit ;;
12621271 SX-7:SUPER-UX:*:*)
1263 echo sx7-nec-superux${UNAME_RELEASE}
1272 echo sx7-nec-superux"$UNAME_RELEASE"
12641273 exit ;;
12651274 SX-8:SUPER-UX:*:*)
1266 echo sx8-nec-superux${UNAME_RELEASE}
1275 echo sx8-nec-superux"$UNAME_RELEASE"
12671276 exit ;;
12681277 SX-8R:SUPER-UX:*:*)
1269 echo sx8r-nec-superux${UNAME_RELEASE}
1278 echo sx8r-nec-superux"$UNAME_RELEASE"
1279 exit ;;
1280 SX-ACE:SUPER-UX:*:*)
1281 echo sxace-nec-superux"$UNAME_RELEASE"
12701282 exit ;;
12711283 Power*:Rhapsody:*:*)
1272 echo powerpc-apple-rhapsody${UNAME_RELEASE}
1284 echo powerpc-apple-rhapsody"$UNAME_RELEASE"
12731285 exit ;;
12741286 *:Rhapsody:*:*)
1275 echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
1287 echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
12761288 exit ;;
12771289 *:Darwin:*:*)
12781290 UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
1279 eval $set_cc_for_build
1291 eval "$set_cc_for_build"
12801292 if test "$UNAME_PROCESSOR" = unknown ; then
12811293 UNAME_PROCESSOR=powerpc
12821294 fi
1283 if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
1284 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
1295 if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
1296 if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
12851297 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
1286 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
1287 grep IS_64BIT_ARCH >/dev/null
1298 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1299 grep IS_64BIT_ARCH >/dev/null
12881300 then
12891301 case $UNAME_PROCESSOR in
12901302 i386) UNAME_PROCESSOR=x86_64 ;;
12911303 powerpc) UNAME_PROCESSOR=powerpc64 ;;
12921304 esac
1305 fi
1306 # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
1307 if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
1308 (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
1309 grep IS_PPC >/dev/null
1310 then
1311 UNAME_PROCESSOR=powerpc
12931312 fi
12941313 fi
12951314 elif test "$UNAME_PROCESSOR" = i386 ; then
13011320 # that Apple uses in portable devices.
13021321 UNAME_PROCESSOR=x86_64
13031322 fi
1304 echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
1323 echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
13051324 exit ;;
13061325 *:procnto*:*:* | *:QNX:[0123456789]*:*)
13071326 UNAME_PROCESSOR=`uname -p`
1308 if test "$UNAME_PROCESSOR" = "x86"; then
1327 if test "$UNAME_PROCESSOR" = x86; then
13091328 UNAME_PROCESSOR=i386
13101329 UNAME_MACHINE=pc
13111330 fi
1312 echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
1331 echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
13131332 exit ;;
13141333 *:QNX:*:4*)
13151334 echo i386-pc-qnx
13161335 exit ;;
1317 NEO-?:NONSTOP_KERNEL:*:*)
1318 echo neo-tandem-nsk${UNAME_RELEASE}
1336 NEO-*:NONSTOP_KERNEL:*:*)
1337 echo neo-tandem-nsk"$UNAME_RELEASE"
13191338 exit ;;
13201339 NSE-*:NONSTOP_KERNEL:*:*)
1321 echo nse-tandem-nsk${UNAME_RELEASE}
1322 exit ;;
1323 NSR-?:NONSTOP_KERNEL:*:*)
1324 echo nsr-tandem-nsk${UNAME_RELEASE}
1340 echo nse-tandem-nsk"$UNAME_RELEASE"
1341 exit ;;
1342 NSR-*:NONSTOP_KERNEL:*:*)
1343 echo nsr-tandem-nsk"$UNAME_RELEASE"
1344 exit ;;
1345 NSV-*:NONSTOP_KERNEL:*:*)
1346 echo nsv-tandem-nsk"$UNAME_RELEASE"
1347 exit ;;
1348 NSX-*:NONSTOP_KERNEL:*:*)
1349 echo nsx-tandem-nsk"$UNAME_RELEASE"
13251350 exit ;;
13261351 *:NonStop-UX:*:*)
13271352 echo mips-compaq-nonstopux
13301355 echo bs2000-siemens-sysv
13311356 exit ;;
13321357 DS/*:UNIX_System_V:*:*)
1333 echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
1358 echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
13341359 exit ;;
13351360 *:Plan9:*:*)
13361361 # "uname -m" is not consistent, so use $cputype instead. 386
13371362 # is converted to i386 for consistency with other x86
13381363 # operating systems.
1339 if test "$cputype" = "386"; then
1364 if test "$cputype" = 386; then
13401365 UNAME_MACHINE=i386
13411366 else
13421367 UNAME_MACHINE="$cputype"
13431368 fi
1344 echo ${UNAME_MACHINE}-unknown-plan9
1369 echo "$UNAME_MACHINE"-unknown-plan9
13451370 exit ;;
13461371 *:TOPS-10:*:*)
13471372 echo pdp10-unknown-tops10
13621387 echo pdp10-unknown-its
13631388 exit ;;
13641389 SEI:*:*:SEIUX)
1365 echo mips-sei-seiux${UNAME_RELEASE}
1390 echo mips-sei-seiux"$UNAME_RELEASE"
13661391 exit ;;
13671392 *:DragonFly:*:*)
1368 echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
1393 echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
13691394 exit ;;
13701395 *:*VMS:*:*)
13711396 UNAME_MACHINE=`(uname -p) 2>/dev/null`
1372 case "${UNAME_MACHINE}" in
1397 case "$UNAME_MACHINE" in
13731398 A*) echo alpha-dec-vms ; exit ;;
13741399 I*) echo ia64-dec-vms ; exit ;;
13751400 V*) echo vax-dec-vms ; exit ;;
13781403 echo i386-pc-xenix
13791404 exit ;;
13801405 i*86:skyos:*:*)
1381 echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
1406 echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
13821407 exit ;;
13831408 i*86:rdos:*:*)
1384 echo ${UNAME_MACHINE}-pc-rdos
1409 echo "$UNAME_MACHINE"-pc-rdos
13851410 exit ;;
13861411 i*86:AROS:*:*)
1387 echo ${UNAME_MACHINE}-pc-aros
1412 echo "$UNAME_MACHINE"-pc-aros
13881413 exit ;;
13891414 x86_64:VMkernel:*:*)
1390 echo ${UNAME_MACHINE}-unknown-esx
1415 echo "$UNAME_MACHINE"-unknown-esx
1416 exit ;;
1417 amd64:Isilon\ OneFS:*:*)
1418 echo x86_64-unknown-onefs
13911419 exit ;;
13921420 esac
13931421
1422 echo "$0: unable to guess system type" >&2
1423
1424 case "$UNAME_MACHINE:$UNAME_SYSTEM" in
1425 mips:Linux | mips64:Linux)
1426 # If we got here on MIPS GNU/Linux, output extra information.
1427 cat >&2 <<EOF
1428
1429 NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
1430 the system type. Please install a C compiler and try again.
1431 EOF
1432 ;;
1433 esac
1434
13941435 cat >&2 <<EOF
1395 $0: unable to guess system type
1396
1397 This script, last modified $timestamp, has failed to recognize
1398 the operating system you are using. It is advised that you
1399 download the most up to date version of the config scripts from
1400
1401 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
1436
1437 This script (version $timestamp), has failed to recognize the
1438 operating system you are using. If your script is old, overwrite *all*
1439 copies of config.guess and config.sub with the latest versions from:
1440
1441 https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
14021442 and
1403 http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
1404
1405 If the version you run ($0) is already up to date, please
1406 send the following data and any information you think might be
1407 pertinent to <config-patches@gnu.org> in order to provide the needed
1408 information to handle your system.
1443 https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
1444
1445 If $0 has already been updated, send the following data and any
1446 information you think might be pertinent to config-patches@gnu.org to
1447 provide the necessary information to handle your system.
14091448
14101449 config.guess timestamp = $timestamp
14111450
14241463 /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
14251464 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
14261465
1427 UNAME_MACHINE = ${UNAME_MACHINE}
1428 UNAME_RELEASE = ${UNAME_RELEASE}
1429 UNAME_SYSTEM = ${UNAME_SYSTEM}
1430 UNAME_VERSION = ${UNAME_VERSION}
1466 UNAME_MACHINE = "$UNAME_MACHINE"
1467 UNAME_RELEASE = "$UNAME_RELEASE"
1468 UNAME_SYSTEM = "$UNAME_SYSTEM"
1469 UNAME_VERSION = "$UNAME_VERSION"
14311470 EOF
14321471
14331472 exit 1
14341473
14351474 # Local variables:
1436 # eval: (add-hook 'write-file-hooks 'time-stamp)
1475 # eval: (add-hook 'write-file-functions 'time-stamp)
14371476 # time-stamp-start: "timestamp='"
14381477 # time-stamp-format: "%:y-%02m-%02d"
14391478 # time-stamp-end: "'"
00 #! /bin/sh
11 # Configuration validation subroutine script.
2 # Copyright 1992-2015 Free Software Foundation, Inc.
3
4 timestamp='2015-08-20'
2 # Copyright 1992-2018 Free Software Foundation, Inc.
3
4 timestamp='2018-02-22'
55
66 # This file is free software; you can redistribute it and/or modify it
77 # under the terms of the GNU General Public License as published by
1414 # General Public License for more details.
1515 #
1616 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, see <http://www.gnu.org/licenses/>.
17 # along with this program; if not, see <https://www.gnu.org/licenses/>.
1818 #
1919 # As a special exception to the GNU General Public License, if you
2020 # distribute this file as part of a program that contains a
3232 # Otherwise, we print the canonical config type on stdout and succeed.
3333
3434 # You can get the latest version of this script from:
35 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
35 # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
3636
3737 # This file is supposed to be the same for all GNU packages
3838 # and recognize all the CPU types, system types and aliases
5252 me=`echo "$0" | sed -e 's,.*/,,'`
5353
5454 usage="\
55 Usage: $0 [OPTION] CPU-MFR-OPSYS
56 $0 [OPTION] ALIAS
55 Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
5756
5857 Canonicalize a configuration name.
5958
60 Operation modes:
59 Options:
6160 -h, --help print this help, then exit
6261 -t, --time-stamp print date of last modification, then exit
6362 -v, --version print version number, then exit
6766 version="\
6867 GNU config.sub ($timestamp)
6968
70 Copyright 1992-2015 Free Software Foundation, Inc.
69 Copyright 1992-2018 Free Software Foundation, Inc.
7170
7271 This is free software; see the source for copying conditions. There is NO
7372 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
9493
9594 *local*)
9695 # First pass through any local machine types.
97 echo $1
96 echo "$1"
9897 exit ;;
9998
10099 * )
112111
113112 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
114113 # Here we must recognize all the valid KERNEL-OS combinations.
115 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
114 maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
116115 case $maybe_os in
117116 nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
118117 linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
119118 knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
120 kopensolaris*-gnu* | \
119 kopensolaris*-gnu* | cloudabi*-eabi* | \
121120 storm-chaos* | os2-emx* | rtmk-nova*)
122121 os=-$maybe_os
123 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
122 basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
124123 ;;
125124 android-linux)
126125 os=-linux-android
127 basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
126 basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
128127 ;;
129128 *)
130 basic_machine=`echo $1 | sed 's/-[^-]*$//'`
131 if [ $basic_machine != $1 ]
132 then os=`echo $1 | sed 's/.*-/-/'`
129 basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
130 if [ "$basic_machine" != "$1" ]
131 then os=`echo "$1" | sed 's/.*-/-/'`
133132 else os=; fi
134133 ;;
135134 esac
178177 ;;
179178 -sco6)
180179 os=-sco5v6
181 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
180 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
182181 ;;
183182 -sco5)
184183 os=-sco3.2v5
185 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
184 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
186185 ;;
187186 -sco4)
188187 os=-sco3.2v4
189 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
188 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
190189 ;;
191190 -sco3.2.[4-9]*)
192191 os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
193 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
192 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
194193 ;;
195194 -sco3.2v[4-9]*)
196195 # Don't forget version if it is 3.2v4 or newer.
197 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
196 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
198197 ;;
199198 -sco5v6*)
200199 # Don't forget version if it is 3.2v4 or newer.
201 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
200 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
202201 ;;
203202 -sco*)
204203 os=-sco3.2v2
205 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
204 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
206205 ;;
207206 -udk*)
208 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
207 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
209208 ;;
210209 -isc)
211210 os=-isc2.2
212 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
211 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
213212 ;;
214213 -clix*)
215214 basic_machine=clipper-intergraph
216215 ;;
217216 -isc*)
218 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
217 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
219218 ;;
220219 -lynx*178)
221220 os=-lynxos178
227226 os=-lynxos
228227 ;;
229228 -ptx*)
230 basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
231 ;;
232 -windowsnt*)
233 os=`echo $os | sed -e 's/windowsnt/winnt/'`
229 basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
234230 ;;
235231 -psos*)
236232 os=-psos
263259 | fido | fr30 | frv | ft32 \
264260 | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
265261 | hexagon \
266 | i370 | i860 | i960 | ia64 \
262 | i370 | i860 | i960 | ia16 | ia64 \
267263 | ip2k | iq2000 \
268264 | k1om \
269265 | le32 | le64 \
299295 | nios | nios2 | nios2eb | nios2el \
300296 | ns16k | ns32k \
301297 | open8 | or1k | or1knd | or32 \
302 | pdp10 | pdp11 | pj | pjl \
298 | pdp10 | pj | pjl \
303299 | powerpc | powerpc64 | powerpc64le | powerpcle \
300 | pru \
304301 | pyramid \
305302 | riscv32 | riscv64 \
306303 | rl78 | rx \
314311 | ubicom32 \
315312 | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
316313 | visium \
317 | we32k \
314 | wasm32 \
318315 | x86 | xc16x | xstormy16 | xtensa \
319316 | z8k | z80)
320317 basic_machine=$basic_machine-unknown
335332 basic_machine=$basic_machine-unknown
336333 os=-none
337334 ;;
338 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
335 m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
339336 ;;
340337 ms1)
341338 basic_machine=mt-unknown
364361 ;;
365362 # Object if more than one company name word.
366363 *-*-*)
367 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
364 echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
368365 exit 1
369366 ;;
370367 # Recognize the basic CPU types with company name.
387384 | h8300-* | h8500-* \
388385 | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
389386 | hexagon-* \
390 | i*86-* | i860-* | i960-* | ia64-* \
387 | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
391388 | ip2k-* | iq2000-* \
392389 | k1om-* \
393390 | le32-* | le64-* \
428425 | orion-* \
429426 | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
430427 | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
428 | pru-* \
431429 | pyramid-* \
432430 | riscv32-* | riscv64-* \
433431 | rl78-* | romp-* | rs6000-* | rx-* \
444442 | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
445443 | vax-* \
446444 | visium-* \
445 | wasm32-* \
447446 | we32k-* \
448447 | x86-* | x86_64-* | xc16x-* | xps100-* \
449448 | xstormy16-* | xtensa*-* \
457456 # Recognize the various machine names and aliases which stand
458457 # for a CPU type and a company and sometimes even an OS.
459458 386bsd)
460 basic_machine=i386-unknown
459 basic_machine=i386-pc
461460 os=-bsd
462461 ;;
463462 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
491490 basic_machine=x86_64-pc
492491 ;;
493492 amd64-*)
494 basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
493 basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
495494 ;;
496495 amdahl)
497496 basic_machine=580-amdahl
520519 basic_machine=i386-pc
521520 os=-aros
522521 ;;
523 asmjs)
522 asmjs)
524523 basic_machine=asmjs-unknown
525524 ;;
526525 aux)
536535 os=-linux
537536 ;;
538537 blackfin-*)
539 basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
538 basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
540539 os=-linux
541540 ;;
542541 bluegene*)
544543 os=-cnk
545544 ;;
546545 c54x-*)
547 basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
546 basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
548547 ;;
549548 c55x-*)
550 basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
549 basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
551550 ;;
552551 c6x-*)
553 basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
552 basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
554553 ;;
555554 c90)
556555 basic_machine=c90-cray
639638 basic_machine=rs6000-bull
640639 os=-bosx
641640 ;;
642 dpx2* | dpx2*-bull)
641 dpx2*)
643642 basic_machine=m68k-bull
644643 os=-sysv3
644 ;;
645 e500v[12])
646 basic_machine=powerpc-unknown
647 os=$os"spe"
648 ;;
649 e500v[12]-*)
650 basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
651 os=$os"spe"
645652 ;;
646653 ebmon29k)
647654 basic_machine=a29k-amd
732739 hp9k8[0-9][0-9] | hp8[0-9][0-9])
733740 basic_machine=hppa1.0-hp
734741 ;;
735 hppa-next)
736 os=-nextstep3
737 ;;
738742 hppaosf)
739743 basic_machine=hppa1.1-hp
740744 os=-osf
747751 basic_machine=i370-ibm
748752 ;;
749753 i*86v32)
750 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
754 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
751755 os=-sysv32
752756 ;;
753757 i*86v4*)
754 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
758 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
755759 os=-sysv4
756760 ;;
757761 i*86v)
758 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
762 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
759763 os=-sysv
760764 ;;
761765 i*86sol2)
762 basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
766 basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
763767 os=-solaris2
764768 ;;
765769 i386mach)
766770 basic_machine=i386-mach
767771 os=-mach
768772 ;;
769 i386-vsta | vsta)
773 vsta)
770774 basic_machine=i386-unknown
771775 os=-vsta
772776 ;;
785789 os=-sysv
786790 ;;
787791 leon-*|leon[3-9]-*)
788 basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
792 basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
789793 ;;
790794 m68knommu)
791795 basic_machine=m68k-unknown
792796 os=-linux
793797 ;;
794798 m68knommu-*)
795 basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
799 basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
796800 os=-linux
797 ;;
798 m88k-omron*)
799 basic_machine=m88k-omron
800801 ;;
801802 magnum | m3230)
802803 basic_machine=mips-mips
829830 os=-mint
830831 ;;
831832 mips3*-*)
832 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
833 basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
833834 ;;
834835 mips3*)
835 basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
836 basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
836837 ;;
837838 monitor)
838839 basic_machine=m68k-rom68k
851852 os=-msdos
852853 ;;
853854 ms1-*)
854 basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
855 basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
855856 ;;
856857 msys)
857858 basic_machine=i686-pc
893894 basic_machine=v70-nec
894895 os=-sysv
895896 ;;
896 next | m*-next )
897 next | m*-next)
897898 basic_machine=m68k-next
898899 case $os in
899900 -nextstep* )
938939 nsr-tandem)
939940 basic_machine=nsr-tandem
940941 ;;
942 nsv-tandem)
943 basic_machine=nsv-tandem
944 ;;
945 nsx-tandem)
946 basic_machine=nsx-tandem
947 ;;
941948 op50n-* | op60c-*)
942949 basic_machine=hppa1.1-oki
943950 os=-proelf
970977 os=-linux
971978 ;;
972979 parisc-*)
973 basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
980 basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
974981 os=-linux
975982 ;;
976983 pbd)
986993 basic_machine=i386-pc
987994 ;;
988995 pc98-*)
989 basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
996 basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
990997 ;;
991998 pentium | p5 | k5 | k6 | nexgen | viac3)
992999 basic_machine=i586-pc
10011008 basic_machine=i786-pc
10021009 ;;
10031010 pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
1004 basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
1011 basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10051012 ;;
10061013 pentiumpro-* | p6-* | 6x86-* | athlon-*)
1007 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1014 basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10081015 ;;
10091016 pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
1010 basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
1017 basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10111018 ;;
10121019 pentium4-*)
1013 basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
1020 basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10141021 ;;
10151022 pn)
10161023 basic_machine=pn-gould
10201027 ppc | ppcbe) basic_machine=powerpc-unknown
10211028 ;;
10221029 ppc-* | ppcbe-*)
1023 basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
1024 ;;
1025 ppcle | powerpclittle | ppc-le | powerpc-little)
1030 basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1031 ;;
1032 ppcle | powerpclittle)
10261033 basic_machine=powerpcle-unknown
10271034 ;;
10281035 ppcle-* | powerpclittle-*)
1029 basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
1036 basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10301037 ;;
10311038 ppc64) basic_machine=powerpc64-unknown
10321039 ;;
1033 ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
1034 ;;
1035 ppc64le | powerpc64little | ppc64-le | powerpc64-little)
1040 ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
1041 ;;
1042 ppc64le | powerpc64little)
10361043 basic_machine=powerpc64le-unknown
10371044 ;;
10381045 ppc64le-* | powerpc64little-*)
1039 basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
1046 basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
10401047 ;;
10411048 ps2)
10421049 basic_machine=i386-ibm
10901097 sequent)
10911098 basic_machine=i386-sequent
10921099 ;;
1093 sh)
1094 basic_machine=sh-hitachi
1095 os=-hms
1096 ;;
10971100 sh5el)
10981101 basic_machine=sh5le-unknown
10991102 ;;
1100 sh64)
1101 basic_machine=sh64-unknown
1102 ;;
1103 sparclite-wrs | simso-wrs)
1103 simso-wrs)
11041104 basic_machine=sparclite-wrs
11051105 os=-vxworks
11061106 ;;
11191119 os=-sysv4
11201120 ;;
11211121 strongarm-* | thumb-*)
1122 basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
1122 basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
11231123 ;;
11241124 sun2)
11251125 basic_machine=m68000-sun
12411241 basic_machine=hppa1.1-winbond
12421242 os=-proelf
12431243 ;;
1244 x64)
1245 basic_machine=x86_64-pc
1246 ;;
12441247 xbox)
12451248 basic_machine=i686-pc
12461249 os=-mingw32
12491252 basic_machine=xps100-honeywell
12501253 ;;
12511254 xscale-* | xscalee[bl]-*)
1252 basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
1255 basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
12531256 ;;
12541257 ymp)
12551258 basic_machine=ymp-cray
12561259 os=-unicos
1257 ;;
1258 z8k-*-coff)
1259 basic_machine=z8k-unknown
1260 os=-sim
1261 ;;
1262 z80-*-coff)
1263 basic_machine=z80-unknown
1264 os=-sim
12651260 ;;
12661261 none)
12671262 basic_machine=none-none
12911286 vax)
12921287 basic_machine=vax-dec
12931288 ;;
1294 pdp10)
1295 # there are many clones, so DEC is not a safe bet
1296 basic_machine=pdp10-unknown
1297 ;;
12981289 pdp11)
12991290 basic_machine=pdp11-dec
13001291 ;;
13041295 sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
13051296 basic_machine=sh-unknown
13061297 ;;
1307 sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
1308 basic_machine=sparc-sun
1309 ;;
13101298 cydra)
13111299 basic_machine=cydra-cydrome
13121300 ;;
13261314 # Make sure to match an already-canonicalized machine name.
13271315 ;;
13281316 *)
1329 echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
1317 echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
13301318 exit 1
13311319 ;;
13321320 esac
13341322 # Here we canonicalize certain aliases for manufacturers.
13351323 case $basic_machine in
13361324 *-digital*)
1337 basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
1325 basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
13381326 ;;
13391327 *-commodore*)
1340 basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
1328 basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
13411329 ;;
13421330 *)
13431331 ;;
13481336 if [ x"$os" != x"" ]
13491337 then
13501338 case $os in
1351 # First match some system type aliases
1352 # that might get confused with valid system types.
1339 # First match some system type aliases that might get confused
1340 # with valid system types.
13531341 # -solaris* is a basic system type, with this one exception.
13541342 -auroraux)
13551343 os=-auroraux
13601348 -solaris)
13611349 os=-solaris2
13621350 ;;
1363 -svr4*)
1364 os=-sysv4
1365 ;;
13661351 -unixware*)
13671352 os=-sysv4.2uw
13681353 ;;
13691354 -gnu/linux*)
13701355 os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
13711356 ;;
1372 # First accept the basic system types.
1357 # es1800 is here to avoid being matched by es* (a different OS)
1358 -es1800*)
1359 os=-ose
1360 ;;
1361 # Now accept the basic system types.
13731362 # The portable systems comes first.
1374 # Each alternative MUST END IN A *, to match a version number.
1363 # Each alternative MUST end in a * to match a version number.
13751364 # -sysv* is not here because it comes later, after sysvr4.
13761365 -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
13771366 | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
13811370 | -aos* | -aros* | -cloudabi* | -sortix* \
13821371 | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
13831372 | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
1384 | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
1385 | -bitrig* | -openbsd* | -solidbsd* \
1373 | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
1374 | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
13861375 | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
13871376 | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
13881377 | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
13891378 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
1390 | -chorusos* | -chorusrdb* | -cegcc* \
1379 | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
13911380 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
1392 | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
1381 | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
13931382 | -linux-newlib* | -linux-musl* | -linux-uclibc* \
13941383 | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
1395 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
1384 | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
13961385 | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
13971386 | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
13981387 | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
1399 | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
1388 | -morphos* | -superux* | -rtmk* | -windiss* \
14001389 | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
1401 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
1390 | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
1391 | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
1392 | -midnightbsd*)
14021393 # Remember, each alternative MUST END IN *, to match a version number.
14031394 ;;
14041395 -qnx*)
14151406 -nto*)
14161407 os=`echo $os | sed -e 's|nto|nto-qnx|'`
14171408 ;;
1418 -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
1419 | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
1409 -sim | -xray | -os68k* | -v88r* \
1410 | -windows* | -osx | -abug | -netware* | -os9* \
14201411 | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
14211412 ;;
14221413 -mac*)
1423 os=`echo $os | sed -e 's|mac|macos|'`
1414 os=`echo "$os" | sed -e 's|mac|macos|'`
14241415 ;;
14251416 -linux-dietlibc)
14261417 os=-linux-dietlibc
14291420 os=`echo $os | sed -e 's|linux|linux-gnu|'`
14301421 ;;
14311422 -sunos5*)
1432 os=`echo $os | sed -e 's|sunos5|solaris2|'`
1423 os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
14331424 ;;
14341425 -sunos6*)
1435 os=`echo $os | sed -e 's|sunos6|solaris3|'`
1426 os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
14361427 ;;
14371428 -opened*)
14381429 os=-openedition
14431434 -wince*)
14441435 os=-wince
14451436 ;;
1446 -osfrose*)
1447 os=-osfrose
1448 ;;
1449 -osf*)
1450 os=-osf
1451 ;;
14521437 -utek*)
14531438 os=-bsd
14541439 ;;
14731458 -nova*)
14741459 os=-rtmk-nova
14751460 ;;
1476 -ns2 )
1461 -ns2)
14771462 os=-nextstep2
14781463 ;;
14791464 -nsk*)
14951480 -oss*)
14961481 os=-sysv3
14971482 ;;
1498 -svr4)
1483 -svr4*)
14991484 os=-sysv4
15001485 ;;
15011486 -svr3)
15101495 -ose*)
15111496 os=-ose
15121497 ;;
1513 -es1800*)
1514 os=-ose
1515 ;;
1516 -xenix)
1517 os=-xenix
1518 ;;
15191498 -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
15201499 os=-mint
15211500 ;;
1522 -aros*)
1523 os=-aros
1524 ;;
15251501 -zvmoe)
15261502 os=-zvmoe
15271503 ;;
15281504 -dicos*)
15291505 os=-dicos
15301506 ;;
1507 -pikeos*)
1508 # Until real need of OS specific support for
1509 # particular features comes up, bare metal
1510 # configurations are quite functional.
1511 case $basic_machine in
1512 arm*)
1513 os=-eabi
1514 ;;
1515 *)
1516 os=-elf
1517 ;;
1518 esac
1519 ;;
15311520 -nacl*)
1521 ;;
1522 -ios)
15321523 ;;
15331524 -none)
15341525 ;;
15351526 *)
15361527 # Get rid of the `-' at the beginning of $os.
15371528 os=`echo $os | sed 's/[^-]*-//'`
1538 echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
1529 echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
15391530 exit 1
15401531 ;;
15411532 esac
16251616 sparc-* | *-sun)
16261617 os=-sunos4.1.1
16271618 ;;
1619 pru-*)
1620 os=-elf
1621 ;;
16281622 *-be)
16291623 os=-beos
16301624 ;;
1631 *-haiku)
1632 os=-haiku
1633 ;;
16341625 *-ibm)
16351626 os=-aix
16361627 ;;
16701661 m88k-omron*)
16711662 os=-luna
16721663 ;;
1673 *-next )
1664 *-next)
16741665 os=-nextstep
16751666 ;;
16761667 *-sequent)
16841675 ;;
16851676 i370-*)
16861677 os=-mvs
1687 ;;
1688 *-next)
1689 os=-nextstep3
16901678 ;;
16911679 *-gould)
16921680 os=-sysv
17971785 vendor=stratus
17981786 ;;
17991787 esac
1800 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
1788 basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
18011789 ;;
18021790 esac
18031791
1804 echo $basic_machine$os
1792 echo "$basic_machine$os"
18051793 exit
18061794
18071795 # Local variables:
1808 # eval: (add-hook 'write-file-hooks 'time-stamp)
1796 # eval: (add-hook 'write-file-functions 'time-stamp)
18091797 # time-stamp-start: "timestamp='"
18101798 # time-stamp-format: "%:y-%02m-%02d"
18111799 # time-stamp-end: "'"
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.69 for teckit 2.5.8.
2 # Generated by GNU Autoconf 2.69 for teckit 2.5.9.
33 #
4 # Report bugs to <nrsi@sil.org>.
4 # Report bugs to <wstech@sil.org>.
55 #
66 #
77 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
273273 $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
274274 $as_echo "$0: be upgraded to zsh 4.3.4 or later."
275275 else
276 $as_echo "$0: Please tell bug-autoconf@gnu.org and nrsi@sil.org about
277 $0: your system, including any error possibly output before
278 $0: this message. Then install a modern shell, or manually
279 $0: run the script under such a shell if you do have one."
276 $as_echo "$0: Please tell bug-autoconf@gnu.org and wstech@sil.org
277 $0: about your system, including any error possibly output
278 $0: before this message. Then install a modern shell, or
279 $0: manually run the script under such a shell if you do
280 $0: have one."
280281 fi
281282 exit 1
282283 fi
588589 # Identity of this package.
589590 PACKAGE_NAME='teckit'
590591 PACKAGE_TARNAME='teckit'
591 PACKAGE_VERSION='2.5.8'
592 PACKAGE_STRING='teckit 2.5.8'
593 PACKAGE_BUGREPORT='nrsi@sil.org'
592 PACKAGE_VERSION='2.5.9'
593 PACKAGE_STRING='teckit 2.5.9'
594 PACKAGE_BUGREPORT='wstech@sil.org'
594595 PACKAGE_URL=''
595596
596597 ac_unique_file="source/UnicodeNames.cpp"
13631364 # Omit some internal or obsolete options to make the list less imposing.
13641365 # This message is too long to be a string in the A/UX 3.1 sh.
13651366 cat <<_ACEOF
1366 \`configure' configures teckit 2.5.8 to adapt to many kinds of systems.
1367 \`configure' configures teckit 2.5.9 to adapt to many kinds of systems.
13671368
13681369 Usage: $0 [OPTION]... [VAR=VALUE]...
13691370
14351436
14361437 if test -n "$ac_init_help"; then
14371438 case $ac_init_help in
1438 short | recursive ) echo "Configuration of teckit 2.5.8:";;
1439 short | recursive ) echo "Configuration of teckit 2.5.9:";;
14391440 esac
14401441 cat <<\_ACEOF
14411442
14971498 Use these variables to override the choices made by `configure' or to help
14981499 it to find libraries and programs with nonstandard names/locations.
14991500
1500 Report bugs to <nrsi@sil.org>.
1501 Report bugs to <wstech@sil.org>.
15011502 _ACEOF
15021503 ac_status=$?
15031504 fi
15601561 test -n "$ac_init_help" && exit $ac_status
15611562 if $ac_init_version; then
15621563 cat <<\_ACEOF
1563 teckit configure 2.5.8
1564 teckit configure 2.5.9
15641565 generated by GNU Autoconf 2.69
15651566
15661567 Copyright (C) 2012 Free Software Foundation, Inc.
20262027 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
20272028 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
20282029 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
2029 ( $as_echo "## --------------------------- ##
2030 ## Report this to nrsi@sil.org ##
2031 ## --------------------------- ##"
2030 ( $as_echo "## ----------------------------- ##
2031 ## Report this to wstech@sil.org ##
2032 ## ----------------------------- ##"
20322033 ) | sed "s/^/$as_me: WARNING: /" >&2
20332034 ;;
20342035 esac
20502051 This file contains any messages produced by compilers while
20512052 running configure, to aid debugging if configure makes a mistake.
20522053
2053 It was created by teckit $as_me 2.5.8, which was
2054 It was created by teckit $as_me 2.5.9, which was
20542055 generated by GNU Autoconf 2.69. Invocation command line was
20552056
20562057 $ $0 $@
30283029
30293030 # Define the identity of the package.
30303031 PACKAGE='teckit'
3031 VERSION='2.5.8'
3032 VERSION='2.5.9'
30323033
30333034
30343035 cat >>confdefs.h <<_ACEOF
1678116782 SYSTEM_EXPAT_FALSE=
1678216783 fi
1678316784
16784 expat_CFLAGS="$CFLAGS"
16785 expat_CFLAGS=""
1678516786 expat_LIBS="$LIBS"
1678616787 CFLAGS="$noexpat_CFLAGS"
1678716788 LIBS="$noexpat_LIBS"
1734117342 # report actual input values of CONFIG_FILES etc. instead of their
1734217343 # values after options handling.
1734317344 ac_log="
17344 This file was extended by teckit $as_me 2.5.8, which was
17345 This file was extended by teckit $as_me 2.5.9, which was
1734517346 generated by GNU Autoconf 2.69. Invocation command line was
1734617347
1734717348 CONFIG_FILES = $CONFIG_FILES
1740117402 Configuration commands:
1740217403 $config_commands
1740317404
17404 Report bugs to <nrsi@sil.org>."
17405 Report bugs to <wstech@sil.org>."
1740517406
1740617407 _ACEOF
1740717408 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1740817409 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1740917410 ac_cs_version="\\
17410 teckit config.status 2.5.8
17411 teckit config.status 2.5.9
1741117412 configured by $0, generated by GNU Autoconf 2.69,
1741217413 with options \\"\$ac_cs_config\\"
1741317414
1871618717 cat <<_LT_EOF >> "$cfgfile"
1871718718 #! $SHELL
1871818719 # Generated automatically by $as_me ($PACKAGE) $VERSION
18719 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
1872018720 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
1872118721
1872218722 # Provide generalized library-building support services.
00 AC_PREREQ(2.54)
1 AC_INIT(teckit, 2.5.8, nrsi@sil.org)
1 AC_INIT(teckit, 2.5.9, wstech@sil.org)
22 AM_CONFIG_HEADER([config.h])
33 AC_CONFIG_SRCDIR([source/UnicodeNames.cpp])
44 AC_CONFIG_MACRO_DIR([m4])
110110 noexpat_LIBS="$LIBS"
111111 AC_CHECK_LIB(expat, XML_ExpatVersion)
112112 AM_CONDITIONAL(SYSTEM_EXPAT, test x$ac_cv_lib_expat_XML_ExpatVersion = xyes)
113 expat_CFLAGS="$CFLAGS"
113 expat_CFLAGS=""
114114 expat_LIBS="$LIBS"
115115 CFLAGS="$noexpat_CFLAGS"
116116 LIBS="$noexpat_LIBS"
00 #! /bin/sh
11 # depcomp - compile a program generating dependencies as side-effects
22
3 scriptversion=2013-05-30.07; # UTC
4
5 # Copyright (C) 1999-2014 Free Software Foundation, Inc.
3 scriptversion=2016-01-11.22; # UTC
4
5 # Copyright (C) 1999-2017 Free Software Foundation, Inc.
66
77 # This program is free software; you can redistribute it and/or modify
88 # it under the terms of the GNU General Public License as published by
785785 # eval: (add-hook 'write-file-hooks 'time-stamp)
786786 # time-stamp-start: "scriptversion="
787787 # time-stamp-format: "%:y-%02m-%02d.%02H"
788 # time-stamp-time-zone: "UTC"
788 # time-stamp-time-zone: "UTC0"
789789 # time-stamp-end: "; # UTC"
790790 # End:
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.15.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
Binary diff not shown
(No changes)
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.15.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
1111
1212 Rest of the project:
1313
14 Copyright 2002-2018, SIL International
14 Copyright 2002-2019, SIL International
1515 All rights reserved.
1616
1717 This library is free software; you can redistribute it and/or modify
3030
3131 PROGRAM=libtool
3232 PACKAGE=libtool
33 VERSION="2.4.6 Debian-2.4.6-0.1"
33 VERSION="2.4.6 Debian-2.4.6-2"
3434 package_revision=2.4.6
3535
3636
20672067 compiler: $LTCC
20682068 compiler flags: $LTCFLAGS
20692069 linker: $LD (gnu? $with_gnu_ld)
2070 version: $progname (GNU libtool) 2.4.6
2070 version: $progname $scriptversion Debian-2.4.6-2
20712071 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
20722072 autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
20732073
727727 cat <<_LT_EOF >> "$cfgfile"
728728 #! $SHELL
729729 # Generated automatically by $as_me ($PACKAGE) $VERSION
730 # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
731730 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
732731
733732 # Provide generalized library-building support services.
7474 const UInt32 byteMask = 0x000000BFUL;
7575 const UInt32 byteMark = 0x00000080UL;
7676
77 #define FOUR_CHAR_CODE(a,b,c,d) (UInt32)((a << 24) + (b << 16) + (c << 8) + d)
77 #define FOUR_CHAR_CODE(a,b,c,d) UInt32((a << 24) + (b << 16) + (c << 8) + d)
7878
7979 const UInt32 kCode_Byte = FOUR_CHAR_CODE('B','y','t','e');
8080 const UInt32 kCode_BU = FOUR_CHAR_CODE('B','-','>','U');
141141 {
142142 TECkit_Status result = kStatus_CompilationFailed;
143143 try {
144 Compiler* cmp = new Compiler(txt, len, kForm_Unspecified, (bool)doCompression, false, errFunc, userData);
144 Compiler* cmp = new Compiler(txt, len, kForm_Unspecified, bool(doCompression), false, errFunc, userData);
145145 cmp->GetCompiledTable(*outTable, *outLen);
146146 if (*outTable == 0)
147147 result = kStatus_CompilationFailed;
195195 const CharName *c = &gUnicodeNames[0];
196196 while (c->name != 0)
197197 if (c->usv == usv)
198 return (char*)c->name;
198 return const_cast<char*>(c->name);
199199 else
200200 ++c;
201201 return NULL;
251251 TECkit_GetUnicodeValue(char* name)
252252 {
253253 const CharName *c = &gUnicodeNames[0];
254 int len = strlen(name);
254 size_t len = strlen(name);
255255 while (c->name != 0)
256256 if (unicodeNameCompare(c->name, name, len) == 0)
257 return c->usv;
257 return static_cast<int>(c->usv);
258258 else
259259 ++c;
260260 return -1;
523523 compiledSize = 0;
524524 usedExtStringRules = false;
525525
526 textPtr = (const unsigned char*)txt;
526 textPtr = reinterpret_cast<const unsigned char*>(txt);
527527 textEnd = textPtr + len;
528528
529529 ungotten = kInvalidChar;
627627 errorState = false;
628628
629629 string32::const_iterator i;
630 switch ((int)tok.type) {
630 switch (int(tok.type)) {
631631 default:
632632 Error("this can't happen!");
633633 break;
770770 case '^':
771771 // negation can only apply to a few things:
772772 GetNextToken();
773 switch ((int)tok.type) {
773 switch (int(tok.type)) {
774774 case tok_Number:
775775 AppendLiteral(tok.val, true);
776776 break;
942942
943943 case '{':
944944 {
945 int repeatMin = 0;
946 int repeatMax = 15;
945 UInt32 repeatMin = 0;
946 UInt32 repeatMax = 15;
947947 GetNextToken();
948948 if (tok.type == tok_Number) {
949949 repeatMin = repeatMax = tok.val;
996996 break;
997997 if (!ExpectToken(tok_Number, "expected (NUMBER) STRING after Name"))
998998 break;
999 int nameID = tok.val;
999 UInt16 nameID = tok.val;
10001000 if (!ExpectToken(')', "expected (NUMBER) STRING after Name"))
10011001 break;
10021002 ReadNameString(nameID);
11281128 bool ellipsisOK = false;
11291129 while (tok.type != ')' && tok.type != tok_Newline) {
11301130 GetNextToken();
1131 switch ((int)tok.type) {
1131 switch (int(tok.type)) {
11321132 case tok_USV:
11331133 if (classType == 'B') {
11341134 Error("can't use Unicode value in byte encoding");
12491249 break;
12501250
12511251 default:
1252 Error("unexpected token within class", string((const char*)tokStart, (const char*)textPtr - (const char*)tokStart).c_str());
1252 Error("unexpected token within class", string(reinterpret_cast<const char *>(tokStart), reinterpret_cast<const char *>(textPtr - tokStart)).c_str());
12531253 break;
12541254 }
12551255 }
13381338 string trailer("</teckitMapping>\n");
13391339
13401340 compiledSize = header.length() + xmlRepresentation.length() + trailer.length();
1341 compiledTable = (Byte*)malloc(compiledSize + 1);
1341 compiledTable = static_cast<Byte*>(malloc(compiledSize + 1));
13421342 if (compiledTable == NULL)
13431343 throw bad_alloc();
13441344
13771377 // pack all the name records
13781378 string namesData;
13791379 for (vector<UInt16>::const_iterator i = nameIDs.begin(); i != nameIDs.end(); ++i) {
1380 appendToTable(offsets, (const char*)&offset, sizeof(offset));
1380 appendToTable(offsets, reinterpret_cast<const char*>(&offset), sizeof(offset));
13811381 NameRec r;
13821382 WRITE(r.nameID, *i);
13831383 WRITE(r.nameLength, names[*i].length());
1384 namesData.append((const char*)&r, sizeof(r));
1384 namesData.append(reinterpret_cast<const char*>(&r), sizeof(r));
13851385 namesData.append(names[*i]);
13861386 if ((namesData.length() & 1) != 0)
1387 namesData.append(1, (char)0);
1387 namesData.append(1, '\0');
13881388 offset += namesData.length() - prevLength;
13891389 prevLength = namesData.length();
13901390 }
13911391 if ((namesData.length() & 2) != 0)
1392 namesData.append(2, (char)0);
1392 namesData.append(2, '\0');
13931393 offset += namesData.length() - prevLength;
13941394
13951395 // pack the offsets to the actual mapping tables
13961396 vector<string>::const_iterator t;
13971397 for (t = fwdTables.begin(); t != fwdTables.end(); ++t) {
1398 appendToTable(offsets, (const char*)&offset, sizeof(offset));
1398 appendToTable(offsets, reinterpret_cast<const char*>(&offset), sizeof(offset));
13991399 offset += t->size();
14001400 }
14011401 for (t = revTables.end(); t != revTables.begin(); ) {
14021402 --t;
1403 appendToTable(offsets, (const char*)&offset, sizeof(offset));
1403 appendToTable(offsets, reinterpret_cast<const char*>(&offset), sizeof(offset));
14041404 offset += t->size();
14051405 }
14061406
14161416 for (t = revTables.begin(); t != revTables.end(); ++t)
14171417 compiledSize += t->length();
14181418
1419 compiledTable = (Byte*)malloc(compiledSize);
1419 compiledTable = static_cast<Byte*>(malloc(compiledSize));
14201420 if (compiledTable != 0) {
1421 char* cp = (char*)compiledTable;
1421 Byte* cp = compiledTable;
14221422 memcpy(cp, &fh, sizeof(fh));
14231423 cp += sizeof(fh);
14241424 memcpy(cp, offsets.data(), offsets.length());
14341434 memcpy(cp, t->data(), t->length());
14351435 cp += t->length();
14361436 }
1437 if ((char*)compiledTable + compiledSize != cp)
1437 if (compiledTable + compiledSize != cp)
14381438 cerr << "error!" << endl;
14391439 }
14401440 else
14441444 if (errorCount == 0 && cmp) {
14451445 // do the compression...
14461446 unsigned long destLen = compiledSize * 11 / 10 + 20;
1447 Byte* dest = (Byte*)malloc(destLen + 8);
1447 Byte* dest = static_cast<Byte*>(malloc(destLen + 8));
14481448 if (dest != 0) {
14491449 int result = compress2(dest + 8, &destLen, compiledTable, compiledSize, Z_BEST_COMPRESSION);
14501450 if (result == Z_OK) {
14511451 destLen += 8;
1452 dest = (Byte*)realloc(dest, destLen); // shrink dest to fit
1453 WRITE(((FileHeader*)dest)->type, kMagicNumberCmp);
1454 WRITE(((FileHeader*)dest)->version, compiledSize);
1452 dest = static_cast<Byte*>(realloc(dest, destLen)); // shrink dest to fit
1453 WRITE(reinterpret_cast<FileHeader*>(dest)->type, kMagicNumberCmp);
1454 WRITE(reinterpret_cast<FileHeader*>(dest)->version, compiledSize);
14551455 free(compiledTable);
14561456 compiledTable = dest;
14571457 compiledSize = destLen;
14991499 } else { bytesToWrite = 2;
15001500 c = 0x0000fffd;
15011501 };
1502 rval.append((size_t)bytesToWrite, 0);
1503 int index = rval.length();
1502 rval.append(size_t(bytesToWrite), 0);
1503 size_t index = rval.length();
15041504 switch (bytesToWrite) { /* note: code falls through cases! */
1505 case 4: rval[--index] = (c | byteMark) & byteMask; c >>= 6;
1506 case 3: rval[--index] = (c | byteMark) & byteMask; c >>= 6;
1507 case 2: rval[--index] = (c | byteMark) & byteMask; c >>= 6;
1505 case 4: rval[--index] = static_cast<char>((c | byteMark) & byteMask); c >>= 6;
1506 case 3: rval[--index] = static_cast<char>((c | byteMark) & byteMask); c >>= 6;
1507 case 2: rval[--index] = static_cast<char>((c | byteMark) & byteMask); c >>= 6;
15081508 case 1: rval[--index] = c | firstByteMark[bytesToWrite];
15091509 };
15101510 }
17451745 tok.strval.erase(tok.strval.begin(), tok.strval.end());
17461746 #endif
17471747 while (len-- > 0)
1748 tok.strval.append(1, *str++);
1748 tok.strval.append(1, static_cast<UInt32>(*str++));
17491749 return tok_Identifier;
17501750 }
17511751
17891789
17901790 case kForm_UTF16BE:
17911791 CHECK_AVAIL(2);
1792 rval = *textPtr++ << 8;
1792 rval = static_cast<UInt32>(*textPtr++) << 8;
17931793 rval += *textPtr++;
17941794 if (rval >= kSurrogateHighStart && rval <= kSurrogateHighEnd) {
17951795 // check that 2 more bytes are available
17961796 CHECK_AVAIL(2);
1797 UInt32 low = *textPtr++ << 8;
1797 UInt32 low = static_cast<UInt32>(*textPtr++) << 8;
17981798 low += *textPtr++;
17991799 rval = ((rval - kSurrogateHighStart) << halfShift) + (low - kSurrogateLowStart) + halfBase;
18001800 }
18031803 case kForm_UTF16LE:
18041804 CHECK_AVAIL(2);
18051805 rval = *textPtr++;
1806 rval += *textPtr++ << 8;
1806 rval += static_cast<UInt32>(*textPtr++) << 8;
18071807 if (rval >= kSurrogateHighStart && rval <= kSurrogateHighEnd) {
18081808 CHECK_AVAIL(2);
18091809 UInt32 low = *textPtr++;
1810 low += *textPtr++ << 8;
1810 low += static_cast<UInt32>(*textPtr++) << 8;
18111811 rval = ((rval - kSurrogateHighStart) << halfShift) + (low - kSurrogateLowStart) + halfBase;
18121812 }
18131813 break;
18141814
18151815 case kForm_UTF32BE:
18161816 CHECK_AVAIL(4);
1817 rval = *textPtr++ << 24;
1818 rval += *textPtr++ << 16;
1819 rval += *textPtr++ << 8;
1817 rval = static_cast<UInt32>(*textPtr++) << 24;
1818 rval += static_cast<UInt32>(*textPtr++) << 16;
1819 rval += static_cast<UInt32>(*textPtr++) << 8;
18201820 rval += *textPtr++;
18211821 break;
18221822
18231823 case kForm_UTF32LE:
18241824 CHECK_AVAIL(4);
18251825 rval = *textPtr++;
1826 rval += *textPtr++ << 8;
1827 rval += *textPtr++ << 16;
1828 rval += *textPtr++ << 24;
1826 rval += static_cast<UInt32>(*textPtr++) << 8;
1827 rval += static_cast<UInt32>(*textPtr++) << 16;
1828 rval += static_cast<UInt32>(*textPtr++) << 24;
18291829 break;
18301830 }
18311831
19451945 case '/':
19461946 case '=':
19471947 case '@':
1948 tok.type = (tokenType)currCh;
1948 tok.type = tokenType(currCh);
19491949 return true;
19501950
19511951 case '<':
1952 tok.type = (tokenType)'<';
1952 tok.type = tokenType('<');
19531953 if (textPtr < textEnd) {
19541954 if ((currCh = getChar()) == '>')
19551955 tok.type = tok_Map;
19591959 return true;
19601960
19611961 case '.':
1962 tok.type = (tokenType)'.';
1962 tok.type = tokenType('.');
19631963 if (textPtr < textEnd) {
19641964 if ((currCh = getChar()) == '.')
19651965 tok.type = tok_Ellipsis;
19771977 goto DEFAULT;
19781978 }
19791979 }
1980 tok.type = (tokenType)'_';
1980 tok.type = tokenType('_');
19811981 return true;
19821982
19831983 case '0':
21322132 cout << " at line " << line << endl;
21332133 }
21342134 else
2135 (*errorFunction)(errFuncUserData, (char*)msg, (char*)s, line);
2135 (*errorFunction)(errFuncUserData, const_cast<char*>(msg), const_cast<char*>(s), line);
21362136 errorState = true;
21372137 ++errorCount;
21382138 }
23552355 }
23562356
23572357 void
2358 Compiler::SetMinMax(int repeatMin, int repeatMax)
2358 Compiler::SetMinMax(UInt32 repeatMin, UInt32 repeatMax)
23592359 {
23602360 Item* item = 0;
23612361 switch (ruleState) {
25762576 continue;
25772577
25782578 default:
2579 cerr << "bad rep elem type: " << (int)i->type << endl;
2579 cerr << "bad rep elem type: " << i->type << endl;
25802580 break;
25812581 }
25822582 }
29432943 }
29442944
29452945 void
2946 Compiler::appendMatchElem(string& packedRule, Item& item, int index,
2946 Compiler::appendMatchElem(string& packedRule, Item& item, unsigned int index,
29472947 vector<MatClass>& matchClasses)
29482948 {
29492949 MatchElem m;
29502950 WRITE(m.value.usv.data, 0);
2951 WRITE(m.flags.repeat, (item.repeatMin << 4) + item.repeatMax);
2951 WRITE(m.flags.repeat, (static_cast<UInt32>(item.repeatMin) << 4) + item.repeatMax);
29522952 if (item.negate)
29532953 WRITE(m.flags.type, kMatchElem_Negate);
29542954 else
29962996 WRITE(m.flags.type, READ(m.flags.type) | (kMatchElem_NonLit + kMatchElem_Type_EOS));
29972997 break;
29982998 }
2999 const char* p = (const char*)&m;
3000 packedRule.append(p, sizeof(m));
2999 packedRule.append(reinterpret_cast<const char*>(&m), sizeof(m));
30013000 }
30023001
30033002 void
30383037 WRITE(r.flags.type, kRepElem_Unmapped);
30393038 break;
30403039 }
3041 const char* p = (const char*)&r;
3042 packedRule.append(p, sizeof(r));
3040 packedRule.append(reinterpret_cast<const char*>(&r), sizeof(r));
30433041 }
30443042
30453043 vector<Compiler::Item>
30673065 UInt8 plane = ch >> 16;
30683066 UInt8 page = (ch & 0x00ffff) >> 8;
30693067 if (buildVars.planeMap.size() <= plane)
3070 buildVars.planeMap.resize(plane + 1, 0xff);
3071 if ((UInt8)buildVars.planeMap[plane] == (UInt8)0xff) {
3068 buildVars.planeMap.resize(plane + 1, '\xff');
3069 if (UInt8(buildVars.planeMap[plane]) == 0xff) {
30723070 buildVars.planeMap[plane] = buildVars.pageMaps.size();
30733071 buildVars.pageMaps.resize(buildVars.pageMaps.size() + 1);
3074 buildVars.pageMaps.back().resize(256, 0xff);
3075 }
3076 UInt8 planeIndex = buildVars.planeMap[plane];
3072 buildVars.pageMaps.back().resize(256, '\xff');
3073 }
3074 UInt8 planeIndex = static_cast<UInt8>(buildVars.planeMap[plane]);
30773075 string& pageMap = buildVars.pageMaps[planeIndex];
3078 if ((UInt8)pageMap[page] == (UInt8)0xff) {
3076 if (UInt8(pageMap[page]) == 0xff) {
30793077 pageMap[page] = buildVars.charMaps.size();
30803078 buildVars.charMaps.resize(buildVars.charMaps.size() + 1);
30813079 buildVars.charMaps.back().resize(256);
30823080 }
3083 vector<UInt16>& charMap = buildVars.charMaps[(UInt8)pageMap[page]];
3081 vector<UInt16>& charMap = buildVars.charMaps[UInt8(pageMap[page])];
30843082 charMap[ch & 0x0000ff] = index;
30853083 }
30863084
30873085 void
3088 Compiler::align(string& table, int alignment)
3089 {
3090 int remainder = table.size() % alignment;
3086 Compiler::align(string& table, string::size_type alignment)
3087 {
3088 const string::size_type length = table.size();
3089 const string::size_type remainder = length % alignment;
30913090 if (remainder != 0)
3092 table.resize(table.size() + alignment - remainder);
3091 table.resize(length + alignment - remainder);
30933092 }
30943093
30953094 class Member {
32673266 // mapping to Unicode: direct lookup can only support one Unicode character
32683267 if (rule.replaceStr.size() == 1) {
32693268 const Item& rep = rule.replaceStr.front();
3270 int t = rep.tag.length() > 0 ? findTag(rep.tag, rule.matchStr) : 0;
3269 vector<Item>::size_type tag;
3270 if (rep.tag.length() > 0) {
3271 const int result = findTag(rep.tag, rule.matchStr);
3272 if (result < 0) {
3273 Error("tag not found", rep.tag.c_str(), rule.lineNumber);
3274 continue;
3275 }
3276 tag = static_cast<vector<Item>::size_type>(result);
3277 } else {
3278 tag = 0;
3279 }
32713280 switch (rep.type) {
32723281 case 0:
32733282 WRITE(lookup[i].usv, rep.val);
32753284
32763285 case kMatchElem_Type_Class:
32773286 {
3278 if (t == -1) {
3279 Error("tag not found", rep.tag.c_str(), rule.lineNumber);
3280 continue;
3281 }
3282 const Item& mat = rule.matchStr[t];
3287 const Item& mat = rule.matchStr[tag];
32833288 if (mat.type != kMatchElem_Type_Class) {
32843289 Error("improper use of class as target of mapping", 0, rule.lineNumber);
32853290 continue;
33063311
33073312 case kMatchElem_Type_Copy:
33083313 // should only occur in UU table
3309 if (t > (int)rule.matchStr.size()) {
3314 if (tag > rule.matchStr.size()) {
33103315 Error("no corresponding item for copy", 0, rule.lineNumber);
33113316 goto ERR_FOUND;
33123317 }
33233328 if (rule.replaceStr.size() <= 3) {
33243329 WRITE(lookup[i].bytes.count, rule.replaceStr.size());
33253330 // this will get overwritten by lookup[i].rules.type if string rules turn out to be needed
3326 UInt32 j;
3327 for (j = 0; j < rule.replaceStr.size(); ++j) {
3331 for (UInt32 j = 0; j < rule.replaceStr.size(); ++j) {
33283332 const Item& rep = rule.replaceStr[j];
3329 int t = rep.tag.length() > 0 ? findTag(rep.tag, rule.matchStr) : j;
3330 if (t == -1) {
3331 Error("tag not found", rep.tag.c_str(), rule.lineNumber);
3332 goto ERR_FOUND;
3333 vector<Item>::size_type tag;
3334 if (rep.tag.length() > 0) {
3335 const int result = findTag(rep.tag, rule.matchStr);
3336 if (result < 0) {
3337 Error("tag not found", rep.tag.c_str(), rule.lineNumber);
3338 goto ERR_FOUND;
3339 }
3340 tag = static_cast<vector<Item>::size_type>(result);
3341 } else {
3342 tag = j;
33333343 }
33343344 switch (rep.type) {
33353345 case 0: // literal
33373347 break;
33383348
33393349 case kMatchElem_Type_Class:
3340 if (t > (int)rule.matchStr.size()) {
3350 if (tag > rule.matchStr.size()) {
33413351 Error("no corresponding item for class replacement", 0, rule.lineNumber);
33423352 goto ERR_FOUND;
33433353 }
33443354 else {
3345 const Item& mat = rule.matchStr[t];
3355 const Item& mat = rule.matchStr[tag];
33463356 if (mat.type != kMatchElem_Type_Class) {
33473357 Error("improper use of class as target of mapping", 0, rule.lineNumber);
33483358 goto ERR_FOUND;
33693379
33703380 case kMatchElem_Type_Copy:
33713381 // should only occur in BB table
3372 if (t > (int)rule.matchStr.size()) {
3382 if (tag > rule.matchStr.size()) {
33733383 Error("no corresponding item for copy", 0, rule.lineNumber);
33743384 goto ERR_FOUND;
33753385 }
34543464 currentPass.supplementaryChars = true;
34553465
34563466 UInt32 headerOffset = table.size();
3457 table.append((const char*)&th, sizeof(th));
3467 table.append(reinterpret_cast<const char*>(&th), sizeof(th));
34583468
34593469 if (fromUni) {
34603470 WRITE(th.pageBase, table.size());
34613471 UInt32 i, j;
34623472 if (currentPass.supplementaryChars) {
3463 buildVars.planeMap.resize(17, 0xff);
3473 buildVars.planeMap.resize(17, '\xff');
34643474 for (i = 0; i < buildVars.planeMap.size(); ++i)
34653475 appendToTable(table, buildVars.planeMap[i]);
3466 appendToTable(table, (UInt8)buildVars.pageMaps.size());
3476 appendToTable(table, UInt8(buildVars.pageMaps.size()));
34673477 align(table, 4);
34683478 }
34693479
34703480 for (i = 0; i < buildVars.pageMaps.size(); ++i)
34713481 for (j = 0; j < buildVars.pageMaps[i].size(); ++j)
3472 appendToTable(table, (UInt8)buildVars.pageMaps[i][j]);
3482 appendToTable(table, UInt8(buildVars.pageMaps[i][j]));
34733483 align(table, 4);
34743484
34753485 for (i = 0; i < buildVars.charMaps.size(); ++i)
35143524 sortedClass.erase(sortedClass.begin() + j);
35153525 }
35163526
3517 appendToTable(classes, (UInt32)sortedClass.size());
3527 appendToTable(classes, UInt32(sortedClass.size()));
35183528 if (fromUni)
35193529 if (currentPass.supplementaryChars)
35203530 for (Class::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
35213531 appendToTable(classes, *x);
35223532 else
35233533 for (Class::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
3524 appendToTable(classes, (UInt16)*x);
3534 appendToTable(classes, UInt16(*x));
35253535 else
35263536 for (Class::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
3527 appendToTable(classes, (UInt8)*x);
3537 appendToTable(classes, UInt8(*x));
35283538 align(classes, 4);
35293539 }
35303540 // copy the real classOffsets into the table
35623572 sortedClass.erase(sortedClass.begin() + j);
35633573 }
35643574
3565 appendToTable(classes, (UInt32)sortedClass.size());
3575 appendToTable(classes, UInt32(sortedClass.size()));
35663576 if (toUni)
35673577 if (currentPass.supplementaryChars)
35683578 for (vector<Member>::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
35693579 appendToTable(classes, x->value);
35703580 else
35713581 for (vector<Member>::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
3572 appendToTable(classes, (UInt16)x->value);
3582 appendToTable(classes, UInt16(x->value));
35733583 else
35743584 for (vector<Member>::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
3575 appendToTable(classes, (UInt8)(x->value));
3585 appendToTable(classes, UInt8(x->value));
35763586 align(classes, 4);
35773587 }
35783588 // copy the real classOffsets into the table
35873597 if (currentPass.supplementaryChars)
35883598 WRITE(th.flags, READ(th.flags) | kTableFlags_Supplementary);
35893599 WRITE(th.length, table.size());
3590 table.replace(0, sizeof(th), (const char*)&th, sizeof(th));
3600 table.replace(0, sizeof(th), reinterpret_cast<const char*>(&th), sizeof(th));
35913601 }
35923602
35933603 void
1919
2020 -------------------------------------------------------------------------*/
2121
22 #ifndef __Compiler_H__
23 #define __Compiler_H__
22 #pragma once
2423
2524 #ifdef HAVE_CONFIG_H
2625 # include "config.h" /* a Unix-ish setup where we have config.h available */
273272 bool GetNextToken();
274273 bool ExpectToken(tokenType type, const char* errMsg);
275274 bool ExpectToken(char c, const char* errMsg)
276 { return ExpectToken((tokenType)c, errMsg); }
275 { return ExpectToken(tokenType(c), errMsg); }
277276 void Error(const char* errMsg, const char* s = 0, UInt32 line = 0xffffffff);
278277 void StartDefaultPass();
279278 void AppendLiteral(UInt32 val, bool negate = false);
283282 void AppendToRule(const Item& item);
284283 bool tagExists(bool rhs, const string& tag);
285284 void AssignTag(const string& tag);
286 void SetMinMax(int repeatMin, int repeatMax);
285 void SetMinMax(UInt32 repeatMin, UInt32 repeatMax);
287286 void FinishPass();
288287 string asUTF8(const string32 s);
289288 void ReadNameString(UInt16 nameID);
306305 long uniClassIndex(UInt32 charCode, UInt32 classIndex);
307306 long byteClassIndex(UInt8 charCode, UInt32 classIndex);
308307 bool isSingleCharRule(const Rule& rule);
309 void appendMatchElem(string& packedRule, Item& item, int index,
308 void appendMatchElem(string& packedRule, Item& item, unsigned int index,
310309 vector<MatClass>& matchClasses);
311310 void appendReplaceElem(string& packedRule, Item& item,
312311 vector<Item>& matchStr, vector<RepClass>& repClasses);
313312 void appendToTable(string& s, const char* ptr, UInt32 len);
314313 template <class T>
315314 void appendToTable(string& table, T x) {
315 const char* xp = reinterpret_cast<const char*>(&x);
316316 #ifdef WORDS_BIGENDIAN
317 const char* xp = (const char*)&x;
318317 table.append(xp, sizeof(x));
319318 #else
320319 /* split into separate statements to work around VC++6 problems */
321 const char* xp = (const char*)&x;
322320 xp = xp + sizeof(T);
323321 for (unsigned int i = 0; i < sizeof(T); ++i) {
324322 xp = xp - 1;
328326 }
329327
330328 vector<Item> reverseContext(const vector<Item>& ctx);
331 void align(string& table, int alignment);
329 void align(string& table, string::size_type alignment);
332330
333331 void xmlOut(const char* s);
334332 void xmlOut(const string& s);
344342 };
345343 extern CharName gUnicodeNames[];
346344 }
347
348 #endif /* __Compiler_H__ */
101101 #endif
102102 }
103103
104 #ifndef __GNUC__
105 #pragma mark --- class Stage ---
106 #endif
107
108104 Stage::Stage()
109105 : oBuffer(0)
110106 , oBufSize(0)
125121 {
126122 return 0;
127123 }
128
129 #ifndef __GNUC__
130 #pragma mark --- class Normalizer ---
131 #endif
132124
133125 #include "NormalizationData.c"
134126
399391 return c;
400392 }
401393
402 #ifndef __GNUC__
403 #pragma mark --- class Pass ---
404 #endif
405
406394 Pass::Pass(const TableHeader* inTable, Converter* cnv)
407395 : converter(cnv)
408396 , tableHeader(inTable)
417405 bSupplementaryChars = (READ(tableHeader->flags) & kTableFlags_Supplementary) != 0;
418406
419407 numPageMaps = 1;
420 pageBase = (const Byte*)tableHeader + READ(tableHeader->pageBase);
421 lookupBase = (const Lookup*)((const Byte*)tableHeader + READ(tableHeader->lookupBase));
422 matchClassBase = (const Byte*)tableHeader + READ(tableHeader->matchClassBase);
423 repClassBase = (const Byte*)tableHeader + READ(tableHeader->repClassBase);
424 stringListBase = (const Byte*)tableHeader + READ(tableHeader->stringListBase);
425 stringRuleData = (const Byte*)tableHeader + READ(tableHeader->stringRuleData);
408 pageBase = reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->pageBase);
409 lookupBase = reinterpret_cast<const Lookup*>(reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->lookupBase));
410 matchClassBase = reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->matchClassBase);
411 repClassBase = reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->repClassBase);
412 stringListBase = reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->stringListBase);
413 stringRuleData = reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->stringRuleData);
426414
427415 if (bInputIsUnicode && bSupplementaryChars) {
428416 // support supplementary plane chars
597585 long
598586 Pass::classMatch(UInt32 classNumber, UInt32 inChar) const
599587 {
600 const UInt32* classPtr = (const UInt32*)(matchClassBase + READ(*((const UInt32*)matchClassBase + classNumber)));
588 const UInt32* classPtr = reinterpret_cast<const UInt32*>(matchClassBase + READ(*(reinterpret_cast<const UInt32*>(matchClassBase) + classNumber)));
601589 UInt32 memberCount = READ(*classPtr++);
602590 if (bInputIsUnicode) {
603591 if (bSupplementaryChars) {
608596 }
609597 else {
610598 // classes are 16-bit
611 const UInt16* p = binary_search((const UInt16*)classPtr, memberCount, inChar);
599 const UInt16* p = binary_search(reinterpret_cast<const UInt16*>(classPtr), memberCount, inChar);
612600 if (READ(*p) == inChar)
613 return p - (const UInt16*)classPtr;
601 return p - reinterpret_cast<const UInt16*>(classPtr);
614602 }
615603 }
616604 else {
617605 // classes are 8-bit
618 const UInt8* p = binary_search((const UInt8*)classPtr, memberCount, inChar);
606 const UInt8* p = binary_search(reinterpret_cast<const UInt8*>(classPtr), memberCount, inChar);
619607 if (READ(*p) == inChar)
620 return p - (const UInt8*)classPtr;
608 return p - reinterpret_cast<const UInt8*>(classPtr);
621609 }
622610 return -1;
623611 }
625613 UInt32
626614 Pass::repClassMember(UInt32 classNumber, UInt32 index) const
627615 {
628 const UInt32* classPtr = (const UInt32*)(repClassBase + READ(*((const UInt32*)repClassBase + classNumber)));
616 const UInt32* classPtr = reinterpret_cast<const UInt32*>(repClassBase + READ(*(reinterpret_cast<const UInt32*>(repClassBase) + classNumber)));
629617 UInt32 memberCount = READ(*classPtr++);
630618 if (index < memberCount)
631619 if (bOutputIsUnicode)
632620 if (bSupplementaryChars)
633621 return READ(classPtr[index]);
634622 else
635 return READ(((const UInt16*)classPtr)[index]);
623 return READ(reinterpret_cast<const UInt16*>(classPtr)[index]);
636624 else {
637 return READ(((const UInt8*)classPtr)[index]);
625 return READ(reinterpret_cast<const UInt8*>(classPtr)[index]);
638626 }
639627 else
640628 return 0; // this can't happen if the compiler is right!
10141002 if (bInputIsUnicode) {
10151003 // Unicode lookup
10161004 UInt16 charIndex = 0;
1017 if ((const UInt8*)lookupBase == pageBase) {
1005 if (reinterpret_cast<const UInt8*>(lookupBase) == pageBase) {
10181006 // leave charIndex == 0 : pass with no rules
10191007 }
10201008 else {
10221010 const UInt8* pageMap = 0;
10231011 if (bSupplementaryChars) {
10241012 if ((plane < 17) && (READ(planeMap[plane]) != 0xff)) {
1025 pageMap = (const UInt8*)(pageBase + 256 * READ(planeMap[plane]));
1013 pageMap = reinterpret_cast<const UInt8*>(pageBase + 256 * READ(planeMap[plane]));
10261014 goto GOT_PAGE_MAP;
10271015 }
10281016 }
10311019 GOT_PAGE_MAP:
10321020 UInt8 page = (inChar >> 8) & 0xff;
10331021 if (READ(pageMap[page]) != 0xff) {
1034 const UInt16* charMapBase = (const UInt16*)(pageBase + 256 * numPageMaps);
1022 const UInt16* charMapBase = reinterpret_cast<const UInt16*>(pageBase + 256 * numPageMaps);
10351023 const UInt16* charMap = charMapBase + 256 * READ(pageMap[page]);
10361024 charIndex = READ(charMap[inChar & 0xff]);
10371025 }
10411029 }
10421030 else {
10431031 // byte-oriented lookup
1044 if (pageBase != (const Byte*)tableHeader) {
1032 if (pageBase != reinterpret_cast<const Byte*>(tableHeader)) {
10451033 // dbcsPage present
10461034 long pageNumber = READ(pageBase[inChar]);
10471035 if (pageNumber == 0)
10711059 UInt8 ruleType = READ(lookup->rules.type);
10721060 if (ruleType == kLookupType_StringRules || (ruleType & kLookupType_RuleTypeMask) == kLookupType_ExtStringRules) {
10731061 // process string rule list
1074 const UInt32* ruleList = (const UInt32*)stringListBase + READ(lookup->rules.ruleIndex);
1062 const UInt32* ruleList = reinterpret_cast<const UInt32*>(stringListBase) + READ(lookup->rules.ruleIndex);
10751063 bool matched = false;
10761064 bool allowInsertion = true;
10771065 int ruleCount = READ(lookup->rules.ruleCount);
10781066 if ((ruleType & kLookupType_RuleTypeMask) == kLookupType_ExtStringRules)
10791067 ruleCount += 256 * (ruleType & kLookupType_ExtRuleCountMask);
10801068 for ( ; ruleCount > 0; --ruleCount) {
1081 const StringRule* rule = (const StringRule*)(stringRuleData + READ(*ruleList));
1069 const StringRule* rule = reinterpret_cast<const StringRule*>(stringRuleData + READ(*ruleList));
10821070 #ifdef TRACING
10831071 if (traceLevel > 0) {
10841072 cerr << "** trying match: ";
10921080 if (matchElems == 0 && allowInsertion == false)
10931081 continue;
10941082 patternLength = matchElems + READ(rule->postLength);
1095 pattern = (MatchElem*)(rule + 1); // point past the defined struct for the rule header
1083 pattern = reinterpret_cast<const MatchElem*>(rule + 1); // point past the defined struct for the rule header
10961084 direction = 1;
10971085 infoLimit = matchElems;
10981086
11331121 cerr << "** GENERATES:";
11341122 }
11351123 #endif
1136 const RepElem* r = (const RepElem*)(pattern + patternLength);
1124 const RepElem* r = reinterpret_cast<const RepElem*>(pattern + patternLength);
11371125 for (int i = 0; i < READ(rule->repLength); ++i, ++r) {
11381126 #ifdef TRACING
11391127 if (traceLevel > 0)
12871275 return 0;
12881276 }
12891277
1290 #ifndef __GNUC__
1291 #pragma mark --- class Converter ---
1292 #endif
1293
12941278 Converter::Converter(const Byte* inTable, UInt32 inTableSize, bool inForward,
12951279 UInt16 inForm, UInt16 outForm)
12961280 : table(0)
13061290 finalStage = this;
13071291 UInt16 normForm = 0;
13081292 if (inTable != 0) {
1309 const FileHeader* fh = (const FileHeader*)inTable;
1293 const FileHeader* fh = reinterpret_cast<const FileHeader*>(inTable);
13101294 if (READ(fh->type) == kMagicNumberCmp) {
13111295 // the table is compressed; allocate a new buffer and decompress
13121296 unsigned long uncompressedLen = READ(fh->version);
1313 table = (Byte*)malloc(uncompressedLen);
1297 table = static_cast<Byte*>(malloc(uncompressedLen));
13141298 if (table == 0) {
13151299 status = kStatus_OutOfMemory;
13161300 return;
13201304 status = kStatus_InvalidMapping;
13211305 return;
13221306 }
1323 fh = (const FileHeader*)table;
1307 fh = reinterpret_cast<const FileHeader*>(table);
13241308 }
13251309
13261310 if (READ(fh->type) != kMagicNumber) {
13331317 }
13341318
13351319 if (table == 0) {
1336 table = (Byte*)malloc(inTableSize);
1320 table = static_cast<Byte*>(malloc(inTableSize));
13371321 if (table == 0) {
13381322 status = kStatus_OutOfMemory;
13391323 return;
13411325 memcpy(table, inTable, inTableSize);
13421326 }
13431327
1344 fh = (const FileHeader*)table;
1345 const UInt32* nameOffsets = (const UInt32*)(table + sizeof(FileHeader));
1328 fh = reinterpret_cast<const FileHeader*>(table);
1329 const UInt32* nameOffsets = reinterpret_cast<const UInt32*>(table + sizeof(FileHeader));
13461330 const UInt32* tableBase = nameOffsets + READ(fh->numNames);
13471331 UInt32 numTables = READ(fh->numFwdTables);
13481332 if (!forward) {
13971381
13981382 // create the processing pipeline
13991383 for (UInt32 i = 0; i < numTables; ++i) {
1400 const TableHeader* t = (const TableHeader*)(table + READ(tableBase[i]));
1384 const TableHeader* t = reinterpret_cast<const TableHeader*>(table + READ(tableBase[i]));
14011385 Stage* p = 0;
14021386 switch (READ(t->type)) {
14031387 case kTableType_BB:
17071691 void
17081692 Converter::GetFlags(UInt32& sourceFlags, UInt32& targetFlags) const
17091693 {
1710 const FileHeader* fh = (const FileHeader*)table;
1694 const FileHeader* fh = reinterpret_cast<const FileHeader*>(table);
17111695 if (forward) {
17121696 sourceFlags = READ(fh->formFlagsLHS);
17131697 targetFlags = READ(fh->formFlagsRHS);
17211705 static bool
17221706 getNamePtrFromTable(const Byte* table, UInt16 nameID, const Byte*& outNamePtr, UInt32& outNameLen)
17231707 {
1724 const FileHeader* fh = (const FileHeader*)table;
1725 const UInt32* nameOffsets = (const UInt32*)(table + sizeof(FileHeader));
1708 const FileHeader* fh = reinterpret_cast<const FileHeader*>(table);
1709 const UInt32* nameOffsets = reinterpret_cast<const UInt32*>(table + sizeof(FileHeader));
17261710 for (UInt32 i = 0; i < READ(fh->numNames); ++i) {
1727 const NameRec* n = (const NameRec*)(table + READ(nameOffsets[i]));
1711 const NameRec* n = reinterpret_cast<const NameRec*>(table + READ(nameOffsets[i]));
17281712 if (READ(n->nameID) == nameID) {
17291713 outNameLen = READ(n->nameLength);
1730 outNamePtr = (const Byte*)n + sizeof(NameRec);
1714 outNamePtr = reinterpret_cast<const Byte*>(n) + sizeof(NameRec);
17311715 return true;
17321716 }
17331717 }
19341918 if (cnv->status != kStatus_NoError)
19351919 return false;
19361920 if (cnv->table != 0) {
1937 const FileHeader* fh = (const FileHeader*)cnv->table;
1921 const FileHeader* fh = reinterpret_cast<const FileHeader*>(cnv->table);
19381922 if (READ(fh->type) != kMagicNumber)
19391923 return false;
19401924 }
19411925 return true;
19421926 }
1943
1944 #ifndef __GNUC__
1945 #pragma mark --- Public "C" API functions ---
1946 #endif
19471927
19481928 TECkit_Status
19491929 WINAPI
19621942 cnv = new Converter(mapping, mappingSize, mapForward, inputForm, outputForm);
19631943 status = cnv->creationStatus();
19641944 if (status == kStatus_NoError)
1965 *converter = (TECkit_Converter)cnv;
1945 *converter = reinterpret_cast<TECkit_Converter>(cnv);
19661946 else
19671947 delete cnv;
19681948 }
19811961 TECkit_Converter converter)
19821962 {
19831963 TECkit_Status status = kStatus_NoError;
1984 Converter* cnv = (Converter*)converter;
1964 Converter* cnv = reinterpret_cast<Converter*>(converter);
19851965 if (!Converter::Validate(cnv))
19861966 status = kStatus_InvalidConverter;
19871967 else
19991979 UInt32* nameLength)
20001980 {
20011981 TECkit_Status status = kStatus_NoError;
2002 Converter* cnv = (Converter*)converter;
1982 Converter* cnv = reinterpret_cast<Converter*>(converter);
20031983 if (!Converter::Validate(cnv))
20041984 status = kStatus_InvalidConverter;
20051985 else {
20232003 UInt32* targetFlags)
20242004 {
20252005 TECkit_Status status = kStatus_NoError;
2026 Converter* cnv = (Converter*)converter;
2006 Converter* cnv = reinterpret_cast<Converter*>(converter);
20272007 if (!Converter::Validate(cnv))
20282008 status = kStatus_InvalidConverter;
20292009 else
20372017 TECkit_Converter converter)
20382018 {
20392019 TECkit_Status status = kStatus_NoError;
2040 Converter* cnv = (Converter*)converter;
2020 Converter* cnv = reinterpret_cast<Converter*>(converter);
20412021 if (!Converter::Validate(cnv))
20422022 status = kStatus_InvalidConverter;
20432023 else
20592039 UInt32* lookaheadCount)
20602040 {
20612041 TECkit_Status status = kStatus_NoError;
2062 Converter* cnv = (Converter*)converter;
2042 Converter* cnv = reinterpret_cast<Converter*>(converter);
20632043 if (!Converter::Validate(cnv))
20642044 status = kStatus_InvalidConverter;
20652045 else
20942074 UInt32* lookaheadCount)
20952075 {
20962076 TECkit_Status status = kStatus_NoError;
2097 Converter* cnv = (Converter*)converter;
2077 Converter* cnv = reinterpret_cast<Converter*>(converter);
20982078 if (!Converter::Validate(cnv))
20992079 status = kStatus_InvalidConverter;
21002080 else
21262106 if (mapping == 0)
21272107 status = kStatus_InvalidMapping;
21282108 else {
2129 const FileHeader* fh = (const FileHeader*)mapping;
2109 const FileHeader* fh = reinterpret_cast<const FileHeader*>(mapping);
21302110 FileHeader header;
21312111 if (READ(fh->type) == kMagicNumberCmp) {
21322112 // compressed mapping, so we need to decompress enough of it to read the flags
21332113 unsigned long uncompressedLen = sizeof(FileHeader);
2134 int result = uncompress((Byte*)&header, &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
2114 int result = uncompress(reinterpret_cast<Byte*>(&header), &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
21352115 if (result != Z_BUF_ERROR)
21362116 status = kStatus_InvalidMapping;
21372117 fh = &header;
21652145 if (mapping == 0)
21662146 status = kStatus_InvalidMapping;
21672147 else {
2168 const FileHeader* fh = (const FileHeader*)mapping;
2148 const FileHeader* fh = reinterpret_cast<const FileHeader*>(mapping);
21692149 FileHeader header;
21702150 if (READ(fh->type) == kMagicNumberCmp) {
21712151 // compressed mapping, so we need to decompress the fixed header to read the headerLength field,
21722152 // and then decompress the complete header to get the names
21732153 unsigned long uncompressedLen = sizeof(FileHeader);
2174 int result = uncompress((Byte*)&header, &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
2154 int result = uncompress(reinterpret_cast<Byte*>(&header), &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
21752155 if (result != Z_BUF_ERROR)
21762156 status = kStatus_InvalidMapping;
21772157 else {
21812161 if (buf == 0)
21822162 status = kStatus_OutOfMemory;
21832163 else {
2184 result = uncompress((Byte*)buf, &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
2164 result = uncompress(static_cast<Byte*>(buf), &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
21852165 if (result != Z_BUF_ERROR)
21862166 status = kStatus_InvalidMapping;
2187 fh = (const FileHeader*)buf;
2167 fh = static_cast<const FileHeader*>(buf);
21882168 }
21892169 }
21902170 }
21932173 status = kStatus_BadMappingVersion;
21942174 else {
21952175 const Byte* namePtr;
2196 if (getNamePtrFromTable((Byte*)fh, nameID, namePtr, *nameLength)) {
2176 if (getNamePtrFromTable(reinterpret_cast<const Byte*>(fh), nameID, namePtr, *nameLength)) {
21972177 UInt16 copyBytes = *nameLength < bufferSize ? *nameLength : bufferSize;
21982178 if (copyBytes > 0)
21992179 memcpy(nameBuffer, namePtr, copyBytes);
1616 2003-09-23 jk updated for version 2.1 with new Opt APIs
1717 */
1818
19 #ifndef __Engine_H__
20 #define __Engine_H__
19 #pragma once
2120
2221 #include "TECkit_Engine.h"
2322 #include "TECkit_Format.h"
116115
117116 UInt32 match(int index, int repeats, int textLoc);
118117 // returns 0 for no match, 1 for match, or kNeedMoreInput/kInvalidChar
119 MatchElem* pattern;
118 const MatchElem* pattern;
120119 int patternLength;
121120 int direction;
122121 MatchInfo info[256];
219218
220219 UInt32 warningStatus;
221220 };
222
223 #endif /* __Engine_H__ */
11
22 const UInt8 ccPageMaps[][256] = {
33 {0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,0,0,15,0,0,0,16,17,18,19,20,21,22,0,0,23,0,0,0,0,0,0,0,0,0,0,0,24,25,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,28,29,30,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,33,0},
4 {0,34,35,36,0,0,0,0,0,0,37,0,0,38,0,39,40,41,42,43,44,45,46,47,48,0,49,0,50,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,56,0,0,0,0,0,0,0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,58,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
4 {0,34,35,36,0,0,0,0,0,0,37,0,0,38,0,39,40,41,42,43,44,45,46,47,48,49,50,0,51,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,57,0,0,0,0,0,0,0,0,0,0,0,0,0,58,54,59,0,0,0,0,0,60,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
55 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
66 };
77
1818 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
1919 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,84,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
2020 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
21 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,103,9,0,0,0,0,0,0,0,0,0,0,0,0,0,107,107,107,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,122,122,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
21 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,103,9,0,0,0,0,0,0,0,0,0,0,0,0,0,107,107,107,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,118,9,0,0,0,0,0,0,0,0,0,0,0,0,0,122,122,122,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
2222 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,220,0,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,130,0,132,0,0,0,0,0,130,130,130,130,0,0,130,0,230,230,9,0,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
2323 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
2424 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
5555 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
5656 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
5757 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
58 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
5859 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
5960 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
6061 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
6465 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,216,1,1,1,0,0,0,226,216,216,216,216,216,0,0,0,0,0,0,0,0,220,220,220,220,220,220,220,220,0,0,230,230,230,230,230,220,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
6566 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
6667 {230,230,230,230,230,230,230,0,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,0,0,230,230,230,230,230,230,230,0,230,230,0,230,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
68 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
6769 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,220,220,220,220,220,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
6870 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,230,230,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
6971 };
2222 xx-xxx-2002 jk version 2.0 initial release
2323 */
2424
25 #ifndef __TECkit_Common_H__
26 #define __TECkit_Common_H__
25 #pragma once
2726
2827 #define kCurrentTECkitVersion 0x00020004 /* 16.16 version number */
2928
9089 #define kForm_UTF16LE 4
9190 #define kForm_UTF32BE 5
9291 #define kForm_UTF32LE 6
93
94 #endif
1717 Copyright (c) 2002-2016 SIL International.
1818 */
1919
20 #ifndef __TECkit_Compiler_H__
21 #define __TECkit_Compiler_H__
20 #pragma once
2221
2322 #include "TECkit_Common.h"
2423
9493 #ifdef __cplusplus
9594 }
9695 #endif
97
98 #endif
2525 22-Dec-2001 jk initial version
2626 */
2727
28 #ifndef __TECkit_Engine_H__
29 #define __TECkit_Engine_H__
28 #pragma once
3029
3130 #include "TECkit_Common.h"
3231
3332 /* formFlags bits for normalization; if none are set, then this side of the mapping is normalization-form-agnostic on input, and may generate an unspecified mixture */
34 #define kFlags_ExpectsNFC 0x00000001 /* expects fully composed text (NC) */
35 #define kFlags_ExpectsNFD 0x00000002 /* expects fully decomposed text (NCD) */
36 #define kFlags_GeneratesNFC 0x00000004 /* generates fully composed text (NC) */
37 #define kFlags_GeneratesNFD 0x00000008 /* generates fully decomposed text (NCD) */
33 #define kFlags_ExpectsNFC 0x00000001U /* expects fully composed text (NC) */
34 #define kFlags_ExpectsNFD 0x00000002U /* expects fully decomposed text (NCD) */
35 #define kFlags_GeneratesNFC 0x00000004U /* generates fully composed text (NC) */
36 #define kFlags_GeneratesNFD 0x00000008U /* generates fully decomposed text (NCD) */
3837
3938 /* if VisualOrder is set, this side of the mapping deals with visual-order rather than logical-order text (only relevant for bidi scripts) */
40 #define kFlags_VisualOrder 0x00008000 /* visual rather than logical order */
39 #define kFlags_VisualOrder 0x00008000U /* visual rather than logical order */
4140
4241 /* if Unicode is set, the encoding is Unicode on this side of the mapping */
43 #define kFlags_Unicode 0x00010000 /* this is Unicode rather than a byte encoding */
42 #define kFlags_Unicode 0x00010000U /* this is Unicode rather than a byte encoding */
4443
4544 /* required names */
4645 #define kNameID_LHS_Name 0 /* "source" or LHS encoding name, e.g. "SIL-EEG_URDU-2001" */
263262 #if defined(__cplusplus)
264263 } /* extern "C" */
265264 #endif
266
267 #endif /* __TECkit_Engine_H__ */
3535 if (param != 0)
3636 fprintf(stderr, ": \"%s\"", param);
3737 if (line != 0)
38 fprintf(stderr, " at line %lu", (unsigned long)line);
38 fprintf(stderr, " at line %lu", static_cast<unsigned long>(line));
3939 fprintf(stderr, "\n");
4040 }
4141
113113
114114 if (tecFileName == 0) {
115115 int x = strlen(mapFileName);
116 tecFileName = (char*)malloc(x + 5);
116 tecFileName = static_cast<char*>(malloc(x + 5));
117117 if (tecFileName == 0)
118118 return 1; // unlikely!
119119 strcpy(tecFileName, mapFileName);
142142
143143 if (inFile == 0) {
144144 // try adding .map
145 char* mapFileName2 = (char*)malloc(strlen(mapFileName) + 5);
145 char* mapFileName2 = static_cast<char*>(malloc(strlen(mapFileName) + 5));
146146 if (mapFileName2 == 0)
147147 return 1;
148148 strcpy(mapFileName2, mapFileName);
158158 len = ftell(inFile);
159159 fseek(inFile, 0, SEEK_SET);
160160
161 txt = (char*)malloc(len);
161 txt = static_cast<char*>(malloc(len));
162162 if (txt == 0) {
163163 fprintf(stderr, "not enough memory to read mapping file\n");
164164 return 1; // not enough memory
193193 TECkit_DisposeCompiled(compiledTable);
194194 }
195195 else {
196 fprintf(stderr, "compilation failed: status = %d\n", (int)status);
196 fprintf(stderr, "compilation failed: status = %d\n", int(status));
197197 return 1;
198198 }
199199
7575 }
7676
7777 if (inAvail > 0) {
78 status = TECkit_ConvertBufferOpt(cnv, (Byte*)inPtr, inAvail, &inUsed,
79 (Byte*)outBuffer, kOutBufLen, &outUsed, opts, &lookahead);
78 status = TECkit_ConvertBufferOpt(cnv, reinterpret_cast<Byte*>(inPtr), inAvail, &inUsed,
79 reinterpret_cast<Byte*>(outBuffer), kOutBufLen, &outUsed, opts, &lookahead);
8080 fwrite(outBuffer, 1, outUsed, outFile);
8181
8282 switch (status & kStatusMask_Basic) {
9292
9393 case kStatus_UnmappedChar:
9494 fprintf(stderr, "processing aborted at unmappable character, within %lu characters before file offset %lu\n",
95 (unsigned long)lookahead, (unsigned long)(offset - amountToRead + inUsed));
95 static_cast<unsigned long>(lookahead), static_cast<unsigned long>(offset - amountToRead + inUsed));
9696 break;
9797
9898 default:
104104 if ((status & kStatusMask_Basic) != kStatus_UnmappedChar) {
105105 // flush the converter
106106 do {
107 status = TECkit_FlushOpt(cnv, (Byte*)outBuffer, kOutBufLen, &outUsed, opts, &lookahead);
107 status = TECkit_FlushOpt(cnv, reinterpret_cast<Byte*>(outBuffer), kOutBufLen, &outUsed, opts, &lookahead);
108108 fwrite(outBuffer, 1, outUsed, outFile);
109109 savedLen -= inUsed;
110110 inPtr += inUsed;
112112 } while ((status & kStatusMask_Basic) == kStatus_OutputBufferFull);
113113
114114 if ((status & kStatusMask_Basic) == kStatus_UnmappedChar)
115 fprintf(stderr, "processing aborted at unmappable character, within %lu characters before end of input\n", (unsigned long)lookahead);
115 fprintf(stderr, "processing aborted at unmappable character, within %lu characters before end of input\n", static_cast<unsigned long>(lookahead));
116116 else if ((status & kStatusMask_Basic) != kStatus_NoError)
117117 fprintf(stderr, "bad returned status from TECkit_Flush: %ld\n", status);
118118 }
339339 len = ftell(tecFile);
340340 fseek(tecFile, 0, SEEK_SET);
341341
342 table = (char*)malloc(len);
342 table = static_cast<char*>(malloc(len));
343343 if (table == 0) {
344344 fprintf(stderr, "out of memory!\n");
345345 fclose(tecFile);
350350 fclose(tecFile);
351351
352352 status = forward
353 ? TECkit_GetMappingFlags((Byte*)table, len, &sourceFlags, &targetFlags)
354 : TECkit_GetMappingFlags((Byte*)table, len, &targetFlags, &sourceFlags);
353 ? TECkit_GetMappingFlags(reinterpret_cast<Byte*>(table), len, &sourceFlags, &targetFlags)
354 : TECkit_GetMappingFlags(reinterpret_cast<Byte*>(table), len, &targetFlags, &sourceFlags);
355355 if (status != kStatus_NoError) {
356356 fprintf(stderr, "couldn't get encoding flags from mapping\n");
357357 return 1;
509509
510510 // OK, we have figured out the input and output encoding forms we want to use;
511511 // now at last we can instantiate a converter
512 status = TECkit_CreateConverter((Byte*)table, len, forward, inForm, outForm | normForm, &cnv);
512 status = TECkit_CreateConverter(reinterpret_cast<Byte*>(table), len, forward, inForm, outForm | normForm, &cnv);
513513 if (table != 0)
514514 free(table);
515515 if (status != kStatus_NoError) {
1313 2006-06-02 jk added support for extended string rules (>255 per initial char)
1414 -------------------------------------------------------------------------*/
1515
16 #ifndef __TECkit_Format_H__
17 #define __TECkit_Format_H__
16 #pragma once
1817
1918 #include "TECkit_Common.h"
2019
216215 #define kRepElem_Class kMatchElem_Type_Class
217216 #define kRepElem_Copy kMatchElem_Type_Copy
218217 #define kRepElem_Unmapped 0x0f /* used in default terminator rules */
219
220 #endif /* __TECkit_Format_H__ */
88 {0x00B4,"ACUTE ACCENT"},
99 {0x299F,"ACUTE ANGLE"},
1010 {0x2101,"ADDRESSED TO THE SUBJECT"},
11 {0x1FA79,"ADHESIVE BANDAGE"},
1112 {0x262C,"ADI SHAKTI"},
1213 {0x1E944,"ADLAM ALIF LENGTHENER"},
1314 {0x1E900,"ADLAM CAPITAL LETTER ALIF"},
6061 {0x1E947,"ADLAM HAMZA"},
6162 {0x1E95E,"ADLAM INITIAL EXCLAMATION MARK"},
6263 {0x1E95F,"ADLAM INITIAL QUESTION MARK"},
64 {0x1E94B,"ADLAM NASALIZATION MARK"},
6365 {0x1E94A,"ADLAM NUKTA"},
6466 {0x1E922,"ADLAM SMALL LETTER ALIF"},
6567 {0x1E926,"ADLAM SMALL LETTER BA"},
24092411 {0x269B,"ATOM SYMBOL"},
24102412 {0x1F346,"AUBERGINE"},
24112413 {0x20B3,"AUSTRAL SIGN"},
2414 {0x1F6FA,"AUTO RICKSHAW"},
24122415 {0x1F3E7,"AUTOMATED TELLER MACHINE"},
24132416 {0x1F697,"AUTOMOBILE"},
24142417 {0x10B39,"AVESTAN ABBREVIATION MARK"},
24672470 {0x10B30,"AVESTAN LETTER ZE"},
24682471 {0x10B32,"AVESTAN LETTER ZHE"},
24692472 {0x1F951,"AVOCADO"},
2473 {0x1FA93,"AXE"},
24702474 {0x1F476,"BABY"},
24712475 {0x1F47C,"BABY ANGEL"},
24722476 {0x1F37C,"BABY BOTTLE"},
26062610 {0x1B37,"BALINESE VOWEL SIGN ULU SARI"},
26072611 {0x1B5C,"BALINESE WINDU"},
26082612 {0x1F9F6,"BALL OF YARN"},
2613 {0x1FA70,"BALLET SHOES"},
26092614 {0x1F388,"BALLOON"},
26102615 {0x2749,"BALLOON-SPOKED ASTERISK"},
26112616 {0x1F5F6,"BALLOT BOLD SCRIPT X"},
32773282 {0xA6F7,"BAMUM QUESTION MARK"},
32783283 {0xA6F6,"BAMUM SEMICOLON"},
32793284 {0x1F34C,"BANANA"},
3285 {0x1FA95,"BANJO"},
32803286 {0x1F3E6,"BANK"},
32813287 {0x1F4B5,"BANKNOTE WITH DOLLAR SIGN"},
32823288 {0x1F4B6,"BANKNOTE WITH EURO SIGN"},
35013507 {0x23E3,"BENZENE RING WITH CIRCLE"},
35023508 {0x2136,"BET SYMBOL"},
35033509 {0x226C,"BETWEEN"},
3510 {0x1F9C3,"BEVERAGE BOX"},
35043511 {0x11C41,"BHAIKSUKI DANDA"},
35053512 {0x11C58,"BHAIKSUKI DIGIT EIGHT"},
35063513 {0x11C55,"BHAIKSUKI DIGIT FIVE"},
36123619 {0x29D3,"BLACK BOWTIE"},
36133620 {0x272C,"BLACK CENTRE WHITE STAR"},
36143621 {0x265D,"BLACK CHESS BISHOP"},
3622 {0x1FA12,"BLACK CHESS BISHOP ROTATED NINETY DEGREES"},
3623 {0x1FA3C,"BLACK CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES"},
3624 {0x1FA49,"BLACK CHESS EQUIHOPPER"},
3625 {0x1FA4C,"BLACK CHESS EQUIHOPPER ROTATED NINETY DEGREES"},
36153626 {0x265A,"BLACK CHESS KING"},
3627 {0x1FA0F,"BLACK CHESS KING ROTATED NINETY DEGREES"},
3628 {0x1FA39,"BLACK CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES"},
36163629 {0x265E,"BLACK CHESS KNIGHT"},
3630 {0x1FA07,"BLACK CHESS KNIGHT ROTATED FORTY-FIVE DEGREES"},
3631 {0x1FA13,"BLACK CHESS KNIGHT ROTATED NINETY DEGREES"},
3632 {0x1FA1C,"BLACK CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES"},
3633 {0x1FA46,"BLACK CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES"},
3634 {0x1FA3D,"BLACK CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES"},
3635 {0x1FA31,"BLACK CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES"},
3636 {0x1FA53,"BLACK CHESS KNIGHT-BISHOP"},
3637 {0x1FA51,"BLACK CHESS KNIGHT-QUEEN"},
3638 {0x1FA52,"BLACK CHESS KNIGHT-ROOK"},
36173639 {0x265F,"BLACK CHESS PAWN"},
3640 {0x1FA14,"BLACK CHESS PAWN ROTATED NINETY DEGREES"},
3641 {0x1FA3E,"BLACK CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES"},
36183642 {0x265B,"BLACK CHESS QUEEN"},
3643 {0x1FA10,"BLACK CHESS QUEEN ROTATED NINETY DEGREES"},
3644 {0x1FA3A,"BLACK CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES"},
36193645 {0x265C,"BLACK CHESS ROOK"},
3646 {0x1FA11,"BLACK CHESS ROOK ROTATED NINETY DEGREES"},
3647 {0x1FA3B,"BLACK CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES"},
3648 {0x1FA27,"BLACK CHESS TURNED BISHOP"},
3649 {0x1FA24,"BLACK CHESS TURNED KING"},
3650 {0x1FA28,"BLACK CHESS TURNED KNIGHT"},
3651 {0x1FA29,"BLACK CHESS TURNED PAWN"},
3652 {0x1FA25,"BLACK CHESS TURNED QUEEN"},
3653 {0x1FA26,"BLACK CHESS TURNED ROOK"},
36203654 {0x25CF,"BLACK CIRCLE"},
36213655 {0x23FA,"BLACK CIRCLE FOR RECORD"},
36223656 {0x29ED,"BLACK CIRCLE WITH DOWN ARROW"},
43764410 {0x1F470,"BRIDE WITH VEIL"},
43774411 {0x1F309,"BRIDGE AT NIGHT"},
43784412 {0x1F4BC,"BRIEFCASE"},
4413 {0x1FA72,"BRIEFS"},
43794414 {0x1F966,"BROCCOLI"},
43804415 {0x00A6,"BROKEN BAR"},
43814416 {0x238B,"BROKEN CIRCLE WITH NORTHWEST ARROW"},
43824417 {0x1F494,"BROKEN HEART"},
43834418 {0x1F9F9,"BROOM"},
4419 {0x1F90E,"BROWN HEART"},
43844420 {0x1F41B,"BUG"},
43854421 {0x1A1F,"BUGINESE END OF SECTION"},
43864422 {0x1A15,"BUGINESE LETTER A"},
44434479 {0x1F68F,"BUS STOP"},
44444480 {0x1F464,"BUST IN SILHOUETTE"},
44454481 {0x1F465,"BUSTS IN SILHOUETTE"},
4482 {0x1F9C8,"BUTTER"},
44464483 {0x1F98B,"BUTTERFLY"},
44474484 {0x1D09C,"BYZANTINE MUSICAL SYMBOL AGOGI ARGI"},
44484485 {0x1D09B,"BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI"},
55455582 {0xFE4A,"CENTRELINE OVERLINE"},
55465583 {0x26B3,"CERES"},
55475584 {0x26D3,"CHAINS"},
5585 {0x1FA91,"CHAIR"},
55485586 {0x11132,"CHAKMA AU MARK"},
55495587 {0x11141,"CHAKMA DANDA"},
55505588 {0x1113E,"CHAKMA DIGIT EIGHT"},
79988036 {0x2CE8,"COPTIC SYMBOL TAU RO"},
79998037 {0x1F12F,"COPYLEFT SYMBOL"},
80008038 {0x00A9,"COPYRIGHT SIGN"},
8039 {0x2E4F,"CORNISH VERSE DIVIDER"},
80018040 {0x2258,"CORRESPONDS TO"},
80028041 {0x1F6CB,"COUCH AND LAMP"},
80038042 {0x2334,"COUNTERBORE"},
97519790 {0xFE4D,"DASHED LOW LINE"},
97529791 {0xFE49,"DASHED OVERLINE"},
97539792 {0x279F,"DASHED TRIANGLE-HEADED RIGHTWARDS ARROW"},
9793 {0x1F9CF,"DEAF PERSON"},
97549794 {0x1F333,"DECIDUOUS TREE"},
97559795 {0x23E8,"DECIMAL EXPONENT SYMBOL"},
97569796 {0x2396,"DECIMAL SEPARATOR KEY SYMBOL"},
1010210142 {0x2382,"DISCONTINUOUS UNDERLINE SYMBOL"},
1010310143 {0x3003,"DITTO MARK"},
1010410144 {0x2223,"DIVIDES"},
10145 {0x1F93F,"DIVING MASK"},
1010510146 {0x00F7,"DIVISION SIGN"},
1010610147 {0x2215,"DIVISION SLASH"},
1010710148 {0x22C7,"DIVISION TIMES"},
1010810149 {0x26AE,"DIVORCE SYMBOL"},
10150 {0x1FA94,"DIYA LAMP"},
1010910151 {0x1F635,"DIZZY FACE"},
1011010152 {0x1F4AB,"DIZZY SYMBOL"},
1011110153 {0x1F9EC,"DNA DOUBLE HELIX"},
1046410506 {0x26DA,"DRIVE SLOW SIGN"},
1046510507 {0x1F42A,"DROMEDARY CAMEL"},
1046610508 {0x1F924,"DROOLING FACE"},
10509 {0x1FA78,"DROP OF BLOOD"},
1046710510 {0x1F4A7,"DROPLET"},
1046810511 {0x1F941,"DRUM WITH DRUMSTICKS"},
1046910512 {0x1F986,"DUCK"},
1061710660 {0x1F442,"EAR"},
1061810661 {0x1F33D,"EAR OF MAIZE"},
1061910662 {0x1F33E,"EAR OF RICE"},
10663 {0x1F9BB,"EAR WITH HEARING AID"},
1062010664 {0x2641,"EARTH"},
1062110665 {0x1F30E,"EARTH GLOBE AMERICAS"},
1062210666 {0x1F30F,"EARTH GLOBE ASIA-AUSTRALIA"},
1074910793 {0x13057,"EGYPTIAN HIEROGLYPH B007"},
1075010794 {0x13058,"EGYPTIAN HIEROGLYPH B008"},
1075110795 {0x13059,"EGYPTIAN HIEROGLYPH B009"},
10796 {0x13437,"EGYPTIAN HIEROGLYPH BEGIN SEGMENT"},
1075210797 {0x1305A,"EGYPTIAN HIEROGLYPH C001"},
1075310798 {0x1305B,"EGYPTIAN HIEROGLYPH C002"},
1075410799 {0x1305C,"EGYPTIAN HIEROGLYPH C002A"},
1091310958 {0x130FB,"EGYPTIAN HIEROGLYPH E036"},
1091410959 {0x130FC,"EGYPTIAN HIEROGLYPH E037"},
1091510960 {0x130FD,"EGYPTIAN HIEROGLYPH E038"},
10961 {0x13438,"EGYPTIAN HIEROGLYPH END SEGMENT"},
1091610962 {0x130FE,"EGYPTIAN HIEROGLYPH F001"},
1091710963 {0x130FF,"EGYPTIAN HIEROGLYPH F001A"},
1091810964 {0x13100,"EGYPTIAN HIEROGLYPH F002"},
1105111097 {0x13185,"EGYPTIAN HIEROGLYPH H006A"},
1105211098 {0x13186,"EGYPTIAN HIEROGLYPH H007"},
1105311099 {0x13187,"EGYPTIAN HIEROGLYPH H008"},
11100 {0x13431,"EGYPTIAN HIEROGLYPH HORIZONTAL JOINER"},
1105411101 {0x13188,"EGYPTIAN HIEROGLYPH I001"},
1105511102 {0x13189,"EGYPTIAN HIEROGLYPH I002"},
1105611103 {0x1318A,"EGYPTIAN HIEROGLYPH I003"},
1107011117 {0x13198,"EGYPTIAN HIEROGLYPH I013"},
1107111118 {0x13199,"EGYPTIAN HIEROGLYPH I014"},
1107211119 {0x1319A,"EGYPTIAN HIEROGLYPH I015"},
11120 {0x13435,"EGYPTIAN HIEROGLYPH INSERT AT BOTTOM END"},
11121 {0x13433,"EGYPTIAN HIEROGLYPH INSERT AT BOTTOM START"},
11122 {0x13434,"EGYPTIAN HIEROGLYPH INSERT AT TOP END"},
11123 {0x13432,"EGYPTIAN HIEROGLYPH INSERT AT TOP START"},
1107311124 {0x1319B,"EGYPTIAN HIEROGLYPH K001"},
1107411125 {0x1319C,"EGYPTIAN HIEROGLYPH K002"},
1107511126 {0x1319D,"EGYPTIAN HIEROGLYPH K003"},
1132611377 {0x13298,"EGYPTIAN HIEROGLYPH O050A"},
1132711378 {0x13299,"EGYPTIAN HIEROGLYPH O050B"},
1132811379 {0x1329A,"EGYPTIAN HIEROGLYPH O051"},
11380 {0x13436,"EGYPTIAN HIEROGLYPH OVERLAY MIDDLE"},
1132911381 {0x1329B,"EGYPTIAN HIEROGLYPH P001"},
1133011382 {0x1329C,"EGYPTIAN HIEROGLYPH P001A"},
1133111383 {0x1329D,"EGYPTIAN HIEROGLYPH P002"},
1160211654 {0x133AC,"EGYPTIAN HIEROGLYPH V039"},
1160311655 {0x133AD,"EGYPTIAN HIEROGLYPH V040"},
1160411656 {0x133AE,"EGYPTIAN HIEROGLYPH V040A"},
11657 {0x13430,"EGYPTIAN HIEROGLYPH VERTICAL JOINER"},
1160511658 {0x133AF,"EGYPTIAN HIEROGLYPH W001"},
1160611659 {0x133B0,"EGYPTIAN HIEROGLYPH W002"},
1160711660 {0x133B1,"EGYPTIAN HIEROGLYPH W003"},
1176011813 {0x22F3,"ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE"},
1176111814 {0x1F418,"ELEPHANT"},
1176211815 {0x1F9DD,"ELF"},
11816 {0x10FE0,"ELYMAIC LETTER ALEPH"},
11817 {0x10FEF,"ELYMAIC LETTER AYIN"},
11818 {0x10FE1,"ELYMAIC LETTER BETH"},
11819 {0x10FE3,"ELYMAIC LETTER DALETH"},
11820 {0x10FE2,"ELYMAIC LETTER GIMEL"},
11821 {0x10FE4,"ELYMAIC LETTER HE"},
11822 {0x10FE7,"ELYMAIC LETTER HETH"},
11823 {0x10FEA,"ELYMAIC LETTER KAPH"},
11824 {0x10FEB,"ELYMAIC LETTER LAMEDH"},
11825 {0x10FEC,"ELYMAIC LETTER MEM"},
11826 {0x10FED,"ELYMAIC LETTER NUN"},
11827 {0x10FF0,"ELYMAIC LETTER PE"},
11828 {0x10FF2,"ELYMAIC LETTER QOPH"},
11829 {0x10FF3,"ELYMAIC LETTER RESH"},
11830 {0x10FF1,"ELYMAIC LETTER SADHE"},
11831 {0x10FEE,"ELYMAIC LETTER SAMEKH"},
11832 {0x10FF4,"ELYMAIC LETTER SHIN"},
11833 {0x10FF5,"ELYMAIC LETTER TAW"},
11834 {0x10FE8,"ELYMAIC LETTER TETH"},
11835 {0x10FE5,"ELYMAIC LETTER WAW"},
11836 {0x10FE9,"ELYMAIC LETTER YODH"},
11837 {0x10FE6,"ELYMAIC LETTER ZAYIN"},
11838 {0x10FF6,"ELYMAIC LIGATURE ZAYIN-YODH"},
1176311839 {0x2014,"EM DASH"},
1176411840 {0x2001,"EM QUAD"},
1176511841 {0x2003,"EM SPACE"},
1238312459 {0x213B,"FACSIMILE SIGN"},
1238412460 {0x1F3ED,"FACTORY"},
1238512461 {0x1F9DA,"FAIRY"},
12462 {0x1F9C6,"FALAFEL"},
1238612463 {0x1F342,"FALLEN LEAF"},
1238712464 {0x292F,"FALLING DIAGONAL CROSSING NORTH EAST ARROW"},
1238812465 {0x292C,"FALLING DIAGONAL CROSSING RISING DIAGONAL"},
1242512502 {0x2E2D,"FIVE DOT MARK"},
1242612503 {0x2059,"FIVE DOT PUNCTUATION"},
1242712504 {0x26F3,"FLAG IN HOLE"},
12505 {0x1F9A9,"FLAMINGO"},
1242812506 {0x1F97F,"FLAT SHOE"},
1242912507 {0x23E5,"FLATNESS"},
1243012508 {0x269C,"FLEUR-DE-LIS"},
1258912667 {0x26B1,"FUNERAL URN"},
1259012668 {0x23DB,"FUSE"},
1259112669 {0x1F3B2,"GAME DIE"},
12670 {0x1F9C4,"GARLIC"},
1259212671 {0x2699,"GEAR"},
1259312672 {0x26EE,"GEAR WITH HANDLES"},
1259412673 {0x26ED,"GEAR WITHOUT HUB"},
1353813617 {0x1F497,"GROWING HEART"},
1353913618 {0x20B2,"GUARANI SIGN"},
1354013619 {0x1F482,"GUARDSMAN"},
13620 {0x1F9AE,"GUIDE DOG"},
1354113621 {0x1F3B8,"GUITAR"},
1354213622 {0x0AF0,"GUJARATI ABBREVIATION SIGN"},
1354313623 {0x0AEE,"GUJARATI DIGIT EIGHT"},
1471114791 {0x05EF,"HEBREW YOD TRIANGLE"},
1471214792 {0x1F994,"HEDGEHOG"},
1471314793 {0x1F681,"HELICOPTER"},
14794 {0x2BFF,"HELLSCHREIBER PAUSE SYMBOL"},
1471414795 {0x2388,"HELM SYMBOL"},
1471514796 {0x26D1,"HELMET WITH WHITE CROSS"},
1471614797 {0x1B002,"HENTAIGANA LETTER A-1"},
1507115152 {0x1F684,"HIGH-SPEED TRAIN"},
1507215153 {0x1F685,"HIGH-SPEED TRAIN WITH BULLET NOSE"},
1507315154 {0x1F97E,"HIKING BOOT"},
15155 {0x1F6D5,"HINDU TEMPLE"},
1507415156 {0x1F99B,"HIPPOPOTAMUS"},
1507515157 {0x309F,"HIRAGANA DIGRAPH YORI"},
1507615158 {0x309D,"HIRAGANA ITERATION MARK"},
1513715219 {0x3063,"HIRAGANA LETTER SMALL TU"},
1513815220 {0x3045,"HIRAGANA LETTER SMALL U"},
1513915221 {0x308E,"HIRAGANA LETTER SMALL WA"},
15222 {0x1B151,"HIRAGANA LETTER SMALL WE"},
15223 {0x1B150,"HIRAGANA LETTER SMALL WI"},
15224 {0x1B152,"HIRAGANA LETTER SMALL WO"},
1514015225 {0x3083,"HIRAGANA LETTER SMALL YA"},
1514115226 {0x3087,"HIRAGANA LETTER SMALL YO"},
1514215227 {0x3085,"HIRAGANA LETTER SMALL YU"},
1521115296 {0x238E,"HYSTERESIS SYMBOL"},
1521215297 {0x1F91F,"I LOVE YOU HAND SIGN"},
1521315298 {0x1F368,"ICE CREAM"},
15299 {0x1F9CA,"ICE CUBE"},
1521415300 {0x1F3D2,"ICE HOCKEY STICK AND PUCK"},
1521515301 {0x26F8,"ICE SKATE"},
1521615302 {0x2261,"IDENTICAL TO"},
1609516181 {0x30F6,"KATAKANA LETTER SMALL KE"},
1609616182 {0x31F0,"KATAKANA LETTER SMALL KU"},
1609716183 {0x31FA,"KATAKANA LETTER SMALL MU"},
16184 {0x1B167,"KATAKANA LETTER SMALL N"},
1609816185 {0x31F4,"KATAKANA LETTER SMALL NU"},
1609916186 {0x30A9,"KATAKANA LETTER SMALL O"},
1610016187 {0x31FB,"KATAKANA LETTER SMALL RA"},
1610816195 {0x30C3,"KATAKANA LETTER SMALL TU"},
1610916196 {0x30A5,"KATAKANA LETTER SMALL U"},
1611016197 {0x30EE,"KATAKANA LETTER SMALL WA"},
16198 {0x1B165,"KATAKANA LETTER SMALL WE"},
16199 {0x1B164,"KATAKANA LETTER SMALL WI"},
16200 {0x1B166,"KATAKANA LETTER SMALL WO"},
1611116201 {0x30E3,"KATAKANA LETTER SMALL YA"},
1611216202 {0x30E7,"KATAKANA LETTER SMALL YO"},
1611316203 {0x30E5,"KATAKANA LETTER SMALL YU"},
1654816638 {0x1F617,"KISSING FACE"},
1654916639 {0x1F61A,"KISSING FACE WITH CLOSED EYES"},
1655016640 {0x1F619,"KISSING FACE WITH SMILING EYES"},
16641 {0x1FA81,"KITE"},
1655116642 {0x1F95D,"KIWIFRUIT"},
16643 {0x1F9CE,"KNEELING PERSON"},
1655216644 {0x1F428,"KOALA"},
1655316645 {0x327F,"KOREAN STANDARD SYMBOL"},
1655416646 {0x2BE3,"KRONOS"},
1659216684 {0x0E99,"LAO LETTER NO"},
1659316685 {0x0E8D,"LAO LETTER NYO"},
1659416686 {0x0EAD,"LAO LETTER O"},
16687 {0x0EA0,"LAO LETTER PALI BHA"},
16688 {0x0E89,"LAO LETTER PALI CHA"},
16689 {0x0E91,"LAO LETTER PALI DDA"},
16690 {0x0E92,"LAO LETTER PALI DDHA"},
16691 {0x0E98,"LAO LETTER PALI DHA"},
16692 {0x0E86,"LAO LETTER PALI GHA"},
16693 {0x0E8C,"LAO LETTER PALI JHA"},
16694 {0x0EAC,"LAO LETTER PALI LLA"},
16695 {0x0E93,"LAO LETTER PALI NNA"},
16696 {0x0E8E,"LAO LETTER PALI NYA"},
16697 {0x0E8F,"LAO LETTER PALI TTA"},
16698 {0x0E90,"LAO LETTER PALI TTHA"},
1659516699 {0x0E9C,"LAO LETTER PHO SUNG"},
1659616700 {0x0E9E,"LAO LETTER PHO TAM"},
1659716701 {0x0E9B,"LAO LETTER PO"},
16702 {0x0EA8,"LAO LETTER SANSKRIT SHA"},
16703 {0x0EA9,"LAO LETTER SANSKRIT SSA"},
1659816704 {0x0EAA,"LAO LETTER SO SUNG"},
1659916705 {0x0E8A,"LAO LETTER SO TAM"},
1660016706 {0x0E96,"LAO LETTER THO SUNG"},
1660516711 {0x0ECD,"LAO NIGGAHITA"},
1660616712 {0x0EBC,"LAO SEMIVOWEL SIGN LO"},
1660716713 {0x0EBD,"LAO SEMIVOWEL SIGN NYO"},
16714 {0x0EBA,"LAO SIGN PALI VIRAMA"},
1660816715 {0x0ECB,"LAO TONE MAI CATAWA"},
1660916716 {0x0EC8,"LAO TONE MAI EK"},
1661016717 {0x0EC9,"LAO TONE MAI THO"},
1662716734 {0x0EB7,"LAO VOWEL SIGN YY"},
1662816735 {0x1F535,"LARGE BLUE CIRCLE"},
1662916736 {0x1F537,"LARGE BLUE DIAMOND"},
16737 {0x1F7E6,"LARGE BLUE SQUARE"},
16738 {0x1F7E4,"LARGE BROWN CIRCLE"},
16739 {0x1F7EB,"LARGE BROWN SQUARE"},
1663016740 {0x25EF,"LARGE CIRCLE"},
1663116741 {0x27D9,"LARGE DOWN TACK"},
16742 {0x1F7E2,"LARGE GREEN CIRCLE"},
16743 {0x1F7E9,"LARGE GREEN SQUARE"},
1663216744 {0x2A1E,"LARGE LEFT TRIANGLE OPERATOR"},
1663316745 {0x10B3D,"LARGE ONE DOT OVER TWO DOTS PUNCTUATION"},
1663416746 {0x10B3F,"LARGE ONE RING OVER TWO RINGS PUNCTUATION"},
16747 {0x1F7E0,"LARGE ORANGE CIRCLE"},
1663516748 {0x1F536,"LARGE ORANGE DIAMOND"},
16749 {0x1F7E7,"LARGE ORANGE SQUARE"},
16750 {0x1F7E3,"LARGE PURPLE CIRCLE"},
16751 {0x1F7EA,"LARGE PURPLE SQUARE"},
1663616752 {0x1F534,"LARGE RED CIRCLE"},
16753 {0x1F7E5,"LARGE RED SQUARE"},
1663716754 {0x2AFC,"LARGE TRIPLE VERTICAL BAR OPERATOR"},
1663816755 {0x10B3C,"LARGE TWO DOTS OVER ONE DOT PUNCTUATION"},
1663916756 {0x10B3E,"LARGE TWO RINGS OVER ONE RING PUNCTUATION"},
1664016757 {0x27D8,"LARGE UP TACK"},
16758 {0x1F7E1,"LARGE YELLOW CIRCLE"},
16759 {0x1F7E8,"LARGE YELLOW SQUARE"},
1664116760 {0x2AAB,"LARGER THAN"},
1664216761 {0x2AAD,"LARGER THAN OR EQUAL TO"},
1664316762 {0x20BE,"LARI SIGN"},
1668116800 {0x01E2,"LATIN CAPITAL LETTER AE WITH MACRON"},
1668216801 {0x0189,"LATIN CAPITAL LETTER AFRICAN D"},
1668316802 {0x2C6D,"LATIN CAPITAL LETTER ALPHA"},
16803 {0xA7C2,"LATIN CAPITAL LETTER ANGLICANA W"},
1668416804 {0xA734,"LATIN CAPITAL LETTER AO"},
1668516805 {0xA736,"LATIN CAPITAL LETTER AU"},
1668616806 {0xA738,"LATIN CAPITAL LETTER AV"},
1670516825 {0x0108,"LATIN CAPITAL LETTER C WITH CIRCUMFLEX"},
1670616826 {0x010A,"LATIN CAPITAL LETTER C WITH DOT ABOVE"},
1670716827 {0x0187,"LATIN CAPITAL LETTER C WITH HOOK"},
16828 {0xA7C4,"LATIN CAPITAL LETTER C WITH PALATAL HOOK"},
1670816829 {0x023B,"LATIN CAPITAL LETTER C WITH STROKE"},
1670916830 {0xA7B3,"LATIN CAPITAL LETTER CHI"},
1671016831 {0xA76E,"LATIN CAPITAL LETTER CON"},
1677616897 {0xA7A0,"LATIN CAPITAL LETTER G WITH OBLIQUE STROKE"},
1677716898 {0x01E4,"LATIN CAPITAL LETTER G WITH STROKE"},
1677816899 {0x0194,"LATIN CAPITAL LETTER GAMMA"},
16900 {0xA7BA,"LATIN CAPITAL LETTER GLOTTAL A"},
16901 {0xA7BC,"LATIN CAPITAL LETTER GLOTTAL I"},
1677916902 {0x0241,"LATIN CAPITAL LETTER GLOTTAL STOP"},
16903 {0xA7BE,"LATIN CAPITAL LETTER GLOTTAL U"},
1678016904 {0x0048,"LATIN CAPITAL LETTER H"},
1678116905 {0x1E2A,"LATIN CAPITAL LETTER H WITH BREVE BELOW"},
1678216906 {0x021E,"LATIN CAPITAL LETTER H WITH CARON"},
1695917083 {0x1E60,"LATIN CAPITAL LETTER S WITH DOT ABOVE"},
1696017084 {0x1E62,"LATIN CAPITAL LETTER S WITH DOT BELOW"},
1696117085 {0x1E68,"LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE"},
17086 {0xA7C5,"LATIN CAPITAL LETTER S WITH HOOK"},
1696217087 {0xA7A8,"LATIN CAPITAL LETTER S WITH OBLIQUE STROKE"},
1696317088 {0x2C7E,"LATIN CAPITAL LETTER S WITH SWASH TAIL"},
1696417089 {0xA78B,"LATIN CAPITAL LETTER SALTILLO"},
1707617201 {0x1E92,"LATIN CAPITAL LETTER Z WITH DOT BELOW"},
1707717202 {0x0224,"LATIN CAPITAL LETTER Z WITH HOOK"},
1707817203 {0x1E94,"LATIN CAPITAL LETTER Z WITH LINE BELOW"},
17204 {0xA7C6,"LATIN CAPITAL LETTER Z WITH PALATAL HOOK"},
1707917205 {0x01B5,"LATIN CAPITAL LETTER Z WITH STROKE"},
1708017206 {0x2C7F,"LATIN CAPITAL LETTER Z WITH SWASH TAIL"},
1708117207 {0x0132,"LATIN CAPITAL LIGATURE IJ"},
1719217318 {0x01E3,"LATIN SMALL LETTER AE WITH MACRON"},
1719317319 {0x0251,"LATIN SMALL LETTER ALPHA"},
1719417320 {0x1D90,"LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK"},
17321 {0xA7C3,"LATIN SMALL LETTER ANGLICANA W"},
1719517322 {0xA735,"LATIN SMALL LETTER AO"},
1719617323 {0xA737,"LATIN SMALL LETTER AU"},
1719717324 {0xA739,"LATIN SMALL LETTER AV"},
1726617393 {0x01F3,"LATIN SMALL LETTER DZ"},
1726717394 {0x02A3,"LATIN SMALL LETTER DZ DIGRAPH"},
1726817395 {0x02A5,"LATIN SMALL LETTER DZ DIGRAPH WITH CURL"},
17396 {0xAB66,"LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK"},
1726917397 {0x01C6,"LATIN SMALL LETTER DZ WITH CARON"},
1727017398 {0x0065,"LATIN SMALL LETTER E"},
1727117399 {0x00E9,"LATIN SMALL LETTER E WITH ACUTE"},
1733317461 {0x1D83,"LATIN SMALL LETTER G WITH PALATAL HOOK"},
1733417462 {0x01E5,"LATIN SMALL LETTER G WITH STROKE"},
1733517463 {0x0263,"LATIN SMALL LETTER GAMMA"},
17464 {0xA7BB,"LATIN SMALL LETTER GLOTTAL A"},
17465 {0xA7BD,"LATIN SMALL LETTER GLOTTAL I"},
1733617466 {0x0242,"LATIN SMALL LETTER GLOTTAL STOP"},
17467 {0xA7BF,"LATIN SMALL LETTER GLOTTAL U"},
1733717468 {0x0068,"LATIN SMALL LETTER H"},
1733817469 {0x1E2B,"LATIN SMALL LETTER H WITH BREVE BELOW"},
1733917470 {0x021F,"LATIN SMALL LETTER H WITH CARON"},
1762717758 {0x1D16,"LATIN SMALL LETTER TOP HALF O"},
1762817759 {0xA72B,"LATIN SMALL LETTER TRESILLO"},
1762917760 {0x02A6,"LATIN SMALL LETTER TS DIGRAPH"},
17761 {0xAB67,"LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK"},
1763017762 {0xA777,"LATIN SMALL LETTER TUM"},
1763117763 {0x0250,"LATIN SMALL LETTER TURNED A"},
1763217764 {0x1D02,"LATIN SMALL LETTER TURNED AE"},
1926819400 {0x10AC8,"MANICHAEAN SIGN UD"},
1926919401 {0x1F45E,"MANS SHOE"},
1927019402 {0x1F570,"MANTELPIECE CLOCK"},
19403 {0x1F9BD,"MANUAL WHEELCHAIR"},
1927119404 {0x26EF,"MAP SYMBOL FOR LIGHTHOUSE"},
1927219405 {0x1F341,"MAPLE LEAF"},
1927319406 {0x11C70,"MARCHEN HEAD MARK"},
1941719550 {0x11D36,"MASARAM GONDI VOWEL SIGN VOCALIC R"},
1941819551 {0x00BA,"MASCULINE ORDINAL INDICATOR"},
1941919552 {0x303C,"MASU MARK"},
19553 {0x1F9C9,"MATE DRINK"},
1942019554 {0x1D400,"MATHEMATICAL BOLD CAPITAL A"},
1942119555 {0x1D6A8,"MATHEMATICAL BOLD CAPITAL ALPHA"},
1942219556 {0x1D401,"MATHEMATICAL BOLD CAPITAL B"},
2045920593 {0x225E,"MEASURED BY"},
2046020594 {0x299D,"MEASURED RIGHT ANGLE WITH DOT"},
2046120595 {0x1F356,"MEAT ON BONE"},
20596 {0x1F9BE,"MECHANICAL ARM"},
20597 {0x1F9BF,"MECHANICAL LEG"},
2046220598 {0x16E4D,"MEDEFAIDRIN CAPITAL LETTER A"},
2046320599 {0x16E5E,"MEDEFAIDRIN CAPITAL LETTER AI"},
2046420600 {0x16E44,"MEDEFAIDRIN CAPITAL LETTER ATIU"},
2101421150 {0x16F25,"MIAO LETTER ARCHAIC NGA"},
2101521151 {0x16F3F,"MIAO LETTER ARCHAIC ZZA"},
2101621152 {0x16F01,"MIAO LETTER BA"},
21153 {0x16F45,"MIAO LETTER BRI"},
2101721154 {0x16F0B,"MIAO LETTER DA"},
2101821155 {0x16F0F,"MIAO LETTER DDA"},
2101921156 {0x16F1B,"MIAO LETTER DLHA"},
2102021157 {0x16F1D,"MIAO LETTER DLHYA"},
2102121158 {0x16F38,"MIAO LETTER DZA"},
2102221159 {0x16F2F,"MIAO LETTER DZHA"},
21160 {0x16F47,"MIAO LETTER DZYI"},
2102321161 {0x16F2B,"MIAO LETTER DZZA"},
2102421162 {0x16F07,"MIAO LETTER FA"},
2102521163 {0x16F1F,"MIAO LETTER GA"},
2105421192 {0x16F9E,"MIAO LETTER REFORMED TONE-6"},
2105521193 {0x16F9F,"MIAO LETTER REFORMED TONE-8"},
2105621194 {0x16F32,"MIAO LETTER REFORMED TSHA"},
21195 {0x16F4A,"MIAO LETTER RTE"},
2105721196 {0x16F3A,"MIAO LETTER SA"},
2105821197 {0x16F33,"MIAO LETTER SHA"},
2105921198 {0x16F34,"MIAO LETTER SSA"},
21199 {0x16F46,"MIAO LETTER SYI"},
2106021200 {0x16F0A,"MIAO LETTER TA"},
21201 {0x16F48,"MIAO LETTER TE"},
2106121202 {0x16F1A,"MIAO LETTER TLHA"},
2106221203 {0x16F1C,"MIAO LETTER TLHYA"},
2106321204 {0x16F93,"MIAO LETTER TONE-2"},
2106821209 {0x16F98,"MIAO LETTER TONE-7"},
2106921210 {0x16F99,"MIAO LETTER TONE-8"},
2107021211 {0x16F37,"MIAO LETTER TSA"},
21212 {0x16F49,"MIAO LETTER TSE"},
2107121213 {0x16F2E,"MIAO LETTER TSHA"},
2107221214 {0x16F2A,"MIAO LETTER TSSA"},
2107321215 {0x16F0E,"MIAO LETTER TTA"},
2109221234 {0x16F41,"MIAO LETTER ZZSYA"},
2109321235 {0x16F40,"MIAO LETTER ZZYA"},
2109421236 {0x16F51,"MIAO SIGN ASPIRATION"},
21237 {0x16F4F,"MIAO SIGN CONSONANT MODIFIER BAR"},
2109521238 {0x16F53,"MIAO SIGN REFORMED ASPIRATION"},
2109621239 {0x16F52,"MIAO SIGN REFORMED VOICING"},
2109721240 {0x16F91,"MIAO TONE ABOVE"},
2110821251 {0x16F58,"MIAO VOWEL SIGN ANG"},
2110921252 {0x16F7B,"MIAO VOWEL SIGN AU"},
2111021253 {0x16F5D,"MIAO VOWEL SIGN E"},
21254 {0x16F85,"MIAO VOWEL SIGN EA"},
2111121255 {0x16F7A,"MIAO VOWEL SIGN EI"},
2111221256 {0x16F5E,"MIAO VOWEL SIGN EN"},
2111321257 {0x16F5F,"MIAO VOWEL SIGN ENG"},
2111821262 {0x16F63,"MIAO VOWEL SIGN IAN"},
2111921263 {0x16F64,"MIAO VOWEL SIGN IANG"},
2112021264 {0x16F66,"MIAO VOWEL SIGN IE"},
21265 {0x16F84,"MIAO VOWEL SIGN IG"},
2112121266 {0x16F67,"MIAO VOWEL SIGN II"},
2112221267 {0x16F69,"MIAO VOWEL SIGN ING"},
2112321268 {0x16F65,"MIAO VOWEL SIGN IO"},
21269 {0x16F86,"MIAO VOWEL SIGN IONG"},
2112421270 {0x16F68,"MIAO VOWEL SIGN IU"},
2112521271 {0x16F7D,"MIAO VOWEL SIGN N"},
2112621272 {0x16F7E,"MIAO VOWEL SIGN NG"},
2112721273 {0x16F59,"MIAO VOWEL SIGN O"},
21274 {0x16F82,"MIAO VOWEL SIGN OER"},
2112821275 {0x16F60,"MIAO VOWEL SIGN OEY"},
21276 {0x16F81,"MIAO VOWEL SIGN OG"},
2112921277 {0x16F5A,"MIAO VOWEL SIGN OO"},
2113021278 {0x16F7C,"MIAO VOWEL SIGN OU"},
2113121279 {0x16F78,"MIAO VOWEL SIGN ROUNDED ER"},
2113521283 {0x16F6C,"MIAO VOWEL SIGN UAN"},
2113621284 {0x16F6D,"MIAO VOWEL SIGN UANG"},
2113721285 {0x16F6F,"MIAO VOWEL SIGN UEI"},
21286 {0x16F87,"MIAO VOWEL SIGN UI"},
2113821287 {0x16F70,"MIAO VOWEL SIGN UNG"},
21288 {0x16F7F,"MIAO VOWEL SIGN UOG"},
2113921289 {0x16F6E,"MIAO VOWEL SIGN UU"},
21290 {0x16F83,"MIAO VOWEL SIGN VW"},
2114021291 {0x16F5C,"MIAO VOWEL SIGN W"},
2114121292 {0x16F5B,"MIAO VOWEL SIGN WO"},
2114221293 {0x16F71,"MIAO VOWEL SIGN Y"},
2114321294 {0x16F72,"MIAO VOWEL SIGN YI"},
21295 {0x16F80,"MIAO VOWEL SIGN YUI"},
2114421296 {0x00B5,"MICRO SIGN"},
2114521297 {0x1F9A0,"MICROBE"},
2114621298 {0x1F3A4,"MICROPHONE"},
2164921801 {0x1F936,"MOTHER CHRISTMAS"},
2165021802 {0x1F6E5,"MOTOR BOAT"},
2165121803 {0x1F6F5,"MOTOR SCOOTER"},
21804 {0x1F9BC,"MOTORIZED WHEELCHAIR"},
2165221805 {0x1F6E3,"MOTORWAY"},
2165321806 {0x1F5FB,"MOUNT FUJI"},
2165421807 {0x26F0,"MOUNTAIN"},
2227922432 {0x20A6,"NAIRA SIGN"},
2228022433 {0x1F4DB,"NAME BADGE"},
2228122434 {0x22BC,"NAND"},
22435 {0x119E3,"NANDINAGARI HEADSTROKE"},
22436 {0x119A0,"NANDINAGARI LETTER A"},
22437 {0x119A1,"NANDINAGARI LETTER AA"},
22438 {0x119AB,"NANDINAGARI LETTER AI"},
22439 {0x119AD,"NANDINAGARI LETTER AU"},
22440 {0x119C4,"NANDINAGARI LETTER BA"},
22441 {0x119C5,"NANDINAGARI LETTER BHA"},
22442 {0x119B3,"NANDINAGARI LETTER CA"},
22443 {0x119B4,"NANDINAGARI LETTER CHA"},
22444 {0x119BF,"NANDINAGARI LETTER DA"},
22445 {0x119BA,"NANDINAGARI LETTER DDA"},
22446 {0x119BB,"NANDINAGARI LETTER DDHA"},
22447 {0x119C0,"NANDINAGARI LETTER DHA"},
22448 {0x119AA,"NANDINAGARI LETTER E"},
22449 {0x119B0,"NANDINAGARI LETTER GA"},
22450 {0x119B1,"NANDINAGARI LETTER GHA"},
22451 {0x119CE,"NANDINAGARI LETTER HA"},
22452 {0x119A2,"NANDINAGARI LETTER I"},
22453 {0x119A3,"NANDINAGARI LETTER II"},
22454 {0x119B5,"NANDINAGARI LETTER JA"},
22455 {0x119B6,"NANDINAGARI LETTER JHA"},
22456 {0x119AE,"NANDINAGARI LETTER KA"},
22457 {0x119AF,"NANDINAGARI LETTER KHA"},
22458 {0x119C9,"NANDINAGARI LETTER LA"},
22459 {0x119CF,"NANDINAGARI LETTER LLA"},
22460 {0x119C6,"NANDINAGARI LETTER MA"},
22461 {0x119C1,"NANDINAGARI LETTER NA"},
22462 {0x119B2,"NANDINAGARI LETTER NGA"},
22463 {0x119BC,"NANDINAGARI LETTER NNA"},
22464 {0x119B7,"NANDINAGARI LETTER NYA"},
22465 {0x119AC,"NANDINAGARI LETTER O"},
22466 {0x119C2,"NANDINAGARI LETTER PA"},
22467 {0x119C3,"NANDINAGARI LETTER PHA"},
22468 {0x119C8,"NANDINAGARI LETTER RA"},
22469 {0x119D0,"NANDINAGARI LETTER RRA"},
22470 {0x119CD,"NANDINAGARI LETTER SA"},
22471 {0x119CB,"NANDINAGARI LETTER SHA"},
22472 {0x119CC,"NANDINAGARI LETTER SSA"},
22473 {0x119BD,"NANDINAGARI LETTER TA"},
22474 {0x119BE,"NANDINAGARI LETTER THA"},
22475 {0x119B8,"NANDINAGARI LETTER TTA"},
22476 {0x119B9,"NANDINAGARI LETTER TTHA"},
22477 {0x119A4,"NANDINAGARI LETTER U"},
22478 {0x119A5,"NANDINAGARI LETTER UU"},
22479 {0x119CA,"NANDINAGARI LETTER VA"},
22480 {0x119A6,"NANDINAGARI LETTER VOCALIC R"},
22481 {0x119A7,"NANDINAGARI LETTER VOCALIC RR"},
22482 {0x119C7,"NANDINAGARI LETTER YA"},
22483 {0x119DE,"NANDINAGARI SIGN ANUSVARA"},
22484 {0x119E1,"NANDINAGARI SIGN AVAGRAHA"},
22485 {0x119E2,"NANDINAGARI SIGN SIDDHAM"},
22486 {0x119E0,"NANDINAGARI SIGN VIRAMA"},
22487 {0x119DF,"NANDINAGARI SIGN VISARGA"},
22488 {0x119D1,"NANDINAGARI VOWEL SIGN AA"},
22489 {0x119DB,"NANDINAGARI VOWEL SIGN AI"},
22490 {0x119DD,"NANDINAGARI VOWEL SIGN AU"},
22491 {0x119DA,"NANDINAGARI VOWEL SIGN E"},
22492 {0x119D2,"NANDINAGARI VOWEL SIGN I"},
22493 {0x119D3,"NANDINAGARI VOWEL SIGN II"},
22494 {0x119DC,"NANDINAGARI VOWEL SIGN O"},
22495 {0x119E4,"NANDINAGARI VOWEL SIGN PRISHTHAMATRA E"},
22496 {0x119D4,"NANDINAGARI VOWEL SIGN U"},
22497 {0x119D5,"NANDINAGARI VOWEL SIGN UU"},
22498 {0x119D6,"NANDINAGARI VOWEL SIGN VOCALIC R"},
22499 {0x119D7,"NANDINAGARI VOWEL SIGN VOCALIC RR"},
2228222500 {0x202F,"NARROW NO-BREAK SPACE"},
2228322501 {0x206E,"NATIONAL DIGIT SHAPES"},
2228422502 {0x1F3DE,"NATIONAL PARK"},
2236722585 {0x2274,"NEITHER LESS-THAN NOR EQUIVALENT TO"},
2236822586 {0x2278,"NEITHER LESS-THAN NOR GREATER-THAN"},
2236922587 {0x2646,"NEPTUNE"},
22588 {0x2BC9,"NEPTUNE FORM TWO"},
2237022589 {0x1F913,"NERD FACE"},
2237122590 {0x2BDC,"NESSUS"},
2237222591 {0x26B2,"NEUTER"},
22592 {0x1FA03,"NEUTRAL CHESS BISHOP"},
22593 {0x1FA18,"NEUTRAL CHESS BISHOP ROTATED NINETY DEGREES"},
22594 {0x1FA42,"NEUTRAL CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES"},
22595 {0x1FA4A,"NEUTRAL CHESS EQUIHOPPER"},
22596 {0x1FA4D,"NEUTRAL CHESS EQUIHOPPER ROTATED NINETY DEGREES"},
22597 {0x1FA00,"NEUTRAL CHESS KING"},
22598 {0x1FA15,"NEUTRAL CHESS KING ROTATED NINETY DEGREES"},
22599 {0x1FA3F,"NEUTRAL CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES"},
22600 {0x1FA04,"NEUTRAL CHESS KNIGHT"},
22601 {0x1FA08,"NEUTRAL CHESS KNIGHT ROTATED FORTY-FIVE DEGREES"},
22602 {0x1FA19,"NEUTRAL CHESS KNIGHT ROTATED NINETY DEGREES"},
22603 {0x1FA1D,"NEUTRAL CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES"},
22604 {0x1FA47,"NEUTRAL CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES"},
22605 {0x1FA43,"NEUTRAL CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES"},
22606 {0x1FA32,"NEUTRAL CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES"},
22607 {0x1FA05,"NEUTRAL CHESS PAWN"},
22608 {0x1FA1A,"NEUTRAL CHESS PAWN ROTATED NINETY DEGREES"},
22609 {0x1FA44,"NEUTRAL CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES"},
22610 {0x1FA01,"NEUTRAL CHESS QUEEN"},
22611 {0x1FA16,"NEUTRAL CHESS QUEEN ROTATED NINETY DEGREES"},
22612 {0x1FA40,"NEUTRAL CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES"},
22613 {0x1FA02,"NEUTRAL CHESS ROOK"},
22614 {0x1FA17,"NEUTRAL CHESS ROOK ROTATED NINETY DEGREES"},
22615 {0x1FA41,"NEUTRAL CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES"},
22616 {0x1FA2D,"NEUTRAL CHESS TURNED BISHOP"},
22617 {0x1FA2A,"NEUTRAL CHESS TURNED KING"},
22618 {0x1FA2E,"NEUTRAL CHESS TURNED KNIGHT"},
22619 {0x1FA2F,"NEUTRAL CHESS TURNED PAWN"},
22620 {0x1FA2B,"NEUTRAL CHESS TURNED QUEEN"},
22621 {0x1FA2C,"NEUTRAL CHESS TURNED ROOK"},
2237322622 {0x1F610,"NEUTRAL FACE"},
2237422623 {0x1F311,"NEW MOON SYMBOL"},
2237522624 {0x1F31A,"NEW MOON WITH FACE"},
2252022769 {0x1141B,"NEWA LETTER TTHA"},
2252122770 {0x11404,"NEWA LETTER U"},
2252222771 {0x11405,"NEWA LETTER UU"},
22772 {0x1145F,"NEWA LETTER VEDIC ANUSVARA"},
2252322773 {0x11408,"NEWA LETTER VOCALIC L"},
2252422774 {0x11409,"NEWA LETTER VOCALIC LL"},
2252522775 {0x11406,"NEWA LETTER VOCALIC R"},
2311723367 {0x1B2FB,"NUSHU CHARACTER-1B2FB"},
2311823368 {0x16FE1,"NUSHU ITERATION MARK"},
2311923369 {0x1F529,"NUT AND BOLT"},
23370 {0x1E14F,"NYIAKENG PUACHUE HMONG CIRCLED CA"},
23371 {0x1E148,"NYIAKENG PUACHUE HMONG DIGIT EIGHT"},
23372 {0x1E145,"NYIAKENG PUACHUE HMONG DIGIT FIVE"},
23373 {0x1E144,"NYIAKENG PUACHUE HMONG DIGIT FOUR"},
23374 {0x1E149,"NYIAKENG PUACHUE HMONG DIGIT NINE"},
23375 {0x1E141,"NYIAKENG PUACHUE HMONG DIGIT ONE"},
23376 {0x1E147,"NYIAKENG PUACHUE HMONG DIGIT SEVEN"},
23377 {0x1E146,"NYIAKENG PUACHUE HMONG DIGIT SIX"},
23378 {0x1E143,"NYIAKENG PUACHUE HMONG DIGIT THREE"},
23379 {0x1E142,"NYIAKENG PUACHUE HMONG DIGIT TWO"},
23380 {0x1E140,"NYIAKENG PUACHUE HMONG DIGIT ZERO"},
23381 {0x1E124,"NYIAKENG PUACHUE HMONG LETTER A"},
23382 {0x1E125,"NYIAKENG PUACHUE HMONG LETTER AA"},
23383 {0x1E108,"NYIAKENG PUACHUE HMONG LETTER CA"},
23384 {0x1E10F,"NYIAKENG PUACHUE HMONG LETTER DA"},
23385 {0x1E11D,"NYIAKENG PUACHUE HMONG LETTER DLA"},
23386 {0x1E12A,"NYIAKENG PUACHUE HMONG LETTER E"},
23387 {0x1E12B,"NYIAKENG PUACHUE HMONG LETTER EE"},
23388 {0x1E115,"NYIAKENG PUACHUE HMONG LETTER FA"},
23389 {0x1E122,"NYIAKENG PUACHUE HMONG LETTER GA"},
23390 {0x1E104,"NYIAKENG PUACHUE HMONG LETTER HA"},
23391 {0x1E11F,"NYIAKENG PUACHUE HMONG LETTER HAH"},
23392 {0x1E126,"NYIAKENG PUACHUE HMONG LETTER I"},
23393 {0x1E10E,"NYIAKENG PUACHUE HMONG LETTER KA"},
23394 {0x1E109,"NYIAKENG PUACHUE HMONG LETTER LA"},
23395 {0x1E100,"NYIAKENG PUACHUE HMONG LETTER MA"},
23396 {0x1E120,"NYIAKENG PUACHUE HMONG LETTER MLA"},
23397 {0x1E105,"NYIAKENG PUACHUE HMONG LETTER NA"},
23398 {0x1E10C,"NYIAKENG PUACHUE HMONG LETTER NCA"},
23399 {0x1E107,"NYIAKENG PUACHUE HMONG LETTER NKA"},
23400 {0x1E11C,"NYIAKENG PUACHUE HMONG LETTER NPA"},
23401 {0x1E11E,"NYIAKENG PUACHUE HMONG LETTER NPLA"},
23402 {0x1E119,"NYIAKENG PUACHUE HMONG LETTER NQA"},
23403 {0x1E111,"NYIAKENG PUACHUE HMONG LETTER NRA"},
23404 {0x1E102,"NYIAKENG PUACHUE HMONG LETTER NTA"},
23405 {0x1E10D,"NYIAKENG PUACHUE HMONG LETTER NTSA"},
23406 {0x1E113,"NYIAKENG PUACHUE HMONG LETTER NTXA"},
23407 {0x1E110,"NYIAKENG PUACHUE HMONG LETTER NYA"},
23408 {0x1E128,"NYIAKENG PUACHUE HMONG LETTER O"},
23409 {0x1E129,"NYIAKENG PUACHUE HMONG LETTER OO"},
23410 {0x1E11A,"NYIAKENG PUACHUE HMONG LETTER PA"},
23411 {0x1E121,"NYIAKENG PUACHUE HMONG LETTER PLA"},
23412 {0x1E117,"NYIAKENG PUACHUE HMONG LETTER QA"},
23413 {0x1E116,"NYIAKENG PUACHUE HMONG LETTER RA"},
23414 {0x1E123,"NYIAKENG PUACHUE HMONG LETTER RRA"},
23415 {0x1E10A,"NYIAKENG PUACHUE HMONG LETTER SA"},
23416 {0x1E103,"NYIAKENG PUACHUE HMONG LETTER TA"},
23417 {0x1E101,"NYIAKENG PUACHUE HMONG LETTER TSA"},
23418 {0x1E114,"NYIAKENG PUACHUE HMONG LETTER TXA"},
23419 {0x1E127,"NYIAKENG PUACHUE HMONG LETTER U"},
23420 {0x1E112,"NYIAKENG PUACHUE HMONG LETTER VA"},
23421 {0x1E12C,"NYIAKENG PUACHUE HMONG LETTER W"},
23422 {0x1E106,"NYIAKENG PUACHUE HMONG LETTER XA"},
23423 {0x1E11B,"NYIAKENG PUACHUE HMONG LETTER XYA"},
23424 {0x1E118,"NYIAKENG PUACHUE HMONG LETTER YA"},
23425 {0x1E10B,"NYIAKENG PUACHUE HMONG LETTER ZA"},
23426 {0x1E14E,"NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ"},
23427 {0x1E13A,"NYIAKENG PUACHUE HMONG SIGN FOR ANIMAL"},
23428 {0x1E13B,"NYIAKENG PUACHUE HMONG SIGN FOR INVERTEBRATE"},
23429 {0x1E139,"NYIAKENG PUACHUE HMONG SIGN FOR LOCATION"},
23430 {0x1E137,"NYIAKENG PUACHUE HMONG SIGN FOR PERSON"},
23431 {0x1E138,"NYIAKENG PUACHUE HMONG SIGN FOR THING"},
23432 {0x1E13C,"NYIAKENG PUACHUE HMONG SIGN XW XW"},
23433 {0x1E13D,"NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER"},
23434 {0x1E130,"NYIAKENG PUACHUE HMONG TONE-B"},
23435 {0x1E136,"NYIAKENG PUACHUE HMONG TONE-D"},
23436 {0x1E135,"NYIAKENG PUACHUE HMONG TONE-G"},
23437 {0x1E132,"NYIAKENG PUACHUE HMONG TONE-J"},
23438 {0x1E131,"NYIAKENG PUACHUE HMONG TONE-M"},
23439 {0x1E134,"NYIAKENG PUACHUE HMONG TONE-S"},
23440 {0x1E133,"NYIAKENG PUACHUE HMONG TONE-V"},
2312023441 {0xFFFC,"OBJECT REPLACEMENT CHARACTER"},
2312123442 {0x29A7,"OBLIQUE ANGLE OPENING DOWN"},
2312223443 {0x29A6,"OBLIQUE ANGLE OPENING UP"},
2321723538 {0x1C7F,"OL CHIKI PUNCTUATION DOUBLE MUCAAD"},
2321823539 {0x1C7E,"OL CHIKI PUNCTUATION MUCAAD"},
2321923540 {0x1C7B,"OL CHIKI RELAA"},
23541 {0x16FE2,"OLD CHINESE HOOK MARK"},
23542 {0x16FE3,"OLD CHINESE ITERATION MARK"},
2322023543 {0x10C80,"OLD HUNGARIAN CAPITAL LETTER A"},
2322123544 {0x10C81,"OLD HUNGARIAN CAPITAL LETTER AA"},
2322223545 {0x10C94,"OLD HUNGARIAN CAPITAL LETTER AK"},
2364423967 {0x1F5AF,"ONE BUTTON MOUSE"},
2364523968 {0x2024,"ONE DOT LEADER"},
2364623969 {0x2E2B,"ONE DOT OVER TWO DOTS PUNCTUATION"},
23970 {0x1FA71,"ONE-PIECE SWIMSUIT"},
23971 {0x1F9C5,"ONION"},
2364723972 {0x1F4D6,"OPEN BOOK"},
2364823973 {0x2423,"OPEN BOX"},
2364923974 {0x2732,"OPEN CENTRE ASTERISK"},
2366923994 {0x27C7,"OR WITH DOT INSIDE"},
2367023995 {0x1F4D9,"ORANGE BOOK"},
2367123996 {0x1F9E1,"ORANGE HEART"},
23997 {0x1F9A7,"ORANGUTAN"},
2367223998 {0x22B6,"ORIGINAL OF"},
2367323999 {0x0B56,"ORIYA AI LENGTH MARK"},
2367424000 {0x0B57,"ORIYA AU LENGTH MARK"},
2387524201 {0x10493,"OSMANYA LETTER WAW"},
2387624202 {0x10484,"OSMANYA LETTER XA"},
2387724203 {0x10495,"OSMANYA LETTER YA"},
24204 {0x1F9A6,"OTTER"},
24205 {0x1ED35,"OTTOMAN SIYAQ ALTERNATE NUMBER EIGHT"},
24206 {0x1ED32,"OTTOMAN SIYAQ ALTERNATE NUMBER FIVE"},
24207 {0x1ED31,"OTTOMAN SIYAQ ALTERNATE NUMBER FOUR"},
24208 {0x1ED38,"OTTOMAN SIYAQ ALTERNATE NUMBER FOUR HUNDRED"},
24209 {0x1ED36,"OTTOMAN SIYAQ ALTERNATE NUMBER NINE"},
24210 {0x1ED34,"OTTOMAN SIYAQ ALTERNATE NUMBER SEVEN"},
24211 {0x1ED33,"OTTOMAN SIYAQ ALTERNATE NUMBER SIX"},
24212 {0x1ED39,"OTTOMAN SIYAQ ALTERNATE NUMBER SIX HUNDRED"},
24213 {0x1ED37,"OTTOMAN SIYAQ ALTERNATE NUMBER TEN"},
24214 {0x1ED3B,"OTTOMAN SIYAQ ALTERNATE NUMBER TEN THOUSAND"},
24215 {0x1ED30,"OTTOMAN SIYAQ ALTERNATE NUMBER THREE"},
24216 {0x1ED2F,"OTTOMAN SIYAQ ALTERNATE NUMBER TWO"},
24217 {0x1ED3A,"OTTOMAN SIYAQ ALTERNATE NUMBER TWO THOUSAND"},
24218 {0x1ED3C,"OTTOMAN SIYAQ FRACTION ONE HALF"},
24219 {0x1ED3D,"OTTOMAN SIYAQ FRACTION ONE SIXTH"},
24220 {0x1ED2E,"OTTOMAN SIYAQ MARRATAN"},
24221 {0x1ED08,"OTTOMAN SIYAQ NUMBER EIGHT"},
24222 {0x1ED1A,"OTTOMAN SIYAQ NUMBER EIGHT HUNDRED"},
24223 {0x1ED23,"OTTOMAN SIYAQ NUMBER EIGHT THOUSAND"},
24224 {0x1ED11,"OTTOMAN SIYAQ NUMBER EIGHTY"},
24225 {0x1ED2C,"OTTOMAN SIYAQ NUMBER EIGHTY THOUSAND"},
24226 {0x1ED0E,"OTTOMAN SIYAQ NUMBER FIFTY"},
24227 {0x1ED29,"OTTOMAN SIYAQ NUMBER FIFTY THOUSAND"},
24228 {0x1ED05,"OTTOMAN SIYAQ NUMBER FIVE"},
24229 {0x1ED17,"OTTOMAN SIYAQ NUMBER FIVE HUNDRED"},
24230 {0x1ED20,"OTTOMAN SIYAQ NUMBER FIVE THOUSAND"},
24231 {0x1ED0D,"OTTOMAN SIYAQ NUMBER FORTY"},
24232 {0x1ED28,"OTTOMAN SIYAQ NUMBER FORTY THOUSAND"},
24233 {0x1ED04,"OTTOMAN SIYAQ NUMBER FOUR"},
24234 {0x1ED16,"OTTOMAN SIYAQ NUMBER FOUR HUNDRED"},
24235 {0x1ED1F,"OTTOMAN SIYAQ NUMBER FOUR THOUSAND"},
24236 {0x1ED09,"OTTOMAN SIYAQ NUMBER NINE"},
24237 {0x1ED1B,"OTTOMAN SIYAQ NUMBER NINE HUNDRED"},
24238 {0x1ED24,"OTTOMAN SIYAQ NUMBER NINE THOUSAND"},
24239 {0x1ED12,"OTTOMAN SIYAQ NUMBER NINETY"},
24240 {0x1ED2D,"OTTOMAN SIYAQ NUMBER NINETY THOUSAND"},
24241 {0x1ED01,"OTTOMAN SIYAQ NUMBER ONE"},
24242 {0x1ED13,"OTTOMAN SIYAQ NUMBER ONE HUNDRED"},
24243 {0x1ED1C,"OTTOMAN SIYAQ NUMBER ONE THOUSAND"},
24244 {0x1ED07,"OTTOMAN SIYAQ NUMBER SEVEN"},
24245 {0x1ED19,"OTTOMAN SIYAQ NUMBER SEVEN HUNDRED"},
24246 {0x1ED22,"OTTOMAN SIYAQ NUMBER SEVEN THOUSAND"},
24247 {0x1ED10,"OTTOMAN SIYAQ NUMBER SEVENTY"},
24248 {0x1ED2B,"OTTOMAN SIYAQ NUMBER SEVENTY THOUSAND"},
24249 {0x1ED06,"OTTOMAN SIYAQ NUMBER SIX"},
24250 {0x1ED18,"OTTOMAN SIYAQ NUMBER SIX HUNDRED"},
24251 {0x1ED21,"OTTOMAN SIYAQ NUMBER SIX THOUSAND"},
24252 {0x1ED0F,"OTTOMAN SIYAQ NUMBER SIXTY"},
24253 {0x1ED2A,"OTTOMAN SIYAQ NUMBER SIXTY THOUSAND"},
24254 {0x1ED0A,"OTTOMAN SIYAQ NUMBER TEN"},
24255 {0x1ED25,"OTTOMAN SIYAQ NUMBER TEN THOUSAND"},
24256 {0x1ED0C,"OTTOMAN SIYAQ NUMBER THIRTY"},
24257 {0x1ED27,"OTTOMAN SIYAQ NUMBER THIRTY THOUSAND"},
24258 {0x1ED03,"OTTOMAN SIYAQ NUMBER THREE"},
24259 {0x1ED15,"OTTOMAN SIYAQ NUMBER THREE HUNDRED"},
24260 {0x1ED1E,"OTTOMAN SIYAQ NUMBER THREE THOUSAND"},
24261 {0x1ED0B,"OTTOMAN SIYAQ NUMBER TWENTY"},
24262 {0x1ED26,"OTTOMAN SIYAQ NUMBER TWENTY THOUSAND"},
24263 {0x1ED02,"OTTOMAN SIYAQ NUMBER TWO"},
24264 {0x1ED14,"OTTOMAN SIYAQ NUMBER TWO HUNDRED"},
24265 {0x1ED1D,"OTTOMAN SIYAQ NUMBER TWO THOUSAND"},
2387824266 {0x2125,"OUNCE SIGN"},
2387924267 {0x1F4E4,"OUTBOX TRAY"},
2388024268 {0x272D,"OUTLINED BLACK STAR"},
2388924277 {0x203E,"OVERLINE"},
2389024278 {0x1F989,"OWL"},
2389124279 {0x1F402,"OX"},
24280 {0x1F9AA,"OYSTER"},
2389224281 {0x1F4E6,"PACKAGE"},
2389324282 {0x1F5CF,"PAGE"},
2389424283 {0x1F4C4,"PAGE FACING UP"},
2406324452 {0x1F95E,"PANCAKES"},
2406424453 {0x1F43C,"PANDA FACE"},
2406524454 {0x1F4CE,"PAPERCLIP"},
24455 {0x1FA82,"PARACHUTE"},
2406624456 {0x2029,"PARAGRAPH SEPARATOR"},
2406724457 {0x2E0F,"PARAGRAPHOS"},
2406824458 {0x2E4D,"PARAGRAPHUS MARK"},
2445624846 {0x00B6,"PILCROW SIGN"},
2445724847 {0x1F4A9,"PILE OF POO"},
2445824848 {0x1F48A,"PILL"},
24849 {0x1F90F,"PINCHING HAND"},
2445924850 {0x1F38D,"PINE DECORATION"},
2446024851 {0x1F34D,"PINEAPPLE"},
2446124852 {0x272F,"PINWHEEL STAR"},
2464925040 {0x2399,"PRINT SCREEN SYMBOL"},
2465025041 {0x1F5A8,"PRINTER"},
2465125042 {0x1F5B6,"PRINTER ICON"},
25043 {0x1F9AF,"PROBING CANE"},
2465225044 {0x1F6C7,"PROHIBITED SIGN"},
2465325045 {0x2305,"PROJECTIVE"},
2465425046 {0x214A,"PROPERTY LINE"},
2473425126 {0x2E06,"RAISED INTERPOLATION MARKER"},
2473525127 {0x1F16A,"RAISED MC SIGN"},
2473625128 {0x1F16B,"RAISED MD SIGN"},
25129 {0x1F16C,"RAISED MR SIGN"},
2473725130 {0x2E0B,"RAISED SQUARE"},
2473825131 {0x1F40F,"RAM"},
2473925132 {0x1F400,"RAT"},
2474025133 {0x2236,"RATIO"},
25134 {0x1FA92,"RAZOR"},
2474125135 {0x1F9FE,"RECEIPT"},
2474225136 {0x1F699,"RECREATIONAL VEHICLE"},
2474325137 {0x267C,"RECYCLED PAPER SYMBOL"},
2506925463 {0x2256,"RING IN EQUAL TO"},
2507025464 {0x2218,"RING OPERATOR"},
2507125465 {0x2E30,"RING POINT"},
25466 {0x1FA90,"RINGED PLANET"},
2507225467 {0x1F56D,"RINGING BELL"},
2507325468 {0x292B,"RISING DIAGONAL CROSSING FALLING DIAGONAL"},
2507425469 {0x2930,"RISING DIAGONAL CROSSING SOUTH EAST ARROW"},
2526625661 {0x2BF3,"RUSSIAN ASTROLOGICAL SYMBOL VIGINTILE"},
2526725662 {0x29CC,"S IN TRIANGLE"},
2526825663 {0x1F9F7,"SAFETY PIN"},
25664 {0x1F9BA,"SAFETY VEST"},
2526925665 {0x2650,"SAGITTARIUS"},
2527025666 {0x26F5,"SAILBOAT"},
2527125667 {0x1F376,"SAKE BOTTLE AND CUP"},
2533725733 {0x1F676,"SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT"},
2533825734 {0x1F678,"SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT"},
2533925735 {0x1F67A,"SANS-SERIF INTERROBANG ORNAMENT"},
25736 {0x1F97B,"SARI"},
2534025737 {0x1F6F0,"SATELLITE"},
2534125738 {0x1F4E1,"SATELLITE ANTENNA"},
2534225739 {0x2644,"SATURN"},
2563926036 {0x1BCA2,"SHORTHAND FORMAT DOWN STEP"},
2564026037 {0x1BCA0,"SHORTHAND FORMAT LETTER OVERLAP"},
2564126038 {0x1BCA3,"SHORTHAND FORMAT UP STEP"},
26039 {0x1FA73,"SHORTS"},
2564226040 {0x237D,"SHOULDERED OPEN BOX"},
2564326041 {0x1F6BF,"SHOWER"},
2564426042 {0x1F990,"SHRIMP"},
2654926947 {0x26F7,"SKIER"},
2655026948 {0x1F480,"SKULL"},
2655126949 {0x2620,"SKULL AND CROSSBONES"},
26950 {0x1F9A8,"SKUNK"},
2655226951 {0x2A96,"SLANTED EQUAL TO OR GREATER-THAN"},
2655326952 {0x2A98,"SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE"},
2655426953 {0x2A95,"SLANTED EQUAL TO OR LESS-THAN"},
2656926968 {0x2A58,"SLOPING LARGE AND"},
2657026969 {0x2A57,"SLOPING LARGE OR"},
2657126970 {0x1F3B0,"SLOT MACHINE"},
26971 {0x1F9A5,"SLOTH"},
2657226972 {0x1F6E9,"SMALL AIRPLANE"},
2657326973 {0xFE60,"SMALL AMPERSAND"},
2657426974 {0xFE61,"SMALL ASTERISK"},
2683227232 {0x11A9B,"SOYOMBO MARK SHAD"},
2683327233 {0x11A9A,"SOYOMBO MARK TSHEG"},
2683427234 {0x11A96,"SOYOMBO SIGN ANUSVARA"},
27235 {0x11A84,"SOYOMBO SIGN JIHVAMULIYA"},
27236 {0x11A85,"SOYOMBO SIGN UPADHMANIYA"},
2683527237 {0x11A97,"SOYOMBO SIGN VISARGA"},
2683627238 {0x11A99,"SOYOMBO SUBJOINER"},
2683727239 {0x11AA1,"SOYOMBO TERMINAL MARK-1"},
2723727639 {0x2695,"STAFF OF AESCULAPIUS"},
2723827640 {0x269A,"STAFF OF HERMES"},
2723927641 {0x1F583,"STAMPED ENVELOPE"},
27642 {0x1F9CD,"STANDING PERSON"},
2724027643 {0x262A,"STAR AND CRESCENT"},
2724127644 {0x225B,"STAR EQUALS"},
2724227645 {0x2721,"STAR OF DAVID"},
2724827651 {0x1F682,"STEAM LOCOMOTIVE"},
2724927652 {0x1F35C,"STEAMING BOWL"},
2725027653 {0x2E3C,"STENOGRAPHIC FULL STOP"},
27654 {0x1FA7A,"STETHOSCOPE"},
2725127655 {0x1F5E0,"STOCK CHART"},
2725227656 {0x23F1,"STOPWATCH"},
2725327657 {0x1F4CF,"STRAIGHT RULER"},
2798328387 {0x11680,"TAKRI LETTER A"},
2798428388 {0x11681,"TAKRI LETTER AA"},
2798528389 {0x11687,"TAKRI LETTER AI"},
28390 {0x116B8,"TAKRI LETTER ARCHAIC KHA"},
2798628391 {0x11689,"TAKRI LETTER AU"},
2798728392 {0x116A0,"TAKRI LETTER BA"},
2798828393 {0x116A1,"TAKRI LETTER BHA"},
2803828443 {0x116B1,"TAKRI VOWEL SIGN UU"},
2803928444 {0x1D378,"TALLY MARK FIVE"},
2804028445 {0x1D377,"TALLY MARK ONE"},
28446 {0x11FEB,"TAMIL AND ODD SIGN"},
2804128447 {0x0BF8,"TAMIL AS ABOVE SIGN"},
2804228448 {0x0BD7,"TAMIL AU LENGTH MARK"},
2804328449 {0x0BF7,"TAMIL CREDIT SIGN"},
28450 {0x11FEA,"TAMIL CURRENT SIGN"},
2804428451 {0x0BF3,"TAMIL DAY SIGN"},
2804528452 {0x0BF6,"TAMIL DEBIT SIGN"},
2804628453 {0x0BEE,"TAMIL DIGIT EIGHT"},
2805328460 {0x0BE9,"TAMIL DIGIT THREE"},
2805428461 {0x0BE8,"TAMIL DIGIT TWO"},
2805528462 {0x0BE6,"TAMIL DIGIT ZERO"},
28463 {0x11FE5,"TAMIL DRY CULTIVATION SIGN"},
28464 {0x11FD4,"TAMIL FRACTION DOWNSCALING FACTOR KIIZH"},
28465 {0x11FCC,"TAMIL FRACTION ONE EIGHTH"},
28466 {0x11FC2,"TAMIL FRACTION ONE EIGHTIETH"},
28467 {0x11FCF,"TAMIL FRACTION ONE FIFTH"},
28468 {0x11FC4,"TAMIL FRACTION ONE FORTIETH"},
28469 {0x11FD1,"TAMIL FRACTION ONE HALF-1"},
28470 {0x11FD2,"TAMIL FRACTION ONE HALF-2"},
28471 {0x11FC1,"TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH"},
28472 {0x11FD0,"TAMIL FRACTION ONE QUARTER"},
28473 {0x11FC9,"TAMIL FRACTION ONE SIXTEENTH-1"},
28474 {0x11FCA,"TAMIL FRACTION ONE SIXTEENTH-2"},
28475 {0x11FC3,"TAMIL FRACTION ONE SIXTY-FOURTH"},
28476 {0x11FCB,"TAMIL FRACTION ONE TENTH"},
28477 {0x11FC5,"TAMIL FRACTION ONE THIRTY-SECOND"},
28478 {0x11FC0,"TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH"},
28479 {0x11FC8,"TAMIL FRACTION ONE TWENTIETH"},
28480 {0x11FC6,"TAMIL FRACTION THREE EIGHTIETHS"},
28481 {0x11FD3,"TAMIL FRACTION THREE QUARTERS"},
28482 {0x11FCE,"TAMIL FRACTION THREE SIXTEENTHS"},
28483 {0x11FC7,"TAMIL FRACTION THREE SIXTY-FOURTHS"},
28484 {0x11FCD,"TAMIL FRACTION THREE TWENTIETHS"},
28485 {0x11FEE,"TAMIL IN POSSESSION SIGN"},
28486 {0x11FE6,"TAMIL LAND SIGN"},
2805628487 {0x0B85,"TAMIL LETTER A"},
2805728488 {0x0B86,"TAMIL LETTER AA"},
2805828489 {0x0B90,"TAMIL LETTER AI"},
2809428525 {0x0BFA,"TAMIL NUMBER SIGN"},
2809528526 {0x0BF0,"TAMIL NUMBER TEN"},
2809628527 {0x0BD0,"TAMIL OM"},
28528 {0x11FFF,"TAMIL PUNCTUATION END OF TEXT"},
2809728529 {0x0BF9,"TAMIL RUPEE SIGN"},
28530 {0x11FE7,"TAMIL SALT PAN SIGN"},
28531 {0x11FD7,"TAMIL SIGN AAZHAAKKU"},
2809828532 {0x0B82,"TAMIL SIGN ANUSVARA"},
28533 {0x11FD6,"TAMIL SIGN CEVITU"},
28534 {0x11FDD,"TAMIL SIGN KAACU"},
28535 {0x11FDA,"TAMIL SIGN KURUNI"},
28536 {0x11FE2,"TAMIL SIGN KUZHI"},
28537 {0x11FDC,"TAMIL SIGN MUKKURUNI"},
28538 {0x11FF0,"TAMIL SIGN MUTHALIYA"},
28539 {0x11FD9,"TAMIL SIGN MUUVUZHAKKU"},
28540 {0x11FD5,"TAMIL SIGN NEL"},
28541 {0x11FE1,"TAMIL SIGN PAARAM"},
28542 {0x11FDE,"TAMIL SIGN PANAM"},
28543 {0x11FDB,"TAMIL SIGN PATHAKKU"},
28544 {0x11FDF,"TAMIL SIGN PON"},
28545 {0x11FD8,"TAMIL SIGN UZHAKKU"},
28546 {0x11FF1,"TAMIL SIGN VAKAIYARAA"},
28547 {0x11FE0,"TAMIL SIGN VARAAKAN"},
28548 {0x11FE3,"TAMIL SIGN VELI"},
2809928549 {0x0BCD,"TAMIL SIGN VIRAMA"},
2810028550 {0x0B83,"TAMIL SIGN VISARGA"},
28551 {0x11FEC,"TAMIL SPENT SIGN"},
28552 {0x11FEF,"TAMIL STARTING FROM SIGN"},
28553 {0x11FED,"TAMIL TOTAL SIGN"},
28554 {0x11FE8,"TAMIL TRADITIONAL CREDIT SIGN"},
28555 {0x11FE9,"TAMIL TRADITIONAL NUMBER SIGN"},
2810128556 {0x0BBE,"TAMIL VOWEL SIGN AA"},
2810228557 {0x0BC8,"TAMIL VOWEL SIGN AI"},
2810328558 {0x0BCC,"TAMIL VOWEL SIGN AU"},
2810928564 {0x0BCB,"TAMIL VOWEL SIGN OO"},
2811028565 {0x0BC1,"TAMIL VOWEL SIGN U"},
2811128566 {0x0BC2,"TAMIL VOWEL SIGN UU"},
28567 {0x11FE4,"TAMIL WET CULTIVATION SIGN"},
2811228568 {0x0BF5,"TAMIL YEAR SIGN"},
2811328569 {0x1F38B,"TANABATA TREE"},
2811428570 {0x1F34A,"TANGERINE"},
2896429420 {0x0C01,"TELUGU SIGN CANDRABINDU"},
2896529421 {0x0C04,"TELUGU SIGN COMBINING ANUSVARA ABOVE"},
2896629422 {0x0C00,"TELUGU SIGN COMBINING CANDRABINDU ABOVE"},
29423 {0x0C77,"TELUGU SIGN SIDDHAM"},
2896729424 {0x0C7F,"TELUGU SIGN TUUMU"},
2896829425 {0x0C4D,"TELUGU SIGN VIRAMA"},
2896929426 {0x0C03,"TELUGU SIGN VISARGA"},
3046130918 {0x1CEC,"VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL"},
3046230919 {0x1CF2,"VEDIC SIGN ARDHAVISARGA"},
3046330920 {0x1CF7,"VEDIC SIGN ATIKRAMA"},
30921 {0x1CFA,"VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA"},
3046430922 {0x1CEE,"VEDIC SIGN HEXIFORM LONG ANUSVARA"},
3046530923 {0x1CF5,"VEDIC SIGN JIHVAMULIYA"},
3046630924 {0x1CEF,"VEDIC SIGN LONG ANUSVARA"},
3056531023 {0x2156,"VULGAR FRACTION TWO FIFTHS"},
3056631024 {0x2154,"VULGAR FRACTION TWO THIRDS"},
3056731025 {0x2189,"VULGAR FRACTION ZERO THIRDS"},
31026 {0x1F9C7,"WAFFLE"},
31027 {0x1E2F8,"WANCHO DIGIT EIGHT"},
31028 {0x1E2F5,"WANCHO DIGIT FIVE"},
31029 {0x1E2F4,"WANCHO DIGIT FOUR"},
31030 {0x1E2F9,"WANCHO DIGIT NINE"},
31031 {0x1E2F1,"WANCHO DIGIT ONE"},
31032 {0x1E2F7,"WANCHO DIGIT SEVEN"},
31033 {0x1E2F6,"WANCHO DIGIT SIX"},
31034 {0x1E2F3,"WANCHO DIGIT THREE"},
31035 {0x1E2F2,"WANCHO DIGIT TWO"},
31036 {0x1E2F0,"WANCHO DIGIT ZERO"},
31037 {0x1E2C1,"WANCHO LETTER A"},
31038 {0x1E2C0,"WANCHO LETTER AA"},
31039 {0x1E2E8,"WANCHO LETTER AAN"},
31040 {0x1E2E3,"WANCHO LETTER AANG"},
31041 {0x1E2E4,"WANCHO LETTER ANG"},
31042 {0x1E2D6,"WANCHO LETTER AU"},
31043 {0x1E2C2,"WANCHO LETTER BA"},
31044 {0x1E2C3,"WANCHO LETTER CA"},
31045 {0x1E2C4,"WANCHO LETTER DA"},
31046 {0x1E2DB,"WANCHO LETTER E"},
31047 {0x1E2E7,"WANCHO LETTER EN"},
31048 {0x1E2CD,"WANCHO LETTER FA"},
31049 {0x1E2C5,"WANCHO LETTER GA"},
31050 {0x1E2DA,"WANCHO LETTER HA"},
31051 {0x1E2DC,"WANCHO LETTER I"},
31052 {0x1E2E5,"WANCHO LETTER ING"},
31053 {0x1E2D0,"WANCHO LETTER JA"},
31054 {0x1E2D4,"WANCHO LETTER KA"},
31055 {0x1E2D9,"WANCHO LETTER KHA"},
31056 {0x1E2C8,"WANCHO LETTER LA"},
31057 {0x1E2DF,"WANCHO LETTER LLHA"},
31058 {0x1E2D8,"WANCHO LETTER MA"},
31059 {0x1E2C9,"WANCHO LETTER NA"},
31060 {0x1E2DD,"WANCHO LETTER NGA"},
31061 {0x1E2E9,"WANCHO LETTER NYA"},
31062 {0x1E2D5,"WANCHO LETTER O"},
31063 {0x1E2E6,"WANCHO LETTER ON"},
31064 {0x1E2E2,"WANCHO LETTER ONG"},
31065 {0x1E2CA,"WANCHO LETTER PA"},
31066 {0x1E2C7,"WANCHO LETTER PHA"},
31067 {0x1E2D7,"WANCHO LETTER RA"},
31068 {0x1E2CE,"WANCHO LETTER SA"},
31069 {0x1E2CF,"WANCHO LETTER SHA"},
31070 {0x1E2CB,"WANCHO LETTER TA"},
31071 {0x1E2CC,"WANCHO LETTER THA"},
31072 {0x1E2E1,"WANCHO LETTER TRA"},
31073 {0x1E2E0,"WANCHO LETTER TSA"},
31074 {0x1E2DE,"WANCHO LETTER U"},
31075 {0x1E2EA,"WANCHO LETTER UEN"},
31076 {0x1E2D3,"WANCHO LETTER VA"},
31077 {0x1E2D2,"WANCHO LETTER WA"},
31078 {0x1E2C6,"WANCHO LETTER YA"},
31079 {0x1E2EB,"WANCHO LETTER YIH"},
31080 {0x1E2D1,"WANCHO LETTER ZA"},
31081 {0x1E2FF,"WANCHO NGUN SIGN"},
31082 {0x1E2EE,"WANCHO TONE KOI"},
31083 {0x1E2EF,"WANCHO TONE KOINI"},
31084 {0x1E2EC,"WANCHO TONE TUP"},
31085 {0x1E2ED,"WANCHO TONE TUPNI"},
3056831086 {0x1F318,"WANING CRESCENT MOON SYMBOL"},
3056931087 {0x1F316,"WANING GIBBOUS MOON SYMBOL"},
3057031088 {0x118A1,"WARANG CITI CAPITAL LETTER A"},
3068431202 {0x1F8AD,"WHITE ARROW SHAFT WIDTH TWO THIRDS"},
3068531203 {0x25E6,"WHITE BULLET"},
3068631204 {0x2657,"WHITE CHESS BISHOP"},
31205 {0x1FA0C,"WHITE CHESS BISHOP ROTATED NINETY DEGREES"},
31206 {0x1FA36,"WHITE CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES"},
31207 {0x1FA48,"WHITE CHESS EQUIHOPPER"},
31208 {0x1FA4B,"WHITE CHESS EQUIHOPPER ROTATED NINETY DEGREES"},
3068731209 {0x2654,"WHITE CHESS KING"},
31210 {0x1FA09,"WHITE CHESS KING ROTATED NINETY DEGREES"},
31211 {0x1FA33,"WHITE CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES"},
3068831212 {0x2658,"WHITE CHESS KNIGHT"},
31213 {0x1FA06,"WHITE CHESS KNIGHT ROTATED FORTY-FIVE DEGREES"},
31214 {0x1FA0D,"WHITE CHESS KNIGHT ROTATED NINETY DEGREES"},
31215 {0x1FA1B,"WHITE CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES"},
31216 {0x1FA45,"WHITE CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES"},
31217 {0x1FA37,"WHITE CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES"},
31218 {0x1FA30,"WHITE CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES"},
31219 {0x1FA50,"WHITE CHESS KNIGHT-BISHOP"},
31220 {0x1FA4E,"WHITE CHESS KNIGHT-QUEEN"},
31221 {0x1FA4F,"WHITE CHESS KNIGHT-ROOK"},
3068931222 {0x2659,"WHITE CHESS PAWN"},
31223 {0x1FA0E,"WHITE CHESS PAWN ROTATED NINETY DEGREES"},
31224 {0x1FA38,"WHITE CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES"},
3069031225 {0x2655,"WHITE CHESS QUEEN"},
31226 {0x1FA0A,"WHITE CHESS QUEEN ROTATED NINETY DEGREES"},
31227 {0x1FA34,"WHITE CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES"},
3069131228 {0x2656,"WHITE CHESS ROOK"},
31229 {0x1FA0B,"WHITE CHESS ROOK ROTATED NINETY DEGREES"},
31230 {0x1FA35,"WHITE CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES"},
31231 {0x1FA21,"WHITE CHESS TURNED BISHOP"},
31232 {0x1FA1E,"WHITE CHESS TURNED KING"},
31233 {0x1FA22,"WHITE CHESS TURNED KNIGHT"},
31234 {0x1FA23,"WHITE CHESS TURNED PAWN"},
31235 {0x1FA1F,"WHITE CHESS TURNED QUEEN"},
31236 {0x1FA20,"WHITE CHESS TURNED ROOK"},
3069231237 {0x25CB,"WHITE CIRCLE"},
3069331238 {0x1F78A,"WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE"},
3069431239 {0x2686,"WHITE CIRCLE WITH DOT RIGHT"},
3072531270 {0x2727,"WHITE FOUR POINTED STAR"},
3072631271 {0x2639,"WHITE FROWNING FACE"},
3072731272 {0x1F5AB,"WHITE HARD SHELL FLOPPY DISK"},
31273 {0x1F90D,"WHITE HEART"},
3072831274 {0x2661,"WHITE HEART SUIT"},
3072931275 {0x2705,"WHITE HEAVY CHECK MARK"},
3073031276 {0x2B21,"WHITE HEXAGON"},
3088131427 {0x1FA61,"XIANGQI RED MANDARIN"},
3088231428 {0x1FA66,"XIANGQI RED SOLDIER"},
3088331429 {0x22BB,"XOR"},
31430 {0x1F971,"YAWNING FACE"},
3088431431 {0x1F49B,"YELLOW HEART"},
3088531432 {0x00A5,"YEN SIGN"},
3088631433 {0xA49B,"YI RADICAL BBUT"},
3210432651 {0xA2E7,"YI SYLLABLE ZZYT"},
3210532652 {0xA2E8,"YI SYLLABLE ZZYX"},
3210632653 {0x262F,"YIN YANG"},
32654 {0x1FA80,"YO-YO"},
3210732655 {0x22FF,"Z NOTATION BAG MEMBERSHIP"},
3210832656 {0x2A64,"Z NOTATION DOMAIN ANTIRESTRICTION"},
3210932657 {0x2989,"Z NOTATION LEFT BINDING BRACKET"},
0 #ifndef __ulong_chartraits_h__
1 #define __ulong_chartraits_h__
0 #pragma once
21
32 #include <iostream>
43 #include <string>
5857 {
5958 const char_type* __p = __s;
6059 while (*__p) ++__p;
61 return (__p - __s);
60 return static_cast<size_t>(__p - __s);
6261 }
6362
6463 static const char_type*
7170
7271 static char_type*
7372 move(char_type* __s1, const char_type* __s2, size_t __n)
74 { return (char_type*) memmove(__s1, __s2, __n * sizeof(char_type)); }
73 { return static_cast<char_type*>(memmove(__s1, __s2, __n * sizeof(char_type))); }
7574
7675 static char_type*
7776 copy(char_type* __s1, const char_type* __s2, size_t __n)
78 { return (char_type*) memcpy(__s1, __s2, __n * sizeof(char_type)); }
77 { return static_cast<char_type*>(memcpy(__s1, __s2, __n * sizeof(char_type))); }
7978
8079 static char_type*
8180 assign(char_type* __s, size_t __n, char_type __a)
9796 { return __c1 == __c2; }
9897
9998 static int_type
100 eof() { return static_cast<int_type>(-1); }
99 eof() { return int_type(-1); }
101100
102101 static int_type
103102 not_eof(const int_type& __c)
104103 { return eq_int_type(__c, eof()) ? int_type(0) : __c; }
105104 };
106105 }
107
108 #endif
(No changes)
0 # Makefile.in generated by automake 1.15 from Makefile.am.
0 # Makefile.in generated by automake 1.15.1 from Makefile.am.
11 # @configure_input@
22
3 # Copyright (C) 1994-2014 Free Software Foundation, Inc.
3 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
44
55 # This Makefile.in is free software; the Free Software Foundation
66 # gives unlimited permission to copy and/or distribute it,
0 # NormalizationTest-11.0.0.txt
1 # Date: 2018-02-19, 18:33:08 GMT
2 # ยฉ 2018 Unicodeยฎ, Inc.
0 # NormalizationTest-12.0.0.txt
1 # Date: 2019-01-22, 08:18:33 GMT
2 # ยฉ 2019 Unicodeยฎ, Inc.
33 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
44 # For terms of use, see http://www.unicode.org/terms_of_use.html
55 #
1636216362 1F14F;1F14F;1F14F;0057 0043;0057 0043; # (๐Ÿ…; ๐Ÿ…; ๐Ÿ…; WC; WC; ) SQUARED WC
1636316363 1F16A;1F16A;1F16A;004D 0043;004D 0043; # (๐Ÿ…ช; ๐Ÿ…ช; ๐Ÿ…ช; MC; MC; ) RAISED MC SIGN
1636416364 1F16B;1F16B;1F16B;004D 0044;004D 0044; # (๐Ÿ…ซ; ๐Ÿ…ซ; ๐Ÿ…ซ; MD; MD; ) RAISED MD SIGN
16365 1F16C;1F16C;1F16C;004D 0052;004D 0052; # (๐Ÿ…ฌ; ๐Ÿ…ฌ; ๐Ÿ…ฌ; MR; MR; ) RAISED MR SIGN
1636516366 1F190;1F190;1F190;0044 004A;0044 004A; # (๐Ÿ†; ๐Ÿ†; ๐Ÿ†; DJ; DJ; ) SQUARE DJ
1636616367 1F200;1F200;1F200;307B 304B;307B 304B; # (๐Ÿˆ€; ๐Ÿˆ€; ๐Ÿˆ€; ใปใ‹; ใปใ‹; ) SQUARE HIRAGANA HOKA
1636716368 1F201;1F201;1F201;30B3 30B3;30B3 30B3; # (๐Ÿˆ; ๐Ÿˆ; ๐Ÿˆ; ใ‚ณใ‚ณ; ใ‚ณใ‚ณ; ) SQUARED KATAKANA KOKO
1768417685 0061 0EB8 0EC8 0EB8 0E48 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062; # (aโ—Œเบธโ—Œเปˆโ—Œเบธโ—Œเนˆb; aโ—Œเนˆโ—Œเบธโ—Œเบธโ—Œเปˆb; aโ—Œเนˆโ—Œเบธโ—Œเบธโ—Œเปˆb; aโ—Œเนˆโ—Œเบธโ—Œเบธโ—Œเปˆb; aโ—Œเนˆโ—Œเบธโ—Œเบธโ—Œเปˆb; ) LATIN SMALL LETTER A, LAO VOWEL SIGN U, LAO TONE MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, LATIN SMALL LETTER B
1768517686 0061 0EC8 0EB8 0E48 0EB9 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062; # (aโ—Œเปˆโ—Œเบธโ—Œเนˆโ—Œเบนb; aโ—Œเนˆโ—Œเบธโ—Œเบนโ—Œเปˆb; aโ—Œเนˆโ—Œเบธโ—Œเบนโ—Œเปˆb; aโ—Œเนˆโ—Œเบธโ—Œเบนโ—Œเปˆb; aโ—Œเนˆโ—Œเบธโ—Œเบนโ—Œเปˆb; ) LATIN SMALL LETTER A, LAO TONE MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, LAO VOWEL SIGN UU, LATIN SMALL LETTER B
1768617687 0061 0EB9 0EC8 0EB8 0E48 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062; # (aโ—Œเบนโ—Œเปˆโ—Œเบธโ—Œเนˆb; aโ—Œเนˆโ—Œเบนโ—Œเบธโ—Œเปˆb; aโ—Œเนˆโ—Œเบนโ—Œเบธโ—Œเปˆb; aโ—Œเนˆโ—Œเบนโ—Œเบธโ—Œเปˆb; aโ—Œเนˆโ—Œเบนโ—Œเบธโ—Œเปˆb; ) LATIN SMALL LETTER A, LAO VOWEL SIGN UU, LAO TONE MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, LATIN SMALL LETTER B
17688 0061 05B0 094D 3099 0EBA 0062;0061 3099 094D 0EBA 05B0 0062;0061 3099 094D 0EBA 05B0 0062;0061 3099 094D 0EBA 05B0 0062;0061 3099 094D 0EBA 05B0 0062; # (aโ—Œึฐโ—Œเฅโ—Œใ‚™โ—Œเบบb; aโ—Œใ‚™โ—Œเฅโ—Œเบบโ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œเบบโ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œเบบโ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œเบบโ—Œึฐb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LAO SIGN PALI VIRAMA, LATIN SMALL LETTER B
17689 0061 0EBA 05B0 094D 3099 0062;0061 3099 0EBA 094D 05B0 0062;0061 3099 0EBA 094D 05B0 0062;0061 3099 0EBA 094D 05B0 0062;0061 3099 0EBA 094D 05B0 0062; # (aโ—Œเบบโ—Œึฐโ—Œเฅโ—Œใ‚™b; aโ—Œใ‚™โ—Œเบบโ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œเบบโ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œเบบโ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œเบบโ—Œเฅโ—Œึฐb; ) LATIN SMALL LETTER A, LAO SIGN PALI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
1768717690 0061 0F71 0EC8 0EB8 0EC8 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062; # (aโ—Œเฝฑโ—Œเปˆโ—Œเบธโ—Œเปˆb; aโ—Œเบธโ—Œเปˆโ—Œเปˆโ—Œเฝฑb; aโ—Œเบธโ—Œเปˆโ—Œเปˆโ—Œเฝฑb; aโ—Œเบธโ—Œเปˆโ—Œเปˆโ—Œเฝฑb; aโ—Œเบธโ—Œเปˆโ—Œเปˆโ—Œเฝฑb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LAO TONE MAI EK, LATIN SMALL LETTER B
1768817691 0061 0EC8 0F71 0EC8 0EB8 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062; # (aโ—Œเปˆโ—Œเฝฑโ—Œเปˆโ—Œเบธb; aโ—Œเบธโ—Œเปˆโ—Œเปˆโ—Œเฝฑb; aโ—Œเบธโ—Œเปˆโ—Œเปˆโ—Œเฝฑb; aโ—Œเบธโ—Œเปˆโ—Œเปˆโ—Œเฝฑb; aโ—Œเบธโ—Œเปˆโ—Œเปˆโ—Œเฝฑb; ) LATIN SMALL LETTER A, LAO TONE MAI EK, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LATIN SMALL LETTER B
1768917692 0061 0F71 0EC8 0EB8 0EC9 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062; # (aโ—Œเฝฑโ—Œเปˆโ—Œเบธโ—Œเป‰b; aโ—Œเบธโ—Œเปˆโ—Œเป‰โ—Œเฝฑb; aโ—Œเบธโ—Œเปˆโ—Œเป‰โ—Œเฝฑb; aโ—Œเบธโ—Œเปˆโ—Œเป‰โ—Œเฝฑb; aโ—Œเบธโ—Œเปˆโ—Œเป‰โ—Œเฝฑb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LAO TONE MAI THO, LATIN SMALL LETTER B
1845218455 0061 11839 05B0 094D 3099 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 094D 05B0 0062;0061 3099 11839 094D 05B0 0062; # (aโ—Œ๐‘ นโ—Œึฐโ—Œเฅโ—Œใ‚™b; aโ—Œใ‚™โ—Œ๐‘ นโ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œ๐‘ นโ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œ๐‘ นโ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œ๐‘ นโ—Œเฅโ—Œึฐb; ) LATIN SMALL LETTER A, DOGRA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
1845318456 0061 3099 093C 0334 1183A 0062;0061 0334 093C 1183A 3099 0062;0061 0334 093C 1183A 3099 0062;0061 0334 093C 1183A 3099 0062;0061 0334 093C 1183A 3099 0062; # (aโ—Œใ‚™โ—Œเคผโ—Œฬดโ—Œ๐‘ บb; aโ—Œฬดโ—Œเคผโ—Œ๐‘ บโ—Œใ‚™b; aโ—Œฬดโ—Œเคผโ—Œ๐‘ บโ—Œใ‚™b; aโ—Œฬดโ—Œเคผโ—Œ๐‘ บโ—Œใ‚™b; aโ—Œฬดโ—Œเคผโ—Œ๐‘ บโ—Œใ‚™b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, DOGRA SIGN NUKTA, LATIN SMALL LETTER B
1845418457 0061 1183A 3099 093C 0334 0062;0061 0334 1183A 093C 3099 0062;0061 0334 1183A 093C 3099 0062;0061 0334 1183A 093C 3099 0062;0061 0334 1183A 093C 3099 0062; # (aโ—Œ๐‘ บโ—Œใ‚™โ—Œเคผโ—Œฬดb; aโ—Œฬดโ—Œ๐‘ บโ—Œเคผโ—Œใ‚™b; aโ—Œฬดโ—Œ๐‘ บโ—Œเคผโ—Œใ‚™b; aโ—Œฬดโ—Œ๐‘ บโ—Œเคผโ—Œใ‚™b; aโ—Œฬดโ—Œ๐‘ บโ—Œเคผโ—Œใ‚™b; ) LATIN SMALL LETTER A, DOGRA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
18458 0061 05B0 094D 3099 119E0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062; # (aโ—Œึฐโ—Œเฅโ—Œใ‚™โ—Œ๐‘ง b; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘ง โ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘ง โ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘ง โ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘ง โ—Œึฐb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, NANDINAGARI SIGN VIRAMA, LATIN SMALL LETTER B
18459 0061 119E0 05B0 094D 3099 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 094D 05B0 0062; # (aโ—Œ๐‘ง โ—Œึฐโ—Œเฅโ—Œใ‚™b; aโ—Œใ‚™โ—Œ๐‘ง โ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œ๐‘ง โ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œ๐‘ง โ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œ๐‘ง โ—Œเฅโ—Œึฐb; ) LATIN SMALL LETTER A, NANDINAGARI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
1845518460 0061 05B0 094D 3099 11A34 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062;0061 3099 094D 11A34 05B0 0062; # (aโ—Œึฐโ—Œเฅโ—Œใ‚™โ—Œ๐‘จดb; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘จดโ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘จดโ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘จดโ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘จดโ—Œึฐb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, ZANABAZAR SQUARE SIGN VIRAMA, LATIN SMALL LETTER B
1845618461 0061 11A34 05B0 094D 3099 0062;0061 3099 11A34 094D 05B0 0062;0061 3099 11A34 094D 05B0 0062;0061 3099 11A34 094D 05B0 0062;0061 3099 11A34 094D 05B0 0062; # (aโ—Œ๐‘จดโ—Œึฐโ—Œเฅโ—Œใ‚™b; aโ—Œใ‚™โ—Œ๐‘จดโ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œ๐‘จดโ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œ๐‘จดโ—Œเฅโ—Œึฐb; aโ—Œใ‚™โ—Œ๐‘จดโ—Œเฅโ—Œึฐb; ) LATIN SMALL LETTER A, ZANABAZAR SQUARE SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
1845718462 0061 05B0 094D 3099 11A47 0062;0061 3099 094D 11A47 05B0 0062;0061 3099 094D 11A47 05B0 0062;0061 3099 094D 11A47 05B0 0062;0061 3099 094D 11A47 05B0 0062; # (aโ—Œึฐโ—Œเฅโ—Œใ‚™โ—Œ๐‘ฉ‡b; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘ฉ‡โ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘ฉ‡โ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘ฉ‡โ—Œึฐb; aโ—Œใ‚™โ—Œเฅโ—Œ๐‘ฉ‡โ—Œึฐb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, ZANABAZAR SQUARE SUBJOINER, LATIN SMALL LETTER B
1863618641 0061 1E029 0315 0300 05AE 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062; # (aโ—Œ๐ž€ฉโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž€ฉโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž€ฉโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž€ฉโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž€ฉโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER IOTATED BIG YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
1863718642 0061 0315 0300 05AE 1E02A 0062;00E0 05AE 1E02A 0315 0062;0061 05AE 0300 1E02A 0315 0062;00E0 05AE 1E02A 0315 0062;0061 05AE 0300 1E02A 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž€ชb; ร โ—Œึฎโ—Œ๐ž€ชโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž€ชโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž€ชโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž€ชโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER FITA, LATIN SMALL LETTER B
1863818643 0061 1E02A 0315 0300 05AE 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062; # (aโ—Œ๐ž€ชโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž€ชโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž€ชโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž€ชโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž€ชโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER FITA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18644 0061 0315 0300 05AE 1E130 0062;00E0 05AE 1E130 0315 0062;0061 05AE 0300 1E130 0315 0062;00E0 05AE 1E130 0315 0062;0061 05AE 0300 1E130 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž„ฐb; ร โ—Œึฎโ—Œ๐ž„ฐโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ฐโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž„ฐโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ฐโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-B, LATIN SMALL LETTER B
18645 0061 1E130 0315 0300 05AE 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062; # (aโ—Œ๐ž„ฐโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž„ฐโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ฐโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ฐโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ฐโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-B, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18646 0061 0315 0300 05AE 1E131 0062;00E0 05AE 1E131 0315 0062;0061 05AE 0300 1E131 0315 0062;00E0 05AE 1E131 0315 0062;0061 05AE 0300 1E131 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž„ฑb; ร โ—Œึฎโ—Œ๐ž„ฑโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ฑโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž„ฑโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ฑโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-M, LATIN SMALL LETTER B
18647 0061 1E131 0315 0300 05AE 0062;0061 05AE 1E131 0300 0315 0062;0061 05AE 1E131 0300 0315 0062;0061 05AE 1E131 0300 0315 0062;0061 05AE 1E131 0300 0315 0062; # (aโ—Œ๐ž„ฑโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž„ฑโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ฑโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ฑโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ฑโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-M, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18648 0061 0315 0300 05AE 1E132 0062;00E0 05AE 1E132 0315 0062;0061 05AE 0300 1E132 0315 0062;00E0 05AE 1E132 0315 0062;0061 05AE 0300 1E132 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž„ฒb; ร โ—Œึฎโ—Œ๐ž„ฒโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ฒโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž„ฒโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ฒโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-J, LATIN SMALL LETTER B
18649 0061 1E132 0315 0300 05AE 0062;0061 05AE 1E132 0300 0315 0062;0061 05AE 1E132 0300 0315 0062;0061 05AE 1E132 0300 0315 0062;0061 05AE 1E132 0300 0315 0062; # (aโ—Œ๐ž„ฒโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž„ฒโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ฒโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ฒโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ฒโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-J, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18650 0061 0315 0300 05AE 1E133 0062;00E0 05AE 1E133 0315 0062;0061 05AE 0300 1E133 0315 0062;00E0 05AE 1E133 0315 0062;0061 05AE 0300 1E133 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž„ณb; ร โ—Œึฎโ—Œ๐ž„ณโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ณโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž„ณโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ณโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-V, LATIN SMALL LETTER B
18651 0061 1E133 0315 0300 05AE 0062;0061 05AE 1E133 0300 0315 0062;0061 05AE 1E133 0300 0315 0062;0061 05AE 1E133 0300 0315 0062;0061 05AE 1E133 0300 0315 0062; # (aโ—Œ๐ž„ณโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž„ณโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ณโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ณโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ณโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-V, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18652 0061 0315 0300 05AE 1E134 0062;00E0 05AE 1E134 0315 0062;0061 05AE 0300 1E134 0315 0062;00E0 05AE 1E134 0315 0062;0061 05AE 0300 1E134 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž„ดb; ร โ—Œึฎโ—Œ๐ž„ดโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ดโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž„ดโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ดโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-S, LATIN SMALL LETTER B
18653 0061 1E134 0315 0300 05AE 0062;0061 05AE 1E134 0300 0315 0062;0061 05AE 1E134 0300 0315 0062;0061 05AE 1E134 0300 0315 0062;0061 05AE 1E134 0300 0315 0062; # (aโ—Œ๐ž„ดโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž„ดโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ดโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ดโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ดโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-S, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18654 0061 0315 0300 05AE 1E135 0062;00E0 05AE 1E135 0315 0062;0061 05AE 0300 1E135 0315 0062;00E0 05AE 1E135 0315 0062;0061 05AE 0300 1E135 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž„ตb; ร โ—Œึฎโ—Œ๐ž„ตโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ตโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž„ตโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ตโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-G, LATIN SMALL LETTER B
18655 0061 1E135 0315 0300 05AE 0062;0061 05AE 1E135 0300 0315 0062;0061 05AE 1E135 0300 0315 0062;0061 05AE 1E135 0300 0315 0062;0061 05AE 1E135 0300 0315 0062; # (aโ—Œ๐ž„ตโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž„ตโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ตโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ตโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ตโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-G, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18656 0061 0315 0300 05AE 1E136 0062;00E0 05AE 1E136 0315 0062;0061 05AE 0300 1E136 0315 0062;00E0 05AE 1E136 0315 0062;0061 05AE 0300 1E136 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž„ถb; ร โ—Œึฎโ—Œ๐ž„ถโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ถโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž„ถโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž„ถโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-D, LATIN SMALL LETTER B
18657 0061 1E136 0315 0300 05AE 0062;0061 05AE 1E136 0300 0315 0062;0061 05AE 1E136 0300 0315 0062;0061 05AE 1E136 0300 0315 0062;0061 05AE 1E136 0300 0315 0062; # (aโ—Œ๐ž„ถโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž„ถโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ถโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ถโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž„ถโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-D, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18658 0061 0315 0300 05AE 1E2EC 0062;00E0 05AE 1E2EC 0315 0062;0061 05AE 0300 1E2EC 0315 0062;00E0 05AE 1E2EC 0315 0062;0061 05AE 0300 1E2EC 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž‹ฌb; ร โ—Œึฎโ—Œ๐ž‹ฌโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž‹ฌโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž‹ฌโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž‹ฌโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE TUP, LATIN SMALL LETTER B
18659 0061 1E2EC 0315 0300 05AE 0062;0061 05AE 1E2EC 0300 0315 0062;0061 05AE 1E2EC 0300 0315 0062;0061 05AE 1E2EC 0300 0315 0062;0061 05AE 1E2EC 0300 0315 0062; # (aโ—Œ๐ž‹ฌโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž‹ฌโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ฌโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ฌโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ฌโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, WANCHO TONE TUP, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18660 0061 0315 0300 05AE 1E2ED 0062;00E0 05AE 1E2ED 0315 0062;0061 05AE 0300 1E2ED 0315 0062;00E0 05AE 1E2ED 0315 0062;0061 05AE 0300 1E2ED 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž‹ญb; ร โ—Œึฎโ—Œ๐ž‹ญโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž‹ญโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž‹ญโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž‹ญโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE TUPNI, LATIN SMALL LETTER B
18661 0061 1E2ED 0315 0300 05AE 0062;0061 05AE 1E2ED 0300 0315 0062;0061 05AE 1E2ED 0300 0315 0062;0061 05AE 1E2ED 0300 0315 0062;0061 05AE 1E2ED 0300 0315 0062; # (aโ—Œ๐ž‹ญโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž‹ญโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ญโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ญโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ญโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, WANCHO TONE TUPNI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18662 0061 0315 0300 05AE 1E2EE 0062;00E0 05AE 1E2EE 0315 0062;0061 05AE 0300 1E2EE 0315 0062;00E0 05AE 1E2EE 0315 0062;0061 05AE 0300 1E2EE 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž‹ฎb; ร โ—Œึฎโ—Œ๐ž‹ฎโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž‹ฎโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž‹ฎโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž‹ฎโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE KOI, LATIN SMALL LETTER B
18663 0061 1E2EE 0315 0300 05AE 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062; # (aโ—Œ๐ž‹ฎโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž‹ฎโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ฎโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ฎโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ฎโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, WANCHO TONE KOI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
18664 0061 0315 0300 05AE 1E2EF 0062;00E0 05AE 1E2EF 0315 0062;0061 05AE 0300 1E2EF 0315 0062;00E0 05AE 1E2EF 0315 0062;0061 05AE 0300 1E2EF 0315 0062; # (aโ—Œฬ•โ—Œฬ€โ—Œึฎโ—Œ๐ž‹ฏb; ร โ—Œึฎโ—Œ๐ž‹ฏโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž‹ฏโ—Œฬ•b; ร โ—Œึฎโ—Œ๐ž‹ฏโ—Œฬ•b; aโ—Œึฎโ—Œฬ€โ—Œ๐ž‹ฏโ—Œฬ•b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE KOINI, LATIN SMALL LETTER B
18665 0061 1E2EF 0315 0300 05AE 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062; # (aโ—Œ๐ž‹ฏโ—Œฬ•โ—Œฬ€โ—Œึฎb; aโ—Œึฎโ—Œ๐ž‹ฏโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ฏโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ฏโ—Œฬ€โ—Œฬ•b; aโ—Œึฎโ—Œ๐ž‹ฏโ—Œฬ€โ—Œฬ•b; ) LATIN SMALL LETTER A, WANCHO TONE KOINI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
1863918666 0061 059A 0316 302A 1E8D0 0062;0061 302A 0316 1E8D0 059A 0062;0061 302A 0316 1E8D0 059A 0062;0061 302A 0316 1E8D0 059A 0062;0061 302A 0316 1E8D0 059A 0062; # (aโ—Œึšโ—Œฬ–โ—Œใ€ชโ—Œ๐žฃb; aโ—Œใ€ชโ—Œฬ–โ—Œ๐žฃโ—Œึšb; aโ—Œใ€ชโ—Œฬ–โ—Œ๐žฃโ—Œึšb; aโ—Œใ€ชโ—Œฬ–โ—Œ๐žฃโ—Œึšb; aโ—Œใ€ชโ—Œฬ–โ—Œ๐žฃโ—Œึšb; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER TEENS, LATIN SMALL LETTER B
1864018667 0061 1E8D0 059A 0316 302A 0062;0061 302A 1E8D0 0316 059A 0062;0061 302A 1E8D0 0316 059A 0062;0061 302A 1E8D0 0316 059A 0062;0061 302A 1E8D0 0316 059A 0062; # (aโ—Œ๐žฃโ—Œึšโ—Œฬ–โ—Œใ€ชb; aโ—Œใ€ชโ—Œ๐žฃโ—Œฬ–โ—Œึšb; aโ—Œใ€ชโ—Œ๐žฃโ—Œฬ–โ—Œึšb; aโ—Œใ€ชโ—Œ๐žฃโ—Œฬ–โ—Œึšb; aโ—Œใ€ชโ—Œ๐žฃโ—Œฬ–โ—Œึšb; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER TEENS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
1864118668 0061 059A 0316 302A 1E8D1 0062;0061 302A 0316 1E8D1 059A 0062;0061 302A 0316 1E8D1 059A 0062;0061 302A 0316 1E8D1 059A 0062;0061 302A 0316 1E8D1 059A 0062; # (aโ—Œึšโ—Œฬ–โ—Œใ€ชโ—Œ๐žฃ‘b; aโ—Œใ€ชโ—Œฬ–โ—Œ๐žฃ‘โ—Œึšb; aโ—Œใ€ชโ—Œฬ–โ—Œ๐žฃ‘โ—Œึšb; aโ—Œใ€ชโ—Œฬ–โ—Œ๐žฃ‘โ—Œึšb; aโ—Œใ€ชโ—Œฬ–โ—Œ๐žฃ‘โ—Œึšb; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER TENS, LATIN SMALL LETTER B
0 #!/usr/bin/perl
0 #!/usr/bin/env perl
11
22 use strict;
33 use warnings;
(No changes)