[genius] First crack at adding vte
- From: George Lebl <jirka src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [genius] First crack at adding vte
- Date: Sat, 7 Apr 2018 23:11:28 +0000 (UTC)
commit a14a837f670f5e905de075c86612f9bf419f6b71
Author: Jiri (George) Lebl <jiri lebl gmail com>
Date: Sat Apr 7 16:26:48 2018 -0500
First crack at adding vte
Makefile.am | 2 +-
configure.ac | 9 +-
src/Makefile.am | 1 +
vte/AUTHORS | 1 +
vte/COPYING | 482 +
vte/ChangeLog |43708 ++++++++++++++++++++++++++++++++++++
vte/ChangeLog.pre-git |12065 ++++++++++
vte/HACKING | 18 +
vte/MAINTAINERS | 7 +
vte/Makefile.am | 51 +
vte/NEWS | 1068 +
vte/README | 13 +
vte/acinclude.m4 | 32 +
vte/autogen.sh | 29 +
vte/configure.in | 458 +
vte/depcomp | 630 +
vte/src/Makefile.am | 333 +
vte/src/Makefile.in | 2335 ++
vte/src/TODO | 32 +
vte/src/buffer.h | 43 +
vte/src/caps.c | 599 +
vte/src/caps.h | 59 +
vte/src/check-doc-syntax.sh | 78 +
vte/src/debug.c | 60 +
vte/src/debug.h | 92 +
vte/src/decset | 16 +
vte/src/dumpkeys.c | 348 +
vte/src/genkeysyms.py | 27 +
vte/src/interpret.c | 170 +
vte/src/iso2022.c | 1831 ++
vte/src/iso2022.h | 58 +
vte/src/iso2022.txt | 33 +
vte/src/keymap.c | 1455 ++
vte/src/keymap.h | 65 +
vte/src/keysyms.c | 1254 ++
vte/src/marshal.c | 231 +
vte/src/marshal.h | 44 +
vte/src/marshal.list | 4 +
vte/src/matcher.c | 248 +
vte/src/matcher.h | 76 +
vte/src/mev.c | 311 +
vte/src/mkunitables.sh | 45 +
vte/src/osc | 22 +
vte/src/pty.c | 2052 ++
vte/src/pty.h | 52 +
vte/src/reaper.c | 226 +
vte/src/reaper.h | 75 +
vte/src/reflect.c | 340 +
vte/src/ring.c | 631 +
vte/src/ring.h | 91 +
vte/src/slowcat.c | 118 +
vte/src/ssfe.c | 1271 ++
vte/src/table.c | 935 +
vte/src/table.h | 54 +
vte/src/trie.c | 1110 +
vte/src/trie.h | 65 +
vte/src/unitable.CNS11643 |17712 +++++++++++++++
vte/src/unitable.CP437 | 129 +
vte/src/unitable.GB12345 | 7549 +++++++
vte/src/unitable.GB2312 | 7446 ++++++
vte/src/unitable.JIS0201 | 66 +
vte/src/unitable.JIS0208 | 6879 ++++++
vte/src/unitable.JIS0212 | 6068 +++++
vte/src/unitable.KSX1001 | 8227 +++++++
vte/src/vte-gtk-compat.h | 80 +
vte/src/vte-private.h | 449 +
vte/src/vte.c |15421 +++++++++++++
vte/src/vte.h | 533 +
vte/src/vteaccess.c | 2126 ++
vte/src/vteaccess.h | 86 +
vte/src/vteapp.c | 1105 +
vte/src/vtebg.c | 529 +
vte/src/vtebg.h | 70 +
vte/src/vteconv.c | 615 +
vte/src/vteconv.h | 52 +
vte/src/vtedeprecated.h | 105 +
vte/src/vtedraw.c | 1166 +
vte/src/vtedraw.h | 116 +
vte/src/vteint.h | 36 +
vte/src/vtepty-private.h | 43 +
vte/src/vtepty.h | 121 +
vte/src/vteregex.c | 119 +
vte/src/vteregex.h | 38 +
vte/src/vterowdata.c | 164 +
vte/src/vterowdata.h | 174 +
vte/src/vteseq-2.c | 268 +
vte/src/vteseq-2.gperf | 291 +
vte/src/vteseq-list.h | 121 +
vte/src/vteseq-n.c | 393 +
vte/src/vteseq-n.gperf | 131 +
vte/src/vteseq.c | 3364 +++
vte/src/vtestream-base.h | 106 +
vte/src/vtestream-file.h | 296 +
vte/src/vtestream.c | 33 +
vte/src/vtestream.h | 49 +
vte/src/vtetc.c | 611 +
vte/src/vtetc.h | 59 +
vte/src/vtetree.c | 60 +
vte/src/vtetree.h | 50 +
vte/src/vtetypebuiltins.c | 161 +
vte/src/vtetypebuiltins.c.template | 40 +
vte/src/vtetypebuiltins.h | 39 +
vte/src/vtetypebuiltins.h.template | 28 +
vte/src/vteunistr.c | 175 +
vte/src/vteunistr.h | 87 +
vte/src/vteversion.h | 82 +
vte/src/vteversion.h.in | 82 +
vte/src/window | 28 +
vte/src/xticker.c | 144 +
vte/termcaps/Makefile.am | 12 +
vte/termcaps/Makefile.in | 499 +
vte/termcaps/xterm | 33 +
vte/termcaps/xterm.baseline | 35 +
113 files changed, 159958 insertions(+), 6 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 3b68209..1c1dac0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
ACLOCAL_AMFLAGS = -I m4 --install
-SUBDIRS = ve gtkextra src pixmaps examples lib po help
+SUBDIRS = ve vte gtkextra src pixmaps examples lib po help
mimeinfodir = $(datadir)/mime-info
mimeinfo_DATA = genius.keys genius.mime
diff --git a/configure.ac b/configure.ac
index 92847ef..859fe31 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,6 @@ AC_PROG_INTLTOOL([0.21])
dnl ================= Requirements ================================================
-VTE_REQUIRED=0.26.0
GTK_REQUIRED=2.18.0
GLIB_REQUIRED=2.12.0
GTKSOURCEVIEW_REQUIRED=0.3.0
@@ -104,6 +103,9 @@ AC_CHECK_LIB(mpfr, mpfr_j0, [],
#AC_SUBST(GCONF_CONFIG_SOURCE)
#AC_SUBST(INSTALL_GCONF_CONFIG_SOURCE)
+AC_CONFIG_SUBDIRS(vte)
+
+
AC_ARG_ENABLE(gtksourceview,
[ --disable-gtksourceview Do not use GtkSourceView library even if detected],
use_gtksourceview="$enableval",use_gtksourceview=yes)
@@ -122,7 +124,7 @@ PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_REQUIRED)
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
-GENIUS_MODULES="gtk+-2.0 >= $GTK_REQUIRED gio-2.0 >= $GIO_REQUIRED vte >= $VTE_REQUIRED"
+GENIUS_MODULES="gtk+-2.0 >= $GTK_REQUIRED gio-2.0 >= $GIO_REQUIRED"
if test "x$use_gnome" = "xyes" ; then
echo "
@@ -153,7 +155,6 @@ Note:
VICIOUS_MODULES="gtk+-2.0 >= $GTK_REQUIRED"
VICIOUS_UI_LIBS="libviciousui.a"
- GTKEXTRA_LIBS="libgtkextra-genius.a"
GNOME_GENIUS="gnome-genius\$(EXEEXT)"
GENIUS_READLINE_HELPER_FIFO="genius-readline-helper-fifo\$(EXEEXT)"
@@ -163,7 +164,6 @@ else
use_gtksourceview=no
VICIOUS_MODULES="glib-2.0 >= $GLIB_REQUIRED gmodule-2.0 >= $GLIB_REQUIRED"
VICIOUS_UI_LIBS=
- GTKEXTRA_LIBS=
GENIUS_CFLAGS="$GENIUS_NOGUI_CFLAGS"
GENIUS_LIBS="$GENIUS_NOGUI_LIBS"
GNOME_GENIUS=
@@ -172,7 +172,6 @@ else
fi
AC_SUBST(VICIOUS_UI_LIBS)
-AC_SUBST(GTKEXTRA_LIBS)
AC_SUBST(GENIUS_CFLAGS)
AC_SUBST(GENIUS_LIBS)
AC_SUBST(GSV_CFLAGS)
diff --git a/src/Makefile.am b/src/Makefile.am
index f58eb68..da44c55 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -95,6 +95,7 @@ gnome_genius_SOURCES = \
gnome_genius_LDADD = \
$(top_builddir)/ve/libviciousui.a \
$(top_builddir)/gtkextra/libgtkextra-genius.a \
+ $(top_builddir)/vte/libvte.a \
-lm \
@GMP_LIB@ \
-lmpfr \
diff --git a/vte/AUTHORS b/vte/AUTHORS
new file mode 100644
index 0000000..37675bd
--- /dev/null
+++ b/vte/AUTHORS
@@ -0,0 +1 @@
+Nalin Dahyabhai <nalinNOSPAM redhat com>
diff --git a/vte/COPYING b/vte/COPYING
new file mode 100644
index 0000000..bf50f20
--- /dev/null
+++ b/vte/COPYING
@@ -0,0 +1,482 @@
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/vte/ChangeLog b/vte/ChangeLog
new file mode 100644
index 0000000..b507b0e
--- /dev/null
+++ b/vte/ChangeLog
@@ -0,0 +1,43708 @@
+commit f8e59be9a8d27d0c172638bb63ee871ef5f952d1
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Jul 4 10:16:31 2011 -0400
+
+ Revert "gitignore: Add generated *.pot files in po/ subdirectory"
+
+ This reverts commit 62736f9eccd7eed23bee6c73c862ea1075b47c99.
+
+ .gitignore | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit 62736f9eccd7eed23bee6c73c862ea1075b47c99
+Author: Tommi Vainikainen <thv iki fi>
+Date: Mon Jul 4 14:12:00 2011 +0300
+
+ gitignore: Add generated *.pot files in po/ subdirectory
+
+ .gitignore | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 5879114f81ec4eabfd42b3841f560283a0814cb3
+Author: Tommi Vainikainen <thv iki fi>
+Date: Mon Jul 4 14:11:29 2011 +0300
+
+ Updated Finnish translation
+
+ po/fi.po | 88 +++++++++++++++++++++----------------------------------------
+ 1 files changed, 30 insertions(+), 58 deletions(-)
+
+commit 88d748a106e137baeef660c354bd54ed82efff86
+Author: Christian Persch <chpe gnome org>
+Date: Tue Jun 14 23:38:20 2011 +0200
+
+ Version 0.28.1
+
+ NEWS | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+commit ac71d26f067be3a21bff315c3cabf24c94360dd6
+Author: Christian Persch <chpe gnome org>
+Date: Fri Jun 10 17:31:58 2011 +0200
+
+ [CVE-2011-2198] Limit insert-blank-characters
+
+ Bug #652124.
+
+ src/vteseq.c | 27 ++++++++++++++++++++++-----
+ 1 files changed, 22 insertions(+), 5 deletions(-)
+
+commit 07a03020cabab719d824c525d58cd735a70856e9
+Author: Carles Ferrando <carles ferrando gmail com>
+Date: Sun May 29 19:12:39 2011 +0200
+
+ [l10n]Updated Catalan (Valencian) translation
+
+ po/ca valencia po | 18 +++++++++---------
+ 1 files changed, 9 insertions(+), 9 deletions(-)
+
+commit 98f05a28ae9a6429cc9b77b98a6c174d2c2233f3
+Author: Christian Persch <chpe gnome org>
+Date: Mon Apr 4 14:08:56 2011 +0200
+
+ Post release version bump
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 56def42f554720a8d91da1aee32c66cbeef406e2
+Author: Christian Persch <chpe gnome org>
+Date: Sun Apr 3 23:06:23 2011 +0200
+
+ Version 0.28.0
+
+ NEWS | 6 ++++++
+ configure.in | 4 ++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 6450f121b8fb210a34eec8c6841153d20695934c
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Mar 29 14:41:19 2011 -0400
+
+ Fix docs
+
+ src/pty.c | 13 +++++--------
+ 1 files changed, 5 insertions(+), 8 deletions(-)
+
+commit 1bca2ba0a347c962cdf245da49c6d7399d7c3dc0
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Jan 22 15:41:38 2011 -0500
+
+ Add OSC 12 cursor color to the osc script
+
+ src/osc | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 6ae9903f33dc68b67b49dbb23691965be86662b5
+Author: Abduxukur Abdurixit <abdurixit gmail com>
+Date: Sun Mar 27 21:55:21 2011 +0200
+
+ Added UG translation
+
+ po/ug.po | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit c0ca7cdbcdf0ecb3bb1ebbcf729d60d662461c31
+Author: Runa Bhattacharjee <runab redhat com>
+Date: Thu Mar 24 20:01:36 2011 +0530
+
+ Updated Bengali India Translation
+
+ po/bn_IN.po | 108 +++++++++++++++++++++++++++-------------------------------
+ 1 files changed, 50 insertions(+), 58 deletions(-)
+
+commit 9dbb8153360e230dc06426311b002fd183d0dc2b
+Author: Amitakhya Phukan <amitakhya svn gnome org>
+Date: Mon Mar 21 12:25:34 2011 +0530
+
+ Updated Assamese translations
+
+ po/as.po | 47 +++++++++++++++++++++++++----------------------
+ 1 files changed, 25 insertions(+), 22 deletions(-)
+
+commit e17b13133c7f16afd53bd805dbb094db377c47fe
+Author: Marcel Telka <marcel telka sk>
+Date: Sun Mar 20 16:40:54 2011 +0100
+
+ Updated Slovak translation
+
+ po/sk.po | 95 +++++++++++++++++++++----------------------------------------
+ 1 files changed, 33 insertions(+), 62 deletions(-)
+
+commit 4b26aff1ed9f2cc8e31e798298f2bd73043a9fc3
+Author: Miroslav Nikolić <miroslavnikolic rocketmail com>
+Date: Sat Mar 19 15:09:17 2011 +0100
+
+ Reviewed Serbian translation
+
+ po/sr.po | 73 +++++++++++++++++++++++++------------------------------
+ po/sr latin po | 69 +++++++++++++++++++++++-----------------------------
+ 2 files changed, 64 insertions(+), 78 deletions(-)
+
+commit 7e34e293bb465da788a5ce9addfd9fe7dceae878
+Author: Manoj Kumar Giri <mgiri redhat com>
+Date: Fri Mar 4 15:52:07 2011 +0530
+
+ Updated Oriya Translation
+
+ po/or.po | 92 ++++++++++++++++++++++++++++---------------------------------
+ 1 files changed, 42 insertions(+), 50 deletions(-)
+
+commit b9c3e3bc182e5f950ae7110751523ef1a710fa11
+Author: Rudolfs Mazurs <rudolfs mazurs gmail com>
+Date: Mon Feb 28 23:54:46 2011 +0200
+
+ Updated Latvian translation.
+
+ po/lv.po | 42 ++++++++++++++++++++++--------------------
+ 1 files changed, 22 insertions(+), 20 deletions(-)
+
+commit 61ff01fc2ed66fa2b9611014486fb35e8260f958
+Author: Sweta Kothari <swkothar redhat com>
+Date: Mon Feb 28 14:15:28 2011 +0530
+
+ Updated Gujarati Translations
+
+ po/gu.po | 102 +++++++++++++++++++++++---------------------------------------
+ 1 files changed, 38 insertions(+), 64 deletions(-)
+
+commit 227fc807a536041178696c5d8cdccfb416d3c67a
+Author: Maciej Piechotka <uzytkownik2 gmail com>
+Date: Sun Feb 13 15:43:55 2011 +0000
+
+ Update gladeui for glade 4.0 (3.9.x)
+
+ configure.in | 10 ++++++----
+ 1 files changed, 6 insertions(+), 4 deletions(-)
+
+commit 63f2327d9b03a67cab9dd910af504d1ecb8112f8
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Wed Feb 23 09:51:35 2011 +0100
+
+ Updated Norwegian bokmål translation.
+
+ po/nb.po | 37 +++++++++++++++++++------------------
+ 1 files changed, 19 insertions(+), 18 deletions(-)
+
+commit aec26917e31291ecfb892761ddb7899ae4370ce0
+Author: Christian Persch <chpe gnome org>
+Date: Mon Feb 21 17:37:29 2011 +0100
+
+ Version 0.27.90
+
+ NEWS | 5 +++++
+ configure.in | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 841b0ee578d09ada0f0c43d8dd22a49785da4e5b
+Author: Christian Persch <chpe gnome org>
+Date: Mon Feb 21 17:38:02 2011 +0100
+
+ Remove gsettings enum stuff
+
+ configure.in | 6 ------
+ src/Makefile.am | 8 --------
+ src/org.gnome.vte.v0.enums.xml | 28 ----------------------------
+ 3 files changed, 0 insertions(+), 42 deletions(-)
+
+commit e7d3f3c118bbc39805736323f6e9fe572eb71ab8
+Author: Christian Persch <chpe gnome org>
+Date: Wed Feb 16 20:42:18 2011 +0100
+
+ Add version marker to new API
+
+ src/vte.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 219ea41b4382ab43ddb6b826d62a5401aab20e6e
+Author: Christian Persch <chpe gnome org>
+Date: Wed Feb 16 20:34:41 2011 +0100
+
+ Export vte_get_user_shell()
+
+ Bug #642184. Also fixes bug #640179.
+
+ doc/reference/vte-sections.txt | 3 ++
+ src/Makefile.am | 2 +-
+ src/vte.c | 58 ++++++++++++++++++----------------------
+ src/vte.h | 2 +
+ src/vteapp.c | 3 ++
+ 5 files changed, 35 insertions(+), 33 deletions(-)
+
+commit de22ca4f72bcf7f60afc4d948d04018b5cdbde7b
+Author: Christian Persch <chpe gnome org>
+Date: Mon Feb 14 23:20:46 2011 +0100
+
+ Require gtk 3.0.0
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 4973121f747cb9519ed149d7c90b596f9bcabee3
+Author: Daniel Korostil <ted korostiled gmail com>
+Date: Tue Feb 8 20:22:20 2011 +0200
+
+ Uploaded Ukranian
+
+ po/uk.po | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit f01e298c01f7b2bb23d00e209550bebcef494485
+Author: Daniel Korostil <ted korostiled gmail com>
+Date: Tue Feb 8 20:16:56 2011 +0200
+
+ Uploaded Ukranian
+
+ po/uk.po | 123 ++++++++++++++++++++++++++++----------------------------------
+ 1 files changed, 56 insertions(+), 67 deletions(-)
+
+commit 2681c8e440a955ec75c1eb9830a653f64a32380f
+Author: Christian Persch <chpe gnome org>
+Date: Sun Feb 6 00:28:55 2011 +0100
+
+ Add new struct
+
+ doc/reference/vte-sections.txt | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 3597b3adf026e87e6c7edc40115aa23c098abccd
+Author: Christian Persch <chpe gnome org>
+Date: Sun Feb 6 00:24:51 2011 +0100
+
+ Add index with symbols new in 0.28
+
+ doc/reference/vte-docs.xml | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 1c55bed8025942925f2e9760a9461020bc634e86
+Author: Ignacio Casal Quinteiro <icq gnome org>
+Date: Tue Jan 25 12:31:31 2011 +0100
+
+ Add RGBA variants to set colors.
+
+ doc/reference/vte-sections.txt | 7 ++
+ src/vte.c | 207 ++++++++++++++++++++++++++++++++++++++++
+ src/vte.h | 21 ++++
+ 3 files changed, 235 insertions(+), 0 deletions(-)
+
+commit 0ac349af9c34094763f27d66fa7a2c1901576afa
+Author: Christian Persch <chpe gnome org>
+Date: Thu Feb 3 14:03:06 2011 +0100
+
+ Lower intltool req again
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 15a5ebd5de88b2145bee53ea7230d2dca6cc9a20
+Author: Mahyar Moghimi <mahyar moqimi gmail com>
+Date: Thu Feb 3 12:45:34 2011 +0330
+
+ Updating Persian Translation
+
+ po/fa.po | 115 ++++++++++++++++++++++++++++----------------------------------
+ 1 files changed, 52 insertions(+), 63 deletions(-)
+
+commit 1b6d84b8b795b5aa01d1ef5d95dbf9e58554128e
+Author: Christian Persch <chpe gnome org>
+Date: Wed Feb 2 19:00:23 2011 +0100
+
+ There are no macros
+
+ Makefile.am | 2 +-
+ configure.in | 1 -
+ 2 files changed, 1 insertions(+), 2 deletions(-)
+
+commit 31b4047a51ac48264b735a8be24fdddd3b086acc
+Author: Christian Persch <chpe gnome org>
+Date: Wed Feb 2 18:45:41 2011 +0100
+
+ Add default style provider
+
+ This fixes the default value for the 'inner-border' property not
+ to be NULL.
+
+ Bug #640460.
+
+ configure.in | 2 +-
+ src/vte-private.h | 5 +++++
+ src/vte.c | 29 +++++++++++++++++++++++++++--
+ 3 files changed, 33 insertions(+), 3 deletions(-)
+
+commit 1c114685f684941e28f60b1440bc0e5effd9b770
+Author: Christian Persch <chpe gnome org>
+Date: Wed Feb 2 18:08:15 2011 +0100
+
+ Don't shadow a global definition
+
+ src/ring.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit cc095a66991be940dffa59cfeb09d27b820ff636
+Author: Christian Persch <chpe gnome org>
+Date: Wed Feb 2 18:06:24 2011 +0100
+
+ Remove unused variables
+
+ src/vte.c | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit ca772ef8e9113a8c4599a43b717ab0e67c0b7c14
+Author: Christian Persch <chpe gnome org>
+Date: Wed Feb 2 18:05:17 2011 +0100
+
+ Remove obsolete signal IDs in class struct
+
+ ... and add more padding. gtk3 only, so no ABI change.
+
+ src/vte.c | 62 ++++++++++++++++++++++++++++++++++--------------------------
+ src/vte.h | 16 ++++++++++++--
+ 2 files changed, 48 insertions(+), 30 deletions(-)
+
+commit a34652e11339722ecad0079dc9ad85de191deffb
+Author: Christian Persch <chpe gnome org>
+Date: Wed Feb 2 17:48:57 2011 +0100
+
+ Lower am req again
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit f46b5c288c9b1222cf614f22c1d1f53f1ee60c56
+Author: Christian Persch <chpe gnome org>
+Date: Wed Feb 2 17:49:06 2011 +0100
+
+ Revert "Use the recommended configure.ac instead configure.in"
+
+ This reverts commit 765f1087eced3d19768a7ebd98500e5ff3df8a1a.
+
+ Renaming breaks automatic reconfiguring from make during git bisect.
+
+ autogen.sh | 2 +-
+ configure.ac => configure.in | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 2cce4ae4d5599b131b5f53340f636630bf1cf6d9
+Author: Javier Jardón <javier jardon codethink co uk>
+Date: Wed Feb 2 13:35:24 2011 +0000
+
+ build: Update autotools configuration
+
+ Replace deprecated macros and use the new libtool syntax
+
+ Makefile.am | 2 ++
+ autogen.sh | 7 +------
+ configure.ac | 29 ++++++++++++++++-------------
+ 3 files changed, 19 insertions(+), 19 deletions(-)
+
+commit 765f1087eced3d19768a7ebd98500e5ff3df8a1a
+Author: Javier Jardón <javier jardon codethink co uk>
+Date: Wed Feb 2 13:23:19 2011 +0000
+
+ Use the recommended configure.ac instead configure.in
+
+ autogen.sh | 2 +-
+ configure.in => configure.ac | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 45c73fc2a9aaf166056c7f29aec7bdf8cd8d165f
+Author: Javier Jardón <javier jardon codethink co uk>
+Date: Wed Feb 2 13:21:32 2011 +0000
+
+ configura.in: Check for >= version of glib, not only >
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit a9200f9dd2852a358cf6644f197e5bda87790001
+Author: Matthias Clasen <mclasen redhat com>
+Date: Wed Feb 2 02:21:10 2011 -0500
+
+ Post-release bump
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 80239d8e93b9db3dca976e4ed520c38d394dedb2
+Author: Matthias Clasen <mclasen redhat com>
+Date: Wed Feb 2 02:14:46 2011 -0500
+
+ Updates
+
+ NEWS | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 437b412c8010fa0fbee022235f3ddb9fd4d3fd3a
+Author: Fran Diéguez <fran dieguez mabishu com>
+Date: Thu Jan 27 00:41:50 2011 +0100
+
+ QA of Galician translations
+
+ po/gl.po | 38 ++++++++++++++++++++------------------
+ 1 files changed, 20 insertions(+), 18 deletions(-)
+
+commit 86225e5f053bf8bfb3e851fda437455624514eec
+Author: Matthias Clasen <mclasen redhat com>
+Date: Sun Jan 16 11:07:14 2011 -0500
+
+ Don't use internal GTK+ api
+
+ GtkTargetPair was always documented as private, and in
+ GTK+ 3 it is gone from the headers. Just use existing API.
+
+ src/vte.c | 8 +-------
+ 1 files changed, 1 insertions(+), 7 deletions(-)
+
+commit 4553d0294a6095ce9f5215a8af273a7decac8740
+Author: Matthias Clasen <mclasen redhat com>
+Date: Tue Jan 11 14:15:35 2011 -0500
+
+ Bump version
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit dda7b5036acc1ca95c71eb0d5f3d4fb1590a4508
+Author: Matthias Clasen <mclasen redhat com>
+Date: Tue Jan 11 13:40:51 2011 -0500
+
+ Updates
+
+ NEWS | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 63ad8cf6c00c92e959e7856b6529281892a63d59
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 5 20:20:39 2011 -0500
+
+ Bug 638782 - vte build is broken by using gtk_quit_add: uplift needed
+
+ Harmlessly remove cleanup...
+
+ src/vtedraw.c | 41 -----------------------------------------
+ 1 files changed, 0 insertions(+), 41 deletions(-)
+
+commit b33feb45bff370ad860685923e3616a3583b281d
+Author: Cristian Klein <cristiklein+gnome gmail com>
+Date: Wed Jan 5 19:36:38 2011 +0000
+
+ Prevent useless wakeups when the focus is lost.
+
+ When running powertop in a gnome-terminal window, gnome-terminal is
+ shown to generate 1.6 wakeups/second. This is caused by the fact that
+ the cursor blink timer is not disable when the cursor is hidden.
+
+ src/vte-private.h | 1 +
+ src/vte.c | 48 +++++++++++++++++++++++++++---------------------
+ 2 files changed, 28 insertions(+), 21 deletions(-)
+
+commit d64e28b3290aaf034ec37bbf4524ef78adbdfb2e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 5 02:03:49 2011 -0500
+
+ Bug 589557 - Ctrl+<key> sends erroneous value when primary keyboard layout is not English
+
+ Fix it to match what xterm is doing.
+
+ src/vte.c | 44 ++++++++++++++++++++++++++------------------
+ 1 files changed, 26 insertions(+), 18 deletions(-)
+
+commit fc7eb565f48d3ddc311bb0296177860b58eb311e
+Author: Ignacio Casal Quinteiro <icq gnome org>
+Date: Thu Dec 30 21:15:01 2010 +0100
+
+ Fix annotations of fork_command_full.
+
+ Some annotations were removed in the previous commit, it was wrong
+ and it must be readded.
+
+ src/vte.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit f7c5b8e77d4143031fe5e32437728f357ef94015
+Author: Ignacio Casal Quinteiro <icq gnome org>
+Date: Mon Dec 27 20:25:49 2010 +0100
+
+ Make fork_command_full introspectable.
+
+ src/vte.c | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 0017f00af763f7778cf19153d234a58304104ba4
+Author: Gheyret T.Kenji <gheyret gmail com>
+Date: Thu Dec 23 19:42:18 2010 +0100
+
+ Added UG translation
+
+ po/ug.po | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 7c5709cfce74ac1bed351a013600da1483ce8279
+Author: Vincent Untz <vuntz gnome org>
+Date: Thu Dec 23 14:13:38 2010 +0100
+
+ release: post-release bump to 0.27.4
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 435b8ffe9166bba9dd9ac663db5a3ccfff8b4e26
+Author: Vincent Untz <vuntz gnome org>
+Date: Thu Dec 23 14:13:31 2010 +0100
+
+ release: 0.27.3
+
+ NEWS | 13 +++++++++++++
+ 1 files changed, 13 insertions(+), 0 deletions(-)
+
+commit 70c9222ba95931495dde123fcc427bcc8bcef08d
+Author: Ignacio Casal Quinteiro <icq gnome org>
+Date: Tue Dec 21 16:52:33 2010 +0100
+
+ Fix annotations. No need to annotate the strings.
+
+ See as example gtk_text_buffer_insert.
+
+ src/vte.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit b916a4d3f369d4357697ebd0d00e2b01b5c50c5c
+Author: Ignacio Casal Quinteiro <icq gnome org>
+Date: Tue Dec 21 16:44:39 2010 +0100
+
+ Add --warn-all flag.
+
+ src/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 66dedcb732b31a141656c6f05ec2d3bbe7c4cf40
+Author: Ivar Smolin <okul linux ee>
+Date: Mon Dec 20 13:58:06 2010 +0200
+
+ [l10n] Updated Estonian translation
+
+ po/et.po | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit 728bc476c024987007c0856db44eff483a43902c
+Author: Ignacio Casal Quinteiro <icq gnome org>
+Date: Sat Dec 4 13:47:42 2010 +0100
+
+ Bump gobject-introspection to 0.9.0
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit f9fcec517d4125eabe93dcdc5002b615e275ff42
+Author: Christian Persch <chpe gnome org>
+Date: Thu Dec 2 21:06:48 2010 +0100
+
+ Fix build with gtk3 master
+
+ configure.in | 2 +-
+ src/vtebg.c | 5 +++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+commit 4fa7d35b7d454a06b3700b2b52021b61ef4ac426
+Author: Theppitak Karoonboonyanan <thep linux thai net>
+Date: Tue Nov 23 16:32:49 2010 +0700
+
+ Updated Thai translation.
+
+ po/th.po | 104 ++++++++++++++++++++++++++++----------------------------------
+ 1 files changed, 47 insertions(+), 57 deletions(-)
+
+commit f05ddeca7ed710db16dfc183ab9bc48150baa695
+Author: Gheyret T.Kenji <gheyret gmail com>
+Date: Sat Nov 20 13:05:34 2010 +0100
+
+ Added UG translation
+
+ po/ug.po | 20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
+commit 56472c1940a9df55edd134fc5d3c74ada67ad37b
+Author: Christian Persch <chpe gnome org>
+Date: Wed Nov 17 18:21:07 2010 +0100
+
+ Clarify error message
+
+ Bug #628870.
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 64f03be0c97d3941f259e20cc6d7a12d3a329770
+Author: Christian Persch <chpe gnome org>
+Date: Tue Nov 16 20:47:56 2010 +0100
+
+ Don't use the automatic rules for .enums.xml generation
+
+ The generated file isn't very nice, so put a fixed-up copy
+ in git, dist and install it.
+
+ src/Makefile.am | 7 ++++---
+ src/org.gnome.vte.v0.enums.xml | 28 ++++++++++++++++++++++++++++
+ 2 files changed, 32 insertions(+), 3 deletions(-)
+
+commit de948ce4b0d63a1e37cfc85c3b3da82397758873
+Author: Christian Persch <chpe gnome org>
+Date: Tue Nov 16 20:36:25 2010 +0100
+
+ Change .enums.xml namespace
+
+ src/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 187cdd3089b67613bbb3757f16897cbfeb315aa2
+Author: Christian Persch <chpe gnome org>
+Date: Tue Nov 16 20:21:26 2010 +0100
+
+ Create and install a gsettings .enums.xml file for vte's enum types
+
+ configure.in | 8 +++++++-
+ src/Makefile.am | 9 +++++++++
+ 2 files changed, 16 insertions(+), 1 deletions(-)
+
+commit e21f7da2881bbb9ba863398728e194c7acfcfc50
+Author: Gheyret T.Kenji <gheyret gmail com>
+Date: Sat Nov 13 23:01:05 2010 +0100
+
+ Added UG translation
+
+ po/ug.po | 31 ++++++++++++-------------------
+ 1 files changed, 12 insertions(+), 19 deletions(-)
+
+commit a09849b392ab1065c10225a390f669e061047932
+Author: Christian Persch <chpe gnome org>
+Date: Thu Nov 11 14:32:35 2010 +0100
+
+ Post release version bump
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 9d9b0ab63422b0ece31a4fceddf17348ab9bed36
+Author: Javier Jardón <jjardon gnome org>
+Date: Tue Nov 9 03:46:39 2010 +0100
+
+ Use gtk_paned_new() instead gtk_[h|v]paned_new()
+
+ src/reflect.c | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit d512516528a5951c81a8be7f8d47f10c52f7ac13
+Author: Brandon Ehle <azverkan yahoo com>
+Date: Sun Oct 31 01:43:34 2010 -0700
+
+ Fix a compile error when using an older version of GTK+.
+
+ src/vte.c | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit a6c009841f7917bac1a2a16bbb0d921ba4b8bf0d
+Author: Carles Ferrando <carles ferrando gmail com>
+Date: Fri Oct 29 21:49:51 2010 +0100
+
+ Updated Catalan (Valencian) translation
+
+ po/ca valencia po | 56 ++++++++++++++++++++++++----------------------------
+ 1 files changed, 26 insertions(+), 30 deletions(-)
+
+commit a3de47da0a42892d01fc4b6b90a5ec2728b26787
+Author: Christian Persch <chpe gnome org>
+Date: Tue Oct 26 13:44:37 2010 +0200
+
+ Add missing break
+
+ src/vte.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit f75f5a42aa3bbba44e91ca4a58396139a3883eb3
+Author: Christian Persch <chpe gnome org>
+Date: Tue Oct 26 13:44:21 2010 +0200
+
+ Add missing break
+
+ src/vte.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit ba49f082e6ba59a37d9ad2740ecb3ba4209a6c42
+Author: Christian Persch <chpe gnome org>
+Date: Tue Oct 26 13:41:05 2010 +0200
+
+ Implement [hv]scroll-policy properties
+
+ src/vte-private.h | 8 ++++++++
+ src/vte.c | 42 ++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 46 insertions(+), 4 deletions(-)
+
+commit 85b7996647b171f82910538e2a9c90a6d359d1a2
+Author: Christian Persch <chpe gnome org>
+Date: Sun Oct 24 20:12:03 2010 +0200
+
+ Implement GtkScrollable interface on gtk3
+
+ src/vte.c | 75 ++++++++++++++++++++++++++++++++++++++++++++------
+ src/vte.h | 5 +++
+ src/vtedeprecated.h | 4 +++
+ 3 files changed, 75 insertions(+), 9 deletions(-)
+
+commit cc497d0eae579f7b67adc92a93225326e32beefe
+Author: Christian Persch <chpe gnome org>
+Date: Mon Oct 18 16:07:35 2010 +0200
+
+ Post release version bump
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 51a75752f3df876c4a96b6f9030ebc79afbf6c6a
+Author: Christian Persch <chpe gnome org>
+Date: Mon Oct 18 16:03:17 2010 +0200
+
+ Add cast to fix compiler warning
+
+ src/vteapp.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 5278c3f3f0cdc5bfa741a5b5579d5da2aeda0079
+Author: Christian Persch <chpe gnome org>
+Date: Mon Oct 18 16:02:08 2010 +0200
+
+ Version 0.27.1
+
+ NEWS | 9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 80676b14ddc84ea28571501ec78fd9fc885446b8
+Author: Christian Persch <chpe gnome org>
+Date: Sat Oct 16 00:02:07 2010 +0200
+
+ Plug refcount leak
+
+ The leaked VtePty leaked FDs, too. Bug #632257.
+
+ src/vte.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 2944c2ac799a8c73f488d83ab5912936f6a0f766
+Author: Gintautas Miliauskas <gintautas miliauskas lt>
+Date: Wed Oct 13 16:10:24 2010 +0300
+
+ Updated Lithuanian translation.
+
+ po/lt.po | 113 +++++++++++++++++++++++++++----------------------------------
+ 1 files changed, 50 insertions(+), 63 deletions(-)
+
+commit 7d0eb2ff215709712d80577521a22979490126e5
+Author: Owen W. Taylor <otaylor fishsoup net>
+Date: Mon Oct 11 13:22:31 2010 -0400
+
+ Report correct minimum/natural sizes for GTK+ 3
+
+ In GTK+ 3, the hack of reporting the current size of the terminal
+ as its minimum size breaks down because GTK+ 3 will never allocate
+ a widget smaller than its minimum size. However, in GTK+ 3 it's
+ possible to report separate minimum and natural sizes, so we
+ should just report a minimum size of 1x1 character and a natural
+ size of the current size.
+
+ This requires a change in vteapp.c to make the window start off
+ at the right size.
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=631903
+
+ src/vte.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vteapp.c | 10 ++++++++
+ 2 files changed, 77 insertions(+), 0 deletions(-)
+
+commit 552cfed9ad796ee8ea34b0182aa63a2a5e7abfb3
+Author: Changwoo Ryu <cwryu debian org>
+Date: Sat Oct 9 08:33:01 2010 +0900
+
+ Updated Korean translation
+
+ po/ko.po | 66 ++++++++++++++++++-------------------------------------------
+ 1 files changed, 20 insertions(+), 46 deletions(-)
+
+commit e5fd6c3cda63cad2e3d7af8728a168b90eb009dc
+Author: Tomeu Vizoso <tomeu vizoso collabora co uk>
+Date: Thu Oct 7 12:57:45 2010 +0200
+
+ Pass the correct TERM value inside envp when spawning
+
+ So the codepaths that end up invoking execve still have the correct
+ TERM entry. Clarify the effect of vte_pty_set_term().
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=631589
+
+ src/pty.c | 19 ++++++++-----------
+ src/vte.c | 32 ++------------------------------
+ 2 files changed, 10 insertions(+), 41 deletions(-)
+
+commit 89336f820dabf3d0ae2f55d76d4af4c70c3004f6
+Author: Christian Persch <chpe gnome org>
+Date: Tue Oct 5 16:34:54 2010 +0200
+
+ Don't install the test programmes and scripts
+
+ src/Makefile.am | 7 +++----
+ 1 files changed, 3 insertions(+), 4 deletions(-)
+
+commit 89cb5538c3d1a7b825faa78f23106ee957442dee
+Author: Christian Persch <chpe gnome org>
+Date: Tue Oct 5 00:40:52 2010 +0200
+
+ Vary termcap file into for gtk2/3 builds
+
+ src/Makefile.am | 3 ++-
+ src/interpret.c | 3 +--
+ src/vte.c | 9 +++++----
+ termcaps/Makefile.am | 2 +-
+ 4 files changed, 9 insertions(+), 8 deletions(-)
+
+commit 89c61bb589eb99a7f70f96f0550fdda4e3151706
+Author: Christian Persch <chpe gnome org>
+Date: Mon Oct 4 14:16:04 2010 +0200
+
+ Post release version bump
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit bc02908854e9b2c396427a24cb8fb36afe2cb818
+Author: Christian Persch <chpe gnome org>
+Date: Mon Oct 4 14:11:12 2010 +0200
+
+ Bump gtk 3 req
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit b38176cf75284d2cb5530b071415a1b6465aa0f5
+Author: Christian Persch <chpe gnome org>
+Date: Mon Oct 4 14:09:28 2010 +0200
+
+ Distcheck with gtk 3 now
+
+ Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 21f66f796766f22df087d9011aad29a59030e765
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 1 16:03:24 2010 -0400
+
+ Whitespace
+
+ src/vteapp.c | 224 +++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 112 insertions(+), 112 deletions(-)
+
+commit 81e166f3f7ef206b58296e41afa9c93af26a85f7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 1 16:02:09 2010 -0400
+
+ Remove unnecessary conditional
+
+ src/vteapp.c | 33 ++++++++++++++++-----------------
+ 1 files changed, 16 insertions(+), 17 deletions(-)
+
+commit f97b8b8a41a5ace2995cc663dba624a82ce65670
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 1 16:01:20 2010 -0400
+
+ [vteapp] Prefer $SHELL to /bin/sh
+
+ src/vteapp.c | 7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+commit 332bd39b2e85bba165dca2a37d4fa3d53e2ce6ff
+Author: Inaki Larranaga Murgoitio <dooteo zundan com>
+Date: Fri Oct 1 00:21:13 2010 +0200
+
+ Updated Basque language
+
+ po/eu.po | 96 ++++++++++++++++++++++++++-----------------------------------
+ 1 files changed, 41 insertions(+), 55 deletions(-)
+
+commit 8e292f603ea78e00ee707aed3614a55cf908f292
+Author: Gheyret Kenji <gheyret hotmail com>
+Date: Fri Oct 1 00:16:25 2010 +0200
+
+ Added UG translation
+
+ po/ug.po | 132 +++++++++++++++++++++++++++++--------------------------------
+ 1 files changed, 63 insertions(+), 69 deletions(-)
+
+commit 48a7718d143a03b28b4c708e054c1ea6f44c942a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 28 15:02:08 2010 -0400
+
+ Revert "Revert 9370647823ce29c1088c351381a07a5506b74c84"
+
+ This reverts commit dab50851a395069492218115caf44361b742b20c.
+
+ Again, set widget background color to the terminal background color.
+ This removes flicker when resizing the terminal/widget.
+
+ src/vte.c | 8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+commit 5f64a707e562598be0432a56d5bdeea9962e7add
+Author: Christian Persch <chpe gnome org>
+Date: Tue Sep 28 19:50:29 2010 +0200
+
+ Use gtk_widget_set_visual
+
+ src/vteapp.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 8d71032c172285be94d34c01cb891f110dcbb925
+Author: Christian Persch <chpe gnome org>
+Date: Tue Sep 28 16:02:56 2010 +0200
+
+ Fix the gtk 2 build
+
+ src/vtebg.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit cde73f4896e82b13edb112bfd5f510ed2740d2df
+Author: Christian Persch <chpe gnome org>
+Date: Fri Sep 24 14:53:07 2010 +0200
+
+ Use gdk_error_trap_pop_ignored
+
+ src/vte-gtk-compat.h | 4 ++++
+ src/vtebg.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit aeb607a958f96648d78496459ca6aebda9fd0324
+Author: Christian Persch <chpe gnome org>
+Date: Tue Sep 21 13:58:52 2010 +0200
+
+ Don't use gdk_drawable_get_size
+
+ src/vteaccess.c | 11 ++++++++++-
+ 1 files changed, 10 insertions(+), 1 deletions(-)
+
+commit b0a12909c0df9a8818923ef8af663a18d60a768c
+Author: Christian Persch <chpe gnome org>
+Date: Tue Sep 14 18:08:52 2010 +0200
+
+ Port to latest rendering-cleanup-next branch
+
+ src/vte.c | 4 +---
+ 1 files changed, 1 insertions(+), 3 deletions(-)
+
+commit 21a064ac8b5925108b0ab9bd6516664c8cd3e268
+Author: Christian Persch <chpe gnome org>
+Date: Mon Sep 13 21:44:50 2010 +0200
+
+ Use cairo_copy_clip_rectangle_list() to recreate the clip region
+
+ Thanks to Behdad for the hint, and for pointing out a bug in my
+ first attempt.
+
+ src/vte.c | 48 ++++++++++++++++++++++++++++++++++++++++++++----
+ 1 files changed, 44 insertions(+), 4 deletions(-)
+
+commit 6a7f6538aaaf81e5ef755c6660dcca8311835ca1
+Author: Christian Persch <chpe gnome org>
+Date: Mon Sep 13 16:27:13 2010 +0200
+
+ Port to GtkWidget::draw
+
+ ... to work with the rendering-cleanup-next branch of gtk.
+
+ Need to think what will happen with the update_regions.
+
+ src/vte.c | 45 +++++++++++++++++++++++++++++++++++++++++++--
+ 1 files changed, 43 insertions(+), 2 deletions(-)
+
+commit e69b4c1bb4de66d432a1592a50daba1b105a6b64
+Author: Christian Persch <chpe gnome org>
+Date: Sat Sep 11 12:39:03 2010 +0200
+
+ Fix build with gtk 3 rendering cleanup branch
+
+ src/vte.c | 22 ++++++++++++++++------
+ src/vteapp.c | 10 ++++++++++
+ src/vtebg.c | 4 ++++
+ 3 files changed, 30 insertions(+), 6 deletions(-)
+
+commit 65dfcff5ab1a60d1761581e341c8c8a00fc89c5d
+Author: Christian Persch <chpe gnome org>
+Date: Sun Sep 26 16:24:03 2010 +0200
+
+ Post branch version bump
+
+ configure.in | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 4f1df545bf8ac5439d38bd2415b49edefb56eba5
+Author: Lucian Adrian Grijincu <lucian grijincu gmail com>
+Date: Sat Sep 25 12:34:30 2010 +0300
+
+ Updated Romanian translation
+
+ po/ro.po | 72 +++++++++++++++++++++++++++++++------------------------------
+ 1 files changed, 37 insertions(+), 35 deletions(-)
+
+commit 252ced33f6930fb54704d9aef2011bf530b7adfe
+Author: Yuri Myasoedov <ymyasoedov src gnome org>
+Date: Wed Sep 22 09:15:28 2010 +0400
+
+ Updated Russian translation
+
+ po/ru.po | 119 +++++++++++++++++++++++--------------------------------------
+ 1 files changed, 45 insertions(+), 74 deletions(-)
+
+commit dab50851a395069492218115caf44361b742b20c
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 20 22:23:39 2010 -0400
+
+ Revert 9370647823ce29c1088c351381a07a5506b74c84
+
+ Was not needed anymore. For details see:
+
+ Bug 621902 - artifacts shown at the button of maximized terminal after
+ minimizing another window over it
+
+ src/vte.c | 8 --------
+ 1 files changed, 0 insertions(+), 8 deletions(-)
+
+commit 43936cabba157cf9704680bcb5c71bb2324aadc2
+Author: Daniel S. Koda <danielskoda gmail com>
+Date: Mon Sep 20 08:58:25 2010 -0300
+
+ Updated Brazilian Portuguese translation
+
+ po/pt_BR.po | 121 ++++++++++++++---------------------------------------------
+ 1 files changed, 28 insertions(+), 93 deletions(-)
+
+commit 25c56f2d644340d2216cd4df4ee2c377fc17db85
+Author: Wouter Bolsterlee <wbolster gnome org>
+Date: Sun Sep 19 20:28:01 2010 +0200
+
+ Updated Dutch translation by Wouter Bolsterlee
+
+ po/nl.po | 111 +++++++++++++++++++++++++------------------------------------
+ 1 files changed, 46 insertions(+), 65 deletions(-)
+
+commit 2ddaf14177f238f5d5f00949e489ad792f3e3698
+Author: Kenneth Nielsen <k nielsen81 gmail com>
+Date: Sun Sep 19 17:44:43 2010 +0200
+
+ Updated Danish translation
+
+ po/da.po | 111 ++++++++++++++++++++++++++-----------------------------------
+ 1 files changed, 47 insertions(+), 64 deletions(-)
+
+commit c5b318675ec1fc90464a4eaa356c5ad1ab68c69d
+Author: Francesco Marletta <francesco marletta tiscali it>
+Date: Sat Sep 18 17:12:26 2010 +0200
+
+ [l10n] Updated Italian translation
+
+ po/it.po | 52 ++++++++++++++++++++--------------------------------
+ 1 files changed, 20 insertions(+), 32 deletions(-)
+
+commit e984749f939981d16ee7828ebef352e74ce461e1
+Author: Christian Persch <chpe gnome org>
+Date: Wed Sep 15 00:47:58 2010 +0200
+
+ Don't force VTE_SEAL_ENABLE on vte/gtk2
+
+ Only enforce it on vte 2.90 (gtk3).
+
+ configure.in | 3 +++
+ vte-uninstalled.pc.in | 2 +-
+ vte.pc.in | 2 +-
+ 3 files changed, 5 insertions(+), 2 deletions(-)
+
+commit 0574bcfbd5c5925458ecdea0e6bbac6d65e30efc
+Author: Christian Persch <chpe gnome org>
+Date: Mon Sep 13 16:17:31 2010 +0200
+
+ Clarify TERM env var handling with VtePty
+
+ src/pty.c | 5 +++++
+ src/vte.c | 32 ++++++++++++++++++++++++++++++--
+ 2 files changed, 35 insertions(+), 2 deletions(-)
+
+commit a7b74340edad2f1e61dc7b78a7177c52715eb925
+Author: Christian Persch <chpe gnome org>
+Date: Sat Sep 11 12:29:34 2010 +0200
+
+ Use new gdk keysym names on gtk3
+
+ src/iso2022.c | 200 +++++++++++++++--------------
+ src/keymap.c | 404 +++++++++++++++++++++++++++++----------------------------
+ src/vte.c | 110 ++++++++--------
+ 3 files changed, 367 insertions(+), 347 deletions(-)
+
+commit 5f52c7ce5f8151aa1718dc0aab6c116ba595f402
+Author: Christian Persch <chpe gnome org>
+Date: Mon Sep 6 13:08:00 2010 +0200
+
+ Use -Bsymbolic-functions when available
+
+ Bug #628870.
+
+ configure.in | 25 +++++++++++++++++++++++++
+ src/Makefile.am | 10 +++++++---
+ 2 files changed, 32 insertions(+), 3 deletions(-)
+
+commit f04856b1b5ec91431871c4c77a07e4256eb7cc20
+Author: Christian Persch <chpe gnome org>
+Date: Sun Sep 12 13:36:16 2010 +0200
+
+ Add --cursor-blink to vteapp
+
+ src/vteapp.c | 20 +++++++++++++-------
+ 1 files changed, 13 insertions(+), 7 deletions(-)
+
+commit 2a325bd050eb3e9d19767687aabb95c390b13b6e
+Author: Takayuki KUSANO <AE5T-KSN asahi-net or jp>
+Date: Mon Sep 13 20:34:51 2010 +0900
+
+ Updated Japanese translation.
+
+ po/ja.po | 106 +++++++++++++++++++++++++++-----------------------------------
+ 1 files changed, 46 insertions(+), 60 deletions(-)
+
+commit f1676fbe3e91a6e887abf254723b57e841fad0bb
+Author: Piotr Drąg <piotrdrag gmail com>
+Date: Tue Sep 7 19:02:47 2010 +0200
+
+ Updated Polish translation
+
+ po/pl.po | 34 +++++++++++++---------------------
+ 1 files changed, 13 insertions(+), 21 deletions(-)
+
+commit 606ae4edb1721ea7643b0e2439a6d8fc2b6469a2
+Author: Christian Persch <chpe gnome org>
+Date: Mon Sep 6 13:05:25 2010 +0200
+
+ Remove unused variable
+
+ src/vte.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit 2f58eba8406c699159ed8fc4a88554f88e1012fc
+Author: Christian Persch <chpe gnome org>
+Date: Mon Sep 6 12:49:56 2010 +0200
+
+ Use correct variables for cleaning the gir data
+
+ src/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit be36d54abdd1ef3b067430c33e155137f8a31eef
+Author: Michael Kotsarinis <mk73628 gmail com>
+Date: Sat Sep 4 19:02:02 2010 +0300
+
+ Updated Greek translation
+
+ po/el.po | 111 ++++++++++++++++++++++++++++----------------------------------
+ 1 files changed, 50 insertions(+), 61 deletions(-)
+
+commit 8bf969a27069fbc0c71f0bb3fcb176456b5e32ba
+Author: drtv <vasudeven git gnome org>
+Date: Fri Sep 3 21:35:19 2010 +0530
+
+ Updated Tamil translation
+
+ po/ta.po | 99 +++++++++++++++++++++++++++-----------------------------------
+ 1 files changed, 43 insertions(+), 56 deletions(-)
+
+commit 0689c745e07e48e1324c3a3878f42d3ea1c38f59
+Author: Philip Withnall <philip tecnocode co uk>
+Date: Wed Sep 1 09:44:36 2010 +0100
+
+ Update British English translation
+
+ po/en_GB.po | 108 ++++++++++++++++++++++++-----------------------------------
+ 1 files changed, 44 insertions(+), 64 deletions(-)
+
+commit d831dd8da5bdfa2e8c85932966605e8dd64e8fce
+Author: Gabor Kelemen <kelemeng gnome hu>
+Date: Tue Aug 31 01:55:44 2010 +0200
+
+ Updated Hungarian translation
+
+ po/hu.po | 99 ++++++++++++++++++++++----------------------------------------
+ 1 files changed, 35 insertions(+), 64 deletions(-)
+
+commit 203d696ed3772da3b7eb52b12e1f53cc6fdbbebf
+Author: Christian Persch <chpe gnome org>
+Date: Sun Aug 29 13:56:48 2010 +0200
+
+ Don't dist the gir and typelib
+
+ Fixes distchecking with --disable-introspection.
+
+ src/Makefile.am | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 76387964c9ae6630d5bd29be61e3359b7b0ed8c9
+Author: Christian Persch <chpe gnome org>
+Date: Sun Aug 29 13:51:42 2010 +0200
+
+ Version 0.25.91
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit c9fd190d894354fa0d345c8f58524a83bab80524
+Author: Christian Persch <chpe gnome org>
+Date: Sun Aug 29 13:49:52 2010 +0200
+
+ Use gtk_widget_style_attach
+
+ Fix faulty code introduced in commit ac1e78c78e6a39834d35c525be01d50c348d33ba
+ from bug #612484.
+
+ Bug #627764.
+
+ src/vte.c | 8 +++++---
+ 1 files changed, 5 insertions(+), 3 deletions(-)
+
+commit 7f964f72bb6cb51c5f8a7265476eb6f581ef1d36
+Author: Christian Persch <chpe gnome org>
+Date: Fri Aug 20 21:22:41 2010 +0200
+
+ Distcheck with gtk 2 but without introspection
+
+ Makefile.am | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit c737262bf968ee94c22144c3ed7ed4f6fd27e2dd
+Author: Bruno Brouard <annoa b gmail com>
+Date: Thu Aug 26 14:43:16 2010 +0200
+
+ Updated French translation
+
+ po/fr.po | 83 +++++++++++++++++++++-----------------------------------------
+ 1 files changed, 28 insertions(+), 55 deletions(-)
+
+commit 724195be5ba53c45d650366a8e029939c20d43a4
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 24 16:53:17 2010 -0400
+
+ Really fix Bug 601926 - Don't hardcode meta to alt
+
+ Correct fix applied this time. Tested, Alt is not broken by this
+ change.
+
+ configure.in | 2 +-
+ src/keymap.h | 2 +-
+ src/vte.c | 7 ++++++-
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+commit 7f93f32a18d12e1dbf18a269f7aaec6e706e8cb0
+Author: Chao-Hsiung Liao <j_h_liau yahoo com tw>
+Date: Mon Aug 23 20:00:04 2010 +0800
+
+ Updated Traditional Chinese translation(Hong Kong and Taiwan)
+
+ po/zh_HK.po | 57 +++++++++++++++++++++++++--------------------------------
+ po/zh_TW.po | 57 +++++++++++++++++++++++++--------------------------------
+ 2 files changed, 50 insertions(+), 64 deletions(-)
+
+commit 1d6459b92336ffcb5cb2f3187cac6bda5990cc95
+Author: Милош Поповић <gpopac gmail com>
+Date: Mon Aug 23 01:40:41 2010 +0200
+
+ Updated Serbian translation
+
+ po/sr.po | 105 ++++++++++++++++++++++++++------------------------------
+ po/sr latin po | 105 ++++++++++++++++++++++++++------------------------------
+ 2 files changed, 98 insertions(+), 112 deletions(-)
+
+commit b278c6c8fff7860b81dc2bb89e8b37cd144223b3
+Author: Alexander Shopov <ash contact bg>
+Date: Sun Aug 22 23:11:21 2010 +0300
+
+ Updated Bulgarian translation
+
+ po/bg.po | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 578fef8c1711bfd5b5e105cb2d6fe6b560bba251
+Author: Alexander Shopov <ash contact bg>
+Date: Sun Aug 22 22:39:01 2010 +0300
+
+ Updated Bulgarian translation
+
+ po/bg.po | 91 ++++++++++++++++++++-----------------------------------------
+ 1 files changed, 30 insertions(+), 61 deletions(-)
+
+commit 132d8ca1d6869af4a9e7965a597247dcc37ce234
+Author: David Planella <david planella gmail com>
+Date: Sun Aug 22 10:19:21 2010 +0200
+
+ Updated Catalan translation
+
+ po/ca.po | 105 ++++++++++++++++++++++++++-----------------------------------
+ 1 files changed, 45 insertions(+), 60 deletions(-)
+
+commit 4f40ebe3050eda9d501f9f136059de781fff5bc0
+Author: Duarte Loreto <happyguy_pt hotmail com>
+Date: Sat Aug 21 17:46:05 2010 +0100
+
+ Updated Portuguese translation
+
+ po/pt.po | 98 ++++++++++++++++++++++++++-----------------------------------
+ 1 files changed, 42 insertions(+), 56 deletions(-)
+
+commit 8995cbbec42fa7a1033a2ec88a93a874a18ac2cc
+Author: Saleem Abdulrasool <compnerd compnerd org>
+Date: Thu Aug 19 23:11:39 2010 -0700
+
+ fix make check
+
+ src/reflect.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit c56c3c4673a310f5d71bc16045a331d362c0bbc5
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 19 12:52:50 2010 -0400
+
+ Revert "Bug 601926 - Don't hardcode meta to alt"
+
+ This reverts commit b73782a28894e25ed146271f9d6c6775a6836199.
+
+ src/keymap.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 1388c74ff3d025b0b87a9de2a94d6407c40980b0
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 11 16:54:52 2010 -0400
+
+ Indent
+
+ src/vte-private.h | 14 +++++++-------
+ 1 files changed, 7 insertions(+), 7 deletions(-)
+
+commit 8b8ad8ff56505ba93f5ab6cae29f766eaa2861ff
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Thu Aug 19 09:50:33 2010 -0400
+
+ Remove leftover, unused GdkPixmpap variable
+
+ This removes the last GdkPixmap reference in vte.
+
+ src/vtebg.c | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit 0cfaef604b1cbda52cbacf992bbba279059cc96a
+Author: Christian Persch <chpe gnome org>
+Date: Mon Aug 16 21:26:29 2010 +0200
+
+ Distcheck with --with-gtk=3.0
+
+ Makefile.am | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+commit b48f5ea815337f48a0dafefb68b5858af66ecd6a
+Author: Christian Persch <chpe gnome org>
+Date: Mon Aug 16 21:23:39 2010 +0200
+
+ One more GSEAL fix
+
+ src/reflect.c | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 077f698fcd06eae347ee91426a110c4d00ee1a99
+Author: Christian Persch <chpe gnome org>
+Date: Mon Aug 16 15:09:42 2010 +0200
+
+ Version 0.25.90
+
+ NEWS | 15 +++++++++++++++
+ configure.in | 2 +-
+ 2 files changed, 16 insertions(+), 1 deletions(-)
+
+commit deaac0d77a1838dc3ecc33ba2993b45dd2a3ee1c
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 11 16:15:18 2010 -0400
+
+ Fix signdness warnings
+
+ src/vte.c | 30 ++++++++++++++++--------------
+ 1 files changed, 16 insertions(+), 14 deletions(-)
+
+commit 9af0c65c082daab19d388f50c2b5d52f8f28a454
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 11 16:10:06 2010 -0400
+
+ Bug 626676 - Cleanup vte_terminal_determine_colors
+
+ Or rather, rewrite it.
+
+ At least I understand how it's supposed to work now. Combinations of
+ set highlight color, set cursor color, reverse mode, selected text,
+ etc work much better now.
+
+ src/vte.c | 190 +++++++++++++++++++++++++++++++++----------------------------
+ 1 files changed, 103 insertions(+), 87 deletions(-)
+
+commit a0d9e0ff3a580a47f45dc01eb303c164a126c81b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 11 15:21:29 2010 -0400
+
+ Simplify determine_colors more
+
+ Get rid of reverse argument. Also "xor" instead of "or" selection mode
+ with reverse mode. Selection works with reverse mode now. Before, it
+ didn't render.
+
+ src/vte.c | 34 +++++++++++-----------------------
+ 1 files changed, 11 insertions(+), 23 deletions(-)
+
+commit 956a836ab4f7000a7cf409c05a194e194573c358
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 11 14:30:14 2010 -0400
+
+ Bug 621298 - Cursor invisible (plain black) in (xfce) Terminal & terminator
+
+ Fix the case where cursor color is set.
+
+ Towards making determine_colors make sense. Still not done. More
+ commits coming, but this one is enough to fix the main regression.
+
+ src/vte.c | 32 ++++++++++++++++++++++----------
+ 1 files changed, 22 insertions(+), 10 deletions(-)
+
+commit 3a7fbb285ebf9a50eb3498e21e001b773701f5a6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 11 14:24:33 2010 -0400
+
+ Revert "Don't hide cursor even if cell is invisible"
+
+ This reverts commit 18ee5f522d8bc2f5dfe896f40eba8d5313cb310f.
+
+ This didn't make sense. It was making invisible cells visible when
+ under cursor.
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit edde846fa555e0d5e16d54328e47d81096f82893
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 11 13:46:10 2010 -0400
+
+ Minor
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit b2f8852f936a8ef0537a0a83156a24544b1a1cf2
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 11 13:45:40 2010 -0400
+
+ Minor --help adjustment
+
+ src/vteapp.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 9abf75cb36376d00a6dc14d7482599a57cbff023
+Author: Christian Persch <chpe gnome org>
+Date: Wed Aug 11 18:16:20 2010 +0200
+
+ Vary gettext domain for vte/gtk3
+
+ Using the same domain creates parallel-install troubles.
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 48e2356a5a91c8c6d61573c30bcb8740fbec4b8e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 10 15:01:47 2010 -0400
+
+ Ensure vte-gtk-compat.h is included in the tarball
+
+ src/Makefile.am | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 01c7eee35d336e674df206220047c19bc38ed20e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 10 15:00:22 2010 -0400
+
+ Ensure decset, osc and window are included in the tarball
+
+ src/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 14aa0032f04aa1771116fe6f73dd46a75c4c11f2
+Author: Christian Persch <chpe gnome org>
+Date: Tue Aug 10 20:09:29 2010 +0200
+
+ Docs update
+
+ doc/reference/vte-sections.txt | 6 ++++
+ src/vte.c | 57 ++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 63 insertions(+), 0 deletions(-)
+
+commit 4feccba86ead67f7e0da018b45f2301a89a3ea75
+Author: Nils-Christoph Fiedler <ncfiedler gnome org>
+Date: Sun Aug 8 15:53:24 2010 +0200
+
+ Updated LowGerman translation
+
+ po/nds.po | 35 ++++++++++++++++++-----------------
+ 1 files changed, 18 insertions(+), 17 deletions(-)
+
+commit 18ed68d1ea94e002cef001398b8bb344d639f5d7
+Author: A S Alam <aalam users sf net>
+Date: Wed Aug 4 15:10:48 2010 +0530
+
+ update Translation in master for Punjabi by A S Alam
+
+ po/pa.po | 46 ++++++++++++++++++++++++----------------------
+ 1 files changed, 24 insertions(+), 22 deletions(-)
+
+commit 23655733396cbe49b989901c7a4a0c66bca4a4dc
+Author: Dirgita <dirgitadevina gmail com>
+Date: Wed Aug 4 11:03:00 2010 +0700
+
+ Updated Indonesian translation
+
+ po/id.po | 152 +++++++++++++++++---------------------------------------------
+ 1 files changed, 42 insertions(+), 110 deletions(-)
+
+commit 701dfad230c641edd7894f562fb46195a57bcf08
+Author: Daniel Nylander <po danielnylander se>
+Date: Sun Jul 25 19:05:14 2010 +0200
+
+ Updated Swedish translation
+
+ po/sv.po | 114 ++++++++++++++++++++++++-------------------------------------
+ 1 files changed, 45 insertions(+), 69 deletions(-)
+
+commit bc8df68917912f333ebdab8135800e4d3632dcd4
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Jul 22 13:05:04 2010 -0400
+
+ Bug 618097 - Broken backtab (cbt)
+
+ src/vteseq.c | 9 ++-------
+ 1 files changed, 2 insertions(+), 7 deletions(-)
+
+commit 3e8c59f78a8e7557ffccd97d7cd5dea0f7b0aceb
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Jul 22 12:32:40 2010 -0400
+
+ Add compat impl for gtk_accessible_get_widget()
+
+ src/vte-gtk-compat.h | 4 ++++
+ src/vteaccess.c | 1 +
+ 2 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 07307c1863cd68a85284235b69e6687f9eed36e9
+Author: Fran Diéguez <fran dieguez mabishu com>
+Date: Wed Jul 21 16:28:11 2010 +0200
+
+ Updated Galician translations
+
+ po/gl.po | 58 ++++++++++++++++++----------------------------------------
+ 1 files changed, 18 insertions(+), 40 deletions(-)
+
+commit c01a676e1ed44e1aa3e318cea559be4b2f1d49c3
+Author: Mario Blättermann <mariobl gnome org>
+Date: Fri Jul 16 21:38:54 2010 +0200
+
+ [i18n] Updated German translation
+
+ po/de.po | 99 ++++++++++++++++++++++++++++---------------------------------
+ 1 files changed, 45 insertions(+), 54 deletions(-)
+
+commit 8b971a7b2c59902914ecbbc3915c45dd21530a91
+Author: Kees Cook <kees ubuntu com>
+Date: Mon Jul 12 21:31:32 2010 +0200
+
+ Fix terminal title reporting
+
+ Fixed CVE-2003-0070 again.
+ See also http://marc.info/?l=bugtraq&m=104612710031920&w=2 .
+ (cherry picked from commit 6042c75b5a6daa0e499e61c8e07242d890d38ff1)
+
+ src/vteseq.c | 24 ++++++++++++++++--------
+ 1 files changed, 16 insertions(+), 8 deletions(-)
+
+commit a4445d5bd1106d8683b471a358f7933bacb58105
+Author: Christian Persch <chpe gnome org>
+Date: Mon Jul 12 21:27:38 2010 +0200
+
+ Tiny configure fix
+
+ configure.in | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit d17e650aa062946ce599f80fe33989cc2c7bb52d
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Thu Jul 15 09:57:23 2010 -0400
+
+ Stop using the gdk_draw_* API
+
+ Only one gdk_draw_rectangle() call let.
+
+ src/vte.c | 29 ++++++++++++++++-------------
+ 1 files changed, 16 insertions(+), 13 deletions(-)
+
+commit 6eadb8494797e44910b86b5e101823cf527c04e1
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Thu Jul 15 09:07:51 2010 -0400
+
+ Use accessors for setting adjustment
+
+ We use g_object_freeze_notify() to emit the same amount of ::changed
+ signals.
+
+ src/vte.c | 34 ++++++++++++++++++++--------------
+ 1 files changed, 20 insertions(+), 14 deletions(-)
+
+commit 31303a1893ba6052a537f285c99db80499a8b797
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Thu Jul 15 08:38:42 2010 -0400
+
+ Use get accessors for adjustments
+
+ src/vte.c | 57 +++++++++++++++++++++++++++++++--------------------------
+ 1 files changed, 31 insertions(+), 26 deletions(-)
+
+commit 887f86c00e99e38f9374eea03b1535cd823851b3
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Thu Jul 15 08:24:16 2010 -0400
+
+ Add remaining accessors
+
+ All that remains now is the adjustment accessors.
+
+ src/vte.c | 19 ++++++++-------
+ src/vteaccess.c | 64 ++++++++++++++++++++++++++++--------------------------
+ src/vteapp.c | 65 ++++++++++++++++++++++++++++++++----------------------
+ src/vtedraw.c | 11 ++++++---
+ src/vteseq.c | 16 +++++++------
+ 5 files changed, 97 insertions(+), 78 deletions(-)
+
+commit 0f4d6539fa0280cfa658a27ceaca63c2db0232e4
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Jul 14 22:52:53 2010 -0400
+
+ Seal VTE when VTE_SEAL_ENABLE is given, not GSEAL_ENABLE
+
+ gtk+ 3.0 defines GSEAL_ENABLE, which seals up VTE for the vte code as well.
+ Instead, seal of VTE when VTE_SEAL_ENABLE is defined and set it in
+ the .pc file.
+
+ src/vte.h | 2 +-
+ vte.pc.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 235461a3c4ac1577a3c0891a2d0ca5316e12a568
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Jul 14 22:51:18 2010 -0400
+
+ Introduce compat macros for region differences
+
+ src/vte-gtk-compat.h | 27 +++++++++++++++++++++++++++
+ src/vte.c | 6 +++---
+ src/vtedraw.h | 1 +
+ 3 files changed, 31 insertions(+), 3 deletions(-)
+
+commit ac1e78c78e6a39834d35c525be01d50c348d33ba
+Author: Saleem Abdulrasool <compnerd compnerd org>
+Date: Wed Jul 14 22:10:00 2010 -0400
+
+ Use accessors for gtk objects
+
+ This change introduces vte-gtk-compat.h to allow compatibility with the
+ current GTK+ requirement (2.14+) while allowing us to use GSEAL when
+ available. When the GTK+ requirements are moved up to 2.20+, it should
+ be possible to entirely remove the header.
+
+ Setting of the GTK adjustment fields still occurs without the accessors
+ as setting the value and then using value_changed may introduce
+ different behaviour and/or double signal emissions.
+
+ src/vte-gtk-compat.h | 45 +++++++++
+ src/vte.c | 253 +++++++++++++++++++++++++++++--------------------
+ 2 files changed, 195 insertions(+), 103 deletions(-)
+
+commit 396f44dd5ea0a4d9d0567ae9c6618bb3004c4c34
+Author: Kristjan Schmidt <kristjan schmidt googlemail com>
+Date: Sun Jul 4 17:33:30 2010 +0200
+
+ Add Esperanto translation
+
+ po/LINGUAS | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 3671437e3d2fca4ac4918078700b2d60de43228c
+Author: Kristjan Schmidt <kristjan schmidt googlemail com>
+Date: Sun Jul 4 17:33:30 2010 +0200
+
+ Add Esperanto translation
+
+ po/eo.po | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 105 insertions(+), 0 deletions(-)
+
+commit 137e16630cd737dd4690fb54e6431b0bfebcf509
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jun 30 15:27:30 2010 -0400
+
+ Simplify libtool versioning
+
+ configure.in | 38 +++++++++++++++++++-------------------
+ src/Makefile.am | 2 +-
+ 2 files changed, 20 insertions(+), 20 deletions(-)
+
+commit 4423625ec82432f7bbc6b8a00b865271d3b123fd
+Author: Aron Xu <aronxu gnome org>
+Date: Tue Jun 29 21:53:54 2010 +0800
+
+ Update Simplified Chinese translation.
+
+ po/zh_CN.po | 112 ++++++++++++++++++++++++----------------------------------
+ 1 files changed, 46 insertions(+), 66 deletions(-)
+
+commit 11a21955d145c743631a3eb6dc109e08359bfea5
+Author: Khaled Hosny <khaledhosny eglug org>
+Date: Sat Jun 26 22:30:37 2010 +0300
+
+ Updated Arabic translation
+
+ po/ar.po | 46 ++++++++++++++++++++--------------------------
+ 1 files changed, 20 insertions(+), 26 deletions(-)
+
+commit 9caf8b2249dea81bc03108020b7c033a78cd3f57
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Jun 25 02:02:29 2010 -0300
+
+ Minor comment fix.
+
+ src/vte.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 8b3dbe8e6771356023fe552b178659357f502473
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Jun 17 15:02:54 2010 -0400
+
+ Set widget app_paintable.
+
+ src/vte.c | 5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+commit 332e694b5067c7e8e5d2f32ceccbd229243a3ff7
+Author: Christian Persch <chpe gnome org>
+Date: Fri May 28 21:10:46 2010 +0200
+
+ Make vte dual buildable with gtk2 and gtk3
+
+ Gtk3 build is untested.
+
+ Makefile.am | 8 +++-
+ configure.in | 82 ++++++++++++++++++++++++++++++++++++--------
+ doc/reference/Makefile.am | 4 +-
+ src/Makefile.am | 64 ++++++++++++++++++-----------------
+ vte-uninstalled.pc.in | 2 +-
+ vte.pc.in | 4 +-
+ 6 files changed, 111 insertions(+), 53 deletions(-)
+
+commit 405ed5bb3151940db0f21ff5b8e96bea94770f96
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Jun 11 22:51:49 2010 -0400
+
+ Clean up background clearing
+
+ Fixes bug where lower border of the screen was not properly painted in
+ fullscreen mode.
+
+ src/vte.c | 45 +++++++++------------------------------------
+ src/vtedraw.c | 18 +-----------------
+ src/vtedraw.h | 3 +--
+ 3 files changed, 11 insertions(+), 55 deletions(-)
+
+commit b73782a28894e25ed146271f9d6c6775a6836199
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Jun 4 14:36:45 2010 -0400
+
+ Bug 601926 - Don't hardcode meta to alt
+
+ src/keymap.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit b86c068b061090e176b1ff6e82dcccfd0198ed2f
+Author: Matthias Clasen <mclasen redhat com>
+Date: Thu Jun 3 12:16:30 2010 -0400
+
+ Bug 620493 - strict aliasing warning
+
+ gnome-pty-helper/gnome-pty-helper.c | 5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+commit bff92abe96896ebf3c7e2a60243caf65659d3390
+Author: Yaron Shahrabani <sh yaron gmail com>
+Date: Sat May 29 13:29:22 2010 +0300
+
+ Updated Hebrew translation.
+
+ po/he.po | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 94d7fb63386d1e8e2653a961af6cbeac06b05c2b
+Author: Yaron Shahrabani <sh yaron gmail com>
+Date: Sat May 29 13:28:26 2010 +0300
+
+ Updated Hebrew translation.
+
+ po/he.po | 100 ++++++++++++++++++++++++++-----------------------------------
+ 1 files changed, 43 insertions(+), 57 deletions(-)
+
+commit b1cc8aa1a42e74c2130a6e39c5571779fb842f69
+Author: Ivar Smolin <okul linux ee>
+Date: Thu May 27 08:35:49 2010 +0300
+
+ Estonian translation updated
+
+ po/et.po | 84 ++++++++++++-------------------------------------------------
+ 1 files changed, 17 insertions(+), 67 deletions(-)
+
+commit 9370647823ce29c1088c351381a07a5506b74c84
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed May 26 13:09:47 2010 -0400
+
+ Bug 618749 - set terminal widget background color to terminal background
+
+ src/vte.c | 15 ++++++++++++---
+ 1 files changed, 12 insertions(+), 3 deletions(-)
+
+commit 430dd34fa9532fa492ea512f226e8483d1393716
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed May 26 13:09:25 2010 -0400
+
+ Fix requires_clear setting
+
+ Part of Bug 618749 - [PATCH] set terminal widget background color to terminal
+
+ src/vtedraw.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 2902ade6f3714e8d42cab0320a5e99345a142bd9
+Author: Petr Kovar <pknbe volny cz>
+Date: Sun May 23 19:49:10 2010 +0200
+
+ Update Czech translation by Marek Cernocky
+
+ po/cs.po | 43 ++++++++++++++++++-------------------------
+ 1 files changed, 18 insertions(+), 25 deletions(-)
+
+commit 3bd8a57d124126f360a2352bfdc61e78a7c7982f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri May 14 18:27:32 2010 -0400
+
+ Revert "Disable introspection dist"
+
+ This reverts commit a0cec4542963d52b1c1842ea9b450a51262b4c09.
+
+ src/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 2d2aabde8ba4ef9dff306cbf15044c68e350ba9d
+Author: Thomas Thurman <tthurman gnome org>
+Date: Thu May 13 18:06:11 2010 -0400
+
+ Updated Shavian translation
+
+ po/en shaw po | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 868d03f9921e49ef8966a9307a0f521f5c9311d7
+Author: Thomas Thurman <tthurman gnome org>
+Date: Wed May 12 18:41:00 2010 -0400
+
+ Updated Shavian transliteration
+
+ po/en shaw po | 47 ++++++++++++++++++++---------------------------
+ 1 files changed, 20 insertions(+), 27 deletions(-)
+
+commit 5dc9b3ce32070f1a7040b8ed24d9d463ad6a67b0
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue May 11 16:49:10 2010 -0400
+
+ Bug 614658 - text selection with mouse is buggy when using the shift key
+
+ src/vte.c | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit c84f01d9de7bc2c7a9bfbc6373afbdebbab3d2be
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed May 5 19:16:39 2010 -0400
+
+ Bug 617690 - Setting default fg color should not cancel underline
+
+ src/vteseq.c | 5 +----
+ 1 files changed, 1 insertions(+), 4 deletions(-)
+
+commit 7af990ed413f19de0b20815b4ceeec13c201790f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 3 11:31:46 2010 -0400
+
+ Release 0.25.1
+
+ NEWS | 17 +++++++++++++++++
+ configure.in | 2 +-
+ 2 files changed, 18 insertions(+), 1 deletions(-)
+
+commit a0cec4542963d52b1c1842ea9b450a51262b4c09
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 3 21:08:54 2010 -0400
+
+ Disable introspection dist
+
+ Broken as usual...
+
+ src/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 860ed187545355fa9daef60907a3746837cc7b6a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 3 11:21:42 2010 -0400
+
+ [configure] Make libtool versioning automatic
+
+ configure.in | 21 +++++++++------------
+ 1 files changed, 9 insertions(+), 12 deletions(-)
+
+commit d8ccb73b23cd2a5c85a3bfbfbfe550391feb3ae0
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 3 04:17:52 2010 -0400
+
+ [search] Fix not-found
+
+ src/vte.c | 30 +++++++++++++++++++++++++++++-
+ 1 files changed, 29 insertions(+), 1 deletions(-)
+
+commit e7101e79d6ba2d8a2f2d1029e76f7c8aecffbc09
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 3 03:58:34 2010 -0400
+
+ [search] Don't scroll if result is on screen already
+
+ src/vte.c | 22 ++++++++++++++++------
+ 1 files changed, 16 insertions(+), 6 deletions(-)
+
+commit 8be7456df21e13fa7182143eb1266790ce3fc31a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 3 03:49:09 2010 -0400
+
+ Fix presenting search result
+
+ src/vte.c | 47 ++++++++++++++++++++++-------------------------
+ 1 files changed, 22 insertions(+), 25 deletions(-)
+
+commit 871fc9e97a2c6f8340ca20eb75fbbd04fecfb694
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 3 03:23:17 2010 -0400
+
+ Add comment
+
+ src/vte.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit fc35e7bed6ee7940167f9cde0eae913be7d15f4a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 3 03:21:59 2010 -0400
+
+ Fix selection invalidation. Oops!
+
+ src/vte.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit d80ecde4c350e9922d374f9adb97238e5c041e5c
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 3 03:20:52 2010 -0400
+
+ [search] Implement wrap-around
+
+ src/vte.c | 92 +++++++++++++++++++++++++++++++++++++++----------------------
+ 1 files changed, 59 insertions(+), 33 deletions(-)
+
+commit 95c30fc52edd2d5de68267fdf3847b9e639d218d
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sun May 2 03:35:21 2010 -0400
+
+ Add VteVisualPosition
+
+ src/vte-private.h | 16 ++++------
+ src/vte.c | 80 ++++++++++++++++++++++++++--------------------------
+ src/vteseq.c | 2 +-
+ 3 files changed, 48 insertions(+), 50 deletions(-)
+
+commit ae08c6d9c1a2f1d9f5fee8658ddbed2321b1b0e1
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sun May 2 03:23:29 2010 -0400
+
+ Refactor search
+
+ src/vte-private.h | 1 +
+ src/vte.c | 186 +++++++++++++++++++++++++++++++++-------------------
+ 2 files changed, 119 insertions(+), 68 deletions(-)
+
+commit 1710d5069482355cf1b3dff9a7605f35311823d4
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Sun May 2 11:40:20 2010 +0200
+
+ Updated Norwegian bokmål translation
+
+ po/nb.po | 95 +++++++++++++++++++-------------------------------------------
+ 1 files changed, 29 insertions(+), 66 deletions(-)
+
+commit 81375a2f4aec7b55d8c3337a316fdeda166b701f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Apr 29 16:38:36 2010 -0400
+
+ Bug 616497 - 256 color sequence lacks boundary checking
+
+ src/vteseq.c | 28 ++++++++++++++++------------
+ 1 files changed, 16 insertions(+), 12 deletions(-)
+
+commit 5e7bb0b7cbbd130eada9730b029270d822a69ef5
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Apr 27 16:28:12 2010 -0400
+
+ Fixup search a bit
+
+ src/vte-private.h | 2 +-
+ src/vte.c | 9 +++++----
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+commit ed1c3e4ba7aa3a6a3d4eea9dc30b6356f91c26b9
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Apr 27 11:35:39 2010 -0400
+
+ Add _[gs]et_wrap_around() API
+
+ src/vte-private.h | 1 +
+ src/vte.c | 29 ++++++++++++++++++++++-------
+ src/vte.h | 7 ++++---
+ 3 files changed, 27 insertions(+), 10 deletions(-)
+
+commit c16d84a84006fd62ad4282b983868ae7b91cf9c6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Apr 27 06:22:26 2010 -0400
+
+ Start of find_prev
+
+ src/vte.c | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++---------
+ 1 files changed, 80 insertions(+), 15 deletions(-)
+
+commit 812fa94985488dda7d14992895c20ea632c04147
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Apr 27 04:01:03 2010 -0400
+
+ Add buffer search API
+
+ Not performing any actual search right now.
+
+ src/vte-private.h | 3 ++
+ src/vte.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vte.h | 9 +++++++
+ 3 files changed, 73 insertions(+), 0 deletions(-)
+
+commit 3653a15060dace53d22834fd853ecf702859aea0
+Author: Francisco Diéguez <fran dieguez mabishu com>
+Date: Sat Apr 17 21:35:15 2010 +0200
+
+ Updated Galician translations
+
+ po/gl.po | 37 ++++++++++++++++---------------------
+ 1 files changed, 16 insertions(+), 21 deletions(-)
+
+commit 25a382362d049d655620c122e3036f3482ebf963
+Author: Christian Persch <chpe gnome org>
+Date: Thu Apr 15 19:02:04 2010 +0200
+
+ VteBg is private API
+
+ doc/reference/vte-sections.txt | 1 -
+ src/vtebg.c | 2 +-
+ 2 files changed, 1 insertions(+), 2 deletions(-)
+
+commit 8c0e7c9aa277e8f51d7dbb010044fea072a26c0b
+Author: Christian Persch <chpe gnome org>
+Date: Thu Apr 15 18:55:02 2010 +0200
+
+ Use (transfer full)
+
+ src/pty.c | 6 +++---
+ src/vte.c | 18 +++++++++---------
+ 2 files changed, 12 insertions(+), 12 deletions(-)
+
+commit 15ce739c19ff14f3d5e2267d2c1bb1d1b5c50a28
+Author: Jorge González <jorgegonz svn gnome org>
+Date: Thu Apr 15 08:28:01 2010 +0200
+
+ Updated Spanish translation
+
+ po/es.po | 119 ++++++++++++++++++++++++++++----------------------------------
+ 1 files changed, 54 insertions(+), 65 deletions(-)
+
+commit 32af285e46f078a84fbff7d2455bba4960b3a4b8
+Author: Matej Urbančič <mateju svn gnome org>
+Date: Wed Apr 14 17:58:38 2010 +0200
+
+ Updated Slovenian translation
+
+ po/sl.po | 129 ++++++++++++++++++++++++++-----------------------------------
+ 1 files changed, 55 insertions(+), 74 deletions(-)
+
+commit c4159492f8ea3f5fc4c1adeae5077ef12edb366b
+Author: Christian Persch <chpe gnome org>
+Date: Mon Apr 12 20:29:38 2010 +0200
+
+ Add some more gi annotations
+
+ src/vte.c | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+commit 0142382369accceab938fd06e7001688187834c5
+Author: Christian Persch <chpe gnome org>
+Date: Mon Apr 12 20:09:08 2010 +0200
+
+ Tiny docs fix
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit deeab3837a7b3c463e525f75f0b96436448bc7c3
+Author: Christian Persch <chpe gnome org>
+Date: Mon Apr 12 19:59:44 2010 +0200
+
+ Add annotation-glossary.xml include
+
+ doc/reference/vte-docs.xml | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 122d6382534fd381ca2f964b0df9aa568da52c45
+Author: Christian Persch <chpe gnome org>
+Date: Mon Apr 12 19:59:03 2010 +0200
+
+ Add deprecation guards to vtedeprecated.h
+
+ They're redunant since this file is only included in the
+ !VTE_DISABLE_DEPRECATED case, but this is necessary to make the docs
+ build happy.
+
+ src/vtedeprecated.h | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit fddc82dde27f0cbdbc38c617808be965b83558ac
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Apr 12 11:38:06 2010 -0400
+
+ Bug 615417 - Reversed and one error saturation level in 0.24.0
+
+ src/vtebg.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit f82251e5138a3515c3bd17e4af5769ee2c7c3d96
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Apr 12 11:23:42 2010 -0400
+
+ Bug 615467 - [PATCH] VTE does not handle CSI%dr properly
+
+ src/caps.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit bc3a50d2d6024e8b01bb64f9e0e908de123216a2
+Author: Christian Persch <chpe gnome org>
+Date: Sun Apr 11 21:00:01 2010 +0200
+
+ Don't crash when root_surface is NULL
+
+ src/vtebg.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit 17a7de4fb76205f92d6f9af7af9ba6e127eeb3b4
+Author: Christian Persch <chpe gnome org>
+Date: Sun Apr 11 20:51:56 2010 +0200
+
+ Add some debug output to VteBg
+
+ src/debug.c | 3 ++-
+ src/debug.h | 3 ++-
+ src/vtebg.c | 21 ++++++++++++---------
+ 3 files changed, 16 insertions(+), 11 deletions(-)
+
+commit bf80e94ed89c3abdc238725694617444cc0f3949
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 10 17:48:54 2010 +0200
+
+ Tiny docs fixup
+
+ src/vte.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 09ac9fd1733e0376fe2201e92a93accd7c716865
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 10 17:41:28 2010 +0200
+
+ Add gobject introspection annotations
+
+ ... and update some docs.
+
+ src/pty.c | 24 +++---
+ src/vte.c | 315 ++++++++++++++++++++++++++----------------------------------
+ src/vte.h | 9 +-
+ 3 files changed, 154 insertions(+), 194 deletions(-)
+
+commit b1379dc19ac015a3dbb7a42f7b1250e6e096820f
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 10 16:34:11 2010 +0200
+
+ Remove unused variable
+
+ src/vtebg.c | 3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+commit e70fbd240fd230155a5321907bfe6f4fa032586c
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 10 16:27:19 2010 +0200
+
+ Add FIXME about potential optimisation
+
+ src/vtebg.c | 8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+commit 3aaa051bc390c97dca80beff9fdcf14eaddf01a8
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 10 16:24:33 2010 +0200
+
+ Add some gtk-doc comments
+
+ While trying to understand this code.
+
+ src/vtebg.c | 43 +++++++++++++++++++++++++++++++++++--------
+ 1 files changed, 35 insertions(+), 8 deletions(-)
+
+commit 41db1d0d64227d65d1f25de68d8a62e3a7bd271d
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 10 16:06:02 2010 +0200
+
+ Use _vte_debug_print() here
+
+ src/vtebg.c | 5 ++---
+ 1 files changed, 2 insertions(+), 3 deletions(-)
+
+commit 7561724dc78abf71a6cefaf17965f16a69fec44b
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 10 16:01:45 2010 +0200
+
+ Parse options enum from string
+
+ src/vteapp.c | 54 ++++++++++++++++++++++++++++++++++++++----------------
+ 1 files changed, 38 insertions(+), 16 deletions(-)
+
+commit 08283ddc9f5516e1f15306399c909c0adc49db77
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 10 15:49:31 2010 +0200
+
+ Use standard form of stock type macros
+
+ src/vte.h | 29 +++++++++--------------------
+ src/vtebg.h | 15 +++++++--------
+ 2 files changed, 16 insertions(+), 28 deletions(-)
+
+commit 39b7a1f74dc7044d1fd6cd9df7abceffa7e99349
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 10 01:42:24 2010 +0200
+
+ We also depend on cairo-xlib on gdk-x11
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit a9642829fbbd027bf39df6205efc1d7cb8383c02
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 10 01:41:52 2010 +0200
+
+ Use G_STATIC_ASSERT
+
+ Now that we depend on glib 2.22, remove our private static assert macro
+ and just use G_STATIC_ASSERT.
+
+ src/debug.h | 4 ----
+ src/vterowdata.h | 10 +++++-----
+ 2 files changed, 5 insertions(+), 9 deletions(-)
+
+commit 49759e9608b1d69cdc26a44e0259d57297be995a
+Author: Christian Persch <chpe gnome org>
+Date: Thu Apr 8 17:16:49 2010 +0200
+
+ Fix underline cursor height calculation
+
+ Use the cell width, not the whole cursor width when calculating the
+ underline cursor height.
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit d00507b9bc4c29248817915225c49c1e8b349fe0
+Author: Christian Persch <chpe gnome org>
+Date: Thu Dec 3 18:47:13 2009 +0100
+
+ Use the style's cursor-aspect-ratio when drawing the cursor
+
+ For the ibeam cursor, use the aspect ratio; for the underline, its
+ inverse (that's the only thing that makes sense here).
+
+ Bug #586950.
+
+ src/vte-private.h | 1 +
+ src/vte.c | 29 +++++++++++++++++++++++------
+ 2 files changed, 24 insertions(+), 6 deletions(-)
+
+commit b72c2a7df25e5fdfefbd437505f9f71b7d675da8
+Author: Christian Persch <chpe gnome org>
+Date: Thu Apr 8 13:15:00 2010 +0200
+
+ Print the GDK target during configure
+
+ For checking purposes.
+
+ configure.in | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 8df389be0035f185705a4553bd8564940cb23080
+Author: Christian Persch <chpe gnome org>
+Date: Sun Apr 4 22:37:02 2010 +0200
+
+ Remove accidentally added include
+
+ src/vtetc.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit 022bf76c6b01ea82310c67020461530082f86998
+Author: Christian Persch <chpe gnome org>
+Date: Sun Apr 4 18:12:00 2010 +0200
+
+ Add debug output when g-p-h fails
+
+ src/pty.c | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit d8569b1a45bdba4f09d6162ad9287f47ac8ca25f
+Author: Christian Persch <chpe gnome org>
+Date: Sun Apr 4 17:20:16 2010 +0200
+
+ Remove unused function declaration
+
+ src/vtetc.c | 1 +
+ src/vtetc.h | 3 ---
+ 2 files changed, 1 insertions(+), 3 deletions(-)
+
+commit feeda1671770daffa08a4235b94becdcbf9b825c
+Author: Christian Persch <chpe gnome org>
+Date: Sun Apr 4 17:08:10 2010 +0200
+
+ Remove signal ID from VteBgClass
+
+ It's unused.
+
+ src/vtebg.c | 16 ++++++++--------
+ src/vtebg.h | 1 -
+ 2 files changed, 8 insertions(+), 9 deletions(-)
+
+commit acbaf637f2c78d34d735e1b0c0c2586b344d42ff
+Author: Christian Persch <chpe gnome org>
+Date: Sun Apr 4 17:06:39 2010 +0200
+
+ Remove unnecessary i18n init from vtebg
+
+ VteBg is an internal object that cannot be accessed from outside, and
+ that has no i18n. So there's really no need to make its class init
+ function bind vte's textdomain.
+
+ src/vtebg.c | 7 -------
+ 1 files changed, 0 insertions(+), 7 deletions(-)
+
+commit be41faea3651c2a90012648490ebf346eac82d04
+Author: Christian Persch <chpe gnome org>
+Date: Sun Apr 4 17:03:24 2010 +0200
+
+ Add x11 to pkg-config dep list on gdk-x11
+
+ Bug #613525.
+
+ configure.in | 10 +++++++++-
+ 1 files changed, 9 insertions(+), 1 deletions(-)
+
+commit f0809d9cc8b4bba36252a12098fb31dd81534242
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 3 23:50:51 2010 +0200
+
+ Remove #if 0'd code
+
+ src/vtebg.c | 22 ----------------------
+ 1 files changed, 0 insertions(+), 22 deletions(-)
+
+commit 9a36a04d3f6edbb81a304b0cad3b60d2e90d2324
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 3 23:49:15 2010 +0200
+
+ Fix crash when loading the bg pixbuf failed
+
+ src/vtebg.c | 5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+commit 61e12fa671c2af5766ba28077a788423355bb5c1
+Author: Christian Persch <chpe gnome org>
+Date: Sat Apr 3 18:59:03 2010 +0200
+
+ Clean up vtebg
+
+ Fixes build with !GDK_WINDOWING_X11. Bug #614469.
+
+ src/vtebg.c | 191 +++++++++++++++++++++++++++++----------------------------
+ src/vtebg.h | 19 +++---
+ src/vtedraw.c | 2 +-
+ src/vtedraw.h | 2 +-
+ 4 files changed, 107 insertions(+), 107 deletions(-)
+
+commit e2981d7ae9039256a22137a7f0b8fd886b794a94
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Apr 1 18:09:41 2010 -0400
+
+ Bug 604240 - fix set-scrolling-region behaviour on reset
+
+ src/vteseq.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit bd2da3fd0fc436887a61a89b0dd367954fa36745
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Apr 1 02:16:56 2010 -0400
+
+ Bug 604241 - improve xterm emulation of set-scrolling-region behaviour
+
+ src/caps.c | 5 +++++
+ src/vteseq-n.gperf | 2 ++
+ src/vteseq.c | 26 ++++++++++++++++++++++++++
+ 3 files changed, 33 insertions(+), 0 deletions(-)
+
+commit f74f7b2ac16cedd53884917ede02e293276f40f2
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Apr 1 01:52:35 2010 -0400
+
+ Bug 613192 - check-doc-syntax.sh test fails
+
+ src/check-doc-syntax.sh | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 0f095ac8755655525a48424773cf06b5b9ed21e9
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Apr 1 01:49:30 2010 -0400
+
+ Fix warnings
+
+ src/dumpkeys.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 18ee5f522d8bc2f5dfe896f40eba8d5313cb310f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Apr 1 01:41:36 2010 -0400
+
+ Don't hide cursor even if cell is invisible
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 09345b1ab25b72984419e82cfe3dca07bc5229ce
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Apr 1 01:39:41 2010 -0400
+
+ Bug 499944 - vte_sequence_handler_ta abuses cell.attr.invisible to hide tab char
+
+ src/vtedraw.c | 5 +++++
+ src/vteseq.c | 1 -
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit f412a6f73a7b3a432bb88830b63ee25ea648619d
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Apr 1 01:34:18 2010 -0400
+
+ Followup on Bug 602596 - Cursor can become invisible
+
+ Fix invisible attribute.
+
+ src/vte.c | 7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+commit 3a37564dbce407a112b82b3e7b384a6669c498a3
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Mar 31 19:03:03 2010 -0400
+
+ Remove #ident
+
+ python/vtemodule.c | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit b58bc5359085d2c9233ac6d6a265645bfa217e82
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Mar 31 14:05:10 2010 -0400
+
+ Bug 602596 - Cursor can become invisible
+
+ Always compute the full fore/back color first, then reverse.
+ That's what xterm does also.
+
+ src/vte.c | 11 +++++++----
+ 1 files changed, 7 insertions(+), 4 deletions(-)
+
+commit 492f6a7d6dbb30b2dee2d3b4ee0cd7f9a3bb7f60
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 21:42:41 2010 +0200
+
+ Also generate type builtins from vtedeprecated.h
+
+ src/Makefile.am | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit d4d0df68fb76fc145d05c2d6c1a7354e1737cffa
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 21:34:31 2010 +0200
+
+ Remove obsolete FIXME comment
+
+ src/pty.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit 80ea6ee57d8d80a2876edf626e797e738c8419ad
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 21:33:15 2010 +0200
+
+ Reindent code after removing extra block
+
+ src/pty.c | 46 +++++++++++++++++++++++-----------------------
+ 1 files changed, 23 insertions(+), 23 deletions(-)
+
+commit d75b77aaccf81e56077525d9aba45bd1a59da2d8
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 21:31:29 2010 +0200
+
+ Remove "utf-8" property on VtePty
+
+ It doesn't make much sense.
+
+ src/pty.c | 36 +++---------------------------------
+ 1 files changed, 3 insertions(+), 33 deletions(-)
+
+commit 840e598b685e5d6bd7b7f73b3b972c99ca933bbd
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 21:29:16 2010 +0200
+
+ Make vte_pty_set_utf8 return a GError on failure
+
+ src/pty.c | 56 +++++++++++++++++++++++++++++++++++++++-----------------
+ src/vte.c | 9 +++++++--
+ src/vtepty.h | 5 +++--
+ 3 files changed, 49 insertions(+), 21 deletions(-)
+
+commit 63a407a1f8c4f77fc8cdf3b8d404dca154a5b686
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 21:12:07 2010 +0200
+
+ Remove FIXME
+
+ src/pty.c | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit 13f08f861f96bf2c695ce2486729bf54df5e946d
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 21:11:34 2010 +0200
+
+ Reindent after removing unnecessary block
+
+ src/pty.c | 129 ++++++++++++++++++++++++++++++-------------------------------
+ 1 files changed, 64 insertions(+), 65 deletions(-)
+
+commit 1665665bc4b66fe6e8b25466cf4768f026741212
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 21:10:15 2010 +0200
+
+ Don't leak a FD on error
+
+ src/pty.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 85d92cf07482ab861173d5516319284b8173c801
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 21:02:20 2010 +0200
+
+ Remove obsolete warning message
+
+ We now report back a GError which is much better than spewing random
+ stuff to the console.
+
+ src/pty.c | 11 -----------
+ 1 files changed, 0 insertions(+), 11 deletions(-)
+
+commit b6741eec1a280a590b20682e65e41ad65b84c50f
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 20:58:43 2010 +0200
+
+ Preserve errno since the deprecated API might use it
+
+ src/pty.c | 12 +++++++++---
+ 1 files changed, 9 insertions(+), 3 deletions(-)
+
+commit 9ce477c70120a2a24c32bcacebc28b6e09a63957
+Author: Christian Persch <chpe gnome org>
+Date: Tue Mar 30 20:55:47 2010 +0200
+
+ Don't allow setting negative row/column size
+
+ src/pty.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 8b6da8a26641ec84a6b0475d12e2b05952bf0cec
+Author: Christian Persch <chpe gnome org>
+Date: Mon Mar 29 14:17:45 2010 +0200
+
+ Update lt versioning
+
+ configure.in | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 5a472756b10dc8b683fc0372d97fb69ea4ff2256
+Author: Jamil Ahmed <itsjamil gmail com>
+Date: Sun Mar 28 00:31:22 2010 +0600
+
+ Updated Bengali translation
+
+ po/bn.po | 127 +++++++++++++++++++++++++++++--------------------------------
+ 1 files changed, 60 insertions(+), 67 deletions(-)
+
+commit 8c1473f646bffffbc18c2473f6f1e80b9287a4b8
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Mar 26 16:52:17 2010 -0400
+
+ Bug 614048 - Never change active selection to a column block
+
+ Only activate block selection if ctrl was pressed when selection was started.
+
+ src/vte.c | 42 +++---------------------------------------
+ 1 files changed, 3 insertions(+), 39 deletions(-)
+
+commit 26771370d12c58d5876aa7e0d8b7c6acd2698189
+Author: Christian Persch <chpe gnome org>
+Date: Thu Mar 25 14:16:55 2010 +0100
+
+ Use the set column/row size even when we don't have a PTY
+
+ Bug #317158.
+
+ src/vte.c | 23 +++++------------------
+ 1 files changed, 5 insertions(+), 18 deletions(-)
+
+commit f116be136c0111d3ff1ea7a8c89233bd00fd5140
+Author: Christian Persch <chpe gnome org>
+Date: Thu Mar 25 13:59:32 2010 +0100
+
+ Add more conditionals
+
+ Only use these signals if they're defined. Taken from the patch in
+ bug #369310.
+
+ src/pty.c | 20 ++++++++++++++++++++
+ 1 files changed, 20 insertions(+), 0 deletions(-)
+
+commit 1e684a5156f770c6238ef02e15b5d8713f43638d
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 24 21:38:32 2010 +0100
+
+ Add GError param to vte_pty_new_foreign
+
+ src/pty.c | 22 +++++++++-------------
+ src/vte.c | 5 +++--
+ src/vtepty.h | 3 ++-
+ 3 files changed, 14 insertions(+), 16 deletions(-)
+
+commit 47ddb37d3e6900a456a6739ceb6f03ab96f7c1b0
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 24 21:29:11 2010 +0100
+
+ Preserve errno
+
+ src/pty.c | 7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+commit bd66b79ef8395e9ffe177e82aff20bf5de6f79e5
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 24 21:26:23 2010 +0100
+
+ Don't leak a FD when starting the PTY helper fails
+
+ src/pty.c | 8 +++++++-
+ 1 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 28b4c114ab963aa526a27853fd16e311f5bfc171
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 24 15:46:41 2010 +0100
+
+ Return error when compiled without g-p-h and no-fallback flag used
+
+ src/pty.c | 9 ++++++++-
+ 1 files changed, 8 insertions(+), 1 deletions(-)
+
+commit da94ec83debfbf19e36fec9aea15f619803cee70
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 24 15:21:49 2010 +0100
+
+ Preserve errno for the _vte_pty_* compat API
+
+ src/pty.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit c7070697b5363714462c7450448475918ffac0a3
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 24 15:18:53 2010 +0100
+
+ More error handling
+
+ src/pty.c | 28 +++++++++++++++++++++++-----
+ 1 files changed, 23 insertions(+), 5 deletions(-)
+
+commit 1e2b9d17dcbfd530e925a9896d106ca4885e0911
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 24 14:57:33 2010 +0100
+
+ Better error reporting
+
+ src/pty.c | 24 ++++++++++++++----------
+ 1 files changed, 14 insertions(+), 10 deletions(-)
+
+commit d08ab3e5641e6f486e1918d32566bec104924698
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 24 14:15:08 2010 +0100
+
+ Prevent single inclusion of vtedeprecated.h
+
+ src/vte.h | 2 ++
+ src/vtedeprecated.h | 4 ++++
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 8d263ba855ca6cbf741fc9cdfc921963be63991c
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 24 14:10:47 2010 +0100
+
+ Move deprecated stuff out of vte.h
+
+ ... and into vtedeprecated.h. This way it won't end up in the GIR.
+
+ src/Makefile.am | 3 +-
+ src/vte.h | 78 ++----------------------------------------
+ src/vtedeprecated.h | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 99 insertions(+), 75 deletions(-)
+
+commit 4ad049abbad52836542551953c4072ae08d7ceea
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 24 14:05:04 2010 +0100
+
+ Improve error messages
+
+ Get more specific error messages telling what exactly went wrong.
+
+ src/pty.c | 77 +++++++++++++++++++++++++++++++++++++++++-------------------
+ 1 files changed, 52 insertions(+), 25 deletions(-)
+
+commit 52ec2582e509940ec48215c03d120ec2ace46076
+Author: Badral Sanligiin <badral openmn org>
+Date: Tue Mar 23 02:34:11 2010 +0100
+
+ Updated Mongolian translation
+
+ po/mn.po | 100 +++++++++++++++++++++++++++++++------------------------------
+ 1 files changed, 51 insertions(+), 49 deletions(-)
+
+commit 5cd582723d55a487d8117adbae28f7bf0fd76da3
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sun Mar 21 22:26:59 2010 -0400
+
+ Bug 613528 - computed size is wrong with low width and height values in vte_terminal_size_allocate
+
+ src/vte.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 087f18c041175fe73b187ee4f1ad89a2aa53bbff
+Author: Christian Persch <chpe gnome org>
+Date: Thu Mar 18 20:27:30 2010 +0100
+
+ Move deprecated stuff to the end
+
+ src/vte.h | 46 ++++++++++++++++++----------------------------
+ 1 files changed, 18 insertions(+), 28 deletions(-)
+
+commit 8f67e5d4b0ad71d512d47082b46fe353efff1601
+Author: Christian Persch <chpe gnome org>
+Date: Thu Mar 18 13:24:50 2010 +0100
+
+ Add PTY flags option to vteapp
+
+ So I can test the PTY implementation.
+
+ src/vteapp.c | 42 +++++++++++++++++++++++++++++++++++++++++-
+ 1 files changed, 41 insertions(+), 1 deletions(-)
+
+commit 75594032397e16e7f6b34ca89fe506c16f011bda
+Author: Christian Persch <chpe gnome org>
+Date: Thu Mar 18 00:21:24 2010 +0100
+
+ Remove unnecessary include
+
+ src/vte.h | 2 ++
+ src/vtepty.h | 2 --
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 6ed5d3120d575531a5e25594785310ddaf28d330
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 22:59:43 2010 +0100
+
+ Docs update
+
+ src/vte.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit cb7b31e70e34b7af4162fd28b947678c31609819
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 22:37:41 2010 +0100
+
+ Work harder to preserve errno
+
+ src/pty.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit fb2739a358ae8f4775150f54745e16be698775db
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 22:34:16 2010 +0100
+
+ Use errsv here instead of errno
+
+ src/pty.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 7f0db06fc886d8a98ea171d775ee8293554ab704
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 21:54:46 2010 +0100
+
+ Use G_SPAWN_SEARCH_PATH in vteapp's --command
+
+ src/vteapp.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit e1b7915a6cb88da609f2c9a7c754ff75aa260d88
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 21:23:40 2010 +0100
+
+ Add introspection
+
+ Based on a patch by Johan Dahlin from bug #604837.
+
+ Makefile.am | 2 +-
+ configure.in | 11 +++++++++++
+ src/Makefile.am | 33 +++++++++++++++++++++++++++++++++
+ 3 files changed, 45 insertions(+), 1 deletions(-)
+
+commit eb412ad588f9796bdeb63f3cfddf419cd99b28e3
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 21:23:27 2010 +0100
+
+ Remove removed pty test
+
+ src/Makefile.am | 5 +----
+ 1 files changed, 1 insertions(+), 4 deletions(-)
+
+commit 74b824a278cc884be462855f148bcc8b349f2d46
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 19:19:22 2010 +0100
+
+ Use inner-border property
+
+ Replace deprecated vte_terminal_get_padding() with "inner-border" style
+ property.
+
+ src/vteaccess.c | 18 +++++++++----
+ src/vteapp.c | 72 +++++++++++++++++++++++++++++++++---------------------
+ 2 files changed, 56 insertions(+), 34 deletions(-)
+
+commit 8cc30010ef4e8d67bf3bba68a7c45e47992b35ac
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 19:03:19 2010 +0100
+
+ Rename VTE_SEAL to _VTE_SEAL
+
+ So that gtk-doc doesn't think this macro should be documented.
+
+ src/vte.h | 90 ++++++++++++++++++++++++++++++------------------------------
+ 1 files changed, 45 insertions(+), 45 deletions(-)
+
+commit cc1431c5cc8f12252a3ebeb17da273d6edfe1c56
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 19:01:13 2010 +0100
+
+ Seal VteTerminal
+
+ All of these public fields have accessors already.
+
+ src/vte.h | 30 +++++++++---------------------
+ 1 files changed, 9 insertions(+), 21 deletions(-)
+
+commit 15221b3505dc9a7ee9eec63e9d3d040a211aca60
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 18:50:22 2010 +0100
+
+ Deprecated VteTerminalClass::*_signal
+
+ These signal IDs are useless. If someone is interested in the signal ID,
+ they can just use g_signal_lookup().
+
+ src/vte.h | 70 ++++++++++++++++++++++++++++--------------------------------
+ 1 files changed, 33 insertions(+), 37 deletions(-)
+
+commit 106081e2d1875d893e598a4d20bfab266b6a764e
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 18:40:49 2010 +0100
+
+ Add VTE_SEAL and VTE_DEPRECATED macros
+
+ src/vte.h | 15 +++++++++++++++
+ 1 files changed, 15 insertions(+), 0 deletions(-)
+
+commit 4c07ce73bef1f253075c382d0e55cc526df7222a
+Author: Christian Persch <chpe gnome org>
+Date: Sat Jan 30 14:15:37 2010 +0100
+
+ Add index for new API in 0.26
+
+ doc/reference/vte-docs.xml | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit e45144f8a70244da43723349b09d9edf5f9d8d1f
+Author: Christian Persch <chpe gnome org>
+Date: Sat Jan 30 14:14:19 2010 +0100
+
+ Update version in API docs for new/deprecated APIs
+
+ src/pty.c | 40 ++++++++++++++++++++--------------------
+ src/vte.c | 24 ++++++++++++------------
+ src/vtepty.h | 6 +++---
+ 3 files changed, 35 insertions(+), 35 deletions(-)
+
+commit dd08c50c6a6dd4349d3cbce271ddf4b741db8861
+Author: Christian Persch <chpe gnome org>
+Date: Thu Jan 14 18:08:33 2010 +0100
+
+ Add VtePty and adapt the VteTerminal APIs to it
+
+ Add VtePty as a GObject holding the info about the PTY. Add new API to
+ VteTerminal to set a VtePty, and deprecate the old API that takes a FD
+ to the PTY. Also deprecate the whole of the undocumented _vte_pty_*()
+ APIs.
+
+ Add vte_terminal_fork_command_full() variant that allow providing a
+ custom child setup function and that returns a GError on failure.
+
+ Bug #585841, bug #320128, bug #514447, bug #588871.
+
+ Makefile.am | 2 +-
+ doc/reference/vte-docs.xml | 3 +
+ doc/reference/vte-sections.txt | 50 ++-
+ doc/reference/vte.types | 5 +-
+ gnome-pty-helper/configure.in | 5 +-
+ src/Makefile.am | 14 +-
+ src/pty.c | 1652 ++++++++++++++++++++++++++++++----------
+ src/pty.h | 6 +-
+ src/vte-private.h | 3 +-
+ src/vte.c | 775 +++++++++++++------
+ src/vte.h | 40 +-
+ src/vteapp.c | 32 +-
+ src/vtepty-private.h | 43 +
+ src/vtepty.h | 121 +++
+ 14 files changed, 2058 insertions(+), 693 deletions(-)
+
+commit 9103412cc7c3706f246a1e382af7361f6319c104
+Author: Christian Persch <chpe gnome org>
+Date: Wed Mar 17 18:21:39 2010 +0100
+
+ Post branch version bump
+
+ configure.in | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 953625f24173318ba1a553866a9b8c7cb83aac01
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Mar 13 00:02:57 2010 -0500
+
+ [git.mk] Update from pango
+
+ git.mk | 7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+commit bcb4b775af73cf9da76a79083cd446122bd5c97f
+Author: Marek Černocký <marek manet cz>
+Date: Sat Mar 6 19:14:08 2010 +0100
+
+ Update Czech translation
+
+ po/cs.po | 102 +++++++++++++++++++++++++++++---------------------------------
+ 1 files changed, 48 insertions(+), 54 deletions(-)
+
+commit 41c42c121b89eeb6c73b6deb9c71c4661f12a858
+Author: Piotr Drąg <piotrdrag gmail com>
+Date: Thu Feb 25 13:47:36 2010 +0100
+
+ Updated Polish translation
+
+ po/pl.po | 152 +++++++++++++++++--------------------------------------------
+ 1 files changed, 43 insertions(+), 109 deletions(-)
+
+commit 17c16e6babd0be2a40cf2faa745295c9b47b6655
+Author: Fran Diéguez <frandieguez ubuntu com>
+Date: Mon Feb 15 17:19:27 2010 +0100
+
+ Updated Galician Translation
+
+ po/gl.po | 60 +++++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 31 insertions(+), 29 deletions(-)
+
+commit 11c0cd96e0614a96aebc0bc64e3c9a9fe357c4e3
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 26 14:39:18 2010 -0500
+
+ Improve debug message
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 5f4f67f579c9530af716573d6aaafc9cdb060e09
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Tue Jan 12 10:57:45 2010 -0500
+
+ vtebg: Cache backgrounds as cairo surfaces
+
+ src/vtebg.c | 385 +++++++++++++++++----------------------------------------
+ src/vtebg.h | 15 ++-
+ src/vtedraw.c | 33 ++----
+ 3 files changed, 134 insertions(+), 299 deletions(-)
+
+commit d8e791be89f38e168faf078268be8bdee4a6715d
+Author: Christian Persch <chpe gnome org>
+Date: Thu Jan 14 18:42:06 2010 +0100
+
+ Modernise the API docs
+
+ Update to gtk-doc 0.13. Drop tmpl use, use <xi:include>, add object
+ hierarchy, index, deprecated symbols index, and indices for new symbols
+ in 0.20 and 0.24.
+
+ autogen.sh | 3 +-
+ configure.in | 9 +-
+ doc/reference/Makefile.am | 163 ++++--
+ doc/reference/tmpl/internals.sgml | 20 -
+ doc/reference/tmpl/pty.sgml | 18 -
+ doc/reference/tmpl/reaper.sgml | 25 -
+ doc/reference/tmpl/vte-unused.sgml | 516 ---------------
+ doc/reference/tmpl/vte.sgml | 1287 ------------------------------------
+ doc/reference/tmpl/vteaccess.sgml | 37 -
+ doc/reference/tmpl/vteversion.sgml | 59 --
+ doc/reference/version.xml.in | 1 +
+ doc/reference/vte-docs.sgml | 25 -
+ doc/reference/vte-docs.xml | 127 ++++
+ doc/reference/vte-sections.txt | 70 +-
+ doc/reference/vte.types | 12 +-
+ src/reaper.c | 26 +
+ src/reaper.h | 8 +
+ src/vte.c | 32 +-
+ src/vte.h | 98 +++-
+ src/vteaccess.c | 10 +-
+ src/vteaccess.h | 52 +-
+ src/vteversion.h.in | 47 ++
+ 22 files changed, 524 insertions(+), 2121 deletions(-)
+
+commit e8594f159ef206bbd357db6bf28f659eccfefc9a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 20:32:09 2010 -0500
+
+ Release 0.23.5
+
+ NEWS | 4 ++++
+ configure.in | 6 +++---
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+commit 08ee96f50c5053721c31a1eefa05bd6e92a368a7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 20:21:38 2010 -0500
+
+ Release 0.23.4
+
+ NEWS | 5 +++++
+ configure.in | 6 +++---
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+commit d9f1a47a2f14dd0404a7fc9bab7b24a3916922e8
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 19:48:59 2010 -0500
+
+ [doc] Update list of symbols
+
+ doc/reference/tmpl/vte.sgml | 45 +++++++++++++-----
+ doc/reference/vte-sections.txt | 105 +++++++++-------------------------------
+ src/vte.c | 2 +-
+ 3 files changed, 57 insertions(+), 95 deletions(-)
+
+commit ce4f4bc7e0157ff3fc3ce03ce7efb7ba5d4f9bd0
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 19:41:12 2010 -0500
+
+ [doc] Update list of header files
+
+ doc/reference/Makefile.am | 18 ++++++------------
+ 1 files changed, 6 insertions(+), 12 deletions(-)
+
+commit 13000e1938ef4c0968f03503e892b939acfec3e2
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 19:40:49 2010 -0500
+
+ Fix doc typo
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 38b6a46d413247d7acda50f7729048c635ffe23b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 19:33:34 2010 -0500
+
+ [ring] Only write_contents() the part of history that fits in the num rows
+
+ src/ring.c | 12 ++++++++++--
+ src/vtestream-base.h | 12 +++++++++---
+ src/vtestream-file.h | 19 +++++++++++++++----
+ src/vtestream.h | 4 +++-
+ 4 files changed, 37 insertions(+), 10 deletions(-)
+
+commit 9d18ff3de3ff4ca36570d6872a079b8cd09d889d
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 19:33:21 2010 -0500
+
+ [app] Fix signal connection
+
+ src/vteapp.c | 30 +++++++++++++-----------------
+ 1 files changed, 13 insertions(+), 17 deletions(-)
+
+commit f7920a159918b81286d5345ed83a7b5ce2c5668f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 18:13:30 2010 -0500
+
+ Initial implementation of vte_terminal_write_contents()
+
+ Currently is buggy in that it writes parts of history still in the ring but
+ before set number of history lines. Fix coming.
+
+ configure.in | 5 +--
+ src/Makefile.am | 4 +-
+ src/ring.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/ring.h | 12 ++++++++-
+ src/vte.c | 38 +++++++++++++++++++++++++++++-
+ src/vte.h | 19 +++++++++++++-
+ src/vteapp.c | 55 +++++++++++++++++++++++++++++++-----------
+ src/vtestream-base.h | 10 +++++++-
+ src/vtestream-file.h | 31 +++++++++++++++++++++++-
+ src/vtestream.c | 7 ++---
+ src/vtestream.h | 4 ++-
+ 11 files changed, 217 insertions(+), 32 deletions(-)
+
+commit 2e612fbb78b5a30ca57c4721743dc4d1a3f2884a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 16:43:16 2010 -0500
+
+ [ring] Don't xor attrs with basic_attrs
+
+ Before we did that to better handle failed reads. Now we explicitly handle
+ read failure, so no need to do it anymore.
+
+ src/ring.c | 12 +++---------
+ 1 files changed, 3 insertions(+), 9 deletions(-)
+
+commit 3ea88f06dbe753cf1884000354f6555be92af1e8
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 12:19:59 2010 -0500
+
+ Release 0.23.3
+
+ NEWS | 8 ++++++++
+ configure.in | 4 ++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit 598d7ef7300d94888068a89eaf02f80e4a0a27be
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Jan 13 12:09:14 2010 -0500
+
+ Disable deprecation stuff since they were broken
+
+ Needs proper fixing later.
+
+ configure.in | 40 ++++++++++++++++++++--------------------
+ 1 files changed, 20 insertions(+), 20 deletions(-)
+
+commit 38b2a632d1a1e86fee82eb460201fb3d3b547ab3
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 03:12:13 2010 -0500
+
+ [draw] Rename a bit
+
+ src/vtedraw.c | 27 +++++++++++++--------------
+ 1 files changed, 13 insertions(+), 14 deletions(-)
+
+commit 7d9f0294f6ea52bb2525863350fbbac12f9d1459
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 03:09:45 2010 -0500
+
+ [draw] Update comments
+
+ src/vtedraw.c | 13 ++++++-------
+ 1 files changed, 6 insertions(+), 7 deletions(-)
+
+commit c36b81bbee7addf15cf57ca8401ac9245affe678
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 02:47:25 2010 -0500
+
+ Fix debug info
+
+ src/vte.c | 3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+commit 5311d24f0382fbfaac117a46b45f1163f370bfbd
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 02:44:16 2010 -0500
+
+ Fix deprecation enabling logic
+
+ configure.in | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 884527cf0a37728d53cff21d0ce4f07911f2049e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 02:39:33 2010 -0500
+
+ Bug 534526 - Flickering when resizing a vte widget
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit c31361e5ef7a255e4ce96fa884bf71daafc86dbe
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 02:31:13 2010 -0500
+
+ Use PangoColor to unify mixed use of GdkColor and vte_palette_entry
+
+ src/vte-private.h | 6 +--
+ src/vte.c | 97 +++++++++++++++++++----------------------------------
+ src/vtebg.c | 12 +++---
+ src/vtebg.h | 2 +-
+ src/vtedraw.c | 14 ++++----
+ src/vtedraw.h | 10 +++---
+ 6 files changed, 56 insertions(+), 85 deletions(-)
+
+commit 1608eb418aeb23c7fd27814ba7148ae2708c8017
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 02:08:51 2010 -0500
+
+ Add const to GdkColor
+
+ src/vtedraw.c | 10 +++++-----
+ src/vtedraw.h | 8 ++++----
+ 2 files changed, 9 insertions(+), 9 deletions(-)
+
+commit 3c4380448abf647fe7ff93745c9def5f5e2ec326
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 02:07:47 2010 -0500
+
+ Draw rectangles in one shot
+
+ src/vte.c | 22 ++++++++++++----------
+ src/vtedraw.c | 4 ++--
+ 2 files changed, 14 insertions(+), 12 deletions(-)
+
+commit 1ad50e4873fe5c9029e7ea2ad9dc554bce2edfb9
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 01:54:54 2010 -0500
+
+ Cleanup cursor drawing
+
+ src/vte.c | 41 +++++++++++++++--------------------------
+ 1 files changed, 15 insertions(+), 26 deletions(-)
+
+commit 146b8bc6e2acd34fec8f98a3946f1b1e9e316a21
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 01:36:52 2010 -0500
+
+ [draw] Cleanup ->started counting
+
+ src/vtedraw.c | 18 ++++++++----------
+ 1 files changed, 8 insertions(+), 10 deletions(-)
+
+commit 8ab0bb6d55824b7a7728d7e5d4dd782785b21540
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jan 12 01:10:45 2010 -0500
+
+ Reorder code such that screen can never be NULL
+
+ src/vte.c | 45 +++++++++++++++++++++------------------------
+ 1 files changed, 21 insertions(+), 24 deletions(-)
+
+commit 3b5c1662f9215d66a56506a3858b14ed03d5061b
+Merge: 422519d 021e4a5
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Jan 6 10:54:16 2010 -0500
+
+ Merge branch 'backend-cleanup'
+
+commit 422519de06c76c89a6df5cea7c344a1d32c4b856
+Author: Xandru Armesto Fernandez <xandru softastur org>
+Date: Mon Jan 4 09:38:52 2010 +0100
+
+ Added asturian language
+
+ po/LINGUAS | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 1483c1ca64cfdebf893ef16c225b3395595d4436
+Author: Xandru Armesto Fernandez <xandru softastur org>
+Date: Mon Jan 4 09:38:32 2010 +0100
+
+ Updated asturian language
+
+ po/ast.po | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 95 insertions(+), 0 deletions(-)
+
+commit 4db015d59e80a992c86827e612e06c7df1c901f0
+Author: Josh Triplett <josh joshtriplett org>
+Date: Mon Dec 28 03:22:48 2009 +0100
+
+ Bug 605299 - Please support xterm bracketed paste mode
+
+ src/vte-private.h | 1 +
+ src/vte.c | 6 ++++++
+ src/vteseq.c | 5 +++++
+ 3 files changed, 12 insertions(+), 0 deletions(-)
+
+commit 021e4a5082c46ffdf6998beaacca948749079b15
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Dec 23 12:18:32 2009 -0500
+
+ Pass rgba as doubles to _vte_draw_set_background_solid()
+
+ src/vte.c | 27 ++++++++++-----------------
+ src/vtedraw.c | 14 ++++++++------
+ src/vtedraw.h | 6 ++++--
+ 3 files changed, 22 insertions(+), 25 deletions(-)
+
+commit 0edf9e87b374488c502c9c8157f07fcf64692593
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Dec 23 11:28:36 2009 -0500
+
+ Drop _vte_draw_get_visual() and _vte_draw_get_colormap()
+
+ src/vte.c | 5 ++---
+ src/vtedraw.c | 26 +-------------------------
+ src/vtedraw.h | 7 -------
+ 3 files changed, 3 insertions(+), 35 deletions(-)
+
+commit a7ce6af6a780f95d2725f3084808c0d09745e566
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Dec 23 11:11:48 2009 -0500
+
+ Make struct struct _vte_draw private to vtedraw.c
+
+ Merge in struct _vte_pangocairo_data.
+
+ src/vtedraw.c | 174 +++++++++++++++++++++++----------------------------------
+ src/vtedraw.h | 11 ----
+ 2 files changed, 71 insertions(+), 114 deletions(-)
+
+commit c7c5b1ee0c31736b2a02634da9822d1988e5fdfc
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Dec 23 11:06:27 2009 -0500
+
+ Make _vte_draw_start() recursive
+
+ src/vte.c | 10 ++--------
+ src/vtedraw.c | 14 ++++++++------
+ src/vtedraw.h | 2 +-
+ 3 files changed, 11 insertions(+), 15 deletions(-)
+
+commit 7676930c7e1bddd33455a6421fc335027ba50891
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Dec 23 10:31:08 2009 -0500
+
+ Merge vtepangocairo.c into vtedraw.c
+
+ src/Makefile.am | 1 -
+ src/vtedraw.c | 1218 ++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/vtepangocairo.c | 1232 ---------------------------------------------------
+ 3 files changed, 1210 insertions(+), 1241 deletions(-)
+
+commit 77ea73bf2ae87c35fe24b49af61d9e6b58e2c551
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Dec 23 10:26:59 2009 -0500
+
+ Drop struct _vte_draw_impl
+
+ src/Makefile.am | 3 --
+ src/vtedraw.c | 14 +-------
+ src/vtedraw.h | 44 --------------------------
+ src/vtepangocairo.c | 41 +++---------------------
+ src/vtepangocairo.h | 33 -------------------
+ src/vteskel.c | 86 ---------------------------------------------------
+ src/vteskel.h | 33 -------------------
+ 7 files changed, 8 insertions(+), 246 deletions(-)
+
+commit 58689c06e1d15d645c1181f0f8288fefa52f967e
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Dec 23 10:20:50 2009 -0500
+
+ Merge pangocairo draw into remaining vte_draw functions
+
+ src/vtedraw.c | 233 --------------------------------------------------
+ src/vtepangocairo.c | 236 +++++++++++++++++++++++++++++++++++---------------
+ 2 files changed, 165 insertions(+), 304 deletions(-)
+
+commit 02e5dd66a5bd4bbaa8a0c4bab46c1341af3d9f36
+Author: Kristian Høgsberg <krh bitplanet net>
+Date: Wed Dec 23 09:50:10 2009 -0500
+
+ Make _vte_draw_new always create a pangocairo implementation
+
+ src/vtedraw.c | 121 ---------------------------------------------------
+ src/vtepangocairo.c | 36 +++++++++++++---
+ 2 files changed, 30 insertions(+), 127 deletions(-)
+
+commit 718b6f1d1707a4397098cab0ec3bc4980cb7d1bf
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Dec 22 15:27:01 2009 +0100
+
+ Release 0.23.2
+
+ NEWS | 16 ++++++++++++++++
+ configure.in | 6 +++---
+ 2 files changed, 19 insertions(+), 3 deletions(-)
+
+commit 7f017f27ff254995c1ad4fbe4947b929c4c6046f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Dec 19 13:50:04 2009 +0100
+
+ Bug 604966 - Fix "select all" to include text occurring after the visible region
+
+ src/vte.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 3c99618132e8f5924f7a865ce595593889000211
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Dec 15 00:30:37 2009 -0500
+
+ Fix overflow with unlimited scrollback lines
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 31ba6a0a615c9b5d61bb335f756c7c02e701ef5e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Dec 9 01:29:27 2009 -0500
+
+ Bug 604135 - [PATCH] fix behaviour of set-scrolling-region
+
+ src/vteseq.c | 3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+commit fa070a0ebdfab5e33e550e4561179498752a29c6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Dec 9 00:57:01 2009 -0500
+
+ Bug 603733 - Remove deprecated Glib symbol
+
+ Require glib >= 2.22.0
+
+ configure.in | 2 +-
+ src/vtetc.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 47406a81f737f6f01fd148ab004de4eac641d571
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Dec 3 13:26:25 2009 -0500
+
+ Bug 603713 - ibeam/underline cursor broken with large inner-border
+
+ src/vte.c | 46 +++++++++++++++++-----------------------------
+ 1 files changed, 17 insertions(+), 29 deletions(-)
+
+commit e72d7ed4da9d065afc494da304741ca5484b1f9b
+Author: Christian Persch <chpe gnome org>
+Date: Thu Dec 3 18:35:50 2009 +0100
+
+ vteapp: Fix --cursor-shape thinko
+
+ src/vteapp.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 7d755a30393124319d3406efb98a5f612538501b
+Author: Christian Persch <chpe gnome org>
+Date: Thu Dec 3 18:32:35 2009 +0100
+
+ vteapp: Add --cursor-shape option
+
+ Use --cursor-shape=block|ibeam|underline to test cursor shapes.
+
+ src/vteapp.c | 15 ++++++++++++++-
+ 1 files changed, 14 insertions(+), 1 deletions(-)
+
+commit f100847c373f8bfd881d0c9dae213c312334578c
+Author: Christian Persch <chpe gnome org>
+Date: Tue Dec 1 16:01:01 2009 +0100
+
+ Fix deprecation versions
+
+ src/vte.c | 58 +++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 29 insertions(+), 29 deletions(-)
+
+commit bbb00399fce8008fee378d31aa18a6b7c89d6c2b
+Author: Christian Persch <chpe gnome org>
+Date: Tue Dec 1 15:59:12 2009 +0100
+
+ Fix deprecation version of vte_terminal_get_padding
+
+ It's 0.24, not 0.22.
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit a34ea6198748e1621b8f148d81b424ca5312f818
+Author: Christian Persch <chpe gnome org>
+Date: Tue Dec 1 00:21:43 2009 +0100
+
+ Deprecate vte_terminal_get_padding
+
+ Part of bug #471920.
+
+ src/vte.c | 13 ++++++++++++-
+ src/vte.h | 2 ++
+ 2 files changed, 14 insertions(+), 1 deletions(-)
+
+commit 25a0fa44c92044b51296be94b9e1680d83270adc
+Author: Christian Persch <chpe gnome org>
+Date: Mon Nov 30 23:32:33 2009 +0100
+
+ Replace VTE_PAD_WIDTH with inner-border
+
+ Part of bug #471920.
+
+ src/vte-private.h | 1 -
+ src/vte.c | 123 ++++++++++++++++++++++++++++-------------------------
+ src/vteseq.c | 39 +++++++++++------
+ 3 files changed, 91 insertions(+), 72 deletions(-)
+
+commit a327292cbb073e7fb1a1298f614f980447f474fe
+Author: Christian Persch <chpe gnome org>
+Date: Mon Nov 30 23:06:01 2009 +0100
+
+ Add VteTerminal::inner-border style property
+
+ Part of bug #471920.
+
+ doc/reference/tmpl/vte.sgml | 5 ++++
+ src/vte-private.h | 3 ++
+ src/vte.c | 51 ++++++++++++++++++++++++++++++++++++++++++-
+ 3 files changed, 58 insertions(+), 1 deletions(-)
+
+commit 320902d84b99c58ab7d6ae82b65bb1311288fe75
+Author: Christian Persch <chpe gnome org>
+Date: Mon Nov 30 22:46:53 2009 +0100
+
+ Remove early return from style-set on non-realized widget
+
+ vte_terminal_set_font_full_internal copes just fine with this.
+
+ src/vte.c | 6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+commit 66d729e0b6d84d7cce204d5a3c9b8e6b98087f07
+Author: Christian Persch <chpe gnome org>
+Date: Mon Nov 30 22:39:55 2009 +0100
+
+ Chain up to style-set on parent class
+
+ src/vte.c | 7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+commit e42c9ce6035d1b38dce3ad815f1241c8d658acf2
+Author: Adi Roiban <adi roiban ro>
+Date: Fri Nov 27 04:41:22 2009 +0200
+
+ Update Romanian translations
+
+ po/ro.po | 35 ++++++++++++++++-------------------
+ 1 files changed, 16 insertions(+), 19 deletions(-)
+
+commit e25247345d6c075a131a90cb2c65471811a89c64
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sun Nov 22 15:24:28 2009 -0500
+
+ [interpret] Make the interpret app interactive
+
+ src/interpret.c | 147 ++++++++++++++++++++++++++++---------------------------
+ 1 files changed, 75 insertions(+), 72 deletions(-)
+
+commit 91448540f68235c7e1975fa604842b7872bc0f7a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Nov 9 19:53:08 2009 -0500
+
+ Bug 601265 - gnome-terminal assert failure: table.c:723:_vte_table_match
+
+ Fix handling of %% in termcap strings.
+ Remove the assertion.
+
+ src/table.c | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 59d08fab676cccbed8df7f8e9d9a39bab6e5413d
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Nov 9 19:04:46 2009 -0500
+
+ Fix warnings
+
+ src/iso2022.c | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 7556c58a6f21f846b97351ee2002e0b1d9236824
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Nov 9 18:55:16 2009 -0500
+
+ Handle destroying NULL termcap
+
+ src/vtetc.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit bdc0cca890297a44c86395e27ee51cdfef5f3961
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Nov 9 18:52:47 2009 -0500
+
+ Comment out unused code
+
+ src/caps.c | 2 ++
+ src/caps.h | 3 ---
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+commit 2035eb905aed8905e44781f3f64786fc84cd51c7
+Author: Peteris Krisjanis <pecisk gmail com>
+Date: Sun Nov 8 20:36:09 2009 +0200
+
+ Updated Latvian translation.
+
+ po/lv.po | 119 ++++++++++++++++++++++++++++++--------------------------------
+ 1 files changed, 58 insertions(+), 61 deletions(-)
+
+commit 9120f5ebfb9da0d74698f187ebb3046877b48c19
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sun Nov 8 12:04:16 2009 -0500
+
+ Revert "Bug 591648 - Don't clear the screen when switching to the alternate screen"
+
+ This reverts commit c6d9bf421f12911298d921314ced64661f6b63bd.
+ That commit introduced issues with less. Xterm doesn't have those
+ problems. Need to figure out what's going on before committing this
+ again.
+
+ src/vteseq.c | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+commit d45fdfa66452427ddf2a28fcaff148b0ead9d815
+Author: Thomas Thurman <tthurman gnome org>
+Date: Sun Nov 1 15:46:08 2009 -0500
+
+ Shavian translation
+
+ po/LINGUAS | 1 +
+ po/en shaw po | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 91 insertions(+), 0 deletions(-)
+
+commit be0f71823453ef07b6a8c4b6072bdd6b772c74b1
+Author: Christian Persch <chpe gnome org>
+Date: Thu Oct 29 18:59:52 2009 +0100
+
+ Use right modifier to printf gulong
+
+ Fixes a compiler warning.
+
+ src/ring.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 16db4039b0ea75454c6d51c1a685f3c9d16ffb11
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Oct 26 20:15:21 2009 -0400
+
+ Released 0.23.1
+
+ NEWS | 25 +++++++++++++++++++++++++
+ configure.in | 10 +++++-----
+ 2 files changed, 30 insertions(+), 5 deletions(-)
+
+commit a91d1adf8cbc3bf9755d1c211f490366ac47782c
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Oct 26 19:54:28 2009 -0400
+
+ Handle out-of-history remove's gracefully
+
+ They happen at times of resizing the terminal, etc.
+
+ Bug 597604 - gnome-terminal assert failure:
+ Vte:ERROR:/build/buildd/vte-0.22.0/./src/ring.c:530:_vte_ring_remove:
+ assertion failed: (_vte_ring_contains (ring, position))
+
+ src/ring.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit c621a6e8c4beffb2faf70404b843cf93def8cc1b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Oct 26 19:54:08 2009 -0400
+
+ [ring] Remove one assertion
+
+ Better dealing with corrupt history file, etc.
+
+ src/ring.c | 10 +++++++---
+ 1 files changed, 7 insertions(+), 3 deletions(-)
+
+commit 572f86ce2faf7532c30751e5c5f9893468550eba
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Oct 26 19:53:33 2009 -0400
+
+ Cosmetic
+
+ src/vte.c | 3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+commit af5726e0c546f9a4914dd80c03e11e1aadc034f2
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Oct 26 19:19:16 2009 -0400
+
+ Finish selection rework
+
+ Bug 598124 - The selection does not only change when the mousebutton is released
+
+ Only update selection when mouse-button is released (or focus lost).
+ Also, update PRIMARY when _select_all() is called.
+
+ src/vte.c | 27 +++++++++------------------
+ 1 files changed, 9 insertions(+), 18 deletions(-)
+
+commit de1bd5a05102d26f211d4f636aea2662c6b4e7fc
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Oct 26 17:01:55 2009 -0400
+
+ Bug 598090 - LMB Mouse up event not registered when opining context popup menu
+
+ src/vte.c | 101 ++++++++++++++++++++++++++++---------------------------------
+ 1 files changed, 46 insertions(+), 55 deletions(-)
+
+commit 471d90f670416fc2947b73637c549387eddb9435
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 21:01:49 2009 -0400
+
+ Bug 587463 - "select all"+copy from gnome-terminal includes lines no longer in scrollback
+
+ Previously it used to include lines that have fallen out of the history
+ buffer. Also, included one extra line at the end.
+
+ src/vte.c | 17 +++++++----------
+ 1 files changed, 7 insertions(+), 10 deletions(-)
+
+commit 370b72ba4759850b1fc9721d2afc0eb7b5383a5e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 20:54:26 2009 -0400
+
+ Bug 585370 - Incomplete disabling of python
+
+ Don't install python support files if python is disabled.
+
+ python/Makefile.am | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit eb11c5a2e5ec98c3ce1643ecc1b0274eff490a7e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 20:49:47 2009 -0400
+
+ Bug 597242 - libvte color and cursor glitches
+
+ Don't clear line when inserting smart tab
+
+ src/vteseq.c | 75 ++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 37 insertions(+), 38 deletions(-)
+
+commit c6d9bf421f12911298d921314ced64661f6b63bd
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 20:18:50 2009 -0400
+
+ Bug 591648 - Don't clear the screen when switching to the alternate screen
+
+ src/vteseq.c | 6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+commit 94c78423fca44652e9c837e00cf932e0cadb50de
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 20:12:14 2009 -0400
+
+ Bug 595445 - Motion notify events are not propagated to parent widget
+
+ Propagate motion-notify event to parent if not selecting.
+
+ src/vte.c | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+commit 03250451173cdc63aeb10f2f43ec7fe203082be1
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 20:07:06 2009 -0400
+
+ Revert "Copy PRIMARY only on button release"
+
+ This reverts commit ab66ce5ca7bc9948ffb5303156c3a2764656c3b7.
+ We need to fix bug 598090 before this can go in.
+
+ src/vte.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit ab66ce5ca7bc9948ffb5303156c3a2764656c3b7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 19:43:06 2009 -0400
+
+ Copy PRIMARY only on button release
+
+ Bug 598124 - The selection does not only change when the mousebutton is released
+
+ src/vte.c | 4 +---
+ 1 files changed, 1 insertions(+), 3 deletions(-)
+
+commit 7f2f2f6622e253d6ae623c310bc0be9079ba9cc6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 19:12:26 2009 -0400
+
+ Bug 569184 - vte generates unnecessary ioctl(I_FIND) kernel warnings
+
+ src/pty.c | 26 ++++++++++++++------------
+ 1 files changed, 14 insertions(+), 12 deletions(-)
+
+commit efaf2668d21f53ada2884157fde91c0b61025fc7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 19:01:38 2009 -0400
+
+ Fix even more warnings. We're mostly warning-clean now
+
+ src/pty.c | 3 +--
+ src/vteaccess.c | 4 ++--
+ src/vtedraw.c | 2 +-
+ 3 files changed, 4 insertions(+), 5 deletions(-)
+
+commit ac0722271e2f5e192e7be4000ba2ca7a2388954e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 18:54:59 2009 -0400
+
+ Fix more warnings
+
+ src/vte.c | 16 ++++++++--------
+ 1 files changed, 8 insertions(+), 8 deletions(-)
+
+commit 592ba42cbfa3e9e948226bcef832e7fd30f5fae7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 18:37:42 2009 -0400
+
+ Interpret and document negative number of scrollback lines as infinite
+
+ src/vte.c | 9 ++++++++-
+ 1 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 723aec79c9aa7c05b86278d0f304d0640ba9ee5e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Oct 23 18:19:40 2009 -0400
+
+ [ring] Use gulong instead of guint for row/col indices
+
+ Bug 599444 - Scrollback index type mess
+
+ src/buffer.h | 2 +-
+ src/ring.c | 68 ++++++++++++++++++++++++++--------------------------
+ src/ring.h | 34 +++++++++++++-------------
+ src/vte-private.h | 4 +-
+ src/vte.c | 10 ++++---
+ src/vterowdata.c | 20 +++++++-------
+ src/vterowdata.h | 12 ++++----
+ 7 files changed, 76 insertions(+), 74 deletions(-)
+
+commit 3e523aa2db487828a332703461e84d6a2cf4ef04
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Oct 22 14:07:51 2009 -0400
+
+ Bug 598814 - text.getText(0, -1) triggers assertion in vteaccess.c
+
+ src/vteaccess.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit b933212a00bf4f7437d5741b1eb9132d66b263fd
+Author: Nils-Christoph Fiedler <linux medienkompanie de>
+Date: Thu Oct 22 20:07:03 2009 +0200
+
+ Updated Low German translation
+
+ po/nds.po | 28 ++++++++++++++--------------
+ 1 files changed, 14 insertions(+), 14 deletions(-)
+
+commit 54f397c65855d015ffc71e646c55fb4b49208038
+Author: Christian Persch <chpe gnome org>
+Date: Thu Oct 22 00:20:59 2009 +0200
+
+ Ignore .pot files too
+
+ git.mk | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 90799855f499c4ab7dd66896bdde73ccc9e63253
+Author: Christian Persch <chpe gnome org>
+Date: Mon Aug 31 18:26:45 2009 +0200
+
+ Use AM_V_GEN here too
+
+ git.mk | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit fa3508f4957a8cfb6f6f22ef904d5c89f9d54f4a
+Author: Benjamin Berg <benjamin sipsolutions net>
+Date: Mon Oct 5 17:41:49 2009 +0200
+
+ Fix memory leaks in python bindings (bug #596739).
+
+ python/vte.override | 131 ++++++++++++++++++++++-----------------------------
+ 1 files changed, 56 insertions(+), 75 deletions(-)
+
+commit 7b30cf831aa9ae3e90ca99f016f11d6f6833ad2f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Oct 3 19:50:21 2009 -0400
+
+ Bug 597165 - void return in vte.c
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 3c22f5997c7e11f371c606520daff279d9b613e4
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 29 14:54:30 2009 -0400
+
+ Bug 587894 - the environment passing with python does no longer work
+
+ python/vte.override | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 1fc66f918330a053b85080756d8be165eb9f2708
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 28 15:42:12 2009 -0400
+
+ Release 0.22.2
+
+ NEWS | 10 ++++++++++
+ configure.in | 4 ++--
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+commit ea46cc66b0340dbe42b8b19b2691c824083ad033
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 28 14:25:42 2009 -0400
+
+ [a11y] Fix assertion failure
+
+ Reported here:
+ https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/435646
+
+ src/vteaccess.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 470030991fc3107e04934b1d3aa54d4428be7e2f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 28 13:57:26 2009 -0400
+
+ Bug 596444 - word-select includes \n when the word ends at the edge of the terminal
+
+ src/vte.c | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+commit b7083d3cdbe31305de2fa2974919b3d105f9b740
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sun Sep 27 17:06:22 2009 -0400
+
+ Bug 596460 - 0.22.1 kills vte based apps
+
+ Oops
+
+ src/vteseq.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 3e1738a4b962dc339cddd66a4504b198ae80fe38
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 25 17:18:16 2009 -0400
+
+ Release 0.22.1
+
+ NEWS | 10 ++++++++++
+ configure.in | 4 ++--
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+commit c87f6a7dc778bb75aa6defeceda3505028c0430e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 25 17:03:31 2009 -0400
+
+ [ring] Clear ring on _init
+
+ src/ring.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 73aba0352cd8034f69178459fc58347cedc74ec7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 25 16:55:08 2009 -0400
+
+ Bug 596365 - libvte crashes when issueing 'reset' in a terminal
+
+ src/vtestream-file.h | 9 +++++----
+ 1 files changed, 5 insertions(+), 4 deletions(-)
+
+commit cc6df5b1ebeba74c8c96d897bb5e8400ba429407
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 25 16:50:04 2009 -0400
+
+ [stream] Fix warnings
+
+ src/vtestream-base.h | 4 ++--
+ src/vtestream-file.h | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 6bafc718f231bac266c663724334999dfebac16e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Sep 24 23:15:07 2009 -0400
+
+ Bug 588033 - background tabs may lose lines off the bottom of the scrollback
+
+ src/vte.c | 33 ++++++++++++++++++---------------
+ 1 files changed, 18 insertions(+), 15 deletions(-)
+
+commit 3df8026931941ea6a5d41c932803f56ded862a00
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Sep 24 15:26:49 2009 -0400
+
+ Minor
+
+ src/vte-private.h | 1 +
+ src/vte.c | 7 ++++++-
+ src/vteseq.c | 14 +++++++-------
+ 3 files changed, 14 insertions(+), 8 deletions(-)
+
+commit 58d0affa8eea77353ef47c53923cd82c4203fe1a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Sep 24 15:22:30 2009 -0400
+
+ Bug 596163 - Doesn't display expected background color in ncurses apps
+
+ Revert semantic change introduced in 08caf3b174e68ba3d02f04c2595ad552cd50db30
+
+ src/ring.c | 25 +++----------------------
+ src/vte-private.h | 3 +++
+ src/vte.c | 30 +++++++++++++++++++++++++-----
+ src/vteseq.c | 31 +++++++++++--------------------
+ 4 files changed, 42 insertions(+), 47 deletions(-)
+
+commit 8ad12cd15ad4dc5e7eb40398e4b835af31f34c0f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Sep 24 14:25:47 2009 -0400
+
+ Bug 596011 - Problem compiling vte 0.22.0 on Solaris
+
+ src/vterowdata.c | 2 +-
+ src/vterowdata.h | 1 -
+ 2 files changed, 1 insertions(+), 2 deletions(-)
+
+commit ebd4dac2028edd77b38edfd5595dae01c529670d
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Sep 24 14:22:53 2009 -0400
+
+ Fix warning
+
+ src/vtestream-base.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit ca89fbb9d6fb8470d5e9150d8b4f35424893d1ca
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 21 17:01:17 2009 -0400
+
+ Release 0.22.0
+
+ NEWS | 4 ++++
+ configure.in | 10 +++++-----
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+commit df0350b20f91305e8c330226dd50ea1bee501271
+Author: Rajesh Ranjan <rranjan rranjan csb>
+Date: Sat Sep 19 00:11:04 2009 +0530
+
+ maithili update, translated by Sangeeta Kumari
+
+ po/LINGUAS | 1 +
+ po/mai.po | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 94 insertions(+), 0 deletions(-)
+
+commit 8658f78fce0ffad86c81ea2502047cdbc2d32669
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 18 02:18:07 2009 -0400
+
+ Release 0.21.7
+
+ NEWS | 5 +++++
+ configure.in | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 35cb9184e071c8629c953d5bf82542d88438552c
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 18 02:07:57 2009 -0400
+
+ Bug 595494 - Build Failure in vte 0.21.6
+
+ Revert "Do some symbol hiding"
+ This reverts commit 296a3cbaf6b69555f7d6cdc639dc57c51f2e2bba.
+
+ configure.in | 11 ------
+ src/caps.c | 4 +-
+ src/caps.h | 6 ++--
+ src/debug.c | 2 +-
+ src/debug.h | 4 +-
+ src/iso2022.h | 29 ++++++++-------
+ src/keymap.h | 46 ++++++++++++------------
+ src/matcher.h | 18 +++++-----
+ src/ring.h | 20 +++++-----
+ src/table.c | 2 +-
+ src/table.h | 20 +++++-----
+ src/trie.c | 2 +-
+ src/trie.h | 26 +++++++-------
+ src/vte-private.h | 64 +++++++++++++++++-----------------
+ src/vtebg.h | 14 ++++----
+ src/vteconv.h | 28 +++++++-------
+ src/vtedraw.c | 2 +-
+ src/vtedraw.h | 96 +++++++++++++++++++++++++-------------------------
+ src/vteint.h | 12 +++---
+ src/vtepangocairo.c | 2 +-
+ src/vtepangocairo.h | 2 +-
+ src/vteregex.h | 8 ++--
+ src/vterowdata.h | 18 +++++-----
+ src/vteskel.c | 2 +-
+ src/vteskel.h | 2 +-
+ src/vtestream.h | 15 ++++----
+ src/vtetc.c | 2 -
+ src/vtetc.h | 24 ++++++------
+ src/vtetree.c | 2 -
+ src/vtetree.h | 8 ++--
+ src/vteunistr.h | 8 ++--
+ 31 files changed, 243 insertions(+), 256 deletions(-)
+
+commit e6e66d4c5733b4c2e5efa686566bde3c76be4212
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 18 02:07:06 2009 -0400
+
+ [ring] Don't append fragment text
+
+ src/ring.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 2c0c2454deeef051f603dd32ef70d926f49b0b2f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 18 02:04:26 2009 -0400
+
+ [ring] Fix fragment width
+
+ src/ring.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 63ba68fef08838159a5922534f77f89a304f6c03
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 18 02:02:20 2009 -0400
+
+ Simplify tab handling
+
+ src/vteseq.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 09221372842d3954c10f69cd3c98680663c4d6d3
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Sep 17 11:19:29 2009 -0400
+
+ Release 0.21.6
+
+ NEWS | 6 ++++++
+ configure.in | 4 ++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 296a3cbaf6b69555f7d6cdc639dc57c51f2e2bba
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Sep 17 10:54:15 2009 -0400
+
+ Do some symbol hiding
+
+ configure.in | 11 ++++++
+ src/caps.c | 4 +-
+ src/caps.h | 6 ++--
+ src/debug.c | 2 +-
+ src/debug.h | 4 +-
+ src/iso2022.h | 29 +++++++--------
+ src/keymap.h | 46 ++++++++++++------------
+ src/matcher.h | 18 +++++-----
+ src/ring.h | 20 +++++-----
+ src/table.c | 2 +-
+ src/table.h | 20 +++++-----
+ src/trie.c | 2 +-
+ src/trie.h | 26 +++++++-------
+ src/vte-private.h | 64 +++++++++++++++++-----------------
+ src/vtebg.h | 14 ++++----
+ src/vteconv.h | 28 +++++++-------
+ src/vtedraw.c | 2 +-
+ src/vtedraw.h | 96 +++++++++++++++++++++++++-------------------------
+ src/vteint.h | 12 +++---
+ src/vtepangocairo.c | 2 +-
+ src/vtepangocairo.h | 2 +-
+ src/vteregex.h | 8 ++--
+ src/vterowdata.h | 18 +++++-----
+ src/vteskel.c | 2 +-
+ src/vteskel.h | 2 +-
+ src/vtestream.h | 15 ++++----
+ src/vtetc.c | 2 +
+ src/vtetc.h | 24 ++++++------
+ src/vtetree.c | 2 +
+ src/vtetree.h | 8 ++--
+ src/vteunistr.h | 8 ++--
+ 31 files changed, 256 insertions(+), 243 deletions(-)
+
+commit e28d3818f3b22fbdf61d721183419a4a010c8a01
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 16 18:09:35 2009 -0400
+
+ Remove expensive assertion
+
+ src/vte.c | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit ed455c5413f04c4688fd072acfd121b97636e023
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 16 15:42:19 2009 -0400
+
+ [doc] Set LC_ALL instead of LANG for our check scripts
+
+ doc/reference/check-doc-coverage.sh | 4 +++-
+ doc/reference/check-doc-syntax.sh | 3 ++-
+ git.mk | 2 +-
+ src/check-doc-syntax.sh | 3 ++-
+ 4 files changed, 8 insertions(+), 4 deletions(-)
+
+commit 2c75e3d01f970cae3d0856b04d532bfc90cdbf14
+Author: Niels-Christoph Fiedler <linux medienkompanie de>
+Date: Wed Sep 16 18:36:45 2009 +0200
+
+ Updated Low German translation
+
+ po/nds.po | 41 ++++++++++++++++++++---------------------
+ 1 files changed, 20 insertions(+), 21 deletions(-)
+
+commit 6946347f771d48393b4a1eb30dc52e40489582f1
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 15 21:26:22 2009 -0400
+
+ [ring] Fix assertion failure with resize
+
+ src/ring.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 109f77b663e4f87e4fb148ae26cd7a566de0cb61
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 15 21:22:53 2009 -0400
+
+ [ring] Simplify a bit
+
+ src/ring.c | 20 ++++++++++++++++----
+ 1 files changed, 16 insertions(+), 4 deletions(-)
+
+commit 5254710eb86008ab218f2ad0a61e631f3f6d6b39
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 15 21:17:51 2009 -0400
+
+ [ring/stream] Handle stream failure (out of space)
+
+ src/ring.c | 19 ++++++++++++++-----
+ src/vtestream-base.h | 6 +++---
+ src/vtestream-file.h | 15 ++++++---------
+ src/vtestream.h | 3 +--
+ 4 files changed, 24 insertions(+), 19 deletions(-)
+
+commit 40fef32bc16dc65a138fc7d46549e7ba14395159
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 15 20:10:05 2009 -0400
+
+ [ring] Store text as UTF-8 and RLE-encode the attrs
+
+ src/ring.c | 190 ++++++++++++++++++++++++++++++++++++++++++------------
+ src/ring.h | 10 +++-
+ src/vterowdata.h | 6 ++
+ 3 files changed, 164 insertions(+), 42 deletions(-)
+
+commit a1f8b0fb38291dd368b6a085aa2b6c5505024a2a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 15 15:47:39 2009 -0400
+
+ [stream] Fix bug in _head()
+
+ src/vtestream-file.h | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+commit f13c3b9f061d50b18475fdf05b54877031037b35
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 15 13:46:06 2009 -0400
+
+ [unistr] _vte_unistr_len()
+
+ src/vteunistr.c | 4 +---
+ src/vteunistr.h | 2 --
+ 2 files changed, 1 insertions(+), 5 deletions(-)
+
+commit 7cc48f44223ab69725f42399a58ebb0a26c9b2a5
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 14 16:09:40 2009 -0400
+
+ Add VteIntCell
+
+ src/vterowdata.h | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+commit d6330cf885ff25c6607e0624c03f00daf15bb68b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 14 16:07:17 2009 -0400
+
+ [stream] Add head()
+
+ src/vtestream-base.h | 7 +++++++
+ src/vtestream-file.h | 12 ++++++++++++
+ src/vtestream.h | 1 +
+ 3 files changed, 20 insertions(+), 0 deletions(-)
+
+commit 338d4a485f5b7609be1861aed6558693f90955c1
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 14 15:30:04 2009 -0400
+
+ [ring] Fix resize too
+
+ src/ring.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit d1cec534d59399f057399b63dfb819b407174171
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 14 15:27:25 2009 -0400
+
+ [ring] Fix ring according to stream semantics
+
+ src/ring.c | 126 ++++++++++++++++++++++++++++++++++++++++-------------------
+ 1 files changed, 85 insertions(+), 41 deletions(-)
+
+commit ea7ee1b1cbfe58faab7903cf354b377190dfb144
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 14 15:24:57 2009 -0400
+
+ [stream] Fix new_page implementation
+
+ src/vtestream-file.h | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit 1ea043ed2df31522c670b6bfba8cf1c9537ce61e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 14 15:12:43 2009 -0400
+
+ [stream] Handle eof situation
+
+ src/vtestream-file.h | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 68cce180dd903aacbbec11dca8f89be0cf278e92
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 14 15:04:51 2009 -0400
+
+ [stream] Add a reset() method
+
+ src/vtestream-base.h | 7 +++
+ src/vtestream-file.h | 104 ++++++++++++++++++++++++++++++--------------------
+ src/vtestream.h | 1 +
+ 3 files changed, 71 insertions(+), 41 deletions(-)
+
+commit efe25381cca2767423f1c7061dcda1a0be87e59b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 14 13:31:27 2009 -0400
+
+ [stream] s/trunc/truncate/
+
+ src/vtestream-base.h | 6 +++---
+ src/vtestream-file.h | 4 ++--
+ src/vtestream.h | 2 +-
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+commit 2eefab893485bbea1d0e2fb62e6f6122314d1959
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 14 13:07:26 2009 -0400
+
+ [stream] Fix returned offset
+
+ src/vtestream-file.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit a88338e07429a5ce1fc4cb081448333c699f7f23
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 12 19:40:02 2009 -0400
+
+ [ring] Port to VteStream
+
+ Not optimized, simple file-based non-compact storage
+
+ src/ring.c | 668 +++++++++++---------------------------------------
+ src/ring.h | 48 ++---
+ src/vtestream-base.h | 31 +++-
+ src/vtestream-file.h | 17 +-
+ src/vtestream.h | 8 +
+ 5 files changed, 201 insertions(+), 571 deletions(-)
+
+commit a63c3d687408a9e21535df84855e00564c4f0905
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 12 18:22:16 2009 -0400
+
+ [stream] Add file stream
+
+ src/Makefile.am | 2 +
+ src/{vtestream.c => vtestream-base.h} | 18 +--
+ src/vtestream-file.h | 215 +++++++++++++++++++++++++++++++++
+ src/vtestream.c | 31 +----
+ src/vtestream.h | 6 +-
+ 5 files changed, 234 insertions(+), 38 deletions(-)
+
+commit 9de9d2de44d4723935176c71f8f09a90f15e678a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 12 17:15:04 2009 -0400
+
+ [stream] Start vte stream design
+
+ New buffer coming!
+
+ src/Makefile.am | 2 ++
+ src/vtestream.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vtestream.h | 32 ++++++++++++++++++++++++++++++++
+ 3 files changed, 89 insertions(+), 0 deletions(-)
+
+commit 9ad227f5f57d93e86b8d7ecf5b73bdf3bdf6ced7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 12 15:38:52 2009 -0400
+
+ [ring] Fix typo
+
+ src/ring.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit a532b2950e748ca37b0b429a7255d95514e212c8
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Sep 10 15:59:50 2009 -0400
+
+ [ring] Move VteRowData into its own file
+
+ src/Makefile.am | 2 +
+ src/ring.c | 141 +-----------------------------------
+ src/ring.h | 138 +-----------------------------------
+ src/vterowdata.c | 164 ++++++++++++++++++++++++++++++++++++++++++
+ src/{ring.h => vterowdata.h} | 72 ++-----------------
+ src/vteunistr.c | 3 +-
+ 6 files changed, 177 insertions(+), 343 deletions(-)
+
+commit 4e02748b395e2086a4a3f897868bc789875e770d
+Author: Carles Ferrando <carles ferrando gmail com>
+Date: Mon Sep 14 13:39:11 2009 +0200
+
+ Added Catalan (Valencian) translation
+
+ po/LINGUAS | 1 +
+ po/ca valencia po | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 158 insertions(+), 0 deletions(-)
+
+commit 6f8d5b1da087a741c6cf6bbbf27d5a46d66720c8
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Sep 10 12:37:07 2009 -0400
+
+ [ring] Limit line length to 0xFFFF
+
+ Make rowdata structures a bit more compact
+
+ src/ring.c | 29 +++++++++++++++++++++--------
+ src/ring.h | 6 +++---
+ 2 files changed, 24 insertions(+), 11 deletions(-)
+
+commit d41ff743ec9bb287c3bd2d37f514f259503d03cc
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 22:13:36 2009 -0400
+
+ [ring] Add VteRingChunkWritable
+
+ src/ring.c | 96 ++++++++++++++++++++++++++++++------------------------------
+ src/ring.h | 18 ++++++-----
+ 2 files changed, 58 insertions(+), 56 deletions(-)
+
+commit c4c49bfa4e1e52d3653918d873ad64015e8e8bdf
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 21:59:56 2009 -0400
+
+ [ring] Remove more unused code
+
+ src/ring.c | 63 ++++++++++++++++++++----------------------------------------
+ 1 files changed, 21 insertions(+), 42 deletions(-)
+
+commit 20f57866d5b4d47ae1ee66cb9e0156d6d70e321e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 21:56:53 2009 -0400
+
+ [ring] More cleanup
+
+ src/ring.h | 6 ++----
+ 1 files changed, 2 insertions(+), 4 deletions(-)
+
+commit cea0b21adb11d59f2e1e4c649f6cbf5e1cfacfed
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 21:54:42 2009 -0400
+
+ [ring] Reshuffle a bit more
+
+ src/ring.c | 74 ++++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 38 insertions(+), 36 deletions(-)
+
+commit b367d568d57ae93b3e84c0a80302734aa2d2f0ee
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 21:33:00 2009 -0400
+
+ [ring] Shuffle code around
+
+ src/ring.c | 231 ++++++++++++++++++++++++++++++------------------------------
+ 1 files changed, 116 insertions(+), 115 deletions(-)
+
+commit fc9a6daf6394642e17e8aa76cbe661f0f08e8a68
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 21:26:46 2009 -0400
+
+ [ring] Separate VteRowData and VteCompactRowData
+
+ src/ring.c | 91 +++++++++++++++++++++++++++++++----------------------------
+ src/ring.h | 24 ++--------------
+ 2 files changed, 51 insertions(+), 64 deletions(-)
+
+commit 17840c4a141747c241fd3439b98e683a8f84737b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 21:11:29 2009 -0400
+
+ [ring] Remove stale comment
+
+ src/ring.h | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit d77e97e9cff572ba0e325335dd4a5654676bc5fb
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 21:10:33 2009 -0400
+
+ [ring] Rename vtecellattr to VteCellAttr
+
+ src/ring.h | 10 +++++-----
+ src/vte.c | 2 +-
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+commit a24f3bd3a7f9830245d4382df48f7063fd2340ea
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 21:09:26 2009 -0400
+
+ [ring] Move row attrs into a struct
+
+ src/ring.h | 11 ++++++++++-
+ src/vte.c | 8 ++++----
+ src/vteseq.c | 8 ++++----
+ 3 files changed, 18 insertions(+), 9 deletions(-)
+
+commit d0b03824d508d078accdcba7b1cc17a94d18f5ed
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 21:04:15 2009 -0400
+
+ [ring] Further cleanup of cell array
+
+ src/ring.c | 28 ++++++++++++----------------
+ 1 files changed, 12 insertions(+), 16 deletions(-)
+
+commit 3b5177f934c4bba89165e46521192766f13ed655
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 20:56:40 2009 -0400
+
+ [ring] Rename
+
+ src/ring.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 7d4895e5ad9d3153086596e3109e871fa027aea6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 20:53:46 2009 -0400
+
+ [ring] Remove spare chunk caching
+
+ src/ring.c | 77 ++++-------------------------------------------------------
+ 1 files changed, 6 insertions(+), 71 deletions(-)
+
+commit c7ce2e2fc72c086352fe44508ac97db390cdd591
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Sep 9 20:48:54 2009 -0400
+
+ [ring] Remove custom cell array allocator
+
+ src/ring.c | 142 ++++++++----------------------------------------------------
+ 1 files changed, 18 insertions(+), 124 deletions(-)
+
+commit a37a6377089b5f856043b3660a8380326f8c89a8
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 11:34:36 2009 -0400
+
+ Release 0.21.5
+
+ NEWS | 6 ++++++
+ configure.in | 4 ++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit f42c894d767ecf9a5a43355d5b10c132945f66e8
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 03:08:16 2009 -0400
+
+ Simplify access
+
+ src/vte.c | 174 +++++++++++++++++++++++++++++++------------------------------
+ 1 files changed, 89 insertions(+), 85 deletions(-)
+
+commit ecc159908714dfa325106de5a2b5fb01bd1dc09b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 03:04:02 2009 -0400
+
+ [ring] Reinstate attr.fragment
+
+ Fixes the last bug in the new ring. Yay!
+
+ src/ring.h | 6 ++----
+ src/vte-private.h | 1 +
+ src/vte.c | 41 ++++++++++++++++++++++-------------------
+ src/vteseq.c | 6 +++---
+ 4 files changed, 28 insertions(+), 26 deletions(-)
+
+commit ccac54d0217e0c13d69012f5fa407d2e0fe5d53a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 02:56:51 2009 -0400
+
+ [ring] Whitespace
+
+ src/ring.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 413abad8f245b0db38cfe18fa23f322579c7a906
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 02:54:01 2009 -0400
+
+ [ring] Fix signed issues
+
+ src/ring.c | 24 ++++++++++++------------
+ src/ring.h | 2 +-
+ 2 files changed, 13 insertions(+), 13 deletions(-)
+
+commit 1db31d7d1168294f830b5b0ad0c57a56cf679dc1
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 02:50:05 2009 -0400
+
+ [ring] Const correctness
+
+ src/ring.c | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+commit 3300760dad390e6299bd21e25521c5e12f5534cd
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 02:43:34 2009 -0400
+
+ [ring] Rename a bit
+
+ src/ring.c | 44 ++++++++++++++++++++++----------------------
+ 1 files changed, 22 insertions(+), 22 deletions(-)
+
+commit e2d2ca6888fedcbdc5d61c58d10207dfeebb7000
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 02:24:52 2009 -0400
+
+ [ring] Free all spare chunks when all rings are destroyed
+
+ src/ring.c | 70 ++++++++++++++++++++++++++++++++++++++---------------------
+ 1 files changed, 45 insertions(+), 25 deletions(-)
+
+commit 1972a3614be3f7453a13a48d0ab7013a23d83f09
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 02:24:42 2009 -0400
+
+ [ring] Reduce free chunks from 10 to 4
+
+ src/ring.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 9ba03097d00059dd5d833053b5cf7f06e22a8f1f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 02:10:07 2009 -0400
+
+ [ring] Fix chunk disposal
+
+ src/ring.c | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 0f97ca6162d6219040f0273626f88044eecabee5
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 02:05:38 2009 -0400
+
+ [ring] Fix bytes_left calculation
+
+ src/ring.c | 29 +++++++++++++++--------------
+ src/ring.h | 8 ++------
+ 2 files changed, 17 insertions(+), 20 deletions(-)
+
+commit 284b9bbb884d36e65af13e968304b74ddb5be1c7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 01:42:25 2009 -0400
+
+ [ring] Invalidate cache
+
+ src/ring.c | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+commit c00499dd53ef5ee43ec39fa5823ffcb0659b51e6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 01:25:40 2009 -0400
+
+ [ring] Optimize attribute bitfield placement
+
+ src/ring.c | 6 +++---
+ src/ring.h | 9 ++++++---
+ 2 files changed, 9 insertions(+), 6 deletions(-)
+
+commit 3ea50a543462262407a54b7e0860c5121c96655e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 01:03:42 2009 -0400
+
+ [ring] Add debug output
+
+ src/ring.c | 10 ++++++++++
+ 1 files changed, 10 insertions(+), 0 deletions(-)
+
+commit c35dc0dab0da6318428b6d049e20c0c90f80ca00
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 00:56:00 2009 -0400
+
+ [ring] Fix insert at start
+
+ src/ring.c | 83 +++++++++++++++++++++++++++++++++++++++++------------------
+ 1 files changed, 57 insertions(+), 26 deletions(-)
+
+commit ec5229042aee27c074b8d700dad5058f3b50872d
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Sep 8 00:27:52 2009 -0400
+
+ [ring] Move view cache row to ring
+
+ src/ring.c | 72 +++++++++++++++++++++++++++++------------------------------
+ src/ring.h | 11 ++++-----
+ 2 files changed, 40 insertions(+), 43 deletions(-)
+
+commit 36ad6fac029ccb29465434d46135559d9f5d5584
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 22:59:35 2009 -0400
+
+ [ring] Implement uncompact
+
+ src/ring.c | 203 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
+ src/ring.h | 7 ++-
+ 2 files changed, 185 insertions(+), 25 deletions(-)
+
+commit eb0444e52d7995f50326109cd6d4cf254b2a4774
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 22:05:08 2009 -0400
+
+ Fix ring access const correctness
+
+ src/ring.c | 14 +++++++++++-
+ src/ring.h | 14 +++++++++--
+ src/vte.c | 65 ++++++++++++++++++++++++++++++++++-----------------------
+ src/vteseq.c | 24 ++++++++++----------
+ 4 files changed, 75 insertions(+), 42 deletions(-)
+
+commit f214a7b86a3a3f37fbcef457bdbe81ac08c302f6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 21:37:31 2009 -0400
+
+ [ring] Minor
+
+ src/ring.h | 6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+commit 29bceb6074fa708d37f6901073648b146f8c98e7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 21:30:26 2009 -0400
+
+ [ring] Cleanup warnings
+
+ src/ring.c | 26 ++++++++++++++------------
+ src/ring.h | 7 +++++--
+ 2 files changed, 19 insertions(+), 14 deletions(-)
+
+commit 99b5708db5a7bf04e8cf12195ed2b4309b199bf9
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 21:25:08 2009 -0400
+
+ [ring] Ease default attr computations
+
+ src/ring.c | 6 +++---
+ src/ring.h | 40 ++++++++++++++++++++++++----------------
+ src/vte.c | 6 +++---
+ src/vteseq.c | 2 +-
+ 4 files changed, 31 insertions(+), 23 deletions(-)
+
+commit 1cd88dc0ba39d9c76e165c917510280cf22513a7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 21:16:30 2009 -0400
+
+ [ring] Allow one more room in insert such that position doesn't fall off
+
+ src/ring.c | 7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+commit 5b559865f8237b4aa77c513a3d5847bf0a0e01aa
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 21:00:13 2009 -0400
+
+ [ring] Enlarge initial writable size
+
+ src/ring.c | 8 +++++---
+ src/ring.h | 2 ++
+ src/vte-private.h | 1 -
+ 3 files changed, 7 insertions(+), 4 deletions(-)
+
+commit c40b3e92c52057dc84be0c99b57fe7af07bffecd
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 20:09:04 2009 -0400
+
+ [ring] Store max_rows
+
+ src/ring.c | 74 ++++++++++++++++++++++++++++++++++--------------------------
+ 1 files changed, 42 insertions(+), 32 deletions(-)
+
+commit f24dbdf32f0456b5a0e949aaf2068680ccf1feb7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 20:07:38 2009 -0400
+
+ [ring] Almost working
+
+ src/ring.c | 56 +++++++++++++++++++++++++++++++++-----------------------
+ 1 files changed, 33 insertions(+), 23 deletions(-)
+
+commit 05d1c8b063fb9c601bf20b23475dc395221c8f5b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 19:55:14 2009 -0400
+
+ Fix initial scrollback size
+
+ src/vte.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 024c67a1a12e1e82b65cc53b8b0adc89a689e53f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 19:51:50 2009 -0400
+
+ Fix comment
+
+ src/ring.c | 1 +
+ src/vte-private.h | 3 +--
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 3e1ea9728a313c296fbda053359152192f5305e7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 18:59:02 2009 -0400
+
+ [ring] Compacting goodness; disabled now; eats babies
+
+ src/ring.c | 282 ++++++++++++++++++++++++++++++++++++++++++++++++------------
+ src/ring.h | 20 ++++-
+ 2 files changed, 243 insertions(+), 59 deletions(-)
+
+commit 91697b796a9c0f1e8e20a6ae18139556f10cb5ca
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 17:01:12 2009 -0400
+
+ [ring] Closer to working
+
+ src/ring.c | 191 +++++++++++++++++++++++++++++++++++++-----------------------
+ 1 files changed, 118 insertions(+), 73 deletions(-)
+
+commit 68d17bacfd7b7127ff03497df555f7274f60b604
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 15:36:54 2009 -0400
+
+ [ring] Overhaul. Not working right now.
+
+ src/ring.c | 268 +++++++++++++++++++++++++++++++++++++++--------------
+ src/ring.h | 56 +++++++++---
+ src/vte-private.h | 2 +-
+ src/vte.c | 16 ++--
+ 4 files changed, 249 insertions(+), 93 deletions(-)
+
+commit de3f63efab64408c2eb3b0e02e358063769c9396
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 01:30:44 2009 -0400
+
+ [ring] Keep ring->next instead of ring->length
+
+ src/ring.c | 45 ++++++++++++++++++++-------------------------
+ src/ring.h | 8 ++++----
+ 2 files changed, 24 insertions(+), 29 deletions(-)
+
+commit 75809e632eb097c8a96c855781677cee560978eb
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Sep 7 01:15:55 2009 -0400
+
+ Fix palette handling
+
+ src/ring.h | 1 +
+ src/vte-private.h | 2 +-
+ src/vte.c | 5 +++--
+ 3 files changed, 5 insertions(+), 3 deletions(-)
+
+commit 294b146da1c74ae16d2fd97a986a187d7e2a280d
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sun Sep 6 00:08:54 2009 -0400
+
+ [ring] Simplify insert/remove
+
+ src/ring.c | 24 ++++++++----------------
+ 1 files changed, 8 insertions(+), 16 deletions(-)
+
+commit 0a855cc5c15f986607e9d2b1c77801792db796fc
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 23:58:33 2009 -0400
+
+ [ring] Allocate main row array in powers of two
+
+ This way we can use a bitwise-and to index, instead of int division
+
+ src/ring.c | 39 +++++++++++++++++++++++++--------------
+ src/ring.h | 4 ++--
+ 2 files changed, 27 insertions(+), 16 deletions(-)
+
+commit b86951330fa9cbb8341aec7ca2fc0be7be4596c1
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 23:35:37 2009 -0400
+
+ [ring] Assert struct sizes
+
+ src/ring.h | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit e36788647962b2632e8f241b830e2bb18f173889
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 23:32:58 2009 -0400
+
+ Add static assertions
+
+ src/debug.h | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 475606d988458605f2f79e649dabe335e3a0453a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 23:09:34 2009 -0400
+
+ [ring] Remove glong in favor of guint
+
+ src/ring.c | 64 ++++++++++++++++++++++++++++++------------------------------
+ src/ring.h | 24 +++++++++++-----------
+ 2 files changed, 44 insertions(+), 44 deletions(-)
+
+commit 086cbf79dd47cbecf2b9afe777f940acf1ae19ef
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 23:06:58 2009 -0400
+
+ [ring] Minor cleanup
+
+ src/ring.c | 25 ++++++++++++++++---------
+ src/ring.h | 16 ++++++++--------
+ src/vte.c | 4 ++--
+ 3 files changed, 26 insertions(+), 19 deletions(-)
+
+commit 08972ae6e02c65b5ad0442674b6c6f4b938ed17f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 23:00:53 2009 -0400
+
+ [ring] Remove unused macro
+
+ src/ring.h | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit 86211afa952dc878b84ce1b7f14b381fcd91991f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 22:55:51 2009 -0400
+
+ [ring] Tune pool allocation to allocate in powers of two in bytes
+
+ src/ring.c | 12 +++++++-----
+ 1 files changed, 7 insertions(+), 5 deletions(-)
+
+commit ddfef75afd62dc324ec033f57594cad70d0ed34e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 22:41:58 2009 -0400
+
+ [ring] Rename
+
+ src/ring.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 99f63f1da37c343064175572b5b53b5193bbcb3f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 22:24:26 2009 -0400
+
+ [ring] Set minimum row size for allocation to 80
+
+ src/ring.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 865e8e2d981873cfd1d98535c6666f25a8315b22
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 22:23:44 2009 -0400
+
+ [ring] Add debug messages to new code
+
+ src/ring.c | 24 +++++++++++++++++++-----
+ 1 files changed, 19 insertions(+), 5 deletions(-)
+
+commit e92865dce49fdcec5181add1a2be36fa57fad3af
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 22:06:56 2009 -0400
+
+ Minor cleanup
+
+ src/debug.h | 2 +-
+ src/ring.c | 1 +
+ 2 files changed, 2 insertions(+), 1 deletions(-)
+
+commit 7b7bea551750d0ff5103fd1e2de969b0d093812c
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 21:06:53 2009 -0400
+
+ [ring] Use large-size pools for rowdata allocation
+
+ src/ring.c | 155 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ 1 files changed, 141 insertions(+), 14 deletions(-)
+
+commit c6b2621d549b51dc9499673717d1125437576963
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 20:13:23 2009 -0400
+
+ Rename vtecells to VteCells as well
+
+ src/ring.c | 20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
+commit 2ce6acc60f48a0ce929a222a49957e90c0b8e077
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 20:12:14 2009 -0400
+
+ Rename vtecell to VteCell as it's not a value type
+
+ src/ring.c | 19 ++++++++++---------
+ src/ring.h | 20 ++++++++++----------
+ src/vte-private.h | 6 +++---
+ src/vte.c | 50 +++++++++++++++++++++++++-------------------------
+ src/vteseq.c | 16 ++++++++--------
+ 5 files changed, 56 insertions(+), 55 deletions(-)
+
+commit 064822346af55ce36e0a7e82b38bf235e9fb394f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Sep 5 00:06:38 2009 -0400
+
+ [ring] Remove GArray for rowcell allocation
+
+ A very dumb allocator right now. To be optimized.
+
+ src/ring.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ src/ring.h | 47 ++++++++++++----------
+ 2 files changed, 140 insertions(+), 31 deletions(-)
+
+commit fb9a0d3727c12c0dd5de384335050bb416d33815
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 4 21:20:30 2009 -0400
+
+ Remove chunk mutex
+
+ We always get called in from the mainloop and hence are essentially
+ single-threaded.
+
+ src/vte.c | 7 -------
+ 1 files changed, 0 insertions(+), 7 deletions(-)
+
+commit 9f486dfe6b1c71073ee85fd092cb375842a98f42
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Sep 4 21:17:13 2009 -0400
+
+ Bug 594025 - crash in Terminal: running cat /dev/urandom...
+
+ Bug 593795 - crash in Terminal: By mistake cat'ing a bin...
+ Remove assert. G_DISABLE_ASSERT has been in use for years...
+ None of the asserts in place right now have been tested much :(
+
+ src/vte.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit f5f3e586ec83c8da5b473164669f501de6fa281a
+Author: Og B. Maciel <ogmaciel gnome org>
+Date: Sun Aug 30 12:11:29 2009 -0400
+
+ Updated mailing list address.
+
+ po/pt_BR.po | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 00566ad0acd9f4a959f1d91935741f9ef07ca4fe
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Aug 28 14:03:50 2009 -0400
+
+ Enable silent rules by default
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit cbb3071086f9bc173b9d8b9d3f79f87bae256c6a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 27 17:10:19 2009 -0400
+
+ Remove cell.attr.fragment and use cell.c == FRAGMENT instead
+
+ src/ring.h | 6 +++---
+ src/vte.c | 42 +++++++++++++++++++-----------------------
+ src/vteseq.c | 6 +++---
+ 3 files changed, 25 insertions(+), 29 deletions(-)
+
+commit 71a6cf23eeb0237858b7b769074ed9c5bb564c3d
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 27 17:07:53 2009 -0400
+
+ [ring] Fix brokenness with macro implementation
+
+ src/ring.h | 13 +++++++++----
+ 1 files changed, 9 insertions(+), 4 deletions(-)
+
+commit 96793d9716c658b5d9ee4c87846c8e6e7b1c26c7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 27 16:37:27 2009 -0400
+
+ Minor cleanup
+
+ src/vte.c | 88 +++++++++++++++++++++++++++---------------------------------
+ 1 files changed, 40 insertions(+), 48 deletions(-)
+
+commit f73e04e92c092f4ce791df2008bb3078847f4805
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 27 00:23:35 2009 -0400
+
+ Remove ring from test programs
+
+ src/Makefile.am | 7 ++-----
+ 1 files changed, 2 insertions(+), 5 deletions(-)
+
+commit 5a2879bcc28c703b4e120f57d750d47b7b27a8f4
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 27 00:14:16 2009 -0400
+
+ [ring] Swap rows instead of moving
+
+ Avoids lots of free/new's
+
+ src/ring.c | 17 ++++++-----------
+ 1 files changed, 6 insertions(+), 11 deletions(-)
+
+commit 05f07e28d7f2b886ee924dd37164a7dfb78d0bb3
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 27 00:10:47 2009 -0400
+
+ [ring] Simplify more
+
+ src/ring.c | 21 +++++++++++++++------
+ 1 files changed, 15 insertions(+), 6 deletions(-)
+
+commit a2c132d6ffa528cbfde0ccd0ed35e08900182ffe
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 26 18:45:36 2009 -0400
+
+ Rename _vte_row_data_set_length() to _vte_row_data_shrink()
+
+ src/ring.h | 4 ++--
+ src/vte.c | 15 +++------------
+ src/vteseq.c | 23 ++++++++++-------------
+ 3 files changed, 15 insertions(+), 27 deletions(-)
+
+commit 8cb3e376efd04a92570fec8059f6c634e80603c7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 26 18:32:03 2009 -0400
+
+ Simplify a bit
+
+ src/vte.c | 3 +--
+ src/vteseq.c | 6 ++----
+ 2 files changed, 3 insertions(+), 6 deletions(-)
+
+commit 4c8cbb00831c40ed62b29da7fe9ae2734dcb5925
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 26 18:19:12 2009 -0400
+
+ Add basic_cell with default cell attrs
+
+ src/ring.c | 2 +-
+ src/ring.h | 104 +++++++++++++++++++++++++++++++++-------------------
+ src/vte-private.h | 14 ++-----
+ src/vte.c | 72 ++++++++++++++----------------------
+ src/vteseq.c | 18 +++++-----
+ 5 files changed, 108 insertions(+), 102 deletions(-)
+
+commit d3f87acad23aa0b50f2d15756ccd12e173ddbcf7
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 26 01:06:27 2009 -0400
+
+ Abstract rowdata functions away from GArray
+
+ src/ring.c | 17 +++---
+ src/ring.h | 31 ++++++++++-
+ src/vte.c | 171 +++++++++++++++++++++++++---------------------------------
+ src/vteseq.c | 146 ++++++++++++++-----------------------------------
+ 4 files changed, 153 insertions(+), 212 deletions(-)
+
+commit 545fb3c59298058a682879545ff52230054642a6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 26 00:24:09 2009 -0400
+
+ [ring] Simplify insert and remove even more
+
+ src/ring.c | 41 ++++++++++++++++++++++++++++++-----------
+ src/vte.c | 24 ++++--------------------
+ src/vteseq.c | 44 ++++++++++++++------------------------------
+ 3 files changed, 48 insertions(+), 61 deletions(-)
+
+commit 681db91a7772a77b903163f6985330a6f24ef977
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 26 00:12:21 2009 -0400
+
+ Simplify insert
+
+ src/vte.c | 11 ++---------
+ src/vteseq.c | 11 ++---------
+ 2 files changed, 4 insertions(+), 18 deletions(-)
+
+commit e95ee843ef2954635ca3405f8de009fcb2095304
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 26 00:08:10 2009 -0400
+
+ Simplify remove
+
+ src/ring.c | 4 ++--
+ src/vte.c | 3 +--
+ src/vteseq.c | 3 +--
+ 3 files changed, 4 insertions(+), 6 deletions(-)
+
+commit 54e717f081f365ac0e9b2a9947e50893c7666807
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 26 00:00:17 2009 -0400
+
+ Simplify code
+
+ src/vte.c | 9 +++++----
+ src/vteseq.c | 21 ++++++---------------
+ 2 files changed, 11 insertions(+), 19 deletions(-)
+
+commit ffcb06a6bc2bf1d66eadf2e708ec444cf612f0c0
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 23:47:07 2009 -0400
+
+ [ring] Add safeguards to remove()
+
+ src/ring.c | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 41f2912b527d3aa69ac3e70e9146f8ee171c1a9b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 23:42:06 2009 -0400
+
+ [ring] Simplify insert
+
+ src/ring.c | 49 +++++++++++--------------------------------------
+ 1 files changed, 11 insertions(+), 38 deletions(-)
+
+commit 684e66aeb8597e9f54fda6361ef9e337fdb44eda
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 23:26:22 2009 -0400
+
+ [ring] Don't free items when inserting, reuse them
+
+ src/ring.c | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit 717f5bc3422dd3b4a838adec7a65e183e2843702
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 23:23:12 2009 -0400
+
+ [ring] Update docs
+
+ src/ring.c | 5 ++---
+ 1 files changed, 2 insertions(+), 3 deletions(-)
+
+commit 10220e808e6a9406fd96792f14ebcb0e8474ba13
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 23:20:48 2009 -0400
+
+ [ring] Add _vte_ring_move()
+
+ src/ring.c | 30 +++++++++++++-----------------
+ 1 files changed, 13 insertions(+), 17 deletions(-)
+
+commit dd06b763d657a5f4f95b30c259eb08e0a6a9118e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 19:30:29 2009 -0400
+
+ [ring] Cleanup debug messages
+
+ src/ring.c | 39 ++++++++-------------------------------
+ 1 files changed, 8 insertions(+), 31 deletions(-)
+
+commit 1c231e40714b9224da37c4aa0352e72a9a35f9e6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 19:08:37 2009 -0400
+
+ Release 0.21.4
+
+ NEWS | 5 +++++
+ configure.in | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit ea6488d28be389b047bd0aa2ba69e2a736266a71
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 19:06:52 2009 -0400
+
+ Remove another stale assert()
+
+ fatalerror! Why did you disable asserts!
+
+ src/vtepangocairo.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit a74e9fb90ba1068a29bc83cc1a33c2d9e4cc68c3
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 18:56:58 2009 -0400
+
+ [iso2022] Oops, use the right map decoding function
+
+ src/iso2022.c | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+commit 8ad1d698f5053aa748339e602e7f823169def211
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 18:52:09 2009 -0400
+
+ Release 0.21.3
+
+ NEWS | 5 +++++
+ configure.in | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit f0f873a6f0944dcae012d1c4b12fe7a582afd474
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 18:49:23 2009 -0400
+
+ [ring] Remove newly-added asserts
+
+ Ok, the ring should be functionally working again now.
+
+ src/ring.c | 11 ++++-------
+ 1 files changed, 4 insertions(+), 7 deletions(-)
+
+commit c84078230b8a9078843cf027846e16d25555128f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 18:40:28 2009 -0400
+
+ [ring] Remove insert_preserve(), just call insert()
+
+ I changed the semantics of insert_preserve() and broke vim. Reading
+ the old code however, it seems equivalent functionally to insert().
+ Just use that.
+
+ src/ring.c | 44 --------------------------------------------
+ src/ring.h | 1 -
+ src/vte.c | 4 ++--
+ 3 files changed, 2 insertions(+), 47 deletions(-)
+
+commit e8d90d684f158d3ad0b4013685fa65a84a49bcd9
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 18:40:09 2009 -0400
+
+ Remove assert
+
+ I just enabled g_assert, so some old disabled asserts are failing now.
+
+ src/keymap.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit 43190598174cfc92e74f72e2c34587ca182c3eae
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 18:17:59 2009 -0400
+
+ Fix alternate screen default size, again
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit ce4926abf990fa10d9172c058b2248fee69b75d5
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 18:11:54 2009 -0400
+
+ Fix initial size of scrollback in alternate screen
+
+ src/debug.h | 1 +
+ src/vte.c | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletions(-)
+
+commit edea8adf1a042a5055dac56b97e78540eba6250d
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 18:11:31 2009 -0400
+
+ Really fix the ring this time
+
+ src/ring.c | 25 +++++++++++++++----------
+ 1 files changed, 15 insertions(+), 10 deletions(-)
+
+commit 674f91ff949f532b7037c9aba658ad5ea3330a91
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 18:11:05 2009 -0400
+
+ Remove G_DISABLE_ASSERT
+
+ src/Makefile.am | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit 689990df0e51ee96b434c1f98e193de537d3a395
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 13:39:57 2009 -0400
+
+ Release 0.21.2
+
+ NEWS | 5 +++++
+ configure.in | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit c4aff049937050c58da80ec3c789d3b35abbffd0
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Aug 25 13:37:08 2009 -0400
+
+ Bug 592990 - gnome terminal crashes with glibc detected
+
+ src/ring.c | 5 ++---
+ 1 files changed, 2 insertions(+), 3 deletions(-)
+
+commit 6db87763b28687f468ca881b20a543dd7487c3dd
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Aug 24 19:11:27 2009 -0400
+
+ Release 0.21.1
+
+ NEWS | 8 ++++++++
+ configure.in | 6 +++---
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+commit 7f9757c725f769ce582a928ecbadc2c352c1b635
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Aug 24 16:51:54 2009 -0400
+
+ Add _vte_ring_set_length
+
+ src/ring.h | 3 ++-
+ src/vte.c | 4 ++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+commit 9a3de3c246360025f31ad9d6625f7792960c582e
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Aug 21 21:37:07 2009 -0400
+
+ Make ring keep an array of VteRowData, not VteRowData*
+
+ src/ring.c | 55 +++++++++++++++++++++++++------------------------------
+ src/ring.h | 4 ++--
+ 2 files changed, 27 insertions(+), 32 deletions(-)
+
+commit 440737678453a83e812ee60545369ec0e54a4759
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Aug 21 21:01:17 2009 -0400
+
+ Move _vte_new_row_data() business into the ring
+
+ src/ring.c | 239 +++++++++++++++++++++++++++-------------------------
+ src/ring.h | 61 +++++++++----
+ src/vte-private.h | 34 --------
+ src/vte.c | 48 +++--------
+ src/vteseq.c | 38 +++------
+ 5 files changed, 192 insertions(+), 228 deletions(-)
+
+commit 4e20a3b77e0adf2d2b3db655d9f7b5c3dd1a6c99
+Author: Claude Paroz <claude 2xlibre net>
+Date: Mon Aug 24 23:18:53 2009 +0200
+
+ Rename nds*.po to nds.po
+
+ po/LINGUAS | 2 +-
+ po/{nds_NFE.po => nds.po} | 0
+ 2 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 0b78dea524ee01e581327d09324193f2c1cce435
+Author: Nils-Christoph Fiedler <linux medienkompanie de>
+Date: Sat Aug 22 21:27:28 2009 +0200
+
+ Added Low German translation
+
+ po/LINGUAS | 1 +
+ po/nds_NFE.po | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 95 insertions(+), 0 deletions(-)
+
+commit 031a653d791248c51df12af1b59d169179330b55
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Aug 21 14:09:44 2009 -0400
+
+ Add _vte_ring_resize()
+
+ Avoids creating a new ring when changing scrollback lines.
+
+ src/ring.c | 43 +++++++++++++++++++++++++++++++++----------
+ src/ring.h | 16 ++++++++--------
+ src/vte.c | 36 ++++--------------------------------
+ 3 files changed, 45 insertions(+), 50 deletions(-)
+
+commit 4e533b106a1c39b8565a9891fba83e384cc40669
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Aug 21 12:17:38 2009 -0400
+
+ Revert 80dc9064
+
+ Removing the optimization, so I can clean up the ring API and redesign
+ the implementation. Sorry Chris!
+
+ src/ring.c | 17 -----------------
+ src/ring.h | 5 -----
+ src/vte.c | 19 +++++++------------
+ 3 files changed, 7 insertions(+), 34 deletions(-)
+
+commit bf5977d230dd95fcb86d3cbb8ce492f39ff71ae3
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Aug 21 00:20:44 2009 -0400
+
+ Fix bug introduced in ba1f44d6119cc39602d8a660f4e5a9f56a6f19da
+
+ src/ring.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit 08caf3b174e68ba3d02f04c2595ad552cd50db30
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 23:20:06 2009 -0400
+
+ Remove the fill argument from _vte_new_row_data()
+
+ I cannot prove that this change is right, though it looks like it's
+ correct!
+
+ src/vte-private.h | 2 +-
+ src/vte.c | 28 +++++-----------------------
+ src/vteseq.c | 12 ++++++------
+ 3 files changed, 12 insertions(+), 30 deletions(-)
+
+commit 7a2a78d3ea4a0128251089acef89d56241a455ca
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 23:13:06 2009 -0400
+
+ Minor
+
+ src/vteseq.c | 5 +----
+ 1 files changed, 1 insertions(+), 4 deletions(-)
+
+commit fb7fb842be37441b37bc4ae79937540fd4a0de3f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 23:10:07 2009 -0400
+
+ Minor
+
+ src/vteseq.c | 3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+commit 1904625c65d111a99e5920e6bc8121cb272ecc7b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 23:08:18 2009 -0400
+
+ Rename _vte_new_row_data_sized to _vte_new_row_data
+
+ src/vte-private.h | 2 +-
+ src/vte.c | 10 +++++-----
+ src/vteseq.c | 12 ++++++------
+ 3 files changed, 12 insertions(+), 12 deletions(-)
+
+commit 5e2b6753201ae416bdf1c594ab5ca5ab8bbf2130
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 23:06:37 2009 -0400
+
+ Remove _vte_new_row_data
+
+ src/vte-private.h | 1 -
+ src/vte.c | 11 -----------
+ src/vteseq.c | 4 ++--
+ 3 files changed, 2 insertions(+), 14 deletions(-)
+
+commit ba1f44d6119cc39602d8a660f4e5a9f56a6f19da
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 23:03:50 2009 -0400
+
+ Specialize VteRing to know about VteRowData
+
+ src/ring.c | 139 ++++++++--------------------------------------------
+ src/ring.h | 24 ++++-----
+ src/vte-private.h | 6 --
+ src/vte.c | 68 ++++----------------------
+ src/vteseq.c | 28 ++++-------
+ 5 files changed, 53 insertions(+), 212 deletions(-)
+
+commit b2280c01c376d70d931fa039fbdf3ed2fd3fa3f6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 18:39:34 2009 -0400
+
+ Store small iso2022 maps in 16bit structs
+
+ Saves over 100k of the shared library size
+
+ src/iso2022.c | 132 +++++++++++++++++++++++++++++++++------------------------
+ 1 files changed, 76 insertions(+), 56 deletions(-)
+
+commit 68ac36d9bb7e3ad17bda46de00de229cbe0ff5db
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 18:15:10 2009 -0400
+
+ Optimize iso2022 map struct on x86-64
+
+ src/iso2022.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit f5ce4c445055b7f19db38fea0a79253d68ac6562
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 17:26:14 2009 -0400
+
+ Revert b307bc5c and implement it in a clean way
+
+ src/ring.c | 68 ++++++++++++++--------------
+ src/ring.h | 8 ++--
+ src/vte-private.h | 4 +-
+ src/vte.c | 132 +++++++++++++++++++++++++---------------------------
+ src/vteseq.c | 77 +++++++------------------------
+ 5 files changed, 120 insertions(+), 169 deletions(-)
+
+commit c34204b358df9d887096b4cd1b5ce7f299d1e3ff
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 17:12:13 2009 -0400
+
+ Fix warnings
+
+ src/buffer.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit c59dc9252888cf3824f31e307758fd49cf7f9b17
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 15:25:28 2009 -0400
+
+ Update git.mk
+
+ git.mk | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit dc03f2f6035befdc2e8ca5a0537ca2e8c26c324f
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 15:15:01 2009 -0400
+
+ Update copyright header
+
+ src/buffer.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit f168a8a2e6b266e980d15c2af023ce7ea1f15394
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 15:09:20 2009 -0400
+
+ Use GByteArray for VteBuffer
+
+ The implementation was the same. Keep the abstraction though, since
+ VteBuffer may want to implement O(1) _consume() in the future.
+
+ src/Makefile.am | 7 +--
+ src/buffer.c | 156 -------------------------------------------------------
+ src/buffer.h | 25 ++++-----
+ src/interpret.c | 2 +-
+ src/iso2022.c | 2 +-
+ src/vte.c | 16 +++---
+ src/vteconv.c | 6 +-
+ src/vteseq.c | 2 +-
+ 8 files changed, 25 insertions(+), 191 deletions(-)
+
+commit 83018a7d3aa975211996d69dd922b79165439622
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 15:01:40 2009 -0400
+
+ Rename "struct _vte_buffer" to VteBuffer
+
+ src/buffer.c | 18 +++++++++---------
+ src/buffer.h | 18 +++++++++---------
+ src/interpret.c | 2 +-
+ src/iso2022.c | 4 ++--
+ src/vte-private.h | 4 ++--
+ src/vteconv.c | 2 +-
+ 6 files changed, 24 insertions(+), 24 deletions(-)
+
+commit ee6fd1c3d8c2ba19c63565a0c889bbdc10125596
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Aug 20 14:55:41 2009 -0400
+
+ Remove unused code
+
+ src/Makefile.am | 7 +-
+ src/buffer.c | 247 -------------------------------------------------------
+ src/buffer.h | 23 -----
+ 3 files changed, 2 insertions(+), 275 deletions(-)
+
+commit af4ced55057c3bdc1ec8e87ce8bbef6639663f37
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Aug 17 18:31:04 2009 -0400
+
+ Remove newline after AM_V_GEN
+
+ src/Makefile.am | 9 +++------
+ 1 files changed, 3 insertions(+), 6 deletions(-)
+
+commit 11bf7a92d4e0cc75ceda1fcd4da892f58e63b4b8
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sun Aug 16 01:53:18 2009 -0400
+
+ Reuse ->pending array instead of creating a new one
+
+ src/vte.c | 9 +--------
+ 1 files changed, 1 insertions(+), 8 deletions(-)
+
+commit 80ffef9ad70e70827138f18fdd847dc8a27ebc34
+Author: Christian Persch <chpe gnome org>
+Date: Sun Aug 16 22:19:25 2009 +0200
+
+ Support AM_SILENT_RULES
+
+ And sprinkle some $(AM_V_GEN) around. Silent rules are disabled by default.
+
+ Makefile.am | 2 +-
+ configure.in | 4 ++++
+ doc/Makefile.am | 4 ++--
+ python/Makefile.am | 2 +-
+ src/Makefile.am | 18 ++++++++++--------
+ termcaps/Makefile.am | 2 +-
+ 6 files changed, 19 insertions(+), 13 deletions(-)
+
+commit 41e1e01046e2bc0f9cfbc84c2f41430c9a9a9743
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 12 16:16:09 2009 -0400
+
+ Bug 590824 – gnome-terminal crashed with SIGSEGV after hiting ctrl+o
+
+ src/vte.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 1b2c6bf6136d8a6033499d73cdb659a6709982a3
+Author: Seán de Búrca <leftmostcat gmail com>
+Date: Sun Aug 9 14:11:16 2009 -0600
+
+ Updated Irish translation
+
+ po/ga.po | 111 +++++++++++++++++++++++++++-----------------------------------
+ 1 files changed, 48 insertions(+), 63 deletions(-)
+
+commit 3eaca3e36fb806608c961ef594baf99cecf9fdfa
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Wed Aug 5 21:26:05 2009 -0400
+
+ Bug 572230 – text mode program rendering is strange in cjk locale.
+
+ Under UTF-8 encoding, always use width=1 for ambiguous-width chars,
+ only allow override using VTE_CJK_WIDTH=1. Preivously we were using
+ width=2 for CJKS locales. That's against Unicode recommendations,
+ and breaks a bunch of programs.
+
+ src/iso2022.c | 36 +-----------------------------------
+ 1 files changed, 1 insertions(+), 35 deletions(-)
+
+commit 403a6b40a1b34627dcd88fc4c3d0c30ef6369768
+Author: Christian Persch <chpe gnome org>
+Date: Sun Jul 26 12:56:05 2009 +0200
+
+ Post-branch version bump
+
+ configure.in | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+commit b8e1a5d9cc583c3a6d31b5594a4c7ce15ea73f5c
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Jul 10 15:56:19 2009 +0100
+
+ Bug 588200 – bashisms in shell scripts
+
+ src/osc | 2 +-
+ src/window | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+commit deda7bccf35e153628ca348b5fdf054e608ec462
+Author: Rajesh Ranjan <rranjan rranjan csb>
+Date: Tue Jul 7 14:23:37 2009 +0530
+
+ hindi update by rajesh Ranjan
+
+ po/hi.po | 93 ++++++++++++++++++++++++--------------------------------------
+ 1 files changed, 36 insertions(+), 57 deletions(-)
+
+commit 4fc17c3fb75cc211232c92ac8b0afa3a8f934cbc
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Tue Jun 9 18:33:36 2009 -0400
+
+ Release 0.20.5 to undo the unintended .soname bump
+
+ NEWS | 4 ++++
+ configure.in | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit c2ad1acee778542ed5ee9b9b3d0ac2b58a5161d6
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Jun 4 17:39:39 2009 -0400
+
+ Update doc templates
+
+ doc/reference/tmpl/vte.sgml | 12 ++++++++++++
+ 1 files changed, 12 insertions(+), 0 deletions(-)
+
+commit 94b2b189e429515407d182de3f6cb6b89297e50c
+Author: Krzesimir Nowak <krnowak svn gnome org>
+Date: Tue Jun 2 13:03:47 2009 +0200
+
+ Bug 584563 – default commit signal handler first param fix.
+
+ First parameter of default commit signal handler now takes const
+ gchar* instead of gchar*.
+
+ src/vte.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 26ab9f6a8685f6f26d419dcefbade13f561e1585
+Author: Krzesimir Nowak <krnowak svn gnome org>
+Date: Tue Jun 2 16:56:09 2009 -0400
+
+ Bug 573976 – Typedef pointer to function
+
+ Typedefed a pointer to function used in get_text methods and
+ replaced those pointers with VteSelectionFunc. Documentation for
+ VteSelectionFunc is also added.
+
+ doc/reference/vte-sections.txt | 1 +
+ src/vte.c | 48 ++++++++++++++++-----------------------
+ src/vte.h | 20 ++++++----------
+ 3 files changed, 29 insertions(+), 40 deletions(-)
+
+commit 185383d2ff114b16296e3fd203d89e69571c4221
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Jun 1 17:29:53 2009 -0400
+
+ Release 0.20.4
+
+ NEWS | 8 ++++++++
+ configure.in | 6 +++---
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+commit c38b7315abc067a529f4420ead5bde2b6b25be82
+Author: Marc-Andre Lureau <marcandre lureau gmail com>
+Date: Sat May 30 14:06:22 2009 -0400
+
+ Bug 584281 – build: avoid double installation of xterm
+
+ configure.in | 1 +
+ termcaps/Makefile.am | 6 +++++-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 33f265a9e3397126bd9f1b210c38bd54ea9a1ddb
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat May 30 14:04:42 2009 -0400
+
+ Bug 543379 – VTE sends NUL/^@ for backspace
+
+ Add VTE_ERASE_TTY. Also make AUTO send \H if terminal erase is undefined.
+
+ doc/reference/tmpl/vte.sgml | 1 +
+ src/vte.c | 41 +++++++++++++++++++++++++++++++++--------
+ src/vte.h | 3 ++-
+ 3 files changed, 36 insertions(+), 9 deletions(-)
+
+commit 416b37dac95c6aa73c9ead3d6841893bfb22c5b8
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 25 18:27:51 2009 -0400
+
+ 0.20.3 released
+
+ NEWS | 6 ++++++
+ configure.in | 4 ++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 7e371f09de8fb3e3af16469603523c17c721483c
+Author: Krzesimir Nowak <krnowak svn gnome org>
+Date: Mon May 18 12:34:21 2009 +0200
+
+ Inlined signal docs
+
+ 2009-05-18 Krzesimir Nowak <krnowak svn gnome org>
+
+ * doc/reference/tmpl/vte.sgml: Removed all signal
+ descriptions from <para> </para> markups and arguments.
+ * src/vte.c: Documented all signals and fixed
+ a description of 'set-scroll-adjustments'.
+
+ doc/reference/tmpl/vte.sgml | 155 +++++++++++--------------
+ src/vte.c | 265 ++++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 322 insertions(+), 98 deletions(-)
+
+commit 218c6e41627021a2964e606ef72165a16ed329bf
+Author: Frédéric Péters <fpeters 0d be>
+Date: Mon May 18 22:54:27 2009 +0200
+
+ Bug 583129 – [python] allow passing None as command or directory option
+
+ python/vte.override | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 56727a20b71cd5f960e468444ef544296ddc5edf
+Author: Frédéric Péters <fpeters 0d be>
+Date: Mon May 18 17:36:46 2009 +0200
+
+ Bug 583078 – [python] allow passing of environment as a dictionary
+
+ python/vte.override | 92 ++++++++++++++++++++++++++++++++------------------
+ 1 files changed, 59 insertions(+), 33 deletions(-)
+
+commit 7e45bcee12c2a0db998d302f89d126f5df10481b
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 4 16:29:01 2009 -0400
+
+ Released 0.20.2
+
+ NEWS | 5 +++++
+ configure.in | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit be8796b8a5bb258214b0f02ec55a373828acca71
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon May 4 14:16:08 2009 -0400
+
+ [git.mk] Update
+
+ git.mk | 172 +++++++++++++++++++++++++++++++++-------------------------------
+ 1 files changed, 88 insertions(+), 84 deletions(-)
+
+commit db2a659c6b907564d522312238518937b4b74254
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Mon Apr 27 14:25:12 2009 -0400
+
+ [doap] Add mailto:
+
+ vte.doap | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit a492585a10d58548206b4b58cf62a645d987526d
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Apr 25 20:33:34 2009 -0400
+
+ Add chaining git.mk
+
+ gnome-pty-helper/git.mk | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 6b12feb7b9be5ed4af4dc0e348fc30718547afe9
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Apr 25 20:33:03 2009 -0400
+
+ [git.mk] Fix maintainer-clean
+
+ git.mk | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 30007c8374621d72c1c8eeb260e46f089a2fccc6
+Author: Olav Vitters <olav bkor dhs org>
+Date: Thu Apr 23 19:40:30 2009 +0200
+
+ doap: Add desktop category
+
+ vte.doap | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 78f9b61137028bd3b0c4b24c6b2169511b1d1e28
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Thu Apr 23 11:27:18 2009 -0400
+
+ [iso2022] Work around buggy iconv (#567064)
+
+ Seems like glibc's iconv is buggy, eating the ill sequence then
+ returning EILSEQ. This was causing crashes. Work around it.
+
+ src/iso2022.c | 12 +++++++++---
+ 1 files changed, 9 insertions(+), 3 deletions(-)
+
+commit 3abb0fc2a7011eeadc7e1f49a3f07d9cec4f5c8a
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Apr 18 16:20:23 2009 -0400
+
+ [git.mk] Support out-of-tree builds
+
+ git.mk | 35 +++++++++++++++++++++++++++++------
+ 1 files changed, 29 insertions(+), 6 deletions(-)
+
+commit 963fbd0776c96ecc5efd810c837e478986ff8f35
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Apr 18 15:04:41 2009 -0400
+
+ Remove copyright claim
+
+ git.mk | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit ce46104d4378e5dc835c4c4681637dffe205e507
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Sat Apr 18 03:48:58 2009 -0400
+
+ [DOAP] Improve!
+
+ vte.doap | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+commit 6a534c8643a24af997795a0a6027b791a19194de
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Apr 17 21:38:08 2009 -0400
+
+ Add git.mk
+
+ Makefile.am | 2 +
+ doc/Makefile.am | 2 +
+ doc/openi18n/Makefile.am | 2 +
+ doc/reference/Makefile.am | 2 +
+ git.mk | 155 ++++++++++++++++++++++++++++++++++++++++++
+ glade/Makefile.am | 4 +
+ gnome-pty-helper/Makefile.am | 8 ++
+ perf/Makefile.am | 2 +
+ python/Makefile.am | 2 +
+ src/Makefile.am | 2 +
+ termcaps/Makefile.am | 2 +
+ 11 files changed, 183 insertions(+), 0 deletions(-)
+
+commit b4b3c644fd51611ef4abdc24aa414b4b8d95f722
+Author: Behdad Esfahbod <behdad behdad org>
+Date: Fri Apr 17 18:05:42 2009 -0400
+
+ Remove static .gitignore
+
+ .gitignore | 99 ------------------------------------------------------------
+ 1 files changed, 0 insertions(+), 99 deletions(-)
+
+commit 78dffc29ecfb7b24528d7546771b602e0c105057
+Author: Christian Persch <chpe gnome org>
+Date: Fri Apr 17 21:16:02 2009 +0200
+
+ Remove ChangeLog only on maintainerclean
+
+ Makefile.am | 4 +---
+ 1 files changed, 1 insertions(+), 3 deletions(-)
+
+commit ce5c397864104792f84869b84481abb80d86ba1e
+Author: Michael J. Chudobiak <mjc avtechpulse com>
+Date: Fri Apr 17 15:07:29 2009 -0400
+
+ Fixed the commented-out shortdesc field in the doap file
+
+ Bug #579322.
+
+ vte.doap | 14 ++------------
+ 1 files changed, 2 insertions(+), 12 deletions(-)
+
+commit 1b8a6e627bb4c920541977a684767ccfd48ce324
+Author: Christian Persch <chpe gnome org>
+Date: Fri Apr 17 19:31:02 2009 +0200
+
+ Remove generated ChangeLog on make clean
+
+ Makefile.am | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit e68607b3875374ce69fe95b8c1f99e57ba695c64
+Author: Christian Persch <chpe gnome org>
+Date: Fri Apr 17 18:58:36 2009 +0200
+
+ Remove ChangeLog, and auto-generate changelog on make dist
+
+ .gitignore | 2 +
+ ChangeLog => ChangeLog.pre-git | 0
+ Makefile.am | 18 +-
+ gnome-pty-helper/ChangeLog | 1 -
+ po/ChangeLog | 1353 ----------------------------------------
+ 5 files changed, 19 insertions(+), 1355 deletions(-)
+
+commit fd3ab8dd61ed18f460cecc153de24eb1377a1a34
+Author: Christian Persch <chpe gnome org>
+Date: Fri Apr 17 18:56:16 2009 +0200
+
+ Add DOAP file.
+
+ vte.doap | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 48 insertions(+), 0 deletions(-)
+
+commit 03bc44250a76de0470cc1303879ac1266eec8b27
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Apr 12 13:54:29 2009 +0000
+
+ More NEWS
+
+ svn path=/trunk/; revision=2397
+
+ NEWS | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit 95f4face68455e5324b1227cdf6a9c766bf086fc
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Apr 12 13:53:19 2009 +0000
+
+ Version 0.20.1
+
+ svn path=/trunk/; revision=2396
+
+ NEWS | 5 +++++
+ configure.in | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 605b79f6dfe5e6cda05d1aaa092af235b9046d4f
+Author: Adam Jackson <ajackson src gnome org>
+Date: Wed Apr 1 00:49:38 2009 +0000
+
+ Add gopher:// to the dingus-click regexes.
+
+ svn path=/trunk/; revision=2395
+
+ ChangeLog | 5 +++++
+ src/vteapp.c | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit af483015842d0139c31608f719cef5fe31cc5649
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Mar 26 17:58:05 2009 +0000
+
+ Minor fixes from Richard Russon.
+
+ 2009-03-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (always_selected):
+ * src/vtepangocairo.c (_vte_pangocairo_set_background_image):
+ * src/vteskel.c (_vte_skel_draw_text):
+ Minor fixes from Richard Russon.
+
+
+ svn path=/trunk/; revision=2394
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 3 ++-
+ src/vtepangocairo.c | 1 -
+ src/vteskel.c | 2 +-
+ 4 files changed, 10 insertions(+), 3 deletions(-)
+
+commit 6babc11f91a15ea12f4728e98106590355bc6500
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Mar 26 06:18:23 2009 +0000
+
+ Bug 576797 – Double-click sometimes stops working
+
+ 2009-03-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 576797 – Double-click sometimes stops working
+
+ * src/vte.c (vte_terminal_extend_selection): Invalidate selection
+ if forced.
+
+
+ svn path=/trunk/; revision=2393
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 442a1e7fbcd7c0a8adc5ff5f9b8b459f8de09a25
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Mar 26 05:46:39 2009 +0000
+
+ Bug 573674 – reset resets width to 80 chars
+
+ 2009-03-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 573674 – reset resets width to 80 chars
+
+ * src/vteseq.c (vte_sequence_handler_decset_internal): Disable
+ resizing on decreset.
+
+
+ svn path=/trunk/; revision=2392
+
+ ChangeLog | 7 +++++++
+ src/vteseq.c | 2 ++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 277cd7e6bafd9099093046a2c19ec8146f9b171a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Mar 23 23:39:56 2009 +0000
+
+ Bug 576504 – vte does not pass its testsuite.
+
+ 2009-03-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 576504 – vte does not pass its testsuite.
+
+ * src/vte.c:
+ * src/vtedraw.h:
+ Fix "make check".
+
+
+ svn path=/trunk/; revision=2391
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 2 +-
+ src/vtedraw.h | 1 -
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 62f5344c5b95ae64fd0321b654573cea369aef19
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Mar 23 12:12:51 2009 +0000
+
+ Bug 574491 – gnome-pty-helper can prevent volumes from being unmounted
+
+ * gnome-pty-helper/gnome-pty-helper.c: (main): chdir to /.
+
+ svn path=/trunk/; revision=2390
+
+ ChangeLog | 6 ++++++
+ gnome-pty-helper/gnome-pty-helper.c | 6 ++++++
+ 2 files changed, 12 insertions(+), 0 deletions(-)
+
+commit 1d9e2356ebf937d0265104cc20ae4b6f3666b798
+Author: Djihed Afifi <djihed src gnome org>
+Date: Wed Mar 18 09:19:40 2009 +0000
+
+ Updated Arabic translation
+
+ svn path=/trunk/; revision=2389
+
+ po/ChangeLog | 4 +++
+ po/ar.po | 82 ++++++++++++++++++++++++++-------------------------------
+ 2 files changed, 41 insertions(+), 45 deletions(-)
+
+commit 449972a31306e586a9348a92c42b01aebe8e3109
+Author: Ignacio Casal Quinteiro <icq src gnome org>
+Date: Tue Mar 17 22:08:28 2009 +0000
+
+ Updated Galician translation by Suso Baleato.
+
+ svn path=/trunk/; revision=2388
+
+ po/ChangeLog | 4 ++
+ po/gl.po | 111 +++++++++++++++++++++++++++------------------------------
+ 2 files changed, 57 insertions(+), 58 deletions(-)
+
+commit ff02a22a959e001b49297d17e2d5865d81d84823
+Author: Amanpreet Singh Alam <aman src gnome org>
+Date: Tue Mar 17 02:17:33 2009 +0000
+
+ updating for GNOME Punjabi Translation by A S Alam
+
+ svn path=/trunk/; revision=2387
+
+ po/pa.po | 98 ++++++++++++++++++++++++++++----------------------------------
+ 1 files changed, 44 insertions(+), 54 deletions(-)
+
+commit c897c9a37bbe592776abd1179a11d65047ea684c
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Mar 15 14:15:16 2009 +0000
+
+ NEWS update
+
+ svn path=/trunk/; revision=2386
+
+ NEWS | 7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+commit e42a7297bf8f14400141666961cfa7bcd0495779
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Mar 15 12:56:45 2009 +0000
+
+ Fix make.
+
+ svn path=/trunk/; revision=2384
+
+ doc/reference/vte-docs.sgml | 2 --
+ doc/reference/vte-sections.txt | 1 +
+ 2 files changed, 1 insertions(+), 2 deletions(-)
+
+commit 8dd2fb3c08edf1b8f1c1143601f362be55382d63
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Mar 15 12:56:40 2009 +0000
+
+ Prepare version 0.20.0.
+
+ * configure.in: Prepare version 0.20.0.
+
+ svn path=/trunk/; revision=2383
+
+ ChangeLog | 4 ++++
+ Makefile.am | 2 +-
+ configure.in | 14 +++++++-------
+ 3 files changed, 12 insertions(+), 8 deletions(-)
+
+commit 07cf3c2ef9d697098be99780e654d25f9a02aba4
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Mar 15 12:56:33 2009 +0000
+
+ Bug 575398 – configure warns about term.h under OpenSolaris
+
+ * configure.in: Fix curses detection on solaris. Patch by David Adam.
+
+ svn path=/trunk/; revision=2382
+
+ ChangeLog | 6 ++++++
+ configure.in | 7 +++++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+commit 75027b7cf6ff5f326293bffeb09413955abc6076
+Author: Amitakhya Phukan <amitakhya src gnome org>
+Date: Fri Mar 13 11:26:42 2009 +0000
+
+ Updated assamese translations
+
+ svn path=/trunk/; revision=2381
+
+ po/as.po | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 57cb728ae9fe20f6acb77b962b1212d4360aa102
+Author: Amitakhya Phukan <amitakhya src gnome org>
+Date: Fri Mar 13 11:26:12 2009 +0000
+
+ Updated assamese translations
+
+ svn path=/trunk/; revision=2380
+
+ po/ChangeLog | 5 +++
+ po/LINGUAS | 1 +
+ po/as.po | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 97 insertions(+), 0 deletions(-)
+
+commit 73ba06532e7a061176230ea25296b99fd97c14c1
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Mar 9 10:20:54 2009 +0000
+
+ Bug 574616 – "real" transparency not working from python bindings
+
+ 2009-03-09 Behdad Esfahbod <behdad gnome org>
+
+ Bug 574616 – "real" transparency not working from python bindings
+
+ * src/vtepangocairo.c (_vte_pangocairo_destroy),
+ (_vte_pangocairo_set_background_image): Better handle failure of
+ creating pixmap.
+
+ * src/vtebg.c (vte_bg_get_pixmap): Get rid of unused mask parameter.
+
+
+ svn path=/trunk/; revision=2379
+
+ ChangeLog | 10 ++++++++++
+ src/vtebg.c | 7 +------
+ src/vtepangocairo.c | 46 +++++++++++++++++++++-------------------------
+ 3 files changed, 32 insertions(+), 31 deletions(-)
+
+commit 43a9b809e5cf9ccf1a685a7a0ccc0761ff206690
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Mar 7 23:51:12 2009 +0000
+
+ Bug 574025 – Crash in _vte_terminal_insert_char
+
+ 2009-03-07 Behdad Esfahbod <behdad gnome org>
+
+ Bug 574025 – Crash in _vte_terminal_insert_char
+
+ * src/vte.c (_vte_terminal_insert_char): Don't crash.
+
+
+ svn path=/trunk/; revision=2378
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 10 ++++++----
+ 2 files changed, 12 insertions(+), 4 deletions(-)
+
+commit df30bd81becd7ce6c499ab889443eed7b7806863
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Mar 2 20:14:12 2009 +0000
+
+ Prepare 0.19.5
+
+ svn path=/trunk/; revision=2377
+
+ ChangeLog | 5 +++++
+ NEWS | 18 ++++++++++++++++++
+ configure.in | 4 ++--
+ 3 files changed, 25 insertions(+), 2 deletions(-)
+
+commit 03aeb31b699fc253ccd9cd883328306eee8f2f1d
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Mar 2 20:14:07 2009 +0000
+
+ Correct use of padding returned by vte_terminal_get_padding().
+
+ * src/vteaccess.c: (vte_terminal_accessible_set_size),
+ (vte_terminal_accessible_ref_accessible_at_point):
+ * src/vteapp.c: (button_pressed): Correct use of padding returned
+ by vte_terminal_get_padding().
+
+ svn path=/trunk/; revision=2376
+
+ ChangeLog | 7 +++++++
+ src/vteaccess.c | 12 ++----------
+ src/vteapp.c | 4 ++--
+ 3 files changed, 11 insertions(+), 12 deletions(-)
+
+commit fa84c74627c951e3366f7b76298bfdb5208e5c65
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Mar 2 20:14:01 2009 +0000
+
+ Use g_strerror() instead of strerror().
+
+ * src/vte.c: (vte_terminal_refresh_size), (vte_terminal_set_size):
+ Use g_strerror() instead of strerror().
+
+ svn path=/trunk/; revision=2375
+
+ ChangeLog | 5 +++++
+ src/vte.c | 8 +++++---
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+commit f6170007cd7081f0b77663fa2d0275fc2cd8ae38
+Author: Luca Ferretti <elle uca libero it>
+Date: Wed Feb 18 20:22:43 2009 +0000
+
+ Updated Italian translation by Francesco Marletta.
+
+ 2009-02-18 Luca Ferretti <elle uca libero it>
+
+ * it.po: Updated Italian translation by Francesco Marletta.
+
+ svn path=/trunk/; revision=2374
+
+ po/ChangeLog | 4 +++
+ po/it.po | 70 +++++++++++++++++++++------------------------------------
+ 2 files changed, 30 insertions(+), 44 deletions(-)
+
+commit dbf4da933efe253036ab579fcd67bfd3e250a6bc
+Author: Jani Monoses <janimo src gnome org>
+Date: Mon Feb 16 19:55:33 2009 +0000
+
+ Updated Romanian translations from Adi Roiban and Mișu Moldovan
+
+ svn path=/trunk/; revision=2373
+
+ po/ChangeLog | 5 +++
+ po/ro.po | 89 +++++++++++++++++++++++-----------------------------------
+ 2 files changed, 40 insertions(+), 54 deletions(-)
+
+commit 30029cc2f218f93b5009382c3324affc30f00aa7
+Author: Chao-Hsiung Liao <chliao src gnome org>
+Date: Sat Feb 14 09:50:02 2009 +0000
+
+ 0.19.4
+
+ svn path=/trunk/; revision=2372
+
+ po/ChangeLog | 5 +++
+ po/zh_HK.po | 85 ++++++++++++++++++++++++++--------------------------------
+ po/zh_TW.po | 83 +++++++++++++++++++++++++-------------------------------
+ 3 files changed, 80 insertions(+), 93 deletions(-)
+
+commit 1f93f65512eb8bb1e99fa04ab015dccc2071df8a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Feb 12 05:33:15 2009 +0000
+
+ Bug 54926 – Should try bold version of font before pseudo-bolding
+
+ 2009-02-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 54926 – Should try bold version of font before pseudo-bolding
+
+ Patch from Kees Cook <kees outflux net>
+
+ * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
+ (vte_terminal_unichar_is_local_graphic),
+ (vte_terminal_draw_graphic), (vte_terminal_draw_cells),
+ (vte_terminal_draw_rows), (vte_terminal_paint_cursor):
+ * src/vtedraw.c (_vte_draw_get_char_width), (_vte_draw_text),
+ (_vte_draw_char), (_vte_draw_has_char):
+ * src/vtedraw.h:
+ * src/vtepangocairo.c (_vte_pangocairo_set_text_font),
+ (_vte_pangocairo_get_char_width), (_vte_pangocairo_has_bold),
+ (_vte_pangocairo_draw_text), (_vte_pangocairo_draw_has_char):
+ * src/vteskel.c:
+ Try bold font before pseudo-bolding.
+
+
+ svn path=/trunk/; revision=2371
+
+ ChangeLog | 19 +++++++++++++++++++
+ src/vte.c | 46 ++++++++++++++++++----------------------------
+ src/vtedraw.c | 45 +++++++++++++++++++++++++++++++--------------
+ src/vtedraw.h | 20 ++++++++++++--------
+ src/vtepangocairo.c | 47 +++++++++++++++++++++++++++++++++++++++--------
+ src/vteskel.c | 1 +
+ 6 files changed, 120 insertions(+), 58 deletions(-)
+
+commit dafe17256dd8c687cddb10305b6913dc870cc651
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Feb 8 14:20:25 2009 +0000
+
+ Ignore this
+
+ svn path=/trunk/; revision=2370
+
+ .gitignore | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 97 insertions(+), 0 deletions(-)
+
+commit 94f13bb62629a567c2814477c7b23f01dbca2fca
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Feb 2 15:09:20 2009 +0000
+
+ Bug 570208 – vte fails to build outside source tree
+
+ * python/Makefile.am: Build fix.
+
+ svn path=/trunk/; revision=2369
+
+ ChangeLog | 6 ++++++
+ python/Makefile.am | 12 ++++++------
+ 2 files changed, 12 insertions(+), 6 deletions(-)
+
+commit 3ada3abd77c76e3582af0859995c0909c27ce1ce
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Feb 1 22:26:06 2009 +0000
+
+ Remove marshalers that have stock ones in gobject, and use the stock ones
+
+ * src/marshal.list:
+ * src/vte.c: (vte_terminal_class_init):
+ * src/vtebg.c: (vte_bg_class_init): Remove marshalers that have stock
+ ones in gobject, and use the stock ones instead.
+
+ svn path=/trunk/; revision=2368
+
+ ChangeLog | 7 +++++++
+ src/marshal.list | 7 ++-----
+ src/vte.c | 52 ++++++++++++++++++++++++++--------------------------
+ src/vtebg.c | 2 +-
+ 4 files changed, 36 insertions(+), 32 deletions(-)
+
+commit a06afbb1df1569b38b421193a4e035d624537bd4
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Feb 1 06:18:43 2009 +0000
+
+ Require GTK+ >= 2.14, for "gtk-fontconfig-timestamp" settings property.
+
+ 2009-02-01 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Require GTK+ >= 2.14, for "gtk-fontconfig-timestamp"
+ settings property.
+
+ * src/vte.c (vte_terminal_style_set),
+ (vte_terminal_set_font_full_internal), (vte_terminal_init),
+ (vte_terminal_class_init): Use style_set class method instead of
+ hooking to style-set signal. Also, proceed to recreating the font
+ even if neither description nor antialias setting changed. This is
+ necessary to pick up fontconfig configuration changes as well as font
+ install/uninstallations or GNOME font preferences changes.
+
+ * src/vtepangocairo.c (font_info_destroy),
+ (fontconfig_timestamp_quark),
+ (vte_pango_cairo_set_fontconfig_timestamp),
+ (vte_pango_cairo_get_fontconfig_timestamp), (context_hash),
+ (context_equal), (font_info_create_for_context),
+ (font_info_create_for_screen):
+ Use fontconfig_timestamp in the font object hash, such that we respond
+ to fontconfig configuration changes.
+
+
+ svn path=/trunk/; revision=2367
+
+ ChangeLog | 22 ++++++++++++++++++++++
+ configure.in | 2 +-
+ src/vte.c | 24 ++++++++++--------------
+ src/vteapp.c | 2 +-
+ src/vtepangocairo.c | 47 +++++++++++++++++++++++++++++++++++++++--------
+ 5 files changed, 73 insertions(+), 24 deletions(-)
+
+commit 1fa6a721bcd1491d5faa82b13af376abc9f2ee6f
+Author: Changwoo Ryu <cwryu src gnome org>
+Date: Thu Jan 29 12:38:14 2009 +0000
+
+ Updated Korean translation
+
+ svn path=/trunk/; revision=2366
+
+ po/ChangeLog | 4 ++
+ po/ko.po | 90 +++++++++++++++++++++++++++-------------------------------
+ 2 files changed, 46 insertions(+), 48 deletions(-)
+
+commit 58bc3a942f198a1a8788553ca72c19d7c1702b74
+Author: Saleem Abdulrasool <asaleem src gnome org>
+Date: Wed Jan 28 03:47:11 2009 +0000
+
+ fix bug #548272
+
+ svn path=/trunk/; revision=2365
+
+ ChangeLog | 5 +++++
+ src/vteseq.c | 18 ++++++++++++------
+ 2 files changed, 17 insertions(+), 6 deletions(-)
+
+commit 916094b4dcab454f5820ca5350abc81f4d51ad4c
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Jan 20 19:25:13 2009 +0000
+
+ Use GDK_BLANK_CURSOR for the invisible cursor on gtk+ >= 2.15.
+
+ * src/vte.c: (vte_terminal_realize): Use GDK_BLANK_CURSOR for the
+ invisible cursor on gtk+ >= 2.15.
+
+ svn path=/trunk/; revision=2364
+
+ ChangeLog | 5 +++++
+ src/vte.c | 12 ++++++++++--
+ 2 files changed, 15 insertions(+), 2 deletions(-)
+
+commit bcafeb8b5f6ef9eac9a83c37a3f263a84b1932b8
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Jan 20 18:44:30 2009 +0000
+
+ Use ttyname() as recommended in the glibc manual. Bug #565688.
+
+ * gnome-pty-helper/gnome-pty-helper.c: (init_term_with_defaults),
+ (open_ptys), (close_pty_pair): Use ttyname() as recommended in the
+ glibc manual. Bug #565688.
+
+ svn path=/trunk/; revision=2363
+
+ ChangeLog | 6 ++++++
+ gnome-pty-helper/gnome-pty-helper.c | 28 +++-------------------------
+ 2 files changed, 9 insertions(+), 25 deletions(-)
+
+commit 3b22bcc8605a66f43135902859473a01e7b76f27
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Jan 6 20:18:36 2009 +0000
+
+ Convert some g_strdup_printf() uses to g_snprintf() when the buffer was
+
+ 2009-01-06 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_parse_color),
+ (vte_sequence_handler_change_color),
+ (vte_sequence_handler_request_terminal_parameters),
+ (vte_sequence_handler_send_primary_device_attributes),
+ (vte_sequence_handler_send_secondary_device_attributes),
+ (vte_sequence_handler_device_status_report),
+ (vte_sequence_handler_dec_device_status_report),
+ (vte_sequence_handler_window_manipulation),
+ (vte_sequence_handler_change_cursor_color):
+ Convert some g_strdup_printf() uses to g_snprintf() when
+ the buffer was fixed-size and freed immediately.
+ Also fix g_snprintf usage by not using its return value.
+ *If* the buffer is short, the returned len is not what we
+ are interested in.
+ Finally, pass -1 as len to vte_terminal_feed_child() in
+ most places. This means a bit more work for the processor,
+ but cleaner code.
+
+
+ svn path=/trunk/; revision=2362
+
+ ChangeLog | 20 ++++++++
+ src/vteseq.c | 155 ++++++++++++++++++++++++++--------------------------------
+ 2 files changed, 90 insertions(+), 85 deletions(-)
+
+commit 7e3cc8b3e89efe87e7acf3a13df3f66666fc7acb
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Jan 6 19:04:59 2009 +0000
+
+ Bug 566795 – VTE fails to build in trunk
+
+ 2009-01-06 Behdad Esfahbod <behdad gnome org>
+
+ Bug 566795 – VTE fails to build in trunk
+
+ * src/vteseq.c (vte_sequence_handler_change_cursor_color):
+ Fix build.
+
+
+ svn path=/trunk/; revision=2361
+
+ ChangeLog | 7 +++++++
+ src/vteseq.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit ca81ba9319f71f97f12652d56910648e1a706818
+Author: Saleem Abdulrasool <asaleem src gnome org>
+Date: Tue Jan 6 06:51:58 2009 +0000
+
+ add support for OSC 4 and OSC 12
+
+ svn path=/trunk/; revision=2360
+
+ ChangeLog | 10 +++
+ src/vteseq-n.gperf | 4 +-
+ src/vteseq.c | 192 +++++++++++++++++++++++++++++++++++++++++++---------
+ 3 files changed, 173 insertions(+), 33 deletions(-)
+
+commit 67401849c6d713f9c4fd5ec8a4ffb92d61c13048
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Jan 6 05:39:42 2009 +0000
+
+ Bug 566730 – vte_terminal_set_color_cursor() calls invalidate_all but it
+
+ 2009-01-06 Behdad Esfahbod <behdad gnome org>
+
+ Bug 566730 – vte_terminal_set_color_cursor() calls invalidate_all but
+ it doesn't have to
+
+ * src/vte.c (vte_terminal_set_color_internal): If color is VTE_CUR_BG,
+ invalidate_cursor_once instead of invalidate_all.
+
+
+ svn path=/trunk/; revision=2359
+
+ ChangeLog | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit 75e3a47bc882b9204df914db85bdbad913a6c3b6
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Jan 6 05:39:17 2009 +0000
+
+ If color is VTE_CUR_BG, invalidate_cursor_once instead of invalidate_all.
+
+ 2009-01-06 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_set_color_internal): If color is VTE_CUR_BG,
+ invalidate_cursor_once instead of invalidate_all.
+
+
+ svn path=/trunk/; revision=2358
+
+ ChangeLog | 5 +++++
+ src/vte.c | 9 ++++++---
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+commit 47d142ce5717427fe7dd28c8b3f001829d9a7974
+Author: Halton Huo <halton huo sun com>
+Date: Fri Dec 26 14:48:23 2008 +0000
+
+ Bug 565679 - alloca is discouraged
+
+ 2008-12-26 Halton Huo <halton huo sun com>
+
+ Bug 565679 - alloca is discouraged
+
+ * gnome-pty-helper/gnome-pty-helper.c: use malloc replace alloca.
+
+
+ svn path=/trunk/; revision=2357
+
+ ChangeLog | 6 ++++++
+ gnome-pty-helper/gnome-pty-helper.c | 5 ++++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 49aa59927ede031871d36903ff29e3d97d3cfd1c
+Author: Christian Persch <chpe src gnome org>
+Date: Fri Dec 26 12:37:42 2008 +0000
+
+ Fix the same typo also in the libinfo check.
+
+ * configure.in: Fix the same typo also in the libinfo check.
+
+ svn path=/trunk/; revision=2356
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 7f53406e47e7b818c2b80c2857c71b6c59dbd3a0
+Author: Halton Huo <halton huo sun com>
+Date: Fri Dec 26 10:34:18 2008 +0000
+
+ Bug 565675 - typo in configure.in cause ncurses checking fail
+
+ 2008-12-26 Halton Huo <halton huo sun com>
+
+ Bug 565675 - typo in configure.in cause ncurses checking fail
+
+ * configure.in: Fix typo for ncurses. s/ncuses/ncurses
+
+
+ svn path=/trunk/; revision=2355
+
+ ChangeLog | 6 ++++++
+ configure.in | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit dc6e4b781ec06fcfd097c0d2878c5f300fd0ef5e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 26 04:13:33 2008 +0000
+
+ Fix warnings.
+
+ 2008-12-25 Behdad Esfahbod <behdad gnome org>
+
+ * src/interpret.c (main):
+ * src/slowcat.c (catfile):
+ * src/table.c (_vte_table_addi), (_vte_table_add):
+ * src/trie.c (_vte_trie_matchx):
+ * src/vte.c (_vte_invalidate_cell), (_vte_terminal_insert_char):
+ * src/vteaccess.c (offset_from_xy),
+ (vte_terminal_accessible_finalize),
+ (vte_terminal_accessible_get_text),
+ (vte_terminal_accessible_get_text_somewhere):
+ * src/vteapp.c (main):
+ * src/vtebg.c (vte_bg_cache_item_free), (vte_bg_cache_add):
+ Fix warnings.
+
+
+ svn path=/trunk/; revision=2354
+
+ ChangeLog | 15 +++++++++++++++
+ src/interpret.c | 9 +++++----
+ src/slowcat.c | 3 ++-
+ src/table.c | 9 +++++----
+ src/trie.c | 2 +-
+ src/vte.c | 6 +++---
+ src/vteaccess.c | 30 +++++++++++++++---------------
+ src/vteapp.c | 12 ++++++++----
+ src/vtebg.c | 12 ++++++------
+ 9 files changed, 60 insertions(+), 38 deletions(-)
+
+commit 0cdef5173bdcaa04d3e13edfbc1279ae6edaef4c
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Fri Dec 26 03:11:32 2008 +0000
+
+ Minor.
+
+ svn path=/trunk/; revision=2353
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 38cafc2aaf4aae3e6e12c995b491f91207794078
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 26 03:10:39 2008 +0000
+
+ Bug 565663 – compile failure because use static function in another .h
+
+ 2008-12-25 Behdad Esfahbod <behdad gnome org>
+
+ Bug 565663 – compile failure because use static function in another .h
+ file
+
+ * src/vte.c: Don't mark extern function inline.
+
+
+ svn path=/trunk/; revision=2352
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 811c7e117e172140b43476fc01400ad8898bdb74
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Dec 17 08:26:19 2008 +0000
+
+ Bug 149631 – gnome-terminal doesn't combine combining chars in utf8
+
+ 2008-12-17 Behdad Esfahbod <behdad gnome org>
+
+ Bug 149631 – gnome-terminal doesn't combine combining chars in utf8
+
+ * src/vteunistr.c:
+ Limit to 9 combining marks per unistr, and a total of 100,000 unistrs.
+ All to prevent OOM.
+
+
+ svn path=/trunk/; revision=2351
+
+ ChangeLog | 8 ++++++++
+ src/vteunistr.c | 10 +++++++---
+ 2 files changed, 15 insertions(+), 3 deletions(-)
+
+commit c1be75bcf1dac887972c877fc0c900ce32bb9544
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 15 20:50:32 2008 +0000
+
+ Released 0.19.4.
+
+ 2008-12-15 Behdad Esfahbod <behdad gnome org>
+
+ * NEWS:
+ * configure.in:
+ Released 0.19.4.
+
+
+ svn path=/trunk/; revision=2349
+
+ ChangeLog | 6 ++++++
+ NEWS | 15 +++++++++++++++
+ configure.in | 4 ++--
+ 3 files changed, 23 insertions(+), 2 deletions(-)
+
+commit baddcfe4934b8e87717c1dd9d02e75e53fc02b98
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Mon Dec 15 20:45:11 2008 +0000
+
+ Fix make check.
+
+ svn path=/trunk/; revision=2348
+
+ doc/reference/vte-docs.sgml | 2 ++
+ doc/reference/vte-sections.txt | 11 +++++++++++
+ 2 files changed, 13 insertions(+), 0 deletions(-)
+
+commit 6afcfe2bce6eeb82ab08efe99003ecc3cd2c1200
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Mon Dec 15 20:30:18 2008 +0000
+
+ Fix doc syntax
+
+ svn path=/trunk/; revision=2347
+
+ src/vteunistr.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit ca92a5e890704d87d6f5d5b9753c57994dc8dfa6
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 15 01:08:12 2008 +0000
+
+ Bug 564535 – check for gperf on build
+
+ 2008-12-14 Behdad Esfahbod <behdad gnome org>
+
+ Bug 564535 – check for gperf on build
+
+ * autogen.sh: Check for gperf.
+
+
+ svn path=/trunk/; revision=2346
+
+ ChangeLog | 6 ++++++
+ autogen.sh | 7 +++++++
+ 2 files changed, 13 insertions(+), 0 deletions(-)
+
+commit de98fae160f3dab8f4812ab1baeddf02fab55d90
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Fri Dec 12 11:29:40 2008 +0000
+
+ Typos
+
+ svn path=/trunk/; revision=2345
+
+ src/vteunistr.c | 22 +++++++++++-----------
+ 1 files changed, 11 insertions(+), 11 deletions(-)
+
+commit d453dce12191a1ee19fa70d83bab013999006385
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 12 11:20:31 2008 +0000
+
+ Document vteunistr.
+
+ 2008-12-12 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/Makefile.am:
+ * src/vteunistr.c (unistr_comp_hash), (unistr_comp_equal),
+ (_vte_unistr_append_unichar), (_vte_unistr_get_base),
+ (_vte_unistr_append_to_string), (_vte_unistr_strlen):
+ * src/vteunistr.h:
+ Document vteunistr.
+
+
+ svn path=/trunk/; revision=2344
+
+ ChangeLog | 9 +++
+ doc/reference/Makefile.am | 1 +
+ src/vteunistr.c | 120 +++++++++++++++++++++++++++++----------------
+ src/vteunistr.h | 52 ++++++++++++++++++--
+ 4 files changed, 134 insertions(+), 48 deletions(-)
+
+commit beb61da0f7d5d1730f532cc2eb37df507a267a87
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Fri Dec 12 09:22:48 2008 +0000
+
+ .
+
+ svn path=/trunk/; revision=2343
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 9bbfcb27af874137d81728b5217de3f386a8f0da
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Fri Dec 12 09:22:06 2008 +0000
+
+ Minor.
+
+ svn path=/trunk/; revision=2342
+
+ ChangeLog | 4 ++++
+ src/vte.c | 6 ++++--
+ src/vteunistr.c | 2 ++
+ src/vteunistr.h | 4 ++--
+ 4 files changed, 12 insertions(+), 4 deletions(-)
+
+commit a902f8eb1112e59109ff14520706bb75f3cf6790
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 12 09:04:00 2008 +0000
+
+ Avoid pointers in the const array.
+
+ 2008-12-12 Behdad Esfahbod <behdad gnome org>
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Avoid pointers in the
+ const array.
+
+
+ svn path=/trunk/; revision=2341
+
+ ChangeLog | 5 +++++
+ src/iso2022.c | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 646a71162cabe13f96627ea6cbeb91864e9fc625
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 12 06:57:09 2008 +0000
+
+ Bug 149631 – gnome-terminal doesn't combine combining chars in utf8
+
+ 2008-12-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 149631 – gnome-terminal doesn't combine combining chars in utf8
+
+ * src/vteunistr.c:
+ * src/vteunistr.h:
+ An extended UTF-32 type that assigns numeric values to UTF-8 sequences
+ on demand. Can be used to efficiently store a string, instead of one
+ character, at each cell.
+
+ * src/vte-private.h:
+ * src/vte.c:
+ * src/vtedraw.c:
+ * src/vtedraw.h:
+ * src/vtepangocairo.c:
+ Port to vteunistr instead of gunichar for cell content.
+
+ * src/vte.c:
+ Handle zerowidth insertions by sticking it on the previous cell.
+
+ * src/iso2022.h:
+ * src/iso2022.c:
+ Cleanup ambiguous-width handling. Handle zero-width chars.
+
+
+ svn path=/trunk/; revision=2340
+
+ ChangeLog | 26 +++++++++-
+ src/Makefile.am | 2 +
+ src/iso2022.c | 90 +++++++++++++++++-----------------
+ src/iso2022.h | 5 +-
+ src/vte-private.h | 3 +-
+ src/vte.c | 103 ++++++++++++++++++++++++++++++++------
+ src/vtedraw.c | 6 +-
+ src/vtedraw.h | 11 ++--
+ src/vtepangocairo.c | 127 +++++++++++++++++++++++++-----------------------
+ src/vteunistr.c | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vteunistr.h | 47 ++++++++++++++++++
+ 11 files changed, 421 insertions(+), 135 deletions(-)
+
+commit 2d0c1717a14e5c735877d45d79668d5519f0e838
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Dec 11 14:05:01 2008 +0000
+
+ Typo
+
+ svn path=/trunk/; revision=2339
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 95c425106ca9a3293ca5c2e8ac630e13d4b9e85f
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Dec 11 13:50:33 2008 +0000
+
+ Bug 564057 – src/pty.c does not compile with
+ --disable-gnome-pty-helper
+
+ * src/pty.c: Build with --disable-gnome-pty-helper. Patch by
+ yselkowitz at users.sourceforge.net .
+
+ svn path=/trunk/; revision=2338
+
+ ChangeLog | 8 ++++++++
+ src/pty.c | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+commit 8756ffe9b4f054b6a9622537a02cfd1d614fe176
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Dec 11 13:50:25 2008 +0000
+
+ Update set-scroll-adjustement docs.
+
+ * src/vte.c: (vte_terminal_class_init): Update set-scroll-adjustement
+ docs.
+
+ svn path=/trunk/; revision=2337
+
+ ChangeLog | 5 +++++
+ src/vte.c | 11 +++++------
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+commit 207f0ebfce521535f55f0f7bdc16912fbbec3f85
+Author: Paolo Borelli <pborelli katamail com>
+Date: Wed Dec 10 21:51:27 2008 +0000
+
+ Bug 562695 - ship pkg-config file for python bindings
+
+ 2008-12-10 Paolo Borelli <pborelli katamail com>
+
+ Bug 562695 - ship pkg-config file for python bindings
+
+ * configure.in:
+ * python/Makefile.am:
+ * python/pyvte.pc.in:
+
+
+ svn path=/trunk/; revision=2336
+
+ ChangeLog | 8 ++++++++
+ configure.in | 1 +
+ python/Makefile.am | 8 +++++++-
+ python/pyvte.pc.in | 11 +++++++++++
+ 4 files changed, 27 insertions(+), 1 deletions(-)
+
+commit 63b25ac4c6669ffd33cfd0dac8913e3a029251d3
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 8 20:17:00 2008 +0000
+
+ Bug 563752 – pangocairo backend recreates cairo_surface_t for background
+
+ 2008-12-08 Behdad Esfahbod <behdad gnome org>
+
+ Bug 563752 – pangocairo backend recreates cairo_surface_t for
+ background drawing
+
+ * src/vte.c (vte_terminal_paint),
+ (vte_terminal_set_scroll_background),
+ (vte_terminal_background_update):
+ * src/vtedraw.c (_vte_draw_new), (_vte_draw_set_background_solid),
+ (_vte_draw_set_background_image),
+ (_vte_draw_set_background_scroll), (_vte_draw_draw_rectangle):
+ * src/vtedraw.h:
+ * src/vtepangocairo.c (_vte_pangocairo_destroy),
+ (_vte_pangocairo_set_background_solid),
+ (_vte_pangocairo_set_background_image),
+ (_vte_pangocairo_set_background_scroll), (_vte_pangocairo_clear),
+ (_vte_pangocairo_clip), (set_source_color_alpha):
+ * src/vteskel.c:
+ Cleanup vte_draw background API. Use a cached cairo_pattern_t in
+ pangocairo backend.
+
+ Also, queue background update on scroll_background change.
+
+
+ svn path=/trunk/; revision=2335
+
+ ChangeLog | 23 +++++++++
+ src/vte.c | 17 ++++---
+ src/vtedraw.c | 55 ++++++++--------------
+ src/vtedraw.h | 32 +++++--------
+ src/vtepangocairo.c | 127 +++++++++++++++++++++++++++++++++-----------------
+ src/vteskel.c | 2 +
+ 6 files changed, 152 insertions(+), 104 deletions(-)
+
+commit d849a02007d2dffdf78c55afea4bf1ffcc526a31
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 8 04:06:05 2008 +0000
+
+ Bug 163213 – Cursor should remain visible when selected
+
+ 2008-12-07 Behdad Esfahbod <behdad gnome org>
+
+ Bug 163213 – Cursor should remain visible when selected
+
+ * src/vte.c (vte_terminal_paint_cursor): Do a reverse hollow cursor
+ if selected but not focused.
+
+
+ svn path=/trunk/; revision=2334
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 3411e97b89c09f3f692d73d2994dc52ffee8164b
+Author: Christian Persch <chpe src gnome org>
+Date: Fri Dec 5 18:58:17 2008 +0000
+
+ Don't modify source_pixbuf. If we're going to change the saturation, first
+
+ * src/vtebg.c: (vte_bg_get_pixmap): Don't modify source_pixbuf. If
+ we're going to change the saturation, first make a copy. Fixes
+ switching background type between fauxtransparency and image in
+ gnome-terminal trunk.
+
+ svn path=/trunk/; revision=2333
+
+ ChangeLog | 7 +++++++
+ src/vtebg.c | 10 +++++++---
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+commit 1862b94fbc5c02dde35c0450e939986e8a097710
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 5 18:35:29 2008 +0000
+
+ Fix scrolling offset. Ray Strode reported that background offset was being
+
+ 2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (_vte_pangocairo_clear): Fix scrolling offset.
+ Ray Strode reported that background offset was being done incorrectly.
+ A negation did it.
+
+
+ svn path=/trunk/; revision=2332
+
+ ChangeLog | 6 ++++++
+ src/vtepangocairo.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 8ff1af9ae267b8893bcc58f7cfebc88e63d549e1
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 5 18:20:41 2008 +0000
+
+ Hook up perf/.
+
+ 2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * Makefile.am:
+ * configure.in:
+ Hook up perf/.
+
+ Also adjust svn:ignore props.
+
+
+ svn path=/trunk/; revision=2331
+
+ ChangeLog | 8 ++++++++
+ Makefile.am | 2 +-
+ configure.in | 1 +
+ 3 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 38744c4de50fc6b2f32957abfadd51dacc9c355b
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 5 18:08:07 2008 +0000
+
+ Released 0.19.3.
+
+ 2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * NEWS:
+ * configure.in:
+ Released 0.19.3.
+
+
+ svn path=/trunk/; revision=2330
+
+ ChangeLog | 6 ++++++
+ NEWS | 9 ++++++++-
+ configure.in | 4 ++--
+ 3 files changed, 16 insertions(+), 3 deletions(-)
+
+commit 6dafe2bd89db102f8a7666908f040115e2767d43
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 5 18:02:21 2008 +0000
+
+ Always call g_array_new() with clear flag set. It incurs no overhead but
+
+ 2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_new_row_data), (_vte_new_row_data_sized),
+ (vte_terminal_match_contents_refresh),
+ (vte_terminal_process_incoming), (vte_terminal_init),
+ (vte_terminal_set_word_chars):
+ Always call g_array_new() with clear flag set. It incurs no overhead
+ but avoids heisenbugs.
+
+
+ svn path=/trunk/; revision=2329
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 20 +++++---------------
+ 2 files changed, 14 insertions(+), 15 deletions(-)
+
+commit 79b2fd9eafdaa40e4de9952366403ab37b0739a0
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 5 17:58:05 2008 +0000
+
+ Use structure assignment instead of memcpy().
+
+ 2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_terminal_insert_char):
+ * src/vteseq.c (vte_sequence_handler_screen_alignment_test):
+ Use structure assignment instead of memcpy().
+
+
+ svn path=/trunk/; revision=2328
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 2 +-
+ src/vteseq.c | 2 +-
+ 3 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 51a2447ac830a017a07db6c71e012758fc0b0528
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 5 17:56:48 2008 +0000
+
+ Remove unneeded checks. They were masking bugs.
+
+ 2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_terminal_cleanup_tab_fragments_at_cursor): Remove
+ unneeded checks. They were masking bugs.
+
+
+ svn path=/trunk/; revision=2327
+
+ ChangeLog | 5 +++++
+ src/vte.c | 12 ++----------
+ 2 files changed, 7 insertions(+), 10 deletions(-)
+
+commit fc0f0d26e7955e1aa7a155a4ae8a799ebfbb1d83
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 5 17:53:49 2008 +0000
+
+ Red Hat Bug 474618 - gnome-terminal sometime leaves empty begining of the
+
+ 2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ Red Hat Bug 474618 - gnome-terminal sometime leaves empty begining
+ of the line
+
+ * src/vte.c (_vte_terminal_insert_char): Really fix the bug this time.
+
+
+ svn path=/trunk/; revision=2326
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 5 +++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit ef2d5fed42be09def0d96603a840451c9f10aa0a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 5 15:04:24 2008 +0000
+
+ Build fixes.
+
+ 2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ Build fixes.
+
+ * NEWS:
+ * configure.in:
+ Released 0.19.2.
+
+
+ svn path=/trunk/; revision=2324
+
+ ChangeLog | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit 71df6b432b99b8882eef2f8088fbd9f01dada342
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Fri Dec 5 15:03:27 2008 +0000
+
+ More build fixes
+
+ svn path=/trunk/; revision=2323
+
+ src/Makefile.am | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+commit af34fea9546f00378e4784764c7bf1afb60717ca
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Fri Dec 5 14:52:42 2008 +0000
+
+ Fix build.
+
+ svn path=/trunk/; revision=2322
+
+ src/reaper.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit f33eb5d98c542a672ecf0fbb0875a1b03a28034c
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Fri Dec 5 14:30:48 2008 +0000
+
+ Fix version numbers here.
+
+ svn path=/trunk/; revision=2321
+
+ NEWS | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 6df0f80c2d15c9dbe2bb6ad5837155dd6f75a33b
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 5 14:29:49 2008 +0000
+
+ Released 0.19.2.
+
+ 2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * NEWS:
+ * configure.in:
+ Released 0.19.2.
+
+
+ svn path=/trunk/; revision=2320
+
+ ChangeLog | 10 ++++++++--
+ NEWS | 21 +++++++++++++++++++++
+ configure.in | 4 ++--
+ 3 files changed, 31 insertions(+), 4 deletions(-)
+
+commit 258546a8f8c0a3c6a3d3ce377234448b45ca83b5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 5 14:23:28 2008 +0000
+
+ Bug 474618 - gnome-terminal sometime leaves empty begining of the line
+
+ 2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ Bug 474618 - gnome-terminal sometime leaves empty begining of the
+ line
+
+ * src/vte.c (_vte_terminal_cleanup_tab_fragments_at_cursor): continue
+ instead of break'ing out of the loop.
+
+
+ svn path=/trunk/; revision=2319
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+commit 97b34fddd90537c17a5ff66a5a92596b34f20c6c
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Dec 4 21:25:03 2008 +0000
+
+ Bug 563274 – Misspelled word in src code
+
+ 2008-12-04 Behdad Esfahbod <behdad gnome org>
+
+ Bug 563274 – Misspelled word in src code
+
+ * src/vte.c (vte_terminal_process_incoming): Fix typo.
+
+
+ svn path=/trunk/; revision=2318
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 7d03d88f40ee4b8e9a0d3f9a391bca231a31cc62
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Dec 3 00:56:02 2008 +0000
+
+ Bug 563024 – In alternate-screen, selection can copy out of screen
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 563024 – In alternate-screen, selection can copy out of screen
+ boundaries
+
+ * src/vte.c (vte_terminal_extend_selection_expand),
+ (vte_terminal_extend_selection): Make sure current selection row is in
+ t
+ he
+ visible screen.
+
+ I have a deja vu of fixing this bug like two years ago...
+
+
+ svn path=/trunk/; revision=2317
+
+ ChangeLog | 11 +++++++++++
+ src/vte.c | 22 ++++++++++++++++++++--
+ 2 files changed, 31 insertions(+), 2 deletions(-)
+
+commit 0094f898d9ef249c0b48f95b965385fb14529c6b
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 22:10:19 2008 +0000
+
+ Bug 552096 – Detect tgetent if provided by libtinfo
+
+ * configure.in: Rewrote tgetent checks to be more readable. Also check
+ for tgetent in libtinfo.
+ * src/keymap.c: (_vte_keymap_map), (_vte_keymap_key_is_modifier):
+ * src/ssfe.c: Adjust includes accordingly.
+
+ svn path=/trunk/; revision=2316
+
+ ChangeLog | 9 +++++++++
+ configure.in | 51 ++++++++++++++++++++++++++++++++++++---------------
+ src/keymap.c | 35 ++++++++++++-----------------------
+ src/ssfe.c | 22 ++++++++++------------
+ 4 files changed, 67 insertions(+), 50 deletions(-)
+
+commit a1bac9039b195be3dfee1607adc5d8b6d9659a55
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 22:10:13 2008 +0000
+
+ Show the correct version in Since: and Deprecated: annotations.
+
+ * src/vte.c: (vte_terminal_class_init): Show the correct version in
+ Since: and Deprecated: annotations.
+
+ svn path=/trunk/; revision=2315
+
+ ChangeLog | 5 ++++
+ src/vte.c | 78 ++++++++++++++++++++++++++++++------------------------------
+ 2 files changed, 44 insertions(+), 39 deletions(-)
+
+commit d1c56ce8993a6543d817f5561f873fa428efa7c3
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 20:38:06 2008 +0000
+
+ Don't do fancy rounding for row selection, only for column.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_start_selection),
+ (vte_terminal_extend_selection): Don't do fancy rounding for row
+ selection, only for column.
+
+
+ svn path=/trunk/; revision=2314
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 47 ++++++++++++++---------------------------------
+ 2 files changed, 20 insertions(+), 33 deletions(-)
+
+commit c15f5ce6b62833aa848e29bec5d097eeb5a6bd80
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 20:29:09 2008 +0000
+
+ Call function instead of open coding.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_invalidate_selection),
+ (vte_terminal_start_selection): Call function instead of open coding.
+
+
+ svn path=/trunk/; revision=2313
+
+ ChangeLog | 5 +++++
+ src/vte.c | 33 ++++++++++++---------------------
+ 2 files changed, 17 insertions(+), 21 deletions(-)
+
+commit 36e0a0aa08f274497f03869a1d7eb84a5cef992d
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 20:16:27 2008 +0000
+
+ Cache the full ASCII range if Latin uses the default language.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.h:
+ * src/vtepangocairo.c (font_info_cache_ascii):
+ Cache the full ASCII range if Latin uses the default language.
+
+
+ svn path=/trunk/; revision=2312
+
+ ChangeLog | 6 ++++++
+ src/vtedraw.h | 10 ++++++++--
+ src/vtepangocairo.c | 15 ++++++++++++---
+ 3 files changed, 26 insertions(+), 5 deletions(-)
+
+commit 4a3768afa819802f533c8ec73cc166010b368000
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 19:57:47 2008 +0000
+
+ Respect PangoLanguage set on a widget's PangoContext.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (context_hash), (context_equal),
+ (font_info_create_for_context), (font_info_create_for_screen),
+ (font_info_create_for_widget): Respect PangoLanguage set on a widget's
+ PangoContext.
+
+
+ svn path=/trunk/; revision=2311
+
+ ChangeLog | 7 +++++++
+ src/vtepangocairo.c | 24 ++++++++++++++++--------
+ 2 files changed, 23 insertions(+), 8 deletions(-)
+
+commit 86c55a0b613311fbf4c7eab3cfa40649d7c131bb
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 19:14:26 2008 +0000
+
+ Remove CJK fullwidth measurement hacks. Pango doesn't need these. We're
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_measure_font): Remove CJK fullwidth
+ measurement hacks. Pango doesn't need these. We're down to one
+ FcFontSort() instead of two during initialization.
+
+
+ svn path=/trunk/; revision=2310
+
+ ChangeLog | 6 ++++++
+ src/vtepangocairo.c | 27 +++------------------------
+ 2 files changed, 9 insertions(+), 24 deletions(-)
+
+commit 8ad856610c11cfe877eb7baca8c13eeb1a65e5fd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 18:36:33 2008 +0000
+
+ Bug 559818 – redundant selection-changed signal on deselection
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 559818 – redundant selection-changed signal on deselection
+
+ * src/vte.c (vte_terminal_start_selection),
+ (vte_terminal_extend_selection): Fix all redundant selection-changed
+ signals. Including those on double-click.
+
+
+ svn path=/trunk/; revision=2309
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 14 ++++++++------
+ 2 files changed, 16 insertions(+), 6 deletions(-)
+
+commit 28995f5240a7a14795de94578c50345cd08bb8b6
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Tue Dec 2 18:22:39 2008 +0000
+
+ Add missing I_() decorator
+
+ svn path=/trunk/; revision=2308
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit d9c2e0eabe14ec07dfe4d06f1f474c5952f2c6a4
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 17:59:11 2008 +0000
+
+ Rewrite text selection. In particular, fix block_mode.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c:
+ Rewrite text selection. In particular, fix block_mode.
+
+
+ svn path=/trunk/; revision=2307
+
+ ChangeLog | 6 +
+ src/vte-private.h | 3 +-
+ src/vte.c | 559 ++++++++++++++++++++++++++++-------------------------
+ 3 files changed, 301 insertions(+), 267 deletions(-)
+
+commit 66ef6a3d640343d56167394e4447a80e729dcd8c
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 15:43:43 2008 +0000
+
+ Update.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * HACKING: Update.
+
+
+ svn path=/trunk/; revision=2306
+
+ ChangeLog | 4 ++++
+ HACKING | 14 ++++++++++++++
+ 2 files changed, 18 insertions(+), 0 deletions(-)
+
+commit ea2f60c5587f34deeb6fdef293e44adef89e1522
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 15:40:12 2008 +0000
+
+ Mouse tracking cleanup.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_set_pointer_visible),
+ (vte_terminal_get_mouse_tracking_info),
+ (vte_terminal_send_mouse_button_internal),
+ (vte_terminal_maybe_send_mouse_button),
+ (vte_terminal_maybe_send_mouse_drag), (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release),
+ (vte_terminal_scroll), (vte_terminal_reset):
+ * src/vteseq.c (vte_sequence_handler_decset_internal):
+ Mouse tracking cleanup.
+
+
+ svn path=/trunk/; revision=2305
+
+ ChangeLog | 13 +++++
+ src/vte-private.h | 18 ++++--
+ src/vte.c | 151 ++++++++++++++++++++++++-----------------------------
+ src/vteseq.c | 20 ++++----
+ 4 files changed, 103 insertions(+), 99 deletions(-)
+
+commit 51c0a9c523b7a5651593236a7894370aeee2d3f9
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Tue Dec 2 14:55:55 2008 +0000
+
+ Minor
+
+ svn path=/trunk/; revision=2304
+
+ src/vte.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit ec2d1eeb60cff564461ef4f0c0c1de2590e9abab
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 14:53:59 2008 +0000
+
+ Add -Wno-switch-enum warning flag as we are not -Wswitch-enum clean.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Add -Wno-switch-enum warning flag as we are not
+ -Wswitch-enum clean.
+
+
+ svn path=/trunk/; revision=2303
+
+ ChangeLog | 5 +++++
+ configure.in | 5 +----
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+commit 1501d6c5893cfd57ba1bba6f26c04eb7289529b5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 14:45:30 2008 +0000
+
+ Cut one third of the 400-line function out into a function of its own.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_extend_selection_on_type),
+ (vte_terminal_extend_selection):
+ Cut one third of the 400-line function out into a function of its own.
+
+
+ svn path=/trunk/; revision=2302
+
+ ChangeLog | 6 ++
+ src/vte.c | 275 ++++++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 152 insertions(+), 129 deletions(-)
+
+commit 0ae3274d3b2827760a89e28f04ddcef93f2e3341
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 14:33:57 2008 +0000
+
+ Revert previous change.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_extend_selection): Revert previous change.
+
+
+ svn path=/trunk/; revision=2301
+
+ ChangeLog | 4 ++++
+ src/vte.c | 4 ----
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+commit ed8607b74bb6d53b844ab740422b3aef89e2f915
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 13:54:42 2008 +0000
+
+ Add a shortcircuit check.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_extend_selection): Add a shortcircuit
+ check.
+
+
+ svn path=/trunk/; revision=2300
+
+ ChangeLog | 5 +++++
+ src/vte.c | 4 ++++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit df9641608756c1ca56deda15ae968400652728d5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 13:49:21 2008 +0000
+
+ Change mouse coordinates type from double to long.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_send_mouse_button_internal),
+ (vte_terminal_maybe_send_mouse_drag), (cursor_inside_match),
+ (vte_terminal_match_hilite_show),
+ (vte_terminal_match_hilite_update), (vte_terminal_match_hilite),
+ (vte_terminal_extend_selection), (vte_terminal_autoscroll),
+ (vte_terminal_motion_notify), (vte_terminal_button_press),
+ (vte_terminal_button_release):
+ Change mouse coordinates type from double to long.
+
+
+ svn path=/trunk/; revision=2299
+
+ ChangeLog | 12 ++++++
+ src/vte-private.h | 4 +-
+ src/vte.c | 110 ++++++++++++++++++++++++++--------------------------
+ 3 files changed, 69 insertions(+), 57 deletions(-)
+
+commit 543ac083f713b3cf9c0eb85c8b12ea9155ba66ab
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 13:21:31 2008 +0000
+
+ Cleanup selection code a bit more.
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_start_selection),
+ (vte_terminal_extend_selection):
+ Cleanup selection code a bit more.
+
+
+ svn path=/trunk/; revision=2298
+
+ ChangeLog | 7 +++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 42 ++++++++++++------------------------------
+ 3 files changed, 20 insertions(+), 31 deletions(-)
+
+commit 5b53f739162260fa7b0efa2f7fc3ffde84d6b3d8
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 13:08:16 2008 +0000
+
+ Merge selection_origin and selection_restart_origin as only one was being
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_start_selection),
+ (vte_terminal_extend_selection):
+ Merge selection_origin and selection_restart_origin as only one was
+ being used at a time.
+
+
+ svn path=/trunk/; revision=2297
+
+ ChangeLog | 8 ++++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 6 +-----
+ 3 files changed, 10 insertions(+), 6 deletions(-)
+
+commit 47cffc6431a47e04001cc8576c892b6f666a8213
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 12:51:10 2008 +0000
+
+ Bug 471480 – select single character Bug 110371 – Cannot select
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 471480 – select single character
+ Bug 110371 – Cannot select newline at end of full line
+
+ * src/vte-private.h:
+ * src/vte.c (find_start_column), (find_end_column),
+ (vte_terminal_start_selection), (math_div),
+ (vte_terminal_extend_selection):
+ Make selection work more I-beam-like.
+
+
+ svn path=/trunk/; revision=2296
+
+ ChangeLog | 11 +++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 80 ++++++++++++++++++++++++++++++++++++++++------------
+ 3 files changed, 73 insertions(+), 20 deletions(-)
+
+commit c128acf052463ed454a951012b245d3c8a4fd985
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 12:29:30 2008 +0000
+
+ Bug 112172 – Get rid of VteReaper
+
+ * src/reaper.h: Deprecate.
+
+ svn path=/trunk/; revision=2295
+
+ ChangeLog | 6 ++++++
+ src/reaper.h | 5 ++++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 8bf187434817ce38611efb8b9d1648f9cba00665
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 12:26:25 2008 +0000
+
+ Enable maintainer mode by default. Define more deprecation defines, and
+
+ * configure.in: Enable maintainer mode by default. Define more
+ deprecation defines, and define the *_DISABLE_SINGLE_INCLUDES defines.
+ Enable deprecations by default in maintainer mode.
+ * src/vteapp.c: Undef VTE_DISABLE_DEPRECATED here.
+
+ svn path=/trunk/; revision=2294
+
+ ChangeLog | 7 +++++++
+ configure.in | 51 +++++++++++++++++++++++++++++++++++++--------------
+ src/vteapp.c | 2 ++
+ 3 files changed, 46 insertions(+), 14 deletions(-)
+
+commit e89b9c9d5565c2c52e9e5c39cf152bfdce6f4c2f
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 12:26:18 2008 +0000
+
+ Move VTE_UTF8_BPC definition from configure to vte-private.h. Include
+
+ * configure.in:
+ * src/vte-private.h: Move VTE_UTF8_BPC definition from configure to
+ vte-private.h.
+ * src/vteconv.c: Include vte-private.h here.
+
+ svn path=/trunk/; revision=2293
+
+ ChangeLog | 7 +++++++
+ configure.in | 3 ---
+ src/vte-private.h | 3 +++
+ src/vteconv.c | 1 +
+ 4 files changed, 11 insertions(+), 3 deletions(-)
+
+commit 72a984985180449122f855a271b4a302c28bdf76
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 12:26:13 2008 +0000
+
+ Remove VTE_INVALID_SOURCE definition and just use 0 directly.
+
+ * src/vte-private.h:
+ * src/vte.c: (mark_input_source_invalid),
+ (_vte_terminal_connect_pty_read), (mark_output_source_invalid),
+ (_vte_terminal_connect_pty_write),
+ (_vte_terminal_disconnect_pty_read),
+ (_vte_terminal_disconnect_pty_write),
+ (_vte_terminal_enable_input_source), (remove_cursor_timeout),
+ (vte_terminal_key_press), (vte_terminal_focus_in),
+ (vte_terminal_focus_out), (vte_terminal_init),
+ (vte_terminal_unrealize), (vte_terminal_expose),
+ (vte_terminal_background_update), (add_update_timeout),
+ (remove_from_active_list), (vte_terminal_add_process_timeout),
+ (process_timeout), (update_repeat_timeout), (update_timeout): Remove
+ VTE_INVALID_SOURCE definition and just use 0 directly.
+
+ svn path=/trunk/; revision=2292
+
+ ChangeLog | 17 ++++++++++
+ src/vte-private.h | 1 -
+ src/vte.c | 86 ++++++++++++++++++++++++++--------------------------
+ 3 files changed, 60 insertions(+), 44 deletions(-)
+
+commit 0d8b243122843d15e7d0bdc47a8d8858a75a286a
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 12:26:06 2008 +0000
+
+ Bug 560667 – invalid definition of VTE_INVALID_SOURCE
+
+ * src/vte-private.h: Fix VTE_INVALID_SOURCE define to use 0 instead of
+ -1.
+
+ svn path=/trunk/; revision=2291
+
+ ChangeLog | 7 +++++++
+ src/vte-private.h | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit d34606b64581e58b2c5d3878f4e54e4f73da2be3
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 12:25:58 2008 +0000
+
+ Remove two AC_DEFINEs from here. Define VTE_INVALID_SOURCE here for now.
+
+ * configure.in: Remove two AC_DEFINEs from here.
+ * src/vte-private.h: Define VTE_INVALID_SOURCE here for now.
+
+ svn path=/trunk/; revision=2290
+
+ ChangeLog | 5 +++++
+ configure.in | 2 --
+ src/vte-private.h | 1 +
+ 3 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 3c751231fbc7a147032e3e7c00edd88191e83613
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 12:25:52 2008 +0000
+
+ Bug 112172 – Get rid of VteReaper
+
+ * src/reaper.c: (vte_reaper_child_watch_cb),
+ (vte_reaper_add_child), (vte_reaper_init),
+ (vte_reaper_constructor), (vte_reaper_finalize),
+ (vte_reaper_class_init), (vte_reaper_get), (child_exited), (main):
+ * src/reaper.h: Prepare for removal of Reaper in vte1.0 by removing
+ the unused pre-glib-2.4 code from Reaper.
+
+ svn path=/trunk/; revision=2289
+
+ ChangeLog | 11 +++++
+ src/reaper.c | 133 +---------------------------------------------------------
+ src/reaper.h | 4 +-
+ 3 files changed, 15 insertions(+), 133 deletions(-)
+
+commit 2309a9d0135abc1556e201dfb3c87e28525b53b4
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 12:25:42 2008 +0000
+
+ Catch the child-exited signal to the child's exit code.
+
+ * src/vteapp.c: (main): Catch the child-exited signal to the child's
+ exit code.
+
+ svn path=/trunk/; revision=2288
+
+ ChangeLog | 5 +++++
+ src/vteapp.c | 8 ++++++++
+ 2 files changed, 13 insertions(+), 0 deletions(-)
+
+commit 44dcc1548032d9d32478408ea44b55392af518e5
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Dec 2 11:28:18 2008 +0000
+
+ Intern the signal names.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_class_init): Intern the signal names.
+
+ svn path=/trunk/; revision=2287
+
+ ChangeLog | 5 ++++
+ src/vte-private.h | 2 +
+ src/vte.c | 62 ++++++++++++++++++++++++++--------------------------
+ 3 files changed, 38 insertions(+), 31 deletions(-)
+
+commit 576393b15d21724cfd442af22fc94c97d8f2963e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 10:57:50 2008 +0000
+
+ Do not discard motion notify events with coordinates out of our
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_motion_notify): Do not discard motion notify
+ events with coordinates out of our allocation, or when the cell under
+ the cursor didn't change. These are useful for extending selection
+ and for sub-cell selection details, as well as app-requested all
+ motion tracking.
+
+
+ svn path=/trunk/; revision=2286
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 17 -----------------
+ 2 files changed, 8 insertions(+), 17 deletions(-)
+
+commit 11bd8553aba33e2e58cf83cd4ceb5ed12c39dfe0
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 10:50:54 2008 +0000
+
+ Bug 541441 – Dehighlight links on visibility notify?
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 541441 – Dehighlight links on visibility notify?
+
+ * src/vte.c (vte_terminal_focus_in), (vte_terminal_enter): Move match
+ highlight enabling into "enter" event instead of "focus in".
+
+
+ svn path=/trunk/; revision=2285
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 11 +++++++----
+ 2 files changed, 14 insertions(+), 4 deletions(-)
+
+commit 9996b7fa094edb9312467400aa5a362e6563bf0a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 10:10:46 2008 +0000
+
+ Simplify mouse event tracking by using a single int instead of five
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_set_pointer_visible),
+ (vte_terminal_maybe_send_mouse_button),
+ (vte_terminal_maybe_send_mouse_drag), (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release),
+ (vte_terminal_scroll), (vte_terminal_reset):
+ * src/vteseq.c (vte_sequence_handler_decset_internal):
+ Simplify mouse event tracking by using a single int instead of five
+ booleans.
+
+
+ svn path=/trunk/; revision=2284
+
+ ChangeLog | 12 ++++++++
+ src/vte-private.h | 12 +++++---
+ src/vte.c | 76 +++++++++++++---------------------------------------
+ src/vteseq.c | 64 ++++++++++----------------------------------
+ 4 files changed, 53 insertions(+), 111 deletions(-)
+
+commit 618ac353dbb677659b54b008a7b8bff73ddd5545
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 08:56:53 2008 +0000
+
+ Rename struct selection_cell_coords members from x,y to col,row for
+
+ 2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_deselect_all),
+ (vte_terminal_process_incoming), (vte_cell_is_selected),
+ (vte_terminal_copy), (vte_terminal_start_selection),
+ (vte_terminal_extend_selection), (vte_terminal_select_all),
+ (vte_terminal_paint), (_vte_terminal_get_start_selection),
+ (_vte_terminal_get_end_selection), (_vte_terminal_select_text):
+ Rename struct selection_cell_coords members from x,y to col,row for
+ clarity.
+
+
+ svn path=/trunk/; revision=2283
+
+ ChangeLog | 12 +++
+ src/vte-private.h | 2 +-
+ src/vte.c | 277 +++++++++++++++++++++++++++--------------------------
+ 3 files changed, 153 insertions(+), 138 deletions(-)
+
+commit 39f87a7d78ea8b3cfda9c3a1c83f3e0306a8f590
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 00:36:12 2008 +0000
+
+ Released 0.19.1.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * NEWS:
+ * configure.in:
+ Released 0.19.1.
+
+
+ svn path=/trunk/; revision=2281
+
+ ChangeLog | 6 +++++
+ NEWS | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ configure.in | 6 ++--
+ 3 files changed, 65 insertions(+), 6 deletions(-)
+
+commit cf78263e0df29e916603b3128c5bf9e11dbeef21
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 2 00:11:48 2008 +0000
+
+ Copy check-doc-syntax.sh tests from cairo and fix doc bugs.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/Makefile.am:
+ * doc/reference/check-doc-syntax.sh:
+ * src/Makefile.am:
+ * src/check-doc-syntax.sh:
+ * src/vte.c (vte_terminal_catch_child_exited),
+ (vte_terminal_class_init):
+ * src/vte.h:
+ * src/vtepangocairo.c:
+ Copy check-doc-syntax.sh tests from cairo and fix doc bugs.
+
+
+ svn path=/trunk/; revision=2280
+
+ ChangeLog | 12 ++++++
+ doc/reference/Makefile.am | 9 +++-
+ doc/reference/check-doc-syntax.sh | 11 +++++
+ src/Makefile.am | 5 ++-
+ src/check-doc-syntax.sh | 77 +++++++++++++++++++++++++++++++++++++
+ src/vte.c | 14 +++---
+ src/vte.h | 2 +-
+ src/vtepangocairo.c | 2 +-
+ 8 files changed, 120 insertions(+), 12 deletions(-)
+
+commit f496e59520b4bd307e9351c33d9750117e4d3612
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Mon Dec 1 23:57:53 2008 +0000
+
+ More
+
+ svn path=/trunk/; revision=2279
+
+ doc/reference/vte-docs.sgml | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit 5b86070b847a50d981bb2fdd06157d8af92dca31
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 23:56:23 2008 +0000
+
+ Remove reaper docs.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/tmpl/vte-unused.sgml:
+ * doc/reference/vte-sections.txt:
+ Remove reaper docs.
+
+
+ svn path=/trunk/; revision=2278
+
+ ChangeLog | 6 ++++++
+ doc/reference/tmpl/vte-unused.sgml | 30 ++++++++++++++++++++++++++++++
+ doc/reference/vte-sections.txt | 16 ----------------
+ 3 files changed, 36 insertions(+), 16 deletions(-)
+
+commit 6f16a40e06bec191d4555df1d0da33c8b068da0b
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Mon Dec 1 23:53:59 2008 +0000
+
+ Update templates
+
+ svn path=/trunk/; revision=2277
+
+ doc/reference/tmpl/vte-unused.sgml | 6 ++++++
+ doc/reference/tmpl/vte.sgml | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit b708b7bc83a2b7555fe7bfa5877c81614807ac1b
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Mon Dec 1 23:53:28 2008 +0000
+
+ Fix typo
+
+ svn path=/trunk/; revision=2276
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 6c3095b83908f4b9b462e35d6f49d1c7077d51b7
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 23:50:02 2008 +0000
+
+ Bug 562806 – crash in Terminal: Typing "cd " just after ...
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ Bug 562806 – crash in Terminal: Typing "cd " just after ...
+
+ * src/vte.c (_vte_terminal_cleanup_tab_fragments_at_cursor):
+ Fix possible NULL dereference.
+
+ * src/vteseq.c (vte_sequence_handler_ta):
+ Fix tab fragments to have \t as c.
+
+
+ svn path=/trunk/; revision=2275
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 3 ++-
+ src/vteseq.c | 2 +-
+ 3 files changed, 13 insertions(+), 2 deletions(-)
+
+commit f00b38dacf322c101ef412d029119e40db5f4a62
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Dec 1 17:33:06 2008 +0000
+
+ Prepare 0.19.0.
+
+ * NEWS:
+ * configure.in: Prepare 0.19.0.
+
+ svn path=/trunk/; revision=2274
+
+ ChangeLog | 5 +++++
+ NEWS | 6 ++++++
+ configure.in | 6 +++---
+ 3 files changed, 14 insertions(+), 3 deletions(-)
+
+commit cb0b51a1a28ae29471930ca6625c3cbe4e503dca
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Dec 1 14:56:47 2008 +0000
+
+ Bug 562511 – scrollbar doesn't sit at the bottom
+
+ * src/vte.c: (vte_terminal_init),
+ (vte_terminal_set_scrollback_lines): Always update the scrollback
+ lines, even if the setting hasn't changed. Work-around to fix bug
+ #562511.
+
+ svn path=/trunk/; revision=2273
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 4 ++++
+ 2 files changed, 13 insertions(+), 0 deletions(-)
+
+commit 2b909705993d390e5532f442345441ea769ead2a
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Dec 1 14:56:40 2008 +0000
+
+ Fix visible-bell property.
+
+ * src/vte.c: (vte_terminal_class_init): Fix visible-bell property.
+
+ svn path=/trunk/; revision=2272
+
+ ChangeLog | 4 ++++
+ src/vte.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 9a4c4967743634ac09425c23e2a818c393ebb183
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Dec 1 14:56:33 2008 +0000
+
+ Rename font property to "font-desc" to be more in line with other
+
+ * src/vte.c: (vte_terminal_set_font_full_internal),
+ (vte_terminal_class_init): Rename font property to "font-desc" to be
+ more in line with other properties of this type in gtk.
+
+ svn path=/trunk/; revision=2271
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 14 +++++++-------
+ 2 files changed, 13 insertions(+), 7 deletions(-)
+
+commit 771333da042a7d0c1b9b49edd6ad342201c5ec0a
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Dec 1 14:56:26 2008 +0000
+
+ Add gobject notification debugging.
+
+ * src/vteapp.c: (main): Add gobject notification debugging.
+
+ svn path=/trunk/; revision=2270
+
+ ChangeLog | 4 ++++
+ src/vteapp.c | 32 +++++++++++++++++++++++++++++++-
+ 2 files changed, 35 insertions(+), 1 deletions(-)
+
+commit 3129dc10ec91dee3486f01a6217815948e985ebc
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 09:50:04 2008 +0000
+
+ Simplify standout handling code.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_terminal_termcap_string_same_as_for),
+ (vte_sequence_handler_se), (vte_sequence_handler_so):
+ Simplify standout handling code.
+
+
+ svn path=/trunk/; revision=2269
+
+ ChangeLog | 6 +++
+ src/vteseq.c | 117 ++++++++++++++++++++++------------------------------------
+ 2 files changed, 50 insertions(+), 73 deletions(-)
+
+commit 491c7df4a12e10f59e0f91f7f4918af9e5a658f7
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Mon Dec 1 09:30:29 2008 +0000
+
+ Minor.
+
+ svn path=/trunk/; revision=2268
+
+ src/vteseq.c | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 1d1ec4d77b56edae5d2a780f856ec6b0848fca8e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 09:27:23 2008 +0000
+
+ Rip out VTE_SEQUENCE_HANDLER_PROTO.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Rip out VTE_SEQUENCE_HANDLER_PROTO.
+
+
+ svn path=/trunk/; revision=2267
+
+ ChangeLog | 4 +
+ src/vteseq.c | 397 ++++++++++++++++++++++++++++++++++------------------------
+ 2 files changed, 240 insertions(+), 161 deletions(-)
+
+commit 3d73ff342fc4a030f957088095980bb2d0d7da81
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 09:19:34 2008 +0000
+
+ Rip out vte_sequence_handler_invoke.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Rip out vte_sequence_handler_invoke.
+
+
+ svn path=/trunk/; revision=2266
+
+ ChangeLog | 4 ++++
+ src/vteseq.c | 15 ++++++---------
+ 2 files changed, 10 insertions(+), 9 deletions(-)
+
+commit 0146a031b80e216e16ab934b6c447c19271de867
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 09:16:35 2008 +0000
+
+ Rip out VTE_SEQUENCE_HANDLER_INVOKE.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Rip out VTE_SEQUENCE_HANDLER_INVOKE.
+
+
+ svn path=/trunk/; revision=2265
+
+ ChangeLog | 4 +++
+ src/vteseq.c | 65 +++++++++++++++++++++++++++------------------------------
+ 2 files changed, 35 insertions(+), 34 deletions(-)
+
+commit 731b0e50cbc347bd9a1555b40464c421b1f9a2ed
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 09:14:20 2008 +0000
+
+ Rip out VTE_SEQUENCE_HANDLER_REFERENCE.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Rip out VTE_SEQUENCE_HANDLER_REFERENCE.
+
+
+ svn path=/trunk/; revision=2264
+
+ ChangeLog | 4 ++++
+ src/vteseq.c | 52 +++++++++++++++++++---------------------------------
+ 2 files changed, 23 insertions(+), 33 deletions(-)
+
+commit 491f866c452ea013f9c3e99612261224019bbb95
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 09:11:00 2008 +0000
+
+ Rip out the gcc label vtable code.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (_vte_terminal_handle_sequence): Rip out the gcc label
+ vtable code.
+
+
+ svn path=/trunk/; revision=2263
+
+ ChangeLog | 5 +++
+ src/vteseq.c | 95 ----------------------------------------------------------
+ 2 files changed, 5 insertions(+), 95 deletions(-)
+
+commit 91dc211fdec31229d2a3d56d64f6ef6bb83447dd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 09:05:56 2008 +0000
+
+ Some cleanup of the gcc label vtable code before I rip it out.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (display_control_sequence),
+ (_vte_terminal_handle_sequence):
+ Some cleanup of the gcc label vtable code before I rip it out.
+
+
+ svn path=/trunk/; revision=2262
+
+ ChangeLog | 6 ++
+ src/vteseq.c | 211 ++++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 115 insertions(+), 102 deletions(-)
+
+commit 849ab9282616faffd51c55a275c4ca8f57d531d7
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 08:10:01 2008 +0000
+
+ Move some code around.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_sequence_handler_set_title_internal),
+ (vte_sequence_handler_set_mode_internal),
+ (vte_sequence_handler_invoke_internal):
+ Move some code around.
+
+
+ svn path=/trunk/; revision=2261
+
+ ChangeLog | 7 ++
+ src/vteseq.c | 231 ++++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 126 insertions(+), 112 deletions(-)
+
+commit da600cbfb8772a94c7af9dc2d1ed2c1bcb35823a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 08:07:06 2008 +0000
+
+ Remove excess initializer.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteskel.c: Remove excess initializer.
+
+
+ svn path=/trunk/; revision=2260
+
+ ChangeLog | 4 ++++
+ src/vteskel.c | 1 -
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit a4ae36c60d4e2b2d9303e6edcaa42aca8b7d5858
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 08:05:34 2008 +0000
+
+ #include <config.h> instead of "../config.h".
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/buffer.c:
+ * src/caps.c:
+ * src/dumpkeys.c:
+ * src/interpret.c:
+ * src/iso2022.c:
+ * src/keymap.c:
+ * src/matcher.c:
+ * src/mev.c:
+ * src/pty.c:
+ * src/reaper.c:
+ * src/reflect.c:
+ * src/ring.c:
+ * src/slowcat.c:
+ * src/ssfe.c:
+ * src/table.c:
+ * src/trie.c:
+ * src/vteaccess.c:
+ * src/vtebg.c:
+ * src/vteconv.c:
+ * src/vtedraw.c:
+ * src/vteseq.c:
+ * src/vteskel.c:
+ * src/xticker.c:
+ #include <config.h> instead of "../config.h".
+
+
+ svn path=/trunk/; revision=2259
+
+ ChangeLog | 27 +++++++++++++++++++++++++++
+ src/buffer.c | 2 +-
+ src/caps.c | 2 +-
+ src/dumpkeys.c | 2 +-
+ src/interpret.c | 2 +-
+ src/iso2022.c | 2 +-
+ src/keymap.c | 2 +-
+ src/matcher.c | 2 +-
+ src/mev.c | 2 +-
+ src/pty.c | 2 +-
+ src/reaper.c | 2 +-
+ src/reflect.c | 2 +-
+ src/ring.c | 2 +-
+ src/slowcat.c | 2 +-
+ src/ssfe.c | 2 +-
+ src/table.c | 2 +-
+ src/trie.c | 2 +-
+ src/vteaccess.c | 2 +-
+ src/vtebg.c | 2 +-
+ src/vteconv.c | 2 +-
+ src/vtedraw.c | 2 +-
+ src/vteseq.c | 2 +-
+ src/vteskel.c | 2 +-
+ src/xticker.c | 2 +-
+ 24 files changed, 50 insertions(+), 23 deletions(-)
+
+commit e58d84cba5a3c103465446c1f087c94b556f48b2
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 08:03:30 2008 +0000
+
+ Some wild crack to build the vtable using gcc extension for labels as
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Some wild crack to build the vtable using gcc
+ extension for labels as values. The advantage is that we get down to
+ an empty .data for vteseq.o but .text grows considerably. And we have
+ to use nested functions, and #define static auto. It's really ugly.
+ I'm going to remove it in the next commit or the one after. Just
+ wanted to record it here for posterity.
+
+
+ svn path=/trunk/; revision=2258
+
+ ChangeLog | 9 ++++
+ src/vteseq.c | 122 ++++++++++++++++++++++++++++++++++++++++++++--------------
+ 2 files changed, 102 insertions(+), 29 deletions(-)
+
+commit 9eb563968d1a86441d4f02834119750d395c8016
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 06:36:15 2008 +0000
+
+ Almost there. Towards a .data-free vtable.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_sequence_handler_invoke),
+ (vte_sequence_handler_offset), (vte_sequence_handler_multiple),
+ (vte_sequence_handler_decset_internal),
+ (VTE_SEQUENCE_HANDLER_PROTO), (_vte_terminal_handle_sequence):
+ Almost there. Towards a .data-free vtable.
+
+
+ svn path=/trunk/; revision=2257
+
+ ChangeLog | 12 ++++
+ src/vteseq.c | 161 +++++++++++++++++++++++++++++++++++----------------------
+ 2 files changed, 111 insertions(+), 62 deletions(-)
+
+commit 98e7a1540b3256b4199235d7cd7431bc2dccecb4
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 05:56:55 2008 +0000
+
+ Make sequence handlers return void instead of gboolean. The return value
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vteseq.c (vte_sequence_handler_offset),
+ (vte_sequence_handler_multiple),
+ (vte_sequence_handler_decset_internal),
+ (vte_sequence_handler_set_mode_internal),
+ (VTE_SEQUENCE_HANDLER_PROTO), (_vte_terminal_handle_sequence):
+ Make sequence handlers return void instead of gboolean. The return
+ value was unused.
+
+
+ svn path=/trunk/; revision=2256
+
+ ChangeLog | 11 +++
+ src/vte-private.h | 8 +-
+ src/vteseq.c | 261 ++++++++++++-----------------------------------------
+ 3 files changed, 75 insertions(+), 205 deletions(-)
+
+commit 51521d139806e01b96f8cc0626bd8aed73fe025a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 05:30:26 2008 +0000
+
+ Switch to calling other handlers using two macros. Get rid of match and
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_sequence_handler_offset),
+ (vte_sequence_handler_multiple),
+ (vte_sequence_handler_decset_internal),
+ (VTE_SEQUENCE_HANDLER_PROTO), (_vte_terminal_handle_sequence):
+ Switch to calling other handlers using two macros.
+ Get rid of match and match_quark arguments to sequence handlers.
+ They were unused.
+
+
+ svn path=/trunk/; revision=2255
+
+ ChangeLog | 10 +++++
+ src/vteseq.c | 126 ++++++++++++++++++++++++---------------------------------
+ 2 files changed, 63 insertions(+), 73 deletions(-)
+
+commit c030133c0529702d24d74ae23bf481c36fe21607
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 05:10:25 2008 +0000
+
+ Cleanup vte_sequence_handler_set_title_internal.
+
+ 2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_sequence_handler_set_title_internal):
+ Cleanup vte_sequence_handler_set_title_internal.
+
+
+ svn path=/trunk/; revision=2254
+
+ ChangeLog | 5 +++++
+ src/vteseq.c | 56 ++++++++++++++++++++++----------------------------------
+ 2 files changed, 27 insertions(+), 34 deletions(-)
+
+commit 20cbe595e6910e2b09cfd16486651218325ff927
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 05:00:01 2008 +0000
+
+ Use a macro to define type of sequence handlers.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (VTE_SEQUENCE_HANDLER_PROTO): Use a macro to define
+ type of sequence handlers.
+
+
+ svn path=/trunk/; revision=2253
+
+ ChangeLog | 5 +
+ src/vteseq.c | 728 +++++++++++-----------------------------------------------
+ 2 files changed, 139 insertions(+), 594 deletions(-)
+
+commit 4475bcbfb3348b2ed17d70a2152fbb6a2bc61aa1
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 04:34:07 2008 +0000
+
+ Remove gperf-generated files from SVN, but still distribute them in the
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-2.c:
+ * src/vteseq-n.c:
+ Remove gperf-generated files from SVN, but still distribute them in
+ the tarball.
+
+
+ svn path=/trunk/; revision=2252
+
+ ChangeLog | 8 ++
+ src/Makefile.am | 19 ++-
+ src/vteseq-2.c | 268 ---------------------------------------
+ src/vteseq-n.c | 375 -------------------------------------------------------
+ 4 files changed, 21 insertions(+), 649 deletions(-)
+
+commit 77b722aa359a20240f11054f45c4d9e05612b1bc
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 03:52:05 2008 +0000
+
+ One more time.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * POTFILES.in: One more time.
+
+
+ svn path=/trunk/; revision=2251
+
+ po/ChangeLog | 4 ++++
+ po/POTFILES.in | 1 +
+ 2 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 6adba974637bc29a16693953cf231c7776913825
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 03:46:11 2008 +0000
+
+ More code shufflling.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c:
+ * src/vteseq.c (_vte_terminal_scroll_text),
+ (vte_sequence_handler_scroll_down),
+ (vte_sequence_handler_scroll_up):
+ More code shufflling.
+
+
+ svn path=/trunk/; revision=2250
+
+ ChangeLog | 9 ++++++++
+ src/vte-private.h | 2 -
+ src/vte.c | 52 -------------------------------------------------
+ src/vteseq.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 4 files changed, 63 insertions(+), 56 deletions(-)
+
+commit 4a251a8a4cb1958f0c33164fdb59202a6da4d373
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 03:45:01 2008 +0000
+
+ Update.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * POTFILES.in: Update.
+
+
+ svn path=/trunk/; revision=2249
+
+ po/ChangeLog | 4 ++++
+ po/POTFILES.in | 11 +----------
+ 2 files changed, 5 insertions(+), 10 deletions(-)
+
+commit e41a8b1567919bc7faae9cbf757e83da49b94b99
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 03:38:13 2008 +0000
+
+ Remove vteseq-list.h from SVN, but still distribute it in the tarball.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-list.h:
+ Remove vteseq-list.h from SVN, but still distribute it in the tarball.
+
+
+ svn path=/trunk/; revision=2248
+
+ ChangeLog | 6 +++
+ src/Makefile.am | 4 +-
+ src/vteseq-list.h | 117 -----------------------------------------------------
+ 3 files changed, 9 insertions(+), 118 deletions(-)
+
+commit 4821ff6a79628cc8c77952882e5285a06ff4412c
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 03:32:02 2008 +0000
+
+ Autogenerate vteseq-list.h.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-list.h:
+ Autogenerate vteseq-list.h.
+
+
+ svn path=/trunk/; revision=2247
+
+ ChangeLog | 6 ++++++
+ src/Makefile.am | 6 +++++-
+ src/vteseq-list.h | 23 ++++++++++++-----------
+ 3 files changed, 23 insertions(+), 12 deletions(-)
+
+commit b3d935a3132bca9784a2ff4cd1ff897b09eff705
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 03:22:03 2008 +0000
+
+ Sync vteseql-list.h with actual handlers used in gperf files.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-list.h:
+ * src/vteseq.c (_vte_terminal_home_cursor),
+ (_vte_terminal_clear_screen), (_vte_terminal_clear_current_line),
+ (_vte_terminal_clear_above_current),
+ (vte_sequence_handler_decset_internal), (vte_sequence_handler_cl),
+ (vte_sequence_handler_ho), (vte_sequence_handler_erase_in_display),
+ (vte_sequence_handler_erase_in_line):
+ Sync vteseql-list.h with actual handlers used in gperf files.
+
+
+ svn path=/trunk/; revision=2246
+
+ ChangeLog | 11 ++
+ src/vteseq-list.h | 3 -
+ src/vteseq.c | 279 +++++++++++++++++++++++++----------------------------
+ 3 files changed, 142 insertions(+), 151 deletions(-)
+
+commit 80c7e53cc585ebf2da979c809fd3cb5634c1a3ea
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 03:01:09 2008 +0000
+
+ Implement these calling vte_terminal_scroll() directly instead of
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-list.h:
+ * src/vteseq.c (vte_sequence_handler_scroll_down),
+ (vte_sequence_handler_scroll_up):
+ Implement these calling vte_terminal_scroll() directly instead of
+ multiple'ing.
+
+
+ svn path=/trunk/; revision=2245
+
+ ChangeLog | 8 ++++++++
+ src/vteseq-list.h | 2 --
+ src/vteseq.c | 48 ++++++++++++++++++++++++------------------------
+ 3 files changed, 32 insertions(+), 26 deletions(-)
+
+commit fbcaf9548ae6453387c9708a832844a47b7e1460
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 02:55:00 2008 +0000
+
+ Move vte_terminal_scroll to vte.c
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_scroll), (_vte_terminal_scroll_region):
+ * src/vteseq.c (vte_sequence_handler_scroll_down_one),
+ (vte_sequence_handler_scroll_up_one):
+ Move vte_terminal_scroll to vte.c
+
+
+ svn path=/trunk/; revision=2244
+
+ ChangeLog | 8 ++++
+ src/vte-private.h | 2 +
+ src/vte.c | 57 ++++++++++++++++++++++++++-
+ src/vteseq.c | 112 +++++++++++++++++------------------------------------
+ 4 files changed, 101 insertions(+), 78 deletions(-)
+
+commit e37545fbe4c3a5bce280f4f7c34d38721a6bc2da
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 02:41:21 2008 +0000
+
+ Remove vte_sequence_handler_complain_key. The idea was to warn about
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-2.gperf:
+ * src/vteseq-list.h:
+ * src/vteseq.c:
+ Remove vte_sequence_handler_complain_key. The idea was to warn about
+ receiving control-sequence handling request for escape sequences that
+ actually belong to a key stroke. Kinda like a debugging feature.
+ Remove it as the number of sequences being handle that way was
+ greater than the number of sequences handled in the real sense.
+ Saves 2k .data!
+
+ The actual list is still in vteseq-2.gperf, but commented out.
+
+
+ svn path=/trunk/; revision=2243
+
+ ChangeLog | 15 ++
+ src/vteseq-2.c | 602 +++++++++++++---------------------------------------
+ src/vteseq-2.gperf | 294 +++++++++++++-------------
+ src/vteseq-list.h | 1 -
+ src/vteseq.c | 12 -
+ 5 files changed, 307 insertions(+), 617 deletions(-)
+
+commit 6a534d02447dd51e95d3591df7527cdf74ff440e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 02:29:33 2008 +0000
+
+ Remove stale comment.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (_vte_sequence_get_handler),
+ (display_control_sequence):
+ Remove stale comment.
+
+
+ svn path=/trunk/; revision=2242
+
+ ChangeLog | 6 ++++++
+ src/vteseq.c | 11 ++++-------
+ 2 files changed, 10 insertions(+), 7 deletions(-)
+
+commit 755b1c1fd5d957eca61a8f71f71594a3b400b329
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 02:20:33 2008 +0000
+
+ Move _vte_terminal_handle_sequence() into vteseq.c
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_process_incoming):
+ * src/vteseq.c (display_control_sequence),
+ (_vte_terminal_handle_sequence):
+ * src/vteseq.h:
+ Move _vte_terminal_handle_sequence() into vteseq.c
+
+
+ svn path=/trunk/; revision=2241
+
+ ChangeLog | 10 +++++++
+ src/Makefile.am | 1 -
+ src/vte-private.h | 6 ++++
+ src/vte.c | 75 +++-------------------------------------------------
+ src/vteseq.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/vteseq.h | 35 ------------------------
+ 6 files changed, 94 insertions(+), 109 deletions(-)
+
+commit f269a1c7d84590f8eb96e6ca2bccc6d87c12d88f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 02:12:05 2008 +0000
+
+ Some code reshuffling to remove vte.c calls to vteseq.c functions.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_insert_line_internal), (vte_remove_line_internal),
+ (_vte_terminal_cursor_down), (_vte_terminal_insert_char),
+ (_vte_terminal_audible_beep), (_vte_terminal_visible_beep),
+ (_vte_terminal_beep), (vte_terminal_key_press):
+ * src/vteseq.c (vte_insert_line_internal),
+ (vte_remove_line_internal), (vte_unichar_strlen),
+ (vte_sequence_handler_bl), (vte_sequence_handler_sf),
+ (vte_sequence_handler_SF), (vte_sequence_handler_vb):
+ * src/vteseq.h:
+ Some code reshuffling to remove vte.c calls to vteseq.c functions.
+
+
+ svn path=/trunk/; revision=2240
+
+ ChangeLog | 14 +++
+ src/vte-private.h | 4 +
+ src/vte.c | 186 ++++++++++++++++++++++++++++++++++++++++--
+ src/vteseq.c | 239 +++++++++++++----------------------------------------
+ src/vteseq.h | 4 -
+ 5 files changed, 256 insertions(+), 191 deletions(-)
+
+commit 8db1bf0479bf7c96c2dc5db4e36f4bd2440688c7
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 01:17:30 2008 +0000
+
+ Minor.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-2.gperf:
+ * src/vteseq.c:
+ Minor.
+
+
+ svn path=/trunk/; revision=2239
+
+ ChangeLog | 6 ++++++
+ src/vteseq-2.gperf | 2 +-
+ src/vteseq.c | 1 -
+ 3 files changed, 7 insertions(+), 2 deletions(-)
+
+commit ce7f40755cdccce5f996d06d9f8c101703019e54
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 01:13:00 2008 +0000
+
+ Move helper function out of the way.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_terminal_beep): Move helper function out of the
+ way.
+
+
+ svn path=/trunk/; revision=2238
+
+ ChangeLog | 5 +++++
+ src/vteseq.c | 21 +++++++++++----------
+ 2 files changed, 16 insertions(+), 10 deletions(-)
+
+commit 4afa82b2b88abbee75762b05fb7ba5cc5729ac82
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 01:00:18 2008 +0000
+
+ Add a macro around sequence handler citations, for future table tricks.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-2.c (vteseq_2_lookup):
+ * src/vteseq-2.gperf:
+ * src/vteseq-n.c (vteseq_n_lookup):
+ * src/vteseq-n.gperf:
+ * src/vteseq.c:
+ Add a macro around sequence handler citations, for future table
+ tricks.
+
+
+ svn path=/trunk/; revision=2237
+
+ ChangeLog | 10 +
+ src/vteseq-2.c | 442 +++++++++++++++++++++---------------------
+ src/vteseq-2.gperf | 544 ++++++++++++++++++++++++++--------------------------
+ src/vteseq-n.c | 118 ++++++------
+ src/vteseq-n.gperf | 216 +++++++++++-----------
+ src/vteseq.c | 5 +
+ 6 files changed, 675 insertions(+), 660 deletions(-)
+
+commit 20fe411a83c4cd3b1ae3f397324e0e016c0640e6
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 1 00:46:40 2008 +0000
+
+ Remove bogus entry that accidentally made it into the gperf list.
+
+ 2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-n.gperf:
+ * src/vteseq-n.c (vteseq_n_hash), (vteseq_n_lookup):
+ Remove bogus entry that accidentally made it into the gperf list.
+
+
+ svn path=/trunk/; revision=2236
+
+ ChangeLog | 6 ++
+ src/vteseq-n.c | 145 +++++++++++++++++++++++++--------------------------
+ src/vteseq-n.gperf | 1 -
+ 3 files changed, 77 insertions(+), 75 deletions(-)
+
+commit 01ffbb3a2ad5c4d1ceee5669d5854415b56bf1fe
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Nov 30 19:21:50 2008 +0000
+
+ Remove more crufty macros.
+
+ * acinclude.m4: Remove more crufty macros.
+
+ svn path=/trunk/; revision=2235
+
+ ChangeLog | 4 ++++
+ acinclude.m4 | 31 -------------------------------
+ 2 files changed, 4 insertions(+), 31 deletions(-)
+
+commit 539509a2ed5406ba4d0f8766624d0f319d0ed474
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Nov 30 19:21:43 2008 +0000
+
+ Remove FT2 check macro.
+
+ * acinclude.m4: Remove FT2 check macro.
+
+ svn path=/trunk/; revision=2234
+
+ ChangeLog | 4 ++
+ acinclude.m4 | 145 ----------------------------------------------------------
+ 2 files changed, 4 insertions(+), 145 deletions(-)
+
+commit 7b72a1025293c3314e83771bda33a5a0248724be
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 29 23:56:11 2008 +0000
+
+ Bug 540951 – The gnome-pty-helper is spawn when its not needed
+
+ * src/pty.c: (_vte_pty_open): Don't use the pty helper when we don't
+ need to update any of utmp, wtmp, lastlog. Patch by Alex Cornejo.
+
+ svn path=/trunk/; revision=2233
+
+ ChangeLog | 7 +++++++
+ src/pty.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit cc94f01446cd7ff176b1511c87e752cc62f13ef1
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 29 23:51:44 2008 +0000
+
+ Bug 465036 – gnome-pty-helper locks /var/run/utmp
+
+ * gnome-pty-helper/gnome-utmp.c: (update_utmp): Close the utmp
+ database after updating it. Patch by Kevin W. Rudd.
+
+ svn path=/trunk/; revision=2232
+
+ ChangeLog | 7 +++++++
+ gnome-pty-helper/gnome-utmp.c | 2 ++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 0783cdf5b52c0938cf14da2ac2c1603167500c5d
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 29 21:57:54 2008 +0000
+
+ Bug 127870 – terminal garbled and needs 'reset' after cat'ing file
+
+ 2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ Bug 127870 – terminal garbled and needs 'reset' after cat'ing file
+
+ * src/iso2022.c (_vte_iso2022_state_new): Initialize all four maps
+ (G0, G1, G2, G3) in USASCII mode, like xterm does.
+
+
+ svn path=/trunk/; revision=2231
+
+ ChangeLog | 7 +++++++
+ src/iso2022.c | 6 +++---
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+commit 32ff14161b0e901ec514caba90a03271869a558e
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 29 21:56:32 2008 +0000
+
+ Register the constants too!
+
+ * python/vtemodule.c: (initvte): Register the constants too!
+
+ svn path=/trunk/; revision=2230
+
+ ChangeLog | 4 ++++
+ python/vtemodule.c | 2 ++
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 4a60f3edb689ccfb49f2bae5b9142a10f9dd1ed8
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 29 17:52:12 2008 +0000
+
+ Add a specific debug flag for widget size-request/size-allocation.
+
+ * src/debug.c: (_vte_debug_init):
+ * src/debug.h:
+ * src/vte.c: (vte_terminal_size_request),
+ (vte_terminal_size_allocate): Add a specific debug flag for widget
+ size-request/size-allocation.
+
+ svn path=/trunk/; revision=2229
+
+ ChangeLog | 8 ++++++++
+ src/debug.c | 3 ++-
+ src/debug.h | 3 ++-
+ src/vte.c | 10 ++++++----
+ 4 files changed, 18 insertions(+), 6 deletions(-)
+
+commit b86d5a75d7e8f9c3d4f58e81e2b16f8b33ef00ef
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 29 17:52:07 2008 +0000
+
+ Add options to use a GtkScrolledWindow as the terminal's container, and to
+
+ * src/vteapp.c: (main): Add options to use a GtkScrolledWindow as the
+ terminal's container, and to set its vertical scrollbar policy, to
+ allow testing VteTerminal in a scrolled window.
+
+ svn path=/trunk/; revision=2228
+
+ ChangeLog | 6 ++++++
+ src/vteapp.c | 49 ++++++++++++++++++++++++++++++++++++++-----------
+ 2 files changed, 44 insertions(+), 11 deletions(-)
+
+commit 712c3c28992254af5062b70bca836be73a177821
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 29 10:02:38 2008 +0000
+
+ Bug 317236 – vte resynchrones too late on invalid UTF-8
+
+ 2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ Bug 317236 – vte resynchrones too late on invalid UTF-8
+
+ * src/vteconv.c (_vte_conv_utf8_utf8): In our UTF-8 to UTF-8 converter
+ differentiate between an incomplete sequence and an ill sequence at
+ the end of the buffer. Also cleanup some minor inaccuracies (return
+ value).
+
+
+ svn path=/trunk/; revision=2227
+
+ ChangeLog | 9 +++++++++
+ src/vteconv.c | 39 +++++++++++++++++++++++++++++----------
+ 2 files changed, 38 insertions(+), 10 deletions(-)
+
+commit 8e8429cb020dc23b8a87986a2e777eeaf01a5e90
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 29 07:56:50 2008 +0000
+
+ Bug 107031 – device-control-string error
+
+ 2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ Bug 107031 – device-control-string error
+
+ * src/table.c (_vte_table_addi):
+ * src/vte.c (vte_terminal_handle_sequence):
+ * src/vteseq.c (vte_sequence_handler_decset_internal):
+ Replace some g_warning's with vte debug output.
+
+
+ svn path=/trunk/; revision=2226
+
+ ChangeLog | 9 +++++++++
+ src/table.c | 10 +++++-----
+ src/vte.c | 15 +++------------
+ src/vteseq.c | 9 +++++----
+ 4 files changed, 22 insertions(+), 21 deletions(-)
+
+commit a00ed363b50864ffaa86c9e7a110b7c30ba3e0d4
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 29 07:26:12 2008 +0000
+
+ Bug 521420 – vte closes connection to child before all output is read
+
+ 2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ Bug 521420 – vte closes connection to child before all output is read
+ Patch from Thomas Leonard
+
+ * src/reaper.c (vte_reaper_add_child): Install child watch at low
+ priority instead of high.
+
+
+ svn path=/trunk/; revision=2225
+
+ ChangeLog | 8 ++++++++
+ src/reaper.c | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+commit 13fb9b34c9436385baa485a41649145af38e62c8
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 29 06:44:31 2008 +0000
+
+ Require glib >= 2.18.0 as earlier glib versions had a totally bogus
+
+ 2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Require glib >= 2.18.0 as earlier glib versions
+ had a totally bogus g_unichar_iswide_cjk().
+
+ * perf/vim.sh: Don't use builting time command.
+
+
+ svn path=/trunk/; revision=2224
+
+ ChangeLog | 7 +++++++
+ configure.in | 2 +-
+ perf/vim.sh | 6 +++---
+ 3 files changed, 11 insertions(+), 4 deletions(-)
+
+commit c1acc9206329acd8ddf7bc6eb63e0f90ce9864d8
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 29 06:10:18 2008 +0000
+
+ Remove C++-style comment markers.
+
+ 2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_emit_char_size_changed),
+ (_vte_terminal_emit_status_line_changed), (vte_terminal_init),
+ (vte_terminal_background_update):
+ Remove C++-style comment markers.
+
+
+ svn path=/trunk/; revision=2223
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 8 ++++----
+ 2 files changed, 11 insertions(+), 4 deletions(-)
+
+commit 8894e5764a8e27e87be8a965851113bb02052e7a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 29 06:00:17 2008 +0000
+
+ Bug 514632 – Problem with cursor in emacs in gnome-terminal
+
+ 2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ Bug 514632 – Problem with cursor in emacs in gnome-terminal
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_cleanup_tab_fragments_at_cursor),
+ (_vte_terminal_insert_char):
+ * src/vteseq.c (vte_sequence_handler_ch),
+ (vte_sequence_handler_cm), (vte_sequence_handler_le),
+ (vte_sequence_handler_cursor_character_absolute):
+ Break "smart tabs" into multiple empty cells when cursor moves
+ into them or inserting character there.
+
+
+ svn path=/trunk/; revision=2222
+
+ ChangeLog | 13 ++++++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++-----
+ src/vteseq.c | 4 +++
+ 4 files changed, 81 insertions(+), 7 deletions(-)
+
+commit 37472ef4f34e658a29bb6d99c0b0115da85e017f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 29 00:41:18 2008 +0000
+
+ Port vtepangocairo profiling and lifecycle logging to vtedebug facilities
+
+ 2008-11-28 Behdad Esfahbod <behdad gnome org>
+
+ * src/debug.c (_vte_debug_init):
+ * src/debug.h:
+ * src/vtepangocairo.c (font_info_cache_ascii),
+ (font_info_allocate), (font_info_free),
+ (font_info_find_for_context), (font_info_get_unichar_info):
+ Port vtepangocairo profiling and lifecycle logging to vtedebug
+ facilities under debug domain "pangocairo".
+
+
+ svn path=/trunk/; revision=2221
+
+ ChangeLog | 10 ++++++++++
+ src/debug.c | 3 ++-
+ src/debug.h | 3 ++-
+ src/vtepangocairo.c | 50 ++++++++++++++++++++++++--------------------------
+ 4 files changed, 38 insertions(+), 28 deletions(-)
+
+commit f4689385a0d7da2ddb3537f41795ec493ed668f7
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 29 00:22:53 2008 +0000
+
+ Rename debug env var from VTE_DEBUG_FLAGS to VTE_DEBUG.
+
+ 2008-11-28 Behdad Esfahbod <behdad gnome org>
+
+ * src/debug.c (_vte_debug_init): Rename debug env var from
+ VTE_DEBUG_FLAGS to VTE_DEBUG.
+
+
+ svn path=/trunk/; revision=2220
+
+ ChangeLog | 5 +++++
+ src/debug.c | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 990fda3c3d29381568f8463b4349554031975d57
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 29 00:21:56 2008 +0000
+
+ Make _vte_debug_on() inline.
+
+ 2008-11-28 Behdad Esfahbod <behdad gnome org>
+
+ * src/debug.c (_vte_debug_init):
+ * src/debug.h:
+ Make _vte_debug_on() inline.
+
+
+ svn path=/trunk/; revision=2219
+
+ ChangeLog | 6 ++++++
+ src/debug.c | 8 +-------
+ src/debug.h | 10 +++++++++-
+ 3 files changed, 16 insertions(+), 8 deletions(-)
+
+commit 1ec198d4341adf8745d698cfe3d57bd787052740
+Author: Christian Persch <chpe src gnome org>
+Date: Fri Nov 28 22:43:34 2008 +0000
+
+ Remove backward compat define for gtk 2.0, since we already depend on a
+
+ * src/vte.c: Remove backward compat define for gtk 2.0, since we
+ already depend on a much higher version.
+
+ svn path=/trunk/; revision=2218
+
+ ChangeLog | 5 +++++
+ src/vte.c | 4 ----
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+commit d1c8da13e65ddc67f93974c896d5061597062d72
+Author: Christian Persch <chpe src gnome org>
+Date: Fri Nov 28 22:32:21 2008 +0000
+
+ Revert behaviour change of _vte_debug_on() from last commit.
+
+ * src/debug.c: (_vte_debug_on): Revert behaviour change of
+ _vte_debug_on() from last commit.
+
+ svn path=/trunk/; revision=2217
+
+ ChangeLog | 5 +++++
+ src/debug.c | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 3fb52fb85c6ab494ce2e54de9733cd98cd5bf21e
+Author: Christian Persch <chpe src gnome org>
+Date: Fri Nov 28 22:24:09 2008 +0000
+
+ Use g_parse_debug_string to parse the debug flags.
+
+ * src/debug.c: (_vte_debug_init), (_vte_debug_on):
+ * src/debug.h:
+ * src/interpret.c: (main):
+ * src/pty.c: (main):
+ * src/reaper.c: (main):
+ * src/trie.c: (main):
+ * src/vte.c: (vte_terminal_new), (vte_terminal_class_init): Use
+ g_parse_debug_string to parse the debug flags.
+
+ svn path=/trunk/; revision=2216
+
+ ChangeLog | 11 ++++++
+ src/debug.c | 107 ++++++++++++++++--------------------------------------
+ src/debug.h | 2 +-
+ src/interpret.c | 2 +-
+ src/pty.c | 2 +-
+ src/reaper.c | 2 +-
+ src/trie.c | 2 +-
+ src/vte.c | 11 +-----
+ 8 files changed, 50 insertions(+), 89 deletions(-)
+
+commit 74a67f5d8703275b52c9b91deae2dbe0e4c49087
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Nov 28 17:54:26 2008 +0000
+
+ Bug 459553 – gnome-terminal cannot shows circled digits with the correct
+
+ 2008-11-28 Behdad Esfahbod <behdad gnome org>
+
+ Bug 459553 – gnome-terminal cannot shows circled digits with the
+ correct width on ja_JP.PCK
+ Patch from Takao Fujiwara
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Recognize Shift_JIS
+ as East Asian locale for width considerations.
+
+
+ svn path=/trunk/; revision=2215
+
+ ChangeLog | 13 +++++++++++--
+ src/iso2022.c | 1 +
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+commit f6905bcef2fb212fdaa935f19c50c9cd0ba45054
+Author: Christian Persch <chpe src gnome org>
+Date: Fri Nov 28 00:07:16 2008 +0000
+
+ Remove the unused GNU regex code too.
+
+ * src/vteregex.c: (compare_matches), (_vte_regex_compile),
+ (_vte_regex_free), (_vte_regex_exec): Remove the unused GNU regex
+ code too.
+
+ svn path=/trunk/; revision=2214
+
+ ChangeLog | 6 ++++
+ src/vteregex.c | 77 +------------------------------------------------------
+ 2 files changed, 8 insertions(+), 75 deletions(-)
+
+commit 08a58074ff6b0557c9294cec22041fbbf0acda61
+Author: Christian Persch <chpe src gnome org>
+Date: Fri Nov 28 00:04:11 2008 +0000
+
+ Remove unused PCRE code. If you want PCRE regexes, use the new APIs that
+
+ * src/vteregex.c: (_vte_regex_compile), (_vte_regex_free),
+ (_vte_regex_exec): Remove unused PCRE code. If you want PCRE regexes,
+ use the new APIs that take GRegex.
+
+ svn path=/trunk/; revision=2213
+
+ ChangeLog | 6 ++++
+ src/vteregex.c | 85 +------------------------------------------------------
+ 2 files changed, 8 insertions(+), 83 deletions(-)
+
+commit 4b98c5400e147699480a989b35f653dafcb9bbf3
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Nov 27 23:57:10 2008 +0000
+
+ Bug 562385 – gnome-pty-helper goes to 100% cpu usage
+
+ * gnome-pty-helper/gnome-pty-helper.c: (pass_fd), (pty_free),
+ (main): Make sure data structures are correctly aligned and of the
+ right size.
+
+ svn path=/trunk/; revision=2212
+
+ ChangeLog | 8 ++++++
+ gnome-pty-helper/gnome-pty-helper.c | 48 +++++++++++-----------------------
+ 2 files changed, 24 insertions(+), 32 deletions(-)
+
+commit 0d8a9152d5a4682b8ab92a758070e0524167c6cd
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Thu Nov 27 23:56:39 2008 +0000
+
+ oops
+
+ svn path=/trunk/; revision=2211
+
+ src/Makefile.am | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 5c6e9df0a6be45683a902f9b11144d9c6fcbe9c0
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 27 23:54:21 2008 +0000
+
+ More cleanup.
+
+ 2008-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in:
+ * src/Makefile.am:
+ More cleanup.
+
+
+ svn path=/trunk/; revision=2210
+
+ ChangeLog | 6 ++++
+ configure.in | 1 -
+ src/Makefile.am | 72 ++++++++++++++++++++++++++++++------------------------
+ 3 files changed, 46 insertions(+), 33 deletions(-)
+
+commit 9075be7d7a22fae78dd29abc3806b7046033bb23
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 27 23:41:26 2008 +0000
+
+ Run some of the utilities in "make check", and build the others.
+
+ 2008-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ Run some of the utilities in "make check", and build the others.
+
+ * src/nativeecho.c:
+ * src/utf8echo.c:
+ Remove more useless trivial utilities.
+
+
+ svn path=/trunk/; revision=2209
+
+ ChangeLog | 9 ++++
+ src/Makefile.am | 115 ++++++++++-------------------------------------------
+ src/nativeecho.c | 49 -----------------------
+ src/utf8echo.c | 70 ---------------------------------
+ 4 files changed, 31 insertions(+), 212 deletions(-)
+
+commit e24ae22dcecda8fbb68aea4f59cd336ea30d1b44
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 27 23:10:04 2008 +0000
+
+ Remove useless trivial utilities.
+
+ 2008-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/iso8859mode.c:
+ * src/utf8mode.c:
+ Remove useless trivial utilities.
+
+
+ svn path=/trunk/; revision=2208
+
+ ChangeLog | 7 +++++++
+ src/Makefile.am | 2 +-
+ src/iso8859mode.c | 28 ----------------------------
+ src/utf8mode.c | 28 ----------------------------
+ 4 files changed, 8 insertions(+), 57 deletions(-)
+
+commit 22e6626929c27043239b0e8df6d6f283fee05bd7
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 27 23:08:20 2008 +0000
+
+ Update EXTRA_DIST.
+
+ 2008-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am: Update EXTRA_DIST.
+
+
+ svn path=/trunk/; revision=2207
+
+ ChangeLog | 4 ++++
+ src/Makefile.am | 2 --
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+commit c6777d519b75e25dd0729347387c6ff98a085963
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 27 21:50:34 2008 +0000
+
+ Update :P.
+
+ 2008-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * HACKING: Update :P.
+
+
+ svn path=/trunk/; revision=2206
+
+ ChangeLog | 4 ++++
+ HACKING | 8 ++++----
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+commit 2905d91df4eacc292ab78cb86f688930cfc9ee7b
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 26 20:57:48 2008 +0000
+
+ Safely handle input of length 1.
+
+ 2008-11-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (_vte_sequence_get_handler): Safely handle input of
+ length 1.
+
+
+ svn path=/trunk/; revision=2205
+
+ ChangeLog | 5 +++++
+ src/vteseq.c | 9 ++++++---
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+commit 7d4ac8661ea748304f07ed2f0fac388d343000d4
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 26 20:38:33 2008 +0000
+
+ Don't use switch in gperf-generated code. This increases .data by 1k but
+
+ 2008-11-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-2.gperf:
+ * src/vteseq-n.c (vteseq_n_lookup):
+ * src/vteseq-n.gperf:
+ Don't use switch in gperf-generated code. This increases .data by 1k
+ but decreases .text by 6k AND the lookup code is MUCH faster. It used
+ to do tens of compares before.
+
+
+ svn path=/trunk/; revision=2204
+
+ ChangeLog | 11 +
+ src/Makefile.am | 2 +-
+ src/vteseq-2.c | 1229 ++++++++++++----------------------------------------
+ src/vteseq-2.gperf | 1 -
+ src/vteseq-n.c | 820 ++++++++---------------------------
+ src/vteseq-n.gperf | 1 -
+ 6 files changed, 476 insertions(+), 1588 deletions(-)
+
+commit 561d5d623dc9fee74e9d6c26dd81263dfd2acb7a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 26 20:03:30 2008 +0000
+
+ Revert previous commit, fix NULL dereference that it was trying to fix,
+
+ 2008-11-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-n.c (vteseq_n_lookup):
+ * src/vteseq.c (_vte_sequence_get_handler):
+ Revert previous commit, fix NULL dereference that it was trying to
+ fix, and make lookup functions inline.
+
+
+ svn path=/trunk/; revision=2203
+
+ ChangeLog | 9 +++++++++
+ src/Makefile.am | 5 -----
+ src/vteseq-2.c | 19 +++++++++++--------
+ src/vteseq-n.c | 6 +++---
+ src/vteseq.c | 19 +++++++++++++++----
+ 5 files changed, 38 insertions(+), 20 deletions(-)
+
+commit 299b73bb3667402eb63e21659084ee427d56a95e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Nov 26 19:36:46 2008 +0000
+
+ Manually modify (and record those modifications in the Makefile) the
+
+ 2008-11-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/Makefile.am:
+ * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-n.c (vteseq_n_lookup):
+ * src/vteseq.c (_vte_sequence_get_handler):
+ Manually modify (and record those modifications in the Makefile)
+ the autogenerated gperf source code so that we return the sequence
+ handler directly from the lookup function, or NULL on failure.
+ So is this pain worth it?
+
+
+ svn path=/trunk/; revision=2202
+
+ ChangeLog | 11 +++++++++++
+ src/Makefile.am | 4 ++++
+ src/vteseq-2.c | 17 +++++++----------
+ src/vteseq-n.c | 4 ++--
+ src/vteseq.c | 15 ++-------------
+ 5 files changed, 26 insertions(+), 25 deletions(-)
+
+commit 129aa802e5be2d1c3aea58c79fe247c67a2e186f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 26 19:27:07 2008 +0000
+
+ Free internal layout resources.
+
+ 2008-11-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_get_unichar_info):
+ Free internal layout resources.
+
+
+ svn path=/trunk/; revision=2201
+
+ ChangeLog | 5 +++++
+ src/vtepangocairo.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+commit 06107289280f77027c696193bf8698d0d550c438
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Wed Nov 26 19:12:56 2008 +0000
+
+ Update boilerplate
+
+ svn path=/trunk/; revision=2200
+
+ doc/reference/tmpl/vte-unused.sgml | 6 ++++++
+ doc/reference/tmpl/vte.sgml | 5 -----
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+commit 50c7a0ea9f503f1861732adc03a1f6dc15ae2b00
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 26 19:12:30 2008 +0000
+
+ Bug 562332 – cleanup font infos on exit?
+
+ 2008-11-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 562332 – cleanup font infos on exit?
+
+ * src/vtepangocairo.c
+ (cleanup_delayed_font_info_destroys_predicate),
+ (cleanup_delayed_font_info_destroys), (ensure_quit_handler),
+ (font_info_register), (font_info_reference),
+ (font_info_destroy_delayed), (font_info_destroy):
+ Use gtk_quit_add() to complete delayed font_info destroys.
+
+
+ svn path=/trunk/; revision=2199
+
+ ChangeLog | 11 ++++
+ src/vtepangocairo.c | 135 +++++++++++++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 143 insertions(+), 3 deletions(-)
+
+commit 3ae4dce903ef23687b3e8168decb546dbdaff69f
+Author: Christian Persch <chpe src gnome org>
+Date: Wed Nov 26 19:00:33 2008 +0000
+
+ Bug 562338 – don't need to connect to bunch of xft settings
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_style_changed), (add_cursor_timeout),
+ (vte_terminal_init), (vte_terminal_size_allocate),
+ (vte_terminal_finalize), (vte_terminal_realize): Don't listen to
+ changes on the gtk-xft-* GtkSettings properties. Just calling
+ vte_terminal_set_font_full in the style-set handler works fine.
+
+ svn path=/trunk/; revision=2198
+
+ ChangeLog | 11 ++++++
+ src/vte-private.h | 1 -
+ src/vte.c | 103 ++++++++---------------------------------------------
+ 3 files changed, 26 insertions(+), 89 deletions(-)
+
+commit 6874137db74ca9a2565be25a3273c9be98d5fb89
+Author: Christian Persch <chpe src gnome org>
+Date: Wed Nov 26 15:26:40 2008 +0000
+
+ Bug 488960 – gnome-terminal on Solaris 10 does not clean up utmpx on
+ exit (intermittent)
+
+ * gnome-pty-helper/gnome-pty-helper.c: (main):
+ * gnome-pty-helper/gnome-pty.h:
+ * src/pty.c: (_vte_pty_close): Add new GNOME_PTY_SYNCH operation to
+ gnome-pty-helper. Patch from Behdad.
+
+ svn path=/trunk/; revision=2197
+
+ ChangeLog | 10 ++++++++++
+ gnome-pty-helper/gnome-pty-helper.c | 7 +++++++
+ gnome-pty-helper/gnome-pty.h | 3 ++-
+ src/pty.c | 11 ++++++++++-
+ 4 files changed, 29 insertions(+), 2 deletions(-)
+
+commit 07817dfbc1e4662bbdf20fd93daaca8f1b07eba3
+Author: Christian Persch <chpe src gnome org>
+Date: Wed Nov 26 14:39:22 2008 +0000
+
+ Add vte_terminal_set_font_*full_internal so we don't use deprecated
+
+ * src/vte.c: (vte_terminal_style_changed),
+ (vte_terminal_ensure_font), (vte_terminal_set_font_full),
+ (vte_terminal_set_font_from_string_full_internal),
+ (vte_terminal_set_font_from_string_full),
+ (vte_terminal_reset_rowdata), (vte_terminal_set_property): Add
+ vte_terminal_set_font_*full_internal so we don't use deprecated
+ symbols internally.
+
+ svn path=/trunk/; revision=2196
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 61 ++++++++++++++++++++++++++++++++++++++-----------------------
+ 2 files changed, 48 insertions(+), 23 deletions(-)
+
+commit 8be1dbc19e6f461050ae3d03410f291faffdea7b
+Author: Christian Persch <chpe src gnome org>
+Date: Wed Nov 26 13:43:26 2008 +0000
+
+ Remove gtk 2.12 version checks, since we already depend on 2.12.
+
+ * src/vte.c: (vte_terminal_sync_settings),
+ (vte_terminal_screen_changed): Remove gtk 2.12 version checks, since
+ we already depend on 2.12.
+
+ svn path=/trunk/; revision=2195
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 4 ----
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+commit 2fa93a79f2624c4ae0fe1b25f00c102744048e24
+Author: Christian Persch <chpe src gnome org>
+Date: Wed Nov 26 13:43:20 2008 +0000
+
+ Bug 561366 – remove antialias setting for 1.0
+
+ * src/vte.c: (vte_terminal_set_font_full),
+ (vte_terminal_get_property), (vte_terminal_class_init):
+ * src/vte.h: Deprecate the font antialias setting, and remove the
+ (existing only on trunk) font-antialias property already.
+
+ svn path=/trunk/; revision=2194
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 24 ++++--------------------
+ src/vte.h | 26 +++++++++++++-------------
+ 3 files changed, 26 insertions(+), 33 deletions(-)
+
+commit 7730c13edd2c69cbd58125a088db74706d351f25
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 25 23:56:04 2008 +0000
+
+ Cleanup gperf stuff.
+
+ 2008-11-25 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-2.gperf:
+ * src/vteseq-n.c (vteseq_n_hash), (vteseq_n_lookup):
+ * src/vteseq-n.gperf:
+ * src/vteseq.c (_vte_sequence_get_handler):
+ Cleanup gperf stuff.
+
+
+ svn path=/trunk/; revision=2193
+
+ ChangeLog | 10 +
+ src/Makefile.am | 4 +-
+ src/vteseq-2.c | 489 ++++++++++++++++++++++++++--------------------------
+ src/vteseq-2.gperf | 19 ++-
+ src/vteseq-n.c | 395 +++++++++++++++++++++---------------------
+ src/vteseq-n.gperf | 21 ++-
+ src/vteseq.c | 14 ++-
+ 7 files changed, 507 insertions(+), 445 deletions(-)
+
+commit 4fea39c855890b9c6fc4336a32e56002179c5a76
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Nov 24 22:33:29 2008 +0000
+
+ Bug 562187 – Add make rules for calling gperf
+
+ 2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 562187 – Add make rules for calling gperf
+
+ * src/Makefile.am: Add a "gperf" target to be run manually.
+
+ * src/vteseq-2.gperf:
+ * src/vteseq-n.gperf:
+ Add comment about "make gperf".
+
+ * src/vteseq-2.c:
+ * src/vteseq-n.c:
+ Regenerate using newer gperf.
+
+
+ svn path=/trunk/; revision=2192
+
+ ChangeLog | 14 +
+ src/Makefile.am | 9 +-
+ src/vteseq-2.c | 2224 ++++++++++++++++++++++++++--------------------------
+ src/vteseq-2.gperf | 1 +
+ src/vteseq-n.c | 154 ++--
+ src/vteseq-n.gperf | 1 +
+ 6 files changed, 1216 insertions(+), 1187 deletions(-)
+
+commit 7feb9738d0af67fb7886543962635767e70cdc6a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Nov 24 22:22:05 2008 +0000
+
+ Bug 416518 – Do something about uniwidths
+
+ 2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 416518 – Do something about uniwidths
+
+ * src/iso2022.c (_vte_iso2022_is_ambiguous):
+ Call into glib to determine ambiguous-width chars.
+
+ * src/genwidths.py:
+ * src/uniwidths:
+ Remove.
+
+
+ svn path=/trunk/; revision=2191
+
+ ChangeLog | 11 +
+ src/genwidths.py | 35 ---
+ src/iso2022.c | 41 +---
+ src/uniwidths | 820 ------------------------------------------------------
+ 4 files changed, 16 insertions(+), 891 deletions(-)
+
+commit 557b2633fccfdcbf2cb60645c45c638cfce149de
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Nov 24 22:06:32 2008 +0000
+
+ Bug 500191 – Remove vteseq-table.h?
+
+ 2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 500191 – Remove vteseq-table.h?
+
+ * src/Makefile.am:
+ * src/vteseq-gen.c:
+ * src/vteseq-table.h:
+ Remove the old table implementation. We use gperf-generated tables
+ now.
+
+
+ svn path=/trunk/; revision=2190
+
+ ChangeLog | 10 +
+ src/Makefile.am | 5 -
+ src/vteseq-gen.c | 507 ----------------------------------------------------
+ src/vteseq-table.h | 388 ----------------------------------------
+ 4 files changed, 10 insertions(+), 900 deletions(-)
+
+commit 1564e45be8a51f2e30e7d110651b35d8783cc057
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Nov 24 18:56:44 2008 +0000
+
+ Bug 514457 – Use g_strv_length()
+
+ 2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 514457 – Use g_strv_length()
+
+ * src/vte.c (_vte_terminal_fork_basic): Do it.
+
+
+ svn path=/trunk/; revision=2189
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 4 +---
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+commit 80a809c489d5937b878208b806379220966307a9
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Nov 24 18:27:12 2008 +0000
+
+ No need to check widget font desc here as vte.c does that for us already.
+
+ 2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_create_for_widget): No need to check
+ widget font desc here as vte.c does that for us already.
+
+
+ svn path=/trunk/; revision=2188
+
+ ChangeLog | 5 +++++
+ src/vtepangocairo.c | 5 -----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 0ff5e8e971726b03e9d08c622e41d9fe740db809
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Nov 24 18:19:53 2008 +0000
+
+ Modify GTK_CHECK_VERSION handling to make my vim syntax highlighter happy.
+
+ 2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_destroy): Modify GTK_CHECK_VERSION
+ handling to make my vim syntax highlighter happy.
+
+
+ svn path=/trunk/; revision=2187
+
+ ChangeLog | 5 +++++
+ src/vtepangocairo.c | 8 ++++----
+ 2 files changed, 9 insertions(+), 4 deletions(-)
+
+commit add81f8b64b8704e786f5c880ee2f30f52e42367
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Nov 24 02:31:38 2008 +0000
+
+ Refactor duplicate code.
+
+ 2008-11-23 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_ensure_cursor): Refactor duplicate code.
+
+
+ svn path=/trunk/; revision=2186
+
+ ChangeLog | 4 ++++
+ src/vte.c | 26 +++-----------------------
+ 2 files changed, 7 insertions(+), 23 deletions(-)
+
+commit 0b3a9bf9e80de232f6538e9f9aa3a19d5e6efe31
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 18:27:02 2008 +0000
+
+ Move all the deprecated stuff into one place.
+
+ * src/vte.h: Move all the deprecated stuff into one place.
+
+ svn path=/trunk/; revision=2185
+
+ ChangeLog | 4 ++++
+ src/vte.h | 33 ++++++++++++++-------------------
+ 2 files changed, 18 insertions(+), 19 deletions(-)
+
+commit d063b0de2185e6a24573ee10d4dee7e35a72e4ef
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 14:29:26 2008 +0000
+
+ Bug 542561 – Doesn't build when disabling gnome-pty-helper
+
+ * src/pty.c: Always include sys/socket.h. Patch by Loïc Minier.
+
+ svn path=/trunk/; revision=2184
+
+ ChangeLog | 6 ++++++
+ src/pty.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 14692b2586767bceced7d9f02ecb7d5d515ef454
+Author: Christian Persch <chpe gnome org>
+Date: Sat Nov 22 14:16:43 2008 +0000
+
+ Fix --blink; the flag is inverted.
+
+ 2008-11-22 Christian Persch <chpe gnome org>
+
+ * src/vteapp.c: (main): Fix --blink; the flag is inverted.
+
+ svn path=/trunk/; revision=2183
+
+ ChangeLog | 4 ++++
+ src/vteapp.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit cd09f90f9fb0ef54bedba2ad0340f2ab534199ac
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 14:04:41 2008 +0000
+
+ Use vte_terminal_set_cursor_blink_mode instead of the deprecated
+
+ * src/vteapp.c: (main): Use vte_terminal_set_cursor_blink_mode instead
+ of the deprecated set_cursor_blinks here.
+
+ svn path=/trunk/; revision=2182
+
+ ChangeLog | 5 +++++
+ src/vteapp.c | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 02e5a9b6ddcd07ee3f937455441aa2d6a06468c4
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 14:01:03 2008 +0000
+
+ Bug 560766 – Deprecate and remove vte_terminal_get_using_xft()
+
+ * src/vte.c: (vte_terminal_get_using_xft):
+ * src/vte.h:
+ * src/vtedraw.c: (_vte_draw_text):
+ * src/vtedraw.h:
+ * src/vtepangocairo.c: Deprecate vte_terminal_get_using_xft() as preparation for
+ bug #560766. Remove the internal vtedraw method already.
+
+ svn path=/trunk/; revision=2181
+
+ ChangeLog | 11 +++++++++++
+ src/vte.c | 9 +++++----
+ src/vte.h | 4 +++-
+ src/vtedraw.c | 11 -----------
+ src/vtedraw.h | 2 --
+ src/vtepangocairo.c | 1 -
+ 6 files changed, 19 insertions(+), 19 deletions(-)
+
+commit 31d4e249f52354e0be687035ed190742a5d0f735
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:54:36 2008 +0000
+
+ Bug 536894 – Confusing use of "free" as variable-name in ring
+ functions
+
+ * src/ring.c: (_vte_ring_new), (_vte_ring_new_with_delta),
+ (_vte_ring_remove):
+ * src/ring.h: Don't shadow global declarations. Patch by dmacks at
+ netspace.org.
+
+ svn path=/trunk/; revision=2180
+
+ ChangeLog | 10 ++++++++++
+ src/ring.c | 14 +++++++-------
+ src/ring.h | 4 ++--
+ 3 files changed, 19 insertions(+), 9 deletions(-)
+
+commit cf56c6421f35f3908c4e9275f7c4bd83a3fad42b
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:46:03 2008 +0000
+
+ Fix missing-prototypes warnings.
+
+ * python/vte.override: Fix missing-prototypes warnings.
+
+ svn path=/trunk/; revision=2179
+
+ ChangeLog | 4 ++++
+ python/vte.override | 3 +++
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit 6324cace0ec03fab3f727996287cd5449f7ea89a
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:45:58 2008 +0000
+
+ No need to include gi18n-lib.h here.
+
+ * src/vtepangocairo.c: No need to include gi18n-lib.h here.
+
+ svn path=/trunk/; revision=2178
+
+ ChangeLog | 4 ++++
+ src/vtepangocairo.c | 1 -
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 7ff4e01ebf8a85f72620c70350dce2612452e440
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:45:52 2008 +0000
+
+ Clean up the pkgs declared for use in the .pc files.
+
+ * configure.in:
+ * vte-uninstalled.pc.in:
+ * vte.pc.in: Clean up the pkgs declared for use in the .pc files.
+
+ svn path=/trunk/; revision=2177
+
+ ChangeLog | 6 ++++++
+ configure.in | 9 ++++-----
+ vte-uninstalled.pc.in | 2 +-
+ vte.pc.in | 2 +-
+ 4 files changed, 12 insertions(+), 7 deletions(-)
+
+commit e629e5a8e86e76334026a4c1d4f57d6f12ac40f4
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:45:48 2008 +0000
+
+ Depend on gtk 2.12. Bug #398862.
+
+ * configure.in: Depend on gtk 2.12. Bug #398862.
+
+ svn path=/trunk/; revision=2176
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit aa41a463e213a8f6725bcd25c8aec223a58f6b83
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:45:42 2008 +0000
+
+ Fix the build (broken since r1622).
+
+ * src/table.c: (print_array): Fix the build (broken since r1622).
+
+ svn path=/trunk/; revision=2175
+
+ ChangeLog | 4 ++++
+ src/table.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 5dd988de95c7cdb0b8275c0189af620c08991a9d
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:45:36 2008 +0000
+
+ Don't include gtk.h here, it's unneeded.
+
+ * src/reaper.c: Don't include gtk.h here, it's unneeded.
+
+ svn path=/trunk/; revision=2174
+
+ ChangeLog | 4 ++++
+ src/reaper.c | 1 -
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 98ebf0dfe62d16d23436723f145417f87a66b2ae
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:45:29 2008 +0000
+
+ Make iso2022 programme build again; it was broken since r1612.
+
+ * src/iso2022.c: (main): Make iso2022 programme build again; it was
+ broken since r1612.
+
+ svn path=/trunk/; revision=2173
+
+ ChangeLog | 5 +++++
+ src/iso2022.c | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit a5b6886f2982522cc61a8a8f9e5359134ddad54a
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:45:23 2008 +0000
+
+ Separate CFLAGS and CPPFLAGS.
+
+ * src/Makefile.am: Separate CFLAGS and CPPFLAGS.
+
+ svn path=/trunk/; revision=2172
+
+ ChangeLog | 4 +++
+ src/Makefile.am | 72 +++++++++++++++++++++++++++++++++++--------------------
+ 2 files changed, 50 insertions(+), 26 deletions(-)
+
+commit 1835794092892eb2767f36bd7fa5b73d5e984d7c
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:45:16 2008 +0000
+
+ Don't add LDFLAGS to *_LDADD, that's wrong and broken.
+
+ * src/Makefile.am: Don't add LDFLAGS to *_LDADD, that's wrong and
+ broken.
+
+ svn path=/trunk/; revision=2171
+
+ ChangeLog | 5 +++++
+ src/Makefile.am | 43 +++++++++++++++++++++----------------------
+ 2 files changed, 26 insertions(+), 22 deletions(-)
+
+commit 5792cacf58b35e4664cf6aca5933e0090eec3f0c
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:45:09 2008 +0000
+
+ Remove more configure cruft: OTHERLIBS/CFLAGS and X_LIBS/CFLAGS.
+ Don't add LIBS to *_LDADD, since it's there by default already.
+
+ svn path=/trunk/; revision=2170
+
+ ChangeLog | 8 ++++++++
+ configure.in | 29 -----------------------------
+ src/Makefile.am | 47 ++++++++++++++++++++++++++---------------------
+ vte-uninstalled.pc.in | 4 ++--
+ vte.pc.in | 4 ++--
+ 5 files changed, 38 insertions(+), 54 deletions(-)
+
+commit a48bb06cadb10ebfc44d38533bfd82dc6c2a4602
+Author: Christian Persch <chpe src gnome org>
+Date: Sat Nov 22 13:45:01 2008 +0000
+
+ Use gdk_threads_add_timeout_seconds() here.
+
+ svn path=/trunk/; revision=2169
+
+ ChangeLog | 6 ++++++
+ src/vtepangocairo.c | 18 ++++++++++--------
+ 2 files changed, 16 insertions(+), 8 deletions(-)
+
+commit e1b8af75c1e8e85063a4fd7be3498637d372fa60
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Nov 21 01:02:32 2008 +0000
+
+ Remove FT2_LIBS and FT2_CFLAGS
+
+ 2008-11-21 Chris Wilson <chris chris-wilson co uk>
+
+ * vte.pc.in: Remove FT2_LIBS and FT2_CFLAGS
+
+
+ svn path=/trunk/; revision=2168
+
+ ChangeLog | 4 ++++
+ vte.pc.in | 3 +--
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+commit 8450c9d852d3240bdcca69f4c0ec387ededeefd8
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Nov 21 00:42:39 2008 +0000
+
+ Break out of interval search as early as possible. Exploit the strict
+
+ 2008-11-21 Chris Wilson <chris chris-wilson co uk>
+
+ * src/iso2022.c (_vte_iso2022_is_ambiguous): Break out of interval
+ search as early as possible. Exploit the strict ordering of the
+ ambiguous/unambiguous ranges to break out of the for loop as soon
+ as the character is less than a range start. (As the arrays only
+ contain 2/3 elements, it is not worth adding the overhead of calling
+ bsearch()).
+
+
+ svn path=/trunk/; revision=2167
+
+ ChangeLog | 9 +++++++++
+ src/iso2022.c | 12 ++++++++----
+ 2 files changed, 17 insertions(+), 4 deletions(-)
+
+commit 7bcb445f3a5f8edc5dc0b2fa55cf383a0c7e2dfe
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Nov 21 00:30:28 2008 +0000
+
+ Copy the gunichars directly to the array from the incoming chunk.
+
+ 2008-11-21 Chris Wilson <chris chris-wilson co uk>
+
+ * src/iso2022.c (process_cdata): Copy the gunichars directly to the
+ array from the incoming chunk.
+
+
+ svn path=/trunk/; revision=2166
+
+ ChangeLog | 5 +++++
+ src/iso2022.c | 14 +++++++++-----
+ 2 files changed, 14 insertions(+), 5 deletions(-)
+
+commit ce822897e6cf4b721c4d2b76c408987f065751f1
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Nov 21 00:28:30 2008 +0000
+
+ Commit the right Makefile.am this time!
+
+
+ svn path=/trunk/; revision=2165
+
+ src/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 8d33fa5325b487461ea27b301b4811bd3c51f4df
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Nov 21 00:27:34 2008 +0000
+
+ Remove FT2_FLAGS
+
+ 2008-11-20 Chris Wilson <chris chris-wilson co uk>
+
+ * src/Makefile.am: Remove FT2_FLAGS
+
+
+ svn path=/trunk/; revision=2164
+
+ ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 25763fcf97ee86a93f6a381dafcca5b3ab93a2bc
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 20 19:49:42 2008 +0000
+
+ Remove obsolete check.
+
+ 2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_destroy_delayed): Remove obsolete
+ check.
+
+
+ svn path=/trunk/; revision=2163
+
+ ChangeLog | 5 +++++
+ src/vtepangocairo.c | 6 ++----
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+commit 066c1231ac77e3adb1d69125d8f7b51ff7488719
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 20 19:48:22 2008 +0000
+
+ Bug 561713 – crash on font cache cleanup
+
+ 2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 561713 – crash on font cache cleanup
+
+ * src/vtepangocairo.c (font_info_reference), (font_info_destroy):
+ Remove destroy timeout when resurrecting a font info.
+
+
+ svn path=/trunk/; revision=2162
+
+ ChangeLog | 7 +++++++
+ src/vtepangocairo.c | 13 ++++++++++++-
+ 2 files changed, 19 insertions(+), 1 deletions(-)
+
+commit 5f755c1377aa53e8233451912062a59eb497e834
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 20 19:28:36 2008 +0000
+
+ Make profiling messages print the info pointer.
+
+ 2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_cache_ascii),
+ (font_info_allocate), (font_info_free),
+ (font_info_find_for_context):
+ Make profiling messages print the info pointer.
+
+
+ svn path=/trunk/; revision=2161
+
+ ChangeLog | 7 +++++++
+ src/vtepangocairo.c | 17 +++++++++++------
+ 2 files changed, 18 insertions(+), 6 deletions(-)
+
+commit 9a52291c1fc99dcc8c3b993e905a03b0b525237a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 20 16:57:41 2008 +0000
+
+ Remove more cruft.
+
+ 2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Remove more cruft.
+
+
+ svn path=/trunk/; revision=2160
+
+ ChangeLog | 4 ++
+ configure.in | 129 ----------------------------------------------------------
+ 2 files changed, 4 insertions(+), 129 deletions(-)
+
+commit 98e0498289684d6cc912f5e0aa816a110a2faccf
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 20 16:48:04 2008 +0000
+
+ Bug 560819 – Remove obsolete backends
+
+ 2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560819 – Remove obsolete backends
+
+ * configure.in:
+ * src/Makefile.am:
+ * src/vtebg.c (vte_bg_get_pixmap):
+ * src/vtebg.h:
+ * src/vtedraw.c:
+ * src/vtefc.c:
+ * src/vtefc.h:
+ * src/vteft2.c:
+ * src/vteft2.h:
+ * src/vtegl.c:
+ * src/vtegl.h:
+ * src/vteglyph.c:
+ * src/vteglyph.h:
+ * src/vterdb.c:
+ * src/vterdb.h:
+ * src/vtergb.c:
+ * src/vtergb.h:
+ * src/vtexft.c:
+ * src/vtexft.h:
+ Remove all backends except for pangocairo. Saves so much code.
+
+
+ svn path=/trunk/; revision=2159
+
+ ChangeLog | 25 ++
+ configure.in | 40 ---
+ src/Makefile.am | 24 +--
+ src/vtebg.c | 106 ------
+ src/vtebg.h | 5 -
+ src/vtedraw.c | 14 -
+ src/vtefc.c | 496 -----------------------------
+ src/vtefc.h | 48 ---
+ src/vteft2.c | 338 --------------------
+ src/vteft2.h | 33 --
+ src/vtegl.c | 525 ------------------------------
+ src/vtegl.h | 33 --
+ src/vteglyph.c | 805 ----------------------------------------------
+ src/vteglyph.h | 92 ------
+ src/vterdb.c | 273 ----------------
+ src/vterdb.h | 36 --
+ src/vtergb.c | 283 ----------------
+ src/vtergb.h | 53 ---
+ src/vtexft.c | 953 -------------------------------------------------------
+ src/vtexft.h | 37 ---
+ 20 files changed, 26 insertions(+), 4193 deletions(-)
+
+commit 1b660899a96132881818a267c791e179d60d02f9
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Thu Nov 20 16:27:50 2008 +0000
+
+ Oops
+
+ svn path=/trunk/; revision=2158
+
+ src/vtedraw.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit d88a45484df9095078b22a18089f258bb4810a77
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 20 16:12:37 2008 +0000
+
+ Bug 560819 – Remove obsolete backends
+
+ 2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560819 – Remove obsolete backends
+
+ * src/Makefile.am:
+ * src/vtedraw.c:
+ * src/vtepango.c:
+ * src/vtepango.h:
+ Remove pango backend.
+
+
+ svn path=/trunk/; revision=2157
+
+ ChangeLog | 10 ++
+ src/Makefile.am | 2 -
+ src/vtedraw.c | 3 -
+ src/vtepango.c | 379 -------------------------------------------------------
+ src/vtepango.h | 33 -----
+ 5 files changed, 10 insertions(+), 417 deletions(-)
+
+commit 726bb7a9b17f7d0feb1c65cbd3963da5af64be1e
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Thu Nov 20 16:11:12 2008 +0000
+
+ More
+
+ svn path=/trunk/; revision=2156
+
+ configure.in | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit dccec4deb32809194bb1376e426a97931ce1c66f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 20 16:09:15 2008 +0000
+
+ Bug 560819 – Remove obsolete backends
+
+ 2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560819 – Remove obsolete backends
+
+ * configure.in:
+ * src/Makefile.am:
+ * src/vtedraw.c:
+ * src/vtepangox.c:
+ * src/vtepangox.h:
+ Remove pangox backend.
+
+
+ svn path=/trunk/; revision=2155
+
+ ChangeLog | 11 ++
+ configure.in | 25 ---
+ src/Makefile.am | 5 -
+ src/vtedraw.c | 4 -
+ src/vtepangox.c | 438 -------------------------------------------------------
+ src/vtepangox.h | 33 ----
+ 6 files changed, 11 insertions(+), 505 deletions(-)
+
+commit f1bc5f3a784a221a2e172803f1a8d5d2598d4ecd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 20 15:11:41 2008 +0000
+
+ Bug 560818 – pangocairo backend doesn't share font cache across widgets
+
+ 2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560818 – pangocairo backend doesn't share font cache across
+ widgets
+
+ * src/vtepangocairo.c (font_info_cache_ascii),
+ (font_info_allocate), (font_info_free), (font_info_register),
+ (font_info_unregister), (font_info_reference),
+ (font_info_destroy_delayed), (font_info_destroy), (context_hash),
+ (context_equal), (font_info_find_for_context),
+ (font_info_create_for_context), (font_info_create_for_screen),
+ (font_info_get_unichar_info): Cache font info and use it for multiple
+ widgets.
+
+
+ svn path=/trunk/; revision=2154
+
+ ChangeLog | 14 +++
+ src/vtedraw.h | 2 +-
+ src/vtepangocairo.c | 238 +++++++++++++++++++++++++++++++++++++++++----------
+ 3 files changed, 206 insertions(+), 48 deletions(-)
+
+commit faf6763cd1fb9c4f8d1c06fde7683a1cd0c2a775
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 19 22:24:03 2008 +0000
+
+ Remove unused PangoCoverage.
+
+ 2008-11-19 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_create_for_screen),
+ (font_info_destroy): Remove unused PangoCoverage.
+
+
+ svn path=/trunk/; revision=2153
+
+ ChangeLog | 5 +++++
+ src/vtepangocairo.c | 7 -------
+ 2 files changed, 5 insertions(+), 7 deletions(-)
+
+commit 8078f417862e95f151e14f43a0afccfa2743d4cf
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 19 21:39:25 2008 +0000
+
+ Cache ASCII characters when building font.
+
+ 2008-11-19 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_find_unichar_info),
+ (font_info_cache_ascii), (font_info_measure_font),
+ (font_info_get_unichar_info): Cache ASCII characters when building
+ font.
+
+
+ svn path=/trunk/; revision=2152
+
+ ChangeLog | 7 +++
+ src/vtepangocairo.c | 133 ++++++++++++++++++++++++++++++++++++++++++---------
+ 2 files changed, 117 insertions(+), 23 deletions(-)
+
+commit 8a8c65c27aa21d6936b0de656df47e5c549dbfa0
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Nov 18 14:10:30 2008 +0000
+
+ Remove glib from gnome-pty-helper. Bug #560977.
+
+ svn path=/trunk/; revision=2151
+
+ ChangeLog | 11 +++++++++++
+ gnome-pty-helper/Makefile.am | 3 ---
+ gnome-pty-helper/configure.in | 12 +++++++-----
+ gnome-pty-helper/gnome-pty-helper.c | 11 +++++------
+ 4 files changed, 23 insertions(+), 14 deletions(-)
+
+commit f9a0a8606f64d4212385943c360749ab5f62b4cd
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Nov 18 13:47:42 2008 +0000
+
+ Fix missing prototype warning.
+
+ svn path=/trunk/; revision=2150
+
+ ChangeLog | 4 ++++
+ src/vteskel.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit c298a8512d080a17d86f98af7142f9fd4c2ae580
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 18 13:25:08 2008 +0000
+
+ Remove copy of font desc and antialias from font info object as they were
+
+ 2008-11-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_create_for_screen),
+ (font_info_destroy): Remove copy of font desc and antialias from font
+ info object as they were not used.
+
+
+ svn path=/trunk/; revision=2149
+
+ ChangeLog | 6 ++++++
+ src/vtepangocairo.c | 12 ++----------
+ 2 files changed, 8 insertions(+), 10 deletions(-)
+
+commit 6ae356484534ed676c34ea87e5e917ee0b33153e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 18 13:23:42 2008 +0000
+
+ Bug 561185 – pangocairo backend sets antialias incorrectly
+
+ 2008-11-18 Behdad Esfahbod <behdad gnome org>
+
+ Bug 561185 – pangocairo backend sets antialias incorrectly
+
+ * src/vtepangocairo.c (font_info_create_for_screen): Handle
+ FORCE_ENABLE correctly.
+
+
+ svn path=/trunk/; revision=2148
+
+ ChangeLog | 7 +++++++
+ src/vtepangocairo.c | 10 +++++++++-
+ 2 files changed, 16 insertions(+), 1 deletions(-)
+
+commit fc665e5884cf28ecba977bc5e4408b8188c0c866
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Nov 16 02:21:48 2008 +0000
+
+ Bug 560817 – pagocairo backend doesn't have correct opacity support
+
+ 2008-11-16 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560817 – pagocairo backend doesn't have correct opacity support
+
+ * src/vtepangocairo.c (_vte_pangocairo_clear),
+ (_vte_pangocairo_draw_text), (_vte_pangocairo_draw_rectangle),
+ (_vte_pangocairo_fill_rectangle): Fix opacity support by using
+ SOURCE operator.
+
+
+ svn path=/trunk/; revision=2147
+
+ ChangeLog | 9 +++++++++
+ src/vtepangocairo.c | 12 ++++++------
+ 2 files changed, 15 insertions(+), 6 deletions(-)
+
+commit 5c59d1c957ccedc0ee2bca4c6e07168b9a03a913
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Nov 16 02:20:05 2008 +0000
+
+ Bug 560991 – Unsetting background doesn't work
+
+ 2008-11-16 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560991 – Unsetting background doesn't work
+
+ * src/vte.c (vte_terminal_set_background_image): Correctly unset
+ background if image==NULL.
+
+
+ svn path=/trunk/; revision=2146
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 217987a8e58b754c99125455d3f96cf14189387f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Nov 14 15:58:33 2008 +0000
+
+ Bug 395599 – Add pangocairo backend
+
+ 2008-11-14 Behdad Esfahbod <behdad gnome org>
+
+ Bug 395599 – Add pangocairo backend
+
+ * configure.in:
+ Require pango >= 1.22.0
+
+ * src/Makefile.am:
+ * src/vtedraw.c:
+ * src/vtepangocairo.c:
+ * src/vtepangocairo.h:
+ Add a pangocairo drawing backend. Use it by default. This is as fast
+ as the xft backend. Doesn't share font caches across widgets yet.
+ Also, the transparent background stuff doesn't match xft backend's
+ yet.
+
+
+ svn path=/trunk/; revision=2145
+
+ ChangeLog | 16 ++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +
+ src/vtedraw.c | 2 +
+ src/vtepangocairo.c | 682 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vtepangocairo.h | 33 +++
+ 6 files changed, 736 insertions(+), 1 deletions(-)
+
+commit dcc643ff1247e0337b35b6270c6951de3918c8cd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Nov 14 11:37:59 2008 +0000
+
+ Remove unneeded draw methods.
+
+ 2008-11-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_ensure_font):
+ * src/vtedraw.c (_vte_draw_new), (_vte_draw_free),
+ (_vte_draw_set_background_opacity),
+ (_vte_draw_set_background_color), (_vte_draw_set_text_font),
+ (_vte_draw_get_text_metrics), (_vte_draw_get_char_width),
+ (_vte_draw_char), (_vte_draw_draw_rectangle),
+ (_vte_draw_set_scroll):
+ * src/vtedraw.h:
+ * src/vteft2.c (_vte_ft2_destroy), (_vte_ft2_start),
+ (_vte_ft2_end), (_vte_ft2_set_background_image), (_vte_ft2_clear),
+ (_vte_ft2_set_text_font), (_vte_ft2_get_text_metrics),
+ (_vte_ft2_get_char_width), (_vte_ft2_draw_text),
+ (_vte_ft2_draw_has_char), (_vte_ft2_draw_rectangle),
+ (_vte_ft2_fill_rectangle):
+ * src/vtegl.c (_vte_gl_destroy), (_vte_gl_get_visual),
+ (_vte_gl_start), (_vte_gl_end), (_vte_gl_set_background_image),
+ (_vte_gl_clear), (_vte_gl_set_text_font),
+ (_vte_gl_get_text_metrics), (_vte_gl_get_char_width),
+ (_vte_gl_draw_text), (_vte_gl_draw_has_char), (_vte_gl_rectangle):
+ * src/vtepango.c (_vte_pango_set_text_font),
+ (_vte_pango_get_text_metrics):
+ * src/vtepangox.c (_vte_pangox_create), (_vte_pangox_destroy),
+ (_vte_pangox_start), (_vte_pangox_end),
+ (_vte_pangox_set_background_image), (_vte_pangox_clip),
+ (_vte_pangox_clear), (_vte_pangox_set_text_font),
+ (_vte_pangox_get_text_metrics), (_vte_pangox_get_using_fontconfig),
+ (_vte_pangox_draw_text), (_vte_pangox_draw_has_char),
+ (_vte_pangox_draw_rectangle), (_vte_pangox_fill_rectangle):
+ * src/vtepangox.h:
+ * src/vteskel.c (_vte_skel_clear), (_vte_skel_get_text_metrics),
+ (_vte_skel_draw_text), (_vte_skel_fill_rectangle):
+ * src/vtexft.c (_vte_xft_set_text_font),
+ (_vte_xft_get_text_metrics), (_vte_xft_draw_text):
+ Remove unneeded draw methods.
+
+
+ svn path=/trunk/; revision=2144
+
+ ChangeLog | 37 ++++++++++
+ src/vte.c | 9 +--
+ src/vtedraw.c | 90 ++++++++++---------------
+ src/vtedraw.h | 21 +-----
+ src/vteft2.c | 87 ++++++++----------------
+ src/vtegl.c | 85 ++++++-----------------
+ src/vtepango.c | 50 ++++++++------
+ src/vtepangox.c | 146 +++++++++++++++++++++-------------------
+ src/vtepangox.h | 2 +-
+ src/vteskel.c | 201 ++++++++-----------------------------------------------
+ src/vtexft.c | 62 ++++++++---------
+ 11 files changed, 293 insertions(+), 497 deletions(-)
+
+commit 5354340b88cf24aa41b4a1e116de9e801a1c34be
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Nov 14 10:06:20 2008 +0000
+
+ Minor fix.
+
+ 2008-11-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.c (_vte_draw_get_char_width): Minor fix.
+
+ * src/vtepangox.c (_vte_pango_x_create), (_vte_pango_x_start),
+ (_vte_pango_x_clear): Cleanup here too.
+
+
+ svn path=/trunk/; revision=2143
+
+ ChangeLog | 7 ++++
+ src/vtedraw.c | 2 +-
+ src/vtepangox.c | 106 ++++++++----------------------------------------------
+ 3 files changed, 24 insertions(+), 91 deletions(-)
+
+commit a37ac82b6f5cc939520449f1274c59bd414fc0c4
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 13 15:59:45 2008 +0000
+
+ Undo previous change instead of cleanly fix it for now.
+
+ 2008-11-13 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in:
+ * src/vte-private.h:
+ Undo previous change instead of cleanly fix it for now.
+
+
+ svn path=/trunk/; revision=2142
+
+ ChangeLog | 6 ++++++
+ configure.in | 2 ++
+ src/vte-private.h | 3 ---
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+commit 3877c89caf964c13e018a46cb50d5906027fa401
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 13 15:53:45 2008 +0000
+
+ Why do we let people configure random things?
+
+ 2008-11-13 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in:
+ * src/vte-private.h:
+ Why do we let people configure random things?
+
+
+ svn path=/trunk/; revision=2141
+
+ ChangeLog | 6 ++++++
+ configure.in | 2 --
+ src/vte-private.h | 3 +++
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+commit f913fc6c66a30d72194fd5b9455e140283fe626b
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Thu Nov 13 15:44:24 2008 +0000
+
+ .
+
+ svn path=/trunk/; revision=2140
+
+ src/vtexft.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 97dc4f67f739dc9a6523454b5824a60d04352b88
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 13 15:13:26 2008 +0000
+
+ Simplify backends by relying more on defaults.
+
+ 2008-11-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_background_update):
+ * src/vtedraw.c (_vte_draw_update_requires_clear), (_vte_draw_new),
+ (_vte_draw_set_background_opacity),
+ (_vte_draw_set_background_color), (_vte_draw_set_background_image),
+ (_vte_draw_char), (_vte_draw_set_scroll):
+ * src/vtedraw.h:
+ * src/vteft2.c (_vte_ft2_set_background_image), (_vte_ft2_clear),
+ (_vte_ft2_get_char_width):
+ * src/vtegl.c (_vte_gl_create), (_vte_gl_clear),
+ (_vte_gl_get_char_width), (_vte_gl_draw_text):
+ * src/vtepango.c (_vte_pango_create), (_vte_pango_start),
+ (_vte_pango_set_background_image), (_vte_pango_clear):
+ * src/vtexft.c (_vte_xft_create), (_vte_xft_set_background_image),
+ (_vte_xft_clear), (_vte_xft_get_char_width):
+ Simplify backends by relying more on defaults.
+
+
+ svn path=/trunk/; revision=2139
+
+ ChangeLog | 18 ++++++++
+ src/vte.c | 6 +-
+ src/vtedraw.c | 67 +++++++++++++++++++-----------
+ src/vtedraw.h | 26 +++++++++---
+ src/vteft2.c | 83 ++++++-------------------------------
+ src/vtegl.c | 95 ++++++++++--------------------------------
+ src/vtepango.c | 115 ++++++++--------------------------------------------
+ src/vtexft.c | 124 ++++++++-----------------------------------------------
+ 8 files changed, 154 insertions(+), 380 deletions(-)
+
+commit 18f2f88d77c000ecb69d35c30a6103b93c977828
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 13 13:17:12 2008 +0000
+
+ Accept draw impl if impl->check is NULL.
+
+ 2008-11-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.c (_vte_draw_init_user), (_vte_draw_init_default):
+ Accept draw impl if impl->check is NULL.
+
+
+ svn path=/trunk/; revision=2138
+
+ ChangeLog | 5 +++++
+ src/vtedraw.c | 6 ++++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit f60e79017c23bc77c88c7720756610856d05eb7d
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Nov 13 12:29:36 2008 +0000
+
+ Use sensical defaults instead of g_return_if_fail'ing when backend
+
+ 2008-11-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.h:
+ * src/vtedraw.c (_vte_draw_new), (_vte_draw_get_visual),
+ (_vte_draw_get_colormap), (_vte_draw_start), (_vte_draw_end),
+ (_vte_draw_set_background_color), (_vte_draw_set_background_image),
+ (_vte_draw_requires_repaint), (_vte_draw_clip), (_vte_draw_clear),
+ (_vte_draw_set_text_font), (_vte_draw_get_text_width),
+ (_vte_draw_get_text_height), (_vte_draw_get_text_ascent),
+ (_vte_draw_get_char_width), (_vte_draw_get_using_fontconfig),
+ (_vte_draw_text), (_vte_draw_char), (_vte_draw_has_char),
+ (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle),
+ (_vte_draw_set_scroll):
+ Use sensical defaults instead of g_return_if_fail'ing when backend
+ functions are not implemented.
+
+
+ svn path=/trunk/; revision=2137
+
+ ChangeLog | 16 ++++++
+ src/vtedraw.c | 169 ++++++++++++++++++++++++++++++++++++---------------------
+ src/vtedraw.h | 1 +
+ 3 files changed, 124 insertions(+), 62 deletions(-)
+
+commit 746e946887ca9d763b6d69d70cc5e5055baeab47
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Thu Nov 13 12:29:03 2008 +0000
+
+ Update templates
+
+ svn path=/trunk/; revision=2136
+
+ doc/reference/tmpl/vte.sgml | 130 +++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 130 insertions(+), 0 deletions(-)
+
+commit 4fdc0fae8a3d740def335fc74f695b695e4c13fb
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Oct 31 12:59:29 2008 +0000
+
+ Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
+
+ 2008-10-31 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
+
+ * src/vte.c (vte_terminal_deselect_all):
+ Preserve the copy of the selection until it is replace by a new
+ selection, so that we can perform asynchronous copies from the
+ clipboard.
+
+
+ svn path=/trunk/; revision=2135
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 4 ++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+commit ff594c80826beb7a11a695c88368157636a59d85
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Oct 23 09:43:21 2008 +0000
+
+ Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
+
+ 2008-10-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
+
+ * src/vte.c (vte_terminal_deselect_all),
+ (vte_terminal_extend_selection):
+ After the user modifies the selection, copy it to PRIMARY and store
+ it on the terminal. This ensures that after a screen redraw, we
+ compare the contents of the selected region with the current
+ selection, instead of stale data.
+
+
+ svn path=/trunk/; revision=2134
+
+ ChangeLog | 11 +++++++++++
+ src/vte.c | 11 ++++++++---
+ 2 files changed, 19 insertions(+), 3 deletions(-)
+
+commit 5f84486a0a4e073a16a837128f0c19b0515a8c9c
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Oct 23 09:15:37 2008 +0000
+
+ Default glade catalogue to disabled.
+
+ svn path=/trunk/; revision=2133
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit ca941172225b5333fab5f5caafce9ddacfd14f92
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Oct 23 08:50:26 2008 +0000
+
+ I hate ChangeLogs
+
+ svn path=/trunk/; revision=2132
+
+ ChangeLog | 27 +++++++++++++++++++++++++++
+ 1 files changed, 27 insertions(+), 0 deletions(-)
+
+commit def3f9687ef0d36cb0e6b3fcf22c60df44b4d090
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Oct 23 08:39:50 2008 +0000
+
+ Use glib-genmarshal --internal directly instead of checking the glib
+ version, since we now depend on a glib version that provides this.
+
+ svn path=/trunk/; revision=2131
+
+ configure.in | 3 ---
+ src/Makefile.am | 4 ++--
+ 2 files changed, 2 insertions(+), 5 deletions(-)
+
+commit 31a1fe16b8e790b9375255adb025fc6f3e7c1eca
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Oct 23 08:39:44 2008 +0000
+
+ Bug 556398 – maybe deprecate vte_terminal_get_char_ascent/descent
+
+ svn path=/trunk/; revision=2130
+
+ src/vte.c | 4 ++++
+ src/vte.h | 6 ++++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit f2875cfc9b42c7f4e1dbb9f8cdf2a95d858aecd3
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Oct 23 08:39:38 2008 +0000
+
+ Bug 339819 – LibVTE terminals in GLADE
+ Terminal icons copied from gnome-icon-theme (licence: GPL).
+
+ svn path=/trunk/; revision=2129
+
+ Makefile.am | 4 ++
+ configure.in | 28 +++++++++++++
+ glade/Makefile.am | 43 ++++++++++++++++++++
+ .../hicolor_actions_16x16_widget-vte-terminal.png | Bin 0 -> 644 bytes
+ .../hicolor_actions_22x22_widget-vte-terminal.png | Bin 0 -> 901 bytes
+ glade/vte.xml.in | 40 ++++++++++++++++++
+ 6 files changed, 115 insertions(+), 0 deletions(-)
+
+commit 53f96acb7e7bbadaedacfd613c7c8cea3491eaf8
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Oct 23 08:39:28 2008 +0000
+
+ Bug 399364 – Implement properties
+ Add basic properties, and emit notifications when they change.
+
+ svn path=/trunk/; revision=2128
+
+ src/vte.c | 1021 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ 1 files changed, 958 insertions(+), 63 deletions(-)
+
+commit 51b97b75f505a8b15ccf034a4c981b137c09549e
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Oct 19 21:44:50 2008 +0000
+
+ Add note to docs that all file descriptors except std{in,out,err} are
+ being closed in the child before exec(). Bug #320128.
+
+ svn path=/trunk/; revision=2127
+
+ src/vte.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit 879712998890e09606b88722cfa3765ee3d87870
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Oct 19 13:51:38 2008 +0000
+
+ Remove debug spew.
+
+ svn path=/trunk/; revision=2126
+
+ src/vte.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit 1f270f991a2eab20c42190abf4b5bedb6705522e
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Oct 19 13:51:33 2008 +0000
+
+ I hate ChangeLog.
+
+ svn path=/trunk/; revision=2125
+
+ ChangeLog | 6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 7d353726a84bd1ec000e57de7cf82d3fef56ee38
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Oct 19 13:51:28 2008 +0000
+
+ Bug 556328 – Document set-scroll-adjustment parameters
+
+ svn path=/trunk/; revision=2124
+
+ src/vte.c | 14 +++++++++++++-
+ 1 files changed, 13 insertions(+), 1 deletions(-)
+
+commit ac3b51ecfd995752f5bc2327713b5c448813252b
+Author: Djihed Afifi <djihed src gnome org>
+Date: Sun Oct 19 11:45:36 2008 +0000
+
+ Updated Arabic Translation by Khaled Hosny.
+
+ * Updated Arabic Translation by Khaled Hosny.
+
+ svn path=/trunk/; revision=2123
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 77518ec1de91234080a78baf2af8cc223ce7a63b
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Oct 15 16:48:26 2008 +0000
+
+ Update doc coverage test from cairo.
+
+ 2008-10-15 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/Makefile.am:
+ * doc/reference/check-doc-coverage.sh:
+ * doc/reference/check.docs:
+ Update doc coverage test from cairo.
+
+
+ svn path=/trunk/; revision=2122
+
+ ChangeLog | 7 +++++
+ doc/reference/Makefile.am | 9 +++++-
+ doc/reference/check-doc-coverage.sh | 48 +++++++++++++++++++++++++++++++++++
+ doc/reference/check.docs | 39 ----------------------------
+ 4 files changed, 62 insertions(+), 41 deletions(-)
+
+commit 921ab3aa61a4a7cfaa845523fbab77288822445d
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Oct 15 01:54:37 2008 +0000
+
+ Invalidate cursor upon shape change.
+
+ 2008-10-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_set_cursor_shape):
+ Invalidate cursor upon shape change.
+
+
+ svn path=/trunk/; revision=2121
+
+ ChangeLog | 5 +++++
+ src/vte.c | 1 +
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 0aea533027aafd26a4bf13e1245a719ab2bd9b04
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Oct 14 23:11:26 2008 +0000
+
+ Add new API to the python bindings.
+
+ svn path=/trunk/; revision=2120
+
+ ChangeLog | 4 ++++
+ python/vte.defs | 45 +++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 45 insertions(+), 4 deletions(-)
+
+commit 6a93d0c685658ea1fab4daef0f999dbc2009e1c3
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Oct 14 20:47:50 2008 +0000
+
+ Remove VTE_CURSOR_OUTLINE in favor of VTE_LINE_WIDTH.
+
+ 2008-10-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_draw_line), (vte_terminal_paint_cursor):
+ Remove VTE_CURSOR_OUTLINE in favor of VTE_LINE_WIDTH.
+
+
+ svn path=/trunk/; revision=2119
+
+ ChangeLog | 6 ++++++
+ src/vte-private.h | 1 -
+ src/vte.c | 18 +++++++++---------
+ 3 files changed, 15 insertions(+), 10 deletions(-)
+
+commit f33c993073d6cdc6c1c8123521b4efdaa4822b4a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Oct 14 20:39:44 2008 +0000
+
+ Supposedly handle reverse video during cursor drawing.
+
+ 2008-10-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_paint_cursor):
+ Supposedly handle reverse video during cursor drawing.
+
+
+ svn path=/trunk/; revision=2118
+
+ ChangeLog | 5 +++++
+ src/vte.c | 7 ++++---
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+commit 61ec5d3cad460529acdee4e98f1f7d71e202b782
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Oct 14 20:36:10 2008 +0000
+
+ Move IM preedit string drawing into its own function for code clarity.
+
+ 2008-10-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_paint_im_preedit_string),
+ (vte_terminal_paint):
+ Move IM preedit string drawing into its own function for code
+ clarity.
+
+
+ svn path=/trunk/; revision=2117
+
+ ChangeLog | 7 +++
+ src/vte.c | 157 ++++++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 90 insertions(+), 74 deletions(-)
+
+commit 5cff4182d680681d815760ec7c3bcfbb4b785d77
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Oct 14 20:25:25 2008 +0000
+
+ Bug 549835 – Feature Request: Configurable cursor appearance
+
+ 2008-10-14 Behdad Esfahbod <behdad gnome org>
+
+ Bug 549835 – Feature Request: Configurable cursor appearance
+
+ * src/vte.h:
+ New public api:
+
+ VteTerminalCursorShape
+ vte_terminal_set_cursor_shape
+ vte_terminal_get_cursor_shape
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_insert_char), (vte_terminal_init),
+ (vte_terminal_paint_cursor), (vte_terminal_paint),
+ (vte_terminal_set_cursor_shape), (vte_terminal_get_cursor_shape):
+ Implement new API. Also clean up cursor drawing in general.
+
+ * doc/reference/Makefile.am:
+ * doc/reference/tmpl/reaper.sgml:
+ * doc/reference/tmpl/vte-unused.sgml:
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/vte-sections.txt:
+ Doc new symbols. Also add some missing docs.
+
+
+ svn path=/trunk/; revision=2116
+
+ ChangeLog | 24 +++
+ doc/reference/Makefile.am | 3 +
+ doc/reference/tmpl/reaper.sgml | 32 ----
+ doc/reference/tmpl/vte-unused.sgml | 30 +++
+ doc/reference/tmpl/vte.sgml | 59 ++++++-
+ doc/reference/vte-sections.txt | 10 +
+ src/vte-private.h | 3 +
+ src/vte.c | 360 ++++++++++++++++++++----------------
+ src/vte.h | 18 ++-
+ 9 files changed, 346 insertions(+), 193 deletions(-)
+
+commit d1986f303449acd1ae0ad3d2fde37f3a65959e32
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Oct 13 11:53:32 2008 +0000
+
+ Add gobject property getter/setter.
+
+ svn path=/trunk/; revision=2115
+
+ ChangeLog | 4 ++++
+ src/vte.c | 35 ++++++++++++++++++++++++++++++++++-
+ 2 files changed, 38 insertions(+), 1 deletions(-)
+
+commit 75e65a0fe737094613bdfe50fd759f2cac6982aa
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Oct 13 11:46:18 2008 +0000
+
+ Add ChangeLog entry.
+
+ svn path=/trunk/; revision=2114
+
+ ChangeLog | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 9331adbf9c6f03e29b7b08500e1a99bf2c16937c
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Oct 13 11:46:12 2008 +0000
+
+ Fix missing prorotypes compiler warning in marshal.c.
+
+ svn path=/trunk/; revision=2113
+
+ src/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 04f263af0a66c1bc15b43914b42c904a96f37d03
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Oct 13 11:44:59 2008 +0000
+
+ Add vte_terminal_get_pty().
+
+ svn path=/trunk/; revision=2112
+
+ src/vte.c | 17 +++++++++++++++++
+ src/vte.h | 1 +
+ 2 files changed, 18 insertions(+), 0 deletions(-)
+
+commit 05cad2fc7cef3ae9e6dd063a6f8933cde76a6af6
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Oct 6 20:12:15 2008 +0000
+
+ Bug 329108 – Please support setting X's URGENCY hint upon terminal beep
+
+ svn path=/trunk/; revision=2111
+
+ doc/reference/tmpl/vte.sgml | 7 +++++++
+ src/vte.c | 11 +++++++++++
+ src/vte.h | 3 ++-
+ src/vteseq.c | 2 ++
+ 4 files changed, 22 insertions(+), 1 deletions(-)
+
+commit 983bff721bc647fa7b3903d4828d056265cf66a8
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Oct 6 20:12:10 2008 +0000
+
+ Fix compiler warning about g_free() on a const pointer.
+
+ svn path=/trunk/; revision=2110
+
+ ChangeLog | 4 ++++
+ src/vteconv.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 77347af8208aaa02078e0eb650ec0c980ed6016f
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Oct 6 20:12:05 2008 +0000
+
+ Add new function to the python bindings.
+
+ svn path=/trunk/; revision=2109
+
+ ChangeLog | 6 ++++++
+ python/vte.defs | 10 ++++++++++
+ 2 files changed, 16 insertions(+), 0 deletions(-)
+
+commit 91127a312b5c33c9d58facda49077c8b1a1d7a0a
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Oct 6 20:12:00 2008 +0000
+
+ Deprecate useless macros. Bug #539130.
+
+ svn path=/trunk/; revision=2108
+
+ ChangeLog | 6 ++++++
+ src/vte.h | 8 ++++----
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+commit da9f7b17746625525b1761379803d90fe83095c2
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Oct 6 20:11:55 2008 +0000
+
+ Add vte_terminal_get_child_exit_status() so we can get the child's exit status from withint the
child-exited signal handlers. Bug #509204.
+
+ svn path=/trunk/; revision=2107
+
+ ChangeLog | 8 ++++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 26 ++++++++++++++++++++++++++
+ src/vte.h | 2 ++
+ 4 files changed, 37 insertions(+), 0 deletions(-)
+
+commit d8a852897eb7ed60ef5aad7be264f31d484ec36f
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Oct 6 20:11:49 2008 +0000
+
+ Bump version to 0.17.5.
+
+ svn path=/trunk/; revision=2106
+
+ ChangeLog | 4 ++++
+ configure.in | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 6d1a9b4973ff32a7f15dc5eb7d06a41d5fb9d193
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Sep 22 22:41:46 2008 +0000
+
+ Version 0.17.4.
+
+ svn path=/trunk/; revision=2104
+
+ NEWS | 4 ++++
+ configure.in | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 9dfdffe7083d739664aaa9a9d39080e57055f4c8
+Author: Leonardo Ferreira Fontenelle <leonardof gnome org>
+Date: Sun Sep 21 21:33:56 2008 +0000
+
+ Fixed terminology in Brazilian Portuguese translation by Vladimir Melo.
+
+ 2008-09-21 Leonardo Ferreira Fontenelle <leonardof gnome org>
+
+ * pt_BR.po: Fixed terminology in Brazilian Portuguese translation by
+ Vladimir Melo.
+
+ svn path=/trunk/; revision=2103
+
+ po/ChangeLog | 5 +++++
+ po/pt_BR.po | 43 +++++++++++++++++++++----------------------
+ 2 files changed, 26 insertions(+), 22 deletions(-)
+
+commit 792f6408202ebfe840d7b33df70452b7b7bdc790
+Author: Mugurel Tudor <mugurelu gnome ro>
+Date: Sun Sep 21 21:23:37 2008 +0000
+
+ Updated Romanian translation by Mişu Moldovan <dumol gnome ro>
+
+ 2008-09-22 Mugurel Tudor <mugurelu gnome ro>
+
+ * ro.po: Updated Romanian translation by
+ Mişu Moldovan <dumol gnome ro>
+
+ svn path=/trunk/; revision=2102
+
+ po/ChangeLog | 5 ++++
+ po/ro.po | 68 ++++++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 43 insertions(+), 30 deletions(-)
+
+commit afc352ee3267250ce043e6f09de44268ed35c99a
+Author: Djihed Afifi <djihed src gnome org>
+Date: Thu Sep 18 02:06:51 2008 +0000
+
+ Updated Arabic Translation by Khaled Hosny.
+
+ * Updated Arabic Translation by Khaled Hosny.
+
+ svn path=/trunk/; revision=2101
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 5f4cd5aa22c2606a0bad57b39c50de7f83019b68
+Author: Luca Ferretti <elle uca libero it>
+Date: Wed Sep 17 18:21:33 2008 +0000
+
+ Updated Italian translation by Francesco Marletta.
+
+ 2008-09-17 Luca Ferretti <elle uca libero it>
+
+ * it.po: Updated Italian translation by Francesco Marletta.
+
+ svn path=/trunk/; revision=2100
+
+ po/ChangeLog | 4 ++++
+ po/it.po | 54 +++++++++++++++++++++++++-----------------------------
+ 2 files changed, 29 insertions(+), 29 deletions(-)
+
+commit 96c65ee99cfb9a8e790492b2fc498171e666a6ed
+Author: Shankar Prasad <sprasad src gnome org>
+Date: Mon Sep 15 10:48:27 2008 +0000
+
+ updated kannada translation and ChangeLog
+
+ svn path=/trunk/; revision=2099
+
+ po/ChangeLog | 4 ++
+ po/kn.po | 92 +++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 53 insertions(+), 43 deletions(-)
+
+commit 24b4ad647d04efb2ed0119727a3dd6bb5e8c05e3
+Author: Djihed Afifi <djihed src gnome org>
+Date: Mon Sep 15 09:48:03 2008 +0000
+
+ Updated Arabic Translation by Khaled Hosny.
+
+ * Updated Arabic Translation by Khaled Hosny.
+
+ svn path=/trunk/; revision=2098
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 25642a2991556c9260eed58f4443ebf725e7d81f
+Author: Duarte Loreto <happyguy_pt hotmail com>
+Date: Sun Sep 14 16:33:04 2008 +0000
+
+ Updated Portuguese translation.
+
+ 2008-09-14 Duarte Loreto <happyguy_pt hotmail com>
+
+ * pt.po: Updated Portuguese translation.
+
+ svn path=/trunk/; revision=2097
+
+ po/ChangeLog | 4 +++
+ po/pt.po | 60 +++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 34 insertions(+), 30 deletions(-)
+
+commit 15c8c1080589506eeec722032d5a8b0292e020e8
+Author: Manoj Kumar Giri <mgiri src gnome org>
+Date: Wed Sep 10 07:54:25 2008 +0000
+
+ Updated Oriya (or.po) Translation
+
+ svn path=/trunk/; revision=2096
+
+ po/ChangeLog | 4 +++
+ po/or.po | 78 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 46 insertions(+), 36 deletions(-)
+
+commit 722550ac37d46549e865149be2220157634965cb
+Author: Praveen Arimbrathodiyil <apravi src gnome org>
+Date: Wed Sep 10 04:08:15 2008 +0000
+
+ small correction
+
+ svn path=/trunk/; revision=2095
+
+ po/ml.po | 10 ++--------
+ 1 files changed, 2 insertions(+), 8 deletions(-)
+
+commit 6545d58a8e6e9c7e683f8726158f0c9665396b11
+Author: Robert Sedak <rsedak src gnome org>
+Date: Tue Sep 9 17:18:14 2008 +0000
+
+ Update: Croatian Language
+
+ svn path=/trunk/; revision=2094
+
+ po/ChangeLog | 3 ++
+ po/hr.po | 74 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 43 insertions(+), 34 deletions(-)
+
+commit 34e10694b47a49961b67c96230fbf1823548f657
+Author: Christian Persch <chpe src gnome org>
+Date: Mon Sep 8 20:09:06 2008 +0000
+
+ vte 0.17.3.
+
+ svn path=/trunk/; revision=2092
+
+ ChangeLog | 7 +++++++
+ NEWS | 12 ++++++++++++
+ configure.in | 4 ++--
+ doc/reference/tmpl/reaper.sgml | 32 ++++++++++++++++++++++++++++++++
+ doc/reference/tmpl/vte-unused.sgml | 30 ------------------------------
+ 5 files changed, 53 insertions(+), 32 deletions(-)
+
+commit 2698dbcc5c8805380c5fc77ca1928ec582c84728
+Author: Christian Persch <chpe src gnome org>
+Date: Sun Sep 7 17:53:11 2008 +0000
+
+ Update python bindings.
+
+ * python/vte.defs: Update python bindings.
+
+ svn path=/trunk/; revision=2091
+
+ ChangeLog | 4 ++
+ python/vte.defs | 127 ++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 101 insertions(+), 30 deletions(-)
+
+commit 0f3575738b510049d54e133a6a5a74070772ffd0
+Author: Sébastien Granjoux <seb sfo free fr>
+Date: Mon Sep 1 11:14:44 2008 +0000
+
+ Bug 538344 – Anjuta hangs when program is executed in terminal
+
+ 2008-08-20 Sébastien Granjoux <seb sfo free fr>
+
+ Bug 538344 – Anjuta hangs when program is executed in terminal
+
+ * src/vte.c: Ensure the output channel exists when we need to write.
+
+
+ svn path=/trunk/; revision=2090
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 5 ++++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 13bbce8161377ae4f9ff866fded76a795613dc9f
+Author: Goran Rakic <grakic src gnome org>
+Date: Mon Aug 25 14:57:20 2008 +0000
+
+ Conversion from sr@Latn to sr@latin
+
+ svn path=/trunk/; revision=2089
+
+ po/ChangeLog | 5 +++++
+ po/LINGUAS | 2 +-
+ po/{sr Latn po => sr latin po} | 0
+ 3 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 0e0aab333668dd11959b5ef0e8695dc1236c40bb
+Author: Christian Persch <chpe src gnome org>
+Date: Wed Aug 20 13:10:12 2008 +0000
+
+ Plug a mem leak.
+
+ svn path=/trunk/; revision=2088
+
+ ChangeLog | 5 +++++
+ src/vte.c | 4 +++-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 555d0d2a8e4d6f992789d6bd00137ce6b9f853e3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Aug 15 20:11:58 2008 +0000
+
+ fcntl(2) specifies that the flags argument is a long. Make it so.
+
+ 2008-08-15 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_set_pty):
+ fcntl(2) specifies that the flags argument is a long. Make it so.
+
+
+ svn path=/trunk/; revision=2087
+
+ ChangeLog | 5 +++++
+ src/vte.c | 24 ++++++++++++------------
+ 2 files changed, 17 insertions(+), 12 deletions(-)
+
+commit e976391ce7dd68d4e66bf22194112772a099dbfd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Aug 14 00:00:38 2008 +0000
+
+ Fix all "signed vs unsigned comparison" warnings.
+
+ 2008-08-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_match_check_internal_vte),
+ (vte_terminal_ensure_cursor), (vte_terminal_set_colors),
+ (_vte_terminal_insert_char), (vte_terminal_feed),
+ (vte_terminal_key_press), (vte_terminal_match_hilite_update),
+ (vte_terminal_extend_selection):
+ * src/vteseq.c (vte_terminal_find_charcell),
+ (vte_sequence_handler_set_title_internal),
+ (vte_sequence_handler_decset_internal), (vte_sequence_handler_cb),
+ (vte_sequence_handler_cd), (vte_sequence_handler_ce),
+ (vte_sequence_handler_ec), (vte_sequence_handler_ta),
+ (vte_sequence_handler_set_mode),
+ (vte_sequence_handler_window_manipulation):
+ Fix all "signed vs unsigned comparison" warnings.
+
+
+ svn path=/trunk/; revision=2086
+
+ ChangeLog | 17 ++++++++++++++++
+ src/vte-private.h | 4 +-
+ src/vte.c | 32 +++++++++++++++---------------
+ src/vteseq.c | 55 +++++++++++++++++++++++++++--------------------------
+ 4 files changed, 63 insertions(+), 45 deletions(-)
+
+commit aabb10fb643c6625afbe7c369f8e67e3f8314861
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Aug 13 22:42:47 2008 +0000
+
+ Fix uninitialized cursor warning. Setting to NULL sounds right to me.
+
+ 2008-08-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (regex_match_clear_cursor),
+ (vte_terminal_set_cursor_from_regex_match):
+ Fix uninitialized cursor warning. Setting to NULL sounds
+ right to me. ChPe?
+
+
+ svn path=/trunk/; revision=2085
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 8 +++++++-
+ 2 files changed, 14 insertions(+), 1 deletions(-)
+
+commit 30213a63183d6f07589051469d80d406b698a8f3
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Aug 13 22:37:22 2008 +0000
+
+ Remove useless "inline" decorators. Gcc has been rightfully complaining.
+
+ 2008-08-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Remove useless "inline" decorators. Gcc has been
+ rightfully complaining.
+
+
+ svn path=/trunk/; revision=2084
+
+ ChangeLog | 5 +++++
+ src/vte.c | 12 ++++++------
+ 2 files changed, 11 insertions(+), 6 deletions(-)
+
+commit 78e20d9e6ded635c1c60f84f4d8e0c9c5d553662
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Aug 13 22:21:12 2008 +0000
+
+ Bug 546940 – Crash when selecting text
+
+ 2008-08-13 Behdad Esfahbod <behdad gnome org>
+
+ Bug 546940 – Crash when selecting text
+
+ * src/vte.c (vte_terminal_extend_selection): Fix crash with 64-bit
+ systems. Note to self:
+
+ unsigned int len = 0;
+ long i = len - 1;
+ assert (i < 0);
+
+ fails on 64-bit systems.
+
+
+ svn path=/trunk/; revision=2083
+
+ ChangeLog | 13 +++++++++++++
+ src/vte.c | 17 +++++++++--------
+ 2 files changed, 22 insertions(+), 8 deletions(-)
+
+commit cc7d8be81cc044c23c406e02ed8bd7ce1045cda7
+Author: Djihed Afifi <djihed src gnome org>
+Date: Wed Aug 6 08:33:19 2008 +0000
+
+ Updated Arabic Translation by Khaled Hosny.
+
+ svn path=/trunk/; revision=2082
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit a6b2d703da2bbcfdc52dcdbf4494a9dc737cb47e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Aug 5 10:30:38 2008 +0000
+
+ Released vte-0.17.1.
+
+ 2008-08-05 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.17.1.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.17.1.
+ Bumped libtool version to 12:0:3.
+
+
+ svn path=/trunk/; revision=2080
+
+ ChangeLog | 9 +++++++++
+ NEWS | 27 +++++++++++++++++++++++++++
+ configure.in | 10 +++++-----
+ 3 files changed, 41 insertions(+), 5 deletions(-)
+
+commit 795f95181b797396950abe1e9f466313d9edd389
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Aug 5 06:33:47 2008 +0000
+
+ Bug 546366 – hard to select last tab char on a line
+
+ 2008-08-05 Behdad Esfahbod <behdad gnome org>
+
+ Bug 546366 – hard to select last tab char on a line
+
+ * src/vte.c (vte_terminal_extend_selection):
+ * src/vteseq.c (vte_sequence_handler_ta):
+ Handle fragment cells.
+
+
+ svn path=/trunk/; revision=2079
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 22 ++++++++--------------
+ src/vteseq.c | 2 +-
+ 3 files changed, 17 insertions(+), 15 deletions(-)
+
+commit b5c37ee01646dc533d978ca9708eb0d2a6ad1d28
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Aug 5 05:51:08 2008 +0000
+
+ Bug 545924 – tab characters not handled correctly after ncurses clear
+
+ 2008-08-05 Behdad Esfahbod <behdad gnome org>
+
+ Bug 545924 – tab characters not handled correctly after ncurses clear
+ Patch from Patryk Zawadzki
+
+ * src/vteseq.c (vte_sequence_handler_ta): Ignore empty cells at end of
+ line.
+
+
+ svn path=/trunk/; revision=2078
+
+ ChangeLog | 8 ++++++++
+ src/vteseq.c | 16 ++++++++++++++++
+ 2 files changed, 24 insertions(+), 0 deletions(-)
+
+commit 4eb7507c90c8803ebaa14dfbf9ed7c8186219b0e
+Author: Djihed Afifi <djihed src gnome org>
+Date: Tue Jul 29 01:37:38 2008 +0000
+
+ Updated Arabic Translation by Khaled Hosny.
+
+ svn path=/trunk/; revision=2077
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit a24eab7c0d927f35e37e72d1fe415433aeb32bab
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Jul 13 23:03:01 2008 +0000
+
+ Bug 542795 – VTE_CJK_WIDTH don't work
+
+ 2008-07-14 Behdad Esfahbod <behdad gnome org>
+
+ Bug 542795 – VTE_CJK_WIDTH don't work
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Fix VTE_CJK_WIDTH env
+ handling.
+
+
+ svn path=/trunk/; revision=2076
+
+ ChangeLog | 7 +++++++
+ src/iso2022.c | 4 ++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 233a6fb058dab427e78bb4bbfa2763bd552acc14
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Wed Jul 2 15:09:02 2008 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=2075
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 893f7473321bb1914c76b4e64f00a935083df15f
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Wed Jul 2 15:08:34 2008 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=2074
+
+ po/oc.po | 20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
+commit 19687441ca358e11e5f1334516862ba09cfe223c
+Author: Christian Persch <chpe src gnome org>
+Date: Fri Jun 27 19:05:10 2008 +0000
+
+ Bug 399744 – Hide more font-aa implementation details
+
+ svn path=/trunk/; revision=2073
+
+ ChangeLog | 7 +++++++
+ src/vtexft.c | 12 +++++++++++-
+ 2 files changed, 18 insertions(+), 1 deletions(-)
+
+commit df24a29142fd8d825d3eb5ec123f3e83ea1c8e1e
+Author: Christian Persch <chpe src gnome org>
+Date: Fri Jun 27 16:51:18 2008 +0000
+
+ Bug 510903 – use gtk-cursor-blink setting
+
+ svn path=/trunk/; revision=2072
+
+ ChangeLog | 11 ++
+ doc/reference/tmpl/vte.sgml | 18 +++
+ doc/reference/vte-sections.txt | 2 +
+ src/vte-private.h | 10 +-
+ src/vte.c | 234 +++++++++++++++++++++++++++-------------
+ src/vte.h | 13 ++-
+ 6 files changed, 208 insertions(+), 80 deletions(-)
+
+commit 51a751d3515008aefd6080e827a7fe59d251d1fd
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Jun 26 18:45:41 2008 +0000
+
+ Remove duplicate declarations.
+
+ svn path=/trunk/; revision=2071
+
+ ChangeLog | 5 +++++
+ src/vte.h | 2 --
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+commit 6f037ba50d22bb7d1d6c7acaf0fec7df824f489f
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Jun 26 18:37:59 2008 +0000
+
+ Fix the Use of intltool 0.40.0.
+
+ svn path=/trunk/; revision=2070
+
+ ChangeLog | 6 ++++++
+ Makefile.am | 5 ++---
+ autogen.sh | 9 ++++++---
+ 3 files changed, 14 insertions(+), 6 deletions(-)
+
+commit af4cc7446b6d563baedbedc39d46d9911c5509c9
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Jun 26 18:32:56 2008 +0000
+
+ Disallow direct inclusion of vteversion.h.
+
+ svn path=/trunk/; revision=2069
+
+ ChangeLog | 5 +++++
+ src/vteversion.h.in | 4 ++++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit c4b48e67fca6adb72ce5cba9c2ee3d0d4956a807
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Jun 26 18:32:49 2008 +0000
+
+ Use glib-mkenums to generate the enum types.
+
+ svn path=/trunk/; revision=2068
+
+ ChangeLog | 10 ++++++++++
+ configure.in | 7 +++++++
+ doc/reference/Makefile.am | 2 +-
+ src/Makefile.am | 29 ++++++++++++++++++++++++-----
+ src/vte.c | 38 --------------------------------------
+ src/vte.h | 7 +++++--
+ src/vtetypebuiltins.c.template | 40 ++++++++++++++++++++++++++++++++++++++++
+ src/vtetypebuiltins.h.template | 28 ++++++++++++++++++++++++++++
+ 8 files changed, 115 insertions(+), 46 deletions(-)
+
+commit fd64778a2c3cb991f9cff661cf35fa3830282ed7
+Author: Christian Persch <chpe src gnome org>
+Date: Thu Jun 26 17:56:54 2008 +0000
+
+ Replace more gtk type macros with the gobject ones. Bug #539130.
+
+ svn path=/trunk/; revision=2067
+
+ ChangeLog | 9 +++++++++
+ src/reaper.h | 8 ++++----
+ src/vte.c | 8 ++++----
+ src/vteaccess.h | 44 ++++++++++++++++----------------------------
+ src/vtebg.h | 8 ++++----
+ 5 files changed, 37 insertions(+), 40 deletions(-)
+
+commit b2d516f19a134b87cc79b1745da522cb2e78c0b2
+Author: Christian Persch <chpe src gnome org>
+Date: Wed Jun 25 16:51:19 2008 +0000
+
+ Bug 540182 – crash in geany with vte trunk
+ Make sure that match_attributes always exist even if there haven't been any matches added.
+
+ svn path=/trunk/; revision=2066
+
+ ChangeLog | 11 +++++++++--
+ src/vte.c | 10 ++++------
+ 2 files changed, 13 insertions(+), 8 deletions(-)
+
+commit 6cc1167abedd3254a480cb64361a33cdc2af3e5d
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Jun 24 18:12:41 2008 +0000
+
+ Force a redraw when changing the allow-bold property. Bug #535552.
+
+ svn path=/trunk/; revision=2065
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 6 ++++++
+ 2 files changed, 12 insertions(+), 0 deletions(-)
+
+commit a35f1d6978906b526d2e69b50e11bfb5b523388a
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Jun 24 18:12:32 2008 +0000
+
+ Bug 535469 – support named cursors on matches
+
+ svn path=/trunk/; revision=2064
+
+ ChangeLog | 8 ++
+ doc/reference/tmpl/vte.sgml | 10 +++
+ doc/reference/vte-sections.txt | 1 +
+ src/vte-private.h | 15 ++++-
+ src/vte.c | 148 ++++++++++++++++++++++++++++-----------
+ src/vte.h | 2 +
+ 6 files changed, 140 insertions(+), 44 deletions(-)
+
+commit 624a6898f8e1bfe0cd716a33efc34db6899cff75
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Jun 24 18:12:23 2008 +0000
+
+ Bug 418918 – Switch to GRegex
+
+ svn path=/trunk/; revision=2063
+
+ ChangeLog | 9 +
+ doc/reference/tmpl/vte.sgml | 11 ++
+ doc/reference/vte-sections.txt | 1 +
+ src/vte-private.h | 16 ++-
+ src/vte.c | 361 +++++++++++++++++++++++++++++++++++++---
+ src/vte.h | 5 +-
+ 6 files changed, 376 insertions(+), 27 deletions(-)
+
+commit 5dd65933082dd70af93c9350ebc88c177fee7901
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Jun 24 18:12:12 2008 +0000
+
+ Implement the set_scroll_adjustments signal so one can add a VteTerminal to a GtkScrolledWindow. Bug
#535467.
+
+ svn path=/trunk/; revision=2062
+
+ ChangeLog | 7 ++++
+ doc/reference/tmpl/vte.sgml | 9 +++++
+ src/vte.c | 69 ++++++++++++++++++++++++++++---------------
+ src/vte.h | 5 ++-
+ 4 files changed, 65 insertions(+), 25 deletions(-)
+
+commit 460fcb3becf82346c62cedfde23bace926b5b112
+Author: Christian Persch <chpe src gnome org>
+Date: Tue Jun 24 18:12:02 2008 +0000
+
+ Bug 535468 – need version check macros
+
+ svn path=/trunk/; revision=2061
+
+ ChangeLog | 12 +++++++
+ configure.in | 26 ++++++++++++----
+ doc/reference/tmpl/vteversion.sgml | 59 ++++++++++++++++++++++++++++++++++++
+ doc/reference/vte-sections.txt | 10 ++++++
+ doc/reference/vte.types | 1 +
+ src/Makefile.am | 6 ++-
+ src/vte.h | 2 +
+ src/vteversion.h.in | 31 +++++++++++++++++++
+ 8 files changed, 139 insertions(+), 8 deletions(-)
+
+commit 089b2a4ec92e6c2b0ade68c38b2d41c55335023d
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Sat Jun 21 04:23:28 2008 +0000
+
+ Don't use GTK_CHECK* macros.
+
+ 2008-06-21 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.h: Don't use GTK_CHECK* macros.
+
+ svn path=/trunk/; revision=2060
+
+ ChangeLog | 4 ++++
+ src/vte.h | 18 +++++++++---------
+ 2 files changed, 13 insertions(+), 9 deletions(-)
+
+commit 8023bb999cd894a16fabca46c6ace021a8b19933
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Sun Jun 15 07:46:49 2008 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=2059
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit e1617b3e8fa52c51a1ff1b84b5c0966a1b797f6f
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Sun Jun 15 07:46:02 2008 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=2058
+
+ po/oc.po | 24 ++++++++++++------------
+ 1 files changed, 12 insertions(+), 12 deletions(-)
+
+commit b325f47f4ff26ead5e8065d33814ca43f85167bc
+Author: Djihed Afifi <djihed src gnome org>
+Date: Wed Jun 11 21:42:42 2008 +0000
+
+ Updated Arabic Translation by Khaled Hosny.
+
+ svn path=/trunk/; revision=2057
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 30 +++++++++++++-----------------
+ 2 files changed, 17 insertions(+), 17 deletions(-)
+
+commit b0491748ed63846200e01b458d5aa2f30b8d3bb7
+Author: Christian Persch <chpe src gnome org>
+Date: Wed Jun 4 18:57:24 2008 +0000
+
+ Bug 515972 – Bold black is black in vte's default palette
+
+ * src/vte.c: (vte_terminal_set_colors): Correctly set the value of
+ 'bold black' in the palette. Patch by Santtu Lakkala.
+
+ svn path=/trunk/; revision=2056
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 725da8b7117cc8539bfc8c946ebe4220a979c50c
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Jun 4 18:38:27 2008 +0000
+
+ Released vte-0.16.14.
+
+ 2008-06-04 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.14.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.14.
+ Bumped libtool version to 11:18:2.
+
+
+ svn path=/trunk/; revision=2054
+
+ ChangeLog | 9 +++++++++
+ NEWS | 12 ++++++++++++
+ configure.in | 4 ++--
+ 3 files changed, 23 insertions(+), 2 deletions(-)
+
+commit 6cc2912d303cd13184ab14112787ff9557e83edd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Jun 4 18:30:20 2008 +0000
+
+ Bug 536632 – vte build failure in ring.c:210: error: expected expression
+
+ 2008-06-04 Behdad Esfahbod <behdad gnome org>
+
+ Bug 536632 – vte build failure in ring.c:210: error: expected
+ expression before 'do'
+
+ * src/debug.h:
+ * src/ring.c:
+ * src/ring.h:
+ With latest glib (after bug #519026), g_error is expanding to
+ "do {...} while(0)" instead of "{...}". This breaks build in
+ debugging mode. Use g_critical instead. Also add some
+ G_STMT_START/END to some macros.
+
+
+ svn path=/trunk/; revision=2053
+
+ ChangeLog | 13 +++++++++++++
+ src/debug.h | 2 +-
+ src/ring.c | 2 +-
+ src/ring.h | 18 +++++++++---------
+ 4 files changed, 24 insertions(+), 11 deletions(-)
+
+commit 1102739ce33d9e0b29da553ec127396a4322ea55
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu May 29 11:50:13 2008 +0000
+
+ Replace previous commit with the better patch by Christian Persch.
+
+ 2008-05-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c (merge_environ): Replace previous commit with the
+ better patch by Christian Persch.
+
+
+ svn path=/trunk/; revision=2052
+
+ ChangeLog | 5 +++++
+ src/pty.c | 9 +++------
+ 2 files changed, 8 insertions(+), 6 deletions(-)
+
+commit 697d6005bcb227f94389b444dec25246dc636602
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu May 29 11:46:29 2008 +0000
+
+ Fix bug in patch to use g_listenv() as it only returns the variable name
+
+ 2008-05-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c (merge_environ): Fix bug in patch to use g_listenv()
+ as it only returns the variable name and we need to use g_getenv()
+ to retrieve its value.
+
+
+ svn path=/trunk/; revision=2051
+
+ ChangeLog | 6 ++++++
+ src/pty.c | 9 ++++-----
+ 2 files changed, 10 insertions(+), 5 deletions(-)
+
+commit bcddb79198f3a9591c0aa49fe36e82b281017447
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed May 28 00:38:15 2008 +0000
+
+ Oops. Fix thinko in last commit.
+
+ 2008-05-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Oops. Fix thinko
+ in last commit.
+
+
+ svn path=/trunk/; revision=2050
+
+ ChangeLog | 5 +++++
+ src/iso2022.c | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 6e0de06c28aeace78b017c6a23ae5f0afac0aa49
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue May 27 18:56:34 2008 +0000
+
+ Bug 535022 – ambiguous width in utf8 locale
+
+ 2008-05-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 535022 – ambiguous width in utf8 locale
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Recognize
+ env var settings VTE_CJK_WIDTH=narrow and VTE_CJK_WIDTH=wide.
+ Any other value means "auto" based on locale, as it was doing
+ previously.
+
+
+ svn path=/trunk/; revision=2049
+
+ ChangeLog | 9 +++++++++
+ src/iso2022.c | 11 +++++++++--
+ 2 files changed, 18 insertions(+), 2 deletions(-)
+
+commit 3e2d0ba9ffe54588e492c88da1b8352fd1a75d45
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Fri May 23 20:32:37 2008 +0000
+
+ Update tmpls
+
+ svn path=/trunk/; revision=2048
+
+ doc/reference/tmpl/reaper.sgml | 32 --------------------------------
+ doc/reference/tmpl/vte-unused.sgml | 30 ++++++++++++++++++++++++++++++
+ 2 files changed, 30 insertions(+), 32 deletions(-)
+
+commit e66bae863d1f645c039c8ca390e5458d8622a230
+Author: Djihed Afifi <djihed src gnome org>
+Date: Thu May 22 23:00:52 2008 +0000
+
+ Updated Arabic Translation by Djihed Afifi.
+
+ svn path=/trunk/; revision=2047
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit c0d797cd0610dcf8954c7444101e0e30ad97c12e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed May 21 07:36:14 2008 +0000
+
+ Silence compiler warning about using environ as a local variable name.
+
+ 2008-05-21 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c (merge_environ): Silence compiler warning about using
+ environ as a local variable name.
+
+
+ svn path=/trunk/; revision=2046
+
+ ChangeLog | 5 +++++
+ src/pty.c | 13 +++++++------
+ 2 files changed, 12 insertions(+), 6 deletions(-)
+
+commit 6daf749a9a5aa37ff946d4142d9b4492fb25cc3e
+Author: Richard Hult <richard imendio com>
+Date: Wed May 21 07:32:36 2008 +0000
+
+ Bug 534148 – Use g_listenv() instead of environ
+
+ 2008-05-21 Richard Hult <richard imendio com>
+
+ Bug 534148 – Use g_listenv() instead of environ
+
+ * src/pty.c: (merge_environ): Use g_listenv() instead of
+ non-portable environ extern.
+
+
+ svn path=/trunk/; revision=2045
+
+ ChangeLog | 7 +++++++
+ src/pty.c | 6 ++++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+commit b88d37fa384aec28dc272222adfcff73885fcd1e
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon May 19 13:07:31 2008 +0000
+
+ automake doesn't like to substitute more than one variable at a time.
+
+ 2008-05-19 Kjartan Maraas <kmaraas gnome org>
+
+ * configure.in: automake doesn't like to substitute more
+ than one variable at a time.
+ * src/vtedraw.c: (_vte_draw_get_using_fontconfig):
+ * src/vtetc.c: (_vte_termcap_find_boolean):
+ Fix two compiler warnings.
+
+ svn path=/trunk/; revision=2044
+
+ ChangeLog | 8 ++++++++
+ configure.in | 3 ++-
+ src/vtedraw.c | 2 +-
+ src/vtetc.c | 2 +-
+ 4 files changed, 12 insertions(+), 3 deletions(-)
+
+commit 65b97373f0d1772f7191622d8136be9467e1cd69
+Author: Djihed Afifi <djihed src gnome org>
+Date: Mon May 19 01:17:13 2008 +0000
+
+ Updated Arabic Translation by Djihed Afifi.
+
+ svn path=/trunk/; revision=2043
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 32 ++++++++++++++++----------------
+ 2 files changed, 20 insertions(+), 16 deletions(-)
+
+commit 22b930d866de5b1dd9d025e0c63bde3612d11d2d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri May 9 21:56:55 2008 +0000
+
+ Add the text to draw to the debug output.
+
+ 2008-05-09 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtedraw.c (_vte_draw_text):
+ Add the text to draw to the debug output.
+
+
+ svn path=/trunk/; revision=2042
+
+ ChangeLog | 5 +++++
+ src/vtedraw.c | 17 +++++++++++++----
+ 2 files changed, 18 insertions(+), 4 deletions(-)
+
+commit a51119aca141b00564b680472d9cbb56311ec40e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri May 9 19:50:37 2008 +0000
+
+ Fix "GLib-CRITICAL **: g_io_add_watch_full: assertion `channel != NULL'
+
+ 2008-05-09 Chris Wilson <chris chris-wilson co uk>
+
+ Fix "GLib-CRITICAL **: g_io_add_watch_full: assertion
+ `channel != NULL' failed"
+
+ * src/debug.c (_vte_debug_parse_string):
+ * src/debug.h:
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_emit_adjustment_changed),
+ (_vte_terminal_adjust_adjustments_full),
+ (vte_terminal_scroll_lines), (vte_terminal_maybe_scroll_to_bottom),
+ (_vte_terminal_insert_char), (vte_terminal_catch_child_exited),
+ (mark_input_source_invalid), (_vte_terminal_connect_pty_read),
+ (mark_output_source_invalid), (_vte_terminal_connect_pty_write),
+ (_vte_terminal_disconnect_pty_read),
+ (_vte_terminal_disconnect_pty_write), (_vte_terminal_fork_basic),
+ (vte_terminal_eof), (_vte_terminal_enable_input_source),
+ (vte_terminal_io_read), (vte_terminal_handle_scroll),
+ (vte_terminal_finalize), (vte_terminal_class_init),
+ (vte_terminal_set_pty), (process_timeout), (update_repeat_timeout),
+ (update_timeout):
+ It was possible for _vte_terminal_enable_input_source() to be called
+ after the input closed with G_IO_HUP. The minimal change would just
+ have been to add a guard to check the pty_master was still valid
+ before reattaching the source. Instead I removed the redundant
+ duplication of the input and output channels and added lots of
+ debugging.
+
+
+ svn path=/trunk/; revision=2041
+
+ ChangeLog | 28 +++++++++
+ src/debug.c | 3 +
+ src/debug.h | 3 +-
+ src/vte-private.h | 5 +-
+ src/vte.c | 168 +++++++++++++++++++++++++---------------------------
+ 5 files changed, 116 insertions(+), 91 deletions(-)
+
+commit ef4e36154eabf2d74bc1f48db8ef095cec02cbc5
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu May 8 15:23:16 2008 +0000
+
+ Bug 516869 – vte displays nothing on GTK+/DirectFB
+
+ 2008-05-08 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 516869 – vte displays nothing on GTK+/DirectFB
+
+ Original patch by Jérémy Bobbio.
+
+ * src/vte.c (vte_terminal_class_init), (update_regions),
+ (update_repeat_timeout), (update_timeout):
+ gdk_window_process_all_updates() is ineffective on the gtk+-directfb
+ and gtk+-quartz backends, so in order to process updates immediately
+ one must call gdk_window_process_updates() on the desired GdkWindows
+ instead.
+
+
+ svn path=/trunk/; revision=2040
+
+ ChangeLog | 13 +++++++++++++
+ src/vte.c | 9 ++++++++-
+ 2 files changed, 21 insertions(+), 1 deletions(-)
+
+commit 00caa22356c2810242af3b6a3677526ac8a60f33
+Author: Yair Hershkovitz <yairhr src gnome org>
+Date: Sun Apr 20 15:58:09 2008 +0000
+
+ updated hebrew translation
+
+ svn path=/trunk/; revision=2039
+
+ po/ChangeLog | 4 ++++
+ po/he.po | 40 +++++++++++++++++++++-------------------
+ 2 files changed, 25 insertions(+), 19 deletions(-)
+
+commit 68852ecef2ccb2fc02e4cc540c5ef775d056721a
+Author: Eskild Hustvedt <eskildh src gnome org>
+Date: Mon Mar 31 13:45:23 2008 +0000
+
+ Updated Norwegian Nynorsk translation
+
+ svn path=/trunk/; revision=2038
+
+ po/ChangeLog | 4 +++
+ po/nn.po | 75 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 45 insertions(+), 34 deletions(-)
+
+commit 4c2e67286eee99b9a54805a7982a80228e0843f7
+Author: Baris Cicek <bcicek src gnome org>
+Date: Mon Mar 31 11:31:54 2008 +0000
+
+ Updated Turkish Translation
+
+ svn path=/trunk/; revision=2037
+
+ po/ChangeLog | 4 +++
+ po/tr.po | 73 +++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 41 insertions(+), 36 deletions(-)
+
+commit c1755009386ff482a00fea751a04853dab3d28ce
+Author: Ani Peter <anipeter src gnome org>
+Date: Tue Mar 11 04:41:13 2008 +0000
+
+ Updated Malayalam Translation
+
+ svn path=/trunk/; revision=2036
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 80ade1073c7f544cc88eafe2b3e9a8c82c7a041c
+Author: Ani Peter <anipeter src gnome org>
+Date: Tue Mar 11 04:41:01 2008 +0000
+
+ Updated Malayalam Translation
+
+ svn path=/trunk/; revision=2035
+
+ po/ml.po | 99 +++++++++++++++++++++++++++++++++----------------------------
+ 1 files changed, 54 insertions(+), 45 deletions(-)
+
+commit 061d6d6a3cee533f6439a85fb6e5e137784c2efa
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Mar 10 20:32:45 2008 +0000
+
+ Released vte-0.16.13.
+
+ 2008-03-10 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.13.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.13.
+ Bumped libtool version to 11:17:2.
+
+
+ svn path=/trunk/; revision=2033
+
+ ChangeLog | 9 +++++++++
+ NEWS | 8 ++++++++
+ configure.in | 4 ++--
+ 3 files changed, 19 insertions(+), 2 deletions(-)
+
+commit d1e9eb3d946938a6eeaa65032f23bd368a532ed0
+Author: Gabor Kelemen <kelemeng gnome hu>
+Date: Mon Mar 10 01:36:49 2008 +0000
+
+ Translation updated
+
+ 2008-03-10 Gabor Kelemen <kelemeng gnome hu>
+
+ * hu.po: Translation updated
+
+
+ svn path=/trunk/; revision=2032
+
+ po/ChangeLog | 4 +++
+ po/hu.po | 59 +++++++++++++++++++++++++++------------------------------
+ 2 files changed, 32 insertions(+), 31 deletions(-)
+
+commit c98754ce7d9d0918a694b1c4fb304220b0ae72ba
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Sat Mar 8 09:34:15 2008 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=2031
+
+ po/oc.po | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit bbc876ce14e5b2e57b6c317b6323fa83ef604d9f
+Author: Marcel Telka <marcel telka sk>
+Date: Sat Mar 8 09:01:30 2008 +0000
+
+ Updated Slovak translation.
+
+ 2008-03-08 Marcel Telka <marcel telka sk>
+
+ * sk.po: Updated Slovak translation.
+
+ svn path=/trunk/; revision=2030
+
+ po/ChangeLog | 4 +++
+ po/sk.po | 74 +++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 42 insertions(+), 36 deletions(-)
+
+commit 09d03d12fa7d9bf0f781acd8c57ba03b4dbf851d
+Author: Rahul Bhalerao <rahulb src gnome org>
+Date: Mon Mar 3 16:18:00 2008 +0000
+
+ Updated Marathi Translations.
+
+ svn path=/trunk/; revision=2029
+
+ po/ChangeLog | 4 +++
+ po/mr.po | 80 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 46 insertions(+), 38 deletions(-)
+
+commit 20261c75ac0d2b54e5bfdd1a0d1f062f9b0094d2
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Feb 20 18:39:08 2008 +0000
+
+ Bug 517709 – VTE's pty.c makes 4096 getrlimit calls when it only needs
+
+ 2008-02-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 517709 – VTE's pty.c makes 4096 getrlimit calls when it only needs
+ one
+
+ * src/pty.c (_vte_pty_start_helper): Only close fds 0, 1, and 2.
+ gnome-pty-helper closes all fds anyway.
+
+
+ svn path=/trunk/; revision=2028
+
+ ChangeLog | 8 ++++++++
+ src/pty.c | 9 ++++-----
+ 2 files changed, 12 insertions(+), 5 deletions(-)
+
+commit 29ec8603290a2dd158e85573ac1766a1efd069ab
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Tue Feb 19 21:33:40 2008 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=2027
+
+ po/oc.po | 24 ++++++++++++------------
+ 1 files changed, 12 insertions(+), 12 deletions(-)
+
+commit a1cd441aa146c432397ec627b6053a01d5cb1df6
+Author: Petr Kovář <pmkovar src gnome org>
+Date: Sat Feb 16 15:25:41 2008 +0000
+
+ cs.po: Updated Czech translation by Pavel Sefranek.
+
+ svn path=/trunk/; revision=2026
+
+ po/ChangeLog | 4 +++
+ po/cs.po | 78 ++++++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 48 insertions(+), 34 deletions(-)
+
+commit cf13ae591f4fa007903e09671967dc7d334dfdde
+Author: Pawan Chitrakar <pachimho src gnome org>
+Date: Thu Feb 14 09:40:36 2008 +0000
+
+ Updated Nepali Translation
+
+ svn path=/trunk/; revision=2025
+
+ po/ChangeLog | 4 ++
+ po/ne.po | 102 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 58 insertions(+), 48 deletions(-)
+
+commit 7b516616cb67b18e7512a20b1ea20c488c3ea2e5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Feb 8 19:50:41 2008 +0000
+
+ Remove unneeded #include <fontconfig/fontconfig.h>
+
+ 2008-02-08 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c:
+ * src/vteapp.c:
+ * src/vtergb.c:
+ Remove unneeded #include <fontconfig/fontconfig.h>
+
+
+ svn path=/trunk/; revision=2024
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 1 -
+ src/vteapp.c | 3 ---
+ src/vtergb.c | 1 -
+ 4 files changed, 7 insertions(+), 5 deletions(-)
+
+commit ffe449e246f87db68cc647c8928940a1141dccf2
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Mon Feb 4 12:20:50 2008 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=2023
+
+ po/oc.po | 11 +++++------
+ 1 files changed, 5 insertions(+), 6 deletions(-)
+
+commit 81e5e34d6efdfd9425682e7b5caa3bcec4b2a007
+Author: Djihed Afifi <djihed src gnome org>
+Date: Thu Jan 31 08:23:11 2008 +0000
+
+ Updated Arabic Translation by Djihed Afifi.
+
+ svn path=/trunk/; revision=2022
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 458d15993513afc79e750c89788e236635e63b71
+Author: Inaki Larranaga Murgoitio <dooteo euskalgnu org>
+Date: Mon Jan 14 16:12:08 2008 +0000
+
+ Updated Basque translation.
+
+ 2008-01-14 Inaki Larranaga Murgoitio <dooteo euskalgnu org>
+
+ * eu.po: Updated Basque translation.
+
+
+ svn path=/trunk/; revision=2021
+
+ po/ChangeLog | 13 ++++++++---
+ po/eu.po | 63 ++++++++++++++++++++++++++-------------------------------
+ 2 files changed, 38 insertions(+), 38 deletions(-)
+
+commit c1d18de1ebc5f6b061e9578df418db3a5a04e981
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Jan 9 20:48:55 2008 +0000
+
+ Bug 449131 – Wrong gettext domain
+
+ 2008-01-09 Behdad Esfahbod <behdad gnome org>
+
+ Bug 449131 – Wrong gettext domain
+
+ * src/pty.c:
+ * src/reaper.c (vte_reaper_class_init):
+ * src/trie.c:
+ * src/vtebg.c (vte_bg_class_init):
+ * src/vteglyph.c:
+ Oops. Fix all remaining ones too.
+
+
+ svn path=/trunk/; revision=2020
+
+ ChangeLog | 11 +++++++++++
+ src/pty.c | 7 +------
+ src/reaper.c | 5 ++++-
+ src/trie.c | 7 +------
+ src/vtebg.c | 5 ++++-
+ src/vteglyph.c | 8 +-------
+ 6 files changed, 22 insertions(+), 21 deletions(-)
+
+commit c971ab2e546475a681f5df9f7e3e13e5dc089c06
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jan 7 21:51:00 2008 +0000
+
+ Released vte-0.16.12.
+
+ 2008-01-07 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.12.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.12.
+ Bumped libtool version to 11:16:2.
+ .
+
+ svn path=/trunk/; revision=2018
+
+ ChangeLog | 9 +++++++++
+ NEWS | 7 +++++++
+ configure.in | 4 ++--
+ 3 files changed, 18 insertions(+), 2 deletions(-)
+
+commit 5d00298851669b5112f3e9f620f64d6c139035fc
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Mon Dec 31 19:40:25 2007 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=2017
+
+ po/ChangeLog | 5 ++++-
+ po/oc.po | 45 +++++++++++++++++++++------------------------
+ 2 files changed, 25 insertions(+), 25 deletions(-)
+
+commit 3ed60bccd66dfbda6c2aa0ce3a5310b414d61e23
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Dec 21 08:57:28 2007 +0000
+
+ Forget to save the ChangeLog entry before committing.
+
+
+ svn path=/trunk/; revision=2016
+
+ ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit db18d22ff40b71fd78236f3e549dd17c6040088d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Dec 21 08:56:12 2007 +0000
+
+ Bug 503164 – Drawing problems for VTE with gtk+-quartz
+
+ 2007-12-21 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 503164 – Drawing problems for VTE with gtk+-quartz
+
+ * src/vte.c (vte_terminal_realize):
+ Continuing the saga, remove the fiddling with visibility state
+ during realize.
+
+
+ svn path=/trunk/; revision=2015
+
+ ChangeLog | 4 ++++
+ src/vte.c | 3 ---
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+commit f8980c6af417443b935ec27833ca18ab2028028d
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 18 07:27:11 2007 +0000
+
+ Bug 449131 – Wrong gettext domain
+
+ 2007-12-18 Behdad Esfahbod <behdad gnome org>
+
+ Bug 449131 – Wrong gettext domain
+
+ * src/vte.c (vte_terminal_class_init): Use GETTEXT_DOMAIN in
+ bind_textdomain_codeset().
+
+
+ svn path=/trunk/; revision=2014
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 547529e9780b1341bd084f2491edd257f9b47293
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 17 18:45:58 2007 +0000
+
+ Released vte-0.16.11.
+
+ 2007-12-17 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.11.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.11.
+ Bumped libtool version to 11:15:2.
+ .
+
+ svn path=/trunk/; revision=2012
+
+ ChangeLog | 9 +++++++++
+ NEWS | 9 +++++++++
+ configure.in | 4 ++--
+ 3 files changed, 20 insertions(+), 2 deletions(-)
+
+commit bb591edae319a9c5228919307a3c21304f9b78cc
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Dec 17 13:27:39 2007 +0000
+
+ Bug 503164 – Drawing problems for VTE with gtk+-quartz
+
+ 2007-12-17 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 503164 – Drawing problems for VTE with gtk+-quartz
+
+ * src/vte.c (vte_terminal_init):
+ GdkQuartz does not generate GdkVisibilityNotify events and
+ so the terminal was never marked as unobscured, causing all
+ redraws to be discarded. Resolve this by initially setting the
+ terminal to be unobscured.
+
+
+ svn path=/trunk/; revision=2011
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 5 +++--
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+commit cf1dea5ec122dee4de1e85e352ac0d874679e88f
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Sat Dec 15 22:17:46 2007 +0000
+
+ Fix typo in date.
+
+ svn path=/trunk/; revision=2010
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit daca30a501ebac24e1d5fd98c31760e554f7c343
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 10 23:47:51 2007 +0000
+
+ Bug 319687 – Pasting of text containing characters not in the terminal's
+
+ 2007-12-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 319687 – Pasting of text containing characters not in the
+ terminal's encoding silently fails
+
+ * src/vteconv.c (_vte_conv_open): Try to open converter with
+ transliteration. Supported by GNU iconv and GLibc.
+
+
+ svn path=/trunk/; revision=2009
+
+ ChangeLog | 8 ++++++++
+ src/vteconv.c | 7 ++++++-
+ 2 files changed, 14 insertions(+), 1 deletions(-)
+
+commit 63f5b1e707d1fb450248c8cb335493aa5bb5b047
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Dec 3 23:26:34 2007 +0000
+
+ Released vte-0.16.10.
+
+ 2007-09-17 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.10.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.10.
+ Bumped libtool version to 11:14:2.
+ .
+
+ svn path=/trunk/; revision=2007
+
+ ChangeLog | 9 +++++++++
+ NEWS | 33 +++++++++++++++++++++++++++++++++
+ configure.in | 4 ++--
+ 3 files changed, 44 insertions(+), 2 deletions(-)
+
+commit da8e37ff44c183bfc2b35846ad2ed25f85561edd
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Dec 3 11:00:08 2007 +0000
+
+ Bug 497246 – Kill vte_iso2022_fragment_input
+
+ 2007-12-03 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 497246 – Kill vte_iso2022_fragment_input
+
+ * src/iso2022.c (process_block), (_vte_iso2022_process):
+ Avoid the temporary allocation of the GArray holding the fragments
+ by processing each fragment as it is decyphered. This array is
+ allocated and grown for every single input chunk and is currently the
+ most frequent allocation made by vte.
+
+
+ svn path=/trunk/; revision=2006
+
+ ChangeLog | 10 ++
+ src/iso2022.c | 264 ++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 138 insertions(+), 136 deletions(-)
+
+commit 947de5ebc2c050b337d15d03b90c319957ed4725
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Dec 3 10:41:49 2007 +0000
+
+ Make is_cursor_key static.
+
+ 2007-12-03 Chris Wilson <chris chris-wilson co uk>
+
+ * src/keymap.c: Make is_cursor_key static.
+
+
+ svn path=/trunk/; revision=2005
+
+ ChangeLog | 4 ++++
+ src/keymap.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 8e2b518dc283781d8eca76c7bc5293d8049e083c
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Wed Nov 28 15:42:41 2007 +0000
+
+ Fix distcheck.
+
+ svn path=/trunk/; revision=2004
+
+ doc/reference/Makefile.am | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit c619908ba34f1cd82014dda34cc174001726aebd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 28 14:00:21 2007 +0000
+
+ Bug 412435 – Invalid variable name in Makefile.am
+
+ 2007-11-28 Behdad Esfahbod <behdad gnome org>
+
+ Bug 412435 – Invalid variable name in Makefile.am
+
+ * Makefile.am:
+ * configure.in:
+ * vte.spec.in:
+ Remove spec file and old convenience cvs make targets.
+
+
+ svn path=/trunk/; revision=2003
+
+ ChangeLog | 9 +
+ Makefile.am | 34 +----
+ configure.in | 1 -
+ vte.spec.in | 596 ----------------------------------------------------------
+ 4 files changed, 10 insertions(+), 630 deletions(-)
+
+commit 1bb7abd1e685c3c797923445c5f0c5c25def19da
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 28 13:55:38 2007 +0000
+
+ Bug 416561 – Rendering issue in VtePango
+
+ 2007-11-28 Behdad Esfahbod <behdad gnome org>
+
+ Bug 416561 – Rendering issue in VtePango
+
+ * src/vtepango.c (_vte_pango_draw_rectangle):
+ * src/vtepangox.c (_vte_pango_x_draw_rectangle):
+ gdk_draw_rectangle has slightly different semantics when
+ filling vs outlining. Fix for that.
+
+
+ svn path=/trunk/; revision=2002
+
+ ChangeLog | 9 +++++++++
+ src/vtepango.c | 2 +-
+ src/vtepangox.c | 2 +-
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+commit 7342439d31c138c8ea4db58694792f0d76bdb205
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 28 13:43:58 2007 +0000
+
+ Bug 416558 – Rendering errors in VteFT2
+
+ 2007-11-28 Behdad Esfahbod <behdad gnome org>
+
+ Bug 416558 – Rendering errors in VteFT2
+
+ * src/vteft2.c (_vte_ft2_create): Disable Gtk+ double-buffering.
+
+
+ svn path=/trunk/; revision=2001
+
+ ChangeLog | 6 ++++++
+ src/vteft2.c | 1 +
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit 3f805f36b4a7b04d27f10006b50e40315deed344
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Wed Nov 28 08:43:22 2007 +0000
+
+ Add bugzilla address.
+
+ svn path=/trunk/; revision=2000
+
+ README | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 02f28ec3d4e12776c4b4edd2984be29d74d815c5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 28 08:41:59 2007 +0000
+
+ Bug 403217 – Outdated README
+
+ 2007-11-28 Behdad Esfahbod <behdad gnome org>
+
+ Bug 403217 – Outdated README
+
+ * README: Rewrite.
+
+
+ svn path=/trunk/; revision=1999
+
+ ChangeLog | 6 +++++
+ README | 72 +++++-------------------------------------------------------
+ 2 files changed, 12 insertions(+), 66 deletions(-)
+
+commit 364adbace135c4a97095876fba167f39e3cbedf5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 12:36:18 2007 +0000
+
+ Bug 118967 – single line scrolling with "Ctrl+Shift+ArrowUp/ArrowDown"
+
+ 2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 118967 – single line scrolling with "Ctrl+Shift+ArrowUp/ArrowDown"
+ Patch from Mauricio and Mariano Suárez-Alvarez
+
+ * src/vte.c (vte_terminal_scroll_lines),
+ (vte_terminal_scroll_pages), (vte_terminal_key_press):
+ Implement single-line scroll.
+
+
+ svn path=/trunk/; revision=1998
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 35 +++++++++++++++++++++++++++++++----
+ 2 files changed, 40 insertions(+), 4 deletions(-)
+
+commit c35a4a89b5bd9461b0b71532724a1d6e090f1ac9
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 11:05:26 2007 +0000
+
+ Bug 353610 – Don't convert tab characters upon copying
+
+ 2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 353610 – Don't convert tab characters upon copying
+
+ * src/vte-private.h:
+ * src/vteseq.c (vte_sequence_handler_ta):
+ Smart tab handling to try to preserve tab character upong copying.
+ Also makes such smart tabs all-or-none selectable.
+
+
+ svn path=/trunk/; revision=1996
+
+ ChangeLog | 9 +++++++++
+ src/vte-private.h | 10 ++++++----
+ src/vteseq.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++-----
+ 3 files changed, 63 insertions(+), 9 deletions(-)
+
+commit 01d3cf123dff70dbe60dfe025efb0810be0f15c3
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 10:27:07 2007 +0000
+
+ Bug 499892 – strikethrough line is too high
+
+ 2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 499892 – strikethrough line is too high
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_apply_metrics), (vte_terminal_init),
+ (vte_terminal_draw_cells): Adjust underline/strikethrough thickness
+ and position based on pangofc's heuristics.
+
+
+ svn path=/trunk/; revision=1995
+
+ ChangeLog | 9 +++++++++
+ src/vte-private.h | 4 ++++
+ src/vte.c | 23 ++++++++++++++++-------
+ 3 files changed, 29 insertions(+), 7 deletions(-)
+
+commit d189aeaed54480f515429717a4f3b9e16102fafd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 09:55:37 2007 +0000
+
+ Make VTE_BACKEND=list list available backends to stderr.
+
+ 2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.c (_vte_draw_init_user): Make VTE_BACKEND=list list
+ available backends to stderr.
+
+
+ svn path=/trunk/; revision=1994
+
+ src/vteft2.c | 2 +-
+ src/vtegl.c | 2 +-
+ src/vtepango.c | 2 +-
+ src/vtepangox.c | 2 +-
+ src/vtexft.c | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+commit e6ad1fa941d1e09a9dc996c8576c192c8f95b83a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 08:39:58 2007 +0000
+
+ Make VTE_BACKEND=list list available backends to stderr.
+
+ 2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.c (_vte_draw_init_user): Make VTE_BACKEND=list list
+ available backends to stderr.
+
+
+ svn path=/trunk/; revision=1993
+
+ ChangeLog | 5 +++++
+ src/vtedraw.c | 22 ++++++++++++++++++++--
+ 2 files changed, 25 insertions(+), 2 deletions(-)
+
+commit 189ebe50ba75c213468348fa18cadf5e7a46390d
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 06:57:53 2007 +0000
+
+ Bug 499891 – vte with opacity set, shows invisible chars
+
+ 2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 499891 – vte with opacity set, shows invisible chars
+
+ * src/vte.c (vte_terminal_draw_rows): Don't draw invisible chars.
+
+
+ svn path=/trunk/; revision=1992
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 10 ++++------
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+commit fe8455ee4ee60614bd5d36c35f6aabafe6e0ddfa
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Tue Nov 27 06:40:24 2007 +0000
+
+ Change opacity
+
+ svn path=/trunk/; revision=1991
+
+ src/vteapp.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 198bf1641dbf77f68a266aabe45b4b0642675d16
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 06:14:12 2007 +0000
+
+ Bug 499896 – Alternate charset isn't an attribute, though we treat it as
+
+ 2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 499896 – Alternate charset isn't an attribute, though we treat it
+ as one.
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_set_default_attributes),
+ (_vte_terminal_insert_char), (vte_terminal_reset):
+ * src/vteseq.c (vte_sequence_handler_ae),
+ (vte_sequence_handler_as):
+ Move cell.attr.alternate to screen->alternate_charset.
+
+
+ svn path=/trunk/; revision=1990
+
+ ChangeLog | 12 ++++++++++++
+ src/vte-private.h | 4 ++--
+ src/vte.c | 9 ++++-----
+ src/vteseq.c | 4 ++--
+ 4 files changed, 20 insertions(+), 9 deletions(-)
+
+commit 760e6b2844dd4b04b7d4aa5692c8b547faf0c380
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 06:04:11 2007 +0000
+
+ Bug 499893 – cell.attr.protect is unused
+
+ 2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 499893 – cell.attr.protect is unused
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_set_default_attributes):
+ * src/vteseq.c (vte_sequence_handler_mp):
+ Comment out cell.attr.protect which is unused.
+
+
+ svn path=/trunk/; revision=1989
+
+ ChangeLog | 9 +++++++++
+ src/vte-private.h | 4 +++-
+ src/vte.c | 2 ++
+ src/vteseq.c | 2 ++
+ 4 files changed, 16 insertions(+), 1 deletions(-)
+
+commit e2bcb0e1d84724c62f58e40e5f6f4c203591db9a
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Tue Nov 27 05:51:51 2007 +0000
+
+ Minor comment fix.
+
+ svn path=/trunk/; revision=1988
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 05dc462877584ca032eecfe1e7d9dfcd8458f2ce
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 05:50:07 2007 +0000
+
+ Minor optimization, if one can call it that.
+
+ 2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once):
+ Minor optimization, if one can call it that.
+
+
+ svn path=/trunk/; revision=1987
+
+ ChangeLog | 5 +++++
+ src/vte.c | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 5bd016e7d3cb0d1e1f13ac5628318aaf3f6b5968
+Author: Sunil Mohan Adapa <sunil atc tcs com>
+Date: Tue Nov 27 05:02:46 2007 +0000
+
+ Added Telugu translation done by Matapathi Pramod <pramod swecha net>.
+
+ 2007-11-27 Sunil Mohan Adapa <sunil atc tcs com>
+
+ * LINGUAS, te.po: Added Telugu translation done by
+ Matapathi Pramod <pramod swecha net>.
+
+
+ svn path=/trunk/; revision=1986
+
+ po/ChangeLog | 5 +++
+ po/LINGUAS | 1 +
+ po/te.po | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 120 insertions(+), 0 deletions(-)
+
+commit 6ee45faa0377448d1dd735f2ac61106d3cd3f777
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 04:16:14 2007 +0000
+
+ Fix doc syntax.
+
+ 2007-11-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Fix doc syntax.
+
+
+ svn path=/trunk/; revision=1985
+
+ ChangeLog | 4 ++++
+ src/vte.c | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit ade83987cb3c84df7e84bf1f9718d8c4fee6c110
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 04:13:20 2007 +0000
+
+ Revert previous change. For reason, see bug. Bug 491832 –
+
+ 2007-11-26 Behdad Esfahbod <behdad gnome org>
+
+ Revert previous change. For reason, see bug.
+ Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
+ trailing spaces
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
+ Don't trim space characters, just the empty space after lines,
+ like we used to.
+
+
+ svn path=/trunk/; revision=1984
+
+ ChangeLog | 12 +++++++++++-
+ src/vte.c | 2 +-
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+commit 6b903ba743eac7bfccf7a358a8bfe78647595354
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Nov 27 04:06:19 2007 +0000
+
+ Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
+
+ 2007-11-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
+ trailing spaces
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
+ Trip trailing space characters if asked to.
+
+
+ svn path=/trunk/; revision=1983
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+commit e2391dad4d18eb67a13d9fdc73b87044d7595b4c
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 24 01:47:07 2007 +0000
+
+ Add script to check doc coverage is 100% on "make check".
+
+ 2007-11-23 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/Makefile.am:
+ * doc/reference/check.docs:
+ Add script to check doc coverage is 100% on "make check".
+
+
+ svn path=/trunk/; revision=1982
+
+ ChangeLog | 6 ++++++
+ doc/reference/Makefile.am | 4 ++++
+ doc/reference/check.docs | 39 +++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 49 insertions(+), 0 deletions(-)
+
+commit 63e502516a8f892bd7d987387f38361b423f6dcf
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Nov 24 01:33:08 2007 +0000
+
+ Bug 499287 – Fix doc coverage regression
+
+ 2007-11-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 499287 – Fix doc coverage regression
+
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/vte-sections.txt:
+ Document undocumented symbols.
+
+
+ svn path=/trunk/; revision=1981
+
+ ChangeLog | 8 ++++++++
+ doc/reference/tmpl/vte.sgml | 20 ++++++++++++++++++--
+ doc/reference/vte-sections.txt | 2 ++
+ 3 files changed, 28 insertions(+), 2 deletions(-)
+
+commit c65c01aff4862dabc4a0f46a75f045a7da870d8b
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Tue Nov 20 19:51:58 2007 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=1980
+
+ po/oc.po | 12 ++++++++----
+ 1 files changed, 8 insertions(+), 4 deletions(-)
+
+commit a691d03e4459b43e3f47033b4aedc888036277f8
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Sun Nov 18 22:09:21 2007 +0000
+
+ s/CVS/SVN/
+
+ svn path=/trunk/; revision=1979
+
+ autogen.sh | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 49a0cdf11d75459c34131d409d4b8cf3f3090f81
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Nov 16 14:22:22 2007 +0000
+
+ Tweak to read across chunk boundaries whilst still maintaining fairness
+
+ 2007-11-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_io_read), (vte_terminal_init),
+ (process_timeout), (update_repeat_timeout), (update_timeout):
+ Tweak to read across chunk boundaries whilst still maintaining
+ fairness between multiple terminals and refresh rate targets.
+
+
+ svn path=/trunk/; revision=1978
+
+ ChangeLog | 7 ++++
+ src/vte.c | 97 +++++++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 63 insertions(+), 41 deletions(-)
+
+commit 3f6b10064b0fa9c363f2cfa5c254f0d9faf7fe9f
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Nov 16 11:22:02 2007 +0000
+
+ Use stack allocation to hold small numbers of temporary gpointers.
+
+ 2007-11-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/ring.c (_vte_ring_insert_preserve):
+ Use stack allocation to hold small numbers of temporary
+ gpointers.
+
+
+ svn path=/trunk/; revision=1977
+
+ ChangeLog | 6 ++++++
+ src/ring.c | 8 ++++++--
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+commit e6c218707c792a2aa591e0c7625eebce0fc21e85
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Nov 16 11:21:05 2007 +0000
+
+ Export _vte_row_data_free.
+
+ 2007-11-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_free_row_data), (vte_terminal_reset_rowdata),
+ (vte_terminal_finalize), (vte_terminal_reset):
+ Export _vte_row_data_free.
+
+ * src/vteseq.c (vte_remove_line_internal):
+ Cache the removed VteRowData - fixes the continual reallocation
+ of row data during the vim scrolling benchmark.
+
+
+ svn path=/trunk/; revision=1976
+
+ ChangeLog | 11 +++++++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 21 +++++++++------------
+ src/vteseq.c | 9 +++++++--
+ 4 files changed, 28 insertions(+), 14 deletions(-)
+
+commit bf8149c2709401aefa9720b870aaf3e46f35e259
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Nov 16 10:40:45 2007 +0000
+
+ Delay pruning the chunks freelist until we finished processing all the
+
+ 2007-11-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (release_chunk), (prune_chunks),
+ (remove_from_active_list), (process_timeout),
+ (update_repeat_timeout):
+ Delay pruning the chunks freelist until we finished processing
+ all the incoming data. We were discarding the freelist far too
+ early and reduced the efficacy of the cache.
+
+
+ svn path=/trunk/; revision=1975
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 41 +++++++++++++++++++++++++++--------------
+ 2 files changed, 36 insertions(+), 14 deletions(-)
+
+commit c9cdd332e0c005cf6bb78e0153dbfdc29cd8db2d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Nov 16 09:12:00 2007 +0000
+
+ Remove redundant queries and cache the XRequest on the root window (saves
+
+ 2007-11-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vterdb.h:
+ * src/vterdb.c (_vte_rdb_get), (_vte_rdb_search), (_vte_rdb_quark),
+ (_vte_rdb_get_rgba), (_vte_rdb_get_hintstyle), (_vte_rdb_release):
+ Remove redundant queries and cache the XRequest on the root
+ window (saves a few round-trips during terminal construction).
+ Add a new function to free the cache.
+
+ * src/vtefc.c (_vte_fc_defaults_from_rdb):
+ Release the cache after retrieving settings.
+
+
+ svn path=/trunk/; revision=1974
+
+ ChangeLog | 12 ++++++++
+ src/vtefc.c | 2 +
+ src/vterdb.c | 84 +++++++++++++++++++++++++++++++++-------------------------
+ src/vterdb.h | 1 +
+ 4 files changed, 63 insertions(+), 36 deletions(-)
+
+commit 4c37f2645675ea5004b955ca8260d8623994aeaa
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Nov 15 20:58:17 2007 +0000
+
+ Similar for the leave notify, disable the match updating after hiding the
+
+ 2007-11-15 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_focus_out):
+ Similar for the leave notify, disable the match updating after
+ hiding the cursor after the loss of focus.
+ However, do we really want to disable the hilighting whilst the
+ pointer may still be within the terminal?
+
+
+ svn path=/trunk/; revision=1973
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 6 ++++++
+ 2 files changed, 14 insertions(+), 0 deletions(-)
+
+commit de9fb9f760b247d088f9d2b60fbd255b8050cbea
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Nov 15 20:51:30 2007 +0000
+
+ Don't automatically reshow the hilight on receiving an enter event, but
+
+ 2007-11-15 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_enter):
+ Don't automatically reshow the hilight on receiving an enter
+ event, but wait for the motion notify to update the cursor
+ co-ordinates, otherwise we may hilight something quite distant
+ from the cursor.
+
+
+ svn path=/trunk/; revision=1972
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 6 ------
+ 2 files changed, 8 insertions(+), 6 deletions(-)
+
+commit 4bab092bf89cd372c06f1b9a7a1c73b34f3b28eb
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Nov 15 20:43:55 2007 +0000
+
+ Mark the cursor as invisible on leaving the terminal as this stops the
+
+ 2007-11-15 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_leave):
+ Mark the cursor as invisible on leaving the terminal as this
+ stops the hilight matcher running whilst the cursor is absent.
+
+
+ svn path=/trunk/; revision=1971
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 5 +++++
+ 2 files changed, 11 insertions(+), 0 deletions(-)
+
+commit c5c286ac2e1c9cacb41a3e217c3f41d9f30bae47
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Tue Nov 13 21:37:31 2007 +0000
+
+ Fix build
+
+ svn path=/trunk/; revision=1970
+
+ po/sl.po | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 4558dd0d3ecc3f984029008c69bb768a14909f24
+Author: Matej Urbančič <mateju src gnome org>
+Date: Tue Nov 13 13:46:27 2007 +0000
+
+ Updated Slovenian translation
+
+ svn path=/trunk/; revision=1969
+
+ po/ChangeLog | 2328 +++++++++++++++++++++++++++++-----------------------------
+ po/sl.po | 26 +-
+ 2 files changed, 1177 insertions(+), 1177 deletions(-)
+
+commit 3577d01782ccaeea287593883c4d1f332bcbd1a2
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 7 04:22:09 2007 +0000
+
+ Allow NULL font argument. Can be used to set antialias without setting
+
+ 2007-11-06 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_set_font_from_string_full): Allow NULL
+ font argument. Can be used to set antialias without setting font.
+
+ * src/vteapp.c (main): Fix antialias handling which was borked when
+ moving to GOption.
+
+
+ svn path=/trunk/; revision=1968
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 6 +++---
+ src/vteapp.c | 14 ++++++--------
+ 3 files changed, 17 insertions(+), 11 deletions(-)
+
+commit abc1e6a1259a56cb123150896d289980b7c237ab
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Nov 7 03:16:51 2007 +0000
+
+ Bug 142640 – FcConfigSubstitute in place of _vte_fc_defaults_from_gtk to
+
+ 2007-11-06 Behdad Esfahbod <behdad gnome org>
+
+ Bug 142640 – FcConfigSubstitute in place of _vte_fc_defaults_from_gtk
+ to get antialias and hinting value
+
+ * src/vtefc.c (_vte_fc_defaults_from_gtk),
+ (_vte_fc_defaults_from_rdb): Replace _vte_fc_defaults_from_gtk() with
+ gtk_default_substitute() from Gtk+-2.6. It's essentially the same
+ thing, but not overriding elements of the pattern already present.
+ Also remove a couple redundant calls.
+
+
+ svn path=/trunk/; revision=1967
+
+ ChangeLog | 11 ++++
+ src/vtefc.c | 165 +++++++++++++++++++++++------------------------------------
+ 2 files changed, 75 insertions(+), 101 deletions(-)
+
+commit cdf92cafafd64b67143c0ee1c742825f9a2b9600
+Author: Kjartan Maraas,,23491770 <kmaraas gnome org>
+Date: Fri Nov 2 12:25:30 2007 +0000
+
+ Updated Norwegian bokmål translation.
+
+ 2007-11-02 Kjartan Maraas,,23491770 <kmaraas gnome org>
+
+ * nb.po: Updated Norwegian bokmål translation.
+
+ svn path=/trunk/; revision=1966
+
+ po/ChangeLog | 4 ++++
+ po/nb.po | 6 +++---
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+commit 6793973b27167e15084ed689a57baca0fa8d5d4c
+Author: Mohammad DAMT <mdamt mnots eu>
+Date: Sun Oct 28 17:46:31 2007 +0000
+
+ Update Indonesian translation by Huda Toriq <hudatoriq at gmail.com>.
+
+ 2007-10-28 Mohammad DAMT <mdamt mnots eu>
+
+ * id.po: Update Indonesian translation by Huda Toriq <hudatoriq at
+ gmail.com>.
+
+
+ svn path=/trunk/; revision=1964
+
+ po/ChangeLog | 5 ++++
+ po/id.po | 76 ++++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 47 insertions(+), 34 deletions(-)
+
+commit 1f782bd44feb64bb2e78349abb0636e51418ef3e
+Author: Djihed Afifi <djihed src gnome org>
+Date: Tue Oct 23 20:57:04 2007 +0000
+
+ Updated Arabic Translation by Djihed Afifi.
+
+ svn path=/trunk/; revision=1963
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit ecd055167f91b90a646d1dc51210340f762b801e
+Author: Djihed Afifi <djihed src gnome org>
+Date: Sun Oct 21 19:21:19 2007 +0000
+
+ Updated Arabic Translation by Djihed Afifi.
+
+ svn path=/trunk/; revision=1962
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit ff86da4cae59536722f72787920822bd1dc6e731
+Author: Djihed Afifi <djihed src gnome org>
+Date: Sun Oct 21 16:45:52 2007 +0000
+
+ Updated Arabic Translation by Djihed Afifi.
+
+ svn path=/trunk/; revision=1961
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 820434e27850b2c84cbbdee1ae43bf92d356cfb9
+Author: Matej Urbančič <mateju src gnome org>
+Date: Mon Oct 15 18:07:50 2007 +0000
+
+ Updated Slovenian translation
+
+ svn path=/trunk/; revision=1960
+
+ po/ChangeLog | 2314 +++++++++++++++++++++++++++++-----------------------------
+ po/sl.po | 134 ++--
+ 2 files changed, 1219 insertions(+), 1229 deletions(-)
+
+commit 311d90af4c563b66c0ac17917ef2b5ffebd94187
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Oct 11 10:42:24 2007 +0000
+
+ Bug 439384 – gnome-terminal on feisty crashes when giving wrong locale
+
+ 2007-10-11 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 439384 – gnome-terminal on feisty crashes when giving wrong locale environment
+
+ * src/vte.c (vte_terminal_set_encoding):
+ Fallback to using UTF-8 as the locale encoding. This prevents
+ subsequent crashes but may display gibberish in the output.
+
+
+ svn path=/trunk/; revision=1959
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 3 ++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 33fe1ba1a36f43399853256c85870320eeb0d55a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Oct 5 09:44:25 2007 +0000
+
+ Bug 483642 – vte_terminal_feed crash when 8190 characters passed
+
+ 2007-10-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 483642 – vte_terminal_feed crash when 8190 characters passed
+
+ * src/vte.c (vte_terminal_feed):
+ Break the feed data into chunks.
+
+
+ svn path=/trunk/; revision=1958
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 16 ++++++++++++++--
+ 2 files changed, 21 insertions(+), 2 deletions(-)
+
+commit da32ed9669a1aeab51cde232ec048e8275195683
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Sep 30 22:52:57 2007 +0000
+
+ Skip retrieving the VteBg if the source is VTE_BG_SOURCE_NONE as we
+
+ 2007-09-30 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_set_background_image):
+ Skip retrieving the VteBg if the source is VTE_BG_SOURCE_NONE
+ as we neither need it to listen for changes to the background
+ nor require it to load the pixmap (which is a no-op).
+
+
+ svn path=/trunk/; revision=1957
+
+ ChangeLog | 7 +++++++
+ src/vtexft.c | 25 +++++++++++++++----------
+ 2 files changed, 22 insertions(+), 10 deletions(-)
+
+commit 0b3b2c14399420cd73073ab17b7bffb5d9279ecd
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Sep 30 22:48:46 2007 +0000
+
+ Ensure the GdkPixmap is destroyed along with the VteXft context.
+
+ 2007-09-30 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_destroy):
+ Ensure the GdkPixmap is destroyed along with the VteXft
+ context.
+
+
+ svn path=/trunk/; revision=1956
+
+ ChangeLog | 6 ++++++
+ src/vtexft.c | 3 +++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit bb4a9d348eaf147635b19674742ab945fd249bf5
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Wed Sep 26 20:23:43 2007 +0000
+
+ Improve the last ChangeLog entry.
+
+
+ svn path=/trunk/; revision=1955
+
+ ChangeLog | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 9fd1f501d36afe68050ab939b7639aa55cece90d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Sep 26 20:17:16 2007 +0000
+
+ I really must remember to run vttest more often. (And to work within
+
+ 2007-09-26 Chris Wilson <chris chris-wilson co uk>
+
+ I really must remember to run vttest more often. (And to work within
+ git-svn.)
+
+ * src/vte.c (vte_terminal_draw_rows):
+ Correct underlining for vttest.
+
+
+ svn path=/trunk/; revision=1954
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 17 +++++++----------
+ 2 files changed, 15 insertions(+), 10 deletions(-)
+
+commit 431ecb6710ffae56c73620001cac74a0a4ddbef9
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Sep 26 20:09:21 2007 +0000
+
+ Bug 480735 – Underlining whitespace not reliable
+
+ 2007-09-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 480735 – Underlining whitespace not reliable
+
+ Original one-liner by Steven Skovran.
+
+ * src/vte.c (vte_terminal_draw_rows):
+ Do not try to over zealously skip whitespace. The goal is
+ to maintain the current run whilst avoiding adding spaces to
+ the glyph sequence - so check the cell fully for attribute
+ breaks and simply do not add it to the glyphs if it contains a
+ space.
+
+
+ svn path=/trunk/; revision=1953
+
+ ChangeLog | 13 +++++++++++++
+ src/vte.c | 19 +++++++++++--------
+ 2 files changed, 24 insertions(+), 8 deletions(-)
+
+commit eafd1b6d63613180f879861c75f97c45d1598c02
+Author: Khandakar Mujahidul Islam <mislam src gnome org>
+Date: Tue Sep 18 08:27:10 2007 +0000
+
+ Updated Bengali Translation
+
+ svn path=/trunk/; revision=1952
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 8da1e4bee0bf85633e5929249bdccf4a819c2701
+Author: Khandakar Mujahidul Islam <mislam src gnome org>
+Date: Tue Sep 18 08:26:56 2007 +0000
+
+ Updated Bengali Translation
+
+ svn path=/trunk/; revision=1951
+
+ po/bn.po | 74 ++++++++++++++++++++++++++++++++++++--------------------------
+ 1 files changed, 43 insertions(+), 31 deletions(-)
+
+commit 173081d1e99c81455013af0a1a7f132e00ecfbcd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Sep 17 22:10:29 2007 +0000
+
+ Released vte-0.16.9.
+
+ 2007-09-17 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.9.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.9.
+ Bumped libtool version to 11:13:2.
+
+
+ svn path=/trunk/; revision=1949
+
+ ChangeLog | 9 +++++++++
+ NEWS | 14 ++++++++++++++
+ configure.in | 4 ++--
+ 3 files changed, 25 insertions(+), 2 deletions(-)
+
+commit 5c579ef4cd988de10eef69b1c7dce057a0ebf220
+Author: Djihed Afifi <djihed src gnome org>
+Date: Thu Sep 13 22:47:05 2007 +0000
+
+ Updated Arabic Translation by Djihed Afifi.
+
+ svn path=/trunk/; revision=1948
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 45 +++++++++++++++++++--------------------------
+ 2 files changed, 23 insertions(+), 26 deletions(-)
+
+commit 15d7538f1a7131e79341fce3357cc3e499342e3a
+Author: Alexander Shopov <ash contact bg>
+Date: Tue Sep 11 08:57:58 2007 +0000
+
+ Updated Bulgarian translation by Alexander Shopov <ash contact bg>
+
+ 2007-09-11 Alexander Shopov <ash contact bg>
+
+ * bg.po: Updated Bulgarian translation by
+ Alexander Shopov <ash contact bg>
+
+ svn path=/trunk/; revision=1947
+
+ po/ChangeLog | 5 +++++
+ po/bg.po | 10 +++++-----
+ 2 files changed, 10 insertions(+), 5 deletions(-)
+
+commit 5c3c49db0866a753c49cdef4aa55e5ea5a4801d4
+Author: Alexander Shopov <ash contact bg>
+Date: Tue Sep 11 08:55:00 2007 +0000
+
+ Updated Bulgarian translation by Alexander Shopov <ash contact bg>
+
+ 2007-09-11 Alexander Shopov <ash contact bg>
+
+ * bg.po: Updated Bulgarian translation by
+ Alexander Shopov <ash contact bg>
+
+ svn path=/trunk/; revision=1946
+
+ po/ChangeLog | 5 +++++
+ po/bg.po | 47 +++++++++++++++++++++--------------------------
+ 2 files changed, 26 insertions(+), 26 deletions(-)
+
+commit b38efa6b0d7a87109064a5c4d87b046764ec8e2f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Sep 5 20:35:44 2007 +0000
+
+ Wait for keypress when done, so one can do "vte -c ./vim.sh" and not lose
+
+ 2007-09-05 Behdad Esfahbod <behdad gnome org>
+
+ * perf/vim.sh: Wait for keypress when done, so one can do
+ "vte -c ./vim.sh" and not lose the final numbers.
+
+ * src/vtepango.c (_vte_pango_destroy), (_vte_pango_start),
+ (_vte_pango_end), (_vte_pango_set_background_color),
+ (_vte_pango_set_background_image), (_vte_pango_clear),
+ (_vte_pango_set_text_font), (_vte_pango_get_using_fontconfig),
+ (_vte_pango_draw_text), (_vte_pango_draw_has_char),
+ (_vte_pango_draw_rectangle), (_vte_pango_fill_rectangle),
+ (_vte_pango_set_scroll): General cleanup. Also implement
+ _vte_pango_draw_has_char() using
+ pango_layout_get_unknown_glyphs_count() when available.
+
+
+ svn path=/trunk/; revision=1945
+
+ ChangeLog | 15 +++++++++++++++
+ perf/vim.sh | 8 ++++++--
+ src/vtepango.c | 52 +++++++++++++++++++++++-----------------------------
+ 3 files changed, 44 insertions(+), 31 deletions(-)
+
+commit 7049c321cfa866c223edb36c52e916dd4320ecf1
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Sep 2 05:15:30 2007 +0000
+
+ Bug 469862 – Handling of wrapped links in gnome-terminal is broken
+
+ 2007-09-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 469862 – Handling of wrapped links in gnome-terminal is broken
+
+ * src/vteseq.c (vte_sequence_handler_ce): Reset soft_wrapped.
+
+
+ svn path=/trunk/; revision=1944
+
+ ChangeLog | 6 ++++++
+ src/vteseq.c | 1 +
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit b9c65eb840521d6a49c62904dd5b5ae67b319cb2
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Sun Sep 2 05:14:41 2007 +0000
+
+ Add a G_UNLIKELY()
+
+ svn path=/trunk/; revision=1943
+
+ src/debug.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 63e545b8620955123a86856ebe61153a3911d6ca
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Sat Sep 1 20:12:23 2007 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=1942
+
+ po/oc.po | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 80c1736fc58a57fd77600b31af23ff19bf7aeb6d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Sep 1 08:44:29 2007 +0000
+
+ cf Bug 469862 – Handling of wrapped links in gnome-terminal is broken
+
+ 2007-09-01 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 469862 – Handling of wrapped links in gnome-terminal is broken
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
+ Revert the last character is in last column check as that
+ behaviour is required to handle terminal resizing where the
+ screen contents are not reconstructed (e.g. bash).
+
+
+ svn path=/trunk/; revision=1941
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 3 +--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit 0fe5d9cc193b0dde1e08a64dda8df54e762f121b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Aug 30 16:18:03 2007 +0000
+
+ Bug 471901 – troubles with pad
+
+ 2007-08-30 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 471901 – troubles with pad
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_invalidate_cells), (vte_terminal_draw_rows),
+ (vte_terminal_paint): Don't abuse VTE_PAD_WIDTH.
+
+
+ svn path=/trunk/; revision=1940
+
+ ChangeLog | 8 +++++
+ src/vte-private.h | 1 +
+ src/vte.c | 80 ++++++++++++++++++++--------------------------------
+ 3 files changed, 40 insertions(+), 49 deletions(-)
+
+commit 48ddee1d953a7386862fe6e71998d19d8584ce6b
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Thu Aug 30 15:14:12 2007 +0000
+
+ Add fixme comment about row->soft_wrap.
+
+ svn path=/trunk/; revision=1939
+
+ src/vte.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit c03de1d0472b1a19a5363becc9db61e7757cfa99
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Aug 30 15:06:27 2007 +0000
+
+ Bug 469862 – Handling of wrapped links in gnome-terminal is broken
+
+ 2007-08-30 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 469862 – Handling of wrapped links in gnome-terminal is broken
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
+ Check that the last character is in the last column before
+ adding a newline for autowrapped lines.
+
+
+ svn path=/trunk/; revision=1938
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 10 +++++++---
+ src/vteseq.c | 14 ++++++++------
+ 3 files changed, 23 insertions(+), 9 deletions(-)
+
+commit 5480e1f64f05905cadc4dce0a6b3cbac5b85eac2
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Aug 30 11:41:14 2007 +0000
+
+ Add myself to the list, as Behdad had suggested some time ago.
+
+ 2007-08-30 Chris Wilson <chris chris-wilson co uk>
+
+ * MAINTAINERS: Add myself to the list, as Behdad had suggested some
+ time ago.
+
+
+ svn path=/trunk/; revision=1937
+
+ ChangeLog | 5 +++++
+ MAINTAINERS | 4 ++++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 46b7464576141d69bd0dce16409141cfb26a8225
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Aug 30 11:06:59 2007 +0000
+
+ Bug 153265 – Handle Sun Cut, Copy, Paste keys Patch by Brian Cameron.
+
+ 2007-08-30 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 153265 – Handle Sun Cut, Copy, Paste keys
+ Patch by Brian Cameron.
+
+ * doc/reference/tmpl/vte.sgml:
+ * src/vte.c (vte_terminal_class_init),
+ (vte_terminal_real_copy_clipboard), (vte_terminal_copy_clipboard),
+ (vte_terminal_real_paste_clipboard),
+ (vte_terminal_paste_clipboard):
+ * src/vte.h:
+ Add key bindings for the special function keys.
+
+
+ svn path=/trunk/; revision=1936
+
+ ChangeLog | 13 ++++++++
+ doc/reference/tmpl/vte.sgml | 14 +++++++++
+ src/vte.c | 69 +++++++++++++++++++++++++++++++++++++-----
+ src/vte.h | 4 +-
+ 4 files changed, 89 insertions(+), 11 deletions(-)
+
+commit 8fb0f61c29c521f85acc5f340d8a8f3b005926ed
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Aug 30 10:11:23 2007 +0000
+
+ Bad manipulation of patches whilst attempting to apply the fix for Bug
+
+ 2007-08-30 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_draw_rows): Bad manipulation of patches
+ whilst attempting to apply the fix for Bug 434230 - net result was
+ that the correct code was being circumvented.
+
+
+ svn path=/trunk/; revision=1935
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 1 -
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit c142f3a68c8cd5951319cba28bfe0ff33d7aa90e
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Wed Aug 29 19:28:03 2007 +0000
+
+ Quick grammar correction.
+
+ svn path=/trunk/; revision=1934
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 400ae5a66202afea963149700d52ee2e9bd79b9a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Aug 29 19:25:51 2007 +0000
+
+ Bug 471484 – vteapp resize weirdness
+
+ 2007-08-29 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 471484 – vteapp resize weirdness
+
+ * src/vteapp.c (main): Distinguish between setting the geometry and
+ disabling the use geometry hints. A regression when converting to
+ GOption based arguments.
+
+
+ svn path=/trunk/; revision=1933
+
+ ChangeLog | 8 ++++++++
+ src/vteapp.c | 10 ++++++++--
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+commit 85969d3324e6e946458e2ad6c68c23a9741bb15e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Aug 27 18:24:03 2007 +0000
+
+ Bug 470690 – Typo at src/vtexft.c "appropiate" should be "appropriate"
+
+ 2007-08-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 470690 – Typo at src/vtexft.c "appropiate" should be "appropriate"
+
+ * src/vtexft.c (_vte_xft_open_font_for_char): Fix typo.
+
+
+ svn path=/trunk/; revision=1932
+
+ ChangeLog | 6 ++++++
+ src/vtexft.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 8dd24b4f8d9bab8185ba469e0d9f87dce132d231
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Tue Aug 21 11:17:39 2007 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=1931
+
+ po/oc.po | 38 ++++++++++++++++----------------------
+ 1 files changed, 16 insertions(+), 22 deletions(-)
+
+commit a6ee90a4682ce40a464482ed0a791509ad9ab780
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Fri Aug 17 18:27:18 2007 +0000
+
+ Updated Occitan translation
+
+ svn path=/trunk/; revision=1930
+
+ po/oc.po | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit ed565fcc7b3cccf8ddfaefc0ac38000bc212c25f
+Author: Adam Weinberger <adamw gnome org>
+Date: Wed Aug 15 22:01:07 2007 +0000
+
+ Updated Canadian English translation.
+
+ 2007-08-15 Adam Weinberger <adamw gnome org>
+
+ * en_CA.po: Updated Canadian English translation.
+
+
+
+ svn path=/trunk/; revision=1929
+
+ po/ChangeLog | 4 +++
+ po/en_CA.po | 65 +++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 37 insertions(+), 32 deletions(-)
+
+commit 26e576e1f0e44c6e3451691935173458d70a7787
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Aug 7 22:46:32 2007 +0000
+
+ Add Userid field, remove Guilherme.
+
+ 2007-08-07 Behdad Esfahbod <behdad gnome org>
+
+ * MAINTAINERS: Add Userid field, remove Guilherme.
+
+
+ svn path=/trunk/; revision=1928
+
+ ChangeLog | 4 ++++
+ MAINTAINERS | 3 +--
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+commit 14204428512fe70d1a484ec78f7bdc63dad7499a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Aug 3 08:46:30 2007 +0000
+
+ Bug 434230 – Spaces are not underlined Original patch by Santtu Lakkala.
+
+ 2007-08-03 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 434230 – Spaces are not underlined
+ Original patch by Santtu Lakkala.
+
+ * src/vte.c (vte_terminal_draw_rows): Only skip cells if we do not
+ need to draw on top.
+
+
+ svn path=/trunk/; revision=1927
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 3 +++
+ 2 files changed, 11 insertions(+), 0 deletions(-)
+
+commit 4e2857d6748335961ede2940b5f9f3397725686d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Aug 3 08:41:26 2007 +0000
+
+ Bug 450069 – vte crash on removing a terminal tab
+
+ 2007-08-03 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 450069 – vte crash on removing a terminal tab
+
+ * src/vte.c (vte_terminal_emit_eof), (vte_terminal_queue_eof),
+ (vte_terminal_eof): Move the EOF emission to an idle handler so that
+ the source is inactive whilst the VteTerminal is finalized.
+
+
+ svn path=/trunk/; revision=1926
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 20 +++++++++++++++++---
+ 2 files changed, 25 insertions(+), 3 deletions(-)
+
+commit 7422b1d3bea8817ae1064041ede590eb256efff8
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jul 30 17:38:33 2007 +0000
+
+ Released vte-0.16.8.
+
+ 2007-07-30 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.8.
+
+ Quick followup release with no code changes, to fix missing
+ documentation index in the tarball.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.8.
+ Bumped libtool version to 11:12:2.
+
+
+ svn path=/trunk/; revision=1924
+
+ ChangeLog | 12 ++++++++++++
+ NEWS | 5 +++++
+ configure.in | 4 ++--
+ 3 files changed, 19 insertions(+), 2 deletions(-)
+
+commit 14297d259904f59ac742e1038469145c934bc662
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Jul 27 21:39:31 2007 +0000
+
+ Released vte-0.16.7.
+
+ 2007-07-27 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.7.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.7.
+ Bumped libtool version to 11:11:2.
+
+
+ svn path=/trunk/; revision=1922
+
+ ChangeLog | 9 +++++++++
+ NEWS | 13 +++++++++++++
+ configure.in | 4 ++--
+ 3 files changed, 24 insertions(+), 2 deletions(-)
+
+commit a2daa008340e58d724b44f43b5b7a2b3e899a32e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Jul 27 04:44:11 2007 +0000
+
+ Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal
+
+ 2007-07-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal
+ Patch by James Bowes
+
+ * src/keymap.c (_vte_keymap_map), (is_cursor_key),
+ (_vte_keymap_key_add_key_modifiers):
+ * src/keymap.h:
+ * src/vte.c (vte_terminal_key_press):
+ Only switch to CSI for some cursor keys when in cursor app mode.
+
+
+ svn path=/trunk/; revision=1921
+
+ ChangeLog | 11 +++++++++++
+ src/keymap.c | 36 ++++++++++++++++++++++++++++++++++++
+ src/keymap.h | 1 +
+ src/vte.c | 1 +
+ 4 files changed, 49 insertions(+), 0 deletions(-)
+
+commit 0d0e051a9f076942fcd45086398d9f995bce6be0
+Author: Ilkka Tuohela <ituohela src gnome org>
+Date: Mon Jul 16 16:11:13 2007 +0000
+
+ Updated Finnish translation
+
+ svn path=/trunk/; revision=1920
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit bafea8de7cb9db6ec9c4c4acedae4f0ab070639b
+Author: Felix I <ifelix src gnome org>
+Date: Mon Jun 25 09:00:23 2007 +0000
+
+ updated ta translation
+
+ svn path=/trunk/; revision=1919
+
+ po/ChangeLog | 4 +++
+ po/ta.po | 74 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 43 insertions(+), 35 deletions(-)
+
+commit 78c628d69571384a672ed1fc86e8fb5b853e8343
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jun 25 08:35:55 2007 +0000
+
+ Bug 448259 – Mapping for Ctrl-_ Patch by Andrey Melnikov.
+
+ 2007-06-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 448259 – Mapping for Ctrl-_
+ Patch by Andrey Melnikov.
+
+ * src/keymap.c: Add mapping for Ctrl-Minus.
+
+
+ svn path=/trunk/; revision=1918
+
+ ChangeLog | 7 +++++++
+ src/keymap.c | 5 +++++
+ 2 files changed, 12 insertions(+), 0 deletions(-)
+
+commit ac76377d88f46a34f9529eb45e4e610cd354e904
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jun 25 08:23:39 2007 +0000
+
+ Bug 449809 – use python-config to get python includes Patch by Sebastien
+
+ 2007-06-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 449809 – use python-config to get python includes
+ Patch by Sebastien Bacher.
+
+ * acinclude.m4: prefer python-config where available.
+
+
+ svn path=/trunk/; revision=1917
+
+ ChangeLog | 7 +++++++
+ acinclude.m4 | 10 +++++++---
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+commit 8491cf042c3945f039ea113a6e6fef683b782b8f
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jun 25 07:58:41 2007 +0000
+
+ Bug 450745 – VTE's response to CSI 2 1 t incorrectly formatted Patch by
+
+ 2007-06-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 450745 – VTE's response to CSI 2 1 t incorrectly formatted
+ Patch by Dale Sedivec.
+
+ * src/vteseq.c (vte_sequence_handler_window_manipulation): Restore
+ the missing 'L'.
+
+
+ svn path=/trunk/; revision=1916
+
+ ChangeLog | 8 ++++++++
+ src/vteseq.c | 4 ++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit 267aa19e68b3b1439c686b57a4a3b6c7944ae4d0
+Author: Felix I <ifelix src gnome org>
+Date: Fri Jun 22 11:09:45 2007 +0000
+
+ updated si translation
+
+ svn path=/trunk/; revision=1915
+
+ po/ChangeLog | 5 ++
+ po/LINGUAS | 1 +
+ po/si.po | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 122 insertions(+), 0 deletions(-)
+
+commit 3306be169818e7dff9cac573d90426020576101a
+Author: Christian Persch <chpe gnome org>
+Date: Thu Jun 21 20:29:56 2007 +0000
+
+ Move libtool versioning to configure so you just have to update one file
+
+ 2007-06-21 Christian Persch <chpe gnome org>
+
+ * configure.in:
+ * src/Makefile.am: Move libtool versioning to configure so you just
+ have to update one file for releasing. See bug #396265 comment 17.
+
+ svn path=/trunk/; revision=1914
+
+ ChangeLog | 6 ++++++
+ configure.in | 17 +++++++++++++++++
+ src/Makefile.am | 12 +-----------
+ 3 files changed, 24 insertions(+), 11 deletions(-)
+
+commit 4184ee2cf58a388add2c4b2b0647e6cd9a1818c5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jun 18 22:13:39 2007 +0000
+
+ Released vte-0.16.6.
+
+ 2007-06-18 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.6.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.6.
+
+ * src/Makefile.am: Bumped libtool version to 11:10:2.
+
+
+ svn path=/trunk/; revision=1912
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 8 ++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 20 insertions(+), 2 deletions(-)
+
+commit 39e69e2f047f1769cc4389ce9d1b77dfce46dfb6
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Mon Jun 18 22:01:13 2007 +0000
+
+ Use AM_LDFLAGS instead of LDFLAGS
+
+ svn path=/trunk/; revision=1911
+
+ python/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 41cce0e5c01db1db44349bdf217444629ffaa374
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Jun 12 20:31:52 2007 +0000
+
+ Call gtk_widget_queue_resize() after updating row/column count.
+
+ 2007-06-12 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_set_size): Call gtk_widget_queue_resize()
+ after updating row/column count.
+
+
+ svn path=/trunk/; revision=1910
+
+ ChangeLog | 5 +++++
+ src/vte.c | 15 +++++++++++++--
+ 2 files changed, 18 insertions(+), 2 deletions(-)
+
+commit ef87435fc27e1ceecf1405a91d41e6dbdeb0f5d4
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jun 11 21:37:30 2007 +0000
+
+ Bug 372743 – vte_terminal_set_colors doesn't work as advertised
+
+ 2007-06-11 Behdad Esfahbod <behdad gnome org>
+
+ Bug 372743 – vte_terminal_set_colors doesn't work as advertised
+
+ * src/vte.c (vte_terminal_set_colors): Allow 24-color palettes.
+
+
+ svn path=/trunk/; revision=1909
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 1 +
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit 51acb6422b8dbc396ff1dc37be59b54486da047d
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Jun 9 18:10:07 2007 +0000
+
+ Bug 445620 – Some characters shows different in different locales. Patch
+
+ 2007-06-09 Behdad Esfahbod <behdad gnome org>
+
+ Bug 445620 – Some characters shows different in different locales.
+ Patch from Zealot
+
+ * src/iso2022.c (_vte_iso2022_state_set_codeset): Update ambiguous
+ width.
+
+
+ svn path=/trunk/; revision=1908
+
+ ChangeLog | 8 ++++++++
+ src/iso2022.c | 1 +
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit e1e353ee5ef529bacaaee72e749c24b353af179a
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Jun 4 18:19:39 2007 +0000
+
+ Retrospectively add the bug number.
+
+
+ svn path=/trunk/; revision=1907
+
+ ChangeLog | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 079bec7407bd1896a70ff88692d1a6b11976e0cb
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jun 4 18:17:31 2007 +0000
+
+ Released vte-0.16.5.
+
+ 2007-06-04 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.5.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.5.
+
+ * src/Makefile.am: Bumped libtool version to 11:9:2.
+
+
+ svn path=/trunk/; revision=1905
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 5 +++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 17 insertions(+), 2 deletions(-)
+
+commit 52bc6496141ff4a3075cb42d3a2e20afc05977b2
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed May 30 15:33:21 2007 +0000
+
+ fcrozat pointed out 'some strange "underline" line where cursor is located
+
+ 2007-05-30 Chris Wilson <chris chris-wilson co uk>
+
+ fcrozat pointed out 'some strange "underline" line where cursor is
+ located and blinking'.
+
+ * src/vte.c (vte_terminal_draw_rows):
+ Continuation of the previous commit: catch a couple more locations
+ where we need to skip past the end of the line. The problem in
+ this case was we tried to use some uninitialised variables whilst
+ trying to draw the cell attributes.
+
+
+ svn path=/trunk/; revision=1904
+
+ ChangeLog | 11 +++++++++++
+ src/vte.c | 6 +++---
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+commit f7ede118f9b7cd6561f24d1526717e5da746ef6a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon May 28 22:22:19 2007 +0000
+
+ Released vte-0.16.4.
+
+ 2007-05-28 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.4.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.4.
+
+ * src/Makefile.am: Bumped libtool version to 11:8:2.
+
+
+ svn path=/trunk/; revision=1902
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 13 +++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 25 insertions(+), 2 deletions(-)
+
+commit bffdf19ea1c4ef71d07091ee269a6ee18cf1c8e6
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon May 28 06:31:47 2007 +0000
+
+ uws noted on IRC that 'vte trunk does strange thingies with colors'
+
+ 2007-05-28 Chris Wilson <chris chris-wilson co uk>
+
+ uws noted on IRC that 'vte trunk does strange thingies with colors'
+
+ * src/vte.c (vte_terminal_draw_rows):
+ When reaching the end-of-row be careful not to reset the
+ current text attributes (color, underlining, etc).
+
+
+ svn path=/trunk/; revision=1901
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 53 ++++++++++++++++++++++-------------------------------
+ 2 files changed, 30 insertions(+), 31 deletions(-)
+
+commit 1d31aab30cc04473dfe9484d2d307de565882bc4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri May 25 14:39:02 2007 +0000
+
+ Only add the borders to the clear area.
+
+ 2007-05-25 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_expand_region),
+ (vte_terminal_paint_area):
+ Only add the borders to the clear area.
+
+
+ svn path=/trunk/; revision=1900
+
+ ChangeLog | 8 +++++++-
+ src/vte.c | 49 ++++++++++++++++++++++++++++++-------------------
+ 2 files changed, 37 insertions(+), 20 deletions(-)
+
+commit fc8392634e8f77653dfc75a41662104c9dc5b22b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed May 23 16:08:09 2007 +0000
+
+ Bug 429278 – Cursor drawn strangely in joe
+
+ 2007-05-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 429278 – Cursor drawn strangely in joe
+
+ * src/vte.c (vte_terminal_expand_region),
+ (vte_terminal_paint_area):
+ Ensure the expanded regions are cell aligned.
+
+
+ svn path=/trunk/; revision=1899
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 13 +++++--------
+ 2 files changed, 13 insertions(+), 8 deletions(-)
+
+commit 9e8b375a1b84a2c18a2b622902e571f59fecfce6
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Wed May 23 15:21:06 2007 +0000
+
+ Occitan first translation
+
+ svn path=/trunk/; revision=1898
+
+ po/oc.po | 41 ++++++++++++++++++-----------------------
+ 1 files changed, 18 insertions(+), 23 deletions(-)
+
+commit e669eed1e87bddf7533e36980ed31246c3434f45
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Wed May 23 12:40:31 2007 +0000
+
+ Fixup ChangeLog entry.
+
+
+ svn path=/trunk/; revision=1897
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 1f23ee3ac42d03e0101d1df78b0ee2676f8a8f95
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed May 23 12:36:13 2007 +0000
+
+ cf Bug 439247 – scrolling vim in full screen is painfully slow and takes
+
+ 2007-05-23 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 439247 – scrolling vim in full screen is painfully slow and takes up 100% of the cpu
+
+ * src/vte.c (_vte_invalidate_cell), (vte_terminal_draw_rows):
+ Fix up the unwanted break of Glyph runs at the end-of-lines.
+
+
+ svn path=/trunk/; revision=1896
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 41 +++++++++++++++++++++++++----------------
+ 2 files changed, 32 insertions(+), 16 deletions(-)
+
+commit 984f92ee6df966b080c82331a6f6d67a54e16b43
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed May 23 12:30:31 2007 +0000
+
+ Bug 440475 – Display glitch with transparent backgroud
+
+ 2007-05-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 440475 – Display glitch with transparent backgroud
+
+ * src/vte.c (vte_terminal_paint_area):
+ Apply the band-aid fix to clear the area that's about to be
+ repainted. The full solution will to be ensure that the regions
+ after expansion are cell-aligned.
+
+
+ svn path=/trunk/; revision=1895
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 11 ++++++-----
+ 2 files changed, 15 insertions(+), 5 deletions(-)
+
+commit 160ea09621654baa7ad33ab92f370ec0bcce227b
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Tue May 22 08:40:16 2007 +0000
+
+ Improve ChangeLog entry.
+
+
+ svn path=/trunk/; revision=1894
+
+ ChangeLog | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 8268e5723e9787bf6ff4ec85940b316bfabed159
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue May 22 08:37:38 2007 +0000
+
+ Bug 375112 – ctrl-key combinations yielding just key Original patch by
+
+ 2007-05-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 375112 – ctrl-key combinations yielding just key
+ Original patch by <samo altern org> and refactored by Loïc Minier.
+
+ * src/vte.c (vte_translate_national_ctrlkeys),
+ (vte_terminal_key_press), (vte_terminal_scroll):
+ When cooking a string to pass through to the client obtain a
+ "raw" keyval.
+
+
+ svn path=/trunk/; revision=1893
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 36 +++++++++++++++++++++++++++++++++++-
+ 2 files changed, 45 insertions(+), 1 deletions(-)
+
+commit d042d4067453af8f84b31dc87d1d121fdc2aae12
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue May 22 08:08:35 2007 +0000
+
+ Bug 440377 – gnome-terminal cannot refresh terminal when accessibility
+
+ 2007-05-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 440377 – gnome-terminal cannot refresh terminal when accessibility enabled
+ Original patch by Li Yuan.
+
+ * src/vteaccess.c (vte_terminal_accessible_focus_in),
+ (vte_terminal_accessible_focus_out),
+ (vte_terminal_accessible_visibility_notify):
+ Return FALSE rather than void...
+
+
+ svn path=/trunk/; revision=1892
+
+ ChangeLog | 10 ++++++++++
+ src/vteaccess.c | 12 +++++++++---
+ 2 files changed, 19 insertions(+), 3 deletions(-)
+
+commit d57f09aba74aec47f3d538acb9e829201bdfe173
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu May 17 20:14:46 2007 +0000
+
+ Measure full screen scrolling performance.
+
+ 2007-05-17 Chris Wilson <chris chris-wilson co uk>
+
+ * perf/scroll.vim:
+ * perf/vim.sh:
+ Measure full screen scrolling performance.
+
+
+ svn path=/trunk/; revision=1891
+
+ ChangeLog | 6 ++++++
+ perf/scroll.vim | 27 +++++++++++++++++++++++++++
+ perf/vim.sh | 1 +
+ 3 files changed, 34 insertions(+), 0 deletions(-)
+
+commit 428ba2d3611d5162208b6d9087d1ec8621b5ca82
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue May 15 15:13:03 2007 +0000
+
+ kmaraas reported an issue on IRC where the scrollback was not being
+
+ 2007-05-15 Chris Wilson <chris chris-wilson co uk>
+
+ kmaraas reported an issue on IRC where the scrollback was not being
+ updated correctly in the first tab when the terminal was resized via
+ a second tab.
+
+ * src/vte.c (vte_terminal_size_allocate): Check whether we need to
+ recompute the visible lines due to a change in layout geometry.
+
+
+ svn path=/trunk/; revision=1890
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 6 ++++--
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+commit 7370864b91e76d7433da21e8e923c0ac4e7565bf
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Sun May 13 11:58:09 2007 +0000
+
+ + Occitan
+
+ svn path=/trunk/; revision=1889
+
+ po/LINGUAS | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 5751979a614fca00ad176de40b26685e52ab1cb1
+Author: Yannig MARCHEGAY <ymarcheg src gnome org>
+Date: Sun May 13 11:57:46 2007 +0000
+
+ Occitan first translation
+
+ svn path=/trunk/; revision=1888
+
+ po/oc.po | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 126 insertions(+), 0 deletions(-)
+
+commit 94b939236b9648ff3925260286d888c444d20df8
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Apr 27 09:33:01 2007 +0000
+
+ Bug 433776 – gnome-terminal crashes when open preedit area Take 2.
+
+ 2007-04-27 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 433776 – gnome-terminal crashes when open preedit area
+ Take 2.
+
+ * src/vte.c (vte_terminal_paint): The preedit_cursor is returned by
+ the input modules in characters not in bytes as assumed by the
+ validation.
+
+
+ svn path=/trunk/; revision=1887
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 9 +++------
+ 2 files changed, 12 insertions(+), 6 deletions(-)
+
+commit fdc4e3c5a569e843b08d6e712cea38fe7774a309
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Apr 27 09:05:56 2007 +0000
+
+ Bug 433776 – gnome-terminal crashes when open preedit area
+
+ 2007-04-27 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 433776 – gnome-terminal crashes when open preedit area
+
+ * src/vte.c (vte_terminal_paint): Use the validated cursor index.
+
+
+ svn path=/trunk/; revision=1886
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 19 +++++++------------
+ 2 files changed, 13 insertions(+), 12 deletions(-)
+
+commit 615e67e1f9c3fc4dba72d6da1c0260ac4cccecb3
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Apr 27 07:22:01 2007 +0000
+
+ Released vte-0.16.3.
+
+ 2007-04-27 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.3.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.3.
+
+ * src/Makefile.am: Bumped libtool version to 11:7:2.
+
+
+ svn path=/trunk/; revision=1884
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 12 ++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 24 insertions(+), 2 deletions(-)
+
+commit 8c0715fb132b875b4630dab2b84bba3f316dbc36
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Tue Apr 24 12:55:20 2007 +0000
+
+ Reference the bug that was actually fixed.
+
+
+ svn path=/trunk/; revision=1883
+
+ ChangeLog | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit d808d549710699ca94442ca95b193b84251ac689
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Apr 24 09:47:06 2007 +0000
+
+ Bug 429189 – Vte-WARNING's
+
+ 2007-04-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 429189 – Vte-WARNING's
+
+ * src/vtexft.c (_vte_xft_open_font_for_char):
+ Convert the warning into a DEBUG.
+
+
+ svn path=/trunk/; revision=1882
+
+ ChangeLog | 7 +++++++
+ src/vtexft.c | 4 +++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit ec9b16efa993b0f12040c781e4446b5ba3862ec3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Apr 24 08:36:41 2007 +0000
+
+ As noted on Bug 414716, the convention is to use --enable-debug to enable
+
+ 2007-04-24 Chris Wilson <chris chris-wilson co uk>
+
+ As noted on Bug 414716, the convention is to use --enable-debug
+ to enable extra debugging code.
+
+ * configure.in:
+ s/debugging/debug/
+
+
+ svn path=/trunk/; revision=1881
+
+ ChangeLog | 8 ++++++++
+ configure.in | 4 ++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit b6eae8e5309834fa0f4ab5cbc3ae2275178cda29
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Apr 24 08:33:41 2007 +0000
+
+ Bug 414716 – Refresh issue after changing workspaces
+
+ 2007-04-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 414716 – Refresh issue after changing workspaces
+
+ * src/vte.c (vte_terminal_hierarchy_changed):
+ Do not respond to toplevel mapping events.
+
+
+ svn path=/trunk/; revision=1880
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 39 ---------------------------------------
+ 2 files changed, 7 insertions(+), 39 deletions(-)
+
+commit a569abe2fa825a56d8cdd0e4031e4a82d4403457
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Apr 23 22:34:37 2007 +0000
+
+ Released vte-0.16.2.
+
+ 2007-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.2.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.2.
+
+ * src/Makefile.am: Bumped libtool version to 11:6:2.
+
+
+ svn path=/trunk/; revision=1878
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 8 ++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 20 insertions(+), 2 deletions(-)
+
+commit 4f1f875b87de00b595d05fe164b1a59cfb769a3c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Apr 23 11:34:07 2007 +0000
+
+ Bug 431799 – Regex highlighting is broken
+
+ 2007-04-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 431799 – Regex highlighting is broken
+
+ * src/vte.c (vte_terminal_emit_contents_changed),
+ (vte_terminal_match_hilite_update), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+ Always emit any pending updates before redrawing. This
+ ensures for example that the match contents are updated
+ after a simple scroll event.
+
+
+ svn path=/trunk/; revision=1877
+
+ ChangeLog | 11 +++++++++++
+ src/vte.c | 24 +++++++++++++++++++-----
+ 2 files changed, 30 insertions(+), 5 deletions(-)
+
+commit b293b2cfd64c5bad6751c34137367ed7aaf5b854
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Apr 23 11:18:58 2007 +0000
+
+ XftDrawSetClip(NULL) disables the clip mask XftDrawSetClipRectangles(NULL)
+ is a completely opaque clip mask, the exact opposite.
+
+
+ svn path=/trunk/; revision=1876
+
+ src/vtexft.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit f9e23220a7a164b2f580c90c99e63baf2f3d4c44
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Apr 20 19:45:00 2007 +0000
+
+ Optimise away the use of a clip mask for the common case of redrawing the
+
+ 2007-04-20 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_start), (_vte_xft_clip):
+ Optimise away the use of a clip mask for the common case
+ of redrawing the whole terminal.
+
+
+ svn path=/trunk/; revision=1875
+
+ ChangeLog | 6 ++++++
+ src/vtexft.c | 36 +++++++++++++++++++++++++-----------
+ 2 files changed, 31 insertions(+), 11 deletions(-)
+
+commit b63ed2abda9e121c409aa5942aceec7b2f3b86c6
+Author: Funda Wang <fwang src gnome org>
+Date: Thu Apr 19 00:37:18 2007 +0000
+
+ Updated Simplified Chinese translation from Yang Zhang.
+
+ svn path=/trunk/; revision=1874
+
+ po/ChangeLog | 4 +++
+ po/zh_CN.po | 73 +++++++++++++++++++++++++++++++++++-----------------------
+ 2 files changed, 48 insertions(+), 29 deletions(-)
+
+commit c78f2f74ce582e237f5f08278b009dfcc142a849
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Apr 17 06:40:12 2007 +0000
+
+ Consider ambiguous-width chars if VTE_CJK_WIDTH env var is set and we are
+
+ 2007-04-17 Behdad Esfahbod <behdad gnome org>
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Consider
+ ambiguous-width chars if VTE_CJK_WIDTH env var is set and we are
+ under a CJK locale.
+
+
+ svn path=/trunk/; revision=1873
+
+ ChangeLog | 6 ++++++
+ src/iso2022.c | 7 +++++++
+ 2 files changed, 13 insertions(+), 0 deletions(-)
+
+commit e5acf7b41bea4c6b3c86c01e2b86696ae92b33cb
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Apr 9 17:50:38 2007 +0000
+
+ Released vte-0.16.1.
+
+ 2007-03-12 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.1.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.1.
+
+ * src/Makefile.am: Bumped libtool version to 11:5:2.
+
+
+ svn path=/trunk/; revision=1871
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 32 ++++++++++++++++++++++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 44 insertions(+), 2 deletions(-)
+
+commit 19894afc3a1b5cefe4d8c3c8395b352ead50c502
+Author: Ignacio Casal Quinteiro <icq src gnome org>
+Date: Sun Apr 8 22:04:52 2007 +0000
+
+ Updated Galician Translation
+
+ svn path=/trunk/; revision=1870
+
+ po/ChangeLog | 4 +++
+ po/gl.po | 71 +++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 42 insertions(+), 33 deletions(-)
+
+commit 2acbec9d0d810d944f8123823a9746f8baad68cd
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Apr 6 10:27:26 2007 +0000
+
+ Minor ChangeLog wording change.
+
+ svn path=/trunk/; revision=1868
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 1deeae58857fdf10da2438686ffa88ef8ad3c8d3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Apr 6 10:26:11 2007 +0000
+
+ Bug 426870 – vte often passes NUL to functions requiring valid unichar
+
+ 2007-04-06 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 426870 – vte often passes NUL to functions requiring valid unichar
+
+ * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
+ (vte_terminal_paint):
+ Consistently guard for cell->c == '\0' before calling
+ _vte_draw_get_char_width.
+
+
+ svn path=/trunk/; revision=1867
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 16 ++++++++++------
+ 2 files changed, 19 insertions(+), 6 deletions(-)
+
+commit 04df4233a12d4801c22df3ff6ffde5b2f347f688
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Apr 6 09:58:09 2007 +0000
+
+ Bug 419644 – Links do not get highlighted anymore Also see Bug 404757
+
+ 2007-04-06 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 419644 – Links do not get highlighted anymore
+ Also see Bug 404757 – URL matching doesn't work with PCRE
+
+ * configure.in:
+ Kill --with-pcre as it changes the semantics of the API
+ and only causes confusion.
+
+
+ svn path=/trunk/; revision=1866
+
+ ChangeLog | 9 +++++++++
+ configure.in | 17 -----------------
+ 2 files changed, 9 insertions(+), 17 deletions(-)
+
+commit 962d231f324013e659bb6bf5ebc08f08f2ca8309
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Apr 5 10:40:45 2007 +0000
+
+ Bug 426541 – crash on IRM escape code
+
+ 2007-04-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 426541 – crash on IRM escape code
+
+ * src/vte.c (vte_terminal_ensure_cursor),
+ (_vte_terminal_insert_char):
+ Mishandled insertion - we always extended the row for
+ inserts even though the row would automagically extend
+ for the inserted cells. This lead to referencing
+ uninitialised cells at the end of the row during painting.
+ * src/vte.c (vte_terminal_draw_rows):
+ Retrieve the cell before inspecting it.
+
+
+ svn path=/trunk/; revision=1865
+
+ ChangeLog | 17 +++++++++++++++--
+ src/vte.c | 24 ++++++++++++------------
+ 2 files changed, 27 insertions(+), 14 deletions(-)
+
+commit ca778f57c983bf7994563c9b0df1d28f3af024e2
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Apr 4 10:53:19 2007 +0000
+
+ Bug 424184 – Make scroll wheel send Page Up/Down when it makes sense
+
+ 2007-04-04 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 424184 – Make scroll wheel send Page Up/Down when it makes sense
+
+ Original patch by Shaun McCance and refined by Baris Cicek.
+
+ * src/vte.c (vte_terminal_scroll):
+ Send cursor keypress instead of trying to scroll the
+ alternate screen in vain.
+
+
+ svn path=/trunk/; revision=1864
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 44 +++++++++++++++++++++++++++++++++++++++-----
+ 2 files changed, 49 insertions(+), 5 deletions(-)
+
+commit a6bb6a44d09688ac14d10694c283c1d11a146b04
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Apr 3 07:55:06 2007 +0000
+
+ Bug 425767 – vte_terminal_set_color_highlight should test for NULL
+
+ 2007-04-03 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 425767 – vte_terminal_set_color_highlight should test for
+ NULL before _vte_debug_print
+
+ * src/vte.c (vte_terminal_set_color_cursor),
+ (vte_terminal_set_color_highlight):
+ Differentiate between set/unset paths.
+
+
+ svn path=/trunk/; revision=1863
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 24 ++++++++++++++----------
+ 2 files changed, 23 insertions(+), 10 deletions(-)
+
+commit b0f2686e65352151ff8aab15b37005235bffc6e7
+Author: Inaki Larranaga Murgoitio <dooteo euskalgnu org>
+Date: Sat Mar 31 17:30:22 2007 +0000
+
+ Updated Basque translation.
+
+ 2007-03-31 Inaki Larranaga Murgoitio <dooteo euskalgnu org>
+
+ * eu.po: Updated Basque translation.
+
+
+ svn path=/trunk/; revision=1862
+
+ po/ChangeLog | 4 +++
+ po/eu.po | 73 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 44 insertions(+), 33 deletions(-)
+
+commit 92e36b3d49413ac052f1c988757211600c90ed84
+Author: Claudio Saavedra <csaavedra alumnos utalca cl>
+Date: Fri Mar 30 17:32:42 2007 +0000
+
+ Updated Spanish translation by Rodrigo M. Fombellida.
+
+ 2007-03-30 Claudio Saavedra <csaavedra alumnos utalca cl>
+
+ * es.po: Updated Spanish translation by Rodrigo M. Fombellida.
+
+
+
+ svn path=/trunk/; revision=1861
+
+ po/ChangeLog | 4 ++
+ po/es.po | 113 ++++++++++++++++++++++-----------------------------------
+ 2 files changed, 48 insertions(+), 69 deletions(-)
+
+commit 6ed39db9b7e7c210666a42203fa6c1db0988590e
+Author: Ignacio Casal Quinteiro <icq src gnome org>
+Date: Sun Mar 25 21:13:23 2007 +0000
+
+ Updated Galician translation.
+
+ svn path=/trunk/; revision=1860
+
+ po/ChangeLog | 4 +++
+ po/gl.po | 78 +++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 44 insertions(+), 38 deletions(-)
+
+commit aeaf1b3b79a9184a665d5e0a948b03717eb4c4a8
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Mar 25 14:06:43 2007 +0000
+
+ Bug 422385 – vte appears at the top of the root window even when packed
+
+ 2007-03-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 422385 – vte appears at the top of the root window even when
+ packed at the bottom of it
+
+ Patch by Dodji Seketeli.
+
+ * src/vte.c (vte_terminal_size_allocate), (vte_terminal_realize):
+ Honour the allocated position when realizing the widget.
+
+
+ svn path=/trunk/; revision=1858
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 6 +++---
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+commit 21217e30ed9040b53ff531fca4411170e6a54c46
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Mar 22 12:10:09 2007 +0000
+
+ Insert spaces into the Xft glyph stream to avoid the overhead of
+
+ 2007-03-22 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_draw_text):
+ Insert spaces into the Xft glyph stream to avoid the
+ overhead of restarting a glyph sequence for every word.
+
+
+ svn path=/trunk/; revision=1857
+
+ ChangeLog | 6 ++++++
+ src/vtexft.c | 36 ++++++++++++++++++++++++++++++++----
+ 2 files changed, 38 insertions(+), 4 deletions(-)
+
+commit 48fae69f26cef757e4b24198b5ec2bfc74fdd520
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Mar 21 12:38:02 2007 +0000
+
+ Bug 420935 – glyph can be cropped with not fitting in a cell
+
+ 2007-03-21 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 420935 – glyph can be cropped with not fitting in a cell
+
+ * src/vte.c (vte_terminal_paint):
+ Don't redraw the invisible cursor
+ - avoids nasty artifacts like clipping extra wide glyphs.
+
+
+ svn path=/trunk/; revision=1856
+
+ ChangeLog | 8 +++++++
+ src/vte.c | 70 ++++++++++++++++++++++++++++++------------------------------
+ 2 files changed, 43 insertions(+), 35 deletions(-)
+
+commit 73d0161e60567644e2e0ed50f52a0537e628affb
+Author: Pema Geyleg <pgeyleg src gnome org>
+Date: Wed Mar 21 04:42:07 2007 +0000
+
+ Updated Dzongkha Translation
+
+ svn path=/trunk/; revision=1855
+
+ po/ChangeLog | 4 +++
+ po/dz.po | 75 ++++++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 46 insertions(+), 33 deletions(-)
+
+commit 1c1128e26a33ac9ce9b30fdead6d9817ad1e17e4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 19 14:08:33 2007 +0000
+
+ Leave 'contents-change' to the scroll handler.
+
+ 2007-03-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_scroll_pages):
+ Leave 'contents-change' to the scroll handler.
+
+
+ svn path=/trunk/; revision=1854
+
+ ChangeLog | 5 +++++
+ src/vte.c | 2 --
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+commit 4a7d25e1adfcb66a0687f00efe41b2f9a156c609
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 19 10:51:09 2007 +0000
+
+ Accidentally inverted an is-empty? check during the elimination of the
+
+ 2007-03-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_extend_selection),
+ (vte_terminal_draw_rows):
+ Accidentally inverted an is-empty? check during the
+ elimination of the empty bitfield.
+
+
+ svn path=/trunk/; revision=1853
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 5 ++---
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+commit badce29ef7e7e30bc0b05e375594bd62eadb0cbb
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 19 10:14:32 2007 +0000
+
+ Bug 420067 – Does not handle expose events whilst processing unseen
+
+ 2007-03-19 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 420067 – Does not handle expose events whilst processing
+ unseen incoming data
+
+ * src/vte.c (vte_terminal_expose):
+ Handle the expose immediately if we are only processing
+ incoming data (ie no redraws pending).
+
+
+ svn path=/trunk/; revision=1852
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 4 +++-
+ 2 files changed, 12 insertions(+), 1 deletions(-)
+
+commit 2cc778da5dd507a139aeb7a0324c96bf186398d4
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Fri Mar 16 18:01:36 2007 +0000
+
+ Updated Albanian translation.
+
+ svn path=/trunk/; revision=1851
+
+ po/ChangeLog | 4 +++
+ po/sq.po | 85 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 49 insertions(+), 40 deletions(-)
+
+commit fac7f53391ed453b9efb34a924004309535162a1
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 11:55:36 2007 +0000
+
+ Remove a chunk of code that was tried as a mutt band-aid long ago and was
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c (vte_sequence_handler_cursor_character_absolute):
+ Remove a chunk of code that was tried as a mutt band-aid
+ long ago and was completely wrong.
+
+
+ svn path=/trunk/; revision=1850
+
+ ChangeLog | 6 ++++++
+ src/vteseq.c | 9 ---------
+ 2 files changed, 6 insertions(+), 9 deletions(-)
+
+commit b73b7e1536e4cf93688c7fabd98d1a2610550911
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 11:48:32 2007 +0000
+
+ Bug 415381 – Improve performance of vte_terminal_insert_char()
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 415381 – Improve performance of vte_terminal_insert_char()
+
+ The bulk of the work to remove redundant reads and conditionals
+ from the code. In particular, gcc was emitting bit-by-bit copies
+ for transferring the bitfield since we modified a member immediately
+ afterwards - overcome this by using an explicit memcpy of the
+ bitfields.
+
+ * src/vte-private.h:
+ * src/vte.c (vte_g_array_fill), (vte_terminal_ensure_cursor),
+ (_vte_terminal_insert_char), (vte_terminal_process_incoming),
+ (vte_terminal_send):
+ * src/vteseq.c (vte_sequence_handler_ic):
+
+
+ svn path=/trunk/; revision=1849
+
+ ChangeLog | 16 ++++++
+ src/vte-private.h | 4 +-
+ src/vte.c | 133 ++++++++++++++++++++---------------------------------
+ src/vteseq.c | 2 +-
+ 4 files changed, 68 insertions(+), 87 deletions(-)
+
+commit cda925578fd1314950623a909e76dec9fc0b432a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 11:40:55 2007 +0000
+
+ cf Bug 415381 – Improve performance of vte_terminal_insert_char()
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 415381 – Improve performance of vte_terminal_insert_char()
+
+ * src/vte-private.h: Use a simple boolean rather than counter for
+ text changed style flags.
+ * src/vte.c: And update users.
+ * src/vteseq.c:
+
+
+ svn path=/trunk/; revision=1848
+
+ ChangeLog | 9 +++++++++
+ src/vte-private.h | 4 ++--
+ src/vte.c | 24 +++++++++---------------
+ src/vteseq.c | 44 ++++++++++++++++++++++----------------------
+ 4 files changed, 42 insertions(+), 39 deletions(-)
+
+commit 951f597495bf01b693ae1cd9abb09c78e6212244
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 11:37:07 2007 +0000
+
+ cf Bug 415381 – Improve performance of vte_terminal_insert_char()
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 415381 – Improve performance of vte_terminal_insert_char()
+
+ * src/vte-private.h: Embed bitfield into struct
+ * src/vte.c: And update users.
+ * src/vteseq.c:
+
+
+ svn path=/trunk/; revision=1847
+
+ ChangeLog | 8 ++
+ src/vte-private.h | 44 ++++++-----
+ src/vte.c | 226 ++++++++++++++++++++++++++---------------------------
+ src/vteseq.c | 114 +++++++++++++--------------
+ 4 files changed, 199 insertions(+), 193 deletions(-)
+
+commit 62aed61f89c15016f45416067dc6af5dae2dec89
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Mar 16 11:14:53 2007 +0000
+
+ A couple more compilation fixes.
+
+ svn path=/trunk/; revision=1846
+
+ src/vte.c | 8 ++++----
+ src/vtegl.c | 3 +--
+ src/vtexft.c | 4 +---
+ 3 files changed, 6 insertions(+), 9 deletions(-)
+
+commit 0ae6cc3971278263ff15bdd7ecf361a61bf1632b
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Mar 16 10:53:37 2007 +0000
+
+ Missed a couple of chunks needed to compile!
+
+
+ svn path=/trunk/; revision=1845
+
+ src/vte-private.h | 2 +-
+ src/vte.c | 13 ++++++-------
+ 2 files changed, 7 insertions(+), 8 deletions(-)
+
+commit 2233a6468f3b40e365a864042251c5b8662a6771
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 10:51:58 2007 +0000
+
+ Need to trigger update timeout rather than process timeout otherwise the
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Need to trigger update timeout rather than process timeout
+ otherwise the background is not updated.
+
+ * src/vte.c (vte_terminal_queue_adjustment_changed),
+ (vte_terminal_queue_adjustment_value_changed):
+
+
+ svn path=/trunk/; revision=1844
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 22 +++++++++++++---------
+ 2 files changed, 21 insertions(+), 9 deletions(-)
+
+commit 16ff2c576eba699bf7a1f80e4806bdd1c54173be
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 10:47:31 2007 +0000
+
+ Avoid some allocations.
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_create), (_vte_xft_destroy),
+ (_vte_xft_start), (_vte_xft_end), (_vte_xft_clip),
+ (_vte_xft_clear): Avoid some allocations.
+
+
+ svn path=/trunk/; revision=1843
+
+ ChangeLog | 6 ++++
+ src/vtexft.c | 93 +++++++++++++++++++++++++---------------------------------
+ 2 files changed, 46 insertions(+), 53 deletions(-)
+
+commit a4cb981c34efb1086b7c1551e25df42605947297
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 10:44:47 2007 +0000
+
+ Bug 418073 – Opacity ignored for vtexft
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 418073 – Opacity ignored for vtexft
+
+ * src/vte.c:
+ * src/vtedraw.c (_vte_draw_requires_clear):
+ * src/vtedraw.h:
+ * src/vteft2.c (_vte_ft2_set_background_image):
+ * src/vtegl.c (_vte_gl_create), (_vte_gl_set_background_image):
+ * src/vtepango.c (_vte_pango_set_background_image):
+ * src/vtepangox.c (_vte_pango_x_set_background_image):
+ * src/vtexft.c (_vte_xft_set_background_color),
+ (_vte_xft_set_background_image):
+ Flood fill the backing pixmap if we need to change it's
+ opacity as well.
+
+
+ svn path=/trunk/; revision=1842
+
+ ChangeLog | 18 ++++++++++++++++++
+ src/vte.c | 2 +-
+ src/vtedraw.c | 4 ++--
+ src/vtedraw.h | 4 ++--
+ src/vteft2.c | 2 +-
+ src/vtegl.c | 2 +-
+ src/vtepango.c | 4 ++--
+ src/vtepangox.c | 4 ++--
+ src/vtexft.c | 7 +++++--
+ 9 files changed, 34 insertions(+), 13 deletions(-)
+
+commit 0323293dbad98bcabc8ef79ee04a98f41c6307ac
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 10:37:32 2007 +0000
+
+ Bug 418910 – Asymmetric scrolling with mouse wheel
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 418910 – Asymmetric scrolling with mouse wheel
+
+ * configure.in:
+ * src/vte.c: Round-up the delta before applying to ensure consistency
+ between up and down.
+
+
+ svn path=/trunk/; revision=1841
+
+ ChangeLog | 6 ++++++
+ configure.in | 1 +
+ src/vte.c | 15 ++++++++-------
+ 3 files changed, 15 insertions(+), 7 deletions(-)
+
+commit efdb21202b7fda649fc4e25d5039e0181152da10
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 10:26:12 2007 +0000
+
+ Refactor some common code.
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_catch_child_exited), (vte_terminal_eof),
+ (vte_terminal_process_incoming): Refactor some common code.
+
+
+ svn path=/trunk/; revision=1840
+
+ ChangeLog | 5 +++
+ src/vte.c | 106 +++++++++++++++++++++++++++----------------------------------
+ 2 files changed, 52 insertions(+), 59 deletions(-)
+
+commit 6121477a73bfb822b244f2e7dace419e97c8dabc
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 10:19:42 2007 +0000
+
+ Bug 416634 – Rendering glitch as autowrapped chars are outside
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 416634 – Rendering glitch as autowrapped chars are outside invalidated bbox
+
+ * src/vte.c (_vte_terminal_insert_char),
+ (vte_terminal_process_incoming): Correctly update bbox after
+ autowrapping.
+
+
+ svn path=/trunk/; revision=1839
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 35 +++++++++++++++++++++++++++++++++--
+ 2 files changed, 41 insertions(+), 2 deletions(-)
+
+commit a4166ac0a77f3ffd544d130216aa4e4d09586ff8
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 10:15:53 2007 +0000
+
+ Bug 416635 – Rendering glitch: double draw of line below exposed region
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 416635 – Rendering glitch: double draw of line below exposed region
+
+ * src/vte.c (vte_terminal_expand_region),
+ (vte_terminal_paint_area): Kill a couple of off-by-ones.
+
+
+ svn path=/trunk/; revision=1838
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 10 ++++------
+ 2 files changed, 11 insertions(+), 6 deletions(-)
+
+commit c92e744f31e97c825a9b62b628993d7d61e8ba90
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 10:11:04 2007 +0000
+
+ Bug 418588 – Invalid read when drawing preedit cursor
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 418588 – Invalid read when drawing preedit cursor
+
+ * src/vte.c (vte_terminal_paint):
+ No need to read what is drawn and furthermore isn't allocated.
+
+
+ svn path=/trunk/; revision=1837
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 12 ------------
+ 2 files changed, 7 insertions(+), 12 deletions(-)
+
+commit 8fcef563eb841bca377e1e54eb87ddc181e77935
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 10:09:05 2007 +0000
+
+ Bug 417652 – Scrolling bug exposed by nvi
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 417652 – Scrolling bug exposed by nvi
+
+ * src/vte.c (vte_terminal_insert_rows), (_vte_terminal_ensure_row),
+ (vte_terminal_ensure_cursor), (_vte_terminal_update_insert_delta):
+ Ensure the rows before updating the insert delta and refactor
+ the common code.
+
+
+ svn path=/trunk/; revision=1836
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 55 ++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 37 insertions(+), 27 deletions(-)
+
+commit c153f7658423037d86cedbe4e29b5c0426dfa23d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 16 10:04:03 2007 +0000
+
+ Bug 417301 – Terminal widgets don't respond to DPI changes
+
+ 2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 417301 – Terminal widgets don't respond to DPI changes
+
+ * src/vte.c (vte_terminal_fc_settings_changed): Force a font reload
+ after XFT settings have changed.
+
+
+ svn path=/trunk/; revision=1835
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 11 ++++++++++-
+ 2 files changed, 17 insertions(+), 1 deletions(-)
+
+commit 6e2f5d59cf01cb7afd7954b03dec2c16d76b358a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Mar 12 23:31:27 2007 +0000
+
+ Released vte-0.16.0.
+
+ 2007-03-12 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.0.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.0.
+
+ * src/Makefile.am: Bumped libtool version to 11:4:2.
+
+
+ svn path=/trunk/; revision=1833
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 8 ++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 20 insertions(+), 2 deletions(-)
+
+commit 61d35acde10c49eff72bc36f0e137aed906f9613
+Author: Luca Ferretti <elle uca libero it>
+Date: Mon Mar 12 07:47:36 2007 +0000
+
+ Updated Italian translation by Francesco Marletta.
+
+ 2007-03-12 Luca Ferretti <elle uca libero it>
+
+ * it.po: Updated Italian translation by Francesco Marletta.
+
+
+ svn path=/trunk/; revision=1832
+
+ po/ChangeLog | 4 ++
+ po/it.po | 97 +++++++++++++++++++++-------------------------------------
+ 2 files changed, 39 insertions(+), 62 deletions(-)
+
+commit d82a2f2df75285a83708a4a35268fd3a319be134
+Author: Danilo Šegan <danilo src gnome org>
+Date: Sat Mar 10 18:57:27 2007 +0000
+
+ Updated Serbian translation.
+
+ svn path=/trunk/; revision=1831
+
+ po/ChangeLog | 4 ++
+ po/sr.po | 78 ++++++++++++++++++++++++++++----------------------
+ po/sr Latn po | 89 +++++++++++++++++++++++++++++++-------------------------
+ 3 files changed, 97 insertions(+), 74 deletions(-)
+
+commit 2b448ff232e9c8abb7dc27ae804f8ca2dd255f9a
+Author: Leonid Kanter <lkanter src gnome org>
+Date: Sat Mar 10 17:19:55 2007 +0000
+
+ Updated Russian translation
+
+ svn path=/trunk/; revision=1830
+
+ po/ChangeLog | 4 ++
+ po/ru.po | 128 ++++++++++++++++++++++------------------------------------
+ 2 files changed, 52 insertions(+), 80 deletions(-)
+
+commit 1bc367e67dea70d9e4f576285a397bbb4e13191c
+Author: Ihar Hrachyshka <iharh src gnome org>
+Date: Sat Mar 10 00:39:21 2007 +0000
+
+ Fixed Belarusian Latin translation.
+
+ svn path=/trunk/; revision=1829
+
+ po/ChangeLog | 6 +++++-
+ po/be latin po | 16 ++++++++--------
+ 2 files changed, 13 insertions(+), 9 deletions(-)
+
+commit 045b15b2e6bc6d467efa3aaf0c4c205861358cc3
+Author: Ihar Hrachyshka <iharh src gnome org>
+Date: Fri Mar 9 13:49:14 2007 +0000
+
+ Fixed wrong credentials.
+
+ svn path=/trunk/; revision=1828
+
+ po/ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 3745030f963586ec141806c0b6266ad180d5211c
+Author: Ihar Hrachyshka <iharh src gnome org>
+Date: Fri Mar 9 13:46:08 2007 +0000
+
+ be latin po: Added Belarusian Latin translation by Ales Navicki.
+
+ svn path=/trunk/; revision=1827
+
+ po/ChangeLog | 4 ++
+ po/LINGUAS | 1 +
+ po/be latin po | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 127 insertions(+), 0 deletions(-)
+
+commit 0c72bb1ce18fe16769f3606580e331138ded6abb
+Author: Gabor Kelemen <kelemeng gnome hu>
+Date: Fri Mar 9 13:31:00 2007 +0000
+
+ Translation updated.
+
+ 2007-03-09 Gabor Kelemen <kelemeng gnome hu>
+
+ * hu.po: Translation updated.
+
+ svn path=/trunk/; revision=1826
+
+ po/ChangeLog | 4 ++++
+ po/hu.po | 38 +++++++++++++++++++++-----------------
+ 2 files changed, 25 insertions(+), 17 deletions(-)
+
+commit ebf2da0ef20065471f49d6c54afd2f135f8d0f8e
+Author: Gintautas Miliauskas <gintas akl lt>
+Date: Wed Mar 7 20:16:01 2007 +0000
+
+ Updated Lithuanian translation.
+
+ 2007-03-07 Gintautas Miliauskas <gintas akl lt>
+
+ * lt.po: Updated Lithuanian translation.
+
+
+
+ svn path=/trunk/; revision=1825
+
+ po/ChangeLog | 4 ++++
+ po/lt.po | 48 +++++++++++++++++++++++++-----------------------
+ 2 files changed, 29 insertions(+), 23 deletions(-)
+
+commit 8651c1b2ee2f3550f0be9805152697da07171a8c
+Author: Takeshi AIHANA <takeshi aihana gmail com>
+Date: Wed Mar 7 14:53:12 2007 +0000
+
+ Updated Japanese translation.
+
+ 2007-03-07 Takeshi AIHANA <takeshi aihana gmail com>
+
+ * ja.po: Updated Japanese translation.
+
+ svn path=/trunk/; revision=1824
+
+ po/ChangeLog | 4 ++++
+ po/ja.po | 47 ++++++++++++++++++++++++++---------------------
+ 2 files changed, 30 insertions(+), 21 deletions(-)
+
+commit 0b1e25475ec1c69adee7b5b9c2cb01b91cc3710b
+Author: Jovan Naumovski <jovanna src gnome org>
+Date: Tue Mar 6 18:29:32 2007 +0000
+
+ 2007-03-06 Jovan Naumovski <jovanna svn gnome org> *mk.po: Updated Macedonian translation.
+
+ svn path=/trunk/; revision=1823
+
+ po/ChangeLog | 4 +++
+ po/mk.po | 83 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 49 insertions(+), 38 deletions(-)
+
+commit cf7bb8e3391ea014738b1633044bfd436eee97b9
+Author: David Lodge <dlodge src gnome org>
+Date: Tue Mar 6 12:47:37 2007 +0000
+
+ Updated en_GB translation
+
+ svn path=/trunk/; revision=1822
+
+ po/ChangeLog | 4 ++++
+ po/en_GB.po | 48 ++++++++++++++++++++++++++----------------------
+ 2 files changed, 30 insertions(+), 22 deletions(-)
+
+commit 12e084dd9ed1e72bde4bc4db603454257af203b3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Mar 6 00:29:39 2007 +0000
+
+ More work to match mutt's behaviour under xterm.
+
+ 2007-03-06 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c (vte_sequence_handler_cm), (vte_sequence_handler_sf):
+ More work to match mutt's behaviour under xterm.
+
+
+ svn path=/trunk/; revision=1821
+
+ ChangeLog | 5 +++++
+ src/vtedraw.c | 2 +-
+ src/vteseq.c | 29 +++++++++--------------------
+ 3 files changed, 15 insertions(+), 21 deletions(-)
+
+commit 32641950c83f0ac3a52f5dd7e5251a4c649c6d8d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 23:20:30 2007 +0000
+
+ Use the process estimate to load balance between multiple active
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_io_read):
+ Use the process estimate to load balance between multiple
+ active terminals.
+
+
+ svn path=/trunk/; revision=1820
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 4 ++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 014ea56bf1a6def3aad75e30bf4099756a1e2a43
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 22:21:58 2007 +0000
+
+ Tweak the fill of painted cells to match mutt's behaviour under xterm.
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c (vte_sequence_handler_cm),
+ (vte_sequence_handler_dc), (vte_sequence_handler_sf),
+ (vte_sequence_handler_cursor_character_absolute):
+ Tweak the fill of painted cells to match mutt's behaviour
+ under xterm.
+
+
+ svn path=/trunk/; revision=1819
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 4 ++--
+ src/vteseq.c | 39 ++++++++++++++++++++++++++++++++++++++-
+ 3 files changed, 48 insertions(+), 3 deletions(-)
+
+commit ea79a823aca2baf353945e2176d5e4500de8db6d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 21:17:42 2007 +0000
+
+ Bug 414716 – gnome-terminal-2.17.92: terminal window dies...
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 414716 – gnome-terminal-2.17.92: terminal window dies...
+
+ * src/vte.c (vte_terminal_map_toplevel),
+ (vte_terminal_hierarchy_changed):
+ Force the visibility state to unobscured after the toplevel is
+ remapped.
+
+
+ svn path=/trunk/; revision=1818
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 23 +++++++++++++++++++++++
+ src/vteseq.c | 3 ++-
+ 3 files changed, 34 insertions(+), 1 deletions(-)
+
+commit 9ddd2072aeea4000981f70e2a7302ca12471aa1b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 21:03:41 2007 +0000
+
+ Note to self: Never try to optimize away the redraw.
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_size_allocate):
+ Note to self: Never try to optimize away the redraw.
+
+
+ svn path=/trunk/; revision=1817
+
+ ChangeLog | 5 +++++
+ src/vte.c | 7 -------
+ 2 files changed, 5 insertions(+), 7 deletions(-)
+
+commit be8ace2edd7f872065c3f26ea3149ae18ba45f72
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 20:09:25 2007 +0000
+
+ Touch up whitespace in debug output.
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (_vte_terminal_insert_char):
+ * src/vtedraw.c (_vte_draw_text), (_vte_draw_char),
+ (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle):
+ Touch up whitespace in debug output.
+
+
+ svn path=/trunk/; revision=1816
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 2 +-
+ src/vtedraw.c | 8 ++++----
+ 3 files changed, 12 insertions(+), 5 deletions(-)
+
+commit 7098429bc2137224371b4a8b75eb006e115cecd2
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 19:50:03 2007 +0000
+
+ Make sure the invalidated_all flag is cleared in the expose event if we
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (_vte_invalidate_cells), (vte_terminal_set_visibility),
+ (vte_terminal_paint_area), (vte_terminal_expose):
+ Make sure the invalidated_all flag is cleared in the expose
+ event if we handle it immediately.
+
+
+ svn path=/trunk/; revision=1815
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 14 ++++++++++----
+ 2 files changed, 17 insertions(+), 4 deletions(-)
+
+commit 9facb328b7be42ac7bf4c4fd2a90f5d3db1a4219
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 19:05:59 2007 +0000
+
+ Fixup invalidation to end-of-line.
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c (vte_sequence_handler_ce),
+ (vte_sequence_handler_clear_current_line):
+ Fixup invalidation to end-of-line.
+
+
+ svn path=/trunk/; revision=1814
+
+ ChangeLog | 6 ++++++
+ src/vteseq.c | 13 +++++--------
+ 2 files changed, 11 insertions(+), 8 deletions(-)
+
+commit b07d7fed6725088d52368b39e88083e136899f39
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 16:58:04 2007 +0000
+
+ cf Bug 414586 – Terminal screen blinks when menu is opened for the first
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
+
+ * src/vte.c (vte_terminal_draw_rows), (vte_terminal_expand_region):
+ Include the window padding when painting the cell backgrounds.
+
+
+ svn path=/trunk/; revision=1813
+
+ ChangeLog | 7 +++++
+ src/vte.c | 74 +++++++++++++++++++++++++++++++++++++++++++++++--------------
+ 2 files changed, 64 insertions(+), 17 deletions(-)
+
+commit 8faa8c912c5b5164c2e9b1b26f7858729c4019a7
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Mar 5 15:48:02 2007 +0000
+
+ trivial compiler warning from last commit
+
+ svn path=/trunk/; revision=1812
+
+ src/vtedraw.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit ffdc14a771993d18473f406bf73d37e1b0f8806a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 15:35:01 2007 +0000
+
+ Bug 414586 – Terminal screen blinks when menu is opened for the first
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 414586 – Terminal screen blinks when menu is opened for the first time
+
+ Avoid resetting the window background colour when the style is reset.
+ Avoid clearing the window if we are using a simple color and double
+ bufferring (i.e when we know we are using a pre-cleared pixmap).
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_init), (vte_terminal_size_allocate),
+ (vte_terminal_unrealize), (vte_terminal_realize),
+ (vte_terminal_paint_area), (vte_terminal_expose),
+ (vte_terminal_class_init), (vte_terminal_background_update):
+ * src/vtedraw.c (_vte_draw_has_background_image):
+ * src/vtedraw.h:
+ * src/vteft2.c (_vte_ft2_set_background_image):
+ * src/vtegl.c (_vte_gl_set_background_image):
+ * src/vtepango.c (_vte_pango_set_background_image):
+ * src/vtepangox.c (_vte_pango_x_set_background_image):
+
+
+ svn path=/trunk/; revision=1811
+
+ ChangeLog | 21 ++++++++++++++++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 54 ++++++++++++++++++++++++++++++++++++++--------------
+ src/vtedraw.c | 7 ++++++
+ src/vtedraw.h | 2 +
+ src/vteft2.c | 1 +
+ src/vtegl.c | 1 +
+ src/vtepango.c | 3 ++
+ src/vtepangox.c | 3 ++
+ src/vtexft.c | 3 ++
+ 10 files changed, 81 insertions(+), 15 deletions(-)
+
+commit 91be4067a9112a2e19a3084d3b1393dc8067392d
+Author: Ilkka Tuohela <ituohela src gnome org>
+Date: Mon Mar 5 15:05:46 2007 +0000
+
+ Updated Finnish translation
+
+ svn path=/trunk/; revision=1810
+
+ po/ChangeLog | 4 ++++
+ po/fi.po | 36 ++++++++++++++++++++----------------
+ 2 files changed, 24 insertions(+), 16 deletions(-)
+
+commit e4eb60788f093e8ca1fbeb52c4bed4e6573d49b7
+Author: Ankitkumar Rameshchandra Patel <ankitp src gnome org>
+Date: Mon Mar 5 14:43:38 2007 +0000
+
+ Updated Translation
+
+ svn path=/trunk/; revision=1809
+
+ po/ChangeLog | 4 +++
+ po/gu.po | 78 ++++++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 48 insertions(+), 34 deletions(-)
+
+commit 32a9ad735618dac47ebdaa8b52e4b6e0d9aa4640
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 14:23:08 2007 +0000
+
+ Bug 414586 – Terminal screen blinks when menu is opened for the first
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 414586 – Terminal screen blinks when menu is opened for the first time
+
+ * src/vte.c (_vte_invalidate_cells), (_vte_invalidate_all),
+ (vte_terminal_expose), (add_update_timeout):
+ Juggle the handling of external exposes/invalidates to avoid
+ delays in refreshing the display when we are idle.
+
+
+ svn path=/trunk/; revision=1808
+
+ ChangeLog | 9 ++++++++
+ src/vte.c | 62 ++++++++++++++++++++++++++++++------------------------------
+ 2 files changed, 40 insertions(+), 31 deletions(-)
+
+commit 2ec854aa5f576cc0e03ab893768ef3dea4019b06
+Author: Simos Xenitellis <simos src gnome org>
+Date: Mon Mar 5 13:55:31 2007 +0000
+
+ Updated Greek translation
+
+ svn path=/trunk/; revision=1807
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit a0ff645837ff137d96c152da65e03148bd54d640
+Author: Simos Xenitellis <simos src gnome org>
+Date: Mon Mar 5 13:54:18 2007 +0000
+
+ Updated Greek translation
+
+ svn path=/trunk/; revision=1806
+
+ po/el.po | 67 +++++++++++++++++++++++++++++++++++--------------------------
+ 1 files changed, 38 insertions(+), 29 deletions(-)
+
+commit 28d00b425e844acea7dec71e011c922f1a4a7ef9
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Mar 5 12:26:57 2007 +0000
+
+ cf Bug 414586 – Terminal screen blinks when menu is opened for the first
+
+ 2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
+
+ * src/vte.c (_vte_invalidate_cells), (vte_terminal_init),
+ (vte_terminal_expand_region), (vte_terminal_paint_area):
+ After enlarging the expand region make sure the dirty area
+ includes the border for edge cells.
+
+
+ svn path=/trunk/; revision=1805
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 58 ++++++++++++++++++++++++++++++++++++----------------------
+ 2 files changed, 45 insertions(+), 22 deletions(-)
+
+commit 9b97915f00ce32c243c343920de3c332cb3e28f0
+Author: Josep Puigdemont i Casamajó <joseppc src gnome org>
+Date: Mon Mar 5 01:58:52 2007 +0000
+
+ Updated Catalan translation.
+
+ svn path=/trunk/; revision=1804
+
+ po/ChangeLog | 4 ++++
+ po/ca.po | 40 +++++++++++++++++++++++-----------------
+ 2 files changed, 27 insertions(+), 17 deletions(-)
+
+commit b1605f6235c542bfb83ecceea90bcf653b378963
+Author: Peter Bach <pbach src gnome org>
+Date: Sun Mar 4 20:19:55 2007 +0000
+
+ Updated Danish translation
+
+ svn path=/trunk/; revision=1803
+
+ po/ChangeLog | 4 ++++
+ po/da.po | 38 +++++++++++++++++++++-----------------
+ 2 files changed, 25 insertions(+), 17 deletions(-)
+
+commit 6f039ef2b0cadf7dd07c4d664b2fa45c6205a607
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Mar 4 16:37:27 2007 +0000
+
+ cf Bug 414586 – Terminal screen blinks when menu is opened for the first
+
+ 2007-03-04 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
+
+ Distinguish between internal update requests and external. If we
+ need to update due to a user action (such as adjusting the background
+ or color palette) do not impose a futher delay.
+
+ Tidy the color palette modification code to not trigger invalidates if
+ we do not actually modify the palette.
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_set_color_internal),
+ (vte_terminal_set_color_bold), (vte_terminal_set_color_dim),
+ (vte_terminal_set_color_foreground),
+ (vte_terminal_set_color_background),
+ (vte_terminal_set_color_cursor),
+ (vte_terminal_set_color_highlight), (vte_terminal_set_colors),
+ (root_pixmap_changed_cb), (vte_terminal_set_background_saturation),
+ (vte_terminal_set_background_tint_color), (add_update_timeout):
+ * src/vteseq.c (vte_sequence_handler_ce),
+ (vte_sequence_handler_clear_current_line),
+ (vte_sequence_handler_clear_above_current):
+
+
+ svn path=/trunk/; revision=1802
+
+ ChangeLog | 24 +++++++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 115 +++++++++++++++++++++++++++++++++++++++-------------
+ src/vteseq.c | 21 ++++++----
+ 4 files changed, 123 insertions(+), 39 deletions(-)
+
+commit 318c714437d9f81f79690f9766d61a741b855242
+Author: Chao-Hsiung Liao <j_h_liau yahoo com tw>
+Date: Sun Mar 4 00:07:11 2007 +0000
+
+ Updated Traditional Chinese translation(Hong Kong). Updated Traditional
+
+
+ 2007-03-04 Chao-Hsiung Liao <j_h_liau yahoo com tw>
+
+ * zh_HK.po: Updated Traditional Chinese translation(Hong Kong).
+ * zh_TW.po: Updated Traditional Chinese translation(Taiwan).
+
+
+ svn path=/trunk/; revision=1801
+
+ po/ChangeLog | 5 +++
+ po/zh_HK.po | 88 ++++++++++++++++++++++++++++++++-------------------------
+ po/zh_TW.po | 82 ++++++++++++++++++++++++++++++-----------------------
+ 3 files changed, 100 insertions(+), 75 deletions(-)
+
+commit 94f8041cbed2ac4369cd4a9d829fef6d867f1435
+Author: Wouter Bolsterlee <wbolster svn gnome org>
+Date: Sat Mar 3 12:35:48 2007 +0000
+
+ Dutch translation updated by Wouter Bolsterlee.
+
+ 2007-03-03 Wouter Bolsterlee <wbolster svn gnome org>
+
+ * nl.po: Dutch translation updated by Wouter Bolsterlee.
+
+ svn path=/trunk/; revision=1800
+
+ po/ChangeLog | 52 ++++++++++++++++++++++-------------------
+ po/nl.po | 72 ++++++++++++++++++++++++++++++++++-----------------------
+ 2 files changed, 71 insertions(+), 53 deletions(-)
+
+commit 45d6f8a7685521bbd8ba45388211b2388192d64c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 2 12:54:05 2007 +0000
+
+ Bug 413068 – new line added to tab when opened
+
+ 2007-03-02 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413068 – new line added to tab when opened
+
+ * src/vte.c (vte_terminal_size_allocate):
+ Replace the ill-conceived attempt (delta could not be
+ negative, so insert_delta or scroll_delta would not become
+ negative either) by only considering changes wrt to the number
+ of visible lines.
+
+
+ svn path=/trunk/; revision=1799
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 20 +++++++-------------
+ 2 files changed, 17 insertions(+), 13 deletions(-)
+
+commit 1531fce6bf48a24ea4294af130422eee3401cb81
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Mar 2 12:34:21 2007 +0000
+
+ Bug 413068 – new line added to tab when opened
+
+ 2007-03-02 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413068 – new line added to tab when opened
+
+ * src/vte.c (_vte_terminal_insert_char):
+ Improve debug output.
+ * src/vte.c (vte_terminal_size_allocate):
+ Be careful that we don't force insert_delta or scroll_delta
+ to become negative.
+
+
+ svn path=/trunk/; revision=1798
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 28 ++++++++++++++++++++--------
+ 2 files changed, 30 insertions(+), 8 deletions(-)
+
+commit 11c5763c6b9e584a06a2fdc7945837b5d8aa638d
+Author: Ihar Hrachyshka <iharh src gnome org>
+Date: Thu Mar 1 19:13:38 2007 +0000
+
+ be.po: Updated Belarusian translation.
+
+ svn path=/trunk/; revision=1797
+
+ po/ChangeLog | 4 ++++
+ po/be.po | 48 ++++++++++++++++++++++++++----------------------
+ 2 files changed, 30 insertions(+), 22 deletions(-)
+
+commit d5ced7389f7235ada9794b97ea8678b58899b7db
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Mar 1 16:21:39 2007 +0000
+
+ Released vte-0.15.6.
+
+ 2007-03-01 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.6.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.6.
+
+ * src/Makefile.am: Bumped libtool version to 11:3:2.
+
+
+ svn path=/trunk/; revision=1795
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 12 ++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 24 insertions(+), 2 deletions(-)
+
+commit d365c60b2dde84a5f251b3a8af2be26dd240a533
+Author: Runa Bhattacharjee <runab src gnome org>
+Date: Thu Mar 1 13:54:16 2007 +0000
+
+ Added Changelog Entry for Bengali India translation updation
+
+ svn path=/trunk/; revision=1794
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit fe2de849b248afa68e226bad076790d3a4319e4d
+Author: Runa Bhattacharjee <runab src gnome org>
+Date: Thu Mar 1 13:53:41 2007 +0000
+
+ Updated Bengali India Translation
+
+ svn path=/trunk/; revision=1793
+
+ po/bn_IN.po | 63 +++++++++++++++++++++++++++++++++-------------------------
+ 1 files changed, 36 insertions(+), 27 deletions(-)
+
+commit dcb7fd974bea5fe49d4f5b0344ebdaffc6d7bae1
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Mar 1 12:58:47 2007 +0000
+
+ Tweak the clear widths to include the pixel widening due to psuedo-bold.
+
+ 2007-03-01 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_draw_cells), (vte_terminal_draw_rows),
+ (vte_terminal_paint):
+ Tweak the clear widths to include the pixel widening due to
+ psuedo-bold.
+
+
+ svn path=/trunk/; revision=1792
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 7 +++++--
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+commit 5dbdc4d84c313ce1aa69723e6ecc584bcc172454
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Thu Mar 1 10:54:38 2007 +0000
+
+ trivial readability improvement
+
+ svn path=/trunk/; revision=1791
+
+ src/vte.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit 839c35d254d4e905fff331ae2b0733a76f05fff4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Mar 1 10:50:45 2007 +0000
+
+ Be more careful when filling in gaps.
+
+ 2007-03-01 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_ensure_row),
+ (vte_terminal_ensure_cursor), (_vte_terminal_insert_char):
+ * src/vteseq.c (vte_sequence_handler_ta):
+ Be more careful when filling in gaps.
+
+
+ svn path=/trunk/; revision=1790
+
+ ChangeLog | 8 +++
+ src/vte-private.h | 1 -
+ src/vte.c | 124 +++++++++++++++++++++++++----------------------------
+ src/vteseq.c | 11 +++--
+ 4 files changed, 73 insertions(+), 71 deletions(-)
+
+commit cea448a26705776ad4de156480e6c7e8d4a9de22
+Author: Maxim Dziumanenko <dziumanenko gmail com>
+Date: Thu Mar 1 10:12:57 2007 +0000
+
+ Update Ukrainian translation.
+
+ 2007-03-01 Maxim Dziumanenko <dziumanenko gmail com>
+
+ * Update Ukrainian translation.
+
+
+ svn path=/trunk/; revision=1789
+
+ po/ChangeLog | 4 +++
+ po/uk.po | 68 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 41 insertions(+), 31 deletions(-)
+
+commit fb8c66adab006dc51567dc043ad4d3a9471872a3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Mar 1 09:50:38 2007 +0000
+
+ Fix X11 headers / libraries detection on bi-arch systems. Patch by
+
+ 2007-03-01 Chris Wilson <chris chris-wilson co uk>
+
+ Fix X11 headers / libraries detection on bi-arch systems.
+ Patch by Frederic Crozat.
+
+ * configure.in:
+ Check for x_includes before ac_x_includes, and similary for
+ ac_x_libraries.
+
+
+ svn path=/trunk/; revision=1788
+
+ ChangeLog | 9 +++++++++
+ configure.in | 6 +++++-
+ 2 files changed, 14 insertions(+), 1 deletions(-)
+
+commit e76f76be61f5c533e54c0820361765437ef75b8e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Mar 1 00:29:52 2007 +0000
+
+ Bug 410534 – Slow content scrolling, takes 100% of CPU.
+
+ 2007-03-01 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410534 – Slow content scrolling, takes 100% of CPU.
+
+ * src/vtexft.c:
+ Further reduce the cap to 80 after more testing on the
+ broken fglrx driver.
+
+
+ svn path=/trunk/; revision=1787
+
+ ChangeLog | 8 ++++++++
+ src/vtexft.c | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+commit 8baeec89102035fcea162cfe3ca6fc0a04cfa778
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 28 23:51:50 2007 +0000
+
+ Bug 413068 – new line added to tab when opened
+
+ 2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413068 – new line added to tab when opened
+
+ * src/vte.c (vte_terminal_ensure_font), (vte_terminal_realize):
+ Beware when no font is set before the first request...
+ Make sure that at least the default font is set.
+
+
+ svn path=/trunk/; revision=1786
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 36 +++++++++++++++++++-----------------
+ 2 files changed, 27 insertions(+), 17 deletions(-)
+
+commit 0bd7c180ce944078dac26641bc1279b0a38f08ed
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 28 23:09:25 2007 +0000
+
+ Bug 413262 – Incorrectly coloured tabs
+
+ 2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413262 – Incorrectly coloured tabs
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_ensure_cursor),
+ (_vte_terminal_ensure_cursor), (_vte_terminal_insert_char),
+ (_vte_terminal_feed_chunks), (vte_terminal_set_scrollback_lines):
+ * src/vteseq.c (vte_sequence_handler_ta),
+ (vte_sequence_handler_request_terminal_parameters),
+ (vte_sequence_handler_return_terminal_status),
+ (vte_sequence_handler_send_primary_device_attributes):
+ Fill the tab in the current color, else it will be filled at
+
+
+ svn path=/trunk/; revision=1785
+
+ ChangeLog | 15 +++++++++++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 25 ++++++++++++-------------
+ src/vteseq.c | 20 ++++++++++++++------
+ 4 files changed, 42 insertions(+), 19 deletions(-)
+
+commit fb6ea2f5aadde4b6f839c7f755572550c01e5c5a
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Wed Feb 28 21:11:41 2007 +0000
+
+ tidy the ChangeLog
+
+ svn path=/trunk/; revision=1784
+
+ ChangeLog | 22 +++++++++++-----------
+ 1 files changed, 11 insertions(+), 11 deletions(-)
+
+commit fc51bff17bffd8d4bbf41589d2ca11fba21dbeef
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 28 21:00:24 2007 +0000
+
+ Bug 413102 – Incorrect highlighting in vim
+
+ 2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413102 – Incorrect highlighting in vim
+
+ * src/vte-private.h
+ * src/vte.c (_vte_terminal_ensure_row),
+ (_vte_terminal_insert_char):
+ * src/vteseq.c (vte_sequence_handler_cb),
+ (vte_sequence_handler_ce), (vte_sequence_handler_cr),
+ (vte_sequence_handler_ec), (vte_sequence_handler_sf):
+ Paint the row background when scrolling, this more closely
+ matches xterm's behaviour.
+
+
+ svn path=/trunk/; revision=1783
+
+ ChangeLog | 13 +++++++++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++--
+ src/vteseq.c | 28 ++++++++++++----------------
+ 4 files changed, 73 insertions(+), 19 deletions(-)
+
+commit 8de7d6cd7c0829e932deb78d0627a3ce417053b0
+Author: Artur Flinta <aflinta svn gnome org>
+Date: Wed Feb 28 20:40:37 2007 +0000
+
+ Updated Polish translation by GNOME PL Team.
+
+ 2007-02-28 Artur Flinta <aflinta svn gnome org>
+
+ * pl.po: Updated Polish translation by GNOME PL Team.
+
+
+ svn path=/trunk/; revision=1782
+
+ po/ChangeLog | 4 ++++
+ po/pl.po | 35 ++++++++++++++++++++---------------
+ 2 files changed, 24 insertions(+), 15 deletions(-)
+
+commit 6e08e0cb2c2f55abb3a3e5913c7714d74677fd51
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 28 18:28:39 2007 +0000
+
+ Bug 413158 – Cursor trails
+
+ 2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413158 – Cursor trails
+
+ * src/vte.c (_vte_invalidate_cell):
+ _vte_invalidate_cell() can be called to invalidate any visible
+ cell so issue the invalidate even for blank cells.
+
+
+ svn path=/trunk/; revision=1781
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 35 +++++++++++++++--------------------
+ 2 files changed, 23 insertions(+), 20 deletions(-)
+
+commit a3f967250fac3613f6ef18a85e87a07bd07f3121
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 28 17:35:44 2007 +0000
+
+ Correct the OBO in the number of columns ensured.
+
+ 2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (_vte_terminal_insert_char):
+ Correct the OBO in the number of columns ensured.
+
+
+ svn path=/trunk/; revision=1780
+
+ ChangeLog | 5 +++++
+ src/vte.c | 3 ++-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 01f898dad853ad62e86026569391990727160faf
+Author: Djihed Afifi <djihed src gnome org>
+Date: Wed Feb 28 16:56:17 2007 +0000
+
+ Updated Arabic Translation by Djihed Afifi.
+
+ svn path=/trunk/; revision=1779
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 45 +++++++++++++++++++++++++++------------------
+ 2 files changed, 31 insertions(+), 18 deletions(-)
+
+commit a8d2ecb1ce63d9504382343053c45a620ae9ccef
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 28 15:38:29 2007 +0000
+
+ Bug 413078 – Crash during opening a new tab whilst scrolling
+
+ 2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413078 – Crash during opening a new tab whilst scrolling
+
+ During input processing it was possible to both remove the timeout and
+ then add a new one. The currently running timeout would believe that
+ it was to continue since the terminal was still active, and so *two*
+ timeouts would be scheduled. Occasionally the second timeout would be
+ called after the first had finished all the work, resulting in the
+ second timeout trying to access a NULL active_terminal list.
+
+ * src/vte.c (add_update_timeout), (remove_from_active_list),
+ (vte_terminal_add_process_timeout), (need_processing),
+ (process_timeout), (update_repeat_timeout), (update_timeout):
+ Watch for recursive g_source_remove() from within timeouts.
+
+
+ svn path=/trunk/; revision=1778
+
+ ChangeLog | 16 ++++++++++++++++
+ src/vte.c | 44 ++++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 52 insertions(+), 8 deletions(-)
+
+commit 884d186a7cbe1a5488ade41a4c7e76753a5be2a2
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 28 13:03:38 2007 +0000
+
+ Bug 410534 – Slow content scrolling, takes 100% of CPU.
+
+ 2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410534 – Slow content scrolling, takes 100% of CPU.
+
+ Submitting long glyph runs was causing a dramatic (10x) slow down
+ in the fglrx xserver.
+
+ * src/vtedraw.h
+ * src/vtexft.c (_vte_xft_draw_text):
+ Cap the max glyph run length to 300.
+
+
+ svn path=/trunk/; revision=1777
+
+ ChangeLog | 11 +++++++++++
+ src/vtedraw.h | 2 +-
+ src/vtexft.c | 12 ++++++++++--
+ 3 files changed, 22 insertions(+), 3 deletions(-)
+
+commit 7e29eee18ece4f89be83258cc55601292a431979
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 28 10:18:32 2007 +0000
+
+ Bug 412717 – Crash when opening a new tab with window maximized
+
+ 2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 412717 – Crash when opening a new tab with window maximized
+
+ * src/vte.c (vte_terminal_size_allocate):
+ We didn't carefully check the values we were clamping the
+ cursor to and ended up setting it to -1... Don't do that!
+
+
+ svn path=/trunk/; revision=1776
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 3 ++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 08d31f14023b9e7b7ca6ff66ce41dfe39199c952
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 27 19:06:02 2007 +0000
+
+ Consistently guard against the snapshot being NULL.
+
+ 2007-02-27 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteaccess.c (vte_terminal_accessible_text_scrolled):
+ Consistently guard against the snapshot being NULL.
+
+
+ svn path=/trunk/; revision=1775
+
+ ChangeLog | 5 ++++
+ src/vteaccess.c | 70 +++++++++++++++++++++++++++++++-----------------------
+ 2 files changed, 45 insertions(+), 30 deletions(-)
+
+commit 68ceaca8f594e7379df45940114a4f65d13a21ce
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Feb 27 18:30:29 2007 +0000
+
+ Released vte-0.15.5.
+
+ 2007-02-27 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.5.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.5.
+
+ * src/Makefile.am: Bumped libtool version to 11:2:2.
+
+
+ svn path=/trunk/; revision=1773
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 10 ++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 22 insertions(+), 2 deletions(-)
+
+commit cd85f3fe8680c7ac98366ef015b6ea89e0c00324
+Author: Gintautas Miliauskas <gintas akl lt>
+Date: Tue Feb 27 14:51:04 2007 +0000
+
+ Updated Lithuanian translation.
+
+ 2007-02-27 Gintautas Miliauskas <gintas akl lt>
+
+ * lt.po: Updated Lithuanian translation.
+
+
+ svn path=/trunk/; revision=1772
+
+ po/ChangeLog | 4 +++
+ po/lt.po | 63 +++++++++++++++++++++++++++++++++------------------------
+ 2 files changed, 40 insertions(+), 27 deletions(-)
+
+commit f4b6dcc5ebc85b0f8db6d3a3833420507cce34f7
+Author: Priit Laes <plaes svn gnome org>
+Date: Tue Feb 27 13:41:01 2007 +0000
+
+ Updated Estonian translation by Ivar Smolin <okul linux ee>.
+
+ 2007-02-27 Priit Laes <plaes svn gnome org>
+
+ * et.po: Updated Estonian translation by Ivar Smolin <okul linux ee>.
+
+ svn path=/trunk/; revision=1771
+
+ po/ChangeLog | 4 ++++
+ po/et.po | 41 +++++++++++++++++++++++------------------
+ 2 files changed, 27 insertions(+), 18 deletions(-)
+
+commit 88bdbffc45efcff6d612fb40e4a382c16a16c822
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Tue Feb 27 12:16:37 2007 +0000
+
+ minor whitespace
+
+ svn path=/trunk/; revision=1770
+
+ src/vte.c | 16 +++++++++-------
+ 1 files changed, 9 insertions(+), 7 deletions(-)
+
+commit 9eccc6f8fae64b5bd28d8de26272b47f6d85a786
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 27 11:49:56 2007 +0000
+
+ Bug 412562 – Crash in vte_terminal_match_hilite_update
+
+ 2007-02-27 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 412562 – Crash in vte_terminal_match_hilite_update
+
+ * src/vte.c (vte_terminal_match_check_internal),
+ (vte_terminal_process_incoming), (_vte_terminal_feed_chunks),
+ (vte_terminal_paste_cb), (vte_terminal_match_hilite_update),
+ (vte_terminal_copy_cb):
+ Fixup a few 64bit-isms, notably format strings and an
+ undesired unsigned integer promotion causing this crash.
+
+
+ svn path=/trunk/; revision=1769
+
+ ChangeLog | 11 +++++++++++
+ src/vte.c | 59 ++++++++++++++++++++++++++++++++++++-----------------------
+ 2 files changed, 47 insertions(+), 23 deletions(-)
+
+commit 3886ecd4854f2c55c861e0a2e1e6da95c2fb6bf7
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Tue Feb 27 10:42:57 2007 +0000
+
+ whitespace between ChangeLog entries
+
+ svn path=/trunk/; revision=1768
+
+ ChangeLog | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit 226bb59731c29dd2e08c20f54d64db9e97d3549b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 27 10:42:27 2007 +0000
+
+ Bug 410986 – Fails to build with -z defs
+
+ 2007-02-27 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410986 – Fails to build with -z defs
+
+ If you link the vtemodule.so to libpython, then programs importing
+ vte will have the symbols twice in memory: one set from python and
+ the other from libpython.
+
+ * configure.in:
+ * python/Makefile.am:
+ Remove PYTHON_LIBS from linking vtemodule.so.
+ Convert unresolved symbol errors into warnings so that
+ building with -Wl,-z,defs continues to work. This is a
+ *hack* as it hides real errors if you are updating
+ vte.{def,override}.
+
+
+ svn path=/trunk/; revision=1767
+
+ ChangeLog | 17 +++++++++++++++++
+ configure.in | 23 +++++++++++++++++++++++
+ python/Makefile.am | 6 +++++-
+ 3 files changed, 45 insertions(+), 1 deletions(-)
+
+commit 854cc5c5038cdabf73e8898a5c0b25364b01a03a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 27 00:55:44 2007 +0000
+
+ Avoid some computations whilst drawing text.
+
+ 2007-02-27 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_open_font_for_char),
+ (_vte_xft_font_for_char), (_vte_xft_compute_char_width),
+ (_vte_xft_char_width), (_vte_xft_start), (_vte_xft_get_char_width),
+ (_vte_xft_draw_text):
+ Avoid some computations whilst drawing text.
+
+
+ svn path=/trunk/; revision=1766
+
+ ChangeLog | 8 +++
+ src/vtexft.c | 148 ++++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 90 insertions(+), 66 deletions(-)
+
+commit 106d4ffedb96b12ebd7fee050796c858773d0669
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Feb 26 21:54:32 2007 +0000
+
+ Released vte-0.15.4.
+
+ 2007-02-26 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.4.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.4.
+
+ * src/Makefile.am: Bumped libtool version to 11:1:2.
+
+
+ svn path=/trunk/; revision=1764
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 28 ++++++++++++++++++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 40 insertions(+), 2 deletions(-)
+
+commit 7da79f11f4a591986bba428bbb00bb427c7a41ad
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 21:34:01 2007 +0000
+
+ Bug 410986 – Fails to build with -z defs
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410986 – Fails to build with -z defs
+
+ The forgotten half - the python module also fails to link.
+
+ * acinclude.m4:
+ * python/Makefile.am:
+ Add PYTHON_LIBS pointing to the customary location and
+ remember to include them when compiling vtemodule.so.
+
+
+ svn path=/trunk/; revision=1763
+
+ ChangeLog | 11 +++++++++++
+ acinclude.m4 | 2 ++
+ python/Makefile.am | 2 +-
+ 3 files changed, 14 insertions(+), 1 deletions(-)
+
+commit 47c6e35de305edaf30cc0544641da9bea87c0779
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Feb 26 20:13:37 2007 +0000
+
+ kill the debugging g_print
+
+ svn path=/trunk/; revision=1762
+
+ src/vte.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit bafc83787b47085e4a569c5d50de63a17ca04e05
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Feb 26 19:48:55 2007 +0000
+
+ fixup a missing colon in the ChangeLog entry
+
+ svn path=/trunk/; revision=1761
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 9d6668fe9b2e11fe74253fda36d292aa9a6694d2
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 19:45:23 2007 +0000
+
+ Bug 412361 – Yet another mouse selection regression... Part 2.
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 412361 – Yet another mouse selection regression...
+ Part 2.
+
+ * src/vte.c: (vte_terminal_queue_adjustment_value_changed),
+ (_vte_terminal_adjust_adjustments_full),
+ (vte_terminal_scroll_pages), (vte_terminal_autoscroll),
+ (vte_terminal_size_allocate), (vte_terminal_scroll):
+ We implicitly used a bit of sanity checking when setting the
+ adjustment value. Ensure the value really is within the
+ adjustment range before updating scroll_delta.
+
+
+ svn path=/trunk/; revision=1760
+
+ ChangeLog | 13 +++++++++++++
+ src/vte.c | 24 ++++++++++++++----------
+ 2 files changed, 27 insertions(+), 10 deletions(-)
+
+commit e793408175ebf9b511eaa24140e4e0117506262a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 19:24:09 2007 +0000
+
+ Bug 412361 – Yet another mouse selection regression... Part 1.
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 412361 – Yet another mouse selection regression...
+ Part 1.
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ Restore drawing of the selection below the text.
+
+
+ svn path=/trunk/; revision=1759
+
+ ChangeLog | 8 +++
+ src/vte.c | 144 ++++++++++++++++++++++++++++++++++++------------------------
+ 2 files changed, 94 insertions(+), 58 deletions(-)
+
+commit b0a2454d9bebb581a7278c9ae3cf5196a66aa89e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 18:05:53 2007 +0000
+
+ Update max number of processable bytes each time we call
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_class_init), (time_process_incoming),
+ (process_timeout), (update_repeat_timeout), (update_timeout):
+ Update max number of processable bytes each time we call
+ vte_terminal_process_incoming().
+
+
+ svn path=/trunk/; revision=1758
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 44 ++++++++++++++++++++++++++++++++++----------
+ 2 files changed, 41 insertions(+), 10 deletions(-)
+
+commit 8986971552ec8217dc79c441f5158886603fc78f
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 17:38:24 2007 +0000
+
+ Refactor the common code.
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_emit_adjustment_changed),
+ (_vte_terminal_adjust_adjustments_full),
+ Refactor the common code.
+
+
+ svn path=/trunk/; revision=1757
+
+ ChangeLog | 6 +++++
+ src/vte.c | 63 +++++++-----------------------------------------------------
+ 2 files changed, 14 insertions(+), 55 deletions(-)
+
+commit 80adf34e589f0b98c685207b1d02bc57cd09fdde
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 17:27:40 2007 +0000
+
+ Push a couple of NULL checks to the callers so to be able to move them
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Push a couple of NULL checks to the callers so to be able to move them
+ outside of the inner-most loops.
+
+ * src/vte.c: (_vte_row_data_find_charcell), (_vte_invalidate_cell),
+ (_vte_terminal_adjust_adjustments),
+ (vte_terminal_get_text_range_maybe_wrapped), (find_start_column),
+ (find_end_column), (vte_terminal_draw_rows):
+
+
+ svn path=/trunk/; revision=1756
+
+ ChangeLog | 10 +++
+ src/vte.c | 258 ++++++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 154 insertions(+), 114 deletions(-)
+
+commit 9913d51385075992e753b358276611051b56fd1c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 15:47:35 2007 +0000
+
+ Some applications, such as cat, dump as much data to the terminal as
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Some applications, such as cat, dump as much data to the terminal as
+ possible. In these scenarios it is likely that we will read data from
+ the child much faster than we can process it and the refresh will
+ stutter.
+
+ The ideal solution would be to speed up the data processing so that
+ this overrun was impossible. However, the approach taken here is to
+ estimate how much data we can actually process in our time slice and
+ to stop reading once we have sufficient data.
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_invalidate_all),
+ (vte_terminal_emit_contents_changed),
+ (vte_terminal_match_contents_clear),
+ (vte_terminal_match_contents_refresh),
+ (vte_terminal_emit_adjustment_changed),
+ (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
+ (vte_terminal_catch_child_exited), (vte_terminal_eof),
+ (vte_terminal_process_incoming), (vte_terminal_io_read),
+ (vte_terminal_handle_scroll), (vte_terminal_init),
+ (vte_terminal_size_allocate), (need_processing), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+
+
+ svn path=/trunk/; revision=1755
+
+ ChangeLog | 26 ++++++++
+ src/vte-private.h | 4 +-
+ src/vte.c | 184 +++++++++++++++++++++++++++--------------------------
+ src/vteseq.c | 1 -
+ 4 files changed, 124 insertions(+), 91 deletions(-)
+
+commit 4a97568d88997a1b1046de05277d58f7a239c267
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 10:25:09 2007 +0000
+
+ Bug 411000 – Orca repeats old text in gnome-terminal
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 411000 – Orca repeats old text in gnome-terminal
+
+ The deferred handling of the window scrolling had the unfortunate
+ side-effect of postponing the accessibility 'text-scrolled' signal
+ until after the 'text-inserted' signal. This caused vteaccess to
+ determine that the whole window had been modified and cause orca to
+ reread the entire screen.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_emit_contents_changed),
+ (_vte_terminal_queue_contents_changed),
+ (vte_terminal_emit_cursor_moved),
+ (vte_terminal_queue_cursor_moved), (vte_terminal_scroll_pages),
+ (vte_terminal_eof), (vte_terminal_emit_pending_text_signals),
+ (vte_terminal_process_incoming), (vte_terminal_handle_scroll),
+ (vte_terminal_size_allocate), (vte_terminal_unrealize),
+ (vte_terminal_emit_pending_signals):
+ * src/vteaccess.c: (emit_text_caret_moved),
+ (emit_text_changed_insert), (emit_text_changed_delete):
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+ Restore the order of the ally signals. However, Bug 372777
+ remains unresolved.
+
+
+ svn path=/trunk/; revision=1754
+
+ ChangeLog | 25 +++++++++++++++++++
+ src/vte-private.h | 5 +++-
+ src/vte.c | 67 ++++++++++++++++++++++++++++++++++++++---------------
+ src/vteaccess.c | 6 ++--
+ src/vteseq.c | 2 +-
+ 5 files changed, 81 insertions(+), 24 deletions(-)
+
+commit 550b55875ea57b63d1164a1120decb55f55333a6
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 09:29:27 2007 +0000
+
+ Eeek, correctly compute the buffer length when we no longer aim to fill
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_io_read):
+ Eeek, correctly compute the buffer length when we no longer
+ aim to fill it.
+
+
+ svn path=/trunk/; revision=1753
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 95a70342cef9cdf261c2c1a6688615a7c5af561f
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 09:27:41 2007 +0000
+
+ Use a separate debug flag for the ally interface.
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Use a separate debug flag for the ally interface.
+
+ * src/debug.c: (_vte_debug_parse_string):
+ * src/debug.h:
+ * src/vteaccess.c:
+ (vte_terminal_accessible_update_private_data_if_needed),
+ (vte_terminal_accessible_invalidate_cursor),
+ (vte_terminal_accessible_finalize),
+ (vte_terminal_accessible_get_text),
+ (vte_terminal_accessible_get_text_somewhere),
+ (vte_terminal_accessible_text_init),
+ (vte_terminal_accessible_component_init),
+ (vte_terminal_accessible_action_init),
+ (vte_terminal_accessible_factory_new):
+
+
+ svn path=/trunk/; revision=1752
+
+ ChangeLog | 17 +++++++++++++++++
+ src/debug.c | 3 +++
+ src/debug.h | 3 ++-
+ src/vteaccess.c | 34 +++++++++++++++++-----------------
+ 4 files changed, 39 insertions(+), 18 deletions(-)
+
+commit 5e6ab181a9942335f2633ef375cd91b25120de1c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 26 08:59:01 2007 +0000
+
+ And finally clamp the maximum number of bytes transferred in a single
+
+ 2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_io_read):
+ And finally clamp the maximum number of bytes transferred in
+ a single chunk.
+
+
+ svn path=/trunk/; revision=1751
+
+ ChangeLog | 7 +++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 1 +
+ 3 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 0ad8279def2a2e6fb3f0b9bf35c39ce82652c64b
+Author: Alexander Shopov <ash contact bg>
+Date: Sun Feb 25 21:50:08 2007 +0000
+
+ Updated Bulgarian translation by Alexander Shopov <ash contact bg>
+
+ 2007-02-25 Alexander Shopov <ash contact bg>
+
+ * bg.po: Updated Bulgarian translation by
+ Alexander Shopov <ash contact bg>
+
+ svn path=/trunk/; revision=1750
+
+ po/ChangeLog | 5 +++++
+ po/bg.po | 30 ++++++++++++++++++------------
+ 2 files changed, 23 insertions(+), 12 deletions(-)
+
+commit 6f3a9d33bf79932c6de677dd55cc31d797a6579a
+Author: Stéphane Raimbault <stephane raimbault gmail com>
+Date: Sun Feb 25 20:47:55 2007 +0000
+
+ Updated French translation by Cyprien Le Pannérer.
+
+ 2007-02-25 Stéphane Raimbault <stephane raimbault gmail com>
+
+ * fr.po: Updated French translation by Cyprien Le Pannérer.
+
+ svn path=/trunk/; revision=1749
+
+ po/ChangeLog | 4 ++++
+ po/fr.po | 43 +++++++++++++++++++++++++------------------
+ 2 files changed, 29 insertions(+), 18 deletions(-)
+
+commit 5cb72496620962980489e80e556aa90a905b589d
+Author: Duarte Loreto <happyguy_pt hotmail com>
+Date: Sun Feb 25 17:15:03 2007 +0000
+
+ Updated Portuguese translation.
+
+ 2007-02-25 Duarte Loreto <happyguy_pt hotmail com>
+
+ * pt.po: Updated Portuguese translation.
+
+ svn path=/trunk/; revision=1748
+
+ po/ChangeLog | 4 ++++
+ po/pt.po | 41 +++++++++++++++++++++++------------------
+ 2 files changed, 27 insertions(+), 18 deletions(-)
+
+commit 17b63654ece9e244f8877e98d89a60861f35d642
+Author: Gabor Kelemen <kelemeng gnome hu>
+Date: Sun Feb 25 09:07:22 2007 +0000
+
+ Translation updated.
+
+ 2007-02-25 Gabor Kelemen <kelemeng gnome hu>
+
+ * hu.po: Translation updated.
+
+ svn path=/trunk/; revision=1747
+
+ po/ChangeLog | 4 +++
+ po/hu.po | 71 +++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 40 insertions(+), 35 deletions(-)
+
+commit 1583ce2933361d116c82901726ce962381a54c30
+Author: Changwoo Ryu <cwryu debian org>
+Date: Sat Feb 24 21:52:29 2007 +0000
+
+ Updated Korean translation.
+
+ 2007-02-25 Changwoo Ryu <cwryu debian org>
+
+ * ko.po: Updated Korean translation.
+
+ svn path=/trunk/; revision=1746
+
+ po/ChangeLog | 4 ++
+ po/ko.po | 119 ++++++++++++++++++++++++---------------------------------
+ 2 files changed, 54 insertions(+), 69 deletions(-)
+
+commit 6096fbe69262516c4b1cfd8abdb40f6be7bf3fc9
+Author: Nguyen Thai Ngoc Duy <pclouds src gnome org>
+Date: Sat Feb 24 11:38:58 2007 +0000
+
+ Updated vi.po
+
+ svn path=/trunk/; revision=1745
+
+ po/ChangeLog | 4 +++
+ po/vi.po | 68 +++++++++++++++++++++++++++++++++------------------------
+ 2 files changed, 43 insertions(+), 29 deletions(-)
+
+commit 387064eef67af0e4c84666b7eb892db1626a3b5a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Feb 24 11:29:59 2007 +0000
+
+ Hint that the compiler should inline vte_terminal_determine_colors().
+
+ 2007-02-24 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c:
+ Hint that the compiler should inline
+ vte_terminal_determine_colors().
+
+
+ svn path=/trunk/; revision=1744
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 00f2d286a7795004a8591742eab788f1ad424cec
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Feb 24 11:09:49 2007 +0000
+
+ cf Bug 410534 – Slow content scrolling, takes 100% of CPU. cf Bug 410463
+
+ 2007-02-24 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
+ cf Bug 410463 – Poor interactive performance with multiple terminals
+
+ * src/vte.c: (vte_terminal_io_read):
+ Do not loop whilst reading in a backlog of child data - should
+ help prevent monopolisation of vte by a single child and make
+ vte more responsive to user input on slower computers.
+
+
+ svn path=/trunk/; revision=1743
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 43 +++++++++++++++----------------------------
+ 2 files changed, 25 insertions(+), 28 deletions(-)
+
+commit 414043d45fc2b51430557c4ac575651468ff9500
+Author: Leonardo Ferreira Fontenelle <leonardof svn gnome org>
+Date: Sat Feb 24 03:28:10 2007 +0000
+
+ Updated Brazilian Portuguese translation by Lucas Mazzardo Veloso
+
+ 2007-02-24 Leonardo Ferreira Fontenelle <leonardof svn gnome org>
+
+ * pt_BR.po: Updated Brazilian Portuguese translation by Lucas Mazzardo
+ Veloso <lmveloso gmail com>.
+
+ svn path=/trunk/; revision=1742
+
+ po/ChangeLog | 5 +++++
+ po/pt_BR.po | 41 ++++++++++++++++++++++++-----------------
+ 2 files changed, 29 insertions(+), 17 deletions(-)
+
+commit 704c26231fd3d03f396a3b6c2997605d251384ae
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Sat Feb 24 00:43:43 2007 +0000
+
+ missed the scroll_delta on the external conversion
+
+ svn path=/trunk/; revision=1741
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit fabc7a725dbca8be89edcc490c65f8060ab31d69
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Sat Feb 24 00:40:13 2007 +0000
+
+ whoops, that was meant to test show_match before rendering the hilite
+
+ svn path=/trunk/; revision=1740
+
+ src/vte.c | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 3d2d95f14d68ca6f9fd00512bd240165d7a5ffd3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Feb 24 00:31:29 2007 +0000
+
+ Bug 159078 – slow highlight
+
+ 2007-02-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 159078 – slow highlight
+
+ Do not update the match hilite during a selection-drag.
+ Record unsuccesful regex matches, so we can quickly determine whether
+ the cursor is still inside the blank region.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_match_check_internal),
+ (rowcol_inside_match), (vte_terminal_match_check),
+ (_vte_terminal_set_pointer_visible),
+ (vte_terminal_match_hilite_clear),
+ (vte_terminal_match_hilite_show), (vte_terminal_match_hilite_hide),
+ (vte_terminal_match_hilite_update), (vte_terminal_match_hilite),
+ (vte_terminal_motion_notify), (vte_terminal_button_press),
+ (vte_terminal_focus_in), (vte_terminal_focus_out),
+ (vte_terminal_enter), (vte_terminal_leave), (vte_terminal_init),
+ (vte_terminal_unrealize), (vte_terminal_draw_rows),
+ (vte_terminal_paint):
+
+
+ svn path=/trunk/; revision=1739
+
+ ChangeLog | 21 ++++++
+ src/vte-private.h | 4 +-
+ src/vte.c | 208 +++++++++++++++++++++++++++++++++++++++++------------
+ src/vtexft.c | 7 +-
+ 4 files changed, 189 insertions(+), 51 deletions(-)
+
+commit 5e833e3796c867152ab1345e16d06e4c35d5d3fa
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 23 21:14:55 2007 +0000
+
+ A couple of compiler warnings and avoid unnecessary arithmetic.
+
+ 2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ A couple of compiler warnings and avoid unnecessary arithmetic.
+
+ * src/vte.c: (_vte_terminal_set_default_attributes),
+ (find_start_column), (find_end_column),
+ (vte_terminal_start_selection), (vte_terminal_extend_selection),
+ (vte_terminal_draw_rows), (vte_terminal_paint):
+ * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_for_char),
+ (_vte_xft_char_width), (_vte_xft_unlock_fonts), (_vte_xft_start),
+ (_vte_xft_clip), (_vte_xft_set_text_font), (_vte_xft_draw_text):
+
+
+ svn path=/trunk/; revision=1738
+
+ ChangeLog | 12 ++++++++++++
+ src/vte.c | 52 +++++++++++++++++++++++++---------------------------
+ src/vtexft.c | 46 +++++++++++++++++++---------------------------
+ 3 files changed, 56 insertions(+), 54 deletions(-)
+
+commit 2914a06ebea030f7cc87e01ab4cb3c4f397ed976
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Fri Feb 23 21:01:56 2007 +0000
+
+ Updated Norwegian bokmål translation.
+
+ 2007-02-23 Kjartan Maraas <kmaraas gnome org>
+
+ * nb.po: Updated Norwegian bokmål translation.
+
+ svn path=/trunk/; revision=1737
+
+ po/ChangeLog | 4 +++
+ po/nb.po | 64 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 39 insertions(+), 29 deletions(-)
+
+commit f163b4389d4e9a01b1aa41c356c40d9b624dbce9
+Author: Andre Klapper <a9016009 gmx de>
+Date: Fri Feb 23 20:06:54 2007 +0000
+
+ Updated German translation.
+
+ 2007-02-23 Andre Klapper <a9016009 gmx de>
+
+ * de.po: Updated German translation.
+
+
+ svn path=/trunk/; revision=1736
+
+ po/ChangeLog | 4 ++++
+ po/de.po | 36 +++++++++++++++++++++---------------
+ 2 files changed, 25 insertions(+), 15 deletions(-)
+
+commit 26deb3f942b4916864f8ba81397c5c0456d93e6a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 23 19:00:29 2007 +0000
+
+ Bug 411276 – SVN trunk compilation error Part 2.
+
+ 2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 411276 – SVN trunk compilation error
+ Part 2.
+
+ * configure.in:
+ Check that the header file defines FcStrFree before checking
+ for the availability of the function. Complete hack, but
+ appears to work.
+
+
+ svn path=/trunk/; revision=1735
+
+ ChangeLog | 10 ++++++++++
+ configure.in | 10 +++++++++-
+ 2 files changed, 19 insertions(+), 1 deletions(-)
+
+commit 39eb40adc143e140be920ba39777780bb06daf1f
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 23 18:15:29 2007 +0000
+
+ Bug 411276 – SVN trunk compilation error
+
+ 2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 411276 – SVN trunk compilation error
+
+ * configure.in:
+ Ubuntu Edgy appears to have a broken fontconfig-dev package
+ where the function is exported from the library but is missing
+ the corresponding prototypes.
+ So we reorder the determination of the compilation flags
+ before checking for available functions in the hope that the
+ tests will then match the results at compile time.
+
+
+ svn path=/trunk/; revision=1734
+
+ ChangeLog | 12 ++++
+ configure.in | 192 +++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 110 insertions(+), 94 deletions(-)
+
+commit 728c62c88fd6475ba02f07a36672a26431d1eda0
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 23 16:10:30 2007 +0000
+
+ Prevent a deadlock on recursively grabbing the gdk_mutex.
+
+ 2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_io_read):
+ Prevent a deadlock on recursively grabbing the gdk_mutex.
+
+
+ svn path=/trunk/; revision=1733
+
+ ChangeLog | 5 +++++
+ src/vte.c | 11 ++++++++---
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+commit 0e510fe7354ac3987f0c0b10521768063eb40560
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Feb 23 16:02:29 2007 +0000
+
+ only set in the input active flag if we actually read in data
+
+ svn path=/trunk/; revision=1732
+
+ src/vte.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 7d683f4c600ab76f90899dde4e5e49307931e182
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Feb 23 15:51:25 2007 +0000
+
+ missing cancellations from previous patch
+
+ svn path=/trunk/; revision=1731
+
+ src/vte.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 3bad172349963d030ffcacca90585fb9b3b93bcd
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 23 15:49:23 2007 +0000
+
+ Heuristic to avoid a read when it's likely to just return EAGAIN.
+
+ 2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Heuristic to avoid a read when it's likely to just return EAGAIN.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_io_read), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+
+
+ svn path=/trunk/; revision=1730
+
+ ChangeLog | 8 ++++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 23 +++++++++++++++++------
+ 3 files changed, 26 insertions(+), 6 deletions(-)
+
+commit 713bb7322e8e012deccabe331b21a5b9a60864ba
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 23 13:21:02 2007 +0000
+
+ Add a new debug flag to monitor draw operations. Don't issue individual
+
+ 2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Add a new debug flag to monitor draw operations.
+ Don't issue individual glyphs for is_local_graphic() in the middle of
+ a run.
+
+ * src/debug.c: (_vte_debug_parse_string):
+ * src/debug.h:
+ * src/vte.c: (vte_terminal_unichar_is_local_graphic),
+ (vte_terminal_draw_rows), (vte_terminal_paint):
+ * src/vtedraw.c: (_vte_draw_init_user), (_vte_draw_init_default),
+ (_vte_draw_new), (_vte_draw_free), (_vte_draw_get_visual),
+ (_vte_draw_get_colormap), (_vte_draw_start), (_vte_draw_end),
+ (_vte_draw_set_background_color), (_vte_draw_set_background_image),
+ (_vte_draw_requires_repaint), (_vte_draw_clip), (_vte_draw_clear),
+ (_vte_draw_set_text_font), (_vte_draw_get_text_width),
+ (_vte_draw_get_text_height), (_vte_draw_get_text_ascent),
+ (_vte_draw_get_char_width), (_vte_draw_get_using_fontconfig),
+ (_vte_draw_text), (_vte_draw_char), (_vte_draw_has_char),
+ (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle),
+ (_vte_draw_set_scroll):
+ * src/vtedraw.h:
+ * src/vteft2.c: (_vte_ft2_draw_has_char):
+ * src/vtegl.c: (_vte_gl_draw_has_char):
+ * src/vtepango.c: (_vte_pango_draw_has_char):
+ * src/vtepangox.c: (_vte_pango_x_draw_has_char):
+ * src/vteskel.c: (_vte_skel_draw_has_char):
+ * src/vtexft.c: (_vte_xft_draw_has_char):
+
+
+ svn path=/trunk/; revision=1729
+
+ ChangeLog | 29 +++++++
+ src/debug.c | 3 +
+ src/debug.h | 3 +-
+ src/vte.c | 46 ++++++----
+ src/vtedraw.c | 252 ++++++++++++++++++++++++++++++++-----------------------
+ src/vtedraw.h | 2 +
+ src/vteft2.c | 16 ++++
+ src/vtegl.c | 16 ++++
+ src/vtepango.c | 7 ++
+ src/vtepangox.c | 8 ++
+ src/vteskel.c | 7 ++
+ src/vtexft.c | 16 ++++
+ 12 files changed, 281 insertions(+), 124 deletions(-)
+
+commit 2b0e46223ad2952192f3aa7d2e18b0f636f843f4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 23 12:24:55 2007 +0000
+
+ Don't break a glyph run for a graphic, issue the draw and continue.
+
+ 2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ Don't break a glyph run for a graphic, issue the draw
+ and continue.
+
+
+ svn path=/trunk/; revision=1728
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 20 ++++++++++++++++----
+ 2 files changed, 22 insertions(+), 4 deletions(-)
+
+commit 7e2654510c7fe848162021a698ddba2b90cf7d59
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 23 11:23:55 2007 +0000
+
+ Cache the font metrics on the vte_xft_font, avoids having to remeasure
+
+ 2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Cache the font metrics on the vte_xft_font, avoids having to remeasure
+ when opening a new terminal.
+
+ * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_set_text_font):
+
+
+ svn path=/trunk/; revision=1727
+
+ ChangeLog | 7 ++
+ src/vtexft.c | 173 ++++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 102 insertions(+), 78 deletions(-)
+
+commit 4074098e6fc909d6ae0dfe027303ac9887a10809
+Author: Daniel Nylander <dnylande src gnome org>
+Date: Fri Feb 23 11:07:48 2007 +0000
+
+ sv.po: Swedish translation updated
+
+ svn path=/trunk/; revision=1726
+
+ po/ChangeLog | 4 ++++
+ po/sv.po | 48 ++++++++++++++++++++++++++----------------------
+ 2 files changed, 30 insertions(+), 22 deletions(-)
+
+commit f8a9f3061c250df61eca14dae46f82417dc42974
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Feb 23 10:38:25 2007 +0000
+
+ Gtk+ style whitespace.
+
+
+ svn path=/trunk/; revision=1725
+
+ src/vtexft.c | 277 +++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 138 insertions(+), 139 deletions(-)
+
+commit 94d80e84a70f7a995d87cc0655a2a0bdb68a192e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 23 10:31:41 2007 +0000
+
+ Share XftFonts between terminal backends and preserve faces from the
+
+ 2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Share XftFonts between terminal backends and preserve faces from the
+ previous draw - helps prevents font cache thrashing inside libXft.
+
+ * src/vtexft.c: (_vte_xft_font_hash), (_vte_xft_font_equal),
+ (_vte_xft_font_open), (_vte_xft_font_close),
+ (_vte_xft_font_for_char), (_vte_xft_unlock_fonts),
+ (_vte_xft_destroy), (_vte_xft_start), (_vte_xft_end),
+ (ptr_array_zeroed_new), (_vte_xft_set_text_font),
+ (_vte_xft_get_char_width), (_vte_xft_draw_text),
+ (_vte_xft_draw_char):
+
+
+ svn path=/trunk/; revision=1724
+
+ ChangeLog | 13 ++++
+ src/vte.c | 4 +-
+ src/vtexft.c | 218 +++++++++++++++++++++++++++++++++++++++++----------------
+ 3 files changed, 172 insertions(+), 63 deletions(-)
+
+commit 64f20a84331a2041cabc124e5872a75fd91cd31b
+Author: Theppitak Karoonboonyanan <tkaroonb src gnome org>
+Date: Fri Feb 23 06:15:19 2007 +0000
+
+ Updated Thai translation.
+
+ * th.po: Updated Thai translation.
+
+
+ svn path=/trunk/; revision=1723
+
+ po/ChangeLog | 4 ++++
+ po/th.po | 44 ++++++++++++++++++++++++--------------------
+ 2 files changed, 28 insertions(+), 20 deletions(-)
+
+commit 501e4ac85ce7448a56e7f2fa0c6215d0e5dfef26
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 22 21:52:28 2007 +0000
+
+ Bug 410986 – Fails to build with -z defs Patch by Loïc Minier.
+
+ 2007-02-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410986 – Fails to build with -z defs
+ Patch by Loïc Minier.
+
+ * src/Makefile.am:
+ Add FreeType to the libs.
+
+
+ svn path=/trunk/; revision=1722
+
+ ChangeLog | 8 ++++++++
+ src/Makefile.am | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+commit 8857022e7d29a2bb02f589ed0077705927f8c7b3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 22 17:49:44 2007 +0000
+
+ Return in the face of error as we appear to hit this in the wild.
+
+ 2007-02-22 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_send):
+ Return in the face of error as we appear to hit this in the
+ wild.
+
+
+ svn path=/trunk/; revision=1721
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 10 ++++++----
+ 2 files changed, 12 insertions(+), 4 deletions(-)
+
+commit 307a95c978f9ad6c8b29deecd27c54ce36609950
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Thu Feb 22 17:29:19 2007 +0000
+
+ ChangeLog typos
+
+ svn path=/trunk/; revision=1720
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 7106d026c5db11543764082606c5447ccde25b9e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 22 17:28:41 2007 +0000
+
+ Bug 410819 – slider not correctly positioned after calling less
+
+ 2007-02-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410819 – slider not correctly positioned after calling less
+
+ * src/vte.c: (_vte_terminal_adjust_adjustments),
+ (_vte_terminal_adjust_adjustments_full),
+ (vte_terminal_maybe_scroll_to_top), (vte_terminal_size_allocate),
+ (vte_terminal_set_scrollback_lines):
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+ Fixup a lost of issues with changing the number of scroll back
+ lines, such as missing value_changed signals for the
+ scrollbar and a couple of missing CLAMPs.
+
+
+ svn path=/trunk/; revision=1719
+
+ ChangeLog | 13 ++++++++++
+ src/vte.c | 74 +++++++++++++++++++++++++++++++++++----------------------
+ src/vteseq.c | 3 ++
+ 3 files changed, 61 insertions(+), 29 deletions(-)
+
+commit fd3ffb8989d073db4079921fa6cac91d505d30e8
+Author: Alexander Shopov <ash contact bg>
+Date: Thu Feb 22 06:18:08 2007 +0000
+
+ Updated Bulgarian translation by Alexander Shopov <ash contact bg>
+
+ 2007-02-22 Alexander Shopov <ash contact bg>
+
+ * bg.po: Updated Bulgarian translation by
+ Alexander Shopov <ash contact bg>
+
+ svn path=/trunk/; revision=1718
+
+ po/ChangeLog | 5 +++
+ po/bg.po | 81 ++++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 47 insertions(+), 39 deletions(-)
+
+commit 66fc0365dadffa77c032ab6185eb672af30eba31
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 22 01:08:32 2007 +0000
+
+ After adjusting the current profile, the last line gets chomped.
+
+ 2007-02-22 Chris Wilson <chris chris-wilson co uk>
+
+ After adjusting the current profile, the last line gets chomped.
+
+ * src/vte.c: (vte_terminal_set_scrollback_lines):
+
+
+ svn path=/trunk/; revision=1717
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 5 +++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 7b160c1c82642f889cdfc72b4ba20cbc6f9af475
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 21 23:30:39 2007 +0000
+
+ cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
+
+ 2007-02-21 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
+
+ * src/vte.c: (vte_terminal_scroll),
+ (vte_terminal_set_scrollback_lines):
+ Operate on scroll delta directly as adjustment->value updates
+ are not instantaneous and we may have several scroll events
+ before the next update.
+
+
+ svn path=/trunk/; revision=1716
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 22 ++++++++++------------
+ 2 files changed, 20 insertions(+), 12 deletions(-)
+
+commit 807b83906e19ecb22e17107e1bbc8a8e5567ce9c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 21 23:06:30 2007 +0000
+
+ Bug 410463 – Poor interactive performance with multiple terminals
+
+ 2007-02-21 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410463 – Poor interactive performance with multiple terminals
+
+ * src/vte.c: (vte_terminal_io_read), (process_timeout),
+ (update_repeat_timeout):
+ When multiple terminals are active, poll the IO sources
+ from within the process/display timeout (akin to
+ interrupt mitigation).
+ Return to normal interrupts when we only have a single active
+ terminal - so we don't sacrifice high performance.
+
+
+ svn path=/trunk/; revision=1715
+
+ ChangeLog | 12 ++++++++++++
+ src/vte.c | 20 +++++++++++++++++++-
+ 2 files changed, 31 insertions(+), 1 deletions(-)
+
+commit f56d6009a642389ccc6c544dada62d5e6f878770
+Author: Peter Bach <pbach src gnome org>
+Date: Wed Feb 21 21:10:15 2007 +0000
+
+ Updated Danish translation
+
+ svn path=/trunk/; revision=1714
+
+ po/ChangeLog | 4 +++
+ po/da.po | 78 ++++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 47 insertions(+), 35 deletions(-)
+
+commit 80dc9064f403a4db1afd8e93480d5d421726cd45
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 21 18:42:30 2007 +0000
+
+ A small bit of callgrinding, avoid the modulus inside
+
+ 2007-02-21 Chris Wilson <chris chris-wilson co uk>
+
+ A small bit of callgrinding, avoid the modulus inside
+ vte_terminal_ensure_cursor() by caching the last row_data.
+
+ * src/iso2022.c: (process_cdata):
+ * src/ring.c: (_vte_ring_new), (_vte_ring_insert),
+ (_vte_ring_insert_preserve), (_vte_ring_remove):
+ * src/ring.h:
+ * src/table.c: (_vte_table_match):
+ * src/vte.c: (_vte_terminal_ensure_cursor),
+ (_vte_terminal_insert_char), (vte_terminal_process_incoming):
+
+
+ svn path=/trunk/; revision=1713
+
+ ChangeLog | 13 +++++++
+ src/iso2022.c | 11 +++---
+ src/ring.c | 29 +++++++++++++---
+ src/ring.h | 10 ++++-
+ src/table.c | 12 +++---
+ src/vte.c | 103 ++++++++++++++++++++++++++++++---------------------------
+ 6 files changed, 110 insertions(+), 68 deletions(-)
+
+commit beba8f7b96e83ee43d42cb56b04fa7e59091d029
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Wed Feb 21 17:22:30 2007 +0000
+
+ Trivial little script that counts to a large number.
+
+ svn path=/trunk/; revision=1712
+
+ perf/inc.sh | 10 ++++++++++
+ 1 files changed, 10 insertions(+), 0 deletions(-)
+
+commit d4b27d3d7d14836972d03f778e16c0e001c51c2d
+Author: Hendrik Richter <hendrikr gnome org>
+Date: Wed Feb 21 11:33:13 2007 +0000
+
+ Updated German translation.
+
+ 2007-02-21 Hendrik Richter <hendrikr gnome org>
+
+ * de.po: Updated German translation.
+
+ svn path=/trunk/; revision=1711
+
+ po/ChangeLog | 4 +++
+ po/de.po | 65 ++++++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 40 insertions(+), 29 deletions(-)
+
+commit d7d7d2910dad2c095c24b3984a7ebfe3d29c34df
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 21 10:40:37 2007 +0000
+
+ Callgrind strikes again... Inserting a char is a rare operation
+
+ 2007-02-21 Chris Wilson <chris chris-wilson co uk>
+
+ Callgrind strikes again...
+ Inserting a char is a rare operation (especially in the scrolling
+ benchmark!) so only read the old cell during an insert. This wins
+ about 5% during a hexdump.
+
+ * src/iso2022.c: (_vte_iso2022_find_nextctl),
+ (_vte_iso2022_fragment_input), (process_cdata):
+ * src/vte.c: (_vte_terminal_insert_char):
+ * src/vteseq.c: (vte_sequence_handler_sf):
+
+
+ svn path=/trunk/; revision=1710
+
+ ChangeLog | 12 ++++++++++
+ src/iso2022.c | 41 +++++++++++++++++------------------
+ src/vte.c | 66 +++++++++++++++++++--------------------------------------
+ src/vteseq.c | 2 -
+ 4 files changed, 54 insertions(+), 67 deletions(-)
+
+commit 6406d0b4606be0f84ee78f2b17e2820ca2b29c0e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 21 01:25:30 2007 +0000
+
+ RedHat Bug 113195: First line displayed incorrectly if prompt changes
+
+ 2007-02-21 Chris Wilson <chris chris-wilson co uk>
+
+ RedHat Bug 113195: First line displayed incorrectly if prompt changes background color
+
+ e.g. PS1='\e[46m[\u@\h:\w]\e[m \e[45m'
+ The issue is when we insert a char on a new row and the background is
+ not the default, we fill the entire row with the *current* colour.
+ This behaviour is incorrect, and the fix is to fill to the end of the
+ line on a carriage return.
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_terminal_ensure_cursor),
+ (_vte_terminal_insert_char), (vte_terminal_process_incoming),
+ (vte_terminal_send):
+ * src/vteseq.c: (vte_sequence_handler_ce),
+ (vte_sequence_handler_cr), (vte_sequence_handler_cs),
+ (vte_sequence_handler_cS),
+ (vte_sequence_handler_cursor_lower_left),
+ (vte_sequence_handler_dc), (vte_sequence_handler_ic),
+ (vte_sequence_handler_sf):
+
+
+ svn path=/trunk/; revision=1709
+
+ ChangeLog | 21 +++++++++++
+ src/vte-private.h | 1 -
+ src/vte.c | 100 ++++++++++++++++------------------------------------
+ src/vteseq.c | 44 ++++++++++++-----------
+ 4 files changed, 75 insertions(+), 91 deletions(-)
+
+commit 1781474c681a30b60429754dc5595fe1c1f8da22
+Author: Artur Flinta <aflinta cvs gnome org>
+Date: Tue Feb 20 23:24:51 2007 +0000
+
+ Updated Polish translation by GNOME PL Team.
+
+ 2007-02-21 Artur Flinta <aflinta cvs gnome org>
+
+ * pl.po: Updated Polish translation by GNOME PL Team.
+
+
+ svn path=/trunk/; revision=1708
+
+ po/ChangeLog | 4 ++++
+ po/pl.po | 54 ++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 32 insertions(+), 26 deletions(-)
+
+commit 46333c9867ccabd661c8c01b0e806e7adbbe7bd8
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 20 23:03:35 2007 +0000
+
+ RedHat Bug 123845: gnome-terminal not parsing cursor position escape
+
+ 2007-02-20 Chris Wilson <chris chris-wilson co uk>
+
+ RedHat Bug 123845: gnome-terminal not parsing cursor position escape sequence properly
+
+ * src/caps.c:
+ * src/vteseq.c: (vte_sequence_handler_cm):
+ Add 'ESC [ Pn H' to cursor-position and provide default
+ values.
+
+
+ svn path=/trunk/; revision=1707
+
+ ChangeLog | 9 +++++++++
+ src/caps.c | 1 +
+ src/vteseq.c | 21 ++++++++++++---------
+ 3 files changed, 22 insertions(+), 9 deletions(-)
+
+commit 83f80298b69e6a66b82c361025d7785fc4f9a7a9
+Author: Leonardo Ferreira Fontenelle <leonardof svn gnome org>
+Date: Tue Feb 20 00:55:57 2007 +0000
+
+ Updated Brazilian Portuguese translation.
+
+ 2007-02-19 Leonardo Ferreira Fontenelle <leonardof svn gnome org>
+
+ * pt_BR.po: Updated Brazilian Portuguese translation.
+
+ svn path=/trunk/; revision=1706
+
+ po/ChangeLog | 4 +++
+ po/pt_BR.po | 80 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 47 insertions(+), 37 deletions(-)
+
+commit 1a1634d2c6792059cf2de9917c77b5fa9efddec0
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 20 00:01:28 2007 +0000
+
+ Bug 409055 – Terminal stays blank
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 409055 – Terminal stays blank
+
+ Due to GTK+ coallescing of XExposeEvents it was possible for our
+ GdkExposeEvent to arrive before the GdkVisibilityEvent associated with
+ the mapping of our toplevel and so we discarded the event as we
+ believed we were still unviewable.
+
+ * src/vte.c: (_vte_invalidate_cells), (vte_terminal_expose),
+ (reset_update_regions):
+ Assume that all GdkExposeEvents have been checked for
+ suitability before delivery. We know this true for locally
+ generated expose events which are extensively checked during
+ invalidation, and we presume that X will not generate expose
+ events on unmapped or otherwise unviewable windows.
+
+
+ svn path=/trunk/; revision=1705
+
+ ChangeLog | 17 +++++++++++++++++
+ src/vte.c | 41 ++++++++++++++++++++---------------------
+ 2 files changed, 37 insertions(+), 21 deletions(-)
+
+commit a1f56b97b89dc1c1cbd177ed6b521d80701f6045
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 21:26:59 2007 +0000
+
+ Dead code elimination.
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_terminal_adjust_adjustments),
+ (_vte_terminal_adjust_adjustments_full):
+ Dead code elimination.
+
+
+ svn path=/trunk/; revision=1704
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 18 ------------------
+ 2 files changed, 6 insertions(+), 18 deletions(-)
+
+commit 503597c87626d7dae2cc647b3e6dc5619bf150dd
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 20:55:17 2007 +0000
+
+ A simple script to dump a fixed amount of random data to the terminal.
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * perf/random.sh:
+ A simple script to dump a fixed amount of random data to the
+ terminal.
+
+
+ svn path=/trunk/; revision=1703
+
+ ChangeLog | 6 ++++++
+ perf/random.sh | 3 +++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 4790d005efd075f8208d870a2cfe83d5bca7276e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 20:22:29 2007 +0000
+
+ A few more trivial incremental improvements.
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ A few more trivial incremental improvements.
+
+ * src/Makefile.am:
+ * src/iso2022.c: (_vte_iso2022_map_get):
+ Switch to a VteTree.
+ * src/vte.c: (_vte_terminal_update_insert_delta),
+ (_vte_terminal_insert_char):
+ No need to ensure the cursor when scrolling, only before
+ insertions.
+ * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_close),
+ (_vte_xft_font_for_char), (_vte_xft_end):
+ Lock the face over the entire expose.
+
+
+ svn path=/trunk/; revision=1702
+
+ ChangeLog | 15 ++++++++++++
+ src/Makefile.am | 6 ++++-
+ src/iso2022.c | 67 ++++++++++++++++++++++++++++--------------------------
+ src/vte.c | 20 +++++-----------
+ src/vtexft.c | 41 +++++++++++++++++++++++++++++++--
+ 5 files changed, 99 insertions(+), 50 deletions(-)
+
+commit 106e6365a71068637ae7b6e0d533f4819ca4bdcc
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 17:34:08 2007 +0000
+
+ Improve handling of parallel 'cat /dev/urandom' - notably a crasher in the
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ Improve handling of parallel 'cat /dev/urandom' - notably a crasher
+ in the table matcher, repeated g_getenv processing and wasted time
+ in g_tree_lookup.
+
+ * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
+ (_vte_iso2022_map_init), (_vte_iso2022_map_get),
+ (process_8_bit_sequence), (process_cdata),
+ (_vte_iso2022_process_single), (_vte_iso2022_process):
+ * src/table.c: (_vte_table_match):
+ * src/vte-private.h:
+
+
+ svn path=/trunk/; revision=1701
+
+ ChangeLog | 13 ++++++++
+ src/iso2022.c | 88 +++++++++++++++++++++++++---------------------------
+ src/table.c | 8 ++--
+ src/vte-private.h | 4 +-
+ 4 files changed, 61 insertions(+), 52 deletions(-)
+
+commit 92eb97daf593c1d447f1bdb6ac43734b662d10b3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 16:43:06 2007 +0000
+
+ In conjunction with the previous fix, since the terminal can be removed
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (update_timeout):
+ In conjunction with the previous fix, since the terminal
+ can be removed from the active list by
+ vte_terminal_process_incoming() we need to be careful whilst
+ iterating along the active list.
+
+
+ svn path=/trunk/; revision=1700
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 6 ++++--
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+commit 2741c86680b5dc6f7c44cbd1a1c9fd50112e8bfd
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 16:32:01 2007 +0000
+
+ <fcrozat> ickle: hi.. our kernel hacker just found a nice reproducible
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ <fcrozat> ickle: hi.. our kernel hacker just found a nice reproducible
+ crash in vte :)
+ <ickle> oh, joy
+ <fcrozat> very easy to reproduce
+ cat /dev/urandom
+ wait 2 or 3S
+ then press Ctrl-Shift-T to open a new tab
+ => crash
+
+ * src/vte.c: (process_timeout), (update_repeat_timeout):
+ vte_terminal_process_incoming() can trigger a terminal reset
+ which will remove the terminal from the active list, and then
+ we attempt to remove it again after handling the incoming
+ data. The fix is simple - don't delete the link if the the
+ terminal is no longer active.
+
+
+ svn path=/trunk/; revision=1699
+
+ ChangeLog | 18 ++++++++++++++++++
+ src/vte.c | 18 ++++++++++++------
+ 2 files changed, 30 insertions(+), 6 deletions(-)
+
+commit cf0fb7920f04f8e42a55fa795d7f9b1844212821
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 15:11:31 2007 +0000
+
+ As noticed on bug 409055, we do not receive a visibility-notify event when
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ As noticed on bug 409055, we do not receive a visibility-notify
+ event when we switch workspaces (or even when the window is iconified).
+ The workaround for this is to watch for our toplevel being unmapped
+ and set the fully-obscured flag.
+
+ * src/vte.c: (vte_terminal_configure_toplevel),
+ (vte_terminal_unmap_toplevel), (vte_terminal_hierarchy_changed),
+ (vte_terminal_set_visibility), (vte_terminal_visibility_notify):
+
+
+ svn path=/trunk/; revision=1698
+
+ ChangeLog | 11 +++++++++++
+ src/vte.c | 56 ++++++++++++++++++++++++++++++++++++++++----------------
+ 2 files changed, 51 insertions(+), 16 deletions(-)
+
+commit b4992b6d191eb4fb8806a0aa527244e4a31d58a0
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 12:05:38 2007 +0000
+
+ Add the visibility state to the debug output.
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (visibility_state_str),
+ (vte_terminal_visibility_notify), (vte_terminal_init),
+ (vte_terminal_realize):
+ Add the visibility state to the debug output.
+
+
+ svn path=/trunk/; revision=1697
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 32 +++++++++++++++++++++++---------
+ 2 files changed, 30 insertions(+), 9 deletions(-)
+
+commit 4172d95cb93212898d76513c2a7851cf56441eeb
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 10:24:57 2007 +0000
+
+ Add the configuration details to config.log as well.
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * configure.in:
+ Add the configuration details to config.log as well.
+
+
+ svn path=/trunk/; revision=1696
+
+ ChangeLog | 5 +++++
+ configure.in | 9 +++++++--
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+commit bd1b365df62aaa0c13f30c9540a2e895d364f045
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 09:48:32 2007 +0000
+
+ Bug 409241 – gnome-terminal crashed with SIGSEGV in
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 409241 – gnome-terminal crashed with SIGSEGV in vte_terminal_draw_graphic()
+
+ * src/vte.c: (vte_terminal_paint):
+ Lookup fore/back colours before attempting to draw the graphic
+ character behind the unfocused cursor.
+
+
+ svn path=/trunk/; revision=1695
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 10 +++++-----
+ 2 files changed, 13 insertions(+), 5 deletions(-)
+
+commit 9b942a0267e95ff19ab137559cd069b41b730b5a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 19 09:25:22 2007 +0000
+
+ Add VTE_DEBUG_EVENT info.
+
+ 2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_visibility_notify):
+ Add VTE_DEBUG_EVENT info.
+
+
+ svn path=/trunk/; revision=1694
+
+ ChangeLog | 5 +++++
+ src/vte.c | 6 ++++++
+ 2 files changed, 11 insertions(+), 0 deletions(-)
+
+commit c46666b8242919c39c0752100cd8742fc0982d3a
+Author: Priit Laes <plaes svn gnome org>
+Date: Sun Feb 18 10:02:30 2007 +0000
+
+ Updated Estonian translation by Ivar Smolin <okul linux ee>.
+
+ 2007-02-18 Priit Laes <plaes svn gnome org>
+
+ * et.po: Updated Estonian translation by Ivar Smolin <okul linux ee>.
+
+ svn path=/trunk/; revision=1693
+
+ po/ChangeLog | 4 +++
+ po/et.po | 67 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 39 insertions(+), 32 deletions(-)
+
+commit a398804b7feec0fb03a03451c2a7804b9356c3b6
+Author: Takeshi AIHANA <takeshi aihana gmail com>
+Date: Fri Feb 16 23:43:03 2007 +0000
+
+ Updated Japanese translation.
+
+ 2007-02-17 Takeshi AIHANA <takeshi aihana gmail com>
+
+ * ja.po: Updated Japanese translation.
+
+ svn path=/trunk/; revision=1692
+
+ po/ChangeLog | 4 +++
+ po/ja.po | 68 +++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 39 insertions(+), 33 deletions(-)
+
+commit cccb71086babba14b64fd9c779d96748a0234da6
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Feb 16 14:11:42 2007 +0000
+
+ Argh! The actual ChangeLog entry for the previous commit.
+
+ svn path=/trunk/; revision=1691
+
+ ChangeLog | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 73021c8e3cb4cbcf2768bcd5c29a8665458d6b8b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 16 14:08:58 2007 +0000
+
+ Bug 407945 – "GNOME" Terminal" regression after "vte" update when using
+
+ 2007-02-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 407945 – "GNOME" Terminal" regression after "vte" update when using "csh"
+
+ When passing multiple versions of the same environment
+ variable to execve (i.e g_spawn) the result is undefined.
+ So we solve the ambiguity by using the application passed env to
+ override values from the current environment.
+
+ * src/pty.c: (collect_variables), (merge_environ),
+ (_vte_pty_run_on_pty):
+
+
+ svn path=/trunk/; revision=1690
+
+ ChangeLog | 7 +++++++
+ src/pty.c | 57 +++++++++++++++++++++++++++++++++++++++++++++------------
+ 2 files changed, 52 insertions(+), 12 deletions(-)
+
+commit b55651f6faa018937802b38ba3f1429b5c3a2005
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 16 10:57:31 2007 +0000
+
+ Bug 408536 – trouble compiling vte 0.15.3
+
+ 2007-02-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 408536 – trouble compiling vte 0.15.3
+
+ * configure.in:
+ * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
+ Check for availability of FcStrFree() - only used for
+ debugging purposes so we can live without it.
+
+
+ svn path=/trunk/; revision=1689
+
+ ChangeLog | 9 +++++++++
+ configure.in | 9 +++++++++
+ src/vtefc.c | 4 ++++
+ 3 files changed, 22 insertions(+), 0 deletions(-)
+
+commit 6098cf74cdf324c0fdb826ff1fd4df98b88b60de
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 15 11:56:49 2007 +0000
+
+ Guard against a missing default number of rows or columns inside the
+
+ 2007-02-15 Chris Wilson <chris chris-wilson co uk>
+
+ Guard against a missing default number of rows or columns
+ inside the termcap.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_set_emulation), (vte_terminal_init):
+
+
+ svn path=/trunk/; revision=1688
+
+ ChangeLog | 8 ++++++++
+ src/vte-private.h | 2 ++
+ src/vte.c | 13 ++++++++++---
+ 3 files changed, 20 insertions(+), 3 deletions(-)
+
+commit 2d1fef27219bef094bdd04cb585c848c1215fd36
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 15 08:19:27 2007 +0000
+
+ Bug 408040 – vte automagic hyperlinks Patch by Gilles Dartiguelongue.
+
+ 2007-02-15 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 408040 – vte automagic hyperlinks
+ Patch by Gilles Dartiguelongue.
+
+ * src/vteapp.c:
+ Correct the typo in the nntp protocol matcher.
+
+
+ svn path=/trunk/; revision=1687
+
+ ChangeLog | 8 ++++++++
+ src/vteapp.c | 4 ++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit 8b036e7c225d43345d82008bfc5ba6725d71128d
+Author: Duarte Loreto <happyguy_pt hotmail com>
+Date: Thu Feb 15 01:24:09 2007 +0000
+
+ Updated Portuguese translation.
+
+ 2007-02-15 Duarte Loreto <happyguy_pt hotmail com>
+
+ * pt.po: Updated Portuguese translation.
+
+ svn path=/trunk/; revision=1686
+
+ po/ChangeLog | 4 +++
+ po/pt.po | 67 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 40 insertions(+), 31 deletions(-)
+
+commit b80a9798602233a081464fdd390eb3534e3b3bbb
+Author: Amanpreet Singh Alam <aman src gnome org>
+Date: Thu Feb 15 00:34:31 2007 +0000
+
+ updating for Punjabi
+
+ svn path=/trunk/; revision=1685
+
+ po/pa.po | 98 ++++++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 51 insertions(+), 47 deletions(-)
+
+commit 48a52da16aa0441747bb8bf7724b9c6f7f682b49
+Author: Daniel Nylander <dnylande src gnome org>
+Date: Wed Feb 14 22:40:30 2007 +0000
+
+ sv.po: Swedish translation updated
+
+ svn path=/trunk/; revision=1684
+
+ po/ChangeLog | 4 ++
+ po/sv.po | 95 +++++++++++++++++++++++++++-------------------------------
+ 2 files changed, 48 insertions(+), 51 deletions(-)
+
+commit 31e2986dca529750c385054e64baf46321f2ac30
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Wed Feb 14 16:38:08 2007 +0000
+
+ Add Damien's name to the ChangeLog as he was one who did all the hard work.
+
+
+ svn path=/trunk/; revision=1683
+
+ ChangeLog | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 086654fb2e81ad7dada38cc43776233510c9eba0
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 14 16:36:15 2007 +0000
+
+ Bug 407839 – Use of environ breaks build on Solaris
+
+ 2007-02-14 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 407839 – Use of environ breaks build on Solaris
+
+ * src/pty.c:
+ extern char **environ - glibc was 'conveniently' declaring
+ it for us...
+
+
+ svn path=/trunk/; revision=1682
+
+ ChangeLog | 8 ++++++++
+ src/pty.c | 6 ++++--
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+commit eec5e1ba2ba41c43726b828c5dabdc6453e2bfc8
+Author: Yair Hershkovitz <yairhr src gnome org>
+Date: Wed Feb 14 14:08:10 2007 +0000
+
+ updated hebrew translation
+
+ svn path=/trunk/; revision=1681
+
+ po/ChangeLog | 4 +++
+ po/he.po | 61 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 37 insertions(+), 28 deletions(-)
+
+commit 78a5644a40c0cfed1f74a2844646141561a2c710
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 13 10:14:58 2007 +0000
+
+ uws reported that scrolling inside screen with a status line was broken.
+
+ 2007-02-13 Chris Wilson <chris chris-wilson co uk>
+
+ uws reported that scrolling inside screen with a status line was
+ broken. Indeed any scrolling inside an alternative screen was broken,
+ e.g. plain vim would not always update the topmost line. The issue was
+ the interaction with the deferred value-changed signal emission and
+ failing to correctly maintain the current scroll_delta. The fix is
+ that we always now apply changes to the scroll_delta and swap
+ scroll_delta with adjustment->value before the deferred signal
+ emission to correctly trigger the handle_scroll().
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_invalidate_cells),
+ (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_value_changed),
+ (_vte_terminal_adjust_adjustments),
+ (_vte_terminal_adjust_adjustments_full),
+ (vte_terminal_maybe_scroll_to_bottom),
+ (vte_terminal_process_incoming), (vte_terminal_extend_selection),
+ (vte_terminal_handle_scroll), (vte_terminal_set_scrollback_lines):
+ * src/vteseq.c: (vte_sequence_handler_sf):
+
+
+ svn path=/trunk/; revision=1680
+
+ ChangeLog | 22 +++++++++++++++++
+ src/vte-private.h | 1 -
+ src/vte.c | 67 ++++++++++++++++++++++++++++++-----------------------
+ src/vteseq.c | 10 --------
+ 4 files changed, 60 insertions(+), 40 deletions(-)
+
+commit 51ec6a83743a6f93445f8bd10fcaed4c80e62f6c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 13 08:51:37 2007 +0000
+
+ Bug 407358 – regression in mouse selection
+
+ 2007-02-13 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 407358 – regression in mouse selection
+
+ * src/vte.c: (vte_terminal_motion_notify):
+ When outside the terminal we used an uninitialised variable to
+ determine the mouse tracking mode.
+
+
+ svn path=/trunk/; revision=1679
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 15 ++++++++-------
+ 2 files changed, 16 insertions(+), 7 deletions(-)
+
+commit 05c6997a2d188fdfba05f074ae473913db8ec50c
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Feb 13 05:02:16 2007 +0000
+
+ Released vte-0.15.3.
+
+ 2007-02-12 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.3.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.3.
+
+ * src/Makefile.am: Bumped libtool version to 11:0:2.
+
+
+ svn path=/trunk/; revision=1677
+
+ ChangeLog | 10 ++++++++
+ NEWS | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 6 ++--
+ 4 files changed, 79 insertions(+), 4 deletions(-)
+
+commit d00f6be542887348cae7c1c92b538f39655fccd4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 12 17:50:22 2007 +0000
+
+ Restore autoscroll behaviour.
+
+ 2007-02-12 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_extend_selection),
+ (vte_terminal_motion_notify):
+ Restore autoscroll behaviour.
+
+
+ svn path=/trunk/; revision=1676
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 34 ++++++++++++++++++++--------------
+ 2 files changed, 26 insertions(+), 14 deletions(-)
+
+commit ff3baedb1feaeac07c4d41963caabb3404448fce
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 12 17:35:48 2007 +0000
+
+ Invalidate the selected region when starting in select-word or select-line
+
+ 2007-02-12 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_start_selection):
+ Invalidate the selected region when starting in
+ select-word or select-line mode.
+
+
+ svn path=/trunk/; revision=1675
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 10 ++++++++++
+ 2 files changed, 16 insertions(+), 0 deletions(-)
+
+commit afd7d6ce9ef7c3f67fc01df7fe262820cf751a84
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 12 17:19:33 2007 +0000
+
+ Restore double-click to select word behaviour, broken by r1671 as the
+
+ 2007-02-12 Chris Wilson <chris chris-wilson co uk>
+
+ Restore double-click to select word behaviour, broken by r1671 as
+ the second click occurs in the same place as the first (obviously!).
+
+ * src/vte.c: (vte_terminal_extend_selection),
+ (vte_terminal_autoscroll), (vte_terminal_motion_notify),
+ (vte_terminal_button_press):
+
+
+ svn path=/trunk/; revision=1674
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 17 +++++++++--------
+ 2 files changed, 18 insertions(+), 8 deletions(-)
+
+commit cc25041ed39cb173986c2d6b7ec9b546226c45a5
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 12 16:37:41 2007 +0000
+
+ Bug 407091 – vte_terminal_fork_command() env argument changed semantic
+
+ 2007-02-12 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 407091 – vte_terminal_fork_command() env argument changed semantic in 0.15.2
+ Original patch by Michael Vogt.
+
+ * src/pty.c: (_vte_pty_run_on_pty):
+ Copy the current environment into the child's.
+
+
+ svn path=/trunk/; revision=1673
+
+ ChangeLog | 8 ++++++++
+ src/pty.c | 44 ++++++++++++++++++++++++++++++--------------
+ 2 files changed, 38 insertions(+), 14 deletions(-)
+
+commit 9225efa38d0f685bf8ab4ad6f730b55a824bee43
+Author: Ilkka Tuohela <ituohela src gnome org>
+Date: Mon Feb 12 16:26:06 2007 +0000
+
+ Updated Finnish translation
+
+ svn path=/trunk/; revision=1672
+
+ po/ChangeLog | 4 +++
+ po/fi.po | 61 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 37 insertions(+), 28 deletions(-)
+
+commit 9b1ebc2cc663b935bf8994bf5d21952441a4f34b
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Sun Feb 11 18:52:57 2007 +0000
+
+ Improve ChangeLog grammar for last entry
+
+ svn path=/trunk/; revision=1671
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit ed71458192cb72a76ae2f0658f2f3f64f34d5db2
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 11 18:51:41 2007 +0000
+
+ Bug 323393 – Hyper-sensitive selection
+
+ 2007-02-11 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 323393 – Hyper-sensitive selection
+
+ * src/vte.c: (vte_terminal_extend_selection):
+ Don't start (or update) the selection until you have
+ move off the current cell (character).
+
+
+ svn path=/trunk/; revision=1670
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 12 +++++++++++-
+ 2 files changed, 19 insertions(+), 1 deletions(-)
+
+commit 27bdcfcf116ba09540100e1c9e4e37058cbee0ef
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Sun Feb 11 18:31:20 2007 +0000
+
+ Eliminate dead code from last commit.
+
+
+ svn path=/trunk/; revision=1669
+
+ src/vte.c | 12 +++---------
+ 1 files changed, 3 insertions(+), 9 deletions(-)
+
+commit 211b8c3fd9395992baf00f18b9ff0e6141039e0f
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 11 18:20:01 2007 +0000
+
+ Bug 406763 – Selecting double-wide characters
+
+ 2007-02-11 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 406763 – Selecting double-wide characters
+
+ * src/vte.c: (start_column), (end_column),
+ (vte_terminal_start_selection), (vte_terminal_extend_selection),
+ (vte_terminal_draw_rows):
+ Extend selection to include fragment cells i.e. double-wide
+ characters.
+
+
+ svn path=/trunk/; revision=1668
+
+ ChangeLog | 10 ++++++++
+ src/vte.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 65 insertions(+), 16 deletions(-)
+
+commit 1977853482af88000cd868f97d75f21b73fa5e77
+Author: Ihar Hrachyshka <iharh src gnome org>
+Date: Sun Feb 11 15:55:55 2007 +0000
+
+ be.po: Updated Belarusian translation.
+
+ svn path=/trunk/; revision=1667
+
+ po/ChangeLog | 4 +++
+ po/be.po | 77 ++++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 44 insertions(+), 37 deletions(-)
+
+commit 82aae53f5f6df2b3711f2562416f2bf94610998e
+Author: Theppitak Karoonboonyanan <tkaroonb src gnome org>
+Date: Sun Feb 11 09:26:56 2007 +0000
+
+ Added Thai translation.
+
+ * th.po: Added Thai translation.
+
+
+ svn path=/trunk/; revision=1666
+
+ po/ChangeLog | 4 +++
+ po/th.po | 66 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 39 insertions(+), 31 deletions(-)
+
+commit db8c3398dded800a9570f7b3004b5c4161089344
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Feb 10 21:12:54 2007 +0000
+
+ Have a separate adjust_adjustments for when we know that the page size and
+
+ 2007-02-10 Chris Wilson <chris chris-wilson co uk>
+
+ Have a separate adjust_adjustments for when we know that the page
+ size and step lengths may have changed.
+
+ * src/vte.c: (_vte_terminal_adjust_adjustments),
+ (_vte_terminal_adjust_adjustments_full),
+ (vte_terminal_set_scrollback_lines), (vte_terminal_reset):
+
+
+ svn path=/trunk/; revision=1665
+
+ ChangeLog | 9 +++++++
+ src/vte.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ 2 files changed, 83 insertions(+), 4 deletions(-)
+
+commit e1e03bfea1cdec959d7fe151c45a68bef74d0d19
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Feb 10 01:18:14 2007 +0000
+
+ Prevent the display of garbage after resizing and switching between
+
+ 2007-02-10 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_terminal_adjust_adjustments),
+ (vte_terminal_size_allocate), (vte_terminal_set_scrollback_lines):
+ Prevent the display of garbage after resizing and switching
+ between alternate screens.
+ However, instead of displaying garbage after the cursor, we
+ lose some data above the current scroll delta, should we have
+ a full history. Bizarre.
+
+
+ svn path=/trunk/; revision=1664
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 28 ++++++++++++++++++++--------
+ 2 files changed, 30 insertions(+), 8 deletions(-)
+
+commit 0298c00f6fc3ecc8704ed5a73180b2dcfa43804c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 9 22:26:03 2007 +0000
+
+ Do not allow to scroll past the last line after reducing scrollback lines.
+
+ 2007-02-09 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_terminal_adjust_adjustments):
+ Do not allow to scroll past the last line after reducing
+ scrollback lines.
+ * src/vtexft.c: (_vte_xft_set_text_font):
+ Ensure a fallback height is set.
+
+
+ svn path=/trunk/; revision=1663
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 8 ++++----
+ src/vtexft.c | 3 +++
+ 3 files changed, 15 insertions(+), 4 deletions(-)
+
+commit 315d4022bdf7d966bdd4d3494ad0653cf232655b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 9 20:42:36 2007 +0000
+
+ Reuse VteRowData whilst in the row.
+
+ 2007-02-09 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_get_text_range_maybe_wrapped):
+ Reuse VteRowData whilst in the row.
+
+
+ svn path=/trunk/; revision=1662
+
+ ChangeLog | 5 +++++
+ src/vte.c | 7 ++++---
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+commit 324b43bd592e0b7598eb3b895247a0234cf42e57
+Author: Stéphane Raimbault <stephane raimbault gmail com>
+Date: Fri Feb 9 19:22:06 2007 +0000
+
+ Updated French translation by Jonathan Ernst and Stéphane Raimbault.
+
+ 2007-02-09 Stéphane Raimbault <stephane raimbault gmail com>
+
+ * fr.po: Updated French translation by Jonathan Ernst and Stéphane
+ Raimbault.
+
+ svn path=/trunk/; revision=1661
+
+ po/ChangeLog | 5 ++++
+ po/fr.po | 70 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 42 insertions(+), 33 deletions(-)
+
+commit 406b4112f009278210bfed3d5b02ffe87e53f506
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Feb 9 19:03:13 2007 +0000
+
+ Remove the incomplete ChangeLog entry
+
+ svn path=/trunk/; revision=1660
+
+ ChangeLog | 10 ----------
+ 1 files changed, 0 insertions(+), 10 deletions(-)
+
+commit fc9491db2c696d3fdf04c6305722a578991f2dab
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 9 19:02:51 2007 +0000
+
+ Rework to reduce number of times mutex is taken and shorten the hold.
+
+ 2007-02-09 Chris Wilson <chris chris-wilson co uk>
+
+ Rework to reduce number of times mutex is taken and shorten the hold.
+
+ * src/vte.c: (vte_terminal_queue_adjustment_changed),
+ (vte_terminal_queue_adjustment_value_changed),
+ (vte_terminal_io_read), (vte_terminal_paint),
+ (vte_terminal_add_process_timeout), (vte_terminal_is_processing),
+ (vte_terminal_start_processing):
+
+
+ svn path=/trunk/; revision=1659
+
+ ChangeLog | 20 ++++++++++++++++++++
+ src/vte.c | 42 ++++++++++++++++++++----------------------
+ 2 files changed, 40 insertions(+), 22 deletions(-)
+
+commit 1b2331370cddeb42e37ac7d9cfbbe6968969139d
+Author: Djihed Afifi <djihed src gnome org>
+Date: Fri Feb 9 17:37:21 2007 +0000
+
+ Updated Arabic Translation.
+
+ svn path=/trunk/; revision=1658
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 47 ++++++++++++++++++++++++-----------------------
+ 2 files changed, 28 insertions(+), 23 deletions(-)
+
+commit ed0571e099a5288ee4ca769b5f16165910346711
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 9 15:42:27 2007 +0000
+
+ A number of small bug fixes... - do not override the user setting of
+
+ 2007-02-09 Chris Wilson <chris chris-wilson co uk>
+
+ A number of small bug fixes...
+ - do not override the user setting of scrollback lines with the
+ terminal size.
+ - only set the current screen rather than both and so reset the
+ scrollback lines when we switch between normal and alternate.
+ - do not invalidate inside set_scrollback lines as setting does not
+ actually modify the on-screen contents.
+ - push the scroll-adjustment to the post-processing emission.
+ - queue timeouts on value change (should be a no-op)
+ - reorder emission so that scrolling occurs before invalidating the
+ window (ie so that the scroll happens this cycle, not next).
+
+ Still unsolved: the clamping of the cursor when switching between
+ alternate screens.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_changed),
+ (vte_terminal_queue_adjustment_value_changed),
+ (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
+ (vte_terminal_maybe_scroll_to_top),
+ (vte_terminal_maybe_scroll_to_bottom),
+ (_vte_terminal_ensure_cursor), (_vte_terminal_update_insert_delta),
+ (vte_terminal_process_incoming), (vte_terminal_extend_selection),
+ (vte_terminal_autoscroll), (vte_terminal_handle_scroll),
+ (vte_terminal_size_allocate), (vte_terminal_scroll),
+ (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_set_scrollback_lines), (vte_terminal_reset),
+ (add_process_timeout), (vte_terminal_add_process_timeout),
+ (vte_terminal_start_processing), (update_repeat_timeout),
+ (update_timeout):
+ * src/vteseq.c: (vte_sequence_handler_scroll_up_or_down),
+ (vte_sequence_handler_decset_internal), (vte_sequence_handler_al),
+ (vte_sequence_handler_dl), (vte_sequence_handler_sf),
+ (vte_sequence_handler_sr), (vte_sequence_handler_clear_screen),
+ (vte_sequence_handler_cursor_character_absolute),
+ (vte_sequence_handler_insert_lines),
+ (vte_sequence_handler_delete_lines),
+ (vte_sequence_handler_screen_alignment_test):
+
+
+ svn path=/trunk/; revision=1657
+
+ ChangeLog | 43 ++++++++++
+ src/vte-private.h | 3 +-
+ src/vte.c | 243 +++++++++++++++++++++++++----------------------------
+ src/vteseq.c | 34 ++++----
+ 4 files changed, 174 insertions(+), 149 deletions(-)
+
+commit 677f408192eb94bc12acd3fb259fc0d832f36aa4
+Author: David Lodge <dlodge src gnome org>
+Date: Fri Feb 9 12:26:52 2007 +0000
+
+ Updated (British) English translation
+
+ svn path=/trunk/; revision=1656
+
+ po/ChangeLog | 4 +++
+ po/en_GB.po | 69 +++++++++++++++++++++++++++++++++------------------------
+ 2 files changed, 44 insertions(+), 29 deletions(-)
+
+commit 9edec5976463f7730393e2cfcfd714dc22dad1c7
+Author: Josep Puigdemont i Casamajó <joseppc src gnome org>
+Date: Fri Feb 9 01:24:26 2007 +0000
+
+ Updated Catalan translation.
+
+ svn path=/trunk/; revision=1655
+
+ po/ChangeLog | 4 +++
+ po/ca.po | 71 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 43 insertions(+), 32 deletions(-)
+
+commit a1fdc00df38d789aeb646098039b60e07dc70135
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 8 23:41:55 2007 +0000
+
+ whitespace
+
+ 2007-02-08 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteapp.c: (main): whitespace
+
+
+ svn path=/trunk/; revision=1654
+
+ ChangeLog | 4 ++++
+ src/vteapp.c | 31 +++++++++++++++----------------
+ 2 files changed, 19 insertions(+), 16 deletions(-)
+
+commit 66669bb79539819035041c526be2ba10e70dc2c9
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 8 23:38:36 2007 +0000
+
+ Bug 363597 – Scrollback in profile dialog doesn't work
+
+ 2007-02-08 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 363597 – Scrollback in profile dialog doesn't work
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_init),
+ Only use SCROLLBACK_MIN during initialisation, so rename it
+ to SCROLLBACK_INIT.
+ (vte_terminal_set_scrollback_lines):
+ Remove MAX(lines, SCROLLBACK_MIN) and update code comments
+ to reduce confusion.
+
+
+ svn path=/trunk/; revision=1653
+
+ ChangeLog | 12 ++++++++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 9 ++++-----
+ 3 files changed, 17 insertions(+), 6 deletions(-)
+
+commit f7965513089c1c3e0d736c1fc1f558a387822a9f
+Author: Mariano Suárez-Alvarez <mariano gnome org>
+Date: Thu Feb 8 21:48:06 2007 +0000
+
+ do something useful with --geometry.
+
+ 2007-02-08 Mariano Suárez-Alvarez <mariano gnome org>
+
+ * src/vteapp.c(main): do something useful with --geometry.
+
+
+
+ svn path=/trunk/; revision=1652
+
+ ChangeLog | 4 ++++
+ src/vteapp.c | 18 ++++++++++++++----
+ 2 files changed, 18 insertions(+), 4 deletions(-)
+
+commit 2248057a2a30e0af2403b7ada2374317e2c16ea4
+Author: Djihed Afifi <djihed src gnome org>
+Date: Thu Feb 8 20:10:28 2007 +0000
+
+ Updated Arabic Translation.
+
+ svn path=/trunk/; revision=1651
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 46 ++++++++++++++++++++++------------------------
+ 2 files changed, 26 insertions(+), 24 deletions(-)
+
+commit b3ada446dc6e9554689375ac7b1f67c3c47b889b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 8 17:34:40 2007 +0000
+
+ Use gtk_widget_get_(screen|display) which will itself return a default if
+
+ 2007-02-08 Chris Wilson <chris chris-wilson co uk>
+
+ Use gtk_widget_get_(screen|display) which will itself return a default
+ if not currently attached.
+
+ * src/vtedraw.c: (_vte_draw_get_colormap):
+ * src/vtefc.c: (_vte_fc_defaults_from_gtk):
+ * src/vtegl.c: (_vte_gl_check), (_vte_gl_create),
+ (_vte_gl_destroy), (_vte_gl_start), (_vte_gl_end), (_vte_gl_clear),
+ (_vte_gl_draw_text), (_vte_gl_rectangle):
+ * src/vterdb.c: (_vte_rdb_get):
+ * src/vteseq.c: (vte_sequence_handler_window_manipulation):
+
+
+ svn path=/trunk/; revision=1650
+
+ ChangeLog | 13 ++++++++++
+ configure.in | 2 +-
+ src/vtedraw.c | 6 +----
+ src/vtefc.c | 15 +++--------
+ src/vtegl.c | 74 ++++++++++++++++++--------------------------------------
+ src/vterdb.c | 6 +---
+ src/vteseq.c | 6 +----
+ 7 files changed, 46 insertions(+), 76 deletions(-)
+
+commit 15d58f1309f45e3eb02a7e46cd74440170b13b78
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 8 14:06:53 2007 +0000
+
+ Some more callgrinding - kill a little bit of overhead.
+
+ 2007-02-08 Chris Wilson <chris chris-wilson co uk>
+
+ Some more callgrinding - kill a little bit of overhead.
+
+ * src/iso2022.c: (_vte_iso2022_sequence_length),
+ (_vte_iso2022_fragment_input), (process_control):
+ * src/matcher.c: (_vte_matcher_free_params_array):
+ * src/vteconv.c: (_vte_conv):
+
+
+ svn path=/trunk/; revision=1649
+
+ ChangeLog | 9 +++++
+ src/iso2022.c | 102 ++++++++++++++++++++++++++++++++++++++++++++------------
+ src/matcher.c | 8 ++--
+ src/vteconv.c | 11 +++---
+ 4 files changed, 98 insertions(+), 32 deletions(-)
+
+commit 385746c4b6bc1afb008e719aa7846106255e0e81
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 7 16:57:57 2007 +0000
+
+ Actually return whether or not we found the char in _vte_xft_font_for_char
+
+ 2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ Actually return whether or not we found the char in
+ _vte_xft_font_for_char - saves having to double check afterwards!
+
+ * src/vtexft.c: (_vte_xft_font_for_char), (_vte_xft_set_text_font),
+ (_vte_xft_draw_text):
+
+
+ svn path=/trunk/; revision=1648
+
+ ChangeLog | 8 +++++
+ src/vtexft.c | 97 +++++++++++++++++++---------------------------------------
+ 2 files changed, 40 insertions(+), 65 deletions(-)
+
+commit 7111e266695e7b8ef2daa6e0c6508cfe58154aed
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 7 16:03:30 2007 +0000
+
+ As spotted perusing roxterm, we fail to redraw after changing the text
+
+ 2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ As spotted perusing roxterm, we fail to redraw after changing the text
+ colour.
+
+ * src/vte.c: (vte_terminal_set_color_internal):
+ Remember to invalidate all!
+
+
+ svn path=/trunk/; revision=1647
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 3 +++
+ 2 files changed, 11 insertions(+), 0 deletions(-)
+
+commit 4d59212a11ca8157d3a49f2b0e85230c2bb73a3b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 7 10:15:51 2007 +0000
+
+ Scan for newlines before and after the current row to find the entire line
+
+ 2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_match_check_internal):
+ Scan for newlines before and after the current row
+ to find the entire line in case of soft-wrapping.
+
+
+ svn path=/trunk/; revision=1646
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 12 ++++++++++--
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+commit 523d88614c859385c3430130ae49c5bba11683fe
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 7 09:49:20 2007 +0000
+
+ Bug 345344 – Pattern matching is inefficient Bug 324246 – Performance
+
+ 2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 345344 – Pattern matching is inefficient
+ Bug 324246 – Performance degredation with large numbers of highlighted addresses/URLs
+
+ * src/vte.c: (vte_terminal_match_check_internal):
+ Trim the searched string down to the row containing the
+ pointer. During a mutt session this drops the time consumed by
+ regexec from ~30% to ~2%.
+ Note: multi-line regexes are now unsupported!
+
+
+ svn path=/trunk/; revision=1645
+
+ ChangeLog | 11 +++++
+ src/vte.c | 125 +++++++++++++++++++++++++++++++++++++++---------------------
+ 2 files changed, 92 insertions(+), 44 deletions(-)
+
+commit ecc00ed00303b06fb764a8beb092ea56fb7968e6
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 7 00:45:02 2007 +0000
+
+ Avoid the strlen when possible.
+
+ 2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c: (_vte_sequence_get_handler):
+ Avoid the strlen when possible.
+
+
+ svn path=/trunk/; revision=1644
+
+ ChangeLog | 5 +++++
+ src/vteseq.c | 6 +++---
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+commit 941e00dee9b6ab5168ae0b6226794758734528a4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Feb 7 00:07:40 2007 +0000
+
+ Some cleanups and a bug...
+
+ 2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ Some cleanups and a bug...
+
+ vte_terminal_match_hilite() compared the current cell to the last
+ mouse position without a floor().
+
+ * src/vte.c: (vte_terminal_process_incoming),
+ (vte_terminal_match_hilite), (vte_terminal_select_all),
+ (vte_terminal_select_none), (vte_terminal_motion_notify),
+ (vte_terminal_button_press):
+
+
+ svn path=/trunk/; revision=1643
+
+ ChangeLog | 12 +++++++++++
+ src/vte.c | 67 +++++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 47 insertions(+), 32 deletions(-)
+
+commit c7ee539681e4bc62474acf51ea97136b7ffcfaec
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 22:29:39 2007 +0000
+
+ Bug 86119 – "select all" feature Original patch by Simone Gotti.
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 86119 – "select all" feature
+ Original patch by Simone Gotti.
+
+ * src/vte.c: (vte_terminal_select_all), (vte_terminal_select_none):
+ * src/vte.h:
+ Add 2 new API entry points to select the entire contents
+ and clear the current selection.
+
+
+ svn path=/trunk/; revision=1642
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vte.h | 4 ++++
+ 3 files changed, 75 insertions(+), 0 deletions(-)
+
+commit 40d798732f1f59d4dc6f4e635ae0466ddb96d7f0
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 22:02:22 2007 +0000
+
+ Bug 342059 – ASCII escape sequences don't work as expected Correction by
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 342059 – ASCII escape sequences don't work as expected
+ Correction by Mariano Suárez-Alvarez.
+
+ * src/vteseq.c: (vte_sequence_handler_cursor_character_absolute):
+ OBO on the parameter.
+
+
+ svn path=/trunk/; revision=1641
+
+ ChangeLog | 8 ++++++++
+ src/vteseq.c | 4 ++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit e8788fb343b122f77dcb087c3644633d59649fbe
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 21:47:58 2007 +0000
+
+ Bug 342059 – ASCII escape sequences don't work as expected Patch by
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 342059 – ASCII escape sequences don't work as expected
+ Patch by Mariano Suárez-Alvarez.
+
+ * src/vteseq.c: (vte_sequence_handler_cursor_character_absolute):
+ Provide a default value.
+
+
+ svn path=/trunk/; revision=1640
+
+ ChangeLog | 8 ++++++++
+ src/vteseq.c | 21 +++++++++++++++++++--
+ 2 files changed, 27 insertions(+), 2 deletions(-)
+
+commit 8d0525d71c15affc86448ba204bcddd94f1dbf56
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 19:02:38 2007 +0000
+
+ And finally as noted on bug 324246#c8 hide the hilite when the mouse
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ And finally as noted on bug 324246#c8 hide the hilite when the mouse
+ leaves the terminal (show again when it enters and let motion-notify
+ correct it later).
+
+ * src/vte.c: (vte_terminal_enter), (vte_terminal_leave),
+ (vte_terminal_realize), (vte_terminal_class_init):
+
+
+ svn path=/trunk/; revision=1639
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 39 +++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 46 insertions(+), 2 deletions(-)
+
+commit 1cb4420af95031508802786ea876a86ab1bc61e7
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 18:43:19 2007 +0000
+
+ As noted on bug 324246#c8, hide the hilite when the focus disappears. On
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ As noted on bug 324246#c8, hide the hilite when the focus disappears.
+ On focus restore the match for the last mouse coordinates and let
+ motion-notify take care of the rest.
+
+ * src/vte.c: (vte_terminal_match_hilite_update),
+ (vte_terminal_match_hilite), (vte_terminal_focus_in):
+
+
+ svn path=/trunk/; revision=1638
+
+ ChangeLog | 6 ++++--
+ src/vte.c | 53 +++++++++++++++++++++++++++++++++++------------------
+ 2 files changed, 39 insertions(+), 20 deletions(-)
+
+commit 35d8895c49716e77b91c74bab75089ba6a6e3540
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 18:35:02 2007 +0000
+
+ As noted on bug 324246#c8, hide the hilite when the focus disappears.
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ As noted on bug 324246#c8, hide the hilite when the focus disappears.
+ Depend upon motion-notify events to show the hilite.
+
+ * src/vte.c: (vte_terminal_focus_out):
+
+
+ svn path=/trunk/; revision=1637
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 1 +
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+commit e972b042a3901d1f0f9e1059a391330c799a58df
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 16:49:41 2007 +0000
+
+ Convert the exposed rectangles to cells and remerge them.
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Convert the exposed rectangles to cells and remerge them.
+
+ * src/vte.c: (vte_terminal_expand_region),
+ (vte_terminal_paint_area), (vte_terminal_paint):
+
+
+ svn path=/trunk/; revision=1636
+
+ ChangeLog | 7 +++++
+ src/vte.c | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++-------
+ 2 files changed, 73 insertions(+), 9 deletions(-)
+
+commit bcb9cce88b1ac694c42f72a875fc8de4707fe5bf
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 14:05:26 2007 +0000
+
+ As noted on Bug 401052#c13, vte fails to completely clear the cell's
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ As noted on Bug 401052#c13, vte fails to completely clear the cell's
+ previous contents.
+
+ * src/vte.c: (_vte_invalidate_cells):
+ Grow the invalidate region by a single pixel to accomodate
+ antialiased pseudo-bold characters.
+
+
+ svn path=/trunk/; revision=1635
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 8 ++++----
+ 2 files changed, 13 insertions(+), 4 deletions(-)
+
+commit 2e35e0e588ceb00b3b4196ca63c6f5d37611d17f
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 14:03:33 2007 +0000
+
+ Move status_line_changed to post-processing emission.
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Move status_line_changed to post-processing emission.
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_terminal_insert_char), (vte_terminal_reset),
+ (vte_terminal_emit_pending_signals):
+ * src/vteseq.c: (vte_sequence_handler_ts):
+
+
+ svn path=/trunk/; revision=1634
+
+ ChangeLog | 9 +++++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 11 +++++++++--
+ src/vteseq.c | 2 +-
+ 4 files changed, 20 insertions(+), 4 deletions(-)
+
+commit 1ed564c990e5d793ce102f9ee9dbb5d67045c070
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 11:31:48 2007 +0000
+
+ Clamp down on needless invalidates during selection.
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Clamp down on needless invalidates during selection.
+
+ As commented on in Bug 401052#c10
+
+ * src/vte.c: (_vte_invalidate_region), (vte_terminal_deselect_all),
+ (vte_terminal_match_hilite_clear), (vte_terminal_start_selection),
+ (vte_terminal_extend_selection):
+
+
+ svn path=/trunk/; revision=1633
+
+ ChangeLog | 10 +++++
+ src/vte.c | 130 +++++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 77 insertions(+), 63 deletions(-)
+
+commit 93592983597e5bec9df8e61637f65c9cbffddeb8
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 10:27:52 2007 +0000
+
+ Don't needlessly break the text run on a space if we are not drawing cell
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ Don't needlessly break the text run on a space if we are
+ not drawing cell attributes.
+
+
+ svn path=/trunk/; revision=1632
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 12 +++++++++++-
+ 2 files changed, 17 insertions(+), 1 deletions(-)
+
+commit 2b125a856e2afee11252bdb75ed420f08fc721d1
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Feb 6 08:49:56 2007 +0000
+
+ One more G_UNLIKELY Avoid expensive hiliting if the pointer is not in the
+
+ 2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous_ht):
+ One more G_UNLIKELY
+ * src/vte.c: (vte_terminal_match_hilite),
+ (vte_terminal_motion_notify):
+ Avoid expensive hiliting if the pointer is not in the window.
+ * src/vteregex.c: (_vte_regex_exec):
+ Prefer g_new(x,n) over g_malloc(sizeof(x)*n)
+
+
+ svn path=/trunk/; revision=1631
+
+ ChangeLog | 10 ++++++++++
+ src/iso2022.c | 2 +-
+ src/vte.c | 20 +++++++++++++++++++-
+ src/vteregex.c | 2 +-
+ 4 files changed, 31 insertions(+), 3 deletions(-)
+
+commit 7fb0dfdb947d98ff2aa2e01266f3517df2c24b9a
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Feb 5 23:22:56 2007 +0000
+
+ Simple to script to scroll UTF-8 text.
+
+ svn path=/trunk/; revision=1630
+
+ perf/utf8.sh | 11 +++++++++++
+ 1 files changed, 11 insertions(+), 0 deletions(-)
+
+commit e8a2e72779bf6701e10d73354818d1734d2f6d12
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 5 21:55:38 2007 +0000
+
+ Bug 404757 – URL matching doesn't work with PCRE
+
+ 2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 404757 – URL matching doesn't work with PCRE
+
+ * configure.in:
+ mention the inconsistency in the help string and default to no.
+
+
+ svn path=/trunk/; revision=1629
+
+ ChangeLog | 7 +++++++
+ configure.in | 4 ++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 102053e8c98dfa69450c5d8b3e85a5570a5eab0c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 5 17:09:27 2007 +0000
+
+ Don't draw cell attributes across spaces.
+
+ 2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ Don't draw cell attributes across spaces.
+
+
+ svn path=/trunk/; revision=1628
+
+ ChangeLog | 5 +++++
+ src/vte.c | 10 ++++++----
+ 2 files changed, 11 insertions(+), 4 deletions(-)
+
+commit 5ef6ed835427ef0eefa3b2f3694bbed53d208991
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 5 16:05:20 2007 +0000
+
+ A couple more G_LIKELYs.
+
+ 2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_terminal_insert_char):
+ A couple more G_LIKELYs.
+
+
+ svn path=/trunk/; revision=1627
+
+ ChangeLog | 5 +++++
+ src/vte.c | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit be36839768c3a3ec2d6734dce47b96fdda248bbc
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 5 13:55:55 2007 +0000
+
+ Bug 403028 – decset mode 12 = blinking cursor
+
+ 2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 403028 – decset mode 12 = blinking cursor
+
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+ Following convention, disallow the application's control
+ over the blinking cursor in favour of the user's setting.
+
+
+ svn path=/trunk/; revision=1626
+
+ ChangeLog | 8 ++++++++
+ src/vteseq.c | 2 ++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+commit 25007669b49652093e6d14699e5d5a4b15a77ce8
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 5 13:38:56 2007 +0000
+
+ Some more small callgrind tweaks - well into the law of diminishing
+
+ 2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ Some more small callgrind tweaks - well into the law of diminishing
+ returns.
+
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous_ht),
+ (_vte_iso2022_is_ambiguous), (process_8_bit_sequence),
+ (process_cdata), (_vte_iso2022_unichar_width):
+ * src/matcher.c: (_vte_matcher_free_params_array):
+ * src/vte.c: (vte_terminal_process_incoming):
+
+
+ svn path=/trunk/; revision=1625
+
+ ChangeLog | 11 +++++++++++
+ src/iso2022.c | 37 +++++++++++++++++++++----------------
+ src/matcher.c | 3 +--
+ src/vte.c | 3 +--
+ 4 files changed, 34 insertions(+), 20 deletions(-)
+
+commit 589e6df7291dae65b02fe9223f40c916e2c4ade7
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 5 12:33:49 2007 +0000
+
+ Beware the trivial change. Handle reuse of GValueArray correctly.
+
+ 2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ Beware the trivial change. Handle reuse of GValueArray correctly.
+
+ * src/matcher.c: (_vte_matcher_match):
+ * src/table.c: (_vte_table_match):
+ * src/trie.c: (_vte_trie_match):
+ * src/vte.c: (vte_terminal_process_incoming):
+
+
+ svn path=/trunk/; revision=1624
+
+ ChangeLog | 9 +++++++++
+ src/matcher.c | 2 +-
+ src/table.c | 4 ++--
+ src/trie.c | 17 +++++++++--------
+ src/vte.c | 14 ++++++++------
+ 5 files changed, 29 insertions(+), 17 deletions(-)
+
+commit 94ce0b006861d54d8e683e2cec93d79be28908c5
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 5 12:15:36 2007 +0000
+
+ And kill the leak as vte_table_match erroneously cleared its output
+
+ 2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/table.c: (_vte_table_match):
+ And kill the leak as vte_table_match erroneously cleared
+ its output arguments.
+
+
+ svn path=/trunk/; revision=1623
+
+ ChangeLog | 6 ++++++
+ src/table.c | 6 +++---
+ 2 files changed, 9 insertions(+), 3 deletions(-)
+
+commit 8109c64664cf26422e9efb3256f665d5b5214c58
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 5 10:47:28 2007 +0000
+
+ The continual reallocation of GValueArray is the last trivially avoidable
+
+ 2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ The continual reallocation of GValueArray is the last trivially
+ avoidable g_realloc.
+
+ * src/interpret.c: (main):
+ * src/matcher.c: (_vte_matcher_create), (_vte_matcher_destroy),
+ (_vte_matcher_match), (_vte_matcher_free_params_array):
+ * src/matcher.h:
+ * src/table.c: (_vte_table_extract_string):
+ * src/trie.c: (_vte_trie_matchx), (_vte_trie_match), (main):
+ * src/vte.c: (vte_terminal_process_incoming):
+
+
+ svn path=/trunk/; revision=1622
+
+ ChangeLog | 13 +++++++++++++
+ src/interpret.c | 2 +-
+ src/matcher.c | 32 ++++++++++++++++++++++----------
+ src/matcher.h | 2 +-
+ src/table.c | 13 ++++++-------
+ src/trie.c | 48 +++++++++++++++++++++++++-----------------------
+ src/vte.c | 3 ++-
+ 7 files changed, 70 insertions(+), 43 deletions(-)
+
+commit 95d056d80bf4da8e18e3ed059b6eed1c957aa2fa
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 5 09:54:57 2007 +0000
+
+ Missed an important compiler warning.
+
+ 2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/ring.c: (_vte_ring_insert):
+ Missed an important compiler warning.
+
+
+ svn path=/trunk/; revision=1621
+
+ ChangeLog | 5 +++++
+ src/ring.c | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit b307bc5c424787b557df9c69c1f92a7c45c558a8
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Feb 5 09:46:43 2007 +0000
+
+ cf Bug 342338 – suffers from memory fragmentation
+
+ 2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 342338 – suffers from memory fragmentation
+
+ Reuse the last VteRowData instead of immediately freeing it. Avoids
+ recreating and *regrowing* a new GArray on the heap.
+
+ In the simple scrolling benchmarks this can boost performance by as
+ much as 10%!
+
+ * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
+ (_vte_ring_remove), (_vte_ring_append):
+ * src/ring.h:
+ * src/vte-private.h:
+ * src/vte.c: (_vte_reset_row_data), (_vte_terminal_ensure_cursor),
+ (_vte_terminal_insert_char), (vte_terminal_reset_rowdata):
+ * src/vteseq.c: (vte_insert_line_internal),
+ (vte_sequence_handler_scroll_up_or_down),
+ (vte_sequence_handler_cd), (vte_sequence_handler_sf),
+ (vte_sequence_handler_clear_screen),
+ (vte_sequence_handler_screen_alignment_test):
+
+
+ svn path=/trunk/; revision=1620
+
+ ChangeLog | 22 +++++++++++++++
+ src/ring.c | 71 ++++++++++++++++++++++++-----------------------
+ src/ring.h | 8 +++---
+ src/vte-private.h | 2 +
+ src/vte.c | 44 +++++++++++++++++++++++------
+ src/vteseq.c | 79 ++++++++++++++++++++++++++++++++++++++++-------------
+ 6 files changed, 159 insertions(+), 67 deletions(-)
+
+commit 285ebd25406bd8188e6da16f3290aa4682629b92
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 4 22:22:58 2007 +0000
+
+ A few more compiler warnings.
+
+ 2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ A few more compiler warnings.
+
+ * src/buffer.c: (_vte_buffer_peek_gstring):
+ * src/iso2022.c: (process_control):
+ * src/vteft2.c: (_vte_ft2_set_text_font):
+ * src/vteseq.c: (vte_sequence_handler_set_title_internal):
+ * src/vtetc.c: (_vte_termcap_parse_file):
+
+
+ svn path=/trunk/; revision=1619
+
+ ChangeLog | 10 ++++++++++
+ src/buffer.c | 2 +-
+ src/iso2022.c | 8 +-------
+ src/vteft2.c | 2 +-
+ src/vteseq.c | 6 +++---
+ src/vtetc.c | 2 +-
+ 6 files changed, 17 insertions(+), 13 deletions(-)
+
+commit ee4147edf2bff9a844a5b1e2f1c17fc5f988afa0
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 4 21:53:01 2007 +0000
+
+ Bug 106618 – CJK 'fixed width' font and 's p a c e d o u t' issue
+
+ 2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 106618 – CJK 'fixed width' font and 's p a c e d o u t' issue
+
+ * src/vtedraw.h:
+ * src/vteglyph.c: (_vte_glyph_cache_set_font_description):
+ * src/vtepango.c: (_vte_pango_set_text_font):
+ * src/vtepangox.c: (_vte_pango_x_set_text_font):
+ * src/vtexft.c: (_vte_xft_set_text_font):
+ Detect a change in font between wide-chars and recheck for a
+ fixed-width estimate.
+
+
+ svn path=/trunk/; revision=1618
+
+ ChangeLog | 12 ++++++++++++
+ src/vtedraw.h | 7 ++++++-
+ src/vteglyph.c | 24 ++++++++++++++++++++----
+ src/vtepango.c | 5 +++--
+ src/vtepangox.c | 5 +++--
+ src/vtexft.c | 23 +++++++++++++++++++----
+ 6 files changed, 63 insertions(+), 13 deletions(-)
+
+commit 71b1922740896554509a64e77c4f3598a2031b71
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Sun Feb 4 21:44:35 2007 +0000
+
+ Revert the accidentally applied patch for bug 324246. patch said is was
+ trying to reverse a revered patch - it lied.
+
+ svn path=/trunk/; revision=1617
+
+ src/vte.c | 14 +-------------
+ 1 files changed, 1 insertions(+), 13 deletions(-)
+
+commit 65eeaaa02a838e4309133628055fd93fe2b60210
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 4 21:40:44 2007 +0000
+
+ Micro-opts.
+
+ 2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Micro-opts.
+
+ * src/table.c: (_vte_table_match):
+ No need set to NULL.
+ * src/vte.c: (_vte_terminal_ensure_cursor):
+ If we have added some rows, the last is the current.
+
+
+ svn path=/trunk/; revision=1616
+
+ ChangeLog | 9 +++++++++
+ src/table.c | 2 +-
+ src/vte.c | 10 +++++-----
+ 3 files changed, 15 insertions(+), 6 deletions(-)
+
+commit 936abce0f37e25033f92660d5496e726828d656d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 4 20:19:08 2007 +0000
+
+ Move window/icon title changed to the post-processing emission - helps
+
+ 2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Move window/icon title changed to the post-processing emission - helps
+ with the artificial benchmark of replaying a recorded jhbuild script.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_finalize),
+ (vte_terminal_emit_icon_title_changed),
+ (vte_terminal_emit_window_title_changed),
+ (vte_terminal_emit_pending_signals):
+ * src/vteseq.c: (vte_sequence_handler_set_title_internal):
+
+
+ svn path=/trunk/; revision=1615
+
+ ChangeLog | 12 ++++++++++++
+ src/vte-private.h | 4 ++++
+ src/vte.c | 48 +++++++++++++++++++++++++++++++++++++++++++++---
+ src/vteseq.c | 36 ++++++------------------------------
+ 4 files changed, 67 insertions(+), 33 deletions(-)
+
+commit 69c2c22f9be0c9e28f3ca4512ada0cb299783634
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 4 18:58:09 2007 +0000
+
+ Broke clear-to-end-of-line by lowering the number of cells appended,
+
+ 2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Broke clear-to-end-of-line by lowering the number of cells appended,
+ instead of the number of cells invalidated.
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ * src/vteseq.c: (vte_sequence_handler_ce):
+
+
+ svn path=/trunk/; revision=1614
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 13 ++++++-------
+ src/vteseq.c | 2 +-
+ 3 files changed, 15 insertions(+), 8 deletions(-)
+
+commit 0d4331ffbeea7a92d68525b55205f1ae1a6b1fe4
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Sun Feb 4 17:40:03 2007 +0000
+
+ Spelling corrections.
+
+
+ svn path=/trunk/; revision=1613
+
+ ChangeLog | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 2ddb77285675c657d704e4bfb1431167088b4fff
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 4 16:18:44 2007 +0000
+
+ cf Bug 83285 – Treacle-slow scrolling in gnome-terminal on unaccelerated
+
+ 2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 83285 – Treacle-slow scrolling in gnome-terminal on unaccelerated X server
+
+ Another chunk of performance improvements - the majority focussing on
+ reducing the amount of work down per interrupt (input data from
+ child).
+
+ To handle reads without addition copies VTE_INPUT_CHUNK_SIZE chunks
+ are allocated on demand and filled from read with no further copy -
+ previously the read was into a local buffer and then immediately
+ copied into a _vte_buffer.
+ _vte_iso2022_process() is then adjusted to use a ptr+length, rather
+ than a _vte_buffer and is called for every input chunk (taking special
+ care over the boundary cases).
+
+ * src/interpret.c: (main):
+ * src/iso2022.c: (_vte_iso2022_fragment_input),
+ (process_8_bit_sequence), (process_cdata), (_vte_iso2022_process):
+ * src/iso2022.h:
+ * src/vte-private.h:
+ * src/vte.c: (get_chunk), (release_chunk), (prune_chunks),
+ (_vte_incoming_chunks_release), (_vte_incoming_chunks_length),
+ (_vte_incoming_chunks_count), (_vte_incoming_chunks_reverse),
+ (vte_terminal_match_check_internal), (_vte_terminal_ensure_cursor),
+ (vte_terminal_set_colors), (_vte_terminal_insert_char),
+ (vte_terminal_catch_child_exited), (vte_terminal_eof),
+ (vte_terminal_process_incoming), (_vte_terminal_feed_chunks),
+ (vte_terminal_io_read), (vte_terminal_feed), (vte_terminal_send),
+ (vte_terminal_init), (vte_terminal_finalize), (vte_terminal_reset),
+ (remove_from_active_list), (need_processing), (update_regions),
+ (update_repeat_timeout):
+ * src/vte.h:
+ * src/vteseq.c: (vte_sequence_handler_cb),
+ (vte_sequence_handler_ce), (vte_sequence_handler_ec):
+
+
+
+ svn path=/trunk/; revision=1612
+
+ ChangeLog | 36 ++++
+ src/interpret.c | 3 +-
+ src/iso2022.c | 61 +++----
+ src/iso2022.h | 5 +-
+ src/vte-private.h | 9 +-
+ src/vte.c | 470 ++++++++++++++++++++++++++++++++++++++---------------
+ src/vte.h | 1 -
+ src/vteseq.c | 17 +--
+ 8 files changed, 422 insertions(+), 180 deletions(-)
+
+commit d5defbeda929f31723f2a571e0f387d11d7c15e0
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 4 16:06:50 2007 +0000
+
+ Store whether the codeset is ambiguous in a state variable, rather than
+
+ 2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Store whether the codeset is ambiguous in a state variable,
+ rather than every processing loop.
+
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous),
+ (_vte_iso2022_state_new), (_vte_iso2022_find_nextctl):
+
+
+ svn path=/trunk/; revision=1611
+
+ ChangeLog | 8 ++++++++
+ src/iso2022.c | 18 ++++++++----------
+ 2 files changed, 16 insertions(+), 10 deletions(-)
+
+commit 5e903c991928a6f3d111f9604e85618d78bfe930
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 4 16:03:39 2007 +0000
+
+ Remove zero-initialisers after g_slice_new0(). Print out the width range.
+
+ 2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c: (_vte_xft_create), (_vte_xft_destroy):
+ Remove zero-initialisers after g_slice_new0().
+ * src/vtexft.c :(_vte_xft_set_text_font):
+ Print out the width range.
+
+
+ svn path=/trunk/; revision=1610
+
+ ChangeLog | 7 +++++++
+ src/vtexft.c | 23 +++++++++++------------
+ 2 files changed, 18 insertions(+), 12 deletions(-)
+
+commit 8099a6296069fafcbf8d5879704b401ea9ae374b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 4 16:01:15 2007 +0000
+
+ Missing space between -Wflags.
+
+ 2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ * configure.in:
+ Missing space between -Wflags.
+
+
+ svn path=/trunk/; revision=1609
+
+ ChangeLog | 5 +++++
+ configure.in | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 2bb339aaaae27e50956cf0bb71bb3c87a72707a5
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Feb 4 16:00:20 2007 +0000
+
+ Eliminate the temporary g_sliced parameter list, in favour of on-stack
+
+ 2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Eliminate the temporary g_sliced parameter list,
+ in favour of on-stack list.
+
+ * src/table.c: (_vte_table_arginfo_head_init),
+ (_vte_table_arginfo_alloc), (_vte_table_arginfo_head_revert),
+ (_vte_table_arginfo_head_reverse),
+ (_vte_table_arginfo_head_finalize), (_vte_table_addi),
+ (_vte_table_matchi), (_vte_table_extract_string),
+ (_vte_table_match):
+
+
+ svn path=/trunk/; revision=1608
+
+ ChangeLog | 12 ++++
+ src/table.c | 205 +++++++++++++++++++++++++++++++++++++----------------------
+ 2 files changed, 140 insertions(+), 77 deletions(-)
+
+commit ed896a8f250dbfbe065e711e2557919a4e403d1d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 2 12:37:13 2007 +0000
+
+ Dump the chosen fonts to VTE_DEBUG_MISC. Print out the font metrics ala
+
+ 2007-02-02 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
+ Dump the chosen fonts to VTE_DEBUG_MISC.
+ * src/vteft2.c: (_vte_ft2_set_text_font):
+ Print out the font metrics ala vtexft.c
+
+
+ svn path=/trunk/; revision=1607
+
+ ChangeLog | 7 +++++++
+ src/vtefc.c | 11 +++++++++++
+ src/vteft2.c | 5 +++++
+ 3 files changed, 23 insertions(+), 0 deletions(-)
+
+commit 38870b35c051b21d6ce9aa3ed9c34cc9d9051271
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 2 12:27:03 2007 +0000
+
+ Bug 322241 – Please switch to pkg-config to check for freetype
+
+ 2007-02-02 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 322241 – Please switch to pkg-config to check for freetype
+
+ * configure.in:
+ Prefer to use the freetype2.pc if available.
+
+
+ svn path=/trunk/; revision=1606
+
+ ChangeLog | 7 +++++++
+ configure.in | 10 +++++++---
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+commit 05b0b2d1f64a6c9208930e43f2b81ec5106c50e7
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Feb 2 12:12:08 2007 +0000
+
+ Bug 322240 – Usage of pkg-config privates header
+
+ 2007-02-02 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 322240 – Usage of pkg-config privates header
+
+ * vte.pc.in:
+ Move @FT2_LIBS@ to Libs.private.
+
+
+ svn path=/trunk/; revision=1605
+
+ ChangeLog | 7 +++++++
+ vte.pc.in | 3 ++-
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+commit 1d2b8bf16d531efd4d649daf4a09b3f68514fac4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 1 23:26:45 2007 +0000
+
+ cf Bug 403275 – crash in Terminal: I was typing reset on th...
+
+ 2007-02-01 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 403275 – crash in Terminal: I was typing reset on th...
+
+ Not the crash, just a freeze found whilst trying to reproduce the
+ bug on trunk.
+
+ * src/vte.c: (remove_from_active_list):
+ Don't remove the terminal from the active list if it still
+ has pending redraws.
+
+ * src/vte.c: (process_timeout), (update_timeout):
+ Reorder the loop to remove the terminal from the active list
+ if it no longer needs processing.
+
+
+ svn path=/trunk/; revision=1604
+
+ ChangeLog | 15 +++++++++++++++
+ src/vte.c | 12 +++++++-----
+ 2 files changed, 22 insertions(+), 5 deletions(-)
+
+commit 40584615bfa12c0c3dba969f11dea6fb63617fb5
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 1 22:46:02 2007 +0000
+
+ Extract the bits the test needs out of debian.vim.
+
+ 2007-02-01 Chris Wilson <chris chris-wilson co uk>
+
+ * perf/scroll.vim:
+ Extract the bits the test needs out of debian.vim.
+
+
+ svn path=/trunk/; revision=1603
+
+ ChangeLog | 5 +++++
+ perf/scroll.vim | 11 ++++++++++-
+ 2 files changed, 15 insertions(+), 1 deletions(-)
+
+commit c83dd80e28ef70bbfb8423e976086a79c038533b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 1 16:20:23 2007 +0000
+
+ As spotted on bug 399617c8, we convert an array of unichars to a string
+
+ 2007-02-01 Chris Wilson <chris chris-wilson co uk>
+
+ As spotted on bug 399617c8, we convert an array of unichars to a
+ string and then iterate over the string interpreting bytes as
+ unichars.
+
+ * src/table.c: (_vte_table_extract_numbers):
+ Dispense with the temporary string and process the unichar
+ array directly.
+
+
+ svn path=/trunk/; revision=1602
+
+ ChangeLog | 10 ++++++++++
+ src/table.c | 21 ++++++---------------
+ 2 files changed, 16 insertions(+), 15 deletions(-)
+
+commit 5e11ab51348ff7bb01e0afac8058c044bc6750bb
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 1 10:31:04 2007 +0000
+
+ Bug 403159 – XftDrawSetClipRectangles() silently fails on ppc->i386
+
+ 2007-02-01 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 403159 – XftDrawSetClipRectangles() silently fails on ppc->i386
+
+ * src/vtexft.c: (_vte_xft_clip):
+ Precompute clip offsets.
+
+
+ svn path=/trunk/; revision=1601
+
+ ChangeLog | 7 +++++++
+ src/vtexft.c | 9 ++++++---
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+commit 31b9530f77e559b507960e9090ae8ff37deeb0cc
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Feb 1 00:32:13 2007 +0000
+
+ Bug 382245 – __PyGtk_API multiply defined in python module
+
+ 2007-02-01 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 382245 – __PyGtk_API multiply defined in python module
+
+ * configure.in:
+ Add -fno-common to MAYBE_WARN in order to catch future
+ errors of this type.
+ * python/vte.override:
+ Define PYGTK_NO_IMPORT.
+
+
+ svn path=/trunk/; revision=1600
+
+ ChangeLog | 10 ++++++++++
+ configure.in | 3 ++-
+ python/vte.override | 1 +
+ 3 files changed, 13 insertions(+), 1 deletions(-)
+
+commit 086175a78cd41fd877e8182e2be25071b73c490d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 23:15:11 2007 +0000
+
+ Bug 155687 – Scroll region \E[NN;MMr should set cursor to home
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 155687 – Scroll region \E[NN;MMr should set cursor to home
+
+ Patch originally by Michele Baldessari.
+
+ * src/vteseq.c: (vte_sequence_handler_cs):
+ Move the cursor to (0,0) rather than clamping the cursor to
+ be inside the scroll region.
+
+
+ svn path=/trunk/; revision=1599
+
+ ChangeLog | 10 ++++++++++
+ src/vteseq.c | 6 ++----
+ 2 files changed, 12 insertions(+), 4 deletions(-)
+
+commit f66bd6eba689911aa939a017601777b9a738cbf6
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 22:22:53 2007 +0000
+
+ In a few places the contents of a GValue were being used without checking
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ In a few places the contents of a GValue were being used without
+ checking that they were of the expected type.
+
+ cf Bug 117945 which mentions stack corruption inside
+ vte_sequence_handler_delete_lines() - one of the corrected instances.
+
+ * src/vteseq.c: (vte_sequence_handler_al),
+ (vte_sequence_handler_cs), (vte_sequence_handler_cS),
+ (vte_sequence_handler_dl),
+ (vte_sequence_handler_character_attributes),
+ (vte_sequence_handler_insert_lines),
+ (vte_sequence_handler_delete_lines),
+ (vte_sequence_handler_device_status_report),
+ (vte_sequence_handler_dec_device_status_report):
+ Check that the GValue holds a long before dereference.
+
+
+ svn path=/trunk/; revision=1598
+
+ ChangeLog | 18 +++++
+ src/vteseq.c | 216 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 135 insertions(+), 99 deletions(-)
+
+commit 469132e1784df0ff7d0751b532806d5ebbf5acb9
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 21:07:46 2007 +0000
+
+ Back to the old-style io loop as _vte_buffer_append() is too slow - on a
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Back to the old-style io loop as _vte_buffer_append() is too slow - on
+ a slow system the read can fill before the data is copied (even more
+ apparent under valgrind).
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_io_read):
+
+
+ svn path=/trunk/; revision=1597
+
+ ChangeLog | 9 +++++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 17 +++++++++++------
+ 3 files changed, 21 insertions(+), 7 deletions(-)
+
+commit edcf192995f5ca7daabfea981e23ff30a1500271
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 19:50:59 2007 +0000
+
+ Use the display stashed inside the font and not the default display!
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Use the display stashed inside the font and not the default display!
+
+ * src/vtexft.c: (_vte_xft_char_exists), (_vte_xft_text_extents),
+ (_vte_xft_font_open), (_vte_xft_font_close),
+ (_vte_xft_font_for_char), (_vte_xft_draw_text):
+
+
+ svn path=/trunk/; revision=1596
+
+ ChangeLog | 8 ++++++++
+ src/vtexft.c | 36 ++++++++++--------------------------
+ 2 files changed, 18 insertions(+), 26 deletions(-)
+
+commit e382c37eb053b6bdea1f293d9aa93fac4e36f519
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 19:02:10 2007 +0000
+
+ A mixed bag of cleanups.
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ A mixed bag of cleanups.
+
+ * configure.in:
+ * src/pty.c: (_vte_pty_set_utf8):
+ Test for existence of tc[sg]etattr.
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_changed),
+ (vte_terminal_set_color_internal), (vte_terminal_handle_sequence),
+ (_vte_terminal_enable_input_source), (vte_terminal_io_read),
+ (vte_terminal_init), (vte_terminal_unrealize),
+ (vte_terminal_finalize), (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_emit_pending_signals), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+ Move idle signal emission to display handlers.
+ * src/vtedraw.h:
+ Add '&' to the single width characters.
+ * src/vteseq.c: (_vte_sequence_get_handler):
+ * src/vteseq.h:
+ Drop the extraneous GQuark parameter.
+ * src/vtexft.c: (_vte_xft_set_text_font):
+ Avoid use of strlen for a compile-time fixed length string.
+
+
+ svn path=/trunk/; revision=1595
+
+ ChangeLog | 26 ++++++++++
+ configure.in | 2 +-
+ src/pty.c | 14 +++---
+ src/vte-private.h | 4 +-
+ src/vte.c | 137 +++++++++++++++++++++++++++-------------------------
+ src/vtedraw.h | 2 +-
+ src/vteseq.c | 3 +-
+ src/vteseq.h | 3 +-
+ src/vtexft.c | 2 +-
+ 9 files changed, 111 insertions(+), 82 deletions(-)
+
+commit 7134bd1fe35596343ef2b919e7ef14a5e1bc6a6c
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Wed Jan 31 15:37:04 2007 +0000
+
+ Dropped a most important '!' during last merge.
+
+
+ svn path=/trunk/; revision=1594
+
+ src/vte.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit c9280a87e0f27b3caf3948196a7cf5f78b06d7f0
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 15:01:36 2007 +0000
+
+ Bug 147784 – cursor unvisible under mouse highlight
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 147784 – cursor unvisible under mouse highlight
+
+ Original patch by Chris Health
+
+ * src/vte.c: (vte_terminal_paint):
+ Reverse cursor color if it is in the selected region and draw
+ it as an outline.
+
+
+ svn path=/trunk/; revision=1593
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 53 ++++++++++++++++++++++++++++++++++-------------------
+ 2 files changed, 44 insertions(+), 19 deletions(-)
+
+commit dfd5c7d73b0bca978bc47d5b697ba3ea6ccf668b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 13:50:56 2007 +0000
+
+ Bug 368894 – crash in Terminal: I started gnome-terminal...
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 368894 – crash in Terminal: I started gnome-terminal...
+
+ * src/vtebg.c: (vte_bg_cache_search), (vte_bg_get_pixmap),
+ (vte_bg_get_pixbuf):
+ When retrieving a cached pixmap check that the visual
+ matches the current request.
+
+
+ svn path=/trunk/; revision=1592
+
+ ChangeLog | 9 +++++++++
+ src/vtebg.c | 12 ++++++++----
+ 2 files changed, 17 insertions(+), 4 deletions(-)
+
+commit ccf4b8470fba1441eceb54f4ec5e8410863bf9c9
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 13:32:05 2007 +0000
+
+ Use gdk_error_trap_{push,pop} around raw Xft calls - about a path outside
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Use gdk_error_trap_{push,pop} around raw Xft calls - about a
+ path outside of vte_draw_{begin,end}.
+
+ * src/vtexft.c: (_vte_xft_set_text_font):
+
+
+ svn path=/trunk/; revision=1591
+
+ ChangeLog | 7 +++++++
+ src/vtexft.c | 4 ++++
+ 2 files changed, 11 insertions(+), 0 deletions(-)
+
+commit 9105d7d5bbcc70bfab88840f262b5efe40e75cb0
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 13:27:17 2007 +0000
+
+ Use gdk_error_trap_{push,pop} around raw X11 and Xft calls. cf Bug 368894.
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Use gdk_error_trap_{push,pop} around raw X11 and Xft calls.
+ cf Bug 368894.
+
+ * src/vtexft.c: (_vte_xft_font_for_char), (_vte_xft_start),
+ (_vte_xft_end):
+
+
+ svn path=/trunk/; revision=1590
+
+ ChangeLog | 8 ++++++++
+ src/vtexft.c | 22 ++++++++++------------
+ 2 files changed, 18 insertions(+), 12 deletions(-)
+
+commit 6d4d2801a11d56fcf92896b0bab3f2de8c9fd377
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 12:33:56 2007 +0000
+
+ Use gperf to calculate a more optimal vte_sequence_get_handler(). This
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Use gperf to calculate a more optimal vte_sequence_get_handler().
+ This reduces vte_sequence_get_handler() from ~13% of the runtime
+ during 'seq 1 1e6' to ~.5% (cumulative).
+
+ * src/Makefile.am:
+ * src/vteseq-2.c: (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-2.gperf:
+ * src/vteseq-n.c: (vteseq_n_hash), (vteseq_n_lookup):
+ * src/vteseq-n.gperf:
+ * src/vteseq.c: (_vte_sequence_get_handler):
+
+
+ svn path=/trunk/; revision=1589
+
+ ChangeLog | 13 +
+ src/Makefile.am | 11 +
+ src/vteseq-2.c | 1246 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vteseq-2.gperf | 274 ++++++++++++
+ src/vteseq-n.c | 815 ++++++++++++++++++++++++++++++++++
+ src/vteseq-n.gperf | 111 +++++
+ src/vteseq.c | 61 +---
+ 7 files changed, 2476 insertions(+), 55 deletions(-)
+
+commit e427710779ab6d2dbd28f392a300b30311620705
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Wed Jan 31 11:05:24 2007 +0000
+
+ And the ChangeLog entry for the last commit. Grrr.
+
+ svn path=/trunk/; revision=1588
+
+ ChangeLog | 9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 87693a8b96dd1516e25d791208c5e8d764f4ee46
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 31 10:59:42 2007 +0000
+
+ Rudimentary vim scrolling benchmark.
+
+ 2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Rudimentary vim scrolling benchmark.
+
+ * perf/Makefile.am:
+ * perf/UTF-8-demo.txt:
+ * perf/scroll.vim:
+ * perf/vim.sh:
+
+
+ svn path=/trunk/; revision=1587
+
+ perf/Makefile.am | 3 +
+ perf/UTF-8-demo.txt | 212 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ perf/scroll.vim | 32 ++++++++
+ perf/vim.sh | 7 ++
+ 4 files changed, 254 insertions(+), 0 deletions(-)
+
+commit d860aa616596055c0c64a47c9255f294e700429e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Jan 30 19:43:06 2007 +0000
+
+ Bug 402329 – Rendering problem with underlines and cursor
+
+ 2007-01-30 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 402329 – Rendering problem with underlines and cursor
+
+ * src/vte.c: (vte_terminal_paint):
+ Check hilite state when redrawing character under cursor.
+
+
+ svn path=/trunk/; revision=1586
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 22 ++++++++++++++++++++--
+ 2 files changed, 27 insertions(+), 2 deletions(-)
+
+commit 60cd6a884d3dddafac9342fdfdb12ebe58dc7cc5
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Tue Jan 30 17:52:12 2007 +0000
+
+ fix trivial compile error in last commit
+
+ svn path=/trunk/; revision=1585
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit b48efa17a8fc1671f64a3fe96f8178b4ffd3a98b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Jan 30 17:45:04 2007 +0000
+
+ Clean up the read IO loop.
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_io_read):
+ Clean up the read IO loop.
+
+
+ svn path=/trunk/; revision=1584
+
+ ChangeLog | 6 ++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 39 ++++++++++++++++++---------------------
+ 3 files changed, 25 insertions(+), 22 deletions(-)
+
+commit a180e29a504fa25240d3208a5470cfa875678f25
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 17:46:12 2007 +0000
+
+ NULL return from pcre_study() does not necessarily mean an error occurred.
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ NULL return from pcre_study() does not necessarily mean an error
+ occurred.
+
+ * src/vteregex.c: (_vte_regex_compile), (_vte_regex_exec):
+
+
+ svn path=/trunk/; revision=1580
+
+ ChangeLog | 7 +++++++
+ src/vteregex.c | 6 +++---
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+commit 63ef7cf260fe280afd0b5d5ca99aea38bf8931bf
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 17:34:32 2007 +0000
+
+ Kill a couple more compiler warnings.
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_terminal_set_pointer_visible),
+ (_vte_terminal_fudge_pango_colors):
+ Kill a couple more compiler warnings.
+
+
+ svn path=/trunk/; revision=1579
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 5 ++---
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+commit 9814f9e5cb46a98f1ee7abf18d8d2074e686796b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 17:14:57 2007 +0000
+
+ Bug 336105 – gnome-terminal crashes when termcap not found
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 336105 – gnome-terminal crashes when termcap not found
+
+ * src/matcher.c: (_vte_matcher_init):
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_set_default_tabstops),
+ (vte_terminal_key_press), (vte_terminal_set_emulation),
+ (_vte_terminal_inline_error_message), (vte_terminal_set_termcap),
+ (vte_terminal_init), (vte_terminal_finalize),
+ (vte_terminal_draw_cells):
+ Detect and issue an inline warning when we fail
+ to load a termcap.
+
+
+ svn path=/trunk/; revision=1578
+
+ ChangeLog | 14 ++++++
+ src/matcher.c | 53 +++++++++++----------
+ src/vte-private.h | 2 +
+ src/vte.c | 129 +++++++++++++++++++++++++++++++++--------------------
+ 4 files changed, 124 insertions(+), 74 deletions(-)
+
+commit 4deb919b44bdf2af9b0fb7c333b56e44ad64406c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 16:47:17 2007 +0000
+
+ Tighten the invalidated cells.
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Tighten the invalidated cells.
+
+ * src/vte.c: (_vte_terminal_select_text):
+ * src/vteseq.c: (vte_sequence_handler_cb):
+
+
+ svn path=/trunk/; revision=1577
+
+ ChangeLog | 7 ++++
+ src/vte.c | 91 ++++++++++++++++++++++++++++-----------------------------
+ src/vteseq.c | 2 +-
+ 3 files changed, 53 insertions(+), 47 deletions(-)
+
+commit 136c800352d416d7c4257b211653a4412173b4e3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 16:20:47 2007 +0000
+
+ More compiler warnings.
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ More compiler warnings.
+
+ * src/vtepangox.c: (_vte_pango_x_set_text_font),
+ (_vte_pango_x_draw_text):
+ * src/vteregex.c: (_vte_regex_exec):
+
+
+ svn path=/trunk/; revision=1576
+
+ ChangeLog | 8 ++++++++
+ src/vtepangox.c | 5 ++---
+ src/vteregex.c | 26 +++++++++++++-------------
+ 3 files changed, 23 insertions(+), 16 deletions(-)
+
+commit 4458f91bcb21c9bec6584b2d9ff2efff6d8b6f8d
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Jan 29 16:12:24 2007 +0000
+
+ Whitespace touch-up.
+
+ svn path=/trunk/; revision=1575
+
+ configure.in | 18 ++++++++++--------
+ 1 files changed, 10 insertions(+), 8 deletions(-)
+
+commit 20763c0f09f499c33da5ac368beed75afb34e152
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 16:09:02 2007 +0000
+
+ Detect availability of PCRE.
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Detect availability of PCRE.
+
+ * configure.in:
+ * src/Makefile.am:
+
+
+ svn path=/trunk/; revision=1574
+
+ ChangeLog | 7 +++++++
+ configure.in | 16 ++++++++++++++++
+ src/Makefile.am | 4 ++--
+ 3 files changed, 25 insertions(+), 2 deletions(-)
+
+commit e1ecd0b2aa1391728dae48539b70c04c68b66371
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 15:21:20 2007 +0000
+
+ Improve handling of multi-row clears.
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Improve handling of multi-row clears.
+
+ * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_draw_rows),
+ (vte_terminal_paint):
+
+
+ svn path=/trunk/; revision=1573
+
+ ChangeLog | 7 ++++
+ src/vte.c | 112 +++++++++++++++++++++++--------------------------------------
+ 2 files changed, 49 insertions(+), 70 deletions(-)
+
+commit 7707048400d6e77e63c31fc17eadeec51f0028c9
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 14:53:34 2007 +0000
+
+ Add debugging flags for printing out cells contents and attributes as they
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Add debugging flags for printing out cells contents and attributes as
+ they are rendered.
+
+ * src/debug.c: (_vte_debug_parse_string):
+ * src/debug.h:
+ * src/vte.c: (vte_terminal_draw_cells):
+
+
+ svn path=/trunk/; revision=1572
+
+ ChangeLog | 9 +++++++++
+ src/debug.c | 3 +++
+ src/debug.h | 3 ++-
+ src/vte.c | 11 +++++++++++
+ src/vteft2.c | 2 +-
+ src/vtexft.c | 2 +-
+ 6 files changed, 27 insertions(+), 3 deletions(-)
+
+commit 55ffe367655986fac869408447c7f6527e085e6d
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Jan 29 14:41:24 2007 +0000
+
+ another small missing compare from last commit
+
+ svn path=/trunk/; revision=1571
+
+ src/vte.c | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 301ab762f28f108d652cbb4fafbcd4a4991e74b3
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Jan 29 14:40:09 2007 +0000
+
+ small missing compare from last commit
+
+ svn path=/trunk/; revision=1570
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 7a2047f1d42891731b7badbeecff41c70b7a5404
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 14:36:51 2007 +0000
+
+ Don't issue glyph items for blank cells.
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ Don't issue glyph items for blank cells.
+
+
+ svn path=/trunk/; revision=1569
+
+ ChangeLog | 5 +++++
+ src/vte.c | 54 +++++++++++++++++++++++++++++++-----------------------
+ 2 files changed, 36 insertions(+), 23 deletions(-)
+
+commit 39039a31520471520cac6e5ce642827cc33e74c6
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 13:30:50 2007 +0000
+
+ Add -Wshadow to MAYBE_WARN
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * configure.in:
+ Add -Wshadow to MAYBE_WARN
+ * src/ring.c: (_vte_ring_remove):
+ * src/table.c: (_vte_table_matchi):
+ * src/vtedraw.c: (_vte_draw_clip):
+ * src/vteskel.c:
+ Clean up some compiler warnings.
+
+
+ svn path=/trunk/; revision=1568
+
+ ChangeLog | 10 ++++++++++
+ configure.in | 2 +-
+ src/ring.c | 2 +-
+ src/table.c | 9 +++++----
+ src/vtedraw.c | 2 +-
+ src/vteskel.c | 2 +-
+ 6 files changed, 19 insertions(+), 8 deletions(-)
+
+commit 541b505fd9b945f4f2838fc0ff82e3ea23783d7b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 13:21:30 2007 +0000
+
+ Add the NULL clip func to the skeleton function table.
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteskel.c:
+ Add the NULL clip func to the skeleton function table.
+
+
+ svn path=/trunk/; revision=1567
+
+ ChangeLog | 5 +++++
+ src/vteskel.c | 1 +
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 08b8edba642cd09a8ab32ca3dec289df537374f3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 13:06:20 2007 +0000
+
+ Update match hilite before showing the pointer as the choice of cursor
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Update match hilite before showing the pointer as the choice of
+ cursor depends on whether the pointer is above a matched region.
+
+ * src/vte.c: (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release):
+
+
+ svn path=/trunk/; revision=1566
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 32 +++++++++++++++++---------------
+ 2 files changed, 25 insertions(+), 15 deletions(-)
+
+commit 345f7d53277d1e29f768bc8e163c148000e3f83c
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Jan 29 12:45:17 2007 +0000
+
+ missed the ChangeLog entry
+
+ svn path=/trunk/; revision=1565
+
+ ChangeLog | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit ac1b3dd29d8110aa1fa645bef4f847abfa825263
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 12:38:55 2007 +0000
+
+ Only update the matched region if we move the pointer outside of the
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Only update the matched region if we move the pointer outside of the
+ currently matched region.
+ And only invalidate the cells underneath the matched region.
+
+ * src/vte.c: (_vte_invalidate_region),
+ (vte_terminal_match_hilite_clear), (cursor_inside_match),
+ (vte_terminal_match_hilite), (vte_terminal_draw_rows):
+
+
+ svn path=/trunk/; revision=1564
+
+ ChangeLog | 8 +++++
+ src/vte.c | 96 ++++++++++++++++++++++++++++++++++++++++++------------------
+ 2 files changed, 75 insertions(+), 29 deletions(-)
+
+commit 3642bbe5eee21d433e0c76b0432dd53a1c3e8e94
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 11:45:00 2007 +0000
+
+ Fix a memleak.
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/table.c: (_vte_table_free):
+ Fix a memleak.
+
+
+ svn path=/trunk/; revision=1563
+
+ ChangeLog | 5 +++++
+ src/table.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+commit fb7c1e15c6ccab35857820ca95e1a6c99c2fa06e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 11:00:47 2007 +0000
+
+ ==26147== 2,895 (352 direct, 2,543 indirect) bytes in 22 blocks are
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ ==26147== 2,895 (352 direct, 2,543 indirect) bytes in 22 blocks are definitely lost in loss record
107 of 170
+ ==26147== at 0x4021380: malloc (vg_replace_malloc.c:149)
+ ==26147== by 0x4E85965: g_malloc (gmem.c:131)
+ ==26147== by 0x4E95537: g_slice_alloc (gslice.c:777)
+ ==26147== by 0x4E7C255: g_list_prepend (glist.c:95)
+ ==26147== by 0x428B887: vte_terminal_feed (vte.c:10991)
+ ==26147== by 0x429DD20: vte_terminal_io_read (vte.c:3214)
+ ==26147== by 0x4EA7A8C: g_io_unix_dispatch (giounix.c:162)
+ ==26147== by 0x4E7E481: g_main_context_dispatch (gmain.c:2045)
+ ==26147== by 0x4E8145E: g_main_context_iterate (gmain.c:2677)
+ ==26147== by 0x4E81808: g_main_loop_run (gmain.c:2881)
+ ==26147== by 0x45BA503: gtk_main (gtkmain.c:1148)
+ ==26147== by 0x805F7A3: main (terminal.c:1773)
+
+ * src/vte.c: (remove_from_active_list), (process_timeout),
+ (update_repeat_timeout):
+ g_list_delete_link() is the one that actually frees the link.
+ s/g_list_remove_link/g_list_delete_link/.
+
+
+ svn path=/trunk/; revision=1562
+
+ ChangeLog | 21 +++++++++++++++++++++
+ src/vte.c | 6 +++---
+ 2 files changed, 24 insertions(+), 3 deletions(-)
+
+commit ba77eff2c8b3d5ad653a1c715a9c300fc7d56957
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 10:59:01 2007 +0000
+
+ ==26147== Conditional jump or move depends on uninitialised value(s)
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ ==26147== Conditional jump or move depends on uninitialised value(s)
+ ==26147== at 0x42AB9F7: _vte_rdb_search (vterdb.c:95)
+ ==26147== by 0x42ABB40: _vte_rdb_quark (vterdb.c:201)
+ ==26147== by 0x42ABB9F: _vte_rdb_get_hintstyle (vterdb.c:241)
+ ==26147== by 0x42A7952: _vte_fc_patterns_from_pango_font_desc (vtefc.c:302)
+ ==26147== by 0x42B4E9B: _vte_xft_set_text_font (vtexft.c:103)
+ ==26147== by 0x42A6BE5: _vte_draw_set_text_font (vtedraw.c:258)
+ ==26147== by 0x428C62B: vte_terminal_ensure_font (vte.c:5963)
+ ==26147== by 0x4290295: vte_terminal_size_request (vte.c:6613)
+ ==26147== by 0x4E25228: g_cclosure_marshal_VOID__BOXED (gmarshal.c:566)
+ ==26147== by 0x4E17038: g_type_class_meta_marshal (gclosure.c:567)
+ ==26147== by 0x4E188FC: g_closure_invoke (gclosure.c:490)
+ ==26147== by 0x4E29779: signal_emit_unlocked_R (gsignal.c:2370)
+ ==26147==
+
+ * src/vterdb.c: (_vte_rdb_get):
+ Check the result of the get_property_string before using the
+ returned values.
+
+
+ svn path=/trunk/; revision=1561
+
+ ChangeLog | 21 +++++++++++++++++++++
+ src/vterdb.c | 12 ++++++------
+ 2 files changed, 27 insertions(+), 6 deletions(-)
+
+commit 9a0a78fa5ea84e91c5d440d701eec8780e5daa78
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Jan 29 09:42:55 2007 +0000
+
+ back out the "innoculous, little" change
+
+ svn path=/trunk/; revision=1560
+
+ src/vte.c | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 17a656976fbbf5be1843c54b079e46ef77be21aa
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 29 09:29:52 2007 +0000
+
+ Merge draw_cells() with the background clear, as generating items for many
+
+ 2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_draw_rows):
+ Merge draw_cells() with the background clear, as generating
+ items for many rows and then splitting again in draw cells is
+ simply inefficient.
+
+
+ svn path=/trunk/; revision=1559
+
+ ChangeLog | 11 ++++++-
+ src/vte.c | 89 +++++++++++++++----------------------------------------------
+ 2 files changed, 31 insertions(+), 69 deletions(-)
+
+commit 464919dcb403e72ecb064b3c19e2f278264d4c5b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sun Jan 28 22:55:18 2007 +0000
+
+ Bug 401215 – Multi-pass renderering
+
+ 2007-01-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 401215 – Multi-pass renderering
+
+ * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_clear_cells),
+ (vte_terminal_draw_cells_with_attributes),
+ (vte_terminal_draw_rows), (vte_terminal_paint):
+ Break the draw_rows() loop into two passes - first clear the
+ background and second render the text.
+ Add another function based on draw_cells() that just clears the
+ background and make clearing the background optional in
+ draw_cells() - updating callers accordingly.
+ Adventurous souls are required to clean up draw_rows().
+
+
+ svn path=/trunk/; revision=1558
+
+ ChangeLog | 14 +++++
+ src/vte.c | 184 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ 2 files changed, 183 insertions(+), 15 deletions(-)
+
+commit 77bc976748412206136316800c5092d3a5e72b2e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Jan 27 21:25:19 2007 +0000
+
+ Fix compilation *with* debugging enable. Grrr.
+
+ 2007-01-27 Chris Wilson <chris chris-wilson co uk>
+
+ Fix compilation *with* debugging enable.
+ Grrr.
+
+ * src/keymap.c: (_vte_keysym_print):
+
+
+ svn path=/trunk/; revision=1557
+
+ ChangeLog | 7 +++++++
+ src/keymap.c | 18 +++++++++---------
+ 2 files changed, 16 insertions(+), 9 deletions(-)
+
+commit b2f17a431aa9ca64f9143e97610e2ff83f9247c7
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Jan 27 18:33:55 2007 +0000
+
+ Fix compilation without debugging enable.
+
+ 2007-01-27 Chris Wilson <chris chris-wilson co uk>
+
+ Fix compilation without debugging enable.
+
+ * src/keymap.c: (_vte_keysym_print), (_vte_keymap_map):
+ * src/vte.c: (display_control_sequence):
+ * src/vteapp.c: (main):
+
+
+ svn path=/trunk/; revision=1556
+
+ ChangeLog | 8 ++++
+ src/keymap.c | 121 ++++++++++++++++++++++++++++++++++-----------------------
+ src/vte.c | 4 +-
+ src/vteapp.c | 2 -
+ 4 files changed, 82 insertions(+), 53 deletions(-)
+
+commit f17c947d6b3ce470f65d32b28349532804f8f4c5
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 23:03:56 2007 +0000
+
+ Provide a safe fallback for non-C99 compilers (well actually anything that
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/debug.h:
+ Provide a safe fallback for non-C99 compilers (well actually
+ anything that isn't a recent gcc at the moment).
+
+
+ svn path=/trunk/; revision=1555
+
+ ChangeLog | 6 ++++++
+ src/debug.h | 14 ++++++++++++++
+ 2 files changed, 20 insertions(+), 0 deletions(-)
+
+commit 1814e0b3bac34f5347b38df011adeb901a249dd9
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Jan 26 22:49:39 2007 +0000
+
+ Update ChangeLog to include original author.
+
+
+ svn path=/trunk/; revision=1554
+
+ ChangeLog | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit d6c99f12da7c00a9c52ef752df37ce6bb5c8e467
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 22:42:52 2007 +0000
+
+ Bug 157267 – _vte_terminal_fudge_pango_colors() breaks Japanese input
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 157267 – _vte_terminal_fudge_pango_colors() breaks Japanese input style
+
+ * src/vte.c: (_vte_terminal_fudge_pango_colors):
+ Check the attributes for each cell rather than assuming the
+ pango attributes (and cell attributes) are the same for the
+ whole string.
+
+
+ svn path=/trunk/; revision=1553
+
+ ChangeLog | 9 ++++++++
+ src/vte.c | 63 +++++++++++++++++++++++++++++++++++++++++++-----------------
+ 2 files changed, 54 insertions(+), 18 deletions(-)
+
+commit 24f2395dade2d8334e34f6e7f2252cd4d102d8b3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 21:40:45 2007 +0000
+
+ Iterating over all queued exposures and drawing on top of the flash does
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c: (vte_sequence_handler_vb):
+ Iterating over all queued exposures and drawing on top of the
+ flash does not sense. Simply flush the draw.
+
+
+ svn path=/trunk/; revision=1552
+
+ ChangeLog | 6 ++++++
+ src/vteseq.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 124a489f0781fb0b7eb96cf814aa3b5f68db318c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 21:24:24 2007 +0000
+
+ s/_VTE_DEBUG_ON/_VTE_DEBUG_IF/ and don't include the code block inside the
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ s/_VTE_DEBUG_ON/_VTE_DEBUG_IF/ and don't include
+ the code block inside the macro.
+
+ * src/debug.h:
+ * src/iso2022.c: (process_control), (_vte_iso2022_process):
+ * src/keymap.c: (_vte_keymap_map):
+ * src/matcher.c: (_vte_matcher_init):
+ * src/pty.c: (_vte_pty_run_on_pty):
+ * src/table.c: (_vte_table_addi), (_vte_table_matchi),
+ (_vte_table_extract_numbers), (_vte_table_match):
+ * src/trie.c: (_vte_trie_addx):
+ * src/vte.c: (vte_terminal_match_check_internal),
+ (vte_terminal_match_check), (vte_terminal_handle_sequence),
+ (vte_terminal_catch_child_exited), (vte_terminal_process_incoming),
+ (vte_terminal_io_write), (vte_terminal_send),
+ (vte_terminal_key_press), (vte_terminal_copy_cb),
+ (vte_terminal_set_font_full), (vte_terminal_realize),
+ (vte_terminal_paint), (vte_terminal_scroll):
+ * src/vteapp.c: (main):
+ * src/vtebg.c: (vte_bg_root_pixmap):
+
+
+ svn path=/trunk/; revision=1551
+
+ ChangeLog | 23 ++++++++
+ src/debug.h | 8 +--
+ src/iso2022.c | 8 ++--
+ src/keymap.c | 8 ++--
+ src/matcher.c | 4 +-
+ src/pty.c | 4 +-
+ src/table.c | 167 ++++++++++++++++++++++++++++++++-------------------------
+ src/trie.c | 4 +-
+ src/vte.c | 96 +++++++++++++++++----------------
+ src/vteapp.c | 4 +-
+ src/vtebg.c | 8 ++--
+ 11 files changed, 189 insertions(+), 145 deletions(-)
+
+commit f3d61703c42e8f98f9011fbaa40f3d149a0cc1d4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 21:08:55 2007 +0000
+
+ Bug 400834 – Use a global display/process timeout
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400834 – Use a global display/process timeout
+
+ Currently each terminal uses it own display timeout. Given that
+ typical usage is several active terminals, there is an immediate
+ advantage (context switches, fairness, smoothness) to using a single
+ common timeout.
+
+ * src/debug.c: (_vte_debug_parse_string):
+ * src/debug.h:
+ Add VTE_DEBUG_TIMEOUT
+ * src/vte-private.h:
+ * src/vte.c: (update_regions), (_vte_invalidate_cells),
+ (_vte_invalidate_all), (vte_terminal_init),
+ (vte_terminal_class_init), (add_update_timeout),
+ (remove_from_active_list), (remove_update_timeout),
+ (add_process_timeout), (vte_terminal_stop_processing),
+ (vte_terminal_is_processing), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+ Modify to use a global timeout rather than individual
+ private timeouts.
+
+
+ svn path=/trunk/; revision=1550
+
+ ChangeLog | 23 +++++
+ src/debug.c | 3 +
+ src/debug.h | 3 +-
+ src/vte-private.h | 5 +-
+ src/vte.c | 250 ++++++++++++++++++++++++++++++++++++++---------------
+ 5 files changed, 211 insertions(+), 73 deletions(-)
+
+commit c88af9417d2414bc843058585592c71632e57a2e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 21:04:19 2007 +0000
+
+ Unable to set background scrolling mode from cmdline due to variable name
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Unable to set background scrolling mode from cmdline due to variable
+ name confusion.
+
+ * src/vteapp.c: (main):
+ --scroll should set scroll=TRUE rather than cursor=TRUE!
+
+
+ svn path=/trunk/; revision=1549
+
+ ChangeLog | 8 ++++++++
+ src/vteapp.c | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+commit ff948c92ee3406bd63c9e44072faa76b1daff216
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 20:57:15 2007 +0000
+
+ Bug 401082 – double-draw issue
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 401082 – double-draw issue
+
+ The main cause of this bug was not expanding the cleared area to cover
+ all the cells affected by the draw and forgetting to offset the clear
+ by VTE_PAD_WIDTH.
+
+ To counter the performance hit due to the expanded repaint area, each
+ backend is presented with the opportunity to apply a clip to the
+ exposed region before painting.
+
+ This also fixes bug 333157,
+
+ * src/vte.c: (_vte_invalidate_cells), (vte_terminal_paint_area),
+ (vte_terminal_paint):
+ * src/vtedraw.c: (_vte_draw_clip):
+ * src/vtedraw.h:
+ * src/vteft2.c: (_vte_ft2_end), (_vte_ft2_clip):
+ * src/vtegl.c:
+ * src/vtepango.c: (_vte_pango_clip):
+ * src/vtepangox.c: (_vte_pango_x_clip):
+ * src/vtexft.c: (_vte_xft_clip), (_vte_xft_draw_text):
+
+
+ svn path=/trunk/; revision=1548
+
+ ChangeLog | 24 +++++++++++++++++++++++
+ src/vte.c | 57 +++++++++++++++++++++++++++++++-----------------------
+ src/vtedraw.c | 11 ++++++++++
+ src/vtedraw.h | 2 +
+ src/vteft2.c | 10 +++++++++
+ src/vtegl.c | 1 +
+ src/vtepango.c | 8 +++++++
+ src/vtepangox.c | 8 +++++++
+ src/vtexft.c | 28 ++++++++++++++++++++++++++-
+ 9 files changed, 124 insertions(+), 25 deletions(-)
+
+commit a4607597bfee73da5bdb18e0c658e85ae2b6b350
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 18:33:45 2007 +0000
+
+ Tighten the _vte_invalidate_cells() to only those that we potentially
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_match_hilite):
+ * src/vteseq.c: (vte_sequence_handler_ce),
+ (vte_sequence_handler_dc), (vte_sequence_handler_ec):
+ Tighten the _vte_invalidate_cells() to only those that
+ we potentially modify.
+
+
+ svn path=/trunk/; revision=1547
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 23 +++++++++++++++++------
+ src/vteseq.c | 10 +++++++---
+ 3 files changed, 32 insertions(+), 9 deletions(-)
+
+commit 189d1f5b28f5a25021ae252b74e1747beff1e3e0
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Jan 26 17:52:10 2007 +0000
+
+ Remove the surplus new line.
+
+ svn path=/trunk/; revision=1546
+
+ ChangeLog | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit feaaa1dd7640940ca4ebbc76b8dc4c1d281cba72
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 17:35:41 2007 +0000
+
+ Remove the additional pixel inter-character spacing. Compactness over
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c: (_vte_xft_set_text_font):
+ Remove the additional pixel inter-character spacing.
+ Compactness over clarity ;)
+
+
+ svn path=/trunk/; revision=1545
+
+ ChangeLog | 7 +++++++
+ src/vtexft.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 764f40ae65b2a07403a602f946f23fb0e1214877
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 17:13:20 2007 +0000
+
+ Apply a one pixel fudge to the Xft character position and width. This
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Apply a one pixel fudge to the Xft character position and width.
+ This greatly improves text appearance and hides the misrendering of
+ pseudo-bold characters.
+ cf bugs 317691, 333157.
+
+ * src/vte.c: (vte_terminal_paint):
+ Increase the cursor size to fit around the cell.
+ * src/vtexft.c: (_vte_xft_set_text_font), (_vte_xft_draw_text):
+ Fudge the Xft font positioning.
+
+
+ svn path=/trunk/; revision=1544
+
+ ChangeLog | 12 ++++++++++++
+ src/vte.c | 15 ++++++++-------
+ src/vtexft.c | 6 ++++--
+ 3 files changed, 24 insertions(+), 9 deletions(-)
+
+commit 03cd2e083db58be53a8c9a4c3236e56865ece236
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 16:18:07 2007 +0000
+
+ Bug 318307 – Cursor colour changes to foreground when unfocused
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 318307 – Cursor colour changes to foreground when unfocused
+
+ Whilst setting the colour, tweak the position of the rectangle, and
+ extended the invalidate region to account for the OBO nature of bold
+ font.
+
+ * src/vte.c: (_vte_invalidate_cells):
+ Include the padding to accomodate cell effects.
+ * src/vte.c: (vte_terminal_paint):
+ Use the cursor color for the rectangle when unfocused.
+
+
+ svn path=/trunk/; revision=1543
+
+ ChangeLog | 13 ++++++++++
+ src/vte.c | 74 ++++++++++++++++++++++++-------------------------------------
+ 2 files changed, 42 insertions(+), 45 deletions(-)
+
+commit e2c6f62d11bf42f18128272b95202477795338e0
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Jan 26 16:04:38 2007 +0000
+
+ Correctly handle visibility events: set invalidated_all to FALSE, and
+
+ 2007-01-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_visibility_notify): Correctly handle
+ visibility events: set invalidated_all to FALSE, and invalidate_all
+ if fully unobscured.
+
+
+ svn path=/trunk/; revision=1542
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 16 ++++++++++------
+ 2 files changed, 16 insertions(+), 6 deletions(-)
+
+commit 841db8a764cb8da8f6ce1e9d53286a61ca742669
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Jan 26 15:58:58 2007 +0000
+
+ Make sure we redraw after becoming unobscured. There still is a bug that
+
+ 2007-01-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_visibility_notify): Make sure we redraw
+ after becoming unobscured. There still is a bug that I've not found,
+ but after obscuring the widget and coming back, a first redraw
+ happens, but no update after that.
+
+
+ svn path=/trunk/; revision=1541
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 6 +++++-
+ 2 files changed, 12 insertions(+), 1 deletions(-)
+
+commit 52efe629728970467f7b3fc21af03533775e42e3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 15:01:09 2007 +0000
+
+ Occasionally we generate an exposed area which is computed as 0x0 cells.
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_area):
+ Occasionally we generate an exposed area which is computed
+ as 0x0 cells. Discard early, before we spend an infinity
+ drawing nothing.
+
+
+ svn path=/trunk/; revision=1540
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 6 ++++++
+ 2 files changed, 13 insertions(+), 0 deletions(-)
+
+commit d2dc82343a348aa22402c03b2a1677b6b73f7d5f
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 14:30:30 2007 +0000
+
+ Janitorial work - near elimination of #ifdef VTE_DEBUG from within
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Janitorial work - near elimination of #ifdef VTE_DEBUG from within
+ functions, trimming over a thousand lines of code.
+
+ We introduce a _vte_debug_print macro to cover the more common
+ occurrence of printing a message at a certain debug level.
+ And a _VTE_DEBUG_ON for a conditional code block.
+
+ src/debug.h | 11
+ src/iso2022.c | 201 ++-------
+ src/keymap.c | 41 -
+ src/matcher.c | 24 -
+ src/pty.c | 134 +-----
+ src/reaper.c | 21
+ src/ring.c | 78 +--
+ src/table.c | 11
+ src/trie.c | 19
+ src/vte.c | 1187 ++++++++++---------------------------------------
+ src/vteaccess.c | 198 +++------
+ src/vteapp.c | 21
+ src/vtebg.c | 43 --
+ src/vteconv.c | 60 +-
+ src/vteconv.h | 12
+ src/vtedraw.c | 6
+ src/vtefc.c | 4
+ src/vteft2.c | 5
+ src/vteglyph.c | 27 -
+ src/vtepango.c | 11
+ src/vtepangox.c | 7
+ src/vteregex.c | 2
+ src/vteseq.c | 385 +++++-------------
+ src/vtexft.c | 26 -
+ 24 files changed, 789 insertions(+), 1745 deletions(-)
+
+
+ svn path=/trunk/; revision=1539
+
+ ChangeLog | 168 ++++++++
+ src/debug.h | 11 +
+ src/iso2022.c | 201 +++-------
+ src/keymap.c | 41 +--
+ src/matcher.c | 24 +-
+ src/pty.c | 134 ++-----
+ src/reaper.c | 21 +-
+ src/ring.c | 78 ++---
+ src/table.c | 11 +-
+ src/trie.c | 19 +-
+ src/vte.c | 1187 ++++++++++++++++---------------------------------------
+ src/vteaccess.c | 198 ++++------
+ src/vteapp.c | 21 +-
+ src/vtebg.c | 43 +--
+ src/vteconv.c | 60 ++--
+ src/vteconv.h | 12 +-
+ src/vtedraw.c | 6 +-
+ src/vtefc.c | 4 +-
+ src/vteft2.c | 5 +-
+ src/vteglyph.c | 27 +-
+ src/vtepango.c | 11 +-
+ src/vtepangox.c | 7 +-
+ src/vteregex.c | 2 +-
+ src/vteseq.c | 385 ++++++------------
+ src/vtexft.c | 26 +-
+ 25 files changed, 957 insertions(+), 1745 deletions(-)
+
+commit b01b8d2fe3e37a6d6f333c27a8890dfb49295a69
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Jan 26 09:51:35 2007 +0000
+
+ ChangeLog: s/with/without/
+
+ svn path=/trunk/; revision=1538
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 604573e2f487ec6bbe423b5c73bb2b6dde08375c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 09:50:23 2007 +0000
+
+ Bug 317449 – The cursor disappears when clicking on windows above
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 317449 – The cursor disappears when clicking on windows above gnome-terminal
+
+ Enter a command that causes partial obscuration of the terminal,
+ though it must cover the cursor. Close the new window, observe the
+ pointer disappears.
+
+ The issue is that we hide the pointer whilst typing and show it after
+ receiving a mouse movement. However in this case we steal the pointer
+ away from the terminal with any mouse events and the cursor remains
+ invisible.
+
+ * src/vte.c: (vte_terminal_focus_in):
+ Ensure the mouse pointer is visible on focus-in.
+
+
+ svn path=/trunk/; revision=1537
+
+ ChangeLog | 16 ++++++++++++++++
+ src/vte.c | 1 +
+ 2 files changed, 17 insertions(+), 0 deletions(-)
+
+commit 279999ff11683b4d00733df4ddbccc4c5d2ae5f9
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 26 01:45:13 2007 +0000
+
+ Spend half an hour a day killing warnings...
+
+ 2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Spend half an hour a day killing warnings...
+
+ * configure.in:
+ Remove -Wswitch-enum from MAYBE_WARN. I am that lazy.
+ * src/buffer.c:
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous),
+ (_vte_iso2022_ambiguous_width), (_vte_iso2022_map_get),
+ (_vte_iso2022_find_nextctl), (_vte_iso2022_sequence_length),
+ (_vte_iso2022_fragment_input), (process_8_bit_sequence),
+ (process_cdata), (_vte_iso2022_process_single), (process_control),
+ (_vte_iso2022_process):
+ * src/keymap.c: (_vte_keymap_map):
+ * src/table.c:
+ * src/trie.c: (char_class_none_extract),
+ (char_class_digit_extract), (char_class_multi_extract),
+ (char_class_any_extract), (unichar_snlen), (unichar_sncmp),
+ (char_class_string_extract), (_vte_trie_addx), (_vte_trie_add),
+ (_vte_trie_matchx), (_vte_trie_match), (_vte_trie_printx),
+ (_vte_trie_print), (convert_mbstowcs), (main):
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_find_charcell),
+ (_vte_row_data_find_charcell), (vte_terminal_emit_commit),
+ (vte_terminal_match_clear_all), (vte_terminal_match_remove),
+ (vte_terminal_match_add), (vte_terminal_match_set_cursor),
+ (vte_terminal_match_check_internal), (vte_terminal_set_colors),
+ (vte_terminal_emit_pending_text_signals),
+ (vte_terminal_is_word_char), (vte_terminal_finalize),
+ (vte_terminal_realize), (_vte_terminal_map_pango_color),
+ (_vte_terminal_apply_pango_attr),
+ (_vte_terminal_translate_pango_cells),
+ (vte_terminal_set_scrollback_lines):
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+ Fixup compiler warnings, mostly of the type mixing signed and
+ unsigned compares and pointers.
+
+
+ svn path=/trunk/; revision=1536
+
+ ChangeLog | 37 ++++++++++++++++++++++++++++
+ configure.in | 6 +++-
+ src/buffer.c | 4 +++
+ src/iso2022.c | 69 ++++++++++++++++++++++++++---------------------------
+ src/keymap.c | 2 +-
+ src/table.c | 2 +-
+ src/trie.c | 67 +++++++++++++++++++++++++--------------------------
+ src/vte-private.h | 6 ++--
+ src/vte.c | 47 ++++++++++++++++++-----------------
+ src/vteseq.c | 2 +-
+ 10 files changed, 142 insertions(+), 100 deletions(-)
+
+commit ae4d016994e2c7301c75baed821d8ec5f2a1ffc4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 25 23:56:42 2007 +0000
+
+ Use the GDestroyNotify to mark the source as invalid. Protect ensure fonts
+
+ 2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (mark_input_source_invalid),
+ (_vte_terminal_connect_pty_read), (mark_output_source_invalid),
+ (_vte_terminal_connect_pty_write):
+ Use the GDestroyNotify to mark the source as invalid.
+ * src/vte.c: (vte_terminal_ensure_font):
+ Protect ensure fonts against the VteDraw being destroyed.
+ * src/vte.c: (vte_terminal_realize):
+ Reorder code to setup the style before the fonts.
+ * src/vte.c: (vte_terminal_class_init):
+ The ->show() handler was redundant.
+
+
+ svn path=/trunk/; revision=1535
+
+ ChangeLog | 13 +++++++++++++
+ src/vte.c | 59 +++++++++++++++++++++--------------------------------------
+ 2 files changed, 34 insertions(+), 38 deletions(-)
+
+commit 9cb1f1bfb3b7378d0c22ee0e924c1c3186f2b17b
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Jan 25 21:44:35 2007 +0000
+
+ Replace most of checks for terminal->pvt->visibility_state ==
+
+ 2007-01-25 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_terminal_set_default_attributes),
+ (_vte_invalidate_cells), (_vte_invalidate_all),
+ (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
+ (vte_terminal_visibility_notify), (vte_terminal_handle_scroll):
+ Replace most of checks for terminal->pvt->visibility_state ==
+ GDK_VISIBILITY_FULLY_OBSCURED by terminal->pvt->invalidated_all, and
+ adapt.
+
+
+ svn path=/trunk/; revision=1534
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 34 +++++++++++-----------------------
+ 2 files changed, 21 insertions(+), 23 deletions(-)
+
+commit ff52397ee2888dd6f3ccab0187a6cc38c9fd47f9
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 25 21:26:21 2007 +0000
+
+ Bug 400759 – update problem with vte trunk
+
+ 2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400759 – update problem with vte trunk
+
+ Otherwise known as the I can't count bug.
+
+ The number of rows and columns to paint were not properly taking
+ account of the discrete nature of the cells ie although the floor(x)
+ moved the start to the left by one, the extra cell was not being added
+ to the width.
+
+ Also since the howmany() macro is pulled from <sys/param.h>, it can
+ not be guarranteed to exist on all platforms. So in that case, provide
+ a local copy.
+
+ * src/vte.c: (vte_terminal_draw_area):
+ Calculate the width as the distance between the explicity
+ calculated start and end cells.
+
+
+ svn path=/trunk/; revision=1533
+
+ ChangeLog | 19 +++++++++++++++++++
+ src/vte.c | 20 ++++++++++++--------
+ 2 files changed, 31 insertions(+), 8 deletions(-)
+
+commit d075b7525832da68e607a04ec0c9ebe2a7968476
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 25 17:42:44 2007 +0000
+
+ Bug 400671 – crash in Terminal: detaching of tabs
+
+ 2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400671 – crash in Terminal: detaching of tabs
+
+ The fontdirty flag needed to be set on unrealize to ensure the fonts
+ get set on the VteDraw should the terminal be realized again (e.g
+ drag'n'dropping).
+
+ * src/vte.c: (vte_terminal_unrealize):
+ Set the fontdirty flag to TRUE.
+ * src/vtexft.c: (_vte_xft_set_text_font),
+ (_vte_xft_get_char_width), (_vte_xft_draw_text),
+ (_vte_xft_draw_char):
+ Add safe guards to avoid dereferencing a NULL font as it
+ is possible for _vte_xft_font_open() to fail.
+
+
+ svn path=/trunk/; revision=1532
+
+ ChangeLog | 16 ++++++++++++++++
+ src/vte.c | 2 +-
+ src/vtexft.c | 22 +++++++++++++++++-----
+ 3 files changed, 34 insertions(+), 6 deletions(-)
+
+commit 657bd399d53d6082520201200e90b033dc4aa33c
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Thu Jan 25 16:53:10 2007 +0000
+
+ Modify the language in the last entry to try and avoid confusion between UTF-8 lookups and a simple
ASCII lookup.
+
+
+ svn path=/trunk/; revision=1531
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 58c407e2c9b988fe92915b56b8c28549f55dd155
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 25 16:49:45 2007 +0000
+
+ Bug 399137 – UTF-8 problem in VteAccess
+
+ 2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 399137 – UTF-8 problem in VteAccess
+
+ Improve the UTF-8 string handling within vteaccess.c
+ A long and fraught history to this apparently simple change.
+ Many thanks to Joanmarie Diggs and Rich Burridge for testing the
+ patches and ensuring they caused no regressions in the ally interface.
+
+ * src/vteaccess.c: (emit_text_changed_insert),
+ (emit_text_changed_delete):
+ Use g_utf8_pointer_to_offset() rather than open coding.
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ Convert the caret into a byte offset before performing the
+ string lookup.
+ Iterate backwards over the string using a g_utf8_prev_char,
+ and g_utf8_get_char.
+
+
+ svn path=/trunk/; revision=1530
+
+ ChangeLog | 18 ++++++++++++++
+ src/vteaccess.c | 70 +++++++++++++++++++++++-------------------------------
+ 2 files changed, 48 insertions(+), 40 deletions(-)
+
+commit 0acb0e006749729904133ed113788c46773545ec
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 25 16:30:45 2007 +0000
+
+ Bug 400493 – Mouse selection seriously broken
+
+ 2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400493 – Mouse selection seriously broken
+
+ The rendering of non-text attributes, e.g highlight, backgrounds,
+ underlines, was broken by the change to multi-row run of glyphs. This
+ was most apparent when selecting regions with a mouse.
+
+ * src/vte.c: (_vte_invalidate_cursor_once),
+ (vte_terminal_extend_selection),
+ (vte_terminal_draw_rows), (vte_terminal_draw_area),
+ (vte_terminal_paint):
+ Some janitorial work (a memleak, whitespace, improving debug
+ messages, comments).
+ * src/vte.c: (vte_terminal_draw_cells):
+ Loop over cells and draw attributes for groups of cells on
+ each row.
+
+
+ svn path=/trunk/; revision=1529
+
+ ChangeLog | 18 ++++
+ src/vte.c | 269 +++++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 157 insertions(+), 130 deletions(-)
+
+commit 2c0c41904eff8b91b7221738f29106a5a5b6fb75
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 25 09:36:07 2007 +0000
+
+ Bug 400438 – _vte_invalidate_all triggered on GDK_VISIBILITY_UNOBSCURED
+
+ 2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400438 – _vte_invalidate_all triggered on GDK_VISIBILITY_UNOBSCURED
+
+ * src/vte.c: (vte_terminal_visibility_notify):
+ Only force an _vte_invalidate_all if we can trivially detect
+ that we have switch from fully obscured to fully unobscured.
+ Otherwise, we will just handle the GDK expose in the normal
+ manner.
+ * src/vte.c: (vte_terminal_expose):
+ Check the event area to see if we can use _vte_invalidate_all,
+ has a slight benefit of discarding further exposed area
+ processing.
+
+
+ svn path=/trunk/; revision=1528
+
+ ChangeLog | 15 +++++++++++++++
+ src/vte.c | 23 +++++++++++++++++------
+ 2 files changed, 32 insertions(+), 6 deletions(-)
+
+commit 62982b274e08900461b78632feebdbadb576c2c3
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Thu Jan 25 09:31:27 2007 +0000
+
+ Rewrite last pair of ChangeLog entries to better explain what was found and what was fixed.
+
+
+ svn path=/trunk/; revision=1527
+
+ ChangeLog | 19 +++++++++++++++----
+ 1 files changed, 15 insertions(+), 4 deletions(-)
+
+commit 8cfa0558104d50b00f6e9a49f2833b0d4329f2f4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 25 00:40:11 2007 +0000
+
+ Notice how effective GDK's expose event coalescing is...
+
+ 2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Notice how effective GDK's expose event coalescing is...
+
+ * src/vte.c: (vte_terminal_draw_area), (vte_terminal_paint),
+ (vte_terminal_expose):
+ Paint the exposed rects not the clipbox!
+
+
+ svn path=/trunk/; revision=1526
+
+ ChangeLog | 15 ++++++++
+ src/vte.c | 113 ++++++++++++++++++++++++++++++++++++++++++-------------------
+ 2 files changed, 93 insertions(+), 35 deletions(-)
+
+commit 91690b2a952db2580e0227558400718efefa1d59
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Wed Jan 24 23:13:31 2007 +0000
+
+ Improve morale, spell moral correctly.
+
+ svn path=/trunk/; revision=1525
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit c8467b55192a519ad2bc21f55395415de37646ab
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 23:10:36 2007 +0000
+
+ cf Bug 400072 – Handling of ; in control sequences
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 400072 – Handling of ; in control sequences
+
+ Morale of the story: wait until the morning.
+ Revert r1512, the mistaken attempt at parsing '\e[;30m'.
+
+ * src/table.c: (_vte_table_addi), (_vte_table_matchi),
+ (_vte_table_match):
+
+
+ svn path=/trunk/; revision=1524
+
+ ChangeLog | 10 ++++++++++
+ src/table.c | 42 +++++++++++++++++-------------------------
+ 2 files changed, 27 insertions(+), 25 deletions(-)
+
+commit ebfcfa21bfdfee57a3215f18de4a623ec1176ce3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 23:03:14 2007 +0000
+
+ cf Bug 399617 – Avoid memory allocations during an expose event.
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 399617 – Avoid memory allocations during an expose event.
+
+ Currently we cannot generate long glyph runs due to the text
+ painting being broken up into single rows and setting a low
+ max run cap. The benefit of longer runs is the backends can
+ do more caching within a run and potentially generate fewer
+ render calls and/or less network traffic.
+
+ In the simple test case, this increased the performance of a
+ remote hexdump by 10%.
+
+ * src/vte.c: (vte_terminal_draw_rows), (vte_terminal_paint):
+ Scan entired exposed area for glyph runs.
+ * src/vtedraw.h:
+ Increase VTE_DRAW_MAX_LENGTH
+ * src/vtexft.c: (_vte_xft_draw_text):
+ Create GlyphSpecs rather than CharFontSpecs, saves a
+ conversion and potential malloc inside libXft, and our
+ own malloc.
+
+
+ svn path=/trunk/; revision=1523
+
+ ChangeLog | 22 ++++
+ src/vte.c | 327 ++++++++++++++++++++++++++++++---------------------------
+ src/vtedraw.h | 4 +-
+ src/vtexft.c | 154 ++++++++++++++-------------
+ 4 files changed, 280 insertions(+), 227 deletions(-)
+
+commit 1b887a2a0e7f59e95baa3531d6bb3b5a5a281dba
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 22:41:15 2007 +0000
+
+ Bug 147495 – screen flicker when opening new terminal windows
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 147495 – screen flicker when opening new terminal windows
+
+ Last in a series of work to reduce extraneous redraws. I no longer
+ see the flicker when opening a white terminal.
+
+ * src/vte.c: (_vte_terminal_scroll_region):
+ Detect when we can just invalidate all.
+ * src/vte.c: (_vte_terminal_fork_basic):
+ Don't force an unnecessary redraw.
+
+
+ svn path=/trunk/; revision=1522
+
+ ChangeLog | 12 ++++++++++++
+ src/vte.c | 5 ++---
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+commit daa0e11f90bad38e2519a6ff52222912f993ba2b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 22:31:54 2007 +0000
+
+ Add a missing '\n' to the debug printerr. Initialize the row count to
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_set_emulation):
+ Add a missing '\n' to the debug printerr.
+ * src/vte.c: (vte_terminal_init):
+ Initialize the row count to VTE_MIN_SCROLLBACK (was to 0
+ first and then later within the same function to
+ VTE_MIN_SCROLLBACK).
+
+
+ svn path=/trunk/; revision=1521
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 16 +++++++---------
+ 2 files changed, 16 insertions(+), 9 deletions(-)
+
+commit 6141a3fa97864e1dc8fb826d50f331cbe541a7a5
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 22:17:47 2007 +0000
+
+ Bug 334755 – Incomplete information from vte_terminal_get_font
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 334755 – Incomplete information from vte_terminal_get_font
+
+ In many situations the font_desc stored in the terminal is incomplete.
+ _vte_fc_transcribe_from_pango_font_description() automagically fills
+ in default values for the backends but this is hidden from the
+ application. By filling in default values up front from the widget
+ font description control is returned to the application and theme
+ designers.
+
+ Patch by Pedro de Medeiros.
+ Also cf bug 335269.
+
+ * src/vte.c: (vte_terminal_set_font_full):
+ Pull default font description from widget.
+ * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description):
+ Remove default values.
+
+
+ svn path=/trunk/; revision=1520
+
+ ChangeLog | 19 +++++++++++++++++++
+ src/vte.c | 14 +++++++-------
+ src/vtefc.c | 41 ++++++++++++-----------------------------
+ 3 files changed, 38 insertions(+), 36 deletions(-)
+
+commit 7ab6e418f588659d11ff739a2b2805fabe5be4fc
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 20:37:19 2007 +0000
+
+ Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
+ actually revealed a faux-pas in the conversion of the public
+ interfaces to GPid - that it broke the ABI.
+
+ However, the intention is to remove the exposed pid_t, cf bug 400333.
+
+ * python/vte.defs:
+ * python/vte.override:
+ * src/pty.c: (_vte_pty_open):
+ * src/pty.h:
+ * src/vte.c: (_vte_terminal_fork_basic), (vte_terminal_forkpty):
+ * src/vte.h:
+ Revert the exposed GPids back to pid_t.
+
+
+ svn path=/trunk/; revision=1519
+
+ ChangeLog | 16 ++++++++++++++++
+ python/vte.defs | 4 ++--
+ python/vte.override | 4 ++--
+ src/pty.c | 15 ++++++++++-----
+ src/pty.h | 3 +--
+ src/vte.c | 14 +++++---------
+ src/vte.h | 6 ++++--
+ 7 files changed, 40 insertions(+), 22 deletions(-)
+
+commit 7d898d6f6055c2c8a18b407eb50e7652b3a52b9f
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 16:30:02 2007 +0000
+
+ ==25123== Invalid read of size 1 ==25123== at 0x4055992:
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ ==25123== Invalid read of size 1
+ ==25123== at 0x4055992: vte_terminal_accessible_text_modified (vteaccess.c:497)
+ ==25123== by 0x46A1248: g_cclosure_marshal_VOID__VOID (gmarshal.c:77)
+ ==25123== by 0x4693EAA: g_closure_invoke (gclosure.c:490)
+ ==25123== by 0x46A4972: signal_emit_unlocked_R (gsignal.c:2440)
+ ==25123== by 0x46A5E96: g_signal_emit_valist (gsignal.c:2199)
+ ==25123== by 0x46A85ED: g_signal_emit_by_name (gsignal.c:2267)
+ ==25123== by 0x403E9E2: _vte_terminal_emit_text_inserted (vte.c:863)
+ ==25123== by 0x40517EF: vte_terminal_process_incoming (vte.c:3032)
+ ==25123== by 0x40522B5: update_repeat_timeout (vte.c:11332)
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ Check that the caret is inside the old string before
+ accessing.
+
+
+ svn path=/trunk/; revision=1518
+
+ ChangeLog | 17 +++++++++++++++++
+ src/vteaccess.c | 12 +++++++-----
+ 2 files changed, 24 insertions(+), 5 deletions(-)
+
+commit 8d735a2d00e3b50860dd23fbe0e63e4ea0772b74
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 16:23:42 2007 +0000
+
+ Revert changes in conjunction with bug 399137 back to r1487, which
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ Revert changes in conjunction with bug 399137 back to r1487,
+ which contains Rich Burridge's fix for bug 397724.
+
+ * src/vteaccess.c: (emit_text_changed_insert),
+ (emit_text_changed_delete),
+ (vte_terminal_accessible_text_modified):
+
+
+ svn path=/trunk/; revision=1517
+
+ ChangeLog | 9 +++++++
+ src/vteaccess.c | 73 ++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 47 insertions(+), 35 deletions(-)
+
+commit a8d1c20f2b3b5d92d2fb50f3e35a28b11c8660ed
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 15:58:00 2007 +0000
+
+ Valgrind pointed out a couple of places where we tried to access before
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ Valgrind pointed out a couple of places where we tried to
+ access before the start of the string.
+
+
+ svn path=/trunk/; revision=1516
+
+ ChangeLog | 6 ++++++
+ src/vteaccess.c | 36 ++++++++++++++++++++----------------
+ 2 files changed, 26 insertions(+), 16 deletions(-)
+
+commit 1fcb3ef370accd3b59eeae5538cf05244dd215f1
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Wed Jan 24 15:56:22 2007 +0000
+
+ Revert the last accidental overcommit.
+
+ svn path=/trunk/; revision=1515
+
+ ChangeLog | 6 -
+ src/table.c | 141 ++++++++++------------
+ src/vte.c | 345 ++++++++++++++++++++++++++-----------------------------
+ src/vteaccess.c | 36 +++---
+ src/vteapp.c | 4 -
+ src/vtedraw.h | 4 +-
+ src/vtefc.c | 41 +++++--
+ src/vtexft.c | 154 ++++++++++++-------------
+ 8 files changed, 345 insertions(+), 386 deletions(-)
+
+commit 81ce92cb007827246122117c7dcb4a38ba78bd87
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 15:51:40 2007 +0000
+
+ Valgrind pointed out a couple of places where we tried to access before
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ Valgrind pointed out a couple of places where we tried to
+ access before the start of the string.
+
+
+ svn path=/trunk/; revision=1514
+
+ ChangeLog | 6 +
+ src/table.c | 141 ++++++++++++----------
+ src/vte.c | 345 +++++++++++++++++++++++++++++--------------------------
+ src/vteaccess.c | 36 +++---
+ src/vteapp.c | 4 +
+ src/vtedraw.h | 4 +-
+ src/vtefc.c | 41 ++-----
+ src/vtexft.c | 154 +++++++++++++------------
+ 8 files changed, 386 insertions(+), 345 deletions(-)
+
+commit 65e7b4c5838004367a0cbcc8149a43b5cea8077c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 14:31:19 2007 +0000
+
+ Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
+
+ Patch by Damien Carbery.
+
+ * src/pty.h:
+ Update prototype to match new definition.
+
+
+ svn path=/trunk/; revision=1513
+
+ ChangeLog | 9 +++++++++
+ src/pty.h | 2 +-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 684b2ff5cb4b6c3eede196d237d099f066e595e5
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 24 02:54:03 2007 +0000
+
+ <mariano> hm, vte is not matching «ESC [ ; 7 m» :/
+
+ 2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ <mariano> hm, vte is not matching «ESC [ ; 7 m» :/
+
+ * src/table.c: (_vte_table_addi), (_vte_table_matchi),
+ (_vte_table_match):
+ s/GList/GSList/
+ g_slist_append -> g_slist_reverse(g_slist_prepend)
+ And finally add the subtable to handle the leading ';'
+ in the variable length parameters.
+
+
+ svn path=/trunk/; revision=1512
+
+ ChangeLog | 11 +++++++++++
+ src/table.c | 42 +++++++++++++++++++++++++-----------------
+ 2 files changed, 36 insertions(+), 17 deletions(-)
+
+commit ad5b91ba4d9bab3690e6dc8646623d6c31234809
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Jan 23 13:01:00 2007 +0000
+
+ A couple of minor buggets.
+
+ 2007-01-23 Chris Wilson <chris chris-wilson co uk>
+
+ A couple of minor buggets.
+
+ * src/iso2022.c: (_vte_iso2022_state_set_codeset):
+ Use g_intern_string() instead of from_quark(to_quark(str))
+ * src/vtepango.c: (_vte_pango_create), (_vte_pango_destroy),
+ (_vte_pango_start), (_vte_pango_end), (_vte_pango_set_text_font):
+ Use the widget pango context (we're guarranteed to have a
+ screen by this point) and don't unref it!
+ Inspired by Pedro de Medeiros in Bug 335269.
+
+
+ svn path=/trunk/; revision=1511
+
+ ChangeLog | 12 ++++++++++++
+ src/iso2022.c | 2 +-
+ src/vtepango.c | 28 +++-------------------------
+ 3 files changed, 16 insertions(+), 26 deletions(-)
+
+commit 64c9b97f3dbed04003bb1a6a5727a878c171f7b8
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Jan 23 10:09:44 2007 +0000
+
+ Regression on Bug 123591: mkdir /tmp/aa; cd /tmp/aa; bash; cd ..; rmdir aa
+
+ 2007-01-23 Chris Wilson <chris chris-wilson co uk>
+
+ Regression on Bug 123591:
+ mkdir /tmp/aa; cd /tmp/aa; bash; cd ..; rmdir aa
+ Open a new tab in g-t -> Failure.
+
+ * src/pty.c: (_vte_pty_run_on_pty):
+ Check the error return from g_spawn and try again with the
+ pwd if it reports that the child could not change directory.
+
+
+ svn path=/trunk/; revision=1510
+
+ ChangeLog | 10 ++++++++++
+ src/pty.c | 18 ++++++++++++++++++
+ 2 files changed, 28 insertions(+), 0 deletions(-)
+
+commit 49021e4b66f9d0bf3b8ab8e40a8087e9f2fa986e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Tue Jan 23 09:47:56 2007 +0000
+
+ Add all g_spawn parameters to VTE_DEBUG_MISC output.
+
+ 2007-01-23 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c: (_vte_pty_run_on_pty):
+ Add all g_spawn parameters to VTE_DEBUG_MISC output.
+
+
+ svn path=/trunk/; revision=1509
+
+ ChangeLog | 5 +++++
+ src/pty.c | 43 ++++++++++++++++++++++++++++++-------------
+ 2 files changed, 35 insertions(+), 13 deletions(-)
+
+commit d19cf7456ab2d6ba37caa4720271d85bddb8172b
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Tue Jan 23 01:34:13 2007 +0000
+
+ Fix version number in NEWS
+
+ svn path=/trunk/; revision=1507
+
+ NEWS | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 5819378701e0fb85ff2f5482216e10db91a655ca
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Jan 23 00:54:01 2007 +0000
+
+ Released vte-0.15.2.
+
+ 2007-01-22 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.2.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.2.
+
+ * src/Makefile.am: Bumped libtool version to 10:9:1.
+
+
+ svn path=/trunk/; revision=1505
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 67 insertions(+), 2 deletions(-)
+
+commit d3cae283a93c3a7df7f611ad6a8f50991943173d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 22:15:22 2007 +0000
+
+ Bug 399137 - continuation.
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 399137 - continuation.
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ Classic bug:
+ clen = cp - old
+ rather than the more correct
+ clen = cp - current
+
+
+ svn path=/trunk/; revision=1504
+
+ ChangeLog | 10 ++++++++++
+ src/vteaccess.c | 2 +-
+ 2 files changed, 11 insertions(+), 1 deletions(-)
+
+commit 7cc6b5148f46647a9ebf1cc35ace5c410f13e3d7
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 21:52:57 2007 +0000
+
+ Don't try to perform gdk operations on unrealized windows.
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteapp.c: (char_size_changed), (char_size_realized), (main):
+ Don't try to perform gdk operations on unrealized windows.
+
+
+ svn path=/trunk/; revision=1503
+
+ ChangeLog | 5 +++++
+ src/vteapp.c | 46 ++++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 47 insertions(+), 4 deletions(-)
+
+commit a22146e09ce78155eb90b5d9724e178be4b982cd
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 21:51:58 2007 +0000
+
+ Print out the argument vector for VTE_DEBUG_MISC.
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c: (_vte_pty_run_on_pty):
+ Print out the argument vector for VTE_DEBUG_MISC.
+
+
+ svn path=/trunk/; revision=1502
+
+ ChangeLog | 5 +++++
+ src/pty.c | 11 +++++++++++
+ 2 files changed, 16 insertions(+), 0 deletions(-)
+
+commit d9ce70ee3d33d7f03b5bc54c24d5f9268dc2b1d4
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 21:31:07 2007 +0000
+
+ Protect against g_strv_length(NULL)
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c: (_vte_pty_run_on_pty):
+ Protect against g_strv_length(NULL)
+
+
+ svn path=/trunk/; revision=1501
+
+ ChangeLog | 5 +++++
+ src/pty.c | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 83c14ae94c5fde5f6ff8f0b3774a551e31def4d1
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Jan 22 20:50:37 2007 +0000
+
+ Improve the changelog entry for the previous commit.
+
+ svn path=/trunk/; revision=1500
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 3aa224d696f2918faf9dfbc554d1314f786c341a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 20:48:14 2007 +0000
+
+ Bug 399137 - continuation.
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 399137 - continuation.
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ After walking back along the UTF-8 string, remember to update
+ string lengths that are use to detect insertions and
+ deletions!
+
+
+ svn path=/trunk/; revision=1499
+
+ ChangeLog | 9 +++++++++
+ src/vteaccess.c | 3 +++
+ 2 files changed, 12 insertions(+), 0 deletions(-)
+
+commit 8e2e9280df9f1b1e54b9556100a2a85f2af9966a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 19:51:16 2007 +0000
+
+ If the caret is at the end of the buffer, then it set past the end of the
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ If the caret is at the end of the buffer, then it set past the
+ end of the offset array - do not use this as a lookup!
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ If the caret points to past the last character, set the
+ offset to the string's NUL terminator.
+
+
+ svn path=/trunk/; revision=1498
+
+ ChangeLog | 9 +++++++++
+ src/vteaccess.c | 9 +++++++--
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+commit ff8cd236b46db35290954b80071b860218927a4e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 19:20:47 2007 +0000
+
+ Earlier configure.in update introduced a trailing ']', pair it with its
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ * configure.in:
+ Earlier configure.in update introduced a trailing ']', pair
+ it with its '['
+
+
+ svn path=/trunk/; revision=1497
+
+ ChangeLog | 7 +++++++
+ configure.in | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit d32482cfb6cc31f456904b5c5a43d55a7364d45e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 18:27:45 2007 +0000
+
+ Bug 132316 – terminal widget's context menu posting isn't exposed as an
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 132316 – terminal widget's context menu posting isn't exposed as an AtkAction
+
+ Original patch by <padraig obriain sun com>
+
+ * src/vteaccess.c: (vte_terminal_accessible_free_private_data),
+ (vte_terminal_accessible_component_init),
+ (vte_terminal_accessible_do_action),
+ (vte_terminal_accessible_get_n_actions),
+ (vte_terminal_accessible_action_get_description),
+ (vte_terminal_accessible_action_get_name),
+ (vte_terminal_accessible_action_get_keybinding),
+ (vte_terminal_accessible_action_set_description),
+ (vte_terminal_accessible_action_init),
+ (vte_terminal_accessible_get_type):
+ Remove grab_focus and defer to the parent's implementation.
+ Add an AtkAction iface.
+
+
+ svn path=/trunk/; revision=1496
+
+ ChangeLog | 19 +++++++
+ src/vteaccess.c | 163 +++++++++++++++++++++++++++++++++++++++++++++++++------
+ 2 files changed, 164 insertions(+), 18 deletions(-)
+
+commit fc07977497ad5d13dc45ebe094715d057e3efbb2
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 18:04:17 2007 +0000
+
+ Bug 156161 – AccessibleText_getTextAtOffset returns wrong values in
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 156161 – AccessibleText_getTextAtOffset returns wrong values in gnome-terminal
+
+ The code for ATK_TEXT_BOUNDARY_WORD_START and
+ ATK_TEXT_BOUNDARY_WORD_END is the same.
+
+ Patch by <padraig obriain sun com>
+
+ * src/vteaccess.c: (vte_terminal_accessible_get_text_somewhere):
+ Actually provide an implementation for
+ ATK_TEXT_BOUNDARY_WORD_END.
+
+
+ svn path=/trunk/; revision=1495
+
+ ChangeLog | 13 ++++++++
+ src/vteaccess.c | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 104 insertions(+), 1 deletions(-)
+
+commit 9847a75a4a8bbc54a39be23a0b9f58be56af4f15
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 17:51:45 2007 +0000
+
+ Bug 399137 – UTF-8 problem in VteAccess
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 399137 – UTF-8 problem in VteAccess
+
+ * src/vteaccess.c: (emit_text_changed_insert),
+ (emit_text_changed_delete):
+ use g_utf8_pointer_to_offset() instead of open coding
+ (vte_terminal_accessible_update_private_data_if_needed):
+ add the number of UTF-8 characters to the debug output.
+ (vte_terminal_accessible_text_modified):
+ iterate backwards over the UTF-8 string using
+ g_utf8_prev_char() and convert the caret into a byte offset
+ before it as such.
+
+
+ svn path=/trunk/; revision=1494
+
+ ChangeLog | 14 ++++++++++++
+ src/vteaccess.c | 63 +++++++++++++++++++++---------------------------------
+ 2 files changed, 39 insertions(+), 38 deletions(-)
+
+commit 758e6a5cb998c527cafce10292f7f3b0aed57de5
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 17:25:28 2007 +0000
+
+ Bug 123591 – vte_terminal_fork_command succeeds even when it does not
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 123591 – vte_terminal_fork_command succeeds even when it does not
+
+ * python/vte.defs:
+ * python/vte.override:
+ * src/reaper.c: (vte_reaper_child_watch_cb):
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_catch_child_exited),
+ (_vte_terminal_fork_basic), (vte_terminal_forkpty):
+ * src/vte.h:
+ * src/vteapp.c:
+ s/pid_t/GPid/ portable variant, no API/ABI implications
+ * src/pty.c: (vte_pty_child_setup), (_vte_pty_run_on_pty),
+ (_vte_pty_fork_on_pty_name), (_vte_pty_fork_on_pty_fd),
+ (_vte_pty_open_unix98), (_vte_pty_pipe_open), (n_read), (n_write),
+ (_vte_pty_start_helper), (_vte_pty_open_with_helper),
+ (_vte_pty_open), (main):
+ Replace custom fork() and pipe based syncrohonisation scheme
+ with g_spawn_async_with_pipes() as it actually handles all
+ failure modes correctly, and gives us overtures of portability.
+
+
+ svn path=/trunk/; revision=1493
+
+ ChangeLog | 23 ++
+ python/vte.defs | 4 +-
+ python/vte.override | 4 +-
+ src/pty.c | 707 +++++++++++++++++++++------------------------------
+ src/reaper.c | 1 +
+ src/vte-private.h | 2 +-
+ src/vte.c | 30 ++-
+ src/vte.h | 10 +-
+ src/vteapp.c | 1 +
+ 9 files changed, 343 insertions(+), 439 deletions(-)
+
+commit 59bbbea8be0cbfdd075419b8e248eb64f957341b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 14:23:39 2007 +0000
+
+ Hack'n'slash my way through doing a bit of weeding.
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Hack'n'slash my way through doing a bit of weeding.
+
+ Fixed:
+ - Bug 345514 – -no-undefined doesn't work with latest libtool
+ - Bug 162003 – vte configure.in X checking can fail
+ – though this may cause other regressions!
+ - Bug 314669 – Please specialize AC_PATH_XTRA
+
+ * configure.in:
+ Export LIBTOOL_EXPORT_OPTIONS for -no-undefined on windos.
+ Add to rather than override X_CFLAGS, X_LIBS
+ AC_PATH_XTRA - Find X11 using XFlush() rather than XtMalloc().
+ Print configuration details.
+ * src/Makefile.am:
+ Conditional compilation of backends.
+
+
+ svn path=/trunk/; revision=1492
+
+ ChangeLog | 18 ++++
+ configure.in | 272 ++++++++++++++++++++++++++++++++++++------------------
+ src/Makefile.am | 15 ++-
+ 3 files changed, 210 insertions(+), 95 deletions(-)
+
+commit 72c097e9efee36892b5a99461338b7064bb7df61
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 10:57:17 2007 +0000
+
+ Bug 389538 – crash in Terminal: nothing
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 389538 – crash in Terminal: nothing
+
+ * src/vteaccess.c: (vte_terminal_accessible_get_text):
+ Guard against negative length strings.
+
+
+ svn path=/trunk/; revision=1491
+
+ ChangeLog | 7 +++++++
+ src/vteaccess.c | 10 +++++++---
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+commit 1cc474c585fc8dd04f72e7f8913d339cc2782850
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Mon Jan 22 01:32:25 2007 +0000
+
+ Fixup changelog to include patch author.
+
+ svn path=/trunk/; revision=1490
+
+ ChangeLog | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 629175567fcce27bda9f77db177d0b187a346d98
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Mon Jan 22 01:31:01 2007 +0000
+
+ Bug 161479 – Scroll wheel generates Release events
+
+ 2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 161479 – Scroll wheel generates Release events
+
+ vte sends release events on scroll but xterm doesn't which breaks
+ mc among others.
+
+ * src/vte.c: (vte_terminal_scroll):
+ Remove the offending release event.
+
+
+ svn path=/trunk/; revision=1489
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 10 ----------
+ 2 files changed, 10 insertions(+), 10 deletions(-)
+
+commit 9c70a15321c4f01cc87728c76958780eb58a2050
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Jan 20 21:54:28 2007 +0000
+
+ <kmaraas> ickle: sparse complains about dubious 1 bit bitfields if you use
+
+ 2007-01-20 Chris Wilson <chris chris-wilson co uk>
+
+ <kmaraas> ickle: sparse complains about dubious 1 bit bitfields
+ if you use gboolean instead of guint
+ <kmaraas> so s/gboolean/guint at line 166 and 174
+ <mariano> unless that changes the API, of course...
+ <kmaraas> it doesn't
+ <mariano> gboolean a:1 is not very correct anyways
+ <kmaraas> ickle: we've done the same change in other modules
+ <ickle> if I do it quick, behdad might not even notice ;)
+
+ * src/vte.h:
+ Convert signed single bit field to unsigned. The code
+ was setting it to 1 anyhow (and not -1 as the type indicated).
+
+
+ svn path=/trunk/; revision=1488
+
+ ChangeLog | 15 +++++++++++++++
+ src/vte.h | 4 ++--
+ 2 files changed, 17 insertions(+), 2 deletions(-)
+
+commit 633016c80df82f651e3add9f947fcaacb4fc427e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Jan 20 10:10:10 2007 +0000
+
+ Bug 398602 – Build Failure
+
+ 2007-01-20 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398602 – Build Failure
+
+ * src/vte.c: (vte_terminal_expose):
+ Fixup typo. [Grrr. Must get git-svn back into sync]
+
+
+ svn path=/trunk/; revision=1487
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 79d26ffe5a243c69742c88217eb25e6653ce88e5
+Author: Rich Burridge <richb src gnome org>
+Date: Sat Jan 20 01:52:29 2007 +0000
+
+ Fixed bug #397724 - Orca incorrect echo's certain input in gnome-terminal
+
+ * src/vteaccess.c:
+ Fixed bug #397724 - Orca incorrect echo's certain input in
+ gnome-terminal when key echo is set to off (on Ubuntu Feisty).
+
+ svn path=/trunk/; revision=1486
+
+ ChangeLog | 6 ++++++
+ src/vteaccess.c | 7 +++++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+commit e4655c4d8dd5e2d07c8a9999fe386a84129bcc0e
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Jan 20 01:49:16 2007 +0000
+
+ Also if the entire terminal is invalidated, do not add more GTK+ exposes
+
+ 2007-01-20 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_expose):
+ Also if the entire terminal is invalidated,
+ do not add more GTK+ exposes to it.
+
+
+ svn path=/trunk/; revision=1485
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 8 +++++---
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+commit bc286a1432fccbe8cb553e290e4dad329010ae37
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Jan 20 01:44:46 2007 +0000
+
+ Track when we have invalidated the entire terminal and skip adding new
+
+ 2007-01-20 Chris Wilson <chris chris-wilson co uk>
+
+ Track when we have invalidated the entire terminal and skip adding
+ new regions when possible.
+
+ * src/vte-private.h:
+ * src/vte.c: (update_regions), (_vte_invalidate_cells),
+ (_vte_invalidate_all), (vte_terminal_size_allocate),
+ (reset_update_regions):
+
+
+ svn path=/trunk/; revision=1484
+
+ ChangeLog | 10 ++++++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 40 ++++++++++++++++++++++++++++++++--------
+ 3 files changed, 43 insertions(+), 9 deletions(-)
+
+commit bcaa0d3c3ad7a9d04aafa25c079bd3eb8fd4bea3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Sat Jan 20 01:25:42 2007 +0000
+
+ Bug 398244 – Gnome-terminal opens a huge sized window
+
+ 2007-01-20 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398244 – Gnome-terminal opens a huge sized window
+
+ * src/vte.c: (vte_terminal_ensure_font),
+ (vte_terminal_set_font_full), (vte_terminal_size_request),
+ (vte_terminal_realize), (vte_terminal_get_char_width),
+ (vte_terminal_get_char_height), (vte_terminal_get_char_descent),
+ (vte_terminal_get_char_ascent):
+ Ensure the font metrics are calculated before use.
+
+
+ svn path=/trunk/; revision=1483
+
+ ChangeLog | 11 +++++++++
+ src/vte.c | 75 +++++++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 54 insertions(+), 32 deletions(-)
+
+commit b8bb41c7919cf09e3a5cce954c85ca4883344b95
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 21:48:30 2007 +0000
+
+ Do not invalidate the old cursor position if it was not visible.
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_process_incoming):
+ Do not invalidate the old cursor position if it was not
+ visible.
+
+
+ svn path=/trunk/; revision=1482
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 3 ++-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 08ede26752979d9e20f2c4ec0efa1a94eb781b41
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 21:22:23 2007 +0000
+
+ Make sure ->process_timeout is set to VTE_INVALID_SOURCE on all paths that
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (process_timeout):
+ Make sure ->process_timeout is set to VTE_INVALID_SOURCE on
+ all paths that remove the timeout.
+
+
+ svn path=/trunk/; revision=1481
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 10 +++++-----
+ 2 files changed, 11 insertions(+), 5 deletions(-)
+
+commit 251b0bde344e603d1bbef541250715090f607592
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 19:38:50 2007 +0000
+
+ Add <> to mark boundaries of process_timeout().
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ Add <> to mark boundaries of process_timeout().
+
+ * src/vte.c: (vte_terminal_class_init), (process_timeout):
+
+
+ svn path=/trunk/; revision=1480
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 18 ++++++++++++++++--
+ 2 files changed, 22 insertions(+), 2 deletions(-)
+
+commit 34669c058fb355eacb3dcd959912153effaa1b47
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Jan 19 17:48:39 2007 +0000
+
+ Remove a bit of redundant text in the printout from the last commit.
+
+ svn path=/trunk/; revision=1479
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit d7a3c8149db52bde44491cd4667bfd2368daea71
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 17:47:35 2007 +0000
+
+ Add {},[] to mark boundaries of update_timeout() and notice that the
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ Add {},[] to mark boundaries of update_timeout() and notice that
+ the display limited update_timeout was not dying.
+
+ * src/vte.c: (vte_terminal_class_init), (update_repeat_timeout),
+ (update_timeout):
+
+
+ svn path=/trunk/; revision=1478
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 31 +++++++++++++++++++++++++++++--
+ 2 files changed, 37 insertions(+), 2 deletions(-)
+
+commit 40e65756c3571b24a4896fe6bfcfbeee666dd07a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 17:31:36 2007 +0000
+
+ Small cleanup: - protect remove_process_timeout against an invalid source.
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_realize), (remove_process_timeout):
+ Small cleanup:
+ - protect remove_process_timeout against an invalid source.
+ - move static prototypes into common block.
+ - gdk_window_show() is done in map not realize.
+
+
+ svn path=/trunk/; revision=1477
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 14 ++++++++------
+ 2 files changed, 16 insertions(+), 6 deletions(-)
+
+commit 876b419f1106886501845b882aa5e5024e5c8191
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 16:56:58 2007 +0000
+
+ Introduce a bit of slack in the bbox check to allow for a small of amount
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_process_incoming):
+ Introduce a bit of slack in the bbox check to allow
+ for a small of amount of cursor motion e.g. due to line
+ scrolling. This turns the long sequence of
+ '(?!?!??? ... ????!)'
+ during a hexdump into the better behaved
+ '.(?!?!?!??!)-+=.(?!?!??!)-+=........'. Although it is
+ puzzling why we now how have a block of IO and then two quick
+ display upates...
+
+
+ svn path=/trunk/; revision=1476
+
+ ChangeLog | 13 +++++++++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 8 ++++----
+ 3 files changed, 18 insertions(+), 4 deletions(-)
+
+commit 198e67bf3dbc376b60a710271a1be0db3e11e408
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 16:31:59 2007 +0000
+
+ Repeat _vte_terminal_process_incoming until we have drained the incoming
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (process_timeout), (update_repeat_timeout),
+ (update_timeout):
+ Repeat _vte_terminal_process_incoming until we have drained
+ the incoming buffers or we can handle no more. Fixes a
+ problem where the display wouldn't update if we hadn't
+ processed enough data (e.g. on startup, displaying the first
+ prompt). This bug corresponds with the sequence
+ '*-+=..()?!(?!?!?!)-+=' below, which now reads
+ '*-+=..()(?!?!?!)-+='
+
+
+ svn path=/trunk/; revision=1475
+
+ ChangeLog | 12 ++++++++++++
+ src/vte.c | 30 +++++++++++++++++++-----------
+ 2 files changed, 31 insertions(+), 11 deletions(-)
+
+commit 99a36a042102e320143dade3ba1574310ee66d08
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 15:26:57 2007 +0000
+
+ "%ld" for cursor indices.
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_invalidate_cursor_once):
+ "%ld" for cursor indices.
+
+
+ svn path=/trunk/; revision=1474
+
+ ChangeLog | 5 +++++
+ src/vte.c | 6 ++----
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+commit 78f7a5f85b7297c320ab92a425e9c7df99d2c212
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 15:24:30 2007 +0000
+
+ Cursor indices are long.
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_invalidate_cells),
+ (_vte_invalidate_cursor_once):
+ Cursor indices are long.
+
+
+ svn path=/trunk/; revision=1473
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 5 +++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit a2886cc03276143105f780689b587dedd493dde6
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 15:20:19 2007 +0000
+
+ Cursor indices are long. Prepend the GTK+ generated expose if we already
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_invalidate_cell):
+ Cursor indices are long.
+ * src/vte.c: (_vte_terminal_expose):
+ Prepend the GTK+ generated expose if we already have an
+ display update pending.
+
+
+ svn path=/trunk/; revision=1472
+
+ ChangeLog | 9 +++++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 19 ++++++++++++++-----
+ 3 files changed, 24 insertions(+), 6 deletions(-)
+
+commit 12d98d8c8bf1b53bb2b68a758e7b68043be35a10
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 15:02:25 2007 +0000
+
+ Add a new debug flag to visualize the work flow. VTE_DEBUG_FLAGS=work
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ Add a new debug flag to visualize the work flow.
+ VTE_DEBUG_FLAGS=work generates output like:
+ Debugging work flow (top input to bottom output):
+ . _vte_terminal_process_incoming
+ ( start _vte_terminal_process_incoming
+ ? _vte_invalidate_cells (call)
+ ! _vte_invalidate_cells (dirty)
+ * _vte_invalidate_all
+ ) end _vte_terminal_process_incoming
+ - gdk_window_process_all_updates
+ + vte_terminal_expose
+ = vte_terminal_paint
+
*?!**+=*-+=..()?!(?!?!?!)-+=?!-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.().(?!?!?!)-+=.().(?!?!?!)-+=.().().(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!)-+=.............................................................................................................................................................................................................................................................................(?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????!??!)-+=.......................................................................
+
+ Which tells me I have two bugs to track:
+ 1. the initial '..()' is a missing invalidate.
+ 2. '(?!?!????????????????????!??!)' is not very efficient.
+
+ * src/debug.c: (_vte_debug_parse_string):
+ * src/debug.h:
+ * src/vte.c: (update_regions), (_vte_invalidate_cells),
+ (_vte_invalidate_all), (vte_terminal_process_incoming),
+ (vte_terminal_io_read), (vte_terminal_paint),
+ (vte_terminal_expose), (vte_terminal_class_init):
+ Add VTE_DEBUG_WORK
+
+
+ svn path=/trunk/; revision=1471
+
+ ChangeLog | 28 ++++++++++++++++++++++
+ src/debug.c | 3 ++
+ src/debug.h | 5 ++-
+ src/vte.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
+ 4 files changed, 98 insertions(+), 11 deletions(-)
+
+commit d061fc52911fd4a5e77982f993923198a27b65e8
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 12:24:02 2007 +0000
+
+ Bug 398150 – cursor leaves trail behind in vim
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398150 – cursor leaves trail behind in vim
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_invalidate_cell),
+ (vte_terminal_process_incoming):
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+ Invalidate the old cursor position if we detect the cursor
+ moved during the sequence or if the cursor changed state.
+
+
+ svn path=/trunk/; revision=1470
+
+ ChangeLog | 11 ++++++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++---
+ src/vteseq.c | 5 ----
+ 4 files changed, 62 insertions(+), 9 deletions(-)
+
+commit d78519b31ec6a5c8c38820ac2ba4864cc9e0acca
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 10:10:10 2007 +0000
+
+ Missing $(X_CFLAGS)
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/Makefile.am:
+ Missing $(X_CFLAGS)
+
+
+ svn path=/trunk/; revision=1469
+
+ ChangeLog | 5 +++++
+ src/Makefile.am | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 48c3b16e6c0470edf5ceae155a32d8ce36244968
+Author: Chris Wilson <cpwilson src gnome org>
+Date: Fri Jan 19 10:07:58 2007 +0000
+
+ missed from last commit
+
+ svn path=/trunk/; revision=1468
+
+ ChangeLog | 8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+commit 87449145eb0da8989be00a497aac68d19a7bb6db
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Fri Jan 19 09:30:54 2007 +0000
+
+ Bug 398243 – Crash
+
+ 2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398243 – Crash
+
+ * src/vtebg.c: (vte_bg_cache_prune_int):
+ Use the return from g_list_delete_link to maintain the list
+ head.
+
+
+ svn path=/trunk/; revision=1467
+
+ src/vtebg.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit dfbaae24245375fa7fca8d3b38d7ff387bbeba01
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 22:39:36 2007 +0000
+
+ Check that the start of the invalid region is on screen.
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_invalidate_cells):
+ Check that the start of the invalid region is on screen.
+
+
+ svn path=/trunk/; revision=1466
+
+ ChangeLog | 5 +++++
+ src/vte.c | 6 ++++++
+ 2 files changed, 11 insertions(+), 0 deletions(-)
+
+commit 725f61ecda29fcd44acf45ec0e3c8f1bbb39252f
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 22:03:00 2007 +0000
+
+ Bug 398116 – lags behind when widget not visible
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398116 – lags behind when widget not visible
+
+ * src/vte.c: (vte_terminal_handle_scroll):
+ During the spring clean, I converted a few GTK_WIDGET_REALIZED()
+ checks to GTK_WIDGET_DRAWABLE()+visibility check.
+ Unfortunately, it broke keeping the scroll delta in sync with
+ the insert delta. Sync the pair, then perform the check before
+ making updates on the visible area.
+
+
+ svn path=/trunk/; revision=1465
+
+ ChangeLog | 11 +++++++++++
+ src/vte.c | 13 +++++++------
+ 2 files changed, 18 insertions(+), 6 deletions(-)
+
+commit a3eef86e9564a3add70b45390b24ad5f24f8bad3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 19:09:42 2007 +0000
+
+ Bug 398083 – background not painted correctly when starting up
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398083 – background not painted correctly when starting up
+
+ * src/vte.c: (_vte_invalidate_all):
+ Compute drawable area in window co-ordinates and not widget
+ co-ordinates.
+
+
+ svn path=/trunk/; revision=1464
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 7 ++++++-
+ 2 files changed, 14 insertions(+), 1 deletions(-)
+
+commit e332a0d91deb6ecb05d16f16b243a366dc7d9974
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 18:54:02 2007 +0000
+
+ Small bit of logic inversion that would have tried to paint on unmapped
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_expose):
+ Small bit of logic inversion that would have tried to paint
+ on unmapped and invisible widgets.
+
+
+ svn path=/trunk/; revision=1463
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 4 ++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 879db418d7347ebe3c11e9bdb42ce19306d61044
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 16:45:25 2007 +0000
+
+ And the corresponding overrides. [The downsides of losing track of which
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+ And the corresponding overrides. [The downsides of losing track of
+ which machine you are working on.]
+
+ * python/vte.override:
+ Add (get_text_include_trailing_spaces)
+
+
+ svn path=/trunk/; revision=1462
+
+ ChangeLog | 7 ++++
+ python/vte.override | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 96 insertions(+), 0 deletions(-)
+
+commit 581c8626bc17fb1b4e47774b59d927f1154f2c92
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 16:43:16 2007 +0000
+
+ Add missing export of vte_terminal_get_text_include_trailing_spaces,
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ Add missing export of vte_terminal_get_text_include_trailing_spaces,
+ needed for building a simple testcase for Bug 397724.
+ vte.defs needs a bit of love...
+
+ * python/vte.defs:
+ Add (get_text_include_trailing_spaces)
+
+
+ svn path=/trunk/; revision=1461
+
+ ChangeLog | 9 +++++++++
+ python/vte.defs | 9 +++++++++
+ 2 files changed, 18 insertions(+), 0 deletions(-)
+
+commit d04bb3e3fa59f8b1b6fc690513e282110caf077b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 15:44:09 2007 +0000
+
+ Fix a couple of compiler warnings.
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vterdb.c: (_vte_rdb_search), (_vte_rdb_boolean):
+ Fix a couple of compiler warnings.
+
+
+ svn path=/trunk/; revision=1460
+
+ ChangeLog | 5 +++++
+ src/vterdb.c | 8 ++++----
+ 2 files changed, 9 insertions(+), 4 deletions(-)
+
+commit 7519b3e4fca7d284a229693efb74f46cd456c9d3
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 15:33:03 2007 +0000
+
+ Delete some dead code.
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_process_incoming):
+ Delete some dead code.
+
+
+ svn path=/trunk/; revision=1459
+
+ ChangeLog | 5 +++++
+ src/vte.c | 5 -----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 8ec33f53f0079f4855db2165f1ecca64880d8b0d
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 15:30:55 2007 +0000
+
+ Restore --enable-debugging.
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ * configure.in:
+ Restore --enable-debugging.
+
+
+ svn path=/trunk/; revision=1458
+
+ ChangeLog | 5 +++++
+ configure.in | 5 +++++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+commit 233a2332176975f1c578a07ab45b6bec792088fc
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 11:13:10 2007 +0000
+
+ Copy Behdad's MAYBE_WARN comprehensive set of warnings from Cairo, and
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ Copy Behdad's MAYBE_WARN comprehensive set of warnings from Cairo,
+ and fixup the immediate compilation failures.
+
+ * configure.in:
+ Iterate over a list of warnings and check that they are valid
+ for the compiler.
+
+ * src/debug.c: (_vte_debug_on):
+ Kill fflush() [redundant with g_printerr].
+
+
+ svn path=/trunk/; revision=1457
+
+ ChangeLog | 12 ++++++++
+ configure.in | 90 +++++++++++++++++++++++++++++++++++++++++++--------------
+ src/debug.c | 3 --
+ 3 files changed, 80 insertions(+), 25 deletions(-)
+
+commit 8dbf931060cd7cf3d5684e913bb8d3f2faeb86c6
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Jan 18 10:09:27 2007 +0000
+
+ Don't call AC_CANONICAL_HOST. Libtool calls it already.
+
+ 2007-01-18 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Don't call AC_CANONICAL_HOST. Libtool calls it
+ already.
+
+ * src/Makefile.am: Don't build extra, test, programs by default.
+ Speeds build up.
+
+
+ svn path=/trunk/; revision=1456
+
+ ChangeLog | 8 ++++++++
+ configure.in | 1 -
+ src/Makefile.am | 2 +-
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 0eabcc042fd65cd52bcf3c56bd154dd40c1e15ec
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Jan 18 10:04:53 2007 +0000
+
+ Fix loop-optimization warnings.
+
+ 2007-01-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/ring.c (_vte_ring_insert_preserve):
+ * src/vte.c (vte_terminal_paint):
+ Fix loop-optimization warnings.
+
+
+ svn path=/trunk/; revision=1455
+
+ ChangeLog | 6 ++++++
+ src/ring.c | 4 ++--
+ src/vte.c | 2 +-
+ 3 files changed, 9 insertions(+), 3 deletions(-)
+
+commit 6d9d4a07aa8e202d67b93b2a7e10ec84f7963c09
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Jan 18 09:46:13 2007 +0000
+
+ Fix more warnings.
+
+ 2007-01-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/ssfe.c (cleanupexit), (barf):
+ * src/vtebg.c (vte_bg_cache_prune_int):
+ * src/vtetc.c (main):
+ Fix more warnings.
+
+
+ svn path=/trunk/; revision=1454
+
+ ChangeLog | 7 +++++++
+ src/ssfe.c | 4 ++--
+ src/vtebg.c | 2 +-
+ src/vtetc.c | 6 +++---
+ 4 files changed, 13 insertions(+), 6 deletions(-)
+
+commit dd0498666a3f4c6f763bdf9bbe6d9ff84b894966
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Jan 18 09:38:41 2007 +0000
+
+ Fix int vs long int mismatches in printf args.
+
+ 2007-01-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/table.c (main):
+ * src/trie.c (_vte_trie_addx), (main):
+ * src/utf8echo.c (main):
+ Fix int vs long int mismatches in printf args.
+
+
+ svn path=/trunk/; revision=1453
+
+ ChangeLog | 7 +++++++
+ src/table.c | 2 +-
+ src/trie.c | 36 ++++++++++++++++++------------------
+ src/utf8echo.c | 2 +-
+ 4 files changed, 27 insertions(+), 20 deletions(-)
+
+commit baef8d76f5dc0a70b3c7e4ba1be585d1961141a8
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Jan 18 09:30:06 2007 +0000
+
+ Remove unused variables.
+
+ 2007-01-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/iso2022.c (_vte_iso2022_find_nextctl):
+ * src/reaper.c (vte_reaper_finalize):
+ * src/vte.c (_vte_terminal_insert_char), (vte_terminal_key_press),
+ (vte_terminal_init), (vte_terminal_size_allocate):
+ * src/vteapp.c (main):
+ * src/vtedraw.c (_vte_draw_init_default):
+ * src/vteglyph.c (_vte_glyph_cache_free):
+ * src/vtergb.c (_vte_rgb_copy):
+ * src/vtexft.c (_vte_xft_font_for_char):
+ Remove unused variables.
+
+
+ svn path=/trunk/; revision=1452
+
+ ChangeLog | 13 +++++++++++++
+ src/iso2022.c | 1 -
+ src/reaper.c | 1 -
+ src/vte.c | 8 +-------
+ src/vteapp.c | 2 ++
+ src/vtedraw.c | 1 -
+ src/vteglyph.c | 1 -
+ src/vtergb.c | 1 -
+ src/vtexft.c | 1 -
+ 9 files changed, 16 insertions(+), 13 deletions(-)
+
+commit 06baf6d464bbfb165c1d5b8cc93aae6dbb7d6503
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Thu Jan 18 02:46:11 2007 +0000
+
+ Bug 161342 revisited. Reset the box to +-inf and not the current cursor,
+
+ 2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 161342 revisited. Reset the box to +-inf and not the current
+ cursor, otherwise you just reproduce the slow behaviour (an overly
+ large invalidation area).
+
+ * src/vte.c: (vte_terminal_process_incoming):
+ Reset bbox to +-inf.
+
+
+ svn path=/trunk/; revision=1451
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 16 ++++++++--------
+ 2 files changed, 17 insertions(+), 8 deletions(-)
+
+commit 9c88d1c90efce33386fcca58736903e58d481ebd
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 22:00:53 2007 +0000
+
+ Second breakage: VTE_INVALID_SOURCE !=0 and calling
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ Second breakage: VTE_INVALID_SOURCE !=0 and calling
+ vte_terminal_set_scrollback_lines with lines == ->scrollback_lines
+ is not a nop.
+
+ * src/vte.c: (vte_terminal_background_update),
+ (vte_terminal_queue_background_update):
+ VTE_INVALID_SOURCE != 0
+ (vte_terminal_set_scrollback_lines):
+ reset the rowdata everytime.
+
+
+ svn path=/trunk/; revision=1450
+
+ ChangeLog | 12 ++++++++++++
+ src/vte.c | 7 ++-----
+ 2 files changed, 14 insertions(+), 5 deletions(-)
+
+commit 867645ccd8d6ccad5982825ef85451abb639d483
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 21:57:43 2007 +0000
+
+ Bug 397414 - port vteapp to GOption
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 397414 - port vteapp to GOption
+
+ * src/vteapp.c: (main):
+ Translation of getopt switch to GOptionEntry[].
+ Missing help for --geometry.
+
+
+ svn path=/trunk/; revision=1449
+
+ ChangeLog | 8 ++
+ src/vteapp.c | 399 +++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 210 insertions(+), 197 deletions(-)
+
+commit 5f4d07a9778eedbbbc267fb57869cefc15874812
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 21:11:24 2007 +0000
+
+ First breakage spotted: the realized flag is set too late in the realize
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ First breakage spotted: the realized flag is set too late in
+ the realize handler. Note to self: not everybody uses a black
+ background.
+
+ * src/vte.c: (vte_terminal_realize):
+ Restore GTK_WIDGET_SET_FLAGS(REALIZED)
+
+
+ svn path=/trunk/; revision=1448
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 11 +++++------
+ 2 files changed, 14 insertions(+), 6 deletions(-)
+
+commit aca77a8bd471d1fc7d343c0006148da8b543c14c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 18:28:58 2007 +0000
+
+ Bug 395373 - Allow the user to specify backend priorities.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 395373 - Allow the user to specify backend priorities.
+
+ * src/vtedraw.c: (_vte_draw_init_user), (_vte_draw_init_default),
+ (_vte_draw_new):
+ Scan $ENV{VTE_BACKEND} for the user's preferred backend
+ and failover to the first working backend.
+ Discard checking VTE_USE_*
+
+ * src/vtedraw.h:
+ * src/vteft2.c:
+ * src/vteft2.h:
+ * src/vtegl.c:
+ * src/vtegl.h:
+ * src/vtepango.c:
+ * src/vtepango.h:
+ * src/vtepangox.c:
+ * src/vtepangox.h:
+ * src/vteskel.c: (_vte_skel_check), (_vte_skel_create),
+ (_vte_skel_destroy), (_vte_skel_start):
+ * src/vteskel.h:
+ * src/vtexft.c:
+ * src/vtexft.h:
+ Remove the environment variable field, drop the "Vte" prefix
+ from the backend names and make the exported structure const.
+
+
+ svn path=/trunk/; revision=1447
+
+ ChangeLog | 27 +++++++++++++++++
+ src/vtedraw.c | 88 ++++++++++++++++++++++++++++++++++++++++---------------
+ src/vtedraw.h | 4 +-
+ src/vteft2.c | 4 +-
+ src/vteft2.h | 2 +-
+ src/vtegl.c | 4 +-
+ src/vtegl.h | 2 +-
+ src/vtepango.c | 4 +-
+ src/vtepango.h | 2 +-
+ src/vtepangox.c | 4 +-
+ src/vtepangox.h | 2 +-
+ src/vteskel.c | 29 +++---------------
+ src/vteskel.h | 2 +-
+ src/vtexft.c | 4 +-
+ src/vtexft.h | 2 +-
+ 15 files changed, 114 insertions(+), 66 deletions(-)
+
+commit 2007589313e4a9bbad44b91d79dfd2b109166eca
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 18:10:49 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous):
+ * src/vte-private.h:
+ * src/vte.c: (_vte_terminal_set_default_attributes),
+ (vte_terminal_set_default_tabstops), (vte_terminal_set_encoding),
+ (vte_terminal_set_opacity), (vte_terminal_set_default_colors),
+ (vte_terminal_emit_pending_text_signals),
+ (vte_terminal_feed_child_using_modes),
+ (vte_terminal_hierarchy_changed),
+ (vte_terminal_send_mouse_button_internal),
+ (vte_terminal_maybe_send_mouse_drag), (vte_terminal_set_font),
+ (vte_terminal_set_font_from_string), (vte_terminal_set_size),
+ (vte_terminal_handle_scroll), (vte_terminal_set_scroll_adjustment),
+ (vte_terminal_set_emulation), (vte_terminal_set_termcap),
+ (vte_terminal_init), (vte_terminal_size_allocate),
+ (vte_terminal_unrealize), (vte_terminal_finalize),
+ (vte_terminal_realize), (vte_terminal_determine_colors),
+ (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_set_background_transparent),
+ (vte_terminal_set_cursor_blinks),
+ (vte_terminal_set_scrollback_lines), (vte_terminal_reset),
+ (vte_terminal_set_pty):
+ * src/vteseq.c: (vte_sequence_handler_st),
+ (vte_sequence_handler_vb),
+ (vte_sequence_handler_device_status_report),
+ (vte_sequence_handler_dec_device_status_report),
+ (vte_sequence_handler_window_manipulation):
+ Janitorial work to improve code readability and small
+ micro-optimisations, such as use the length returned by
+ g_snprintf rather then calling strlen on the result or just
+ using a constant string.
+
+
+ svn path=/trunk/; revision=1446
+
+ ChangeLog | 36 +++++++++
+ src/iso2022.c | 2 +-
+ src/vte-private.h | 3 +-
+ src/vte.c | 226 +++++++++++++++++++++++++++--------------------------
+ src/vteseq.c | 102 +++++++++++-------------
+ 5 files changed, 202 insertions(+), 167 deletions(-)
+
+commit 8d819414955071192d09f416aa9040ce3bd230f1
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 18:07:37 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/ring.h:
+ Make the debug checks conditional on VTE_DEBUG.
+
+
+ svn path=/trunk/; revision=1445
+
+ ChangeLog | 7 +++++++
+ src/ring.h | 5 +++++
+ 2 files changed, 12 insertions(+), 0 deletions(-)
+
+commit c900468b1c4f178d04424f182836bf058ad61b08
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 18:06:56 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/matcher.c: (_vte_matcher_add), (_vte_matcher_create),
+ (_vte_matcher_destroy), (_vte_matcher_new), (_vte_matcher_match),
+ (_vte_matcher_print):
+ * src/matcher.h:
+ * src/table.c: (_vte_table_new):
+ * src/table.h:
+ * src/trie.c: (_vte_trie_new):
+ * src/trie.h:
+ _vte_match_match() is called extremely frequently, and the
+ switch shows up on the profiles. Replace the switch with a
+ function pointer obtained by introducing function tables for
+ the matcher implementations.
+
+
+ svn path=/trunk/; revision=1444
+
+ ChangeLog | 17 ++++++++++++
+ src/matcher.c | 78 +++++++++++++++-----------------------------------------
+ src/matcher.h | 23 +++++++++++++++++
+ src/table.c | 14 +++++++++-
+ src/table.h | 2 +
+ src/trie.c | 14 +++++++++-
+ src/trie.h | 2 +
+ 7 files changed, 91 insertions(+), 59 deletions(-)
+
+commit f5801a4790d57af56dff270c11ebe5438f283ca7
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 18:04:46 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_set_font_full), (vte_terminal_realize):
+ Don't load a font until the terminal is realized.
+ Saves decoding 2 or 3 fonts before g-t is mapped.
+
+
+ svn path=/trunk/; revision=1443
+
+ ChangeLog | 9 +++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 62 ++++++++++++++++++++++++++++++++++------------------
+ 3 files changed, 50 insertions(+), 22 deletions(-)
+
+commit 736cd9069881445f07940f20800ac1a7be3a4bef
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 18:03:33 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vteseq.c: (vte_g_array_fill):
+ Micro-optimise the loop.
+
+
+ svn path=/trunk/; revision=1442
+
+ ChangeLog | 7 +++++++
+ src/vteseq.c | 5 +++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit 3258a9a629ff722be1da2c32cfa996bc2596ee82
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 18:02:44 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vteft2.c: (_vte_ft2_create), (_vte_ft2_start),
+ (_vte_ft2_end), (update_bbox), (_vte_ft2_set_text_font),
+ (_vte_ft2_draw_text):
+ * src/vtergb.c: (_vte_rgb_buffer_new), (_vte_rgb_buffer_resize),
+ (_vte_rgb_draw_color_rgb), (_vte_rgb_copy):
+ * src/vtergb.h:
+ Reuse converted glyphs within a run.
+
+
+ svn path=/trunk/; revision=1441
+
+ ChangeLog | 12 ++++++++++
+ src/vteft2.c | 61 ++++++++++++++++++++++++++-------------------------
+ src/vtergb.c | 68 ++++++++++++++++++++++++++++++++++++++++++---------------
+ src/vtergb.h | 2 +
+ 4 files changed, 95 insertions(+), 48 deletions(-)
+
+commit d09749def08e9b2485fd6bca6962c6be2e2d203a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 18:01:44 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vteconv.c: (_vte_conv_utf8_strlen), (_vte_conv):
+ Micro-optimise the loops.
+
+
+ svn path=/trunk/; revision=1440
+
+ ChangeLog | 7 +++++++
+ src/vteconv.c | 33 +++++++++++++--------------------
+ 2 files changed, 20 insertions(+), 20 deletions(-)
+
+commit c06f39b7c406ff785b9cdd84d5554a916e9a6660
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 18:00:51 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vteglyph.c: (_vte_glyph_free), (_vte_cached_glyph_free),
+ (_vte_glyph_cache_new), (_vte_glyph_cache_free),
+ (_vte_glyph_cache_set_font_description),
+ (_vte_glyph_cache_has_char), (_vte_glyph_remap_char),
+ (_vte_glyph_get_uncached), (_vte_glyph_get), (_vte_glyph_draw):
+ * src/vteglyph.h:
+ Avoid the double glyph lookup in _vte_glyph_get and
+ replace the tree with a hash.
+
+
+ svn path=/trunk/; revision=1439
+
+ ChangeLog | 13 ++++++++
+ src/vteglyph.c | 93 +++++++++++++++++++++++---------------------------------
+ src/vteglyph.h | 2 +-
+ 3 files changed, 52 insertions(+), 56 deletions(-)
+
+commit 24a1c9033fa36e79e8d1a5caee4d1bf22774b50c
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 17:58:56 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/iso2022.c: (_vte_iso2022_state_new),
+ (_vte_iso2022_state_free), (_vte_iso2022_state_set_codeset):
+ * src/trie.c: (_vte_trie_add), (convert_mbstowcs):
+ * src/utf8echo.c: (main):
+ * src/vte.c: (vte_terminal_set_encoding), (vte_terminal_send),
+ (vte_terminal_init), (vte_terminal_finalize),
+ (vte_terminal_set_word_chars):
+ * src/vteconv.c: (_vte_conv_open), (_vte_conv_close), (_vte_conv):
+ * src/vteconv.h:
+ * src/vteseq.c: (vte_sequence_handler_set_title_internal):
+ s/(VteConv)-1/VTE_INVALID_CONV/
+
+
+ svn path=/trunk/; revision=1438
+
+ ChangeLog | 16 ++++++++++++++++
+ src/iso2022.c | 10 +++++-----
+ src/trie.c | 4 ++--
+ src/utf8echo.c | 2 +-
+ src/vte.c | 14 +++++++-------
+ src/vteconv.c | 6 +++---
+ src/vteconv.h | 1 +
+ src/vteseq.c | 2 +-
+ 8 files changed, 36 insertions(+), 19 deletions(-)
+
+commit 0de19093d8b5d24c4ded623e938d7a1ffb21214b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 17:58:01 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vte.c: (_vte_new_row_data), (_vte_new_row_data_sized),
+ (_vte_terminal_find_row_data), (_vte_row_data_find_charcell),
+ (vte_line_is_wrappable), (vte_terminal_extend_selection),
+ (vte_terminal_draw_row):
+ Refactor vte_find_row_data to simplify and improve
+ some logic.
+
+
+ svn path=/trunk/; revision=1437
+
+ ChangeLog | 11 ++++
+ src/vte.c | 194 ++++++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 112 insertions(+), 93 deletions(-)
+
+commit cbb43c93086847789a92faa03d6837f2ef24df63
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 17:56:49 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vte.c: (vte_g_array_fill), (vte_terminal_emit_commit),
+ (_vte_terminal_ensure_cursor), (_vte_terminal_insert_char),
+ (_vte_terminal_fork_basic), (vte_terminal_process_incoming),
+ (vte_terminal_key_press), (vte_terminal_visibility_notify),
+ (vte_terminal_apply_metrics), (vte_terminal_paint),
+ (vte_terminal_expose):
+ Callgrind driven rewrite of critical loops.
+
+
+ svn path=/trunk/; revision=1436
+
+ ChangeLog | 12 ++++
+ src/vte.c | 198 ++++++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 116 insertions(+), 94 deletions(-)
+
+commit b599a37352fc35337fad518b6866e95c7e248445
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 17:55:03 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_terminal_connect_pty_write),
+ (_vte_terminal_disconnect_pty_write), (vte_terminal_io_read),
+ (vte_terminal_feed), (vte_terminal_feed_child_binary),
+ (vte_terminal_init), (vte_terminal_unrealize),
+ (add_process_timeout), (add_update_timeout),
+ (remove_process_timeout), (vte_terminal_stop_processing),
+ (vte_terminal_is_processing), (vte_terminal_start_processing),
+ (process_timeout), (update_repeat_timeout), (update_timeout):
+ The rate-limiting step is the display update - we do not need
+ to process input faster than we are displaying it. So use the
+ update display timeout to process new input (and dirty some
+ more pixels).
+
+
+ svn path=/trunk/; revision=1435
+
+ ChangeLog | 19 ++++
+ src/vte-private.h | 5 +-
+ src/vte.c | 238 +++++++++++++++++++++--------------------------------
+ 3 files changed, 113 insertions(+), 149 deletions(-)
+
+commit 9e9d2c65c1687d10d3d83ab13ecbe203ba36ae18
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 17:49:23 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/interpret.c: (main):
+ * src/iso2022.c: (_vte_iso2022_fragment_input),
+ (_vte_iso2022_process), (main):
+ * src/vte.c: (vte_terminal_match_contents_refresh),
+ (vte_terminal_process_incoming), (vte_terminal_init),
+ (vte_terminal_set_word_chars):
+ * src/vteaccess.c:
+ (vte_terminal_accessible_update_private_data_if_needed):
+ * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
+ * src/vtefc.h:
+ * src/vteglyph.c: (_vte_glyph_cache_new), (_vte_glyph_cache_free),
+ (_vte_glyph_cache_set_font_description):
+ * src/vteglyph.h:
+ * src/vteregex.c: (_vte_regex_sort_matches):
+ * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_close),
+ (_vte_xft_font_for_char):
+ s/g_array_new(TRUE, TRUE/g_array_new(FALSE, FALSE/
+ All uses of GArray respect their lengths and do not
+ zero-termination or untouched members to be cleared.
+
+
+ svn path=/trunk/; revision=1434
+
+ ChangeLog | 24 ++++++++++++++++++++++++
+ src/interpret.c | 2 +-
+ src/iso2022.c | 15 +++++++++------
+ src/vte.c | 10 +++++-----
+ src/vteaccess.c | 9 +++------
+ src/vtefc.c | 6 +++---
+ src/vtefc.h | 2 +-
+ src/vteglyph.c | 20 +++++++++-----------
+ src/vteglyph.h | 2 +-
+ src/vteregex.c | 2 +-
+ src/vtexft.c | 49 ++++++++++++++++++++++---------------------------
+ 11 files changed, 79 insertions(+), 62 deletions(-)
+
+commit 7c070ed56f33e131f618b5929fe9dbb0e6a27d76
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 17:46:52 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/iso2022.c: (_vte_iso2022_state_free):
+ * src/matcher.c: (_vte_matcher_free_params_array):
+ * src/ring.c: (_vte_ring_free):
+ * src/table.c: (_vte_table_free):
+ * src/trie.c: (_vte_trie_match):
+ * src/vte.c: (_vte_terminal_match_contents_clear),
+ (_vte_terminal_fork_basic),
+ (vte_terminal_get_text_range_maybe_wrapped), (vte_terminal_copy),
+ (vte_terminal_finalize), (vte_terminal_draw_cells_with_attributes):
+ * src/vteaccess.c: (vte_terminal_accessible_free_private_data):
+ * src/vtebg.c: (vte_bg_root_pixmap), (vte_bg_cache_item_free):
+ * src/vteconv.c: (_vte_conv_close):
+ * src/vtedraw.c: (_vte_draw_free):
+ * src/vteft2.c: (_vte_ft2_destroy):
+ * src/vtegl.c: (_vte_gl_destroy):
+ * src/vteglyph.c: (_vte_glyph_cache_free):
+ * src/vtepango.c: (_vte_pango_destroy):
+ * src/vtepangox.c: (_vte_pango_x_destroy):
+ * src/vtergb.c: (_vte_rgb_buffer_new), (_vte_rgb_buffer_free):
+ * src/vteseq.c: (vte_sequence_handler_se),
+ (vte_sequence_handler_so):
+ * src/vteskel.c: (_vte_skel_destroy):
+ * src/vtexft.c: (_vte_xft_font_close), (_vte_xft_destroy):
+ Do not zero memory in destructors, as glib will zero all
+ freed memory if G_DEBUG=gc-friendly.
+
+
+ svn path=/trunk/; revision=1433
+
+ ChangeLog | 30 +++++++++++++++++++++++
+ src/iso2022.c | 15 -----------
+ src/matcher.c | 6 +----
+ src/ring.c | 5 ----
+ src/table.c | 3 --
+ src/trie.c | 6 +----
+ src/vte.c | 70 +++++-------------------------------------------------
+ src/vteaccess.c | 4 ---
+ src/vtebg.c | 12 +--------
+ src/vteconv.c | 9 -------
+ src/vtedraw.c | 4 ---
+ src/vteft2.c | 4 ---
+ src/vtegl.c | 12 ---------
+ src/vteglyph.c | 15 +----------
+ src/vtepango.c | 10 --------
+ src/vtepangox.c | 10 --------
+ src/vtergb.c | 11 +-------
+ src/vteseq.c | 40 ++++++++-----------------------
+ src/vteskel.c | 6 ----
+ src/vtexft.c | 20 ---------------
+ 20 files changed, 55 insertions(+), 237 deletions(-)
+
+commit 097a0979e15cb02c93da0f166b29451f6104175a
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 17:45:20 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/reaper.c: (vte_reaper_add_child), (vte_reaper_init),
+ (vte_reaper_constructor), (vte_reaper_finalize),
+ (vte_reaper_class_init), (vte_reaper_get), (main):
+ * src/vte.c: (G_DEFINE_TYPE_WITH_CODE), (_vte_terminal_fork_basic),
+ (vte_terminal_key_press), (vte_terminal_init), (vte_terminal_show),
+ (vte_terminal_finalize), (vte_terminal_get_accessible),
+ (vte_terminal_class_init):
+ * src/vteaccess.c: (vte_terminal_initialize),
+ (vte_terminal_accessible_finalize),
+ (vte_terminal_accessible_class_init),
+ (vte_terminal_accessible_get_type),
+ (vte_terminal_accessible_factory_init),
+ (vte_terminal_accessible_factory_new):
+ * src/vtebg.c: (vte_bg_native_new), (vte_bg_finalize),
+ (vte_bg_class_init), (vte_bg_init), (vte_bg_get_for_screen),
+ (vte_bg_cache_item_free), (vte_bg_cache_prune_int),
+ (_vte_bg_resize_pixbuf), (vte_bg_set_root_pixmap),
+ (vte_bg_cache_add), (vte_bg_cache_search), (vte_bg_get_pixmap),
+ (vte_bg_get_pixbuf):
+ Use GObject boiler-plate code (G_DEFINE_TYPE),
+ as opposed to open coding.
+
+
+ svn path=/trunk/; revision=1432
+
+ ChangeLog | 26 +++++++
+ src/reaper.c | 91 ++++++++---------------
+ src/vte.c | 96 ++++++++----------------
+ src/vteaccess.c | 149 +++++++++++++++----------------------
+ src/vtebg.c | 221 ++++++++++++++++++++++++++-----------------------------
+ 5 files changed, 252 insertions(+), 331 deletions(-)
+
+commit ee14604f30ecfaaaf7aa4f99962cdef1470bcc24
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 17:43:17 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_free_row_data), (vte_g_array_fill),
+ (vte_terminal_find_charcell), (vte_terminal_preedit_width),
+ (vte_terminal_preedit_length), (_vte_invalidate_cursor_once),
+ (vte_invalidate_cursor_periodic), (vte_terminal_deselect_all),
+ (vte_terminal_set_default_tabstops),
+ (vte_terminal_match_contents_refresh), (vte_terminal_cursor_new),
+ (vte_terminal_match_check_internal),
+ (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_changed),
+ (vte_terminal_scroll_pages), (vte_terminal_maybe_scroll_to_top),
+ (vte_terminal_maybe_scroll_to_bottom),
+ (_vte_terminal_set_pointer_visible), (vte_terminal_new),
+ (vte_terminal_set_color_internal), (vte_terminal_set_color_bold),
+ (vte_terminal_set_color_dim), (vte_terminal_set_color_foreground),
+ (vte_terminal_set_color_background),
+ (vte_terminal_set_color_cursor),
+ (vte_terminal_set_color_highlight), (vte_terminal_handle_sequence),
+ (vte_terminal_catch_child_exited),
+ (_vte_terminal_connect_pty_read),
+ (_vte_terminal_connect_pty_write), (_vte_terminal_fork_basic),
+ (vte_terminal_eof), (vte_terminal_im_reset),
+ (vte_terminal_process_incoming), (vte_terminal_io_read),
+ (vte_terminal_io_write), (vte_terminal_send),
+ (vte_terminal_im_commit), (vte_terminal_im_preedit_start),
+ (vte_terminal_im_preedit_end), (vte_terminal_im_preedit_changed),
+ (vte_terminal_configure_toplevel),
+ (vte_terminal_hierarchy_changed), (vte_terminal_style_changed),
+ (add_cursor_timeout), (vte_terminal_key_press), (vte_same_class),
+ (vte_line_is_wrappable), (vte_terminal_paste_cb),
+ (vte_terminal_send_mouse_button_internal),
+ (vte_terminal_maybe_send_mouse_drag), (vte_terminal_clear_cb),
+ (vte_terminal_copy_cb),
+ (vte_terminal_get_text_range_maybe_wrapped),
+ (vte_terminal_clipboard_get), (vte_terminal_copy),
+ (vte_terminal_paste), (vte_terminal_autoscroll),
+ (vte_terminal_start_autoscroll), (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release),
+ (vte_terminal_focus_in), (vte_terminal_focus_out),
+ (vte_terminal_visibility_notify), (vte_terminal_apply_metrics),
+ (vte_terminal_set_font_full), (vte_terminal_refresh_size),
+ (vte_terminal_handle_scroll), (vte_terminal_set_scroll_adjustment),
+ (vte_terminal_connect_xft_settings),
+ (vte_terminal_disconnect_xft_settings),
+ (_vte_terminal_codeset_changed_cb), (vte_terminal_init),
+ (vte_terminal_size_request), (vte_terminal_size_allocate),
+ (vte_terminal_show), (root_pixmap_changed_cb),
+ (vte_terminal_unrealize), (vte_terminal_finalize),
+ (vte_terminal_realize), (vte_terminal_determine_colors),
+ (vte_terminal_paint), (vte_terminal_expose), (vte_terminal_scroll),
+ (vte_terminal_get_accessible), (vte_terminal_im_append_menuitems),
+ (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_set_background_image),
+ (vte_terminal_set_background_image_file),
+ (vte_terminal_set_cursor_blinks), (vte_terminal_reset),
+ (vte_terminal_set_pty):
+ * src/vteaccess.c: (vte_terminal_initialize),
+ (vte_terminal_accessible_finalize):
+ * src/vtedraw.c: (_vte_draw_new), (_vte_draw_free),
+ (_vte_draw_start), (_vte_draw_end):
+ * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description),
+ (_vte_fc_defaults_from_gtk), (_vte_fc_connect_settings_changes),
+ (_vte_fc_disconnect_settings_changes):
+ * src/vteft2.c: (_vte_ft2_destroy),
+ (_vte_ft2_set_background_image), (_vte_ft2_clear):
+ * src/vtegl.c: (_vte_gl_destroy), (_vte_gl_set_background_image),
+ (_vte_gl_clear):
+ * src/vtepango.c: (_vte_pango_destroy), (_vte_pango_start),
+ (_vte_pango_end), (_vte_pango_set_background_image),
+ (_vte_pango_set_text_font):
+ * src/vtepangox.c: (_vte_pango_x_destroy), (_vte_pango_x_start),
+ (_vte_pango_x_end), (_vte_pango_x_set_background_image),
+ (_vte_pango_x_set_text_font):
+ * src/vterdb.c: (_vte_rdb_get):
+ * src/vteseq.c: (vte_sequence_handler_scroll_up_or_down),
+ (vte_sequence_handler_set_title_internal), (vte_terminal_beep),
+ (vte_sequence_handler_do), (vte_sequence_handler_sf),
+ (vte_sequence_handler_sr), (vte_sequence_handler_vb),
+ (vte_sequence_handler_window_manipulation):
+ * src/vteskel.c: (_vte_skel_destroy):
+ * src/vtetree.c: (_vte_tree_new), (_vte_tree_destroy):
+ * src/vtexft.c: (_vte_xft_set_background_image), (_vte_xft_clear):
+ Remove superfluous checks and run-time checked type casts.
+
+
+ svn path=/trunk/; revision=1431
+
+ ChangeLog | 89 +++++++++
+ src/vte-private.h | 2 +-
+ src/vte.c | 550 +++++++++++++++++------------------------------------
+ src/vteaccess.c | 68 ++++----
+ src/vtedraw.c | 10 +-
+ src/vtefc.c | 18 +-
+ src/vteft2.c | 10 +-
+ src/vtegl.c | 10 +-
+ src/vtepango.c | 50 +++---
+ src/vtepangox.c | 56 +++---
+ src/vterdb.c | 4 +-
+ src/vteseq.c | 26 +--
+ src/vteskel.c | 4 +-
+ src/vtetree.c | 4 +-
+ src/vtexft.c | 8 +-
+ 15 files changed, 394 insertions(+), 515 deletions(-)
+
+commit 2c0c0eafd9681470b399c9e813e19ca27acf3b2b
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 17:41:36 2007 +0000
+
+ As part of Bug 397439.
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/debug.c:
+ * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
+ (_vte_iso2022_state_new), (_vte_iso2022_state_set_codeset),
+ (process_8_bit_sequence), (process_cdata), (process_control),
+ (_vte_iso2022_process):
+ * src/keymap.c: (_vte_keymap_map):
+ * src/matcher.c: (_vte_matcher_init), (_vte_matcher_create),
+ (_vte_matcher_destroy):
+ * src/pty.c: (_vte_pty_run_on_pty), (_vte_pty_fork_on_pty_name),
+ (_vte_pty_fork_on_pty_fd), (_vte_pty_set_size),
+ (_vte_pty_get_size), (_vte_pty_ptsname), (_vte_pty_open_unix98),
+ (_vte_pty_open_with_helper), (_vte_pty_open), (main):
+ * src/reaper.c: (vte_reaper_emit_signal),
+ (vte_reaper_child_watch_cb), (vte_reaper_init),
+ (vte_reaper_finalize):
+ * src/reflect.c: (text_changed_insert), (text_changed_delete):
+ * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
+ (_vte_ring_remove), (scrolled_off), (main):
+ * src/slowcat.c: (main):
+ * src/table.c: (_vte_table_printi), (_vte_table_print):
+ * src/trie.c: (char_class_string_extract):
+ * src/vte.c: (_vte_invalidate_cursor_once),
+ (vte_terminal_emit_selection_changed), (vte_terminal_emit_commit),
+ (vte_terminal_emit_emulation_changed),
+ (vte_terminal_emit_encoding_changed),
+ (vte_terminal_emit_child_exited),
+ (_vte_terminal_emit_contents_changed),
+ (vte_terminal_emit_cursor_moved), (vte_terminal_emit_eof),
+ (vte_terminal_emit_char_size_changed),
+ (_vte_terminal_emit_status_line_changed),
+ (vte_terminal_emit_increase_font_size),
+ (vte_terminal_emit_decrease_font_size),
+ (_vte_terminal_emit_text_inserted),
+ (_vte_terminal_emit_text_deleted),
+ (vte_terminal_emit_text_modified),
+ (vte_terminal_emit_text_scrolled), (vte_terminal_deselect_all),
+ (vte_terminal_match_check_internal), (vte_terminal_match_check),
+ (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_changed),
+ (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
+ (vte_terminal_maybe_scroll_to_bottom), (vte_terminal_set_encoding),
+ (_vte_terminal_set_pointer_visible), (vte_terminal_new),
+ (vte_terminal_generate_bold), (_vte_terminal_insert_char),
+ (display_control_sequence), (vte_terminal_fork_command),
+ (vte_terminal_emit_pending_text_signals),
+ (vte_terminal_process_incoming), (vte_terminal_io_write),
+ (vte_terminal_send), (vte_terminal_im_commit),
+ (vte_terminal_im_preedit_start), (vte_terminal_im_preedit_end),
+ (vte_terminal_im_preedit_changed),
+ (vte_terminal_configure_toplevel),
+ (vte_terminal_hierarchy_changed), (vte_terminal_style_changed),
+ (vte_terminal_key_press), (vte_terminal_paste_cb),
+ (vte_terminal_match_hilite_clear), (vte_terminal_match_hilite),
+ (vte_terminal_clear_cb), (vte_terminal_copy_cb),
+ (vte_terminal_copy), (vte_terminal_paste),
+ (vte_terminal_start_selection), (vte_terminal_extend_selection),
+ (vte_terminal_autoscroll), (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release),
+ (vte_terminal_focus_in), (vte_terminal_focus_out),
+ (vte_terminal_set_font_full), (vte_terminal_set_size),
+ (vte_terminal_handle_scroll), (vte_terminal_set_emulation),
+ (vte_terminal_set_termcap), (vte_terminal_reset_rowdata),
+ (vte_terminal_fc_settings_changed), (vte_terminal_init),
+ (vte_terminal_size_request), (vte_terminal_size_allocate),
+ (vte_terminal_show), (vte_terminal_unrealize),
+ (vte_terminal_finalize), (vte_terminal_realize),
+ (vte_terminal_draw_cells), (_vte_terminal_map_pango_color),
+ (vte_terminal_paint), (vte_terminal_scroll),
+ (vte_terminal_class_init), (vte_terminal_get_type),
+ (vte_terminal_copy_clipboard), (vte_terminal_paste_clipboard),
+ (vte_terminal_copy_primary), (vte_terminal_paste_primary),
+ (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_set_background_saturation),
+ (vte_terminal_set_background_tint_color),
+ (vte_terminal_set_background_transparent),
+ (vte_terminal_set_background_image),
+ (vte_terminal_set_background_image_file),
+ (vte_terminal_set_word_chars):
+ * src/vteaccess.c: (emit_text_caret_moved),
+ (emit_text_changed_insert), (emit_text_changed_delete),
+ (vte_terminal_accessible_update_private_data_if_needed),
+ (vte_terminal_accessible_invalidate_cursor),
+ (vte_terminal_accessible_finalize),
+ (vte_terminal_accessible_get_text),
+ (vte_terminal_accessible_get_text_somewhere),
+ (vte_terminal_accessible_text_init),
+ (vte_terminal_accessible_component_init),
+ (vte_terminal_accessible_factory_new):
+ * src/vteapp.c: (main):
+ * src/vtebg.c: (vte_bg_root_pixmap), (_vte_bg_resize_pixbuf):
+ * src/vtedraw.c: (_vte_draw_new):
+ * src/vtepango.c: (_vte_pango_set_text_font):
+ * src/vtepangox.c: (_vte_pango_x_set_text_font):
+ * src/vteseq.c: (vte_terminal_emit_deiconify_window),
+ (vte_terminal_emit_iconify_window),
+ (vte_terminal_emit_icon_title_changed),
+ (vte_terminal_emit_window_title_changed),
+ (vte_terminal_emit_raise_window), (vte_terminal_emit_lower_window),
+ (vte_terminal_emit_maximize_window),
+ (vte_terminal_emit_refresh_window),
+ (vte_terminal_emit_restore_window),
+ (vte_terminal_emit_move_window), (vte_terminal_emit_resize_window),
+ (vte_sequence_handler_set_title_internal),
+ (vte_sequence_handler_decset_internal), (vte_sequence_handler_bt),
+ (vte_sequence_handler_application_keypad),
+ (vte_sequence_handler_normal_keypad),
+ (vte_sequence_handler_window_manipulation):
+ * src/vtetc.c: (main):
+ * src/vtexft.c: (_vte_xft_set_text_font):
+ s/fprintf(stderr,/g_printerr(/
+
+
+
+ svn path=/trunk/; revision=1430
+
+ ChangeLog | 116 +++++++++++++++++++++
+ src/debug.c | 1 -
+ src/iso2022.c | 74 +++++++-------
+ src/keymap.c | 60 ++++++------
+ src/matcher.c | 11 +-
+ src/pty.c | 52 +++++-----
+ src/reaper.c | 8 +-
+ src/reflect.c | 6 +-
+ src/ring.c | 52 +++++-----
+ src/slowcat.c | 2 +-
+ src/table.c | 4 +-
+ src/trie.c | 2 +-
+ src/vte.c | 303 +++++++++++++++++++++++++++----------------------------
+ src/vteaccess.c | 34 +++---
+ src/vteapp.c | 4 +-
+ src/vtebg.c | 4 +-
+ src/vtedraw.c | 2 +-
+ src/vtepango.c | 2 +-
+ src/vtepangox.c | 2 +-
+ src/vteseq.c | 96 +++++++++---------
+ src/vtetc.c | 4 +-
+ src/vtexft.c | 2 +-
+ 22 files changed, 476 insertions(+), 365 deletions(-)
+
+commit 38a457f890a73873c3b6314a96c77678f56fafb9
+Author: Chris Wilson <chris chris-wilson co uk>
+Date: Wed Jan 17 17:32:38 2007 +0000
+
+ Only invalidate groups of inserted chars and not the whole bbox. This
+
+ 2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ Only invalidate groups of inserted chars and not the whole bbox.
+ This speeds up applications like vim which maintain a status line
+ at the bottom of the screen. Fixes bug 161342.
+
+ * src/vte-private.h:
+ * src/vte.c: (update_regions), (_vte_invalidate_cells),
+ (_vte_invalidate_all), (_vte_terminal_scroll_region),
+ (vte_terminal_process_incoming), (reset_update_regions),
+ (remove_update_timeout), (update_repeat_timeout), (update_timeout):
+
+
+ svn path=/trunk/; revision=1429
+
+ ChangeLog | 12 +++
+ src/vte-private.h | 2 +-
+ src/vte.c | 203 +++++++++++++++++++++++++++++++++--------------------
+ 3 files changed, 139 insertions(+), 78 deletions(-)
+
+commit 650bf5cc513a23eedd5be92576b5d634a8c27c28
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jan 15 23:37:45 2007 +0000
+
+ Bug 387171 – vte fails to install on FreeBSD due to missing header Patch
+
+ 2007-01-15 Behdad Esfahbod <behdad gnome org>
+
+ Bug 387171 – vte fails to install on FreeBSD due to missing header
+ Patch from Roy Marples
+
+ * src/vteseq.c: #include <limits.h>
+
+
+ svn path=/trunk/; revision=1428
+
+ ChangeLog | 7 +++++++
+ src/vteseq.c | 1 +
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+commit 499b55eebb9647308c575813d863c0e10e45a68f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jan 15 18:20:34 2007 +0000
+
+ Bug 396831 – Unable to compile without X Patch from Chris Wilson
+
+ 2007-01-15 Behdad Esfahbod <behdad gnome org>
+
+ Bug 396831 – Unable to compile without X
+ Patch from Chris Wilson
+
+ * src/vtebg.c (_vte_bg_display_sync), (vte_bg_root_pixmap): Add stubs.
+
+
+ svn path=/trunk/; revision=1427
+
+ ChangeLog | 7 +++++++
+ src/vtebg.c | 10 ++++++++++
+ 2 files changed, 17 insertions(+), 0 deletions(-)
+
+commit 04bfc12f0a66c9e6d57b488468c6f77532876848
+Author: Ryan Lortie <desrt desrt ca>
+Date: Wed Jan 10 01:18:47 2007 +0000
+
+ Bug 394890 – Segfault when running vte or gnome-terminal
+
+ 2007-01-09 Ryan Lortie <desrt desrt ca>
+
+ Bug 394890 – Segfault when running vte or gnome-terminal
+
+ * src/vtetc.c (_vte_termcap_find_string): change 'int' to 'gssize' to
+ match previous fixup. Hopefully that does it. :)
+
+
+ svn path=/trunk/; revision=1426
+
+ ChangeLog | 7 +++++++
+ src/vtetc.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 91024830d19ceb0a0338cc944477d01fca3d9fc3
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Tue Jan 9 03:32:25 2007 +0000
+
+ Remove .cvsignore files (moved to svn:ignore prop)
+
+ svn path=/trunk/; revision=1424
+
+ .cvsignore | 34 ----------------------------------
+ doc/.cvsignore | 2 --
+ doc/openi18n/.cvsignore | 3 ---
+ doc/reference/.cvsignore | 21 ---------------------
+ gnome-pty-helper/.cvsignore | 19 -------------------
+ po/.cvsignore | 12 ------------
+ python/.cvsignore | 3 ---
+ src/.cvsignore | 29 -----------------------------
+ termcaps/.cvsignore | 2 --
+ 9 files changed, 0 insertions(+), 125 deletions(-)
+
+commit b944a903a3bff70ea9e155a5bcce2f80dffd0f43
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Jan 9 00:03:58 2007 +0000
+
+ Released vte-0.15.1.
+
+ 2007-01-08 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.1.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.1.
+
+ * src/Makefile.am: Bumped libtool version to 10:8:1.
+
+
+ svn path=/trunk/; revision=1422
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 9 +++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 21 insertions(+), 2 deletions(-)
+
+commit 00062d4e4d42a1d230893b8da3affe6901551a9c
+Author: Ryan Lortie <desrt desrt ca>
+Date: Fri Dec 29 09:53:16 2006 +0000
+
+ Small fix to the previous patch.
+
+ 2006-12-29 Ryan Lortie <desrt desrt ca>
+
+ Small fix to the previous patch.
+
+ * src/vtetc.c (_vte_termcap_find_string_length): 'int' is not the same
+ as 'gssize' on 64bit platforms, causing compile errors.
+
+ ChangeLog | 7 +++++++
+ src/vtetc.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 2c7dcf1812cc58d044edd7f065c0b1cfed00247f
+Author: Djihed Afifi <djihed src gnome org>
+Date: Wed Dec 27 22:51:38 2006 +0000
+
+ Updated Arabic Translation.
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 673b596469398389c61e98ea83e52c4c30319731
+Author: Ryan Lortie <desrt desrt ca>
+Date: Wed Dec 27 21:17:05 2006 +0000
+
+ Bug 354061 – Excessive use of strlen by _vte_termcap_create
+
+ 2006-12-27 Ryan Lortie <desrt desrt ca>
+
+ Bug 354061 – Excessive use of strlen by _vte_termcap_create
+
+ * src/vtetc.c: near-complete rewrite to use a GMappedFile rather than
+ reading a line at a time with excessive strlen/realloc use.
+
+ * str/matcher.c: this shouldn't be calling the strip code as the
+ strings it has are already unescaped.
+
+ ChangeLog | 10 +
+ src/matcher.c | 16 +-
+ src/vtetc.c | 1239 +++++++++++++++++++++++++--------------------------------
+ 3 files changed, 551 insertions(+), 714 deletions(-)
+
+commit 9f1df4993cc4c92c5a989e4337e08429b730c7fc
+Author: Ryan Lortie <desrt desrt ca>
+Date: Wed Dec 27 21:10:34 2006 +0000
+
+ Bug 387475 – Gtk-Warning spew in gnome-terminal
+
+ 2006-12-27 Ryan Lortie <desrt desrt ca>
+
+ Bug 387475 – Gtk-Warning spew in gnome-terminal
+
+ Problem introduced by fix to bug 356552.
+
+ * src/vte.c (vte_invalidate_cursor_periodic): Add a temporary backward
+ compatibility hack to prevent GObject from spewing warnings about
+ missing GtkSettings properties in old GTK versions.
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 27 ++++++++++++++++++++++++---
+ 2 files changed, 34 insertions(+), 3 deletions(-)
+
+commit 4bb0946b36d7906425fbebb2472bdf4ba3964caa
+Author: Djihed Afifi <djihed src gnome org>
+Date: Sun Dec 24 21:53:12 2006 +0000
+
+ Updated Arabic Translation.
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 18 +++++++++---------
+ 2 files changed, 13 insertions(+), 9 deletions(-)
+
+commit b702bfd308e1dbce88987a6529a62207125969d8
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Dec 20 18:34:29 2006 +0000
+
+ Bug 387482 – Variable modified in signal handler should be volatile
+
+ 2006-12-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 387482 – Variable modified in signal handler should be volatile
+ Patch from Bastien Nocera
+
+ * gnome-pty-helper/gnome-pty-helper.c: Make variable "done" volatile.
+
+ ChangeLog | 7 +++++++
+ gnome-pty-helper/gnome-pty-helper.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 528dc1831cfe1b4d6916e3520da9ee4d81d135f9
+Author: Raivis Dejus <orvils gmail com>
+Date: Tue Dec 19 14:36:31 2006 +0000
+
+ Updated Latvian Translation.
+
+ 2006-12-19 Raivis Dejus <orvils gmail com>
+
+ * lv.po: Updated Latvian Translation.
+
+ po/ChangeLog | 4 +++
+ po/lv.po | 59 ++++++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 37 insertions(+), 26 deletions(-)
+
+commit 798313aeae10d5165472f993bc6dfde4ab9adeac
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Dec 8 21:48:40 2006 +0000
+
+ Red Hat Bug 218626: "last -ad" print junk in last column
+
+ 2006-12-08 Behdad Esfahbod <behdad gnome org>
+
+ Red Hat Bug 218626: "last -ad" print junk in last column
+
+ * gnome-pty-helper/gnome-utmp.c (write_logout_record),
+ (write_login_record): Don't gettimeofday directly into ut.ut_tv.
+ That overruns on x86_64.
+
+ ChangeLog | 8 ++++++++
+ gnome-pty-helper/gnome-utmp.c | 10 ++++++++--
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+commit 7a400dc0a3e7e8ac88fc359597a98ce43e1c18ea
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Dec 5 23:01:17 2006 +0000
+
+ Released vte-0.15.0.
+
+ 2006-12-05 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.0.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.0.
+
+ * src/Makefile.am: Bumped libtool version to 10:7:1.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 7 +++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 19 insertions(+), 2 deletions(-)
+
+commit f807d1d8e4d78e51889c2b69e697d5f0c6db81c0
+Author: Ryan Lortie <desrt desrt ca>
+Date: Tue Dec 5 22:28:39 2006 +0000
+
+ Bug 356552 – cursor timeout runs all the time
+
+ 2006-12-05 Ryan Lortie <desrt desrt ca>
+
+ Bug 356552 – cursor timeout runs all the time
+
+ * src/vte-private.h: Rework how cursor blinking works.
+ * src/vte.c: Rework how cursor blinking works. Only register the
+ cursor blink callback when cursor blink is enabled and the window
+ is focused.
+
+ ChangeLog | 9 +++
+ src/vte-private.h | 3 +-
+ src/vte.c | 201 ++++++++++++++++++++++++++---------------------------
+ 3 files changed, 111 insertions(+), 102 deletions(-)
+
+commit 12954eec3737d881e04c12ec503ee58581148e78
+Author: Wouter Bolsterlee <wbolster cvs gnome org>
+Date: Sun Nov 19 18:48:54 2006 +0000
+
+ Translation updated by GNOME PL Team.
+
+ 2006-11-19 Wouter Bolsterlee <wbolster cvs gnome org>
+
+ * pl.po: Translation updated by GNOME PL Team.
+
+ po/ChangeLog | 4 ++++
+ po/pl.po | 47 +++++++++++++++++++++++++----------------------
+ 2 files changed, 29 insertions(+), 22 deletions(-)
+
+commit 6a3b2e9b9d7697980723d3462af1fc4bc1e75846
+Author: Djihed Afifi <djihed src gnome org>
+Date: Sat Nov 18 20:30:11 2006 +0000
+
+ Updated Arabic Translation. QA'ed by Khaled Hosny
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 22 +++++++++++-----------
+ 2 files changed, 15 insertions(+), 11 deletions(-)
+
+commit e229967d4abcdabf1c2a4edd0763d9d6fd061b27
+Author: Mariano Suárez-Alvarez <mariano gnome org>
+Date: Fri Nov 17 00:51:03 2006 +0000
+
+ Bug 307396 – Mouse scroll mode not controllable
+
+ 2006-11-16 Mariano Suárez-Alvarez <mariano gnome org>
+
+ Bug 307396 – Mouse scroll mode not controllable
+
+ * src/vte.c(vte_terminal_scroll): make the scrollwheel scroll by tenths of
+ a screen (or 1 line, whichever is bigger) instead of half screens.
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 4 ++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 43b1051c010848db001ccc668d39f7b5169f33ea
+Author: Mariano Suárez-Alvarez <mariano gnome org>
+Date: Thu Nov 16 19:46:01 2006 +0000
+
+ Bug 356602 – const cast warning fixes for libvte Patch by Ryan Lortie
+
+ 2006-11-16 Mariano Suárez-Alvarez <mariano gnome org>
+
+ Bug 356602 – const cast warning fixes for libvte
+ Patch by Ryan Lortie (desrt)
+
+ * src/matcher.h: Use const char * where appropriate.
+ * src/matcher.c: Use const char * where appropriate. Cast g_strdup
+ to (GCacheDupFunc) to avoid a warning.
+ * src/vtetc.h: Use const char * where appropriate.
+ * src/vtetc.c: Use const char * where appropriate. Cast g_strdup
+ to (GCacheDupFunc) to avoid a warning.
+ * src/vte.c: Use const char * where appropriate.
+
+ ChangeLog | 17 +++++++++++++++--
+ src/matcher.c | 9 +++++----
+ src/matcher.h | 2 +-
+ src/vte.c | 15 ++++++++-------
+ src/vtetc.c | 7 ++++---
+ src/vtetc.h | 2 +-
+ 6 files changed, 34 insertions(+), 18 deletions(-)
+
+commit 133c9933b89f3f964d9b844a408a7044f76fb51a
+Author: Djihed Afifi <djihed src gnome org>
+Date: Mon Nov 6 12:58:04 2006 +0000
+
+ Added/Updated Arabic Translation.
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 29 ++++++++++++++++-------------
+ 2 files changed, 20 insertions(+), 13 deletions(-)
+
+commit 7658723e808f3ddd6f76885cb2e1fa40efae9e79
+Author: Rich Burridge <richb src gnome org>
+Date: Wed Nov 1 20:53:58 2006 +0000
+
+ Fixed bug #150858 - In gnome-terminal, the deleted character is reported
+
+ * src/vteaccess.c:
+ Fixed bug #150858 - In gnome-terminal, the deleted character
+ is reported as "space".
+
+ ChangeLog | 6 ++++++
+ src/vteaccess.c | 23 +++++++++++++++++++++++
+ 2 files changed, 29 insertions(+), 0 deletions(-)
+
+commit 9b523e876a5b4f02973f2fea2f8d011f2075488a
+Author: Djihed Afifi <djihed src gnome org>
+Date: Mon Oct 30 10:13:46 2006 +0000
+
+ Added/Updated Arabic Translation.
+
+ po/ChangeLog | 4 ++++
+ po/ar.po | 55 +++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 33 insertions(+), 26 deletions(-)
+
+commit ff2c6d2b7b91453bbc9b9bd016e0a083518b032e
+Author: Christophe Merlet <redfox src gnome org>
+Date: Sun Oct 22 09:17:38 2006 +0000
+
+ Updated French translation.
+
+ po/ChangeLog | 4 ++++
+ po/fr.po | 33 +++++++++++++++++++--------------
+ 2 files changed, 23 insertions(+), 14 deletions(-)
+
+commit c9bd03658fd7ec4b7d9dc60948472fdffe7b5070
+Author: Mariano Suárez-Alvarez <mariano src gnome org>
+Date: Tue Oct 17 04:34:40 2006 +0000
+
+ Fix a changelog entry ;-)
+
+ ChangeLog | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 86b1ccbceaf8b66ab54d6f0dcbb05673f2e868ec
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Oct 13 14:33:04 2006 +0000
+
+ Include vteseq.c
+
+ 2006-10-13 Behdad Esfahbod <behdad gnome org>
+
+ * po/POTFILES.in: Include vteseq.c
+
+ ChangeLog | 4 ++++
+ po/POTFILES.in | 1 +
+ 2 files changed, 5 insertions(+), 0 deletions(-)
+
+commit a2c8d9d9fa460cfd0a68d035d578ca134412b305
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Fri Oct 13 14:31:57 2006 +0000
+
+ Remove Nalin.
+
+ MAINTAINERS | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit 027618696701afcb9306161a452a6824900d10fe
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Thu Oct 12 22:55:23 2006 +0000
+
+ NOSPAM Nalin's address.
+
+ AUTHORS | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 1f7f3005f24120c260fc2a383841deba32d2e78b
+Author: Mariano Suárez-Alvarez <msuarezalvarez arnet com ar>
+Date: Wed Oct 11 04:42:57 2006 +0000
+
+ Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal
+
+ 2006-10-11 Mariano Suárez-Alvarez <msuarezalvarez arnet com ar>
+
+ Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal
+
+ * src/keymap.c (_vte_keymap_key_add_key_modifiers): Match the (newer)
+ xterm behavior when reporting modifiers to things running in a terminal.
+
+ ChangeLog | 7 +++++++
+ src/keymap.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit eebc586eb9f97214634b412b1eea9bd0295dd28a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Oct 2 21:02:33 2006 +0000
+
+ Released vte-0.14.1.
+
+ 2006-10-02 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.14.1.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.14.1.
+
+ * src/Makefile.am: Bumped libtool version to 10:6:1.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 12 ++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 24 insertions(+), 2 deletions(-)
+
+commit 659e0bc92aa43838e532dadf8dbad79b25e16779
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Oct 2 20:44:44 2006 +0000
+
+ Bug 358344 – autoscroll only works one way in fullscreen [PATCH] Patch
+
+ 2006-10-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 358344 – autoscroll only works one way in fullscreen [PATCH]
+ Patch by Egmont Koblinger
+
+ * src/vte.c (vte_terminal_autoscroll),
+ (vte_terminal_motion_notify): Fix forward autoscrolling in fullscreen
+ mode.
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 6 +++---
+ 2 files changed, 12 insertions(+), 3 deletions(-)
+
+commit bd3d2802159b051aea079b7f98e3a72cedaefd45
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Sep 20 14:43:07 2006 +0000
+
+ Bug 353756 – font setting cleanup
+
+ 2006-09-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 353756 – font setting cleanup
+
+ * src/vte.c (vte_terminal_set_font_full): Use 'monospace' family if no
+ font is set on a terminal widget
+
+ * src/vte.c (vte_terminal_set_font_from_string_full): Don't
+ g_return_if_fail(strlen(name) > 0). An empty string is a perfectly
+ valid pango font description string.
+
+ * src/vte.c (vte_terminal_show): Make sure we have a font loaded.
+
+ * src/vteapp.c (main): Don't fallback on "Monospace 12". Let the
+ widget decide what font to use if no font is set.
+
+ ChangeLog | 16 ++++++++++++++++
+ src/vte.c | 12 +++++++++---
+ src/vteapp.c | 7 +++----
+ 3 files changed, 28 insertions(+), 7 deletions(-)
+
+commit 6e26f51398dbcaee25c248a069050f6798a15ed1
+Author: Ryan Lortie <desrt desrt ca>
+Date: Mon Sep 18 20:20:42 2006 +0000
+
+ Bug 356616 – libvte broken with new autotools
+
+ 2006-09-18 Ryan Lortie <desrt desrt ca>
+
+ Bug 356616 – libvte broken with new autotools
+
+ * configure.in:
+ * src/Makefile.am: Fix broken variable substitution for newer
+ versions of automake.
+
+ ChangeLog | 8 ++++++++
+ configure.in | 24 ------------------------
+ src/Makefile.am | 6 +++++-
+ 3 files changed, 13 insertions(+), 25 deletions(-)
+
+commit f3e6bfce782dc30116cd095c76b2825010c131cb
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Sep 13 21:58:26 2006 +0000
+
+ Bug 354024 – Suppress multiple warnings for missing control sequence
+
+ 2006-09-13 Behdad Esfahbod <behdad gnome org>
+
+ Bug 354024 – Suppress multiple warnings for missing control sequence
+ handlers
+ Patch from Chris Wilson
+
+ * src/vte.c (vte_terminal_handle_sequence): Suppress multiple warnings
+ for missing control sequence handlers in non-debugging builds.
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 12 +++++++++++-
+ 2 files changed, 20 insertions(+), 1 deletions(-)
+
+commit 60a649f43c63cf55cd8829a4a755bbe43e4a9418
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Sep 13 21:52:35 2006 +0000
+
+ Bug 354620 – vte-0.14.0: undefined C code Patch from Ales Nosek
+
+ 2006-09-13 Behdad Esfahbod <behdad gnome org>
+
+ Bug 354620 – vte-0.14.0: undefined C code
+ Patch from Ales Nosek
+
+ * src/ssfe.c (inschar), (dokbdchar): Replace "*(tmp+1)=(*tmp--);"
+ with something well-defined.
+
+ ChangeLog | 8 ++++++++
+ src/ssfe.c | 9 ++++++---
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+commit 20dc6211ef45c751cb0674cdb998807f64a5fa71
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Sep 8 17:02:55 2006 +0000
+
+ Define G_LOG_DOMAIN=Vte.
+
+ 2006-09-08 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am: Define G_LOG_DOMAIN=Vte.
+
+ ChangeLog | 4 ++++
+ src/Makefile.am | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit eb80a6a1c8c4295c3083e225cd6953d567544b1e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Sep 4 22:08:35 2006 +0000
+
+ Released vte-0.14.0.
+
+ 2006-09-04 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.14.0.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.14.0.
+
+ * src/Makefile.am: Bumped libtool version to 10:5:1.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 4 ++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 16 insertions(+), 2 deletions(-)
+
+commit a83cf6602673312d368e246ad534316756c869cc
+Author: Mugurel Tudor <mugurelu gnome ro>
+Date: Mon Sep 4 07:49:10 2006 +0000
+
+ Updated Romanian translation by Mişu Moldovan <dumol gnome ro>
+
+ 2006-09-04 Mugurel Tudor <mugurelu gnome ro>
+
+ * ro.po: Updated Romanian translation by
+ Mişu Moldovan <dumol gnome ro>
+
+ po/ChangeLog | 5 ++++
+ po/ro.po | 61 ++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 35 insertions(+), 31 deletions(-)
+
+commit 5331a9411507c591244b9d14d68c1fc171669a2b
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Aug 31 20:03:12 2006 +0000
+
+ Minor doc syntax update.
+
+ 2006-08-31 Behdad Esfahbod <behdad gnome org>
+
+ * src/pty.c:
+ * src/ring.c:
+ * src/trie.c:
+ * src/vte.c:
+ * src/vtebg.c:
+ * src/vteseq.c (vte_sequence_handler_ta):
+ * src/vtetc.c:
+ Minor doc syntax update.
+
+ ChangeLog | 11 ++++++
+ src/pty.c | 8 ++--
+ src/ring.c | 6 ++--
+ src/trie.c | 4 +-
+ src/vte.c | 98 +++++++++++++++++++++++++++++-----------------------------
+ src/vtebg.c | 2 +-
+ src/vteseq.c | 5 ++-
+ src/vtetc.c | 2 +-
+ 8 files changed, 75 insertions(+), 61 deletions(-)
+
+commit 9a2974a6d3af4e54c0e0c00cca9630babdbac9aa
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Mon Aug 28 20:04:12 2006 +0000
+
+ Remove leftover debugging statement.
+
+ src/vte.c | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit de3d2fe6df531a409715455c225b47ad45d05f19
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Aug 27 01:01:01 2006 +0000
+
+ Followup on the fix for bug 350236. It was causing empty lines not to be
+
+ 2006-08-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Followup on
+ the fix for bug 350236. It was causing empty lines not to be copied.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 5 +++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 8368d9f771e5e0e9151cd5007f2836e3d5bd0aba
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Thu Aug 24 21:40:30 2006 +0000
+
+ Update NEWS
+
+ NEWS | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit d17b882caade98cdf66df6cfc63fa48241f0df1f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Aug 24 21:40:00 2006 +0000
+
+ Stuff this before the release.
+ 2006-08-24 Behdad Esfahbod <behdad gnome org>
+ Bug 352365 – font caching problem for not-found glyphs
+ * src/vtexft.c (_vte_xft_font_for_char): Add caching on a missing
+ path. This only affects the second time a character is looked up.
+ * src/vtexft.c (_vte_xft_font_close), (_vte_xft_font_for_char),
+ (_vte_xft_char_width): Remove g_assert()'s that are not needed, as
+ we will definitely crash pretty soon if the assertion is not true
+ anyway.
+
+ ChangeLog | 12 ++++++++++++
+ src/vtexft.c | 22 ++++------------------
+ 2 files changed, 16 insertions(+), 18 deletions(-)
+
+commit a9fa041c8d644096cfcf18d153eddea9292bcf76
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Aug 24 20:40:53 2006 +0000
+
+ Released vte-0.13.7.
+
+ 2006-08-24 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.7.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.7.
+
+ * src/Makefile.am: Bumped libtool version to 10:4:1.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 6 ++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 18 insertions(+), 2 deletions(-)
+
+commit 614b185ae23d9dfef634019474fdcd7d3c60d003
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Aug 24 20:33:10 2006 +0000
+
+ Bug 350236 – Cannot copy text containing invalid character sequences
+
+ 2006-08-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 350236 – Cannot copy text containing invalid character sequences
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Fix another
+ bug in my rewritten selection code, that was assuming that
+ last_nonempty character is one byte long.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 12 ++++++------
+ 2 files changed, 14 insertions(+), 6 deletions(-)
+
+commit e9ff27c2c601f7f298220f22c8f2712efc417969
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Aug 24 19:59:09 2006 +0000
+
+ Bug 352439 – URL highlighting seriously broken
+
+ 2006-08-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 352439 – URL highlighting seriously broken
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Followup to
+ changes made for bug 350623. Put back the g_array_set_size(), in the
+ correct place this time.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 17 +++++++++++------
+ 2 files changed, 19 insertions(+), 6 deletions(-)
+
+commit 5d86d31d2dfc5bd23c5a084e0df22353f17ace93
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Aug 23 04:01:13 2006 +0000
+
+ Bug 351494 – Gnome-terminal doesn't kills bash on tab close Patch from
+
+ 2006-08-22 Behdad Esfahbod <behdad gnome org>
+
+ Bug 351494 – Gnome-terminal doesn't kills bash on tab close
+ Patch from Aivars Kalvans
+
+ * src/vte.c (vte_terminal_unrealize): Undo the change from bug 348814.
+ Dispose draw in unrealize again, but also set has_fonts to FALSE.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 7 +++++++
+ 2 files changed, 15 insertions(+), 0 deletions(-)
+
+commit ac95f5c08ca4d7f55622035a8ef8c4aa82c9c671
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Aug 21 03:36:10 2006 +0000
+
+ Released vte-0.13.6.
+
+ 2006-08-20 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.6.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.6.
+
+ * src/Makefile.am: Bumped libtool version to 10:3:1.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 6 ++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 18 insertions(+), 2 deletions(-)
+
+commit 8e9557c901b30a27df6fc882c0e3304f86f0eeee
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Aug 17 21:33:07 2006 +0000
+
+ Bug 351696 – crash on Terminal
+
+ 2006-08-17 Behdad Esfahbod <behdad gnome org>
+
+ Bug 351696 – crash on Terminal
+
+ * src/vteseq.c (vte_sequence_handler_set_title_internal): Check
+ ->window is not NULL before setting icon/window title.
+
+ ChangeLog | 7 +++++++
+ src/vteseq.c | 6 ++++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+commit 3d775ed18d2f591eb34a68df6e08d509035e98ed
+Author: Willie Walker <william walker sun com>
+Date: Wed Aug 16 21:40:42 2006 +0000
+
+ Bug 350623 – Accessible text getTextAtOffset is broken
+
+ 2006-08-16 Willie Walker <william walker sun com>
+
+ Bug 350623 – Accessible text getTextAtOffset is broken
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Do not
+ resize array before calling vte_g_array_fill since it
+ nullifies any effect vte_g_array_fill will have.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 1 -
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit e22dd9e33cc8469102111a62e494f44476fc6709
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Aug 16 21:38:31 2006 +0000
+
+ Make sure attr.column is initialized.
+
+ 2006-08-16 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Make sure
+ attr.column is initialized.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 1 +
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 3ef54209f6936bd1a5a7ee75c286fa9b22cfff5f
+Author: Gabor Kelemen <kelemeng gnome hu>
+Date: Wed Aug 16 02:36:10 2006 +0000
+
+ Translation updated.
+
+ 2006-08-16 Gabor Kelemen <kelemeng gnome hu>
+
+ * hu.po: Translation updated.
+
+ po/ChangeLog | 4 ++++
+ po/hu.po | 41 +++++++++++++++++++++--------------------
+ 2 files changed, 25 insertions(+), 20 deletions(-)
+
+commit 5bbb05368a76d8598ec38748cba3a6c1d70f47ab
+Author: Inaki Larranaga <dooteo euskalgnu org>
+Date: Mon Aug 7 16:14:49 2006 +0000
+
+ Updated Basque translation.
+
+ 2006-08-07 Inaki Larranaga <dooteo euskalgnu org>
+
+ * eu.po: Updated Basque translation.
+
+ po/ChangeLog | 4 ++++
+ po/eu.po | 47 +++++++++++++++++++++++------------------------
+ 2 files changed, 27 insertions(+), 24 deletions(-)
+
+commit f2579a0d139c57e1a17dcb2d95b0b155c6e27d88
+Author: Ani Peter <anipeter src gnome org>
+Date: Sat Aug 5 11:14:30 2006 +0000
+
+ Updated Malayalam tranlstaion
+
+ po/ChangeLog | 4 ++
+ po/ml.po | 93 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 53 insertions(+), 44 deletions(-)
+
+commit 570343ff860f09840a88d7bc60c99a1bae88328c
+Author: Runa Bhattacharjee <runab src gnome org>
+Date: Wed Aug 2 12:35:17 2006 +0000
+
+ Added Entry for Bengali India Translation Updation
+
+ po/ChangeLog | 4 +++
+ po/bn_IN.po | 70 +++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 39 insertions(+), 35 deletions(-)
+
+commit 272827ca55d743ad173da5edd86e0ac41c31dc10
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jul 31 19:48:16 2006 +0000
+
+ Released vte-0.13.5.
+
+ 2006-07-31 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.5.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.5.
+
+ * src/Makefile.am: Bumped libtool version to 10:2:1.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 6 ++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 18 insertions(+), 2 deletions(-)
+
+commit 84b4d31a6a4729e5e80577d77a07bea705c10dc7
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Jul 30 23:32:49 2006 +0000
+
+ Bug 158200 – terminal backspace behavior not set to UTF-8 mode Based on
+
+ 2006-07-30 Behdad Esfahbod <behdad gnome org>
+
+ Bug 158200 – terminal backspace behavior not set to UTF-8 mode
+ Based on patch from Egmont Koblinger
+
+ * src/vte.c (_vte_terminal_setup_utf8),
+ (vte_terminal_set_encoding), (_vte_terminal_fork_basic),
+ (vte_terminal_set_pty): Make sure UTF-8 state is correctly set
+ when pty changes.
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 12 ++++++++++--
+ 2 files changed, 20 insertions(+), 2 deletions(-)
+
+commit 5a42042fd8b6a1ebf395b9b4a748118572e825bc
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Jul 27 19:46:13 2006 +0000
+
+ Bug 348814 – crash on Terminal Patch from Aivars Kalvans
+
+ 2006-07-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 348814 – crash on Terminal
+ Patch from Aivars Kalvans
+
+ * src/vte.c (vte_terminal_unrealize): Do not dispose draw in
+ unrealize.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 6 ------
+ 2 files changed, 8 insertions(+), 6 deletions(-)
+
+commit 3e84bce2afc53eebc4c680e6fd3546bc516a2f4a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jul 24 22:20:26 2006 +0000
+
+ Released vte-0.13.4.
+
+ 2006-07-24 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.4.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.4.
+
+ * src/Makefile.am: Bumped libtool version to 10:1:1.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 9 +++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 21 insertions(+), 2 deletions(-)
+
+commit ac2ab12e4886ae01cc040b1f419be7a813cf5af5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jul 24 21:59:23 2006 +0000
+
+ Bug 336947 – [patch] Redundant vte_terminal_set_font_full() calls Patch
+
+ 2006-07-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 336947 – [patch] Redundant vte_terminal_set_font_full() calls
+ Patch from Aivars Kalvans
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_set_font_full), (vte_terminal_init),
+ (vte_terminal_realize):
+ AVoid redundant set_font_full and invalidate_all calls.
+
+ ChangeLog | 10 ++++++++++
+ src/vte-private.h | 2 ++
+ src/vte.c | 31 +++++++++++++++++--------------
+ 3 files changed, 29 insertions(+), 14 deletions(-)
+
+commit 65ca8c65442401dcf5bcba6548ae80527b4bc254
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Mon Jul 24 21:23:38 2006 +0000
+
+ Fix typo in comments.
+
+ src/vte.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit f8fd3e39e77ade11f6c2b121b42f9626a0ae1afd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Jul 19 20:30:24 2006 +0000
+
+ Bug 134800 – gnome-termnal hung up when input by ATOK Patch from
+
+ 2006-07-19 Behdad Esfahbod <behdad gnome org>
+
+ Bug 134800 – gnome-termnal hung up when input by ATOK
+ Patch from Yukihiro Nakai <nakai gnome gr jp>
+
+ * src/vte.c (vte_terminal_unrealize): Delay _vte_draw_free().
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 12 ++++++------
+ 2 files changed, 13 insertions(+), 6 deletions(-)
+
+commit c0098ff647aeee1db841b6da7e5393b6d956a212
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Jul 19 17:21:07 2006 +0000
+
+ Oops. Fix selection that I broke recently.
+
+ 2006-07-19 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_extend_selection): Oops. Fix selection
+ that I broke recently.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 8 ++++----
+ 2 files changed, 9 insertions(+), 4 deletions(-)
+
+commit 7229f8b39048f56e41c807459b0cad80d2e8ee13
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Jul 11 15:52:08 2006 +0000
+
+ Bug 339983 – gnome-pty-helper should log username Patch from Brian
+
+ 2006-07-11 Behdad Esfahbod <behdad gnome org>
+
+ Bug 339983 – gnome-pty-helper should log username
+ Patch from Brian Cameron
+
+ * gnome-pty-helper/gnome-pty-helper.c (pty_remove), (shutdown_pty),
+ (pty_add), (open_ptys):
+ * gnome-pty-helper/gnome-pty.h:
+ * gnome-pty-helper/gnome-utmp.c (write_logout_record):
+ Log username if system supports it.
+
+ ChangeLog | 11 +++++++++++
+ gnome-pty-helper/gnome-pty-helper.c | 9 ++++++---
+ gnome-pty-helper/gnome-pty.h | 2 +-
+ gnome-pty-helper/gnome-utmp.c | 8 +++++++-
+ 4 files changed, 25 insertions(+), 5 deletions(-)
+
+commit 659837c1c875d99689e8d8fbe1b1898b3c4bd725
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Jul 11 01:00:25 2006 +0000
+
+ Released vte-0.13.3.
+
+ 2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.3.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.3.
+
+ * src/Makefile.am: Bumped libtool version to 10:0:1.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 16 ++++++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 6 +++---
+ 4 files changed, 30 insertions(+), 4 deletions(-)
+
+commit 327ecef62f383483245b10ca9d12831f5cb91b76
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Jul 11 00:59:21 2006 +0000
+
+ Bug 141985 – vte does not respond to 'CSI 2 1 t' or 'CSI 2 0 t' with the
+
+ 2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 141985 – vte does not respond to 'CSI 2 1 t' or 'CSI 2 0 t' with
+ the correct window/icon title
+ Patch from Mariano Suárez-Alvarez
+
+ * src/vte.c (vte_terminal_realize), src/vteseq.c
+ * (vte_sequence_handler_set_title_internal): Set window/icon titles.
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 4 ++++
+ src/vteseq.c | 2 ++
+ 3 files changed, 15 insertions(+), 0 deletions(-)
+
+commit c72bdb798ef3afbf18627f0929a418f88d5e41d3
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Jul 11 00:48:30 2006 +0000
+
+ Bug 121904 – copy-paste of empty line Bug 25290 – Small UI tweak to
+
+ 2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 121904 – copy-paste of empty line
+ Bug 25290 – Small UI tweak to select-by-word (only select only letter
+ at a time for non-word characters)
+ Bug 339986 – Patch to select localized strings exactly
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_set_default_attributes),
+ (_vte_terminal_insert_char), (vte_terminal_is_word_char),
+ (vte_same_class), (vte_terminal_get_text_range_maybe_wrapped),
+ (vte_terminal_extend_selection):
+ * src/vteseq.c (vte_sequence_handler_screen_alignment_test):
+ Fix a bunch of selection-related issues. We now recognize explicitly
+ put space at the end of lines, and copy/paste it. The other change is
+ that non-wordchar characters are not grouped together. Also fixes the
+ fallback on Unicode properties that I added two commits ago.
+
+ ChangeLog | 18 +++++
+ src/vte-private.h | 10 ++-
+ src/vte.c | 199 ++++++++++++++++++++++-------------------------------
+ src/vteseq.c | 1 +
+ 4 files changed, 108 insertions(+), 120 deletions(-)
+
+commit b36b7c6c76f70e64f6213e326d343e2c285bb1e9
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jul 10 19:16:00 2006 +0000
+
+ Bug 311855 – Race in vte leads to blocking of input. Patch from Kalle
+
+ 2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 311855 – Race in vte leads to blocking of input.
+ Patch from Kalle Raiskila
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_connect_pty_write),
+ (_vte_terminal_disconnect_pty_write), (vte_terminal_init):
+ Use a mutex for pty_output_source.
+
+ ChangeLog | 10 ++++++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 5 +++++
+ 3 files changed, 16 insertions(+), 0 deletions(-)
+
+commit 313c5613d97a06a830c424bf568b11fd29685f05
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jul 10 18:40:56 2006 +0000
+
+ Bug 339986 – Patch to select localized strings exactly Patch from Takao
+
+ 2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 339986 – Patch to select localized strings exactly
+ Patch from Takao Fujiwara
+
+ * src/vte.c (vte_terminal_is_word_char): Fall back on Unicode
+ properties for non-ASCII characters or when no array is set.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 38 +++++++++++++++++++++++---------------
+ 2 files changed, 31 insertions(+), 15 deletions(-)
+
+commit 330d3d6bef131b49308cef9b2dc02a78e1a0c9af
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jul 10 18:28:32 2006 +0000
+
+ Bug 342396 – Ctrl-space sends " ", not NUL.
+
+ 2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 342396 – Ctrl-space sends " ", not NUL.
+
+ * src/keymap.c (_vte_keymap_map): Fix keymap lookup bug that I
+ introduced during the char*->char[] work on 2006-04-18.
+
+ ChangeLog | 7 +++++++
+ src/keymap.c | 6 +++---
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+commit f3f8eafd9190378f0639ef507024d966d9638dcc
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jul 10 16:57:41 2006 +0000
+
+ Bug 345377 – real transparency Patch from Kristian Høgsberg <krh
+
+ 2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 345377 – real transparency
+ Patch from Kristian Høgsberg <krh redhat.com>
+
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/vte-sections.txt:
+ * python/vte.defs:
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_set_opacity), (vte_terminal_init),
+ (vte_terminal_background_update):
+ * src/vte.h:
+ * src/vteapp.c (main):
+ * src/vtedraw.c (_vte_draw_set_background_color):
+ * src/vtedraw.h:
+ * src/vteft2.c (_vte_ft2_set_background_color):
+ * src/vtegl.c (_vte_gl_set_background_color):
+ * src/vtepango.c (_vte_pango_set_background_color):
+ * src/vtepangox.c (_vte_pango_x_set_background_color):
+ * src/vteskel.c (_vte_skel_set_background_color):
+ * src/vtexft.c (_vte_xft_create), (_vte_xft_set_background_color),
+ (_vte_xft_clear):
+ Add vte_terminal_set_opacity().
+
+ ChangeLog | 24 ++++++++++++++++++++++++
+ doc/reference/tmpl/vte.sgml | 9 +++++++++
+ doc/reference/vte-sections.txt | 1 +
+ python/unrealize.py | 2 +-
+ python/vte-demo.py | 2 +-
+ python/vte.defs | 9 +++++++++
+ src/vte-private.h | 1 +
+ src/vte.c | 19 ++++++++++++++++++-
+ src/vte.h | 1 +
+ src/vteapp.c | 9 +++++++++
+ src/vtedraw.c | 6 ++++--
+ src/vtedraw.h | 6 ++++--
+ src/vteft2.c | 2 +-
+ src/vtegl.c | 2 +-
+ src/vtepango.c | 2 +-
+ src/vtepangox.c | 2 +-
+ src/vteskel.c | 4 +++-
+ src/vtexft.c | 14 +++++++++-----
+ 18 files changed, 98 insertions(+), 17 deletions(-)
+
+commit 1eded1ef1441436e1de4972c23aee4e12f70017e
+Author: Swapnil Hajare <swapnilh src gnome org>
+Date: Fri Jul 7 19:26:12 2006 +0000
+
+ mr.po: Added Marathi translation.
+ LINGUAS: Added entry for Marathi (mr) in language list.
+
+ po/ChangeLog | 5 +++
+ po/LINGUAS | 1 +
+ po/mr.po | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 119 insertions(+), 0 deletions(-)
+
+commit af7fb4765c676dc5ec5e3605197858b660b22bc7
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Jul 5 06:38:47 2006 +0000
+
+ Allow _vte_debug_.* into exported symbols.
+
+ 2006-07-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am: Allow _vte_debug_.* into exported symbols.
+
+ ChangeLog | 4 ++++
+ src/Makefile.am | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 2fb5b6721154db82d9107f1c4874f6759e060390
+Author: Runa Bhattacharjee <runab src gnome org>
+Date: Mon Jul 3 14:21:06 2006 +0000
+
+ Added entry for addition of bengali India (bn_IN) translation and to LINGUAS
+
+ po/ChangeLog | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 9bce93fc6d7534bbc27d9c10d550d5fd8b9fe4b6
+Author: Runa Bhattacharjee <runab src gnome org>
+Date: Mon Jul 3 14:20:53 2006 +0000
+
+ Added bengali India (bn_IN)
+
+ po/LINGUAS | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 70d2f5022fcac923d315e6afcd5dca40a176b3fd
+Author: Runa Bhattacharjee <runab src gnome org>
+Date: Mon Jul 3 14:20:14 2006 +0000
+
+ Added Bengali India Translation
+
+ po/bn_IN.po | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 116 insertions(+), 0 deletions(-)
+
+commit 9f75f3590a07ce434593509ce33cf555fcf0a7a3
+Author: Benoît Dejean <benoit placenet org>
+Date: Sat Jul 1 10:16:47 2006 +0000
+
+ Updated French translation.
+
+ 2006-07-01 Benoît Dejean <benoit placenet org>
+
+ * fr.po: Updated French translation.
+
+ po/ChangeLog | 4 ++
+ po/fr.po | 104 ++++++++++++++++++----------------------------------------
+ 2 files changed, 36 insertions(+), 72 deletions(-)
+
+commit 459fb97cdd78272d4b69e2ec47aaae0df88287ed
+Author: Thomas Vander Stichele <thomasvs src gnome org>
+Date: Thu Jun 29 20:55:28 2006 +0000
+
+ moap ignore
+
+ gnome-pty-helper/.cvsignore | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+commit f0942403fa42ac6ba22a7e8e2fc1ed2fce7f848a
+Author: Rajesh Ranjan <rranjan src gnome org>
+Date: Mon Jun 26 05:43:52 2006 +0000
+
+ Updated Translation
+
+ po/ChangeLog | 4 ++++
+ po/hi.po | 39 ++++++++++++++++++++-------------------
+ 2 files changed, 24 insertions(+), 19 deletions(-)
+
+commit bee91f747c6025295b5d2ee99e4368da1384132e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Jun 21 08:35:41 2006 +0000
+
+ Bug 345514 – -no-undefined doesn't work with latest libtool
+
+ 2006-06-21 Behdad Esfahbod <behdad gnome org>
+
+ Bug 345514 – -no-undefined doesn't work with latest libtool
+
+ * src/Makefile.am: Remove -no-undefined.
+
+ ChangeLog | 6 ++++++
+ src/Makefile.am | 3 +--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 015d6e8dbbb8fb4729fbb168e6a15a4b3b9268a9
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jun 12 19:23:37 2006 +0000
+
+ Released vte-0.13.2.
+
+ 2006-06-12 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.2.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.2.
+
+ * src/Makefile.am: Bumped libtool version to 9:2:0.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 17 +++++++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 29 insertions(+), 2 deletions(-)
+
+commit c5a0b19ca37617d87c765ab2b6cb47f4cc786e8f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Jun 12 17:42:07 2006 +0000
+
+ Bug 344666 – Problems with *_CFLAGS and *_LDFLAGS in makefiles Patch
+
+ 2006-06-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 344666 – Problems with *_CFLAGS and *_LDFLAGS in makefiles
+ Patch from Stepan Kasal <kasal ucw cz>.
+
+ * src/Makefile.am (AM_CFLAGS, AM_LDFLAGS, *_CFLAGS, *_LDADD):
+ Replace @FOO@ references by $(FOO), remove redundant (or buggy)
+ occurences of `@CFLAGS@'.
+ * gnome-pty-helper/Makefile.am (AM_CFLAGS, AM_LDFLAGS): Likewise.
+ * python/Makefile.am (vtemodule_la_CFLAGS): Likewise.
+ * src/Makefile.am (AM_CFLAGS): Add $(FT2_CFLAGS).
+
+ ChangeLog | 12 ++++++
+ gnome-pty-helper/Makefile.am | 4 +-
+ python/Makefile.am | 4 +-
+ src/Makefile.am | 82 +++++++++++++++++++++---------------------
+ termcaps/Makefile.am | 8 ++--
+ 5 files changed, 61 insertions(+), 49 deletions(-)
+
+commit 2b0c90c9430070d3420204253d316d4361a6e775
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Jun 8 22:22:03 2006 +0000
+
+ Fix typo which may have been causing things like crashes. Reported by
+
+ 2006-06-08 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (remove_display_timeout): Fix typo which may have been
+ causing things like crashes. Reported by muntyan. Also reordered
+ some code around update_timeout for better matching the current
+ timeouts in style.
+
+ ChangeLog | 7 +++
+ src/vte-private.h | 2 +-
+ src/vte.c | 128 ++++++++++++++++++++++++++++-------------------------
+ 3 files changed, 76 insertions(+), 61 deletions(-)
+
+commit 14eda4d86401762c88040af70c4259a09b6c4614
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Jun 7 16:46:39 2006 +0000
+
+ Bug 339529 – gnome-terminal (vte) crashes when detatched window is
+
+ 2006-06-07 Behdad Esfahbod <behdad gnome org>
+
+ Bug 339529 – gnome-terminal (vte) crashes when detatched window is
+ closed
+
+ * src/vte.c (vte_invalidate_region): Bail out if terminal->window is
+ NULL.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 5 ++++-
+ 2 files changed, 12 insertions(+), 1 deletions(-)
+
+commit 24536e9b33000952996361aa6f27bdec540fd274
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun May 28 02:39:10 2006 +0000
+
+ Bug 342549 – uninitialized var (coverity) Patch from Paolo Borelli.
+
+ 2006-05-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 342549 – uninitialized var (coverity)
+ Patch from Paolo Borelli.
+
+ * src/vte.c (vte_cell_is_selected): Remove uninitialized var ret.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 7 ++-----
+ 2 files changed, 10 insertions(+), 5 deletions(-)
+
+commit 7656d1fa9d7ccb931a35e955fcd90f5fb3144830
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun May 28 02:36:16 2006 +0000
+
+ Bug 342082 – vte_invalidate_region() may check whether terminal is
+
+ 2006-05-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 342082 – vte_invalidate_region() may check whether terminal is
+ realiazed or not
+
+ * src/vte.c (vte_invalidate_region): Return if not realized.
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 3 +++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+commit ab42a7f4c04ba4a19b4b11948589834877fe410f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon May 22 04:41:16 2006 +0000
+
+ Bug 340363 – vte Cygwin build fixes Patch from Cygwin Ports maintainer
+
+ 2006-05-22 Behdad Esfahbod <behdad gnome org>
+
+ Bug 340363 – vte Cygwin build fixes
+ Patch from Cygwin Ports maintainer
+
+ * configure.in, src/keymap.c, src/pty.c, src/ssfe.c, src/trie.c,
+ src/utf8echo.c, src/vte.c, src/vteseq.c, src/vtetc.c: Check and
+ include syslimits.h and ncurses/curses.h
+
+ ChangeLog | 9 +++++++++
+ configure.in | 15 +++++++++------
+ src/keymap.c | 6 ++++++
+ src/pty.c | 3 +++
+ src/ssfe.c | 6 ++++++
+ src/trie.c | 3 +++
+ src/utf8echo.c | 3 +++
+ src/vte.c | 3 +++
+ src/vteseq.c | 4 ++++
+ src/vtetc.c | 3 +++
+ 10 files changed, 49 insertions(+), 6 deletions(-)
+
+commit 438e60054d0bd4cdb3593ffee473e13c3ee01463
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon May 22 04:36:06 2006 +0000
+
+ Bug 341793 – vte.h doesn't need to include X11/Xlib.h Patch from Kouhei
+
+ 2006-05-22 Behdad Esfahbod <behdad gnome org>
+
+ Bug 341793 – vte.h doesn't need to include X11/Xlib.h
+ Patch from Kouhei Sutou
+
+ * src/vte.h: Don't #include <X11/Xlib.h>
+
+ ChangeLog | 7 +++++++
+ src/vte.h | 1 -
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 8214dc7494e5d01e805837d9b2f5fa0cc96e944e
+Author: Wouter Bolsterlee <uws+gnome xs4all nl>
+Date: Wed May 17 11:55:59 2006 +0000
+
+ Require intltool 0.35.0 to have translations in the dist tarballs.
+
+ 2006-05-17 Wouter Bolsterlee <uws+gnome xs4all nl>
+
+ * configure.in: Require intltool 0.35.0 to have
+ translations in the dist tarballs.
+
+ ChangeLog | 5 +++++
+ configure.in | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 3e45d5d8733c0e96694bcd65e59e5a26bec80328
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed May 17 09:21:35 2006 +0000
+
+ Released vte-0.13.1.
+
+ 2006-05-17 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.1.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.1.
+
+ * src/Makefile.am: Bumped libtool version to 9:1:0.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 9 +++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 2 +-
+ 4 files changed, 21 insertions(+), 2 deletions(-)
+
+commit 9081c956e1b1b88069d09ccbcdb2b3adbd7028b1
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun May 14 23:37:23 2006 +0000
+
+ Add vim and emacs footers for UTF-8.
+
+ 2006-05-14 Behdad Esfahbod <behdad gnome org>
+
+ * NEWS, ChangeLog: Add vim and emacs footers for UTF-8.
+
+ ChangeLog | 58 +++++++++++++++++++++++++++++++---------------------------
+ NEWS | 53 +++++++++++++++++++++++++++++------------------------
+ 2 files changed, 60 insertions(+), 51 deletions(-)
+
+commit bcf90856af0ffe1d353754fea4e0716ca73fc30b
+Author: Stepan Kasal <skasal src gnome org>
+Date: Fri May 12 20:46:22 2006 +0000
+
+ Changed the UTF-8 dashes to plain ascii "-".
+
+ * NEWS, ChangeLog: Changed the UTF-8 dashes to plain ascii "-".
+
+ ChangeLog | 54 +++++++++++++++++++++++++++++-------------------------
+ NEWS | 48 ++++++++++++++++++++++++------------------------
+ 2 files changed, 53 insertions(+), 49 deletions(-)
+
+commit 7e774bdbd374ca2d991d7e7899a66d2cff056b50
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Apr 28 01:53:27 2006 +0000
+
+ Bug 339980 – nativeecho needs glib in LDADD to build on Solaris Patch
+
+ 2006-04-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 339980 – nativeecho needs glib in LDADD to build on Solaris
+ Patch from Brian Cameron.
+
+ * src/Makefile.am: Fix it.
+
+ ChangeLog | 7 +++++++
+ src/Makefile.am | 4 ++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit aa4374e245af06314555a8e5fc8e148bba5979b5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Apr 27 01:08:52 2006 +0000
+
+ Bug 331803 – style needs to be attached/detached to the window on
+
+ 2006-04-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 331803 – style needs to be attached/detached to the window on
+ realize/unrealize
+ Patch from Benjamin Berg <benjamin sipsolutions net>.
+
+ * src/vte.c: (vte_terminal_unrealize), (vte_terminal_realize):
+ attach and detach the style of the terminal widget.
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 5 +++++
+ 2 files changed, 14 insertions(+), 0 deletions(-)
+
+commit 6fbe46ba07be8d871131381914624ec79f47b4ef
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Apr 25 11:12:10 2006 +0000
+
+ Pass -no-undefined linker flag.
+
+ 2006-04-25 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am: Pass -no-undefined linker flag.
+
+ ChangeLog | 4 ++++
+ src/Makefile.am | 3 ++-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit eda77708ba72edf1641678e055a7cd923fff6e36
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Apr 23 21:21:02 2006 +0000
+
+ Released vte-0.13.0.
+
+ 2006-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.0.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.0.
+
+ * src/Makefile.am: Bumped libtool version to 9:0:0.
+
+ ChangeLog | 10 ++++++++++
+ NEWS | 31 +++++++++++++++++++++++++++++++
+ configure.in | 2 +-
+ src/Makefile.am | 4 ++--
+ 4 files changed, 44 insertions(+), 3 deletions(-)
+
+commit ce4935574b8b5aa252663488cc1c237658ea8f3c
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Sun Apr 23 09:02:19 2006 +0000
+
+ Minor.
+
+ src/vte.c | 9 +++++----
+ 1 files changed, 5 insertions(+), 4 deletions(-)
+
+commit 1375bfe7189dc1a316ebee510175baf48fcee0cd
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Apr 23 08:39:08 2006 +0000
+
+ Bug 339448 – selection doesn't respect hard newlines
+
+ 2006-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 339448 – selection doesn't respect hard newlines
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Add newline
+ to the end of each line that is not soft-wrapped.
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 22 +++++++++-------------
+ 2 files changed, 16 insertions(+), 13 deletions(-)
+
+commit 9a70a1fea66d11a81415bdc082679a6d586ff7cc
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Apr 23 07:36:54 2006 +0000
+
+ Bug 148720 # Word selection erroneously captures text from next line Patch
+
+ 2006-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 148720 # Word selection erroneously captures text from next line
+ Patch from Chris Heath.
+
+ * src/vteseq.c (vte_sequence_handler_cd), (vte_sequence_handler_ce),
+ (vte_sequence_handler_clear_current_line),
+ (vte_sequence_handler_clear_above_current): Reset soft_wrapped flag.
+
+ ChangeLog | 9 +++++++++
+ src/vteseq.c | 4 ++++
+ 2 files changed, 13 insertions(+), 0 deletions(-)
+
+commit 7598aa25c12af4e90f564ad27b78a24472297790
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Apr 23 07:27:28 2006 +0000
+
+ Bug 126376 # Uncoinditional definition of _XOPEN_SOURCE breaks build on
+
+ 2006-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 126376 # Uncoinditional definition of _XOPEN_SOURCE breaks build
+ on NetBSD
+ Patch from Dan Winship.
+
+ * configure.in:
+ * gnome-pty-helper/configure.in: Define XOPEN_SOURCE on solaris only.
+
+ ChangeLog | 9 +++++++++
+ configure.in | 12 +++++++++---
+ gnome-pty-helper/configure.in | 12 +++++++++---
+ 3 files changed, 27 insertions(+), 6 deletions(-)
+
+commit c7aa70a7eb639973d4b119f2ae6b057d12717474
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Apr 23 07:20:48 2006 +0000
+
+ Bug 97719 # Selection: double/triple click doesn't cross line boundaries
+
+ 2006-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 97719 # Selection: double/triple click doesn't cross line boundaries
+ Patch from Chris Heath.
+
+ * src/vte.c (vte_same_class): Fix problem with selecting whitespace
+ from adjacent lines, on word selection.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 58 ++++++++++++++++++++++++++++++++++------------------------
+ 2 files changed, 42 insertions(+), 24 deletions(-)
+
+commit a8bc53b8d18bba85b09b3b8fbf59f8e223bbfb3b
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Apr 22 21:31:05 2006 +0000
+
+ Bug 160782 # Vte isn't multi-screen safe Patch from Benedikt Meurer.
+
+ 2006-04-22 Behdad Esfahbod <behdad gnome org>
+
+ Bug 160782 # Vte isn't multi-screen safe
+ Patch from Benedikt Meurer.
+
+ * src/vte.c (vte_terminal_unrealize), (vte_terminal_realize):
+ * src/vtebg.c (vte_bg_native_new), (_vte_bg_display_sync),
+ (vte_bg_root_pixmap), (vte_bg_get_for_screen), (vte_bg_init),
+ (vte_bg_get_pixmap), (vte_bg_get_pixbuf):
+ * src/vtebg.h:
+ * src/vteft2.c (_vte_ft2_set_background_image):
+ * src/vtegl.c (_vte_gl_set_background_image):
+ * src/vtepango.c (_vte_pango_set_background_image):
+ * src/vtepangox.c (_vte_pango_x_set_background_image):
+ * src/vtexft.c (_vte_xft_set_background_image): Handle per-screen
+ backgrounds.
+
+ ChangeLog | 17 ++++++++++++++
+ src/vte.c | 8 +++++-
+ src/vtebg.c | 64 ++++++++++++++++++++++++++----------------------------
+ src/vtebg.h | 3 +-
+ src/vteft2.c | 6 ++++-
+ src/vtegl.c | 6 ++++-
+ src/vtepango.c | 6 ++++-
+ src/vtepangox.c | 6 ++++-
+ src/vtexft.c | 5 +++-
+ 9 files changed, 80 insertions(+), 41 deletions(-)
+
+commit d59d4f25fb27dc9b3e342764944d1fac18629d4a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Apr 22 20:40:51 2006 +0000
+
+ Remove obsolete #ifde GTK_CHECK_VERSION(2,2,0) checks.
+
+ 2006-04-22 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_cursor_new), (vte_terminal_clipboard_get):
+ * src/vteapp.c (take_xconsole_ownership):
+ * src/vtebg.c (vte_bg_native_new), (_vte_bg_display_sync),
+ (vte_bg_root_pixmap):
+ * src/vtedraw.c (_vte_draw_get_colormap):
+ * src/vtefc.c (_vte_fc_transcribe_from_pango_font_description),
+ (_vte_fc_defaults_from_gtk):
+ * src/vtepango.c (_vte_pango_start), (_vte_pango_set_text_font):
+ * src/vtepangox.c (_vte_pango_x_set_text_font):
+ * src/vterdb.c (_vte_rdb_get):
+ * src/vteseq.c (vte_terminal_beep),
+ (vte_sequence_handler_window_manipulation):
+ * src/vtexft.c (_vte_xft_char_exists), (_vte_xft_text_extents),
+ (_vte_xft_font_open):
+ * src/vtegl.c: Remove obsolete #ifde GTK_CHECK_VERSION(2,2,0) checks.
+
+ ChangeLog | 18 ++++++++++++++++++
+ src/vte.c | 12 ------------
+ src/vteapp.c | 4 ----
+ src/vtebg.c | 12 ------------
+ src/vtedraw.c | 8 --------
+ src/vtefc.c | 12 ------------
+ src/vtegl.c | 2 --
+ src/vtepango.c | 12 ------------
+ src/vtepangox.c | 4 ----
+ src/vterdb.c | 10 +---------
+ src/vteseq.c | 11 -----------
+ src/vtexft.c | 12 ------------
+ 12 files changed, 19 insertions(+), 98 deletions(-)
+
+commit 9c905141e37d69f86f5a46292c62e2f56fb3d501
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Apr 22 20:21:31 2006 +0000
+
+ Bug 330441 – Remove libzvt support Patch from Guilherme de S. Pastore
+
+ 2006-04-22 Behdad Esfahbod <behdad gnome org>
+
+ Bug 330441 – Remove libzvt support
+ Patch from Guilherme de S. Pastore <gpastore gnome org>
+
+ * configure.in, src/Makefile.am, src/reflect.c: remove remnants
+ from the old, broken, and unmaintained libzvt.
+
+ ChangeLog | 8 ++++
+ configure.in | 11 -----
+ src/Makefile.am | 11 +-----
+ src/reflect.c | 114 -------------------------------------------------------
+ 4 files changed, 9 insertions(+), 135 deletions(-)
+
+commit ef5a0801e925eacc3e47f77e2e38b4b1beb7a8b7
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Apr 21 06:31:05 2006 +0000
+
+ Bug 328850 – Crash when pasting selection
+
+ 2006-04-21 Behdad Esfahbod <behdad gnome org>
+
+ Bug 328850 – Crash when pasting selection
+
+ * src/vte.c: Protect against passing NULL selection to strcmp.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 4 ++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 1565149ec0da07a1088e6a956d29e7244bbe22e9
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Apr 20 11:01:51 2006 +0000
+
+ Misc fixes and updates.
+
+ 2006-04-20 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/tmpl/internals.sgml:
+ * doc/reference/tmpl/reaper.sgml:
+ * doc/reference/tmpl/vte-unused.sgml:
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/tmpl/vteaccess.sgml:
+ * doc/reference/vte-sections.txt: Misc fixes and updates.
+
+ * python/vte.defs:
+ * python/vte.override: Updates.
+
+ Bug 160134 – mouse events occurring past column 95 are not passed
+ through to terminal application
+ Based on patch from Sean Estabrooks.
+
+ * src/vte.h:
+ * src/vte.c (vte_terminal_feed_child_binary): New public function.
+
+ * src/vte.c (vte_terminal_send_mouse_button_internal),
+ (vte_terminal_maybe_send_mouse_drag): Use feed_child_binary.
+
+ ChangeLog | 22 +++++++++++++++
+ doc/reference/tmpl/internals.sgml | 6 +++-
+ doc/reference/tmpl/reaper.sgml | 5 ++-
+ doc/reference/tmpl/vte-unused.sgml | 4 ---
+ doc/reference/tmpl/vte.sgml | 33 ++++++++++------------
+ doc/reference/tmpl/vteaccess.sgml | 7 ++++-
+ doc/reference/vte-sections.txt | 1 +
+ python/vte.defs | 27 ++++++++++++------
+ python/vte.override | 50 +++++++++++++++++++++++++++++++++
+ src/vte.c | 53 +++++++++++++++++++++++++++++-------
+ src/vte.h | 4 +-
+ 11 files changed, 165 insertions(+), 47 deletions(-)
+
+commit 431eba9f61c04aef891f224fa1fa7d1bd9e56200
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Apr 20 01:01:31 2006 +0000
+
+ Bug 135230 – Feature request to attach VTE to existing pty Based on
+
+ 2006-04-19 Behdad Esfahbod <behdad gnome org>
+
+ Bug 135230 – Feature request to attach VTE to existing pty
+ Based on patch from eric brouhaha com, John Swensen, and
+ Chris Moller <cmoller redhat com>
+
+ * src/vte.c:
+ * src/vte.h:
+ * python/vte.defs:
+ * doc/reference/vte-sections.txt: Added vte_terminal_set_pty().
+
+ ChangeLog | 11 +++++++++++
+ doc/reference/tmpl/vte.sgml | 11 +++++++++++
+ doc/reference/vte-sections.txt | 1 +
+ python/vte.defs | 10 ++++++++++
+ src/vte.c | 39 +++++++++++++++++++++++++++++++++++++++
+ src/vte.h | 4 ++++
+ 6 files changed, 76 insertions(+), 0 deletions(-)
+
+commit f5a7397bfa56a3659f77ddce7aafb352b50e9252
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Wed Apr 19 00:04:13 2006 +0000
+
+ AC_PROG_INTLTOOL -> IT_PROG_INTLTOOL
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit e4eb0288d0ef482704f9141d23bc5e0f65b185b8
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Apr 18 23:24:48 2006 +0000
+
+ Bug 337442 – [patch] Reduce .plt section
+
+ 2006-04-18 Behdad Esfahbod <behdad gnome org>
+
+ Bug 337442 – [patch] Reduce .plt section
+
+ * src/Makefile.am: Pass export-symbols-regex to libtool.
+
+ ChangeLog | 6 ++++++
+ src/Makefile.am | 4 +++-
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+commit dca0f59d08dd3e9eaff6bdac551e2a05560e0661
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Tue Apr 18 23:08:03 2006 +0000
+
+ Doc improvements.
+
+ doc/reference/tmpl/vte.sgml | 12 ++++++++++++
+ doc/reference/vte-sections.txt | 2 ++
+ 2 files changed, 14 insertions(+), 0 deletions(-)
+
+commit 4876b6439712ca851e77318dc3e6ba6965a61e3e
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Tue Apr 18 22:50:30 2006 +0000
+
+ Remove the #ident strings.
+
+ src/buffer.c | 1 -
+ src/buffer.h | 1 -
+ src/caps.c | 1 -
+ src/caps.h | 1 -
+ src/debug.c | 1 -
+ src/debug.h | 1 -
+ src/dumpkeys.c | 1 -
+ src/interpret.c | 1 -
+ src/iso2022.c | 1 -
+ src/iso2022.h | 1 -
+ src/iso8859mode.c | 1 -
+ src/matcher.c | 1 -
+ src/matcher.h | 1 -
+ src/mev.c | 1 -
+ src/nativeecho.c | 1 -
+ src/pty.c | 1 -
+ src/pty.h | 1 -
+ src/reaper.c | 1 -
+ src/reaper.h | 1 -
+ src/reflect.c | 1 -
+ src/ring.c | 1 -
+ src/ring.h | 1 -
+ src/slowcat.c | 1 -
+ src/table.c | 1 -
+ src/table.h | 1 -
+ src/trie.c | 1 -
+ src/trie.h | 1 -
+ src/utf8echo.c | 1 -
+ src/utf8mode.c | 1 -
+ src/vte.h | 1 -
+ src/vteaccess.c | 1 -
+ src/vteaccess.h | 1 -
+ src/vteapp.c | 1 -
+ src/vtebg.c | 1 -
+ src/vtebg.h | 1 -
+ src/vteconv.c | 1 -
+ src/vteconv.h | 1 -
+ src/vtedraw.c | 1 -
+ src/vtedraw.h | 1 -
+ src/vtefc.c | 1 -
+ src/vtefc.h | 1 -
+ src/vteft2.c | 1 -
+ src/vteft2.h | 1 -
+ src/vtegl.c | 1 -
+ src/vtegl.h | 1 -
+ src/vteglyph.c | 1 -
+ src/vteglyph.h | 1 -
+ src/vteint.h | 1 -
+ src/vtepango.c | 1 -
+ src/vtepango.h | 1 -
+ src/vtepangox.c | 1 -
+ src/vtepangox.h | 1 -
+ src/vterdb.c | 1 -
+ src/vterdb.h | 1 -
+ src/vteregex.c | 1 -
+ src/vteregex.h | 1 -
+ src/vtergb.c | 1 -
+ src/vtergb.h | 1 -
+ src/vteseq.c | 1 -
+ src/vteskel.c | 1 -
+ src/vteskel.h | 1 -
+ src/vtetc.c | 1 -
+ src/vtetc.h | 1 -
+ src/vtetree.h | 1 -
+ src/vtexft.c | 1 -
+ src/vtexft.h | 1 -
+ 66 files changed, 0 insertions(+), 66 deletions(-)
+
+commit f8a9447f37e686b23fd7e185dfe5fdbc866d0e7f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Apr 18 22:41:03 2006 +0000
+
+ Make some data structures const by changing char * to char [].
+
+ 2006-04-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/caps.c (_vte_capability_init), src/caps.h:
+ * src/keymap.c (_vte_keymap_map), src/keymap.h: Make some data
+ structures const by changing char * to char [].
+
+ * src/vte.c (vte_update_delay_timeout), (vte_update_timeout),
+ (vte_terminal_extend_selection), (_vte_terminal_fudge_pango_colors):
+ Fix warnings and adapt to above changes.
+
+ ChangeLog | 10 +
+ src/caps.c | 14 +-
+ src/caps.h | 5 +-
+ src/keymap.c | 1040 ++++++++++++++++++++++++++---------------------------
+ src/keymap.h | 4 +-
+ src/matcher.c | 2 +-
+ src/vte-private.h | 10 +-
+ src/vte.c | 14 +-
+ 8 files changed, 550 insertions(+), 549 deletions(-)
+
+commit 749b51696d1a41c59268d43467219549479c550e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Apr 18 21:08:01 2006 +0000
+
+ Use intltool 0.34.90 format.
+
+ 2006-04-18 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in, po/LINGUAS: Use intltool 0.34.90 format.
+
+ ChangeLog | 4 +++
+ configure.in | 5 +---
+ po/LINGUAS | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 3 files changed, 81 insertions(+), 5 deletions(-)
+
+commit e759046ad0b13b8da503b552c29787f9ef3eda28
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Tue Apr 18 08:34:34 2006 +0000
+
+ Remove obsolete entry for no_NO And the translation.
+
+ 2006-04-18 Kjartan Maraas <kmaraas gnome org>
+
+ * LINGUAS: Remove obsolete entry for no_NO
+ * no.po: And the translation.
+
+ po/ChangeLog | 5 +++
+ po/LINGUAS | 2 +-
+ po/no.po | 111 ----------------------------------------------------------
+ 3 files changed, 6 insertions(+), 112 deletions(-)
+
+commit 9f75cf1de6ba6a73e37b211d403f965fd4d45194
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Apr 12 11:24:46 2006 +0000
+
+ Bug 142247 – use of uninitialized value
+
+ 2006-04-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 142247 – use of uninitialized value
+
+ * src/pty.c: Initialize the arbitrary byte that we send on the pipe
+ to zero.
+
+ ChangeLog | 7 +++++++
+ src/pty.c | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 122e9fd5c3d5c11062bc5c118736e9ef2c0f9d55
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Wed Apr 12 10:23:58 2006 +0000
+
+ Minor.
+
+ ChangeLog | 2 ++
+ src/vte.c | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletions(-)
+
+commit f4d0e7f3fb9b30d6069d1b266bdb0a3d419e1ac5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Apr 12 07:27:37 2006 +0000
+
+ Try to use the font first for all graphic characters. This results in
+
+ 2006-04-12 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Try to use the font first for all graphic characters.
+ This results in better looking graphics with modern fonts.
+
+ ChangeLog | 5 +++
+ src/vte-private.h | 2 -
+ src/vte.c | 83 ++++-------------------------------------------------
+ 3 files changed, 11 insertions(+), 79 deletions(-)
+
+commit 7fa096eab829056fa6fb7ccce0f57b389de51fa0
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Apr 12 07:22:34 2006 +0000
+
+ Bug 144456 – UK pound currency symbol rendered incorrectly
+
+ 2006-04-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 144456 – UK pound currency symbol rendered incorrectly
+
+ * src/vte.c: Offset characters drawn in draw_graphic for padding.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 4 ++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 72cf2178d72461baf59a54a42a45f88cbc4d3346
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Apr 12 06:40:05 2006 +0000
+
+ Bug 307403 – xticker doublefree
+
+ 2006-04-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 307403 – xticker doublefree
+
+ * src/xticker.c: Avoid double free.
+
+ ChangeLog | 6 ++++++
+ src/xticker.c | 7 ++++---
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+commit 80ab2f7f151b00bd2f807e8a0c8a6c01a1184bf8
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Apr 10 06:52:51 2006 +0000
+
+ Bug 337877 – Patch to use po/LINGUAS Patch from Michiel Sikkes.
+
+ 2006-04-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 337877 – Patch to use po/LINGUAS
+ Patch from Michiel Sikkes.
+
+ * configure.in, po/LINGUAS: Move list of translations to po/LINGUAS.
+
+ ChangeLog | 7 +++++++
+ configure.in | 3 ++-
+ po/LINGUAS | 3 +++
+ 3 files changed, 12 insertions(+), 1 deletions(-)
+
+commit 7bf79df561c6d373e6778cbc88af002c3ab95054
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Apr 6 21:42:14 2006 +0000
+
+ Bug 337552 – Insufficient version requirement for gtk+
+
+ 2006-04-06 Behdad Esfahbod <behdad gnome org>
+
+ Bug 337552 – Insufficient version requirement for gtk+
+
+ * configure.in: Depend on Gtk+ 2.6.
+
+ ChangeLog | 6 ++++++
+ configure.in | 11 +++--------
+ 2 files changed, 9 insertions(+), 8 deletions(-)
+
+commit 739a0b91fac0fddd05295da0a8eb2ff54b2a2f11
+Author: Priit Laes <amd store20 com>
+Date: Wed Apr 5 15:00:25 2006 +0000
+
+ Translation updated by Ivar Smolin.
+
+ 2006-04-05 Priit Laes <amd store20 com>
+
+ * et.po: Translation updated by Ivar Smolin.
+
+ po/ChangeLog | 4 +++
+ po/et.po | 68 +++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 41 insertions(+), 31 deletions(-)
+
+commit 32eb3a96eb13dbb54e09f846eb754c52d39b84e3
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Sat Apr 1 02:09:14 2006 +0000
+
+ .
+
+ .cvsignore | 7 ++++++-
+ po/.cvsignore | 1 +
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 30ea398ba25b8c3ee9e15b25afc2c03225ba9761
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Mar 31 04:15:49 2006 +0000
+
+ Bug 168251 – add support for 256 colors terminals Patch from
+
+ 2006-03-30 Behdad Esfahbod <behdad gnome org>
+
+ Bug 168251 – add support for 256 colors terminals
+ Patch from dann godzilla ics uci edu.
+
+ * src/vte-private.h, src/vte.c, src/vteseq.c: Implement support
+ for 256 colors.
+
+ ChangeLog | 8 +++
+ src/vte-private.h | 26 +++++-----
+ src/vte.c | 148 ++++++++++++++++++++++++----------------------------
+ src/vteseq.c | 39 +++++++++++++--
+ 4 files changed, 124 insertions(+), 97 deletions(-)
+
+commit bf8f8c15c4f2c0f7ad615c85e2698a92b536fe1a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Mar 31 03:57:57 2006 +0000
+
+ Bug 120276 – Wishlist: Support Rectangular Selection Patch from Pedro de
+
+ 2006-03-30 Behdad Esfahbod <behdad gnome org>
+
+ Bug 120276 – Wishlist: Support Rectangular Selection
+ Patch from Pedro de Medeiros.
+
+ * src/vte.c, src/vte-private.h: Implement block (rectangular)
+ selection using ctrl+mouse.
+
+ ChangeLog | 8 ++++
+ src/vte-private.h | 2 +
+ src/vte.c | 103 ++++++++++++++++++++++++++++++++++++++++++++---------
+ 3 files changed, 96 insertions(+), 17 deletions(-)
+
+commit 24bb4db74a8e09f6c1a80422f25fab65433197bb
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Mar 31 03:51:07 2006 +0000
+
+ Bug 336117 – [patch] Use g_slice API Patch from Aivars Kalvans.
+
+ 2006-03-30 Behdad Esfahbod <behdad gnome org>
+
+ Bug 336117 – [patch] Use g_slice API
+ Patch from Aivars Kalvans.
+
+ * src/*.c: Use g_slice instead of g_malloc for structs.
+ Also, replace g_string_new("") with g_string_new(NULL).
+
+ ChangeLog | 8 +++++
+ configure.in | 2 +-
+ src/buffer.c | 4 +-
+ src/iso2022.c | 8 ++--
+ src/matcher.c | 4 +-
+ src/reflect.c | 2 +-
+ src/ring.c | 4 +-
+ src/table.c | 18 +++++-----
+ src/trie.c | 4 +-
+ src/vte.c | 12 ++++----
+ src/vteaccess.c | 4 +-
+ src/vteconv.c | 4 +-
+ src/vtedraw.c | 4 +-
+ src/vteft2.c | 4 +-
+ src/vtegl.c | 4 +-
+ src/vteglyph.c | 4 +-
+ src/vtepango.c | 6 ++--
+ src/vtepangox.c | 6 ++--
+ src/vteregex.c | 20 ++++++------
+ src/vteskel.c | 4 +-
+ src/vtetc.c | 90 ++++++++++++++++++++++++-------------------------------
+ src/vtexft.c | 11 ++----
+ 22 files changed, 110 insertions(+), 117 deletions(-)
+
+commit 3a497bbf82003a216046c4f66f0fe467745ee788
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Mar 31 00:32:13 2006 +0000
+
+ Branchpoint for vte-0-12.
+
+ 2006-03-30 Behdad Esfahbod <behdad gnome org>
+
+ Branchpoint for vte-0-12.
+
+ ChangeLog | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+commit b5219e70cf617cf7903a57cf9c03fe44349b349d
+Author: Guntupalli Karunakar <karunakar src gnome org>
+Date: Thu Mar 30 15:01:12 2006 +0000
+
+ Added Dzongkha translation
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/dz.po | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 131 insertions(+), 1 deletions(-)
+
+commit 35237f2f3c9a8ba3e52dd0dc9b577cad6dceb569
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Mar 27 01:55:17 2006 +0000
+
+ Bug 336128 # vim scrolling issues - emulation errors
+
+ 2006-03-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 336128 # vim scrolling issues - emulation errors
+
+ * src/vteseq.c (vte_sequence_handler_sf): Update start and end
+ when updating insert_delta.
+
+ ChangeLog | 7 +++++++
+ src/vteseq.c | 11 ++++++-----
+ 2 files changed, 13 insertions(+), 5 deletions(-)
+
+commit 67131d5fc1344bb3f1dfef5796dd9f8a13b831c7
+Author: Vladimer Sichinava <vsichi src gnome org>
+Date: Sat Mar 18 02:10:01 2006 +0000
+
+ Update Georgian translation
+
+ po/ka.po | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+commit e1bd736274af19101cb07f72a56306e6d0ef5393
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Mar 15 11:02:59 2006 +0000
+
+ Bug 334385 – Use intltool
+
+ 2006-03-15 Behdad Esfahbod <behdad gnome org>
+
+ Bug 334385 – Use intltool
+
+ * Makefile.am, configure.in: Add intltool support.
+
+ * src/iso2022.c, src/reaper.c, src/vteaccess.c, src/vteapp.c,
+ src/vtebg.c, src/vtexft.c, src/vte.c: Include glib/gi18n-lib.h
+ instead of #ifdefing gettext stuff.
+
+ * src/vte.c (vte_terminal_class_init): Use GETTEXT_PACKAGE instead
+ of PACKAGE in bindgettextdomain.
+
+ ChangeLog | 13 +++++++++++++
+ Makefile.am | 5 ++++-
+ configure.in | 9 ++++++---
+ src/iso2022.c | 9 +--------
+ src/reaper.c | 10 +---------
+ src/vte.c | 3 ++-
+ src/vteaccess.c | 7 +------
+ src/vteapp.c | 8 +-------
+ src/vtebg.c | 8 +-------
+ src/vtexft.c | 8 +-------
+ 10 files changed, 31 insertions(+), 49 deletions(-)
+
+commit c746aa5bf1ff72eee324811989216e8351a88ee3
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Mar 14 11:05:24 2006 +0000
+
+ More tweaks to the previous changes. Reported by dholbach again.
+
+ 2006-03-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_size_allocate): More tweaks to the
+ previous changes. Reported by dholbach again.
+
+ ChangeLog | 7 ++++++-
+ src/vte.c | 50 +++++++++++++++++++++-----------------------------
+ 2 files changed, 27 insertions(+), 30 deletions(-)
+
+commit 6988cdf18b96e0f42eb9c95f8e501305a2cc2f0d
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Mar 13 11:47:22 2006 +0000
+
+ Put the stuff changed in previous commit in their original order. Problem
+
+ 2006-03-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_size_allocate): Put the stuff changed in
+ previous commit in their original order. Problem reported by
+ dholback.
+
+ ChangeLog | 10 ++++++++--
+ src/vte.c | 26 ++++++++++++++++----------
+ 2 files changed, 24 insertions(+), 12 deletions(-)
+
+commit 361ec0090f5132bac972477db6a07ed40c82cb8f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Mar 13 05:46:01 2006 +0000
+
+ Bug 104841 – scrolling doesn't work inside "screen" windows
+
+ 2006-03-08 Behdad Esfahbod <behdad gnome org>
+
+ Bug 104841 – scrolling doesn't work inside "screen" windows
+
+ * src/vte.c (vte_terminal_size_allocate): Fix restricted scrolling
+ region readjustment. Moreover, do not do unnecessary updates when
+ number of rows & columns has not changed.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 60 +++++++++++++++++++++++++++++-------------------------------
+ 2 files changed, 37 insertions(+), 31 deletions(-)
+
+commit eb4c9403f8dc29e54c458f8f35624a5b41674cc6
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Mar 13 05:43:32 2006 +0000
+
+ Bug 333768 – vteapp debug stuff should be conditional Patch from Egmont
+
+ 2006-03-08 Behdad Esfahbod <behdad gnome org>
+
+ Bug 333768 – vteapp debug stuff should be conditional
+ Patch from Egmont Koblinger.
+
+ * src/vteapp.c: Make pwd and setting env vars conditional on debug.
+
+ ChangeLog | 7 +++++++
+ src/vteapp.c | 8 +++++++-
+ 2 files changed, 14 insertions(+), 1 deletions(-)
+
+commit ce1b7692e1f22c24e13f308f01ee31ea0ba7eb2d
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Mar 13 05:33:26 2006 +0000
+
+ Released vte-0.12.0.
+
+ 2006-03-08 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.12.0.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.12.0.
+
+ ChangeLog | 8 ++++++++
+ NEWS | 2 ++
+ configure.in | 2 +-
+ po/am.po | 27 +++++++++++----------------
+ po/ang.po | 27 +++++++++++----------------
+ po/ar.po | 30 ++++++++++++++----------------
+ po/az.po | 30 ++++++++++++++----------------
+ po/be.po | 30 ++++++++++++++----------------
+ po/bg.po | 30 ++++++++++++++----------------
+ po/bn.po | 30 ++++++++++++++----------------
+ po/bs.po | 30 ++++++++++++++----------------
+ po/ca.po | 30 ++++++++++++++----------------
+ po/cs.po | 30 ++++++++++++++----------------
+ po/cy.po | 30 ++++++++++++++----------------
+ po/da.po | 30 ++++++++++++++----------------
+ po/de.po | 30 ++++++++++++++----------------
+ po/el.po | 30 ++++++++++++++----------------
+ po/en_CA.po | 30 ++++++++++++++----------------
+ po/en_GB.po | 30 ++++++++++++++----------------
+ po/es.po | 30 ++++++++++++++----------------
+ po/et.po | 30 ++++++++++++++----------------
+ po/eu.po | 30 ++++++++++++++----------------
+ po/fa.po | 2 +-
+ po/fi.po | 30 ++++++++++++++----------------
+ po/fr.po | 30 ++++++++++++++----------------
+ po/ga.po | 27 +++++++++++----------------
+ po/gl.po | 30 ++++++++++++++----------------
+ po/gu.po | 30 ++++++++++++++----------------
+ po/he.po | 30 ++++++++++++++----------------
+ po/hi.po | 30 ++++++++++++++----------------
+ po/hr.po | 30 ++++++++++++++----------------
+ po/hu.po | 30 ++++++++++++++----------------
+ po/id.po | 30 ++++++++++++++----------------
+ po/is.po | 30 ++++++++++++++----------------
+ po/it.po | 30 ++++++++++++++----------------
+ po/ja.po | 30 ++++++++++++++----------------
+ po/ka.po | 30 ++++++++++++++----------------
+ po/kn.po | 45 ++++++++++++++++++++++-----------------------
+ po/ko.po | 30 ++++++++++++++----------------
+ po/ku.po | 45 +++++++++++++++++++--------------------------
+ po/ky.po | 30 ++++++++++++++----------------
+ po/li.po | 30 ++++++++++++++----------------
+ po/lt.po | 30 ++++++++++++++----------------
+ po/lv.po | 44 ++++++++++++++++++++++----------------------
+ po/mi.po | 27 +++++++++++----------------
+ po/mk.po | 30 ++++++++++++++----------------
+ po/ml.po | 27 +++++++++++----------------
+ po/mn.po | 30 ++++++++++++++----------------
+ po/ms.po | 30 ++++++++++++++----------------
+ po/nb.po | 30 ++++++++++++++----------------
+ po/ne.po | 30 ++++++++++++++----------------
+ po/nl.po | 30 ++++++++++++++----------------
+ po/nn.po | 30 ++++++++++++++----------------
+ po/no.po | 30 ++++++++++++++----------------
+ po/or.po | 30 ++++++++++++++----------------
+ po/pa.po | 30 ++++++++++++++----------------
+ po/pl.po | 30 ++++++++++++++----------------
+ po/pt.po | 30 ++++++++++++++----------------
+ po/pt_BR.po | 30 ++++++++++++++----------------
+ po/ro.po | 30 ++++++++++++++----------------
+ po/ru.po | 30 ++++++++++++++----------------
+ po/rw.po | 31 +++++++++++++++----------------
+ po/sk.po | 30 ++++++++++++++----------------
+ po/sl.po | 30 ++++++++++++++----------------
+ po/sq.po | 30 ++++++++++++++----------------
+ po/sr.po | 30 ++++++++++++++----------------
+ po/sr Latn po | 30 ++++++++++++++----------------
+ po/sv.po | 30 ++++++++++++++----------------
+ po/ta.po | 30 ++++++++++++++----------------
+ po/th.po | 30 ++++++++++++++----------------
+ po/tr.po | 30 ++++++++++++++----------------
+ po/ug.po | 30 ++++++++++++++----------------
+ po/uk.po | 30 ++++++++++++++----------------
+ po/vi.po | 30 ++++++++++++++----------------
+ po/wa.po | 30 ++++++++++++++----------------
+ po/xh.po | 30 ++++++++++++++----------------
+ po/zh_CN.po | 30 ++++++++++++++----------------
+ po/zh_HK.po | 39 +++++++++++++++++++--------------------
+ po/zh_TW.po | 39 +++++++++++++++++++--------------------
+ 79 files changed, 1079 insertions(+), 1233 deletions(-)
+
+commit 5c3e4026fac29c5c8024c6c13a9542a9207c99ee
+Author: Kwok-Koon Cheung <baddog src gnome org>
+Date: Thu Mar 9 01:33:37 2006 +0000
+
+ update header info
+
+ po/kn.po | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 1605865137784af059d22f07e07b4df5941a8a90
+Author: Kwok-Koon Cheung <baddog src gnome org>
+Date: Thu Mar 9 01:24:50 2006 +0000
+
+ Really fixed kn.po this time
+
+ ChangeLog | 5 +++++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++++
+ po/kn.po | 7 +++----
+ 4 files changed, 13 insertions(+), 5 deletions(-)
+
+commit 80f7abbff13e05a4c7e0b337361e722138d18071
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Wed Mar 8 22:21:24 2006 +0000
+
+ Removed kn from ALL_LINGUAS, as it was breaking the build.
+
+ * configure.in: Removed kn from ALL_LINGUAS, as it was breaking
+ the build.
+
+ ChangeLog | 3 +++
+ configure.in | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 8be612163d22a80845e92f3a91bfdc90eaa02bae
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Mar 8 22:13:46 2006 +0000
+
+ Released vte-0.11.21.
+
+ 2006-03-08 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.11.21.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.11.21.
+
+ ChangeLog | 8 ++++++++
+ NEWS | 6 ++++++
+ configure.in | 2 +-
+ 3 files changed, 15 insertions(+), 1 deletions(-)
+
+commit 121c11338dee9f748cc5a7dfc4f47bab114b7b78
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Mar 8 20:31:13 2006 +0000
+
+ Fix vte_update_timeout repeat to 25ms. (bug #333776, Egmont Koblinger)
+
+ 2006-03-08 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c, src/vte-private.h: Fix vte_update_timeout repeat to
+ 25ms. (bug #333776, Egmont Koblinger)
+
+ ChangeLog | 5 +++++
+ src/vte-private.h | 1 +
+ src/vte.c | 2 +-
+ 3 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 1ac0068119ebff08ebc7eb66eae8f5264529531d
+Author: Abel Cheung <maddog linuxhall org>
+Date: Tue Mar 7 21:14:39 2006 +0000
+
+ Added "kn" "zh_HK" to ALL_LINGUAS.
+
+ 2006-03-07 Abel Cheung <maddog linuxhall org>
+
+ * configure.in: Added "kn" "zh_HK" to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 5 +----
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+commit d30d72a4614e885eee0b32c0d597bf4c91313a1b
+Author: Kwok-Koon Cheung <baddog src gnome org>
+Date: Tue Mar 7 21:12:02 2006 +0000
+
+ Updated Chinese (Taiwan) translation. New Chinese (Hong Kong) translation.
+
+ * zh_TW.po: Updated Chinese (Taiwan) translation.
+ * zh_HK.po: New Chinese (Hong Kong) translation.
+
+ po/ChangeLog | 5 +++
+ po/zh_HK.po | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/zh_TW.po | 99 ++++++++++++++++++---------------------------------
+ 3 files changed, 152 insertions(+), 64 deletions(-)
+
+commit 95c7891534f03b458af7881fe8b3d315fc43deae
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Wed Mar 1 01:44:40 2006 +0000
+
+ Step up COALESCE_TIMEOUT and DISPLAY_TIMEOUT from 2ms to 10ms. This is
+
+ 2006-02-28 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h: Step up COALESCE_TIMEOUT and DISPLAY_TIMEOUT
+ from 2ms to 10ms. This is more compatible with the updated timeout
+ that we are doing at around 25ms.
+
+ ChangeLog | 6 ++++++
+ src/vte-private.h | 11 ++++++-----
+ src/vte.c | 2 +-
+ 3 files changed, 13 insertions(+), 6 deletions(-)
+
+commit 985b6d715b4c303db6ec005816cce7c4ef8c7a93
+Author: Guilherme de S. Pastore <gpastore src gnome org>
+Date: Tue Feb 28 09:39:16 2006 +0000
+
+ 19:17 behdad: km_sleep, fatalerror-: you guys, please add yourself to vte/MAINTAINERS
+
+ MAINTAINERS | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit f1612d012fe1fa41ef9aeb589840dbf48b948070
+Author: Clytie Siddall <clyties src gnome org>
+Date: Tue Feb 28 05:22:12 2006 +0000
+
+ lv.po: Updated Latvian translation.
+
+ po/ChangeLog | 4 ++
+ po/lv.po | 104 ++++++++++++++++++++--------------------------------------
+ 2 files changed, 40 insertions(+), 68 deletions(-)
+
+commit cdc91c6c767848bf4eeee8762e4d937b3283ccd4
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Feb 28 03:28:59 2006 +0000
+
+ Added.
+
+ 2006-02-27 Behdad Esfahbod <behdad gnome org>
+
+ * MAINTAINERS: Added.
+
+ ChangeLog | 4 ++++
+ HACKING | 9 +++------
+ MAINTAINERS | 4 ++++
+ Makefile.am | 2 +-
+ 4 files changed, 12 insertions(+), 7 deletions(-)
+
+commit c72e9fd4e383a946374c3f9d8f561d46c357a377
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sun Feb 26 00:13:39 2006 +0000
+
+ Released vte-0.11.20.
+
+ 2006-02-25 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.11.20.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.11.20.
+
+ ChangeLog | 8 ++++++++
+ NEWS | 3 +++
+ configure.in | 2 +-
+ po/fa.po | 4 ++--
+ 4 files changed, 14 insertions(+), 3 deletions(-)
+
+commit a8dc95d35d179748f5b32e876241044647c86185
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Feb 25 23:20:42 2006 +0000
+
+ Rever the patch to optimize memory usage by releasing fonts that aren't
+
+ 2006-02-25 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtexft.c: (_vte_xft_font_for_char): Rever the patch to
+ optimize memory usage by releasing fonts that aren't needed early.
+ Because that was inserting destroyed fonts into cache. Closes bug
+ #332580 and reverts bug #309322.
+
+ ChangeLog | 7 +++++++
+ src/vtexft.c | 22 ++++++----------------
+ 2 files changed, 13 insertions(+), 16 deletions(-)
+
+commit 075456ee218b973c7b4aa102ef1d40cee46b7972
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Feb 25 09:17:01 2006 +0000
+
+ Released vte-0.11.19.
+
+ 2006-02-25 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.11.19.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.11.19.
+
+ ChangeLog | 8 ++++++++
+ NEWS | 8 ++++++++
+ configure.in | 2 +-
+ po/fa.po | 18 +++++++++---------
+ 4 files changed, 26 insertions(+), 10 deletions(-)
+
+commit 2ada5623c5c2aacd2648c773f590d2664c96c00a
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Feb 17 12:38:42 2006 +0000
+
+ Make shift+insert paste PRIMARY and ctrl+shift+insert paste CLIPBOARD
+
+ 2006-02-17 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Make shift+insert paste PRIMARY and ctrl+shift+insert
+ paste CLIPBOARD (switched them. bug #123844)
+
+ ChangeLog | 5 +++++
+ src/vte.c | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 37aff2e7951558fbc06d580be1886302cc3c7de1
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Feb 17 12:31:08 2006 +0000
+
+ Better update-timeout handling. Always delay updates a bit. Schedule
+
+ 2006-02-17 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Better update-timeout handling. Always delay updates
+ a bit. Schedule updates as G_PRIORITY_DEFAULT_IDLE. And, set delay
+ as the number of lines, in milliseconds.
+
+ ChangeLog | 6 +++++
+ src/vte.c | 71 ++++++++++++++++++++++++++++++++++++++++++-------------------
+ 2 files changed, 55 insertions(+), 22 deletions(-)
+
+commit d5274a05e5fe49fb34901adb1c0988437d6a9348
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Feb 14 22:18:49 2006 +0000
+
+ Return 0. (bug #331178)
+
+ 2006-02-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-gen.c (main): Return 0. (bug #331178)
+
+ ChangeLog | 4 ++++
+ python/cat.py | 2 +-
+ python/unrealize.py | 2 +-
+ src/vteseq-gen.c | 2 ++
+ 4 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 226ba9f308b60790a762b6a2ed312b737a828433
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Feb 14 09:00:32 2006 +0000
+
+ Use getpwnam to correctly log multiple users with the same UID. (bug
+
+ 2006-02-14 Behdad Esfahbod <behdad gnome org>
+
+ * gnome-pty-helper/gnome-pty-helper.c (main): Use getpwnam to
+ correctly log multiple users with the same UID. (bug #319564,
+ patch from Laszlo (Laca) Peter.
+
+ ChangeLog | 6 ++++++
+ gnome-pty-helper/gnome-pty-helper.c | 16 +++++++++++++++-
+ 2 files changed, 21 insertions(+), 1 deletions(-)
+
+commit 46cdab5bf7357f8e502cbe4f8ce7bd03f543cb9e
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Tue Feb 14 05:50:28 2006 +0000
+
+ Only discontinue timer if nothing was updated in the last cycle.
+
+ 2006-02-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (update_timeout): Only discontinue timer if nothing
+ was updated in the last cycle.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 8 ++++++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+commit 7bcb1977db20099d686099802efd1fbf393c92ee
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Feb 13 22:24:17 2006 +0000
+
+ Fix race condition when shutdown_helper may be called again from the
+
+ 2006-02-13 Behdad Esfahbod <behdad gnome org>
+
+ * gnome-pty-helper/gnome-pty-helper.c: Fix race condition when
+ shutdown_helper may be called again from the signal handler when
+ it's already running. (bug #331056)
+
+ ChangeLog | 6 ++++++
+ gnome-pty-helper/ChangeLog | 1 +
+ gnome-pty-helper/gnome-pty-helper.c | 18 +++++++++++-------
+ 3 files changed, 18 insertions(+), 7 deletions(-)
+
+commit cf6368c0aa47983547772669e4d9f7f462b7a0ba
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Feb 13 21:31:18 2006 +0000
+
+ Do not prepend X_LIBS and X_CFLAGS to LIBS and CFLAGS. (bug #331021,
+
+ 2006-02-13 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Do not prepend X_LIBS and X_CFLAGS to LIBS and
+ CFLAGS. (bug #331021, Sylvain BERTRAND)
+
+ ChangeLog | 5 +++++
+ configure.in | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 4faae4ba893d5ed822ce7066e11e8bb163b29b0b
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Mon Feb 13 20:50:14 2006 +0000
+
+ Handle Ctrl+Shift+Insert to paste PRIMARY.
+
+ 2006-02-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_key_press): Handle Ctrl+Shift+Insert to
+ paste PRIMARY.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 12 +++++++++---
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+commit b93f42ff246c70ed6743240a5a3892121262edbb
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Feb 11 20:04:30 2006 +0000
+
+ Released vte-0.11.18.
+
+ 2006-02-11 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.11.18.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.11.18.
+
+ ChangeLog | 8 ++++++++
+ NEWS | 14 ++++++++++++++
+ configure.in | 2 +-
+ po/fa.po | 2 +-
+ 4 files changed, 24 insertions(+), 2 deletions(-)
+
+commit 89b9d8fab395d84160c26d9f0e5cee0270177c81
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Feb 11 18:29:06 2006 +0000
+
+ Change INVALID_CODEPOINT from 0xFFFF to 0xFFFD. (bug #317235, Egmont
+
+ 2006-02-11 Behdad Esfahbod <behdad gnome org>
+
+ * src/iso2022.c: Change INVALID_CODEPOINT from 0xFFFF to 0xFFFD.
+ (bug #317235, Egmont Koblinger)
+
+ ChangeLog | 5 +++++
+ src/iso2022.c | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 4e9d18e1b95676972e16f70b81c332cc41564d9f
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Feb 11 18:24:52 2006 +0000
+
+ Guard more against off values.
+
+ 2006-02-11 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_invalidate_cells): Guard more against off values.
+
+ ChangeLog | 4 ++++
+ po/fa.po | 2 +-
+ src/vte.c | 14 +++++++-------
+ 3 files changed, 12 insertions(+), 8 deletions(-)
+
+commit a4b4fa1ccbcf269e87256f52c075889b3bc54e7b
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Sat Feb 11 05:07:23 2006 +0000
+
+ vte-overrides.txt should be in CVS in fact.
+
+ doc/reference/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit a567da4ddf37ba503a5bfde9fea8d20c5fede18a
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Sat Feb 11 05:04:34 2006 +0000
+
+ Added more MAINTAINERCLEANFILES.
+
+ Makefile.am | 1 +
+ doc/reference/Makefile.am | 2 ++
+ 2 files changed, 3 insertions(+), 0 deletions(-)
+
+commit 3eb98191b6c546b21657246870dcf4b334e0f131
+Author: Behdad Esfahbod <behdad src gnome org>
+Date: Sat Feb 11 04:56:09 2006 +0000
+
+ Added MAINTAINERCLEANFILES.
+
+ Makefile.am | 20 ++++++++++++++++++++
+ gnome-pty-helper/Makefile.am | 9 +++++++++
+ 2 files changed, 29 insertions(+), 0 deletions(-)
+
+commit e95ea25427129cc711c2b7337a9f0b502a24ede7
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Sat Feb 11 04:45:33 2006 +0000
+
+ Update the build infrastructure. make distcheck works now!
+
+ 2006-02-10 Behdad Esfahbod <behdad gnome org>
+
+ Update the build infrastructure. make distcheck works now!
+
+ * autogen.sh: Use a generic autogen.sh that uses gnome-common.
+
+ * configure.in: Simplify gtk-doc stuff. Update to newer syntax.
+
+ * Makefile.am, src/Makefile.am, doc/reference/Makefile.am: Updated.
+
+ .cvsignore | 5 +
+ ChangeLog | 10 ++
+ Makefile.am | 2 +
+ autogen.sh | 121 +++--------------------
+ configure.in | 70 ++-----------
+ doc/reference/Makefile.am | 231 ++++++++++---------------------------------
+ gnome-pty-helper/.cvsignore | 2 +
+ po/fa.po | 25 ++---
+ python/vte-demo.py | 2 +-
+ src/Makefile.am | 1 +
+ vte.spec => vte.spec.in | 2 +-
+ 11 files changed, 108 insertions(+), 363 deletions(-)
+
+commit 2f710f0f5ff8efe8f2dc2d4601da5c4eaa6716a6
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Feb 10 09:30:23 2006 +0000
+
+ Throttle invalidating to at most 40 times per second, using a timeout.
+
+ 2006-02-10 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_invalidate_cells): Throttle invalidating to at most
+ 40 times per second, using a timeout.
+
+ ChangeLog | 5 +++++
+ src/vte-private.h | 3 +++
+ src/vte.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++--
+ 3 files changed, 58 insertions(+), 2 deletions(-)
+
+commit bd9905c897449014f31753318593588bff7bfff1
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Feb 10 09:25:56 2006 +0000
+
+ Removed the huge sequence handler table. Changed to use the compact tables
+
+ 2006-02-10 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Removed the huge sequence handler table. Changed to
+ use the compact tables in vteseq-table.h.
+
+ * src/vteseq-gen.c: Generator containing the table removed from above,
+ that generates compact tables.
+
+ * src/vteseq-table.h: Table generated by above. Can be regenerated
+ using make.
+
+ * src/Makefile.am: Adjusted.
+
+ * src/vteapp.c: Set default font to Monospace instead of Sans.
+
+ ChangeLog | 15 ++
+ src/.cvsignore | 1 +
+ src/Makefile.am | 5 +
+ src/vteapp.c | 2 +-
+ src/vteseq-gen.c | 505 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vteseq-table.h | 388 ++++++++++++++++++++++++++++++++++++++++
+ src/vteseq.c | 492 ++++++---------------------------------------------
+ 7 files changed, 970 insertions(+), 438 deletions(-)
+
+commit 26b84670316fb249aa4671a11f979bb468f2913b
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Feb 10 08:02:48 2006 +0000
+
+ Allocate terminal->pvt using GObject private data.
+
+ 2006-02-10 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Allocate terminal->pvt using GObject private data.
+
+ ChangeLog | 4 ++
+ src/vte.c | 114 +++++-------------------------------------------------------
+ 2 files changed, 14 insertions(+), 104 deletions(-)
+
+commit f3d79059c30b8a89fc1409ea63ee23c19823e8e3
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Feb 10 07:58:28 2006 +0000
+
+ Moved all sequence handler codes into a separate file.
+
+ 2006-02-10 Behdad Esfahbod <behdad gnome org>
+
+ Moved all sequence handler codes into a separate file.
+
+ * src/vte.c: Stuff moved to other files.
+
+ * src/vte-private.h: Includes all struct definitions from vte.c.
+
+ * src/vteseq.c, src/vteseq.h, src/vteseq-list.h: The sequence
+ handlers are all here now.
+
+ ChangeLog | 11 +
+ src/Makefile.am | 4 +
+ src/vte-private.h | 385 ++++
+ src/vte.c | 5192 +++--------------------------------------------------
+ src/vteseq-list.h | 122 ++
+ src/vteseq.c | 4462 +++++++++++++++++++++++++++++++++++++++++++++
+ src/vteseq.h | 40 +
+ 7 files changed, 5259 insertions(+), 4957 deletions(-)
+
+commit e11441c2d9390f3e9645c162b8b1ae9a10a78a63
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Feb 9 22:31:03 2006 +0000
+
+ Make a couple debug messages conditional on DEBUG_MISC.
+
+ 2006-02-09 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteapp.c: Make a couple debug messages conditional on
+ DEBUG_MISC.
+
+ ChangeLog | 5 +++++
+ src/vteapp.c | 12 ++++++++++--
+ 2 files changed, 15 insertions(+), 2 deletions(-)
+
+commit 1a07b922fe717e0b8144d5249e38153538e6aeea
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Feb 3 14:34:10 2006 +0000
+
+ Warning cleanup. A couple were actually bugs.
+
+ 2006-02-03 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Warning cleanup. A couple were actually bugs.
+
+ * src/vteapp.c: No need to run $SHELL by default. Handled
+ by vte.c now. A bug was causing nothing to be run...
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 28 +++++++++++++++++-----------
+ src/vteapp.c | 2 +-
+ 3 files changed, 25 insertions(+), 12 deletions(-)
+
+commit 5d005b24d8f1496641c0f81f0995e1f9ae643b85
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Fri Feb 3 13:27:27 2006 +0000
+
+ Add the debug flag TRIE for printing out the trie (previous was using
+
+ 2006-02-03 Behdad Esfahbod <behdad gnome org>
+
+ * src/debug.c, src/debug.h, src/matcher.c: Add the debug
+ flag TRIE for printing out the trie (previous was using
+ MISC.)
+
+ * src/vte.c (vte_invalidate_cells): Update row_count and
+ column_count when clamping their respective _start values.
+
+ * src/vte.c (vte_terminal_extend_selection,
+ * _vte_terminal_select_text):
+ Pass row_count to vte_invalidate_cells(), instead of row_stop.
+
+ * src/vteapp.c: Run $SHELL by default.
+
+ ChangeLog | 14 ++++++++++++++
+ doc/reference/tmpl/internals.sgml | 2 --
+ src/debug.c | 3 +++
+ src/debug.h | 3 ++-
+ src/matcher.c | 2 +-
+ src/vte.c | 27 ++++++++++++++++-----------
+ src/vteapp.c | 2 +-
+ src/vtedraw.c | 14 +++++++-------
+ 8 files changed, 44 insertions(+), 23 deletions(-)
+
+commit 1785a75abdb32c5e889526d41e54bd7b336e23b5
+Author: Behdad Esfahbod <behdad gnome org>
+Date: Thu Feb 2 03:43:16 2006 +0000
+
+ Added to CVS.
+
+ 2006-02-01 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/tmpl/internals.sgml: Added to CVS.
+
+ * vte/src/vte.c: Fix selection vs. primary that have been
+ borked forever. Closes bug #123844.
+
+ ChangeLog | 7 ++++
+ doc/reference/.cvsignore | 1 +
+ doc/reference/tmpl/internals.sgml | 18 ++++++++++++
+ doc/reference/tmpl/reaper.sgml | 3 --
+ doc/reference/tmpl/vte-unused.sgml | 4 ++
+ doc/reference/tmpl/vte.sgml | 3 --
+ doc/reference/tmpl/vteaccess.sgml | 3 --
+ src/keymap.c | 2 +-
+ src/vte.c | 54 ++++++++++++++++++++++++-----------
+ 9 files changed, 68 insertions(+), 27 deletions(-)
+
+commit 14310a352215434f45d24584bc34156ee922d639
+Author: Guilherme de S. Pastore <gpastore src gnome org>
+Date: Mon Jan 30 12:23:49 2006 +0000
+
+ applied patch from Tomas Mraz to fix a double free. Closes bug #161337.
+
+ * src/trie.c: applied patch from Tomas Mraz to fix a double
+ free. Closes bug #161337.
+
+ ChangeLog | 5 +++++
+ src/trie.c | 10 +++++++---
+ 2 files changed, 12 insertions(+), 3 deletions(-)
+
+commit 154c33179ee3d9de0bdf3416dabea3cdead0ebdc
+Author: Erdal Ronahi <eronahi src gnome org>
+Date: Mon Jan 30 01:08:08 2006 +0000
+
+ Added initial Kurdish translations.
+
+ ChangeLog | 4 ++
+ configure.in | 5 ++-
+ po/ChangeLog | 4 ++
+ po/ku.po | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 130 insertions(+), 1 deletions(-)
+
+commit 72fcd8154eaf51afaec22fc9e336e078a9c45c26
+Author: Guilherme de S. Pastore <gpastore src gnome org>
+Date: Sat Jan 28 20:23:52 2006 +0000
+
+ add -DG_DISABLE_ASSERT to CFLAGS. updated. bumped version to 0.11.17. only
+
+ * src/Makefile.am: add -DG_DISABLE_ASSERT to CFLAGS.
+ * NEWS: updated.
+ * vte.spec: bumped version to 0.11.17.
+ * src/vte.c: only try to guess the user's shell when actually
+ forking, so we avoid unnecessary work if the application
+ already has to do that itself.
+
+ ChangeLog | 14 +++++++++++++
+ NEWS | 13 ++++++++++-
+ src/Makefile.am | 2 +-
+ src/vte.c | 58 ++++++++++++++++++++++++++++++------------------------
+ vte.spec | 2 +-
+ 5 files changed, 59 insertions(+), 30 deletions(-)
+
+commit 93d57b0c02afb1510bad099c3cf4da4f10f03ab9
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Sun Jan 15 22:34:33 2006 +0000
+
+ Fix the build after the previous commit. And update the NEWS file a bit
+
+ NEWS | 2 ++
+ src/vte.c | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 923b824fd9f75accb05585b740b628f40aea7ebc
+Author: Guilherme de S. Pastore <gpastore src gnome org>
+Date: Sun Jan 15 21:09:41 2006 +0000
+
+ applied patch from kmaraas to replace g_return* with g_assert in static functions
+
+ ChangeLog | 5 ++
+ src/ring.c | 2 +-
+ src/vte.c | 198 +++++++++++++++++++++++++++---------------------------
+ src/vteaccess.c | 104 ++++++++++++++---------------
+ src/vteapp.c | 18 +++---
+ src/vtetc.c | 12 ++--
+ src/vtexft.c | 30 ++++----
+ 7 files changed, 186 insertions(+), 183 deletions(-)
+
+commit ac0e2cad69de1134949764b5793c9737e1a92cd3
+Author: Guilherme de S. Pastore <gpastore src gnome org>
+Date: Sat Jan 14 13:31:35 2006 +0000
+
+ install more than *.html, based on the patch from Ed Catmur. Closes bug
+
+ * doc/reference/Makefile.am: install more than *.html, based on the
+ patch from Ed Catmur. Closes bug #321909.
+
+ ChangeLog | 5 +++++
+ doc/reference/Makefile.am | 6 ++----
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+commit a18578af735cb07eafaa98cb3e6d66be4fa1c9bc
+Author: Olav Vitters <olav bkor dhs org>
+Date: Sat Jan 14 13:10:33 2006 +0000
+
+ Support save and restore cursor position using \033[s and \033[u. Reported
+
+ 2006-01-14 Olav Vitters <olav bkor dhs org>
+
+ * src/caps.c: Support save and restore cursor position using \033[s
+ and \033[u. Reported by Dag Wieers. Fixes bug 170032.
+
+ ChangeLog | 5 +++++
+ src/caps.c | 2 ++
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit e0bc53fbe3b3ffa56099e8f807764184ea2df69f
+Author: Olav Vitters <olav bkor dhs org>
+Date: Sat Dec 31 11:27:56 2005 +0000
+
+ Backup patch from Steve Langasek. It needs pkg-config changes.
+
+ 2005-12-31 Olav Vitters <olav bkor dhs org>
+
+ * vte.pc.in: Backup patch from Steve Langasek. It needs pkg-config
+ changes.
+
+ ChangeLog | 5 +++++
+ vte.pc.in | 5 ++---
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+commit c83369c96f5d1f83fd3c346a6a6e7b7edcf67448
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Tue Dec 13 14:21:54 2005 +0000
+
+ Flush after release
+
+ po/am.po | 22 +++++++++++-----------
+ po/ang.po | 22 +++++++++++-----------
+ po/ar.po | 22 +++++++++++-----------
+ po/az.po | 22 +++++++++++-----------
+ po/be.po | 22 +++++++++++-----------
+ po/bg.po | 22 +++++++++++-----------
+ po/bn.po | 41 ++++++++++++++++++++---------------------
+ po/bs.po | 22 +++++++++++-----------
+ po/ca.po | 41 ++++++++++++++++++++---------------------
+ po/cs.po | 22 +++++++++++-----------
+ po/cy.po | 22 +++++++++++-----------
+ po/da.po | 22 +++++++++++-----------
+ po/de.po | 22 +++++++++++-----------
+ po/el.po | 22 +++++++++++-----------
+ po/en_CA.po | 22 +++++++++++-----------
+ po/en_GB.po | 22 +++++++++++-----------
+ po/es.po | 22 +++++++++++-----------
+ po/et.po | 22 +++++++++++-----------
+ po/eu.po | 22 +++++++++++-----------
+ po/fa.po | 22 +++++++++++-----------
+ po/fi.po | 22 +++++++++++-----------
+ po/fr.po | 22 +++++++++++-----------
+ po/ga.po | 22 +++++++++++-----------
+ po/gl.po | 22 +++++++++++-----------
+ po/gu.po | 22 +++++++++++-----------
+ po/he.po | 22 +++++++++++-----------
+ po/hi.po | 22 +++++++++++-----------
+ po/hr.po | 22 +++++++++++-----------
+ po/hu.po | 45 ++++++++++++++++++++++-----------------------
+ po/id.po | 22 +++++++++++-----------
+ po/is.po | 22 +++++++++++-----------
+ po/it.po | 22 +++++++++++-----------
+ po/ja.po | 22 +++++++++++-----------
+ po/ka.po | 22 +++++++++++-----------
+ po/ko.po | 22 +++++++++++-----------
+ po/ky.po | 42 ++++++++++++++++++++----------------------
+ po/li.po | 22 +++++++++++-----------
+ po/lt.po | 22 +++++++++++-----------
+ po/lv.po | 22 +++++++++++-----------
+ po/mi.po | 22 +++++++++++-----------
+ po/mk.po | 22 +++++++++++-----------
+ po/ml.po | 22 +++++++++++-----------
+ po/mn.po | 22 +++++++++++-----------
+ po/ms.po | 22 +++++++++++-----------
+ po/nb.po | 22 +++++++++++-----------
+ po/ne.po | 22 +++++++++++-----------
+ po/nl.po | 22 +++++++++++-----------
+ po/nn.po | 22 +++++++++++-----------
+ po/no.po | 22 +++++++++++-----------
+ po/or.po | 22 +++++++++++-----------
+ po/pa.po | 22 +++++++++++-----------
+ po/pl.po | 22 +++++++++++-----------
+ po/pt.po | 22 +++++++++++-----------
+ po/pt_BR.po | 22 +++++++++++-----------
+ po/ro.po | 22 +++++++++++-----------
+ po/ru.po | 22 +++++++++++-----------
+ po/rw.po | 22 +++++++++++-----------
+ po/sk.po | 22 +++++++++++-----------
+ po/sl.po | 22 +++++++++++-----------
+ po/sq.po | 22 +++++++++++-----------
+ po/sr.po | 22 +++++++++++-----------
+ po/sr Latn po | 22 +++++++++++-----------
+ po/sv.po | 22 +++++++++++-----------
+ po/ta.po | 22 +++++++++++-----------
+ po/th.po | 22 +++++++++++-----------
+ po/tr.po | 22 +++++++++++-----------
+ po/ug.po | 22 +++++++++++-----------
+ po/uk.po | 22 +++++++++++-----------
+ po/vi.po | 22 +++++++++++-----------
+ po/wa.po | 22 +++++++++++-----------
+ po/xh.po | 22 +++++++++++-----------
+ po/zh_CN.po | 22 +++++++++++-----------
+ po/zh_TW.po | 22 +++++++++++-----------
+ 73 files changed, 841 insertions(+), 846 deletions(-)
+
+commit 34db0ffe7696fd255fa5a4fa03ed090fdf7a3be5
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Mon Dec 12 18:49:50 2005 +0000
+
+ Update for 0.11.16
+
+ NEWS | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 008dbeb4e5520c12a2f99956ebbfbc6bbf44c3b5
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Dec 12 18:46:15 2005 +0000
+
+ Cleanups for the pkg-config file. Patch from Steve Langasek. Closes bug
+
+ 2005-12-12 Kjartan Maraas <kmaraas gnome org>
+
+ * vte.pc.in: Cleanups for the pkg-config file.
+ Patch from Steve Langasek. Closes bug #322240.
+
+ ChangeLog | 5 +++++
+ vte.pc.in | 5 +++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit a57992dd24aa27bafd9df03c70d175cb74b43c0c
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Dec 12 18:42:21 2005 +0000
+
+ python-vte seems to have a small bug in the override file that prevents
+
+ 2005-12-12 Kjartan Maraas <kmaraas gnome org>
+
+ * python/vte.override: python-vte seems to have a small bug in
+ the override file that prevents the forkpty() method to be generated.
+ The attached patch fixes this problem. Patch from Michael Vogt.
+ Closes bug #169201.
+
+ ChangeLog | 7 +++++++
+ python/vte.override | 2 ++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit a44035e91dffdbeb3613d56234c74bb6d8483368
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Wed Nov 30 00:32:25 2005 +0000
+
+ Remove some unused code. (vte_terminal_process_incoming): Don't emit
+
+ 2005-11-30 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_preedit_length): Remove some
+ unused code.
+ (vte_terminal_process_incoming): Don't emit signals for every
+ character that's output. Patch from Padraig O'Briain. Huge
+ performance gain when a11y is activated.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 6 ------
+ 2 files changed, 8 insertions(+), 6 deletions(-)
+
+commit b27d00bb421f9c24c6294d156d671656ffe47078
+Author: Timur Jamakeev <timurj cvs gnome org>
+Date: Wed Nov 16 12:56:59 2005 +0000
+
+ Added 'ky' to ALL_LINGUAS
+
+ 2005-11-16 Timur Jamakeev <timurj cvs gnome org>
+
+ * configure.in: Added 'ky' to ALL_LINGUAS
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit ba4ea5666d9efbd48025e378e3c50b8fcc632bc9
+Author: Timur Jamakeev <timurj src gnome org>
+Date: Wed Nov 16 12:51:38 2005 +0000
+
+ *** empty log message ***
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 4f284b826aa84e3856e2c078f7922123163dd2de
+Author: Timur Jamakeev <timurj cvs gnome org>
+Date: Wed Nov 16 12:49:12 2005 +0000
+
+ Kirghiz translation added.
+
+ 2005-11-16 Timur Jamakeev <timurj cvs gnome org>
+
+ * ky.po: Kirghiz translation added.
+
+ po/ky.po | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 117 insertions(+), 0 deletions(-)
+
+commit c3c4b97bc788db03578a98f3613de8c6a4ecc71a
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Tue Nov 8 20:18:51 2005 +0000
+
+ Update.
+
+ 2005-11-08 Kjartan Maraas <kmaraas gnome org>
+
+ * NEWS: Update.
+ * Makefile.am:
+ * autogen.sh:
+ * configure.in:
+ * python/Makefile.am:
+ I'm attaching a patch that modernizes the python binding
+ build stuff. Notably, it excludes python/vte.c from the dist.
+ Right now as it stands, the file is disted, which means people's
+ builds will not work unless they build against pygtk 2.8,
+ which makes this bug somewhat important. Patch from Manish Sing
+ Closes bug #320931.
+
+ ChangeLog | 14 ++++++++++++++
+ Makefile.am | 2 +-
+ NEWS | 5 +++++
+ autogen.sh | 1 -
+ configure.in | 12 ++++++++++--
+ python/Makefile.am | 19 +++++++++++++++----
+ 6 files changed, 45 insertions(+), 8 deletions(-)
+
+commit ec5ac1c6d58b791eb8c8069fb329baf37c1ed8a0
+Author: Bill Haneman <billh src gnome org>
+Date: Tue Nov 1 17:20:41 2005 +0000
+
+ Fix for crasher bug #153405. Patch from Padraig O'Briain.
+
+ ChangeLog | 8 ++++++++
+ src/vteaccess.c | 9 +++++++++
+ 2 files changed, 17 insertions(+), 0 deletions(-)
+
+commit 69940ef016e1825e26ab48cbbaf635c94adc31c0
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Sun Oct 30 12:47:48 2005 +0000
+
+ Remove this ancient file
+
+ MESSAGE-OF-DOOM | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit b55d0887747595e4317c75cc89899d695092f858
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Sun Oct 2 09:59:42 2005 +0000
+
+ Fix gdk warnings. Patch from Michele Baldessari. Closes bug #309025.
+
+ 2005-10-02 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vtebg.c: (_vte_property_get_pixmaps):
+ * src/vterdb.c: (_vte_property_get_string):
+ Fix gdk warnings. Patch from Michele Baldessari.
+ Closes bug #309025.
+
+ ChangeLog | 7 +++++++
+ src/vtebg.c | 2 +-
+ src/vterdb.c | 2 +-
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 1a5f3494d79672ffaae08ee01fbe30f2f525ec4f
+Author: Runa Bhattacharjee <runab src gnome org>
+Date: Sat Oct 1 09:56:59 2005 +0000
+
+ Added entry for Bengali (bn) Translation updation:10/01
+
+ po/ChangeLog | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit 2c06d463e073b932cff34aca0abe31c8f78a88fd
+Author: Runa Bhattacharjee <runab src gnome org>
+Date: Sat Oct 1 09:56:43 2005 +0000
+
+ Updated Bengali (bn) Translaion:10/01
+
+ po/bn.po | 109 +++++++++++++++++++++++--------------------------------------
+ 1 files changed, 41 insertions(+), 68 deletions(-)
+
+commit 7768de1457224fcb168f0cf9f1622a633dd0e5cb
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Fri Sep 16 20:14:29 2005 +0000
+
+ Optimize memory usage by releasing fonts that aren't needed early. Patch
+
+ 2005-09-16 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vtexft.c: (_vte_xft_font_for_char): Optimize memory
+ usage by releasing fonts that aren't needed early. Patch
+ from Mike Hearn. Closes bug #309322.
+
+ ChangeLog | 6 ++++++
+ src/vtexft.c | 22 ++++++++++++++++------
+ 2 files changed, 22 insertions(+), 6 deletions(-)
+
+commit 659f4c735aaea14d2ee44614677759c884800cd1
+Author: Josep Puigdemont i Casamajó <joseppc src gnome org>
+Date: Sat Sep 3 23:19:43 2005 +0000
+
+ Fixed some typos and strings.
+
+ po/ca.po | 45 +++++++++++++++++++++++----------------------
+ 1 files changed, 23 insertions(+), 22 deletions(-)
+
+commit f32e845ad41b4accde05a0922cdf132757bb0259
+Author: Gabor Kelemen <kelemeng gnome hu>
+Date: Tue Aug 23 21:24:19 2005 +0000
+
+ Hungarian translation updated.
+
+ 2005-08-23 Gabor Kelemen <kelemeng gnome hu>
+
+ * hu.po: Hungarian translation updated.
+
+ po/ChangeLog | 4 +++
+ po/hu.po | 62 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 37 insertions(+), 29 deletions(-)
+
+commit ba7f65167f760776fa13d2da93e1ac02ee87de4d
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Tue Aug 23 09:49:57 2005 +0000
+
+ Post release bump
+
+ vte.spec | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit c9e038e096dab5750bcce8578169cc572e9f9140
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Sat Aug 13 11:56:37 2005 +0000
+
+ Updates
+
+ NEWS | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit d1252cd3f30c75d659345e0c6d862b24cccbbc57
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Sat Aug 13 11:55:18 2005 +0000
+
+ Make VTE work on NetBSD, OpenBSD (sparc and macppc). Reported by Adrian
+
+ 2005-08-13 Kjartan Maraas <kmaraas gnome org>
+
+ * gnome-pty-helper/gnome-pty-helper.c: (init_msg_pass):
+ Make VTE work on NetBSD, OpenBSD (sparc and macppc).
+ Reported by Adrian Bunk, patches by Dan Winship and
+ Rich Edelman. Closes bug #126554.
+
+ ChangeLog | 7 +++++++
+ gnome-pty-helper/gnome-pty-helper.c | 5 +++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit 35517238968cffeb113930724ff041cf5c215cd9
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Fri Aug 12 19:51:50 2005 +0000
+
+ Don't crash if there's no termcap file. Michele Baldessari Closes bug
+
+ 2005-08-12 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vtetc.c: (_vte_termcap_destroy): Don't crash
+ if there's no termcap file. Michele Baldessari
+ Closes bug #312260.
+
+ ChangeLog | 6 ++++++
+ src/vtetc.c | 3 +++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 680352b0c408751ed1a1f65023abc67bc02cfd85
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Fri Aug 12 14:23:45 2005 +0000
+
+ Update
+
+ NEWS | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 5958b32ac31daa2c44a9d714dd31e09f5d9931b1
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Fri Aug 12 14:21:46 2005 +0000
+
+ Correct test for recvmsg(). Patch from Robert Basch. Closes bug #304815
+
+ 2005-08-12 Kjartan Maraas <kmaraas gnome org>
+
+ * configure.in: Correct test for recvmsg(). Patch from
+ Robert Basch. Closes bug #304815 and possibly bug #122055.
+
+ ChangeLog | 5 +++++
+ configure.in | 6 +++++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 1764fa0e5285ea68832390a496b1a8d08a3a9cbb
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Wed Aug 10 13:29:12 2005 +0000
+
+ Patch from: Padraig O'Briain <padraig obriain sun com> Closes bug #113590.
+
+ 2004-08-10 Kjartan Maraas <kmaraas gnome org>
+
+ Patch from: Padraig O'Briain <padraig obriain sun com>
+ Closes bug #113590.
+
+ * src/vte.c, src/vteint.h:
+ Add new functions to support accessible text selection:
+ _vte_terminal_get_selection, _vte_terminal_get_start_selection,
+ _vte_terminal_get_end_selection, _vte_terminal_select_text,
+ _vte_terminal_remove_selection
+ * src/vteaccess.c:
+ (xy_from_offset): Fix for offset being entire text.
+ (vte_terminal_accessibility_selection_changed): VteTerminal's
+ selection-changed signal handler which emits text-selection-changed
+ signal.
+ (vte_terminal_accessible_initialize): Connect to VteTerminal's
+ selection-changed signal.
+ (vte_terminal_accessible_get_n_selections) Add implementation.
+ (vte_terminal_accessible_get_selection) Add implementation.
+ (vte_terminal_accessible_add_selection) Add implementation.
+ (vte_terminal_accessible_remove_selection) Add implementation.
+ (vte_terminal_accessible_set_selection) Add implementation.
+
+ ChangeLog | 23 +++++++++
+ src/vte.c | 72 +++++++++++++++++++++++++++++
+ src/vteaccess.c | 134 +++++++++++++++++++++++++++++++++++++++++++++++++-----
+ src/vteint.h | 5 ++
+ 4 files changed, 221 insertions(+), 13 deletions(-)
+
+commit 04cf2d759988367fd2264cd46ced44ac2a5ce73a
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Thu Aug 4 23:36:09 2005 +0000
+
+ Clean up utmp/wtmp under vncserver if things fall apart under the
+
+ 2005-08-05 Kjartan Maraas <kmaraas gnome org>
+
+ * gnome-pty-helper/gnome-pty-helper.c: (exit_handler), (main):
+ Clean up utmp/wtmp under vncserver if things fall apart under
+ the terminal. (Dave Lehman). Closes bug #312373
+
+ ChangeLog | 6 ++++++
+ gnome-pty-helper/gnome-pty-helper.c | 11 +++++++++++
+ 2 files changed, 17 insertions(+), 0 deletions(-)
+
+commit 9996a03619e7b7693de1e82a99fc7a87ec4c41a5
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Wed Aug 3 07:57:47 2005 +0000
+
+ Post release bump
+
+ vte.spec | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 95ba54bc3db83c2eab09062b782956a8be410cd2
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Wed Aug 3 07:57:17 2005 +0000
+
+ Flush these after release
+
+ po/am.po | 21 +++++++++++----------
+ po/ang.po | 21 +++++++++++----------
+ po/ar.po | 21 +++++++++++----------
+ po/az.po | 21 +++++++++++----------
+ po/be.po | 21 +++++++++++----------
+ po/bg.po | 41 ++++++++++++++++++++---------------------
+ po/bn.po | 21 +++++++++++----------
+ po/bs.po | 21 +++++++++++----------
+ po/ca.po | 21 +++++++++++----------
+ po/cs.po | 21 +++++++++++----------
+ po/cy.po | 21 +++++++++++----------
+ po/da.po | 21 +++++++++++----------
+ po/de.po | 21 +++++++++++----------
+ po/el.po | 21 +++++++++++----------
+ po/en_CA.po | 21 +++++++++++----------
+ po/en_GB.po | 21 +++++++++++----------
+ po/es.po | 21 +++++++++++----------
+ po/et.po | 21 +++++++++++----------
+ po/eu.po | 21 +++++++++++----------
+ po/fa.po | 21 +++++++++++----------
+ po/fi.po | 21 +++++++++++----------
+ po/fr.po | 21 +++++++++++----------
+ po/ga.po | 21 +++++++++++----------
+ po/gl.po | 42 +++++++++++++++++++++---------------------
+ po/gu.po | 21 +++++++++++----------
+ po/he.po | 21 +++++++++++----------
+ po/hi.po | 21 +++++++++++----------
+ po/hr.po | 21 +++++++++++----------
+ po/hu.po | 21 +++++++++++----------
+ po/id.po | 23 ++++++++++++-----------
+ po/is.po | 21 +++++++++++----------
+ po/it.po | 21 +++++++++++----------
+ po/ja.po | 21 +++++++++++----------
+ po/ka.po | 21 +++++++++++----------
+ po/ko.po | 21 +++++++++++----------
+ po/li.po | 21 +++++++++++----------
+ po/lt.po | 21 +++++++++++----------
+ po/lv.po | 21 +++++++++++----------
+ po/mi.po | 21 +++++++++++----------
+ po/mk.po | 21 +++++++++++----------
+ po/ml.po | 21 +++++++++++----------
+ po/mn.po | 21 +++++++++++----------
+ po/ms.po | 21 +++++++++++----------
+ po/nb.po | 21 +++++++++++----------
+ po/ne.po | 21 +++++++++++----------
+ po/nl.po | 21 +++++++++++----------
+ po/nn.po | 21 +++++++++++----------
+ po/no.po | 21 +++++++++++----------
+ po/or.po | 21 +++++++++++----------
+ po/pa.po | 21 +++++++++++----------
+ po/pl.po | 21 +++++++++++----------
+ po/pt.po | 21 +++++++++++----------
+ po/pt_BR.po | 21 +++++++++++----------
+ po/ro.po | 21 +++++++++++----------
+ po/ru.po | 21 +++++++++++----------
+ po/rw.po | 21 +++++++++++----------
+ po/sk.po | 21 +++++++++++----------
+ po/sl.po | 21 +++++++++++----------
+ po/sq.po | 21 +++++++++++----------
+ po/sr.po | 21 +++++++++++----------
+ po/sr Latn po | 21 +++++++++++----------
+ po/sv.po | 21 +++++++++++----------
+ po/ta.po | 21 +++++++++++----------
+ po/th.po | 45 ++++++++++++++++++++++-----------------------
+ po/tr.po | 21 +++++++++++----------
+ po/ug.po | 52 +++++++++++++++++++++++++++-------------------------
+ po/uk.po | 21 +++++++++++----------
+ po/vi.po | 21 +++++++++++----------
+ po/wa.po | 21 +++++++++++----------
+ po/xh.po | 42 +++++++++++++++++++++---------------------
+ po/zh_CN.po | 21 +++++++++++----------
+ po/zh_TW.po | 42 +++++++++++++++++++++---------------------
+ 72 files changed, 859 insertions(+), 793 deletions(-)
+
+commit 3550cad3d43b505e695cf4a9b05692b4dd12488b
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Wed Aug 3 07:52:01 2005 +0000
+
+ Update
+
+ NEWS | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 6b284ae20498040a78359c3acf477190ef3800f4
+Author: Alexander Shopov <ash contact bg>
+Date: Thu Jul 28 07:45:55 2005 +0000
+
+ Updated Bulgarian translation by Yavor Doganov <yavor doganov org>
+
+ 2005-07-28 Alexander Shopov <ash contact bg>
+
+ * bg.po: Updated Bulgarian translation by
+ Yavor Doganov <yavor doganov org>
+
+ po/ChangeLog | 9 ++++-
+ po/bg.po | 109 +++++++++++++++++++++------------------------------------
+ 2 files changed, 47 insertions(+), 71 deletions(-)
+
+commit b6b599cf9451cac41a26ef11e97b997f073e6c8f
+Author: Olav Vitters <ovitters src gnome org>
+Date: Tue Jul 26 15:16:25 2005 +0000
+
+ Correct patch provider; change Loïc Minier to Ethan Glasser-Camp.
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 5e92d3203b712ab672ced617a2d8edf492184904
+Author: Michele Baldessari <michele pupazzo org>
+Date: Tue Jul 26 14:43:04 2005 +0000
+
+ pyg_boxed_get should be on item not py_palette. Reported with fix by Loïc
+
+ 2005-07-26 Michele Baldessari <michele pupazzo org>
+
+ * python/vte.override (_wrap_vte_terminal_set_colors):
+ pyg_boxed_get should be on item not py_palette.
+ Reported with fix by Loïc Minier <lool+gnome via ecp fr>
+ Closes bug #311570
+
+ ChangeLog | 7 +++++++
+ python/vte.override | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 3be10ecbae7a54bb97788ce3e53bd14aa25b374b
+Author: Michele Baldessari <michele pupazzo org>
+Date: Mon Jul 25 08:49:42 2005 +0000
+
+ Initialize PangoContext * data->ctx with NULL. Closes bug #126262
+
+ 2005-07-25 Michele Baldessari <michele pupazzo org>
+
+ * src/vtepango.c (_vte_pango_create): Initialize
+ PangoContext * data->ctx with NULL. Closes bug #126262
+
+ ChangeLog | 5 +++++
+ NEWS | 3 +++
+ src/vtepango.c | 1 +
+ 3 files changed, 9 insertions(+), 0 deletions(-)
+
+commit e33085bbd21e2da027c68def3a47710bc39d37fd
+Author: Danilo Šegan <danilo src gnome org>
+Date: Thu Jul 21 21:31:18 2005 +0000
+
+ Fix bug #149925: add comment for translators.
+
+
+ Fix bug #149925: add comment for translators.
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 1 +
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+commit 096becaac3f36491c36563a5f7167a567954f9cc
+Author: Matthias Clasen <mclasen redhat com>
+Date: Thu Jul 7 19:00:21 2005 +0000
+
+ Unset the user data on the gdk window.
+
+ 2005-07-07 Matthias Clasen <mclasen redhat com>
+
+ * src/vte.c (vte_terminal_unrealize): Unset the user data
+ on the gdk window.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 2 ++
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit e01f40abe5f8e499640d29a8e781d484522f80be
+Author: Kwok-Koon Cheung <baddog src gnome org>
+Date: Thu Jun 23 01:22:17 2005 +0000
+
+ fix language team reference
+
+ po/ChangeLog | 4 ++++
+ po/zh_TW.po | 47 ++++++++++++++++++++++++-----------------------
+ 2 files changed, 28 insertions(+), 23 deletions(-)
+
+commit 8446f71979f37b18d4db920f74bf0334cea94792
+Author: Theppitak Karoonboonyanan <thep linux thai net>
+Date: Wed Jun 15 04:02:00 2005 +0000
+
+ Added 'th' (Thai) to ALL_LINGUAS. Added Thai translation.
+
+ 2005-06-15 Theppitak Karoonboonyanan <thep linux thai net>
+
+ * configure.in: Added 'th' (Thai) to ALL_LINGUAS.
+ * po/th.po: Added Thai translation.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/th.po | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 126 insertions(+), 1 deletions(-)
+
+commit 1168ca49dd0d7c1e2f8d1c77434f9c798d6f9286
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Sat Jun 11 21:05:07 2005 +0000
+
+ Update some.
+
+ 2005-06-11 Kjartan Maraas <kmaraas gnome org>
+
+ * NEWS: Update some.
+ * doc/reference/tmpl/reaper.sgml:
+ * doc/reference/tmpl/vte-unused.sgml:
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/tmpl/vteaccess.sgml: Docs updates.
+ * src/vte.c: (vte_terminal_init), (vte_terminal_finalize),
+ (vte_terminal_get_accessible), (vte_terminal_class_init):
+ Apply patch from Padraig O'Briain <padraig obriain sun com>
+ to fix a crash. Closes bug #119913.
+
+ ChangeLog | 12 +++++++
+ NEWS | 3 ++
+ doc/reference/tmpl/reaper.sgml | 3 ++
+ doc/reference/tmpl/vte-unused.sgml | 8 ++--
+ doc/reference/tmpl/vte.sgml | 3 ++
+ doc/reference/tmpl/vteaccess.sgml | 3 ++
+ src/vte.c | 60 ++++++++++++++++++-----------------
+ 7 files changed, 59 insertions(+), 33 deletions(-)
+
+commit 141d956b5a678fbb0a43938e8909c7c66646a840
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Thu Jun 9 21:36:31 2005 +0000
+
+ Fix a crash when reparenting. Closes bug #169326. Patch from Michele
+
+ 2005-06-09 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_style_changed):
+ Fix a crash when reparenting. Closes bug #169326.
+ Patch from Michele Baldessari.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 10 ++++++++++
+ 2 files changed, 16 insertions(+), 0 deletions(-)
+
+commit 29a57471b73aa43e163144ebc3592094bc27bc31
+Author: Ignacio Casal Quinteiro <icq src gnome org>
+Date: Sun Jun 5 18:28:50 2005 +0000
+
+ *** empty log message ***
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/gl.po | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 125 insertions(+), 1 deletions(-)
+
+commit 2985a128bd3708439faa1e240460db31661d7839
+Author: Kostas Papadimas <pkst src gnome org>
+Date: Wed May 11 11:38:28 2005 +0000
+
+ Updated Greek Translation.
+
+ po/ChangeLog | 4 ++++
+ po/el.po | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 46a597ff979045ecb6e7e9a2a39c8d6f5fff6513
+Author: Manish Singh <yosh src gnome org>
+Date: Sun May 8 23:55:58 2005 +0000
+
+ Fix spelling of my name
+
+ NEWS | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit a1e846b27f37255bbdce5efd2e73166e4073032a
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Fri Apr 29 20:17:41 2005 +0000
+
+ Final bits of the memory reduction patch from Aivars Kalvans. bug #160993
+
+ 2005-04-29 Kjartan Maraas <kmaraas gnome org>
+
+ * src/table.c: (_vte_table_literal_new), (_vte_table_free),
+ (_vte_table_addi), (_vte_table_matchi), (_vte_table_match),
+ (_vte_table_printi): Final bits of the memory reduction patch
+ from Aivars Kalvans. bug #160993 comment #9
+ * src/vte.c: (vte_terminal_scroll_region): Patch from Egmont
+ Koblinger to fix some scrolling issues. bug #164153
+ * vte.spec: Bump version.
+
+ ChangeLog | 10 ++++++
+ src/table.c | 102 +++++++++++++++++++++++++++++++++++++++++------------------
+ src/vte.c | 45 +++++---------------------
+ vte.spec | 2 +-
+ 4 files changed, 91 insertions(+), 68 deletions(-)
+
+commit bda4553263bbdfa77da4a65d9cb77fa8801d8000
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Fri Apr 29 20:07:32 2005 +0000
+
+ Forgot this
+
+ NEWS | 9 +++++++++
+ 1 files changed, 9 insertions(+), 0 deletions(-)
+
+commit d254d664d3408ad688f3a8c62224bd188bdd5fdb
+Author: Pablo Saratxaga <pablo src gnome org>
+Date: Tue Apr 19 14:49:26 2005 +0000
+
+ updated Walloon file
+
+ po/ChangeLog | 24 ++++++++++++++----------
+ po/wa.po | 43 ++++++++++++++++++++++---------------------
+ 2 files changed, 36 insertions(+), 31 deletions(-)
+
+commit a6ae830ccca18e36717b2bc9e5c969befdd16bf4
+Author: Abduxukur Abdurixit <aabdurix src gnome org>
+Date: Fri Apr 8 08:22:48 2005 +0000
+
+ *** empty log message ***
+
+ po/ChangeLog | 4 ++++
+ po/ug.po | 32 ++++++++++++++++----------------
+ 2 files changed, 20 insertions(+), 16 deletions(-)
+
+commit 9b67c3bdfeeffbba5470751091e305da60ea97ee
+Author: Abduxukur Abdurixit <aabdurix src gnome org>
+Date: Thu Apr 7 13:17:35 2005 +0000
+
+ *** empty log message ***
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/ug.po | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 125 insertions(+), 1 deletions(-)
+
+commit 1e3d355fbb1940791f873fdb30202f2ac2d8674b
+Author: Adi Attar <aattar cvs gnome org>
+Date: Fri Apr 1 09:51:47 2005 +0000
+
+ Added Xhosa translation. Added "xh" to ALL_LINGUAS.
+
+ 2005-04-01 Adi Attar <aattar cvs gnome org>
+
+ * xh.po: Added Xhosa translation.
+ * configure.in: Added "xh" to ALL_LINGUAS.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/xh.po | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 124 insertions(+), 1 deletions(-)
+
+commit 44fa68f109629ebde4a6711edc174bf4f1a98999
+Author: Steven Michael Murphy <smurphy src gnome org>
+Date: Fri Apr 1 02:00:44 2005 +0000
+
+ Added new Language, Kinyarwanda (rw), to this package
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/rw.po | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 133 insertions(+), 1 deletions(-)
+
+commit 139d9029a5182ff25a3989d27af5705fe18ab8fd
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Tue Mar 29 17:38:13 2005 +0000
+
+ Use head -n 1 instead of head -1 to avoid warning about the latter being
+
+ 2005-03-29 Kjartan Maraas <kmaraas gnome org>
+
+ * autogen.sh: Use head -n 1 instead of head -1 to avoid
+ warning about the latter being deprecated in newer versions.
+ Reported by Ali Akcaagac. Closes bug #156022.
+ * vte.spec: Bump version
+
+ ChangeLog | 7 +++++++
+ autogen.sh | 2 +-
+ vte.spec | 2 +-
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 2d04086b48b7a9f7d53c543803cb23fc622a9f57
+Author: Manish Singh <yosh gimp org>
+Date: Thu Mar 17 06:43:44 2005 +0000
+
+ Remove stray underscores so python module works again. Fixes bug #150760.
+
+ 2005-03-16 Manish Singh <yosh gimp org>
+
+ * python/vtemodule.c: Remove stray underscores so python module
+ works again. Fixes bug #150760.
+
+ ChangeLog | 5 +++++
+ python/vtemodule.c | 4 ++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 2d54e9baa0c26c15b6333d8898a1174dd91faf12
+Author: Adam Weinberger <adamw src gnome org>
+Date: Thu Mar 17 05:28:12 2005 +0000
+
+ Updated Canadian English translation.
+
+
+ * en_CA.po: Updated Canadian English translation.
+
+ po/ChangeLog | 4 ++++
+ po/en_CA.po | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit afe74e992b6be8f08d33cedeb93494d0fe852354
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Mar 14 14:43:47 2005 +0000
+
+ Add patch for excessive memory consumption when opening new tabs. This
+
+ 2005-03-14 Kjartan Maraas <kmaraas gnome org>
+
+ * src/Makefile.am:
+ * src/interpret.c: (main):
+ * src/matcher.c: (_vte_matcher_add), (_vte_matcher_init),
+ (_vte_matcher_create), (_vte_matcher_destroy), (_vte_matcher_new),
+ (_vte_matcher_free):
+ * src/matcher.h:
+ * src/vte.c: (vte_terminal_set_emulation), (vte_terminal_init):
+ * src/vtetc.c: (_vte_termcap_create), (_vte_termcap_destroy),
+ (_vte_termcap_new), (_vte_termcap_free):
+ * src/vtetc.h: Add patch for excessive memory consumption when
+ opening new tabs. This patch makes struct _vte_matcher and
+ struct _vte_termcap shared between terminals and should reduce
+ memory consumption with multiple tabs a lot. Patch from Aivars
+ Kalvans <kalvans at inbox lv>. From bug #160993.
+
+ ChangeLog | 17 +++++
+ src/Makefile.am | 22 +++++-
+ src/interpret.c | 25 +-------
+ src/matcher.c | 187 +++++++++++++++++++++++++++++++++++++++++++++++-------
+ src/matcher.h | 11 +--
+ src/vte.c | 72 +---------------------
+ src/vtetc.c | 69 +++++++++++++++++----
+ src/vtetc.h | 2 +-
+ 8 files changed, 262 insertions(+), 143 deletions(-)
+
+commit 1613c7756b040bf1ce49f04d71ecc7c1eb8967b3
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Mar 14 14:33:35 2005 +0000
+
+ Back out one of the fedora patches since it apparently causes
+
+ 2005-03-14 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_scroll_region),
+ (vte_sequence_handler_al), (vte_sequence_handler_dl),
+ (vte_sequence_handler_sr), (vte_sequence_handler_insert_lines),
+ (vte_sequence_handler_delete_lines), (vte_terminal_handle_scroll):
+ Back out one of the fedora patches since it apparently causes
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 34 +++++++++++++---------------------
+ 2 files changed, 23 insertions(+), 21 deletions(-)
+
+commit afa929ff6f72bbc0a27ea7daa262a61637ac4bc4
+Author: Ahmad Riza H Nst <ari 160c afraid org>
+Date: Tue Mar 8 12:15:45 2005 +0000
+
+ Updated Indonesian Translation
+
+ 2005-03-08 Ahmad Riza H Nst <ari 160c afraid org>
+
+ * id.po: Updated Indonesian Translation
+
+ po/ChangeLog | 4 ++++
+ po/id.po | 34 +++++++++++++++++-----------------
+ 2 files changed, 21 insertions(+), 17 deletions(-)
+
+commit 804be42932991f70998348e07bdbc47d93796287
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Thu Mar 3 06:40:44 2005 +0000
+
+ Fix the crash in minicom when resizing the window. Closes bug #163814.
+
+ 2005-03-02 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_process_incoming): Fix the
+ crash in minicom when resizing the window. Closes
+ bug #163814. Also adjust the coalesce and display timeouts.
+ This makes g-t and xterm behave just about the same visually
+ but g-t is still a bit faster when using the same font and
+ utf8.
+
+ doc/reference/tmpl/reaper.sgml | 3 --
+ doc/reference/tmpl/vte-unused.sgml | 4 ++
+ doc/reference/tmpl/vte.sgml | 3 --
+ doc/reference/tmpl/vteaccess.sgml | 3 --
+ po/am.po | 12 ++++----
+ po/ang.po | 12 ++++----
+ po/ar.po | 12 ++++----
+ po/az.po | 12 ++++----
+ po/be.po | 12 ++++----
+ po/bg.po | 12 ++++----
+ po/bn.po | 12 ++++----
+ po/bs.po | 12 ++++----
+ po/ca.po | 12 ++++----
+ po/cs.po | 12 ++++----
+ po/cy.po | 12 ++++----
+ po/da.po | 12 ++++----
+ po/de.po | 12 ++++----
+ po/el.po | 12 ++++----
+ po/en_CA.po | 12 ++++----
+ po/en_GB.po | 12 ++++----
+ po/es.po | 12 ++++----
+ po/et.po | 12 ++++----
+ po/eu.po | 12 ++++----
+ po/fa.po | 12 ++++----
+ po/fi.po | 12 ++++----
+ po/fr.po | 12 ++++----
+ po/ga.po | 12 ++++----
+ po/gu.po | 12 ++++----
+ po/he.po | 12 ++++----
+ po/hi.po | 12 ++++----
+ po/hr.po | 12 ++++----
+ po/hu.po | 12 ++++----
+ po/id.po | 12 ++++----
+ po/is.po | 12 ++++----
+ po/it.po | 12 ++++----
+ po/ja.po | 12 ++++----
+ po/ka.po | 12 ++++----
+ po/ko.po | 12 ++++----
+ po/li.po | 12 ++++----
+ po/lt.po | 12 ++++----
+ po/lv.po | 12 ++++----
+ po/mi.po | 12 ++++----
+ po/mk.po | 12 ++++----
+ po/ml.po | 12 ++++----
+ po/mn.po | 12 ++++----
+ po/ms.po | 12 ++++----
+ po/nb.po | 12 ++++----
+ po/ne.po | 12 ++++----
+ po/nl.po | 12 ++++----
+ po/nn.po | 12 ++++----
+ po/no.po | 12 ++++----
+ po/or.po | 12 ++++----
+ po/pa.po | 12 ++++----
+ po/pl.po | 12 ++++----
+ po/pt.po | 12 ++++----
+ po/pt_BR.po | 12 ++++----
+ po/ro.po | 12 ++++----
+ po/ru.po | 12 ++++----
+ po/sk.po | 12 ++++----
+ po/sl.po | 12 ++++----
+ po/sq.po | 12 ++++----
+ po/sr.po | 12 ++++----
+ po/sr Latn po | 12 ++++----
+ po/sv.po | 12 ++++----
+ po/ta.po | 12 ++++----
+ po/tr.po | 12 ++++----
+ po/uk.po | 12 ++++----
+ po/vi.po | 12 ++++----
+ po/wa.po | 12 ++++----
+ po/zh_CN.po | 12 ++++----
+ po/zh_TW.po | 12 ++++----
+ src/vte.c | 59 ++++++++++++++----------------------
+ 72 files changed, 429 insertions(+), 447 deletions(-)
+
+commit 6b25dce295e409828f34821f53fa4f3052e5da00
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Wed Mar 2 23:12:27 2005 +0000
+
+ Update
+
+ NEWS | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 6e02617db3907c47cf5128a011b2ae31fe10b9cb
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Wed Mar 2 22:52:18 2005 +0000
+
+ Revert previous pending release team approval
+
+ src/vte.c | 15 +++++++++++++--
+ 1 files changed, 13 insertions(+), 2 deletions(-)
+
+commit 69dd207f235306920a0fa98ba712d9b9775d55e2
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Wed Mar 2 22:48:57 2005 +0000
+
+ Fix the crash in minicom when resizing the window. Closes bug #163814.
+
+ 2005-03-02 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_process_incoming): Fix the
+ crash in minicom when resizing the window. Closes
+ bug #163814. Also adjust the coalesce and display timeouts.
+ This makes g-t and xterm behave just about the same visually
+ but g-t is still a bit faster when using the same font and
+ utf8.
+
+ ChangeLog | 9 +++++++++
+ NEWS | 18 ++++++++++++++++++
+ po/am.po | 30 +++++++++++++++---------------
+ po/ang.po | 28 ++++++++++++++--------------
+ po/ar.po | 30 +++++++++++++++---------------
+ po/az.po | 30 +++++++++++++++---------------
+ po/be.po | 30 +++++++++++++++---------------
+ po/bg.po | 40 ++++++++++++++++++++--------------------
+ po/bn.po | 30 +++++++++++++++---------------
+ po/bs.po | 29 ++++++++++++++---------------
+ po/ca.po | 30 +++++++++++++++---------------
+ po/cs.po | 30 +++++++++++++++---------------
+ po/cy.po | 30 +++++++++++++++---------------
+ po/da.po | 30 +++++++++++++++---------------
+ po/de.po | 30 +++++++++++++++---------------
+ po/el.po | 30 +++++++++++++++---------------
+ po/en_CA.po | 28 ++++++++++++++--------------
+ po/en_GB.po | 30 +++++++++++++++---------------
+ po/es.po | 34 +++++++++++++++++-----------------
+ po/et.po | 29 ++++++++++++++---------------
+ po/eu.po | 29 ++++++++++++++---------------
+ po/fa.po | 30 +++++++++++++++---------------
+ po/fi.po | 30 +++++++++++++++---------------
+ po/fr.po | 30 +++++++++++++++---------------
+ po/ga.po | 30 +++++++++++++++---------------
+ po/gu.po | 30 +++++++++++++++---------------
+ po/he.po | 30 +++++++++++++++---------------
+ po/hi.po | 29 ++++++++++++++---------------
+ po/hr.po | 30 +++++++++++++++---------------
+ po/hu.po | 28 ++++++++++++++--------------
+ po/id.po | 30 +++++++++++++++---------------
+ po/is.po | 30 +++++++++++++++---------------
+ po/it.po | 30 +++++++++++++++---------------
+ po/ja.po | 30 +++++++++++++++---------------
+ po/ka.po | 46 ++++++++++++++++++++++++----------------------
+ po/ko.po | 30 +++++++++++++++---------------
+ po/li.po | 30 +++++++++++++++---------------
+ po/lt.po | 30 +++++++++++++++---------------
+ po/lv.po | 30 +++++++++++++++---------------
+ po/mi.po | 53 ++++++++++++++++++++++-------------------------------
+ po/mk.po | 30 +++++++++++++++---------------
+ po/ml.po | 30 +++++++++++++++---------------
+ po/mn.po | 30 +++++++++++++++---------------
+ po/ms.po | 30 +++++++++++++++---------------
+ po/nb.po | 30 +++++++++++++++---------------
+ po/ne.po | 30 +++++++++++++++---------------
+ po/nl.po | 30 +++++++++++++++---------------
+ po/nn.po | 30 +++++++++++++++---------------
+ po/no.po | 30 +++++++++++++++---------------
+ po/or.po | 28 ++++++++++++++--------------
+ po/pa.po | 31 +++++++++++++++----------------
+ po/pl.po | 30 +++++++++++++++---------------
+ po/pt.po | 30 +++++++++++++++---------------
+ po/pt_BR.po | 30 +++++++++++++++---------------
+ po/ro.po | 30 +++++++++++++++---------------
+ po/ru.po | 30 +++++++++++++++---------------
+ po/sk.po | 30 +++++++++++++++---------------
+ po/sl.po | 30 +++++++++++++++---------------
+ po/sq.po | 28 ++++++++++++++--------------
+ po/sr.po | 30 +++++++++++++++---------------
+ po/sr Latn po | 30 +++++++++++++++---------------
+ po/sv.po | 30 +++++++++++++++---------------
+ po/ta.po | 35 +++++++++++++++++++----------------
+ po/tr.po | 30 +++++++++++++++---------------
+ po/uk.po | 30 +++++++++++++++---------------
+ po/vi.po | 30 +++++++++++++++---------------
+ po/wa.po | 30 +++++++++++++++---------------
+ po/zh_CN.po | 30 +++++++++++++++---------------
+ po/zh_TW.po | 30 +++++++++++++++---------------
+ src/vte.c | 15 ++-------------
+ 70 files changed, 1052 insertions(+), 1045 deletions(-)
+
+commit 936365d5565c1174a7c8d4a24235db44a70f4407
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Wed Mar 2 08:48:59 2005 +0000
+
+ Add vtetree.[ch] Don't use a GArray but use calloc'ed memory to speed up
+
+ 2005-03-02 Kjartan Maraas <kmaraas gnome org>
+
+ * src/Makefile.am: Add vtetree.[ch]
+ * src/vte.c: (vte_terminal_draw_row): Don't use a GArray
+ but use calloc'ed memory to speed up things further.
+ From bug #137864. Patch from Benjamin Otte.
+ * src/vtetree.c: (_vte_tree_new), (_vte_tree_destroy),
+ (_vte_tree_insert), (_vte_tree_lookup): New file
+ * src/vtetree.h: New file
+ * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_close),
+ (_vte_xft_font_for_char), (_vte_xft_char_width): Use the new
+ functions to speed up things. From bug #137864. Patch from
+ Benjamin Otte. There are still two patches in there that don't
+ apply cleanly any more. Will look at those later.
+ * vte.spec: Bump version.
+
+ ChangeLog | 16 ++++++++++++++
+ src/Makefile.am | 2 +
+ src/vte.c | 23 ++++++++------------
+ src/vtetree.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vtetree.h | 51 ++++++++++++++++++++++++++++++++++++++++++++++
+ src/vtexft.c | 23 +++++++++++----------
+ vte.spec | 2 +-
+ 7 files changed, 151 insertions(+), 26 deletions(-)
+
+commit cea8ff59881258d16942aa6402c0ab10e110e4c8
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Feb 28 21:38:59 2005 +0000
+
+ Patch from Mariano to make vte claim to be the right type terminal. Closes
+
+ 2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_sequence_handler_send_primary_device_attributes):
+ Patch from Mariano to make vte claim to be the right type terminal.
+ Closes bug #130671.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 106a3de0551d19d467f99fdfeaf8b6fc3d4fbb43
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Feb 28 21:32:01 2005 +0000
+
+ Apply fix from Fedora package for performance problems. Closes bug
+
+ 2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous),
+ (_vte_iso2022_find_nextctl):
+ * src/uniwidths:
+ * src/vte.c: (vte_terminal_catch_child_exited), (vte_terminal_eof),
+ (vte_terminal_process_incoming), (vte_terminal_feed),
+ (vte_terminal_init), (vte_terminal_finalize), (vte_terminal_reset),
+ (add_display_timeout), (add_coalesce_timeout),
+ (remove_display_timeout), (remove_coalesce_timeout),
+ (vte_terminal_stop_processing), (vte_terminal_start_processing),
+ (vte_terminal_is_processing), (display_timeout),
+ (coalesce_timeout):
+ * src/vtexft.c: (_vte_xft_drawcharfontspec), (_vte_xft_draw_text):
+ Apply fix from Fedora package for performance problems. Closes
+ bug #143914. Patch was written by Søren Sandmann.
+
+ ChangeLog | 17 +++++
+ src/iso2022.c | 64 +++++++++--------
+ src/uniwidths | 7 ++
+ src/vte.c | 208 ++++++++++++++++++++++++++++++++++++---------------------
+ src/vtexft.c | 5 +-
+ 5 files changed, 193 insertions(+), 108 deletions(-)
+
+commit b2a0ee1a33ec460994058fd43bd45a43d1641d83
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Feb 28 21:12:19 2005 +0000
+
+ Fix for problem with redrawing when scrolling back then forward Closes bug
+
+ 2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_scroll_region): Fix for
+ problem with redrawing when scrolling back then forward
+ Closes bug #122150. Patch from Benjamin Otte.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 4 ++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 2736ad1804d9f363e0b4752a267a8087f7b096ad
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Feb 28 20:46:10 2005 +0000
+
+ Fix a crash when trying to use input methods. From Fedora. Closes bug
+
+ 2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_unrealize): Fix a crash
+ when trying to use input methods. From Fedora.
+ Closes bug #168213.
+
+ ChangeLog | 8 +++++++-
+ src/vte.c | 3 +++
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit e6192592b53997f3105f6ad0e1a654bad0cb5ec1
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Feb 28 20:43:59 2005 +0000
+
+ Another patch from fedora. Make sure the screen is fully redrawn before
+
+ 2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_scroll_region),
+ (vte_sequence_handler_al), (vte_sequence_handler_dl),
+ (vte_sequence_handler_sr), (vte_sequence_handler_insert_lines),
+ (vte_sequence_handler_delete_lines), (vte_terminal_handle_scroll):
+ Another patch from fedora. Make sure the screen is fully redrawn
+ before scrolling. Apparently this patch has some issues, but those
+ were found to be small enough to apply in Fedora, so I guess
+ the same holds true here.
+
+ ChangeLog | 11 +++++++++++
+ src/vte.c | 34 +++++++++++++++++++++-------------
+ 2 files changed, 32 insertions(+), 13 deletions(-)
+
+commit 74cf9b23a55b774b3f523ecff19bff620de0e0fb
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Feb 28 20:12:05 2005 +0000
+
+ Apply another patch from Fedora. This should fix some screen corruption
+
+ 2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/iso2022.c: (_vte_iso2022_process): Apply another
+ patch from Fedora. This should fix some screen corruption
+ with multibyte charsets. Closes bug #168211 and possibly
+ others.
+
+ ChangeLog | 7 +++++++
+ src/iso2022.c | 44 ++++++++++++++++++++++----------------------
+ 2 files changed, 29 insertions(+), 22 deletions(-)
+
+commit 0fea362d1c10cce35571595fe4df87c5d491406f
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Mon Feb 28 20:09:08 2005 +0000
+
+ Apply patch from Fedora to fix some scrolling issues. Closes bug #168210
+
+ 2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_adjust_adjustments),
+ (vte_terminal_maybe_scroll_to_bottom),
+ (vte_terminal_update_insert_delta), (vte_terminal_handle_scroll),
+ (vte_terminal_set_scroll_adjustment), (vte_terminal_size_allocate):
+ Apply patch from Fedora to fix some scrolling issues. Closes
+ bug #168210 and possibly others.
+
+ ChangeLog | 9 +++++
+ src/vte.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ 2 files changed, 111 insertions(+), 9 deletions(-)
+
+commit 164300788a340ba8040c8c3afbda5adab3c2553f
+Author: Amanpreet Singh Alam <aman src gnome org>
+Date: Wed Feb 23 05:16:59 2005 +0000
+
+ update by amanpreetalam yahoo com
+
+ po/pa.po | 45 +++++++++++++++++++++++----------------------
+ 1 files changed, 23 insertions(+), 22 deletions(-)
+
+commit f65f2fd679b6ef1bef19a60a8c60da34c08de7cd
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Tue Feb 15 11:48:43 2005 +0000
+
+ Fix black backgrounds in new terminals. Fix from Jon Nettleton <nettleton
+
+ 2005-02-15 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_visibility_notify): Fix black
+ backgrounds in new terminals. Fix from Jon Nettleton
+ <nettleton at gmail com>. Closes bug #125364. Has been
+ in Fedora Core for months already.
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 6 +++++-
+ 2 files changed, 12 insertions(+), 1 deletions(-)
+
+commit 885b8c7eca0ac35a8aeb31ad74f27d3deb99ee1e
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Tue Feb 15 11:29:24 2005 +0000
+
+ Fix keypad behaviour to be like xterm. Closes bug #128099. Fix is from
+
+ 2005-02-15 Kjartan Maraas <kmaraas gnome org>
+
+ * src/keymap.c: (_vte_keymap_map): Fix keypad behaviour
+ to be like xterm. Closes bug #128099. Fix is from
+ <jylefort at brutele be> and has been used in Fedora the last
+ three months at least.
+
+ ChangeLog | 7 +++++++
+ src/keymap.c | 14 ++++++++++++--
+ 2 files changed, 19 insertions(+), 2 deletions(-)
+
+commit 1bd149cf1e4fef742e6206b5db793585a639ee8f
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Tue Feb 15 10:56:16 2005 +0000
+
+ Don't include <config.h> here. It breaks building on AIX and can cause
+
+ 2005-02-15 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vteregex.h: Don't include <config.h> here. It breaks
+ building on AIX and can cause problems for l10n. Closes
+ bug #161352.
+
+ ChangeLog | 6 ++++++
+ src/vteregex.h | 1 -
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 78463f2909c3deafd8ff9c66eeab0c539c2547d0
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Tue Feb 15 08:49:23 2005 +0000
+
+ Fix build on NetBSD and Darwin. Patch from Adrian Bunk <bunk at stusta
+
+ 2005-02-15 Kjartan Maraas <kmaraas gnome org>
+
+ * src/dumpkeys.c: Fix build on NetBSD and Darwin.
+ Patch from Adrian Bunk <bunk at stusta de>. Closes
+ bug #126377.
+
+ ChangeLog | 6 ++++++
+ doc/reference/tmpl/reaper.sgml | 5 +++++
+ doc/reference/tmpl/vte.sgml | 3 +++
+ doc/reference/tmpl/vteaccess.sgml | 3 +++
+ src/dumpkeys.c | 4 +++-
+ 5 files changed, 20 insertions(+), 1 deletions(-)
+
+commit 079ff4919bdae0215929e2c7ac82e502836a3235
+Author: Priit Laes <plaes cvs gnome org>
+Date: Wed Feb 2 16:32:57 2005 +0000
+
+ Translation updated by Ivar Smolin.
+
+ 2005-02-02 Priit Laes <plaes cvs gnome org>
+
+ * et.po: Translation updated by Ivar Smolin.
+
+ po/ChangeLog | 4 ++++
+ po/et.po | 29 +++++++++++++++--------------
+ 2 files changed, 19 insertions(+), 14 deletions(-)
+
+commit 9ec41d61f8167414fc72a3641097d081b3ace455
+Author: Priit Laes <plaes cvs gnome org>
+Date: Thu Jan 20 14:40:23 2005 +0000
+
+ Translation updated by Allan Sims.
+
+ 2005-01-20 Priit Laes <plaes cvs gnome org>
+
+ * et.po: Translation updated by Allan Sims.
+
+ po/ChangeLog | 4 ++++
+ po/et.po | 24 ++++++++++++------------
+ 2 files changed, 16 insertions(+), 12 deletions(-)
+
+commit 123cc653845a9e984b8da26b34fc329f4ed0e252
+Author: Rajesh Ranjan <rranjan src gnome org>
+Date: Tue Dec 14 07:00:38 2004 +0000
+
+ vte revision
+
+ po/hi.po | 7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+commit 6321a4f2a86ea20bb47dec53e4bb833afac573e9
+Author: Rajesh Ranjan <rranjan src gnome org>
+Date: Wed Dec 8 04:33:26 2004 +0000
+
+ rev
+
+ po/hi.po | 11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+commit 686f9e662bb78846f07115e80712c671966ec3c2
+Author: Rajesh Ranjan <rranjan src gnome org>
+Date: Tue Dec 7 07:06:14 2004 +0000
+
+ hi
+
+ ChangeLog | 2 ++
+ configure.in | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletions(-)
+
+commit e3c1a43676987c11342e8f26d596cbb1967f0bfe
+Author: Rajesh Ranjan <rranjan src gnome org>
+Date: Tue Dec 7 06:58:36 2004 +0000
+
+ add hindi file
+
+ po/hi.po | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 114 insertions(+), 0 deletions(-)
+
+commit 223f81868d98f7a024c9ad1acf16cd8186265b53
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Nov 17 00:32:01 2004 +0000
+
+ silence a couple of warnings by expecting a GIOCondition instead of a
+
+ * src/vte.c(vte_terminal_io_read,vte_terminal_io_write): silence a couple of
+ warnings by expecting a GIOCondition instead of a GtkInputCondition
+ as a parameter.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 8 ++++----
+ 2 files changed, 9 insertions(+), 4 deletions(-)
+
+commit 7f3d3b207272c86af768420da60981bccc018f6c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Nov 17 00:25:53 2004 +0000
+
+ accept more, newer versions of autoconf/automake. Treat autoconf >= 3 as
+
+ * autogen.sh: accept more, newer versions of autoconf/automake. Treat autoconf
+ >= 3 as acceptable instead of just > 3.
+
+ ChangeLog | 4 ++++
+ autogen.sh | 12 +++++-------
+ 2 files changed, 9 insertions(+), 7 deletions(-)
+
+commit 2949c51354ba4d1b59051d9a7eaa44133d06db03
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Nov 17 00:23:44 2004 +0000
+
+ add. add. add. add. add. expand "%m" locally so that we can distinguish
+
+ * src/vte.c(vte_terminal_sequence_handler_scroll_up_or_down): add.
+ * src/vte.c(vte_terminal_sequence_handler_scroll_up_once): add.
+ * src/vte.c(vte_terminal_sequence_handler_scroll_down_once): add.
+ * src/vte.c(vte_terminal_sequence_handler_scroll_up): add.
+ * src/vte.c(vte_terminal_sequence_handler_scroll_down): add.
+ * src/table.c(_vte_table_addi): expand "%m" locally so that we can distinguish
+ between control sequences which differ only in the number of numeric
+ arguments they expect. This means we have a new upper limit on the
+ length of a numeric argument list we'll recognize.
+ * src/caps.c(_vte_xterm_capability_strings): remove alternates for strings
+ which include '%m' as a specifier -- that's handled at the matching
+ layer now.
+ * src/vte.c(vte_terminal_paste_cb): drop the supplied data if it isn't valid
+ UTF-8 (Red Hat #119099).
+ * src/keymap.c(_vte_keymap_map): try xterm variants if we're xterm, not the
+ other way around.
+
+ ChangeLog | 18 +++++++
+ src/caps.c | 10 ----
+ src/keymap.c | 2 +-
+ src/table.c | 160 ++++++++++++++++++++++++++++++++++++---------------------
+ src/vte.c | 107 +++++++++++++++++++++++++++++++++++++-
+ 5 files changed, 224 insertions(+), 73 deletions(-)
+
+commit 2f99b80d9cc23851980ff209291c48898b526ff6
+Author: Mətin Əmirov <metin karegen com>
+Date: Mon Oct 11 17:30:17 2004 +0000
+
+ Added ka to ALL_LINGUAS.
+
+ 2004-10-11 Mətin Əmirov <metin karegen com>
+
+ * configure.in: Added ka to ALL_LINGUAS.
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit c4f0942e2705e20567971f518fb42c0af7fd8646
+Author: Mətin Əmirov <metin karegen com>
+Date: Mon Oct 11 17:30:13 2004 +0000
+
+ Translation added by Aiet Kolkhi.
+
+ 2004-10-11 Mətin Əmirov <metin karegen com>
+
+ * ka.po: Translation added by Aiet Kolkhi.
+
+ po/ChangeLog | 4 ++
+ po/ka.po | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 121 insertions(+), 0 deletions(-)
+
+commit 7e0c6e370a8e02fdd61e1918456042cb95960b13
+Author: David Lodge <dave cirt net>
+Date: Wed Oct 6 18:59:46 2004 +0000
+
+ Added Old English translation. Added ang to ALL_LINGUAS
+
+ 2004-10-06 David Lodge <dave cirt net>
+
+ * ang.po: Added Old English translation.
+ * configure.in: Added ang to ALL_LINGUAS
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/ang.po | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 122 insertions(+), 1 deletions(-)
+
+commit d93f9f7a56897caccb90c7c669fb4b9c8afcf782
+Author: Adam Weinberger <adamw src gnome org>
+Date: Wed Sep 8 07:28:46 2004 +0000
+
+ Updated Canadian English translation.
+
+
+ * en_CA.po: Updated Canadian English translation.
+
+ po/ChangeLog | 4 ++++
+ po/en_CA.po | 37 +++++++++++++++++++------------------
+ 2 files changed, 23 insertions(+), 18 deletions(-)
+
+commit 90726a592bbc8178332a031022c4b8d050dabf67
+Author: Francisco Javier F. Serrador <serrador cvs gnome org>
+Date: Sat Aug 28 15:58:20 2004 +0000
+
+ Updated Spanish translation
+
+ 2004-08-28 Francisco Javier F. Serrador <serrador cvs gnome org>
+
+ * es.po: Updated Spanish translation
+
+ po/ChangeLog | 4 ++++
+ po/es.po | 25 ++++++++++++++-----------
+ 2 files changed, 18 insertions(+), 11 deletions(-)
+
+commit 347d80694a2544a943d7f13d251f175503b606b5
+Author: Laszlo Dvornik <dvornik gnome hu>
+Date: Sat Aug 28 12:33:54 2004 +0000
+
+ Updated Hungarian translation.
+
+ 2004-08-28 Laszlo Dvornik <dvornik gnome hu>
+
+ * hu.po: Updated Hungarian translation.
+
+ po/ChangeLog | 4 ++++
+ po/hu.po | 57 +++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 33 insertions(+), 28 deletions(-)
+
+commit 3aba5fb2e57bb38f75f27c116e9c222afec779ad
+Author: Laurent Dhima <laurenti alblinux net>
+Date: Fri Aug 20 17:03:04 2004 +0000
+
+ Updated Albanian translation.
+
+ 2004-08-20 Laurent Dhima <laurenti alblinux net>
+
+ * sq.po: Updated Albanian translation.
+
+ po/ChangeLog | 4 ++++
+ po/sq.po | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 5de1e489113069677af76af350da72c37402a12b
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Wed Aug 18 17:28:53 2004 +0000
+
+ Added «nb» to ALL_LINGUAS.
+
+ 2004-08-18 Kjartan Maraas <kmaraas gnome org>
+
+ * configure.in: Added «nb» to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit c509534e41326ea1437f18dc7281db7a2c06b27f
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Wed Aug 18 17:28:05 2004 +0000
+
+ Added this.
+
+ 2004-08-18 Kjartan Maraas <kmaraas gnome org>
+
+
+ * nb.po: Added this.
+
+ po/ChangeLog | 5 +++
+ po/nb.po | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 117 insertions(+), 0 deletions(-)
+
+commit d5a816662d8bea1e57abd39b9a67a5e7258bee57
+Author: Laurent Dhima <laurenti alblinux net>
+Date: Wed Aug 18 11:08:27 2004 +0000
+
+ Updated Albanian translation.
+
+ 2004-08-18 Laurent Dhima <laurenti alblinux net>
+
+ * sq.po: Updated Albanian translation.
+
+ po/ChangeLog | 4 ++++
+ po/sq.po | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 4dee776a00edde218ba6e9ba5ba7c62a1f8fc9a1
+Author: Christian Rose <menthos menthos com>
+Date: Mon Aug 16 21:52:27 2004 +0000
+
+ Added "bs" to ALL_LINGUAS. Added Bosnian translation by Kemal Sanjta
+
+ 2004-08-16 Christian Rose <menthos menthos com>
+
+ * configure.in: Added "bs" to ALL_LINGUAS.
+ * po/bs.po: Added Bosnian translation by
+ Kemal Sanjta <gomez lugzdk ba>.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 +++
+ po/bs.po | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 125 insertions(+), 1 deletions(-)
+
+commit 38011c436c18822c5dc2b4b16efa74617906817c
+Author: Tommi Vainikainen <tvainika src gnome org>
+Date: Fri Aug 13 19:46:17 2004 +0000
+
+ Unified po headers for Finnish Team
+
+ po/ChangeLog | 4 ++++
+ po/fi.po | 3 +--
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+commit c71cee561f061949b2ff1fde11d1883ba1c053b2
+Author: Gora Mohanty <gmohanty src gnome org>
+Date: Thu Aug 12 20:30:53 2004 +0000
+
+ configure.in: Added "or" to ALL_LINGUAS.
+ po/or.po: Updated Oriya translation.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/or.po | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 123 insertions(+), 1 deletions(-)
+
+commit 85a8e4b2375c728ef517c0379a5c622be96a13cb
+Author: Amanpreet Singh Alam <aman src gnome org>
+Date: Mon Aug 9 09:56:47 2004 +0000
+
+ check
+
+ po/pa.po | 33 ++++++++++++++++++---------------
+ 1 files changed, 18 insertions(+), 15 deletions(-)
+
+commit fcb527f0819543daf941772aa66798c310cb4fbf
+Author: Dinesh Nadarajah <ndinesh src gnome org>
+Date: Sat Jul 17 14:29:56 2004 +0000
+
+ 2004-07-17 Dinesh Nadarajah
+
+
+
+ 2004-07-17 Dinesh Nadarajah
+
+ ta.po: Added Tamil Translation
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/ta.po | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 120 insertions(+), 1 deletions(-)
+
+commit 775f24c9131219f3da774af984414cd7d55e3461
+Author: Iñaki Larrañaga <dooteo euskalgnu org>
+Date: Mon Jun 28 21:49:58 2004 +0000
+
+ Updated Basque translation.
+
+ 2004-06-28 Iñaki Larrañaga <dooteo euskalgnu org>
+
+ * eu.po: Updated Basque translation.
+
+ po/ChangeLog | 4 +++
+ po/eu.po | 72 +++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 41 insertions(+), 35 deletions(-)
+
+commit 2524421c2f6e3b121a8c7598b4dd47b00a96cf03
+Author: Laurent Dhima <laurenti alblinux net>
+Date: Mon Jun 28 15:17:40 2004 +0000
+
+ Translation updated.
+
+ 2004-06-28 Laurent Dhima <laurenti alblinux net>
+
+ * sq.po: Translation updated.
+
+ po/ChangeLog | 4 ++++
+ po/sq.po | 22 +++++++++++-----------
+ 2 files changed, 15 insertions(+), 11 deletions(-)
+
+commit a59add9ec3169afdc76903d67e4c5b391debe0ff
+Author: John C Barstow <jbowtie amathaine com>
+Date: Sat Jun 26 07:41:10 2004 +0000
+
+ Added mi to ALL_LINGUAS.
+
+ 2004-06-26 John C Barstow <jbowtie amathaine com>
+
+ * configure.in: Added mi to ALL_LINGUAS.
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit eace4a5340a460a3a92b38920735414d6cf92317
+Author: John C Barstow <jbowtie amathaine com>
+Date: Sat Jun 26 07:41:08 2004 +0000
+
+ Translation added.
+
+ 2004-06-26 John C Barstow <jbowtie amathaine com>
+
+ * mi.po: Translation added.
+
+ po/ChangeLog | 4 ++
+ po/mi.po | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 130 insertions(+), 0 deletions(-)
+
+commit d3d586b1669bbb7b4ccf3f777a4fd33c785c2c07
+Author: Thomas Vander Stichele <thomasvs src gnome org>
+Date: Sun May 30 09:51:39 2004 +0000
+
+ add ignore files
+
+ .cvsignore | 1 +
+ doc/.cvsignore | 2 ++
+ doc/openi18n/.cvsignore | 3 +++
+ doc/reference/.cvsignore | 20 ++++++++++++++++++++
+ .cvsignore => gnome-pty-helper/.cvsignore | 17 +++--------------
+ python/.cvsignore | 3 +++
+ termcaps/.cvsignore | 2 ++
+ 7 files changed, 34 insertions(+), 14 deletions(-)
+
+commit c90b8d3668b4f3d56b026852a96c9ef5deffbf9d
+Author: Thomas Vander Stichele <thomasvs src gnome org>
+Date: Sun May 30 09:50:59 2004 +0000
+
+ add ignore files
+
+ .cvsignore | 11 +++++++++++
+ 1 files changed, 11 insertions(+), 0 deletions(-)
+
+commit f93b85640ced394999f314c1ed2317ba755013b3
+Author: Alexander Shopov <ash contact bg>
+Date: Tue May 25 11:39:11 2004 +0000
+
+ Updated Bulgarian translation by Vladimir "Kaladan" Petkov
+
+ 2004-05-25 Alexander Shopov <ash contact bg>
+
+ * bg.po: Updated Bulgarian translation by
+ Vladimir "Kaladan" Petkov <vpetkov i-space org>
+
+ po/ChangeLog | 5 +++++
+ po/bg.po | 53 ++++++++++++++++++++++++++---------------------------
+ 2 files changed, 31 insertions(+), 27 deletions(-)
+
+commit b7e32d1da79ca11bd9a8106ca3114ce631251a33
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun May 2 06:43:01 2004 +0000
+
+ pass the global reaper in as data when adding the child source, not the
+
+ * src/reaper.c(vte_reaper_add_child): pass the global reaper in as data when
+ adding the child source, not the terminal which called us. Stop
+ accepting a data argument, because we'd discard it anyway. Return the
+ ID of the source which is added, if that happens.
+ * configure.in: define VTE_INVALID_SOURCE for internal use.
+
+ ChangeLog | 7 +++++++
+ configure.in | 1 +
+ src/reaper.c | 27 +++++++++++++++++++++++----
+ src/reaper.h | 2 +-
+ src/vte.c | 3 +--
+ 5 files changed, 33 insertions(+), 7 deletions(-)
+
+commit 8a96cb750fab81b8f4516e80bc2e6d8cb38bd039
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat May 1 15:43:05 2004 +0000
+
+ add pointers to info on bidirectional text and shaping.
+
+ * README: add pointers to info on bidirectional text and shaping.
+
+ ChangeLog | 3 +++
+ README | 8 ++++++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 37e1d5101094ba96d5e38fadd0364236325a16bc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat May 1 07:12:51 2004 +0000
+
+ add a parameter to control whether or not trailing whitespace is trimmed
+
+ * src/vte.c(vte_terminal_get_text_maybe_wrapped): add a parameter to control
+ whether or not trailing whitespace is trimmed (padraig.obriain,
+ #141148).
+ * src/vte.c,src/vte.h(vte_terminal_get_text_include_trailing_spaces): add as a
+ wrapper for the new vte_terminal_get_text_maybe_wrapped()
+ (padraig.obriain, #141148).
+ * src/vteaccess.c(vte_terminal_accessible_update_private_d): use
+ vte_terminal_get_text_include_trailing_spaces to ensure that we get
+ trailing spaces (padraig.obriain, #141148).
+ * src/vte.c(vte_terminal_insert_char): clean up some autowrap stuff.
+
+ ChangeLog | 12 +++++
+ gnome-pty-helper/gnome-login-support.c | 38 +++++++-------
+ gnome-pty-helper/gnome-pty-helper.c | 68 +++++++++++++-------------
+ gnome-pty-helper/gnome-utmp.c | 30 ++++++------
+ src/pty.c | 2 +-
+ src/vte.c | 81 ++++++++++++++++++++++++--------
+ src/vte.h | 7 +++
+ src/vteaccess.c | 34 +++++++-------
+ 8 files changed, 166 insertions(+), 106 deletions(-)
+
+commit c4a25900091c436d3d629d3bf53d653117d0322b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 18:48:18 2004 +0000
+
+ declare the defaultemulation variable as one kind of variable, not that
+
+ * vte.pc.in, vte-uninstalled.pc.in: declare the defaultemulation variable as
+ one kind of variable, not that other kind (#141515).
+
+ ChangeLog | 4 ++++
+ vte-uninstalled.pc.in | 3 ++-
+ vte.pc.in | 3 ++-
+ 3 files changed, 8 insertions(+), 2 deletions(-)
+
+commit b2025190de68a6d92be926c2324ab9ea98eb9242
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 06:06:44 2004 +0000
+
+ complete selection if we were selecting, not just if Shift is held down
+
+ * src/vte.c(vte_terminal_button_release): complete selection if we were
+ selecting, not just if Shift is held down (allows Press Shift, Press
+ Button, Release Shift, Release Button in addition to already-recognized
+ Press Shift, Press Button, Release Button, Release Shift) (#121905).
+ * vte.spec: buildrequire gtk-doc, manually copy png images at install-time.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 3 +--
+ vte.spec | 6 +++++-
+ 3 files changed, 14 insertions(+), 3 deletions(-)
+
+commit ff40403f43fb72f296dfd3a4237ed69fd61fcdef
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 02:59:39 2004 +0000
+
+ documentation updates. note that we just proxy for glib 2.4 child_watch
+
+ * src/vte.c, NEWS, doc/reference/vte-sections.txt,
+ doc/reference/tmpl/vte-unused.sgml: documentation updates.
+ * doc/reference/tmpl/reaper.sgml: note that we just proxy for glib 2.4
+ child_watch functionality, if present.
+ * NEWS: update summary.
+
+ ChangeLog | 6 ++++
+ NEWS | 14 +++++++++
+ doc/reference/tmpl/reaper.sgml | 4 ++-
+ doc/reference/tmpl/vte-unused.sgml | 15 ++++++++++
+ doc/reference/vte-sections.txt | 55 ++++++++++++++++++++++++++++++++++++
+ po/am.po | 26 ++++++++--------
+ po/ar.po | 26 ++++++++--------
+ po/az.po | 26 ++++++++--------
+ po/be.po | 26 ++++++++--------
+ po/bg.po | 26 ++++++++--------
+ po/bn.po | 26 ++++++++--------
+ po/ca.po | 26 ++++++++--------
+ po/cs.po | 26 ++++++++--------
+ po/cy.po | 26 ++++++++--------
+ po/da.po | 26 ++++++++--------
+ po/de.po | 26 ++++++++--------
+ po/el.po | 26 ++++++++--------
+ po/en_CA.po | 26 ++++++++--------
+ po/en_GB.po | 26 ++++++++--------
+ po/es.po | 26 ++++++++--------
+ po/et.po | 26 ++++++++--------
+ po/eu.po | 26 ++++++++--------
+ po/fa.po | 26 ++++++++--------
+ po/fi.po | 26 ++++++++--------
+ po/fr.po | 26 ++++++++--------
+ po/ga.po | 26 ++++++++--------
+ po/gu.po | 26 ++++++++--------
+ po/he.po | 26 ++++++++--------
+ po/hr.po | 26 ++++++++--------
+ po/hu.po | 26 ++++++++--------
+ po/id.po | 26 ++++++++--------
+ po/is.po | 26 ++++++++--------
+ po/it.po | 26 ++++++++--------
+ po/ja.po | 26 ++++++++--------
+ po/ko.po | 26 ++++++++--------
+ po/li.po | 26 ++++++++--------
+ po/lt.po | 26 ++++++++--------
+ po/lv.po | 26 ++++++++--------
+ po/mk.po | 26 ++++++++--------
+ po/ml.po | 26 ++++++++--------
+ po/mn.po | 26 ++++++++--------
+ po/ms.po | 26 ++++++++--------
+ po/ne.po | 26 ++++++++--------
+ po/nl.po | 26 ++++++++--------
+ po/nn.po | 26 ++++++++--------
+ po/no.po | 26 ++++++++--------
+ po/pa.po | 26 ++++++++--------
+ po/pl.po | 26 ++++++++--------
+ po/pt.po | 26 ++++++++--------
+ po/pt_BR.po | 26 ++++++++--------
+ po/ro.po | 26 ++++++++--------
+ po/ru.po | 26 ++++++++--------
+ po/sk.po | 26 ++++++++--------
+ po/sl.po | 26 ++++++++--------
+ po/sq.po | 26 ++++++++--------
+ po/sr.po | 26 ++++++++--------
+ po/sr Latn po | 26 ++++++++--------
+ po/sv.po | 26 ++++++++--------
+ po/tr.po | 26 ++++++++--------
+ po/uk.po | 26 ++++++++--------
+ po/vi.po | 26 ++++++++--------
+ po/wa.po | 26 ++++++++--------
+ po/zh_CN.po | 26 ++++++++--------
+ po/zh_TW.po | 26 ++++++++--------
+ src/vte.c | 6 ++--
+ 65 files changed, 863 insertions(+), 771 deletions(-)
+
+commit 8646f68a8f2b35005082482173b15e5e95b9dc01
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 02:41:55 2004 +0000
+
+ include get_default_emulation binding.
+
+ * python/vte.defs: include get_default_emulation binding.
+
+ ChangeLog | 3 +++
+ python/vte.defs | 12 +++++++++---
+ 2 files changed, 12 insertions(+), 3 deletions(-)
+
+commit 60a64be27fa33cc249fa87deed6963905031c5e8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 02:22:06 2004 +0000
+
+ update version to 0.11.11
+
+ * vte.spec: update version to 0.11.11
+
+ ChangeLog | 3 +++
+ vte.spec | 7 +++++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 3da9acb379a440d41d1a4fc897f409e930f7ab56
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 02:16:25 2004 +0000
+
+ don't unref our accessible peer; it may be accessed while we're
+
+ * src/vte.c(vte_terminal_unrealize): don't unref our accessible peer; it may be
+ accessed while we're unrealized, causing it to be destroyed and
+ re-created needlessly (#128049).
+ * src/vte.c(vte_terminal_finalize): unref our accessible peer.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 32 ++++++++++++++++----------------
+ 2 files changed, 22 insertions(+), 16 deletions(-)
+
+commit e0f3c599ddc35517b16a12820c0af9a381fb2a23
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 02:02:56 2004 +0000
+
+ don't clear the child's PID early, so that we'll SIGHUP it properly (the
+
+ * src/vte.c(vte_terminal_finalize): don't clear the child's PID early, so that
+ we'll SIGHUP it properly (the kernel should do that anyway, but...)
+ (#128291).
+
+ ChangeLog | 5 +++++
+ src/vte.c | 1 -
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 03404a368f9f23dade35ed81b54e27255e04b29e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 01:39:17 2004 +0000
+
+ only deselect the current selection if just-inserted text affected the
+
+ * src/vte.c(vte_terminal_insert_char): only deselect the current selection if
+ just-inserted text affected the selected region of the screen (#135259).
+
+ ChangeLog | 5 +++++
+ src/vte.c | 27 +++++++++++++++++++++++----
+ 2 files changed, 28 insertions(+), 4 deletions(-)
+
+commit cf8e7d95067df980ac8ebc8e5716905f231eebc7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 01:16:53 2004 +0000
+
+ assorted updates. check for <sys/termios.h> include <sys/termios.h> if
+
+ * README: assorted updates.
+ * configure.in: check for <sys/termios.h>
+ * src/pty.c: include <sys/termios.h> if found (#141392).
+ * src/dumpkeys.c, src/mev.c, src/pty.c, src/ssfe.c, src/vte.c: do the same.
+ * doc/reference/vte-sections.txt: add several functions which are new but
+ which weren't in the generated docs before.
+ * doc/reference/vte-unused.txt: sort.
+
+ ChangeLog | 10 ++++++
+ README | 23 ++++++++++-----
+ configure.in | 3 +-
+ doc/reference/tmpl/reaper.sgml | 9 ++++++
+ doc/reference/tmpl/vte.sgml | 61 ++++++++++++++++++++++++++++++++++++++++
+ doc/reference/vte-sections.txt | 7 ++++
+ src/Makefile.am | 4 +-
+ src/dumpkeys.c | 5 +++
+ src/mev.c | 5 +++
+ src/pty.c | 6 ++++
+ src/ssfe.c | 7 ++++-
+ src/vte.c | 17 ++++++----
+ src/vte.h | 4 +-
+ 13 files changed, 140 insertions(+), 21 deletions(-)
+
+commit c2453e484d3f53b5b5c7abbeca1b6d56d204e370
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 00:31:39 2004 +0000
+
+ remove stray debug printfs.
+
+ * src/vte.c(vte_terminal_scroll_region): remove stray debug printfs.
+
+ ChangeLog | 3 +++
+ src/vte.c | 1 -
+ 2 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 934340170f404f7c4993f447cdca80543c5e018d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 30 00:25:52 2004 +0000
+
+ add a --with-default-emulation argument (part of #115750). Use
+
+ * configure.in: add a --with-default-emulation argument (part of #115750). Use
+ AS_HELP_STRING wherever we need help strings.
+ * vte.pc.in, vte-uninstalled.pc.in: add DefaultEmulation variable
+ * vte.spec: specify "xterm" as the default-emulation, even though it's the
+ default default
+ * termcaps/Makefile.am: build and install the default emulation's
+ termcap, assuming it's some kind of xterm variant.
+ * src/keymap.c(_vte_keymap_map): check for xterm-xfree86 definitions
+ if the terminal type includes xterm, not if it exactly matches xterm
+ * src/reaper.c(vte_reaper_add_child): add. The glib 2.4 SIGCHLD watcher
+ requires us to register particular PIDs for monitoring, so now we
+ require applications to do so.
+ * src/reaper.c(vte_reaper_child_watch_cb): add.
+ * src/reaper.c(vte_reaper_init): Don't hook the SIGCHLD handler if we're
+ running under glib 2.4, expect to use the g_child_watch mechanism.
+ * src/vte.c: remove hard-coded definition of VTE_DEFAULT_EMULATION, to be
+ picked up from config.h instead.
+ * src/vte.c(vte_sequence_handler_cs): remove stray debug printfs.
+ * src/vte.c(vte_terminal_insert_char): only do what we were doing for xn if LP
+ was also set (#141445).
+ * src/vte.c(vte_terminal_get_default_emulation): add.
+ * src/vte.c(_vte_terminal_fork_basic): call vte_reaper_add_child for new
+ children.
+
+ ChangeLog | 26 ++++++++++++++++++++++++++
+ configure.in | 26 +++++++++++++++++---------
+ src/keymap.c | 2 +-
+ src/reaper.c | 40 ++++++++++++++++++++++++++++++++++++++++
+ src/reaper.h | 1 +
+ src/vte.c | 31 ++++++++++++++++++++++++-------
+ src/vte.h | 1 +
+ termcaps/Makefile.am | 5 ++++-
+ vte-uninstalled.pc.in | 1 +
+ vte.pc.in | 1 +
+ vte.spec | 2 +-
+ 11 files changed, 117 insertions(+), 19 deletions(-)
+
+commit bcee3ff9c9301daf6383447828b8ac940fd6f95a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 27 20:48:17 2004 +0000
+
+ more clearly document what the argv and envv arguments are expected to
+
+ * src/vte.c(vte_terminal_fork_command): more clearly document what the argv
+ and envv arguments are expected to contain (#127979).
+ * src/vte.c(vte_terminal_insert_char): attempt to more closely match the
+ behavior of am and xn on terminals -- if am is set {if xn is set,
+ autowrap should only happen before a character is output, and then only
+ if it's a graphic character, otherwise we autowrap after a character is
+ output}
+
+ ChangeLog | 9 +++++++
+ src/slowcat.c | 63 ++++++++++++++++++++++++++++++++----------------
+ src/vte.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
+ 3 files changed, 117 insertions(+), 30 deletions(-)
+
+commit 68774f88fd845781f942443f99ec30e92a1765ac
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 22 03:44:54 2004 +0000
+
+ also trim back lines which are nothing but whitespace (#140765).
+
+ * src/vte.c(vte_terminal_get_text_range_maybe_wrapped): also trim back lines
+ which are nothing but whitespace (#140765).
+ * src/vte.c(vte_terminal_configure_toplevel): invalidate the whole window if
+ we're "transparent", because we don't get expose events unless some
+ portion of our area came out from behind something else, but we still
+ need to repaint it (#122243).
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 18 +++++++++++++++++-
+ 2 files changed, 25 insertions(+), 1 deletions(-)
+
+commit bc403a3836f9eb2caadb40062c0f36d5b4f5d50f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 20 06:35:43 2004 +0000
+
+ document the child-exited signal. document the emulation-changed and
+
+ * doc/reference/tmpl/reaper.sgml: document the child-exited signal.
+ * doc/reference/tmpl/vte.sgml: document the emulation-changed and
+ encoding-changed signals.
+ One hundred percent*. ONE HUNDRED PERCENT* I TELL YOU!
+
+ * Except for the unused bits.
+
+ ChangeLog | 5 +
+ doc/reference/tmpl/reaper.sgml | 4 +-
+ doc/reference/tmpl/vte-unused.sgml | 157 ++++++++++++++++++++++++++
+ doc/reference/tmpl/vte.sgml | 7 +-
+ po/am.po | 39 ++++---
+ po/ar.po | 29 +++---
+ po/az.po | 26 ++--
+ po/be.po | 37 +++---
+ po/bg.po | 39 ++++---
+ po/bn.po | 39 ++++---
+ po/ca.po | 39 ++++---
+ po/cs.po | 26 ++--
+ po/cy.po | 45 ++++----
+ po/da.po | 39 ++++---
+ po/de.po | 37 +++---
+ po/el.po | 34 +++---
+ po/en_CA.po | 28 +++---
+ po/en_GB.po | 26 ++--
+ po/es.po | 36 +++---
+ po/et.po | 38 +++---
+ po/eu.po | 28 +++---
+ po/fa.po | 26 ++--
+ po/fi.po | 36 +++---
+ po/fr.po | 36 +++---
+ po/ga.po | 26 ++--
+ po/gu.po | 26 ++--
+ po/he.po | 37 +++---
+ po/hr.po | 35 +++---
+ po/hu.po | 27 +++--
+ po/id.po | 39 ++++---
+ po/is.po | 39 ++++---
+ po/it.po | 37 +++---
+ po/ja.po | 36 +++---
+ po/ko.po | 32 +++---
+ po/li.po | 37 +++---
+ po/lt.po | 29 +++---
+ po/lv.po | 39 ++++---
+ po/mk.po | 37 +++---
+ po/ml.po | 39 ++++---
+ po/mn.po | 33 +++---
+ po/ms.po | 66 ++++-------
+ po/ne.po | 216 ++++++++++++++++++------------------
+ po/nl.po | 36 +++---
+ po/nn.po | 27 ++---
+ po/no.po | 33 +++---
+ po/pa.po | 26 ++--
+ po/pl.po | 37 +++---
+ po/pt.po | 28 +++---
+ po/pt_BR.po | 32 +++---
+ po/ro.po | 26 ++--
+ po/ru.po | 29 +++---
+ po/sk.po | 33 +++---
+ po/sl.po | 34 +++---
+ po/sq.po | 36 +++---
+ po/sr.po | 38 +++---
+ po/sr Latn po | 38 +++---
+ po/sv.po | 39 ++++---
+ po/tr.po | 27 ++---
+ po/uk.po | 32 +++---
+ po/vi.po | 33 +++---
+ po/wa.po | 42 ++++----
+ po/zh_CN.po | 36 +++---
+ po/zh_TW.po | 34 +++---
+ src/Makefile.am | 4 +-
+ src/vtebg.c | 10 +-
+ 65 files changed, 1277 insertions(+), 1119 deletions(-)
+
+commit d7e1045596a8cb452d2649dee7b9638f5f50194b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 20 05:54:34 2004 +0000
+
+ add rule for generating vte-uninstall.pc (Gman, #136129) add (Gman,
+
+ * Makefile.am: add rule for generating vte-uninstall.pc (Gman, #136129)
+ * vte-uninstalled.pc.in: add (Gman, #136129)
+
+ ChangeLog | 4 ++++
+ Makefile.am | 2 +-
+ configure.in | 1 +
+ vte-uninstalled.pc.in | 11 +++++++++++
+ 4 files changed, 17 insertions(+), 1 deletions(-)
+
+commit 684d3ec3b22a52c97c5e14cdd44de8aebfb6297b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 20 05:40:56 2004 +0000
+
+ don't steal keys from the input method. toggle the IUTF8 flag, if it was
+
+ * src/vte.c(vte_terminal_key_press): don't steal keys from the input method.
+ * src/pty.c(_vte_pty_set_utf8): toggle the IUTF8 flag, if it was defined at
+ compile-time (maybe for #129317).
+
+ ChangeLog | 4 ++++
+ src/pty.c | 3 ---
+ src/vte.c | 57 +++++++++++++++++++++++++++++++++++++++++++--------------
+ 3 files changed, 47 insertions(+), 17 deletions(-)
+
+commit d0c8c47dfb5d908ee22a735bc6ea80b943933630
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 20 05:37:50 2004 +0000
+
+ toggle the IUTF8 flag, if it was defined at compile-time (maybe for
+
+ * src/pty.c(_vte_pty_set_utf8): toggle the IUTF8 flag, if it was defined at
+ compile-time (maybe for #129317).
+ * src/vte.c(vte_terminal_set_encoding): call _vte_pty_set_utf8.
+ * src/vte.h (vte_terminal_anti_alias_get_type): declare.
+ * src/vtebg.c(vte_bg_get_pixmap): Optimisation to fix the ridiculous
+ amount of time required to render solid colour or extremely small
+ image tiled backgrounds. This fixes bug #123903. (desrt)
+ * src/vtebg.c(vte_bg_root_pixmap): move resize code into a separate
+ function.
+ * src/vtebg.c(vte_bg_get_pixmap): Resize all image sources, in case
+ we're using a very small image file for the background.
+ * python/Makefile.am: move python module to site-packages/gtk-2.0,
+ which is added to the search path only by pygtk 2 (#92252).
+
+ ChangeLog | 17 ++++++++++++
+ python/Makefile.am | 4 +-
+ src/pty.c | 39 +++++++++++++++++++++++++--
+ src/pty.h | 3 ++
+ src/vte.c | 2 +
+ src/vte.h | 1 +
+ src/vtebg.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 7 files changed, 135 insertions(+), 5 deletions(-)
+
+commit a335c65bbbde6ced343b24c470e4219174decdb5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 20 05:28:17 2004 +0000
+
+ define a modulename override so that the Terminal class is registered in
+
+ * python/vte.override: define a modulename override so that the Terminal class
+ is registered in the proper namespace so that python's help() builtin
+ sees the Terminal class (#130267).
+
+ ChangeLog | 5 +++++
+ python/vte.defs | 7 ++++++-
+ python/vte.override | 2 ++
+ 3 files changed, 13 insertions(+), 1 deletions(-)
+
+commit 8eca214bcb9bcbbfd2d56cc289f3da69d2ef7387
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 20 05:22:54 2004 +0000
+
+ add, for the sake of bindings.
+
+ * src/vte.c(vte_terminal_anti_alias_get_type): add, for the sake of bindings.
+
+ ChangeLog | 4 ++++
+ python/vte.defs | 33 +++++++++++++++++++++++++++++++++
+ python/vtemodule.c | 1 +
+ src/vte.c | 17 +++++++++++++++++
+ src/vte.h | 5 ++++-
+ 5 files changed, 59 insertions(+), 1 deletions(-)
+
+commit e393cfc59f5f1e5c85ab5470448547d99c379212
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 20 05:18:45 2004 +0000
+
+ call GtkWidget's key_press_event callback for keys, in case GtkWidget has
+
+ * src/vte.c(vte_terminal_key_press): call GtkWidget's key_press_event callback
+ for keys, in case GtkWidget has pre-programmed behavior for that key
+ (#133878).
+ * configure.in, gnome-pty-helper/configure.in: quote names of defined functions
+ (#133222).
+ * configure.in: make compilation of gnome-pty-helper actually conditional
+ (#133077).
+ * src/vte.c(vte_terminal_process_incoming): Doh #132610, actually call
+ vte_terminal_emit_contents_changed() when the contents change.
+
+ ChangeLog | 11 +++++++++++
+ Makefile.am | 5 ++++-
+ acinclude.m4 | 4 ++--
+ configure.in | 1 +
+ gnome-pty-helper/acinclude.m4 | 2 +-
+ python/vtemodule.c | 4 ++--
+ src/Makefile.am | 1 +
+ src/vte.c | 12 ++++++++++++
+ 8 files changed, 34 insertions(+), 6 deletions(-)
+
+commit 4493df7203a80c12175cfb5a4a723669ee165816
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 20 05:16:56 2004 +0000
+
+ Add (#134429). take a VteTerminalAntiAlias argument. take a
+
+ * src/vte.h, src/vte.c (vte_terminal_set_font_full): Add (#134429).
+ * src/vteglyph.c(_vte_glyph_cache_set_font_description): take a
+ VteTerminalAntiAlias argument.
+ * src/vteft2.c, src/vtegl.c, src/pango.c, src/pango.x, src/vtexft.c
+ (*_set_text_font): take a VteTerminalAntiAlias argument.
+
+ ChangeLog | 7 +++++
+ src/vte.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++--------
+ src/vte.h | 13 +++++++++
+ src/vteapp.c | 21 +++++++++++++--
+ src/vtedraw.c | 5 ++-
+ src/vtedraw.h | 8 ++++-
+ src/vtefc.c | 46 +++++++++++++++++++++++++++++----
+ src/vtefc.h | 2 +
+ src/vteft2.c | 5 ++-
+ src/vtegl.c | 4 ++-
+ src/vteglyph.c | 5 +++-
+ src/vteglyph.h | 1 +
+ src/vtepango.c | 3 +-
+ src/vtepangox.c | 3 +-
+ src/vterdb.c | 2 +
+ src/vteskel.c | 3 +-
+ src/vtexft.c | 12 +++++---
+ 17 files changed, 179 insertions(+), 37 deletions(-)
+
+commit d3f6530caea122b7be6823565fa036e6badbfe50
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 20 05:12:59 2004 +0000
+
+ Added default signal handlers to VteTerminalClass (#137961). [NOTE: ABI
+
+ * src/vte.h src/vte.c: Added default signal handlers to VteTerminalClass
+ (#137961). [NOTE: ABI change.]
+ * src/vte.c(vte_terminal_configure_toplevel): don't re-invalidate everything,
+ apparently unnecessary (#122243). Might need to back this out if I
+ ever remember what specific combination of software and versions
+ prompted its addition in the first place.
+ * src/vte.c(vte_terminal_class_init): tell gettext that messages retrieved
+ from this domain should be returned in UTF-8 (#139542).
+
+ ChangeLog | 14 ++++++++-
+ configure.in | 1 +
+ src/vte.c | 93 ++++++++++++++++++++++++++++++++++++++-------------------
+ src/vte.h | 41 +++++++++++++++++++++++++
+ 4 files changed, 117 insertions(+), 32 deletions(-)
+
+commit bb25286687af0061c88ac58f66706a381c5c09a9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 20 05:08:43 2004 +0000
+
+ don't disable use of deprecated APIs unless asked to do so. add Meta case
+
+ * configure.in: don't disable use of deprecated APIs unless asked to do so.
+ * src/keymap.c(_vte_keymap_GDK_space): add Meta case (gafton).
+ * src/vtefc.c(_vte_fc_width_from_pango_stretch): add.
+ * src/vtefc.c(_vte_fc_transcribe_from_pango_font_description): handle
+ PangoStretch characteristics using _vte_fc_width_from_pango_stretch.
+ * src/vteregex.c: add random comments.
+ * src/vte.c(VteTerminal): track the "xn" terminal attribute.
+
+ ChangeLog | 16 ++-
+ Makefile.am | 3 +
+ configure.in | 3 +
+ doc/reference/tmpl/reaper.sgml | 14 +-
+ doc/reference/tmpl/vte.sgml | 420 ++++++++++++++++++++--------------------
+ src/keymap.c | 3 +
+ src/reflect.c | 18 ++
+ src/vte.c | 5 +
+ src/vtefc.c | 49 +++++-
+ src/vteregex.c | 13 ++
+ 10 files changed, 321 insertions(+), 223 deletions(-)
+
+commit 76d50af169334060e5f839698c39345c5efba3fa
+Author: Guntupalli Karunakar <karunakar src gnome org>
+Date: Sat Apr 10 09:38:27 2004 +0000
+
+ added gujarati translation
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 +++
+ po/gu.po | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 122 insertions(+), 1 deletions(-)
+
+commit 01061a7d846b83ae406e8bdbe93b88e44a451615
+Author: Gareth Owen <gowen src gnome org>
+Date: Sat Mar 20 16:59:57 2004 +0000
+
+ Added British translation
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/en_GB.po | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 122 insertions(+), 1 deletions(-)
+
+commit c6715f04849493c74030b2962b6cc3d11f8a909e
+Author: Mugurel Tudor <mugurelu go ro>
+Date: Thu Mar 18 21:31:23 2004 +0000
+
+ Updated Romanian translation by Misu Moldovan <dumol go ro>
+
+ 2004-03-18 Mugurel Tudor <mugurelu go ro>
+
+ * ro.po: Updated Romanian translation
+ by Misu Moldovan <dumol go ro>
+
+ po/ChangeLog | 5 +++++
+ po/ro.po | 58 +++++++++++++++++++++++++---------------------------------
+ 2 files changed, 30 insertions(+), 33 deletions(-)
+
+commit 00fc9d68adc68204c5b4a8ffafcfec409500171f
+Author: Nikos Charonitakis <frolix68 src gnome org>
+Date: Sun Mar 14 23:42:56 2004 +0000
+
+ Updated Greek translation
+
+ po/ChangeLog | 4 +++
+ po/el.po | 82 ++++++++++++++++++---------------------------------------
+ 2 files changed, 30 insertions(+), 56 deletions(-)
+
+commit bdc3d3de104a426e01b7e74e03388629d3c4099c
+Author: Alexander Winston <alexander winston comcast net>
+Date: Wed Mar 10 22:12:38 2004 +0000
+
+ Added en_CA to ALL_LINGUAS.
+
+ 2004-03-10 Alexander Winston <alexander winston comcast net>
+
+ * configure.in: Added en_CA to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit f59d9d6b1ea0ced7d1d434e0a24dabcbabc12f4f
+Author: Yuri Syrota <rasta src gnome org>
+Date: Wed Mar 10 15:44:20 2004 +0000
+
+ Updated Ukrainian translation
+
+ po/ChangeLog | 4 ++++
+ po/uk.po | 39 ++++++++++++++++++++-------------------
+ 2 files changed, 24 insertions(+), 19 deletions(-)
+
+commit f7294335cb044224853e1cc5a8caa1f7afeaf26f
+Author: Alexander Winston <alexander winston comcast net>
+Date: Wed Mar 10 04:01:12 2004 +0000
+
+ Added Canadian English translation at "19 translated messages" status.
+
+ 2004-03-09 Alexander Winston <alexander winston comcast net>
+
+ * en_CA.po: Added Canadian English translation at "19 translated
+ messages" status.
+
+ po/ChangeLog | 5 +++
+ po/en_CA.po | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 118 insertions(+), 0 deletions(-)
+
+commit 5413cc6645c64153fdfbe2f2e3342276fac7a741
+Author: Mətin Əmirov <metin karegen com>
+Date: Sat Mar 6 20:42:09 2004 +0000
+
+ Translation updated.
+
+ 2004-03-06 Mətin Əmirov <metin karegen com>
+
+ * az.po: Translation updated.
+
+ po/ChangeLog | 4 ++++
+ po/az.po | 10 +++++-----
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+commit ff4fbe8701473e0a1f041875c6de4bab32b085a4
+Author: Guntupalli Karunakar <karunakar src gnome org>
+Date: Thu Mar 4 09:41:53 2004 +0000
+
+ Added Punjabi translation
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 +++
+ po/pa.po | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 123 insertions(+), 1 deletions(-)
+
+commit f97dca76f2d3709aa19994dab379042a3e210c79
+Author: Görkem Çetin <gorkem src gnome org>
+Date: Mon Mar 1 05:04:40 2004 +0000
+
+ CVS_SILENT
+
+ po/tr.po | 73 +++++++++++++++++++++----------------------------------------
+ 1 files changed, 25 insertions(+), 48 deletions(-)
+
+commit 9d5550277d2fdf8fd0b7cdb9d06df70713da8206
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Mon Feb 23 09:42:38 2004 +0000
+
+ Revised Albanian translation
+
+ * sq.po: Revised Albanian translation
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit f82631a02f02a3b556bd2d6d9bd8ee6579c92f2f
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Mon Feb 23 09:40:40 2004 +0000
+
+ Korrigjime
+
+ po/sq.po | 28 +++++++++++++---------------
+ 1 files changed, 13 insertions(+), 15 deletions(-)
+
+commit e294a40d174c07ba5a5d0e6eaef634786a7f9079
+Author: Kwok-Koon Cheung <baddog src gnome org>
+Date: Mon Feb 23 00:46:19 2004 +0000
+
+ Fix kn.po header
+
+ po/ChangeLog | 6 +++++-
+ po/kn.po | 2 +-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 85140f1282385dc155b978f4c49f498d05b75d74
+Author: Denis Lackovic <delacko src gnome org>
+Date: Sat Feb 7 21:41:35 2004 +0000
+
+ *** empty log message ***
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++++
+ po/hr.po | 8 ++++----
+ 4 files changed, 13 insertions(+), 5 deletions(-)
+
+commit 779ee126f4f768f1cc6435fc476b87f48430cdd9
+Author: Martin Kretzschmar <mkretzschmar src gnome org>
+Date: Mon Feb 2 20:41:33 2004 +0000
+
+ use gtk-doc in xml-mode.
+
+ * docs/reference/Makefile.am: use gtk-doc in xml-mode.
+
+ * docs/reference/vte-docs.sgml: sgml->xml, update to DocBook XML
+ 4.1.2 DTD (fixes Bug #132945)
+
+ ChangeLog | 7 +++++++
+ doc/reference/Makefile.am | 8 ++++----
+ doc/reference/vte-docs.sgml | 25 ++++++++++++++-----------
+ 3 files changed, 25 insertions(+), 15 deletions(-)
+
+commit e0fe18764a7ee603ff99dbf5fea0255dc8af652e
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Mon Feb 2 15:04:46 2004 +0000
+
+ Updated Albanian translation
+
+ * sq.po: Updated Albanian translation
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 0c31cf5c2a5877ab4cf696c4c4a2edfa400e073c
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Mon Feb 2 15:03:30 2004 +0000
+
+ Updated
+
+ po/sq.po | 53 +++++++++++------------------------------------------
+ 1 files changed, 11 insertions(+), 42 deletions(-)
+
+commit fa623bb77d42e806a0e74f5b732263df9337cc29
+Author: Alastair McKinstry <alastairmck src gnome org>
+Date: Mon Feb 2 10:10:27 2004 +0000
+
+ Added Irish translation
+
+ ChangeLog | 5 +++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/ga.po | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 123 insertions(+), 1 deletions(-)
+
+commit 0771398195dddf5aba89477cb30ef5f76bdfeb7b
+Author: Mətin Əmirov <metin karegen com>
+Date: Sat Jan 31 19:16:14 2004 +0000
+
+ Translation updated.
+
+ 2004-01-31 Mətin Əmirov <metin karegen com>
+
+ * az.po: Translation updated.
+
+ po/ChangeLog | 4 ++++
+ po/az.po | 32 ++++++++++++++++----------------
+ 2 files changed, 20 insertions(+), 16 deletions(-)
+
+commit 3655aad027b04b16acee664ef5c629f4b07bad91
+Author: Miloslav Trmac <mitr src gnome org>
+Date: Wed Jan 28 11:41:41 2004 +0000
+
+ Fixed Czech translation
+
+ po/ChangeLog | 4 ++++
+ po/cs.po | 46 ++++++++++++++++++++++++----------------------
+ 2 files changed, 28 insertions(+), 22 deletions(-)
+
+commit 052419a211095720e46f4697c3efaec745ef1b82
+Author: Åsmund Skjæveland <aasmunds fys uio no>
+Date: Tue Jan 27 09:24:33 2004 +0000
+
+ Added 'nn' to ALL_LINGUAS Added Norwegian Nynorsk translation.
+
+ 2004-01-27 Åsmund Skjæveland <aasmunds fys uio no>
+
+ * configure.in: Added 'nn' to ALL_LINGUAS
+ * po/nn.po: Added Norwegian Nynorsk translation.
+
+ ChangeLog | 9 ++++-
+ configure.in | 2 +-
+ po/ChangeLog | 8 +++-
+ po/nn.po | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 129 insertions(+), 5 deletions(-)
+
+commit 067189059bfea170068cfa0c291fdfe89e6cd595
+Author: Roozbeh Pournader <roozbeh sharif edu>
+Date: Sat Jan 3 16:39:30 2004 +0000
+
+ Updated Persian translation.
+
+ 2004-01-03 Roozbeh Pournader <roozbeh sharif edu>
+
+ * fa.po: Updated Persian translation.
+
+ po/ChangeLog | 4 ++++
+ po/fa.po | 50 +++++++++++++++++++++++++-------------------------
+ 2 files changed, 29 insertions(+), 25 deletions(-)
+
+commit 1b5b3fa53d3699dc00b2a942c083b3f6c8d4c04c
+Author: Duarte Loreto <happyguy_pt hotmail com>
+Date: Fri Jan 2 22:57:18 2004 +0000
+
+ Revised Portuguese translation.
+
+ 2004-01-02 Duarte Loreto <happyguy_pt hotmail com>
+
+ * pt.po: Revised Portuguese translation.
+
+ po/ChangeLog | 4 ++
+ po/pt.po | 89 +++++++++++++++++++---------------------------------------
+ 2 files changed, 33 insertions(+), 60 deletions(-)
+
+commit c75c923b42e7bcb0df95ffd9ffa6dd43c3015426
+Author: Görkem Çetin <gorkem src gnome org>
+Date: Sun Dec 28 21:05:40 2003 +0000
+
+ CVS_SILENT
+
+ po/tr.po | 39 ++++++++++++++++++++-------------------
+ 1 files changed, 20 insertions(+), 19 deletions(-)
+
+commit cb4431ef509871590b0f9fca9ea3ce60ef708b16
+Author: Arafat Medini <lumina silverpen de>
+Date: Sat Dec 20 15:53:27 2003 +0000
+
+ Added Arabic translation
+
+
+ 2003-12-20 Arafat Medini <lumina silverpen de>
+
+ * ar.po: Added Arabic translation
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/ar.po | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 125 insertions(+), 1 deletions(-)
+
+commit 580046c70f07b977ebf5aea26360434cc9feae73
+Author: T�ivo Leedj�rv <toivo linux ee>
+Date: Wed Dec 10 21:40:07 2003 +0000
+
+ Added et to ALL_LINGUAS.
+
+ 2003-12-10 T�ivo Leedj�rv <toivo linux ee>
+
+ * configure.in: Added et to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit e6671b0e4f3f037bf207be019f52d4cde032f259
+Author: T�ivo Leedj�rv <toivo linux ee>
+Date: Wed Dec 10 21:39:25 2003 +0000
+
+ Added Estonian translation by Allan Sims <allsi eau ee>.
+
+ 2003-12-10 T�ivo Leedj�rv <toivo linux ee>
+
+ * et.po: Added Estonian translation
+ by Allan Sims <allsi eau ee>.
+
+ po/ChangeLog | 5 +++
+ po/et.po | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 118 insertions(+), 0 deletions(-)
+
+commit 2660fc0592cbde61a52558f5d2f883f90a0eff7e
+Author: Iñaki Larrañaga <dooteo euskalgnu org>
+Date: Sat Dec 6 12:22:42 2003 +0000
+
+ Added "eu" (Basque) to ALL_LINGUAS.
+
+
+ 2003-12-06 Iñaki Larrañaga <dooteo euskalgnu org>
+
+ * configure.in: Added "eu" (Basque) to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 08aac74397faf9d0f7f1a6082b99baf0970c4585
+Author: Iñaki Larrañaga <dooteo euskalgnu org>
+Date: Sat Dec 6 12:19:29 2003 +0000
+
+ Added Basque (eu) translation by Alberto Fernandez <afernn euskalnet net>.
+
+
+ 2003-12-06 Iñaki Larrañaga <dooteo euskalgnu org>
+
+ * eu.po: Added Basque (eu) translation by
+ Alberto Fernandez <afernn euskalnet net>.
+
+ po/ChangeLog | 5 ++
+ po/eu.po | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 121 insertions(+), 0 deletions(-)
+
+commit 975b0852249604153eb2922a2ffdb61250f8f327
+Author: Dmitry Mastrukov <dmitrym src gnome org>
+Date: Tue Nov 18 04:57:27 2003 +0000
+
+ ru.po: Updated Russian translation from Russian team <gnome-cyr gnome org>.
+
+ po/ChangeLog | 5 ++
+ po/ru.po | 159 +++++++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 95 insertions(+), 69 deletions(-)
+
+commit 4368ab204d5870fd30cb5b8af9c47f68243a0280
+Author: Dmitry Mastrukov <dmitrym src gnome org>
+Date: Fri Nov 14 05:56:44 2003 +0000
+
+ ru.po: Updated Russian translation from Russian team <gnome-cyr gnome org>.
+
+ po/ChangeLog | 5 ++
+ po/ru.po | 151 +++++++++++++++++++++++++---------------------------------
+ 2 files changed, 70 insertions(+), 86 deletions(-)
+
+commit f6577c41d7f2a0e44efff8e88cca3c558c5c18bb
+Author: Denis Lackovic <delacko src gnome org>
+Date: Mon Nov 10 16:04:34 2003 +0000
+
+ croatian translations updated
+
+ po/hr.po | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 93dbe845c3d5075255a7f1959f2df1fd389f40d7
+Author: Denis Lackovic <delacko src gnome org>
+Date: Fri Nov 7 18:21:52 2003 +0000
+
+ croatian translations added
+
+ po/hr.po | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 112 insertions(+), 0 deletions(-)
+
+commit a9fc418979a75179b20e622232e684e616a5df05
+Author: Yogeesh MB <yogeeshmb src gnome org>
+Date: Fri Oct 17 07:15:35 2003 +0000
+
+ Added Kannada translations
+
+ po/ChangeLog | 4 ++
+ po/kn.po | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 118 insertions(+), 0 deletions(-)
+
+commit 2d825d132ed09cc298bc09f553ef6915fe12734d
+Author: Christian Rose <menthos menthos com>
+Date: Tue Oct 14 10:46:15 2003 +0000
+
+ Added "ne" to ALL_LINGUAS. Added Nepali translation by Pawan Chitrakar
+
+ 2003-10-14 Christian Rose <menthos menthos com>
+
+ * configure.in: Added "ne" to ALL_LINGUAS.
+ * po/ne.po: Added Nepali translation by
+ Pawan Chitrakar <pawan nplinux org>.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 +++
+ po/ne.po | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 118 insertions(+), 1 deletions(-)
+
+commit ae74f4da61fc65a80842df7539ae6120a3d03d29
+Author: Žygimantas Beručka <uid0 tuxfamily org>
+Date: Tue Oct 7 13:02:06 2003 +0000
+
+ Added "lt" to ALL_LINGUAS. Added Lithuanian translation by Tomas Kuliavas.
+
+ 2003-10-07 Žygimantas Beručka <uid0 tuxfamily org>
+
+ * configure.in: Added "lt" to ALL_LINGUAS.
+ * po/lt.po: Added Lithuanian translation by Tomas Kuliavas.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 +++
+ po/lt.po | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 125 insertions(+), 1 deletions(-)
+
+commit 8c91a8260dacec3774c778bf784abc13fea8112e
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Fri Sep 26 21:57:17 2003 +0000
+
+ Updated Albanian translation
+
+ * sq.po: Updated Albanian translation
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 6ebe67e37c3bc9d475b36334fb767cdc499acbd0
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Fri Sep 26 21:55:22 2003 +0000
+
+ Updated
+
+ po/sq.po | 83 ++++++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 44 insertions(+), 39 deletions(-)
+
+commit 64bf8531461a2da80a9cf0be02bb7659b6236e90
+Author: Andras Timar <timar gnome hu>
+Date: Fri Sep 26 08:46:50 2003 +0000
+
+ Added Hungarian translation.
+
+ 2003-09-25 Andras Timar <timar gnome hu>
+
+ * hu.po: Added Hungarian translation.
+
+ po/ChangeLog | 4 ++
+ po/hu.po | 88 ++++++++++++++++++----------------------------------------
+ 2 files changed, 31 insertions(+), 61 deletions(-)
+
+commit 776726695a1ebb5c32ad529278fa9540e2a5887d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Sep 15 18:57:33 2003 +0000
+
+ add options for exercising the cursor and highlight colors. flush output
+
+ * src/vteapp.c: add options for exercising the cursor and highlight colors.
+ * src/debug.c: flush output streams when we check if debugging is enabled,
+ because we'll probably output a string next.
+ * src/iso2022.c: don't print a zero-length string. Yay compiler warnings.
+ * src/interpret.c: use g_print() instead of fprintf() to print.
+ * src/keymap.c,src/ssfe.c: include <stdarg.h>, hopefully fixing bug #121880
+ (or not).
+
+ ChangeLog | 11 +++++++++++
+ doc/readme.txt | 2 ++
+ src/debug.c | 6 +++++-
+ src/interpret.c | 28 ++++++++++++++--------------
+ src/iso2022.c | 3 ---
+ src/keymap.c | 1 +
+ src/ssfe.c | 2 ++
+ src/vteapp.c | 27 +++++++++++++++++++++++----
+ 8 files changed, 58 insertions(+), 22 deletions(-)
+
+commit 47c5f6d0a8ffa93263ac62c707de265ef7e2cbea
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Sep 15 18:52:24 2003 +0000
+
+ add specs for set_color_cursor and set_color_highlight.
+
+ * python/vte.defs: add specs for set_color_cursor and set_color_highlight.
+
+ ChangeLog | 4 ++++
+ python/vte.defs | 18 ++++++++++++++++++
+ 2 files changed, 22 insertions(+), 0 deletions(-)
+
+commit 2227ee86b3257a05c3cc331f1e756abc84fcb721
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Sep 15 18:51:29 2003 +0000
+
+ add vte_terminal_set_color_cursor. add vte_terminal_set_color_highlight
+
+ * src/vte.h,src/vte.c: add vte_terminal_set_color_cursor.
+ * src/vte.h,src/vte.c: add vte_terminal_set_color_highlight (#69776).
+ * src/vte.c(vte_terminal_determine_colors): add parameters for specifying if
+ the cell being rendered is the cursor or is highlighted, probably for
+ being selected. If either flag is set, and we've been given a color to
+ use for the purpose by a caller, use the supplied color, else use
+ inverse colors.
+
+ ChangeLog | 9 ++++
+ src/vte.c | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
+ src/vte.h | 4 ++
+ 3 files changed, 124 insertions(+), 14 deletions(-)
+
+commit ac5d608cdbe0da02d42d65cfeec538681cdedca7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Sep 15 14:10:48 2003 +0000
+
+ don't reset the conversion state when we hit an end-of-line. I wasn't
+
+ * src/iso2022.c(process_control): don't reset the conversion state when we hit
+ an end-of-line. I wasn't reading RFC1468 closely enough, as it states
+ that each line begins in the same encoding as the end of the previous
+ line, and read "application should reset before end-of-line" as
+ "terminal resets at end-of-line" (bug #122156).
+
+ ChangeLog | 7 +++++++
+ src/iso2022.c | 33 +++++++++++++++++++++++++++------
+ 2 files changed, 34 insertions(+), 6 deletions(-)
+
+commit 7fab81108d2af2a6f204464211148820253d1969
+Author: Nguyen Thai Ngoc Duy <pclouds src gnome org>
+Date: Sat Sep 13 14:42:37 2003 +0000
+
+ update vte.vi
+
+ po/vi.po | 37 +++++++++++++++++++------------------
+ 1 files changed, 19 insertions(+), 18 deletions(-)
+
+commit 3f890cec536d2b2ca8c383531ee16f9ae29ca3e7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 11 20:48:38 2003 +0000
+
+ silence a compiler warning.
+
+ * src/vteapp.c: silence a compiler warning.
+
+ ChangeLog | 3 +++
+ src/vteapp.c | 10 ++++++++--
+ 2 files changed, 11 insertions(+), 2 deletions(-)
+
+commit c52b22bd193f2372081690339171bf34903f9b0a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 11 20:45:04 2003 +0000
+
+ ask for LC_* in addition to LANG if weird spacing errors crop up. add
+
+ * README: ask for LC_* in addition to LANG if weird spacing errors crop up.
+ * src/vteconv.c,src/vteconv.h: add wrappers for _vte_conv which weed out some
+ compiler warnings.
+ * src/iso2022.c: use _vte_conv_cu instead of _vte_conv.
+ * src/trie.c: use _vte_conv_cu instead of _vte_conv.
+ * src/vte.c: give _vte_terminal_fudge_pango_colors a return type again.
+ * src/vtebg.c: ifdef out vte_bg_source_name, which is unused.
+ * src/vtebg.c,src/vterdb.c: wrap calls to gdk_property_get to weed out some
+ compiler warnings.
+
+ ChangeLog | 12 ++++++++++++
+ README | 2 +-
+ src/iso2022.c | 6 +++---
+ src/trie.c | 2 +-
+ src/vte.c | 1 +
+ src/vtebg.c | 27 +++++++++++++++++----------
+ src/vteconv.c | 30 ++++++++++++++++++++++++++++++
+ src/vteconv.h | 9 +++++++++
+ src/vterdb.c | 18 +++++++++++++++---
+ 9 files changed, 89 insertions(+), 18 deletions(-)
+
+commit 47cdbfa5cc03903bb2a3ce43a258c577a0103192
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 11 19:22:29 2003 +0000
+
+ properly resolve colors and cell properties to drawing colors. add a
+
+ * src/vte.c(vte_terminal_draw_cells_with_attributes): properly resolve colors
+ and cell properties to drawing colors.
+ * src/vte.c(_vte_terminal_fudge_pango_colors): add a function for mapping GTK+
+ white-on-black preedit text to default reverse-colored text for the
+ terminal.
+ * src/vte.c(_vte_terminal_translate_pango_cells): don't bother doing anything
+ with the attribute for a range if the list is NULL. Fudge
+ white-on-black text to default colors in reverse so that it works when
+ the terminal is in a black-on-white color scheme.
+
+ ChangeLog | 11 ++++++++
+ src/vte.c | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++---------
+ 2 files changed, 84 insertions(+), 13 deletions(-)
+
+commit f92917c8b4c52fb371335f2c66e25819ac231b69
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 11 18:22:06 2003 +0000
+
+ map weight attributes to the terminal's bold attribute.
+
+ * src/vte.c(_vte_terminal_apply_pango_attr): map weight attributes to the
+ terminal's bold attribute.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 9 +++++++++
+ 2 files changed, 13 insertions(+), 0 deletions(-)
+
+commit c9a838b195eac58b11db84d77cdcd321daf8ebf8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 11 16:45:51 2003 +0000
+
+ add. don't discard the attributes list for the preedit string -- save
+
+ * src/vte.c(_vte_terminal_map_pango_color): add.
+ * src/vte.c(vte_terminal_im_preedit_changed): don't discard the attributes
+ list for the preedit string -- save them.
+ * src/vte.c(vte_terminal_draw_cells_with_attributes): add.
+ * src/vte.c(vte_terminal_paint): use draw_cells_with_attributes to use the
+ preedit attributes list when drawing the preedit string. This changes
+ the way the preedit string is presented to the user, but it now looks
+ [more] like GTK+ suggests it should look, so it should be a good change.
+
+ ChangeLog | 11 +++
+ src/vte.c | 216 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 213 insertions(+), 14 deletions(-)
+
+commit 1b843342150f65a772a09c821411516d06516e3d
+Author: Pablo Saratxaga <pablo src gnome org>
+Date: Wed Sep 10 20:10:44 2003 +0000
+
+ enabled header
+
+ po/ru.po | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit a68abf5b87551d60e1c50bd045fbca482320e226
+Author: Pablo Saratxaga <pablo src gnome org>
+Date: Wed Sep 10 20:10:06 2003 +0000
+
+ updated Vietnamese file
+
+ po/ChangeLog | 4 ++++
+ po/vi.po | 54 +++++++++++++++++++++++++++---------------------------
+ 2 files changed, 31 insertions(+), 27 deletions(-)
+
+commit b827b2d0278208d17bfb2659a228345ee561bd26
+Author: Mugurel Tudor <mugurelu src gnome org>
+Date: Tue Sep 2 20:59:25 2003 +0000
+
+ *** empty log message ***
+
+ po/ChangeLog | 5 +++
+ po/ro.po | 88 +++++++++++++++++++++------------------------------------
+ 2 files changed, 38 insertions(+), 55 deletions(-)
+
+commit 84be499c9d9b55dd11449d4935fece47b3b39024
+Author: Pablo Gonzalo del Campo <pablodc bigfoot com>
+Date: Thu Aug 28 14:30:02 2003 +0000
+
+ Revision of Spanish translation by Francisco Javier F. Serrador
+
+ 2003-08-28 Pablo Gonzalo del Campo <pablodc bigfoot com>
+
+ * es.po: Revision of Spanish translation by
+ Francisco Javier F. Serrador <serrador arrakis es>.
+
+ po/ChangeLog | 5 +++++
+ po/es.po | 45 +++++++++++++++++++++++----------------------
+ 2 files changed, 28 insertions(+), 22 deletions(-)
+
+commit 1a6e7cfac60c34e07d36ce8fe7ee9872b908ad91
+Author: Sanlig Badral <badaa src gnome org>
+Date: Sun Aug 24 00:09:48 2003 +0000
+
+ Updated mn translation.
+
+ po/ChangeLog | 4 +++
+ po/mn.po | 69 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 40 insertions(+), 33 deletions(-)
+
+commit ec892f3bdcabf5255b1915458a535a4a9be8525c
+Author: Changwoo Ryu <cwryu src gnome org>
+Date: Sat Aug 23 18:41:17 2003 +0000
+
+ Updated Korean translation.
+
+ * ko.po: Updated Korean translation.
+
+ po/ChangeLog | 4 ++++
+ po/ko.po | 56 ++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 32 insertions(+), 28 deletions(-)
+
+commit 4030755b729edf86e657efc9c2104a7d81526ada
+Author: Andraz Tori <minmax src gnome org>
+Date: Sat Aug 23 17:32:37 2003 +0000
+
+ Updated Slovenian translation
+
+ po/sl.po | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 42f01163d77ee0b58bf149b7d67a73a78bdde02d
+Author: Andraz Tori <minmax src gnome org>
+Date: Sat Aug 23 17:16:08 2003 +0000
+
+ Updated Slovenian translation
+
+ po/sl.po | 68 +++++++++++++++++++++++++++++++-------------------------------
+ 1 files changed, 34 insertions(+), 34 deletions(-)
+
+commit 674dc22dddcc40a54ce0d3a97b6e2f95e092fb07
+Author: Stano Visnovsky <stano src gnome org>
+Date: Fri Aug 22 06:21:46 2003 +0000
+
+ Also update the translation :-((
+
+ po/sk.po | 99 ++++++++++++++++++++++---------------------------------------
+ 1 files changed, 36 insertions(+), 63 deletions(-)
+
+commit a3d3b89b1817b8827ed86ac9bd78d8adbd2a7bf7
+Author: Stanislav Visnovsky <visnovsky nenya ms mff cuni cz>
+Date: Fri Aug 22 06:21:10 2003 +0000
+
+ Update Slovak translation.
+
+ 2003-08-22 Stanislav Visnovsky <visnovsky nenya ms mff cuni cz>
+
+ * sk.po: Update Slovak translation.
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 71577720aff198343cc94797f7c636cea623bf3e
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Wed Aug 20 13:34:15 2003 +0000
+
+ Update Norwegian translation.
+
+ 2003-08-20 Kjartan Maraas <kmaraas gnome org>
+
+ * no.po: Update Norwegian translation.
+
+ po/ChangeLog | 4 +++
+ po/no.po | 83 +++++++++++++++++++---------------------------------------
+ 2 files changed, 31 insertions(+), 56 deletions(-)
+
+commit 7d2f8c81aeacf58edb470253001b046808f79de9
+Author: Kwok-Koon Cheung <baddog src gnome org>
+Date: Mon Aug 18 16:49:54 2003 +0000
+
+ Updated traditional Chinese translation.
+
+ * zh_TW.po: Updated traditional Chinese translation.
+
+ po/ChangeLog | 4 ++++
+ po/zh_TW.po | 49 +++++++++++++++++++++++++------------------------
+ 2 files changed, 29 insertions(+), 24 deletions(-)
+
+commit 1c940776305e11747ebe5052652b6296b6e3e076
+Author: Metin Amiroff <metin karegen com>
+Date: Mon Aug 18 10:57:12 2003 +0000
+
+ Updated Azerbaijani translation.
+
+ 2003-08-18 Metin Amiroff <metin karegen com>
+
+ * az.po: Updated Azerbaijani translation.
+
+ po/ChangeLog | 4 ++++
+ po/az.po | 46 +++++++++++++++++++++-------------------------
+ 2 files changed, 25 insertions(+), 25 deletions(-)
+
+commit 2b77e416c12119396be80d01d1f25932bf57ac4e
+Author: Evandro Fernandes Giovanini <evandrofg ig com br>
+Date: Sun Aug 17 03:47:44 2003 +0000
+
+ Updated Brazilian Portuguese translation.
+
+ 2003-08-17 Evandro Fernandes Giovanini <evandrofg ig com br>
+
+ * pt_BR.po: Updated Brazilian Portuguese translation.
+
+ po/ChangeLog | 4 +++
+ po/pt_BR.po | 70 +++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 39 insertions(+), 35 deletions(-)
+
+commit 3df7fa7f219d8dcad5a89f573ece5ea59a832182
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 13 05:50:15 2003 +0000
+
+ add sequences for linux-console-cursor-attributes, which we'll ignore (bug
+
+ * src/caps.c: add sequences for linux-console-cursor-attributes, which we'll
+ ignore (bug #108232).
+
+ ChangeLog | 4 ++++
+ src/caps.c | 2 ++
+ src/vte.c | 1 +
+ 3 files changed, 7 insertions(+), 0 deletions(-)
+
+commit 54a1c9d3e0b13f9d110280e25b33536331661fe5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 13 05:05:21 2003 +0000
+
+ if we don't find the python headers (even if we found python), disable
+
+ * configure.in: if we don't find the python headers (even if we found python),
+ disable compilation of python bindings (bug #116756). Make the checks
+ for python support sequential for easier maintenance.
+ * python/vte.defs: add def for vte_terminal_match_set_cursor_type. Make the
+ color argument to vte_terminal_set_background_tint_color const.
+ * python/vte.override(_wrap_vte_terminal_forkpty): add.
+ * python/vte.override(_wrap_vte_terminal_fork_command): don't leak envv.
+
+ ChangeLog | 9 +++++++
+ configure.in | 59 ++++++++++++++++++++++++++++++--------------------
+ python/vte.defs | 25 ++++++++++++++++++++-
+ python/vte.override | 55 +++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 123 insertions(+), 25 deletions(-)
+
+commit 23eec8755cab0e9c9c64c9fd4b89889b9f6e0be1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 13 04:20:18 2003 +0000
+
+ doc update to note that directory and envv can be NULL for both.
+
+ * src/vte.c(vte_terminal_fork_command,vte_terminal_forkpty): doc update to note
+ that directory and envv can be NULL for both.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 7 ++++---
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+commit 53e026ce9cf40ca2ce3c265e20c58be58e97bef7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 13 04:16:58 2003 +0000
+
+ if -S is passed, use forkpty to start a child that just counts until
+
+ * src/vteapp.c(main): if -S is passed, use forkpty to start a child that just
+ counts until killed with Ctrl-C.
+
+ ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit bfabf9b46cd6739d974a0ce727278951f1fedbc7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 13 04:15:26 2003 +0000
+
+ exit on any error, to avoid leaving random unreaped children running.
+
+ * src/pty.c(_vte_pty_run_on_pty): exit on any error, to avoid leaving random
+ unreaped children running. Accept NULL command indicating that no
+ exec() should occur, but still error out if command isn't NULL and
+ exec() fails.
+ * src/pty.c(_vte_pty_fork_on_pty_name,_vte_pty_fork_on_pty_fd): store 0 as the
+ new child's PID if we're the child.
+ * src/pty.c(main): don't run "tty" by default, test the forkpty() case instead.
+ * src/vte.c(vte_terminal_fork_command): rename to _vte_terminal_fork_basic.
+ Remove code to replace NULL command with the user's shell.
+ * src/vte.c(vte_terminal_fork_command): new (sort of)! wrap
+ _vte_terminal_fork_basic, replacing a NULL command with the user's
+ shell.
+ * src/vte.c(vte_terminal_forkpty),src/vte.h: new! wrap _vte_terminal_fork_basic,
+ passing NULL for the command and argv arguments (bug #116450).
+ * src/Makefile.am: update shared library version.
+ * doc/reference/vte-sections.txt: add vte_terminal_forkpty.
+
+ ChangeLog | 21 ++++
+ doc/reference/tmpl/vte.sgml | 14 +++
+ doc/reference/vte-sections.txt | 1 +
+ src/Makefile.am | 10 +-
+ src/pty.c | 222 ++++++++++++++++++++++++----------------
+ src/vte.c | 151 +++++++++++++++++++--------
+ src/vte.h | 7 ++
+ src/vteapp.c | 72 ++++++++++---
+ 8 files changed, 345 insertions(+), 153 deletions(-)
+
+commit 99444442a83f4422ccad6d626d8983cf9667823c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 13 04:06:39 2003 +0000
+
+ if <ft2build.h> isn't found, then we can't use any freetype-specific bits,
+
+ * configure.in: if <ft2build.h> isn't found, then we can't use any
+ freetype-specific bits, and that's not useful. Error out, and say
+ that we need freetype 2.0.2 or newer, which introduced this header
+ into the procedure (bug #116341).
+
+ ChangeLog | 6 ++++++
+ configure.in | 5 ++++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit ed3e478cd5d03e9c4abd514e6f8d5228f1cebe62
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 13 02:07:04 2003 +0000
+
+ don't create an accessible peer at init() time in debug mode. add a field
+
+ * src/vte.c: don't create an accessible peer at init() time in debug mode.
+ * gnome-pty-helper/gnome-pty-helper.c(struct pty_info): add a field to keep
+ track of whether or not we created a lastlog record (bug #116091).
+ * gnome-pty-helper/gnome-pty-helper.c(shutdown_pty): also try to write a logout
+ record if pi->lastlog is true, because in doing so we free pi->data,
+ closing a leak (bug #116091).
+
+ ChangeLog | 9 +++++++++
+ gnome-pty-helper/gnome-pty-helper.c | 9 +++++----
+ src/vte.c | 4 ++--
+ 3 files changed, 16 insertions(+), 6 deletions(-)
+
+commit b9cb58a14dd7a0ead9635174db49c53e73233390
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 13 01:34:55 2003 +0000
+
+ don't add the padding in when calculating the new window size.
+
+ * src/vteapp.c(resize_window): don't add the padding in when calculating the
+ new window size.
+
+ ChangeLog | 4 ++++
+ src/vteapp.c | 8 ++++++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+commit 6ab10dbe84b5b6ad57ed0fdfdde701a087b1ce9d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 13 01:28:36 2003 +0000
+
+ note that dimensions passed in with the resize-window signal include
+
+ * doc/reference/tmpl/vte.sgml: note that dimensions passed in with the
+ resize-window signal include padding (more of bug #119141).
+
+ ChangeLog | 4 ++++
+ doc/reference/tmpl/vte.sgml | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 21d67c812337f527de39265ce6f50b3eb92415a5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 13 01:22:26 2003 +0000
+
+ remove redundant type checks. return a boolean indicating whether or not
+
+ * src/vte.c(vte_sequence_handler_character_attributes,
+ vte_sequence_handler_decset_internal): remove redundant type checks.
+ * src/vte.c(all signal handlers): return a boolean indicating whether or not
+ to exit the processing loop instance early to allow the application to
+ deal with some input (usually along the lines of a signal requesting
+ that the terminal be resized) (bug #118938).
+
+ ChangeLog | 10 +-
+ src/vte.c | 756 ++++++++++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 460 insertions(+), 306 deletions(-)
+
+commit 6b1e929885a8ce5d07207a4e5dacb76fe14646ec
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 12 22:10:04 2003 +0000
+
+ reorder arguments to match the order for the C versions (#118882). fix
+
+ * python/vte.override(get_text,get_text_range): reorder arguments to match
+ the order for the C versions (#118882).
+ * python/vte.override(get_text,get_text_range,call_callback): fix refcounting
+ and callback argument marshalling (bug #118882).
+ * python/vte-demo.py: exercies get_text() on "window-raise" signals.
+
+ ChangeLog | 7 ++
+ python/vte-demo.py | 12 ++++
+ python/vte.override | 177 ++++++++++++++++++++++++++------------------------
+ 3 files changed, 111 insertions(+), 85 deletions(-)
+
+commit 56a84e5e113ac16c28c79d762d01e2bf0c15da42
+Author: Padraig O'Briain <padraig obriain sun com>
+Date: Tue Aug 12 13:17:33 2003 +0000
+
+ New function containing initialization code previously in
+
+ 2003-08-12 Padraig O'Briain <padraig obriain sun com>
+
+ * src/vteaccess.c:
+ (vte_terminal_initialize): New function containing initialization code
+ previously in vte_terminal_accessible_new. Also set role in
+ this function.
+ (vte_terminal_accessible_class_init): Specify function pointer for
+ vte_terminal_initialize.
+ (vte_terminal_accessible_get_type): Do not set instance data size or
+ GInstanceInitFunc. Remove vte_terminal_accessible_init.
+
+ This fixes bug #119694.
+
+ ChangeLog | 13 +++++++
+ src/vteaccess.c | 100 ++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 65 insertions(+), 48 deletions(-)
+
+commit d574a21aae2d1201772394d8900083f1517dec1f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 11 19:35:03 2003 +0000
+
+ add binding for get_padding() (bug #118834).
+
+ * python/vte.override: add binding for get_padding() (bug #118834).
+
+ ChangeLog | 3 +++
+ python/vte.override | 15 +++++++++++++++
+ 2 files changed, 18 insertions(+), 0 deletions(-)
+
+commit f66cbcac552c13cc87c0275c833dd7b0514a22b4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 11 19:31:06 2003 +0000
+
+ add binding for get_cursor_position() (bug #118800).
+
+ * python/vte.override: add binding for get_cursor_position() (bug #118800).
+
+ ChangeLog | 4 ++++
+ python/vte.override | 16 ++++++++++++++++
+ 2 files changed, 20 insertions(+), 0 deletions(-)
+
+commit 12d3080b535d3cac358f10f6eeed222b547a28e1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 11 19:27:42 2003 +0000
+
+ give length parameters for feed() and feed_child() default values of -1
+
+ * python/vte.defs: give length parameters for feed() and feed_child() default
+ values of -1 (bug #118711).
+ * python/vte.override: use the length parameter if it's supplied to the feed()
+ and feed_child() methods.
+
+ ChangeLog | 6 ++++++
+ python/vte.defs | 4 ++--
+ python/vte.override | 20 ++++++++++++++++++++
+ 3 files changed, 28 insertions(+), 2 deletions(-)
+
+commit 4fda439d4cae15a883225f48e42f8d94e6583b85
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 11 19:19:22 2003 +0000
+
+ add overrides for feed() and feed_child() methods which use the length of
+
+ * python/vte.override: add overrides for feed() and feed_child() methods which
+ use the length of the string as given in C, to hopefully allow passing
+ NUL bytes around as part of strings (bug #118711). Make the length
+ parameter optional, and ignored, to try to avoid breaking existing
+ Python code in an obvious way.
+
+ ChangeLog | 7 +++++++
+ python/vte.override | 38 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 45 insertions(+), 0 deletions(-)
+
+commit 6673b67fda3b1974cdab4a369dc7d866b34104c4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 11 18:55:29 2003 +0000
+
+ drop an unnecessary cast-and-check, which we don't need because we have no
+
+ * src/vte.c(vte_terminal_start_selection,vte_terminal_extend_selection): drop
+ an unnecessary cast-and-check, which we don't need because we have no
+ use for the GtkWidget pointer to the terminal. Fix initial shift-click
+ (bug #118106).
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 58 +++++++++++++++++++++++++++++++++++++---------------------
+ 2 files changed, 43 insertions(+), 21 deletions(-)
+
+commit ec49da165a83192a802a88ec111a72283cc688a1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 11 16:17:35 2003 +0000
+
+ error out if we don't find ncurses, curses, or libtermcap development
+
+ * configure.in: error out if we don't find ncurses, curses, or libtermcap
+ development headers (bug #117754).
+
+ ChangeLog | 4 ++++
+ configure.in | 5 ++++-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit 583c3fa685a4210621973f9718ac2c715abf3807
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 11 16:06:49 2003 +0000
+
+ export WANT_AUTOCONF_2_5 for the sake of Mandrake autoconf wrapper (bug
+
+ * autogen.sh: export WANT_AUTOCONF_2_5 for the sake of Mandrake autoconf
+ wrapper (bug #119066).
+
+ ChangeLog | 4 ++++
+ autogen.sh | 3 +++
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit 3cb9fd6106fc89f14c0c192c4fdf89c2a55d55ee
+Author: Wang Jian <lark src gnome org>
+Date: Sat Aug 9 10:39:05 2003 +0000
+
+ *** empty log message ***
+
+ po/ChangeLog | 5 +++
+ po/zh_CN.po | 82 ++++++++++++++++++++-------------------------------------
+ 2 files changed, 34 insertions(+), 53 deletions(-)
+
+commit 574fb4d3c4b0c8caed6c2e00f038be5e1eeb58b7
+Author: Dmitry Mastrukov <dmitrym src gnome org>
+Date: Thu Aug 7 04:30:41 2003 +0000
+
+ be.po: Updated Belarusian translation from Belarusian team <i18n mova org>.
+
+ po/ChangeLog | 5 +++++
+ po/be.po | 54 ++++++++++++++++++++++++++++++------------------------
+ 2 files changed, 35 insertions(+), 24 deletions(-)
+
+commit 88392e65f196fdd6305838e6d0a689dce3f18f85
+Author: Yuri Syrota <rasta src gnome org>
+Date: Wed Aug 6 09:52:21 2003 +0000
+
+ Updated Ukrainian translations
+
+ po/uk.po | 81 ++++++++++++++++++-------------------------------------------
+ 1 files changed, 24 insertions(+), 57 deletions(-)
+
+commit aefd7108001b6bcbb37376a1b3a6037b4c8b5083
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 5 05:05:37 2003 +0000
+
+ include the widget's padding widths in resize requests (bug #119141).
+
+ * vte.c(vte_sequence_handler_decset_internal,
+ vte_sequence_handler_window_manipulation): include the widget's padding
+ widths in resize requests (bug #119141).
+
+ ChangeLog | 5 +++++
+ src/vte.c | 24 ++++++++++++++++--------
+ 2 files changed, 21 insertions(+), 8 deletions(-)
+
+commit ac280b16e78961a71cfeb56dc2d25ea0b2b49166
+Author: Sajith VK <sajith_vk src gnome org>
+Date: Sat Aug 2 13:08:05 2003 +0000
+
+ The mass commit, to synchronise SMC and Gnome CVS
+
+ po/ml.po | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit 83476088a2573f1e23e12fb21b9c9234c970ba64
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jul 30 21:43:42 2003 +0000
+
+ check for autoconf-2.51, autoconf-2.50, autoconf-2.5 when looking for
+
+ * autogen.sh: check for autoconf-2.51, autoconf-2.50, autoconf-2.5 when looking
+ for autoconf 2.5x (bug #118627).
+
+ ChangeLog | 6 +++++-
+ autogen.sh | 2 +-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 32ba49340ecfb1d6dda4e4d0147e9fdee9cc9114
+Author: Sajith VK <sajith_vk src gnome org>
+Date: Sun Jul 27 12:57:11 2003 +0000
+
+ ok
+
+ po/ml.po | 79 ++++++++++++++++++++++++++++++-------------------------------
+ 1 files changed, 39 insertions(+), 40 deletions(-)
+
+commit 787a8eb6ac714be94becc54a34ae654579987a2d
+Author: Hasbullah Bin Pit <sebol ikhlas com>
+Date: Wed Jul 23 13:11:48 2003 +0000
+
+ Updated Malay translation.
+
+ 2003-07-22 Hasbullah Bin Pit <sebol ikhlas com>
+
+ * ms.po: Updated Malay translation.
+
+ po/ChangeLog | 4 +++
+ po/ms.po | 71 ++++++++++++++++++++++++++++++++++++----------------------
+ 2 files changed, 48 insertions(+), 27 deletions(-)
+
+commit e82a392d075a35581fddf24dbc2f0a32714bdd39
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jul 21 15:09:11 2003 +0000
+
+ define _XOPEN_SOURCE_EXTENDED, _XOPEN_SOURCE, and __EXTENSIONS__ for
+
+ * gnome-pty-helper/configure.in: define _XOPEN_SOURCE_EXTENDED, _XOPEN_SOURCE,
+ and __EXTENSIONS__ for Solaris, as we do in the top-level configure
+ (bug #117636).
+
+ ChangeLog | 5 +++++
+ gnome-pty-helper/configure.in | 15 +++++++++++++++
+ 2 files changed, 20 insertions(+), 0 deletions(-)
+
+commit 5123fa850ba5db256540a6d03880854a85028ed2
+Author: Vincent van Adrighem <V vanAdrighem dirck mine nu>
+Date: Sun Jul 20 13:38:10 2003 +0000
+
+ Dutch translation updated by Tino Meinen.
+
+ 2003-07-20 Vincent van Adrighem <V vanAdrighem dirck mine nu>
+
+ * nl.po: Dutch translation updated by Tino Meinen.
+
+ po/ChangeLog | 4 +++
+ po/nl.po | 64 +++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 36 insertions(+), 32 deletions(-)
+
+commit f3342f25b3f400513d220bc039c34ccae7d77a8f
+Author: Kwok-Koon Cheung <baddog src gnome org>
+Date: Sun Jul 20 01:40:56 2003 +0000
+
+ Mark wrong entry as fuzzy (msgfmt check failed).
+
+ * li.po: Mark wrong entry as fuzzy (msgfmt check failed).
+
+ po/ChangeLog | 4 ++++
+ po/li.po | 12 ++++++------
+ 2 files changed, 10 insertions(+), 6 deletions(-)
+
+commit 5019e03463768e0c35c7fd569f12b12f4f0d71c1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jul 16 23:03:52 2003 +0000
+
+ check for grantpt in libc and then in libpt. Check for openpty in libc
+
+ * gnome-pty-helper/configure.in: check for grantpt in libc and then in libpt.
+ Check for openpty in libc before checking libutil. Check for sendmsg
+ in libc before checking libsocket (with libnsl) (#117636).
+
+ ChangeLog | 5 +++++
+ gnome-pty-helper/configure.in | 13 +++----------
+ 2 files changed, 8 insertions(+), 10 deletions(-)
+
+commit 4b278c39b0b1e46bc6fa2b36f185736036b674a4
+Author: Kostas Papadimas <pkst src gnome org>
+Date: Tue Jul 15 15:08:11 2003 +0000
+
+ Updated the Greek translation
+
+ po/ChangeLog | 4 +++
+ po/el.po | 65 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 38 insertions(+), 31 deletions(-)
+
+commit 5ff9ecb6f89cd8a546c3fa3aa00d649d15002555
+Author: Metin Amiroff <metin karegen com>
+Date: Sun Jul 13 08:51:41 2003 +0000
+
+ Updated Azerbaijani translation.
+
+ 2003-07-13 Metin Amiroff <metin karegen com>
+
+ * az.po: Updated Azerbaijani translation.
+
+ po/ChangeLog | 4 ++
+ po/az.po | 102 +++++++++++++++++++++++-----------------------------------
+ 2 files changed, 44 insertions(+), 62 deletions(-)
+
+commit b68715f2751b5d3e9ad54a97ad6664835393e85f
+Author: Pablo Saratxaga <pablo src gnome org>
+Date: Fri Jul 11 08:31:33 2003 +0000
+
+ Added Walloon file
+
+ ChangeLog | 3 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/wa.po | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 122 insertions(+), 1 deletions(-)
+
+commit 557b9a060ddf6e3c689605949e59a079ee8fb3e3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jul 10 20:38:11 2003 +0000
+
+ - hmm, need to add these
+
+ src/vteregex.c | 261 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vteregex.h | 40 +++++++++
+ 2 files changed, 301 insertions(+), 0 deletions(-)
+
+commit 0cf9f86796f99e7f9ca6b56ecaea38e99e0204d6
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jul 10 20:32:07 2003 +0000
+
+ add. use interfaces from vteregex for doing dingus matching.
+
+ * src/vteregex.h, src/vteregex.c: add.
+ * src/vte.c: use interfaces from vteregex for doing dingus matching.
+
+ ChangeLog | 4 ++++
+ src/Makefile.am | 2 ++
+ src/vte.c | 44 +++++++++++++++++++++++---------------------
+ 3 files changed, 29 insertions(+), 21 deletions(-)
+
+commit 6c22c8aaf484f65e32523c539746d7880b67479f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jul 4 03:53:42 2003 +0000
+
+ return an empty string in response to the ENQ control sequence instead of
+
+ * src/vte.c(vte_sequence_handler_return_terminal_status): return an empty
+ string in response to the ENQ control sequence instead of "xterm".
+ Report and patch from Mariano Suárez-Alvarez (bug #116495).
+
+ ChangeLog | 5 +++++
+ src/vte.c | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 8a641fdff72f4abee7a66601aefe88d8a65ad537
+Author: Pablo Gonzalo del Campo <pablodc bigfoot com>
+Date: Wed Jul 2 14:35:41 2003 +0000
+
+ Updated Spanish translation by Francisco Javier F. Serrador
+
+ 2003-07-02 Pablo Gonzalo del Campo <pablodc bigfoot com>
+
+ * es.po: Updated Spanish translation by
+ Francisco Javier F. Serrador <serrador arrakis es>.
+
+ po/ChangeLog | 5 +++++
+ po/es.po | 55 +++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 34 insertions(+), 26 deletions(-)
+
+commit ddad9e00e4d0442d761390480aafd9c85713121f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 27 16:27:19 2003 +0000
+
+ treat the "big5hkscs" encoding as an East Asian encoding, which uses
+
+ * src/iso2022.c: treat the "big5hkscs" encoding as an East Asian encoding,
+ which uses ambiguous widths (#116078). Report and patch from Roger So.
+ * src/dumpkeys.c, src/iso2022.c, src/iso8859mode.c, src/nativeecho.c,
+ src/utf8echo.c, src/utf8mode.c, src/vte.c: don't use the literal escape
+ character, express it as an octal sequence.
+
+ ChangeLog | 8 ++++++++
+ src/dumpkeys.c | 2 +-
+ src/iso2022.c | 1 +
+ src/iso8859mode.c | 2 +-
+ src/nativeecho.c | 2 +-
+ src/utf8echo.c | 2 +-
+ src/utf8mode.c | 2 +-
+ src/vte.c | 10 ++++++----
+ 8 files changed, 20 insertions(+), 9 deletions(-)
+
+commit 668ee92b8dc84d26941756039b16586eb8529f2d
+Author: Artur Flinta <aflinta cvs gnome org>
+Date: Fri Jun 27 08:20:24 2003 +0000
+
+ Updated Polish translation.
+
+ 2003-06-27 Artur Flinta <aflinta cvs gnome org>
+
+ * pl.po: Updated Polish translation.
+
+ po/ChangeLog | 4 ++++
+ po/pl.po | 56 ++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 32 insertions(+), 28 deletions(-)
+
+commit ad1489055c1bad831a9ea642d607a10669926e90
+Author: Danilo Šegan <dsegan gmx net>
+Date: Sat Jun 21 23:45:03 2003 +0000
+
+ Updated Serbian translation by Serbian team (Prevod.org).
+
+ 2003-06-22 Danilo Šegan <dsegan gmx net>
+
+ * sr.po, sr Latn po: Updated Serbian translation by Serbian team
+ (Prevod.org).
+
+ po/ChangeLog | 5 ++++
+ po/sr.po | 65 +++++++++++++++++++++++++++++----------------------------
+ po/sr Latn po | 65 +++++++++++++++++++++++++++++----------------------------
+ 3 files changed, 71 insertions(+), 64 deletions(-)
+
+commit c8bf89769f866b784f58bd0d297a68ba463dbdc9
+Author: updated ja.po. T.Aihana <aihana gnome gr jp>
+Date: Fri Jun 20 14:17:12 2003 +0000
+
+ 2003-06-20 updated ja.po. T.Aihana <aihana gnome gr jp>
+
+ po/ChangeLog | 12 ++++++---
+ po/ja.po | 79 +++++++++++++++++----------------------------------------
+ 2 files changed, 32 insertions(+), 59 deletions(-)
+
+commit f19a106b6b69f2827905c4e1ce295a7c90099f57
+Author: Alessio Frusciante <algol src gnome org>
+Date: Thu Jun 19 22:22:36 2003 +0000
+
+ Updated Italian translation by Francesco Marletta.
+
+ po/ChangeLog | 5 +++
+ po/it.po | 79 ++++++++++++++++++++++++++++------------------------------
+ 2 files changed, 43 insertions(+), 41 deletions(-)
+
+commit 6cc98c04d7adc96aea8a1e0446574e128a6a4d14
+Author: Ivan Stojmirov <stojmir src gnome org>
+Date: Thu Jun 19 10:39:29 2003 +0000
+
+ added Macedonian translation
+
+ po/mk.po | 90 +++++++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 48 insertions(+), 42 deletions(-)
+
+commit 1b7ef9343be230382da4363ab079a36a0b81a808
+Author: Pauli Virtanen <pauli virtanen hut fi>
+Date: Tue Jun 17 18:35:52 2003 +0000
+
+ Updated Finnish translation.
+
+ 2003-06-17 Pauli Virtanen <pauli virtanen hut fi>
+
+ * fi.po: Updated Finnish translation.
+
+ po/ChangeLog | 4 ++
+ po/fi.po | 89 ++++++++++++++++++---------------------------------------
+ 2 files changed, 32 insertions(+), 61 deletions(-)
+
+commit 7e35a7b643e25eefd9f7501f89667f9e709d5e62
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 16 23:20:22 2003 +0000
+
+ add vertical-tab and form-feed to the list of control sequences. add. add.
+
+ * src/caps.c: add vertical-tab and form-feed to the list of control sequences.
+ * src/vte.c(vte_controL_sequence_handler_form_feed): add.
+ * src/vte.c(vte_controL_sequence_handler_vertical_tab): add.
+
+ ChangeLog | 6 ++++++
+ doc/vttest.tar.gz | Bin 98911 -> 100593 bytes
+ src/caps.c | 22 ++++++++++++----------
+ src/vte.c | 26 ++++++++++++++++++++++++++
+ 4 files changed, 44 insertions(+), 10 deletions(-)
+
+commit c118a0aaa3f7688095498b1ea4e86bf5955e9863
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 16 22:01:26 2003 +0000
+
+ - actually include changelog items in the .spec file
+
+ vte.spec | 9 +++++++--
+ 1 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 954bb555c57b45ec8d72aed7a6a3d991b5f69045
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 16 21:55:07 2003 +0000
+
+ - aargh
+
+ NEWS | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 887090100bb4e50db662ab45ae5ff400846ddf6a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 16 21:44:56 2003 +0000
+
+ - 0.11.10
+
+ vte.spec | 12 +++++++++---
+ 1 files changed, 9 insertions(+), 3 deletions(-)
+
+commit 192fd5f2d6009e88aec4140405e1bb98b1ba93e8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 16 21:44:32 2003 +0000
+
+ - generate the makefile in doc/openi18n
+
+ configure.in | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit a42f429d540f625ab0495e222ece404c0e98b234
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 16 21:41:23 2003 +0000
+
+ - fixup builds for openi18n subdirectory
+
+ doc/Makefile.am | 2 +-
+ doc/openi18n/Makefile | 2 --
+ doc/openi18n/Makefile.am | 5 +++++
+ 3 files changed, 6 insertions(+), 3 deletions(-)
+
+commit 790ab531e6d912a7460a44a8ac8cf78a3311b2ee
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 16 21:23:02 2003 +0000
+
+ fix a compiler warning.
+
+ * src/vteaccess.c(xy_from_offset): fix a compiler warning.
+
+ ChangeLog | 3 +++
+ src/vteaccess.c | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 20073178e993a6d37d736d6e0f55cad0f6e31989
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 16 21:16:33 2003 +0000
+
+ - add new header
+
+ src/vteint.h | 32 ++++++++++++++++++++++++++++++++
+ 1 files changed, 32 insertions(+), 0 deletions(-)
+
+commit 8adb2183f4faaa5a1c1b319b67433facb9a877cb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 16 21:15:10 2003 +0000
+
+ add. Move private VteTerminal stuff which needs to be shared with other
+
+ * src/vteint.h: add. Move private VteTerminal stuff which needs to be shared
+ with other modules in the library here.
+ * src/vtedraw.c, src/vtedraw.h: add get_char_width(), for use in drawing the
+ cursor.
+ * src/vte.c(vte_invalidate_cursor_once): if the character under the cursor
+ doesn't fit into its cell, expose the column to the right of it so
+ that we can paint into the adjacent cell.
+ * src/vte.c(vte_terminal_paint): when clearing the area behind the cursor or
+ drawing the hollow rectangle to indicate its position when we don't
+ have focus, use the visible width of the character instead of just
+ assuming it will fit. This complies better with assertion 2.
+
+ ChangeLog | 13 +++++++++++++
+ src/Makefile.am | 3 ++-
+ src/vte.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++----
+ src/vte.h | 3 ---
+ src/vteaccess.c | 1 +
+ src/vtedraw.c | 8 ++++++++
+ src/vtedraw.h | 2 ++
+ src/vteft2.c | 17 +++++++++++++++++
+ src/vtegl.c | 17 +++++++++++++++++
+ src/vtepango.c | 7 +++++++
+ src/vtepangox.c | 7 +++++++
+ src/vteskel.c | 7 +++++++
+ src/vtexft.c | 15 +++++++++++++++
+ 13 files changed, 147 insertions(+), 8 deletions(-)
+
+commit e4291049ee75670265a55cc77d131ac279f8072e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 16 21:10:03 2003 +0000
+
+ - add sample text from the openi18n web site
+
+ doc/openi18n/Makefile | 2 +
+ doc/openi18n/UTF-8.txt | 18 +++++++++++++++
+ doc/openi18n/cursor.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++
+ doc/openi18n/wrap.txt | 1 +
+ doc/readme.txt | 12 ++++++---
+ 5 files changed, 86 insertions(+), 4 deletions(-)
+
+commit b887842b0b284cf111b9bff435e2b50e2d05a3dd
+Author: Gil Osher <dolfin src gnome org>
+Date: Thu Jun 12 13:25:08 2003 +0000
+
+ Updated Hebrew translation.
+
+
+ * he.po: Updated Hebrew translation.
+
+ po/ChangeLog | 12 ++++++++----
+ 1 files changed, 8 insertions(+), 4 deletions(-)
+
+commit 7a3386c9c59b6fe036521cc987f8c464cca2eab7
+Author: Gil Osher <dolfin src gnome org>
+Date: Thu Jun 12 13:22:22 2003 +0000
+
+ Updated Hebrew translation.
+
+ po/he.po | 61 +++++++++++++++++++++++++++++++------------------------------
+ 1 files changed, 31 insertions(+), 30 deletions(-)
+
+commit 6008da4095332ff855f972912009636276412640
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Wed Jun 11 08:02:11 2003 +0000
+
+ Updated Albanian translation.
+
+ * sq.po: Updated Albanian translation.
+
+ po/ChangeLog | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 8de2362a167c6431ad122749b64f040e98608288
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Wed Jun 11 07:59:11 2003 +0000
+
+ Updated
+
+ po/sq.po | 68 +++++++++++++++++++++++++++++++-------------------------------
+ 1 files changed, 34 insertions(+), 34 deletions(-)
+
+commit e8bd05f2d6b2c19c111960107d107156f7090e39
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jun 10 15:19:50 2003 +0000
+
+ set the encoding for the iso2022 converter (spotted by havill).
+
+ * src/vte.c(vte_terminal_set_encoding): set the encoding for the iso2022
+ converter (spotted by havill).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 4 ++++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+commit 8b259a1eab12de54a1dcdeb4a7d34ddff46a8c6e
+Author: Christophe Merlet <redfox src gnome org>
+Date: Sun Jun 8 19:36:56 2003 +0000
+
+ Updated French translation.
+
+ po/ChangeLog | 4 ++++
+ po/fr.po | 45 +++++++++++++++++++++++----------------------
+ 2 files changed, 27 insertions(+), 22 deletions(-)
+
+commit 8725f0fc59da7f30524f25a397a65d5369f97f95
+Author: Sam�el J�n Gunnarsson <sammi techattack nu>
+Date: Sat Jun 7 07:10:14 2003 +0000
+
+ Updated the Icelandic translation
+
+ 2003-06-07 Sam�el J�n Gunnarsson <sammi techattack nu>
+
+ * is.po: Updated the Icelandic translation
+
+ po/ChangeLog | 4 ++
+ po/is.po | 92 +++++++++++++++++++--------------------------------------
+ 2 files changed, 35 insertions(+), 61 deletions(-)
+
+commit ef759de112cda9c2a69f68ad71bd3c022d695cfd
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 4 19:04:36 2003 +0000
+
+ - include gdkx.h on X11 systems so that XSync will be declared
+
+ src/vterdb.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit c26595fddd2951dc97d6d53967c109b370bff1e1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 4 18:47:34 2003 +0000
+
+ sync the display before trapping errors to ensure that any errors we'll
+
+ * src/vtebg.c, src/vterdb.c: sync the display before trapping errors to ensure
+ that any errors we'll get will be handled before we remove the error
+ handlers.
+
+ ChangeLog | 5 +++++
+ src/vtebg.c | 17 +++++++++++++++--
+ src/vterdb.c | 7 +++++++
+ 3 files changed, 27 insertions(+), 2 deletions(-)
+
+commit 25b4aa16ff2c7002bf24d97467593caada200e38
+Author: Jonathan Blandford <jrb src gnome org>
+Date: Tue Jun 3 21:42:03 2003 +0000
+
+ shut up cvs
+
+ src/.cvsignore | 19 +++++++++++++++++++
+ 1 files changed, 19 insertions(+), 0 deletions(-)
+
+commit dc80e3e224e6658dd8ea64c7beee3f5749d0016c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jun 3 21:34:27 2003 +0000
+
+ trap X errors while retrieving the contents of the root pixmap. add.
+
+ * src/vtebg.c(_vte_bg_get_pixmap, _vte_bg_get_pixbuf): trap X errors while
+ retrieving the contents of the root pixmap.
+ * doc/ambiguous.txt: add.
+ * README: update.
+ * vte.spec: rebuild.
+
+ ChangeLog | 7 ++++++
+ README | 15 +++---------
+ doc/ambiguous.txt | 50 ++++++++++++++++++++++++++++++++++++++++++
+ src/vte.c | 2 +-
+ src/vtebg.c | 62 +++++++++++++++++++++++++++++++++++++++-------------
+ vte.spec | 5 +++-
+ 6 files changed, 112 insertions(+), 29 deletions(-)
+
+commit cd6c601bebd395622ae714b6067c39e4163e0c4a
+Author: Jonathan Blandford <jrb redhat com>
+Date: Tue Jun 3 19:54:15 2003 +0000
+
+ add a missing break in the switch statement.
+
+ Tue Jun 3 15:50:38 2003 Jonathan Blandford <jrb redhat com>
+
+ * src/pty.c (n_read): add a missing break in the switch statement.
+
+ ChangeLog | 4 ++++
+ src/pty.c | 2 ++
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit c55667883000cc13a845619bbac8b7fcd28d72eb
+Author: Mathieu van Woerkom <mathieu brabants org>
+Date: Tue Jun 3 12:12:00 2003 +0000
+
+ Added Limbugish translation
+
+ 2003-06-03 Mathieu van Woerkom <mathieu brabants org>
+
+ * li.po: Added Limbugish translation
+
+ 2003-06-03 Kenneth Rohde Christiansen <kenneth gnu org>
+ * configure.in: Added Limburgish (li) to ALL_LINGUAS.
+
+ ChangeLog | 3 +
+ configure.in | 2 +-
+ po/ChangeLog | 3 +
+ po/li.po | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 160 insertions(+), 1 deletions(-)
+
+commit b2278a00188a3070ce8398be484929c4d2e7a078
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jun 3 03:11:03 2003 +0000
+
+ - 0.11.9
+
+ ChangeLog | 3 +++
+ NEWS | 6 ++++++
+ src/Makefile.am | 14 +++++++++++---
+ src/iso2022.c | 4 ++--
+ vte.spec | 6 +++++-
+ 5 files changed, 27 insertions(+), 6 deletions(-)
+
+commit 86a7aaff2d490d2a5a7b6e339863ac5483ed9388
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Jun 1 22:29:20 2003 +0000
+
+ compile fix.
+
+ * src/vtegl.c(_vte_gl_set_text_font): compile fix.
+
+ ChangeLog | 3 +++
+ src/vtegl.c | 3 ++-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 23e200496979c4a8a1437de6d221929c7f4872a0
+Author: Dafydd Harries <daf src gnome org>
+Date: Sun Jun 1 11:38:28 2003 +0000
+
+ Finished Welsh translation.
+
+ po/ChangeLog | 5 +++++
+ po/cy.po | 42 ++++++++++++++++++++++++------------------
+ 2 files changed, 29 insertions(+), 18 deletions(-)
+
+commit cbaffad578df7d55168af0a4673a14a143ae1140
+Author: Christian Neumair <cneumair src gnome org>
+Date: Sat May 31 09:32:09 2003 +0000
+
+ Updated German translation.
+
+ po/ChangeLog | 4 ++
+ po/de.po | 97 +++++++++++++++++----------------------------------------
+ 2 files changed, 33 insertions(+), 68 deletions(-)
+
+commit 3dc885c4224d5cd21559a29c218256de50e55429
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 30 19:38:04 2003 +0000
+
+ fix logic for skipping over particular settings so that setting 1048
+
+ * src/vte.c(vte_sequence_handler_decset_internal): fix logic for skipping over
+ particular settings so that setting 1048 actually works.
+ * src/vte.c(vte_terminal_process_incoming): in debug mode, print out characters
+ with codepoints higher than 255 in hex rather than decimal.
+ * src/iso2022.c(_vte_iso2022_ambiguous_width): rename to
+ _vte_iso2022_ambiguous_width_guess because that's all we can do without
+ more context.
+ * src/iso2022.c(_vte_iso2022_ambiguous_width): add for using the current
+ encoding to determine what the width of an ambiguously-wide character
+ should be. This seems to work better.
+
+ ChangeLog | 12 ++++++++++
+ src/iso2022.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++------
+ src/vte.c | 6 +++-
+ 3 files changed, 72 insertions(+), 9 deletions(-)
+
+commit 7fe2fc15f18e971a45587955cd43edb9cf3c1f9a
+Author: Padraig O'Briain <padraig obriain sun com>
+Date: Fri May 30 08:55:28 2003 +0000
+
+ Add implementation for get_character_extents, get_offset_at_point and
+
+ 2003-05-30 Padraig O'Briain <padraig obriain sun com>
+ * src/vteaccess.c: Add implementation for get_character_extents,
+ get_offset_at_point and get_run_attributes. This fixes bug #110770.
+ Add casts to fix complier warnings on Solaris.
+
+ * src/vtexft.c (_vte_xft_text_extents): Do not call return as function
+ returns void. Fixes compiler error on Solaris.
+
+ ChangeLog | 8 +++
+ src/vteaccess.c | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ src/vtexft.c | 4 +-
+ 3 files changed, 181 insertions(+), 17 deletions(-)
+
+commit 1e67e734218e3159fcb02c53acec86d0157a5101
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 30 00:35:36 2003 +0000
+
+ require -i for icon-title-changed messages, which got really annoying
+
+ * src/vteapp.c: require -i for icon-title-changed messages, which got really
+ annoying really fast.
+ * src/trie.c(main): use g_quark_from_static_string for static strings.
+
+ ChangeLog | 5 +++++
+ src/trie.c | 22 +++++++++++-----------
+ src/vteapp.c | 13 ++++++++++---
+ 3 files changed, 26 insertions(+), 14 deletions(-)
+
+commit 815eb0a3c0a2e62a008b338272ecc1b65c39b44c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 29 22:04:25 2003 +0000
+
+ fix newline stuffing (used in linefeed mode). rename to
+
+ * src/vte.c(vte_terminal_send): fix newline stuffing (used in linefeed mode).
+ * src/vte.c(vte_unicode_strlen): rename to vte_unichar_strlen.
+ * src/vte.c(vte_terminal_set_title_internal): don't leak the new title in the
+ unlikely cases.
+ * src/vte.c(vte_terminal_process_incoming): be more careful with control
+ characters to avoid cases where we could be tricked into a loop.
+ * src/vteapp.c: emit a message when the icon title is changed.
+
+ ChangeLog | 10 ++++
+ src/vte.c | 146 +++++++++++++++++++++++++++++++++++-----------------------
+ src/vteapp.c | 22 ++++++++-
+ 3 files changed, 118 insertions(+), 60 deletions(-)
+
+commit 8de1e351b857e2ad8131bce4780cf24a75c694bc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 29 04:50:48 2003 +0000
+
+ handle control characters in the middle of control sequences. fix origin
+
+ * src/vte.c(vte_terminal_process_incoming): handle control characters in the
+ middle of control sequences.
+ * src/vte.c(vte_sequence_handler_cm): fix origin mode.
+ * src/vte.c(vte_sequence_handler_cv): fix origin mode.
+ * src/vte.c(vte_sequence_handler_cs): snap the cursor to the scrolling region
+ which is set.
+ * src/table.c(_vte_table_extract_number): extract a number digit by digit as
+ we do in the trie parser.
+ * src/vte.h: declare 'struct vte_char_attributes' again to restore API back
+ compat with 0.10.x.
+ * src/iso2022.c(_vte_iso2022_sequence_length): don't recognize PM messages --
+ Xterm doesn't do anything with them and we don't want to appear to hang
+ when we're really just waiting for the end of the message.
+
+ ChangeLog | 16 ++++++++++++++++
+ src/iso2022.c | 8 ++++++--
+ src/table.c | 10 ++++++++--
+ src/vte.c | 54 ++++++++++++++++++++++++++++++++++++++++++++----------
+ src/vte.h | 7 +++++++
+ 5 files changed, 81 insertions(+), 14 deletions(-)
+
+commit fe6545d62d857fed89f471d938213c9a88d64546
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 28 23:45:09 2003 +0000
+
+ only apply DPI if we were able to get a value. use the display and screen
+
+ * src/vtefc.c(_vte_fc_defaults_from_rdb): only apply DPI if we were able to get
+ a value.
+ * src/vterdb.c, src/vterdb.h: use the display and screen of a passed-in widget
+ if asked to do so, else use screen 0 of the default display.
+
+ ChangeLog | 6 +++
+ src/vtefc.c | 18 +++++----
+ src/vterdb.c | 113 ++++++++++++++++++++++++++++++++++++++-------------------
+ src/vterdb.h | 12 +++---
+ 4 files changed, 97 insertions(+), 52 deletions(-)
+
+commit d583937817cd42dccca7572fe5f1cf16ce1f7978
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 28 21:53:59 2003 +0000
+
+ check for GTK+ 2.2, and if found, force use of multihead-safe APIs to try
+
+ * configure.in: check for GTK+ 2.2, and if found, force use of multihead-safe
+ APIs to try to flush out some bugs.
+ * src/vte.c, src/vteapp.c, src/vtedraw.c, src/vtefc.c, src/vteglyph.c: clean
+ up some sloppy multihead changes.
+ * src/vte.c, src/vte.h (vte_terminal_match_set_cursor_type): add.
+ * src/vtedraw.c, src/vtedraw.h: add a draw_char() method which is allowed to
+ fail.
+ * src/vte.c(vte_terminal_draw_graphic): separate the width of a column and the
+ number of columns to be drawn. Use _vte_draw_char() to avoid
+ crude approximations of characters when we have a font for them.
+
+ ChangeLog | 12 +++
+ configure.in | 10 ++-
+ src/vte.c | 230 +++++++++++++++++++++++++++++++++++++++++++++++++------
+ src/vte.h | 2 +
+ src/vteapp.c | 16 ++--
+ src/vtedraw.c | 24 ++++++-
+ src/vtedraw.h | 6 ++
+ src/vtefc.c | 37 ++++++---
+ src/vtefc.h | 3 +-
+ src/vteft2.c | 22 +++++-
+ src/vtegl.c | 19 +++++
+ src/vteglyph.c | 5 +-
+ src/vteglyph.h | 4 +-
+ src/vtepango.c | 12 +++-
+ src/vtepangox.c | 10 +++
+ src/vteskel.c | 11 +++
+ src/vtexft.c | 66 +++++++++++++---
+ 17 files changed, 427 insertions(+), 62 deletions(-)
+
+commit 7db421ff8483c411566b81fadccacf420c17115b
+Author: Duarte Loreto <happyguy_pt hotmail com>
+Date: Mon May 26 20:54:00 2003 +0000
+
+ Updated Portuguese translation.
+
+ 2003-05-26 Duarte Loreto <happyguy_pt hotmail com>
+
+ * pt.po: Updated Portuguese translation.
+
+ po/ChangeLog | 4 ++++
+ po/pt.po | 38 +++++++++++++++++++-------------------
+ 2 files changed, 23 insertions(+), 19 deletions(-)
+
+commit f4bfc34e8411acd285ac70243183ec35dd9f47d3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 22 19:24:51 2003 +0000
+
+ - 0.11.8
+
+ NEWS | 1 +
+ vte.spec | 6 +++++-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit c5bc6f08c3c37303c5d071104c30241e9322fa94
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 22 19:14:49 2003 +0000
+
+ force an entire window repaint if we're supposed to scroll the background
+
+ * src/vte.c(vte_terminal_scroll_region): force an entire window repaint if
+ we're supposed to scroll the background but we're not scrolling the
+ entire window. This means we need to repaint the scrolled region, and
+ to keep things looking right, we need to repaint everything.
+ * src/vteapp.c(main): enable visible bell if we're disabling the audible bell,
+ and vice-versa.
+ * src/vte.c: flesh out some doc comments.
+ * doc/reference/tmpl/vte.sgml: flesh out some notes on signals.
+
+ ChangeLog | 10 ++++++++++
+ doc/reference/tmpl/vte.sgml | 4 +++-
+ src/vte.c | 39 ++++++++++++++++++++++-----------------
+ src/vteapp.c | 1 +
+ 4 files changed, 36 insertions(+), 18 deletions(-)
+
+commit ffcc4a77caa05fb6affd77871701f1692ef6a96b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 21 23:32:32 2003 +0000
+
+ pass zero bytes which trigger EILSEQ through and keep going. replace use
+
+ * src/vteconv.c(_vte_conv): pass zero bytes which trigger EILSEQ through and
+ keep going.
+ * src/vteconv.c: replace use of g_utf8_strlen with an internal function which
+ doesn't stop counting at NUL characters.
+
+ ChangeLog | 6 +++
+ src/vteconv.c | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 132 insertions(+), 10 deletions(-)
+
+commit 4ad1f62b6a3c899403a13df8ddbd534102813211
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 21 22:03:15 2003 +0000
+
+ - disable glX by default
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 9a386e75d805a18ef6817deb933c4df46880d674
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 21 21:47:02 2003 +0000
+
+ use _vte_matcher_free_params_array. add a parameter for indicating if this
+
+ * src/interpret.c: use _vte_matcher_free_params_array.
+ * src/vte.c(vte_invalidate_cursor_once): add a parameter for indicating if this
+ is a "cursor blink" (periodic) refresh, and if it is set and the cursor
+ isn't supposed to blink, suppress the invalidate.
+
+ ChangeLog | 6 ++++++
+ src/interpret.c | 2 +-
+ src/vte.c | 20 +++++++++++++-------
+ 3 files changed, 20 insertions(+), 8 deletions(-)
+
+commit dc2184423cc237fb277587553b0eb07a716089f7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 21 21:42:17 2003 +0000
+
+ free the temporary array. add. use _vte_matcher_free_params_array instead
+
+ * src/iso2022.c(_vte_iso2022_process): free the temporary array.
+ * src/matcher.c(_vte_matcher_free_params_array): add.
+ * src/vte.c: use _vte_matcher_free_params_array instead of the local copy,
+ which is removed.
+ * src/interpret.c, src/table.c, src/trie.c: use _vte_matcher_free_params_array
+ to free parameter arrays instead of g_value_array_free, which doesn't
+ take care of the pointer values.
+ * src/vte.c(vte_sequence_handler_set_title_internal): only attempt to close
+ the conversion descriptor if it was opened successfully.
+ * src/vteapp.c: add the -k option to spin after gtk_main() returns.
+ * src/vtefc.c: make copies of patterns with FcPatternDuplicate so that we know
+ where all of the returned patterns came from.
+ * src/vtexft.c(_vte_xft_font_for_char): set the item in the pattern array to
+ NULL if we successfully opened a font using the pattern.
+
+ ChangeLog | 16 ++++++++++++++++
+ src/iso2022.c | 1 +
+ src/matcher.c | 25 +++++++++++++++++++++++++
+ src/matcher.h | 3 +++
+ src/table.c | 2 +-
+ src/trie.c | 44 ++++++++++++++++++++++----------------------
+ src/vte.c | 28 ++--------------------------
+ src/vteapp.c | 14 ++++++++++++--
+ src/vtefc.c | 10 +++++++---
+ src/vtexft.c | 14 ++++++++------
+ 10 files changed, 97 insertions(+), 60 deletions(-)
+
+commit 2b20f0ebd1d1b6007cad7b3a13de1b5f78526cd2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 20 21:48:25 2003 +0000
+
+ clarify comments near one of the warning messages. unref the Pango
+
+ * src/iso2022.c: clarify comments near one of the warning messages.
+ * src/vtefc.c(_vte_fc_transcribe_from_pango_font_description): unref the Pango
+ context, which was created for us.
+ * src/vtepango.c: keep track of the Pango context, and unref it when it is no
+ longer needed.
+
+ ChangeLog | 7 +++++++
+ src/iso2022.c | 2 +-
+ src/vtefc.c | 2 ++
+ src/vtepango.c | 23 +++++++++++++++++++----
+ 4 files changed, 29 insertions(+), 5 deletions(-)
+
+commit d83bc30b30d77bc4713ecc75ae99fd2d437ebb70
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 20 16:30:27 2003 +0000
+
+ try juggling the CFLAGS and LIBS order to let the xft CFLAGS/LIBS take
+
+ * src/Makefile.am: try juggling the CFLAGS and LIBS order to let the xft
+ CFLAGS/LIBS take precedence over everything else (#113335).
+
+ ChangeLog | 4 ++++
+ src/Makefile.am | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit aeb12826b791f1e30a6da959f84287a873e15b84
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 20 16:14:50 2003 +0000
+
+ compile fix for Solaris, patch from #113344.
+
+ * src/ssfe.c: compile fix for Solaris, patch from #113344.
+
+ ChangeLog | 3 +++
+ src/ssfe.c | 31 ++++++++++++++++---------------
+ 2 files changed, 19 insertions(+), 15 deletions(-)
+
+commit 8174c284e5c4aa1833ffc716b50606af50c1c492
+Author: Miloslav Trmac <mitr src gnome org>
+Date: Tue May 20 13:32:12 2003 +0000
+
+ Update Czech translation
+
+ po/ChangeLog | 4 ++++
+ po/cs.po | 34 +++++++++++++++++-----------------
+ 2 files changed, 21 insertions(+), 17 deletions(-)
+
+commit acaea8d931cb8dfefcc5e7a1b7c8e32142132d7a
+Author: Christian Rose <menthos menthos com>
+Date: Tue May 20 09:58:33 2003 +0000
+
+ Updated Swedish translation.
+
+ 2003-05-20 Christian Rose <menthos menthos com>
+
+ * sv.po: Updated Swedish translation.
+
+ po/ChangeLog | 4 ++++
+ po/sv.po | 37 ++++++++++++++++++++-----------------
+ 2 files changed, 24 insertions(+), 17 deletions(-)
+
+commit 424d7da826793a72b3f765139d6876a1dcf4bdf0
+Author: Jordi Mallach <jordim src gnome org>
+Date: Tue May 20 08:51:56 2003 +0000
+
+ Updated Catalan translation.
+
+ po/ChangeLog | 4 ++++
+ po/ca.po | 34 +++++++++++++++++-----------------
+ 2 files changed, 21 insertions(+), 17 deletions(-)
+
+commit 246c1cedb2261a4281359ae3b82be6e1325e28ac
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 20 06:27:42 2003 +0000
+
+ = 0.11.7
+
+ NEWS | 9 +++++++--
+ vte.spec | 8 +++++++-
+ 2 files changed, 14 insertions(+), 3 deletions(-)
+
+commit bff045858c67b91873513c3a708fc7e952e40379
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 20 06:14:27 2003 +0000
+
+ remove no-longer-used tree structure. free strings returned by
+
+ * src/vte.c: remove no-longer-used tree structure.
+ * src/vtefc.c: free strings returned by g_object_get().
+
+ ChangeLog | 4 ++++
+ src/vte.c | 6 +-----
+ src/vtefc.c | 2 ++
+ 3 files changed, 7 insertions(+), 5 deletions(-)
+
+commit 73a26e0a481405069de1bf9fa640ee950f90514a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 20 05:23:54 2003 +0000
+
+ create the terminal's draw structure. free the terminal's draw structure.
+
+ * src/vte.c(vte_terminal_realize): create the terminal's draw structure.
+ * src/vte.c(vte_terminal_unrealize): free the terminal's draw structure.
+ * src/vteapp.c(main): enforce a clean shutdown by requiring that the terminal
+ and top-level window are both finalized before gtk_main() returns.
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 22 ++++++++++++++++++----
+ src/vteapp.c | 5 +++++
+ 3 files changed, 30 insertions(+), 4 deletions(-)
+
+commit cb5bbefeca2bda9ad6b171ced9c67f428def381a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 20 04:27:56 2003 +0000
+
+ properly send a SIGHUP to the child process if it hasn't already exited
+
+ * src/vte.c(vte_terminal_finalize): properly send a SIGHUP to the child process
+ if it hasn't already exited (#112505).
+ * src/vteapp.c: don't exit on EOF, only on child-exited.
+ * src/vte.c(vte_sequence_handler_sf): increment the scrolling offset to avoid
+ flickering when the application has defined a scrolling region with top
+ row == 1.
+
+ ChangeLog | 8 ++++++++
+ configure.in | 2 +-
+ src/vte.c | 14 +++++++++++---
+ src/vteapp.c | 9 ++++++++-
+ 4 files changed, 28 insertions(+), 5 deletions(-)
+
+commit f123debe5a3f90be8ea6f252065f0bf37f914b04
+Author: Dmitry Mastrukov <dmitrym src gnome org>
+Date: Tue May 20 04:06:05 2003 +0000
+
+ be.po: Updated Belarusian translation from Belarusian team <i18n mova org>.
+
+ po/ChangeLog | 5 +++++
+ po/be.po | 54 +++++++++++++++++++++++++-----------------------------
+ 2 files changed, 30 insertions(+), 29 deletions(-)
+
+commit 03b492bb77735482d33094bd0e038ec8e3173506
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 19 22:48:58 2003 +0000
+
+ remove comma from end of enum declaration (#111925). don't use
+
+ * src/iso2022.c, src/keymap.c, src/mev.c, src/vtebg.h, src/vteglyph.h: remove
+ comma from end of enum declaration (#111925).
+ * src/vtetc.c: don't use parameter-as-array-size compiler extension (#111925).
+ * src/ssfe.c: don't assume that the compiler interprets \e correctly, use %c
+ with value of 27 instead (#111925).
+ * doc/reference/Makefile.am: obey CPPFLAGS and LDFLAGS (#111925).
+ * gnome-pty-helper/gnome-utmp.c: only include <utmp.h> if HAVE_UTMP_H was
+ defined (#111925).
+ * src/keymap.c, src/ssfe.c: unconditionally include <term.h> if we defined
+ HAVE_CURSES or HAVE_NCURSES, as having the header is a precondition
+ for defining either (#111925).
+ * src/iso2022.c: make each array have at least one element (#111925).
+ * src/pty.c, src/gnome-login-support.c: try to open /dev/ptc if opening
+ /dev/ptmx fails due to ENOENT (#111925).
+
+ ChangeLog | 17 +++++++++++++++++
+ doc/reference/Makefile.am | 4 ++--
+ gnome-pty-helper/gnome-login-support.c | 5 +++++
+ gnome-pty-helper/gnome-utmp.c | 6 ++++--
+ src/iso2022.c | 3 ++-
+ src/keymap.c | 8 ++------
+ src/mev.c | 2 +-
+ src/pty.c | 3 +++
+ src/ssfe.c | 7 ++-----
+ src/vtebg.h | 2 +-
+ src/vteglyph.h | 2 +-
+ src/vtetc.c | 6 +++---
+ 12 files changed, 43 insertions(+), 22 deletions(-)
+
+commit 7253cf3dbbb732d67699c3f69484e859f34fd102
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 19 20:55:11 2003 +0000
+
+ - formatting fixups
+
+ src/iso2022.c | 10 +++---
+ src/mev.c | 8 +++---
+ src/table.c | 54 ++++++++++++++++++++--------------------
+ src/trie.c | 72 ++++++++++++++++++++++++++--------------------------
+ src/vte.c | 74 +++++++++++++++++++++++++++---------------------------
+ src/vte.h | 2 +-
+ src/vteaccess.c | 14 +++++-----
+ src/vtebg.c | 2 +-
+ src/vtebg.h | 4 +-
+ src/vteft2.c | 2 +-
+ src/vteglyph.c | 2 +-
+ src/vteglyph.h | 4 +-
+ src/vtepango.c | 12 ++++----
+ src/vtepangox.c | 10 +++---
+ src/vtetc.c | 16 ++++++------
+ src/vtexft.c | 4 +-
+ 16 files changed, 145 insertions(+), 145 deletions(-)
+
+commit 5cda56310f77badf4031fec0eb18c5ef307c49bd
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 19 20:41:16 2003 +0000
+
+ don't exit on eof, just child-exited. don't disconnect from SIGCHLD on
+
+ * src/vteapp.c: don't exit on eof, just child-exited.
+ * src/vte.c(vte_terminal_eof): don't disconnect from SIGCHLD on eof, the child
+ might still be running.
+
+ ChangeLog | 7 ++++++-
+ src/vte.c | 10 ----------
+ src/vteapp.c | 1 -
+ 3 files changed, 6 insertions(+), 12 deletions(-)
+
+commit b5f349035d78e948c6a06cd2731b066ea7142152
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 19 20:18:45 2003 +0000
+
+ - rename termcap.c/termcap.h to avoid conflicts with system <termcap.h>
+
+ ChangeLog | 5 +++++
+ src/Makefile.am | 27 +++++++++++++--------------
+ src/interpret.c | 2 +-
+ src/keymap.c | 2 +-
+ src/keymap.h | 2 +-
+ src/vte.c | 2 +-
+ src/{termcap.c => vtetc.c} | 2 +-
+ src/{termcap.h => vtetc.h} | 0
+ 8 files changed, 23 insertions(+), 19 deletions(-)
+
+commit 4cf3893d9b59b32a879302c6433894ddb906e40a
+Author: Ole Laursen <olau hardworking dk>
+Date: Mon May 19 19:54:17 2003 +0000
+
+ Updated Danish translation.
+
+ 2003-05-19 Ole Laursen <olau hardworking dk>
+
+ * da.po: Updated Danish translation.
+
+ po/ChangeLog | 10 +++++++---
+ po/da.po | 48 +++++++++++-------------------------------------
+ 2 files changed, 18 insertions(+), 40 deletions(-)
+
+commit a686e0d829ac351c47c4750e9b459e79276969f3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 19 19:49:13 2003 +0000
+
+ fix KP_PageDown in application keypad mode (#113187). add a finalize
+
+ * src/keymap.c: fix KP_PageDown in application keypad mode (#113187).
+ * src/reaper.c: add a finalize method which properly cleans things up so that
+ the singleton can at least theoretically be destroyed (part of a fix
+ for #112172).
+ * src/vte.c: obtain a ref to a reaper object whenever we are waiting for a
+ child to exit.
+ * po/POTFILES.in: add more source files for scanning.
+ * src/iso2022.c: rework pieces to handle incomplete sequences at the end of
+ input. Check for 8-bit SS2 and SS3 in case of EILSEQ. Build a fake
+ ISO-8859-1 map for conversions using invalid maps.
+ * src/iso2022.c(_vte_iso2022_state_free): free the state's buffer.
+ * src/vteconv.c: internalize UTF-8 to UTF-8 conversions, fix handling of
+ incomplete sequences at the end of the available data.
+ * src/vte.c: implement send/receive and automatic linefeed modes.
+ * src/vte.c(vte_sequence_handler_sr): invalidate the row which contains the
+ cursor to ensure that it doesn't leave a trail.
+ * src/vte.c(vte_sequence_handler_return_terminal_id): add.
+ * src/vte.c(vte_terminal_feed_child_using_modes): add.
+
+ ChangeLog | 20 ++
+ po/POTFILES.in | 5 +
+ po/am.po | 94 ++++----
+ po/az.po | 128 ++++++-----
+ po/be.po | 126 ++++++-----
+ po/bg.po | 132 +++++++-----
+ po/bn.po | 131 ++++++-----
+ po/ca.po | 47 +++--
+ po/cs.po | 33 ++--
+ po/cy.po | 32 ++--
+ po/da.po | 132 ++++++-----
+ po/de.po | 132 ++++++-----
+ po/el.po | 136 +++++++-----
+ po/es.po | 39 ++--
+ po/fa.po | 101 ++++-----
+ po/fi.po | 135 +++++++-----
+ po/fr.po | 31 ++-
+ po/he.po | 125 ++++++-----
+ po/hu.po | 131 +++++++----
+ po/id.po | 138 +++++++-----
+ po/is.po | 132 ++++++-----
+ po/it.po | 139 +++++++-----
+ po/ja.po | 33 ++--
+ po/ko.po | 124 ++++++-----
+ po/lv.po | 131 ++++++-----
+ po/mk.po | 95 ++++----
+ po/ml.po | 99 ++++----
+ po/mn.po | 126 ++++++-----
+ po/ms.po | 33 ++--
+ po/nl.po | 142 +++++++-----
+ po/no.po | 125 ++++++-----
+ po/pl.po | 135 +++++++-----
+ po/pt.po | 31 ++-
+ po/pt_BR.po | 129 ++++++-----
+ po/ro.po | 127 ++++++----
+ po/ru.po | 153 ++++++++-----
+ po/sk.po | 130 ++++++-----
+ po/sl.po | 132 ++++++-----
+ po/sq.po | 131 +++++++-----
+ po/sr.po | 69 ++++--
+ po/sr Latn po | 69 ++++--
+ po/sv.po | 33 ++--
+ po/tr.po | 125 ++++++-----
+ po/uk.po | 132 +++++++-----
+ po/vi.po | 125 ++++++-----
+ po/zh_CN.po | 124 ++++++-----
+ po/zh_TW.po | 31 ++-
+ src/iso2022.c | 697 ++++++++++++++++++++++++++++++++++----------------------
+ src/keymap.c | 2 +-
+ src/reaper.c | 64 +++++-
+ src/vte.c | 205 ++++++++++++++---
+ src/vteconv.c | 313 +++++++++++++++++++++-----
+ 52 files changed, 3646 insertions(+), 2338 deletions(-)
+
+commit eeae338b64553fc81099e307f90846198a9e2583
+Author: Telsa Gwynne <telsa src gnome org>
+Date: Mon May 19 14:36:36 2003 +0000
+
+ Welsh translation from Dafydd Harries
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 +++
+ po/cy.po | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 118 insertions(+), 1 deletions(-)
+
+commit 5eef8c91e9af06533b979c7593c19e838cec04f2
+Author: Christophe Merlet <redfox src gnome org>
+Date: Sun May 18 19:54:24 2003 +0000
+
+ Updated French translation.
+
+ po/ChangeLog | 4 ++
+ po/fr.po | 147 ++++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 85 insertions(+), 66 deletions(-)
+
+commit 3e5e8975600b5ad410010cb23cb3b171d95a279f
+Author: Duarte Loreto <happyguy_pt hotmail com>
+Date: Tue May 13 21:04:25 2003 +0000
+
+ Updated Portuguese translation.
+
+ 2003-05-13 Duarte Loreto <happyguy_pt hotmail com>
+
+ * pt.po: Updated Portuguese translation.
+
+ po/ChangeLog | 4 ++
+ po/pt.po | 134 ++++++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 79 insertions(+), 59 deletions(-)
+
+commit 7ff11a97e78e3d26456e0ca7b39dac71686b30b3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 13 20:08:50 2003 +0000
+
+ don't recognize 8-bit SS2 and SS3 by default, it breaks UTF-8 and other
+
+ * src/iso2022.c(_vte_iso2022_find_nextctl): don't recognize 8-bit SS2 and SS3
+ by default, it breaks UTF-8 and other encodings (#112879).
+
+ ChangeLog | 4 ++++
+ src/iso2022.c | 3 +++
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit e1e0f0a3cf0f3872fa9d78d14989ca311b9cded5
+Author: Pablo Gonzalo del Campo <pablodc bigfoot com>
+Date: Tue May 13 19:52:37 2003 +0000
+
+ Updated Spanish translation.
+
+ 2003-05-13 Pablo Gonzalo del Campo <pablodc bigfoot com>
+
+ * es.po: Updated Spanish translation.
+
+ po/ChangeLog | 4 ++
+ po/es.po | 149 ++++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 86 insertions(+), 67 deletions(-)
+
+commit 7a87d5abf06668b0feb160775020745bffe45854
+Author: Kwok-Koon Cheung <baddog src gnome org>
+Date: Tue May 13 11:01:20 2003 +0000
+
+ Updated traditional Chinese translation.
+
+ * zh_TW.po: Updated traditional Chinese translation.
+
+ po/ChangeLog | 4 ++++
+ po/zh_TW.po | 31 +++++++++++++++++--------------
+ 2 files changed, 21 insertions(+), 14 deletions(-)
+
+commit 82739aee740adf7249915d172ae9d1805a0b61bc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 13 04:27:40 2003 +0000
+
+ add _vte_draw_needs_repaint() to indicate if the drawing back-end can only
+
+ * src/vtedraw.c, src/vtedraw.h: add _vte_draw_needs_repaint() to indicate if
+ the drawing back-end can only handle entire-window paints.
+ * src/vteconv.c: return a value from _vte_conv_close(), even though it isn't
+ used.
+ * src/vte.c(vte_terminal_paint): don't look at drawing starting at negative
+ row or coumn offsets.
+ * src/vtegl.c: prefer glX double-buffering to GDK's, and use double-buffered
+ possibly-direct windows instead of indirect pixmaps.
+
+ ChangeLog | 10 ++
+ src/vte.c | 14 ++-
+ src/vteapp.c | 4 +-
+ src/vteconv.c | 1 +
+ src/vtedraw.c | 8 ++
+ src/vtedraw.h | 2 +
+ src/vteft2.c | 1 +
+ src/vtegl.c | 358 +++++++++++++++++++++++++++++--------------------------
+ src/vtepango.c | 1 +
+ src/vtepangox.c | 1 +
+ src/vteskel.c | 17 ++--
+ src/vtexft.c | 1 +
+ 12 files changed, 238 insertions(+), 180 deletions(-)
+
+commit cb455f32f8d5dcb45f0127bdd5fd2b427751da96
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 13 01:22:09 2003 +0000
+
+ account for the foreign root pixmap not having a colormap by default,
+
+ * src/vtebg.c(_vte_bg_get_pixmap, _vte_bg_get_pixbuf): account for the foreign
+ root pixmap not having a colormap by default, using the root window's
+ colormap if it doesn't already have one set.
+
+ ChangeLog | 5 +++++
+ src/vtebg.c | 14 ++++++++++----
+ 2 files changed, 15 insertions(+), 4 deletions(-)
+
+commit de0363debd2588e178bdd8543a45a46cdbf53cb7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 12 20:57:41 2003 +0000
+
+ if we can't convert from the locale encoding to UTF-8, use UTF-8 as the
+
+ * src/iso2022.c(_vte_iso2022_state_new): if we can't convert from the locale
+ encoding to UTF-8, use UTF-8 as the locale encoding (#112614).
+ * src/vtegl.c(_vte_gl_start): enable point smoothing.
+
+ ChangeLog | 5 +++++
+ src/iso2022.c | 20 +++++++++++++++++---
+ src/iso2022.txt | 2 +-
+ src/vte.c | 6 +++---
+ src/vtegl.c | 1 +
+ 5 files changed, 27 insertions(+), 7 deletions(-)
+
+commit 06f5955cf07ee5c56dc8ddafa428ef286717fba4
+Author: Hasbullah Bin Pit <sebol ikhlas com>
+Date: Sun May 11 00:57:40 2003 +0000
+
+ Updated Malay translation.
+
+ 2003-05-10 Hasbullah Bin Pit <sebol ikhlas com>
+
+ * ms.po: Updated Malay translation.
+
+ po/ChangeLog | 4 ++
+ po/ms.po | 103 +++++++++++++++++++++++++---------------------------------
+ 2 files changed, 48 insertions(+), 59 deletions(-)
+
+commit d80144726e3681e8a6ee81144dae9db2913307b4
+Author: KAMAGASAKO Masatoshi <emerald gnome gr jp>
+Date: Sat May 10 06:28:28 2003 +0000
+
+ Updated Japanese translation.
+
+ 2003-05-10 KAMAGASAKO Masatoshi <emerald gnome gr jp>
+
+ * ja.po: Updated Japanese translation.
+
+ po/ChangeLog | 4 ++++
+ po/ja.po | 41 +++++++++++++++++++++++++++++++++--------
+ 2 files changed, 37 insertions(+), 8 deletions(-)
+
+commit bc0c76e750c95a91f0854fb97f7b14b71bccf79d
+Author: Jordi Mallach <jordim src gnome org>
+Date: Fri May 9 17:41:06 2003 +0000
+
+ Updated Catalan translation.
+
+ po/ChangeLog | 4 ++
+ po/ca.po | 151 +++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 85 insertions(+), 70 deletions(-)
+
+commit 8e0ecf2cb7f56a69bf55e041e4daa3c04597d2ad
+Author: Miloslav Trmac <mitr src gnome org>
+Date: Fri May 9 12:15:22 2003 +0000
+
+ Update Czech translation
+
+ po/ChangeLog | 4 ++++
+ po/cs.po | 39 ++++++++++++++++++++++++++++++++-------
+ 2 files changed, 36 insertions(+), 7 deletions(-)
+
+commit 12244fa27b3bab0cdc90547988f4e3cb248d7943
+Author: Christian Rose <menthos menthos com>
+Date: Fri May 9 10:11:18 2003 +0000
+
+ Updated Swedish translation.
+
+ 2003-05-09 Christian Rose <menthos menthos com>
+
+ * sv.po: Updated Swedish translation.
+
+ po/ChangeLog | 4 ++++
+ po/sv.po | 50 ++++++++++++++++++++++++++++++++++++++++++--------
+ 2 files changed, 46 insertions(+), 8 deletions(-)
+
+commit dacc45e67336c971c061280f7d1d309fc42431f6
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 9 03:16:49 2003 +0000
+
+ let the caller control whether or not we return the default colormap.
+
+ * src/vtedraw.c, src/vtedraw.h (_vte_draw_get_colormap): let the caller control
+ whether or not we return the default colormap.
+ * src/vtegl.c: enable blending. Don't specify any buffer depths. Set the
+ current drawable before we do any drawing. Call gluOrtho2D with the
+ right args to set up the right projection.
+ * src/vteskel.c: quiet compiler warning by removing a "const".
+ * src/vtedraw.c: juggle the preferred render order again.
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 10 ++++------
+ src/vtedraw.c | 17 ++++++++++-------
+ src/vtedraw.h | 3 ++-
+ src/vtegl.c | 46 +++++++++++++++++++++++++++++++++-------------
+ src/vtepango.c | 2 +-
+ src/vtepangox.c | 2 +-
+ src/vteskel.c | 2 +-
+ src/vtexft.c | 2 +-
+ 9 files changed, 62 insertions(+), 31 deletions(-)
+
+commit c858e8dcfca989306d1153fd9ec4001d9bc27e9b
+Author: Kwok-Koon Cheung <baddog src gnome org>
+Date: Thu May 8 19:19:06 2003 +0000
+
+ Fix my previous commit
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 999bfc1f3aec810e679b614246287ced55e9a91a
+Author: Abel Cheung <maddog linux org hk>
+Date: Thu May 8 14:36:58 2003 +0000
+
+ Add 4 files into POTFILES.in(please let me know if they shouldn't be
+
+ 2003-05-08 Abel Cheung <maddog linux org hk>
+
+ * POTFILES.in: Add 4 files into POTFILES.in(please let me know
+ if they shouldn't be added)
+ * zh_TW.po: Updated traditional Chinese translation.
+
+ po/ChangeLog | 6 ++++++
+ po/POTFILES.in | 4 ++++
+ po/zh_TW.po | 41 +++++++++++++++++++++++++++++++++--------
+ 3 files changed, 43 insertions(+), 8 deletions(-)
+
+commit 9805926700dcdf9cc01cc68386874cf2ea237493
+Author: KAMAGASAKO Masatoshi <emerald gnome gr jp>
+Date: Thu May 8 14:22:03 2003 +0000
+
+ Updated Japanese translation.
+
+ 2003-05-08 KAMAGASAKO Masatoshi <emerald gnome gr jp>
+
+ * ja.po: Updated Japanese translation.
+
+ po/ChangeLog | 4 ++
+ po/ja.po | 108 ++++++++++++++++++++++++++-------------------------------
+ 2 files changed, 53 insertions(+), 59 deletions(-)
+
+commit f25541750f7cc9bd90d51bf5e13e95a26375f795
+Author: Christian Rose <menthos menthos com>
+Date: Thu May 8 14:01:42 2003 +0000
+
+ Updated Swedish translation.
+
+ 2003-05-08 Christian Rose <menthos menthos com>
+
+ * sv.po: Updated Swedish translation.
+
+ po/ChangeLog | 4 ++++
+ po/sv.po | 42 ++++++++++++++++++++++--------------------
+ 2 files changed, 26 insertions(+), 20 deletions(-)
+
+commit 7f28c3ad21d6b0169788c466418f18a9d9245cf4
+Author: Miloslav Trmac <mitr src gnome org>
+Date: Thu May 8 12:47:23 2003 +0000
+
+ Update Czech translation
+
+ po/ChangeLog | 4 ++++
+ po/cs.po | 36 ++++++++++++++++--------------------
+ 2 files changed, 20 insertions(+), 20 deletions(-)
+
+commit a4288218a4d537f40f5fe968da1e477bd4fc5e60
+Author: Abel Cheung <maddog linux org hk>
+Date: Thu May 8 04:38:42 2003 +0000
+
+ Added "mk" to ALL_LINGUAS.
+
+ 2003-05-08 Abel Cheung <maddog linux org hk>
+
+ * configure.in: Added "mk" to ALL_LINGUAS.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/zh_TW.po | 93 +++++++++++++++++++++++++--------------------------------
+ 3 files changed, 46 insertions(+), 53 deletions(-)
+
+commit b32f9cf9684e3326d566062c319baadca510fbd3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 7 21:46:54 2003 +0000
+
+ let OSC command sequences be subject to code conversion again (#112485).
+
+ * src/iso2022.c: let OSC command sequences be subject to code conversion
+ again (#112485).
+
+ ChangeLog | 4 ++++
+ src/iso2022.c | 2 ++
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 541e45cedb8eb204f80ed184bfa95697c5a8638b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 7 21:28:28 2003 +0000
+
+ - add new files
+
+ src/vteconv.c | 252 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vteconv.h | 43 ++++++++++
+ 2 files changed, 295 insertions(+), 0 deletions(-)
+
+commit 5ae32c35957c696d83de0576c95ca96a8c5c106a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 7 21:25:29 2003 +0000
+
+ add VteConv as a thin wrapper around GIConv. use VteConv. remove. remove.
+
+ * src/vteconv.c, src/vteconv.h: add VteConv as a thin wrapper around GIConv.
+ * src/iso2022.c: use VteConv.
+ * src/matcher.c(_vte_matcher_find_valid_encoding): remove.
+ * src/matcher.c(_vte_matcher_wide_encoding): remove.
+ * src/trie.c: use VteConv.
+ * src/utf8echo.c: use VteConv.
+ * src/vte.c: use VteConv (#112446).
+
+ ChangeLog | 10 +++++
+ src/Makefile.am | 46 +++++++++++++++++++-----
+ src/iso2022.c | 33 +++++++++--------
+ src/matcher.c | 107 -------------------------------------------------------
+ src/matcher.h | 3 --
+ src/trie.c | 23 ++++++------
+ src/utf8echo.c | 11 +++---
+ src/vte.c | 57 +++++++++++++----------------
+ 8 files changed, 108 insertions(+), 182 deletions(-)
+
+commit 83e4f0ef14ab6c61836286f0f9a8c856cd11b159
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 6 20:44:24 2003 +0000
+
+ add "Since: 0.11" to documentation for functions which aren't available in
+
+ * src/vte.c: add "Since: 0.11" to documentation for functions which aren't
+ available in the 0.10 series.
+ * src/iso2022.c: default G2 to JIS0201, G3 to JIS0212 for Japanese, because
+ they appear to not be used by anyone else.
+ * vte.spec: merge with .spec file from RHL.
+
+ ChangeLog | 7 ++++++
+ src/iso2022.c | 4 +-
+ src/vte.c | 8 ++++--
+ vte.spec | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ 4 files changed, 75 insertions(+), 8 deletions(-)
+
+commit 243bc92e9c36c96a9c0bef4bcd73672a1fd21925
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 6 14:12:00 2003 +0000
+
+ - 0.11.6
+
+ NEWS | 6 +++---
+ vte.spec | 6 +++++-
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+commit 5f84c90caf42ccb36c1b41c6b7de3482f8c510f9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 6 08:14:49 2003 +0000
+
+ get text rendering semi-working.
+
+ * src/vtegl.c: get text rendering semi-working.
+
+ ChangeLog | 3 +++
+ src/vtegl.c | 53 ++++++++++++++++++++++++++++++++++-------------------
+ 2 files changed, 37 insertions(+), 19 deletions(-)
+
+commit b296e636244d11ec2019a5fafea5ad0ebb31248a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 6 07:38:39 2003 +0000
+
+ when setting up backgrounds, don't deref an existing background before
+
+ * src/vteft2.c, src/vtegl.c, src/vtepango.c, src/vtepangox.c, src/vtexft.c:
+ when setting up backgrounds, don't deref an existing background before
+ fetching a new one, in case they're the same.
+ * src/vteglyph.c(_vte_glyph_draw): fix computation of the input offset.
+ * src/vtegl.c: implement drawing of backgrounds.
+
+ ChangeLog | 7 ++
+ NEWS | 3 +
+ src/vtedraw.c | 14 ++--
+ src/vteft2.c | 6 +-
+ src/vtegl.c | 293 +++++++++++++++++++++++++++++++++++++------------------
+ src/vteglyph.c | 9 +-
+ src/vtepango.c | 10 +-
+ src/vtepangox.c | 10 +-
+ src/vtexft.c | 8 +-
+ 9 files changed, 239 insertions(+), 121 deletions(-)
+
+commit 10bfd9a591695a9b00130a316668a28b5dff286b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 6 05:17:56 2003 +0000
+
+ include the whole JIS0201 map instead of just the lower half. set the
+
+ * src/iso2022.c(_vte_iso2022_map_J): include the whole JIS0201 map instead of
+ just the lower half.
+ * src/iso2022.c(_vte_iso2022_map_get): set the and_mask to clear the high bits
+ of pairs before looking them up in the maps.
+ * src/iso2022.c(_vte_iso2022_fragment_input): recognize the 8-bit versions of
+ SS2 and SS3.
+ * src/iso2022.c(_vte_iso2022_process_control): recognize the 8-bit versions of
+ SS2 and SS3.
+
+ ChangeLog | 10 ++++++++++
+ src/iso2022.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 61 insertions(+), 4 deletions(-)
+
+commit fc4bae3b967641e1ad32f14d1221b2e88ec15113
+Author: Danilo Šegan <dsegan gmx net>
+Date: Tue May 6 02:34:22 2003 +0000
+
+ Added "sr" and "sr@Latn" to ALL_LINGUAS.
+
+ 2003-05-05 Danilo Šegan <dsegan gmx net>
+
+ * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
+
+ * po/sr.po, po/sr Latn po: Added Serbian translation by
+ http://Prevod.org/.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 ++
+ po/sr.po | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/sr Latn po | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 5 files changed, 253 insertions(+), 1 deletions(-)
+
+commit 4dc83c64fce801f283a4243f7b87cd7c307d2472
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 5 23:27:13 2003 +0000
+
+ - missed these, too
+
+ src/vteft2.h | 1 -
+ src/vtepango.h | 1 -
+ src/vtepangox.h | 1 -
+ src/vteskel.h | 1 -
+ src/vtexft.c | 3 ++-
+ src/vtexft.h | 1 -
+ 6 files changed, 2 insertions(+), 6 deletions(-)
+
+commit 2ed144d6124b34dbabcf7647fd31c4fa5a51550c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 5 23:26:01 2003 +0000
+
+ - update for API change in vtefc
+
+ src/vteft2.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit 29a746c9a69155ee8a94281e90b18adaf2100c11
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 5 23:23:46 2003 +0000
+
+ include <glib.h> for gboolean type definition. include "config.h" and
+
+ * src/debug.h: include <glib.h> for gboolean type definition.
+ * src/matcher.c: include "config.h" and "debug.h".
+ * src/matcher.h: use G_BEGIN_DECLS/G_END_DECLS
+ * src/table.h: use G_BEGIN_DECLS/G_END_DECLS
+ * src/termcap.h: include <glib.h>, again for gboolean.
+ * src/vtebg.h,src/vterdb.h,src/vtergb.h: adjust macro used to prevent multiple
+ inclusions to match the rest of the tree.
+ * src/vtefc.c(_vte_fc_patterns_from_pango_font_desc): provide a callback which
+ can be used to override all defaults.
+ * src/vtegl.h,src/vtexft.h: don't include "config.h"
+ * src/vteglyph.c, src/vteglyph.h: add _vte_glyph_get_uncached().
+
+ ChangeLog | 13 +++++++++
+ src/debug.h | 2 +
+ src/matcher.c | 2 +
+ src/matcher.h | 4 +++
+ src/table.h | 4 +++
+ src/termcap.h | 2 +
+ src/vtebg.h | 4 +-
+ src/vtefc.c | 10 ++++++-
+ src/vtefc.h | 6 +++-
+ src/vtegl.h | 1 -
+ src/vteglyph.c | 77 ++++++++++++++++++++++++++++++++++++++++---------------
+ src/vteglyph.h | 8 +++++-
+ src/vterdb.h | 4 +-
+ src/vtergb.h | 4 +-
+ 14 files changed, 110 insertions(+), 31 deletions(-)
+
+commit 6186156a2f3bd52d4d4c9bd5e8a5310200fab58e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 5 02:51:51 2003 +0000
+
+ if ERESTART is defined, treat it like EINTR and EAGAIN. if ERESTART is
+
+ * gnome-pty-helper/gnome-login-support.c(n_read,n_write): if ERESTART
+ is defined, treat it like EINTR and EAGAIN.
+ * src/pty.c(n_read,n_write): if ERESTART is defined, treat it like
+ EINTR and EAGAIN.
+
+ ChangeLog | 6 ++++++
+ gnome-pty-helper/gnome-login-support.c | 6 ++++++
+ src/pty.c | 6 ++++++
+ 3 files changed, 18 insertions(+), 0 deletions(-)
+
+commit 86131d5d146ce28b9dd281b00ca1195d9272302e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 2 18:13:24 2003 +0000
+
+ define _XOPEN_SOURCE_EXTENDED, _XOPEN_SOURCE, and __EXTENSIONS__ to get
+
+ * configure.in: define _XOPEN_SOURCE_EXTENDED, _XOPEN_SOURCE, and
+ __EXTENSIONS__ to get definitions for msg_control and msg_controllen
+ on Solaris (#112036).
+ * src/vtedraw.c(_vte_draw_set_scroll): don't try to return a value from this
+ void function (#112036). Patch from Hidetoshi Tajima.
+ * src/xticker.c: don't include getopt.h, which isn't even needed for regular
+ getopt() (#112036). Patch from Hidetoshi Tajima.
+
+ ChangeLog | 9 +++++++++
+ configure.in | 7 +++++--
+ src/vtedraw.c | 2 +-
+ src/xticker.c | 1 -
+ 4 files changed, 15 insertions(+), 4 deletions(-)
+
+commit 0e8b44747bc25d74da45bf5c1086d9021ddacfb5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 1 20:50:54 2003 +0000
+
+ remove some debugging g_print() calls. skip over NUL bytes (#112022). map
+
+ * src/vtebg.c(vte_bg_set_root_pixmap,vte_bg_root_pixmap): remove some debugging
+ g_print() calls.
+ * src/iso2022.c(process_cdata): skip over NUL bytes (#112022).
+ * src/vte.c(vte_terminal_background_update): map the bgcolor values to a pixel
+ value before setting the window background color.
+ * src/nativeecho.c(main): echo NUL bytes if asked to do so.
+
+ ChangeLog | 8 ++++++++
+ src/iso2022.c | 3 +++
+ src/nativeecho.c | 4 ++--
+ src/vte.c | 10 ++++++++++
+ src/vtebg.c | 2 --
+ 5 files changed, 23 insertions(+), 4 deletions(-)
+
+commit 69b532595d44d55d1816382b0788f7ceb6818e5b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 1 20:31:42 2003 +0000
+
+ - actually add those files (thanks snickell)
+
+ src/vtebg.c | 679 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vtebg.h | 75 +++++++
+ 2 files changed, 754 insertions(+), 0 deletions(-)
+
+commit 0e8b0b54ec3e1749fc7ca7511850472d2c349ff1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 1 19:56:13 2003 +0000
+
+ add a singleton object for managing copies of background images, either
+
+ * src/vtebg.c, src/vtebg.h: add a singleton object for managing copies of
+ background images, either the desktop background, an in-memory pixbuf,
+ or an on-disk file, with tinting. Using a single store for this stuff
+ lets multiple widgets share images and should reduce both CPU and
+ memory consumption in applications which create more than one
+ VteTerminal instance with similar settings.
+ * src/vtedraw.c, src/vtedraw.h: adapt the set_background_pixbuf() interface to
+ the vtebg method and rename to set_background_image().
+ * src/vteft2.c, src/vtegl.c, src/vtepango.c, src/vtepangox.c, src/vteskel.c,
+ src/vtexft.c: update to work with newer vtebg/vtedraw interfaces.
+ * src/vte.c(vte_terminal_filter_property_changes): remove in favor of vtebg
+ method. Manage background state for vtebg.
+
+ ChangeLog | 15 ++
+ src/Makefile.am | 2 +
+ src/iso2022.c | 10 +-
+ src/vte.c | 430 ++++++++++++------------------------------------------
+ src/vteapp.c | 10 +-
+ src/vtedraw.c | 24 +++-
+ src/vtedraw.h | 15 ++-
+ src/vteft2.c | 16 ++-
+ src/vtegl.c | 30 +++--
+ src/vtepango.c | 35 ++---
+ src/vtepangox.c | 35 ++---
+ src/vteskel.c | 10 +-
+ src/vtexft.c | 35 ++---
+ 13 files changed, 236 insertions(+), 431 deletions(-)
+
+commit 28a568698ade607798c95d2ec1790ebbe14d4757
+Author: Miloslav Trmac <mitr src gnome org>
+Date: Thu May 1 13:49:09 2003 +0000
+
+ Update Czech translation
+
+ po/ChangeLog | 4 +++
+ po/cs.po | 68 +++++++++++++++------------------------------------------
+ 2 files changed, 22 insertions(+), 50 deletions(-)
+
+commit 252a3631c63a5724d71b0bd21ff7b7961e66b6b0
+Author: Christian Rose <menthos menthos com>
+Date: Thu May 1 10:36:15 2003 +0000
+
+ Updated Swedish translation.
+
+ 2003-05-01 Christian Rose <menthos menthos com>
+
+ * sv.po: Updated Swedish translation.
+
+ po/ChangeLog | 4 ++
+ po/sv.po | 105 +++++++++++++++++++++++++++-------------------------------
+ 2 files changed, 53 insertions(+), 56 deletions(-)
+
+commit 974211c1a58896b827c75d23570cef4aa0e8ec56
+Author: Kang Jeong-Hee <kz src gnome org>
+Date: Thu May 1 07:08:12 2003 +0000
+
+ typo s/index.sgml/index.html/
+
+ ChangeLog | 4 ++++
+ doc/reference/Makefile.am | 6 +++---
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+commit c9962b2560c49547667904dadaa0759444b23ae6
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Apr 30 19:49:59 2003 +0000
+
+ add missing binary
+
+ vte.spec | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 1f2fd18e58649059e4d738ce723a50cf756d6a87
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Apr 30 19:30:02 2003 +0000
+
+ - 0.11.5
+
+ NEWS | 2 ++
+ vte.spec | 6 +++++-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit c80144000e5720ad8c8b923b2ce1b3ffa6f9651d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Apr 30 18:35:39 2003 +0000
+
+ remove the unused DEFAULT_ISO_8859_1 case. don't call
+
+ * src/vte.c(vte_sequence_handler_local_charset): remove the unused
+ DEFAULT_ISO_8859_1 case.
+ * src/vte.c(vte_terminal_class_init): don't call _vte_matcher_narrow_encoding(),
+ because we don't need it any more. Change the error message emitted
+ when _vte_matcher_wide_encoding() fails (#111925), and mark it for
+ translation.
+ * src/trie.c(main): don't call _vte_matcher_narrow_encoding() just to print
+ its result.
+ * src/vte.c(vte_terminal_set_encoding): include the right codeset name in the
+ error message.
+ * src/vteglyph.c(_vte_glyph_get): mark error message for translation.
+ * src/matcher.c, src/matcher.h: remove _vte_matcher_narrow_encoding(). Make
+ tables of strings "const".
+
+ ChangeLog | 15 +++++++++++++++
+ src/matcher.c | 36 ++++++++++++------------------------
+ src/matcher.h | 3 ---
+ src/trie.c | 1 -
+ src/vte.c | 11 ++---------
+ src/vteglyph.c | 10 +++++++++-
+ 6 files changed, 38 insertions(+), 38 deletions(-)
+
+commit 154b6ffdb09889a41f1caba82d7293d6ccdab1da
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 29 17:56:19 2003 +0000
+
+ set the IM context's client window to NULL before unreferencing it to
+
+ * src/vte.c(vte_terminal_unrealize): set the IM context's client window to NULL
+ before unreferencing it to avoid crashes when preedit is active.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 7 ++-----
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+commit c6967c55ed737c2ed1c519d848174f68ca170e2a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 29 16:52:04 2003 +0000
+
+ add keymaps for GDK_slash and GDK_question (#108299).
+
+ * src/keymap.c: add keymaps for GDK_slash and GDK_question (#108299).
+
+ ChangeLog | 3 +++
+ src/keymap.c | 18 ++++++++++++++++++
+ 2 files changed, 21 insertions(+), 0 deletions(-)
+
+commit 16a72b71bb75ac64fca98ca3daf7eeaa2c4a7e48
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 29 15:43:42 2003 +0000
+
+ use INT_MAX instead of LONG_MAX when passing in the maximum length,
+
+ * src/vterdb.c(_vte_rdb_get): use INT_MAX instead of LONG_MAX when passing in
+ the maximum length, because it's returned in an int.
+
+ ChangeLog | 4 ++++
+ src/vterdb.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 6534a2f48639ccf6c22b78aa852be48c2f79278a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 29 15:36:55 2003 +0000
+
+ fix the UTF-8 sample text which corresponds to the ISO-2022-KR sample text
+
+ * src/iso2022.txt: fix the UTF-8 sample text which corresponds to the
+ ISO-2022-KR sample text so that it actually matches the text.
+
+ ChangeLog | 4 ++++
+ src/iso2022.txt | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 16e0c53e29143b5116695a6950804dca6275d112
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 29 14:53:38 2003 +0000
+
+ add map for CP437. add. add CP437. add unitable.CP437 to the file list.
+
+ * src/iso2022.c(_vte_iso2022_map_U): add map for CP437.
+ * src/unitable.CP437: add.
+ * src/mkunitables.sh: add CP437.
+ * src/Makefile.am: add unitable.CP437 to the file list.
+
+ ChangeLog | 10 ++++
+ src/Makefile.am | 1 +
+ src/cp437.py | 9 ++++
+ src/iso2022.c | 47 ++++++++++++++----
+ src/mkunitables.sh | 14 +++--
+ src/unitable.CP437 | 129 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ vte.spec | 2 +-
+ 7 files changed, 194 insertions(+), 18 deletions(-)
+
+commit 391a3afbbbb5d40c624708e6697626199af8f358
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 29 03:12:32 2003 +0000
+
+ rework to simplify the logic of how many cells to invalidate when we have
+
+ * src/vte.c(vte_invalidate_cursor_once): rework to simplify the logic of how
+ many cells to invalidate when we have a preedit string.
+ * src/vte.c(vte_terminal_paint): draw the preedit string correctly for cases
+ more complicated than the default IM (seems to fix #111767).
+ * src/vterdb.c(_vte_rdb_get): use g_strncpy() and the property length to avoid
+ going past the end of the possibly-not-nul-terminated string.
+ * src/Makefile.am: build a standalone vterdb binary.
+
+ ChangeLog | 9 +++++++++
+ src/Makefile.am | 6 +++++-
+ src/vte.c | 54 +++++++++++++++++++++++++++++++++++++-----------------
+ src/vterdb.c | 9 ++++++---
+ 4 files changed, 57 insertions(+), 21 deletions(-)
+
+commit 627ac390f1a7f28751aa641bf2e96ba7781aef24
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 29 01:42:27 2003 +0000
+
+ add another flag to skip over sanity-checking the buffer when adding
+
+ * src/vte.c(vte_terminal_insert_char): add another flag to skip over
+ sanity-checking the buffer when adding characters.
+ * src/vte.c(vte_terminal_process_incoming): sanity-check the buffer only when
+ necessary to save time.
+ * src/vte.c(vte_terminal_scroll_region): invalidate the region which is exposed
+ when we scroll so that the entire cell gets redrawn, avoiding clipping
+ problems (#111683).
+ * src/vte.c(vte_terminal_paint): fix math for determining where to stop drawing.
+ * src/vte.c(vte_terminal_fill_rectangle): rename to ..._int to reduce confusion
+ over which internal drawing commands are offset and which are not.
+ * src/vte.c(vte_terminal_insert_char): if performing a single substitution,
+ check the encoded width of the output char, not the input char, which
+ doesn't have one.
+
+ ChangeLog | 17 +++++++++++++
+ src/vte.c | 79 +++++++++++++++++++++++++++++++++++++++++++++---------------
+ 2 files changed, 76 insertions(+), 20 deletions(-)
+
+commit ca7af3ccfda6c0b2e2360b35b61417b41bcf8050
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 28 18:58:55 2003 +0000
+
+ add routines for pulling Xft antialiasing and hinting options from the
+
+ * src/vterdb.c, src/vterdb.h: add routines for pulling Xft antialiasing and
+ hinting options from the resource database.
+ * src/vtefc.c(_vte_fc_patterns_from_pango_font_desc): apply settings from the
+ resource database after applying settings from GTK+.
+ * src/vtefc.c(_vte_fc_defaults_from_rdb): added, for adding default settings
+ based on the resource database.
+
+ ChangeLog | 8 ++
+ src/Makefile.am | 2 +
+ src/vtefc.c | 120 +++++++++++++++++++++++++-------
+ src/vterdb.c | 208 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vterdb.h | 36 ++++++++++
+ 5 files changed, 347 insertions(+), 27 deletions(-)
+
+commit fab57ffc0e0965d8c648a6e112b9885f6b24eac6
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 28 00:47:23 2003 +0000
+
+ complain when the installed version of GTK+ doesn't support reporting Xft
+
+ * src/vtefc.c(_vte_fc_defaults_from_gtk): complain when the installed version
+ of GTK+ doesn't support reporting Xft antialiasing and hinting settings.
+
+ ChangeLog | 5 +++++
+ src/vtefc.c | 16 ++++++++++++++++
+ 2 files changed, 21 insertions(+), 0 deletions(-)
+
+commit e6efd20998b591d5ef15b2f128b65164b79191a2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 25 19:40:48 2003 +0000
+
+ freeze the window when scrolling down in a restricted scrolling area
+
+ * src/vte.c(vte_sequence_handler_sf): freeze the window when scrolling down in
+ a restricted scrolling area again.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 2 ++
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit f90b5a787b177a9daac44b4feb086d6e6cc6f93b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 24 21:59:44 2003 +0000
+
+ - src/vteaccess.c: tweak that debug warning again
+
+ src/vteaccess.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit eb6079bca4dabb469678f3b40f594ea5342f154e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 24 21:21:22 2003 +0000
+
+ save the new codeset. compare the new codeset to the name of the UTF-8
+
+ * src/iso2022.c(_vte_iso2022_state_set_codeset): save the new codeset.
+ * src/iso2022.c(process_cdata): compare the new codeset to the name of the
+ UTF-8 codeset instead of the local codeset to see if we need to notify
+ callers of a change.
+
+ ChangeLog | 6 ++++++
+ doc/reference/tmpl/vteaccess.sgml | 1 +
+ src/iso2022.c | 6 ++++--
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+commit 8aacd3df5a33deb3f39aeee8f7f54bba2cd94890
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 24 19:28:53 2003 +0000
+
+ - 0.11.4
+
+ NEWS | 3 +++
+ vte.spec | 7 ++++++-
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+commit 9981b4d6dc6dee72cb87016d6a9c569fbb713b99
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 24 18:45:00 2003 +0000
+
+ don't use the window freeze count to check if it's safe to scroll using
+
+ * src/vte.c(vte_sequence_handler_sf): don't use the window freeze count to
+ check if it's safe to scroll using gdk_window_scroll(), require other
+ parts of this widget to declare it unsafe for those cases.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 27 +++++++++++----------------
+ 2 files changed, 16 insertions(+), 16 deletions(-)
+
+commit ed1e60faf9bbcb50302a3348d01455c7b4c42826
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 24 18:17:17 2003 +0000
+
+ take an explicit XftFont instead of figuring out which one to use
+
+ * src/vtexft.c(_vte_xft_char_width): take an explicit XftFont instead of
+ figuring out which one to use ourselves.
+ * src/vtexft.c(_vte_xft_draw_text): pass the XftFont which we're already using
+ to _vte_xft_char_width to save a call to _vte_xft_font_for_char.
+
+ ChangeLog | 6 ++++++
+ src/vtexft.c | 8 ++++----
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+commit fe43594cdd3e980af12be3f1a7b86b1ad8eea84a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 24 17:55:44 2003 +0000
+
+ accept libtool 1.5 in addition to 1.4 (#15968).
+
+ * autogen.sh: accept libtool 1.5 in addition to 1.4 (#15968).
+
+ ChangeLog | 3 +++
+ autogen.sh | 4 ++--
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+commit ab6bab86c9f3c819af8a6c09a7b07529769982d1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 24 03:23:53 2003 +0000
+
+ add some detail to debug warning when gail isn't loaded.
+
+ * src/vteaccess.c: add some detail to debug warning when gail isn't loaded.
+
+ src/vteaccess.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit c165224d950f6d78d8d4b870e05d931144f64f77
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 24 03:03:51 2003 +0000
+
+ add. call _vte_terminal_accessible_ref to ensure that accessible signals
+
+ * src/vte.c,src/vte.h: (_vte_terminal_accessible_ref): add.
+ * src/vteaccess.c(vte_terminal_accessible_new): call
+ _vte_terminal_accessible_ref to ensure that accessible signals are
+ going to be emitted.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 11 +++++++++--
+ src/vte.h | 3 +++
+ src/vteaccess.c | 1 +
+ src/vteaccess.h | 1 -
+ 5 files changed, 19 insertions(+), 3 deletions(-)
+
+commit 6f90d7c16e2263ac837a7a552c6cb0b7c5a1a83d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 24 02:50:55 2003 +0000
+
+ formatting fixup. formatting fixups. Try using U+FFFF as the "invalid"
+
+ * src/dumpkeys.c: formatting fixup.
+ * src/iso2022.c: formatting fixups. Try using U+FFFF as the "invalid" marker
+ character instead of '?', because it's actually invalid.
+ * src/pty.c: formatting fixup.
+ * src/reflect.c: formatting fixup.
+ * src/ring.c: formatting fixup.
+ * src/ssfe.c: formatting fixups.
+ * src/trie.c: formatting fixup.
+ * src/vte.c: formatting fixups.
+ * src/vte.c(vte_terminal_get_accessible): don't add a weak pointer to the
+ AtkObject if it isn't a valid AtkObject. Only emit text-changed signals
+ if we managed to create a valid accessible peer.
+ * src/vteaccess.c: formatting fixups.
+ * src/vteaccess.c(vte_terminal_accessible_init): unset the EXPANDABLE Atk state.
+ Set the RESIZABLE state.
+ * src/vteaccess.c(vte_terminal_accessible_class_init): Remove spurious(?) call
+ to bind_textdomain.
+ * src/vteaccess.c(vte_terminal_accessible_get_type): check if the accessible
+ peer of our peer's ancestor is derived from GtkAccessible, and if it
+ isn't derive from GtkAccessible instead of that.
+ * src/vteaccess.c(vte_terminal_accessible_get_type): register our factory type.
+ * src/vteaccess.c, src/vteaccess.c: add VteTerminalAccessibleFactory.
+ * src/vtedraw.c: formatting fixup.
+
+ ChangeLog | 26 ++++
+ src/dumpkeys.c | 2 +-
+ src/iso2022.c | 4 +-
+ src/pty.c | 2 +-
+ src/reflect.c | 2 +-
+ src/ring.c | 2 +-
+ src/ssfe.c | 12 +-
+ src/trie.c | 2 +-
+ src/vte.c | 23 ++--
+ src/vteaccess.c | 345 +++++++++++++++++++++++++++++++++----------------------
+ src/vteaccess.h | 41 +++++++
+ src/vtedraw.c | 2 +-
+ 12 files changed, 303 insertions(+), 160 deletions(-)
+
+commit d99012f3a7f002824c71730a619944f6478afad7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 24 00:52:15 2003 +0000
+
+ always refetch the root pixmap if we don't currently have a background
+
+ * src/vte.c(vte_terminal_background_update): always refetch the root pixmap if
+ we don't currently have a background image (#111386).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 3 ++-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 7c7ca5b8bcd15cca704f39a43bd1bbbad8ac194b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Apr 23 20:13:08 2003 +0000
+
+ - fix incorrect signal name when connecting
+
+ src/vteaccess.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit a9a6b1c8657a7c90647bfafc74e962df5b8b83ba
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Apr 23 19:55:55 2003 +0000
+
+ implement an AtkComponent interface (part of #110770). set the focus state
+
+ * src/vteaccess.c: implement an AtkComponent interface (part of #110770).
+ * src/vteaccess.c(vte_terminal_accessible_focus_in): set the focus state on the
+ accessible peer (part of #110770).
+ * src/vteaccess.c(vte_terminal_accessible_focus_out): unset the focus state on
+ the accessible peer (part of #110770).
+ * src/vteaccess.c(vte_terminal_accessible_init): connect to the widget's
+ visibility-notify signals.
+ * src/vteaccess.c(vte_terminal_accessible_finalize): disconnect from the
+ widget's visibility-notify signals.
+
+ ChangeLog | 12 +++
+ src/vteaccess.c | 279 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 289 insertions(+), 2 deletions(-)
+
+commit 119a00f1c81c7ec60a3f962e9c500b2dce3bd178
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Apr 23 15:35:53 2003 +0000
+
+ don't bother generating a new pixmap or panning the pixbuf -- we can use
+
+ * src/vte.c(vte_terminal_background_update): don't bother generating a new
+ pixmap or panning the pixbuf -- we can use the desaturated pixbuf
+ directly now (#111386).
+ * src/vte.c(vte_terminal_paint): use the drawing offsets because we don't
+ regenerate new background pixmaps when the window is moved.
+ * src/vte.c(vte_terminal_draw_cells): add jittered bold text back in, fell out
+ in the drawing overhaul (#111430).
+
+ ChangeLog | 9 ++
+ src/vte.c | 244 +++++++++++++++++++++----------------------------------------
+ 2 files changed, 91 insertions(+), 162 deletions(-)
+
+commit 41630383d7e3d902d4134089848e40bff200fc02
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 22 22:16:19 2003 +0000
+
+ account for valid CSI sequences which were missed earlier.
+
+ * src/iso2022.c(_vte_iso2022_fragment_input): account for valid CSI sequences
+ which were missed earlier.
+
+ ChangeLog | 4 ++++
+ src/iso2022.c | 14 +++++++++++---
+ 2 files changed, 15 insertions(+), 3 deletions(-)
+
+commit 66ff84b4b341fb4d66bfe9ba089368c53b0bbb9f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 22 21:38:40 2003 +0000
+
+ dispose of the PTY completely (#107534). dispose of the PTY completely
+
+ * src/vte.c(vte_terminal_eof): dispose of the PTY completely (#107534).
+ * src/vte.c(vte_terminal_child_exited): dispose of the PTY completely (#107534).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 38 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 42 insertions(+), 0 deletions(-)
+
+commit b8cd0940d25990dbe06c7d5c7540c7fdde5027cf
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 22 20:43:34 2003 +0000
+
+ add missing check for recvmsg. formatting and spelling fixes. reorganize.
+
+ * configure.in: add missing check for recvmsg.
+ * gnome-pty-helper/gnome-login-support.c: formatting and spelling fixes.
+ * gnome-pty-helper/gnome-login-support.c(n_read): reorganize.
+ * gnome-pty-helper/gnome-login-support.c(n_write): add.
+ * gnome-pty-helper/gnome-login-support.h: add prototype for n_write.
+ * gnome-pty-helper/gnome-pty-helper.c: only define the I_SENDFD version of
+ pass_fd() if I_SENDFD is defined, to clarify compile errors when it
+ isn't defined.
+ * src/pty.c(main): exercise session logging.
+ * src/pty.c(_vte_pty_open_with_helper): add more debug messages.
+
+ ChangeLog | 12 +++++
+ configure.in | 2 +-
+ gnome-pty-helper/gnome-login-support.c | 75 +++++++++++++++++++++-----------
+ gnome-pty-helper/gnome-login-support.h | 1 +
+ gnome-pty-helper/gnome-pty-helper.c | 59 +++++++++++++------------
+ gnome-pty-helper/gnome-utmp.c | 15 +++---
+ src/pty.c | 28 ++++++++++--
+ 7 files changed, 126 insertions(+), 66 deletions(-)
+
+commit 91249799a1adb5fe177b61752986786769cb72fa
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 22 18:51:06 2003 +0000
+
+ force visible widths to 2 columns for CJK maps which use 2 bytes per
+
+ * src/iso2022.c(_vte_iso2022_map_get): force visible widths to 2 columns for CJK
+ maps which use 2 bytes per character.
+ * src/iso2022.c(_vte_iso2022_fragment_input): recognize CSI/OSC/PM sequences as
+ control sequences and not raw text, allowing us to treat them
+ specially later.
+ * src/iso2022.c(process_control): pass CSI/OSC/PM sequences through unmodified
+ (without going through maps).
+
+ ChangeLog | 9 ++++
+ src/iso2022.c | 119 +++++++++++++++++++++++++++++++++++++++++++++++----------
+ 2 files changed, 108 insertions(+), 20 deletions(-)
+
+commit b0e4d9016d8f5c138eb0102481a340a3082627d8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 22 04:48:15 2003 +0000
+
+ don't bother doing anything if we're fully obscured (related to #102703).
+
+ * src/vte.c(vte_invalidate_cursor_once): don't bother doing anything if we're
+ fully obscured (related to #102703).
+
+ ChangeLog | 6 +++++-
+ src/vte.c | 5 +++++
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit ba4f0b1d5c5ca4c1613cd9c582ee3ae35a696b73
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 22 04:29:56 2003 +0000
+
+ stop messing with fontconfig's list of font directories.
+
+ * src/vteapp.c(main): stop messing with fontconfig's list of font directories.
+
+ ChangeLog | 4 ++++
+ src/vteapp.c | 14 --------------
+ 2 files changed, 4 insertions(+), 14 deletions(-)
+
+commit 42bca0ff2a787ba93f33cb4c5bc7462dd93ee463
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 22 04:27:46 2003 +0000
+
+ rework link order so that xft2 is linked before anything else. You're
+
+ * configure.in: rework link order so that xft2 is linked before anything else.
+ You're still screwed if you link with both xft1 and xft2 libs, but maybe
+ this'll help, even though it shouldn't (#107285).
+
+ ChangeLog | 5 +++++
+ configure.in | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 55adb3860dc5c82f853ca09509dad7365c92a440
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 22 04:09:29 2003 +0000
+
+ - add bug ID
+
+ ChangeLog | 5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+commit 2eb1be31c0f55444a04926642e182c4a7f5a05e0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 22 04:08:12 2003 +0000
+
+ fix a couple of #errors. if the area we're invading is on the edge,
+
+ * src/vteglyph.c: fix a couple of #errors.
+ * src/vte.c(vte_invalidate_cells): if the area we're invading is on the edge,
+ invalidate the edge as well.
+ * src/pty.c: implement and use wrappers for read and write which handle EINTR
+ and EAGAIN.
+ * src/vte.c(vte_terminal_scroll_region): don't use gdk_window_scroll if the
+ window is frozen for updates.
+ * src/vte.c(vte_terminal_sequence_handler_sf): when scrolling down with a
+ defined scrolling region, freeze the window to avoid flicker.
+
+ ChangeLog | 11 ++++++
+ src/pty.c | 94 +++++++++++++++++++++++++++++++++++++++++++++-----------
+ src/vte.c | 47 +++++++++++++++++++++++-----
+ src/vteglyph.c | 4 +-
+ 4 files changed, 128 insertions(+), 28 deletions(-)
+
+commit 27571eb6126ef16527021fe6ae3845db72c43eb1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 21 22:12:25 2003 +0000
+
+ don't bail out if read() returns -1 and errno is either EINTR or EAGAIN,
+
+ * gnome-pty-helper/gnome-login-support.c(n_read): don't bail out if read()
+ returns -1 and errno is either EINTR or EAGAIN, candidate fix for
+ #107534.
+
+ ChangeLog | 5 +++++
+ gnome-pty-helper/gnome-login-support.c | 9 ++++++---
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+commit c12cd952b13bbccc6b28367a877d5a3b520eff76
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 21 21:57:04 2003 +0000
+
+ add a couple of assertions here just to be sure (#108066).
+
+ * src/vte.c(vte_terminal_io_read): add a couple of assertions here just to
+ be sure (#108066).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 2 ++
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 09204fe9202ac6fd1049a011728bd4b1430a9213
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 21 21:48:03 2003 +0000
+
+ don't depend on PATH_MAX being available and correct (#109805). don't
+
+ * src/pty.c(_vte_pty_ptsname): don't depend on PATH_MAX being available and
+ correct (#109805).
+ * src/vte.c(vte_terminal_set_termcap): don't depend on PATH_MAX being available
+ and correct (#109805).
+ * src/vte.c(vte_terminal_io_read): fix signed/unsigned comparison (#108066).
+
+ ChangeLog | 8 ++++++
+ gnome-pty-helper/gnome-login-support.c | 40 ++++++++++++++++++++-----------
+ src/pty.c | 31 +++++++++++++++++-------
+ src/vte.c | 41 +++++++++++++++++++++-----------
+ 4 files changed, 83 insertions(+), 37 deletions(-)
+
+commit ac8d4312a324bc5b6a591186fc96ba57f5555a2b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 21 20:34:10 2003 +0000
+
+ add MESSAGE-OF-DOOM to EXTRA_DIST make Alt+Return generate ESC newline
+
+ * Makefile.am: add MESSAGE-OF-DOOM to EXTRA_DIST
+ * src/keymap.c: make Alt+Return generate ESC newline (#108863).
+
+ ChangeLog | 4 ++++
+ Makefile.am | 2 +-
+ src/keymap.c | 2 ++
+ 3 files changed, 7 insertions(+), 1 deletions(-)
+
+commit dc73e632cf03e3e764223628dce4b435edd44a95
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 21 20:09:45 2003 +0000
+
+ really drop this file
+
+ src/unitable.KSC5601 |17047 --------------------------------------------------
+ 1 files changed, 0 insertions(+), 17047 deletions(-)
+
+commit ce2e40099e9113f32fc473866158c7cf9048b2b6
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 21 20:05:30 2003 +0000
+
+ drop unitable.KSC5601 fixup comment re: KS X 1001 (#107119). add two
+
+ * src/Makefile.am: drop unitable.KSC5601
+ * src/iso2022.c: fixup comment re: KS X 1001 (#107119).
+ * src/mkunitables.sh: add two characters from KS X 1001:1998 (#107119).
+
+ ChangeLog | 13 +++++++++----
+ src/Makefile.am | 1 -
+ src/iso2022.c | 3 ++-
+ src/mkunitables.sh | 8 ++++++--
+ src/unitable.KSX1001 | 2 ++
+ 5 files changed, 19 insertions(+), 8 deletions(-)
+
+commit e3263d8cfcff27edf58bebead7e9899fc25d4262
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 21 19:35:16 2003 +0000
+
+ don't try to process incoming data if there isn't any (#110946). mark a
+
+ * src/vte.c(vte_terminal_eof): don't try to process incoming data if there
+ isn't any (#110946).
+ * src/vtexft.c: mark a warning message for translation.
+ * src/vtegl.c: make the warning when glX isn't available debug-only.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 4 +++-
+ src/vtegl.c | 2 ++
+ src/vtexft.c | 10 +++++++++-
+ 4 files changed, 20 insertions(+), 2 deletions(-)
+
+commit d8fe8eaf81fa1a4d8e13d996eb856d0b444e46d4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 21 19:01:58 2003 +0000
+
+ use #if HAVE_DECL_XXX instead of #ifdef HAVE_DECL_XXX, noted by Bob Doan.
+
+ * src/vteglyph.c: use #if HAVE_DECL_XXX instead of #ifdef HAVE_DECL_XXX, noted
+ by Bob Doan.
+
+ ChangeLog | 4 ++++
+ src/vteglyph.c | 14 +++++++-------
+ 2 files changed, 11 insertions(+), 7 deletions(-)
+
+commit e5a1bd96f1df0de2e22b10ab208094b381f7aa93
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 21 02:50:46 2003 +0000
+
+ - ident tagging - header reorg
+
+ - ident tagging
+ - header reorg
+
+ src/vte.c | 2 ++
+ src/vteaccess.c | 2 ++
+ src/vteapp.c | 2 ++
+ src/vtedraw.c | 1 +
+ src/vtefc.c | 3 +++
+ src/vteft2.c | 2 ++
+ src/vtegl.c | 3 +++
+ src/vteglyph.c | 1 +
+ src/vtepango.c | 3 +++
+ src/vtepangox.c | 7 ++++---
+ src/vtergb.c | 1 +
+ src/vteskel.c | 3 +++
+ src/vtexft.c | 2 ++
+ 13 files changed, 29 insertions(+), 3 deletions(-)
+
+commit c5310364b35cfac035f88f6780965d5afce73709
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 21 02:45:11 2003 +0000
+
+ work around for garbled glyphs when drawing runs of text using multiple
+
+ * src/vtexft.c: work around for garbled glyphs when drawing runs of text using
+ multiple fonts while mixing bitmap and antialiased fonts
+
+ ChangeLog | 4 ++++
+ src/vtexft.c | 33 ++++++++++++++++++++++++++++++++-
+ 2 files changed, 36 insertions(+), 1 deletions(-)
+
+commit 9003aca9c2dda02997255aff5d25a79947dc8011
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 18 00:31:22 2003 +0000
+
+ - 0.11.3
+
+ NEWS | 2 ++
+ vte.spec | 5 ++++-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 439b759cbfe698e7e0237bb0d97786e841a6ad36
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 18 00:16:52 2003 +0000
+
+ - add
+
+ src/unitable.KSX1001 | 8225 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 8225 insertions(+), 0 deletions(-)
+
+commit 10dd7a33e526cb9883e34dda5de83ed4b542bc7d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 18 00:16:19 2003 +0000
+
+ add missing prototype for vte_terminal_process_incoming().
+
+ * src/vte.c: add missing prototype for vte_terminal_process_incoming().
+
+ ChangeLog | 3 +++
+ src/vte.c | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 7abd52c1048aa299154b8e03635f915c8177575b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 18 00:14:55 2003 +0000
+
+ quiet a compiler warning. use KSX-1001 instead of KSC-5601 for Korean, add
+
+ * src/vteglyph.c(_vte_glyph_get): quiet a compiler warning.
+ * src/iso2022.c: use KSX-1001 instead of KSC-5601 for Korean, add maps for
+ CNS 11643 planes 3,4,5,6,7 (can't test them, but hey). Rework so
+ that we get the data before it's passed to g_iconv(), and stuff
+ gunichars into an array for the caller.
+ * src/interpret.c: adapt to changes in the iso2022 interfaces.
+ * src/vte.c: adapt to changes in the iso2022 interfaces.
+ * src/mkunitables.sh: add snippets for KSX 1001.
+ * src/iso2022.txt: add iso-2022-cn example text.
+
+ ChangeLog | 11 +
+ src/Makefile.am | 5 +-
+ src/interpret.c | 189 +++----
+ src/iso2022.c | 1773 +++++++++++++++++++++++++++++++---------------------
+ src/iso2022.h | 25 +-
+ src/iso2022.txt | 2 +
+ src/mkunitables.sh | 4 +-
+ src/vte.c | 545 ++++++-----------
+ src/vteglyph.c | 1 +
+ 9 files changed, 1363 insertions(+), 1192 deletions(-)
+
+commit cfe30db72f22a3c70a981e46bcd2a800210e92c4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 17 16:02:17 2003 +0000
+
+ 0.11.2
+
+ NEWS | 2 ++
+ vte.spec | 5 ++++-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 70a4202f0a0b2f9f3308ab7d3606d725d095d123
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 17 15:44:14 2003 +0000
+
+ invalidate a larger rectangle to fix behavior wrt openi18n assertion 2.
+
+ * src/vte.c(vte_terminal_process_incoming): invalidate a larger rectangle to
+ fix behavior wrt openi18n assertion 2.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 16 ++++++++++------
+ 2 files changed, 14 insertions(+), 6 deletions(-)
+
+commit d08be0223b4f3e714a7e218a2831caa6042ca0ec
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Apr 16 22:14:42 2003 +0000
+
+ fix logic error drawing the cursor which caused ALTGR characters to always
+
+ * src/vte.c(vte_terminal_paint): fix logic error drawing the cursor which
+ caused ALTGR characters to always be used. Draw the preedit string
+ in the right location.
+ * src/vte.c(vte_invalidate_cursor_once): expose the visible width of the
+ preedit string, not its length.
+
+ ChangeLog | 7 +++
+ src/vte.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 2 files changed, 115 insertions(+), 30 deletions(-)
+
+commit 7f3e85726efa33d937e4dee94e97db507831f448
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 15 16:40:15 2003 +0000
+
+ fix broken debug message.
+
+ * src/vteaccess.c: fix broken debug message.
+
+ ChangeLog | 3 +++
+ src/vteaccess.c | 7 +++++--
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 8f7ba9c45c5700bda437b021cd20a1555a0c4f9b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 15 15:46:21 2003 +0000
+
+ - correct bad cast
+
+ src/vtepangox.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 83d04891f50af2ac7a2c572abc4759bac3068434
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 15 15:43:52 2003 +0000
+
+ make row_data a structure containing an array instead of a simple array.
+
+ * src/vte.c: make row_data a structure containing an array instead of a simple
+ array. Add a field to row data structures which tracks whether or not
+ we soft-wrapped from this line to the next one. Make use of the field
+ when copying text and selecting by "line".
+ * src/reflect.c: put the label in a scrolled window to avoid mad loops when we
+ resize it to accomodate more text, which shrinks the terminal, which
+ removes text from the label, which resizes it to be smaller, which
+ gives the terminal more space, which adds text to the viewable area,
+ which requires a bigger label, and so on.
+ * src/vte.c: move vte_terminal_get_text_range logic into
+ vte_terminal_get_text_range_maybe_wrapped for internal use,
+ vte_terminal_get_text likewise.
+
+ ChangeLog | 14 ++
+ gnome-pty-helper/gnome-pty-helper.c | 2 +-
+ src/reflect.c | 10 +-
+ src/vte.c | 390 ++++++++++++++++++++++-------------
+ 4 files changed, 267 insertions(+), 149 deletions(-)
+
+commit 05b79cf4de66af1658906580c04c41de43f815b6
+Author: Ivan Stojmirov <stojmir src gnome org>
+Date: Tue Apr 15 12:13:00 2003 +0000
+
+ added Macedonian translation
+
+ po/mk.po | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 120 insertions(+), 0 deletions(-)
+
+commit 62b9ee3bb402ee64ebd1b440fa6073f7172ef784
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 15 02:41:41 2003 +0000
+
+ don't snap the beginning of selection to the next line in select-by-line
+
+ * src/vte.c: don't snap the beginning of selection to the next line in
+ select-by-line mode.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 5 +++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit bca5067bac3a54cefc1332fb98366a66d58c3256
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 15 01:45:50 2003 +0000
+
+ - 0.11.1
+
+ NEWS | 6 ++++--
+ vte.spec | 5 ++++-
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+commit 8c772bdb1f16839e9dcea3730d4335fbc747f192
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 15 00:05:35 2003 +0000
+
+ fix macro invocations so that when LCD and GRAY2/GRAY4 pixel modes are
+
+ * configure.in, src/vteglyph.c: fix macro invocations so that when LCD and
+ GRAY2/GRAY4 pixel modes are supported by freetype, we don't get
+ confused by them.
+ * src/vtepango.c, src/vtepangox.c: fix background scrolling.
+
+ ChangeLog | 6 ++++++
+ configure.in | 12 ++++++------
+ src/vteglyph.c | 7 ++++++-
+ src/vtepango.c | 21 +++++++--------------
+ src/vtepangox.c | 23 ++++++++---------------
+ 5 files changed, 33 insertions(+), 36 deletions(-)
+
+commit e3f4cc36d7e6bc29db5fefca8d6370a3f388d18f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 14 23:31:59 2003 +0000
+
+ require automake 1.6, 1.5 chokes on AM_LDFLAGS, which 1.7 wants instead of
+
+ * autogen.sh: require automake 1.6, 1.5 chokes on AM_LDFLAGS, which 1.7 wants
+ instead of LDFLAGS(!). Require autoconf 2.52 or newer, because older
+ versions bail on configure.in.
+ * configure.in: Check if ft_render_mode_mono, FT_RENDER_MODE_NORMAL,
+ FT_PIXEL_MODE_MONO, ft_pixel_mode_mono, FT_PIXEL_MODE_GRAY2,
+ FT_PIXEL_MODE_GRAY4, FT_PIXEL_MODE_GRAY, ft_pixel_mode_grays,
+ FT_PIXEL_MODE_LCD are declared.
+ * src/vte.c, src/vteapp.c, src/vtefc.c, src/vtepango.c: handle being built with
+ GTK+ 2.0 or 2.2.
+ * src/vtegl.c: disable for GTK+ < 2.2.0.
+ * src/vtepangox.c: use a PangoX context instead of a Pango context when
+ determining font metrics.
+ * src/vteglyph.c: handle the twisty maze of load and render options and pixel
+ modes which various versions of freetype support.
+
+ ChangeLog | 16 ++++++++++++++
+ autogen.sh | 36 ++++++++++++++++++++++++---------
+ configure.in | 59 ++++++++++++++++++++++++++++++++++++++++++++++++------
+ src/reaper.c | 1 +
+ src/vte.c | 15 ++++++++++---
+ src/vteapp.c | 7 +-----
+ src/vtedraw.c | 2 +
+ src/vtefc.c | 10 +++++++++
+ src/vtegl.c | 3 ++
+ src/vteglyph.c | 28 +++++++++++++++++++++----
+ src/vtepango.c | 18 +++++++++++++++-
+ src/vtepangox.c | 15 +++++++++++--
+ 12 files changed, 174 insertions(+), 36 deletions(-)
+
+commit 0e259e346a7b5487ac7ebfdae90bbb8013f719f1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 14 19:41:12 2003 +0000
+
+ disable pangox, xft, glx drawing if run invoked with the --without-x flag.
+
+ * configure.in: disable pangox, xft, glx drawing if run invoked with the
+ --without-x flag.
+ * vte.pc.in: include CFLAGS found by AC_PATH_XTRA when built with X.
+ * src/iso2022.c(_vte_iso2022_substitute_single): clean up and ensure that
+ ambiguous widths are respected.
+ * src/iso2022.c, src/iso2022.h: add _vte_iso2022_unichar_width().
+ * src/vte.c: remove old xft2/xft1/pango/pangox/core drawing code, making draw
+ the only supported method. Remove most dependencies on gdkx and Xlib,
+ except for root pixmap ID watching.
+ * src/vtedraw.c: only use pangox, xft if X_DISPLAY_MISSING is not defined.
+ * src/vtedraw.c, src/vtedraw.h: add get_using_fontconfig() method.
+ * src/vte.c(vte_terminal_get_using_xft): use _vte_draw_get_using_fontconfig(),
+ which is what apps really want to know when they call this function.
+ * src/vtegl.c: wrap in #ifndef X_DISPLAY_MISSING.
+ * src/vtepangox.c: wrap in #ifndef X_DISPLAY_MISSING.
+ * src/vtexft.c: wrap in #ifndef X_DISPLAY_MISSING.
+ * src/vteglyph.c(_vte_glyph_cache_set_description): use horizontal advance
+ instead of bitmap width when calculating display widths.
+ Rename to _vte_glyph_cache_set_font_description.
+
+ ChangeLog | 23 +
+ configure.in | 90 +-
+ src/iso2022.c | 24 +-
+ src/iso2022.h | 1 +
+ src/vte.c | 3341 +++++++++----------------------------------------------
+ src/vtedraw.c | 14 +
+ src/vtedraw.h | 24 +-
+ src/vtefc.c | 113 +-
+ src/vteft2.c | 14 +-
+ src/vtegl.c | 9 +
+ src/vteglyph.c | 49 +-
+ src/vteglyph.h | 6 +-
+ src/vtepango.c | 32 +-
+ src/vtepangox.c | 32 +-
+ src/vteskel.c | 7 +
+ src/vtexft.c | 9 +
+ vte.pc.in | 2 +-
+ 17 files changed, 854 insertions(+), 2936 deletions(-)
+
+commit dca7f0cdfcc4eba1e2238cd26fb3eb6a3ae58016
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Apr 9 20:11:52 2003 +0000
+
+ add back some variables which are used after all.
+
+ * src/vte.c: add back some variables which are used after all.
+
+ ChangeLog | 3 +++
+ src/vte.c | 6 ++++++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 26307a1dfd36f7b9af30ebd28805cd59e48e3694
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Apr 9 20:01:50 2003 +0000
+
+ add specific checks for PangoX and glX. add drawing method using freetype
+
+ * configure.in: add specific checks for PangoX and glX.
+ * src/vteft2.c, src/vteft2.h: add drawing method using freetype and GdkRGB.
+ * src/vteglyph.c, src/vteglyph.h: add.
+ * src/vtepangox.c, src/vtepangox.h: add drawing method using PangoX.
+ * src/vtergb.c, src/vtergb.h: add.
+ * src/vtegl.c, src/vtegl.h: add placeholder drawing method using freetype and
+ glX.
+ * src/Makefile.am: add newly-added source files to libvte.la target.
+ * src/vtedraw.c, src/vtedraw.h: add get_visual and get_colormap methods so that
+ drawing methods can override the default visual and colormap. Rename
+ get_text_base() to get_text_ascent(), which is more correct. Remove
+ scroll(), which would just wrap gdk_window_scroll().
+ * src/vte.c: fix logic for choosing alternate render methods when VTE_USE_XFT
+ is "0".
+ * src/vteapp.c: add -- option to stop parsing options with getopt.
+ * src/vtefc.c: fix incorrect DPI read due to type mismatch (#109513).
+
+ ChangeLog | 19 +
+ configure.in | 68 +++-
+ src/Makefile.am | 44 ++-
+ src/vte.c | 23 +-
+ src/vteapp.c | 10 +-
+ src/vtedraw.c | 44 ++-
+ src/vtedraw.h | 12 +-
+ src/vtefc.c | 13 +-
+ src/vteft2.c | 338 ++++++++++++++++++
+ src/vteft2.h | 35 ++
+ src/vtegl.c | 414 ++++++++++++++++++++++
+ src/vtegl.h | 35 ++
+ src/vteglyph.c | 728 +++++++++++++++++++++++++++++++++++++++
+ src/vteglyph.h | 86 +++++
+ src/vtepango.c | 42 +--
+ src/{vtepango.c => vtepangox.c} | 227 ++++++++-----
+ src/vtepangox.h | 35 ++
+ src/vtergb.c | 260 ++++++++++++++
+ src/vtergb.h | 52 +++
+ src/vteskel.c | 35 +-
+ src/vtexft.c | 39 ++-
+ vte.pc.in | 2 +-
+ vte.spec | 6 +-
+ 23 files changed, 2350 insertions(+), 217 deletions(-)
+
+commit f947682ae7c91de10542d69217496828122bd976
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Mon Mar 31 08:36:26 2003 +0000
+
+ Added "sq" to ALL_LINGUAS
+
+ * configure.in: Added "sq" to ALL_LINGUAS
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 492227858e294d598abfc1abd59b1a4f0459c7fd
+Author: Laurent Dhima <laurenti src gnome org>
+Date: Mon Mar 31 08:33:05 2003 +0000
+
+ Added Albanian translation
+
+ * sq.po: Added Albanian translation
+
+ po/ChangeLog | 5 ++
+ po/sq.po | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 125 insertions(+), 0 deletions(-)
+
+commit 1692ef6e575bceabc62527ae367360f892176ffc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 27 20:45:22 2003 +0000
+
+ - sprinkle various CFLAGS throughout
+
+ src/Makefile.am | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+commit 094ec6f9e8c2ff9176411ca5a5876b8130153782
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 27 00:48:54 2003 +0000
+
+ - more automake-1.7 changes, should properly accept 1.7, 1.6 or 1.5 now
+
+ autogen.sh | 22 +++++++++-------------
+ gnome-pty-helper/Makefile.am | 4 ++--
+ 2 files changed, 11 insertions(+), 15 deletions(-)
+
+commit 30195a9b175f3d1fe8f78ab3af321eb170ce8cb8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 27 00:39:53 2003 +0000
+
+ specify AM_CFLAGS and AM_LDFLAGS instead of CFLAGS and LDFLAGS so that
+
+ * src/Makefile.am: specify AM_CFLAGS and AM_LDFLAGS instead of CFLAGS and
+ LDFLAGS so that automake 1.7 doesn't kick us to the curb
+
+ ChangeLog | 4 ++++
+ src/Makefile.am | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 71154e5b4c8ac4e2725a6d92e79bc248c8061dbb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 26 19:30:43 2003 +0000
+
+ commit useful news
+
+ NEWS | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 2d71c2855ee2886654dede15fbca46734be4198a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 17 19:23:10 2003 +0000
+
+ - copy AC_CHECK_FT2 to VTE_CHECK_FT2 and use it instead -- some systems with
+ freetype development stuff still don't include the right autoconf macros
+ (#108481)
+
+ acinclude.m4 | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ configure.in | 5 +-
+ 2 files changed, 147 insertions(+), 2 deletions(-)
+
+commit 8623bfb400d8f56b916f1fb5367cfaae0981445f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 17 17:53:04 2003 +0000
+
+ - warn when freetype devel stuff isn't present, becuase we need it to
+ supply the AC_CHECK_FT2 macro
+
+ autogen.sh | 11 ++++++++++-
+ 1 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 160c94bbca71b9fd92113faae0bebc4cad60d7ed
+Author: Metin Amiroff <metin karegen com>
+Date: Fri Mar 14 18:56:44 2003 +0000
+
+ Updated Azerbaijani translation.
+
+ 2003-03-14 Metin Amiroff <metin karegen com>
+
+ * az.po: Updated Azerbaijani translation.
+
+ po/ChangeLog | 4 +++
+ po/az.po | 66 +++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 37 insertions(+), 33 deletions(-)
+
+commit 937ca9b1422e28330e8ae4f386dac963556ea33f
+Author: Christian Rose <menthos menthos com>
+Date: Thu Mar 13 13:14:42 2003 +0000
+
+ Added "ml" to ALL_LINGUAS. Added Malayalam translation by FSF-India
+
+ 2003-03-13 Christian Rose <menthos menthos com>
+
+ * configure.in: Added "ml" to ALL_LINGUAS.
+ * po/ml.po: Added Malayalam translation by
+ FSF-India <locale gnu org in>.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 ++
+ po/ml.po | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 130 insertions(+), 1 deletions(-)
+
+commit d4c4742e3a3b5218b15574a1367a704d34dc8fb1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Mar 7 17:51:41 2003 +0000
+
+ - actually add these files
+
+ src/vteskel.c | 210 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vteskel.h | 35 ++++++++++
+ 2 files changed, 245 insertions(+), 0 deletions(-)
+
+commit 84ae030f2516fddcc597778a46e7754e23f8c7d2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Mar 7 17:51:21 2003 +0000
+
+ adjust coordinates for the border when clearing rectangles. add. use the
+
+ * src/vte.c(vte_terminal_paint): adjust coordinates for the border when
+ clearing rectangles.
+ * src/vteskel.c, src/vteskel.h: add.
+ * src/vtedraw.c: use the skeleton drawing code.
+
+ ChangeLog | 5 +++
+ src/Makefile.am | 2 +
+ src/vte.c | 77 +++++++++++++++++++++++++++++++++++++++++++++----------
+ src/vtedraw.c | 2 +
+ 4 files changed, 72 insertions(+), 14 deletions(-)
+
+commit 037cb1da6a82cb9bef6a73b8e67a49b8ed4e531e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Mar 7 16:54:13 2003 +0000
+
+ watch for Visibility events. don't synthesize an expose event if we're
+
+ * src/vte.c(vte_terminal_visibility_notify): watch for Visibility events.
+ * src/vte.c(vte_invalidate_cells,vte_invalidate_all): don't synthesize an
+ expose event if we're fully obscured, that's just silly.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 26 ++++++++++++++++++++++++++
+ 2 files changed, 32 insertions(+), 0 deletions(-)
+
+commit e99c7b9d6bf07cfbbcb786769a7f41e17da80fb0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Mar 7 00:28:21 2003 +0000
+
+ take a const GdkColor* instead of a non-const color.
+
+ * src/vte.c, src/vte.h(vte_terminal_set_background_tint_color): take a const
+ GdkColor* instead of a non-const color.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 3 ++-
+ src/vte.h | 2 +-
+ 3 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 7ff66739d0e5a603a7c6ba37ef075934135fd7c5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 6 17:25:44 2003 +0000
+
+ regenerate. update for vte_char_attributes rename.
+
+ * python/vte.defs: regenerate.
+ * python/vte.override: update for vte_char_attributes rename.
+
+ ChangeLog | 4 ++++
+ python/vte.defs | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ python/vte.override | 12 ++++++------
+ 3 files changed, 56 insertions(+), 6 deletions(-)
+
+commit 727213593e805e1eff6fd7e7036885ffd4795542
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 6 17:20:33 2003 +0000
+
+ rename struct vte_char_attributes to VteCharAttributes, fixup some docs.
+
+ * src/vte.c, src/vte.h, src/vteaccess.c: rename struct vte_char_attributes to
+ VteCharAttributes, fixup some docs.
+ * doc/reference: finish up docs.
+
+ ChangeLog | 5 +
+ doc/reference/tmpl/reaper.sgml | 2 +-
+ doc/reference/tmpl/vte-unused.sgml | 195 ++++++++++++++++++++++++++++++++++++
+ doc/reference/tmpl/vte.sgml | 62 ++++++++----
+ doc/reference/tmpl/vteaccess.sgml | 2 +-
+ doc/reference/vte-sections.txt | 48 ++++++++-
+ src/vte.c | 59 ++++++------
+ src/vte.h | 5 +-
+ src/vteaccess.c | 16 ++--
+ 9 files changed, 328 insertions(+), 66 deletions(-)
+
+commit 4de594de6072f866ec78600166309a1232656bbc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 5 22:55:08 2003 +0000
+
+ add FT2_LIBS and FT2_CFLAGS to our libs and cflags. Add xft >= 2.0 and
+
+ * vte.pc.in: add FT2_LIBS and FT2_CFLAGS to our libs and cflags. Add xft >= 2.0
+ and fontconfig as hard requirements.
+
+ ChangeLog | 4 ++++
+ vte.pc.in | 6 +++---
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+commit 6b9ac417b5cfa881b0f24cdf7e86950f8b16377a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 5 22:36:42 2003 +0000
+
+ don't spit out which rendering method we're using except in debug mode.
+
+ * src/vtedraw.c: don't spit out which rendering method we're using except in
+ debug mode.
+
+ ChangeLog | 4 ++++
+ src/vtedraw.c | 1 -
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 6f5d8d1e0747db823e73c4fb7642f7d5b41f740f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 5 22:34:34 2003 +0000
+
+ don't print "Bogus font." when we think the font metrics are screwy.
+
+ * src/vtepango.c, src/vtexft.c: don't print "Bogus font." when we think the
+ font metrics are screwy.
+
+ ChangeLog | 4 ++++
+ src/vtepango.c | 1 -
+ src/vtexft.c | 1 -
+ 3 files changed, 4 insertions(+), 2 deletions(-)
+
+commit c6c7bb21c498d9abe70d7f28bd867045bb0a68dc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 5 22:31:08 2003 +0000
+
+ require Xft2 and fontconfig, drop Xft1. Require freetype2. add xticker,
+
+ * configure.in: require Xft2 and fontconfig, drop Xft1. Require freetype2.
+ * src/Makefile.am, src/xticker.c: add xticker, useless but interesting.
+ * src/vte.c, src/vte.h: add vte_terminal_set_scroll_background() to enable
+ background scrolling (where supported by the drawing code).
+ * src/vteapp.c: set the tinting color to the default background color to see
+ what that's like. Add -s option to toggle scrolling backgrounds.
+ * src/vtefc.c, src/vtefc.h: add. For converting PangoFontDescriptions to
+ sorted lists of FcPatterns suitable for passing to XftFontOpenPattern()
+ or even FT_New_Face().
+ * src/vtedraw.c, src/vtedraw.h: add. New drawing layer.
+ * src/vtepango.c, src/vtepango.h: add. Drawing layer using Pango.
+ * src/vtexft.c, src/vtexft.h: add. Drawing layer using Xft2.
+ * src/vte.c: add render type VteRenderDraw for transitional period in
+ preparation for nuking other drawing code. Merge HAVE_XFT bits into
+ HAVE_XFT2 areas. Nuke Xft1-specific stuff. Move drawing of lines
+ and rectangles to dedicated functions. Always call vte_unichar_width()
+ instead of g_unichar_iswide().
+
+ ChangeLog | 20 +
+ configure.in | 112 +++--
+ src/Makefile.am | 17 +-
+ src/vte.c | 1780 ++++++++++++++++++++++++++++++++++++-------------------
+ src/vte.h | 1 +
+ src/vteapp.c | 9 +-
+ src/vtedraw.c | 227 +++++++
+ src/vtedraw.h | 110 ++++
+ src/vtefc.c | 346 +++++++++++
+ src/vtefc.h | 42 ++
+ src/vtepango.c | 424 +++++++++++++
+ src/vtepango.h | 35 ++
+ src/vtexft.c | 728 +++++++++++++++++++++++
+ src/vtexft.h | 39 ++
+ src/xticker.c | 144 +++++
+ 15 files changed, 3388 insertions(+), 646 deletions(-)
+
+commit 658c3b9bca57da43964410b0f1c149b37e38901d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 4 19:56:17 2003 +0000
+
+ fix swap of one variable for another which prevented stripping of control
+
+ * src/vte.c(vte_sequence_handler_set_title_internal): fix swap of one variable
+ for another which prevented stripping of control chars, spotted by
+ Nam SungHyun.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 8369c0f5728784c8856e4e5a27fc80772152b8aa
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 4 18:01:25 2003 +0000
+
+ wrap properly when a scrolling region is set (#107559).
+
+ * src/vte.c(vte_terminal_insert_char): wrap properly when a scrolling region
+ is set (#107559).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 4f53480a826210d6c03fd04b74b7116d5370f83a
+Author: added po/ja.po. T.Aihana <aihana gnome gr jp>
+Date: Thu Feb 27 15:42:21 2003 +0000
+
+ 2003-02-28 added po/ja.po. T.Aihana <aihana gnome gr jp>
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit ef337abba581f3ea5f3338277017f1514813a159
+Author: added Japanese translation. T.Aihana <aihana gnome gr jp>
+Date: Thu Feb 27 15:40:39 2003 +0000
+
+ 2003-02-28 added Japanese translation. T.Aihana <aihana gnome gr jp>
+
+ po/ChangeLog | 4 ++
+ po/ja.po | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 130 insertions(+), 0 deletions(-)
+
+commit 49940ab3b43573e83bc4eca8f58013ab392c4f37
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 27 00:31:47 2003 +0000
+
+ force characters substituted through the ACS map to have width of 1.
+
+ * src/iso2022.c(_vte_iso2022_substitute,_vte_iso2022_substitute_single): force
+ characters substituted through the ACS map to have width of 1.
+
+ ChangeLog | 4 ++++
+ src/iso2022.c | 32 +++++++++++++++++++++++++++++---
+ 2 files changed, 33 insertions(+), 3 deletions(-)
+
+commit 9e889be8604ad6b57282fd884a02073167cc0c3c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 27 00:14:08 2003 +0000
+
+ use an array of codepoints instead of a UTF-8 string so that we can check
+
+ * src/vte.c(vte_terminal_font_open_xft,vte_terminal_font_open_pango): use an
+ array of codepoints instead of a UTF-8 string so that we can check for
+ lack of font coverage in Xft fonts.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 56 +++++++++++++++++++++++++++++++++++++++-----------------
+ 2 files changed, 44 insertions(+), 17 deletions(-)
+
+commit 0ca7f0516f839b503a1c2f12862e1ce38124345a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Feb 26 23:50:04 2003 +0000
+
+ formatting fixups.
+
+ * src/vte.c: formatting fixups.
+
+ ChangeLog | 3 ++
+ src/vte.c | 67 +++++++++++++++++++++++++++++++------------------------------
+ 2 files changed, 37 insertions(+), 33 deletions(-)
+
+commit 26922b2b3e2dc22c25de00d9dae12b9307d3ed1c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Feb 26 23:47:51 2003 +0000
+
+ patch from Jungshik Shin for detecting and handling fonts where ASCII
+
+ * src/vte.c(vte_terminal_font_open_xft,vte_terminal_font_open_pango): patch
+ from Jungshik Shin for detecting and handling fonts where ASCII
+ characters are double-width (#106618)
+
+ ChangeLog | 5 +++++
+ src/vte.c | 46 ++++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 47 insertions(+), 4 deletions(-)
+
+commit fe69847b32c5dec739197dc4a0347f5042cc6198
+Author: Taneem Ahmed <taneem eyetap org>
+Date: Wed Feb 26 08:37:13 2003 +0000
+
+ Added "bn" to ALL_LINGUAS. Added Bangla/Bengali translation by Jamil Ahmed
+
+ 2003-02-26 Taneem Ahmed <taneem eyetap org>
+
+ * configure.in: Added "bn" to ALL_LINGUAS.
+ * bn.po: Added Bangla/Bengali translation
+ by Jamil Ahmed <jamil bengalinux org>.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 ++
+ po/bn.po | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 132 insertions(+), 1 deletions(-)
+
+commit 60123909ac05f35f34c0e029b1c7ce6082f2f8a9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Feb 26 00:33:14 2003 +0000
+
+ take a shot at implementing xconsole-like functionality when started with
+
+ * src/vteapp.c(main): take a shot at implementing xconsole-like functionality
+ when started with the -C flag: we open /dev/console and TIOCCONS it,
+ and just feed data to the widget until we lose ownership of the
+ MIT_CONSOLE_$(hostname) clipboard.
+
+ ChangeLog | 6 ++
+ src/vteapp.c | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 143 insertions(+), 11 deletions(-)
+
+commit 18addacae85e32fbc25eb5547ab9d06e0453bb77
+Author: Sam�el J�n Gunnarsson <sammi techattack nu>
+Date: Tue Feb 25 19:14:43 2003 +0000
+
+ Added Icelandic translation.
+
+ 2003-02-25 Sam�el J�n Gunnarsson <sammi techattack nu>
+
+ * is.po: Added Icelandic translation.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/is.po | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 132 insertions(+), 1 deletions(-)
+
+commit 8476c00dff0d90b82b867737111c90a81ebff4c6
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 25 00:18:03 2003 +0000
+
+ don't report the user-settable title and icon strings to applications,
+
+ * src/vte.c(vte_sequence_handler_window_manipulation): don't report the
+ user-settable title and icon strings to applications, based on H D
+ Moore's "Terminal Emulator Security Issues" (CAN-2003-0070).
+ * src/vte.c(vte_sequence_handler_set_title_internal): strip out control
+ characters just to be on the safe side.
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 13 +++++++++----
+ 2 files changed, 16 insertions(+), 4 deletions(-)
+
+commit 512186bb91ca5ee9f0e6407db51568a9c86a76f1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 24 22:45:07 2003 +0000
+
+ home the cursor when we switch to the alternate screen (#105075).
+
+ * src/vte.c(vte_sequence_handler_decset_internal): home the cursor when we
+ switch to the alternate screen (#105075).
+
+ ChangeLog | 4 ++++
+ src/Makefile.am | 1 +
+ src/vte.c | 6 +++++-
+ 3 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 849f6800f838b3f418c9ce0add4da61ee4a89f7e
+Author: Duarte Loreto <happyguy_pt hotmail com>
+Date: Sun Feb 23 02:52:09 2003 +0000
+
+ Added "pt" to ALL_LINGUAS.
+
+ 2003-02-23 Duarte Loreto <happyguy_pt hotmail com>
+
+ * configure.in: Added "pt" to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 7eb560f64185ac54da6d8604f6a9018ea120ac4c
+Author: Duarte Loreto <happyguy_pt hotmail com>
+Date: Sun Feb 23 02:51:05 2003 +0000
+
+ Added Portuguese translation.
+
+ 2003-02-23 Duarte Loreto <happyguy_pt hotmail com>
+
+ * pt.po: Added Portuguese translation.
+
+ po/ChangeLog | 4 ++
+ po/pt.po | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 127 insertions(+), 0 deletions(-)
+
+commit 3fbecfdbecd9c9ac60cc26e3274ac22d8d47eb35
+Author: Metin Amiroff <metin karegen com>
+Date: Fri Feb 21 11:54:44 2003 +0000
+
+ Added az to ALL_LINGUAS.
+
+ 2003-02-21 Metin Amiroff <metin karegen com>
+
+ * configure.in: Added az to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 7ecc0ea9725c8ee42e329b1c64b26b94d9479555
+Author: Metin Amiroff <metin karegen com>
+Date: Fri Feb 21 11:52:54 2003 +0000
+
+ Added Azerbaijani translation.
+
+ 2003-02-21 Metin Amiroff <metin karegen com>
+
+ * az.po: Added Azerbaijani translation.
+
+ po/ChangeLog | 4 ++
+ po/az.po | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 127 insertions(+), 0 deletions(-)
+
+commit 23e1237027d24d52f279ade778a800e56da2c90d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Feb 21 03:12:09 2003 +0000
+
+ in debug mode, skip coverage assertions for specific keys (GDK_2 - GDK_8).
+
+ * src/keymap.c(_vte_keymap_map): in debug mode, skip coverage assertions for
+ specific keys (GDK_2 - GDK_8).
+ * src/keymap.c: remove unshifted entries for GDK_2 - GDK_8 (#106667)
+
+ ChangeLog | 5 +++++
+ src/keymap.c | 25 ++++++++++++++++---------
+ 2 files changed, 21 insertions(+), 9 deletions(-)
+
+commit 1d11073ddb176328f34a9a5e48a706e40dfeeac8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Feb 21 01:20:44 2003 +0000
+
+ stop gratuitously resetting the IM context. correctly determine when we
+
+ * src/vte.c(vte_terminal_im_commit,vte_terminal_paste_cb): stop gratuitously
+ resetting the IM context.
+ * src/vte.c(vte_terminal_process_incoming): correctly determine when we have an
+ IM context -- it should be iff we're realized.
+ * src/vte.c(vte_terminal_key_press/release): only filter keypresses through the
+ IM context if we're realized, otherwise it doesn't exist.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 10 +++++-----
+ 2 files changed, 13 insertions(+), 5 deletions(-)
+
+commit c2be38cd00eedfeaea58a0b1f480d26415c01617
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 20 19:27:17 2003 +0000
+
+ reverse that last change -- don't always assume proportional text.
+
+ * src/vte.c(vte_terminal_paint): reverse that last change -- don't always
+ assume proportional text.
+ * src/vte.c(vte_sequence_handler_ta): eliminate dead code.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 17 -----------------
+ 2 files changed, 5 insertions(+), 17 deletions(-)
+
+commit c2b438a6e89039d6518d62b6a22ac4d841a4d13a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 20 08:12:12 2003 +0000
+
+ move the initial drawing x left whenever we back up to a previous cell to
+
+ * src/vte.c(vte_terminal_draw_row): move the initial drawing x left whenever
+ we back up to a previous cell to avoid drawing fragments.
+ * src/vte.c(vte_terminal_paint): always assume non-monospaced text, because the
+ "missing glyph" glyph consistently looks screwy otherwise.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 5 +++++
+ 2 files changed, 11 insertions(+), 0 deletions(-)
+
+commit ca1368da42e8e2b3b9127665932589d5473a2945
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 20 07:40:17 2003 +0000
+
+ don't reset the input method here -- it may be in the middle of something
+
+ * src/vte.c(vte_terminal_feed_child): don't reset the input method here -- it
+ may be in the middle of something (Red Hat #81542).
+ * src/vte.c(vte_terminal_im_commit): reset the input method when we get text
+ committed (Red Hat #81542).
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 2 +-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit f94d3321a8cf6d3b2f66f5d95d4321db5b733b4f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 20 03:42:43 2003 +0000
+
+ if we're not currently realized, don't try to tell our IM context that our
+
+ * src/vte.c(vte_terminal_focus_in,vte_terminal_focus_out): if we're not
+ currently realized, don't try to tell our IM context that our focus
+ state changed, because we don't have one. While we're at it, it's
+ silly to try to force the cursor to be drawn when we're not realized,
+ either.
+ * src/vte.c(vte_terminal_background_update): disconnect self, just in case we
+ were called directly while still queued, which would otherwise leak the
+ source, leading to potential problems later (Red Hat #84368).
+
+ ChangeLog | 10 ++++++++++
+ src/vte.c | 44 ++++++++++++++++++++++++++++----------------
+ 2 files changed, 38 insertions(+), 16 deletions(-)
+
+commit 1e9c96f4cd86876c7ce43d5fdfa0021a1b2407f3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 20 02:44:40 2003 +0000
+
+ use gdk_window_scroll if the first row to be scrolled is the first visible
+
+ * src/vte.c(vte_terminal_scroll_window): use gdk_window_scroll if the first row
+ to be scrolled is the first visible row, not if it's the first row we
+ ever saw (Red Hat #83472).
+
+ ChangeLog | 8 +++++++-
+ src/vte.c | 2 +-
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit ab30d1a209885f446d0eef718cfddd645a6f8cf1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 20 02:04:50 2003 +0000
+
+ - add bug ID from Red Hat bugzilla, for tracking
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit aec5c7bb10976306ae93ab7c779021a3333059d0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 20 02:03:59 2003 +0000
+
+ grab input focus on button 1 press (#106573).
+
+ * src/vte.c(vte_terminal_button_press): grab input focus on button 1 press
+ (#106573).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 5 +++++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit fa3e8778902c5aa0b713806649ef2dbf47fc03db
+Author: Dmitry Mastrukov <dmitrym src gnome org>
+Date: Wed Feb 19 05:29:16 2003 +0000
+
+ be.po: Updated Belarusian translation from Belarusian team <i18n mova org>.
+
+ po/ChangeLog | 5 +++
+ po/be.po | 103 ++++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 58 insertions(+), 50 deletions(-)
+
+commit 76fc436de6e05670fb5b8e515ddb88ae8d093ee4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 18 20:54:21 2003 +0000
+
+ add missing chunk of fix for backtab.
+
+ * src/vte.c(vte_terminal_sequence_handler_bt): add missing chunk of fix for
+ backtab.
+
+ ChangeLog | 12 ++++++++----
+ src/vte.c | 2 +-
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+commit e66f980c1658bdc351bb15b99d193391e6ad7319
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 18 20:19:03 2003 +0000
+
+ turn on update debugging if VTE_DEBUG_FLAGS includes "updates"
+
+ * src/vte.c: turn on update debugging if VTE_DEBUG_FLAGS includes "updates"
+
+ ChangeLog | 4 ++++
+ src/vte.c | 5 +++++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 823156b3627d3909961b4227601552255fbdc266
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 18 20:00:56 2003 +0000
+
+ add map entries for unmodified digit keypresses.
+
+ * src/keymap.c: add map entries for unmodified digit keypresses.
+
+ ChangeLog | 3 +++
+ src/keymap.c | 7 +++++++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+commit b68f5e0c3b9b1dcebf6999d51f663bfcee2c153a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 18 19:54:03 2003 +0000
+
+ use the default cursor by default, so that we don't look weird to people
+
+ * src/vte.c(vte_terminal_match_add): use the default cursor by default, so that
+ we don't look weird to people who aren't used to the cursor changing
+ this way.
+ * configure.in: forcibly define VTE_DEBUG to "1" when we define it.
+
+ ChangeLog | 6 ++++++
+ configure.in | 2 +-
+ src/vte.c | 2 +-
+ 3 files changed, 8 insertions(+), 2 deletions(-)
+
+commit 21445a9551e1095985eb462d520f70cf0805325c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 18 19:39:24 2003 +0000
+
+ emit focus-event signals from the accessible peer when the widget receives
+
+ * src/vteaccess.c: emit focus-event signals from the accessible peer when the
+ widget receives focus-in and focus-out events, noted by Marc Mulcahy.
+
+ ChangeLog | 5 +++++
+ src/vteaccess.c | 38 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 43 insertions(+), 0 deletions(-)
+
+commit 52adc5f44e7f5052b2d09f7ccde3641d3681ba3c
+Author: Roozbeh Pournader <roozbeh sharif edu>
+Date: Tue Feb 18 14:13:16 2003 +0000
+
+ Added "fa" to ALL_LINGUAS. Added Persian translation.
+
+ 2003-02-18 Roozbeh Pournader <roozbeh sharif edu>
+
+ * configure.in: Added "fa" to ALL_LINGUAS.
+ * po/fa.po: Added Persian translation.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/fa.po | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 127 insertions(+), 1 deletions(-)
+
+commit 8e04e2c5fb3c4aa1de1b409849a665a777448b85
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 18 05:42:59 2003 +0000
+
+ add vte_terminal_match_set_cursor() (#105986).
+
+ * src/vte.c, src/vte.h: add vte_terminal_match_set_cursor() (#105986).
+
+ ChangeLog | 3 ++
+ src/vte.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ src/vte.h | 3 ++
+ src/vteapp.c | 11 +++++++-
+ 4 files changed, 85 insertions(+), 8 deletions(-)
+
+commit a66a003c78bd9f62156bd05f12ed8dfc636ab9f5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 18 05:02:07 2003 +0000
+
+ add @LDFLAGS@ to all of the LDADD clauses, hopefully fixing #105415.
+
+ * src/Makefile.am: add @LDFLAGS@ to all of the LDADD clauses, hopefully fixing
+ #105415.
+
+ ChangeLog | 4 ++++
+ src/Makefile.am | 38 +++++++++++++++++++-------------------
+ 2 files changed, 23 insertions(+), 19 deletions(-)
+
+commit ac5cd9d1304365f387eee101ae800ac4ab8b5076
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 18 03:49:08 2003 +0000
+
+ recognize and discard invalid arguments (#57453).
+
+ * src/vte.c(vte_terminal_sequence_handler_cs): recognize and discard invalid
+ arguments (#57453).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 9 ++++++++-
+ 2 files changed, 12 insertions(+), 1 deletions(-)
+
+commit 84f96c1bde40309c8cb99e4a52d657e433cf26a4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 18 03:47:25 2003 +0000
+
+ add map entries for Ctrl+digit keys (#106193).
+
+ * src/keymap.c: add map entries for Ctrl+digit keys (#106193).
+
+ ChangeLog | 3 +++
+ src/keymap.c | 38 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 41 insertions(+), 0 deletions(-)
+
+commit e1e2a6d50606d0387a6d5de88472db5d808588bc
+Author: Alessio Frusciante <algol src gnome org>
+Date: Mon Feb 17 18:48:03 2003 +0000
+
+ Added Italian translation by Francesco Marletta.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 ++
+ po/it.po | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 135 insertions(+), 1 deletions(-)
+
+commit 8b32ee71caaf29151f8435bddc41ffac9120c118
+Author: Christian Rose <menthos menthos com>
+Date: Sun Feb 16 20:04:45 2003 +0000
+
+ Some fixes for problems catched in translation review.
+
+ 2003-02-16 Christian Rose <menthos menthos com>
+
+ * sv.po: Some fixes for problems catched in translation review.
+
+ po/ChangeLog | 4 ++++
+ po/sv.po | 48 ++++++++++++++++++++++++------------------------
+ 2 files changed, 28 insertions(+), 24 deletions(-)
+
+commit f8eee3ec7d03156a978257091842f8d98a55cbca
+Author: Dmitry Mastrukov <dmitrym src gnome org>
+Date: Sun Feb 16 09:36:02 2003 +0000
+
+ configure.in: Added Belarusian to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit c81f504ecc19d0e8b27fcc4cbe11aca4a402de9c
+Author: Dmitry Mastrukov <dmitrym src gnome org>
+Date: Sun Feb 16 09:34:32 2003 +0000
+
+ be.po: Added Belarusian translation from Belarusian team <i18n infonet by>.
+
+ po/ChangeLog | 5 ++
+ po/be.po | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 122 insertions(+), 0 deletions(-)
+
+commit f475bd7c28d5e60b1f06b3e49b4a716cfe29cc5b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Feb 14 22:32:10 2003 +0000
+
+ fix to move back to the leftmost column if there are no previous tabstops,
+
+ * src/vte.c(vte_terminal_sequence_handler_bt): fix to move back to the leftmost
+ column if there are no previous tabstops, exercised by make menuconfig.
+ * src/vte.c(vte_terminal_background_update): handle pixbufs with n_channels!=3.
+
+ ChangeLog | 9 +++++++++
+ src/vte.c | 20 ++++++++++++--------
+ 2 files changed, 21 insertions(+), 8 deletions(-)
+
+commit 7064407de5e5fbb7e6c088f4b3e7194a71d17373
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Feb 14 21:58:18 2003 +0000
+
+ handle width masks now that we're encoding widths for all characters.
+
+ * src/interpret.c: handle width masks now that we're encoding widths for all
+ characters.
+
+ ChangeLog | 4 ++++
+ src/interpret.c | 3 +++
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit c2d6924c3abdeb850e4577d374251e6ca8b35ab7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Feb 14 21:36:13 2003 +0000
+
+ - would help if i actually made the changes i changelogged
+
+ src/vte.c | 12 ++++++++----
+ 1 files changed, 8 insertions(+), 4 deletions(-)
+
+commit 2cff982aaf3dd6daafe4a9bb5576bdf2da34b3cb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Feb 14 21:35:09 2003 +0000
+
+ more comments to keep myself from getting confused later.
+
+ * src/vte.c: more comments to keep myself from getting confused later.
+
+ ChangeLog | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit 893ea4cf83cb8ec6108282ecd248a0bd28d1adc9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Feb 14 04:46:08 2003 +0000
+
+ change the coalescing timeout to 2ms.
+
+ * src/vte.c: change the coalescing timeout to 2ms.
+
+ ChangeLog | 3 +++
+ src/vte.c | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit b1aa5c0f6c40edb37b33d46f14c5a5f485998195
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Feb 14 03:50:48 2003 +0000
+
+ attempt to coalesce data received within about 10ms to reduce load on the
+
+ * src/vte.c(vte_terminal_io_read): attempt to coalesce data received
+ within about 10ms to reduce load on the X server on systems where the
+ scheduler wakes us up as soon as we have a few bytes available. Based
+ on a suggested fix by msw.
+ * src/vte.c(vte_terminal_io_read): never free buf, it's not a heap
+ variable any more. Spotted by msw.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 57 +++++++++++++++++++++++++++++++++++++++------------------
+ 2 files changed, 47 insertions(+), 18 deletions(-)
+
+commit 7373a8e881f8095290e83c429d25447794b8e910
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 13 07:16:04 2003 +0000
+
+ close fd leak. close potential fd leak.
+
+ * src/vte.c(vte_terminal_finalize): close fd leak.
+ * src/vte.c(vte_terminal_fork_command): close potential fd leak.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 2 ++
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 67af1979229dac9b5964a85eb268447d0a1c6773
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 13 07:00:21 2003 +0000
+
+ handle cases where the widget has no data and returns NULL when we ask for
+
+ * src/reflect.c(main): handle cases where the widget has no data and returns
+ NULL when we ask for it.
+
+ ChangeLog | 4 ++++
+ src/reflect.c | 17 ++++++++++++-----
+ 2 files changed, 16 insertions(+), 5 deletions(-)
+
+commit 4996c0113b4398cd5b0e93e3327c1bac9a161b4a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 13 06:57:16 2003 +0000
+
+ do a complete read of the widget before we start off in main to ensure we
+
+ * src/reflect.c(main): do a complete read of the widget before we start off in
+ main to ensure we have accurate data.
+ * src/vteaccess.c(vte_terminal_accessible_update_private_data_if_needed): only
+ attempt to free the previous snapshot if it existed.
+
+ ChangeLog | 6 ++++++
+ src/reflect.c | 11 +++++++++++
+ src/vteaccess.c | 4 +++-
+ 3 files changed, 20 insertions(+), 1 deletions(-)
+
+commit 89b529fe5b38082668fd39cd165bb091910a6187
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 13 06:50:02 2003 +0000
+
+ connect to signals before any get emitted. use a GString to store snapshot
+
+ * src/reflect.c(main): connect to signals before any get emitted.
+ * src/vteaccess.c: use a GString to store snapshot text so that we always have
+ proper length information.
+
+ ChangeLog | 5 ++
+ src/reflect.c | 15 +++--
+ src/vteaccess.c | 211 +++++++++++++++++++++++++++++++++----------------------
+ 3 files changed, 141 insertions(+), 90 deletions(-)
+
+commit 879e4921f21b3cea65f24042e657f600c4f2d430
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 13 05:01:28 2003 +0000
+
+ spit out a warning if we receive an out-of-range text_changed::delete
+
+ * src/reflect.c(text_changed_delete): spit out a warning if we receive an
+ out-of-range text_changed::delete signal.
+
+ ChangeLog | 4 ++++
+ src/reflect.c | 7 ++++++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit ac69abef64b2412c1c322d1a09bd2cd8b56e457a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Feb 11 20:21:43 2003 +0000
+
+ add data for tracking ambiguous-width Unicode characters. add
+
+ * src/genwidths, src/uniwidths: add data for tracking ambiguous-width Unicode
+ characters.
+ * src/iso2022.c, src/iso2022.h: add _vte_iso2022_is_ambiguous() for checking if
+ a character is ambiguous, and _vte_iso2022_ambiguous_width() for
+ guessing how wide it should be based on the current locale. Rename
+ _vte_iso2022_get/set_width to ...encoded_width to clarify the intent,
+ ditto for the related macros.
+ * src/table.c,src/trie.c: use renamed macros for reading encoded widths.
+ * src/iso2022.c(_vte_iso2022_substitute_single,_vte_iso2022_substitute): handle
+ ambiguous widths properly, and always encode a width.
+ * src/Makefile.am: use the default LDFLAGS, I think.
+ * src/vte.c,src/vte.h: add vte_terminal_set_background_tint_color().
+ * src/vte.c(vte_terminal_unrealize): unhook from background update sources,
+ because we may not have a display after that.
+ * src/vte.c(vte_terminal_size_allocate): only queue a background update if
+ we're in transparent mode and either we've been moved or we have no
+ background yet. If our size changed, force a repaint.
+ * src/vte.c(vte_sequence_handler_window_manipulation): snip off the padding
+ along the edges when responding to requests for the window size and
+ location -- apps have no way to query it.
+ * src/vte.c(vte_terminal_get_text_range): skip over fragments properly.
+ * src/vte.c(vte_terminal_draw_row): skip over fragments properly.
+ * src/vte.c(vte_unichar_width): rework in terms of the width checking in the
+ iso2022 module for consistency.
+
+ ChangeLog | 26 ++
+ src/Makefile.am | 4 +-
+ src/genwidths.py | 35 +++
+ src/iso2022.c | 147 +++++++---
+ src/iso2022.h | 9 +-
+ src/table.c | 2 +-
+ src/trie.c | 2 +-
+ src/uniwidths | 813 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vte.c | 138 ++++++++--
+ src/vte.h | 2 +
+ src/vteapp.c | 4 +-
+ 11 files changed, 1103 insertions(+), 79 deletions(-)
+
+commit c186027e089e5be9ed12549b17a687b5d1940e59
+Author: Fatih Demir <kabalak src gnome org>
+Date: Mon Feb 10 23:34:42 2003 +0000
+
+ Take over
+
+ po/ChangeLog | 4 ++++
+ po/tr.po | 33 +++++++++++++++++----------------
+ 2 files changed, 21 insertions(+), 16 deletions(-)
+
+commit b45da7449756cccb42925ff2c4dbe7e749cc736f
+Author: Christian Rose <menthos menthos com>
+Date: Thu Feb 6 10:58:25 2003 +0000
+
+ Added "id" to ALL_LINGUAS. Added Indonesian translation by Mohammad Damt
+
+ 2003-02-06 Christian Rose <menthos menthos com>
+
+ * configure.in: Added "id" to ALL_LINGUAS.
+ * po/id.po: Added Indonesian translation by
+ Mohammad Damt <mdamt bisnisweb com>.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 ++
+ po/id.po | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 128 insertions(+), 1 deletions(-)
+
+commit f993ce6f67f53208bb56f4968581bbe39cf29016
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 3 21:17:13 2003 +0000
+
+ suppress background updates if we haven't moved and the background image
+
+ * src/vte.c(vte_terminal_size_allocate): suppress background updates if we
+ haven't moved and the background image already exists (#104868).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 11 +++++++++--
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+commit d19a6c9b559eefe1aa6ba07a4d09c560a4c07b3b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 31 23:06:35 2003 +0000
+
+ - include iso2022.txt in dist tarballs
+
+ src/Makefile.am | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 1faa076d553ebaa21c014659a844e444c99ee0f7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 31 21:39:52 2003 +0000
+
+ - refer to the bug ID in the changelog for reference
+
+ ChangeLog | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 1cd5c0ae59bc7ba40b35e7ee9f7e0f00c231a7c7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 31 21:33:45 2003 +0000
+
+ always update the cursor position, in case text was added or removed
+
+ * src/vteaccess.c(vte_terminal_accessible_update_private_data_if_needed): always
+ update the cursor position, in case text was added or removed without
+ the cursor itself moving.
+ * src/vteaccess.c(vte_terminal_accessible_get_text_somewhere): don't emit a
+ warning when the caller attempts to read the Nth character when we have
+ only 0 to N-1, just return an empty string.
+ * src/vteaccess.c(vte_terminal_accessible_new): make the terminal peer a weak
+ pointer.
+ * src/vteaccess.c(vte_terminal_accessible_finalize): if the terminal peer is
+ not NULL, disconnect it as a weak pointer and don't bother
+ disconnecting from its signals. Add a debug message.
+ * src/vteaccess.c(vte_terminal_accessible_text_finalize): Add a debug message.
+ * src/vte.c(vte_terminal_get_accessible): keep a weak pointer to the accessible
+ peer instead of a static pointer.
+ * src/vte.c(vte_terminal_finalize): if the accessible peer still exists, remove
+ its weak pointer before attempting to unref it.
+ * src/vte.c: rename accessible_exists member to accessible_emit, which more
+ accurately reflects its purpose.
+
+ ChangeLog | 21 +++++++++
+ src/vte.c | 42 +++++++++++------
+ src/vteaccess.c | 134 +++++++++++++++++++++++++++++++++----------------------
+ 3 files changed, 129 insertions(+), 68 deletions(-)
+
+commit cbf9f0bc1e91e608411054a8e966d888cbcb85b7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 31 05:40:51 2003 +0000
+
+ rename to vte_unichar_is_graphic, to match conventions used elsewhere.
+
+ * src/vte.c(vte_unichar_isgraphic): rename to vte_unichar_is_graphic, to match
+ conventions used elsewhere.
+ * src/vte.c(vte_unichar_is_graphic): count 0xa3, 0x3c0, 0x2592, 0x25ae, 0x25c6
+ as graphic characters.
+ * src/iso2022.txt: add sample text using character set 0.
+
+ ChangeLog | 7 ++++++
+ src/iso2022.txt | 2 +
+ src/vte.c | 64 +++++++++++++++++++++++++++++++-----------------------
+ 3 files changed, 46 insertions(+), 27 deletions(-)
+
+commit 055bf01d7b607dba481c6f455bdcb44866de310d
+Author: Fatih Demir <kabalak src gnome org>
+Date: Thu Jan 30 22:38:19 2003 +0000
+
+ Added tr.po
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/tr.po | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 128 insertions(+), 1 deletions(-)
+
+commit 7d9071b4c7679f4cdf55dca224063d0a38d01647
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 30 20:17:36 2003 +0000
+
+ added, for scaring people away. bump to 0.11.x for development. reset
+
+ * MESSAGE-OF-DOOM: added, for scaring people away.
+ * vte.spec: bump to 0.11.x for development.
+ * src/mev.c(main): reset modes before quitting.
+ * src/vte.c(vte_terminal_button_press): don't always extend selection when not
+ in event mode.
+
+ ChangeLog | 7 +++++++
+ MESSAGE-OF-DOOM | 2 ++
+ src/mev.c | 1 +
+ src/vte.c | 25 +++++++++++++++----------
+ vte.spec | 5 ++++-
+ 5 files changed, 29 insertions(+), 11 deletions(-)
+
+commit 9f27709de010cf2201b446d3844f0ef96e673e45
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jan 28 22:57:42 2003 +0000
+
+ make debugging support an explicit option to configure. don't
+
+ * configure.in: make debugging support an explicit option to configure. don't
+ automatically enable debugging in maintainer mode.
+
+ ChangeLog | 4 ++++
+ configure.in | 7 +++++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 7f016144749814330cc1341686ca61a6d5d73198
+Author: Kostas Papadimas <pkst src gnome org>
+Date: Tue Jan 28 12:27:41 2003 +0000
+
+ Added the Greek translation
+
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/el.po | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 133 insertions(+), 1 deletions(-)
+
+commit 3039b05b8ff4856c58eeeecc6554b064f26c5d12
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jan 28 04:25:53 2003 +0000
+
+ 0.10.15
+
+ vte.spec | 8 +++++++-
+ 1 files changed, 7 insertions(+), 1 deletions(-)
+
+commit edb193f416aea41a8f063d498ce8c7acc428b4c9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jan 27 20:23:20 2003 +0000
+
+ create the "invisible" cursor using a bitmap instead of a pixmap, changing
+
+ * src/vte.c(vte_terminal_realize): create the "invisible" cursor using a bitmap
+ instead of a pixmap, changing it from a 1x1 black square to nothing.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 17 ++++++++---------
+ 2 files changed, 13 insertions(+), 9 deletions(-)
+
+commit 7bbce6d00d4d0ef9f23951891b71f10364c51a2f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jan 27 19:39:28 2003 +0000
+
+ make the various mouse event modes mutually-exclusive, because apps expect
+
+ * src/vte.c(vte_terminal_decset_internal): make the various mouse event modes
+ mutually-exclusive, because apps expect them to be (#104395).
+ * src/vte.c: add a prototype for vte_terminal_background_update before it is
+ used to silence a compiler warning.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 35 +++++++++++++++++++++++++++++++++++
+ 2 files changed, 41 insertions(+), 0 deletions(-)
+
+commit 1c61da0b49035be2e28e3beb4a10641c1b365fe1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jan 27 07:12:17 2003 +0000
+
+ force a background update immediately when we realize instead of queuing
+
+ * src/vte.c(vte_terminal_realize): force a background update immediately when
+ we realize instead of queuing it up (#104381).
+
+ ChangeLog | 4 ++++
+ doc/vttest.tar.gz | Bin 96645 -> 98911 bytes
+ src/vte.c | 7 ++++---
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+commit 99e8871a2dccab82b3ddac1dfbcd04b4e847e798
+Author: Daniel Yacob <yacob src gnome org>
+Date: Sun Jan 26 17:19:36 2003 +0000
+
+ Adding am to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 666e9ecf796c093725bcf2fef03636ba1c800d47
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 24 21:34:25 2003 +0000
+
+ fix declaration order (#104290).
+
+ * src/vte.c(vte_terminal_background_update): fix declaration order (#104290).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 4 ++--
+ vte.spec | 3 +++
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 37e0796872438e0a18f40888ba02ccb8478dc20c
+Author: Nam SungHyun <namsh src gnome org>
+Date: Fri Jan 24 01:50:19 2003 +0000
+
+ Added Korean translation
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/ko.po | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 126 insertions(+), 1 deletions(-)
+
+commit d13920ab879e141735705de293645efd47075827
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 23 20:28:49 2003 +0000
+
+ recognize and ignore attempts to set text properties 21 and 2L, whatever
+
+ * src/caps.c, src/vte.c: recognize and ignore attempts to set text properties
+ 21 and 2L, whatever those are (possible workaround #104154).
+
+ ChangeLog | 4 ++++
+ src/caps.c | 7 +++++++
+ src/vte.c | 2 ++
+ 3 files changed, 13 insertions(+), 0 deletions(-)
+
+commit 70fdc1ad481cbb03459f3d39c363914b4d1b2150
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 23 19:17:41 2003 +0000
+
+ accept "1" and "2" as aliases for "B" (#104257).
+
+ * src/iso2022.c: accept "1" and "2" as aliases for "B" (#104257).
+
+ ChangeLog | 3 +++
+ src/iso2022.c | 6 +++---
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+commit 47c0ace41d57c34c329fa7554d914119fc516e2a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 23 16:39:21 2003 +0000
+
+ check for curses if we don't have ncurses (the order is ncurses, curses,
+
+ * configure.in: check for curses if we don't have ncurses (the order is ncurses,
+ curses, libtermcap), as Solaris has neither ncurses nor libtermcap.
+ Reported by Brian Cameron.
+ * src/keymap.c, src/ssfe.c: accept either curses or ncurses as equivalent.
+
+ ChangeLog | 7 +++++++
+ configure.in | 5 ++++-
+ src/keymap.c | 16 +++++++++++++---
+ src/ssfe.c | 9 +++++++++
+ 4 files changed, 33 insertions(+), 4 deletions(-)
+
+commit c9311b5af92cbd2a02fc55751c1361a9809adf55
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 23 02:29:11 2003 +0000
+
+ add mev. don't home the cursor automatically. fix sense of shift
+
+ * src/Makefile.am, src/mev.c: add mev.
+ * src/vte.c(vte_sequence_handler_clear_screen): don't home the cursor
+ automatically.
+ * src/vte.c(vte_terminal_button_pressed): fix sense of shift overriding event
+ mode. Ignore double- and triple-click in event mode.
+ * src/vte.c(vte_terminal_scroll): in event mode, send button release events to
+ the terminal if it's expecting them.
+ * src/vte.c(vte_terminal_send_mouse_button_internal): clamp coordinates to
+ existing cells.
+ * src/vte.c(vte_terminal_maybe_send_mouse_drag): compare integral cell locations
+ not floating point, when choosing whether or not to drop events in cell
+ tracking mode. Don't lose the modifiers.
+ * src/vte.c(vte_terminal_motion_notify): don't autoscroll in events mode.
+
+ ChangeLog | 16 +++++
+ src/mev.c | 2 +-
+ src/vte.c | 211 ++++++++++++++++++++++++++++++++++++-------------------------
+ vte.spec | 5 +-
+ 4 files changed, 147 insertions(+), 87 deletions(-)
+
+commit eceb38869510751724daf815fa0e072a4e032380
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 23 02:16:35 2003 +0000
+
+ - add mev for testing mouse event handling
+
+ src/Makefile.am | 5 +-
+ src/mev.c | 306 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 310 insertions(+), 1 deletions(-)
+
+commit f39e281529827f68fd0e9bba41785d66a21efc1c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jan 22 21:35:22 2003 +0000
+
+ accept OSC{number};{string}ST as set-text-parameters, per XTerm docs (part
+
+ * src/caps.c: accept OSC{number};{string}ST as set-text-parameters, per XTerm
+ docs (part of #104154).
+ * src/keymap.c: revert change to prepend "1;" to keys with modifiers (#104139).
+
+ ChangeLog | 6 ++++++
+ src/caps.c | 20 ++++++++++++++++++++
+ src/keymap.c | 13 +++++++++++++
+ 3 files changed, 39 insertions(+), 0 deletions(-)
+
+commit 63941dffa610f8dac423c059eab909615d5cc7b9
+Author: Christian Rose <menthos menthos com>
+Date: Wed Jan 22 02:52:35 2003 +0000
+
+ Added "mn" to ALL_LINGUAS. Added Mongolian translation by Sanlig Badral
+
+ 2003-01-22 Christian Rose <menthos menthos com>
+
+ * configure.in: Added "mn" to ALL_LINGUAS.
+ * po/mn.po: Added Mongolian translation by
+ Sanlig Badral <badral chinggis com>.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 ++
+ po/mn.po | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 130 insertions(+), 1 deletions(-)
+
+commit af66ba4781d72e69993c97b9406251747277a7c2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jan 22 00:01:37 2003 +0000
+
+ streamline background images and transparency handling, should use less
+
+ * src/vte.c: streamline background images and transparency handling, should use
+ less memory now.
+
+ ChangeLog | 4 +
+ src/vte.c | 423 +++++++++++++++++++++++++++++++------------------------------
+ vte.spec | 5 +-
+ 3 files changed, 222 insertions(+), 210 deletions(-)
+
+commit 150031c0479bfeede84df08ac9f5f77bb6c333af
+Author: Yuri Syrota <rasta src gnome org>
+Date: Tue Jan 21 13:24:48 2003 +0000
+
+ Updated Ukrainian translation
+
+ po/ChangeLog | 4 +++
+ po/uk.po | 71 +++++++++++++++++++++++++++++----------------------------
+ 2 files changed, 40 insertions(+), 35 deletions(-)
+
+commit 58740a58c331d5232175f197ca5edd1761a9f0c0
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Tue Jan 21 10:26:55 2003 +0000
+
+ Updated translation.
+
+ 2003-01-21 Kjartan Maraas <kmaraas gnome org>
+
+ * no.po: Updated translation.
+
+ po/ChangeLog | 4 ++++
+ po/no.po | 52 ++++++++++++++++++++++++++--------------------------
+ 2 files changed, 30 insertions(+), 26 deletions(-)
+
+commit 770515f1fb9d075b8b4ed778f32c4aa99cb41cc7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jan 21 02:58:27 2003 +0000
+
+ add some debugging messages if REFLECT_VERBOSE is set in the environment.
+
+ * src/reflect.c: add some debugging messages if REFLECT_VERBOSE is set in the
+ environment.
+
+ ChangeLog | 4 ++++
+ src/reflect.c | 15 +++++++++++++++
+ 2 files changed, 19 insertions(+), 0 deletions(-)
+
+commit 83c4f654fefd5132acb8e28af3bb4730bb23d4da
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jan 21 01:03:21 2003 +0000
+
+ add reflect-text-view, for testing with GtkTextView for sanity's sake.
+
+ * src/Makefile.am, src/reflect.c: add reflect-text-view, for testing with
+ GtkTextView for sanity's sake.
+
+ ChangeLog | 4 +
+ src/Makefile.am | 8 +-
+ src/reflect.c | 279 ++++++++++++++++++++++++++++++++++++-------------------
+ 3 files changed, 193 insertions(+), 98 deletions(-)
+
+commit b21d6bae6bb46d27a3805d91b642b96435bd109c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jan 20 23:54:23 2003 +0000
+
+ account for get_text() including zero bytes
+
+ ChangeLog | 3 +++
+ src/reflect.c | 8 ++++++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 8f80b565ffd0fe2f49126e8155137e48970b3ab5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jan 20 22:24:33 2003 +0000
+
+ try to build reflect with both vte and libzvt, building a useless binary
+
+ * configure.in, src/Makefile.am, src/reflect.c: try to build reflect with both
+ vte and libzvt, building a useless binary if libzvt isn't available.
+
+ ChangeLog | 5 ++
+ configure.in | 9 ++++
+ src/Makefile.am | 17 ++++++--
+ src/reflect.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++++-------
+ 4 files changed, 129 insertions(+), 19 deletions(-)
+
+commit d6c649e3051395bdc7dbdd7b45d675168bd2a9a0
+Author: Christian Neumair <cneumair src gnome org>
+Date: Mon Jan 20 21:45:47 2003 +0000
+
+ Updated German translation.
+
+ po/ChangeLog | 4 ++++
+ po/de.po | 18 +++++++++---------
+ 2 files changed, 13 insertions(+), 9 deletions(-)
+
+commit 555e25cbdf12f82599e3ea084dd4dd1f7f6d9744
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jan 20 19:32:31 2003 +0000
+
+ - 0.10.12
+
+ vte.spec | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 34a05c36e09189e5490165dd87098e2b1eacd05d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jan 20 18:00:57 2003 +0000
+
+ colors 90-97 and 100-107 are bold colors, noted and patched by Matthijs
+
+ * src/vte.c: colors 90-97 and 100-107 are bold colors, noted and patched by
+ Matthijs Melchior (#103874).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit d41f9d2e300ba017568c8f4cb04178c7fe3a7318
+Author: Christian Neumair <cneumair src gnome org>
+Date: Mon Jan 20 15:00:57 2003 +0000
+
+ Updated German translation.
+
+ po/ChangeLog | 4 +++
+ po/de.po | 66 +++++++++++++++++++++++++++++-----------------------------
+ 2 files changed, 37 insertions(+), 33 deletions(-)
+
+commit ad595ccefeeb972235212bdb813c8c99dd4929e5
+Author: Andraz Tori <minmax src gnome org>
+Date: Mon Jan 20 14:17:40 2003 +0000
+
+ Updated Slovenian translation
+
+ po/sl.po | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 127 insertions(+), 0 deletions(-)
+
+commit 8889fda6835ef47a40a7c1eb1e6423d91afe4084
+Author: Andraz Tori <minmax src gnome org>
+Date: Mon Jan 20 14:17:14 2003 +0000
+
+ Added sl language
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit aa6b3ee0537d8689fe27e4335d7ca62c6377dcc8
+Author: He Qiangqiang <carton linux net cn>
+Date: Sun Jan 19 10:14:52 2003 +0000
+
+ Added "zh_CN" (Simplified Chinese) to ALL_LINGUAS.
+
+ 2003-01-19 He Qiangqiang <carton linux net cn>
+
+ * configure.in: Added "zh_CN" (Simplified Chinese) to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 075a993ca1ac0275db4112d6bab62003dd7f2df7
+Author: He Qiangqiang <carton linux net cn>
+Date: Sun Jan 19 10:13:31 2003 +0000
+
+ Added Simplified Chinese translation.
+
+ 2003-01-19 He Qiangqiang <carton linux net cn>
+
+ * zh_CN.po: Added Simplified Chinese translation.
+
+ po/ChangeLog | 4 ++
+ po/zh_CN.po | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 122 insertions(+), 0 deletions(-)
+
+commit 5d63957b1ec97e8779f943db4aab4f77f959bd1a
+Author: Marius Andreiana <marius galuna.ro>
+Date: Sun Jan 19 09:08:03 2003 +0000
+
+ added ( thanks to Mişu Moldovan )
+
+ 2003-01-19 Marius Andreiana <marius galuna.ro>
+
+ * ro.po: added ( thanks to Mişu Moldovan )
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/ro.po | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 126 insertions(+), 1 deletions(-)
+
+commit e315ed3d477d04f026d3dbf84c777cf552c822af
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Jan 18 18:17:25 2003 +0000
+
+ if the caret is past the end of the text, count unichars properly. Compute
+
+ * src/vteaccess.c(update_private_data_if_needed): if the caret is past the end
+ of the text, count unichars properly. Compute the caret location
+ correctly.
+ * src/reflect.c: handle text-caret-moved signals and display the caret.
+
+ ChangeLog | 6 +++++
+ src/reflect.c | 62 ++++++++++++++++++++++++++++++++++++++++++++----------
+ src/vteaccess.c | 6 ++--
+ 3 files changed, 59 insertions(+), 15 deletions(-)
+
+commit 7bffb2af8a9349e020926b8123cc49195600705e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Jan 18 17:54:29 2003 +0000
+
+ update copyright dates. add. add reflect (noinst). always return a string,
+
+ * src/iso2022.c: update copyright dates.
+ * src/reflect.c: add.
+ * src/Makefile.am: add reflect (noinst).
+ * src/vteaccess.c(vte_terminal_accessible_get_text): always return a string,
+ even if it's zero-length. Properly detect and handle requests that go
+ right up to the last byte.
+
+ ChangeLog | 8 +++
+ src/Makefile.am | 8 ++-
+ src/iso2022.c | 2 +-
+ src/reflect.c | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vteaccess.c | 14 ++--
+ 5 files changed, 189 insertions(+), 11 deletions(-)
+
+commit bbd18ebc5ace0f8991d24ea86e3f285dc3c3e30c
+Author: Andras Timar <timar gnome hu>
+Date: Sat Jan 18 13:57:21 2003 +0000
+
+ Added "hu" to ALL_LINGUAS.
+
+ 2003-01-18 Andras Timar <timar gnome hu>
+
+ * configure.in: Added "hu" to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit dee84bdbec6809a85c51cd5e10324cb2fa3770a4
+Author: Andras Timar <timar gnome hu>
+Date: Sat Jan 18 13:56:10 2003 +0000
+
+ Added Hungarian translation.
+
+ 2003-01-18 Andras Timar <timar gnome hu>
+
+ * hu.po: Added Hungarian translation.
+
+ po/ChangeLog | 4 ++
+ po/hu.po | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 122 insertions(+), 0 deletions(-)
+
+commit db227e0f456bc4fc6ade0a59b9da0d0b547f3db5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 17 23:46:42 2003 +0000
+
+ emit a "text-modified" signal, because what you see changes when you
+
+ * src/vte.c(vte_terminal_set_size): emit a "text-modified" signal, because what
+ you see changes when you resize the terminal.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 2 ++
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 3c35fddb8baaa2b45935fe9de31ef090bf62e9eb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 17 21:05:01 2003 +0000
+
+ don't draw cursors below or above the screen, correctly compute the clear
+
+ * src/vte.c(vte_terminal_paint): don't draw cursors below or above the screen,
+ correctly compute the clear area when drawing the cursor, if we're
+ ignoring padding in general because we're monospaced, also ignore it
+ when drawing the character under the cursor.
+ * src/vte.c(vte_terminal_io_read): eliminate dead code.
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 42 +++++++++++++++++++-----------------------
+ vte.spec | 5 ++++-
+ 3 files changed, 30 insertions(+), 24 deletions(-)
+
+commit b63075c2f4a5adf2df94edf6bf698372112ee94e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 17 20:24:58 2003 +0000
+
+ if we don't find an entry for the requested key, and the terminal type is
+
+ * src/keymap.c(_vte_keymap_map): if we don't find an entry for the requested
+ key, and the terminal type is "xterm", retry using "xterm-xfree86",
+ possible fix for #103713.
+ * src/vte.c(vte_terminal_draw_row): fix handling of items with width != 1 when
+ computing runs.
+
+ ChangeLog | 7 +++++++
+ src/keymap.c | 52 +++++++++++++++++++++++++++++-----------------------
+ src/vte.c | 18 +++++++++---------
+ 3 files changed, 45 insertions(+), 32 deletions(-)
+
+commit 379f1192131d2ec2d8a730270d8917c2776a1c0c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 17 17:17:56 2003 +0000
+
+ fix boneheaded "config.h" instead of "../config.h" include, pointed out by
+
+ * src/iso2022.c: fix boneheaded "config.h" instead of "../config.h" include,
+ pointed out by Dan Mills and Brian Cameron.
+
+ ChangeLog | 4 ++++
+ src/iso2022.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 6c8b4466a4e0f0da6df299912561ec44c6d753d2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 16 20:54:06 2003 +0000
+
+ fix test for whether or not we need to check for termcap override default
+
+ * configure.in: fix test for whether or not we need to check for termcap
+ * src/Makefile.am: override default includes to not prepend "." to the include
+ path, so that we can include the system <termcap.h> properly
+ * src/keymap.c: define the ncurses scratch buffer for use when we're using
+ termcap
+
+ ChangeLog | 7 +++++++
+ configure.in | 2 +-
+ src/Makefile.am | 1 +
+ src/keymap.c | 2 +-
+ 4 files changed, 10 insertions(+), 2 deletions(-)
+
+commit 83bfe383d12564645a0fbfae7109547adf3e0c6b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 16 20:38:29 2003 +0000
+
+ actually disable attempts to build python bindings if pygtk-2.0 isn't
+
+ * configure.in: actually disable attempts to build python bindings if pygtk-2.0
+ isn't found at configure-time (#103676)
+
+ ChangeLog | 4 ++++
+ configure.in | 5 +++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 01b3cea2a01f9fb7545a125da4cbbd46f58ea143
+Author: Gustavo Noronha Silva <gns src gnome org>
+Date: Wed Jan 15 21:50:27 2003 +0000
+
+ translation update
+
+ po/ChangeLog | 5 +++++
+ po/pt_BR.po | 54 +++++++++++++++++++++++++++---------------------------
+ 2 files changed, 32 insertions(+), 27 deletions(-)
+
+commit 5fd4b4c42d9db88113c25f248cee8cf54cdf8916
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jan 14 20:39:11 2003 +0000
+
+ if a key sequence which needs modifiers doesn't have a numeric part, add
+
+ * src/keymap.c(_vte_keymap_key_add_key_modifiers): if a key sequence which
+ needs modifiers doesn't have a numeric part, add "1" as the numeric
+ part before adding the modifiers. Spotted by msw.
+
+ ChangeLog | 5 +++++
+ src/keymap.c | 10 ++++++----
+ 2 files changed, 11 insertions(+), 4 deletions(-)
+
+commit 9277fb39dcac5740dfce4b819989e661910917f7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jan 14 06:33:14 2003 +0000
+
+ add _vte_ring_insert_preserve(), which scrolls lost items off the top
+
+ * src/ring.c, src/ring.h: add _vte_ring_insert_preserve(), which scrolls lost
+ items off the top instead of the bottom, as _vte_ring_insert() does.
+ * src/slowcat.c (catfile): check that we didn't read an EOF before attempting
+ to write it. Skip the more complicated checks and just check that the
+ file pointer isn't stdin before closing it.
+ * src/ssfe.c: cleanups.
+ * src/vte.c(vte_sequence_handler_sf): add lines to the scrollback area when
+ scrolling is restricted but the top line of the area is the topmost
+ visible line (Red Hat #75900).
+
+ ChangeLog | 12 ++
+ src/Makefile.am | 6 +-
+ src/ring.c | 70 ++++++++-
+ src/ring.h | 1 +
+ src/slowcat.c | 7 +-
+ src/ssfe.c | 440 +++++++++++++++++++++++-------------------------------
+ src/vte.c | 41 ++++-
+ vte.spec | 6 +-
+ 8 files changed, 313 insertions(+), 270 deletions(-)
+
+commit 2690bc906a221d3cc295a92405e25720cb5e5da9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jan 14 04:52:56 2003 +0000
+
+ initial checkin
+
+ src/ssfe.c | 1316 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 1316 insertions(+), 0 deletions(-)
+
+commit a75a825c95122f5617b1fd5f571be9c922af7130
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jan 14 03:04:30 2003 +0000
+
+ don't switch terminal modes before or after echoing bytes -- doing so
+
+ * src/nativeecho.c, src/utf8echo.c: don't switch terminal modes before or after
+ echoing bytes -- doing so confuses me now.
+ * src/vte.c: make use of '?' to mark invalid data a compile-time define.
+ * src/vteaccess.c(vte_terminal_accessible_text_scrolled): properly handle
+ scrolling events with delta less than the window size (more of #95901).
+ * src/vteaccess.c(vte_terminal_accessible_finalize): disconnect from
+ text-inserted, text-deleted, text-modified, text-scrolled, cursor-moved,
+ window-title-changed on finalize.
+ * src/vte.c(vte_terminal_key_press,vte_terminal_key_release,
+ vte_terminal_button_press,vte_terminal_button_release,
+ vte_terminal_motion_notify,vte_terminal_focus_in,vte_terminal_focus_out,
+ vte_terminal_scroll): track event modifiers in an object-local modifier
+ variable.
+ * src/vte.c(vte_terminal_key_press): always steal key events from the input
+ method if the meta key is down (#96006). Don't munge the cursor or
+ keypad modes before passing them to the keymapping routines. Stop
+ overriding the cursor mode on NumLock (doesn't appear to work as
+ documented in other terminals, needed to modify the keymap mode anyway
+ (#96364)).
+ * configure.in: define HAVE_XFT whenever HAVE_XFT2 is defined -- they're more
+ or less compatible (#103130).
+
+ ChangeLog | 24 +++++++
+ configure.in | 7 ++-
+ src/keymap.c | 8 +--
+ src/keymap.h | 6 +-
+ src/nativeecho.c | 4 -
+ src/utf8echo.c | 13 +----
+ src/vte.c | 189 ++++++++++++++++++++++++++++-------------------------
+ src/vteaccess.c | 193 ++++++++++++++++++++++++++++++++++++++----------------
+ vte.spec | 7 ++-
+ 9 files changed, 280 insertions(+), 171 deletions(-)
+
+commit 7c28dd92e7d9568ba90f76d0112612c466b25335
+Author: Gil Osher <dolfin src gnome org>
+Date: Sat Jan 11 16:27:45 2003 +0000
+
+ Updated Hebrew translation.
+
+
+ * he.po: Updated Hebrew translation.
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 7dba9a9754677636fd47dda2522b7e95f7650aa8
+Author: Gil Osher <dolfin src gnome org>
+Date: Sat Jan 11 16:27:17 2003 +0000
+
+ *** empty log message ***
+
+ po/he.po | 67 ++++++++++++++++++++++++++++++++++---------------------------
+ 1 files changed, 37 insertions(+), 30 deletions(-)
+
+commit 05bed110e54213c094b7eb1ef4da09661bfaa232
+Author: Kwok-Koon Cheung <baddog src gnome org>
+Date: Fri Jan 10 15:44:53 2003 +0000
+
+ new traditional Chinese translation
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/zh_TW.po | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 126 insertions(+), 1 deletions(-)
+
+commit f1d99bd8d9239c49e18e78eeef9fca09f2b9137a
+Author: Dmitry Mastrukov <dmitrym src gnome org>
+Date: Fri Jan 10 09:28:30 2003 +0000
+
+ ru.po: Updated Russian translation from Russian team <gnome-cyr gnome org>.
+
+ po/ChangeLog | 5 ++++
+ po/ru.po | 62 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 38 insertions(+), 29 deletions(-)
+
+commit 0a5be0c584e80068b0869f2caa929f6c0861a4d8
+Author: Dmitry Mastrukov <dmitrym src gnome org>
+Date: Fri Jan 10 06:02:39 2003 +0000
+
+ configure.in: Added Russian to ALL_LINGUAS
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 804faa007422c51ddf14f2315fc2e7b044b72f65
+Author: Dmitry Mastrukov <dmitrym src gnome org>
+Date: Fri Jan 10 06:01:13 2003 +0000
+
+ ru.po: Added Russian translation from Russian team <gnome-cyr gnome org>
+
+ po/ChangeLog | 5 ++
+ po/ru.po | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 124 insertions(+), 0 deletions(-)
+
+commit 479bed1e2c10cd89824648de3b5ed6a3843eede7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 9 20:31:26 2003 +0000
+
+ disable the python bindings if we can't find python, from Brian Cameron.
+
+ * configure.in: disable the python bindings if we can't find python, from
+ Brian Cameron.
+
+ ChangeLog | 4 ++++
+ configure.in | 5 ++++-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit b7989a1e86f33119d62f10a2abc8b2ae74af5dbd
+Author: Vincent van Adrighem <V vanAdrighem dirck mine nu>
+Date: Thu Jan 9 14:07:03 2003 +0000
+
+ Dutch translation updated by Kees van den Broek.
+
+ 2003-01-09 Vincent van Adrighem <V vanAdrighem dirck mine nu>
+ * nl.po: Dutch translation updated by Kees van den Broek.
+
+ po/nl.po | 58 ++++++++++++++++++++++++++++++----------------------------
+ 1 files changed, 30 insertions(+), 28 deletions(-)
+
+commit 98d26faf90b03fc378b1368f681258685ecc7122
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 9 06:57:30 2003 +0000
+
+ - add missing bug number
+
+ ChangeLog | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 9820448f044cce4cb85b877d250dc6181772c830
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jan 9 06:56:01 2003 +0000
+
+ Only suppress meta-sends-escape on Backspace if backspace is mapped to the
+
+ * src/vte.c(vte_terminal_key_press): Only suppress meta-sends-escape on
+ Backspace if backspace is mapped to the delete sequence.
+ * src/vte.c: don't just skip reading data if selection is in progress -- we
+ wedge if we do that (#101739). Instead, temporarily stop reading from
+ the child pty.
+ * src/vte.c(vte_terminal_open_font_xft): if we get NULL when matching fonts,
+ use the desired pattern's name when displaying an error, preventing a
+ NULL dereference (#96769).
+ * configure.in: make building of python modules depend on configure having been
+ run with --enable-python. make --enable-python the default. Fix an
+ indentation error in the version check which chokes Python 2.2.2.
+ * src/vte.h, src/vte.c: add new signals to VteTerminalClass (NOTE: may break
+ ABI, so might as well add some padding)
+ * src/vteaccess.c: be more precise about locations in text_changed signals
+ (part of #95901)
+ * src/vte.c: get more selective about when we consider it necessary to emit
+ text-insert and text-delete events.
+
+ ChangeLog | 21 +++
+ configure.in | 52 ++++--
+ doc/reference/tmpl/vte.sgml | 40 ++++-
+ src/marshal.list | 1 +
+ src/vte.c | 406 +++++++++++++++++++++++++++++++++----------
+ src/vte.h | 20 ++-
+ src/vteaccess.c | 277 ++++++++++++++++++++++++++---
+ 7 files changed, 671 insertions(+), 146 deletions(-)
+
+commit 41a9d6abe0b47ca8461e41afa1ad957e92368b3d
+Author: Daniel Yacob <yacob src gnome org>
+Date: Tue Jan 7 16:16:27 2003 +0000
+
+ Updated Amharic translation.
+
+ po/ChangeLog | 4 ++
+ po/am.po | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 123 insertions(+), 0 deletions(-)
+
+commit a1385fbda90ec79fb9281e3575124fc3c742b124
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jan 7 06:34:27 2003 +0000
+
+ Use a lookup table instead of a mess of floating point math when
+
+ * src/vte.c(vte_terminal_setup_background): Use a lookup table instead of a
+ mess of floating point math when desaturating images.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 13 ++++++++-----
+ 2 files changed, 12 insertions(+), 5 deletions(-)
+
+commit 58834f228eeed3159eb32fb783a5f0df2064e6d5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jan 6 22:22:20 2003 +0000
+
+ Add the periodic blinking refresh with the normal timeout instead of 0 to
+
+ * src/vte.c(vte_terminal_init): Add the periodic blinking refresh with the
+ normal timeout instead of 0 to avoid wedging when we get created
+ without focus. Fix suggested by Dennis Haney (#102701).
+
+ ChangeLog | 5 +++++
+ src/vte.c | 14 +++++++++++---
+ 2 files changed, 16 insertions(+), 3 deletions(-)
+
+commit 708387339d57555c2bcba4815d5463d009a82ea4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jan 6 18:03:27 2003 +0000
+
+ Use a simple XftPatternGetString/GetDouble pair instead of XftNameUnparse,
+
+ * src/vte.c: Use a simple XftPatternGetString/GetDouble pair instead of
+ XftNameUnparse, which isn't in older versions of Xft (#101142).
+ * src/vte.c: Add a flag to VteTerminalPrivate which we can use to keep track
+ of modifications, particularly if they remove text, and toggle it in
+ several sequence handlers.
+ * src/vte.c(vte_terminal_process_incoming): Also emit the "contents changed"
+ signal when the modified flag is TRUE, not enough to fix #95901, but
+ at least making some forward progress.
+
+ ChangeLog | 10 +++++
+ configure.in | 9 +++--
+ src/vte.c | 105 +++++++++++++++++++++++++++++++++++++++++++++-------------
+ vte.spec | 9 ++++-
+ 4 files changed, 104 insertions(+), 29 deletions(-)
+
+commit a34f417e92a025a3f2837a386f1ad04baa31e878
+Author: Pauli Virtanen <pauli virtanen hut fi>
+Date: Sun Jan 5 16:13:05 2003 +0000
+
+ Added "fi" (Finnish).
+
+ 2003-01-05 Pauli Virtanen <pauli virtanen hut fi>
+
+ * configure.in (ALL_LINGUAS): Added "fi" (Finnish).
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 154e9f234a3494ff37c67dffcaa888a99bfa54c4
+Author: Pauli Virtanen <pauli virtanen hut fi>
+Date: Sun Jan 5 16:11:01 2003 +0000
+
+ Added Finnish translation.
+
+ 2003-01-05 Pauli Virtanen <pauli virtanen hut fi>
+
+ * fi.po: Added Finnish translation.
+
+ po/ChangeLog | 4 ++
+ po/fi.po | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 131 insertions(+), 0 deletions(-)
+
+commit 3de85ba7e7948f7ece876608c5f5e804c5430f58
+Author: Stanislav Visnovsky <visnovsky nenya ms mff cuni cz>
+Date: Sat Jan 4 14:47:42 2003 +0000
+
+ Added sk (Slovak). Added Slovak translation.
+
+ 2003-01-04 Stanislav Visnovsky <visnovsky nenya ms mff cuni cz>
+
+ * configure.in: (ALL_LINGUAS) Added sk (Slovak).
+ * po/sk.po: Added Slovak translation.
+
+ ChangeLog | 5 ++
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/sk.po | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 136 insertions(+), 1 deletions(-)
+
+commit 06000507e286d2ee446807bb9000513459107dff
+Author: Benjamin Greiner <bgreiner src gnome org>
+Date: Sat Jan 4 14:23:36 2003 +0000
+
+ *** empty log message ***
+
+ po/ChangeLog | 4 ++++
+ po/de.po | 49 ++++++++++++++++++++++++++-----------------------
+ 2 files changed, 30 insertions(+), 23 deletions(-)
+
+commit 6bf1e20d62c5a71f83a79859cd11f56739d7602f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 3 01:05:05 2003 +0000
+
+ - fix compile failure on systems where ncurses isn't detected
+
+ src/keymap.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit d7a0c47ad37ee451625c94250528e6aca82f8522
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jan 3 00:55:53 2003 +0000
+
+ look for libncurses or libtermcap include other libraries (ncurses,
+
+ * configure.in: look for libncurses or libtermcap
+ * vte.pc.in: include other libraries (ncurses, termcap, socket, whatever) in
+ the list of libraries.
+ * src/keymap.c(_vte_keymap_map): for Home and End, consult libncurses or
+ libtermcap if we have no hard-wired mapping and there's none in the
+ termcap file. Should fix #100472, even in cases where Home and End
+ vary wildly from what I've got on my box.
+ * src/keymap.c: rename cursor/fkey_normal to cursor/fkey_default, which makes a
+ little more sense.
+
+ ChangeLog | 11 +++
+ configure.in | 8 ++
+ src/keymap.c | 239 ++++++++++++++++++++++++++++++++++++---------------------
+ vte.pc.in | 2 +-
+ 4 files changed, 171 insertions(+), 89 deletions(-)
+
+commit 3b4a3853390a7a511640c969fde72e072a72a808
+Author: Chyla Zbigniew <chyla src gnome org>
+Date: Thu Jan 2 12:52:02 2003 +0000
+
+ Updated Polish translation by GNOME PL Team <translators gnome pl>
+
+ po/pl.po | 36 ++++++++++++++++++++++--------------
+ 1 files changed, 22 insertions(+), 14 deletions(-)
+
+commit 6d59ba9114dfd6bf955e8759e9af5b99017114e3
+Author: Chyla Zbigniew <chyla src gnome org>
+Date: Thu Jan 2 01:18:51 2003 +0000
+
+ Added Polish translation by GNOME PL Team <translators gnome pl>
+
+ po/ChangeLog | 5 ++
+ po/pl.po | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 129 insertions(+), 0 deletions(-)
+
+commit 517047a162133a750153cff0ab6ee08cb3efc22a
+Author: Zbigniew Chyla <cyba gnome pl>
+Date: Thu Jan 2 01:17:53 2003 +0000
+
+ Added pl (Polish).
+
+
+ 2003-01-02 Zbigniew Chyla <cyba gnome pl>
+
+ * configure.in: (ALL_LINGUAS) Added pl (Polish).
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 72dbc564def2a70760f89ff559a3dad0106951e0
+Author: Pablo Saratxaga <pablo src gnome org>
+Date: Fri Dec 27 15:29:40 2002 +0000
+
+ updated Vietnamese file
+
+ po/ChangeLog | 4 ++++
+ po/vi.po | 54 +++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 33 insertions(+), 25 deletions(-)
+
+commit dc65d7207e3b38d457ff8ca1e7d26ee4a442c99b
+Author: Peteris Krisjanis <peterisk src gnome org>
+Date: Wed Dec 25 13:52:10 2002 +0000
+
+ Artis Trops <hornet navigator lv> * lv.po: Updated Latvian translation.
+
+ po/ChangeLog | 4 +++
+ po/lv.po | 65 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 38 insertions(+), 31 deletions(-)
+
+commit 50e4222072ab5123d7f642889a814da9a647790e
+Author: Peteris Krisjanis <peterisk src gnome org>
+Date: Sun Dec 22 18:59:49 2002 +0000
+
+ 2002-12-22 Artis Trops <hornet navigator lv> * lv.po: Added Latvian translation.
+
+ po/ChangeLog | 4 ++
+ po/lv.po | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 124 insertions(+), 0 deletions(-)
+
+commit df42d07d7e6d7274bb54dbd270033e6b8fdcad15
+Author: Peteris Krisjanis <peterisk src gnome org>
+Date: Sun Dec 22 18:58:34 2002 +0000
+
+ 2002-12-22 Artis Trops <hornet navigator lv> * configure.in: Added Latvian (lv) to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 27eccc58d997fbc070d2b2784a7d40eae301d509
+Author: Jordi Mallach <jordim src gnome org>
+Date: Sat Dec 21 15:27:24 2002 +0000
+
+ Updated Catalan translation.
+
+ po/ChangeLog | 4 ++
+ po/ca.po | 120 ++++++++++++++++++++++++++++++++++------------------------
+ 2 files changed, 74 insertions(+), 50 deletions(-)
+
+commit 78c22fb051aca21f168f95a3827df6e23b8dad71
+Author: Yanko Kaneti <yaneti declera com>
+Date: Thu Dec 19 12:37:14 2002 +0000
+
+ Added Bulgarian (bg).
+
+ 2002-12-19 Yanko Kaneti <yaneti declera com>
+
+ * configure.in: (ALL_LINGUAS) Added Bulgarian (bg).
+
+ po/
+
+ * bg.po (added): Added Bulgarian translation by
+ Alexander Shopov <al_shopov yahoo com>.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 ++
+ po/bg.po | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 137 insertions(+), 1 deletions(-)
+
+commit 142ffbccd627993cb5c4a607db7c092d84179c59
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Dec 18 20:02:42 2002 +0000
+
+ issue a warning if Xft2 and Xft aren't found. if we're not
+
+ * configure.in: issue a warning if Xft2 and Xft aren't found.
+ * src/vte.c (vte_terminal_paint): if we're not double-buffered, clear the
+ drawing area before we draw text.
+ * src/vteapp.c: add -2 to toggle double-buffering for testing.
+
+ ChangeLog | 6 ++++++
+ configure.in | 4 +++-
+ src/table.c | 7 -------
+ src/vte.c | 6 ++++++
+ src/vteaccess.c | 2 --
+ src/vteapp.c | 9 +++++++--
+ 6 files changed, 22 insertions(+), 12 deletions(-)
+
+commit 1fed413308e2a349f6d30c7862c61be527f5f63d
+Author: German Poo Caaman~o <gpoo ubiobio cl>
+Date: Wed Dec 18 00:33:14 2002 +0000
+
+ Updated Spanish translation
+
+ 2002-12-17 German Poo Caaman~o <gpoo ubiobio cl>
+
+ * es.po: Updated Spanish translation
+
+ po/ChangeLog | 4 ++
+ po/es.po | 100 ++++++++++++++++++++++++++++++++-------------------------
+ 2 files changed, 60 insertions(+), 44 deletions(-)
+
+commit 77fbea95fe7cb71ef2c3d243a83f3a6a50785d25
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Dec 16 19:51:20 2002 +0000
+
+ wire Shift+Home/Shift+End to scroll-to-top and scroll-to-bottom.
+
+ * src/vte.c (vte_terminal_key_press): wire Shift+Home/Shift+End to
+ scroll-to-top and scroll-to-bottom.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 29 +++++++++++++++++++++++++++++
+ 2 files changed, 33 insertions(+), 0 deletions(-)
+
+commit 2df06c897e3e395ddfff915aba1fd758377a2362
+Author: Miloslav Trmac <mitr src gnome org>
+Date: Mon Dec 16 19:37:03 2002 +0000
+
+ Update Czech translation
+
+ po/ChangeLog | 4 ++++
+ po/cs.po | 44 ++++++++++++++++++++++----------------------
+ 2 files changed, 26 insertions(+), 22 deletions(-)
+
+commit e2f100b4474f7209a48821ce49da55dde33e3fa0
+Author: Hasbullah Bin Pit <sebol ikhlas com>
+Date: Mon Dec 16 08:20:37 2002 +0000
+
+ Updated Malay Translation.
+
+ 2002-12-16 Hasbullah Bin Pit <sebol ikhlas com>
+
+ * ms.po: Updated Malay Translation.
+
+ po/ChangeLog | 4 ++++
+ po/ms.po | 39 +++++++++++++++++++++------------------
+ 2 files changed, 25 insertions(+), 18 deletions(-)
+
+commit 5336ad683728d60a65536993420ec1af605102bc
+Author: Christophe Merlet <redfox src gnome org>
+Date: Sun Dec 15 16:18:02 2002 +0000
+
+ Updated French translation.
+
+ po/ChangeLog | 4 ++++
+ po/fr.po | 52 ++++++++++++++++++++++++++++------------------------
+ 2 files changed, 32 insertions(+), 24 deletions(-)
+
+commit 72709ee7c4076339ecbe5cd27827060d303a3589
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Dec 14 00:40:53 2002 +0000
+
+ add a short test program. use hard values instead of GDK defines in the 0
+
+ * src/buffer.c: add a short test program.
+ * src/iso2022.c: use hard values instead of GDK defines in the 0 map. Add
+ _vte_iso2022_substitute_single() for performing a single mapping
+ operation.
+ * src/vte.c: use _vte_iso2022_substitute_single() instead of a local mapping
+ table when mapping line-drawing charset data, simplifies maintenance
+ of the mapping.
+
+ ChangeLog | 11 ++++-
+ README | 4 ++
+ src/Makefile.am | 6 ++-
+ src/buffer.c | 103 ++++++++++++++++++++++++++++++++++++++++
+ src/buffer.h | 2 +
+ src/iso2022.c | 43 +++++++++++++++--
+ src/iso2022.h | 1 +
+ src/vte.c | 139 ++-----------------------------------------------------
+ vte.spec | 5 ++-
+ 9 files changed, 173 insertions(+), 141 deletions(-)
+
+commit ac59012c87307e7f0d51e4d89a14619fde47bfc2
+Author: Pablo Saratxaga <pablo src gnome org>
+Date: Fri Dec 13 10:37:33 2002 +0000
+
+ Added Catalan file
+
+ ChangeLog | 4 ++
+ configure.in | 3 +-
+ po/ChangeLog | 4 ++
+ po/ca.po | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 123 insertions(+), 1 deletions(-)
+
+commit 28fe2ba6946deb75828ccab219ea4f671ae86385
+Author: Christian Rose <menthos menthos com>
+Date: Fri Dec 13 03:22:16 2002 +0000
+
+ Updated Swedish translation.
+
+ 2002-12-13 Christian Rose <menthos menthos com>
+
+ * sv.po: Updated Swedish translation.
+
+ po/ChangeLog | 4 ++++
+ po/sv.po | 16 +++++++++++-----
+ 2 files changed, 15 insertions(+), 5 deletions(-)
+
+commit b7773ffb08ae7a40aacc7bc8d53a0405558fbe60
+Author: Ole Laursen <olau hardworking dk>
+Date: Thu Dec 12 20:19:01 2002 +0000
+
+ Updated Danish translation.
+
+ 2002-12-12 Ole Laursen <olau hardworking dk>
+
+ * da.po: Updated Danish translation.
+
+ po/ChangeLog | 4 ++++
+ po/da.po | 13 ++++++++-----
+ 2 files changed, 12 insertions(+), 5 deletions(-)
+
+commit 926bbe1d96a595fb90264123aa79cfed1e7011eb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Dec 11 20:13:25 2002 +0000
+
+ define VTE_USE_GNOME_PTY_HELPER if use of the helper is enabled at
+
+ * configure.in: define VTE_USE_GNOME_PTY_HELPER if use of the helper is enabled
+ at compile-time (enabled by default).
+ * src/iso2022.c(_vte_iso2022_substitute): force characters received in the
+ line-drawing map to have width = 1 (more #99603), so that we can
+ distinguish them from line-drawing characters received in eucXX, which
+ have width = 2.
+ * src/vte.c(vte_terminal_insert_char): when mapping from line-drawing to
+ gunichars, force a width of 1.
+ * src/vte.c(vte_terminal_process_incoming): extend the bounding box for updates
+ one cell further to the right, in case the cursor is in a cell which
+ contains a wide character.
+ * src/pty.c(_vte_pty_start_helper): spit out a warning if the helper isn't
+ installed.
+ * src/pty.c: don't compile in any gnome-pty-helper-specific code if
+ VTE_USE_GNOME_PTY_HELPER isn't defined.
+
+ ChangeLog | 17 +++++++++++++++
+ configure.in | 1 +
+ po/cs.po | 45 ++++++++++++++++++++++-----------------
+ po/da.po | 45 ++++++++++++++++++++++-----------------
+ po/de.po | 45 ++++++++++++++++++++++-----------------
+ po/fr.po | 45 ++++++++++++++++++++++-----------------
+ po/ms.po | 45 ++++++++++++++++++++++-----------------
+ po/nl.po | 45 ++++++++++++++++++++++-----------------
+ po/no.po | 45 ++++++++++++++++++++++-----------------
+ po/pt_BR.po | 45 ++++++++++++++++++++++-----------------
+ po/sv.po | 45 ++++++++++++++++++++++-----------------
+ po/uk.po | 65 +++++++++++++++++++++++++++++++-------------------------
+ po/vi.po | 45 ++++++++++++++++++++++-----------------
+ src/iso2022.c | 7 ++++++
+ src/pty.c | 14 ++++++++++++
+ src/vte.c | 51 +++++++++++++++++++++++++++++++++++++++-----
+ vte.spec | 11 ++++++++-
+ 17 files changed, 379 insertions(+), 237 deletions(-)
+
+commit 18d3d0fbdb83a33107b92d77963a9e99e652e9df
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Dec 10 22:36:29 2002 +0000
+
+ centralize buffer length sanity checks, add some utility functions for
+
+ * src/buffer.c, src/buffer.h: centralize buffer length sanity checks, add some
+ utility functions for stuffing things into buffers and pulling them
+ back out.
+ * src/debug.c, src/debug.h: add a lifecycle debug class, for tracking
+ down initialization order weirdness.
+ * src/pty.c: try to check that we can run the pty helper before trying to run
+ it, to avoid SIGPIPE failures when it's not installed.
+ * src/vte.c: never grab focus -- let the shell app deal with it. Return TRUE
+ from mouse motion and press/release events to keep them from being
+ passed up.
+
+ ChangeLog | 12 +++++
+ src/buffer.c | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ src/buffer.h | 25 +++++++++-
+ src/debug.c | 3 +
+ src/debug.h | 7 ++-
+ src/iso2022.h | 2 +-
+ src/pty.c | 4 ++
+ src/reaper.h | 1 +
+ src/vte.c | 109 +++++++++++++++++++++++++++++++++---------
+ 9 files changed, 270 insertions(+), 39 deletions(-)
+
+commit dd56e470ff18ce4e5c1d924c13b334a147465304
+Author: Vincent van Adrighem <V vanAdrighem dirck mine nu>
+Date: Tue Dec 10 12:28:45 2002 +0000
+
+ Dutch translation updated by Reinout van Schouwen.
+
+ 2002-12-10 Vincent van Adrighem <V vanAdrighem dirck mine nu>
+
+ * nl.po: Dutch translation updated by Reinout van Schouwen.
+
+ po/ChangeLog | 4 ++
+ po/nl.po | 87 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 50 insertions(+), 41 deletions(-)
+
+commit 7827e792f2b52ebb1412fd28c345c50649bbe513
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Dec 10 00:08:54 2002 +0000
+
+ - add
+
+ src/matcher.c | 246 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/matcher.h | 56 +++++++++++++
+ 2 files changed, 302 insertions(+), 0 deletions(-)
+
+commit 8145dde6caaef633abc8478fc0b519d2fab14304
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Dec 10 00:08:32 2002 +0000
+
+ add "uk" to the list of languages. remove the alternate attribute bit --
+
+ * configure.in: add "uk" to the list of languages.
+ * src/vte.h: remove the alternate attribute bit -- it's no longer meaningful.
+ * python/vte.override: remove the alternate attribute, add the strikethrough
+ attribute.
+ * src/vte.c (vte_terminal_insert_char): perform drawing character set to
+ Unicode mapping at insertion time if the alternate attribute is set,
+ otherwise discarding the attribute. If the character being inserted is
+ a graphic character, force its width to 1 or 2 depending on the current
+ codeset (#99603).
+ * src/vte.c (xlfd_from_pango_font_description): take advantage of XftXlfdParse
+ if we were built with Xft, as it appears to handle family aliases.
+ * src/vte.c (vte_terminal_draw_graphic): decide what to draw using Unicode code
+ points (instead of reverse mappings to drawing set), and implement the
+ double-thick versions of many of the existing glyphs. Return a boolean
+ indicating whether or not we drew something.
+ * src/vte.c (vte_terminal_draw_row): if vte_terminal_draw_graphic() returns
+ FALSE, try to draw the graphic character using the current font.
+ * src/vte.c (vte_terminal_paint): if vte_terminal_draw_graphic() returns FALSE,
+ try to draw the graphic character using the current font.
+ * src/caps.c: add the undocumented default 0 to the OSC set text parameters
+ sequence (#100468).
+ * README: updates.
+ * src/iso2022.c, src/iso2022.h: add a width mask for overriding widths for
+ ambiguous Unicode characters, and _vte_iso2022_get_width() for reading
+ the width, using unused bits in Unicode in a manner similar to
+ http://www.cl.cam.ac.uk/~mgk25/ucs/iso2022-wc.html
+ * src/table.c,src/trie.c: strip out iso2022 widths when extracting parameters
+ of control sequences.
+ * src/vte.c: heed iso2022 widths when inserting characters into the screen
+ buffer, but clear then before storing them so that copy and paste will
+ continue to work.
+ * src/matcher.c, src/matcher.h: add matcher, a wrapper for table and trie, and
+ move _vte_table_narrow_encoding and _vte_table_wide_encoding to this
+ module.
+
+ ChangeLog | 40 ++
+ README | 3 +-
+ configure.in | 2 +-
+ python/vte.override | 8 +-
+ src/Makefile.am | 24 +-
+ src/caps.c | 1 +
+ src/interpret.c | 22 +-
+ src/iso2022.c | 48 ++-
+ src/iso2022.h | 9 +-
+ src/table.c | 123 +-----
+ src/table.h | 8 +-
+ src/trie.c | 37 +-
+ src/trie.h | 6 -
+ src/utf8echo.c | 4 +-
+ src/vte.c | 1363 ++++++++++++++++++++++++++++++++-------------------
+ src/vte.h | 2 +-
+ vte.spec | 30 +-
+ 17 files changed, 1051 insertions(+), 679 deletions(-)
+
+commit eed823a3a052c0479ef13b3dc234c9a1854aeed6
+Author: Yuri Syrota <rasta src gnome org>
+Date: Mon Dec 9 10:18:55 2002 +0000
+
+ Added Ukrainian translations
+
+ po/ChangeLog | 4 ++
+ po/uk.po | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 119 insertions(+), 0 deletions(-)
+
+commit db15594168bcffb4376d478aaf108afae46de4c5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Dec 3 07:14:10 2002 +0000
+
+ - don't include the same file twice
+
+ vte.spec | 11 ++++++++++-
+ 1 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 9ba3fc164764cfa0b8e0601dddc1cbd0ddd913d3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Dec 3 07:04:29 2002 +0000
+
+ - 0.10.5
+
+ vte.spec | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit e039ff2e0cc66c5ba48775a854ed94bad13c9e18
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Dec 3 06:50:09 2002 +0000
+
+ if TIOCSCTTY is defined, use it, even if it's redundant.
+
+ * src/pty.c: if TIOCSCTTY is defined, use it, even if it's redundant.
+
+ ChangeLog | 3 +++
+ src/caps.c | 3 +++
+ src/pty.c | 10 +++++++++-
+ src/vte.c | 2 ++
+ 4 files changed, 17 insertions(+), 1 deletions(-)
+
+commit ff4b08b7875103dd976da00f2fba6fcf1addf7de
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Dec 3 03:49:59 2002 +0000
+
+ update-po change the default from resetting to the terminal's default
+
+ * po: update-po
+ * src/utf8echo.c: change the default from resetting to the terminal's default
+ encoding before exiting to leaving it alone. Don't mess with the
+ terminal's encoding if stdout isn't connected to a terminal.
+ * src/nativeecho.c: add, for printing random bytes.
+
+ ChangeLog | 7 +++++
+ configure.in | 2 +-
+ po/cs.po | 48 ++++++++++++++++++-------------------
+ po/da.po | 48 ++++++++++++++++++-------------------
+ po/de.po | 48 ++++++++++++++++++-------------------
+ po/fr.po | 48 ++++++++++++++++++-------------------
+ po/ms.po | 48 ++++++++++++++++++-------------------
+ po/nl.po | 48 ++++++++++++++++++-------------------
+ po/no.po | 48 ++++++++++++++++++-------------------
+ po/pt_BR.po | 48 ++++++++++++++++++-------------------
+ po/sv.po | 48 ++++++++++++++++++-------------------
+ po/vi.po | 48 ++++++++++++++++++-------------------
+ src/Makefile.am | 7 ++++-
+ src/{utf8echo.c => nativeecho.c} | 39 ++++++++-----------------------
+ src/utf8echo.c | 13 +++++++---
+ src/vte.c | 2 +-
+ 16 files changed, 264 insertions(+), 286 deletions(-)
+
+commit 672bca9bfb1cf9aee9a077a93711022a3a8bfe9c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Dec 3 02:31:11 2002 +0000
+
+ don't zero-fill rows, space-fill them. Don't just fail if the word_chars
+
+ * src/vte.c: don't zero-fill rows, space-fill them.
+ * src/vte.c(vte_terminal_is_word_char): Don't just fail if the word_chars array
+ doesn't exist.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 32 +++++++++++++++++---------------
+ 2 files changed, 22 insertions(+), 15 deletions(-)
+
+commit 7bf2aecf9a8f3388a7b61f310fb361ccff4bb7d4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Dec 3 02:00:45 2002 +0000
+
+ add AC_CHECK_CC_OPT from ac-archive. check for cfmakeraw, sys/select.h,
+
+ * acinclude.m4: add AC_CHECK_CC_OPT from ac-archive.
+ * configure.in: check for cfmakeraw, sys/select.h, compiler support for -std=
+ (#99698)
+ * doc/boxes.txt: change reference to online Docbook reference to the charts at
+ the Unicode web site.
+ * src/dumpkeys.c: make a best-effort at making a terminal raw on systems where
+ cfmakeraw() isn't available, from patch by Brian Cameron. Wait for up
+ to 1/50 of a second for more bytes we'll consider to be part of a
+ sequence.
+ * src/pty.c(getpt): ensure that the new terminal is opened in non-blocking mode.
+ * src/trie.c: use g_unichar_digit_value() instead of subtracting '0'.
+ * src/vte.c: don't declare the xft_textitem member on non-Xft2 systems, because
+ it uses an Xft2-specific type (#99685).
+ * src/vteapp.c: add $pkgdatadir/fonts to the font path for use when testing.
+
+ ChangeLog | 17 ++++++++
+ acinclude.m4 | 36 +++++++++++++++++-
+ configure.in | 11 +++--
+ doc/boxes.txt | 2 +-
+ src/dumpkeys.c | 114 ++++++++++++++++++++++++++++++++-----------------------
+ src/pty.c | 47 +++++++++++++++--------
+ src/trie.c | 3 +-
+ src/vte.c | 60 +++++++++++++++++++-----------
+ src/vteapp.c | 17 ++++++++
+ 9 files changed, 212 insertions(+), 95 deletions(-)
+
+commit 1b675f52db6d4595ee8f8faef718994896823106
+Author: Gil Osher <dolfin src gnome org>
+Date: Wed Nov 27 21:20:52 2002 +0000
+
+ *** empty log message ***
+
+ po/ChangeLog | 4 ++
+ po/he.po | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 121 insertions(+), 0 deletions(-)
+
+commit 11f812ab830734e54ed9cfc33d957b1002189ce1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Nov 26 03:57:10 2002 +0000
+
+ 2002-11-25 nalin fix mapping of Unicode code chars 0x252c and 0x2534 which
+
+ 2002-11-25 nalin
+ * src/vte.c: fix mapping of Unicode code chars 0x252c and 0x2534 which
+ incorrectly mixed them up (#99474).
+ * src/iso2022.c: fix mapping of 'v' and 'w' from special graphics to
+ Unicode, which masked the above bug.
+
+ ChangeLog | 6 ++++
+ doc/Makefile.am | 2 +
+ doc/boxes.txt | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ po/cs.po | 40 +++++++++++++++---------------
+ po/da.po | 40 +++++++++++++++---------------
+ po/de.po | 40 +++++++++++++++---------------
+ po/fr.po | 40 +++++++++++++++---------------
+ po/ms.po | 40 +++++++++++++++---------------
+ po/nl.po | 40 +++++++++++++++---------------
+ po/no.po | 40 +++++++++++++++---------------
+ po/pt_BR.po | 40 +++++++++++++++---------------
+ po/sv.po | 40 +++++++++++++++---------------
+ po/vi.po | 40 +++++++++++++++---------------
+ src/iso2022.c | 4 +-
+ src/vte.c | 39 ++++++++++++++++++----------
+ vte.spec | 2 +-
+ 16 files changed, 310 insertions(+), 217 deletions(-)
+
+commit d3d658f80cc52bb9855e94e506c6028b87261c46
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Nov 26 00:52:58 2002 +0000
+
+ fix cd() to clear using the current colors.
+
+ * src/vte.c: fix cd() to clear using the current colors.
+
+ ChangeLog | 3 +++
+ src/vte.c | 16 ++++++++++++++++
+ 2 files changed, 19 insertions(+), 0 deletions(-)
+
+commit 34833fb1b8cf7a7b74421f15e102d5ef4f1f3fe4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Nov 26 00:40:04 2002 +0000
+
+ add ta back in -- it's not a key sequence.
+
+ * termcaps/xterm: add ta back in -- it's not a key sequence.
+
+ ChangeLog | 3 +++
+ termcaps/xterm | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 8ef12bdb39802275588bad413570175111ef6ef2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Nov 26 00:21:05 2002 +0000
+
+ fix cd() to clear to the right of the cursor on the current line instead
+
+ * src/vte.c: fix cd() to clear to the right of the cursor on the current line
+ instead of the entire line (#98844).
+
+ ChangeLog | 6 +++++-
+ src/vte.c | 20 ++++++++++++++++----
+ 2 files changed, 21 insertions(+), 5 deletions(-)
+
+commit 06b94cbffdefcf91020a10ae0d625cf37f908c71
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 25 21:54:15 2002 +0000
+
+ need this, too, for future use
+
+ src/genkeysyms.py | 27 +++++++++++++++++++++++++++
+ 1 files changed, 27 insertions(+), 0 deletions(-)
+
+commit 8980298986ca91ea60ba2b7fb4f97c4853e10fb4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 25 21:53:46 2002 +0000
+
+ add new file, thanks thunder
+
+ src/keysyms.c | 1254 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 1254 insertions(+), 0 deletions(-)
+
+commit 0607f02e4fd9489d926cb0390f06376b89904779
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 25 21:44:10 2002 +0000
+
+ add keyboard debug messages when we change keyboard modes. remove kh
+
+ * src/vte.c: add keyboard debug messages when we change keyboard modes.
+ * termcaps/xterm: remove kh definition.
+
+ ChangeLog | 4 +++
+ src/vte.c | 68 ++++++++++++++++++++++++++++++++++++++++++-------------
+ termcaps/xterm | 2 +-
+ 3 files changed, 57 insertions(+), 17 deletions(-)
+
+commit 969bdcbc7bac0493199ae8266120e8dd3bafef6d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 25 21:24:23 2002 +0000
+
+ make keypad arrow keys follow cursor mode (#98604).
+
+ * src/keymap.c: make keypad arrow keys follow cursor mode (#98604).
+
+ ChangeLog | 6 +++++-
+ src/keymap.c | 41 ++++++++++++++++++++---------------------
+ src/vte.c | 4 ++--
+ 3 files changed, 27 insertions(+), 24 deletions(-)
+
+commit 9d1f4447aa9cc6a6ce087765b6c52a331092d93d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 25 21:08:28 2002 +0000
+
+ sort out when we add modifiers to keys. Fix Alt+Tab. remove ta definition.
+
+ * src/keymap.c: sort out when we add modifiers to keys. Fix Alt+Tab.
+ * termcaps/xterm: remove ta definition.
+
+ ChangeLog | 4 ++
+ src/keymap.c | 103 ++++++++++++++++++++++++++++++++------------------------
+ src/keymap.h | 16 ++++----
+ src/vte.c | 24 ++++---------
+ termcaps/xterm | 2 +-
+ 5 files changed, 80 insertions(+), 69 deletions(-)
+
+commit a3aa3d3e6535d49e82af372f6db1b4aee1d1c4d1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 25 20:39:20 2002 +0000
+
+ add keyboard debugging class. refresh on Ctrl-L, reset on 'r'. add more
+
+ * src/debug.c, src/debug.h: add keyboard debugging class.
+ * src/dumpkeys.c: refresh on Ctrl-L, reset on 'r'.
+ * src/keymap.c, src/keymap.h: add more setting combinations, and a simplistic
+ check for more complete coverage.
+ * src/vte.c: add debug messages for keyboard handling. Improve detection of
+ invalid coordinates as a signal that no text is selected or hilited.
+ * termcaps/xterm.baseline: add a baseline copy of xterm from my termcap, so
+ that I can diff it more easily.
+ * termcaps/xterm: remove key definitions -- xterm's way more complicated than
+ the capability strings suggest.
+
+ ChangeLog | 13 +
+ configure.in | 6 +-
+ src/Makefile.am | 3 +
+ src/debug.c | 3 +
+ src/debug.h | 3 +-
+ src/dumpkeys.c | 46 +++--
+ src/keymap.c | 453 +++++++++++++++++++++++++++++-------
+ src/keymap.h | 19 +-
+ src/vte.c | 166 ++++++++++----
+ termcaps/Makefile.am | 2 +-
+ termcaps/xterm | 22 +-
+ termcaps/{xterm => xterm.baseline} | 20 +-
+ 12 files changed, 580 insertions(+), 176 deletions(-)
+
+commit 91a1515e9c6de2e767aa39f8f5e868e9af623fb8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Nov 23 00:20:57 2002 +0000
+
+ incorporate more correct check for the right version of gtk-doc (#99314).
+
+ * configure.in: incorporate more correct check for the right version of
+ gtk-doc (#99314).
+
+ ChangeLog | 4 ++++
+ configure.in | 22 +++++++++++++++-------
+ 2 files changed, 19 insertions(+), 7 deletions(-)
+
+commit b07db8367684af8339e1d19f4a4a4588ee146158
+Author: Hasbullah BIn Pit <sebol ikhlas com>
+Date: Sun Nov 17 05:14:31 2002 +0000
+
+ Added "ms" to ALL_LINGUAS. wawa... kumerinduiMu...
+
+ 2002-11-15 Hasbullah BIn Pit <sebol ikhlas com>
+
+ * configure.in: Added "ms" to ALL_LINGUAS.
+ wawa... kumerinduiMu...
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 2529c7639c6d96678ac0f9588c280e4bb7a21ed1
+Author: Hasbullah Bin Pit <sebol ikhlas com>
+Date: Sun Nov 17 05:12:58 2002 +0000
+
+ Added Malay Translation. wawa....
+
+ 2002-11-16 Hasbullah Bin Pit <sebol ikhlas com>
+
+ * ms.po: Added Malay Translation.
+ wawa....
+
+ po/ChangeLog | 4 ++
+ po/ms.po | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 122 insertions(+), 0 deletions(-)
+
+commit f232c362aa287a14103b251011690dfcf9caeb3a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 11 21:52:08 2002 +0000
+
+ 0.10.4
+
+ src/vte.c | 4 ++--
+ vte.spec | 5 ++++-
+ 2 files changed, 6 insertions(+), 3 deletions(-)
+
+commit 7d9fdb7edf0c77af95342f0b1796c05f62e529a9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 11 21:34:22 2002 +0000
+
+ ensure that when we select by line, we include all of the last line, even
+
+ * src/vte.c: ensure that when we select by line, we include all of the last
+ line, even if it's past the edge of the screen. Snap selection to the
+ beginning or end of a line when selecting lines which don't exist.
+ Only strip off whitespace if there's nothing but whitespace to the right
+ of the selection. Chuck the non-wrapping selection code.
+
+ ChangeLog | 7 ++
+ README | 1 -
+ src/vte.c | 208 ++++++++++++++++---------------------------------------------
+ 3 files changed, 62 insertions(+), 154 deletions(-)
+
+commit 81d34a7832606401e7ab35b7dda01f3de57c3471
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 11 06:05:28 2002 +0000
+
+ properly set the "selecting" flag again when we start selection (#97923).
+
+ * src/vte.c: properly set the "selecting" flag again when we start selection
+ (#97923).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 1 +
+ 2 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 0e364d3504c1e5536fdaad0ac668aed3cd4e82f9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 11 05:48:43 2002 +0000
+
+ rework selection so that word- and line-based selection can wrap like
+
+ * src/vte.c: rework selection so that word- and line-based selection can wrap
+ like XTerm does (#97057,#97719).
+
+ ChangeLog | 11 ++-
+ src/vte.c | 229 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 230 insertions(+), 10 deletions(-)
+
+commit 48a2e29878b6930e02b2f374b356c3e7f3a0b1f6
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Nov 7 22:52:56 2002 +0000
+
+ doc fixes. use the older alternate-screen decset value. fixup screwups on
+
+ * src/vte.h: doc fixes.
+ * src/dumpkeys.c: use the older alternate-screen decset value.
+ * src/vte.c: fixup screwups on extending selection.
+
+ ChangeLog | 5 +++++
+ Makefile.am | 3 ++-
+ doc/reference/tmpl/vte.sgml | 11 +++++++++++
+ doc/reference/vte-sections.txt | 1 +
+ po/cs.po | 40 ++++++++++++++++++++--------------------
+ po/da.po | 40 ++++++++++++++++++++--------------------
+ po/de.po | 40 ++++++++++++++++++++--------------------
+ po/fr.po | 40 ++++++++++++++++++++--------------------
+ po/nl.po | 40 ++++++++++++++++++++--------------------
+ po/no.po | 40 ++++++++++++++++++++--------------------
+ po/pt_BR.po | 40 ++++++++++++++++++++--------------------
+ po/sv.po | 40 ++++++++++++++++++++--------------------
+ po/vi.po | 40 ++++++++++++++++++++--------------------
+ src/dumpkeys.c | 2 +-
+ src/vte.c | 14 ++++++--------
+ src/vte.h | 2 +-
+ vte.spec | 5 ++++-
+ 17 files changed, 211 insertions(+), 192 deletions(-)
+
+commit 562b54d18e0522e18808ef5b98bfc80f7564e62d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Nov 5 22:57:30 2002 +0000
+
+ 0.10.2
+
+ vte.spec | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 2a94d48cd9fb205df426db06803e715934213422
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Nov 5 22:54:20 2002 +0000
+
+ handle end-of-line selection correctly. Stop highlighting selection on
+
+ * src/vte.c: handle end-of-line selection correctly. Stop highlighting
+ selection on click, but don't lose it until new text is selected.
+ * python/vte.override: fix binding for set_colors() to properly take a
+ list of colors for the palette (#97682).
+ * src/vte.c, src/vte.h: add increase-font-size and decrease-font-size to allow
+ mimicking XTerm's and Mozilla's behavior on Shift/Control
+ KP_Add/KP_Subtract
+ * src/vteapp.c: handle increase-font-size and decrease-font-size.
+
+ ChangeLog | 9 ++
+ doc/reference/tmpl/vte.sgml | 14 ++
+ python/vte.override | 46 +++++++
+ src/Makefile.am | 6 +-
+ src/dumpkeys.c | 308 ++++++++++++++++++++++++++++++++++++++++++
+ src/vte.c | 310 +++++++++++++++++++++---------------------
+ src/vte.h | 4 +-
+ src/vteapp.c | 58 ++++++++
+ 8 files changed, 597 insertions(+), 158 deletions(-)
+
+commit 002f5e5e6ad00199c52869810616350a6c165542
+Author: Robert Brady <rbrady src gnome org>
+Date: Tue Nov 5 16:33:00 2002 +0000
+
+ Commit uncomitted file
+
+ Doh. Sorry.
+
+ src/vte.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit a175a436c1f7298cce7459337dbf25daedbbadc9
+Author: Abi Brady <morwen evilmagic org>
+Date: Tue Nov 5 16:06:11 2002 +0000
+
+ Add and implement the strikethrough attribute. Change underline to be
+
+ 2002-11-05 Abi Brady <morwen evilmagic org>
+ * src/vte.c: Add and implement the strikethrough attribute.
+ Change underline to be drawn using the ascent, rather than
+ arbritarily putting it two lines above the bottom of the
+ charcell - looks much better with large fonts.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 42 +++++++++++++++++++++++++++++++++---------
+ 2 files changed, 39 insertions(+), 9 deletions(-)
+
+commit 16dce79ee4f39e35562e33458b4f814a719892c9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Nov 4 15:49:22 2002 +0000
+
+ be more verbose. add more items to the TODO list so that I don't forget
+
+ * NEWS: be more verbose.
+ * README: add more items to the TODO list so that I don't forget them.
+ * src/vte.c: ifdef out some of the selection code.
+
+ ChangeLog | 5 +++++
+ NEWS | 29 +++++++++++++++++++++--------
+ README | 16 +++++++++++-----
+ po/cs.po | 40 ++++++++++++++++++++--------------------
+ po/da.po | 40 ++++++++++++++++++++--------------------
+ po/de.po | 40 ++++++++++++++++++++--------------------
+ po/fr.po | 40 ++++++++++++++++++++--------------------
+ po/nl.po | 40 ++++++++++++++++++++--------------------
+ po/no.po | 40 ++++++++++++++++++++--------------------
+ po/pt_BR.po | 40 ++++++++++++++++++++--------------------
+ po/sv.po | 40 ++++++++++++++++++++--------------------
+ po/vi.po | 40 ++++++++++++++++++++--------------------
+ src/vte.c | 8 ++++++++
+ 13 files changed, 225 insertions(+), 193 deletions(-)
+
+commit 1a42a72312a635157d5921fdef1b757816e9d9e1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Oct 30 20:36:58 2002 +0000
+
+ add ident tags. don't scroll-to-bottom if we're selecting (#96913).
+
+ * src/buffer.c, src/iso2022.c, src/vteaccess.c: add ident tags.
+ * src/vte.c: don't scroll-to-bottom if we're selecting (#96913).
+
+ ChangeLog | 4 ++
+ src/buffer.c | 1 +
+ src/iso2022.c | 1 +
+ src/vte.c | 83 ++++++++++++++++++++++++++++++++----------------------
+ src/vteaccess.c | 1 +
+ 5 files changed, 56 insertions(+), 34 deletions(-)
+
+commit 12b3f27976debad67cd40abeb825784a910c8286
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Oct 30 20:03:22 2002 +0000
+
+ implement iconify, deiconify, raise, lower, maximize, restore, refresh,
+
+ * src/vteapp.c: implement iconify, deiconify, raise, lower, maximize, restore,
+ refresh, resize, and move signals.
+ * src/vte.c: add vte_terminal_match_remove().
+ * src/vte.c (vte_sequence_handler_cb): clear the current column in addition to
+ columns to the left, spotted by Sam Varshavchik.
+ * src/vte.c: Use g_array_set_size() to clear arrays instead of removing each
+ element. Properly initialize new columns with just the default colors
+ and not other attributes (#96978).
+ * src/vte.c (vte_sequence_handler_ta): revert to non-overwriting tabs, otherwise
+ we got occasional drawing artifacts.
+
+ ChangeLog | 12 ++
+ HACKING | 2 +-
+ NEWS | 1 +
+ doc/reference/tmpl/vte.sgml | 9 ++
+ doc/reference/vte-sections.txt | 1 +
+ src/iso2022.c | 6 +-
+ src/iso2022.txt | 2 +-
+ src/vte.c | 273 ++++++++++++++++++++++++++++------------
+ src/vte.h | 2 +
+ src/vteapp.c | 167 ++++++++++++++++++++++++-
+ vte.spec | 5 +-
+ 11 files changed, 391 insertions(+), 89 deletions(-)
+
+commit 810df74cc6b9df3f5605ada6199a9d29954b7fe7
+Author: Abi Brady <morwen evilmagic org>
+Date: Wed Oct 30 19:33:11 2002 +0000
+
+ Support dim (halfbright) colours. All the infrastructure for this was here
+
+ 2002-10-30 Abi Brady <morwen evilmagic org>
+
+ * src/vte.c, src/vte.h : Support dim (halfbright) colours. All the
+ infrastructure for this was here already (apart from making sure bold
+ and half are mutually exclusive). Add API set_color_dim, and let
+ set_colors take a palette of size 24.
+
+ ChangeLog | 7 +++++
+ src/vte.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++---------
+ src/vte.h | 2 +
+ 3 files changed, 73 insertions(+), 11 deletions(-)
+
+commit 9c335fdd4498e6c10df2f53e369eb8e5fe953513
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Tue Oct 29 21:24:43 2002 +0000
+
+ Update
+
+ po/no.po | 10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+commit 824414b696954452df80ba0ee38dde997f215a6f
+Author: Abi Brady <morwen evilmagic org>
+Date: Tue Oct 29 14:11:19 2002 +0000
+
+ Map to UCS, not keysyms. (which differ > 0xff).
+
+ 2002-10-29 Abi Brady <morwen evilmagic org>
+
+ * src/iso2022.c (_vte_iso2022_map_[J4]): Map to UCS, not keysyms.
+ (which differ > 0xff).
+
+ ChangeLog | 4 ++++
+ src/iso2022.c | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 471a08467712055d77f845deb972b927cfdda5c8
+Author: Abi Brady <morwen evilmagic org>
+Date: Mon Oct 28 19:09:08 2002 +0000
+
+ Add line-drawing representation for full block. Draw U+23BA-23BD. Fix
+
+ 2002-10-28 Abi Brady <morwen evilmagic org>
+
+ * src/vte.c: Add line-drawing representation for full block. Draw
+ U+23BA-23BD. Fix drawing of U+23BD (scan line 9) and U+2592
+ (checkerboard) to use bottom line of the charcell, not the top line of
+ the one below.
+
+ * src/iso2022.c: Complete DEC Special Graphics to Unicode map.
+
+ ChangeLog | 7 ++++++
+ src/iso2022.c | 19 +++++++++++++++-
+ src/vte.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ 3 files changed, 83 insertions(+), 5 deletions(-)
+
+commit 241ae1fcc0d989f72cdc4eba073ad3a8e5211df4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Oct 25 22:09:29 2002 +0000
+
+ - po file updates
+
+ po/cs.po | 42 +++++++++++++++++++++---------------------
+ po/da.po | 42 +++++++++++++++++++++---------------------
+ po/de.po | 42 +++++++++++++++++++++---------------------
+ po/fr.po | 42 +++++++++++++++++++++---------------------
+ po/nl.po | 42 +++++++++++++++++++++---------------------
+ po/no.po | 42 +++++++++++++++++++++---------------------
+ po/pt_BR.po | 42 +++++++++++++++++++++---------------------
+ po/sv.po | 42 +++++++++++++++++++++---------------------
+ po/vi.po | 42 +++++++++++++++++++++---------------------
+ 9 files changed, 189 insertions(+), 189 deletions(-)
+
+commit 25f084882412a537c4a3cc6993027f9707d8cc81
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Oct 25 22:07:11 2002 +0000
+
+ snip off final newlines when we're matching, they're usually not wanted.
+
+ * src/vte.c (vte_terminal_match_check_internal): snip off final newlines when
+ we're matching, they're usually not wanted.
+ * src/pty.c, src/pty.h: replace the simpler pty_open() function with a logging
+ version, adding the ability to specify a startup directory (Red Hat
+ #76529).
+ * src/vte.c, src/vte.h: replace the simpler fork_command() function with a
+ logging version, adding the ability to specify a startup directory (Red
+ Hat #76529).
+ * src/vteapp.c: modify call to handle new fork_command().
+ * python/vte.defs: update as above.
+ * python/vte.override: modify call to handle new fork_command(), adding an
+ optional "directory" argument.
+ * src/vte.c: refactor the selection code, cleaning up when selection is
+ cleared/started/extended (#95783). Grab focus whenever we get button
+ press or release or motion events.
+ * src/vte.c: rework how wide characters are stored to allow storing tabs
+ (#95958).
+ * python/vte.override: wrap vte_terminal_get_text() and
+ vte_terminal_get_text_range(). Based on patch from ha shao (#96230).
+ * src/vte.c, src/vte.h: add a user pointer argument to get_text callbacks
+ (#96230).
+ * src/Makefile.am: bump shared library version because we changed a public
+ function's signature. Take the opportunity to replace padding fields
+ which had previously been used up.
+
+ ChangeLog | 36 +-
+ Makefile.am | 5 +-
+ doc/reference/tmpl/pty.sgml | 36 -
+ doc/reference/tmpl/vte-unused.sgml | 73 ++
+ doc/reference/tmpl/vte.sgml | 15 +-
+ doc/reference/vte-docs.sgml | 2 -
+ doc/reference/vte-sections.txt | 8 -
+ python/cat.py | 13 +-
+ python/vte.defs | 12 +-
+ python/vte.override | 248 +++++-
+ src/Makefile.am | 2 +-
+ src/debug.c | 3 +
+ src/debug.h | 3 +-
+ src/pty.c | 94 +-
+ src/pty.h | 22 +-
+ src/vte.c | 1970 ++++++++++++++++++++----------------
+ src/vte.h | 25 +-
+ src/vteaccess.c | 4 +-
+ src/vteapp.c | 12 +-
+ vte.spec | 5 +-
+ 20 files changed, 1564 insertions(+), 1024 deletions(-)
+
+commit e600d5ea308a700166c9a59e9e88e80ac7f91263
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Oct 21 19:01:26 2002 +0000
+
+ - translation updates
+
+ po/cs.po | 40 ++++++++++++++++++++--------------------
+ po/da.po | 40 ++++++++++++++++++++--------------------
+ po/de.po | 40 ++++++++++++++++++++--------------------
+ po/fr.po | 40 ++++++++++++++++++++--------------------
+ po/nl.po | 40 ++++++++++++++++++++--------------------
+ po/no.po | 40 ++++++++++++++++++++--------------------
+ po/pt_BR.po | 40 ++++++++++++++++++++--------------------
+ po/sv.po | 40 ++++++++++++++++++++--------------------
+ po/vi.po | 40 ++++++++++++++++++++--------------------
+ 9 files changed, 180 insertions(+), 180 deletions(-)
+
+commit 0ec595fde9bd1e3d9bbbd7125353f0b35729ad1a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Oct 21 18:56:57 2002 +0000
+
+ - fix path for python module
+
+ vte.spec | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 4199e9affd62e43a2b452c733428852b28d25ef9
+Author: jacob berkman <jacob ximian com>
+Date: Mon Oct 21 17:26:29 2002 +0000
+
+ include decset, osc, and window
+
+ 2002-10-21 jacob berkman <jacob ximian com>
+
+ * src/Makefile.am (EXTRA_DIST): include decset, osc, and window
+
+ ChangeLog | 4 ++++
+ src/Makefile.am | 1 +
+ 2 files changed, 5 insertions(+), 0 deletions(-)
+
+commit fa5c2e2027f0507032ed8e090e11140cd2d8b277
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Oct 18 21:58:34 2002 +0000
+
+ use character constants instead of hex constants. add more illustrations.
+
+ * src/iso2022.c: use character constants instead of hex constants.
+ * src/iso2022.txt: add more illustrations.
+ * src/decset: scriptlet to save some typing.
+ * src/vte.c: zero-terminate window and icon title strings again.
+ * src/decset, src/osc, src/window: add.
+
+ ChangeLog | 7 ++
+ src/Makefile.am | 1 +
+ src/decset | 16 +++++
+ src/iso2022.c | 192 +++++++++++++++++++++++++++---------------------------
+ src/iso2022.txt | 22 +++++--
+ src/osc | 21 ++++++
+ src/vte.c | 8 ++-
+ src/window | 28 ++++++++
+ 8 files changed, 192 insertions(+), 103 deletions(-)
+
+commit 7459d35c062c3c91d98988cb95d55151c9752423
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Oct 18 20:53:53 2002 +0000
+
+ add a mapping for the escape key. Oops.
+
+ * src/keymap.c: add a mapping for the escape key. Oops.
+
+ ChangeLog | 3 +++
+ src/keymap.c | 6 ++++++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit 41f60f34704e288a36e681dfe6b15e386c90dd20
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Oct 18 20:06:49 2002 +0000
+
+ implement decset 42 (enable/disable NRC processing), but enable it by
+
+ * src/vte.c: implement decset 42 (enable/disable NRC processing), but enable it
+ by default. Implement decset 44 (margin bell).
+ * src/vte.c: do not trust the event->string. Use gdk_keyval_to_unicode and the
+ built-in keymapping to cope with the weirdness. Extend the range of
+ characters we controlify from 0x40-0x60 to 0x40-0x7f so that lower-case
+ ascii chars controlify (not a word, I know).
+ * src/keymap.c: add map entries for GDK_Return and GDK_KP_Enter for
+ GDK_CONTROL_MASK = cr, normal = lf.
+
+ ChangeLog | 10 ++++
+ src/keymap.c | 9 +++
+ src/vte.c | 161 ++++++++++++++++++++++++++++++++++++++++------------------
+ 3 files changed, 131 insertions(+), 49 deletions(-)
+
+commit e310e8d82626e1b367134f51b84026df07da07d9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Oct 18 15:38:27 2002 +0000
+
+ make sure that strings passed to a commit signal are zero-terminated
+
+ * src/vte.c: make sure that strings passed to a commit signal are
+ zero-terminated (#96131).
+ * python/Makefile.am: install the module in site-packages instead of a
+ subdirectory, which doesn't work on my system.
+
+ ChangeLog | 6 ++++++
+ python/Makefile.am | 2 +-
+ src/vte.c | 15 +++++++++++++--
+ 3 files changed, 20 insertions(+), 3 deletions(-)
+
+commit f2fef8ea942c5a99663691241d637ef2e2a8dcbf
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Oct 18 00:25:21 2002 +0000
+
+ remove vte_terminal_update_scroll_delta, which only did things
+
+ * src/vte.c: remove vte_terminal_update_scroll_delta, which only did things
+ vte_terminal_adjust_adjustments already did and was only called
+ immediately after. Fill newly-added lines with the current attributes
+ if the current background isn't the default color (Red Hat #73853).
+ Implement ignored DECSET settings, so that we don't mistakenly complain
+ about settings not being implemented yet when we actually just want to
+ ignore them. Force the first cursor redraw after focus-in to always be
+ in the foreground color (Red Hat #75908).
+ * vte.spec: 0.9.2
+
+ ChangeLog | 17 ++++++-
+ src/vte.c | 156 +++++++++++++++++++++++++++++-------------------------------
+ vte.spec | 10 ++++-
+ 3 files changed, 100 insertions(+), 83 deletions(-)
+
+commit 9a346fd61eb247ee863478459f46d2a885f4cb68
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Oct 17 18:13:26 2002 +0000
+
+ force invalidation mode if we're in insert mode to get the entire line
+
+ * src/vte.c (vte_terminal_insert_char): force invalidation mode if we're in
+ insert mode to get the entire line redrawn. Spotted by msw.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 1 +
+ 2 files changed, 5 insertions(+), 0 deletions(-)
+
+commit f18f8e2e7d649675d61c97d5b6b5170f397b1e24
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Oct 17 16:26:03 2002 +0000
+
+ clean up tests for wint_t. Patch from Brian Cameron.
+
+ * configure.in: clean up tests for wint_t. Patch from Brian Cameron.
+
+ ChangeLog | 3 +++
+ configure.in | 12 +-----------
+ 2 files changed, 4 insertions(+), 11 deletions(-)
+
+commit b2fcad271ca132aa74f3a489169d33f7a66795ff
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Oct 17 16:17:40 2002 +0000
+
+ close a possible race on systems where pty initialization requires more
+
+ * src/pty.c: close a possible race on systems where pty initialization requires
+ more than just opening the pty (for example, Solaris). Spotted by Brian
+ Cameron.
+ * src/utf8echo.c: don't reset to iso-8859-1 unless -r is used.
+
+ ChangeLog | 8 ++-
+ po/cs.po | 42 +++++-----
+ po/da.po | 42 +++++-----
+ po/de.po | 42 +++++-----
+ po/fr.po | 42 +++++-----
+ po/nl.po | 42 +++++-----
+ po/no.po | 40 +++++-----
+ po/pt_BR.po | 42 +++++-----
+ po/sv.po | 42 +++++-----
+ po/vi.po | 42 +++++-----
+ src/pty.c | 256 ++++++++++++++++++++++++++++++++++++++++++--------------
+ src/utf8echo.c | 11 ++-
+ 12 files changed, 397 insertions(+), 254 deletions(-)
+
+commit 89e1b4ff2306e8fedfdafa4929665f2460510465
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Oct 16 23:35:07 2002 +0000
+
+ remove a bogus assertion for a case which we were already handling a
+
+ * src/vte.c: remove a bogus assertion for a case which we were already handling
+ a little further down.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 2 --
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+commit e82912ae31e1e6b52f9e2f4f744d33c4fb475496
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Oct 16 20:11:52 2002 +0000
+
+ doc/utmpwtmp.txt: some docs on what utmp/wtmp/lastlog logging actually do
+
+ doc/utmpwtmp.txt | 31 +++++++++++++++++++++++++++++++
+ 1 files changed, 31 insertions(+), 0 deletions(-)
+
+commit b68e40146ce0a5226d458b8d6fe97c58e01e3b14
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Oct 16 19:37:03 2002 +0000
+
+ adjust our adjustments whenever a line might scroll off the top of the
+
+ * src/vte.c: adjust our adjustments whenever a line might scroll off the top of
+ the buffer. Fix computation of the new insertion delta to ensure that
+ it never goes below the scroll delta, which should fix the resizing
+ crashes, and add some debug assertions to verify this.
+ * configure.in, python/Makefile.am: build the python bindings as a library,
+ not a binary with wacky ldflags.
+ * src/vte.c: don't try to close the pty at finalize time if we didn't open
+ it. Patch from ha shao.
+ * src/keymap.c, src/keymap.h: move the addition of modifiers into a separate
+ function. Add the function key strings from terminfo for fkey_sun and
+ fkey_hp cases. Make control+F1 = F13 only in vt220 mode.
+ * src/vte.c: apply modifiers to function keys in normal and legacy modes.
+
+ ChangeLog | 17 ++++
+ configure.in | 5 +-
+ python/Makefile.am | 15 ++--
+ src/keymap.c | 239 ++++++++++++++++++++++++++++++++++++++--------------
+ src/keymap.h | 13 +++-
+ src/vte.c | 112 ++++++++++++++++++++-----
+ src/vteapp.c | 4 +-
+ 7 files changed, 310 insertions(+), 95 deletions(-)
+
+commit c74ab135c563a6cf3244cd03d98e3730f8220697
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Tue Oct 15 20:27:58 2002 +0000
+
+ Updated translation.
+
+ 2002-10-15 Kjartan Maraas <kmaraas gnome org>
+
+ * no.po: Updated translation.
+
+ po/ChangeLog | 4 ++++
+ po/no.po | 40 ++++++++++++++++++++--------------------
+ 2 files changed, 24 insertions(+), 20 deletions(-)
+
+commit 3af8a4a5bd3fbfdb82f7cc7bf3ae0b623f719f12
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Oct 15 02:22:37 2002 +0000
+
+ add super-bogus bold text mode (Red Hat #74779).
+
+ * src/vte.c: add super-bogus bold text mode (Red Hat #74779).
+
+ ChangeLog | 7 ++-
+ doc/reference/tmpl/vte.sgml | 33 ++++++++++++++
+ doc/reference/vte-sections.txt | 3 +
+ python/vte.defs | 15 ++++++
+ src/Makefile.am | 2 +-
+ src/vte.c | 96 +++++++++++++++++++++++++++++++++++++---
+ src/vte.h | 2 +
+ src/vteapp.c | 2 +-
+ 8 files changed, 150 insertions(+), 10 deletions(-)
+
+commit e590d5dce3e48a5313e8e02d50439c675fdfb46a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Oct 15 01:49:25 2002 +0000
+
+ recognize CSI-r (with no arguments) as resetting the scrolling region in
+
+ * src/vte.c: recognize CSI-r (with no arguments) as resetting the scrolling
+ region in XTerm emulation (Red Hat #75902)
+
+ ChangeLog | 8 ++++++--
+ src/caps.c | 3 +++
+ src/vte.c | 2 +-
+ 3 files changed, 10 insertions(+), 3 deletions(-)
+
+commit 2905a995d011850f854aa8b3b2fe261be944705b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Oct 14 21:40:22 2002 +0000
+
+ add mappings for GDK_Page_Up and GDK_Page_Down, missed in the conversion.
+
+ * src/keymap.c: add mappings for GDK_Page_Up and GDK_Page_Down, missed in the
+ conversion.
+ * src/vte.c: steal GDK_KP_{Add,Subtract,Multiply,Divide} from the input methods
+ (Red Hat #75207).
+
+ ChangeLog | 6 ++++++
+ po/cs.po | 42 +++++++++++++++++++++---------------------
+ po/da.po | 42 +++++++++++++++++++++---------------------
+ po/de.po | 42 +++++++++++++++++++++---------------------
+ po/fr.po | 42 +++++++++++++++++++++---------------------
+ po/nl.po | 42 +++++++++++++++++++++---------------------
+ po/no.po | 42 +++++++++++++++++++++---------------------
+ po/pt_BR.po | 42 +++++++++++++++++++++---------------------
+ po/sv.po | 42 +++++++++++++++++++++---------------------
+ po/vi.po | 42 +++++++++++++++++++++---------------------
+ src/keymap.c | 13 +++++++++++++
+ src/vte.c | 10 +++++-----
+ 12 files changed, 213 insertions(+), 194 deletions(-)
+
+commit b648a00d75f17d490ed2e96bdd2ed449ce49a34e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Oct 14 21:22:40 2002 +0000
+
+ note that commit came about because of mail from ha shao. add a couple of
+
+ * ChangeLog: note that commit came about because of mail from ha shao.
+ * python/cat.py: add a couple of comments.
+
+ ChangeLog | 14 +++++++-------
+ python/cat.py | 2 ++
+ 2 files changed, 9 insertions(+), 7 deletions(-)
+
+commit cda7db5a18f9ea59673acf0ee5a7a34c3f59c662
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Oct 14 21:07:58 2002 +0000
+
+ more $pkglibdir -> $libexecdir fixing. add rules for generating ps and
+
+ * configure.in: more $pkglibdir -> $libexecdir fixing.
+ * doc/Makefile.am: add rules for generating ps and text versions of the ctlseqs
+ docs.
+ * doc/reference/tmpl/vte.sgml: add snippet for "commit".
+ * python/python/vte.defs: update to add a binding for
+ vte_terminal_fork_logged_command().
+ * src/buffer.h: add a warning comment that these are private interfaces. Wrap
+ declarations in G_BEGIN_DECLS/G_END_DECLS.
+ * src/caps.h: add macros for the SS2/SS3 sequences.
+ * src/marshal.list: add a marshaller for the "commit" signal.
+ * src/keymap.c, src/keymap.h: move the getting-more-convoluted keypress-handling
+ code to a shell that parses tables of static info.
+ * src/pty.c: reset signal handlers before exec() (Red Hat #75341)
+ * src/vte.c: use the keymap for most non-printable keys. Add a "commit" signal
+ to allow an app to just use the terminal for displaying data and
+ grabbing input. Obey the application's desired meta-sends-escape
+ setting. Recognize HP function key mode. Recognize and handle legacy
+ XTerm function key mode. Force a redraw if the child application tries
+ to switch to 80/132 columns, even though we don't usually let them try.
+ Don't try to send keystrokes to the child pty when there is no child
+ pty. Don't convert final whitespace to newlines when copying text
+ (Red Hat #74611). Properly distinguish cursor key mode and keypad key
+ mode, obey application mode for cursor keys,
+ * python/cat.py: test program for running without a command.
+ * termcaps/xterm: change the definitions for ku/kd/kl/kr to match XTerm in
+ normal cursor mode instead of application cursor mode.
+
+ ChangeLog | 31 ++
+ configure.in | 4 +-
+ doc/Makefile.am | 6 +
+ doc/reference/tmpl/vte.sgml | 11 +
+ python/cat.py | 48 +++
+ python/vte.defs | 14 +
+ src/Makefile.am | 2 +
+ src/buffer.h | 10 +-
+ src/caps.h | 2 +
+ src/keymap.c | 798 +++++++++++++++++++++++++++++++++++++++++++
+ src/keymap.h | 52 +++
+ src/marshal.list | 1 +
+ src/pty.c | 84 +++++
+ src/vte.c | 602 +++++++++++++--------------------
+ src/vte.h | 2 +-
+ src/vteapp.c | 4 +-
+ termcaps/xterm | 6 +-
+ 17 files changed, 1305 insertions(+), 372 deletions(-)
+
+commit fb8d32cd8e004edf334cd893e530de54e91f93b3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Oct 11 18:50:01 2002 +0000
+
+ change the typedef of wint_t here to match vte.c (now a gunichar instead
+
+ * src/trie.c: change the typedef of wint_t here to match vte.c (now a gunichar
+ instead of a long). Spotted by Brian Cameron.
+
+ ChangeLog | 6 +++++-
+ src/trie.c | 2 +-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit ce817d3ae082a82c2ebad13f8be2fc145f556afa
+Author: Brian Cameron <bcameron src gnome org>
+Date: Fri Oct 11 17:21:07 2002 +0000
+
+ Changed to that wchar.h is included when checking for wint_t on Solaris.
+
+ * configure.in: Changed to that wchar.h is included when checking for
+ wint_t on Solaris. This was needed because on Solaris wint_t is defined
+ to be a long, and in vte.c its definition was recently changed to be a
+ gunichar. This caused the compile to break on Solaris.
+
+ ChangeLog | 6 ++++++
+ configure.in | 29 ++++++++++++++++++++++++++++-
+ 2 files changed, 34 insertions(+), 1 deletions(-)
+
+commit b0a4e8ffb13e71e393d973539267f3cbf711b2d0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Oct 10 18:45:46 2002 +0000
+
+ fix the bits I missed when fixing #95085.
+
+ * configure.in, src/pty.c, gnome-pty-helper/Makefile.am: fix the bits I missed
+ when fixing #95085.
+
+ ChangeLog | 4 ++++
+ configure.in | 5 ++++-
+ gnome-pty-helper/Makefile.am | 4 ++--
+ src/pty.c | 2 +-
+ 4 files changed, 11 insertions(+), 4 deletions(-)
+
+commit 46821963e12a980b5d3864fbee542bcd66c45480
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Oct 10 17:57:14 2002 +0000
+
+ Add.
+
+ src/buffer.c | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/buffer.h | 43 +++++++++++++++
+ 2 files changed, 213 insertions(+), 0 deletions(-)
+
+commit 272bef21f4676bd586bbd9484890d6d2aa47fce7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Oct 10 16:57:30 2002 +0000
+
+ allow specifying the scrollback buffer size. if we don't have <wchar.h>,
+
+ * src/vteapp.c, python/vte-demo.py: allow specifying the scrollback buffer size.
+ * src/vte.c: if we don't have <wchar.h>, typedef wchar_t as a gunichar, not a
+ long.
+ * src/buffer.c, src/buffer.h: add.
+ * src/interpret.c, src/vte.c: use _vte_buffer structures instead of char arrays
+ with separate lengths. Use a scratch buffer for holding the results of
+ conversions.
+ * src/vte.c: separate the pango and pangox drawing paths so that they're easier
+ to tweak and compare to each other.
+ * src/vte.c: ditch the smooth scrolling change, which won't work right anyway
+ (expose events don't get processed until after we finish processing a
+ chunk of data unless we explicitly request it, so using a bbox is both
+ simpler and faster). Use a mask when creating the cursor we use for
+ hiding the cursor.
+ * vte.spec, gnome-pty-helper/Makefile.am: install gnome-pty-helper into the
+ libexecdir, not pkglibdir (#95085).
+ * src/vte.c: obey smooth/jump scrolling options, default is jump scroll.
+ * src/vte.c (vte_font_match): Fix over-aggressive Xft => Fc conversion - need
+ to call XftDefaultSubstitute to pick up Xft X resources, not
+ FcDefaultSubstitute. From otaylor.
+
+ ChangeLog | 29 ++
+ gnome-pty-helper/Makefile.am | 3 +-
+ gnome-pty-helper/README | 5 +-
+ po/cs.po | 38 ++--
+ po/da.po | 42 ++--
+ po/de.po | 42 ++--
+ po/fr.po | 42 ++--
+ po/nl.po | 42 ++--
+ po/no.po | 40 ++--
+ po/pt_BR.po | 42 ++--
+ po/sv.po | 42 ++--
+ po/vi.po | 42 ++--
+ python/vte-demo.py | 11 +-
+ src/Makefile.am | 4 +
+ src/vte.c | 615 +++++++++++++++++++++---------------------
+ src/vteapp.c | 12 +-
+ vte.spec | 2 +-
+ 17 files changed, 553 insertions(+), 500 deletions(-)
+
+commit 9705656987dfb648692f14556143fa999a28e5bb
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Sat Oct 5 20:55:35 2002 +0000
+
+ Update slightly
+
+ po/no.po | 42 +++++++++++++++++++++---------------------
+ 1 files changed, 21 insertions(+), 21 deletions(-)
+
+commit 70f468de3dff031b5e755560a4ae6b08babb111b
+Author: Stanislav Brabec <sbrabec suse cz>
+Date: Tue Oct 1 09:40:24 2002 +0000
+
+ Added Czech translation from Miloslav Trmac <mitr volny cz>.
+
+ 2002-10-01 Stanislav Brabec <sbrabec suse cz>
+
+ * cs.po: Added Czech translation from Miloslav Trmac
+ <mitr volny cz>.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 +++
+ po/cs.po | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 124 insertions(+), 1 deletions(-)
+
+commit 5a499ccb617f2b67c2e236c613f68c0af7dbf780
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Sep 24 20:24:17 2002 +0000
+
+ if the list of word characters is NULL or zero-length, try to guess using
+
+ * src/vte.c(vte_terminal_set_word_chars,vte_terminal_is_word_char): if the list
+ of word characters is NULL or zero-length, try to guess using
+ g_unichar_isgraph and not g_unichar_ispunct, which seems to produce
+ reasonable results (#77134).
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 14 +++++++++++++-
+ 2 files changed, 19 insertions(+), 1 deletions(-)
+
+commit 4ed2ed43616e28c9e623bfa3c4bdabb06c212545
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Sep 24 19:31:04 2002 +0000
+
+ Fix HAVE_UT_UT_TV for cases where the static initializer might not work
+
+ * gnome-pty-helper/acinclude.m4: Fix HAVE_UT_UT_TV for cases where the static
+ initializer might not work right (#93774, patch from Kalpesh Shah).
+
+ ChangeLog | 5 +++++
+ gnome-pty-helper/acinclude.m4 | 3 ++-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit 5c90999a83b372436ab94d7b0d5f4cd1cc942360
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Sep 24 19:24:28 2002 +0000
+
+ Doc fixups (mention gnome-terminal instead of profterm, note the proper
+
+ * README, gnome-pty-helper/README: Doc fixups (mention gnome-terminal instead
+ of profterm, note the proper permissions for gnome-pty-helper, #84505).
+
+ ChangeLog | 5 +++++
+ README | 2 +-
+ gnome-pty-helper/README | 6 ++++++
+ 3 files changed, 12 insertions(+), 1 deletions(-)
+
+commit 0da7298172a95ccdcafa8c84d4b53a28b03c2aae
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Sep 20 16:58:57 2002 +0000
+
+ Fix a ring-buffer manipulation bug (Red Hat #74290) which might cause a
+
+ * src/ring.c: Fix a ring-buffer manipulation bug (Red Hat #74290) which might
+ cause a new item to be inserted in the wrong location.
+
+ ChangeLog | 4 +++
+ src/iso2022.txt | 5 +++
+ src/ring.c | 79 ++++++++++++++++++++++++++++++++++--------------------
+ 3 files changed, 59 insertions(+), 29 deletions(-)
+
+commit 104c07cab56604228172e7ea47e102312ff7b43e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 19 20:14:06 2002 +0000
+
+ Munge input data the way the terminal does so that conversion failures
+
+ * src/interpret.c: Munge input data the way the terminal does so that conversion
+ failures don't wedge us.
+
+ ChangeLog | 4 ++++
+ src/interpret.c | 6 ++++++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+commit 3aff8ec2220dc2e52bc925ddce87ac6c2e8badf3
+Author: Brian Cameron <bcameron src gnome org>
+Date: Thu Sep 19 14:20:30 2002 +0000
+
+ backing out change made by accident.
+
+ src/vteapp.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 045db8182451129a6456f94721ef79537ba9e411
+Author: Brian Cameron <Brian Cameron sun com>
+Date: Thu Sep 19 14:18:55 2002 +0000
+
+ Backed out scrolldelay patches from 09-17 and 09-18 at Nalin's request.
+
+ 2002-09-19 Brian Cameron <Brian Cameron sun com>
+ * src/vte.c: Backed out scrolldelay patches from 09-17 and 09-18 at
+ Nalin's request. Left in the patch which allows programs which
+ update the screen non-linearly like lynx to work properly.
+
+ ChangeLog | 7 ++++-
+ src/vte.c | 77 +--------------------------------------------------------
+ src/vteapp.c | 2 +-
+ 3 files changed, 9 insertions(+), 77 deletions(-)
+
+commit 64462ef05e3b0aa85c5f338f297d594b7b453d46
+Author: Brian Cameron <bcameron src gnome org>
+Date: Thu Sep 19 14:00:52 2002 +0000
+
+ backing out patch i accidently put in
+
+ src/ring.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 2ee4138d1daf8202bf7842b8ff7a5706a3b61cd4
+Author: Brian Cameron <Brian Cameron sun com>
+Date: Thu Sep 19 13:57:14 2002 +0000
+
+ Backed out scrolldelay patches from 09-17 and 09-18 at Nalin's request.
+
+ 2002-09-19 Brian Cameron <Brian Cameron sun com>
+ * src/vte.c: Backed out scrolldelay patches from 09-17 and 09-18 at
+ Nalin's request. Left in the patch which allows programs which
+ update the screen non-linearly like lynx to work properly.
+
+ src/ring.c | 6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+commit 3d11978237aecf846e6afa8b1287e22b7bc1baa2
+Author: Brian Cameron <Brian Cameron sun com>
+Date: Wed Sep 18 14:20:34 2002 +0000
+
+ Corrected a problem with yesterday's patch. I am now properly calling
+
+ 2002-09-18 Brian Cameron <Brian Cameron sun com>
+ * src/vte.c: Corrected a problem with yesterday's patch. I am now
+ properly calling g_source_remove on the scroll_delay timeout
+ function. This prevents VTE from core dumping if you start up
+ more than one VTE gnome-terminal and exit from one of them. Also
+ made the vte_scroll_timeout function a little cleaner by using
+ the VTE_IS_TERMINAL macro.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 13 ++++++++++---
+ 2 files changed, 18 insertions(+), 3 deletions(-)
+
+commit 90ec87c9a6f2bdcb8c2c532f9c4f3e1eae97e1ea
+Author: Brian Cameron <Brian Cameron sun com>
+Date: Tue Sep 17 14:40:06 2002 +0000
+
+ Fixed bug with my 09/11 speedup fix which caused programs that update the
+
+ 2002-09-17 Brian Cameron <Brian Cameron sun com>
+ * src/vte.c: Fixed bug with my 09/11 speedup fix which caused programs
+ that update the screen non-linearly like lynx to not update properly.
+ Also included a speed improvement which delays the scroll-down for
+ 70ms. Too fast to be noticeable to the user, but it speeds up VTE
+ greatly.
+
+ ChangeLog | 7 +++
+ src/vte.c | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 120 insertions(+), 9 deletions(-)
+
+commit d5962db9564344363ee538b922b1de2d0c55da84
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Sep 13 18:37:51 2002 +0000
+
+ Fix typo which broke builds on systems where MSG_NOSIGNAL is defined. Bad
+
+ * src/pty.c: Fix typo which broke builds on systems where MSG_NOSIGNAL is
+ defined. Bad boc! Bad!
+
+ ChangeLog | 4 ++++
+ src/pty.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit a92f7efb47523e51b5db7a59095014a678af851d
+Author: Brian Cameron <Brian Cameron sun com>
+Date: Fri Sep 13 17:35:49 2002 +0000
+
+ Added -lsocket to LIBS if socket is in libsocket, so VTE will compile on
+
+ 2002-09-12 Brian Cameron <Brian Cameron sun com>
+ * configure.in : Added -lsocket to LIBS if socket is in libsocket,
+ so VTE will compile on Solaris.
+
+ ChangeLog | 4 ++++
+ configure.in | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 42492c722b812061542665d24230be6a2ce70cd2
+Author: jacob berkman <jacob ximian com>
+Date: Thu Sep 12 18:34:09 2002 +0000
+
+ only use MSG_NOSIGNAL if it's defined
+
+ 2002-09-12 jacob berkman <jacob ximian com>
+
+ * src/pty.c: only use MSG_NOSIGNAL if it's defined
+
+ * gnome-pty-helper/gnome-pty-helper.c (struct pty_info): remove
+ master_fd and slave_fd fields
+ (shutdown_pty): don't close master/slave fd's here...
+ (pty_add): don't take master/slave fd args
+ (open_ptys): ...close master/slave fd's right after passing them
+
+ this fixes a hang after closing a window on os x, not sure why...
+
+ * gnome-pty-helper/Makefile.am (install-exec-hook): remove
+ trailing / after $DESTDIR
+
+ ChangeLog | 13 +++++++++++++
+ gnome-pty-helper/Makefile.am | 4 ++--
+ gnome-pty-helper/gnome-pty-helper.c | 22 +++++++---------------
+ src/pty.c | 11 +++++++++--
+ 4 files changed, 31 insertions(+), 19 deletions(-)
+
+commit 358885726ad71c0232c253d07c4c784cbd8b4eed
+Author: jacob berkman <jacob ximian com>
+Date: Thu Sep 12 17:32:21 2002 +0000
+
+ AC_CHECK_FUNC() doesn't do AC_DEFINE(HAVE_FOO), so do that for socket()
+
+ 2002-09-12 jacob berkman <jacob ximian com>
+
+ * configure.in: AC_CHECK_FUNC() doesn't do AC_DEFINE(HAVE_FOO), so
+ do that for socket() and socketpair() if they are found
+
+ ChangeLog | 5 +++++
+ configure.in | 11 +++++++++--
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+commit 265464c734922fbe22d580ed1cb4c5567e55692e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 12 14:43:08 2002 +0000
+
+ Remove the invalidate_cells parameter, because the function is a big no-op
+
+ * src/vte.c(vte_invalidate_cursor_once): Remove the invalidate_cells parameter,
+ because the function is a big no-op if FALSE, in which case we should
+ just not call it instead. (vte_terminal_process_incoming): refresh the
+ right number of rows after processing a block of data.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 45 ++++++++++++++++++++++++---------------------
+ 2 files changed, 30 insertions(+), 21 deletions(-)
+
+commit ebb9bd590800e991ca81facead05edf617018c2e
+Author: Brian Cameron <Brian Cameron sun com>
+Date: Thu Sep 12 11:46:03 2002 +0000
+
+ src/vte.c Fixed minor error with my previous patch. This just makes a
+
+
+ 2002-09-12 Brian Cameron <Brian Cameron sun com>
+ * src/vte.c Fixed minor error with my previous patch. This just makes
+ a warning go away.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+commit db8c13b616aeeaa96d660e9d57e7f93c348cf05e
+Author: Pablo Gonzalo del Campo <pablodc bigfoot com>
+Date: Thu Sep 12 01:15:31 2002 +0000
+
+ added spanish translation file.
+
+ 2002-09-11 Pablo Gonzalo del Campo <pablodc bigfoot com>
+
+ * es.po: added spanish translation file.
+
+ po/ChangeLog | 4 ++
+ po/es.po | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 121 insertions(+), 0 deletions(-)
+
+commit 5d1ac721e2096e926afb66b0f693cfdd6d0a8a37
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Sep 11 22:05:26 2002 +0000
+
+ Reorder definitions to avoid implicit declaration warnings. Check for
+
+ * src/pty.c: Reorder definitions to avoid implicit declaration warnings.
+ * configure.in: Check for socketpair(). Check for socket() in libc before
+ poking around in libsocket.
+ * gnome-pty-helper/configure.in: Check for openpty() in libutil as well, and do
+ so before we check for other functions.
+
+ ChangeLog | 7 ++
+ configure.in | 4 +-
+ gnome-pty-helper/configure.in | 5 +
+ src/pty.c | 172 ++++++++++++++++++++--------------------
+ 4 files changed, 100 insertions(+), 88 deletions(-)
+
+commit 0455940575c4f71862b3c5c9154f43e15e0b5d02
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Sep 11 21:03:03 2002 +0000
+
+ Test for sendmsg() with AC_CHECK_FUNCS instead of AC_TRY_COMPILE. Removed.
+
+ * configure.in, gnome-pty-helper/configure.in: Test for sendmsg() with
+ AC_CHECK_FUNCS instead of AC_TRY_COMPILE.
+ * acconfig.h: Removed.
+ * src/pty.c: Formatting.
+
+ ChangeLog | 6 ++++++
+ acconfig.h | 2 --
+ configure.in | 16 +---------------
+ gnome-pty-helper/configure.in | 14 --------------
+ src/pty.c | 10 +++++-----
+ 5 files changed, 12 insertions(+), 36 deletions(-)
+
+commit a1c644edb6b49b1eb3d7135e9a69181e2ad18ce7
+Author: Brian Cameron <Brian Cameron sun com>
+Date: Wed Sep 11 20:36:00 2002 +0000
+
+ Added check for socket library and SendMsg check. Added this file with a
+
+ 2002-09-11 Brian Cameron <Brian Cameron sun com>
+ * configure.in: Added check for socket library and SendMsg
+ check.
+ * acconfig.h: Added this file with a HAVE_SENDMSG definition.
+ * gnome-pty-helper/configure.in: Added checks needed for the
+ source code, including the SendMsg check.
+ * src/pty.c: Corrected _vte_pty_pipe_open so it works on
+ Solaris.
+ *src/vte.c: Made some speed improvements so vte_invalidate_cells
+ is not called for every character in the while loop in
+ vte_process_incoming, but only once when the while loop is done.
+
+ ChangeLog | 12 +++++++
+ acconfig.h | 2 +
+ autogen.sh | 12 +++---
+ configure.in | 16 +++++++++
+ gnome-pty-helper/configure.in | 24 +++++++++++++-
+ src/pty.c | 70 ++++++++++++++++++++++++++++-------------
+ src/vte.c | 63 +++++++++++++++++--------------------
+ 7 files changed, 136 insertions(+), 63 deletions(-)
+
+commit fb18be14fc9bd16b06a2d2963476d28678971fad
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Sep 11 20:00:51 2002 +0000
+
+ Update from libzvt CVS. Fix some automake breakage.
+
+ * gnome-pty-helper: Update from libzvt CVS.
+ * python/Makefile.am: Fix some automake breakage.
+
+ ChangeLog | 4 +++
+ gnome-pty-helper/Makefile.am | 3 ++
+ gnome-pty-helper/README | 8 +++---
+ gnome-pty-helper/configure.in | 1 +
+ gnome-pty-helper/gnome-pty-helper.c | 44 +++++++++++-----------------------
+ gnome-pty-helper/gnome-utmp.c | 41 +++++++++++++++++++------------
+ python/Makefile.am | 2 +-
+ vte.spec | 5 +++-
+ 8 files changed, 56 insertions(+), 52 deletions(-)
+
+commit fcd1b81f7c66e0712d089ce3c19377f29217c647
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Sep 11 19:12:18 2002 +0000
+
+ Fix my broken merge of Jacob's patch to make inability to build python
+
+ * python/Makefile.am: Fix my broken merge of Jacob's patch to make inability to
+ build python modules non-fatal.
+
+ ChangeLog | 4 ++++
+ Makefile.am | 2 +-
+ python/Makefile.am | 3 ++-
+ 3 files changed, 7 insertions(+), 2 deletions(-)
+
+commit 8668fb77303cf91fa2f2b87a49db2dc412079934
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Sep 11 06:34:27 2002 +0000
+
+ build fixes
+
+ Makefile.am | 2 +-
+ autogen.sh | 7 ++++
+ gnome-pty-helper/autogen.sh | 71 -------------------------------------------
+ 3 files changed, 8 insertions(+), 72 deletions(-)
+
+commit 2149ce6c7878cb4161f882c15d29e6dc68e182a0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Sep 11 06:10:47 2002 +0000
+
+ Skip lookups for padding information if we're pretty sure we're using a
+
+ * src/vte.c: Skip lookups for padding information if we're pretty sure we're
+ using a monospaced font.
+ * src/vte.c: Fix from Brian Cameron for uninitialized GError in
+ vte_wc_from_unichar().
+ * src/interpret.c, src/iso2022.c, src/pty.c, src/ring.h, src/table.c,
+ src/table.h, src/trie.c, src/vte.c, src/vteaccess.c: Signed/unsigned
+ int/size_t/gsize and pointer typecast warning fixes from Brian Cameron.
+ * src/vte.c: Avoid invalidating the cursor in the cursor blink timeout unless
+ we have focus.
+ * src/pty.c, src/pty.h: Add vte_pty_close() and vte_pty_open_with_logging(),
+ breaking the ABI but not the existing API.
+ * src/vte.c, src/vte.h: Add vte_terminal_fork_logged_command(), breaking the
+ ABI but not the existing API.
+ * gnome-pty-helper/*: Swallow the pty helper bits of gnome-libs, but install
+ into $pkglibdir instead of $sbindir so that existing packages don't
+ suddenly start breaking.
+ * src/termcap.c(_vte_termcap_find_string_length): Fix signature to match the
+ declaration in termcap.h. From patch by Jacob Berkman.
+ * configure.in: Add $X_PRE_LIBS to the front of $X_LIBS, -lX11 and $X_EXTRA_LIBS
+ to the end of $X_LIBS. Remove some cruftiness and set CPPFLAGS when
+ checking for Xft. Check for the existence of wchar.h, because it might
+ not exist. Use an automake conditional to make compilation of the
+ Python bindings non-critical. From patch by Jacob Berkman.
+ * src/pty.c: Silence compiler warning when exec() fails. From patch by Jacob
+ Berkman.
+ * src/interpret.c, src/vte.c: Stop including langinfo.h since we don't call
+ nl_langinfo() any more. Adapted from patch by Jacob Berkman.
+ * src/caps.c: Fill in a couple of missing initializers.
+ * src/vte.c, src/vte.h: Add accessor functions for use in language bindings,
+ breaking the ABI but not the API.
+ * python/vte.defs: Add defs for the new accessor functions.
+ * python/vte-demo.py: Add a scrollbar to the sample window, handle more of the
+ options the C version handles. Stop expecting additional arguments with
+ a signal that doesn't include any.
+ * python/Makefile.am: We only have one target, so don't bother with
+ target-specific primaries if we can avoid it (#92252).
+ * vte.pc.in: Note build dependencies on ATK, Pango, and PangoX.
+
+ ChangeLog | 47 ++-
+ HACKING | 5 +-
+ Makefile.am | 2 +-
+ NEWS | 8 +
+ README | 2 +-
+ configure.in | 88 +++--
+ doc/reference/Makefile.am | 13 +-
+ doc/reference/tmpl/vte-unused.sgml | 576 ------------------------
+ doc/reference/tmpl/vte.sgml | 81 ++++
+ doc/reference/vte-sections.txt | 10 +
+ gnome-pty-helper/AUTHORS | 4 +
+ gnome-pty-helper/COPYING | 481 ++++++++++++++++++++
+ gnome-pty-helper/Makefile.am | 13 +
+ NEWS => gnome-pty-helper/NEWS | 0
+ gnome-pty-helper/README | 4 +
+ gnome-pty-helper/acinclude.m4 | 243 ++++++++++
+ gnome-pty-helper/autogen.sh | 71 +++
+ gnome-pty-helper/configure.in | 17 +
+ gnome-pty-helper/gnome-login-support.c | 329 ++++++++++++++
+ gnome-pty-helper/gnome-login-support.h | 38 ++
+ gnome-pty-helper/gnome-pty-helper.c | 760 ++++++++++++++++++++++++++++++++
+ gnome-pty-helper/gnome-pty.h | 21 +
+ gnome-pty-helper/gnome-utmp.c | 348 +++++++++++++++
+ po/da.po | 42 +-
+ po/de.po | 42 +-
+ po/fr.po | 42 +-
+ po/nl.po | 42 +-
+ po/no.po | 42 +-
+ po/pt_BR.po | 42 +-
+ po/sv.po | 42 +-
+ po/vi.po | 42 +-
+ python/Makefile.am | 15 +-
+ python/vte-demo.py | 48 ++-
+ python/vte.defs | 73 +++-
+ src/Makefile.am | 46 +-
+ src/caps.c | 6 +-
+ src/interpret.c | 9 +-
+ src/iso2022.c | 12 +-
+ src/pty.c | 509 +++++++++++++++++++---
+ src/pty.h | 9 +
+ src/reaper.c | 3 +
+ src/ring.h | 2 +-
+ src/table.c | 40 +-
+ src/table.h | 2 +-
+ src/termcap.c | 16 +-
+ src/trie.c | 8 +-
+ src/vte.c | 408 +++++++++++++-----
+ src/vte.h | 19 +
+ src/vteaccess.c | 4 +-
+ src/vteapp.c | 9 +
+ vte.pc.in | 2 +-
+ vte.spec | 15 +-
+ 52 files changed, 3706 insertions(+), 1046 deletions(-)
+
+commit 8b212c6c4399fb2cf07cd6bb95eac17a6b790297
+Author: Jacob Berkman <jacob ximian com>
+Date: Wed Sep 11 01:10:32 2002 +0000
+
+ remove es until the file really gets added. also it wasn't added
+
+ 2002-09-10 Jacob Berkman <jacob ximian com>
+
+ * configure.in (ALL_LINGUAS: remove es until the file really gets
+ added. also it wasn't added alphabetically
+
+ ChangeLog | 5 +++++
+ configure.in | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletions(-)
+
+commit 60eaadcd1b176228a08fec0764796f72582aaeda
+Author: Pablo Gonzalo del Campo <pablodc bigfoot com>
+Date: Wed Sep 11 00:48:05 2002 +0000
+
+ Added "es" to ALL_LINGUAS
+
+ 2002-09-10 Pablo Gonzalo del Campo <pablodc bigfoot com>
+
+ * configure.in: Added "es" to ALL_LINGUAS
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit fade1f34b072b8444b75dd4ca7418f50a28e25ac
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 5 20:44:58 2002 +0000
+
+ fix for building when builddir != srcdir
+
+ * doc/reference/Makefile.am, doc/reference/vte.types: fix for building when
+ builddir != srcdir
+
+ doc/reference/Makefile.am | 2 +-
+ doc/reference/vte.types | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 172f0bc4ce4c5bd5e0784c6422103cf4dba2bb43
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 5 20:34:46 2002 +0000
+
+ - 0.8.19
+
+ vte.spec | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit a1aa6e995771aedd61bbbcc304d12fc5999a0ff0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 5 19:37:53 2002 +0000
+
+ 2002-09-05 nalin prefix library-internal interfaces with underscores so
+
+ 2002-09-05 nalin
+ * src/caps.c, src/caps.h, src/debug.c, src/debug.h, src/interpret.c,
+ src/iso2022.c, src/iso2022.h, src/pty.c, src/reaper.c, src/ring.c,
+ src/ring.h, src/table.c, src/table.h, src/termcap.c, src/termcap.h,
+ src/trie.c, src/trie.h, src/utf8echo.c, src/vte.c, src/vteaccess.c,
+ src/vteapp.c: prefix library-internal interfaces with underscores so
+ that gtk-doc doesn't guess they're public.
+ * src/vte.c: return FALSE from focus-in/focus-out/expose handlers.
+
+ ChangeLog | 9 +
+ doc/reference/tmpl/caps.sgml | 66 ----
+ doc/reference/tmpl/debug.sgml | 50 ---
+ doc/reference/tmpl/iso2022.sgml | 38 --
+ doc/reference/tmpl/marshal.sgml | 16 -
+ doc/reference/tmpl/ring.sgml | 155 --------
+ doc/reference/tmpl/table.sgml | 77 ----
+ doc/reference/tmpl/termcap.sgml | 79 ----
+ doc/reference/tmpl/trie.sgml | 76 ----
+ doc/reference/tmpl/vte-unused.sgml | 340 ++++++++++++++++
+ doc/reference/vte-sections.txt | 47 ---
+ src/caps.c | 30 +-
+ src/caps.h | 22 +-
+ src/debug.c | 32 +-
+ src/debug.h | 4 +-
+ src/interpret.c | 68 ++--
+ src/iso2022.c | 216 ++++++------
+ src/iso2022.h | 13 +-
+ src/pty.c | 26 +-
+ src/reaper.c | 2 +-
+ src/ring.c | 66 ++--
+ src/ring.h | 30 +-
+ src/table.c | 324 ++++++++--------
+ src/table.h | 26 +-
+ src/termcap.c | 146 ++++----
+ src/termcap.h | 26 +-
+ src/trie.c | 247 ++++++------
+ src/trie.h | 30 +-
+ src/utf8echo.c | 2 +-
+ src/vte.c | 748 ++++++++++++++++++------------------
+ src/vteaccess.c | 16 +-
+ src/vteapp.c | 2 +-
+ vte.spec | 2 +-
+ 33 files changed, 1389 insertions(+), 1642 deletions(-)
+
+commit e9c9661c32bef562f18ba5b0118d3a95d1bd9390
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 5 05:59:15 2002 +0000
+
+ add giant warnings about how these headers define library-internal
+
+ * src/caps.h, src/debug.h, src/iso2022.h, src/marshal.h, src/ring.h,
+ src/table.h, src/termcap.h, src/trie.h: add giant warnings about how
+ these headers define library-internal interfaces.
+ * vte.spec: 0.8.18
+
+ ChangeLog | 6 ++++
+ doc/reference/tmpl/ring.sgml | 32 ++++++++++++++++-------
+ po/da.po | 57 ++++++++++++++++++++---------------------
+ po/de.po | 57 ++++++++++++++++++++---------------------
+ po/fr.po | 57 ++++++++++++++++++++---------------------
+ po/nl.po | 57 ++++++++++++++++++++---------------------
+ po/no.po | 48 ++++++++++++++++++-----------------
+ po/pt_BR.po | 49 ++++++++++++++++++-----------------
+ po/sv.po | 57 ++++++++++++++++++++---------------------
+ po/vi.po | 45 ++++++++++++++++-----------------
+ src/caps.h | 2 +
+ src/debug.h | 2 +
+ src/iso2022.h | 2 +
+ src/ring.h | 2 +
+ src/table.h | 2 +
+ src/termcap.h | 2 +
+ src/trie.h | 2 +
+ vte.spec | 7 ++++-
+ 18 files changed, 260 insertions(+), 226 deletions(-)
+
+commit a2ba14a218070385765aff572ff9b052e5f78e88
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 5 05:48:25 2002 +0000
+
+ - remove items from pkgincludedir that are subject to change
+
+ src/Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit c2828bb1eb0986275d27496af2ed52caf199cb51
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 5 05:48:06 2002 +0000
+
+ - remove items from ToC that are subject to change
+
+ doc/reference/vte-docs.sgml | 5 -----
+ 1 files changed, 0 insertions(+), 5 deletions(-)
+
+commit 5d694faf7d2c3fb490ffc135f3ffc4ab3130b19c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Sep 5 05:42:13 2002 +0000
+
+ 2002-09-05 nalin first pass at writing documentation fix
+
+ 2002-09-05 nalin
+ * docs/reference: first pass at writing documentation
+ * src/termcap.c: fix how'd-that-ever-work in vte_termcap_strip(), patch
+ from Brian Cameron. Take \\e as an alias for \\E, which is already
+ an alias for Escape.
+ * src/vte.c(vte_terminal_get_cursor): Return an absolute cursor position
+ instead of a relative position.
+
+ ChangeLog | 8 +
+ Makefile.am | 2 +-
+ configure.in | 53 +++
+ doc/Makefile.am | 1 +
+ doc/reference/Makefile.am | 187 ++++++++++
+ doc/reference/tmpl/caps.sgml | 66 ++++
+ doc/reference/tmpl/debug.sgml | 50 +++
+ doc/reference/tmpl/iso2022.sgml | 38 ++
+ doc/reference/tmpl/marshal.sgml | 16 +
+ doc/reference/tmpl/pty.sgml | 54 +++
+ doc/reference/tmpl/reaper.sgml | 43 +++
+ doc/reference/tmpl/ring.sgml | 143 ++++++++
+ doc/reference/tmpl/table.sgml | 77 ++++
+ doc/reference/tmpl/termcap.sgml | 79 +++++
+ doc/reference/tmpl/trie.sgml | 76 ++++
+ doc/reference/tmpl/vte-unused.sgml | 236 +++++++++++++
+ doc/reference/tmpl/vte.sgml | 683 ++++++++++++++++++++++++++++++++++++
+ doc/reference/tmpl/vteaccess.sgml | 31 ++
+ doc/reference/vte-docs.sgml | 31 ++
+ doc/reference/vte-sections.txt | 153 ++++++++
+ doc/reference/vte.types | 10 +
+ src/caps.c | 10 +
+ src/caps.h | 12 +-
+ src/debug.h | 2 +-
+ src/iso2022.h | 1 -
+ src/pty.c | 36 ++
+ src/reaper.c | 5 +
+ src/ring.c | 58 +++-
+ src/ring.h | 12 +-
+ src/table.c | 2 +-
+ src/termcap.c | 74 ++++-
+ src/trie.c | 2 +-
+ src/vte.c | 674 +++++++++++++++++++++++++++++++----
+ src/vte.h | 34 +-
+ src/vteaccess.c | 12 +-
+ src/vteaccess.h | 10 +-
+ 36 files changed, 2866 insertions(+), 115 deletions(-)
+
+commit 590ba538b7fa77509035453bc8a0e4d6f276bfc1
+Author: jacob berkman <jacob ximian com>
+Date: Wed Sep 4 18:36:46 2002 +0000
+
+ only compile the FC_HINT_STYLE part if FC_HINT_STYLE is defined
+
+ 2002-09-04 jacob berkman <jacob ximian com>
+
+ * src/vte.c (vte_default_substitute): only compile the FC_HINT_STYLE
+ part if FC_HINT_STYLE is defined
+
+ ChangeLog | 5 +++++
+ src/vte.c | 2 ++
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit 08be108d9922a60f01986fa57c593f90c63ebffb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Sep 4 16:43:11 2002 +0000
+
+ Add missing fontconfig.h include, spotted by Jacob Berkman.
+
+ * src/vte.c: Add missing fontconfig.h include, spotted by Jacob Berkman.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 3 +++
+ 2 files changed, 8 insertions(+), 0 deletions(-)
+
+commit 2a76bdc27031deba65d205199f4aad7d3babc1a3
+Author: Brian Cameron <Brian Cameron sun com>
+Date: Wed Sep 4 08:33:08 2002 +0000
+
+ Added stropts.h check for Solaris. Do not send data to the slave if the
+
+
+ 2002-09-04 Brian Cameron <Brian Cameron sun com>
+ * configure.in: Added stropts.h check for Solaris.
+ * src/vte.c: Do not send data to the slave if the length is zero.
+ Some shells on Solaris do not handle this well.
+ * src/pty.c: Added ptem/ldterm/ttcompat ioctls so VTE will work
+ on Solaris.
+
+ ChangeLog | 7 +++++++
+ configure.in | 1 +
+ src/pty.c | 21 +++++++++++++++++++++
+ src/vte.c | 2 +-
+ 4 files changed, 30 insertions(+), 1 deletions(-)
+
+commit f0953feec5ff4b6cb5e0a93f4049cac1cb78098d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Sep 3 22:35:37 2002 +0000
+
+ Avoid double color deallocations with Xft.
+
+ * src/vte.c: Avoid double color deallocations with Xft.
+
+ ChangeLog | 3 +++
+ src/vte.c | 34 ++++++++++++++++++++++------------
+ vte.spec | 5 ++++-
+ 3 files changed, 29 insertions(+), 13 deletions(-)
+
+commit 27721b50e75f6d75fabf685270ad519a91bbabf7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Sep 3 22:05:13 2002 +0000
+
+ Handle color allocation failures with Xft better. Clean up typedef
+
+ * src/vte.c: Handle color allocation failures with Xft better.
+ * src/vte.h: Clean up typedef declarations.
+
+ ChangeLog | 8 +++++++-
+ src/vte.c | 12 +++++++-----
+ src/vte.h | 15 ++++++++++-----
+ vte.spec | 5 ++++-
+ 4 files changed, 28 insertions(+), 12 deletions(-)
+
+commit c217b1f52f2daeaace161ed69daaeec799f2ca0b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Sep 3 19:10:31 2002 +0000
+
+ Modify the child-exited signal to pass signed ints and an unmodified exit
+
+ * src/marshal.list, src/reaper.c, src/reaper.h, src/vte.c: Modify the
+ child-exited signal to pass signed ints and an unmodified exit status,
+ allowing the callback to check for normal/abnormal exit status.
+
+ ChangeLog | 5 +++++
+ src/marshal.list | 1 +
+ src/reaper.c | 19 ++++++-------------
+ src/vte.c | 2 +-
+ 4 files changed, 13 insertions(+), 14 deletions(-)
+
+commit da6d49171075c60a7c81f94317651e9230eb58c3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Sep 2 23:25:28 2002 +0000
+
+ - cleanups - don't invalidate subwindows
+
+ - cleanups
+ - don't invalidate subwindows
+
+ src/vte.c | 31 +++++++++++++++++++------------
+ vte.spec | 5 ++++-
+ 2 files changed, 23 insertions(+), 13 deletions(-)
+
+commit 15258667b28664dd603e2a7fa2a8861eb14645e8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Sep 2 20:19:47 2002 +0000
+
+ Don't send zero-length strings to the child -- it may not be able to cope
+
+ * src/vte.c: Don't send zero-length strings to the child -- it may not be able
+ to cope properly. Spotted by Brian Cameron.
+ * src/vte.c: Handle cursor exposes correctly for multicolumn characters, no
+ matter which cell the cursor is in. Fix autoscrolling boundary checks
+ for when allocation.y != 0.
+
+ ChangeLog | 9 ++++
+ src/Makefile.am | 2 +-
+ src/vte.c | 145 +++++++++++++++++++++++++++++++++++++------------------
+ 3 files changed, 107 insertions(+), 49 deletions(-)
+
+commit d1948e0c98eca4162204c20dba98af2032510d22
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Aug 30 22:35:58 2002 +0000
+
+ Wrap correctly to avoid screwing up multicolumn characters.
+
+ * src/vte.c(vte_terminal_insert_char): Wrap correctly to avoid screwing up
+ multicolumn characters.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 5 +++--
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+commit fc877576767cde785d918dbf1e9025c76de3958d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Aug 30 21:57:43 2002 +0000
+
+ Get smarter about when it's necessary to start messing with our
+
+ * src/vte.c: Get smarter about when it's necessary to start messing with our
+ adjustments (Red Hat #73091). Change the way we clear the screen so
+ that all of the contents of the current screen become scrollback data.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 41 +++++++++++++++++++++--------------------
+ vte.spec | 5 ++++-
+ 3 files changed, 31 insertions(+), 21 deletions(-)
+
+commit 90fefc0f6506e60d0484c541b202ab73c0d6eec0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Aug 30 21:04:16 2002 +0000
+
+ Register VteTerminalEraseBinding with GObject as an enum. Update. Ignore
+
+ * src/vte.c: Register VteTerminalEraseBinding with GObject as an enum.
+ * python/vte.defs: Update.
+ * python/vte.overrides: Ignore vte_terminal_get_text_range().
+
+ ChangeLog | 6 ++++
+ python/vte.defs | 77 +++++++++++++++++++++++++++++++++++++++++++++++---
+ python/vte.override | 1 +
+ src/vte.c | 32 +++++++++++++++++++--
+ src/vte.h | 15 ++++++---
+ 5 files changed, 118 insertions(+), 13 deletions(-)
+
+commit 4d858f5dd22e8c6054026775712c4af3ff374716
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Aug 30 18:48:38 2002 +0000
+
+ Restore the focus-in/focus-out handlers -- the defaults don't quite DTRT
+
+ * src/vte.c: Restore the focus-in/focus-out handlers -- the defaults don't
+ quite DTRT for us because they miss our im_context (#72946). When
+ setting the cursor location for the input method, make the Y coordinate
+ relative to the window, not the scrollback buffer. When resizing the
+ scrollback buffer, clamp the cursor to the set of possible locations,
+ not the visible locations.
+
+ ChangeLog | 8 ++++++++
+ src/vte.c | 16 +++++++++-------
+ vte.spec | 6 +++++-
+ 3 files changed, 22 insertions(+), 8 deletions(-)
+
+commit d84edf906e33f9b7c3a9eeb626541deb98d95f68
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Aug 30 15:49:45 2002 +0000
+
+ Initialize the pty master fd to -1 to avoid spurious window resizes on fd
+
+ * src/vte.c: Initialize the pty master fd to -1 to avoid spurious window resizes
+ on fd 0.
+ * src/debug.c, src/debug.h: Add a "pty" debug message class.
+
+ ChangeLog | 5 ++++
+ src/debug.c | 3 ++
+ src/debug.h | 1 +
+ src/pty.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ src/vte.c | 4 +++
+ 5 files changed, 76 insertions(+), 5 deletions(-)
+
+commit 9be0193cd59881d9ab81fd22be710026d24c12d9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Aug 30 14:49:37 2002 +0000
+
+ Fix a how'd-that-ever-work bug (not returning anything from
+
+ * src/iso2022.c: Fix a how'd-that-ever-work bug (not returning anything from
+ vte_iso2022_new()), spotted by Brian Cameron.
+ * configure.in: Use -Wall when building with gcc in maintainer mode.
+ * src/interpret.c, src/ring.h, src/table.c, src/trie.c, src/vte.c,
+ src/vteaccess.c: Warning cleanups.
+
+ ChangeLog | 7 +++++++
+ configure.in | 1 +
+ src/interpret.c | 2 +-
+ src/iso2022.c | 1 +
+ src/ring.h | 5 ++---
+ src/table.c | 5 +++--
+ src/trie.c | 4 ++--
+ src/vte.c | 18 +++++++++---------
+ src/vteaccess.c | 8 ++++----
+ vte.spec | 5 ++++-
+ 10 files changed, 34 insertions(+), 22 deletions(-)
+
+commit 3993c17be8839f7adda132270e8d9238d9f49b95
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 29 20:19:51 2002 +0000
+
+ Clean up bookkeeping for mouse autoscrolling and adjustment change
+
+ * src/vte.c: Clean up bookkeeping for mouse autoscrolling and adjustment change
+ notifications. Reset the scrolling and insertion deltas when clearing
+ the history.
+ * src/interpret.c: Don't dump data on incomplete conversion errors, which we're
+ going to retry anyway.
+ * src/iso2022.txt: Add iso-2022-kr examples (no workee -- uses GR).
+ * src/vte.c, src/vte.h: Add vte_terminal_copy_primary and
+ vte_terminal_paste_primary(), because I really want to let profterm
+ decide default values for key bindings.
+
+ ChangeLog | 17 ++++++++++++-
+ src/interpret.c | 23 ++++++++++-------
+ src/iso2022.txt | 9 ++++---
+ src/vte.c | 73 +++++++++++++++++++++++++++++++++++++++----------------
+ src/vte.h | 2 +
+ vte.spec | 6 ++++-
+ 6 files changed, 94 insertions(+), 36 deletions(-)
+
+commit b4069ef78a1cce43ad60dde14f7c298c85de2fb9
+Author: Gustavo Noronha Silva <gns src gnome org>
+Date: Wed Aug 28 21:18:09 2002 +0000
+
+ new translation, by "Alexandre Folle de Menezes" <afmenez terra com br>
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 ++
+ po/pt_BR.po | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 126 insertions(+), 1 deletions(-)
+
+commit 00b80b8a6ed76d1242eef490707a6f4f16aebdff
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 28 04:16:48 2002 +0000
+
+ Stop autoscrolling on button release.
+
+ * src/vte.c: Stop autoscrolling on button release.
+
+ ChangeLog | 2 ++
+ src/vte.c | 5 +++++
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit ac4cf6cdecbd7953b05c3daf2ab7f6614e5a83fe
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 28 04:03:31 2002 +0000
+
+ When autoscrolling, clamp the new boundaries to what the user can see.
+
+ * src/vte.c: When autoscrolling, clamp the new boundaries to what the user can
+ see.
+
+ ChangeLog | 3 +++
+ src/vte.c | 3 +++
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 882aa116b2b8536693c5dfb38df17be7d9eb65df
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 28 03:46:46 2002 +0000
+
+ Implement autoscroll (Red Hat #70481).
+
+ * src/vte.c: Implement autoscroll (Red Hat #70481).
+
+ ChangeLog | 2 +
+ src/vte.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ vte.spec | 4 ++-
+ 3 files changed, 113 insertions(+), 4 deletions(-)
+
+commit 461fa282a5a5d757ce840c68efb368e5fc7c1f2e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 28 02:54:37 2002 +0000
+
+ Only perform cr-lf substitutions when pasting text, not when inputting
+
+ * src/vte.c: Only perform cr-lf substitutions when pasting text, not when
+ inputting from a live user (Red Hat #72639). Bind GDK_ISO_Left_Tab to
+ kB. Formatting changes.
+ * termcaps/xterm: Bind kB to back-tab (Red Hat #70340).
+
+ ChangeLog | 8 +-
+ src/vte.c | 3057 ++++++++++++++++++++++++++++----------------------------
+ termcaps/xterm | 4 +-
+ vte.spec | 5 +-
+ 4 files changed, 1542 insertions(+), 1532 deletions(-)
+
+commit cd2aefd669762f35a2a0e1b19cc5cc6358d89237
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 27 21:10:25 2002 +0000
+
+ Don't tamper with the scrolling offsets -- they're updated when we handle
+
+ * src/vte.c: Don't tamper with the scrolling offsets -- they're updated when we
+ handle adjustment_changed notifications. Scroll instead of just moving
+ the cursor down when soft-wrapping to the next line. Avoid emitting
+ adjustment_changed when only the value has changed, likewise for the
+ value and the other fields of the adjustment.
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 49 +++++++++++++++++++++++--------------------------
+ vte.spec | 5 ++++-
+ 3 files changed, 34 insertions(+), 27 deletions(-)
+
+commit f867bb1dc01cc507daf43081fa844f04871bce9b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 27 07:11:58 2002 +0000
+
+ Keep cursor position and scrolling offsets from going wonky when you
+
+ * src/vte.c: Keep cursor position and scrolling offsets from going wonky when
+ you resize, especially on the alternate screen. Suppress duplicate
+ adjustment_changed notifications.
+ * src/vteapp.c: Set the MIN_SIZE geometry hints so that we can resize to
+ unreasonably-small dimensions.
+ * src/ring.c, src/ring.h: Add vte_ring_new_with_delta().
+
+ ChangeLog | 8 +++
+ src/ring.c | 14 ++++-
+ src/ring.h | 10 +++-
+ src/vte.c | 187 ++++++++++++++++++++++++++++++++++++++++++++--------------
+ src/vteapp.c | 6 ++-
+ vte.spec | 8 ++-
+ 6 files changed, 182 insertions(+), 51 deletions(-)
+
+commit 7145a6fbf847d0b4d6329dfd4f2698167fd206d5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 26 19:49:21 2002 +0000
+
+ Add padding spaces after full lines as well -- spotted by both notting and
+
+ * src/vte.c: Add padding spaces after full lines as well -- spotted by both
+ notting and pjones.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 7 ++++++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+commit ce3af3d0451b7ed576c6fabaa9e553b284441b02
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 26 16:41:15 2002 +0000
+
+ Don't deadlock when substitution fails, spotted by msw.
+
+ * src/vte.c: Don't deadlock when substitution fails, spotted by msw.
+
+ ChangeLog | 3 +++
+ src/vte.c | 18 ++++++++++++------
+ vte.spec | 5 ++++-
+ 3 files changed, 19 insertions(+), 7 deletions(-)
+
+commit 364df6aba1a1e982d9c9e7d8c6bc3bd93af668e4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 26 14:11:53 2002 +0000
+
+ If GDK_USE_XFT is set, check the value of GDK_USE_XFT, not VTE_USE_XFT.
+
+ * src/vte.c: If GDK_USE_XFT is set, check the value of GDK_USE_XFT, not
+ VTE_USE_XFT. Spotted by hp.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 2 +-
+ vte.spec | 5 ++++-
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 8aacadebd47cc66a019a8ed2fee59041a6e9c0d0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Aug 25 23:27:56 2002 +0000
+
+ Heed the reverse-video setting when painting character cells again. Make
+
+ * src/vte.c: Heed the reverse-video setting when painting character cells again.
+ Make selection and matching coordinates global, fixing the selecting-
+ while-scrolling case. Prevent overdraws into the padding area on the
+ right.
+
+ ChangeLog | 8 ++-
+ src/vte.c | 210 ++++++++++++++++++++++++++++++++++++++-----------------------
+ src/vte.h | 9 +++-
+ vte.spec | 5 +-
+ 4 files changed, 151 insertions(+), 81 deletions(-)
+
+commit c3f69ddbfef582dd5b59573871c402d7b4ce6940
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Aug 25 19:48:05 2002 +0000
+
+ 2002-08-25 nalin Make nd() move right but not wrap -- according to Strang
+
+ 2002-08-25 nalin
+ * src/vte.c: Make nd() move right but not wrap -- according to Strang
+ it's undefined, but xterm doesn't wrap it. Separate do/DO from sf/SF
+ and up/UP from sr/SR, because the scrolling behavior is supposed to be
+ different. Add support for decset/decreset 7 (wraparound mode) and
+ 1051 (Sun keyboard). Add support for DECALN. Remove some type checks
+ from run-time which the compiler can catch with certainty.
+
+ ChangeLog | 10 ++-
+ src/caps.c | 2 +
+ src/vte.c | 394 +++++++++++++++++++++++++++++++++---------------------------
+ vte.spec | 6 +-
+ 4 files changed, 233 insertions(+), 179 deletions(-)
+
+commit 3fe0da425a461c8110d95144c8382a495fe1344a
+Author: Kjartan Maraas <kmaraas gnome org>
+Date: Sat Aug 24 23:18:40 2002 +0000
+
+ Added Norwegian (no) to ALL_LINGUAS.
+
+ 2002-08-25 Kjartan Maraas <kmaraas gnome org>
+
+ * configure.in: Added Norwegian (no) to ALL_LINGUAS.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 731f5273482b5d58a0cefe4bc3b439ac66c4a4fa
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Sat Aug 24 23:17:39 2002 +0000
+
+ Forgot the ChangeLog
+
+ po/ChangeLog | 4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+commit 1aa5d2400a32ed572f580dfdb5e53216e78d06f1
+Author: Kjartan Maraas <kmaraas src gnome org>
+Date: Sat Aug 24 23:17:13 2002 +0000
+
+ New translation
+
+ po/no.po | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 114 insertions(+), 0 deletions(-)
+
+commit 1e7689b7d9f7e4156d4e9e4c866f640d92be0108
+Author: Pablo Saratxaga <pablo src gnome org>
+Date: Sat Aug 24 16:14:55 2002 +0000
+
+ Added Vietnamese file
+
+ ChangeLog | 2 +
+ configure.in | 2 +-
+ po/ChangeLog | 4 ++
+ po/vi.po | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 123 insertions(+), 1 deletions(-)
+
+commit 92f262a96d7793833150d7159801572e966d874a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 22 23:33:56 2002 +0000
+
+ Whoa, back that out.
+
+ configure.in | 6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+commit 3c6d81bf06becda3f9ab005c7310b2343588115e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 22 23:27:31 2002 +0000
+
+ Bind ENQ to "return-terminal-status". Fix an off-by-one which incorrectly
+
+ * src/caps.c: Bind ENQ to "return-terminal-status".
+ * src/iso2022.c: Fix an off-by-one which incorrectly triggered an assertion.
+ * src/vte.c: Implement send-primary/secondary-device-attributes. Bind
+ shift+insert to "paste PRIMARY". Guard against NULL window/icon title
+ when telling the child app what they are.
+
+ ChangeLog | 7 ++++
+ configure.in | 6 +++
+ src/caps.c | 3 ++
+ src/iso2022.c | 4 +-
+ src/vte.c | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++------
+ vte.spec | 2 +-
+ 6 files changed, 111 insertions(+), 15 deletions(-)
+
+commit e0815136a8d8ec40b3d64cca372199f50d3d2bad
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 22 20:50:13 2002 +0000
+
+ Set geometry hints using the initial font setup.
+
+ * src/vteapp.c: Set geometry hints using the initial font setup.
+
+ ChangeLog | 2 ++
+ src/vteapp.c | 1 +
+ 2 files changed, 3 insertions(+), 0 deletions(-)
+
+commit 8d4157d627e109caf00009f7a7468c3d8fe97729
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 22 20:19:59 2002 +0000
+
+ 0.8.3
+
+ vte.spec | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+commit d7144c30e3481e893677d2653b48c2168c6a0bc7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 22 20:19:47 2002 +0000
+
+ Make use of the visible bell a separate option from use of the audible
+
+ * src/vte.c, src/vte.h: Make use of the visible bell a separate option from
+ use of the audible bell, allowing both/neither to be used. Open fonts
+ right away again -- profterm reads the metrics right after calling
+ set_font(), so we have to open fonts ASAP. Rework the Xft/Pango/Xlib
+ decision code to be more consistent. Watch for style changes and reset
+ our font to the new style's font when we're already using the old
+ style's font.
+
+ ChangeLog | 8 ++
+ src/Makefile.am | 2 +-
+ src/vte.c | 322 +++++++++++++++++++++++++++++--------------------------
+ src/vte.h | 3 +
+ 4 files changed, 184 insertions(+), 151 deletions(-)
+
+commit 72c9f7ef1fa08f27e9ab7fcbaef90b938d7ff4ca
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 22 02:31:31 2002 +0000
+
+ The unrealize/realize test, from msw.
+
+ python/unrealize.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 51 insertions(+), 0 deletions(-)
+
+commit 80cbf7e0367fe293c0b62a6412d5e068022e09af
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 22 02:02:40 2002 +0000
+
+ Take a vte_table as an additional argument, and don't mess with text
+
+ * src/iso2022.c(vte_iso2022_substitute): Take a vte_table as an additional
+ argument, and don't mess with text that's part of a control sequence,
+ fixing weird behaviors when we got control sequences in the middle of
+ shift-out text.
+ * src/table.c(vte_table_match): Speed up for the no-arguments-requested
+ case, which just became much more common.
+
+ ChangeLog | 6 +
+ src/Makefile.am | 4 +-
+ src/interpret.c | 5 +-
+ src/iso2022.c | 549 +++++++++++++++++++++++++++++--------------------------
+ src/iso2022.h | 3 +-
+ src/table.c | 14 +--
+ src/vte.c | 3 +-
+ vte.spec | 5 +-
+ 8 files changed, 311 insertions(+), 278 deletions(-)
+
+commit 55bccdf14d96799d421659b1910213d3c1a2733b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 21 21:53:27 2002 +0000
+
+ Cap the maximum number of characters we draw in a single call to
+
+ * src/vte.c(vte_terminal_draw_rows): Cap the maximum number of characters we
+ draw in a single call to vte_terminal_draw_cells at a reasonable number.
+
+ ChangeLog | 4 ++++
+ src/table.c | 11 ++++++++++-
+ src/vte.c | 51 ++++++++++++++++++++++++++++++++++++++-------------
+ 3 files changed, 52 insertions(+), 14 deletions(-)
+
+commit 58245b99625244af4af22fd865193c7cf4419979
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 21 14:29:53 2002 +0000
+
+ Don't overwrite the original pattern pointers before freeing the old
+
+ * src/table.c: Don't overwrite the original pattern pointers before freeing
+ the old value.
+ * src/vte.c: Use the same pango context whenever possible, to save on PangoX
+ startup time.
+
+ ChangeLog | 7 ++++-
+ src/table.c | 3 ++
+ src/vte.c | 90 ++++++++++++++++++++++++++++++++++++++---------------------
+ 3 files changed, 67 insertions(+), 33 deletions(-)
+
+commit d9b83cc2d545ea08a28361066cf55c5bb49433d9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 20 22:32:48 2002 +0000
+
+ Unref the output channel one more time when we're done sending data to the
+
+ * src/vte.c: Unref the output channel one more time when we're done sending data
+ to the child. Free the background data GDK property when we're finished
+ with it. Don't retrieve the pango context when drawing unless Xft has
+ already been disabled. Don't try to use the pango layout to draw unless
+ it's valid. Don't try to use the XftDraw item to draw unless it's
+ valid.
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 48 +++++++++++++++++++++++++++---------------------
+ 2 files changed, 34 insertions(+), 21 deletions(-)
+
+commit b8b0d88316ee6643554ad057a28fa396370f0c92
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 20 21:50:59 2002 +0000
+
+ Dispose of the updated substitution context properly when processing
+
+ * src/vte.c: Dispose of the updated substitution context properly when
+ processing blocks of input text. Spotted by Arjan van de Ven.
+
+ ChangeLog | 3 +++
+ src/vte.c | 2 ++
+ vte.spec | 7 ++++++-
+ 3 files changed, 11 insertions(+), 1 deletions(-)
+
+commit 6fbc7fb151870b632b0d1221dbdea510b379fbc2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 20 21:25:53 2002 +0000
+
+ - run automake with -c
+
+ autogen.sh | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit b35ab602d24d1ea54b0adafc5009de95d7db1523
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 20 20:55:20 2002 +0000
+
+ Debug when rows get freed. Maybe-release pango contexts after unreffing
+
+ * src/ring.c: Debug when rows get freed.
+ * src/vte.c: Maybe-release pango contexts after unreffing layouts which refer
+ to them. Decide on how we want to draw fonts before deciding which
+ fonts to draw, to avoid spurious font loading. Remove output tags when
+ the output tag's callback is about to return FALSE.
+
+ ChangeLog | 6 ++++++
+ src/ring.c | 23 ++++++++++++++++++++---
+ src/vte.c | 41 ++++++++++++++++++++++++++++++++---------
+ 3 files changed, 58 insertions(+), 12 deletions(-)
+
+commit a5eda7347f6d4e4b6fab41682f88d8590644fb26
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 20 16:00:11 2002 +0000
+
+ Don't leak the hintstyle and rgba settings. Patch from Arjan van de Ven.
+
+ * src/vte.c: Don't leak the hintstyle and rgba settings. Patch from Arjan van
+ de Ven. Free PangoX contexts when we're done with them because we get
+ a new one every time, spotted by Arjan van de Ven.
+
+ ChangeLog | 4 +++
+ src/vte.c | 83 ++++++++++++++++++++++++++++++++++++++++++------------------
+ 2 files changed, 62 insertions(+), 25 deletions(-)
+
+commit 6f7f5de82c2e11d8fbe1e496cd3cd5b2d04a0d2e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 20 04:47:32 2002 +0000
+
+ Load fonts just-in-time to avoid spurious reloads. Don't override the
+
+ * src/vte.c: Load fonts just-in-time to avoid spurious reloads. Don't override
+ the focus_in and focus_out event handlers -- the defaults DTRT.
+ * src/debug.c, src/debug.h: Add a RING debug class.
+ * src/iso2022.c: Handle override maps which don't affect the font palette
+ correctly, resetting at newlines and escape marks. Process bogon data
+ correctly.
+ * src/iso2022.txt: Add some sample text.
+ * src/vte.c: Fixup some fontconfig/Xft mixups. Set the hint style instead of
+ hinting when reading the GTK hint style setting (spotted by katzj and
+ otaylor).
+
+ ChangeLog | 12 +-
+ po/da.po | 42 ++--
+ po/de.po | 62 +++---
+ po/fr.po | 47 ++--
+ po/nl.po | 64 +++---
+ po/sv.po | 42 ++--
+ src/debug.c | 3 +
+ src/debug.h | 1 +
+ src/interpret.c | 9 +
+ src/iso2022.c | 73 +++++-
+ src/iso2022.txt | 6 +
+ src/ring.c | 10 +-
+ src/vte.c | 733 +++++++++++++++++++++++++++++++------------------------
+ vte.spec | 7 +-
+ 14 files changed, 647 insertions(+), 464 deletions(-)
+
+commit 56a7bbf39468f9263a52fdda5e330a61bbdf5810
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 19 23:30:35 2002 +0000
+
+ Add sample iso-2002 escaped text.
+
+ src/iso2022.txt | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 45ccd9df232a04ddb126a897179966c03a5381f7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 19 23:01:28 2002 +0000
+
+ Fixup some fontconfig/Xft mixups. Set the hint style instead of hinting
+
+ * src/vte.c: Fixup some fontconfig/Xft mixups. Set the hint style instead of
+ hinting when reading the GTK hint style setting.
+
+ ChangeLog | 3 +++
+ src/vte.c | 31 ++++++++++++-------------------
+ 2 files changed, 15 insertions(+), 19 deletions(-)
+
+commit 2e6daaef02f271e7f84deb7fd269c2642f16834a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 19 22:33:21 2002 +0000
+
+ Use gssize instead of ssize_t. Perform substitutions while processing. Use
+
+ * src/vte.h, src/vte.c: Use gssize instead of ssize_t. Perform substitutions
+ while processing. Use PangoX contexts when we're using the PangoX
+ fontmap and when doing PangoX rendering.
+
+ ChangeLog | 5 ++
+ src/vte.c | 201 +++++++++++++++++++++++--------------------------------------
+ src/vte.h | 9 ++-
+ 3 files changed, 86 insertions(+), 129 deletions(-)
+
+commit 5b5257d4e61579590a0523d37f965dc55d6ec8c1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 19 22:27:33 2002 +0000
+
+ Add. Use unitables. Remove sequences for designating character sets.
+
+ * src/mkunitables.sh,src/unitable.*: Add.
+ * src/iso2022.c, src/iso2022.h: Use unitables.
+ * src/caps.c: Remove sequences for designating character sets. Switch to using
+ a second passed-in buffer for storing results in case the caller doesn't
+ want substitutions done in-place.
+ * src/interpret.c: Perform substitution.
+ * src/table.c, src/table.h: Use gssize instead of ssize_t.
+ * src/termcap.c, src/termcap.h: Use gssize instead of ssize_t.
+ * src/utf8echo.c: Use strtol, allowing users to specify code points in hex
+ format.
+
+ ChangeLog | 11 +
+ src/Makefile.am | 26 +-
+ src/caps.c | 19 +-
+ src/debug.c | 3 +
+ src/debug.h | 1 +
+ src/interpret.c | 62 +-
+ src/iso2022.c | 370 +-
+ src/iso2022.h | 3 +-
+ src/mkunitables.sh | 39 +
+ src/table.c | 20 +-
+ src/table.h | 4 +-
+ src/termcap.c | 32 +-
+ src/termcap.h | 4 +-
+ src/unitable.CNS11643 |17712 +++++++++++++++++++++++++++++++++++++++++++++++++
+ src/unitable.GB12345 | 7549 +++++++++++++++++++++
+ src/unitable.GB2312 | 7446 +++++++++++++++++++++
+ src/unitable.JIS0201 | 66 +
+ src/unitable.JIS0208 | 6879 +++++++++++++++++++
+ src/unitable.JIS0212 | 6068 +++++++++++++++++
+ src/unitable.KSC5601 |17047 +++++++++++++++++++++++++++++++++++++++++++++++
+ src/utf8echo.c | 4 +-
+ 21 files changed, 63206 insertions(+), 159 deletions(-)
+
+commit 8deab9f56af18d549ac438fe839e9da058e96bd6
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 19 16:41:50 2002 +0000
+
+ Rename vte.py to vte-demo.py, so that having . in your PYTHONPATH doesn't
+ do odd things if you run the script from the build directory (when it's also
+ the source directory).
+
+ python/{vte.py => vte-demo.py} | 0
+ 1 files changed, 0 insertions(+), 0 deletions(-)
+
+commit ee05b8f8a7bbb426af0101c37489c7246243570e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 15 07:16:50 2002 +0000
+
+ Add.
+
+ src/iso2022.c | 679 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/iso2022.h | 38 ++++
+ 2 files changed, 717 insertions(+), 0 deletions(-)
+
+commit 46238f7fd50c4fc272f1ca5a8b5ae0aa3f7799b0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 14 19:39:36 2002 +0000
+
+ repaint the entire window to ensure that any overdraw area we're not
+
+ * src/vte.c(vte_terminal_configure_toplevel): repaint the entire window to
+ ensure that any overdraw area we're not paying attention to at least
+ gets cleared to the background.
+ * src/vte.c(vte_terminal_locale_encoding): don't try to second-guess the local
+ encoding, just use the current charset as returned by g_get_charset().
+
+ ChangeLog | 7 +++++++
+ src/vte.c | 14 ++++++++------
+ src/vteapp.c | 24 ++++++++++++++++--------
+ 3 files changed, 31 insertions(+), 14 deletions(-)
+
+commit d50f85c7bacde3d3e8091b74c56ba2281cd1e522
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 14 06:10:19 2002 +0000
+
+ drop pending incoming data on reset. give reprocessing of pending input
+
+ * src/vte.c(vte_terminal_reset): drop pending incoming data on reset.
+ * src/vte.c: give reprocessing of pending input data a higher priority than
+ reading it from the child to prevent backlogs on corrupt or invalid
+ multibyte data from building up and whacking us exponentially.
+ * src/vte.c(vte_sequence_handler_delete_lines): initialize lines added to the
+ current default colors. Spotted by jrb.
+ * src/vte.c(vte_terminal_set_font): don't try to pick up GTK Xft settings
+ unless we're using FontConfig. Patch from otaylor.
+
+ ChangeLog | 18 +++++++++---
+ src/vte.c | 89 ++++++++++++++++++++++++++++++++++++++++++------------------
+ vte.spec | 7 ++++-
+ 3 files changed, 82 insertions(+), 32 deletions(-)
+
+commit fa7e15acc03629c166d9bbde7c26a13e7f274274
+Author: Ole Laursen <olau hardworking dk>
+Date: Tue Aug 13 20:12:42 2002 +0000
+
+ Updated Danish translation.
+
+ 2002-08-13 Ole Laursen <olau hardworking dk>
+
+ * da.po: Updated Danish translation.
+
+ po/ChangeLog | 6 ++++-
+ po/da.po | 63 ++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 38 insertions(+), 31 deletions(-)
+
+commit 1bf3640ee49d932e61c3cabf07a8939114eb4894
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 13 01:49:50 2002 +0000
+
+ reorder set/reset processing for decset so that 1049 properly represents
+
+ * src/vte.c: reorder set/reset processing for decset so that 1049 properly
+ represents the combination of 1047 and 1048 (#90027).
+
+ ChangeLog | 3 +++
+ src/vte.c | 19 ++++++-------------
+ 2 files changed, 9 insertions(+), 13 deletions(-)
+
+commit 8dcb63c6368e86bebcb473b05ea9f34bf7e82718
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 12 19:49:03 2002 +0000
+
+ - don't include datadir files more than once
+
+ vte.spec | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit 8be06f70f84252834036e36359f13d7929f537bc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 12 19:44:36 2002 +0000
+
+ properly escape a command sequence with an embedded '%'.
+
+ * src/caps.c: properly escape a command sequence with an embedded '%'.
+
+ ChangeLog | 2 ++
+ src/caps.c | 4 ++--
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+commit deba2150f9794e8e3a46c468056d23ef377665d0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 12 19:10:41 2002 +0000
+
+ add de and nl translations to ALL_LINGUAS
+
+ * configure.in: add de and nl translations to ALL_LINGUAS
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 5e783f93a81306b846a08da191d0eff880b04a0c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 12 19:01:03 2002 +0000
+
+ 0.7.3
+
+ vte.spec | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+commit a07607f8965d4d146d1397233d6eb64eca544dd4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 12 16:13:18 2002 +0000
+
+ change Xft-related defaults match whichever version of GTK we were built
+
+ * src/vte.c: change Xft-related defaults match whichever version of GTK
+ we were built with (hopefully).
+
+ ChangeLog | 3 +++
+ src/vte.c | 6 ++++++
+ 2 files changed, 9 insertions(+), 0 deletions(-)
+
+commit ff497e30907c63e0b1073d569e690478353eb876
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Aug 12 14:40:20 2002 +0000
+
+ don't bother with cursor blinking or freezing/thawing updates when the
+
+ * src/vte.c: don't bother with cursor blinking or freezing/thawing
+ updates when the widget isn't realized. Patch from Gustavo Giráldez.
+
+ ChangeLog | 3 +++
+ src/vte.c | 47 ++++++++++++++++++++++++++++-------------------
+ 2 files changed, 31 insertions(+), 19 deletions(-)
+
+commit ad25c2e2013a56a29db023da0906e1728c7d01db
+Author: Vincent van Adrighem <adrighem src gnome org>
+Date: Fri Aug 9 08:15:08 2002 +0000
+
+ 2002-08-09 Vincent van Adrighem <V vanAdrighem dirck mine nu)
+
+ * nl.po: Dutch translation updated by Taco Witte.
+
+ po/ChangeLog | 4 ++
+ po/nl.po | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 126 insertions(+), 0 deletions(-)
+
+commit e4a0ce1ded5bb31a59fa6b5718d84b8be7432365
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 8 18:42:26 2002 +0000
+
+ take extra steps to make sure that the cursor doesn't go back into
+
+ * src/vte.c: take extra steps to make sure that the cursor doesn't go back into
+ negative scrollback space.
+
+ ChangeLog | 3 +++
+ src/vte.c | 32 ++++++++++++++++++++------------
+ 2 files changed, 23 insertions(+), 12 deletions(-)
+
+commit d094196b7dc5fdc59328b546fd02f8be19cfe2a9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 8 05:38:35 2002 +0000
+
+ rewrite.
+
+ * src/vte.c(vte_terminal_invalidate_all): rewrite.
+
+ ChangeLog | 2 ++
+ src/vte.c | 11 ++++++++---
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+commit 71d5d3b968eb61c1b26765fe64bc7abac5915ced
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 8 05:04:12 2002 +0000
+
+ fill in the background color when drawing the cursor, even if it's going
+
+ * src/vte.c(vte_terminal_paint,vte_terminal_draw_cells): fill in the background
+ color when drawing the cursor, even if it's going to end up as the
+ default background color, spotted by Peter Jones. Draw the cursor
+ correctly if it's over a graphic character.
+
+ ChangeLog | 5 ++
+ src/Makefile.am | 2 +-
+ src/vte.c | 156 +++++++++++++++++++++++++++++--------------------------
+ vte.spec | 8 +++-
+ 4 files changed, 96 insertions(+), 75 deletions(-)
+
+commit 0429b16180b0a2b79ce627cf146f8ce5c47d0a07
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 8 04:25:58 2002 +0000
+
+ once again, avoid drawing NULs. add a small pad to each edge (#89048).
+
+ * src/vte.c(vte_terminal_draw_cells): once again, avoid drawing NULs.
+ * src/vte.c: add a small pad to each edge (#89048).
+ * src/vteapp.c: handle widget padding.
+
+ ChangeLog | 4 +
+ src/vte.c | 235 ++++++++++++++++++++++++++++++++++++---------------------
+ src/vte.h | 3 +
+ src/vteapp.c | 6 +-
+ 4 files changed, 160 insertions(+), 88 deletions(-)
+
+commit 50bedfd42a309eb61165d190ef954df994eeeb6b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 8 02:32:46 2002 +0000
+
+ Whoops, remove that debug g_print().
+
+ * src/vte.c: Whoops, remove that debug g_print().
+
+ src/vte.c | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit 2b6cff9bfeb5ab13cc519abc45a15d9ad58948c0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 8 02:26:11 2002 +0000
+
+ look for $pkgdatadir/termcap/$TERM first, as the widget does, before
+
+ * src/interpret.c: look for $pkgdatadir/termcap/$TERM first, as the widget does,
+ before consulting /etc/termcap.
+ * src/ring.c(vte_ring_free): check for a non-NULL removal function before
+ calling it.
+ * src/vte.c(vte_terminal_key_press): add an option for doing VT220-style or
+ Sun/PC-style modified function keys. Default to VT220 for now, though.
+ * src/vte.c(vte_terminal_reset): scroll to the bottom when resetting.
+
+ ChangeLog | 9 ++
+ src/interpret.c | 6 +-
+ src/ring.c | 6 +-
+ src/vte.c | 231 +++++++++++++++++++++++++-----------------------------
+ 4 files changed, 125 insertions(+), 127 deletions(-)
+
+commit 28daed11380ea2fd7bfea19daefd4a7486bf480f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 7 23:42:04 2002 +0000
+
+ don't trust XftDrawString32() to advance linearly for monospaced fonts
+
+ * src/vte.c(vte_terminal_draw_cells): don't trust XftDrawString32() to advance
+ linearly for monospaced fonts (#90164).
+
+ ChangeLog | 5 +++++
+ src/vte.c | 50 +++++++++++++++++++++-----------------------------
+ 2 files changed, 26 insertions(+), 29 deletions(-)
+
+commit 4babeea772593a77fd3da3195fd49aab6c4a2717
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 7 23:15:26 2002 +0000
+
+ reset the default setting as well (#89506).
+
+ * src/vte.c(vte_terminal_reset): reset the default setting as well (#89506).
+
+ ChangeLog | 3 +
+ autogen.sh | 1 +
+ src/vte.c | 138 +++++++++++++++++++++++++++++------------------------------
+ 3 files changed, 72 insertions(+), 70 deletions(-)
+
+commit e52fea3e78a2edcf702d7655c8b5dfaaa463ae62
+Author: Christian Rose <menthos menthos com>
+Date: Wed Aug 7 18:44:27 2002 +0000
+
+ Updated Swedish translation.
+
+ 2002-08-07 Christian Rose <menthos menthos com>
+
+ * sv.po: Updated Swedish translation.
+
+ po/ChangeLog | 4 ++++
+ po/sv.po | 50 ++++++++++++++++++++++++--------------------------
+ 2 files changed, 28 insertions(+), 26 deletions(-)
+
+commit 274232721384b737aef142dfe9ff944c1eed3a21
+Author: Christian Neumair <cneumair src gnome org>
+Date: Wed Aug 7 17:56:07 2002 +0000
+
+ Updated German translation.
+
+ po/ChangeLog | 4 ++
+ po/de.po | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 128 insertions(+), 0 deletions(-)
+
+commit 47c61f40fe4a943a0d6ed9f907046969179a2d28
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Aug 7 16:49:37 2002 +0000
+
+ perform Xft remapping for Xft1, switch back to PangoX.
+
+ * src/vte.c(vte_terminal_draw_cells): perform Xft remapping for Xft1, switch
+ back to PangoX.
+
+ ChangeLog | 3 +++
+ src/vte.c | 33 ++++++++++++++++++++++++++++++---
+ 2 files changed, 33 insertions(+), 3 deletions(-)
+
+commit 0501b07d2d288846a0e2d3c77304187cda3680e0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Aug 6 23:24:35 2002 +0000
+
+ use g_get_charset() instead of nl_langinfo() to determine the default
+
+ * src/vte.c(vte_terminal_set_encoding, vte_sequence_handler_local_charset): use
+ g_get_charset() instead of nl_langinfo() to determine the default
+ codeset, and to check if it's UTF-8. Patch from Hidetoshi Tajima.
+ * src/vte.c(vte_terminal_set_encoding): don't leak conversion descriptors when
+ changing the encoding fails. Patch from Hidetoshi Tajima.
+ * src/vte.c(vte_terminal_send): don't read past the converted string when
+ performing paste substitutions.
+ * src/vte.c: rework the straight-Pango rendering routines to call normal Pango
+ instead of PangoX.
+ * src/vte.c(vte_terminal_ensure_cursor): speed up the "add many cells" case a
+ bit.
+ * src/vte.c(vte_cell_is_between): sort the two endpoints correctly and provide
+ a boolean to control whether or not the endpoint is "in".
+ * src/vte.c(vte_cell_draw_rows): check if a cell is selected using the right
+ indicator.
+ * src/vte.c(vte_terminal_get_text): when adding a newline to the end of a
+ returned line, don't show it as being in the rightmost column.
+ * src/vte.c(xlfd_from_pango_font_description): turn the DPI, pixel size, and
+ dded info into wildcards.
+ * src/vte.c(vte_terminal_draw_cells): go back to drawing individual cells when
+ using Xlib.
+ * src/vte.c: Compute right-side padding as well as left.
+ * src/vte.c(vte_terminal_init): disable use of PangoX by default.
+ * src/vteapp.c: add -D to add the same patterns profterm does to test dingus
+ hiliting.
+
+ ChangeLog | 30 +++
+ src/vte.c | 560 +++++++++++++++++++++++++++++++++++++++-------------------
+ src/vteapp.c | 15 ++-
+ vte.spec | 7 +-
+ 4 files changed, 430 insertions(+), 182 deletions(-)
+
+commit 88d01cc079642750cb2d915e1c8b38b122641c2d
+Author: Havoc Pennington <hp redhat com>
+Date: Sat Aug 3 18:00:32 2002 +0000
+
+ add a gdk_flush() before the error trap pop, just for paranoia, may help
+
+ 2002-08-03 Havoc Pennington <hp redhat com>
+
+ * src/vte.c (vte_terminal_setup_background): add a gdk_flush()
+ before the error trap pop, just for paranoia, may help with
+ #89049
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 1 +
+ 2 files changed, 7 insertions(+), 0 deletions(-)
+
+commit a062c6306732e1cfc034c0c49f416b09b93d63d0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Aug 2 15:17:03 2002 +0000
+
+ Substitute carriage returns for newlines when pasting text to the child,
+
+ * src/vte.c(vte_terminal_send): Substitute carriage returns for newlines when
+ pasting text to the child, fixing weird paste behavior in pico and
+ friends.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 14 ++++++++++----
+ 2 files changed, 15 insertions(+), 4 deletions(-)
+
+commit 3c26a0db3b52f5b9075eb9fb9c2a8c953164e0fd
+Author: Christian Rose <menthos menthos com>
+Date: Fri Aug 2 13:53:12 2002 +0000
+
+ Updated Swedish translation.
+
+ 2002-08-02 Christian Rose <menthos menthos com>
+
+ * sv.po: Updated Swedish translation.
+
+ po/ChangeLog | 4 ++++
+ po/sv.po | 58 +++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 35 insertions(+), 27 deletions(-)
+
+commit 8997158626f6e835d63be7c9cb901031f31f9b7b
+Author: Christophe Merlet <redfox src gnome org>
+Date: Fri Aug 2 10:31:18 2002 +0000
+
+ Added French translation.
+
+ ChangeLog | 4 ++
+ configure.in | 2 +-
+ po/ChangeLog | 5 ++
+ po/fr.po | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 138 insertions(+), 1 deletions(-)
+
+commit fa5cb989de684be220fe2363f6be7ab45675d3ae
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 1 22:05:01 2002 +0000
+
+ Expose vte_pty_set_size() and get_size() to localize terminal ioctl usage.
+
+ * src/pty.c, src/pty.h: Expose vte_pty_set_size() and get_size() to localize
+ terminal ioctl usage.
+ * src/ring.c(vte_ring_validate): Don't repeatedly compute the same value when
+ we know it won't change.
+ * src/vte.c(vte_wc_from_unichar): Implement for the non-STDC_ISO_10646 case,
+ heavily based on patch from Hidetoshi Tajima.
+ * src/vte.c(vte_terminal_ensure_cursor): Don't initialize the local data unless
+ we have to.
+ * src/vte.c(vte_terminal_process_incoming): Don't insert NUL characters into
+ the display, matching behavior of xterm.
+ * src/vte.c: Clean up use of various G_PRIORITY values throughout to allow for
+ simpler tuning. Rewrite rendering code to use per-paint PangoLayouts
+ when they're needed, use Xft2's DrawCharSpec function when available,
+ and to cut down on X requests. Don't paint on expose events if the
+ window isn't realized, drawable, and at least partially visible. Don't
+ deselect previous selection when the user clicks unless there's also a
+ drag first.
+
+ ChangeLog | 18 +
+ src/pty.c | 25 +-
+ src/pty.h | 5 +
+ src/ring.c | 5 +-
+ src/vte.c | 2565 ++++++++++++++++++++++++++++++++----------------------------
+ vte.spec | 5 +-
+ 6 files changed, 1403 insertions(+), 1220 deletions(-)
+
+commit 8515801d31a4279150f085ab2f22a7b177fa474e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Aug 1 00:03:17 2002 +0000
+
+ Include <termios.h> if available, per patch from Hidetoshi Tajima. Include
+
+ * src/pty.c: Include <termios.h> if available, per patch from Hidetoshi Tajima.
+ * src/trie.c: Include missing <wchar.h>, spotted by Hidetoshi Tajima.
+
+ ChangeLog | 3 +++
+ configure.in | 1 +
+ src/pty.c | 3 +++
+ src/trie.c | 1 +
+ 4 files changed, 8 insertions(+), 0 deletions(-)
+
+commit 94d562a1102ac1ecf9a6b23f16eeac725e1c3f63
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jul 31 16:22:57 2002 +0000
+
+ Initialize new lines created in insert_lines() to the current default
+
+ * src/vte.c: Initialize new lines created in insert_lines() to the current
+ default attributes like al() does.
+
+ ChangeLog | 3 +++
+ src/vte.c | 7 +++++++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+commit a6643f3a78377bb48391fea80ed287b6a75bc318
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jul 30 23:02:49 2002 +0000
+
+ Fix autoconf quoting error.
+
+ * configure.in: Fix autoconf quoting error.
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 1c098e1d6c0f0d3452e0a4c184fb0f6c5a10e2e0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jul 30 23:00:34 2002 +0000
+
+ Check for wint_t and attempt to allow compiles even when wint_t isn't
+
+ * configure.in: Check for wint_t and attempt to allow compiles even when wint_t
+ isn't defined (this type is used only debug code, so it shouldn't break
+ anything).
+ * src/caps.c: Remove "te" and "ti", which are logical, in the same way "so" is,
+ from the known capabilities lists. Add a "is a key" field to the
+ termcap list so that we don't match against keystrokes in case they're
+ also control sequences.
+ * src/interpret.c: Use tables instead of tries. Don't add key sequences to the
+ table.
+ * src/pty.c: Fix incorrect invocation in sample.
+ * src/reaper.c: Include stdlib.h to quiet compiler warning.
+ * src/trie.c, src/trie.h: Remove the unused precomputing routines.
+ * src/utf8echo.c: Switch to link with tables instead of tries.
+ * src/vte.c: Switch to using tables instead of tries. Don't add key sequences
+ to the table. Map cursor-backward to LE instead of le, which handles
+ parameters right. Tune updates so that they occur less often when we're
+ processing large amounts of data from the child. Add a
+ 'status-line-changed' signal. Implement fs() and fix ts(). Add
+ ::get_status_line() to get the contents of the status line. Obey it()
+ when setting default tabstops. Implement cursor_next_line(),
+ cursor_lower_left(), cursor_preceding_line(),
+ cursor_horizontal_and_vertical_position(), erase_characters(), and
+ insert_blank_characters(). Implement nw().
+
+ ChangeLog | 25 +++
+ README | 10 +-
+ configure.in | 1 +
+ po/da.po | 44 ++--
+ po/sv.po | 44 ++--
+ src/Makefile.am | 26 ++-
+ src/caps.c | 608 +++++++++++++++++++++++++++---------------------------
+ src/caps.h | 1 +
+ src/interpret.c | 27 ++-
+ src/pty.c | 2 +-
+ src/reaper.c | 1 +
+ src/table.c | 77 ++++----
+ src/termcap.c | 2 +
+ src/trie.c | 209 +------------------
+ src/trie.h | 3 -
+ src/utf8echo.c | 6 +-
+ src/vte.c | 446 ++++++++++++++++++++++++-----------------
+ src/vte.h | 5 +-
+ src/vteapp.c | 11 +
+ vte.spec | 6 +-
+ 20 files changed, 750 insertions(+), 804 deletions(-)
+
+commit 9ed6314b69c822030886b9fd004dd1f88a1fec2c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jul 30 21:57:24 2002 +0000
+
+ Comment out "ti" and "te" which are always going to be logical.
+
+ * src/caps.c: Comment out "ti" and "te" which are always going to be logical.
+
+ src/caps.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit a88625362c7f887bfd0026d96fef316050663c91
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jul 30 20:34:08 2002 +0000
+
+ Add files.
+
+ src/table.c | 880 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/table.h | 51 ++++
+ 2 files changed, 931 insertions(+), 0 deletions(-)
+
+commit c9d46969abaca4451316d0f6b7b9661d454ebe79
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jul 26 18:23:02 2002 +0000
+
+ Initialize new lines added for al(). Spotted by jrb.
+
+ * src/vte.c: Initialize new lines added for al(). Spotted by jrb.
+
+ ChangeLog | 3 +++
+ src/vte.c | 7 +++++++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+commit 4c9c1d1db8bcc68a4afc4f90473a8c2bd86a3fcb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jul 25 21:57:16 2002 +0000
+
+ 0.5.4
+
+ po/da.po | 14 ++++++++++----
+ po/sv.po | 38 +++++++++++++++++++-------------------
+ vte.spec | 5 ++++-
+ 3 files changed, 33 insertions(+), 24 deletions(-)
+
+commit ac8c5b077106d89d4923e1ccabccafe695ede2da
+Author: Ole Laursen <olau hardworking dk>
+Date: Thu Jul 25 21:36:40 2002 +0000
+
+ Added Danish translation.
+
+ 2002-07-25 Ole Laursen <olau hardworking dk>
+
+ * da.po: Added Danish translation.
+
+ po/ChangeLog | 4 ++
+ po/da.po | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 120 insertions(+), 0 deletions(-)
+
+commit 9f2e73d1c66faac5ba4cbbc3cc944c15333572a5
+Author: Ole Laursen <olau hardworking dk>
+Date: Thu Jul 25 21:34:48 2002 +0000
+
+ Added Danish translation.
+
+ 2002-07-25 Ole Laursen <olau hardworking dk>
+
+ * configure.in: Added Danish translation.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+commit dc51766bfb6b87a516e01f0bd6e62c5156ee376a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jul 25 20:00:29 2002 +0000
+
+ Note that bold isn't broken any more. Note that k; was added. Set the
+
+ * README: Note that bold isn't broken any more.
+ * termcaps/xterm: Note that k; was added.
+ * src/pty.c: Set the proper number of columns in the initial window size.
+ * src/ring.h: Change macro argument names to hopefully not step on application
+ code.
+ * src/vte.c: Set the terminal size to the default size as specified in termcap
+ at init-time.
+
+ ChangeLog | 8 ++++++++
+ README | 2 --
+ src/pty.c | 2 +-
+ src/ring.h | 27 ++++++++++++++-------------
+ src/vte.c | 3 +++
+ termcaps/xterm | 2 +-
+ 6 files changed, 27 insertions(+), 17 deletions(-)
+
+commit 9ef0f51ac6364aed4176f3d5f3843ab76c3e113f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jul 24 15:27:00 2002 +0000
+
+ Add private vte_pty_set_size() function. vte_pty_open() takes size
+
+ * src/pty.c: Add private vte_pty_set_size() function.
+ * src/pty.c, src/pty.h: vte_pty_open() takes size arguments now.
+ * src/vte.c: Open the PTY with the proper initial size.
+
+ ChangeLog | 4 ++++
+ po/sv.po | 40 ++++++++++++++++++++--------------------
+ src/Makefile.am | 2 +-
+ src/pty.c | 31 ++++++++++++++++++++++++++-----
+ src/pty.h | 3 ++-
+ src/vte.c | 8 +++++---
+ src/vteapp.c | 4 ++--
+ vte.spec | 5 ++++-
+ 8 files changed, 64 insertions(+), 33 deletions(-)
+
+commit b8d3e0c105c1b8031e4d1606f2d9cac34b97ec3d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jul 23 18:30:52 2002 +0000
+
+ 0.5.2
+
+ vte.spec | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 8989077a33ada41fc2ee1fa65933abd2846993e0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jul 23 17:57:09 2002 +0000
+
+ Expose the ring implementation and convert several simple functions into
+
+ * src/ring.c, ring.h: Expose the ring implementation and convert several simple
+ functions into macros.
+ * src/vteapp.c: Pass all long options on to gtk_init().
+
+ ChangeLog | 4 ++++
+ src/ring.c | 50 --------------------------------------------------
+ src/ring.h | 27 +++++++++++++++++++++------
+ src/vte.c | 45 ++++++++++++++++++++++++++-------------------
+ src/vteapp.c | 21 +++++++++++++++++++++
+ 5 files changed, 72 insertions(+), 75 deletions(-)
+
+commit e05ee559ce99030e3543eafe17bb86c81827adfb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jul 23 13:24:46 2002 +0000
+
+ Fix realize/unrealize to be properly reversible. Use the font from the
+
+ * src/vte.c: Fix realize/unrealize to be properly reversible. Use the font
+ from the default style unless we're explicitly given one.
+ * src/vteapp.c: Don't set base size or minimum size geometry hints when sizing
+ the terminal widget.
+
+ ChangeLog | 5 +
+ src/vte.c | 912 ++++++++++++++++++++++++++++++++++------------------------
+ src/vte.h | 2 +
+ src/vteapp.c | 25 +--
+ 4 files changed, 550 insertions(+), 394 deletions(-)
+
+commit e77a62018d612944fe85711ca0bdb9f19d4d3c60
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jul 22 13:27:09 2002 +0000
+
+ Fix an incorrect logic check.
+
+ * src/pty.c(vte_pty_ptsname): Fix an incorrect logic check.
+
+ ChangeLog | 2 ++
+ src/pty.c | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 78db653b1de723f72c79de964dd259a0e4023910
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jul 19 15:58:21 2002 +0000
+
+ If we're changing the background color, apply it to the widget's window as
+
+ * src/vte.c(vte_terminal_set_color_internal): If we're changing the background
+ color, apply it to the widget's window as well, spotted by msw.
+
+ ChangeLog | 3 +++
+ src/vte.c | 19 ++++++++++++-------
+ 2 files changed, 15 insertions(+), 7 deletions(-)
+
+commit 527d415541a35302cd74d458564915a4eb0b1542
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jul 19 05:48:29 2002 +0000
+
+ Undo the scrolling changes -- there too many combinations of circumstances
+
+ * src/vte.c: Undo the scrolling changes -- there too many combinations of
+ circumstances that cause them to not work right.
+
+ ChangeLog | 3 +
+ src/interpret.c | 13 ++++++
+ src/vte.c | 124 ++++++++++++++++++++++++++-----------------------------
+ src/vteapp.c | 10 ++++-
+ 4 files changed, 82 insertions(+), 68 deletions(-)
+
+commit 4107683a49d46a88752c889b24148387554a50b8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jul 19 03:00:29 2002 +0000
+
+ Fudge the repaint line count by one when scrolling regions to ensure that
+
+ * src/vte.c: Fudge the repaint line count by one when scrolling regions to
+ ensure that the old cursor gets repainted. Calculate the area which
+ needs to be repainted when reverse-scrolling correctly.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 13 ++++++++++---
+ vte.spec | 11 ++++++++++-
+ 3 files changed, 24 insertions(+), 4 deletions(-)
+
+commit c7b0c2bbdb11ea8364829a6a7e0e1c4b0749c4cc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jul 18 23:47:35 2002 +0000
+
+ Implement enough of set-mode and reset-mode to allow toggling of insert
+
+ * src/vte.c: Implement enough of set-mode and reset-mode to allow toggling
+ of insert mode using this sequence. Move all scrolling into
+ vte_terminal_scroll_region and use gdk_draw_drawable to avoid
+ repainting from scratch whenever possible.
+
+ ChangeLog | 5 +
+ src/vte.c | 333 +++++++++++++++++++++++++++++++++++++++----------------------
+ vte.spec | 6 +
+ 3 files changed, 224 insertions(+), 120 deletions(-)
+
+commit dfad7e70fef9221c09360fab72998d16f3d23670
+Author: Christian Rose <menthos menthos com>
+Date: Thu Jul 18 17:02:42 2002 +0000
+
+ Updated Swedish translation.
+
+ 2002-07-18 Christian Rose <menthos menthos com>
+
+ * sv.po: Updated Swedish translation.
+
+ po/ChangeLog | 4 ++++
+ po/sv.po | 36 ++++++++++++++++++------------------
+ 2 files changed, 22 insertions(+), 18 deletions(-)
+
+commit cf55403688da83b34f8eb5a7f5b326fd0a7e28ee
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jul 18 03:43:18 2002 +0000
+
+ Actually set ALL_LINGUAS so translations get installed. Document the
+
+ * configure.in: Actually set ALL_LINGUAS so translations get installed.
+ * README: Document the weirdness that is cursor movement around wide characters.
+ * src/vte.defs: Bind set_color_bold().
+ * src/debug.c: Suppress warnings when $VTE_DEBUG_FLAGS isn't set.
+ * src/pty.c, src/reaper.c, src/termcap.c, src/trie.c: Provide for debug messages
+ in the test program.
+ * src/interpret.c, src/trie.c: Use libc stdio instead of g_print for printing
+ what might be part of a multibyte sequence because g_print checks for
+ validity.
+ * src/interpret.c, src/trie.c, src/utf8echo.c, src/vte.c: Use gunichar instead
+ of wchar_t in places where a gunichar is expected. Provide a means for
+ converting from wchar_t to gunichar for the sake of X11 calls which want
+ a wchar_t.
+ * src/trie.c: Provide vte_trie_wide_encoding() for finding a giconv target
+ which is hopefully compatible with gunichar. Likewise provide
+ vte_trie_narrow_encoding() to find one compatible with iso-8859-1.
+ * src/vte.c: Fall back to ISO-8859-1 if we can't set things up for the current
+ locale encoding at startup time. Fall back to the current encoding if
+ we can't perform a given dynamic switch.
+
+ ChangeLog | 21 ++++
+ README | 21 +++-
+ configure.in | 1 +
+ po/sv.po | 48 ++++----
+ python/vte.defs | 9 ++
+ src/Makefile.am | 7 +-
+ src/debug.c | 2 +-
+ src/interpret.c | 36 +++---
+ src/pty.c | 1 +
+ src/reaper.c | 2 +
+ src/termcap.c | 4 +-
+ src/trie.c | 349 +++++++++++++++++++++++++++++++++++++++----------------
+ src/trie.h | 12 ++-
+ src/utf8echo.c | 5 +-
+ src/vte.c | 210 ++++++++++++++++++++++-----------
+ src/vte.h | 1 -
+ vte.spec | 7 +-
+ 17 files changed, 509 insertions(+), 227 deletions(-)
+
+commit 623ee6d073c540bd02b2b4f4a9abb2ddf7b7637f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jul 17 03:34:54 2002 +0000
+
+ Set GETTEXT_PACKAGE correctly, noted by menthos.
+
+ * configure.in: Set GETTEXT_PACKAGE correctly, noted by menthos.
+
+ ChangeLog | 3 +++
+ configure.in | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 89cd4a38836d9b53d40a2bc7f9e7d118b5244c04
+Author: Christian Rose <menthos menthos com>
+Date: Tue Jul 16 23:37:18 2002 +0000
+
+ Updated Swedish translation.
+
+ 2002-07-17 Christian Rose <menthos menthos com>
+
+ * sv.po: Updated Swedish translation.
+
+ po/ChangeLog | 4 ++++
+ po/sv.po | 54 ++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 32 insertions(+), 26 deletions(-)
+
+commit 38d95c7257845a9eb875692a1f2caaf5e628630b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jul 16 19:31:16 2002 +0000
+
+ Guess at an appropriate bold version of the foreground color instead of
+
+ * src/vte.c (vte_terminal_set_colors): Guess at an appropriate bold version of
+ the foreground color instead of hard-coding in a default.
+ * src/vte.c, src/vte.h (vte_terminal_set_color_bold): Add.
+
+ ChangeLog | 5 ++++
+ src/Makefile.am | 2 +-
+ src/vte.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/vte.h | 4 ++-
+ src/vteapp.c | 4 +++
+ vte.spec | 1 +
+ 6 files changed, 74 insertions(+), 5 deletions(-)
+
+commit a84fc373e7868673715a4ef9ebec2165300cda16
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jul 16 15:33:15 2002 +0000
+
+ Correctly check for g_iconv_open() failure. Try to give a meaningful error
+
+ * src/trie.c: Correctly check for g_iconv_open() failure.
+ * src/vte.c (vte_terminal_set_encoding): Try to give a meaningful error when
+ g_iconv_open() fails, even though we're screwed.
+
+ ChangeLog | 7 +++++-
+ src/trie.c | 35 ++++++++++++++---------------
+ src/utf8echo.c | 2 +-
+ src/vte.c | 65 ++++++++++++++++++++++++++++++++++++++++---------------
+ vte.spec | 8 ++++++-
+ 5 files changed, 78 insertions(+), 39 deletions(-)
+
+commit 4542e59d27fd956648894e5b4165a1a0112f8ecc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jul 15 18:16:32 2002 +0000
+
+ wrap the new Xft/fontconfig-specific code in HAVE_XFT Revert some changes
+
+ * src/vte.c: wrap the new Xft/fontconfig-specific code in HAVE_XFT
+ * src/vte.c: Revert some changes in how new cells were initialized, removing
+ various cosmetic problems.
+ * src/vte.c (vte_terminal_process_incoming): Discard the proper number of
+ characters when we don't recognize a sequence, previously we left one
+ byte that should have been removed.
+
+ ChangeLog | 9 ++++++-
+ src/Makefile.am | 2 +-
+ src/vte.c | 65 ++++++++++++++++++++++++++++++++----------------------
+ vte.spec | 7 +++++-
+ 4 files changed, 53 insertions(+), 30 deletions(-)
+
+commit e4cfa8d65673f808fcef56150a05e04f1cfd2fdf
+Author: Havoc Pennington <hp pobox com>
+Date: Sun Jul 14 19:52:17 2002 +0000
+
+ decrement spaces as we go through the loop, it was nice and infinite.
+
+ 2002-07-14 Havoc Pennington <hp pobox com>
+
+ * src/vte.c (vte_terminal_get_cursor_position): decrement spaces
+ as we go through the loop, it was nice and infinite.
+
+ ChangeLog | 5 +++++
+ src/vte.c | 1 +
+ 2 files changed, 6 insertions(+), 0 deletions(-)
+
+commit 8320edb7631fd570b69503def7ab2ce58b19df6c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Jul 13 04:40:58 2002 +0000
+
+ Add the proper number of attribute structs to the attribute array to fix
+
+ * src/vte.c (vte_terminal_get_text): Add the proper number of attribute structs
+ to the attribute array to fix crashes which occurred when the buffer
+ contains non-ASCII text (#67930).
+
+ ChangeLog | 4 ++++
+ src/vte.c | 18 +++++-------------
+ 2 files changed, 9 insertions(+), 13 deletions(-)
+
+commit f16781d565d6da399141797e0377e65abef04f51
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Jul 13 04:14:57 2002 +0000
+
+ Handle cases where FC_HINTING is enabled but FC_HINT_STYLE isn't. Not that
+
+ * src/vte.c: Handle cases where FC_HINTING is enabled but FC_HINT_STYLE isn't. Not that that makes any
sense, but there you go.
+
+ src/vte.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 23ec5d4ce4b38d19e9271463563fc94b587e5f93
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Jul 13 03:59:23 2002 +0000
+
+ Small optimization in the al() and dl() handlers. al() doesn't move the
+
+ * src/vte.c: Small optimization in the al() and dl() handlers. al() doesn't
+ move the cursor, per GNU termcap docs. Check for a pixbuf in the bgfx
+ check instead of pixmap, which was the wrong type.
+
+ ChangeLog | 4 ++++
+ src/slowcat.c | 3 ++-
+ src/vte.c | 20 ++++++++++----------
+ 3 files changed, 16 insertions(+), 11 deletions(-)
+
+commit a7b29e6c2d897a8ccf8feb4523a63c6690221228
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Jul 13 02:59:05 2002 +0000
+
+ Add.
+
+ src/slowcat.c | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 93 insertions(+), 0 deletions(-)
+
+commit 82c830263ff1212de3a22501eb65a036a352af83
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Jul 13 02:44:09 2002 +0000
+
+ Bail if GTK doesn't know about Xft-specific settings.
+
+ * src/vte.c (vte_default_substitute): Bail if GTK doesn't know about
+ Xft-specific settings.
+
+ src/vte.c | 15 +++++++++++----
+ 1 files changed, 11 insertions(+), 4 deletions(-)
+
+commit 842e9ac6cfbfcb3462b9a720e6c4a5a9e5d6eda9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Jul 13 02:07:58 2002 +0000
+
+ Add patch to heed Xft/fontconfig settings as kept by GTK. Based on patch
+
+ * src/vte.c: Add patch to heed Xft/fontconfig settings as kept by GTK. Based
+ on patch from otaylor.
+
+ ChangeLog | 3 +
+ src/vte.c | 199 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 188 insertions(+), 14 deletions(-)
+
+commit 65970d91a841eb7c895d1efaa36a734ffd811658
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Jul 13 00:21:25 2002 +0000
+
+ Added. Add -a/-b flags to control audible bell and blinking cursors. Only
+
+ * src/slowcat.c: Added.
+ * src/vteapp.c: Add -a/-b flags to control audible bell and blinking cursors.
+ Only send "pwd" as an initial command if there wasn't a command
+ specified on the command line. Add a simple help message.
+ * src/vte.c: Bind F13-F35 per termcap. Treat GDK_KP_Delete as GDK_Delete. Map
+ Ctrl+F1-F12 to F13-F24. Fix dc() to ensure that the rows stays full and
+ that newly-added cells get the default attributes. Fix cl() to clear
+ all rows on the screen with the default attributes (bce). Default to
+ using Xft if available for consistency with GTK.
+ * src/vte.c: Treat super, hyper, meta, and alt as modifiers when deciding to
+ scroll-on-keypress. Noted by jrb.
+ * src/vte.c: Always map \r and \n to cr and so, even when they're defined by
+ the termcap.
+ * src/vte.c, src/vte.h: Rework how default colors are set up, and add
+ vte_terminal_set_color_foreground and vte_terminal_set_color_background.
+ * src/vte.h: Remove includes for local headers which apps are not likely to
+ never use, cleaning up the namespace a little.
+ * python/vte.defs: Bind vte_terminal_set_color_{fore,back}ground.
+ * src/debug.h, src/ring.h: Use G_BEGIN_DECLS/G_END_DECLS.
+ * src/reaper.h: Use G_BEGIN_DECLS/G_END_DECLS in the right place.
+ * src/vteapp.c: Add -B/-T flags to set background images and transparency.
+
+ ChangeLog | 24 ++
+ python/vte.defs | 18 ++
+ src/Makefile.am | 8 +-
+ src/caps.h | 4 +-
+ src/debug.h | 4 +
+ src/reaper.h | 5 +-
+ src/ring.h | 4 +
+ src/vte.c | 706 +++++++++++++++++++++++++++++++++++++------------------
+ src/vte.h | 7 +-
+ src/vteapp.c | 45 +++-
+ vte.spec | 11 +-
+ 11 files changed, 585 insertions(+), 251 deletions(-)
+
+commit 2f766cdf80215a137c0ef0389b187e708dcbb822
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jul 2 20:09:26 2002 +0000
+
+ Make shift+button1 extend selection.
+
+ * src/vte.c: Make shift+button1 extend selection.
+
+ ChangeLog | 2 +
+ README | 3 +
+ src/vte.c | 238 +++++++++++++++++++++++++++++++++++++++++++------------------
+ vte.spec | 9 ++-
+ 4 files changed, 179 insertions(+), 73 deletions(-)
+
+commit 361aa5b13aea9c0e8b742ce8bacc038c6765aec6
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jul 1 23:19:53 2002 +0000
+
+ Fix memory leak when we get conversion errors.
+
+ * src/vte.c: Fix memory leak when we get conversion errors.
+
+ src/vte.c | 6 ++++++
+ vte.spec | 3 ++-
+ 2 files changed, 8 insertions(+), 1 deletions(-)
+
+commit a27006e993e3fb530809bf37bb1eeebc1ba891f8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jul 1 22:53:27 2002 +0000
+
+ Rework recovery from illegal sequence errors in the input stream to be
+
+ * src/vte.c: Rework recovery from illegal sequence errors in the input stream
+ to be much more aggressive.
+
+ ChangeLog | 2 ++
+ src/vte.c | 49 +++++++++++++------------------------------------
+ 2 files changed, 15 insertions(+), 36 deletions(-)
+
+commit e96906ab055262d9289a0f136bb240756bd42d37
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jul 1 22:35:47 2002 +0000
+
+ Get rid of more debug spew.
+
+ * src/vte.c: Get rid of more debug spew.
+
+ src/vte.c | 8 --------
+ 1 files changed, 0 insertions(+), 8 deletions(-)
+
+commit d957ab5de61c616dc6d45be9f2a697261e7243ae
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jul 1 22:26:51 2002 +0000
+
+ Remove some unnecessary debug spew.
+
+ * src/vte.c: Remove some unnecessary debug spew.
+
+ src/vte.c | 7 -------
+ 1 files changed, 0 insertions(+), 7 deletions(-)
+
+commit 82e863454f131b26949e57aeafee770a4c6e604e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jul 1 22:06:00 2002 +0000
+
+ Draw unicode line-drawing code points natively as we do for the GR1
+
+ * src/vte.c (vte_terminal_draw_char): Draw unicode line-drawing code points
+ natively as we do for the GR1 support, in case the current font doesn't
+ include glyphs for them.
+ * src/vte.c: Test for g_iconv_open() failure properly (compare result to
+ ((GIConv)-1), not NULL).
+
+ ChangeLog | 6 ++
+ src/vte.c | 178 ++++++++++++++++++++++++++++++++++++++++++++++++-------------
+ vte.spec | 5 ++-
+ 3 files changed, 151 insertions(+), 38 deletions(-)
+
+commit 3282b6de97263d10e11a7b2d38bdbeabb6fd1446
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 26 01:58:22 2002 +0000
+
+ Bind F10 to "k;", not "k0". Add "k;" defined as F10.
+
+ * src/vte.c: Bind F10 to "k;", not "k0".
+ * termcaps/xterm: Add "k;" defined as F10.
+
+ ChangeLog | 3 +++
+ src/vte.c | 2 +-
+ termcaps/xterm | 2 +-
+ vte.spec | 1 +
+ 4 files changed, 6 insertions(+), 2 deletions(-)
+
+commit 97e3e62df4f7891244beb85295d419ef689e9e2c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 26 01:42:02 2002 +0000
+
+ Check for redundant resizes. Keep the alternate screen buffer size the
+
+ * src/vte.c (vte_terminal_reset_rowdata): Check for redundant resizes.
+ * src/vte.c (vte_terminal_set_scrollback_lines): Keep the alternate screen
+ buffer size the same as the window height, because xterm's alternate
+ screen doesn't backscroll.
+ * src/vte.c (vte_terminal_get_text): Don't append spaces to multicolumn
+ characters when reading the screen's contents.
+ * src/vte.c: Don't overexpose neighboring cells any more. Cleanups.
+
+ ChangeLog | 10 +++
+ src/Makefile.am | 2 +-
+ src/debug.c | 3 +
+ src/debug.h | 13 ++--
+ src/ring.c | 6 ++
+ src/ring.h | 1 +
+ src/vte.c | 208 ++++++++++++++++++++++--------------------------------
+ vte.spec | 10 ++-
+ 8 files changed, 121 insertions(+), 132 deletions(-)
+
+commit 2e30f1a92aa303cb744452a3d75ca43b30722215
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jun 25 19:39:28 2002 +0000
+
+ Treat option 1049 as a combination of 1047 and 1048. When finalizing while
+
+ * src/vte.c (vte_sequence_handler_decset_internal): Treat option 1049 as a
+ combination of 1047 and 1048.
+ * src/vte.c (vte_terminal_finalize): When finalizing while holding the
+ selection, try to throw the selection onto the clipboard without an
+ owner so that it doesn't just disappear.
+
+ ChangeLog | 6 ++++++
+ src/vte.c | 22 +++++++++++++++++++++-
+ vte.spec | 6 +++++-
+ 3 files changed, 32 insertions(+), 2 deletions(-)
+
+commit 7bea68154a9b6e847437573414c88db36fc1dde5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 19 15:24:49 2002 +0000
+
+ Fix a logic bug that got rid of the title always, not just when conversion
+
+ * src/vte.c (vte_sequence_handler_set_title_int): Fix a logic bug that got rid
+ of the title always, not just when conversion failed.
+
+ ChangeLog | 3 +++
+ src/interpret.c | 4 ++++
+ src/trie.c | 6 +++---
+ src/vte.c | 4 ++--
+ 4 files changed, 12 insertions(+), 5 deletions(-)
+
+commit 4c681083ba867cb430c5faa8f97c92117121c6de
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 19 06:42:43 2002 +0000
+
+ Clear the alternate screen when switching to it.
+
+ * src/vte.c: Clear the alternate screen when switching to it.
+
+ ChangeLog | 2 ++
+ src/vte.c | 8 ++++++++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+commit 63d4477daaaecdd71b26ffd4e7199c1c680e553d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 19 05:55:39 2002 +0000
+
+ Fix package description.
+
+ * vte.spec: Fix package description.
+
+ vte.spec | 9 +++++----
+ 1 files changed, 5 insertions(+), 4 deletions(-)
+
+commit 087cd10148e680924b9ddbd704a6648f489fc335
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 19 05:07:26 2002 +0000
+
+ Fix refs/derefs with IOChannels and sources. Clean up I/O GIConv
+
+ * src/vte.c: Fix refs/derefs with IOChannels and sources. Clean up I/O GIConv
+ descriptors at finalize-time.
+
+ ChangeLog | 3 ++
+ src/vte.c | 78 +++++++++++++++++++++++++++++++++++++++++++------------------
+ vte.spec | 5 +++-
+ 3 files changed, 62 insertions(+), 24 deletions(-)
+
+commit 9ba8b45bb91df01b8e1bc20c50e7290f3069014e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jun 18 16:44:24 2002 +0000
+
+ 0.4.2
+
+ vte.spec | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 9a9dd6e6e3bedb5150163047f80c61ea3db3f897
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jun 18 16:24:17 2002 +0000
+
+ Make cursor_visible a widget-wide (not per-screen) setting.
+
+ * src/vte.c: Make cursor_visible a widget-wide (not per-screen) setting.
+
+ ChangeLog | 2 ++
+ src/vte.c | 20 +++++++++-----------
+ 2 files changed, 11 insertions(+), 11 deletions(-)
+
+commit 47074ac2f4da626fe6175afe211671de0199776c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jun 18 16:17:49 2002 +0000
+
+ Correct automake version check to require 1.5, heads-up from Glynn Foster.
+
+ * autogen.sh: Correct automake version check to require 1.5, heads-up from
+ Glynn Foster.
+
+ ChangeLog | 5 ++++-
+ autogen.sh | 8 ++++----
+ 2 files changed, 8 insertions(+), 5 deletions(-)
+
+commit 5aba0af966e7eea386f95f944cad25b76d07e11b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jun 18 04:20:38 2002 +0000
+
+ Sort out greedy vs. non-greedy pattern matching. Make 1047 an alias for 47
+
+ * src/trie.c (vte_trie_match, vte_trie_match_x): Sort out greedy vs. non-greedy
+ pattern matching.
+ * src/vte.c (vte_sequence_handler_decset_internal): Make 1047 an alias for 47
+ (use alternate buffer), and handle cursor save/restore properly.
+
+ ChangeLog | 5 ++++
+ README | 1 -
+ src/trie.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
+ src/vte.c | 50 ++++++++++++++++++++++++++++++++++-------
+ vte.spec | 5 +++-
+ 5 files changed, 113 insertions(+), 20 deletions(-)
+
+commit 2fa3b394c54ac2cf3d72d54b74553c2fae16bc48
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 14 20:52:04 2002 +0000
+
+ move the python module to the non-devel package
+
+ * vte.spec: move the python module to the non-devel package
+
+ vte.spec | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit e2a8889005ad4c2deb37babb78a54d9e263a0c99
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 14 19:50:33 2002 +0000
+
+ Fix arg list mismatch.
+
+ * python/vte.override: Fix arg list mismatch.
+
+ python/vte.override | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit d8dfa0f809acb46e46e5f203e398a42f50df0856
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 14 19:34:07 2002 +0000
+
+ Oops, shell typo.
+
+ * vte.spec: Oops, shell typo.
+
+ vte.spec | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 72df40d75cf96445a573fd20973b1fd81f83b2fd
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 14 19:26:41 2002 +0000
+
+ Add a parameter for passing in environment variables to add. Preprocess
+
+ * src/vte.c, src/vte.h (vte_terminal_fork_command): Add a parameter for passing
+ in environment variables to add.
+ * src/termcap.c: Preprocess out unused comment() and generate() funcs.
+ * src/Makefile.am: Bump library version number.
+ * vte.spec: 0.4.0
+
+ ChangeLog | 6 ++++
+ python/vte.defs | 3 +-
+ python/vte.override | 84 ++++++++++++++++++++++++++++++++-------------------
+ src/Makefile.am | 1 +
+ src/pty.c | 16 +++++-----
+ src/pty.h | 4 +-
+ src/termcap.c | 2 +
+ src/vte.c | 33 ++++++++++----------
+ src/vte.h | 3 +-
+ src/vteapp.c | 3 +-
+ vte.spec | 8 ++--
+ 11 files changed, 98 insertions(+), 65 deletions(-)
+
+commit 7c97366c65ce0378b601addbbe8bb9cb246f5300
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 14 18:54:13 2002 +0000
+
+ subst PYGTK_DATADIR
+
+ * configure.in: subst PYGTK_DATADIR
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit bc8d25d01e146da93a2bba748c7eae818b9c64e4
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 14 18:51:10 2002 +0000
+
+ Build python bindings with -fPIC.
+
+ * python/Makefile.am: Build python bindings with -fPIC.
+
+ python/Makefile.am | 2 +-
+ vte.spec | 8 +++++++-
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+commit ac7de676d72e7c1fe73a094ed5c65855a2567bb9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 14 16:47:43 2002 +0000
+
+ Handle cases where pygtk isn't installed in the prefix we're configuring
+
+ * configure.in, python/Makefile.am: Handle cases where pygtk isn't installed
+ in the prefix we're configuring for.
+ * src/Makefile.am: Link libvte to its library dependencies.
+
+ ChangeLog | 4 ++++
+ configure.in | 2 ++
+ python/Makefile.am | 2 +-
+ src/Makefile.am | 2 ++
+ 4 files changed, 9 insertions(+), 1 deletions(-)
+
+commit 82b2469479942e963fdae942d14dbff20ea08cf1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 14 16:26:53 2002 +0000
+
+ 0.3.30
+
+ vte.spec | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+commit 87fe587164fd553aa6ca0e85be21f32c3e46a1ad
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jun 13 20:36:42 2002 +0000
+
+ Stop watching for hierarchy-changed signals -- the accessible container
+
+ * src/vteaccess.c: Stop watching for hierarchy-changed signals -- the accessible
+ container which is our parent handles it already (from msw).
+
+ ChangeLog | 3 +++
+ src/vteaccess.c | 53 -----------------------------------------------------
+ 2 files changed, 3 insertions(+), 53 deletions(-)
+
+commit 0cf2559612f43caa23a16f71c1ab557247fa509d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Jun 13 19:25:37 2002 +0000
+
+ Re-read cursor position immediately on "cursor-moved" events, and emit the
+
+ * src/vteaccess.c: Re-read cursor position immediately on "cursor-moved" events,
+ and emit the "text-caret-moved" signal then as well. Don't override the
+ signal handlers for signals we emit, bad things can happen (from msw).
+
+ ChangeLog | 5 +
+ src/vteaccess.c | 244 +++++++++++++++++++++++++++++++++----------------------
+ 2 files changed, 152 insertions(+), 97 deletions(-)
+
+commit c20d8f4f75848fed0da6404b847bdb050e71543d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 12 23:30:44 2002 +0000
+
+ Also tell the parent the child died when the child dies due to an uncaught
+
+ * src/reaper.c: Also tell the parent the child died when the child dies due
+ to an uncaught signal.
+
+ ChangeLog | 2 ++
+ src/reaper.c | 7 +++++++
+ src/vte.h | 5 +++++
+ 3 files changed, 14 insertions(+), 0 deletions(-)
+
+commit eaacb5d11a027c920575381de5abbfd4b245b0ee
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 12 23:00:33 2002 +0000
+
+ Re-read the termcap when we change emulation, because the location of the
+
+ * src/vte.c: Re-read the termcap when we change emulation, because the location
+ of the file may have changed.
+ * python/vte.override (_wrap_vte_terminal_fork_command): Handle default value
+ for the command parameter.
+
+ ChangeLog | 5 +++++
+ python/vte.override | 4 ++--
+ python/vte.py | 43 +++++++++++++++++++++++++++++++++++++++++++
+ src/vte.c | 13 ++++++++++---
+ 4 files changed, 60 insertions(+), 5 deletions(-)
+
+commit 4ae8a2578e950a75c4f3760d96d7bbd67d83a30c
+Author: Matt Wilson <msw src gnome org>
+Date: Wed Jun 12 22:08:41 2002 +0000
+
+ 2002-06-12 msw implement
+
+ 2002-06-12 msw
+ * python/vte.override (_wrap_vte_terminal_fork_command): implement
+
+ ChangeLog | 2 ++
+ python/vte.override | 43 +++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 45 insertions(+), 0 deletions(-)
+
+commit 973481e77693aeb7c093425b53a7389781c61908
+Author: Matt Wilson <msw src gnome org>
+Date: Wed Jun 12 21:44:04 2002 +0000
+
+ 2002-06-12 msw added AM_CHECK_PYTHON_HEADERS from pygtk rewrote python
+
+ 2002-06-12 msw
+ * acinclude.m4: added AM_CHECK_PYTHON_HEADERS from pygtk
+ * configure.in: rewrote python checks to be more robust
+ * python/Makefile.am (CFLAGS): include @PYTHON_INCLUDES@
+
+ ChangeLog | 4 ++++
+ acinclude.m4 | 24 ++++++++++++++++++++++++
+ configure.in | 20 ++++++++++++++++----
+ python/Makefile.am | 4 ++--
+ 4 files changed, 46 insertions(+), 6 deletions(-)
+
+commit 5aa864cd26b40b845e6aa699421bffd360a33690
+Author: Matt Wilson <msw src gnome org>
+Date: Wed Jun 12 21:10:47 2002 +0000
+
+ 2002-06-12 msw turn the logic around to be the right way
+
+ 2002-06-12 msw
+ * src/vte.c (vte_terminal_get_accessible): turn the logic around
+ to be the right way
+
+ ChangeLog | 3 +++
+ src/vte.c | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 4fc0ad8297b2ba8d05dcf295e912f7815d0f8b0a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 12 21:08:42 2002 +0000
+
+ Move python stuffs to a different subdirectory.
+
+ * Makefile.am, src/Makefile.am: Move python stuffs to a different subdirectory.
+
+ Makefile.am | 2 +-
+ configure.in | 11 ++-
+ python/Makefile.am | 16 +++
+ python/vte.defs | 369 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ python/vte.override | 12 ++
+ python/vtemodule.c | 49 +++++++
+ src/Makefile.am | 15 +--
+ src/vte.defs | 42 ------
+ src/vte.override | 6 -
+ 9 files changed, 458 insertions(+), 64 deletions(-)
+
+commit 502568a81e082c70a0931099a4753b17a7653b3a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 12 20:24:40 2002 +0000
+
+ Implement vte_terminal_get_encoding and vte_terminal_get_emulation, and
+
+ * src/vte.c, src/vte.h: Implement vte_terminal_get_encoding and
+ vte_terminal_get_emulation, and emit signals when these change.
+ * src/vteaccess.c: Emit a "text_caret_moved" signal when the cursor moves.
+
+ ChangeLog | 6 ++-
+ src/vte.c | 118 +++++++++++++++++++++++++++++++++++++++++--------------
+ src/vte.h | 4 ++
+ src/vteaccess.c | 12 +++++-
+ 4 files changed, 107 insertions(+), 33 deletions(-)
+
+commit b3c3ca51c7b786a9b4fae50c65aa8096132a7b63
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 12 19:03:26 2002 +0000
+
+ Fix declaration errors that broke stuff.
+
+ * src/vte.defs, src/vte.override: Fix declaration errors that broke stuff.
+
+ src/vte.defs | 4 ++++
+ src/vte.override | 1 +
+ 2 files changed, 5 insertions(+), 0 deletions(-)
+
+commit 754299b09c5a90cb5874636584a1bc92ff3ff530
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 12 18:55:18 2002 +0000
+
+ Add rules for building python modules.
+
+ * configure.in, src/Makefile.am: Add rules for building python modules.
+
+ ChangeLog | 2 ++
+ configure.in | 14 ++++++++++++++
+ src/Makefile.am | 13 ++++++++++++-
+ src/vte.override | 5 +++++
+ 4 files changed, 33 insertions(+), 1 deletions(-)
+
+commit 28d9d6be94b45a365dd84a8f7792669b5329b70a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 12 18:16:04 2002 +0000
+
+ Fix hilite clearing when scrolling delta != 0. Actually add the signals
+
+ * src/vte.c: Fix hilite clearing when scrolling delta != 0.
+ * src/debug.c, src/debug.h: Actually add the signals debugging flag.
+
+ README | 3 ---
+ src/debug.c | 3 +++
+ src/debug.h | 1 +
+ src/vte.c | 2 +-
+ src/vteaccess.c | 5 +++--
+ 5 files changed, 8 insertions(+), 6 deletions(-)
+
+commit f0e9d6bd04827da7afd83445930a3f4fa071c830
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 12 16:23:05 2002 +0000
+
+ Cache the result of vte_terminal_get_accessible() and unref it at
+
+ * src/vte.c: Cache the result of vte_terminal_get_accessible() and unref it at
+ finalize-time. Add debug messages to log signals emitted by the widget.
+
+ ChangeLog | 4 ++
+ src/vte.c | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 109 insertions(+), 1 deletions(-)
+
+commit c57529767dc89bfec1ceab7a38e91191865f94cf
+Author: Matt Wilson <msw src gnome org>
+Date: Wed Jun 12 16:02:30 2002 +0000
+
+ 2002-06-12 msw accept end_offset of -1, which means "until the end". never
+
+ 2002-06-12 msw
+ * src/vteaccess.c (vte_terminal_accessible_get_text): accept
+ end_offset of -1, which means "until the end".
+ * src/vteaccess.c (vte_terminal_accessible_new): never set the
+ description to a NULL pointer
+
+ ChangeLog | 5 +++++
+ src/vteaccess.c | 8 ++++----
+ 2 files changed, 9 insertions(+), 4 deletions(-)
+
+commit 450bdefcadd2d5379abb4e27dbb1f68ba9ec2f1f
+Author: Christian Rose <menthos menthos com>
+Date: Tue Jun 11 09:08:24 2002 +0000
+
+ Removed. This is a generated file and should not be stored in cvs. Added.
+
+ 2002-06-11 Christian Rose <menthos menthos com>
+
+ * vte.pot: Removed. This is a generated file and should not be
+ stored in cvs.
+ * .cvsignore: Added.
+ * sv.po: Added Swedish translation.
+
+ po/.cvsignore | 11 ++++++++
+ po/ChangeLog | 7 +++++
+ po/{vte.pot => sv.po} | 64 +++++++++++++++++++++++++++---------------------
+ 3 files changed, 54 insertions(+), 28 deletions(-)
+
+commit 6690915804fd0b597beb63e7b28fa6120299c7d9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 10 23:06:29 2002 +0000
+
+ Add a changelog for translations.
+
+ * po/ChangeLog: Add a changelog for translations.
+
+ po/vte.pot | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+commit 47595c278977b294fcb55665c142096c67e2e05e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 10 22:56:13 2002 +0000
+
+ Finish merging otaylor's Xft2 patch (oops). Compute padding correctly.
+
+ * src/vte.c: Finish merging otaylor's Xft2 patch (oops). Compute padding
+ correctly.
+
+ ChangeLog | 8 +++++---
+ src/vte.c | 9 +++++----
+ vte.spec | 5 ++++-
+ 3 files changed, 14 insertions(+), 8 deletions(-)
+
+commit 2173db2433b6405a0b76479f1846094173b231d6
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 10 19:35:31 2002 +0000
+
+ Include gettext support. Mark warnings for possible translation. Add.
+
+ * Makefile.am, configure.in: Include gettext support.
+ * src/pty.c, src/reaper.c, src/trie.c, src/vte.c: Mark warnings for possible
+ translation.
+ * po/POTFILES.in, po/vte.pot: Add.
+
+ ChangeLog | 3 +
+ Makefile.am | 2 +-
+ autogen.sh | 1 +
+ configure.in | 8 +++-
+ po/POTFILES.in | 4 ++
+ po/vte.pot | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/caps.h | 4 +-
+ src/debug.h | 4 +-
+ src/pty.c | 11 ++++-
+ src/pty.h | 4 +-
+ src/reaper.c | 16 +++++++-
+ src/ring.h | 4 +-
+ src/termcap.h | 4 +-
+ src/trie.c | 9 ++++-
+ src/trie.h | 4 +-
+ src/vte.c | 66 +++++++++++++++++++------------
+ src/vte.h | 4 +-
+ src/vteaccess.c | 8 ++++
+ src/vteaccess.h | 4 +-
+ 19 files changed, 230 insertions(+), 47 deletions(-)
+
+commit cb97abc8c28ea66334532da0f713c803d2675bbb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 10 18:42:05 2002 +0000
+
+ 0.3.28
+
+ Makefile.am | 2 +-
+ vte.spec | 3 +++
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit e3d439e51d5a63b113ec0719ea9a1bfdcfab802b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 10 18:38:49 2002 +0000
+
+ Center characters in their cells, caching their extents. Finish merging
+
+ * src/vte.c: Center characters in their cells, caching their extents. Finish
+ merging otaylor's Xft2 patch (oops).
+ * src/vte.c, src/vte.h: Expose vte_terminal_set_encoding().
+
+ ChangeLog | 2 ++
+ src/vte.c | 10 +++++++---
+ src/vte.h | 3 +++
+ vte.spec | 3 ++-
+ 4 files changed, 14 insertions(+), 4 deletions(-)
+
+commit 0fa0b817b350b7cc1ab59eccbeacc1346209402c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 10 14:31:35 2002 +0000
+
+ 0.3.27
+
+ vte.spec | 7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+commit e2ca5bd706a6f88520be29d9fe4bba0886e93541
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Jun 9 05:54:39 2002 +0000
+
+ Make reaper an EXTRA prog, not a NOINST prog.
+
+ * src/Makefile.am: Make reaper an EXTRA prog, not a NOINST prog.
+
+ src/Makefile.am | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 6fe781c76ed8f8bc69d292a705d5011a837babfb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Jun 9 04:42:57 2002 +0000
+
+ Adjust font padding to account for characters with wcwidth() != 1.
+
+ * src/vte.c: Adjust font padding to account for characters with wcwidth() != 1.
+
+ src/vte.c | 63 +++++++++++++++++++++++++++++++-----------------------------
+ 1 files changed, 33 insertions(+), 30 deletions(-)
+
+commit beb4529109c5737ed32b319bcf45abfaec3019ec
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 7 21:55:03 2002 +0000
+
+ Center characters in their cells, caching their extents.
+
+ * src/vte.c: Center characters in their cells, caching their extents.
+
+ ChangeLog | 2 +
+ src/vte.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
+ 2 files changed, 58 insertions(+), 12 deletions(-)
+
+commit 869a5edc9ea17d09544cd89a8c096f44e4741a55
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Jun 7 16:58:50 2002 +0000
+
+ Check for pangoxft with Xft1 or Xft2, hopefully getting things right for
+
+ * configure.in: Check for pangoxft with Xft1 or Xft2, hopefully getting
+ things right for either case. Patches by andersca and otaylor.
+ * src/reaper.c, src/reaper.h: Add a singleton object to watch for
+ SIGCHLD when child processes quit.
+ * src/vte.c, src/vte.h: Add get_cursor_position(). Remove get_snapshot()
+ and free_shapshot(). Emit a "child-exited" signal when a child started
+ with fork_command() exits. Fix a logic bug that caused us to scroll
+ to the bottom even if the user just pressed and released a modifier
+ key. Fix saving of the font in set_font() in most cases, where we
+ weren't saving the new font before. Scroll-to-bottom on input method
+ commits, which are also the result of keystrokes, when
+ scroll-on-keystroke is enabled.
+ * src/vte.c: Use FcNameUnparse() instead of XftNameUnparse in Xft2. Patch from
+ otaylor.
+ * src/vte.defs: Add. Not very useful yet.
+ * src/vteaccess.c: Rework to use get_text() and get_cursor_position()
+ instead of get_snapshot(), so that selection and accessibility both
+ agree on what's visible (or "visible").
+
+ ChangeLog | 21 ++
+ README | 7 +-
+ configure.in | 22 ++-
+ src/Makefile.am | 28 ++-
+ src/reaper.c | 232 +++++++++++++++++++++
+ src/reaper.h | 64 ++++++
+ src/termcap.c | 5 +
+ src/vte.c | 601 +++++++++++++++++++++++++------------------------------
+ src/vte.defs | 38 ++++
+ src/vte.h | 23 +--
+ src/vteaccess.c | 453 +++++++++++++++++++++++-------------------
+ src/vteapp.c | 16 ++-
+ vte.spec | 8 +-
+ 13 files changed, 945 insertions(+), 573 deletions(-)
+
+commit b392abcb72e5f7a2a67d65b2dcb3beb6626c8c9c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 5 18:50:36 2002 +0000
+
+ 1.3.25
+
+ * vte.spec: 1.3.25
+
+ vte.spec | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit fdcf82b18420916520003cd39f4ab00f74e47557
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Jun 5 18:41:22 2002 +0000
+
+ Don't attempt to handle the ac capability. Try to compute a more sensible
+
+ * src/vte.c: Don't attempt to handle the ac capability. Try to compute a more
+ sensible character width when using Xft.
+
+ src/vte.c | 15 ++++++++++++---
+ 1 files changed, 12 insertions(+), 3 deletions(-)
+
+commit 16906be59cf18a2acaa15f1ad3638eeb8904f65d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Jun 4 23:15:51 2002 +0000
+
+ Remove the ac and ma capabilities, which aren't strings.
+
+ src/caps.c | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+commit e965a0406d36cfc1d3a3fdfc5f84cd2e56202f59
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 3 19:42:00 2002 +0000
+
+ include <unistd.h> instead of <getopt.h>, patch from HideToshi Tajima.
+
+ * src/vteapp.c: include <unistd.h> instead of <getopt.h>, patch from
+ HideToshi Tajima.
+
+ src/vteapp.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 7c00ac1ce443babebb1102d1793967bce9a7b5de
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Jun 3 16:08:24 2002 +0000
+
+ Tweak handling of invalid multibyte characters, preventing some hangs.
+
+ * src/vte.c: Tweak handling of invalid multibyte characters, preventing
+ some hangs.
+
+ src/vte.c | 6 ++----
+ vte.spec | 5 ++++-
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+commit a66cbc23aaf3ef58dd156fd04286a6d965d70e9a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 31 23:41:02 2002 +0000
+
+ Finish switching iconv to g_iconv. I think this was a part of Hidetoshi
+
+ * src/trie.c, src,vte.c: Finish switching iconv to g_iconv. I think this was
+ a part of Hidetoshi Tajima's patch that I lost. Free regexes when
+ we're done with them.
+ * src/vte.c: Implement font setting using PangoX to convert Pango font
+ descriptions to core font xlfds for use when drawing with Xlib.
+
+ ChangeLog | 10 ++++-
+ src/trie.c | 17 +++----
+ src/vte.c | 145 +++++++++++++++++++++++++++++++++++-------------------------
+ vte.spec | 6 ++-
+ 4 files changed, 106 insertions(+), 72 deletions(-)
+
+commit c3285ec2305e3c524bb06fa1a31267c20aafa16b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 29 00:27:24 2002 +0000
+
+ Always free the segment when freeing arrays and strings.
+
+ * src/vte.c, src/vteaccess.c: Always free the segment when freeing arrays and
+ strings.
+
+ ChangeLog | 2 ++
+ src/vte.c | 11 ++++++-----
+ src/vteaccess.c | 8 ++++----
+ vte.spec | 5 ++++-
+ 4 files changed, 16 insertions(+), 10 deletions(-)
+
+commit c8cd575e5ccd8a246562cc1d14d94aaf3fdeb4f0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 28 23:11:38 2002 +0000
+
+ Fix make distcheck.
+
+ * Makefile.am, autogen.sh, configure.in: Fix make distcheck.
+
+ autogen.sh | 2 +-
+ configure.in | 3 ++-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+commit df2bf4b5e43d5e5dd6b46ea7a7cc8589338c95c2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 28 22:52:34 2002 +0000
+
+ Fix cb() and ce() when the cursor is on a line without data (needed to
+
+ * src/vte.c: Fix cb() and ce() when the cursor is on a line without data
+ (needed to create it) and when cells being cleared don't exist (needed to
+ create them).
+
+ ChangeLog | 4 ++-
+ src/vte.c | 115 ++++++++++++++++++++++++++++++++++++------------------------
+ vte.spec | 5 ++-
+ 3 files changed, 76 insertions(+), 48 deletions(-)
+
+commit 194a0bf169eac4290a1a05f18fb3f1229720138d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 28 18:13:03 2002 +0000
+
+ Fix matching when scrolling delta isn't zero, really this time. Fix async
+
+ * src/vte.c: Fix matching when scrolling delta isn't zero, really this time.
+ Fix async background updating (report from Richard Neal Plana).
+
+ ChangeLog | 3 +-
+ src/vte.c | 77 ++++++++++++++++++++++++++++++++++++------------------------
+ 2 files changed, 48 insertions(+), 32 deletions(-)
+
+commit 4d4f1bdf75ab2d85cb41760e3ebaae4532227860
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 28 15:30:49 2002 +0000
+
+ Fix matching when scrolling delta isn't zero.
+
+ * src/vte.c: Fix matching when scrolling delta isn't zero.
+
+ ChangeLog | 3 +++
+ src/vte.c | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+commit f688e2b43a0f994da117a486692772944d5e0d88
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 24 18:46:28 2002 +0000
+
+ Call libtoolize. (#82836) Fix stupid segfault in set_scrollback_lines.
+
+ * autogen.sh: Call libtoolize. (#82836)
+ * src/vte.c: Fix stupid segfault in set_scrollback_lines. (Patch from notting.)
+ Make another attempt to convert Pango font descriptions to xlfds.
+ * src/vte.c, src/vte.h: Expose set_emulation().
+ * src/vteapp.c: Add -c, -f, -t command-line flags for easier testing.
+
+ ChangeLog | 7 ++
+ README | 1 +
+ src/vte.c | 177 ++++++++++++++++++++++++++++++++++-----------------------
+ src/vte.h | 3 +
+ src/vteapp.c | 27 ++++++++-
+ vte.spec | 5 +-
+ 6 files changed, 145 insertions(+), 75 deletions(-)
+
+commit 817d66802765605c413beb01185629bbd085f17c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 24 14:41:10 2002 +0000
+
+ Invoke libtoolize.
+
+ autogen.sh | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit faae3bfc6462009405b5e97a8e21e7803386cc9f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 22 04:19:22 2002 +0000
+
+ Fix hiliting of matched strings to better match the returned matched
+
+ * src/vte.c: Fix hiliting of matched strings to better match the returned
+ matched string in match_check().
+
+ ChangeLog | 4 +++
+ README | 2 -
+ src/vte.c | 71 +++++++++++++++++++++++++++++++++++++++---------------------
+ 3 files changed, 50 insertions(+), 27 deletions(-)
+
+commit 17b539566a092f110f6aecc8e68c135247dbc581
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 21 21:50:23 2002 +0000
+
+ Filter key release events through input methods. (Patch from otaylor.)
+
+ * src/vte.c: Filter key release events through input methods. (Patch from
+ otaylor.) When building with gcc, use -std=c99.
+
+ ChangeLog | 3 +++
+ configure.in | 1 +
+ src/vte.c | 11 +++++++++++
+ 3 files changed, 15 insertions(+), 0 deletions(-)
+
+commit 1858046b2a9e3bf4ac6951171c55c85d09197a1d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 21 16:54:40 2002 +0000
+
+ 0.3.19
+
+ vte.spec | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 13a2a609868858fb30ee68ba9baddcb31ad91480
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 21 15:36:52 2002 +0000
+
+ Patch from Hidetoshi Tajima to fix building on Solaris systems, remove use
+
+ * autogen.sh, src/termcap.c, src/utf8echo.c, src/vte.c: Patch from Hidetoshi
+ Tajima to fix building on Solaris systems, remove use of syntax that
+ might be specific to gcc, and fix an overrun in vte_termcap_generate().
+ (#82433)
+
+ ChangeLog | 9 +++++
+ README | 8 ++++
+ autogen.sh | 99 ++++++++++++++++++++++++++++++++++++++++++++++++-------
+ configure.in | 2 +-
+ src/Makefile.am | 1 +
+ src/termcap.c | 6 ++--
+ src/utf8echo.c | 12 +++---
+ src/vte.c | 45 +++++++++++++++----------
+ 8 files changed, 142 insertions(+), 40 deletions(-)
+
+commit 0b343b1d7b1aae735b86ef5eb0760c91d5b867ed
+Author: Anders Carlsson <andersca src gnome org>
+Date: Mon May 20 14:06:30 2002 +0000
+
+ 2002-05-18 andersca Don't queue a background update if the background
+
+ 2002-05-18 andersca
+ * src/vte.c: Don't queue a background update if the background isn't
+ transparent.
+
+ ChangeLog | 3 +++
+ src/vte.c | 5 ++++-
+ 2 files changed, 7 insertions(+), 1 deletions(-)
+
+commit a19cc1f83fb4ad89b68bcf46b6a738a9176148fe
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 17 02:25:25 2002 +0000
+
+ Try multiple versions of autoconf, too.
+
+ * autogen.sh: Try multiple versions of autoconf, too.
+
+ autogen.sh | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit e4758d1b38f2a348a8c9928a2cd730a087e9e652
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 17 02:17:41 2002 +0000
+
+ Try multiple versions of automake, just in case. Fix displaying of
+
+ * autogen.sh: Try multiple versions of automake, just in case.
+ * src/vte.c: Fix displaying of underlined text. Finish implementing matching.
+ * src/vteapp.c: Set "abcdefg" as a match string.
+
+ ChangeLog | 3 +-
+ autogen.sh | 4 +-
+ src/vte.c | 263 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ src/vteapp.c | 3 +
+ vte.spec | 5 +-
+ 5 files changed, 259 insertions(+), 19 deletions(-)
+
+commit 775bdd468bd6d7d2dbf26e7e10c34667a1100e54
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 16 23:04:32 2002 +0000
+
+ rework a couple of rules to make automake happy again.
+
+ * src/Makefile.am: rework a couple of rules to make automake happy again.
+
+ src/Makefile.am | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 909c505d3a03de567c77da604d353b71f72df6a1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 16 23:01:29 2002 +0000
+
+ Snip trailing whitespace off of copied lines, insert an end-of-line only
+
+ * src/vte.c: Snip trailing whitespace off of copied lines, insert an
+ end-of-line only when the copied line doesn't go to the right edge,
+ don't overrun right edge, even in insert mode.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 40 ++++++++++++++++++++++++++++------------
+ vte.spec | 5 ++++-
+ 3 files changed, 36 insertions(+), 13 deletions(-)
+
+commit b72c6a398dab93bee5151859e7912ae575caa093
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 15 23:30:01 2002 +0000
+
+ Send kI on insert key. Don't send drag events when the child has only
+
+ * src/vte.c: Send kI on insert key. Don't send drag events when the
+ child has only asked for click events. Fix crashbugs in selection.
+ When getting scroll events, send mouse 4/5 events to the child instead
+ of performing a history scroll if the child wants mouse events. Start
+ adding match support, merging how selection views the buffer with how
+ matching views the buffer, though matching doesn't work yet.
+
+ ChangeLog | 7 +
+ src/vte.c | 513 +++++++++++++++++++++++++++++++++++++++++++++----------------
+ src/vte.h | 75 ++++++++--
+ vte.spec | 10 +-
+ 4 files changed, 457 insertions(+), 148 deletions(-)
+
+commit 9820fa1c0b0e3dfaed6a460f9c88610aad4e1b3e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 14 22:02:40 2002 +0000
+
+ Don't send motion-tracking events to the child unless we're dragging. Fix
+
+ * src/vte.c: Don't send motion-tracking events to the child unless
+ we're dragging. Fix ce so that it works even right after startup.
+ Make sure that repainting the entire window actually exposes the
+ visible parts of the window. Fix tab clearing to also allow removal of
+ the current tabstop. Implement save-mode and restore-mode. Start on
+ reverse-video mode. Don't scroll on modifier keypress events. Rework
+ part of clipboard copy.
+ * termcaps/xterm: Add missing F11/F12/End keysyms to bundled xterm
+ termcap.
+
+ ChangeLog | 10 +-
+ src/caps.c | 4 +-
+ src/trie.c | 96 +++++++++-
+ src/trie.h | 3 +
+ src/vte.c | 647 ++++++++++++++++++++++++++++++++++++--------------------
+ termcaps/xterm | 7 +-
+ vte.spec | 5 +-
+ 7 files changed, 533 insertions(+), 239 deletions(-)
+
+commit b961d28996f665464d679c54373d1256169ac331
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 14 14:38:35 2002 +0000
+
+ Don't try to draw nul characters.
+
+ * src/vte.c: Don't try to draw nul characters.
+
+ ChangeLog | 2 ++
+ src/vte.c | 2 +-
+ vte.spec | 7 +++++--
+ 3 files changed, 8 insertions(+), 3 deletions(-)
+
+commit eb142a6689c140d8f598453bceae4f0ac390272a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue May 14 00:42:35 2002 +0000
+
+ Add "ALL" as a debug flag, aliased to everything. Print debug info after
+
+ * src/debug.c: Add "ALL" as a debug flag, aliased to everything.
+ * src/pty.c: Print debug info after redirecting stdio.
+ * src/trie.c: When debugging, count only decision nodes.
+ * src/vte.c: Fix se, for real this time. Add a mostly-ignored protected
+ attribute. Handle am, bw, ul flags properly. Make cd clear the current
+ line, too. Make ce fill the current default attributes through the end
+ of the line. Handle cS. Fix cv to work when we have a scrollback
+ buffer. Handle ll, mp. Line wrap on nd. Reset tab stops on hard reset
+ only. Handle soft-reset and full-reset. Handle uc. Initialize
+ scrollback line count properly. Tweak drawing of alternate 'a' to get
+ rid of artifacts. Reset insert mode, cursor visibility, and scrolling
+ regions when resetting.
+
+ ChangeLog | 13 ++
+ README | 6 +-
+ autogen.sh | 2 +-
+ src/debug.c | 3 +
+ src/pty.c | 27 ++--
+ src/trie.c | 2 +-
+ src/vte.c | 470 ++++++++++++++++++++++++++++++++++++++++++++---------------
+ src/vte.h | 3 +-
+ vte.spec | 5 +-
+ 9 files changed, 393 insertions(+), 138 deletions(-)
+
+commit c4f86f25e8c851fdb7fd433e7114bb8cf21de8f5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 10 23:45:21 2002 +0000
+
+ Make delete mode a no-op, fix ic/IC (#81417).
+
+ * src/vte.c: Make delete mode a no-op, fix ic/IC (#81417).
+
+ ChangeLog | 3 +++
+ src/vte.c | 21 ++++++++++++---------
+ 2 files changed, 15 insertions(+), 9 deletions(-)
+
+commit bed9c035d7c4e226d9087f87b4c01d660fd7e4dc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 10 00:29:42 2002 +0000
+
+ Implement bt, ct, st. Reimplement ta.
+
+ * src/vte.c: Implement bt, ct, st. Reimplement ta.
+
+ ChangeLog | 1 +
+ README | 4 +-
+ src/vte.c | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
+ 3 files changed, 144 insertions(+), 11 deletions(-)
+
+commit 265b32f280c4417ea6c0a1af70bd7859b80f6efb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 9 23:54:35 2002 +0000
+
+ Fixes to usage of iconv, from otaylor. Remap characters which are missing
+
+ * src/vte.c: Fixes to usage of iconv, from otaylor. Remap characters which are
+ missing in the current font to others in the current font, if possible,
+ from otaylor. Change default emulation to "xterm", cleaning up
+ confusion over what standout really means. Reorganize some internals.
+ Complain when an application sends us a key-press sequence, as if we
+ knew what to do with one of those.
+ * src/vte.c, src/vte.h: Implement vte_terminal_reset().
+ * src/debug.c, src/debug.h: Added to centralize some debugging settings.
+ * everywhere: Punt the question of whether or not to print debug spew to
+ run-time, suggested by otaylor.
+ * termcaps/xterm: Added.
+
+ ChangeLog | 8 +
+ README | 4 +-
+ src/Makefile.am | 12 +
+ src/debug.c | 59 ++
+ src/debug.h | 35 ++
+ src/pty.c | 5 +-
+ src/ring.c | 36 +-
+ src/trie.c | 26 +-
+ src/vte.c | 1633 +++++++++++++++++++++++++++++++++-----------------
+ src/vte.h | 1 +
+ src/vteaccess.c | 45 +-
+ src/vteapp.c | 6 +-
+ termcaps/Makefile.am | 4 +-
+ termcaps/xterm | 28 +
+ vte.spec | 6 +-
+ 15 files changed, 1305 insertions(+), 603 deletions(-)
+
+commit 0f6befd404efad9584311f0bea326034170b83c8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 8 22:20:57 2002 +0000
+
+ Warning fixes and cleanups.
+
+ * src/vte.c: Warning fixes and cleanups.
+
+ src/vte.c | 11 +++++++----
+ 1 files changed, 7 insertions(+), 4 deletions(-)
+
+commit fce004c8c6ed9b6e6dd6f2803bf4d86edb397562
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 8 22:12:10 2002 +0000
+
+ Implement mouse button events and motion-event and any-event tracking.
+
+ * src/vte.c: Implement mouse button events and motion-event and any-event
+ tracking. Implement the rest of the special graphics characters.
+ Rename signals to be more consistent. Add thin wrappers for emitting
+ signals, and use them everywhere. Support pangox even when XFT isn't
+ available. Try to provide bold text again. Add signals for most of
+ the window manipulation control sequences. Hide the mouse cursor when
+ we get keyboard events. Use a different mouse cursor if the child is
+ mouse-aware. Handle eA() by treating it as as().
+ * src/caps.c, src/caps.h: Export definitions of VTE_CAP_CSI and friends.
+ * src/ring.c: Remove a check in vte_ring_at() which is already made before
+ the function is called.
+
+ ChangeLog | 6 +-
+ README | 16 +-
+ src/ring.c | 15 +-
+ src/vte.c | 756 +++++++++++++++++++++++++++++++++++++++++++++++++++---------
+ vte.spec | 5 +-
+ 5 files changed, 668 insertions(+), 130 deletions(-)
+
+commit 08b8caa553cf20f9fd7e40b1a1bd8c85294f438b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 6 23:14:27 2002 +0000
+
+ Hide the mouse cursor when we get keyboard events. Use a different mouse
+
+ * src/vte.c: Hide the mouse cursor when we get keyboard events. Use a
+ different mouse cursor if the child is mouse-aware. Handle eA() by
+ treating it as as().
+ * src/vte.c, src/vte.h: Allow enabling/disabling of mouse autohide.
+
+ ChangeLog | 3 +
+ README | 2 +-
+ src/vte.c | 240 ++++++++++++++++++++++++++++++++++++++++++++--------------
+ src/vte.h | 3 +
+ src/vteapp.c | 1 +
+ vte.spec | 5 +-
+ 6 files changed, 194 insertions(+), 60 deletions(-)
+
+commit 14b0aa82214da4bfc5243be3ab8c097924d69528
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 6 21:53:07 2002 +0000
+
+ Start handling mouse button down / button up events.
+
+ * src/vte.c: Start handling mouse button down / button up events.
+
+ ChangeLog | 2 +-
+ src/vte.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
+ vte.spec | 5 ++-
+ 3 files changed, 105 insertions(+), 7 deletions(-)
+
+commit 9d8fe49fb582d45b30c417e4139581053122d6bf
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 6 20:55:15 2002 +0000
+
+ Fix an inadvertent mixing of preprocessor logic with code.
+
+ * src/vte.c: Fix an inadvertent mixing of preprocessor logic with code.
+
+ src/vte.c | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit 45ce677ee3aaf79d5859b5922ea95cfca25f17f8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon May 6 20:51:06 2002 +0000
+
+ Finish implementing window-manipulation sequences. Rename signals to be
+
+ * src/vte.c: Finish implementing window-manipulation sequences. Rename signals
+ to be more consistent. Add thin wrappers for emitting signals, and use
+ them everywhere. Support pangox even when XFT isn't available. Try to
+ provide bold text again. Add signals for most of the window
+ manipulation control sequences. Implement device-status-report and
+ dec-device-status-report. Clamp location values in sequence_handler_cm
+ to the dimensions of the terminal window so that resize(1) will work
+ right.
+ * src/caps.c, src/caps.h: Export definitions of VTE_CAP_CSI and friends.
+
+ ChangeLog | 12 +
+ src/caps.c | 31 +--
+ src/caps.h | 7 +
+ src/vte.c | 704 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ src/vte.h | 14 +-
+ vte.spec | 5 +-
+ 6 files changed, 694 insertions(+), 79 deletions(-)
+
+commit 4b3f54222ae0eaafc64e1a9326042c5a012a1c2f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri May 3 21:21:25 2002 +0000
+
+ Export a vte_termcap_strip() function for preprocessing escape sequences
+
+ * src/termcap.c: Export a vte_termcap_strip() function for preprocessing
+ escape sequences and whatnot from capability values.
+ * src/typescrypt: Removed.
+ * src/vte.c: Pass the hard-coded xterm-specific capabilities through
+ vte_termcap_strip(), which fixes a few weird bugs. Discard invalid
+ might-be-control-sequence sequences, like other emulators do. Don't
+ consider modifier keys, by themselves, to be enough to scroll-on-key.
+ When snapshotting, actually snapshot all of a row instead of just the
+ last character. Don't run past the end of snapshot contents when
+ reading them.
+ * src/vteaccess.c: Clamp offsets so that they always sort right.
+
+ ChangeLog | 12 +++++++
+ src/termcap.c | 14 +++++++-
+ src/termcap.h | 3 ++
+ src/trie.c | 15 ++++++--
+ src/typescript | 76 ------------------------------------------
+ src/vte.c | 62 +++++++++++++++++++++++++---------
+ src/vteaccess.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++-------
+ vte.spec | 6 +++-
+ 8 files changed, 174 insertions(+), 112 deletions(-)
+
+commit cf348c8da67cc21b8f0f1bc04cb112becfaf91c2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 2 23:31:55 2002 +0000
+
+ 0.3.6
+
+ vte.spec | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+commit 823bf5b6426b9805b7e183abfd92630e0f556d7f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 2 23:31:19 2002 +0000
+
+ Hook up ts/te, ks/ke sequence handlers. Fix initialization crash bugs.
+
+ * src/vte.c: Hook up ts/te, ks/ke sequence handlers.
+ * src/vteaccess.c: Fix initialization crash bugs.
+
+ ChangeLog | 4 ++-
+ src/vte.c | 52 +++++++++++++++++++++++++++--
+ src/vteaccess.c | 98 +++++++++++++++++++++++++++++++++++++++++++++++-------
+ 3 files changed, 136 insertions(+), 18 deletions(-)
+
+commit ab1b7b660db6f9ea5b1d142e97749e232e708be5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 2 20:48:18 2002 +0000
+
+ fix parsing of octal codes which start with "1" instead of "0" munge as
+
+ * src/termcap.c: fix parsing of octal codes which start with "1" instead of "0"
+ * src/vte.c: munge as many invalid multibyte characters as necessary to get
+ past decoding errors.
+
+ ChangeLog | 6 +++++-
+ src/termcap.c | 1 +
+ src/trie.c | 6 ++++++
+ src/vte.c | 9 +++++----
+ vte.spec | 5 ++++-
+ 5 files changed, 21 insertions(+), 6 deletions(-)
+
+commit 7df826f2358df847542716ad585d9982ff141cef
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 2 19:55:29 2002 +0000
+
+ Fix a crashbug due to mismatch between parent field in the object's
+
+ * src/vteaccess.h: Fix a crashbug due to mismatch between parent field
+ in the object's structure and its inherited object's type. More to go.
+ * src/trie.c: Fix a logic bug which caused intermittent escape sequence
+ recognition errors in the trie partial-match code.
+ * src/vte.c: Don't use $SHELL, which might have been set by a libtool wrapper,
+ as a default shell when we get NULL as a command. Use 80x24 as the
+ default window size -- I'm pretty sure the termcap parsing is correct
+ now, so no need to use 60x18 to detect when it's broken.
+
+ ChangeLog | 22 +++++++++++++++-------
+ src/trie.c | 29 ++++++++++++++---------------
+ src/vte.c | 50 ++++++++++++++++++++++++++------------------------
+ src/vteaccess.c | 10 +++++-----
+ src/vteaccess.h | 4 ++--
+ vte.spec | 6 +++++-
+ 6 files changed, 67 insertions(+), 54 deletions(-)
+
+commit 386e1b45a5e205f28a29f1c3da82c7fcd6342c91
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu May 2 08:33:23 2002 +0000
+
+ Rework trie matching to return the address of the character which ended
+
+ * src/trie.c: Rework trie matching to return the address of the
+ character which ended the match attempt, which should cut down on
+ useless initial-substring checks. Remove several gdk_window_scroll()
+ calls which apparently aren't buffered. Convert invalid multibyte
+ characters to '?' instead of just dropping them. Provide a means of
+ setting the backspace/delete bindings. Add a poor xlfd_from_pango
+ mapping function which would need serious work to be useful. Get rid
+ of warnings when we're transparent and the root widnow pixmap isn't as
+ big as the root window because it's tiled.
+
+ ChangeLog | 10 +
+ src/interpret.c | 2 +-
+ src/ring.c | 2 +
+ src/trie.c | 127 +++++++++++----
+ src/trie.h | 3 +-
+ src/vte.c | 490 +++++++++++++++++++++++++++++++++++++++++--------------
+ src/vte.h | 13 ++-
+ src/vteaccess.c | 5 +-
+ src/vteapp.c | 2 +-
+ vte.spec | 2 +-
+ 10 files changed, 496 insertions(+), 160 deletions(-)
+
+commit 92d904d5dd39221b2ab942c2cc59056a50b357cc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed May 1 15:40:13 2002 +0000
+
+ Try @pkgdatadir@/termcap/$TERM when reading termcap files. This fixes the
+
+ * src/vte.c: Try @pkgdatadir@/termcap/$TERM when reading termcap files. This fixes the app on systems
with no /etc/termcap, and also speeds up loads and reduces memory consumption for xterm-color at the expense
of making on-the-fly emulation changes impossible. Don't xor reverse with itself when drawing characters
(this broke when snapshotting was added).
+ * termcaps/Makefile.am, termcaps/xterm-color: include a default termcap for xterm-color.
+ * src/termcap.c src/termcap.h: make _find_boolean return a gboolean instead of an int.
+
+ ChangeLog | 11 +++++++++++
+ Makefile.am | 2 +-
+ configure.in | 10 +++++++++-
+ src/termcap.c | 15 ++++++++++++---
+ src/termcap.h | 4 ++--
+ src/vte.c | 18 +++++++++++++++---
+ termcaps/Makefile.am | 3 +++
+ termcaps/xterm-color | 27 +++++++++++++++++++++++++++
+ vte.spec | 6 +++++-
+ 9 files changed, 85 insertions(+), 11 deletions(-)
+
+commit 4461f119849629f1ecca1003e78113d8cc3aa8fc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 30 23:15:58 2002 +0000
+
+ Disconnect from toplevel configure events at finalize-time.
+
+ * src/vte.c: Disconnect from toplevel configure events at finalize-time.
+
+ ChangeLog | 4 ++++
+ src/vte.c | 11 ++++++++++-
+ vte.spec | 5 ++++-
+ 3 files changed, 18 insertions(+), 2 deletions(-)
+
+commit cdf1940aa5107ae317b8f3696e6bb0808f8c422f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 30 22:06:35 2002 +0000
+
+ Track and free idle task tags properly. Change F11 and F12 capabilities
+
+ * src/vte.c: Track and free idle task tags properly. Change F11 and F12
+ capabilities from 'k;' and 'F1' to 'F1' and 'F2'. Send a NUL on
+ control space. (#80350) Allow setting and checking of word characters,
+ and change select-by-word behavior to use the word character list. Emit
+ "contents_changed" signals whenever the visible contents change, and
+ "cursor_moved" when the cursor moves. Add snapshotting method. Scroll
+ when auto-margin handling moves the cursor to the next line. Assume
+ that the locale charset is actually ISO-8859-1 when we're in a UTF-8
+ locale, so we don't toggle from UTF-8 to UTF-8. Treat GDK_KP_Page_Up
+ as a GDK_Page_Up, ditto for GDK_KP_Page_Down and GDK_KP_Tab and
+ GDK_KP_Space. Add vte_terminal_get_font(). Don't bother messing with
+ ring buffers if we're resizing them to their current sizes.
+ * src/pty.c, src/vte.c: Return a pid from vte_terminal_fork_command().
+ * src/vteaccess.c, src/vteaccess.h: Add VteTerminalAccessible object type. It
+ might even work, mostly.
+
+ ChangeLog | 18 ++-
+ README | 2 +-
+ configure.in | 1 +
+ src/Makefile.am | 6 +-
+ src/pty.c | 1 +
+ src/vte.c | 545 +++++++++++++++++++++++++++++++++++---------
+ src/vte.h | 47 ++++-
+ src/vteaccess.c | 675 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/vteaccess.h | 63 +++++
+ vte.spec | 9 +-
+ 10 files changed, 1241 insertions(+), 126 deletions(-)
+
+commit 2c418085fcfbb5fbefcdc840b5b5ba516d4af849
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 29 18:55:55 2002 +0000
+
+ Track and free idle task tags properly.
+
+ * src/vte.c: Track and free idle task tags properly.
+
+ ChangeLog | 3 ++
+ src/vte.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++---------
+ 2 files changed, 73 insertions(+), 13 deletions(-)
+
+commit 93bd9f1619ada35b3f7248adf432adb5b3003808
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 29 18:23:06 2002 +0000
+
+ Handle me() by resetting all attributes (including colors, which we
+
+ * src/vte.c: Handle me() by resetting all attributes (including
+ colors, which we weren't resetting before).
+
+ ChangeLog | 6 +++++-
+ src/vte.c | 8 +-------
+ 2 files changed, 6 insertions(+), 8 deletions(-)
+
+commit d1f7309ea90e51362ae3627788ab6e66f675df31
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 29 15:02:15 2002 +0000
+
+ Handle kb by treating it as a backspace. Make pangox rendering the
+
+ * src/vte.c: Handle kb by treating it as a backspace. Make pangox
+ rendering the default. Handle control-key sequences better, unless
+ the input method is hiding the modifiers from us. Set the default
+ TERM variable to "xterm-color".
+ * src/vte.c src/vte.h: Get rid of vte_terminal_set_core_font().
+
+ ChangeLog | 7 ++++++
+ Makefile.am | 10 ++++++--
+ src/vte.c | 66 +++++++++++++++++++++++++++++++++------------------------
+ src/vte.h | 1 -
+ src/vteapp.c | 2 +-
+ vte.spec | 5 +++-
+ 6 files changed, 57 insertions(+), 34 deletions(-)
+
+commit 3031a899eaa0372f62ac8952f24b1217c846c520
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 26 23:15:43 2002 +0000
+
+ 0.2.1
+
+ vte.spec | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit fe80bf4b546886f7a7931a8abea3d722b6d54c2b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 26 23:15:17 2002 +0000
+
+ Punt all changes to background images and transparency to an idle task.
+
+ * src/vte.c: Punt all changes to background images and transparency
+ to an idle task. Only insert newlines into the copy buffer when the
+ last column in a given line doesn't have a character in it.
+
+ ChangeLog | 4 +++
+ src/vte.c | 62 +++++++++++++++++++++++++++++++++---------------------------
+ 2 files changed, 38 insertions(+), 28 deletions(-)
+
+commit 1be8627c33c2a83f2aadd432c9565598c00c25fb
+Author: Bill Nottingham <notting src gnome org>
+Date: Fri Apr 26 21:35:45 2002 +0000
+
+ use execlp/execvp
+
+ ChangeLog | 3 +++
+ src/pty.c | 10 +++-------
+ 2 files changed, 6 insertions(+), 7 deletions(-)
+
+commit d05e9f47035f0472ee8e4aabf1d9cb255c86e94e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 26 19:08:10 2002 +0000
+
+ *** empty log message ***
+
+ ChangeLog | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 03af8398a4c4f77d730d3fae304e87e5da04ad99
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 26 19:07:54 2002 +0000
+
+ set a default scrollback line limit of 100. preserve the visible part of
+
+ * src/vteapp.c: set a default scrollback line limit of 100.
+ * src/vte.c: preserve the visible part of the screen across scrollback size changes.
+
+ src/Makefile.am | 2 +-
+ src/vte.c | 99 ++++++++++++++++++++++++-------------------------------
+ src/vteapp.c | 1 +
+ 3 files changed, 45 insertions(+), 57 deletions(-)
+
+commit b1fd47d1a02451e17eca5408be6dee65f34d6055
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 26 16:22:13 2002 +0000
+
+ include config.h. fix adjustment calculations, which i didn't get quite
+
+ * src/ring.c: include config.h.
+ * src/vte.c: fix adjustment calculations, which i didn't get quite right.
+
+ ChangeLog | 2 +-
+ src/ring.c | 2 +-
+ src/vte.c | 3 +--
+ 3 files changed, 3 insertions(+), 4 deletions(-)
+
+commit 488314375b9bfa1133f1e87aef5e77c0abeff01c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 26 16:09:29 2002 +0000
+
+ add a ring buffer for storing scrollback data. use a ring buffer instead
+
+ * src/Makefile.am, src/ring.c, ring.h: add a ring buffer for storing scrollback data.
+ * src/vte.c: use a ring buffer instead of a GArray to hold scrollback rows.
+
+ ChangeLog | 5 +
+ src/Makefile.am | 10 ++-
+ src/ring.c | 292 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/ring.h | 41 ++++++++
+ src/vte.c | 183 ++++++++++++++++++++---------------
+ 5 files changed, 451 insertions(+), 80 deletions(-)
+
+commit 738726cf0382a15b9ae171d1c8c52d25ae2390fb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 26 04:49:30 2002 +0000
+
+ Run autogen before tagging so that the tag is always correct.
+ Update docs.
+ Add pangox to the list of GTK+ 2.0 modules we link with.
+ Add vte_terminal_set_scrollback_lines(), add some code to use pangox for rendering before trying core
rendering, which should make font selection actually work.
+
+ ChangeLog | 10 ++
+ Makefile.am | 12 +-
+ README | 9 +-
+ configure.in | 2 +-
+ src/vte.c | 296 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
+ src/vte.h | 2 +
+ src/vteapp.c | 4 +
+ vte.spec | 6 +-
+ 8 files changed, 303 insertions(+), 38 deletions(-)
+
+commit 32db0e81389b0f4df635c08c37139ade996f5d66
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 25 18:15:01 2002 +0000
+
+ Add the changelog.
+
+ ChangeLog | 518 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ vte.spec | 6 +-
+ 2 files changed, 523 insertions(+), 1 deletions(-)
+
+commit ee090d8d4753c9333ffb7571d1710fdca3033e41
+Author: Anders Carlsson <andersca src gnome org>
+Date: Thu Apr 25 17:22:25 2002 +0000
+
+ Add scroll wheel support.
+
+ src/vte.c | 27 +++++++++++++++++++++++++++
+ 1 files changed, 27 insertions(+), 0 deletions(-)
+
+commit 8d09ff93ed3b537e9d027fee64b26cf3a99c6538
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 25 16:23:46 2002 +0000
+
+ Uncomment the tag target.
+
+ Makefile.am | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit ff95c57897cfdac2193b1434231593ae8d862ac0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 25 16:22:36 2002 +0000
+
+ Add some targets for building tarballs in a hopefully-reproducible way.
+
+ HACKING | 5 ++---
+ Makefile.am | 21 +++++++++++++++++++++
+ configure.in | 2 +-
+ 3 files changed, 24 insertions(+), 4 deletions(-)
+
+commit cc4f7a860c0f4ee8deeabee24a14a81125d8556a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 25 16:12:01 2002 +0000
+
+ Let GDK_USE_XFT turn on Xft as well as VTE_USE_XFT.
+
+ * src/vte.c: Let GDK_USE_XFT turn on Xft as well as VTE_USE_XFT.
+
+ src/vte.c | 11 ++++++++++-
+ 1 files changed, 10 insertions(+), 1 deletions(-)
+
+commit 4f60fdbf12f68d9f7857b915fbbc518b9b661965
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 25 05:45:30 2002 +0000
+
+ Handle decoding errors better.
+
+ * src/vte.c: Handle decoding errors better.
+
+ configure.in | 2 +-
+ src/vte.c | 78 ++++++++++++++++++++++++++++++++++-----------------------
+ 2 files changed, 47 insertions(+), 33 deletions(-)
+
+commit 42c386e0c053bb8a46b9c156981b7619f56a98ec
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 25 04:49:26 2002 +0000
+
+ Include pkgconfig files in the package.
+
+ * vte.spec: Include pkgconfig files in the package.
+
+ vte.spec | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit c994ded78505c50389800a97a3dbe3009b4ff4c9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 25 04:43:36 2002 +0000
+
+ src/vte.c: Make multiple calls to set_background_transparent() and set_background_image() do the right
thing.
+
+ src/vte.c | 193 +++++++++++++++++++++++++++++++++++++++++-------------------
+ 1 files changed, 132 insertions(+), 61 deletions(-)
+
+commit f0efffbacfc8b5f8609656fbeff41d108b680f7e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 25 04:05:53 2002 +0000
+
+ Reverse the sanity check in vte_terminal_set_background_image_file() so
+
+ * src/vte.c: Reverse the sanity check in vte_terminal_set_background_image_file() so that it rejects
zero-length strings, not the other way around.
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit f4e3bb67144b3c2c7a5987a6a091a3140ef55c85
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 25 03:54:03 2002 +0000
+
+ Demote some debug messages to being trie-specific debug messages. Declare
+
+ * src/trie.c: Demote some debug messages to being trie-specific debug messages.
+ * src/vte.h: Declare vte_terminal_set_core_font() for non-Xft use.
+ * src/vte.c: Adjust idle priorities to make the terminal be more responsive; fix a double-free that
corrupted the heap on core font loads; rework some pixbuf handling; revert a patch for profterm crackiness
that's gone now.
+
+ src/trie.c | 2 +-
+ src/vte.c | 68 +++++++++++++++++++++++++++++++----------------------------
+ src/vte.h | 5 ++-
+ 3 files changed, 40 insertions(+), 35 deletions(-)
+
+commit b8f6f28089d5e98516b041de3aeebf34982bcb1a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Apr 25 00:49:15 2002 +0000
+
+ update to-do list. remove --disable-shared. remove a memory leak. fix a
+
+ * README: update to-do list.
+ * autogen.sh: remove --disable-shared.
+ * src/pty.c: remove a memory leak.
+ * src/termcap.c: fix a possible read-before-start-of-buffer.
+ * src/trie.c: use iconv instead of mbrstowcs, even if it's just ASCII->W_CHAR_T.
+ * src/vte.c: fix a few memory leaks; only reset the IM context when we're realized, which is the only
time we actually have an IM context; don't create a copy of a pixbuf if we don't need to desaturate it, just
ref it and use it directly.
+
+ README | 2 +-
+ autogen.sh | 2 +-
+ src/pty.c | 1 +
+ src/termcap.c | 2 +-
+ src/trie.c | 85 +++++++++++++++++++++++---------
+ src/vte.c | 151 +++++++++++++++++++++++++++++++++++++++++----------------
+ 6 files changed, 173 insertions(+), 70 deletions(-)
+
+commit 75356484dfead6c210c1fe83e912a85169bd71af
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 23 23:40:10 2002 +0000
+
+ src/vte.c: Display UTF-8 preedit strings properly, fix copy (no, really this time), and reset IM
contexts when pasting text in.
+
+ src/vte.c | 146 +++++++++++++++++++++++++++++++++++++++----------------------
+ 1 files changed, 94 insertions(+), 52 deletions(-)
+
+commit 1110318894ccf6a8f63b98a45741bd604f7840f5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 23 22:01:13 2002 +0000
+
+ src/pty.c: Print debug messages before redirecting stdio.
+ src/vte.c: Fix displaying of highlighted multi-column text.
+ Use the GTK global setting for cursor blinking to control das blinkencursor.
+ src/vte.h: Remove function for setting blinking timeout.
+
+ src/pty.c | 25 ++++---
+ src/vte.c | 230 +++++++++++++++++++++++++++++++++++++++++-------------------
+ src/vte.h | 1 -
+ 3 files changed, 171 insertions(+), 85 deletions(-)
+
+commit ef618352a20855f8657b66676aac2029f839b898
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 23 19:54:51 2002 +0000
+
+ src/pty.c: Fix a compile warning.
+
+ src/pty.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 6484fcbc85aa95f11cee920e4434b062ff3b7c21
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 23 19:54:08 2002 +0000
+
+ autogen.sh: Default to include optimization, even for debugging.
+ configure.in: Move AM_CONFIG_HEADER to the top.
+ src/pty.c: Create non-login shells by default (when argv is NULL).
+ src/vte.c: Add mostly-complete input method support.
+ src/vte.h: Add vte_terminal_im_append_menuitems().
+
+ autogen.sh | 2 +-
+ configure.in | 3 +-
+ src/pty.c | 6 +-
+ src/vte.c | 760 ++++++++++++++++++++++++++++++++++++++++++----------------
+ src/vte.h | 5 +-
+ 5 files changed, 555 insertions(+), 221 deletions(-)
+
+commit bf831313bd700377003fef57a698fced01ef1241
+Author: Havoc Pennington <hp src gnome org>
+Date: Tue Apr 23 17:04:33 2002 +0000
+
+ add vte_terminal_set_font
+
+ src/vte.c | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
+ src/vte.h | 3 +
+ 2 files changed, 212 insertions(+), 42 deletions(-)
+
+commit 58c4e09569873a8ffc82f85c29581643487fad82
+Author: Havoc Pennington <hp src gnome org>
+Date: Mon Apr 22 21:00:44 2002 +0000
+
+ when setting background color, use allocated color, and don't overwrite with bg of None
+
+ src/vte.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+commit 6cc8c68d2e521dc1378145257f56a12a3ce30e86
+Author: Havoc Pennington <hp src gnome org>
+Date: Mon Apr 22 20:50:01 2002 +0000
+
+ use gdk_rgb_find_color to allocate X colors
+
+ src/vte.c | 20 +++++++++-----------
+ 1 files changed, 9 insertions(+), 11 deletions(-)
+
+commit 88ee13eaba3955ff8aa25bf2e4b5a8d52c80c2bb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 22 20:35:47 2002 +0000
+
+ Add vte_terminal_feed_child() to send UTF-8 strings to the child process, and
+ actually apply Havoc's fix right this time.
+
+ src/vte.c | 17 ++++++++++++++---
+ src/vte.h | 3 +++
+ src/vteapp.c | 1 +
+ 3 files changed, 18 insertions(+), 3 deletions(-)
+
+commit 8421ed85f076ed9e1b72adce56c75e22d1a04ba9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Apr 22 13:56:00 2002 +0000
+
+ src/vte.c: Prevent double-free of incoming buffer (patch from Havoc).
+
+ src/vte.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+commit 6acf490a78630612a06a51c2cf828a4a08935296
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Apr 16 05:43:26 2002 +0000
+
+ Fix typo. Make blinking cursors stay on while the user is typing,
+
+ * README: Fix typo.
+ * src/vte.c: Make blinking cursors stay on while the user is typing, desaturate images using integer
math.
+
+ README | 2 +-
+ src/vte.c | 81 +++++++++++++++++++++++++++++++++++++++++++++++++-----------
+ 2 files changed, 67 insertions(+), 16 deletions(-)
+
+commit dbcb45e80b601817dfdf31f26687c8570a811594
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Apr 5 05:58:37 2002 +0000
+
+ Add less useless descriptions. Fix an uninitialized variable and missing
+
+ * vte.spec: Add less useless descriptions.
+ * src/vte.c: Fix an uninitialized variable and missing declaration error.
+
+ src/vte.c | 3 ++-
+ vte.spec | 8 +++++---
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+commit aa147f19aada24e6b0f49e9ab86116f24af7e7bc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 25 02:52:02 2002 +0000
+
+ Ensure that there's a data row whenever we scroll forward, fixing
+
+ * src/vte.c: Ensure that there's a data row whenever we scroll forward, fixing strangeness when I
suspend and resume vim.
+
+ src/vte.c | 40 +++++++++++++++++++++++++++++++++-------
+ 1 files changed, 33 insertions(+), 7 deletions(-)
+
+commit 2cae3586debcdc823932236cd8119b4441178304
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 25 00:08:36 2002 +0000
+
+ copy to clipboard synchronously, which fixes a number of problems
+
+ * src/vte.c: copy to clipboard synchronously, which fixes a number of problems
+ implement background transparency
+ * src/vteapp.c: no changes(?)
+
+ src/vte.c | 405 ++++++++++++++++++++++++++++++++++++++++++++++++-------------
+ 1 files changed, 322 insertions(+), 83 deletions(-)
+
+commit 754c595a6cace97331f4ae5e94e4d5b3c3113f29
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 18 01:59:22 2002 +0000
+
+ Rework backgrounds to take advantage of gdk's automatic drawing. Try to
+
+ * vte.c: Rework backgrounds to take advantage of gdk's automatic drawing.
+ * vteapp.c: Try to enable transparency if no background image is present.
+
+ src/vte.c | 182 ++++++++++++++++++++++++++++-----------------------------
+ src/vte.h | 3 +-
+ src/vteapp.c | 12 +++-
+ 3 files changed, 100 insertions(+), 97 deletions(-)
+
+commit c395df9bf8463fd367af146c3ab317b1c3ca9b96
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 18 01:58:34 2002 +0000
+
+ Adjust warnings used when in maintainer mode.
+
+ * autogen.sh configure.in: Adjust warnings used when in maintainer mode.
+
+ autogen.sh | 4 +---
+ configure.in | 9 +++++++++
+ 2 files changed, 10 insertions(+), 3 deletions(-)
+
+commit ddf32b9455806ea339040d4aae4d556eae05236f
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Mar 17 06:15:45 2002 +0000
+
+ Draw the cursor as an unfilled box when the widget does not have focus.
+
+ * src/vte.c: Draw the cursor as an unfilled box when the widget does not have focus.
+
+ src/vte.c | 46 +++++++++++++++++++++++++++++++---------------
+ 1 files changed, 31 insertions(+), 15 deletions(-)
+
+commit 8b429a79a9eefcacc0f3edd07fe44d94e5242851
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Mar 17 06:04:02 2002 +0000
+
+ Fix handling of scroll-on-output to always scroll when we're at the bottom
+
+ * src/vte.c: Fix handling of scroll-on-output to always scroll when we're at the bottom of the buffer.
+ * src/vteapp.c: Disable scroll-on-output by default.
+
+ src/vte.c | 11 +++++++----
+ src/vteapp.c | 2 +-
+ 2 files changed, 8 insertions(+), 5 deletions(-)
+
+commit 0d351fd6824f1b081a6dc559573ced5e0d20c5f2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Mar 17 05:46:00 2002 +0000
+
+ Rework tiling of background images, and implement a blinking cursor. Set
+
+ * src/vte.c src/vte.h: Rework tiling of background images, and implement a blinking cursor.
+ * src/vteapp.c: Set blinking cursor by default.
+
+ src/vte.c | 214 ++++++++++++++++++++++++++++-----------------------------
+ src/vte.h | 4 +-
+ src/vteapp.c | 1 +
+ 3 files changed, 109 insertions(+), 110 deletions(-)
+
+commit 2e09448fcfa06e92e8b7c272c8fde4fe277a58aa
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 14 07:58:34 2002 +0000
+
+ Corrections to some xterm control sequences.
+
+ * caps.c: Corrections to some xterm control sequences.
+
+ src/caps.c | 21 +++++++++++++++++++--
+ 1 files changed, 19 insertions(+), 2 deletions(-)
+
+commit 68b3c69e860cf423352f9cb14f53f0450ba8185e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 14 07:32:12 2002 +0000
+
+ Define PACKAGE correctly. Move most of the tear-down code into the widget
+
+ * configure.in: Define PACKAGE correctly.
+ * src/vte.c src/vteapp.c: Move most of the tear-down code into the widget finalize method; handle EOF
and widget destruction correctly to prevent segfaults.
+
+ configure.in | 2 +-
+ src/vte.c | 95 ++++++++++++++++++++++++++++++++++------------------------
+ src/vteapp.c | 13 +++++++-
+ 3 files changed, 69 insertions(+), 41 deletions(-)
+
+commit b28d242a31672b3717b615ed178d8703280e2f75
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 14 05:48:43 2002 +0000
+
+ Define PACKAGE.
+
+ * configure.in: Define PACKAGE.
+
+ configure.in | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 447b6cc57780fb500dbcda9bf87401a58fe9ca09
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 14 05:18:44 2002 +0000
+
+ Disable gdk-pixbuf's deprecated functions. Discard non-ascii bytes to
+
+ * configure.in: Disable gdk-pixbuf's deprecated functions.
+ * vte.c: Discard non-ascii bytes to clear logjams that happen when we pass invalid terminal data to
iconv().
+
+ configure.in | 1 +
+ src/vte.c | 31 +++++++++++++++++++++++++++++--
+ 2 files changed, 30 insertions(+), 2 deletions(-)
+
+commit aeee76e236204a2ba95aca6b026048f77fd61d21
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 14 04:07:14 2002 +0000
+
+ fix missing includes implement background color setting, provide a
+
+ * iso8859mode.c utf8mode.c: fix missing includes
+ * vte.c vte.h: implement background color setting, provide a function for setting the defaults, tile
background images properly
+
+ src/iso8859mode.c | 1 +
+ src/utf8mode.c | 1 +
+ src/vte.c | 213 ++++++++++++++++++++++++++++++++++++++++-------------
+ src/vte.h | 7 ++
+ 4 files changed, 172 insertions(+), 50 deletions(-)
+
+commit 0b4037f448c393088c32b6e4e76aedf6319e035d
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Mar 14 02:12:38 2002 +0000
+
+ Remove gdk-pixbuf-xlib dependency by using just gdk-pixbuf. Perform
+
+ * configure.in vte.pc.in vte.c: Remove gdk-pixbuf-xlib dependency by using just gdk-pixbuf.
+ * vte.c: Perform background image desaturation locally.
+
+ configure.in | 2 +-
+ src/vte.c | 97 ++++++++++++++++++++++++++++-----------------------------
+ vte.pc.in | 2 +-
+ 3 files changed, 50 insertions(+), 51 deletions(-)
+
+commit 2259b22d1aa442d5e8f6f4865de4634d1d317363
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 13 19:37:30 2002 +0000
+
+ Don't add the widget's allocation offsets when generating expose events.
+
+ * vte.c: Don't add the widget's allocation offsets when generating expose events.
+
+ src/vte.c | 20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
+commit c8bf38ef87850d05fa7f0292128fbfc0e8d5d8f0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 13 19:22:58 2002 +0000
+
+ *vteapp.c: Don't try to use transparency for now.
+
+ src/vteapp.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit b752f2657c36eac80bcf5e07b28d7bd0f75e3951
+Author: Anders Carlsson <andersca src gnome org>
+Date: Wed Mar 13 18:29:20 2002 +0000
+
+ Add more functions that profterm can use.
+
+ src/vte.c | 24 ++++++++++++++++++++++++
+ src/vte.h | 2 ++
+ 2 files changed, 26 insertions(+), 0 deletions(-)
+
+commit 80d58364fb8f3021d006d1569416fb23ad91e8dd
+Author: Anders Carlsson <andersca src gnome org>
+Date: Wed Mar 13 17:51:53 2002 +0000
+
+ Silent cvs and add gdk-pixbuf-xlib to depends in the .pc.in file
+
+ .cvsignore | 12 ++++++++++++
+ vte.pc.in | 2 +-
+ 2 files changed, 13 insertions(+), 1 deletions(-)
+
+commit 0810dc20a20fba7efca5f5a454b16970d0a21518
+Author: Anders Carlsson <andersca src gnome org>
+Date: Wed Mar 13 17:37:48 2002 +0000
+
+ Sliff sloff
+
+ src/.cvsignore | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit e7ffae48af31fa9bcff3aebcf1d4dba0c3ed2ae3
+Author: Anders Carlsson <andersca src gnome org>
+Date: Wed Mar 13 17:37:20 2002 +0000
+
+ sssh
+
+ src/.cvsignore | 7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+commit 2ed604fd59343a95542bbee9854aa40aded48552
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 13 17:19:56 2002 +0000
+
+ Add gdk-pixbuf-xlib-2.0 as a module requirement.
+
+ * configure.in: Add gdk-pixbuf-xlib-2.0 as a module requirement.
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 5b68ef885663950b30e0732154da3154a9bf27f8
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 13 06:21:56 2002 +0000
+
+ Add set_size, set_audible_bell, set_scroll_on_output,
+
+ * vte.c: Add set_size, set_audible_bell, set_scroll_on_output,
+ set_scroll_on_keystroke, copy_clipboard, paste_clipboard,
+ set_background_image, set_background_image_file, and
+ set_background_saturation. Also added a broken
+ set_background_transparent.
+ * vte.h: Add prototypes for those new functions.
+
+ src/vte.c | 446 +++++++++++++++++++++++++++++++++++++++++++++++-----------
+ src/vte.h | 14 ++-
+ src/vteapp.c | 8 +
+ 3 files changed, 386 insertions(+), 82 deletions(-)
+
+commit b16f2340ca3072b8a172cdd2cdbf4cf0694c3925
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 13 03:35:47 2002 +0000
+
+ fix the name of a declared function (was _set_size, is _size_set)
+
+ * vte.c: fix the name of a declared function (was _set_size, is _size_set)
+
+ src/vte.h | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 6733e2ed80ef9f104af4da5fd5e45260ce067803
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 13 03:11:07 2002 +0000
+
+ Get rid of a global copy of the parent class. Implement ec, ic, and IC
+
+ * vte.c: Get rid of a global copy of the parent class.
+ * vte.c: Implement ec, ic, and IC handlers.
+
+ src/vte.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++-------
+ 1 files changed, 99 insertions(+), 13 deletions(-)
+
+commit 6ef5042c4cf08a28ddefbaf430ff2fedd4e6435a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 13 03:10:01 2002 +0000
+
+ Fix a typo in a comment (we don't "omit" signals).
+
+ * vte.h: Fix a typo in a comment (we don't "omit" signals).
+
+ src/vte.h | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+commit c7b1550d69b13d95700f12d054664abe476bd568
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 12 20:48:30 2002 +0000
+
+ caps.c: Recognize xterm cursor-character-absolute sequence.
+ vte.c: Handle cursor-character-absolute.
+ vte.c: Change the default font to "mono" 14 point when using Xft.
+
+ src/caps.c | 2 ++
+ src/vte.c | 16 ++++++++++++++--
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+commit d3994081b99ef854365a08665dd5bfd8541a02a7
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 12 20:22:57 2002 +0000
+
+ Handle the ve (cursor visible) control sequence.
+
+ * vte.c: Handle the ve (cursor visible) control sequence.
+
+ src/vte.c | 16 ++++++++++++++--
+ 1 files changed, 14 insertions(+), 2 deletions(-)
+
+commit 81af00a67fa68b3d8103a864537be5cfaa89dc13
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 12 20:19:09 2002 +0000
+
+ vte.c: Handle dec private mode set (cursor visibility).
+
+ src/vte.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+commit 5f5600122d32114887a78a842164b836f59a706a
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 12 20:13:23 2002 +0000
+
+ fix signed/unsigned problems (fixes from alexl) fix signed/unsigned
+
+ * vte.c: fix signed/unsigned problems (fixes from alexl)
+ * vte.h: fix signed/unsigned problems (fixes from alexl)
+ * vteapp.h: fix signed/unsigned problems (fixes from alexl)
+
+ src/vte.c | 24 ++++++++++++------------
+ src/vte.h | 8 ++++----
+ 2 files changed, 16 insertions(+), 16 deletions(-)
+
+commit 04839fb9aa22138d6aa2e13859bf6e4a5454bf82
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 12 01:29:09 2002 +0000
+
+ Make scroll-on-output scroll on control sequences, too.
+
+ * src/vte.c: Make scroll-on-output scroll on control sequences, too.
+
+ src/vte.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 250cc8e6ea15f9cb6dfbcbd88888ae0086682e69
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 12 01:19:40 2002 +0000
+
+ utf8mode.c: Add simple programs for moving a terminal in and out of UTF-8 mode.
+ iso8859mode.c: Add simple programs for moving a terminal in and out of UTF-8 mode.
+ vte.c: Be more verbose about iconv() errors.
+ vte.c: Implement dc and DC handlers.
+ vte.c: Handle auto-wrapping (the "am" flag).
+ vte.c: Remove scrolling cheats from the al handler, which made the window jump.
+
+ src/Makefile.am | 2 +-
+ src/iso8859mode.c | 28 +++++++++++
+ src/utf8mode.c | 28 +++++++++++
+ src/vte.c | 138 +++++++++++++++++++++++++++++++++++++++++++++++------
+ 4 files changed, 180 insertions(+), 16 deletions(-)
+
+commit 2b86603f0b80d70ff6e56cf953d2a9c357e9e636
+Author: Anders Carlsson <andersca src gnome org>
+Date: Mon Mar 11 07:39:01 2002 +0000
+
+ Add a finalize handler and free our title strings there.
+
+ src/vte.c | 24 ++++++++++++++++++++++++
+ 1 files changed, 24 insertions(+), 0 deletions(-)
+
+commit 7e61493272a33f3002236845f37d5c0d1e189138
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 11 07:05:47 2002 +0000
+
+ Emit "window_title_changed" and "icon_title_changed" when the titles change,
+ and store the new values in a public field so that a handler can retrieve the
+ values (patch from Anders Carlsson).
+
+ Makefile.am | 5 ++++-
+ configure.in | 2 +-
+ src/vte.c | 46 +++++++++++++++++++++++++---------------------
+ src/vte.h | 7 +++++--
+ src/vteapp.c | 16 +++++++++-------
+ 5 files changed, 44 insertions(+), 32 deletions(-)
+
+commit 2ce24ceee46f1cd0a76049ba93401fd81a175af1
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 11 06:54:51 2002 +0000
+
+ Add vte.pc, from Anders Carlsson.
+
+ vte.pc.in | 11 +++++++++++
+ 1 files changed, 11 insertions(+), 0 deletions(-)
+
+commit af1e14f4df40467c9e58404df6eb5599099927ae
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 11 06:47:00 2002 +0000
+
+ Fix a duplicate-idle-handler bug.
+
+ src/vte.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit e5635e58ef60f02e85d3beaf02e728abc7442f78
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 11 06:32:38 2002 +0000
+
+ Fix selection (except maybe the end-of-line stuff).
+
+ README | 2 -
+ src/vte.c | 215 ++++++++++++++++++++++++++++++++++++++++++++++++++++---------
+ 2 files changed, 183 insertions(+), 34 deletions(-)
+
+commit fbde287badd3796f5f74fbee40da373028ae8aaf
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 11 04:44:31 2002 +0000
+
+ Whoops, I broke selection. Fix that.
+ Implement selection by lines.
+
+ src/vte.c | 99 +++++++++++++++++++++++++++++++++++-------------------------
+ 1 files changed, 58 insertions(+), 41 deletions(-)
+
+commit 4b4d66d149c9b09a675fdcaa66ce75b29a5f0131
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 11 04:08:40 2002 +0000
+
+ Move character rendering into a common function so that the cursor is always
+ drawn the same as other characters (fixes previous glitches when using Xft and
+ when the cursor was over an alternate charset character).
+
+ src/vte.c | 814 ++++++++++++++++++++++++++++++-------------------------------
+ 1 files changed, 404 insertions(+), 410 deletions(-)
+
+commit 2c16599aa7d02b05831c09611617b86deafbf8c3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Mar 10 08:31:21 2002 +0000
+
+ Differentiate between single, double, and triple-click for selection (still
+ need to do something with that info).
+
+ src/vte.c | 38 ++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 38 insertions(+), 0 deletions(-)
+
+commit 77f6cd58035ae91fb5bcb7b70b94c4594cb48ca3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Mar 10 08:16:27 2002 +0000
+
+ remove this file
+
+ stamp-h.in | 1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+commit 712c4627c927b77b9395c3edee321602bcf3da63
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Mar 10 08:15:22 2002 +0000
+
+ Don't check for pango because we never call pango directly.
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 2536962bd099729a6066581548d6144b9a28cfbb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Mar 10 08:13:06 2002 +0000
+
+ Deselect properly when something else is inserted into the clipboard.
+
+ src/vte.c | 173 ++++++++++++++++++++++++++++++++++++++++---------------------
+ 1 files changed, 114 insertions(+), 59 deletions(-)
+
+commit 2c5ff4b02a7ae83f21e8654d1f0ad4463a18cb55
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sun Mar 10 07:26:22 2002 +0000
+
+ Fix wide-character handling (now handles mid-stream encoding changes correctly).
+ Updates to the meager docs.
+
+ AUTHORS | 1 +
+ HACKING | 5 +-
+ README | 16 +-
+ src/utf8echo.c | 4 +-
+ src/vte.c | 639 +++++++++++++++++++++++++++++++++++---------------------
+ 5 files changed, 411 insertions(+), 254 deletions(-)
+
+commit df735564cf119c3d27d4d3bcb5d92ce57d9853d9
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Mar 9 07:41:56 2002 +0000
+
+ Add a .spec file (make dist; rpm -ts vte*.tar.gz; rpm --rebuild) to make
+ building a package easier.
+
+ Makefile.am | 1 +
+ src/Makefile.am | 1 +
+ vte.spec | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 51 insertions(+), 0 deletions(-)
+
+commit 53c5da226b4959b8bd14fde37ebfd1de66c5fc81
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Mar 9 07:24:45 2002 +0000
+
+ skip over space columns when selecting
+
+ src/vte.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 57b54bb8340aae966384db4e6e82295b7c0dfdec
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Mar 9 07:20:49 2002 +0000
+
+ Use a login shell by default.
+
+ src/pty.c | 10 ++++++++--
+ src/vteapp.c | 1 +
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+commit 7501f2526afcd6452523050809726d6fd010b50b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Sat Mar 9 07:10:50 2002 +0000
+
+ Rework input queueing to allow for feeding without a pty.
+ Use gdk_window_scroll() in _al and _up handlers, and in the _do handler,
+ because it's usually faster.
+
+ src/vte.c | 645 +++++++++++++++++++++++++++++++++++-----------------------
+ src/vte.h | 46 +---
+ src/vteapp.c | 9 +
+ 3 files changed, 414 insertions(+), 286 deletions(-)
+
+commit c7a90a418e5f9917d47fbc5f51066a412ced388b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Mar 8 07:52:56 2002 +0000
+
+ Implement copy and almost-correct selection highlighting.
+
+ src/vte.c | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
+ 1 files changed, 243 insertions(+), 49 deletions(-)
+
+commit 2d110c873cb76c558bc1b210a0de630dfc46cf91
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Fri Mar 8 02:30:31 2002 +0000
+
+ Use a queue for pasting data.
+ Try to get dragging detected right (doesn't work).
+
+ src/vte.c | 312 ++++++++++++++++++++++++++++++++++++++++--------------------
+ 1 files changed, 208 insertions(+), 104 deletions(-)
+
+commit cc0a80eacdec88a5ed6689d98e7714e5abe91b30
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 6 00:21:56 2002 +0000
+
+ Mark the beginning of a selected area.
+
+ src/vte.c | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+commit c49c8873ac418e0cd290fb3566e062fb72089868
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 6 00:17:32 2002 +0000
+
+ Make pasting asynchronous.
+
+ src/vte.c | 23 ++++++++++++++---------
+ 1 files changed, 14 insertions(+), 9 deletions(-)
+
+commit 459e966538973c1d6f8afba469f35ec3a29de058
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 6 00:07:30 2002 +0000
+
+ actually free clipboard data when finished with it
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit b345ca1e8d0f54ea99ac27ebce6a073df7cbad66
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Mar 6 00:02:33 2002 +0000
+
+ Implement middle-button paste.
+
+ src/vte.c | 38 +++++++++++++++++++++++++++++++++-----
+ 1 files changed, 33 insertions(+), 5 deletions(-)
+
+commit 10a34b72206d08f31fdc33335e04228ac9ee432c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 5 23:55:03 2002 +0000
+
+ Properly convert from utf-8 or wchar_t strings when sending data to the
+ pseudo-terminal.
+
+ src/vte.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++--------
+ 1 files changed, 79 insertions(+), 12 deletions(-)
+
+commit 62c68d4f4b406e284449dcbecc380bad32d406f5
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 5 00:53:46 2002 +0000
+
+ Implement shift/pgup/pgdown scrolling.
+ Make scroll-on-keypress and -on-output easier to toggle.
+
+ src/vte.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------
+ 1 files changed, 56 insertions(+), 9 deletions(-)
+
+commit 6d48ff66daa142a878c86190a5c8db208fd3b510
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 5 00:26:31 2002 +0000
+
+ Spec out the rest of the alternate characters I haven't implemented yet.
+ Remove a function that can't be easily written (scroll_rows).
+ Correctly update the insertion delta when scrolling, to fix man(1) again.
+
+ src/vte.c | 51 +++++++++++++++++++++++++++++----------------------
+ 1 files changed, 29 insertions(+), 22 deletions(-)
+
+commit a2f0f68089632451d81b19c7f84dcbef9fdf5686
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Tue Mar 5 00:16:04 2002 +0000
+
+ Discard redundant cursor-position exposes.
+
+ src/vte.c | 50 ++++++++++----------------------------------------
+ 1 files changed, 10 insertions(+), 40 deletions(-)
+
+commit 41c8e20f65e616d2c01d3facb7be2a9fab637569
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 4 23:57:21 2002 +0000
+
+ Use ssize_t to measure string offsets in termcap, and don't assume that all
+ capabilities have values. This fixes some nasty crashes.
+
+ src/termcap.c | 48 ++++++++++++++++++++++++------------------------
+ src/termcap.h | 2 +-
+ src/vte.c | 2 +-
+ 3 files changed, 26 insertions(+), 26 deletions(-)
+
+commit 78f1d3381bf14b7bd2ecbd9269e20b00f5ec69d0
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 4 16:53:05 2002 +0000
+
+ add a missing bounds-check in the erase-in-row function
+
+ src/vte.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+commit 41bcc218b89103794be0cedbe9403ffa58e2b217
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 4 06:13:49 2002 +0000
+
+ Send the slave pty's erase character when the user hits backspace.
+
+ README | 3 ++-
+ src/vte.c | 11 ++++++++---
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+commit bb07d83e90995a955a297e7b9c0c2d26ff2ca43c
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 4 05:59:45 2002 +0000
+
+ Draw cursors to fill the entire cell.
+ Draw the blank alternate character (ooh, tough).
+ Remove a redundant expose.
+
+ src/vte.c | 56 ++++++++++++++++++++++++--------------------------------
+ 1 files changed, 24 insertions(+), 32 deletions(-)
+
+commit 8d6546f50f7de1d52abd4e7d0a75e73286c1492e
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 4 04:49:32 2002 +0000
+
+ stop using wcsnlen, which is a GNU extension
+
+ src/trie.c | 13 ++++++++++++-
+ 1 files changed, 12 insertions(+), 1 deletions(-)
+
+commit be85096e1b976a45e242e84665ac5f32e9b88a83
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 4 04:43:48 2002 +0000
+
+ Add support for the line-drawing characters in the special characters and line-
+ drawing character set. (See [http://vt100.net/docs/vt102-ug/table5-13.html].)
+
+ src/caps.h | 4 +-
+ src/pty.h | 4 +-
+ src/termcap.h | 4 +-
+ src/trie.h | 4 +-
+ src/vte.c | 269 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
+ src/vte.h | 5 +-
+ 6 files changed, 274 insertions(+), 16 deletions(-)
+
+commit d28784479bb8600b64f13f902df2aff3eed22a67
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Mar 4 02:57:53 2002 +0000
+
+ Properly differentiate insertion delta (working screen) from scrolling delta.
+ Add environment setting to the pty code.
+
+ src/pty.c | 42 +++++++++---
+ src/pty.h | 3 +-
+ src/vte.c | 219 +++++++++++++++++++++++++++++++-----------------------------
+ 3 files changed, 147 insertions(+), 117 deletions(-)
+
+commit fa1f908159070fbf22e2d2bdd550328e8fe9767b
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Thu Feb 28 02:54:56 2002 +0000
+
+ Make the Xft support use long-lived data items.
+ Clean up a lot of other Xft-related code.
+
+ src/trie.c | 6 +-
+ src/vte.c | 805 +++++++++++++++++++++++++++++++++--------------------------
+ src/vte.h | 64 +-----
+ 3 files changed, 456 insertions(+), 419 deletions(-)
+
+commit 80e765769cde3af80508de06e3b1819e14b65ad3
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Feb 27 15:45:02 2002 +0000
+
+ actually hook up the nd handler to the "nd" sequence
+
+ src/vte.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit 7061e97b13f9e496a189a80f5bd57766ce322bcc
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Wed Feb 27 05:05:16 2002 +0000
+
+ - Add sub-optimal Xft rendering (set VTE_USE_XFT to "1" to try it); still
+ needs quite a bit of work to be useful.
+ - Implement character-position-absolute and line-position-absolute, which I
+ think are the only sequences which emacs uses and which weren't implemented.
+
+ autogen.sh | 3 +
+ configure.in | 14 +++++-
+ src/vte.c | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
+ src/vte.h | 5 ++-
+ 4 files changed, 164 insertions(+), 24 deletions(-)
+
+commit 180a6eb79a3afdc4ca536ea0cd598352bb010011
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 25 17:43:15 2002 +0000
+
+ distcheck fixes
+
+ src/Makefile.am | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit e60a3d6bd6beec15cd3bc23a6f55faac43f8c1bb
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 25 17:41:30 2002 +0000
+
+ add that line-drawing does not work to README
+
+ README | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+commit 7739e1b896eb248fe6855e6f8dbf109b95879770
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 25 17:40:17 2002 +0000
+
+ tree fixups
+
+ configure.in | 1 +
+ src/Makefile.am | 9 +++++----
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+commit 04158af635b73d321489484276dec578b0afb5ee
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 25 17:38:27 2002 +0000
+
+ fix autoconf reference file problem
+
+ configure.in | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+commit bc8eb95c2f67e9aa7e4d2b52e5c8040242545177
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 25 17:38:06 2002 +0000
+
+ remove stuff which should never have been added
+
+ src/Makefile.in | 513 -------------------------------------------------------
+ 1 files changed, 0 insertions(+), 513 deletions(-)
+
+commit 4d9e5b9dd24b4d56f8e463abbfc365c747668be2
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 25 17:37:31 2002 +0000
+
+ rename configure.ac to configure.in, remove 2.5isms
+
+ configure.ac => configure.in | 1 -
+ src/Makefile.in | 614 +++++++++++++++++++-----------------------
+ 2 files changed, 275 insertions(+), 340 deletions(-)
+
+commit 5d753e874d0c821df033b4e94e2a39cbb24d2616
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 25 17:35:22 2002 +0000
+
+ remove stuff that should never have been in there
+
+ Makefile.in | 419 --
+ aclocal.m4 | 4130 -----------------
+ config.h.in | 49 -
+ configure | 9124 -------------------------------------
+ doc/ctlseqs.ps | 8729 -----------------------------------
+ doc/vttest-20011130/BUGS | 19 -
+ doc/vttest-20011130/CHANGES | 344 --
+ doc/vttest-20011130/COPYING | 23 -
+ doc/vttest-20011130/MANIFEST | 43 -
+ doc/vttest-20011130/README | 67 -
+ doc/vttest-20011130/aclocal.m4 | 59 -
+ doc/vttest-20011130/charsets.c | 478 --
+ doc/vttest-20011130/color.c | 600 ---
+ doc/vttest-20011130/config.cache | 40 -
+ doc/vttest-20011130/config.h | 53 -
+ doc/vttest-20011130/config.hin | 52 -
+ doc/vttest-20011130/config.log | 105 -
+ doc/vttest-20011130/config.status | 279 --
+ doc/vttest-20011130/configure | 1625 -------
+ doc/vttest-20011130/configure.in | 48 -
+ doc/vttest-20011130/descrip.mms | 94 -
+ doc/vttest-20011130/esc.c | 968 ----
+ doc/vttest-20011130/esc.h | 190 -
+ doc/vttest-20011130/install.sh | 238 -
+ doc/vttest-20011130/keyboard.c | 1080 -----
+ doc/vttest-20011130/main.c | 1382 ------
+ doc/vttest-20011130/makefile | 171 -
+ doc/vttest-20011130/makefile.in | 172 -
+ doc/vttest-20011130/mkdirs.sh | 32 -
+ doc/vttest-20011130/mouse.c | 441 --
+ doc/vttest-20011130/nonvt100.c | 437 --
+ doc/vttest-20011130/patchlev.h | 3 -
+ doc/vttest-20011130/printer.c | 198 -
+ doc/vttest-20011130/reports.c | 510 ---
+ doc/vttest-20011130/reset.c | 84 -
+ doc/vttest-20011130/setup.c | 298 --
+ doc/vttest-20011130/sixel.c | 303 --
+ doc/vttest-20011130/status.c | 102 -
+ doc/vttest-20011130/tech.set | 96 -
+ doc/vttest-20011130/ttymodes.c | 300 --
+ doc/vttest-20011130/ttymodes.h | 21 -
+ doc/vttest-20011130/unix_io.c | 196 -
+ doc/vttest-20011130/vms_io.c | 405 --
+ doc/vttest-20011130/vmsbuild.com | 163 -
+ doc/vttest-20011130/vt220.c | 463 --
+ doc/vttest-20011130/vt420.c | 1615 -------
+ doc/vttest-20011130/vt52.c | 235 -
+ doc/vttest-20011130/vttest | Bin 426799 -> 0 bytes
+ doc/vttest-20011130/vttest.1 | 47 -
+ doc/vttest-20011130/vttest.h | 270 --
+ doc/vttest-20011130/vttest.lsm | 15 -
+ doc/vttest-20011130/xterm.c | 401 --
+ 52 files changed, 0 insertions(+), 37216 deletions(-)
+
+commit c8bad5955bbe3d0a69165e5bf050678dd70d03ae
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 25 17:30:22 2002 +0000
+
+ imported from private cvs
+
+commit 38fb480261b192dd73a8edcd22599d0d2fe57f67
+Author: Nalin Dahyabhai <nalin src gnome org>
+Date: Mon Feb 25 17:30:22 2002 +0000
+
+ Initial revision
+
+ COPYING | 482 ++
+ HACKING | 4 +
+ Makefile.am | 1 +
+ Makefile.in | 419 ++
+ README | 40 +
+ aclocal.m4 | 4130 +++++++++++++++++
+ autogen.sh | 11 +
+ config.h.in | 49 +
+ configure | 9124 +++++++++++++++++++++++++++++++++++++
+ configure.ac | 32 +
+ doc/ctlseqs.ms | 1647 +++++++
+ doc/ctlseqs.ps | 8729 +++++++++++++++++++++++++++++++++++
+ doc/readme.txt | 4 +
+ doc/vttest-20011130/BUGS | 19 +
+ doc/vttest-20011130/CHANGES | 344 ++
+ doc/vttest-20011130/COPYING | 23 +
+ doc/vttest-20011130/MANIFEST | 43 +
+ doc/vttest-20011130/README | 67 +
+ doc/vttest-20011130/aclocal.m4 | 59 +
+ doc/vttest-20011130/charsets.c | 478 ++
+ doc/vttest-20011130/color.c | 600 +++
+ doc/vttest-20011130/config.cache | 40 +
+ doc/vttest-20011130/config.h | 53 +
+ doc/vttest-20011130/config.hin | 52 +
+ doc/vttest-20011130/config.log | 105 +
+ doc/vttest-20011130/config.status | 279 ++
+ doc/vttest-20011130/configure | 1625 +++++++
+ doc/vttest-20011130/configure.in | 48 +
+ doc/vttest-20011130/descrip.mms | 94 +
+ doc/vttest-20011130/esc.c | 968 ++++
+ doc/vttest-20011130/esc.h | 190 +
+ doc/vttest-20011130/install.sh | 238 +
+ doc/vttest-20011130/keyboard.c | 1080 +++++
+ doc/vttest-20011130/main.c | 1382 ++++++
+ doc/vttest-20011130/makefile | 171 +
+ doc/vttest-20011130/makefile.in | 172 +
+ doc/vttest-20011130/mkdirs.sh | 32 +
+ doc/vttest-20011130/mouse.c | 441 ++
+ doc/vttest-20011130/nonvt100.c | 437 ++
+ doc/vttest-20011130/patchlev.h | 3 +
+ doc/vttest-20011130/printer.c | 198 +
+ doc/vttest-20011130/reports.c | 510 +++
+ doc/vttest-20011130/reset.c | 84 +
+ doc/vttest-20011130/setup.c | 298 ++
+ doc/vttest-20011130/sixel.c | 303 ++
+ doc/vttest-20011130/status.c | 102 +
+ doc/vttest-20011130/tech.set | 96 +
+ doc/vttest-20011130/ttymodes.c | 300 ++
+ doc/vttest-20011130/ttymodes.h | 21 +
+ doc/vttest-20011130/unix_io.c | 196 +
+ doc/vttest-20011130/vms_io.c | 405 ++
+ doc/vttest-20011130/vmsbuild.com | 163 +
+ doc/vttest-20011130/vt220.c | 463 ++
+ doc/vttest-20011130/vt420.c | 1615 +++++++
+ doc/vttest-20011130/vt52.c | 235 +
+ doc/vttest-20011130/vttest | Bin 0 -> 426799 bytes
+ doc/vttest-20011130/vttest.1 | 47 +
+ doc/vttest-20011130/vttest.h | 270 ++
+ doc/vttest-20011130/vttest.lsm | 15 +
+ doc/vttest-20011130/xterm.c | 401 ++
+ doc/vttest.tar.gz | Bin 0 -> 96645 bytes
+ src/Makefile.am | 62 +
+ src/Makefile.in | 577 +++
+ src/caps.c | 551 +++
+ src/caps.h | 50 +
+ src/interpret.c | 148 +
+ src/marshal.list | 4 +
+ src/pty.c | 209 +
+ src/pty.h | 35 +
+ src/termcap.c | 641 +++
+ src/termcap.h | 56 +
+ src/trie.c | 868 ++++
+ src/trie.h | 61 +
+ src/typescript | 76 +
+ src/utf8echo.c | 65 +
+ src/vte.c | 3494 ++++++++++++++
+ src/vte.h | 169 +
+ src/vteapp.c | 104 +
+ stamp-h.in | 1 +
+ 79 files changed, 46608 insertions(+), 0 deletions(-)
diff --git a/vte/ChangeLog.pre-git b/vte/ChangeLog.pre-git
new file mode 100644
index 0000000..f768be1
--- /dev/null
+++ b/vte/ChangeLog.pre-git
@@ -0,0 +1,12065 @@
+2009-03-31 Adam Jackson <ajax redhat com>
+
+ * src/vteapp.c:
+ Add gopher:// to the dingus-click regexes.
+
+2009-03-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (always_selected):
+ * src/vtepangocairo.c (_vte_pangocairo_set_background_image):
+ * src/vteskel.c (_vte_skel_draw_text):
+ Minor fixes from Richard Russon.
+
+2009-03-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 576797 – Double-click sometimes stops working
+
+ * src/vte.c (vte_terminal_extend_selection): Invalidate selection
+ if forced.
+
+2009-03-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 573674 – reset resets width to 80 chars
+
+ * src/vteseq.c (vte_sequence_handler_decset_internal): Disable
+ resizing on decreset.
+
+2009-03-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 576504 – vte does not pass its testsuite.
+
+ * src/vte.c:
+ * src/vtedraw.h:
+ Fix "make check".
+
+2009-03-15 Christian Persch <chpe gnome org>
+
+ Bug 574491 – gnome-pty-helper can prevent volumes from being unmounted
+
+ * gnome-pty-helper/gnome-pty-helper.c: (main): chdir to /.
+
+2009-03-15 Christian Persch <chpe gnome org>
+
+ * configure.in: Prepare version 0.20.0.
+
+2009-03-15 Christian Persch <chpe gnome org>
+
+ Bug 575398 – configure warns about term.h under OpenSolaris
+
+ * configure.in: Fix curses detection on solaris. Patch by David Adam.
+
+2009-03-09 Behdad Esfahbod <behdad gnome org>
+
+ Bug 574616 – "real" transparency not working from python bindings
+
+ * src/vtepangocairo.c (_vte_pangocairo_destroy),
+ (_vte_pangocairo_set_background_image): Better handle failure of
+ creating pixmap.
+
+ * src/vtebg.c (vte_bg_get_pixmap): Get rid of unused mask parameter.
+
+2009-03-07 Behdad Esfahbod <behdad gnome org>
+
+ Bug 574025 – Crash in _vte_terminal_insert_char
+
+ * src/vte.c (_vte_terminal_insert_char): Don't crash.
+
+2009-03-02 Christian Persch <chpe gnome org>
+
+ * NEWS:
+ * configure.in: Updated for version 0.19.5.
+
+2009-03-02 Christian Persch <chpe gnome org>
+
+ * src/vteaccess.c: (vte_terminal_accessible_set_size),
+ (vte_terminal_accessible_ref_accessible_at_point):
+ * src/vteapp.c: (button_pressed): Correct use of padding returned
+ by vte_terminal_get_padding().
+
+2009-03-02 Christian Persch <chpe gnome org>
+
+ * src/vte.c: (vte_terminal_refresh_size), (vte_terminal_set_size):
+ Use g_strerror() instead of strerror().
+
+2009-02-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 54926 – Should try bold version of font before pseudo-bolding
+
+ Patch from Kees Cook <kees outflux net>
+
+ * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
+ (vte_terminal_unichar_is_local_graphic),
+ (vte_terminal_draw_graphic), (vte_terminal_draw_cells),
+ (vte_terminal_draw_rows), (vte_terminal_paint_cursor):
+ * src/vtedraw.c (_vte_draw_get_char_width), (_vte_draw_text),
+ (_vte_draw_char), (_vte_draw_has_char):
+ * src/vtedraw.h:
+ * src/vtepangocairo.c (_vte_pangocairo_set_text_font),
+ (_vte_pangocairo_get_char_width), (_vte_pangocairo_has_bold),
+ (_vte_pangocairo_draw_text), (_vte_pangocairo_draw_has_char):
+ * src/vteskel.c:
+ Try bold font before pseudo-bolding.
+
+2009-02-02 Christian Persch <chpe gnome org>
+
+ Bug 570208 – vte fails to build outside source tree
+
+ * python/Makefile.am: Build fix.
+
+2009-02-01 Christian Persch <chpe gnome org>
+
+ * src/marshal.list:
+ * src/vte.c: (vte_terminal_class_init):
+ * src/vtebg.c: (vte_bg_class_init): Remove marshalers that have stock
+ ones in gobject, and use the stock ones instead.
+
+2009-02-01 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Require GTK+ >= 2.14, for "gtk-fontconfig-timestamp"
+ settings property.
+
+ * src/vte.c (vte_terminal_style_set),
+ (vte_terminal_set_font_full_internal), (vte_terminal_init),
+ (vte_terminal_class_init): Use style_set class method instead of
+ hooking to style-set signal. Also, proceed to recreating the font
+ even if neither description nor antialias setting changed. This is
+ necessary to pick up fontconfig configuration changes as well as font
+ install/uninstallations or GNOME font preferences changes.
+
+ * src/vtepangocairo.c (font_info_destroy),
+ (fontconfig_timestamp_quark),
+ (vte_pango_cairo_set_fontconfig_timestamp),
+ (vte_pango_cairo_get_fontconfig_timestamp), (context_hash),
+ (context_equal), (font_info_create_for_context),
+ (font_info_create_for_screen):
+ Use fontconfig_timestamp in the font object hash, such that we respond
+ to fontconfig configuration changes.
+
+2009-01-22 Saleem Abdulrasool <compnerd compnerd org>
+
+ * src/vteseq.c (vte_sequence_handler_window_manipulation):
+ Tweak output for OSC 13, 14, 18, 19, 20, 21. Bug #548272.
+
+2009-01-20 Christian Persch <chpe gnome org>
+
+ * src/vte.c: (vte_terminal_realize): Use GDK_BLANK_CURSOR for the
+ invisible cursor on gtk+ >= 2.15.
+
+2009-01-20 Christian Persch <chpe gnome org>
+
+ * gnome-pty-helper/gnome-pty-helper.c: (init_term_with_defaults),
+ (open_ptys), (close_pty_pair): Use ttyname() as recommended in the
+ glibc manual. Bug #565688.
+
+2009-01-06 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_parse_color),
+ (vte_sequence_handler_change_color),
+ (vte_sequence_handler_request_terminal_parameters),
+ (vte_sequence_handler_send_primary_device_attributes),
+ (vte_sequence_handler_send_secondary_device_attributes),
+ (vte_sequence_handler_device_status_report),
+ (vte_sequence_handler_dec_device_status_report),
+ (vte_sequence_handler_window_manipulation),
+ (vte_sequence_handler_change_cursor_color):
+ Convert some g_strdup_printf() uses to g_snprintf() when
+ the buffer was fixed-size and freed immediately.
+ Also fix g_snprintf usage by not using its return value.
+ *If* the buffer is short, the returned len is not what we
+ are interested in.
+ Finally, pass -1 as len to vte_terminal_feed_child() in
+ most places. This means a bit more work for the processor,
+ but cleaner code.
+
+2009-01-06 Behdad Esfahbod <behdad gnome org>
+
+ Bug 566795 – VTE fails to build in trunk
+
+ * src/vteseq.c (vte_sequence_handler_change_cursor_color):
+ Fix build.
+
+2009-01-06 Saleem Abdulrasool <compnerd compnerd org>
+
+ * src/vteseq-n.gperf:
+ * src/vteseq.c (vte_ucs4_to_utf8), (vte_parse_color),
+ (vte_terminal_emit_deiconify_window), (vte_sequence_handler_change_color),
+ (vte_sequence_handler_change_cursor_color):
+
+ Bug #524170 - Pull out ucs4_to_utf8 and use in new functions. Add support
+ for OSC 4 (initc) and OSC 12 (change cursor color).
+
+2009-01-06 Behdad Esfahbod <behdad gnome org>
+
+ Bug 566730 – vte_terminal_set_color_cursor() calls invalidate_all but
+ it doesn't have to
+
+ * src/vte.c (vte_terminal_set_color_internal): If color is VTE_CUR_BG,
+ invalidate_cursor_once instead of invalidate_all.
+
+2008-12-26 Halton Huo <halton huo sun com>
+
+ Bug 565679 – alloca is discouraged
+
+ * gnome-pty-helper/gnome-pty-helper.c: use malloc replace alloca.
+
+2008-12-26 Christian Persch <chpe gnome org>
+
+ * configure.in: Fix the same typo also in the libinfo check.
+
+2008-12-26 Halton Huo <halton huo sun com>
+
+ Bug 565675 – typo in configure.in cause ncurses checking fail
+
+ * configure.in: Fix typo for ncurses. s/ncuses/ncurses
+
+2008-12-25 Behdad Esfahbod <behdad gnome org>
+
+ * src/interpret.c (main):
+ * src/slowcat.c (catfile):
+ * src/table.c (_vte_table_addi), (_vte_table_add):
+ * src/trie.c (_vte_trie_matchx):
+ * src/vte.c (_vte_invalidate_cell), (_vte_terminal_insert_char):
+ * src/vteaccess.c (offset_from_xy),
+ (vte_terminal_accessible_finalize),
+ (vte_terminal_accessible_get_text),
+ (vte_terminal_accessible_get_text_somewhere):
+ * src/vteapp.c (main):
+ * src/vtebg.c (vte_bg_cache_item_free), (vte_bg_cache_add):
+ Fix warnings.
+
+2008-12-25 Behdad Esfahbod <behdad gnome org>
+
+ Bug 565663 – compile failure because use static function in another .h
+ file
+
+ * src/vte.c: Don't mark extern function inline.
+
+2008-12-17 Behdad Esfahbod <behdad gnome org>
+
+ Bug 149631 – gnome-terminal doesn't combine combining chars in utf8
+
+ * src/vteunistr.c:
+ Limit to 9 combining marks per unistr, and a total of 100,000 unistrs.
+ All to prevent OOM.
+
+2008-12-15 Behdad Esfahbod <behdad gnome org>
+
+ * NEWS:
+ * configure.in:
+ Released 0.19.4.
+
+2008-12-14 Behdad Esfahbod <behdad gnome org>
+
+ Bug 564535 – check for gperf on build
+
+ * autogen.sh: Check for gperf.
+
+2008-12-12 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/Makefile.am:
+ * src/vteunistr.c (unistr_comp_hash), (unistr_comp_equal),
+ (_vte_unistr_append_unichar), (_vte_unistr_get_base),
+ (_vte_unistr_append_to_string), (_vte_unistr_strlen):
+ * src/vteunistr.h:
+ Document vteunistr.
+
+2008-12-12 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteunistr.h: Minor cleanup.
+
+2008-12-12 Behdad Esfahbod <behdad gnome org>
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Avoid pointers in the
+ const array.
+
+2008-12-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 149631 – gnome-terminal doesn't combine combining chars in utf8
+
+ * src/vteunistr.c:
+ * src/vteunistr.h:
+ An extended UTF-32 type that assigns numeric values to UTF-8 sequences
+ on demand. Can be used to efficiently store a string, instead of one
+ character, at each cell.
+
+ * src/vte-private.h:
+ * src/vte.c:
+ * src/vtedraw.c:
+ * src/vtedraw.h:
+ * src/vtepangocairo.c:
+ Port to vteunistr instead of gunichar for cell content.
+
+ * src/vte.c:
+ Handle zerowidth insertions by sticking it on the previous cell.
+
+ * src/iso2022.h:
+ * src/iso2022.c:
+ Cleanup ambiguous-width handling. Handle zero-width chars.
+
+2008-12-11 Christian Persch <chpe gnome org>
+
+ Bug 564057 – src/pty.c does not compile with
+ --disable-gnome-pty-helper
+
+ * src/pty.c: Build with --disable-gnome-pty-helper. Patch by
+ yselkowitz at users.sourceforge.net .
+
+2008-12-11 Christian Persch <chpe gnome org>
+
+ * src/vte.c: (vte_terminal_class_init): Update set-scroll-adjustement
+ docs.
+
+2008-12-10 Paolo Borelli <pborelli katamail com>
+
+ Bug 562695 - ship pkg-config file for python bindings
+
+ * configure.in:
+ * python/Makefile.am:
+ * python/pyvte.pc.in:
+
+2008-12-08 Behdad Esfahbod <behdad gnome org>
+
+ Bug 563752 – pangocairo backend recreates cairo_surface_t for
+ background drawing
+
+ * src/vte.c (vte_terminal_paint),
+ (vte_terminal_set_scroll_background),
+ (vte_terminal_background_update):
+ * src/vtedraw.c (_vte_draw_new), (_vte_draw_set_background_solid),
+ (_vte_draw_set_background_image),
+ (_vte_draw_set_background_scroll), (_vte_draw_draw_rectangle):
+ * src/vtedraw.h:
+ * src/vtepangocairo.c (_vte_pangocairo_destroy),
+ (_vte_pangocairo_set_background_solid),
+ (_vte_pangocairo_set_background_image),
+ (_vte_pangocairo_set_background_scroll), (_vte_pangocairo_clear),
+ (_vte_pangocairo_clip), (set_source_color_alpha):
+ * src/vteskel.c:
+ Cleanup vte_draw background API. Use a cached cairo_pattern_t in
+ pangocairo backend.
+
+ Also, queue background update on scroll_background change.
+
+2008-12-07 Behdad Esfahbod <behdad gnome org>
+
+ Bug 163213 – Cursor should remain visible when selected
+
+ * src/vte.c (vte_terminal_paint_cursor): Do a reverse hollow cursor
+ if selected but not focused.
+
+2008-12-05 Christian Persch <chpe gnome org>
+
+ * src/vtebg.c: (vte_bg_get_pixmap): Don't modify source_pixbuf. If
+ we're going to change the saturation, first make a copy. Fixes
+ switching background type between fauxtransparency and image in
+ gnome-terminal trunk.
+
+2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (_vte_pangocairo_clear): Fix scrolling offset.
+ Ray Strode reported that background offset was being done incorrectly.
+ A negation did it.
+
+2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * Makefile.am:
+ * configure.in:
+ Hook up perf/.
+
+ Also adjust svn:ignore props.
+
+2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * NEWS:
+ * configure.in:
+ Released 0.19.3.
+
+2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_new_row_data), (_vte_new_row_data_sized),
+ (vte_terminal_match_contents_refresh),
+ (vte_terminal_process_incoming), (vte_terminal_init),
+ (vte_terminal_set_word_chars):
+ Always call g_array_new() with clear flag set. It incurs no overhead
+ but avoids heisenbugs.
+
+2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_terminal_insert_char):
+ * src/vteseq.c (vte_sequence_handler_screen_alignment_test):
+ Use structure assignment instead of memcpy().
+
+2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_terminal_cleanup_tab_fragments_at_cursor): Remove
+ unneeded checks. They were masking bugs.
+
+2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ Red Hat Bug 474618 - gnome-terminal sometime leaves empty begining
+ of the line
+
+ * src/vte.c (_vte_terminal_insert_char): Really fix the bug this time.
+
+2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ Build fixes.
+
+ * NEWS:
+ * configure.in:
+ Released 0.19.2.
+
+2008-12-05 Behdad Esfahbod <behdad gnome org>
+
+ Red Hat Bug 474618 - gnome-terminal sometime leaves empty begining
+ of the line
+
+ * src/vte.c (_vte_terminal_cleanup_tab_fragments_at_cursor): continue
+ instead of break'ing out of the loop.
+
+2008-12-04 Behdad Esfahbod <behdad gnome org>
+
+ Bug 563274 – Misspelled word in src code
+
+ * src/vte.c (vte_terminal_process_incoming): Fix typo.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 563024 – In alternate-screen, selection can copy out of screen
+ boundaries
+
+ * src/vte.c (vte_terminal_extend_selection_expand),
+ (vte_terminal_extend_selection): Make sure current selection row is in the
+ visible screen.
+
+ I have a deja vu of fixing this bug like two years ago...
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ Bug 552096 – Detect tgetent if provided by libtinfo
+
+ * configure.in: Rewrote tgetent checks to be more readable. Also check
+ for tgetent in libtinfo.
+ * src/keymap.c: (_vte_keymap_map), (_vte_keymap_key_is_modifier):
+ * src/ssfe.c: Adjust includes accordingly.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_start_selection),
+ (vte_terminal_extend_selection): Don't do fancy rounding for row
+ selection, only for column.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_invalidate_selection),
+ (vte_terminal_start_selection): Call function instead of open coding.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.h:
+ * src/vtepangocairo.c (font_info_cache_ascii):
+ Cache the full ASCII range if Latin uses the default language.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (context_hash), (context_equal),
+ (font_info_create_for_context), (font_info_create_for_screen),
+ (font_info_create_for_widget): Respect PangoLanguage set on a widget's
+ PangoContext.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_measure_font): Remove CJK fullwidth
+ measurement hacks. Pango doesn't need these. We're down to one
+ FcFontSort() instead of two during initialization.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 559818 – redundant selection-changed signal on deselection
+
+ * src/vte.c (vte_terminal_start_selection),
+ (vte_terminal_extend_selection): Fix all redundant selection-changed
+ signals. Including those on double-click.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c:
+ Rewrite text selection. In particular, fix block_mode.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * HACKING: Update.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_set_pointer_visible),
+ (vte_terminal_get_mouse_tracking_info),
+ (vte_terminal_send_mouse_button_internal),
+ (vte_terminal_maybe_send_mouse_button),
+ (vte_terminal_maybe_send_mouse_drag), (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release),
+ (vte_terminal_scroll), (vte_terminal_reset):
+ * src/vteseq.c (vte_sequence_handler_decset_internal):
+ Mouse tracking cleanup.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Add -Wno-switch-enum warning flag as we are not
+ -Wswitch-enum clean.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_extend_selection_on_type),
+ (vte_terminal_extend_selection):
+ Cut one third of the 400-line function out into a function of its own.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_extend_selection): Revert previous change.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_extend_selection): Add a shortcircuit
+ check.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_send_mouse_button_internal),
+ (vte_terminal_maybe_send_mouse_drag), (cursor_inside_match),
+ (vte_terminal_match_hilite_show),
+ (vte_terminal_match_hilite_update), (vte_terminal_match_hilite),
+ (vte_terminal_extend_selection), (vte_terminal_autoscroll),
+ (vte_terminal_motion_notify), (vte_terminal_button_press),
+ (vte_terminal_button_release):
+ Change mouse coordinates type from double to long.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_start_selection),
+ (vte_terminal_extend_selection):
+ Cleanup selection code a bit more.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_start_selection),
+ (vte_terminal_extend_selection):
+ Merge selection_origin and selection_restart_origin as only one was
+ being used at a time.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 471480 – select single character
+ Bug 110371 – Cannot select newline at end of full line
+
+ * src/vte-private.h:
+ * src/vte.c (find_start_column), (find_end_column),
+ (vte_terminal_start_selection), (math_div),
+ (vte_terminal_extend_selection):
+ Make selection work more I-beam-like.
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ * src/vte.c: (vte_terminal_class_init): Show the correct version in
+ Since: and Deprecated: annotations.
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ Bug 112172 – Get rid of VteReaper
+
+ * src/reaper.h: Deprecate.
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ * configure.in: Enable maintainer mode by default. Define more
+ deprecation defines, and define the *_DISABLE_SINGLE_INCLUDES defines.
+ Enable deprecations by default in maintainer mode.
+ * src/vteapp.c: Undef VTE_DISABLE_DEPRECATED here.
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ * configure.in:
+ * src/vte-private.h: Move VTE_UTF8_BPC definition from configure to
+ vte-private.h.
+ * src/vteconv.c: Include vte-private.h here.
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c: (mark_input_source_invalid),
+ (_vte_terminal_connect_pty_read), (mark_output_source_invalid),
+ (_vte_terminal_connect_pty_write),
+ (_vte_terminal_disconnect_pty_read),
+ (_vte_terminal_disconnect_pty_write),
+ (_vte_terminal_enable_input_source), (remove_cursor_timeout),
+ (vte_terminal_key_press), (vte_terminal_focus_in),
+ (vte_terminal_focus_out), (vte_terminal_init),
+ (vte_terminal_unrealize), (vte_terminal_expose),
+ (vte_terminal_background_update), (add_update_timeout),
+ (remove_from_active_list), (vte_terminal_add_process_timeout),
+ (process_timeout), (update_repeat_timeout), (update_timeout): Remove
+ VTE_INVALID_SOURCE definition and just use 0 directly.
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ Bug 560667 – invalid definition of VTE_INVALID_SOURCE
+
+ * src/vte-private.h: Fix VTE_INVALID_SOURCE define to use 0 instead of
+ -1.
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ * configure.in: Remove two AC_DEFINEs from here.
+ * src/vte-private.h: Define VTE_INVALID_SOURCE here for now.
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ Bug 112172 – Get rid of VteReaper
+
+ * src/reaper.c: (vte_reaper_child_watch_cb),
+ (vte_reaper_add_child), (vte_reaper_init),
+ (vte_reaper_constructor), (vte_reaper_finalize),
+ (vte_reaper_class_init), (vte_reaper_get), (child_exited), (main):
+ * src/reaper.h: Prepare for removal of Reaper in vte1.0 by removing
+ the unused pre-glib-2.4 code from Reaper.
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ * src/vteapp.c: (main): Catch the child-exited signal to the child's
+ exit code.
+
+2008-12-02 Christian Persch <chpe gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_class_init): Intern the signal names.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_motion_notify): Do not discard motion notify
+ events with coordinates out of our allocation, or when the cell under
+ the cursor didn't change. These are useful for extending selection
+ and for sub-cell selection details, as well as app-requested all
+ motion tracking.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 541441 – Dehighlight links on visibility notify?
+
+ * src/vte.c (vte_terminal_focus_in), (vte_terminal_enter): Move match
+ highlight enabling into "enter" event instead of "focus in".
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_set_pointer_visible),
+ (vte_terminal_maybe_send_mouse_button),
+ (vte_terminal_maybe_send_mouse_drag), (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release),
+ (vte_terminal_scroll), (vte_terminal_reset):
+ * src/vteseq.c (vte_sequence_handler_decset_internal):
+ Simplify mouse event tracking by using a single int instead of five
+ booleans.
+
+2008-12-02 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_deselect_all),
+ (vte_terminal_process_incoming), (vte_cell_is_selected),
+ (vte_terminal_copy), (vte_terminal_start_selection),
+ (vte_terminal_extend_selection), (vte_terminal_select_all),
+ (vte_terminal_paint), (_vte_terminal_get_start_selection),
+ (_vte_terminal_get_end_selection), (_vte_terminal_select_text):
+ Rename struct selection_cell_coords members from x,y to col,row for
+ clarity.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * NEWS:
+ * configure.in:
+ Released 0.19.1.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/Makefile.am:
+ * doc/reference/check-doc-syntax.sh:
+ * src/Makefile.am:
+ * src/check-doc-syntax.sh:
+ * src/vte.c (vte_terminal_catch_child_exited),
+ (vte_terminal_class_init):
+ * src/vte.h:
+ * src/vtepangocairo.c:
+ Copy check-doc-syntax.sh tests from cairo and fix doc bugs.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/tmpl/vte-unused.sgml:
+ * doc/reference/vte-sections.txt:
+ Remove reaper docs.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ Bug 562806 – crash in Terminal: Typing "cd " just after ...
+
+ * src/vte.c (_vte_terminal_cleanup_tab_fragments_at_cursor):
+ Fix possible NULL dereference.
+
+ * src/vteseq.c (vte_sequence_handler_ta):
+ Fix tab fragments to have \t as c.
+
+2008-12-01 Christian Persch <chpe gnome org>
+
+ * NEWS:
+ * configure.in: Prepare 0.19.0.
+
+2008-12-01 Christian Persch <chpe gnome org>
+
+ Bug 562511 – scrollbar doesn't sit at the bottom
+
+ * src/vte.c: (vte_terminal_init),
+ (vte_terminal_set_scrollback_lines): Always update the scrollback
+ lines, even if the setting hasn't changed. Work-around to fix bug
+ #562511.
+
+2008-12-01 Christian Persch <chpe gnome org>
+
+ * src/vte.c: (vte_terminal_class_init): Fix visible-bell property.
+
+2008-12-01 Christian Persch <chpe gnome org>
+
+ * src/vte.c: (vte_terminal_set_font_full_internal),
+ (vte_terminal_class_init): Rename font property to "font-desc" to be
+ more in line with other properties of this type in gtk.
+
+2008-12-01 Christian Persch <chpe gnome org>
+
+ * src/vteapp.c: (main): Add gobject notification debugging.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_terminal_termcap_string_same_as_for),
+ (vte_sequence_handler_se), (vte_sequence_handler_so):
+ Simplify standout handling code.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Rip out VTE_SEQUENCE_HANDLER_PROTO.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Rip out vte_sequence_handler_invoke.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Rip out VTE_SEQUENCE_HANDLER_INVOKE.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Rip out VTE_SEQUENCE_HANDLER_REFERENCE.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (_vte_terminal_handle_sequence): Rip out the gcc label
+ vtable code.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (display_control_sequence),
+ (_vte_terminal_handle_sequence):
+ Some cleanup of the gcc label vtable code before I rip it out.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_sequence_handler_set_title_internal),
+ (vte_sequence_handler_set_mode_internal),
+ (vte_sequence_handler_invoke_internal):
+ Move some code around.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteskel.c: Remove excess initializer.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/buffer.c:
+ * src/caps.c:
+ * src/dumpkeys.c:
+ * src/interpret.c:
+ * src/iso2022.c:
+ * src/keymap.c:
+ * src/matcher.c:
+ * src/mev.c:
+ * src/pty.c:
+ * src/reaper.c:
+ * src/reflect.c:
+ * src/ring.c:
+ * src/slowcat.c:
+ * src/ssfe.c:
+ * src/table.c:
+ * src/trie.c:
+ * src/vteaccess.c:
+ * src/vtebg.c:
+ * src/vteconv.c:
+ * src/vtedraw.c:
+ * src/vteseq.c:
+ * src/vteskel.c:
+ * src/xticker.c:
+ #include <config.h> instead of "../config.h".
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Some wild crack to build the vtable using gcc
+ extension for labels as values. The advantage is that we get down to
+ an empty .data for vteseq.o but .text grows considerably. And we have
+ to use nested functions, and #define static auto. It's really ugly.
+ I'm going to remove it in the next commit or the one after. Just
+ wanted to record it here for posterity.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_sequence_handler_invoke),
+ (vte_sequence_handler_offset), (vte_sequence_handler_multiple),
+ (vte_sequence_handler_decset_internal),
+ (VTE_SEQUENCE_HANDLER_PROTO), (_vte_terminal_handle_sequence):
+ Almost there. Towards a .data-free vtable.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Finish decoupling handle type from function type.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vteseq.c (vte_sequence_handler_offset),
+ (vte_sequence_handler_multiple),
+ (vte_sequence_handler_decset_internal),
+ (vte_sequence_handler_set_mode_internal),
+ (VTE_SEQUENCE_HANDLER_PROTO), (_vte_terminal_handle_sequence):
+ Make sequence handlers return void instead of gboolean. The return
+ value was unused.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_sequence_handler_offset),
+ (vte_sequence_handler_multiple),
+ (vte_sequence_handler_decset_internal),
+ (VTE_SEQUENCE_HANDLER_PROTO), (_vte_terminal_handle_sequence):
+ Switch to calling other handlers using two macros.
+ Get rid of match and match_quark arguments to sequence handlers.
+ They were unused.
+
+2008-12-01 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_sequence_handler_set_title_internal):
+ Cleanup vte_sequence_handler_set_title_internal.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (VTE_SEQUENCE_HANDLER_PROTO): Use a macro to define
+ type of sequence handlers.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-2.c:
+ * src/vteseq-n.c:
+ Remove gperf-generated files from SVN, but still distribute them in
+ the tarball.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c:
+ * src/vteseq.c (_vte_terminal_scroll_text),
+ (vte_sequence_handler_scroll_down),
+ (vte_sequence_handler_scroll_up):
+ More code shufflling.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-list.h:
+ Remove vteseq-list.h from SVN, but still distribute it in the tarball.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-list.h:
+ Autogenerate vteseq-list.h.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-list.h:
+ * src/vteseq.c (_vte_terminal_home_cursor),
+ (_vte_terminal_clear_screen), (_vte_terminal_clear_current_line),
+ (_vte_terminal_clear_above_current),
+ (vte_sequence_handler_decset_internal), (vte_sequence_handler_cl),
+ (vte_sequence_handler_ho), (vte_sequence_handler_erase_in_display),
+ (vte_sequence_handler_erase_in_line):
+ Sync vteseql-list.h with actual handlers used in gperf files.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-list.h:
+ * src/vteseq.c (vte_sequence_handler_scroll_down),
+ (vte_sequence_handler_scroll_up):
+ Implement these calling vte_terminal_scroll() directly instead of
+ multiple'ing.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_scroll), (_vte_terminal_scroll_region):
+ * src/vteseq.c (vte_sequence_handler_scroll_down_one),
+ (vte_sequence_handler_scroll_up_one):
+ Move vte_terminal_scroll to vte.c
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-2.gperf:
+ * src/vteseq-list.h:
+ * src/vteseq.c:
+ Remove vte_sequence_handler_complain_key. The idea was to warn about
+ receiving control-sequence handling request for escape sequences that
+ actually belong to a key stroke. Kinda like a debugging feature.
+ Remove it as the number of sequences being handle that way was
+ greater than the number of sequences handled in the real sense.
+ Saves 2k .data!
+
+ The actual list is still in vteseq-2.gperf, but commented out.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (_vte_sequence_get_handler),
+ (display_control_sequence):
+ Remove stale comment.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_process_incoming):
+ * src/vteseq.c (display_control_sequence),
+ (_vte_terminal_handle_sequence):
+ * src/vteseq.h:
+ Move _vte_terminal_handle_sequence() into vteseq.c
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_insert_line_internal), (vte_remove_line_internal),
+ (_vte_terminal_cursor_down), (_vte_terminal_insert_char),
+ (_vte_terminal_audible_beep), (_vte_terminal_visible_beep),
+ (_vte_terminal_beep), (vte_terminal_key_press):
+ * src/vteseq.c (vte_insert_line_internal),
+ (vte_remove_line_internal), (vte_unichar_strlen),
+ (vte_sequence_handler_bl), (vte_sequence_handler_sf),
+ (vte_sequence_handler_SF), (vte_sequence_handler_vb):
+ * src/vteseq.h:
+ Some code reshuffling to remove vte.c calls to vteseq.c functions.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-2.gperf:
+ * src/vteseq.c:
+ Minor.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (vte_terminal_beep): Move helper function out of the
+ way.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-2.c (vteseq_2_lookup):
+ * src/vteseq-2.gperf:
+ * src/vteseq-n.c (vteseq_n_lookup):
+ * src/vteseq-n.gperf:
+ * src/vteseq.c:
+ Add a macro around sequence handler citations, for future table
+ tricks.
+
+2008-11-30 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-n.gperf:
+ * src/vteseq-n.c (vteseq_n_hash), (vteseq_n_lookup):
+ Remove bogus entry that accidentally made it into the gperf list.
+
+2008-11-30 Christian Persch <chpe gnome org>
+
+ * acinclude.m4: Remove more crufty macros.
+
+2008-11-30 Christian Persch <chpe gnome org>
+
+ * acinclude.m4: Remove FT2 check macro.
+
+2008-11-30 Christian Persch <chpe gnome org>
+
+ Bug 540951 – The gnome-pty-helper is spawn when its not needed
+
+ * src/pty.c: (_vte_pty_open): Don't use the pty helper when we don't
+ need to update any of utmp, wtmp, lastlog. Patch by Alex Cornejo.
+
+2008-11-30 Christian Persch <chpe gnome org>
+
+ Bug 465036 – gnome-pty-helper locks /var/run/utmp
+
+ * gnome-pty-helper/gnome-utmp.c: (update_utmp): Close the utmp
+ database after updating it. Patch by Kevin W. Rudd.
+
+2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ Bug 127870 – terminal garbled and needs 'reset' after cat'ing file
+
+ * src/iso2022.c (_vte_iso2022_state_new): Initialize all four maps
+ (G0, G1, G2, G3) in USASCII mode, like xterm does.
+
+2008-11-29 Christian Persch <chpe gnome org>
+
+ * python/vtemodule.c: (initvte): Register the constants too!
+
+2008-11-29 Christian Persch <chpe gnome org>
+
+ * src/debug.c: (_vte_debug_init):
+ * src/debug.h:
+ * src/vte.c: (vte_terminal_size_request),
+ (vte_terminal_size_allocate): Add a specific debug flag for widget
+ size-request/size-allocation.
+
+2008-11-29 Christian Persch <chpe gnome org>
+
+ * src/vteapp.c: (main): Add options to use a GtkScrolledWindow as the
+ terminal's container, and to set its vertical scrollbar policy, to
+ allow testing VteTerminal in a scrolled window.
+
+2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ Bug 317236 – vte resynchrones too late on invalid UTF-8
+
+ * src/vteconv.c (_vte_conv_utf8_utf8): In our UTF-8 to UTF-8 converter
+ differentiate between an incomplete sequence and an ill sequence at
+ the end of the buffer. Also cleanup some minor inaccuracies (return
+ value).
+
+2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ Bug 107031 – device-control-string error
+
+ * src/table.c (_vte_table_addi):
+ * src/vte.c (vte_terminal_handle_sequence):
+ * src/vteseq.c (vte_sequence_handler_decset_internal):
+ Replace some g_warning's with vte debug output.
+
+2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ Bug 521420 – vte closes connection to child before all output is read
+ Patch from Thomas Leonard
+
+ * src/reaper.c (vte_reaper_add_child): Install child watch at low
+ priority instead of high.
+
+2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Require glib >= 2.18.0 as earlier glib versions
+ had a totally bogus g_unichar_iswide_cjk().
+
+ * perf/vim.sh: Don't use builting time command.
+
+2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_emit_char_size_changed),
+ (_vte_terminal_emit_status_line_changed), (vte_terminal_init),
+ (vte_terminal_background_update):
+ Remove C++-style comment markers.
+
+2008-11-29 Behdad Esfahbod <behdad gnome org>
+
+ Bug 514632 – Problem with cursor in emacs in gnome-terminal
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_cleanup_tab_fragments_at_cursor),
+ (_vte_terminal_insert_char):
+ * src/vteseq.c (vte_sequence_handler_ch),
+ (vte_sequence_handler_cm), (vte_sequence_handler_le),
+ (vte_sequence_handler_cursor_character_absolute):
+ Break "smart tabs" into multiple empty cells when cursor moves
+ into them or inserting character there.
+
+2008-11-28 Behdad Esfahbod <behdad gnome org>
+
+ * src/debug.c (_vte_debug_init):
+ * src/debug.h:
+ * src/vtepangocairo.c (font_info_cache_ascii),
+ (font_info_allocate), (font_info_free),
+ (font_info_find_for_context), (font_info_get_unichar_info):
+ Port vtepangocairo profiling and lifecycle logging to vtedebug
+ facilities under debug domain "pangocairo".
+
+2008-11-28 Behdad Esfahbod <behdad gnome org>
+
+ * src/debug.c (_vte_debug_init): Rename debug env var from
+ VTE_DEBUG_FLAGS to VTE_DEBUG.
+
+2008-11-28 Behdad Esfahbod <behdad gnome org>
+
+ * src/debug.c (_vte_debug_init):
+ * src/debug.h:
+ Make _vte_debug_on() inline.
+
+2008-11-28 Christian Persch <chpe gnome org>
+
+ * src/vte.c: Remove backward compat define for gtk 2.0, since we
+ already depend on a much higher version.
+
+2008-11-28 Christian Persch <chpe gnome org>
+
+ * src/debug.c: (_vte_debug_on): Revert behaviour change of
+ _vte_debug_on() from last commit.
+
+2008-11-28 Behdad Esfahbod <behdad gnome org>
+
+ Bug 459553 – gnome-terminal cannot shows circled digits with the
+ correct width on ja_JP.PCK
+ Patch from Takao Fujiwara
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Recognize Shift_JIS
+ as East Asian locale for width considerations.
+
+2008-11-28 Christian Persch <chpe gnome org>
+
+ * src/debug.c: (_vte_debug_init), (_vte_debug_on):
+ * src/debug.h:
+ * src/interpret.c: (main):
+ * src/pty.c: (main):
+ * src/reaper.c: (main):
+ * src/trie.c: (main):
+ * src/vte.c: (vte_terminal_new), (vte_terminal_class_init): Use
+ g_parse_debug_string to parse the debug flags.
+
+2008-11-28 Christian Persch <chpe gnome org>
+
+ * src/vteregex.c: (compare_matches), (_vte_regex_compile),
+ (_vte_regex_free), (_vte_regex_exec): Remove the unused GNU regex
+ code too.
+
+2008-11-28 Christian Persch <chpe gnome org>
+
+ * src/vteregex.c: (_vte_regex_compile), (_vte_regex_free),
+ (_vte_regex_exec): Remove unused PCRE code. If you want PCRE regexes,
+ use the new APIs that take GRegex.
+
+2008-11-28 Christian Persch <chpe gnome org>
+
+ Bug 562385 – gnome-pty-helper goes to 100% cpu usage
+
+ * gnome-pty-helper/gnome-pty-helper.c: (pass_fd), (pty_free),
+ (main): Make sure data structures are correctly aligned and of the
+ right size.
+
+2008-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in:
+ * src/Makefile.am:
+ More cleanup.
+
+2008-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ Run some of the utilities in "make check", and build the others.
+
+ * src/nativeecho.c:
+ * src/utf8echo.c:
+ Remove more useless trivial utilities.
+
+2008-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/iso8859mode.c:
+ * src/utf8mode.c:
+ Remove useless trivial utilities.
+
+2008-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am: Update EXTRA_DIST.
+
+2008-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * HACKING: Update :P.
+
+2008-11-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c (_vte_sequence_get_handler): Safely handle input of
+ length 1.
+
+2008-11-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-2.gperf:
+ * src/vteseq-n.c (vteseq_n_lookup):
+ * src/vteseq-n.gperf:
+ Don't use switch in gperf-generated code. This increases .data by 1k
+ but decreases .text by 6k AND the lookup code is MUCH faster. It used
+ to do tens of compares before.
+
+2008-11-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-n.c (vteseq_n_lookup):
+ * src/vteseq.c (_vte_sequence_get_handler):
+ Revert previous commit, fix NULL dereference that it was trying to
+ fix, and make lookup functions inline.
+
+2008-11-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/Makefile.am:
+ * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-n.c (vteseq_n_lookup):
+ * src/vteseq.c (_vte_sequence_get_handler):
+ Manually modify (and record those modifications in the Makefile)
+ the autogenerated gperf source code so that we return the sequence
+ handler directly from the lookup function, or NULL on failure.
+ So is this pain worth it?
+
+2008-11-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_get_unichar_info):
+ Free internal layout resources.
+
+2008-11-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 562332 – cleanup font infos on exit?
+
+ * src/vtepangocairo.c
+ (cleanup_delayed_font_info_destroys_predicate),
+ (cleanup_delayed_font_info_destroys), (ensure_quit_handler),
+ (font_info_register), (font_info_reference),
+ (font_info_destroy_delayed), (font_info_destroy):
+ Use gtk_quit_add() to complete delayed font_info destroys.
+
+2008-11-26 Christian Persch <chpe gnome org>
+
+ Bug 562338 – don't need to connect to bunch of xft settings
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_style_changed), (add_cursor_timeout),
+ (vte_terminal_init), (vte_terminal_size_allocate),
+ (vte_terminal_finalize), (vte_terminal_realize): Don't listen to
+ changes on the gtk-xft-* GtkSettings properties. Just calling
+ vte_terminal_set_font_full in the style-set handler works fine.
+
+2008-11-26 Christian Persch <chpe gnome org>
+
+ Bug 488960 – gnome-terminal on Solaris 10 does not clean up utmpx on
+ exit (intermittent)
+
+ * gnome-pty-helper/gnome-pty-helper.c: (main):
+ * gnome-pty-helper/gnome-pty.h:
+ * src/pty.c: (_vte_pty_close): Add new GNOME_PTY_SYNCH operation to
+ gnome-pty-helper. Patch from Behdad.
+
+2008-11-26 Christian Persch <chpe gnome org>
+
+ * src/vte.c: (vte_terminal_style_changed),
+ (vte_terminal_ensure_font), (vte_terminal_set_font_full),
+ (vte_terminal_set_font_from_string_full_internal),
+ (vte_terminal_set_font_from_string_full),
+ (vte_terminal_reset_rowdata), (vte_terminal_set_property): Add
+ vte_terminal_set_font_*full_internal so we don't use deprecated
+ symbols internally.
+
+2008-11-26 Christian Persch <chpe gnome org>
+
+ * src/vte.c: (vte_terminal_sync_settings),
+ (vte_terminal_screen_changed): Remove gtk 2.12 version checks, since
+ we already depend on 2.12.
+
+2008-11-26 Christian Persch <chpe gnome org>
+
+ Bug 561366 – remove antialias setting for 1.0
+
+ * src/vte.c: (vte_terminal_set_font_full),
+ (vte_terminal_get_property), (vte_terminal_class_init):
+ * src/vte.h: Deprecate the font antialias setting, and remove the
+ (existing only on trunk) font-antialias property already.
+
+2008-11-25 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am:
+ * src/vteseq-2.c (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-2.gperf:
+ * src/vteseq-n.c (vteseq_n_hash), (vteseq_n_lookup):
+ * src/vteseq-n.gperf:
+ * src/vteseq.c (_vte_sequence_get_handler):
+ Cleanup gperf stuff.
+
+2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 562187 – Add make rules for calling gperf
+
+ * src/Makefile.am: Add a "gperf" target to be run manually.
+
+ * src/vteseq-2.gperf:
+ * src/vteseq-n.gperf:
+ Add comment about "make gperf".
+
+ * src/vteseq-2.c:
+ * src/vteseq-n.c:
+ Regenerate using newer gperf.
+
+2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 416518 – Do something about uniwidths
+
+ * src/iso2022.c (_vte_iso2022_is_ambiguous):
+ Call into glib to determine ambiguous-width chars.
+
+ * src/genwidths.py:
+ * src/uniwidths:
+ Remove.
+
+2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 500191 – Remove vteseq-table.h?
+
+ * src/Makefile.am:
+ * src/vteseq-gen.c:
+ * src/vteseq-table.h:
+ Remove the old table implementation. We use gperf-generated tables
+ now.
+
+2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 514457 – Use g_strv_length()
+
+ * src/vte.c (_vte_terminal_fork_basic): Do it.
+
+2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_create_for_widget): No need to check
+ widget font desc here as vte.c does that for us already.
+
+2008-11-24 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_destroy): Modify GTK_CHECK_VERSION
+ handling to make my vim syntax highlighter happy.
+
+2008-11-23 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_ensure_cursor): Refactor duplicate code.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * src/vte.h: Move all the deprecated stuff into one place.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ Bug 542561 – Doesn't build when disabling gnome-pty-helper
+
+ * src/pty.c: Always include sys/socket.h. Patch by Loïc Minier.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * src/vteapp.c: (main): Fix --blink; the flag is inverted.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * src/vteapp.c: (main): Use vte_terminal_set_cursor_blink_mode instead
+ of the deprecated set_cursor_blinks here.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ Bug 560766 – Deprecate and remove vte_terminal_get_using_xft()
+
+ * src/vte.c: (vte_terminal_get_using_xft):
+ * src/vte.h:
+ * src/vtedraw.c: (_vte_draw_text):
+ * src/vtedraw.h:
+ * src/vtepangocairo.c: Deprecate vte_terminal_get_using_xft() as preparation for
+ bug #560766. Remove the internal vtedraw method already.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ Bug 536894 – Confusing use of "free" as variable-name in ring
+ functions
+
+ * src/ring.c: (_vte_ring_new), (_vte_ring_new_with_delta),
+ (_vte_ring_remove):
+ * src/ring.h: Don't shadow global declarations. Patch by dmacks at
+ netspace.org.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * python/vte.override: Fix missing-prototypes warnings.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * src/vtepangocairo.c: No need to include gi18n-lib.h here.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * configure.in:
+ * vte-uninstalled.pc.in:
+ * vte.pc.in: Clean up the pkgs declared for use in the .pc files.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * configure.in: Depend on gtk 2.12. Bug #398862.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * src/table.c: (print_array): Fix the build (broken since r1622).
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * src/reaper.c: Don't include gtk.h here, it's unneeded.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * src/iso2022.c: (main): Make iso2022 programme build again; it was
+ broken since r1612.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * src/Makefile.am: Separate CFLAGS and CPPFLAGS.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * src/Makefile.am: Don't add LDFLAGS to *_LDADD, that's wrong and
+ broken.
+
+2008-11-22 Christian Persch <chpe gnome org>
+
+ * configure.in:
+ * src/Makefile.am:
+ * vte-uninstalled.pc.in:
+ * vte.pc.in: Remove more configure cruft: OTHERCFLAGS, OTHERLIBS,
+ X_CFLAGS and X_LIBS.
+
+2008-11-21 Christian Persch <chpe gnome org>
+
+ * src/vtepangocairo.c: (font_info_destroy_delayed),
+ (font_info_destroy): Use gdk_threads_add_timeout_seconds() for
+ complete threadsafety.
+
+2008-11-21 Chris Wilson <chris chris-wilson co uk>
+
+ * vte.pc.in: Remove FT2_LIBS and FT2_CFLAGS
+
+2008-11-21 Chris Wilson <chris chris-wilson co uk>
+
+ * src/iso2022.c (_vte_iso2022_is_ambiguous): Break out of interval
+ search as early as possible. Exploit the strict ordering of the
+ ambiguous/unambiguous ranges to break out of the for loop as soon
+ as the character is less than a range start. (As the arrays only
+ contain 2/3 elements, it is not worth adding the overhead of calling
+ bsearch()).
+
+2008-11-21 Chris Wilson <chris chris-wilson co uk>
+
+ * src/iso2022.c (process_cdata): Copy the gunichars directly to the
+ array from the incoming chunk.
+
+2008-11-20 Chris Wilson <chris chris-wilson co uk>
+
+ * src/Makefile.am: Remove FT2_FLAGS
+
+2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_destroy_delayed): Remove obsolete
+ check.
+
+2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 561713 – crash on font cache cleanup
+
+ * src/vtepangocairo.c (font_info_reference), (font_info_destroy):
+ Remove destroy timeout when resurrecting a font info.
+
+2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_cache_ascii),
+ (font_info_allocate), (font_info_free),
+ (font_info_find_for_context):
+ Make profiling messages print the info pointer.
+
+2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Remove more cruft.
+
+2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560819 – Remove obsolete backends
+
+ * configure.in:
+ * src/Makefile.am:
+ * src/vtebg.c (vte_bg_get_pixmap):
+ * src/vtebg.h:
+ * src/vtedraw.c:
+ * src/vtefc.c:
+ * src/vtefc.h:
+ * src/vteft2.c:
+ * src/vteft2.h:
+ * src/vtegl.c:
+ * src/vtegl.h:
+ * src/vteglyph.c:
+ * src/vteglyph.h:
+ * src/vterdb.c:
+ * src/vterdb.h:
+ * src/vtergb.c:
+ * src/vtergb.h:
+ * src/vtexft.c:
+ * src/vtexft.h:
+ Remove all backends except for pangocairo. Saves so much code.
+
+2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560819 – Remove obsolete backends
+
+ * src/Makefile.am:
+ * src/vtedraw.c:
+ * src/vtepango.c:
+ * src/vtepango.h:
+ Remove pango backend.
+
+2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560819 – Remove obsolete backends
+
+ * configure.in:
+ * src/Makefile.am:
+ * src/vtedraw.c:
+ * src/vtepangox.c:
+ * src/vtepangox.h:
+ Remove pangox backend.
+
+2008-11-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560818 – pangocairo backend doesn't share font cache across
+ widgets
+
+ * src/vtepangocairo.c (font_info_cache_ascii),
+ (font_info_allocate), (font_info_free), (font_info_register),
+ (font_info_unregister), (font_info_reference),
+ (font_info_destroy_delayed), (font_info_destroy), (context_hash),
+ (context_equal), (font_info_find_for_context),
+ (font_info_create_for_context), (font_info_create_for_screen),
+ (font_info_get_unichar_info): Cache font info and use it for multiple
+ widgets.
+
+2008-11-19 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_create_for_screen),
+ (font_info_destroy): Remove unused PangoCoverage.
+
+2008-11-19 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_find_unichar_info),
+ (font_info_cache_ascii), (font_info_measure_font),
+ (font_info_get_unichar_info): Cache ASCII characters when building
+ font.
+
+2008-11-18 Christian Persch <chpe gnome org>
+
+ Remove glib usage from gnome-pty-helper. Bug #560977.
+
+ * gnome-pty-helper/Makefile.am: Remove GLIB CFLAGS/LIBS.
+ * gnome-pty-helper/configure.in: Remove glib check, and do some auto*
+ modernisation.
+ * gnome-pty-helper/gnome-pty-helper.c: (open_ptys), (exit_handler),
+ (main): Use alloca instead of g_alloca, and use int instead of
+ gboolean.
+
+2008-11-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtepangocairo.c (font_info_create_for_screen),
+ (font_info_destroy): Remove copy of font desc and antialias from font
+ info object as they were not used.
+
+2008-11-18 Behdad Esfahbod <behdad gnome org>
+
+ Bug 561185 – pangocairo backend sets antialias incorrectly
+
+ * src/vtepangocairo.c (font_info_create_for_screen): Handle
+ FORCE_ENABLE correctly.
+
+2008-11-16 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560817 – pagocairo backend doesn't have correct opacity support
+
+ * src/vtepangocairo.c (_vte_pangocairo_clear),
+ (_vte_pangocairo_draw_text), (_vte_pangocairo_draw_rectangle),
+ (_vte_pangocairo_fill_rectangle): Fix opacity support by using
+ SOURCE operator.
+
+2008-11-16 Behdad Esfahbod <behdad gnome org>
+
+ Bug 560991 – Unsetting background doesn't work
+
+ * src/vte.c (vte_terminal_set_background_image): Correctly unset
+ background if image==NULL.
+
+2008-11-14 Christian Persch <chpe gnome org>
+
+ * src/vteskel.c: Fix missing prototype warning.
+
+2008-11-14 Behdad Esfahbod <behdad gnome org>
+
+ Bug 395599 – Add pangocairo backend
+
+ * configure.in:
+ Require pango >= 1.22.0
+
+ * src/Makefile.am:
+ * src/vtedraw.c:
+ * src/vtepangocairo.c:
+ * src/vtepangocairo.h:
+ Add a pangocairo drawing backend. Use it by default. This is as fast
+ as the xft backend. Doesn't share font caches across widgets yet.
+ Also, the transparent background stuff doesn't match xft backend's
+ yet.
+
+2008-11-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_ensure_font):
+ * src/vtedraw.c (_vte_draw_new), (_vte_draw_free),
+ (_vte_draw_set_background_opacity),
+ (_vte_draw_set_background_color), (_vte_draw_set_text_font),
+ (_vte_draw_get_text_metrics), (_vte_draw_get_char_width),
+ (_vte_draw_char), (_vte_draw_draw_rectangle),
+ (_vte_draw_set_scroll):
+ * src/vtedraw.h:
+ * src/vteft2.c (_vte_ft2_destroy), (_vte_ft2_start),
+ (_vte_ft2_end), (_vte_ft2_set_background_image), (_vte_ft2_clear),
+ (_vte_ft2_set_text_font), (_vte_ft2_get_text_metrics),
+ (_vte_ft2_get_char_width), (_vte_ft2_draw_text),
+ (_vte_ft2_draw_has_char), (_vte_ft2_draw_rectangle),
+ (_vte_ft2_fill_rectangle):
+ * src/vtegl.c (_vte_gl_destroy), (_vte_gl_get_visual),
+ (_vte_gl_start), (_vte_gl_end), (_vte_gl_set_background_image),
+ (_vte_gl_clear), (_vte_gl_set_text_font),
+ (_vte_gl_get_text_metrics), (_vte_gl_get_char_width),
+ (_vte_gl_draw_text), (_vte_gl_draw_has_char), (_vte_gl_rectangle):
+ * src/vtepango.c (_vte_pango_set_text_font),
+ (_vte_pango_get_text_metrics):
+ * src/vtepangox.c (_vte_pangox_create), (_vte_pangox_destroy),
+ (_vte_pangox_start), (_vte_pangox_end),
+ (_vte_pangox_set_background_image), (_vte_pangox_clip),
+ (_vte_pangox_clear), (_vte_pangox_set_text_font),
+ (_vte_pangox_get_text_metrics), (_vte_pangox_get_using_fontconfig),
+ (_vte_pangox_draw_text), (_vte_pangox_draw_has_char),
+ (_vte_pangox_draw_rectangle), (_vte_pangox_fill_rectangle):
+ * src/vtepangox.h:
+ * src/vteskel.c (_vte_skel_clear), (_vte_skel_get_text_metrics),
+ (_vte_skel_draw_text), (_vte_skel_fill_rectangle):
+ * src/vtexft.c (_vte_xft_set_text_font),
+ (_vte_xft_get_text_metrics), (_vte_xft_draw_text):
+ Remove unneeded draw methods.
+
+2008-11-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.c (_vte_draw_get_char_width): Minor fix.
+
+ * src/vtepangox.c (_vte_pango_x_create), (_vte_pango_x_start),
+ (_vte_pango_x_clear): Cleanup here too.
+
+2008-11-13 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in:
+ * src/vte-private.h:
+ Undo previous change instead of cleanly fix it for now.
+
+2008-11-13 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in:
+ * src/vte-private.h:
+ Why do we let people configure random things?
+
+2008-11-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_background_update):
+ * src/vtedraw.c (_vte_draw_update_requires_clear), (_vte_draw_new),
+ (_vte_draw_set_background_opacity),
+ (_vte_draw_set_background_color), (_vte_draw_set_background_image),
+ (_vte_draw_char), (_vte_draw_set_scroll):
+ * src/vtedraw.h:
+ * src/vteft2.c (_vte_ft2_set_background_image), (_vte_ft2_clear),
+ (_vte_ft2_get_char_width):
+ * src/vtegl.c (_vte_gl_create), (_vte_gl_clear),
+ (_vte_gl_get_char_width), (_vte_gl_draw_text):
+ * src/vtepango.c (_vte_pango_create), (_vte_pango_start),
+ (_vte_pango_set_background_image), (_vte_pango_clear):
+ * src/vtexft.c (_vte_xft_create), (_vte_xft_set_background_image),
+ (_vte_xft_clear), (_vte_xft_get_char_width):
+ Simplify backends by relying more on defaults.
+
+2008-11-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.c (_vte_draw_init_user), (_vte_draw_init_default):
+ Accept draw impl if impl->check is NULL.
+
+2008-11-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.h:
+ * src/vtedraw.c (_vte_draw_new), (_vte_draw_get_visual),
+ (_vte_draw_get_colormap), (_vte_draw_start), (_vte_draw_end),
+ (_vte_draw_set_background_color), (_vte_draw_set_background_image),
+ (_vte_draw_requires_repaint), (_vte_draw_clip), (_vte_draw_clear),
+ (_vte_draw_set_text_font), (_vte_draw_get_text_width),
+ (_vte_draw_get_text_height), (_vte_draw_get_text_ascent),
+ (_vte_draw_get_char_width), (_vte_draw_get_using_fontconfig),
+ (_vte_draw_text), (_vte_draw_char), (_vte_draw_has_char),
+ (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle),
+ (_vte_draw_set_scroll):
+ Use sensical defaults instead of g_return_if_fail'ing when backend
+ functions are not implemented.
+
+2008-10-31 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
+
+ * src/vte.c (vte_terminal_deselect_all):
+ Preserve the copy of the selection until it is replace by a new
+ selection, so that we can perform asynchronous copies from the
+ clipboard.
+
+2008-10-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
+
+ * src/vte.c (vte_terminal_deselect_all),
+ (vte_terminal_extend_selection):
+ After the user modifies the selection, copy it to PRIMARY and store
+ it on the terminal. This ensures that after a screen redraw, we
+ compare the contents of the selected region with the current
+ selection, instead of stale data.
+
+2008-10-23 Christian Persch <chpe gnome org>
+
+ * configure.in:
+ * src/Makefile.am: Use glib-genmarshal --internal directly instead
+ of checking the glib version, since we now depend on a glib version
+ that provides this.
+
+2008-10-23 Christian Persch <chpe gnome org>
+
+ Bug 556398 – maybe deprecate vte_terminal_get_char_ascent/descent
+
+ * src/vte.[ch]: Deprecate vte_terminal_get_char_ascent/descent.
+
+2008-10-23 Christian Persch <chpe gnome org>
+
+ Bug 339819 – LibVTE terminals in GLADE
+
+ A glade/*:
+ * Makefile.am
+ * configure.in: Add glade catalogue.
+
+2008-10-23 Christian Persch <chpe gnome org>
+
+ Bug 399364 – Implement properties
+
+ * src/vte.c: Add gobject properties.
+
+2008-10-19 Christian Persch <chpe gnome org>
+
+ Bug 556328 – Document set-scroll-adjustment parameters
+
+ * src/vte.c: Document the set-scroll-adjustments signal.
+
+2008-10-15 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/Makefile.am:
+ * doc/reference/check-doc-coverage.sh:
+ * doc/reference/check.docs:
+ Update doc coverage test from cairo.
+
+2008-10-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_set_cursor_shape):
+ Invalidate cursor upon shape change.
+
+2008-10-15 Christian Persch <chpe gnome org>
+
+ * python/vte.defs: Add new API to the binding.
+
+2008-10-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_draw_line), (vte_terminal_paint_cursor):
+ Remove VTE_CURSOR_OUTLINE in favor of VTE_LINE_WIDTH.
+
+2008-10-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_paint_cursor):
+ Supposedly handle reverse video during cursor drawing.
+
+2008-10-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_paint_im_preedit_string),
+ (vte_terminal_paint):
+ Move IM preedit string drawing into its own function for code
+ clarity.
+
+2008-10-14 Behdad Esfahbod <behdad gnome org>
+
+ Bug 549835 – Feature Request: Configurable cursor appearance
+
+ * src/vte.h:
+ New public api:
+
+ VteTerminalCursorShape
+ vte_terminal_set_cursor_shape
+ vte_terminal_get_cursor_shape
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_insert_char), (vte_terminal_init),
+ (vte_terminal_paint_cursor), (vte_terminal_paint),
+ (vte_terminal_set_cursor_shape), (vte_terminal_get_cursor_shape):
+ Implement new API. Also clean up cursor drawing in general.
+
+ * doc/reference/Makefile.am:
+ * doc/reference/tmpl/reaper.sgml:
+ * doc/reference/tmpl/vte-unused.sgml:
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/vte-sections.txt:
+ Doc new symbols. Also add some missing docs.
+
+2008-10-13 Christian Persch <chpe gnome org>
+
+ * src/vte.c: Add gobject property infrastructure.
+
+2008-10-13 Christian Persch <chpe gnome org>
+
+ * src/Makefile.am: Fix missing prototypes compiler warning in
+ marshal.c.
+
+2008-10-06 Christian Persch <chpe gnome org>
+
+ * src/vteconv.c: (_vte_conv_open): Fix compiler warning.
+
+2008-10-06 Christian Persch <chpe gnome org>
+
+ Bug 509204 – child-exited signal does not provide exit code
+
+ * python/vte.defs: Add the new function to the bindings.
+
+2008-10-06 Christian Persch <chpe gnome org>
+
+ Bug 539130 – building g-t fails due to GtkType etc. deprecation
+
+ * src/vte.h: Deprecate useless macros.
+
+2008-10-06 Christian Persch <chpe gnome org>
+
+ Bug 509204 – child-exited signal does not provide exit code
+
+ * src/vte-private.h:
+ * src/vte.h:
+ * src/vte.c: Add function to get the child's exit status.
+
+2008-10-06 Christian Persch <chpe gnome org>
+
+ * configure.in: Bump version to 0.17.5.
+
+2008-09-08 Christian Persch <chpe gnome org>
+
+ Release 0.17.3.
+
+ * NEWS:
+ * configure.in: Updated.
+
+2008-09-07 Christian Persch <chpe gnome org>
+
+ * python/vte.defs: Update python bindings.
+
+2008-08-20 Sébastien Granjoux <seb sfo free fr>
+
+ Bug 538344 – Anjuta hangs when program is executed in terminal
+
+ * src/vte.c: Ensure the output channel exists when we need to write.
+
+2008-08-20 Christian Persch <chpe gnome org>
+
+ * src/vte.c: (vte_terminal_match_check_internal_gregex): Plug a mem
+ leak.
+
+2008-08-15 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_set_pty):
+ fcntl(2) specifies that the flags argument is a long. Make it so.
+
+2008-08-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_match_check_internal_vte),
+ (vte_terminal_ensure_cursor), (vte_terminal_set_colors),
+ (_vte_terminal_insert_char), (vte_terminal_feed),
+ (vte_terminal_key_press), (vte_terminal_match_hilite_update),
+ (vte_terminal_extend_selection):
+ * src/vteseq.c (vte_terminal_find_charcell),
+ (vte_sequence_handler_set_title_internal),
+ (vte_sequence_handler_decset_internal), (vte_sequence_handler_cb),
+ (vte_sequence_handler_cd), (vte_sequence_handler_ce),
+ (vte_sequence_handler_ec), (vte_sequence_handler_ta),
+ (vte_sequence_handler_set_mode),
+ (vte_sequence_handler_window_manipulation):
+ Fix all "signed vs unsigned comparison" warnings.
+
+2008-08-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (regex_match_clear_cursor),
+ (vte_terminal_set_cursor_from_regex_match):
+ Fix uninitialized cursor warning. Setting to NULL sounds
+ right to me. ChPe?
+
+2008-08-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Remove useless "inline" decorators. Gcc has been
+ rightfully complaining.
+
+2008-08-13 Behdad Esfahbod <behdad gnome org>
+
+ Bug 546940 – Crash when selecting text
+
+ * src/vte.c (vte_terminal_extend_selection): Fix crash with 64-bit
+ systems. Note to self:
+
+ unsigned int len = 0;
+ long i = len - 1;
+ assert (i < 0);
+
+ fails on 64-bit systems.
+
+2008-08-05 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.17.1.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.17.1.
+ Bumped libtool version to 12:0:3.
+
+2008-08-05 Behdad Esfahbod <behdad gnome org>
+
+ Bug 546366 – hard to select last tab char on a line
+
+ * src/vte.c (vte_terminal_extend_selection):
+ * src/vteseq.c (vte_sequence_handler_ta):
+ Handle fragment cells.
+
+2008-08-05 Behdad Esfahbod <behdad gnome org>
+
+ Bug 545924 – tab characters not handled correctly after ncurses clear
+ Patch from Patryk Zawadzki
+
+ * src/vteseq.c (vte_sequence_handler_ta): Ignore empty cells at end of
+ line.
+
+2008-07-14 Behdad Esfahbod <behdad gnome org>
+
+ Bug 542795 – VTE_CJK_WIDTH don't work
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Fix VTE_CJK_WIDTH env
+ handling.
+
+2008-06-27 Christian Persch <chpe gnome org>
+
+ Bug 399744 – Hide more font-aa implementation details
+
+ * src/vtexft.c: Disable antialiasing if using the default antialias
+ setting and the XRender extension is not available.
+
+2008-06-27 Christian Persch <chpe gnome org>
+
+ Bug 510903 – use gtk-cursor-blink setting
+
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/vte-sections.txt:
+ * src/vte-private.h:
+ * src/vte.c:
+ * src/vte.h: Make the cursor blinking follow the gtk setting by
+ default, with a possible override.
+
+2008-06-26 Christian Persch <chpe gnome org>
+
+ * src/vte.h: Remove the enum type declarations that are now in
+ vtetypebuiltins.h.
+
+2008-06-26 Christian Persch <chpe gnome org>
+
+ * Makefile.am:
+ * autogen.sh: Fix the build from svn and make dist when using
+ intltool 0.40.0. Tarball builds still only require 0.35.0.
+
+2008-06-26 Christian Persch <chpe gnome org>
+
+ * src/vteversion.h.in: Disallow direct inclusion of the new
+ vteversion.h file.
+
+2008-06-26 Christian Persch <chpe gnome org>
+
+ * configure.in:
+ * src/Makefile.am:
+ * src/vte.c:
+ * src/vte.h:
+ * src/vtetypebuiltins.c.template:
+ * src/vtetypebuiltins.h.template: Use glib-mkenums to generate the
+ enum types; makes it easier to add more enum types.
+
+2008-06-26 Christian Persch <chpe gnome org>
+
+ Bug 539130 – building g-t fails due to GtkType etc. deprecation
+
+ * src/reaper.h:
+ * src/vte.c:
+ * src/vteaccess.[ch]:
+ * src/vtebg.h: Also remove the deprecated GtkType macros from here.
+
+2008-06-25 Christian Persch <chpe gnome org>
+
+ Bug 540182 – crash in geany with vte trunk
+
+ * src/vte.c: Make sure that match_attributes always exist even if
+ there haven't been any matches added.
+
+2008-06-23 Christian Persch <chpe gnome org>
+
+ Bug 535552 – vte_terminal_set_allow_bold doesn't queue redraw
+
+ * src/vte.c: Invalidate all when changing the allow-bold property.
+
+2008-06-23 Christian Persch <chpe gnome org>
+
+ Bug 535469 – support named cursors on matches
+
+ * src/vte-private.h
+ * src/vte.c
+ * src/vte.h: Implement named cursors on matches.
+
+2008-06-23 Christian Persch <chpe gnome org>
+
+ Bug 418918 – Switch to GRegex
+
+ * src/vte-private.h
+ * src/vte.c
+ * src/vte.h: Implement GRegex matching, to be used alternatively
+ to the old vteregex matching.
+
+2008-06-23 Christian Persch <chpe gnome org>
+
+ Bug 535467 – implement set-scroll-adjustments signal
+
+ * src/vte.c: Add set-scroll-adjustments signal, needed to allow
+ adding a VteTerminal into a GtkScrolledWindow.
+
+2008-06-23 Christian Persch <chpe gnome org>
+
+ Bug 535468 – need version check macros
+
+ * configure.in
+ * doc/reference/tmpl/vteversion.sgml
+ * doc/reference/vte-sections.txt
+ * doc/reference/vte.types
+ * src/Makefile.am
+ * src/vte.h
+ A src/vteversion.h.in: Add version check macro.
+
+2008-06-21 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.h: Don't use GTK_CHECK* macros.
+
+2008-06-04 Christian Persch <chpe gnome org>
+
+ Bug 515972 – Bold black is black in vte's default palette
+
+ * src/vte.c: (vte_terminal_set_colors): Correctly set the value of
+ 'bold black' in the palette. Patch by Santtu Lakkala.
+
+2008-06-04 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.14.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.14.
+ Bumped libtool version to 11:18:2.
+
+2008-06-04 Behdad Esfahbod <behdad gnome org>
+
+ Bug 536632 – vte build failure in ring.c:210: error: expected
+ expression before 'do'
+
+ * src/debug.h:
+ * src/ring.c:
+ * src/ring.h:
+ With latest glib (after bug #519026), g_error is expanding to
+ "do {...} while(0)" instead of "{...}". This breaks build in
+ debugging mode. Use g_critical instead. Also add some
+ G_STMT_START/END to some macros.
+
+2008-05-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c (merge_environ): Replace previous commit with the
+ better patch by Christian Persch.
+
+2008-05-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c (merge_environ): Fix bug in patch to use g_listenv()
+ as it only returns the variable name and we need to use g_getenv()
+ to retrieve its value.
+
+2008-05-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Oops. Fix thinko
+ in last commit.
+
+2008-05-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 535022 – ambiguous width in utf8 locale
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Recognize
+ env var settings VTE_CJK_WIDTH=narrow and VTE_CJK_WIDTH=wide.
+ Any other value means "auto" based on locale, as it was doing
+ previously.
+
+2008-05-21 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c (merge_environ): Silence compiler warning about using
+ environ as a local variable name.
+
+2008-05-21 Richard Hult <richard imendio com>
+
+ Bug 534148 – Use g_listenv() instead of environ
+
+ * src/pty.c: (merge_environ): Use g_listenv() instead of
+ non-portable environ extern.
+
+2008-05-19 Kjartan Maraas <kmaraas gnome org>
+
+ * configure.in: automake doesn't like to substitute more
+ than one variable at a time.
+ * src/vtedraw.c: (_vte_draw_get_using_fontconfig):
+ * src/vtetc.c: (_vte_termcap_find_boolean):
+ Fix two compiler warnings.
+
+2008-05-09 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtedraw.c (_vte_draw_text):
+ Add the text to draw to the debug output.
+
+2008-05-09 Chris Wilson <chris chris-wilson co uk>
+
+ Fix "GLib-CRITICAL **: g_io_add_watch_full: assertion
+ `channel != NULL' failed"
+
+ * src/debug.c (_vte_debug_parse_string):
+ * src/debug.h:
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_emit_adjustment_changed),
+ (_vte_terminal_adjust_adjustments_full),
+ (vte_terminal_scroll_lines), (vte_terminal_maybe_scroll_to_bottom),
+ (_vte_terminal_insert_char), (vte_terminal_catch_child_exited),
+ (mark_input_source_invalid), (_vte_terminal_connect_pty_read),
+ (mark_output_source_invalid), (_vte_terminal_connect_pty_write),
+ (_vte_terminal_disconnect_pty_read),
+ (_vte_terminal_disconnect_pty_write), (_vte_terminal_fork_basic),
+ (vte_terminal_eof), (_vte_terminal_enable_input_source),
+ (vte_terminal_io_read), (vte_terminal_handle_scroll),
+ (vte_terminal_finalize), (vte_terminal_class_init),
+ (vte_terminal_set_pty), (process_timeout), (update_repeat_timeout),
+ (update_timeout):
+ It was possible for _vte_terminal_enable_input_source() to be called
+ after the input closed with G_IO_HUP. The minimal change would just
+ have been to add a guard to check the pty_master was still valid
+ before reattaching the source. Instead I removed the redundant
+ duplication of the input and output channels and added lots of
+ debugging.
+
+2008-05-08 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 516869 – vte displays nothing on GTK+/DirectFB
+
+ Original patch by Jérémy Bobbio.
+
+ * src/vte.c (vte_terminal_class_init), (update_regions),
+ (update_repeat_timeout), (update_timeout):
+ gdk_window_process_all_updates() is ineffective on the gtk+-directfb
+ and gtk+-quartz backends, so in order to process updates immediately
+ one must call gdk_window_process_updates() on the desired GdkWindows
+ instead.
+
+2008-03-10 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.13.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.13.
+ Bumped libtool version to 11:17:2.
+
+2008-02-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 517709 – VTE's pty.c makes 4096 getrlimit calls when it only needs
+ one
+
+ * src/pty.c (_vte_pty_start_helper): Only close fds 0, 1, and 2.
+ gnome-pty-helper closes all fds anyway.
+
+2008-02-08 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c:
+ * src/vteapp.c:
+ * src/vtergb.c:
+ Remove unneeded #include <fontconfig/fontconfig.h>
+
+2008-01-09 Behdad Esfahbod <behdad gnome org>
+
+ Bug 449131 – Wrong gettext domain
+
+ * src/pty.c:
+ * src/reaper.c (vte_reaper_class_init):
+ * src/trie.c:
+ * src/vtebg.c (vte_bg_class_init):
+ * src/vteglyph.c:
+ Oops. Fix all remaining ones too.
+
+2008-01-07 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.12.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.12.
+ Bumped libtool version to 11:16:2.
+.
+2007-12-21 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 503164 – Drawing problems for VTE with gtk+-quartz
+
+ * src/vte.c (vte_terminal_realize):
+ Continuing the saga, remove the fiddling with visibility state
+ during realize.
+
+2007-12-18 Behdad Esfahbod <behdad gnome org>
+
+ Bug 449131 – Wrong gettext domain
+
+ * src/vte.c (vte_terminal_class_init): Use GETTEXT_DOMAIN in
+ bind_textdomain_codeset().
+
+2007-12-17 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.11.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.11.
+ Bumped libtool version to 11:15:2.
+.
+2007-12-17 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 503164 – Drawing problems for VTE with gtk+-quartz
+
+ * src/vte.c (vte_terminal_init):
+ GdkQuartz does not generate GdkVisibilityNotify events and
+ so the terminal was never marked as unobscured, causing all
+ redraws to be discarded. Resolve this by initially setting the
+ terminal to be unobscured.
+
+2007-12-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 319687 – Pasting of text containing characters not in the
+ terminal's encoding silently fails
+
+ * src/vteconv.c (_vte_conv_open): Try to open converter with
+ transliteration. Supported by GNU iconv and GLibc.
+
+2007-12-03 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.10.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.10.
+ Bumped libtool version to 11:14:2.
+.
+2007-12-03 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 497246 – Kill vte_iso2022_fragment_input
+
+ * src/iso2022.c (process_block), (_vte_iso2022_process):
+ Avoid the temporary allocation of the GArray holding the fragments
+ by processing each fragment as it is decyphered. This array is
+ allocated and grown for every single input chunk and is currently the
+ most frequent allocation made by vte.
+
+2007-12-03 Chris Wilson <chris chris-wilson co uk>
+
+ * src/keymap.c: Make is_cursor_key static.
+
+2007-11-28 Behdad Esfahbod <behdad gnome org>
+
+ Bug 412435 – Invalid variable name in Makefile.am
+
+ * Makefile.am:
+ * configure.in:
+ * vte.spec.in:
+ Remove spec file and old convenience cvs make targets.
+
+2007-11-28 Behdad Esfahbod <behdad gnome org>
+
+ Bug 416561 – Rendering issue in VtePango
+
+ * src/vtepango.c (_vte_pango_draw_rectangle):
+ * src/vtepangox.c (_vte_pango_x_draw_rectangle):
+ gdk_draw_rectangle has slightly different semantics when
+ filling vs outlining. Fix for that.
+
+2007-11-28 Behdad Esfahbod <behdad gnome org>
+
+ Bug 416558 – Rendering errors in VteFT2
+
+ * src/vteft2.c (_vte_ft2_create): Disable Gtk+ double-buffering.
+
+2007-11-28 Behdad Esfahbod <behdad gnome org>
+
+ Bug 403217 – Outdated README
+
+ * README: Rewrite.
+
+2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 118967 – single line scrolling with "Ctrl+Shift+ArrowUp/ArrowDown"
+ Patch from Mauricio and Mariano Suárez-Alvarez
+
+ * src/vte.c (vte_terminal_scroll_lines),
+ (vte_terminal_scroll_pages), (vte_terminal_key_press):
+ Implement single-line scroll.
+
+2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 353610 – Don't convert tab characters upon copying
+
+ * src/vte-private.h:
+ * src/vteseq.c (vte_sequence_handler_ta):
+ Smart tab handling to try to preserve tab character upong copying.
+ Also makes such smart tabs all-or-none selectable.
+
+2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 499892 – strikethrough line is too high
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_apply_metrics), (vte_terminal_init),
+ (vte_terminal_draw_cells): Adjust underline/strikethrough thickness
+ and position based on pangofc's heuristics.
+
+2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtedraw.c (_vte_draw_init_user): Make VTE_BACKEND=list list
+ available backends to stderr.
+
+2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 499891 – vte with opacity set, shows invisible chars
+
+ * src/vte.c (vte_terminal_draw_rows): Don't draw invisible chars.
+
+2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 499896 – Alternate charset isn't an attribute, though we treat it
+ as one.
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_set_default_attributes),
+ (_vte_terminal_insert_char), (vte_terminal_reset):
+ * src/vteseq.c (vte_sequence_handler_ae),
+ (vte_sequence_handler_as):
+ Move cell.attr.alternate to screen->alternate_charset.
+
+2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 499893 – cell.attr.protect is unused
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_set_default_attributes):
+ * src/vteseq.c (vte_sequence_handler_mp):
+ Comment out cell.attr.protect which is unused.
+
+2007-11-27 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once):
+ Minor optimization, if one can call it that.
+
+2007-11-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Fix doc syntax.
+
+2007-11-26 Behdad Esfahbod <behdad gnome org>
+
+ Revert previous change. For reason, see bug.
+ Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
+ trailing spaces
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
+ Don't trim space characters, just the empty space after lines,
+ like we used to.
+
+2007-11-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 491832 – vte_terminal_get_text_range_maybe_wrapped always includes
+ trailing spaces
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
+ Trim trailing space characters if asked to.
+
+2007-11-23 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/Makefile.am:
+ * doc/reference/check.docs:
+ Add script to check doc coverage is 100% on "make check".
+
+2007-11-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 499287 – Fix doc coverage regression
+
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/vte-sections.txt:
+ Document undocumented symbols.
+
+2007-11-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_io_read), (vte_terminal_init),
+ (process_timeout), (update_repeat_timeout), (update_timeout):
+ Tweak to read across chunk boundaries whilst still maintaining
+ fairness between multiple terminals and refresh rate targets.
+
+2007-11-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/ring.c (_vte_ring_insert_preserve):
+ Use stack allocation to hold small numbers of temporary
+ gpointers.
+
+2007-11-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_free_row_data), (vte_terminal_reset_rowdata),
+ (vte_terminal_finalize), (vte_terminal_reset):
+ Export _vte_row_data_free.
+
+ * src/vteseq.c (vte_remove_line_internal):
+ Cache the removed VteRowData - fixes the continual reallocation
+ of row data during the vim scrolling benchmark.
+
+2007-11-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (release_chunk), (prune_chunks),
+ (remove_from_active_list), (process_timeout),
+ (update_repeat_timeout):
+ Delay pruning the chunks freelist until we finished processing
+ all the incoming data. We were discarding the freelist far too
+ early and reduced the efficacy of the cache.
+
+2007-11-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vterdb.h:
+ * src/vterdb.c (_vte_rdb_get), (_vte_rdb_search), (_vte_rdb_quark),
+ (_vte_rdb_get_rgba), (_vte_rdb_get_hintstyle), (_vte_rdb_release):
+ Remove redundant queries and cache the XRequest on the root
+ window (saves a few round-trips during terminal construction).
+ Add a new function to free the cache.
+
+ * src/vtefc.c (_vte_fc_defaults_from_rdb):
+ Release the cache after retrieving settings.
+
+2007-11-15 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_focus_out):
+ Similar for the leave notify, disable the match updating after
+ hiding the cursor after the loss of focus.
+ However, do we really want to disable the hilighting whilst the
+ pointer may still be within the terminal?
+
+2007-11-15 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_enter):
+ Don't automatically reshow the hilight on receiving an enter
+ event, but wait for the motion notify to update the cursor
+ co-ordinates, otherwise we may hilight something quite distant
+ from the cursor.
+
+2007-11-15 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_leave):
+ Mark the cursor as invisible on leaving the terminal as this
+ stops the hilight matcher running whilst the cursor is absent.
+
+2007-11-06 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_set_font_from_string_full): Allow NULL
+ font argument. Can be used to set antialias without setting font.
+
+ * src/vteapp.c (main): Fix antialias handling which was borked when
+ moving to GOption.
+
+2007-11-06 Behdad Esfahbod <behdad gnome org>
+
+ Bug 142640 – FcConfigSubstitute in place of _vte_fc_defaults_from_gtk
+ to get antialias and hinting value
+
+ * src/vtefc.c (_vte_fc_defaults_from_gtk),
+ (_vte_fc_defaults_from_rdb): Replace _vte_fc_defaults_from_gtk() with
+ gtk_default_substitute() from Gtk+-2.6. It's essentially the same
+ thing, but not overriding elements of the pattern already present.
+ Also remove a couple redundant calls.
+
+2007-10-11 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 439384 – gnome-terminal on feisty crashes when giving wrong locale environment
+
+ * src/vte.c (vte_terminal_set_encoding):
+ Fallback to using UTF-8 as the locale encoding. This prevents
+ subsequent crashes but may display gibberish in the output.
+
+2007-10-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 483642 – vte_terminal_feed crash when 8190 characters passed
+
+ * src/vte.c (vte_terminal_feed):
+ Break the feed data into chunks.
+
+2007-09-30 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_set_background_image):
+ Skip retrieving the VteBg if the source is VTE_BG_SOURCE_NONE
+ as we neither need it to listen for changes to the background
+ nor require it to load the pixmap (which is a no-op).
+
+2007-09-30 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_destroy):
+ Ensure the GdkPixmap is destroyed along with the VteXft
+ context.
+
+2007-09-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 480735 – Underlining whitespace not reliable
+
+ Original patch by Steven Skovran.
+
+ I really must remember to run vttest more often. (And to work within
+ git-svn.)
+
+ * src/vte.c (vte_terminal_draw_rows):
+ Do not skip spaces.
+
+2007-09-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 480735 – Underlining whitespace not reliable
+
+ Original one-liner by Steven Skovran.
+
+ * src/vte.c (vte_terminal_draw_rows):
+ Do not try to over zealously skip whitespace. The goal is
+ to maintain the current run whilst avoiding adding spaces to
+ the glyph sequence - so check the cell fully for attribute
+ breaks and simply do not add it to the glyphs if it contains a
+ space.
+
+2007-09-17 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.9.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.9.
+ Bumped libtool version to 11:13:2.
+
+2007-09-05 Behdad Esfahbod <behdad gnome org>
+
+ * perf/vim.sh: Wait for keypress when done, so one can do
+ "vte -c ./vim.sh" and not lose the final numbers.
+
+ * src/vtepango.c (_vte_pango_destroy), (_vte_pango_start),
+ (_vte_pango_end), (_vte_pango_set_background_color),
+ (_vte_pango_set_background_image), (_vte_pango_clear),
+ (_vte_pango_set_text_font), (_vte_pango_get_using_fontconfig),
+ (_vte_pango_draw_text), (_vte_pango_draw_has_char),
+ (_vte_pango_draw_rectangle), (_vte_pango_fill_rectangle),
+ (_vte_pango_set_scroll): General cleanup. Also implement
+ _vte_pango_draw_has_char() using
+ pango_layout_get_unknown_glyphs_count() when available.
+
+2007-09-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 469862 – Handling of wrapped links in gnome-terminal is broken
+
+ * src/vteseq.c (vte_sequence_handler_ce): Reset soft_wrapped.
+
+2007-09-01 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 469862 – Handling of wrapped links in gnome-terminal is broken
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
+ Revert the last character is in last column check as that
+ behaviour is required to handle terminal resizing where the
+ screen contents are not reconstructed (e.g. bash).
+
+2007-08-30 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 471901 – troubles with pad
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_invalidate_cells), (vte_terminal_draw_rows),
+ (vte_terminal_paint): Don't abuse VTE_PAD_WIDTH.
+
+2007-08-30 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 469862 – Handling of wrapped links in gnome-terminal is broken
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped):
+ Check that the last character is in the last column before
+ adding a newline for autowrapped lines.
+
+2007-08-30 Chris Wilson <chris chris-wilson co uk>
+
+ * MAINTAINERS: Add myself to the list, as Behdad had suggested some
+ time ago.
+
+2007-08-30 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 153265 – Handle Sun Cut, Copy, Paste keys
+ Patch by Brian Cameron.
+
+ * doc/reference/tmpl/vte.sgml:
+ * src/vte.c (vte_terminal_class_init),
+ (vte_terminal_real_copy_clipboard), (vte_terminal_copy_clipboard),
+ (vte_terminal_real_paste_clipboard),
+ (vte_terminal_paste_clipboard):
+ * src/vte.h:
+ Add key bindings for the special function keys.
+
+2007-08-30 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_draw_rows): Bad manipulation of patches
+ whilst attempting to apply the fix for Bug 434230 - net result was
+ that the correct code was being circumvented.
+
+2007-08-29 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 471484 – vteapp resize weirdness
+
+ * src/vteapp.c (main): Distinguish between setting the geometry and
+ disabling the use of geometry hints. A regression when converting to
+ GOption based arguments.
+
+2007-08-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 470690 – Typo at src/vtexft.c "appropiate" should be "appropriate"
+
+ * src/vtexft.c (_vte_xft_open_font_for_char): Fix typo.
+
+2007-08-07 Behdad Esfahbod <behdad gnome org>
+
+ * MAINTAINERS: Add Userid field, remove Guilherme.
+
+2007-08-03 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 434230 – Spaces are not underlined
+ Original patch by Santtu Lakkala.
+
+ * src/vte.c (vte_terminal_draw_rows): Only skip cells if we do not
+ need to draw on top.
+
+2007-08-03 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 450069 – vte crash on removing a terminal tab
+
+ * src/vte.c (vte_terminal_emit_eof), (vte_terminal_queue_eof),
+ (vte_terminal_eof): Move the EOF emission to an idle handler so that
+ the source is inactive whilst the VteTerminal is finalized.
+
+2007-07-30 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.8.
+
+ Quick followup release with no code changes, to fix missing
+ documentation index in the tarball.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.8.
+ Bumped libtool version to 11:12:2.
+
+2007-07-27 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.7.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.7.
+ Bumped libtool version to 11:11:2.
+
+2007-07-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal
+ Patch by James Bowes
+
+ * src/keymap.c (_vte_keymap_map), (is_cursor_key),
+ (_vte_keymap_key_add_key_modifiers):
+ * src/keymap.h:
+ * src/vte.c (vte_terminal_key_press):
+ Only switch to CSI for some cursor keys when in cursor app mode.
+
+2007-06-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 448259 – Mapping for Ctrl-_
+ Patch by Andrey Melnikov.
+
+ * src/keymap.c: Add mapping for Ctrl-Minus.
+
+2007-06-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 449809 – use python-config to get python includes
+ Patch by Sebastien Bacher.
+
+ * acinclude.m4: prefer python-config where available.
+
+2007-06-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 450745 – VTE's response to CSI 2 1 t incorrectly formatted
+ Patch by Dale Sedivec.
+
+ * src/vteseq.c (vte_sequence_handler_window_manipulation): Restore
+ the missing 'L'.
+
+2007-06-21 Christian Persch <chpe gnome org>
+
+ * configure.in:
+ * src/Makefile.am: Move libtool versioning to configure so you just
+ have to update one file for releasing. See bug #396265 comment 17.
+
+2007-06-18 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.6.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.6.
+
+ * src/Makefile.am: Bumped libtool version to 11:10:2.
+
+2007-06-12 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_set_size): Call gtk_widget_queue_resize()
+ after updating row/column count.
+
+2007-06-11 Behdad Esfahbod <behdad gnome org>
+
+ Bug 372743 – vte_terminal_set_colors doesn't work as advertised
+
+ * src/vte.c (vte_terminal_set_colors): Allow 24-color palettes.
+
+2007-06-09 Behdad Esfahbod <behdad gnome org>
+
+ Bug 445620 – Some characters shows different in different locales.
+ Patch from Zealot
+
+ * src/iso2022.c (_vte_iso2022_state_set_codeset): Update ambiguous
+ width.
+
+2007-06-04 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.5.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.5.
+
+ * src/Makefile.am: Bumped libtool version to 11:9:2.
+
+2007-05-30 Chris Wilson <chris chris-wilson co uk>
+
+ fcrozat pointed out 'some strange "underline" line where cursor is
+ located and blinking'.
+
+ Also reported in bug 442688.
+
+ * src/vte.c (vte_terminal_draw_rows):
+ Continuation of the previous commit: catch a couple more locations
+ where we need to skip past the end of the line. The problem in
+ this case was we tried to use some uninitialised variables whilst
+ trying to draw the cell attributes.
+
+2007-05-28 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.4.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.4.
+
+ * src/Makefile.am: Bumped libtool version to 11:8:2.
+
+2007-05-28 Chris Wilson <chris chris-wilson co uk>
+
+ uws noted on IRC that 'vte trunk does strange thingies with colors'
+
+ * src/vte.c (vte_terminal_draw_rows):
+ When reaching the end-of-row be careful not to reset the
+ current text attributes (color, underlining, etc).
+
+2007-05-25 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_expand_region),
+ (vte_terminal_paint_area):
+ Only add the borders to the clear area.
+
+2007-05-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 429278 – Cursor drawn strangely in joe
+
+ * src/vte.c (vte_terminal_expand_region),
+ (vte_terminal_paint_area):
+ Ensure the expanded regions are cell aligned.
+
+2007-05-23 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 439247 – scrolling vim in full screen is painfully slow and takes up 100% of the cpu
+
+ * src/vte.c (vte_terminal_draw_rows):
+ Fix up the unwanted break of Glyph runs at the end-of-lines.
+
+2007-05-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 440475 – Display glitch with transparent backgroud
+
+ * src/vte.c (vte_terminal_paint_area):
+ Apply the band-aid fix to clear the area that's about to be
+ repainted. The full solution will to be ensure that the regions
+ after expansion are cell-aligned.
+
+2007-05-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 375112 – ctrl-key combinations yielding just key
+ Original patch by <samo altern org> and refactored by Loïc Minier.
+
+ * src/vte.c (vte_translate_national_ctrlkeys),
+ (vte_terminal_key_press):
+ When cooking a string to pass through to the client obtain the
+ "raw" keyval.
+
+2007-05-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 440377 – gnome-terminal cannot refresh terminal when accessibility enabled
+ Original patch by Li Yuan.
+
+ * src/vteaccess.c (vte_terminal_accessible_focus_in),
+ (vte_terminal_accessible_focus_out),
+ (vte_terminal_accessible_visibility_notify):
+ Return FALSE rather than void...
+
+2007-05-17 Chris Wilson <chris chris-wilson co uk>
+
+ * perf/scroll.vim:
+ * perf/vim.sh:
+ Measure full screen scrolling performance.
+
+2007-05-15 Chris Wilson <chris chris-wilson co uk>
+
+ kmaraas reported an issue on IRC where the scrollback was not being
+ updated correctly in the first tab when the terminal was resized via
+ a second tab.
+
+ * src/vte.c (vte_terminal_size_allocate): Check whether we need to
+ recompute the visible lines due to a change in layout geometry.
+
+2007-04-27 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 433776 – gnome-terminal crashes when open preedit area
+ Take 2.
+
+ * src/vte.c (vte_terminal_paint): The preedit_cursor is returned by
+ the input modules in characters not in bytes as assumed by the
+ validation.
+
+2007-04-27 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 433776 – gnome-terminal crashes when open preedit area
+
+ * src/vte.c (vte_terminal_paint): Use the validated cursor index.
+
+2007-04-27 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.3.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.3.
+
+ * src/Makefile.am: Bumped libtool version to 11:7:2.
+
+2007-04-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 429189 – Vte-WARNING's
+
+ * src/vtexft.c (_vte_xft_open_font_for_char):
+ Convert the warning into a DEBUG.
+
+2007-04-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 415044 – Use --enable-debug rather than --enable-debugging
+
+ As noted on Bug 414716, the convention is to use --enable-debug
+ to enable extra debugging code.
+
+ * configure.in:
+ s/debugging/debug/
+
+2007-04-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 414716 – Refresh issue after changing workspaces
+
+ * src/vte.c (vte_terminal_hierarchy_changed):
+ Do not respond to toplevel mapping events.
+
+2007-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.2.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.2.
+
+ * src/Makefile.am: Bumped libtool version to 11:6:2.
+
+2007-04-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 431799 – Regex highlighting is broken
+
+ * src/vte.c (vte_terminal_emit_contents_changed),
+ (vte_terminal_match_hilite_update), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+ Always emit any pending updates before redrawing. This
+ ensures for example that the match contents are updated
+ after a simple scroll event.
+
+2007-04-20 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_start), (_vte_xft_clip):
+ Optimise away the use of a clip mask for the common case
+ of redrawing the whole terminal.
+
+2007-04-17 Behdad Esfahbod <behdad gnome org>
+
+ * src/iso2022.c (_vte_iso2022_ambiguous_width): Consider
+ ambiguous-width chars if VTE_CJK_WIDTH env var is set and we are
+ under a CJK locale.
+
+2007-03-12 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.1.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.1.
+
+ * src/Makefile.am: Bumped libtool version to 11:5:2.
+
+2007-04-06 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 426870 – vte often passes NUL to functions requiring valid unichar
+
+ * src/vte.c (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
+ (vte_terminal_paint):
+ Consistently guard against cell->c == '\0' before calling
+ _vte_draw_get_char_width.
+
+2007-04-06 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 419644 – Links do not get highlighted anymore
+ Also see Bug 404757 – URL matching doesn't work with PCRE
+
+ * configure.in:
+ Kill --with-pcre as it changes the semantics of the API
+ and only causes confusion.
+
+2007-04-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 426541 – crash on IRM escape code
+
+ * src/vte.c (vte_terminal_ensure_cursor),
+ (_vte_terminal_insert_char):
+ Mishandled insertion - we always extended the row for
+ inserts even though the row would automagically extend
+ for the inserted cells. This lead to referencing
+ uninitialised cells at the end of the row during painting.
+ * src/vte.c (vte_terminal_draw_rows):
+ Retrieve the cell before inspecting it.
+
+2007-04-04 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 424184 – Make scroll wheel send Page Up/Down when it makes sense
+
+ Original patch by Shaun McCance and refined by Baris Cicek.
+
+ * src/vte.c (vte_terminal_scroll):
+ Send cursor keypress instead of trying to scroll the
+ alternate screen in vain.
+
+2007-04-03 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 425767 – vte_terminal_set_color_highlight should test for
+ NULL before _vte_debug_print
+
+ * src/vte.c (vte_terminal_set_color_cursor),
+ (vte_terminal_set_color_highlight):
+ Differentiate between set/unset paths.
+
+2007-03-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 422385 – vte appears at the top of the root window even when
+ packed at the bottom of it
+
+ Patch by Dodji Seketeli.
+
+ * src/vte.c (vte_terminal_size_allocate), (vte_terminal_realize):
+ Honour the allocated position when realizing the widget.
+
+2007-03-22 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_draw_text):
+ Insert spaces into the Xft glyph stream to avoid the
+ overhead of restarting a glyph sequence for every word.
+
+2007-03-21 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 420935 – glyph can be cropped with not fitting in a cell
+
+ * src/vte.c (vte_terminal_paint):
+ Don't redraw the invisible cursor
+ - avoids nasty artifacts like clipping extra wide glyphs.
+
+2007-03-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_scroll_pages):
+ Leave 'contents-change' to the scroll handler.
+
+2007-03-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_extend_selection),
+ (vte_terminal_draw_rows):
+ Accidentally inverted an is-empty? check during the
+ elimination of the empty bitfield.
+
+2007-03-19 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 420067 – Does not handle expose events whilst processing
+ unseen incoming data
+
+ * src/vte.c (vte_terminal_expose):
+ Handle the expose immediately if we are only processing
+ incoming data (ie no redraws pending).
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c (vte_sequence_handler_cursor_character_absolute):
+ Remove a chunk of code that was tried as a mutt band-aid
+ long ago and was completely wrong.
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 415381 – Improve performance of vte_terminal_insert_char()
+
+ The bulk of the work to remove redundant reads and conditionals
+ from the code. In particular, gcc was emitting bit-by-bit copies
+ for transferring the bitfield since we modified a member immediately
+ afterwards - overcome this by using an explicit memcpy of the
+ bitfields.
+
+ * src/vte-private.h:
+ * src/vte.c (vte_g_array_fill), (vte_terminal_ensure_cursor),
+ (_vte_terminal_insert_char), (vte_terminal_process_incoming),
+ (vte_terminal_send):
+ * src/vteseq.c (vte_sequence_handler_ic):
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 415381 – Improve performance of vte_terminal_insert_char()
+
+ * src/vte-private.h: Use a simple boolean rather than counter for
+ text changed style flags.
+ * src/vte.c: And update users.
+ * src/vteseq.c:
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 415381 – Improve performance of vte_terminal_insert_char()
+
+ * src/vte-private.h: Embed bitfield into struct
+ * src/vte.c: And update users.
+ * src/vteseq.c:
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Need to trigger update timeout rather than process timeout
+ otherwise the background is not updated.
+
+ * src/vte.c (vte_terminal_queue_adjustment_changed),
+ (vte_terminal_queue_adjustment_value_changed):
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_create), (_vte_xft_destroy),
+ (_vte_xft_start), (_vte_xft_end), (_vte_xft_clip),
+ (_vte_xft_clear): Avoid some allocations.
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 418073 – Opacity ignored for vtexft
+
+ * src/vte.c:
+ * src/vtedraw.c (_vte_draw_requires_clear):
+ * src/vtedraw.h:
+ * src/vteft2.c (_vte_ft2_set_background_image):
+ * src/vtegl.c (_vte_gl_create), (_vte_gl_set_background_image):
+ * src/vtepango.c (_vte_pango_set_background_image):
+ * src/vtepangox.c (_vte_pango_x_set_background_image):
+ * src/vtexft.c (_vte_xft_set_background_color),
+ (_vte_xft_set_background_image):
+ Flood fill the backing pixmap if we need to change it's
+ opacity as well.
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 418910 – Asymmetric scrolling with mouse wheel
+
+ * configure.in:
+ * src/vte.c: Round-up the delta before applying to ensure consistency
+ between up and down.
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_catch_child_exited), (vte_terminal_eof),
+ (vte_terminal_process_incoming): Refactor some common code.
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 416634 – Rendering glitch as autowrapped chars are outside invalidated bbox
+
+ * src/vte.c (_vte_terminal_insert_char),
+ (vte_terminal_process_incoming): Correctly update bbox after
+ autowrapping.
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 416635 – Rendering glitch: double draw of line below exposed region
+
+ * src/vte.c (vte_terminal_expand_region),
+ (vte_terminal_paint_area): Kill a couple of off-by-ones.
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 418588 – Invalid read when drawing preedit cursor
+
+ * src/vte.c (vte_terminal_paint):
+ No need to read what is drawn and furthermore isn't allocated.
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 417652 – Scrolling bug exposed by nvi
+
+ * src/vte.c (vte_terminal_insert_rows), (_vte_terminal_ensure_row),
+ (vte_terminal_ensure_cursor), (_vte_terminal_update_insert_delta):
+ Ensure the rows before updating the insert delta and refactor
+ the common code.
+
+2007-03-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 417301 – Terminal widgets don't respond to DPI changes
+
+ * src/vte.c (vte_terminal_fc_settings_changed): Force a font reload
+ after XFT settings have changed.
+
+2007-03-12 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.16.0.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.16.0.
+
+ * src/Makefile.am: Bumped libtool version to 11:4:2.
+
+2007-03-06 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c (vte_sequence_handler_cm), (vte_sequence_handler_sf):
+ More work to match mutt's behaviour under xterm.
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_io_read):
+ Use the process estimate to load balance between multiple
+ active terminals.
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c (vte_sequence_handler_cm),
+ (vte_sequence_handler_dc), (vte_sequence_handler_sf),
+ (vte_sequence_handler_cursor_character_absolute):
+ Tweak the fill of painted cells to match mutt's behaviour
+ under xterm.
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 414716 – gnome-terminal-2.17.92: terminal window dies...
+
+ * src/vte.c (vte_terminal_map_toplevel),
+ (vte_terminal_hierarchy_changed):
+ Force the visibility state to unobscured after the toplevel is
+ remapped.
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_size_allocate):
+ Note to self: Never try to optimize away the redraw.
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (_vte_terminal_insert_char):
+ * src/vtedraw.c (_vte_draw_text), (_vte_draw_char),
+ (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle):
+ Touch up whitespace in debug output.
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (_vte_invalidate_cells), (vte_terminal_set_visibility),
+ (vte_terminal_paint_area), (vte_terminal_expose):
+ Make sure the invalidated_all flag is cleared in the expose
+ event if we handle it immediately.
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c (vte_sequence_handler_ce),
+ (vte_sequence_handler_clear_current_line):
+ Fixup invalidation to end-of-line.
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
+
+ * src/vte.c (vte_terminal_draw_rows), (vte_terminal_expand_region):
+ Include the window padding when painting the cell backgrounds.
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 414586 – Terminal screen blinks when menu is opened for the first time
+
+ Avoid resetting the window background colour when the style is reset.
+ Avoid clearing the window if we are using a simple color and double
+ bufferring (i.e when we know we are using a pre-cleared pixmap).
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_init), (vte_terminal_size_allocate),
+ (vte_terminal_unrealize), (vte_terminal_realize),
+ (vte_terminal_paint_area), (vte_terminal_expose),
+ (vte_terminal_class_init), (vte_terminal_background_update):
+ * src/vtedraw.c (_vte_draw_has_background_image):
+ * src/vtedraw.h:
+ * src/vteft2.c (_vte_ft2_set_background_image):
+ * src/vtegl.c (_vte_gl_set_background_image):
+ * src/vtepango.c (_vte_pango_set_background_image):
+ * src/vtepangox.c (_vte_pango_x_set_background_image):
+ * src/vtexft.c (_vte_xft_set_background_image):
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 414586 – Terminal screen blinks when menu is opened for the first time
+
+ * src/vte.c (_vte_invalidate_cells), (_vte_invalidate_all),
+ (vte_terminal_expose), (add_update_timeout):
+ Juggle the handling of external exposes/invalidates to avoid
+ delays in refreshing the display when we are idle.
+
+2007-03-05 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
+
+ * src/vte.c (_vte_invalidate_cells), (vte_terminal_init),
+ (vte_terminal_expand_region), (vte_terminal_paint_area):
+ After enlarging the expand region make sure the dirty area
+ includes the border for edge cells.
+
+2007-03-04 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 414586 – Terminal screen blinks when menu is opened for the first time
+
+ Distinguish between internal update requests and external. If we
+ need to update due to a user action (such as adjusting the background
+ or color palette) do not impose a futher delay.
+
+ Tidy the color palette modification code to not trigger invalidates if
+ we do not actually modify the palette.
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_set_color_internal),
+ (vte_terminal_set_color_bold), (vte_terminal_set_color_dim),
+ (vte_terminal_set_color_foreground),
+ (vte_terminal_set_color_background),
+ (vte_terminal_set_color_cursor),
+ (vte_terminal_set_color_highlight), (vte_terminal_set_colors),
+ (root_pixmap_changed_cb), (vte_terminal_set_background_saturation),
+ (vte_terminal_set_background_tint_color), (add_update_timeout):
+ * src/vteseq.c (vte_sequence_handler_ce),
+ (vte_sequence_handler_clear_current_line),
+ (vte_sequence_handler_clear_above_current):
+
+2007-03-02 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413068 – new line added to tab when opened
+
+ * src/vte.c (vte_terminal_size_allocate):
+ Replace the ill-conceived attempt (delta could not be
+ negative, so insert_delta or scroll_delta would not become
+ negative either) by only considering changes wrt to the number
+ of visible lines.
+
+2007-03-02 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413068 – new line added to tab when opened
+
+ * src/vte.c (_vte_terminal_insert_char):
+ Improve debug output.
+ * src/vte.c (vte_terminal_size_allocate):
+ Be careful that we don't force insert_delta or scroll_delta
+ to become negative.
+
+2007-03-01 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.6.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.6.
+
+ * src/Makefile.am: Bumped libtool version to 11:3:2.
+
+2007-03-01 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (vte_terminal_draw_cells), (vte_terminal_draw_rows),
+ (vte_terminal_paint):
+ Tweak the clear widths to include the pixel widening due to
+ psuedo-bold.
+
+2007-03-01 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_ensure_row),
+ (vte_terminal_ensure_cursor), (_vte_terminal_insert_char):
+ * src/vteseq.c (vte_sequence_handler_ta):
+ Be more careful when filling in gaps.
+
+2007-03-01 Chris Wilson <chris chris-wilson co uk>
+
+ Fix X11 headers / libraries detection on bi-arch systems.
+ Patch by Frederic Crozat.
+
+ * configure.in:
+ Check for x_includes before ac_x_includes, and similary for
+ ac_x_libraries.
+
+2007-03-01 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410534 – Slow content scrolling, takes 100% of CPU.
+
+ * src/vtexft.c:
+ Further reduce the cap to 80 after more testing on the
+ broken fglrx driver.
+
+2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413068 – new line added to tab when opened
+
+ * src/vte.c (vte_terminal_ensure_font), (vte_terminal_realize):
+ Beware when no font is set before the first request...
+ Make sure that at least the default font is set.
+
+2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413262 – Incorrectly coloured tabs
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_ensure_cursor),
+ (_vte_terminal_ensure_cursor), (_vte_terminal_insert_char),
+ (_vte_terminal_feed_chunks), (vte_terminal_set_scrollback_lines):
+ * src/vteseq.c (vte_sequence_handler_ta),
+ (vte_sequence_handler_request_terminal_parameters),
+ (vte_sequence_handler_return_terminal_status),
+ (vte_sequence_handler_send_primary_device_attributes):
+ Fill the tab in the current color, else it will be filled at
+ the time of writing the next character.
+
+2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413102 – Incorrect highlighting in vim
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_ensure_row),
+ (_vte_terminal_insert_char):
+ * src/vteseq.c(vte_sequence_handler_cb),
+ (vte_sequence_handler_ce), (vte_sequence_handler_cr),
+ (vte_sequence_handler_ec), (vte_sequence_handler_sf):
+ Paint the row background when scrolling, this more closely
+ matches xterm's behaviour.
+
+2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413158 – Cursor trails
+
+ * src/vte.c (_vte_invalidate_cell):
+ _vte_invalidate_cell() can be called to invalidate any visible
+ cell so issue the invalidate even for blank cells.
+
+2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c (_vte_terminal_insert_char):
+ Correct the OBO in the number of columns ensured.
+
+2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 413078 – Crash during opening a new tab whilst scrolling
+
+ During input processing it was possible to both remove the timeout and
+ then add a new one. The currently running timeout would believe that
+ it was to continue since the terminal was still active, and so *two*
+ timeouts would be scheduled. Occasionally the second timeout would be
+ called after the first had finished all the work, resulting in the
+ second timeout trying to access a NULL active_terminal list.
+
+ * src/vte.c (add_update_timeout), (remove_from_active_list),
+ (vte_terminal_add_process_timeout), (need_processing),
+ (process_timeout), (update_repeat_timeout), (update_timeout):
+ Watch for recursive g_source_remove() from within timeouts.
+
+2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410534 – Slow content scrolling, takes 100% of CPU.
+
+ Submitting long glyph runs was causing a dramatic (10x) slow down
+ in the fglrx xserver.
+
+ * src/vtedraw.h:
+ * src/vtexft.c(_vte_xft_draw_text):
+ Cap the max glyph run length to 300.
+
+2007-02-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 412717 – Crash when opening a new tab with window maximized
+
+ * src/vte.c (vte_terminal_size_allocate):
+ We didn't carefully check the values we were clamping the
+ cursor to and ended up setting it to -1... Don't do that!
+
+2007-02-27 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteaccess.c (vte_terminal_accessible_text_scrolled):
+ Consistently guard against the snapshot being NULL.
+
+2007-02-27 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.5.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.5.
+
+ * src/Makefile.am: Bumped libtool version to 11:2:2.
+
+2007-02-27 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 412562 – Crash in vte_terminal_match_hilite_update
+
+ * src/vte.c (vte_terminal_match_check_internal),
+ (vte_terminal_process_incoming), (_vte_terminal_feed_chunks),
+ (vte_terminal_paste_cb), (vte_terminal_match_hilite_update),
+ (vte_terminal_copy_cb):
+ Fixup a few 64bit-isms, notably format strings and an
+ undesired unsigned integer promotion causing this crash.
+
+2007-02-27 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410986 – Fails to build with -z defs
+
+ If you link the vtemodule.so to libpython, then programs importing
+ vte will have the symbols twice in memory: one set from python and
+ the other from libpython.
+
+ * configure.in:
+ * python/Makefile.am:
+ Remove PYTHON_LIBS from linking vtemodule.so.
+ Convert unresolved symbol errors into warnings so that
+ building with -Wl,-z,defs continues to work. This is a
+ *hack* as it hides real errors if you are updating
+ vte.{def,override}.
+
+2007-02-27 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c (_vte_xft_open_font_for_char),
+ (_vte_xft_font_for_char), (_vte_xft_compute_char_width),
+ (_vte_xft_char_width), (_vte_xft_start), (_vte_xft_get_char_width),
+ (_vte_xft_draw_text):
+ Avoid some computations whilst drawing text.
+
+2007-02-26 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.4.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.4.
+
+ * src/Makefile.am: Bumped libtool version to 11:1:2.
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410986 – Fails to build with -z defs
+
+ The forgotten half - the python module also fails to link.
+
+ * acinclude.m4:
+ * python/Makefile.am:
+ Add PYTHON_LIBS pointing to the customary location and
+ remember to include them when compiling vtemodule.so.
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 412361 – Yet another mouse selection regression...
+ Part 2.
+
+ * src/vte.c: (vte_terminal_queue_adjustment_value_changed),
+ (_vte_terminal_adjust_adjustments_full),
+ (vte_terminal_scroll_pages), (vte_terminal_autoscroll),
+ (vte_terminal_size_allocate), (vte_terminal_scroll):
+ We implicitly used a bit of sanity checking when setting the
+ adjustment value. Ensure the value really is within the
+ adjustment range before updating scroll_delta.
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 412361 – Yet another mouse selection regression...
+ Part 1.
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ Restore drawing of the selection below the text.
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_class_init), (time_process_incoming),
+ (process_timeout), (update_repeat_timeout), (update_timeout):
+ Update max number of processable bytes each time we call
+ vte_terminal_process_incoming().
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_emit_adjustment_changed),
+ (_vte_terminal_adjust_adjustments_full):
+ Refactor the common code.
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Push a couple of NULL checks to the callers so to be able to move them
+ outside of the inner-most loops.
+
+ * src/vte.c: (_vte_row_data_find_charcell), (_vte_invalidate_cell),
+ (_vte_terminal_adjust_adjustments),
+ (vte_terminal_get_text_range_maybe_wrapped), (find_start_column),
+ (find_end_column), (vte_terminal_draw_rows):
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Some applications, such as cat, dump as much data to the terminal as
+ possible. In these scenarios it is likely that we will read data from
+ the child much faster than we can process it and the refresh will
+ stutter.
+
+ The ideal solution would be to speed up the data processing so that
+ this overrun was impossible. However, the approach taken here is to
+ estimate how much data we can actually process in our time slice and
+ to stop reading once we have sufficient data.
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_invalidate_all),
+ (vte_terminal_emit_contents_changed),
+ (vte_terminal_match_contents_clear),
+ (vte_terminal_match_contents_refresh),
+ (vte_terminal_emit_adjustment_changed),
+ (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
+ (vte_terminal_catch_child_exited), (vte_terminal_eof),
+ (vte_terminal_process_incoming), (vte_terminal_io_read),
+ (vte_terminal_handle_scroll), (vte_terminal_init),
+ (vte_terminal_size_allocate), (need_processing), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 411000 – Orca repeats old text in gnome-terminal
+
+ The deferred handling of the window scrolling had the unfortunate
+ side-effect of postponing the accessibility 'text-scrolled' signal
+ until after the 'text-inserted' signal. This caused vteaccess to
+ determine that the whole window had been modified and cause orca to
+ reread the entire screen.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_emit_contents_changed),
+ (_vte_terminal_queue_contents_changed),
+ (vte_terminal_emit_cursor_moved),
+ (vte_terminal_queue_cursor_moved), (vte_terminal_scroll_pages),
+ (vte_terminal_eof), (vte_terminal_emit_pending_text_signals),
+ (vte_terminal_process_incoming), (vte_terminal_handle_scroll),
+ (vte_terminal_size_allocate), (vte_terminal_unrealize),
+ (vte_terminal_emit_pending_signals):
+ * src/vteaccess.c: (emit_text_caret_moved),
+ (emit_text_changed_insert), (emit_text_changed_delete):
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+ Restore the order of the ally signals. However, Bug 372777
+ remains unresolved.
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_io_read):
+ Eeek, correctly compute the buffer length when we no longer
+ aim to fill it.
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ Use a separate debug flag for the ally interface.
+
+ * src/debug.c: (_vte_debug_parse_string):
+ * src/debug.h:
+ * src/vteaccess.c:
+ (vte_terminal_accessible_update_private_data_if_needed),
+ (vte_terminal_accessible_invalidate_cursor),
+ (vte_terminal_accessible_finalize),
+ (vte_terminal_accessible_get_text),
+ (vte_terminal_accessible_get_text_somewhere),
+ (vte_terminal_accessible_text_init),
+ (vte_terminal_accessible_component_init),
+ (vte_terminal_accessible_action_init),
+ (vte_terminal_accessible_factory_new):
+
+2007-02-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_io_read):
+ And finally clamp the maximum number of bytes transferred in
+ a single chunk.
+
+2007-02-24 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c:
+ Hint that the compiler should inline
+ vte_terminal_determine_colors().
+
+2007-02-24 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
+ cf Bug 410463 – Poor interactive performance with multiple terminals
+
+ * src/vte.c: (vte_terminal_io_read):
+ Do not loop whilst reading in a backlog of child data - should
+ help prevent monopolisation of vte by a single child and make
+ vte more responsive to user input on slower computers.
+
+2007-02-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 159078 – slow highlight
+
+ Do not update the match hilite during a selection-drag.
+ Record unsuccesful regex matches, so we can quickly determine whether
+ the cursor is still inside the blank region.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_match_check_internal),
+ (rowcol_inside_match), (vte_terminal_match_check),
+ (_vte_terminal_set_pointer_visible),
+ (vte_terminal_match_hilite_clear),
+ (vte_terminal_match_hilite_show), (vte_terminal_match_hilite_hide),
+ (vte_terminal_match_hilite_update), (vte_terminal_match_hilite),
+ (vte_terminal_motion_notify), (vte_terminal_button_press),
+ (vte_terminal_focus_in), (vte_terminal_focus_out),
+ (vte_terminal_enter), (vte_terminal_leave), (vte_terminal_init),
+ (vte_terminal_unrealize), (vte_terminal_draw_rows),
+ (vte_terminal_paint):
+
+2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ A couple of compiler warnings and avoid unnecessary arithmetic.
+
+ * src/vte.c: (_vte_terminal_set_default_attributes),
+ (find_start_column), (find_end_column),
+ (vte_terminal_start_selection), (vte_terminal_extend_selection),
+ (vte_terminal_draw_rows), (vte_terminal_paint):
+ * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_for_char),
+ (_vte_xft_char_width), (_vte_xft_unlock_fonts), (_vte_xft_start),
+ (_vte_xft_clip), (_vte_xft_set_text_font), (_vte_xft_draw_text):
+
+2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 411276 – SVN trunk compilation error
+ Part 2.
+
+ * configure.in:
+ Check that the header file defines FcStrFree before checking
+ for the availability of the function. Complete hack, but
+ appears to work.
+
+2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 411276 – SVN trunk compilation error
+
+ * configure.in:
+ Ubuntu Edgy appears to have a broken fontconfig-dev package
+ where the function is exported from the library but is missing
+ the corresponding prototypes.
+ So we reorder the determination of the compilation flags
+ before checking for available functions in the hope that the
+ tests will then match the results at compile time.
+
+2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_io_read):
+ Prevent a deadlock on recursively grabbing the gdk_mutex.
+
+2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Heuristic to avoid a read when it's likely to just return EAGAIN.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_io_read), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+
+2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Add a new debug flag to monitor draw operations.
+ Don't issue individual glyphs for is_local_graphic() in the middle of
+ a run.
+
+ * src/debug.c: (_vte_debug_parse_string):
+ * src/debug.h:
+ * src/vte.c: (vte_terminal_unichar_is_local_graphic),
+ (vte_terminal_draw_rows), (vte_terminal_paint):
+ * src/vtedraw.c: (_vte_draw_init_user), (_vte_draw_init_default),
+ (_vte_draw_new), (_vte_draw_free), (_vte_draw_get_visual),
+ (_vte_draw_get_colormap), (_vte_draw_start), (_vte_draw_end),
+ (_vte_draw_set_background_color), (_vte_draw_set_background_image),
+ (_vte_draw_requires_repaint), (_vte_draw_clip), (_vte_draw_clear),
+ (_vte_draw_set_text_font), (_vte_draw_get_text_width),
+ (_vte_draw_get_text_height), (_vte_draw_get_text_ascent),
+ (_vte_draw_get_char_width), (_vte_draw_get_using_fontconfig),
+ (_vte_draw_text), (_vte_draw_char), (_vte_draw_has_char),
+ (_vte_draw_fill_rectangle), (_vte_draw_draw_rectangle),
+ (_vte_draw_set_scroll):
+ * src/vtedraw.h:
+ * src/vteft2.c: (_vte_ft2_draw_has_char):
+ * src/vtegl.c: (_vte_gl_draw_has_char):
+ * src/vtepango.c: (_vte_pango_draw_has_char):
+ * src/vtepangox.c: (_vte_pango_x_draw_has_char):
+ * src/vteskel.c: (_vte_skel_draw_has_char):
+ * src/vtexft.c: (_vte_xft_draw_has_char):
+
+2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ Don't break a glyph run for a graphic, issue the draw
+ and continue.
+
+2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Cache the font metrics on the vte_xft_font, avoids having to remeasure
+ when opening a new terminal.
+
+ * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_set_text_font):
+
+2007-02-23 Chris Wilson <chris chris-wilson co uk>
+
+ Share XftFonts between terminal backends and preserve faces from the
+ previous draw - helps prevents font cache thrashing inside libXft.
+
+ * src/vtexft.c: (_vte_xft_font_hash), (_vte_xft_font_equal),
+ (_vte_xft_font_open), (_vte_xft_font_close),
+ (_vte_xft_font_for_char), (_vte_xft_unlock_fonts),
+ (_vte_xft_destroy), (_vte_xft_start), (_vte_xft_end),
+ (ptr_array_zeroed_new), (_vte_xft_set_text_font),
+ (_vte_xft_get_char_width), (_vte_xft_draw_text),
+ (_vte_xft_draw_char):
+
+2007-02-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410986 – Fails to build with -z defs
+ Patch by Loïc Minier.
+
+ * src/Makefile.am:
+ Add FreeType to the libs.
+
+2007-02-22 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_send):
+ Return in the face of error as we appear to hit this in the
+ wild.
+
+2007-02-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410819 – slider not correctly positioned after calling less
+
+ * src/vte.c: (_vte_terminal_adjust_adjustments),
+ (_vte_terminal_adjust_adjustments_full),
+ (vte_terminal_maybe_scroll_to_top), (vte_terminal_size_allocate),
+ (vte_terminal_set_scrollback_lines):
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+ Fixup a lot of issues with changing the number of scrollback
+ lines, such as missing value_changed signals for the
+ scrollbar and a couple of missing CLAMPs.
+
+2007-02-22 Chris Wilson <chris chris-wilson co uk>
+
+ After adjusting the current profile, the last line gets chomped.
+
+ * src/vte.c: (vte_terminal_set_scrollback_lines):
+
+2007-02-21 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 410534 – Slow content scrolling, takes 100% of CPU.
+
+ * src/vte.c: (vte_terminal_scroll),
+ (vte_terminal_set_scrollback_lines):
+ Operate on scroll delta directly as adjustment->value updates
+ are not instantaneous and we may have several scroll events
+ before the next update.
+
+2007-02-21 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 410463 – Poor interactive performance with multiple terminals
+
+ * src/vte.c: (vte_terminal_io_read), (process_timeout),
+ (update_repeat_timeout):
+ When multiple terminals are active, poll the IO sources
+ from within the process/display timeout (akin to
+ interrupt mitigation).
+ Return to normal interrupts when we only have a single active
+ terminal - so we don't sacrifice high performance.
+
+2007-02-21 Chris Wilson <chris chris-wilson co uk>
+
+ A small bit of callgrinding, avoid the modulus inside
+ vte_terminal_ensure_cursor() by caching the last row_data.
+
+ * src/iso2022.c: (process_cdata):
+ * src/ring.c: (_vte_ring_new), (_vte_ring_insert),
+ (_vte_ring_insert_preserve), (_vte_ring_remove):
+ * src/ring.h:
+ * src/table.c: (_vte_table_match):
+ * src/vte.c: (_vte_terminal_ensure_cursor),
+ (_vte_terminal_insert_char), (vte_terminal_process_incoming):
+
+2007-02-21 Chris Wilson <chris chris-wilson co uk>
+
+ Callgrind strikes again...
+ Inserting a char is a rare operation (especially in the scrolling
+ benchmark!) so only read the old cell during an insert. This wins
+ about 5% during a hexdump.
+
+ * src/iso2022.c: (_vte_iso2022_find_nextctl),
+ (_vte_iso2022_fragment_input), (process_cdata):
+ * src/vte.c: (_vte_terminal_insert_char):
+ * src/vteseq.c: (vte_sequence_handler_sf):
+
+2007-02-21 Chris Wilson <chris chris-wilson co uk>
+
+ RedHat Bug 113195: First line displayed incorrectly if prompt changes background color
+
+ e.g. PS1='\e[46m[\u@\h:\w]\e[m \e[45m'
+ The issue is when we insert a char on a new row and the background is
+ not the default, we fill the entire row with the *current* colour.
+ This behaviour is incorrect, and the fix is to fill to the end of the
+ line on a carriage return.
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_terminal_ensure_cursor),
+ (_vte_terminal_insert_char), (vte_terminal_process_incoming),
+ (vte_terminal_send):
+ * src/vteseq.c: (vte_sequence_handler_ce),
+ (vte_sequence_handler_cr), (vte_sequence_handler_cs),
+ (vte_sequence_handler_cS),
+ (vte_sequence_handler_cursor_lower_left),
+ (vte_sequence_handler_dc), (vte_sequence_handler_ic),
+ (vte_sequence_handler_sf):
+
+2007-02-20 Chris Wilson <chris chris-wilson co uk>
+
+ RedHat Bug 123845: gnome-terminal not parsing cursor position escape sequence properly
+
+ * src/caps.c:
+ * src/vteseq.c: (vte_sequence_handler_cm):
+ Add 'ESC [ Pn H' to cursor-position and provide default
+ values.
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 409055 – Terminal stays blank
+
+ Due to GTK+ coallescing of XExposeEvents it was possible for our
+ GdkExposeEvent to arrive before the GdkVisibilityEvent associated with
+ the mapping of our toplevel and so we discarded the event as we
+ believed we were still unviewable.
+
+ * src/vte.c: (_vte_invalidate_cells), (vte_terminal_expose),
+ (reset_update_regions):
+ Assume that all GdkExposeEvents have been checked for
+ suitability before delivery. We know this true for locally
+ generated expose events which are extensively checked during
+ invalidation, and we presume that X will not generate expose
+ events on unmapped or otherwise unviewable windows.
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_terminal_adjust_adjustments),
+ (_vte_terminal_adjust_adjustments_full):
+ Dead code elimination.
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * perf/random.sh:
+ A simple script to dump a fixed amount of random data to the
+ terminal.
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ A few more trivial incremental improvements.
+
+ * src/Makefile.am:
+ * src/iso2022.c: (_vte_iso2022_map_get):
+ Switch to a VteTree.
+ * src/vte.c: (_vte_terminal_update_insert_delta),
+ (_vte_terminal_insert_char):
+ No need to ensure the cursor when scrolling, only before
+ insertions.
+ * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_close),
+ (_vte_xft_font_for_char), (_vte_xft_end):
+ Lock the face over the entire expose.
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ Improve handling of parallel 'cat /dev/urandom' - notably a crasher
+ in the table matcher, repeated g_getenv processing and wasted time
+ in g_tree_lookup.
+
+ * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
+ (_vte_iso2022_map_init), (_vte_iso2022_map_get),
+ (process_8_bit_sequence), (process_cdata),
+ (_vte_iso2022_process_single), (_vte_iso2022_process):
+ * src/table.c: (_vte_table_match):
+ * src/vte-private.h:
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (update_timeout):
+ In conjunction with the previous fix, since the terminal
+ can be removed from the active list by
+ vte_terminal_process_incoming() we need to be careful whilst
+ iterating along the active list.
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ <fcrozat> ickle: hi.. our kernel hacker just found a nice reproducible
+ crash in vte :)
+ <ickle> oh, joy
+ <fcrozat> very easy to reproduce
+ cat /dev/urandom
+ wait 2 or 3S
+ then press Ctrl-Shift-T to open a new tab
+ => crash
+
+ * src/vte.c: (process_timeout), (update_repeat_timeout):
+ vte_terminal_process_incoming() can trigger a terminal reset
+ which will remove the terminal from the active list, and then
+ we attempt to remove it again after handling the incoming
+ data. The fix is simple - don't delete the link if the the
+ terminal is no longer active.
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ As noticed on bug 409055, we do not receive a visibility-notify
+ event when we switch workspaces (or even when the window is iconified).
+ The workaround for this is to watch for our toplevel being unmapped
+ and set the fully-obscured flag.
+
+ * src/vte.c: (vte_terminal_configure_toplevel),
+ (vte_terminal_unmap_toplevel), (vte_terminal_hierarchy_changed),
+ (vte_terminal_set_visibility), (vte_terminal_visibility_notify):
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (visibility_state_str),
+ (vte_terminal_visibility_notify), (vte_terminal_init),
+ (vte_terminal_realize):
+ Add the visibility state to the debug output.
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * configure.in:
+ Add the configuration details to config.log as well.
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 409241 – gnome-terminal crashed with SIGSEGV in vte_terminal_draw_graphic()
+
+ * src/vte.c: (vte_terminal_paint):
+ Lookup fore/back colours before attempting to draw the graphic
+ character behind the unfocused cursor.
+
+2007-02-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_visibility_notify):
+ Add VTE_DEBUG_EVENT info.
+
+2007-02-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 407945 – "GNOME" Terminal" regression after "vte" update when using "csh"
+
+ When passing multiple versions of the same environment
+ variable to execve (i.e g_spawn) the result is undefined.
+ So we solve the ambiguity by using the application passed env to
+ override values from the current environment.
+
+ * src/pty.c: (collect_variables), (merge_environ),
+ (_vte_pty_run_on_pty):
+
+2007-02-16 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 408536 – trouble compiling vte 0.15.3
+
+ * configure.in:
+ * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
+ Check for availability of FcStrFree() - only used for
+ debugging purposes so we can live without it.
+
+2007-02-15 Chris Wilson <chris chris-wilson co uk>
+
+ Guard against a missing default number of rows or columns
+ inside the termcap.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_set_emulation), (vte_terminal_init):
+
+2007-02-15 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 408040 – vte automagic hyperlinks
+ Patch by Gilles Dartiguelongue.
+
+ * src/vteapp.c:
+ Correct the typo in the nntp protocol matcher.
+
+2007-02-14 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 407839 – Use of environ breaks build on Solaris
+ Original patch by Damien Carbery.
+
+ * src/pty.c:
+ extern char **environ - glibc was 'conveniently' declaring
+ it for us...
+
+2007-02-13 Chris Wilson <chris chris-wilson co uk>
+
+ uws reported that scrolling inside screen with a status line was
+ broken. Indeed any scrolling inside an alternative screen was broken,
+ e.g. plain vim would not always update the topmost line. The issue was
+ the interaction with the deferred value-changed signal emission and
+ failing to correctly maintain the current scroll_delta. The fix is
+ that we always now apply changes to the scroll_delta and swap
+ scroll_delta with adjustment->value before the deferred signal
+ emission to correctly trigger the handle_scroll().
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_invalidate_cells),
+ (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_value_changed),
+ (_vte_terminal_adjust_adjustments),
+ (_vte_terminal_adjust_adjustments_full),
+ (vte_terminal_maybe_scroll_to_bottom),
+ (vte_terminal_process_incoming), (vte_terminal_extend_selection),
+ (vte_terminal_handle_scroll), (vte_terminal_set_scrollback_lines):
+ * src/vteseq.c: (vte_sequence_handler_sf):
+
+2007-02-13 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 407358 – regression in mouse selection
+
+ * src/vte.c: (vte_terminal_motion_notify):
+ When outside the terminal we used an uninitialised variable to
+ determine the mouse tracking mode.
+
+2007-02-12 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.3.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.3.
+
+ * src/Makefile.am: Bumped libtool version to 11:0:2.
+
+2007-02-12 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_extend_selection),
+ (vte_terminal_motion_notify):
+ Restore autoscroll behaviour.
+
+2007-02-12 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_start_selection):
+ Invalidate the selected region when starting in
+ select-word or select-line mode.
+
+2007-02-12 Chris Wilson <chris chris-wilson co uk>
+
+ Restore double-click to select word behaviour, broken by r1671 as
+ the second click occurs in the same place as the first (obviously!).
+
+ * src/vte.c: (vte_terminal_extend_selection),
+ (vte_terminal_autoscroll), (vte_terminal_motion_notify),
+ (vte_terminal_button_press):
+
+2007-02-12 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 407091 – vte_terminal_fork_command() env argument changed semantic in 0.15.2
+ Original patch by Michael Vogt.
+
+ * src/pty.c: (_vte_pty_run_on_pty):
+ Copy the current environment into the child's.
+
+2007-02-11 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 323393 – Hyper-sensitive selection
+
+ * src/vte.c: (vte_terminal_extend_selection):
+ Don't start (or update) the selection until you
+ move off the current cell (character).
+
+2007-02-11 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 406763 – Selecting double-wide characters
+
+ * src/vte.c: (start_column), (end_column),
+ (vte_terminal_start_selection), (vte_terminal_extend_selection),
+ (vte_terminal_draw_rows):
+ Extend selection to include fragment cells i.e. double-wide
+ characters.
+
+2007-02-10 Chris Wilson <chris chris-wilson co uk>
+
+ Have a separate adjust_adjustments for when we know that the page
+ size and step lengths may have changed.
+
+ * src/vte.c: (_vte_terminal_adjust_adjustments),
+ (_vte_terminal_adjust_adjustments_full),
+ (vte_terminal_set_scrollback_lines), (vte_terminal_reset):
+
+2007-02-10 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_terminal_adjust_adjustments),
+ (vte_terminal_size_allocate), (vte_terminal_set_scrollback_lines):
+ Prevent the display of garbage after resizing and switching
+ between alternate screens.
+ However, instead of displaying garbage after the cursor, we
+ lose some data above the current scroll delta, should we have
+ a full history. Bizarre.
+
+2007-02-09 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_terminal_adjust_adjustments):
+ Do not allow to scroll past the last line after reducing
+ scrollback lines.
+ * src/vtexft.c: (_vte_xft_set_text_font):
+ Ensure a fallback height is set.
+
+2007-02-09 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_get_text_range_maybe_wrapped):
+ Reuse VteRowData whilst in the row.
+
+2007-02-09 Chris Wilson <chris chris-wilson co uk>
+
+ Rework to reduce number of times mutex is taken and shorten the hold.
+
+ * src/vte.c: (vte_terminal_queue_adjustment_changed),
+ (vte_terminal_queue_adjustment_value_changed),
+ (vte_terminal_io_read), (vte_terminal_paint),
+ (vte_terminal_add_process_timeout), (vte_terminal_is_processing),
+ (vte_terminal_start_processing):
+
+2007-02-09 Chris Wilson <chris chris-wilson co uk>
+
+ A number of small bug fixes...
+ - do not override the user setting of scrollback lines with the
+ terminal size.
+ - only set the current screen rather than both and so reset the
+ scrollback lines when we switch between normal and alternate.
+ - do not invalidate inside set_scrollback lines as setting does not
+ actually modify the on-screen contents.
+ - push the scroll-adjustment to the post-processing emission.
+ - queue timeouts on value change (should be a no-op)
+ - reorder emission so that scrolling occurs before invalidating the
+ window (ie so that the scroll happens this cycle, not next).
+
+ Still unsolved: the clamping of the cursor when switching between
+ alternate screens.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_changed),
+ (vte_terminal_queue_adjustment_value_changed),
+ (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
+ (vte_terminal_maybe_scroll_to_top),
+ (vte_terminal_maybe_scroll_to_bottom),
+ (_vte_terminal_ensure_cursor), (_vte_terminal_update_insert_delta),
+ (vte_terminal_process_incoming), (vte_terminal_extend_selection),
+ (vte_terminal_autoscroll), (vte_terminal_handle_scroll),
+ (vte_terminal_size_allocate), (vte_terminal_scroll),
+ (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_set_scrollback_lines), (vte_terminal_reset),
+ (add_process_timeout), (vte_terminal_add_process_timeout),
+ (vte_terminal_start_processing), (update_repeat_timeout),
+ (update_timeout):
+ * src/vteseq.c: (vte_sequence_handler_scroll_up_or_down),
+ (vte_sequence_handler_decset_internal), (vte_sequence_handler_al),
+ (vte_sequence_handler_dl), (vte_sequence_handler_sf),
+ (vte_sequence_handler_sr), (vte_sequence_handler_clear_screen),
+ (vte_sequence_handler_cursor_character_absolute),
+ (vte_sequence_handler_insert_lines),
+ (vte_sequence_handler_delete_lines),
+ (vte_sequence_handler_screen_alignment_test):
+
+2007-02-08 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteapp.c: (main): whitespace
+
+2007-02-08 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 363597 – Scrollback in profile dialog doesn't work
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_init),
+ Only use SCROLLBACK_MIN during initialisation, so rename it
+ to SCROLLBACK_INIT.
+ (vte_terminal_set_scrollback_lines):
+ Remove MAX(lines, SCROLLBACK_MIN) and update code comments
+ to reduce confusion.
+
+2007-02-08 Mariano Suárez-Alvarez <mariano gnome org>
+
+ * src/vteapp.c(main): do something useful with --geometry.
+
+2007-02-08 Chris Wilson <chris chris-wilson co uk>
+
+ Use gtk_widget_get_(screen|display) which will itself return a default
+ if not currently attached.
+
+ * src/vtedraw.c: (_vte_draw_get_colormap):
+ * src/vtefc.c: (_vte_fc_defaults_from_gtk):
+ * src/vtegl.c: (_vte_gl_check), (_vte_gl_create),
+ (_vte_gl_destroy), (_vte_gl_start), (_vte_gl_end), (_vte_gl_clear),
+ (_vte_gl_draw_text), (_vte_gl_rectangle):
+ * src/vterdb.c: (_vte_rdb_get):
+ * src/vteseq.c: (vte_sequence_handler_window_manipulation):
+
+2007-02-08 Chris Wilson <chris chris-wilson co uk>
+
+ Some more callgrinding - kill a little bit of overhead.
+
+ * src/iso2022.c: (_vte_iso2022_sequence_length),
+ (_vte_iso2022_fragment_input), (process_control):
+ * src/matcher.c: (_vte_matcher_free_params_array):
+ * src/vteconv.c: (_vte_conv):
+
+2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ Actually return whether or not we found the char in
+ _vte_xft_font_for_char - saves having to double check afterwards!
+
+ * src/vtexft.c: (_vte_xft_font_for_char), (_vte_xft_set_text_font),
+ (_vte_xft_draw_text):
+
+2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ As spotted perusing roxterm, we fail to redraw after changing the text
+ colour.
+
+ * src/vte.c: (vte_terminal_set_color_internal):
+ Remember to invalidate all!
+
+2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_match_check_internal):
+ Scan for newlines before and after the current row
+ to find the entire line in case of soft-wrapping.
+
+2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 345344 – Pattern matching is inefficient
+ Bug 324246 – Performance degredation with large numbers of highlighted addresses/URLs
+
+ * src/vte.c: (vte_terminal_match_check_internal):
+ Trim the searched string down to the row containing the
+ pointer. During a mutt session this drops the time consumed by
+ regexec from ~30% to ~2%.
+ Note: multi-line regexes are now unsupported!
+
+2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c: (_vte_sequence_get_handler):
+ Avoid the strlen when possible.
+
+2007-02-07 Chris Wilson <chris chris-wilson co uk>
+
+ Some cleanups and a bug...
+
+ vte_terminal_match_hilite() compared the current cell to the last
+ mouse position without a floor().
+
+ * src/vte.c: (vte_terminal_process_incoming),
+ (vte_terminal_match_hilite), (vte_terminal_select_all),
+ (vte_terminal_select_none), (vte_terminal_motion_notify),
+ (vte_terminal_button_press):
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 86119 – "select all" feature
+ Original patch by Simone Gotti.
+
+ * src/vte.c: (vte_terminal_select_all), (vte_terminal_select_none):
+ * src/vte.h:
+ Add 2 new API entry points to select the entire contents
+ and clear the current selection.
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 342059 – ASCII escape sequences don't work as expected
+ Correction by Mariano Suárez-Alvarez.
+
+ * src/vteseq.c: (vte_sequence_handler_cursor_character_absolute):
+ OBO on the parameter.
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 342059 – ASCII escape sequences don't work as expected
+ Patch by Mariano Suárez-Alvarez.
+
+ * src/vteseq.c: (vte_sequence_handler_cursor_character_absolute):
+ Provide a default value.
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ And finally as noted on bug 324246#c8 hide the hilite when the mouse
+ leaves the terminal (show again when it enters and let motion-notify
+ correct it later).
+
+ * src/vte.c: (vte_terminal_enter), (vte_terminal_leave),
+ (vte_terminal_realize), (vte_terminal_class_init):
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ As noted on bug 324246#c8, hide the hilite when the focus disappears.
+ On focus restore the match for the last mouse coordinates and let
+ motion-notify take care of the rest.
+
+ * src/vte.c: (vte_terminal_match_hilite_update),
+ (vte_terminal_match_hilite), (vte_terminal_focus_in):
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Convert the exposed rectangles to cells and remerge them.
+
+ * src/vte.c: (vte_terminal_expand_region),
+ (vte_terminal_paint_area), (vte_terminal_paint):
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ As noted on Bug 401052#c13, vte fails to completely clear the cell's
+ previous contents.
+
+ * src/vte.c: (_vte_invalidate_cells):
+ Grow the invalidate region by a single pixel to accomodate
+ antialiased pseudo-bold characters.
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Move status_line_changed to post-processing emission.
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_terminal_insert_char), (vte_terminal_reset),
+ (vte_terminal_emit_pending_signals):
+ * src/vteseq.c: (vte_sequence_handler_ts):
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ Clamp down on needless invalidates during selection.
+
+ As commented on in Bug 401052#c10
+
+ * src/vte.c: (_vte_invalidate_region), (vte_terminal_deselect_all),
+ (vte_terminal_match_hilite_clear), (vte_terminal_start_selection),
+ (vte_terminal_extend_selection):
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ Don't needlessly break the text run on a space if we are
+ not drawing cell attributes.
+
+2007-02-06 Chris Wilson <chris chris-wilson co uk>
+
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous_ht):
+ One more G_UNLIKELY
+ * src/vte.c: (vte_terminal_match_hilite),
+ (vte_terminal_motion_notify):
+ Avoid expensive hiliting if the pointer is not in the window.
+ * src/vteregex.c: (_vte_regex_exec):
+ Prefer g_new(x,n) over g_malloc(sizeof(x)*n)
+
+2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 404757 – URL matching doesn't work with PCRE
+
+ * configure.in:
+ mention the inconsistency in the help string and default to no.
+
+2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ Don't draw cell attributes across spaces.
+
+2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_terminal_insert_char):
+ A couple more G_LIKELYs.
+
+2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 403028 – decset mode 12 = blinking cursor
+
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+ Following convention, disallow the application's control
+ over the blinking cursor in favour of the user's setting.
+
+2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ Some more small callgrind tweaks - well into the law of diminishing
+ returns.
+
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous_ht),
+ (_vte_iso2022_is_ambiguous), (process_8_bit_sequence),
+ (process_cdata), (_vte_iso2022_unichar_width):
+ * src/matcher.c: (_vte_matcher_free_params_array):
+ * src/vte.c: (vte_terminal_process_incoming):
+
+2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ Beware the trivial change. Handle reuse of GValueArray correctly.
+
+ * src/matcher.c: (_vte_matcher_match):
+ * src/table.c: (_vte_table_match):
+ * src/trie.c: (_vte_trie_match):
+ * src/vte.c: (vte_terminal_process_incoming):
+
+2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/table.c: (_vte_table_match):
+ And kill the leak as vte_table_match erroneously cleared
+ its output arguments.
+
+2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ The continual reallocation of GValueArray is the last trivially
+ avoidable g_realloc.
+
+ * src/interpret.c: (main):
+ * src/matcher.c: (_vte_matcher_create), (_vte_matcher_destroy),
+ (_vte_matcher_match), (_vte_matcher_free_params_array):
+ * src/matcher.h:
+ * src/table.c: (_vte_table_extract_string):
+ * src/trie.c: (_vte_trie_matchx), (_vte_trie_match), (main):
+ * src/vte.c: (vte_terminal_process_incoming):
+
+2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ * src/ring.c: (_vte_ring_insert):
+ Missed an important compiler warning.
+
+2007-02-05 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 342338 – suffers from memory fragmentation
+
+ Reuse the last VteRowData instead of immediately freeing it. Avoids
+ recreating and *regrowing* a new GArray on the heap.
+
+ In the simple scrolling benchmarks this can boost performance by as
+ much as 10%!
+
+ * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
+ (_vte_ring_remove), (_vte_ring_append):
+ * src/ring.h:
+ * src/vte-private.h:
+ * src/vte.c: (_vte_reset_row_data), (_vte_terminal_ensure_cursor),
+ (_vte_terminal_insert_char), (vte_terminal_reset_rowdata):
+ * src/vteseq.c: (vte_insert_line_internal),
+ (vte_sequence_handler_scroll_up_or_down),
+ (vte_sequence_handler_cd), (vte_sequence_handler_sf),
+ (vte_sequence_handler_clear_screen),
+ (vte_sequence_handler_screen_alignment_test):
+
+2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ A few more compiler warnings.
+
+ * src/buffer.c: (_vte_buffer_peek_gstring):
+ * src/iso2022.c: (process_control):
+ * src/vteft2.c: (_vte_ft2_set_text_font):
+ * src/vteseq.c: (vte_sequence_handler_set_title_internal):
+ * src/vtetc.c: (_vte_termcap_parse_file):
+
+2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 106618 – CJK 'fixed width' font and 's p a c e d o u t' issue
+
+ * src/vtedraw.h:
+ * src/vteglyph.c: (_vte_glyph_cache_set_font_description):
+ * src/vtepango.c: (_vte_pango_set_text_font):
+ * src/vtepangox.c: (_vte_pango_x_set_text_font):
+ * src/vtexft.c: (_vte_xft_set_text_font):
+ Detect a change in font between wide-chars and recheck for a
+ fixed-width estimate.
+
+2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Micro-opts.
+
+ * src/table.c: (_vte_table_match):
+ No need set to NULL.
+ * src/vte.c: (_vte_terminal_ensure_cursor):
+ If we have added some rows, the last is the current.
+
+2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Move window/icon title changed to the post-processing emission - helps
+ with the artificial benchmark of replaying a recorded jhbuild script.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_finalize),
+ (vte_terminal_emit_icon_title_changed),
+ (vte_terminal_emit_window_title_changed),
+ (vte_terminal_emit_pending_signals):
+ * src/vteseq.c: (vte_sequence_handler_set_title_internal):
+
+2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Broke clear-to-end-of-line by lowering the number of cells appended,
+ instead of the number of cells invalidated.
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ * src/vteseq.c: (vte_sequence_handler_ce):
+
+2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 83285 – Treacle-slow scrolling in gnome-terminal on unaccelerated X server
+
+ Another chunk of performance improvements - the majority focusing on
+ reducing the amount of work down per interrupt (input data from
+ child).
+
+ To handle reads without addition copies VTE_INPUT_CHUNK_SIZE chunks
+ are allocated on demand and filled from read with no further copy -
+ previously the read was into a local buffer and then immediately
+ copied into a _vte_buffer.
+ _vte_iso2022_process() is then adjusted to use a ptr+length, rather
+ than a _vte_buffer and is called for every input chunk (taking special
+ care over the boundary cases).
+
+ * src/interpret.c: (main):
+ * src/iso2022.c: (_vte_iso2022_fragment_input),
+ (process_8_bit_sequence), (process_cdata), (_vte_iso2022_process):
+ * src/iso2022.h:
+ * src/vte-private.h:
+ * src/vte.c: (get_chunk), (release_chunk), (prune_chunks),
+ (_vte_incoming_chunks_release), (_vte_incoming_chunks_length),
+ (_vte_incoming_chunks_count), (_vte_incoming_chunks_reverse),
+ (vte_terminal_match_check_internal), (_vte_terminal_ensure_cursor),
+ (vte_terminal_set_colors), (_vte_terminal_insert_char),
+ (vte_terminal_catch_child_exited), (vte_terminal_eof),
+ (vte_terminal_process_incoming), (_vte_terminal_feed_chunks),
+ (vte_terminal_io_read), (vte_terminal_feed), (vte_terminal_send),
+ (vte_terminal_init), (vte_terminal_finalize), (vte_terminal_reset),
+ (remove_from_active_list), (need_processing), (update_regions),
+ (update_repeat_timeout):
+ * src/vte.h:
+ * src/vteseq.c: (vte_sequence_handler_cb),
+ (vte_sequence_handler_ce), (vte_sequence_handler_ec):
+
+2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Store whether the codeset is ambiguous in a state variable,
+ rather than recomputing the ambiguous width every processing loop.
+
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous),
+ (_vte_iso2022_state_new), (_vte_iso2022_find_nextctl):
+
+2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c: (_vte_xft_create), (_vte_xft_destroy):
+ Remove zero-initialisers after g_slice_new0().
+ * src/vtexft.c :(_vte_xft_set_text_font):
+ Print out the width range.
+
+2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ * configure.in:
+ Missing space between -Wflags.
+
+2007-02-04 Chris Wilson <chris chris-wilson co uk>
+
+ Eliminate the temporary g_sliced parameter list,
+ in favour of an on-stack list.
+
+ * src/table.c: (_vte_table_arginfo_head_init),
+ (_vte_table_arginfo_alloc), (_vte_table_arginfo_head_revert),
+ (_vte_table_arginfo_head_reverse),
+ (_vte_table_arginfo_head_finalize), (_vte_table_addi),
+ (_vte_table_matchi), (_vte_table_extract_string),
+ (_vte_table_match):
+
+2007-02-02 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
+ Dump the chosen fonts to VTE_DEBUG_MISC.
+ * src/vteft2.c: (_vte_ft2_set_text_font):
+ Print out the font metrics ala vtexft.c
+
+2007-02-02 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 322241 – Please switch to pkg-config to check for freetype
+
+ * configure.in:
+ Prefer to use the freetype2.pc if available.
+
+2007-02-02 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 322240 – Usage of pkg-config privates header
+
+ * vte.pc.in:
+ Move @FT2_LIBS@ to Libs.private.
+
+2007-02-01 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 403275 – crash in Terminal: I was typing reset on th...
+
+ Not the crash, just a freeze found whilst trying to reproduce the
+ bug on trunk.
+
+ * src/vte.c: (remove_from_active_list):
+ Don't remove the terminal from the active list if it still
+ has pending redraws.
+
+ * src/vte.c: (process_timeout), (update_timeout):
+ Reorder the loop to remove the terminal from the active list
+ if it no longer needs processing.
+
+2007-02-01 Chris Wilson <chris chris-wilson co uk>
+
+ * perf/scroll.vim:
+ Extract the bits the test needs out of debian.vim.
+
+2007-02-01 Chris Wilson <chris chris-wilson co uk>
+
+ As spotted on bug 399617c8, we convert an array of unichars to a
+ string and then iterate over the string interpreting bytes as
+ unichars.
+
+ * src/table.c: (_vte_table_extract_numbers):
+ Dispense with the temporary string and process the unichar
+ array directly.
+
+2007-02-01 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 403159 – XftDrawSetClipRectangles() silently fails on ppc->i386
+
+ * src/vtexft.c: (_vte_xft_clip):
+ Precompute clip offsets.
+
+2007-02-01 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 382245 – __PyGtk_API multiply defined in python module
+
+ * configure.in:
+ Add -fno-common to MAYBE_WARN in order to catch future
+ errors of this type.
+ * python/vte.override:
+ Define PYGTK_NO_IMPORT.
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 155687 – Scroll region \E[NN;MMr should set cursor to home
+
+ Patch originally by Michele Baldessari.
+
+ * src/vteseq.c: (vte_sequence_handler_cs):
+ Move the cursor to (0,0) rather than clamping the cursor to
+ be inside the scroll region.
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ In a few places the contents of a GValue were being used without
+ checking that they were of the expected type.
+
+ cf Bug 117945 which mentions stack corruption inside
+ vte_sequence_handler_delete_lines() - one of the corrected instances.
+
+ * src/vteseq.c: (vte_sequence_handler_al),
+ (vte_sequence_handler_cs), (vte_sequence_handler_cS),
+ (vte_sequence_handler_dl),
+ (vte_sequence_handler_character_attributes),
+ (vte_sequence_handler_insert_lines),
+ (vte_sequence_handler_delete_lines),
+ (vte_sequence_handler_device_status_report),
+ (vte_sequence_handler_dec_device_status_report):
+ Check that the GValue holds a long before dereference.
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Back to the old-style io loop as _vte_buffer_append() is too slow - on
+ a slow system the read can fill before the data is copied (even more
+ apparent under valgrind).
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_io_read):
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Use the display stashed inside the font and not the default display!
+
+ * src/vtexft.c: (_vte_xft_char_exists), (_vte_xft_text_extents),
+ (_vte_xft_font_open), (_vte_xft_font_close),
+ (_vte_xft_font_for_char), (_vte_xft_draw_text):
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ A mixed bag of cleanups.
+
+ * configure.in:
+ * src/pty.c: (_vte_pty_set_utf8):
+ Test for existence of tc[sg]etattr.
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_changed),
+ (vte_terminal_set_color_internal), (vte_terminal_handle_sequence),
+ (_vte_terminal_enable_input_source), (vte_terminal_io_read),
+ (vte_terminal_init), (vte_terminal_unrealize),
+ (vte_terminal_finalize), (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_emit_pending_signals), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+ Move idle signal emission to display handlers.
+ * src/vtedraw.h:
+ Add '&' to the single width characters.
+ * src/vteseq.c: (_vte_sequence_get_handler):
+ * src/vteseq.h:
+ Drop the extraneous GQuark parameter.
+ * src/vtexft.c: (_vte_xft_set_text_font):
+ Avoid use of strlen for a compile-time fixed length string.
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 147784 – cursor unvisible under mouse highlight
+
+ Original patch by Chris Health
+
+ * src/vte.c: (vte_terminal_paint):
+ Reverse cursor color if it is in the selected region and draw
+ it as an outline.
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 368894 – crash in Terminal: I started gnome-terminal...
+
+ * src/vtebg.c: (vte_bg_cache_search), (vte_bg_get_pixmap),
+ (vte_bg_get_pixbuf):
+ When retrieving a cached pixmap check that the visual
+ matches the current request.
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Use gdk_error_trap_{push,pop} around raw Xft calls - about a
+ path outside of vte_draw_{begin,end}.
+
+ * src/vtexft.c: (_vte_xft_set_text_font):
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Use gdk_error_trap_{push,pop} around raw X11 and Xft calls.
+ cf Bug 368894.
+
+ * src/vtexft.c: (_vte_xft_font_for_char), (_vte_xft_start),
+ (_vte_xft_end):
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Use gperf to calculate a more optimal vte_sequence_get_handler().
+ This reduces vte_sequence_get_handler() from ~13% of the runtime
+ during 'seq 1 1e6' to ~.5% (cumulative).
+
+ * src/Makefile.am:
+ * src/vteseq-2.c: (vteseq_2_hash), (vteseq_2_lookup):
+ * src/vteseq-2.gperf:
+ * src/vteseq-n.c: (vteseq_n_hash), (vteseq_n_lookup):
+ * src/vteseq-n.gperf:
+ * src/vteseq.c: (_vte_sequence_get_handler):
+
+2007-01-31 Chris Wilson <chris chris-wilson co uk>
+
+ Rudimentary vim scrolling benchmark.
+
+ * perf/Makefile.am:
+ * perf/UTF-8-demo.txt:
+ * perf/scroll.vim:
+ * perf/vim.sh:
+
+2007-01-30 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 402329 – Rendering problem with underlines and cursor
+
+ * src/vte.c: (vte_terminal_paint):
+ Check hilite state when redrawing character under cursor.
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_io_read):
+ Clean up the read IO loop.
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ NULL return from pcre_study() does not necessarily mean an error
+ occurred.
+
+ * src/vteregex.c: (_vte_regex_compile), (_vte_regex_exec):
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_terminal_set_pointer_visible),
+ (_vte_terminal_fudge_pango_colors):
+ Kill a couple more compiler warnings.
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 336105 – gnome-terminal crashes when termcap not found
+
+ * src/matcher.c: (_vte_matcher_init):
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_set_default_tabstops),
+ (vte_terminal_key_press), (vte_terminal_set_emulation),
+ (_vte_terminal_inline_error_message), (vte_terminal_set_termcap),
+ (vte_terminal_init), (vte_terminal_finalize),
+ (vte_terminal_draw_cells):
+ Detect and issue an inline warning when we fail
+ to load a termcap.
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Tighten the invalidated cells.
+
+ * src/vte.c: (_vte_terminal_select_text):
+ * src/vteseq.c: (vte_sequence_handler_cb):
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ More compiler warnings.
+
+ * src/vtepangox.c: (_vte_pango_x_set_text_font),
+ (_vte_pango_x_draw_text):
+ * src/vteregex.c: (_vte_regex_exec):
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Detect availability of PCRE.
+
+ * configure.in:
+ * src/Makefile.am:
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Improve handling of multi-row clears.
+
+ * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_draw_rows),
+ (vte_terminal_paint):
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Add debugging flags for printing out cells contents and attributes as
+ they are rendered.
+
+ * src/debug.c: (_vte_debug_parse_string):
+ * src/debug.h:
+ * src/vte.c: (vte_terminal_draw_cells):
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_rows):
+ Don't issue glyph items for blank cells.
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * configure.in:
+ Add -Wshadow to MAYBE_WARN
+ * src/ring.c: (_vte_ring_remove):
+ * src/table.c: (_vte_table_matchi):
+ * src/vtedraw.c: (_vte_draw_clip):
+ * src/vteskel.c:
+ Clean up some compiler warnings.
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteskel.c:
+ Add the NULL clip func to the skeleton function table.
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Update match hilite before showing the pointer as the choice of
+ cursor depends on whether the pointer is above a matched region.
+
+ * src/vte.c: (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release):
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ Only update the matched region if we move the pointer outside of the
+ currently matched region.
+ And only invalidate the cells underneath the matched region.
+
+ * src/vte.c: (_vte_invalidate_region),
+ (vte_terminal_match_hilite_clear), (cursor_inside_match),
+ (vte_terminal_match_hilite), (vte_terminal_draw_rows):
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/table.c: (_vte_table_free):
+ Fix a memleak.
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ ==26147== 2,895 (352 direct, 2,543 indirect) bytes in 22 blocks are definitely lost in loss record
107 of 170
+ ==26147== at 0x4021380: malloc (vg_replace_malloc.c:149)
+ ==26147== by 0x4E85965: g_malloc (gmem.c:131)
+ ==26147== by 0x4E95537: g_slice_alloc (gslice.c:777)
+ ==26147== by 0x4E7C255: g_list_prepend (glist.c:95)
+ ==26147== by 0x428B887: vte_terminal_feed (vte.c:10991)
+ ==26147== by 0x429DD20: vte_terminal_io_read (vte.c:3214)
+ ==26147== by 0x4EA7A8C: g_io_unix_dispatch (giounix.c:162)
+ ==26147== by 0x4E7E481: g_main_context_dispatch (gmain.c:2045)
+ ==26147== by 0x4E8145E: g_main_context_iterate (gmain.c:2677)
+ ==26147== by 0x4E81808: g_main_loop_run (gmain.c:2881)
+ ==26147== by 0x45BA503: gtk_main (gtkmain.c:1148)
+ ==26147== by 0x805F7A3: main (terminal.c:1773)
+
+ * src/vte.c: (remove_from_active_list), (process_timeout),
+ (update_repeat_timeout):
+ g_list_delete_link() is the one that actually frees the link.
+ s/g_list_remove_link/g_list_delete_link/.
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ ==26147== Conditional jump or move depends on uninitialised value(s)
+ ==26147== at 0x42AB9F7: _vte_rdb_search (vterdb.c:95)
+ ==26147== by 0x42ABB40: _vte_rdb_quark (vterdb.c:201)
+ ==26147== by 0x42ABB9F: _vte_rdb_get_hintstyle (vterdb.c:241)
+ ==26147== by 0x42A7952: _vte_fc_patterns_from_pango_font_desc (vtefc.c:302)
+ ==26147== by 0x42B4E9B: _vte_xft_set_text_font (vtexft.c:103)
+ ==26147== by 0x42A6BE5: _vte_draw_set_text_font (vtedraw.c:258)
+ ==26147== by 0x428C62B: vte_terminal_ensure_font (vte.c:5963)
+ ==26147== by 0x4290295: vte_terminal_size_request (vte.c:6613)
+ ==26147== by 0x4E25228: g_cclosure_marshal_VOID__BOXED (gmarshal.c:566)
+ ==26147== by 0x4E17038: g_type_class_meta_marshal (gclosure.c:567)
+ ==26147== by 0x4E188FC: g_closure_invoke (gclosure.c:490)
+ ==26147== by 0x4E29779: signal_emit_unlocked_R (gsignal.c:2370)
+ ==26147==
+
+ * src/vterdb.c: (_vte_rdb_get):
+ Check the result of the get_property_string before using the
+ returned values.
+
+2007-01-29 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_draw_rows):
+ Merge draw_cells() with the background clear, as generating
+ items for many rows and then splitting again in draw cells is
+ simply inefficient.
+
+2007-01-28 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 401215 – Multi-pass renderering
+
+ * src/vte.c: (vte_terminal_draw_cells), (vte_terminal_clear_cells),
+ (vte_terminal_draw_cells_with_attributes),
+ (vte_terminal_draw_rows), (vte_terminal_paint):
+ Break the draw_rows() loop into two passes - first clear the
+ background and second render the text.
+ Add another function based on draw_cells() that just clears the
+ background and make clearing the background optional in
+ draw_cells() - updating callers accordingly.
+ Adventurous souls are required to clean up draw_rows().
+
+2007-01-27 Chris Wilson <chris chris-wilson co uk>
+
+ Fix compilation *with* debugging enabled.
+ Grrr.
+
+ * src/keymap.c: (_vte_keysym_print):
+
+2007-01-27 Chris Wilson <chris chris-wilson co uk>
+
+ Fix compilation without debugging enabled.
+
+ * src/keymap.c: (_vte_keysym_print), (_vte_keymap_map):
+ * src/vte.c: (display_control_sequence):
+ * src/vteapp.c: (main):
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/debug.h:
+ Provide a safe fallback for non-C99 compilers (well actually
+ anything that isn't a recent gcc at the moment).
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 157267 – _vte_terminal_fudge_pango_colors() breaks Japanese input style
+
+ Patch by ynakai redhat com.
+
+ * src/vte.c: (_vte_terminal_fudge_pango_colors):
+ Check the attributes for each cell rather than assuming the
+ pango attributes (and cell attributes) are the same for the
+ whole string.
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteseq.c: (vte_sequence_handler_vb):
+ Iterating over all queued exposures and drawing on top of the
+ flash does not sense. Simply flush the draw.
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ s/_VTE_DEBUG_ON/_VTE_DEBUG_IF/ and don't include
+ the code block inside the macro.
+
+ * src/debug.h:
+ * src/iso2022.c: (process_control), (_vte_iso2022_process):
+ * src/keymap.c: (_vte_keymap_map):
+ * src/matcher.c: (_vte_matcher_init):
+ * src/pty.c: (_vte_pty_run_on_pty):
+ * src/table.c: (_vte_table_addi), (_vte_table_matchi),
+ (_vte_table_extract_numbers), (_vte_table_match):
+ * src/trie.c: (_vte_trie_addx):
+ * src/vte.c: (vte_terminal_match_check_internal),
+ (vte_terminal_match_check), (vte_terminal_handle_sequence),
+ (vte_terminal_catch_child_exited), (vte_terminal_process_incoming),
+ (vte_terminal_io_write), (vte_terminal_send),
+ (vte_terminal_key_press), (vte_terminal_copy_cb),
+ (vte_terminal_set_font_full), (vte_terminal_realize),
+ (vte_terminal_paint), (vte_terminal_scroll):
+ * src/vteapp.c: (main):
+ * src/vtebg.c: (vte_bg_root_pixmap):
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400834 – Use a global display/process timeout
+
+ Currently each terminal uses it own display timeout. Given that
+ typical usage is several active terminals, there is an immediate
+ advantage (context switches, fairness, smoothness) to using a single
+ common timeout.
+
+ * src/debug.c: (_vte_debug_parse_string):
+ * src/debug.h:
+ Add VTE_DEBUG_TIMEOUT
+ * src/vte-private.h:
+ * src/vte.c: (update_regions), (_vte_invalidate_cells),
+ (_vte_invalidate_all), (vte_terminal_init),
+ (vte_terminal_class_init), (add_update_timeout),
+ (remove_from_active_list), (remove_update_timeout),
+ (add_process_timeout), (vte_terminal_stop_processing),
+ (vte_terminal_is_processing), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+ Modify to use a global timeout rather than individual
+ private timeouts.
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Unable to set background scrolling mode from cmdline due to variable
+ name confusion.
+
+ * src/vteapp.c: (main):
+ --scroll should set scroll=TRUE rather than cursor=TRUE!
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 401082 – double-draw issue
+
+ The main cause of this bug was not expanding the cleared area to cover
+ all the cells affected by the draw and forgetting to offset the clear
+ by VTE_PAD_WIDTH.
+
+ To counter the performance hit due to the expanded repaint area, each
+ backend is presented with the opportunity to apply a clip to the
+ exposed region before painting.
+
+ This also fixes bug 333157,
+
+ * src/vte.c: (_vte_invalidate_cells), (vte_terminal_paint_area),
+ (vte_terminal_paint):
+ * src/vtedraw.c: (_vte_draw_clip):
+ * src/vtedraw.h:
+ * src/vteft2.c: (_vte_ft2_end), (_vte_ft2_clip):
+ * src/vtegl.c:
+ * src/vtepango.c: (_vte_pango_clip):
+ * src/vtepangox.c: (_vte_pango_x_clip):
+ * src/vtexft.c: (_vte_xft_clip), (_vte_xft_draw_text):
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_match_hilite):
+ * src/vteseq.c: (vte_sequence_handler_ce),
+ (vte_sequence_handler_dc), (vte_sequence_handler_ec):
+ Tighten the _vte_invalidate_cells() to only those that
+ we potentially modify.
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vtexft.c: (_vte_xft_set_text_font):
+ Remove the additional pixel inter-character spacing.
+ Compactness over clarity ;)
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Apply a one pixel fudge to the Xft character position and width.
+ This greatly improves text appearance and hides the misrendering of
+ pseudo-bold characters.
+ cf bugs 317691, 333157.
+
+ * src/vte.c: (vte_terminal_paint):
+ Increase the cursor size to fit around the cell.
+ * src/vtexft.c: (_vte_xft_set_text_font), (_vte_xft_draw_text):
+ Fudge the Xft font positioning.
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 318307 – Cursor colour changes to foreground when unfocused
+
+ Whilst setting the colour, tweak the position of the rectangle, and
+ extended the invalidate region to account for the OBO nature of bold
+ font.
+
+ * src/vte.c: (_vte_invalidate_cells):
+ Include the padding to accomodate cell effects.
+ * src/vte.c: (vte_terminal_paint):
+ Use the cursor color for the rectangle when unfocused.
+
+2007-01-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_visibility_notify): Correctly handle
+ visibility events: set invalidated_all to FALSE, and invalidate_all
+ if fully unobscured.
+
+2007-01-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_visibility_notify): Make sure we redraw
+ after becoming unobscured. There still is a bug that I've not found,
+ but after obscuring the widget and coming back, a first redraw
+ happens, but no update after that.
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_draw_area):
+ Occasionally we generate an exposed area which is computed
+ as 0x0 cells. Discard early, before we spend an infinity
+ drawing nothing.
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Janitorial work - near elimination of #ifdef VTE_DEBUG from within
+ functions, trimming a thousand lines of code.
+
+ We introduce a _vte_debug_print macro to cover the more common
+ occurrence of printing a message at a certain debug level.
+ And a _VTE_DEBUG_ON for a conditional code block.
+
+ src/debug.h | 11
+ src/iso2022.c | 201 ++-------
+ src/keymap.c | 41 -
+ src/matcher.c | 24 -
+ src/pty.c | 134 +-----
+ src/reaper.c | 21
+ src/ring.c | 78 +--
+ src/table.c | 11
+ src/trie.c | 19
+ src/vte.c | 1187 ++++++++++---------------------------------------
+ src/vteaccess.c | 198 +++------
+ src/vteapp.c | 21
+ src/vtebg.c | 43 --
+ src/vteconv.c | 60 +-
+ src/vteconv.h | 12
+ src/vtedraw.c | 6
+ src/vtefc.c | 4
+ src/vteft2.c | 5
+ src/vteglyph.c | 27 -
+ src/vtepango.c | 11
+ src/vtepangox.c | 7
+ src/vteregex.c | 2
+ src/vteseq.c | 385 +++++-------------
+ src/vtexft.c | 26 -
+ 24 files changed, 789 insertions(+), 1745 deletions(-)
+
+ * src/debug.h:
+ * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
+ (_vte_iso2022_state_new), (_vte_iso2022_state_set_codeset),
+ (process_8_bit_sequence), (process_cdata), (process_control),
+ (_vte_iso2022_process):
+ * src/keymap.c: (_vte_keymap_map):
+ * src/matcher.c: (_vte_matcher_init), (_vte_matcher_create),
+ (_vte_matcher_destroy):
+ * src/pty.c: (vte_pty_child_setup), (_vte_pty_run_on_pty),
+ (_vte_pty_set_size), (_vte_pty_get_size), (_vte_pty_ptsname),
+ (_vte_pty_open_unix98), (_vte_pty_open_with_helper),
+ (_vte_pty_open):
+ * src/reaper.c: (vte_reaper_emit_signal),
+ (vte_reaper_child_watch_cb), (vte_reaper_init),
+ (vte_reaper_finalize):
+ * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
+ (_vte_ring_remove):
+ * src/table.c: (_vte_table_addi):
+ * src/trie.c: (char_class_string_extract), (_vte_trie_addx),
+ (_vte_trie_add):
+ * src/vte.c: (update_regions), (_vte_invalidate_cells),
+ (_vte_invalidate_all), (_vte_invalidate_cell),
+ (_vte_invalidate_cursor_once),
+ (vte_terminal_emit_selection_changed), (vte_terminal_emit_commit),
+ (vte_terminal_emit_emulation_changed),
+ (vte_terminal_emit_encoding_changed),
+ (vte_terminal_emit_child_exited),
+ (_vte_terminal_emit_contents_changed),
+ (vte_terminal_emit_cursor_moved), (vte_terminal_emit_eof),
+ (vte_terminal_emit_char_size_changed),
+ (_vte_terminal_emit_status_line_changed),
+ (vte_terminal_emit_increase_font_size),
+ (vte_terminal_emit_decrease_font_size),
+ (_vte_terminal_emit_text_inserted),
+ (_vte_terminal_emit_text_deleted),
+ (vte_terminal_emit_text_modified),
+ (vte_terminal_emit_text_scrolled), (vte_terminal_deselect_all),
+ (vte_terminal_match_check_internal), (vte_terminal_match_check),
+ (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_changed),
+ (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
+ (vte_terminal_maybe_scroll_to_bottom), (vte_terminal_set_encoding),
+ (_vte_terminal_set_pointer_visible), (vte_terminal_new),
+ (vte_terminal_generate_bold), (_vte_terminal_insert_char),
+ (vte_terminal_handle_sequence), (vte_terminal_catch_child_exited),
+ (vte_terminal_fork_command),
+ (vte_terminal_emit_pending_text_signals),
+ (vte_terminal_process_incoming), (vte_terminal_io_read),
+ (vte_terminal_io_write), (vte_terminal_send),
+ (vte_terminal_im_commit), (vte_terminal_im_preedit_start),
+ (vte_terminal_im_preedit_end), (vte_terminal_im_preedit_changed),
+ (vte_terminal_configure_toplevel),
+ (vte_terminal_hierarchy_changed), (vte_terminal_style_changed),
+ (vte_terminal_key_press), (vte_terminal_paste_cb),
+ (vte_terminal_match_hilite_clear), (vte_terminal_match_hilite),
+ (vte_terminal_clear_cb), (vte_terminal_copy_cb),
+ (vte_terminal_copy), (vte_terminal_paste),
+ (vte_terminal_start_selection), (vte_terminal_extend_selection),
+ (vte_terminal_autoscroll), (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release),
+ (vte_terminal_focus_in), (vte_terminal_focus_out),
+ (vte_terminal_set_font_full), (vte_terminal_set_size),
+ (vte_terminal_handle_scroll), (vte_terminal_set_emulation),
+ (vte_terminal_set_termcap), (vte_terminal_reset_rowdata),
+ (vte_terminal_fc_settings_changed), (vte_terminal_init),
+ (vte_terminal_size_request), (vte_terminal_size_allocate),
+ (vte_terminal_unrealize), (vte_terminal_finalize),
+ (vte_terminal_realize), (vte_terminal_draw_cells),
+ (_vte_terminal_map_pango_color), (vte_terminal_draw_area),
+ (vte_terminal_paint), (vte_terminal_expose), (vte_terminal_scroll),
+ (vte_terminal_class_init), (vte_terminal_copy_clipboard),
+ (vte_terminal_paste_clipboard), (vte_terminal_copy_primary),
+ (vte_terminal_paste_primary), (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_set_background_saturation),
+ (vte_terminal_set_background_tint_color),
+ (vte_terminal_set_background_transparent),
+ (vte_terminal_set_background_image),
+ (vte_terminal_set_background_image_file),
+ (vte_terminal_set_word_chars), (process_timeout),
+ (update_repeat_timeout), (update_timeout):
+ * src/vteaccess.c: (xy_from_offset), (emit_text_caret_moved),
+ (emit_text_changed_insert), (emit_text_changed_delete),
+ (vte_terminal_accessible_update_private_data_if_needed),
+ (vte_terminal_accessible_text_modified),
+ (vte_terminal_accessible_text_scrolled),
+ (vte_terminal_accessible_invalidate_cursor),
+ (vte_terminal_accessible_finalize),
+ (vte_terminal_accessible_get_text),
+ (vte_terminal_accessible_get_text_somewhere),
+ (vte_terminal_accessible_get_run_attributes),
+ (vte_terminal_accessible_text_init),
+ (vte_terminal_accessible_component_init),
+ (vte_terminal_accessible_action_init),
+ (vte_terminal_accessible_factory_new):
+ * src/vteapp.c: (destroy_and_quit_eof), (destroy_and_quit_exited),
+ (take_xconsole_ownership), (main):
+ * src/vtebg.c: (vte_bg_root_pixmap), (vte_bg_set_root_pixmap),
+ (_vte_bg_resize_pixbuf):
+ * src/vteconv.c: (_vte_conv_utf8_utf8), (_vte_conv_open),
+ (_vte_conv), (_vte_conv_cu), (_vte_conv_uu), (_vte_conv_uc):
+ * src/vteconv.h:
+ * src/vtedraw.c: (_vte_draw_new):
+ * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description):
+ * src/vteft2.c: (_vte_ft2_draw_text):
+ * src/vteglyph.c: (_vte_glyph_cache_free),
+ (_vte_glyph_cache_set_font_description):
+ * src/vtepango.c: (_vte_pango_set_text_font),
+ (_vte_pango_draw_text):
+ * src/vtepangox.c: (_vte_pango_x_set_text_font):
+ * src/vteregex.c: (_vte_regex_exec):
+ * src/vteseq.c: (vte_terminal_emit_deiconify_window),
+ (vte_terminal_emit_iconify_window),
+ (vte_terminal_emit_icon_title_changed),
+ (vte_terminal_emit_window_title_changed),
+ (vte_terminal_emit_raise_window), (vte_terminal_emit_lower_window),
+ (vte_terminal_emit_maximize_window),
+ (vte_terminal_emit_refresh_window),
+ (vte_terminal_emit_restore_window),
+ (vte_terminal_emit_move_window), (vte_terminal_emit_resize_window),
+ (vte_sequence_handler_set_title_internal),
+ (vte_sequence_handler_decset_internal), (vte_sequence_handler_bt),
+ (vte_sequence_handler_application_keypad),
+ (vte_sequence_handler_normal_keypad),
+ (vte_sequence_handler_reset_mode), (vte_sequence_handler_decset),
+ (vte_sequence_handler_decreset),
+ (vte_sequence_handler_erase_in_display),
+ (vte_sequence_handler_erase_in_line),
+ (vte_sequence_handler_restore_mode),
+ (vte_sequence_handler_save_mode),
+ (vte_sequence_handler_window_manipulation):
+ * src/vtexft.c: (_vte_xft_set_text_font):
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 317449 – The cursor disappears when clicking on windows above gnome-terminal
+
+ Enter a command that causes partial obscuration of the terminal,
+ though it must cover the cursor. Close the new window, observe the
+ pointer disappears.
+
+ The issue is that we hide the pointer whilst typing and show it after
+ receiving a mouse movement. However in this case we steal the pointer
+ away from the terminal without any mouse events and the cursor remains
+ invisible.
+
+ * src/vte.c: (vte_terminal_focus_in):
+ Ensure the mouse pointer is visible on focus-in.
+
+2007-01-26 Chris Wilson <chris chris-wilson co uk>
+
+ Spend half an hour a day killing warnings...
+
+ * configure.in:
+ Remove -Wswitch-enum from MAYBE_WARN. I am that lazy.
+ * src/buffer.c:
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous),
+ (_vte_iso2022_ambiguous_width), (_vte_iso2022_map_get),
+ (_vte_iso2022_find_nextctl), (_vte_iso2022_sequence_length),
+ (_vte_iso2022_fragment_input), (process_8_bit_sequence),
+ (process_cdata), (_vte_iso2022_process_single), (process_control),
+ (_vte_iso2022_process):
+ * src/keymap.c: (_vte_keymap_map):
+ * src/table.c:
+ * src/trie.c: (char_class_none_extract),
+ (char_class_digit_extract), (char_class_multi_extract),
+ (char_class_any_extract), (unichar_snlen), (unichar_sncmp),
+ (char_class_string_extract), (_vte_trie_addx), (_vte_trie_add),
+ (_vte_trie_matchx), (_vte_trie_match), (_vte_trie_printx),
+ (_vte_trie_print), (convert_mbstowcs), (main):
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_find_charcell),
+ (_vte_row_data_find_charcell), (vte_terminal_emit_commit),
+ (vte_terminal_match_clear_all), (vte_terminal_match_remove),
+ (vte_terminal_match_add), (vte_terminal_match_set_cursor),
+ (vte_terminal_match_check_internal), (vte_terminal_set_colors),
+ (vte_terminal_emit_pending_text_signals),
+ (vte_terminal_is_word_char), (vte_terminal_finalize),
+ (vte_terminal_realize), (_vte_terminal_map_pango_color),
+ (_vte_terminal_apply_pango_attr),
+ (_vte_terminal_translate_pango_cells),
+ (vte_terminal_set_scrollback_lines):
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+ Fixup compiler warnings, mostly of the type mixing signed and
+ unsigned compares and pointers.
+
+2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (mark_input_source_invalid),
+ (_vte_terminal_connect_pty_read), (mark_output_source_invalid),
+ (_vte_terminal_connect_pty_write):
+ Use the GDestroyNotify to mark the source as invalid.
+ * src/vte.c: (vte_terminal_ensure_font):
+ Protect ensure fonts against the VteDraw being destroyed.
+ * src/vte.c: (vte_terminal_realize):
+ Reorder code to setup the style before the fonts.
+ * src/vte.c: (vte_terminal_class_init):
+ The ->show() handler was redundant.
+
+2007-01-25 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_terminal_set_default_attributes),
+ (_vte_invalidate_cells), (_vte_invalidate_all),
+ (_vte_invalidate_cell), (_vte_invalidate_cursor_once),
+ (vte_terminal_visibility_notify), (vte_terminal_handle_scroll):
+ Replace most of checks for terminal->pvt->visibility_state ==
+ GDK_VISIBILITY_FULLY_OBSCURED by terminal->pvt->invalidated_all, and
+ adapt.
+
+2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400759 – update problem with vte trunk
+
+ Otherwise known as the I can't count bug.
+
+ The number of rows and columns to paint were not properly taking
+ account of the discrete nature of the cells ie although the floor(x)
+ moved the start to the left by one, the extra cell was not being added
+ to the width.
+
+ Also since the howmany() macro is pulled from <sys/param.h>, it can
+ not be guarranteed to exist on all platforms. So in that case, provide
+ a local copy.
+
+ * src/vte.c: (vte_terminal_draw_area):
+ Calculate the width as the distance between the explicity
+ calculated start and end cells.
+
+2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400671 – crash in Terminal: detaching of tabs
+
+ The fontdirty flag needed to be set on unrealize to ensure the fonts
+ get set on the VteDraw should the terminal be realized again (e.g
+ drag'n'dropping).
+
+ * src/vte.c: (vte_terminal_unrealize):
+ Set the fontdirty flag to TRUE.
+ * src/vtexft.c: (_vte_xft_set_text_font),
+ (_vte_xft_get_char_width), (_vte_xft_draw_text),
+ (_vte_xft_draw_char):
+ Add safe guards to avoid dereferencing a NULL font as it
+ is possible for _vte_xft_font_open() to fail.
+
+2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 399137 – UTF-8 problem in VteAccess
+
+ Improve the UTF-8 string handling within vteaccess.c
+ A long and fraught history to this apparently simple change.
+ Many thanks to Joanmarie Diggs and Rich Burridge for testing the
+ patches and ensuring they caused no regressions in the ally interface.
+
+ * src/vteaccess.c: (emit_text_changed_insert),
+ (emit_text_changed_delete):
+ Use g_utf8_pointer_to_offset() rather than open coding.
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ Convert the caret into a byte offset before performing the
+ ASCII character lookup.
+ Iterate backwards over the string using a g_utf8_prev_char,
+ and g_utf8_get_char.
+
+2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400493 – Mouse selection seriously broken
+
+ The rendering of non-text attributes, e.g highlight, backgrounds,
+ underlines, was broken by the change to multi-row run of glyphs. This
+ was most apparent when selecting regions with a mouse.
+
+ * src/vte.c: (_vte_invalidate_cursor_once),
+ (vte_terminal_extend_selection),
+ (vte_terminal_draw_rows), (vte_terminal_draw_area),
+ (vte_terminal_paint):
+ Some janitorial work (a memleak, whitespace, improving debug
+ messages, comments).
+ * src/vte.c: (vte_terminal_draw_cells):
+ Loop over cells and draw attributes for groups of cells on
+ each row.
+
+2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400438 – _vte_invalidate_all triggered on GDK_VISIBILITY_UNOBSCURED
+
+ * src/vte.c: (vte_terminal_visibility_notify):
+ Only force an _vte_invalidate_all if we can trivially detect
+ that we have switch from fully obscured to fully unobscured.
+ Otherwise, we will just handle the GDK expose in the normal
+ manner.
+ * src/vte.c: (vte_terminal_expose):
+ Check the event area to see if we can use _vte_invalidate_all,
+ has a slight benefit of discarding further exposed area
+ processing.
+
+
+2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ GDK tries to coalesce multiple expose events into a single event.
+ This is passed to the application as a large region containing
+ multiple rectangles. The unfortunate effect of this is having
+ broken the invalidated region into 2 small components for vim,
+ the expose event was still operating on a single region covering
+ both. The reason the effect was invisible to the eye is due to the
+ double buffer - GDK generated a backing pixmap for the exposed event
+ and only copied from the pixmap to the window exactly the pixels
+ exposed. So we regenerated draw commands for the entire area, and
+ only saved on the later blit.
+
+ The improvement to this is only issue draw commands for the individual
+ rectangles rather than the region as a whole.
+
+ * src/vte.c: (vte_terminal_draw_area), (vte_terminal_paint),
+ (vte_terminal_expose):
+ Paint the exposed rectangles not the event clipbox!
+
+2007-01-25 Chris Wilson <chris chris-wilson co uk>
+
+ Print out the painted area for VTE_DEBUG_UPDATES.
+
+ * src/vte.c: (vte_terminal_paint):
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 400072 – Handling of ; in control sequences
+
+ Moral of the story: wait until the morning.
+ Revert r1512, the mistaken attempt at parsing '\e[;30m'.
+
+ * src/table.c: (_vte_table_addi), (_vte_table_matchi),
+ (_vte_table_match):
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ cf Bug 399617 – Avoid memory allocations during an expose event.
+
+ Currently we cannot generate long glyph runs due to the text
+ painting being broken up into single rows and setting a low
+ max run cap. The benefit of longer runs is the backends can
+ do more caching within a run and potentially generate fewer
+ render calls and/or less network traffic.
+
+ In the simple test case, this increased the performance of a
+ remote hexdump by 10%.
+
+ * src/vte.c: (vte_terminal_draw_rows), (vte_terminal_paint):
+ Scan entired exposed area for glyph runs.
+ * src/vtedraw.h:
+ Increase VTE_DRAW_MAX_LENGTH
+ * src/vtexft.c: (_vte_xft_draw_text):
+ Create GlyphSpecs rather than CharFontSpecs, saves a
+ conversion and potential malloc inside libXft, and our
+ own malloc.
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 147495 – screen flicker when opening new terminal windows
+
+ Last in a series of work to reduce extraneous redraws. I no longer
+ see the flicker when opening a white terminal.
+
+ * src/vte.c: (_vte_terminal_scroll_region):
+ Detect when we can just invalidate all.
+ * src/vte.c: (_vte_terminal_fork_basic):
+ Don't force an unnecessary redraw.
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_set_emulation):
+ Add a missing '\n' to the debug printerr.
+ * src/vte.c: (vte_terminal_init):
+ Initialize the row count to VTE_MIN_SCROLLBACK (was to 0
+ first and then later within the same function to
+ VTE_MIN_SCROLLBACK).
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 334755 – Incomplete information from vte_terminal_get_font
+
+ In many situations the font_desc stored in the terminal is incomplete.
+ _vte_fc_transcribe_from_pango_font_description() automagically fills
+ in default values for the backends but this is hidden from the
+ application. By filling in default values up front from the widget
+ font description control is returned to the application and theme
+ designers.
+
+ Patch by Pedro de Medeiros.
+ Also cf bug 335269.
+
+ * src/vte.c: (vte_terminal_set_font_full):
+ Pull default font description from widget.
+ * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description):
+ Remove default values.
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
+ actually revealed a faux-pas in the conversion of the public
+ interfaces to GPid - that it broke the ABI.
+
+ However, the intention is to remove the exposed pid_t, cf bug 400333.
+
+ * python/vte.defs:
+ * python/vte.override:
+ * src/pty.c: (_vte_pty_open):
+ * src/pty.h:
+ * src/vte.c: (_vte_terminal_fork_basic), (vte_terminal_forkpty):
+ * src/vte.h:
+ Revert the exposed GPids back to pid_t.
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ ==25123== Invalid read of size 1
+ ==25123== at 0x4055992: vte_terminal_accessible_text_modified (vteaccess.c:497)
+ ==25123== by 0x46A1248: g_cclosure_marshal_VOID__VOID (gmarshal.c:77)
+ ==25123== by 0x4693EAA: g_closure_invoke (gclosure.c:490)
+ ==25123== by 0x46A4972: signal_emit_unlocked_R (gsignal.c:2440)
+ ==25123== by 0x46A5E96: g_signal_emit_valist (gsignal.c:2199)
+ ==25123== by 0x46A85ED: g_signal_emit_by_name (gsignal.c:2267)
+ ==25123== by 0x403E9E2: _vte_terminal_emit_text_inserted (vte.c:863)
+ ==25123== by 0x40517EF: vte_terminal_process_incoming (vte.c:3032)
+ ==25123== by 0x40522B5: update_repeat_timeout (vte.c:11332)
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ Check that the caret is inside the old string before
+ accessing.
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ Revert changes in conjunction with bug 399137 back to r1487,
+ which contains Rich Burridge's fix for bug 397724.
+
+ * src/vteaccess.c: (emit_text_changed_insert),
+ (emit_text_changed_delete),
+ (vte_terminal_accessible_text_modified):
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ Valgrind pointed out a couple of places where we tried to
+ access before the start of the string.
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
+
+ Patch by Damien Carbery.
+
+ * src/pty.h:
+ Update prototype to match new definition.
+
+2007-01-24 Chris Wilson <chris chris-wilson co uk>
+
+ <mariano> hm, vte is not matching «ESC [ ; 7 m» :/
+
+ * src/table.c: (_vte_table_addi), (_vte_table_matchi),
+ (_vte_table_match):
+ s/GList/GSList/
+ g_slist_append -> g_slist_reverse(g_slist_prepend)
+ And finally add the subtable to handle the leading ';'
+ in the variable length parameters.
+
+2007-01-23 Chris Wilson <chris chris-wilson co uk>
+
+ A couple of minor buggets.
+
+ * src/iso2022.c: (_vte_iso2022_state_set_codeset):
+ Use g_intern_string() instead of from_quark(to_quark(str))
+ * src/vtepango.c: (_vte_pango_create), (_vte_pango_destroy),
+ (_vte_pango_start), (_vte_pango_end), (_vte_pango_set_text_font):
+ Use the widget pango context (we're guarranteed to have a
+ screen by this point) and don't unref it!
+ Inspired by Pedro de Medeiros in Bug 335269.
+
+2007-01-23 Chris Wilson <chris chris-wilson co uk>
+
+ Regression on Bug 123591:
+ mkdir /tmp/aa; cd /tmp/aa; bash; cd ..; rmdir aa
+ Open a new tab in g-t -> Failure.
+
+ * src/pty.c: (_vte_pty_run_on_pty):
+ Check the error return from g_spawn and try again with the
+ pwd if it reports that the child could not change directory.
+
+2007-01-23 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c: (_vte_pty_run_on_pty):
+ Add all g_spawn parameters to VTE_DEBUG_MISC output.
+
+2007-01-22 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.2.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.2.
+
+ * src/Makefile.am: Bumped libtool version to 10:9:1.
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 399137 - continuation.
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ Classic bug:
+ clen = cp - old
+ rather than the more correct
+ clen = cp - current
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vteapp.c: (char_size_changed), (char_size_realized), (main):
+ Don't try to perform gdk operations on unrealized windows.
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c: (_vte_pty_run_on_pty):
+ Print out the argument vector for VTE_DEBUG_MISC.
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ * src/pty.c: (_vte_pty_run_on_pty):
+ Protect against g_strv_length(NULL)
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 399137 - continuation.
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ After walking back along the UTF-8 string, remember to update
+ the string lengths that are used to detect insertions and
+ deletions!
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ If the caret is at the end of the buffer, then it set past the
+ end of the offset array - do not use this as a lookup!
+
+ * src/vteaccess.c: (vte_terminal_accessible_text_modified):
+ If the caret points to past the last character, set the
+ offset to the string's NUL terminator.
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ * configure.in:
+ Earlier configure.in update introduced a trailing ']', pair
+ it with its '['
+
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 132316 – terminal widget's context menu posting isn't exposed as an AtkAction
+
+ Original patch by <padraig obriain sun com>
+
+ * src/vteaccess.c: (vte_terminal_accessible_free_private_data),
+ (vte_terminal_accessible_component_init),
+ (vte_terminal_accessible_do_action),
+ (vte_terminal_accessible_get_n_actions),
+ (vte_terminal_accessible_action_get_description),
+ (vte_terminal_accessible_action_get_name),
+ (vte_terminal_accessible_action_get_keybinding),
+ (vte_terminal_accessible_action_set_description),
+ (vte_terminal_accessible_action_init),
+ (vte_terminal_accessible_get_type):
+ Remove grab_focus and defer to the parent's implementation.
+ Add an AtkAction iface.
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 156161 – AccessibleText_getTextAtOffset returns wrong values in gnome-terminal
+
+ The code for ATK_TEXT_BOUNDARY_WORD_START and
+ ATK_TEXT_BOUNDARY_WORD_END is the same.
+
+ Patch by <padraig obriain sun com>
+
+ * src/vteaccess.c: (vte_terminal_accessible_get_text_somewhere):
+ Actually provide an implementation for
+ ATK_TEXT_BOUNDARY_WORD_END.
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 399137 – UTF-8 problem in VteAccess
+
+ * src/vteaccess.c: (emit_text_changed_insert),
+ (emit_text_changed_delete):
+ use g_utf8_pointer_to_offset() instead of open coding
+ (vte_terminal_accessible_update_private_data_if_needed):
+ add the number of UTF-8 characters to the debug output.
+ (vte_terminal_accessible_text_modified):
+ iterate backwards over the UTF-8 string using
+ g_utf8_prev_char() and convert the caret into a byte offset
+ before it as such.
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 123591 – vte_terminal_fork_command succeeds even when it does not
+
+ * python/vte.defs:
+ * python/vte.override:
+ * src/reaper.c: (vte_reaper_child_watch_cb):
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_catch_child_exited),
+ (_vte_terminal_fork_basic), (vte_terminal_forkpty):
+ * src/vte.h:
+ * src/vteapp.c:
+ s/pid_t/GPid/ portable variant, no API/ABI implications
+ * src/pty.c: (vte_pty_child_setup), (_vte_pty_run_on_pty),
+ (_vte_pty_fork_on_pty_name), (_vte_pty_fork_on_pty_fd),
+ (_vte_pty_open_unix98), (_vte_pty_pipe_open), (n_read), (n_write),
+ (_vte_pty_start_helper), (_vte_pty_open_with_helper),
+ (_vte_pty_open), (main):
+ Replace custom fork() and pipe based syncrohonisation scheme
+ with g_spawn_async_with_pipes() as it actually handles all
+ failure modes correctly, and gives us overtures of portability.
+
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Hack'n'slash my way through doing a bit of weeding.
+
+ Fixed:
+ - Bug 345514 – -no-undefined doesn't work with latest libtool
+ - Bug 162003 – vte configure.in X checking can fail
+ – though this may cause other regressions!
+ - Bug 314669 – Please specialize AC_PATH_XTRA
+
+ * configure.in:
+ Export LIBTOOL_EXPORT_OPTIONS for -no-undefined on windos.
+ Add to rather than override X_CFLAGS, X_LIBS
+ AC_PATH_XTRA - Find X11 using XFlush() rather than XtMalloc().
+ Print configuration details.
+ * src/Makefile.am:
+ Conditional compilation of backends.
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 389538 – crash in Terminal: nothing
+
+ * src/vteaccess.c: (vte_terminal_accessible_get_text):
+ Guard against negative length strings.
+
+2007-01-22 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 161479 – Scroll wheel generates Release events
+
+ vte sends release events on scroll but xterm doesn't which breaks
+ mc among others.
+
+ Patch by Benedikt Meurer.
+
+ * src/vte.c: (vte_terminal_scroll):
+ Remove the offending release event.
+
+2007-01-20 Chris Wilson <chris chris-wilson co uk>
+
+ <kmaraas> ickle: sparse complains about dubious 1 bit bitfields
+ if you use gboolean instead of guint
+ <kmaraas> so s/gboolean/guint at line 166 and 174
+ <mariano> unless that changes the API, of course...
+ <kmaraas> it doesn't
+ <mariano> gboolean a:1 is not very correct anyways
+ <kmaraas> ickle: we've done the same change in other modules
+ <ickle> if I do it quick, behdad might not even notice ;)
+
+ * src/vte.h:
+ Convert signed single bit field to unsigned. The code
+ was setting it to 1 anyhow (and not -1 as the type indicated).
+
+2007-01-20 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398602 – Build Failure
+
+ * src/vte.c: (vte_terminal_expose):
+ Fixup typo. [Grrr. Must get git-svn back into sync]
+
+2006-11-19 Rich Burridge <rich burridge sun com>
+
+ * src/vteaccess.c:
+ Fixed bug #397724 - Orca incorrect echo's certain input in
+ gnome-terminal when key echo is set to off (on Ubuntu Feisty).
+
+2007-01-20 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_expose):
+ Also if the entire terminal is invalidated,
+ do not add more GTK+ exposes to it.
+
+2007-01-20 Chris Wilson <chris chris-wilson co uk>
+
+ Track when we have invalidated the entire terminal and skip adding
+ new regions when possible.
+
+ * src/vte-private.h:
+ * src/vte.c: (update_regions), (_vte_invalidate_cells),
+ (_vte_invalidate_all), (vte_terminal_size_allocate),
+ (reset_update_regions):
+
+2007-01-20 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398244 – Gnome-terminal opens a huge sized window
+
+ * src/vte.c: (vte_terminal_ensure_font),
+ (vte_terminal_set_font_full), (vte_terminal_size_request),
+ (vte_terminal_realize), (vte_terminal_get_char_width),
+ (vte_terminal_get_char_height), (vte_terminal_get_char_descent),
+ (vte_terminal_get_char_ascent):
+ Ensure the font metrics are calculated before use.
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_process_incoming):
+ Do not invalidate the old cursor position if it was not
+ visible.
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (process_timeout):
+ Make sure ->process_timeout is set to VTE_INVALID_SOURCE on
+ all paths that remove the timeout.
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ Add <> to mark boundaries of process_timeout().
+
+ * src/vte.c: (vte_terminal_class_init), (process_timeout):
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ Add {},[] to mark boundaries of update_timeout() and notice that
+ the display limited update_timeout was not dying.
+
+ * src/vte.c: (vte_terminal_class_init), (update_repeat_timeout),
+ (update_timeout):
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_realize), (remove_process_timeout):
+ Small cleanup:
+ - protect remove_process_timeout against an invalid source.
+ - move static prototypes into common block.
+ - gdk_window_show() is done in map not realize.
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_process_incoming):
+ Introduce a bit of slack in the bbox check to allow
+ for a small of amount of cursor motion e.g. due to line
+ scrolling. This turns the long sequence of
+ '(?!?!??? ... ????!)'
+ during a hexdump into the better behaved
+ '.(?!?!?!??!)-+=.(?!?!??!)-+=........'. Although it is
+ puzzling why we now how have a block of IO and then two quick
+ display upates...
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (process_timeout), (update_repeat_timeout),
+ (update_timeout):
+ Repeat _vte_terminal_process_incoming until we have drained
+ the incoming buffers or we can handle no more. Fixes a
+ problem where the display wouldn't update if we hadn't
+ processed enough data (e.g. on startup, displaying the first
+ prompt). This bug corresponds with the sequence
+ '*-+=..()?!(?!?!?!)-+=' below, which now reads
+ '*-+=..()(?!?!?!)-+='
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_invalidate_cursor_once):
+ "%ld" for cursor indices.
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_invalidate_cells),
+ (_vte_invalidate_cursor_once):
+ Cursor indices are long.
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_invalidate_cell):
+ Cursor indices are long.
+ * src/vte.c: (_vte_terminal_expose):
+ Prepend the GTK+ generated expose if we already have an
+ display update pending.
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ Add a new debug flag to visualize the work flow.
+ VTE_DEBUG_FLAGS=work generates output like:
+ Debugging work flow (top input to bottom output):
+ . _vte_terminal_process_incoming
+ ( start _vte_terminal_process_incoming
+ ? _vte_invalidate_cells (call)
+ ! _vte_invalidate_cells (dirty)
+ * _vte_invalidate_all
+ ) end _vte_terminal_process_incoming
+ - gdk_window_process_all_updates
+ + vte_terminal_expose
+ = vte_terminal_paint
+
*?!**+=*-+=..()?!(?!?!?!)-+=?!-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.().(?!?!?!)-+=.().(?!?!?!)-+=.().().(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!?!)-+=.(?!?!)-+=.............................................................................................................................................................................................................................................................................(?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!?!???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????!??!)-+=.......................................................................
+
+ Which tells me I have two bugs to track:
+ 1. the initial '..()' is a missing invalidate.
+ 2. '(?!?!????????????????????!??!)' is not very efficient.
+
+ * src/debug.c: (_vte_debug_parse_string):
+ * src/debug.h:
+ * src/vte.c: (update_regions), (_vte_invalidate_cells),
+ (_vte_invalidate_all), (vte_terminal_process_incoming),
+ (vte_terminal_io_read), (vte_terminal_paint),
+ (vte_terminal_expose), (vte_terminal_class_init):
+ Add VTE_DEBUG_WORK
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398150 – cursor leaves trail behind in vim
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_invalidate_cell),
+ (vte_terminal_process_incoming):
+ * src/vteseq.c: (vte_sequence_handler_decset_internal):
+ Invalidate the old cursor position if we detect the cursor
+ moved during the sequence or if the cursor changed state.
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ * src/Makefile.am:
+ Missing $(X_CFLAGS)
+
+2007-01-19 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398243 – Crash
+
+ * src/vtebg.c: (vte_bg_cache_prune_int):
+ Use the return from g_list_delete_link to maintain the list
+ head.
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (_vte_invalidate_cells):
+ Check that the start of the invalid region is on screen.
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398116 – lags behind when widget not visible
+
+ * src/vte.c: (vte_terminal_handle_scroll):
+ During the spring clean, I converted a few GTK_WIDGET_REALIZED()
+ checks to GTK_WIDGET_DRAWABLE()+visibility check.
+ Unfortunately, it broke keeping the scroll delta in sync with
+ the insert delta. Sync the pair, then perform the check before
+ making updates on the visible area.
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 398083 – background not painted correctly when starting up
+
+ * src/vte.c: (_vte_invalidate_all):
+ Compute drawable area in window co-ordinates and not widget
+ co-ordinates.
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_expose):
+ Small bit of logic inversion that would have tried to paint
+ on unmapped and invisible widgets.
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+ And the corresponding overrides. [The downsides of losing track of
+ which machine you are working on.]
+
+ * python/vte.override:
+ Add (get_text_include_trailing_spaces)
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ Add missing export of vte_terminal_get_text_include_trailing_spaces,
+ needed for building a simple testcase for Bug 397724.
+ vte.defs needs a bit of love...
+
+ * python/vte.defs:
+ Add (get_text_include_trailing_spaces)
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vterdb.c: (_vte_rdb_search), (_vte_rdb_boolean):
+ Fix a couple of compiler warnings.
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ * src/vte.c: (vte_terminal_process_incoming):
+ Delete some dead code.
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ * configure.in:
+ Restore --enable-debugging.
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ Copy Behdad's MAYBE_WARN comprehensive set of warnings from Cairo,
+ and fixup the immediate compilation failures.
+
+ * configure.in:
+ Iterate over a list of warnings and check that they are valid
+ for the compiler.
+
+ * src/debug.c: (_vte_debug_on):
+ Kill fflush() [redundant with g_printerr].
+
+2007-01-18 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Don't call AC_CANONICAL_HOST. Libtool calls it
+ already.
+
+ * src/Makefile.am: Don't build extra, test, programs by default.
+ Speeds build up.
+
+2007-01-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/ring.c (_vte_ring_insert_preserve):
+ * src/vte.c (vte_terminal_paint):
+ Fix loop-optimization warnings.
+
+2007-01-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/ssfe.c (cleanupexit), (barf):
+ * src/vtebg.c (vte_bg_cache_prune_int):
+ * src/vtetc.c (main):
+ Fix more warnings.
+
+2007-01-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/table.c (main):
+ * src/trie.c (_vte_trie_addx), (main):
+ * src/utf8echo.c (main):
+ Fix int vs long int mismatches in printf args.
+
+2007-01-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/iso2022.c (_vte_iso2022_find_nextctl):
+ * src/reaper.c (vte_reaper_finalize):
+ * src/vte.c (_vte_terminal_insert_char), (vte_terminal_key_press),
+ (vte_terminal_init), (vte_terminal_size_allocate):
+ * src/vteapp.c (main):
+ * src/vtedraw.c (_vte_draw_init_default):
+ * src/vteglyph.c (_vte_glyph_cache_free):
+ * src/vtergb.c (_vte_rgb_copy):
+ * src/vtexft.c (_vte_xft_font_for_char):
+ Remove unused variables.
+
+2007-01-18 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 161342 revisited. Reset the box to +-inf and not the current
+ cursor otherwise you just reproduce the slow behaviour (an overly
+ large invalidation area).
+
+ * src/vte.c: (vte_terminal_process_incoming):
+ Reset bbox to +-inf.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ Second breakage: VTE_INVALID_SOURCE !=0 and calling
+ vte_terminal_set_scrollback_lines with lines == ->scrollback_lines
+ is not a nop.
+
+ * src/vte.c: (vte_terminal_background_update),
+ (vte_terminal_queue_background_update):
+ VTE_INVALID_SOURCE != 0
+ (vte_terminal_set_scrollback_lines):
+ reset the rowdata everytime.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 397414 - port vteapp to GOption
+
+ * src/vteapp.c: (main):
+ Translation of getopt switch to GOptionEntry[].
+ Missing help for --geometry.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ First breakage spotted: the realized flag is set too late in
+ the realize handler. Note to self: not everybody uses a black
+ background.
+
+ * src/vte.c: (vte_terminal_realize):
+ Restore GTK_WIDGET_SET_FLAGS(REALIZED)
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ Bug 395373 - Allow the user to specify backend priorities.
+
+ * src/vtedraw.c: (_vte_draw_init_user), (_vte_draw_init_default),
+ (_vte_draw_new):
+ Scan $ENV{VTE_BACKEND} for the user's preferred backend
+ and failover to the first working backend.
+ Discard checking VTE_USE_*
+
+ * src/vtedraw.h:
+ * src/vteft2.c:
+ * src/vteft2.h:
+ * src/vtegl.c:
+ * src/vtegl.h:
+ * src/vtepango.c:
+ * src/vtepango.h:
+ * src/vtepangox.c:
+ * src/vtepangox.h:
+ * src/vteskel.c: (_vte_skel_check), (_vte_skel_create),
+ (_vte_skel_destroy), (_vte_skel_start):
+ * src/vteskel.h:
+ * src/vtexft.c:
+ * src/vtexft.h:
+ Remove the environment variable field, drop the "Vte" prefix
+ from the backend names and make the exported structure const.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous):
+ * src/vte-private.h:
+ * src/vte.c: (_vte_terminal_set_default_attributes),
+ (vte_terminal_set_default_tabstops), (vte_terminal_set_encoding),
+ (vte_terminal_set_opacity), (vte_terminal_set_default_colors),
+ (vte_terminal_emit_pending_text_signals),
+ (vte_terminal_feed_child_using_modes),
+ (vte_terminal_hierarchy_changed),
+ (vte_terminal_send_mouse_button_internal),
+ (vte_terminal_maybe_send_mouse_drag), (vte_terminal_set_font),
+ (vte_terminal_set_font_from_string), (vte_terminal_set_size),
+ (vte_terminal_handle_scroll), (vte_terminal_set_scroll_adjustment),
+ (vte_terminal_set_emulation), (vte_terminal_set_termcap),
+ (vte_terminal_init), (vte_terminal_size_allocate),
+ (vte_terminal_unrealize), (vte_terminal_finalize),
+ (vte_terminal_realize), (vte_terminal_determine_colors),
+ (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_set_background_transparent),
+ (vte_terminal_set_cursor_blinks),
+ (vte_terminal_set_scrollback_lines), (vte_terminal_reset),
+ (vte_terminal_set_pty):
+ * src/vteseq.c: (vte_sequence_handler_st),
+ (vte_sequence_handler_vb),
+ (vte_sequence_handler_device_status_report),
+ (vte_sequence_handler_dec_device_status_report),
+ (vte_sequence_handler_window_manipulation):
+ Janitorial work to improve code readability and small
+ micro-optimisations, such as use the length returned by
+ g_snprintf rather then calling strlen on the result or just
+ using a constant string.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/ring.h:
+ Make the debug checks conditional on VTE_DEBUG.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/matcher.c: (_vte_matcher_add), (_vte_matcher_create),
+ (_vte_matcher_destroy), (_vte_matcher_new), (_vte_matcher_match),
+ (_vte_matcher_print):
+ * src/matcher.h:
+ * src/table.c: (_vte_table_new):
+ * src/table.h:
+ * src/trie.c: (_vte_trie_new):
+ * src/trie.h:
+ _vte_match_match() is called extremely frequently, and the
+ switch shows up on the profiles. Replace the switch with a
+ function pointer obtained by introducing function tables for
+ the matcher implementations.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_terminal_set_font_full), (vte_terminal_realize):
+ Don't load a font until the terminal is realized.
+ Saves decoding 2 or 3 fonts before g-t is mapped.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vteseq.c: (vte_g_array_fill):
+ Micro-optimise the loop.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vteft2.c: (_vte_ft2_create), (_vte_ft2_start),
+ (_vte_ft2_end), (update_bbox), (_vte_ft2_set_text_font),
+ (_vte_ft2_draw_text):
+ * src/vtergb.c: (_vte_rgb_buffer_new), (_vte_rgb_buffer_resize),
+ (_vte_rgb_draw_color_rgb), (_vte_rgb_copy):
+ * src/vtergb.h:
+ Reuse converted glyphs within a run.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vteconv.c: (_vte_conv_utf8_strlen), (_vte_conv):
+ Micro-optimise the loops.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vteglyph.c: (_vte_glyph_free), (_vte_cached_glyph_free),
+ (_vte_glyph_cache_new), (_vte_glyph_cache_free),
+ (_vte_glyph_cache_set_font_description),
+ (_vte_glyph_cache_has_char), (_vte_glyph_remap_char),
+ (_vte_glyph_get_uncached), (_vte_glyph_get), (_vte_glyph_draw):
+ * src/vteglyph.h:
+ Avoid the double glyph lookup in _vte_glyph_get and
+ replace the tree with a hash.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/iso2022.c: (_vte_iso2022_state_new),
+ (_vte_iso2022_state_free), (_vte_iso2022_state_set_codeset):
+ * src/trie.c: (_vte_trie_add), (convert_mbstowcs):
+ * src/utf8echo.c: (main):
+ * src/vte.c: (vte_terminal_set_encoding), (vte_terminal_send),
+ (vte_terminal_init), (vte_terminal_finalize),
+ (vte_terminal_set_word_chars):
+ * src/vteconv.c: (_vte_conv_open), (_vte_conv_close), (_vte_conv):
+ * src/vteconv.h:
+ * src/vteseq.c: (vte_sequence_handler_set_title_internal):
+ s/(VteConv)-1/VTE_INVALID_CONV/
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vte.c: (_vte_new_row_data), (_vte_new_row_data_sized),
+ (_vte_terminal_find_row_data), (_vte_row_data_find_charcell),
+ (vte_line_is_wrappable), (vte_terminal_extend_selection),
+ (vte_terminal_draw_row):
+ Refactor vte_find_row_data to simplify and improve
+ some logic.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vte.c: (vte_g_array_fill), (vte_terminal_emit_commit),
+ (_vte_terminal_ensure_cursor), (_vte_terminal_insert_char),
+ (_vte_terminal_fork_basic), (vte_terminal_process_incoming),
+ (vte_terminal_key_press), (vte_terminal_visibility_notify),
+ (vte_terminal_apply_metrics), (vte_terminal_paint),
+ (vte_terminal_expose):
+ Callgrind driven rewrite of critical loops.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vte-private.h:
+ * src/vte.c: (_vte_terminal_connect_pty_write),
+ (_vte_terminal_disconnect_pty_write), (vte_terminal_io_read),
+ (vte_terminal_feed), (vte_terminal_feed_child_binary),
+ (vte_terminal_init), (vte_terminal_unrealize),
+ (add_process_timeout), (add_update_timeout),
+ (remove_process_timeout), (vte_terminal_stop_processing),
+ (vte_terminal_is_processing), (vte_terminal_start_processing),
+ (process_timeout), (update_repeat_timeout), (update_timeout):
+ The rate-limiting step is the display update - we do not need
+ to process input faster than we are displaying it. So use the
+ update display timeout to process new input (and dirty some
+ more pixels).
+
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/interpret.c: (main):
+ * src/iso2022.c: (_vte_iso2022_fragment_input),
+ (_vte_iso2022_process), (main):
+ * src/vte.c: (vte_terminal_match_contents_refresh),
+ (vte_terminal_process_incoming), (vte_terminal_init),
+ (vte_terminal_set_word_chars):
+ * src/vteaccess.c:
+ (vte_terminal_accessible_update_private_data_if_needed):
+ * src/vtefc.c: (_vte_fc_patterns_from_pango_font_desc):
+ * src/vtefc.h:
+ * src/vteglyph.c: (_vte_glyph_cache_new), (_vte_glyph_cache_free),
+ (_vte_glyph_cache_set_font_description):
+ * src/vteglyph.h:
+ * src/vteregex.c: (_vte_regex_sort_matches):
+ * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_close),
+ (_vte_xft_font_for_char):
+ s/g_array_new(TRUE, TRUE/g_array_new(FALSE, FALSE/
+ All uses of GArray respect their lengths and do not
+ zero-termination or untouched members to be cleared.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/iso2022.c: (_vte_iso2022_state_free):
+ * src/matcher.c: (_vte_matcher_free_params_array):
+ * src/ring.c: (_vte_ring_free):
+ * src/table.c: (_vte_table_free):
+ * src/trie.c: (_vte_trie_match):
+ * src/vte.c: (_vte_terminal_match_contents_clear),
+ (_vte_terminal_fork_basic),
+ (vte_terminal_get_text_range_maybe_wrapped), (vte_terminal_copy),
+ (vte_terminal_finalize), (vte_terminal_draw_cells_with_attributes):
+ * src/vteaccess.c: (vte_terminal_accessible_free_private_data):
+ * src/vtebg.c: (vte_bg_root_pixmap), (vte_bg_cache_item_free):
+ * src/vteconv.c: (_vte_conv_close):
+ * src/vtedraw.c: (_vte_draw_free):
+ * src/vteft2.c: (_vte_ft2_destroy):
+ * src/vtegl.c: (_vte_gl_destroy):
+ * src/vteglyph.c: (_vte_glyph_cache_free):
+ * src/vtepango.c: (_vte_pango_destroy):
+ * src/vtepangox.c: (_vte_pango_x_destroy):
+ * src/vtergb.c: (_vte_rgb_buffer_new), (_vte_rgb_buffer_free):
+ * src/vteseq.c: (vte_sequence_handler_se),
+ (vte_sequence_handler_so):
+ * src/vteskel.c: (_vte_skel_destroy):
+ * src/vtexft.c: (_vte_xft_font_close), (_vte_xft_destroy):
+ Do not zero memory in destructors, as glib will zero all
+ freed memory if G_DEBUG=gc-friendly.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/reaper.c: (vte_reaper_add_child), (vte_reaper_init),
+ (vte_reaper_constructor), (vte_reaper_finalize),
+ (vte_reaper_class_init), (vte_reaper_get), (main):
+ * src/vte.c: (G_DEFINE_TYPE_WITH_CODE), (_vte_terminal_fork_basic),
+ (vte_terminal_key_press), (vte_terminal_init), (vte_terminal_show),
+ (vte_terminal_finalize), (vte_terminal_get_accessible),
+ (vte_terminal_class_init):
+ * src/vteaccess.c: (vte_terminal_initialize),
+ (vte_terminal_accessible_finalize),
+ (vte_terminal_accessible_class_init),
+ (vte_terminal_accessible_get_type),
+ (vte_terminal_accessible_factory_init),
+ (vte_terminal_accessible_factory_new):
+ * src/vtebg.c: (vte_bg_native_new), (vte_bg_finalize),
+ (vte_bg_class_init), (vte_bg_init), (vte_bg_get_for_screen),
+ (vte_bg_cache_item_free), (vte_bg_cache_prune_int),
+ (_vte_bg_resize_pixbuf), (vte_bg_set_root_pixmap),
+ (vte_bg_cache_add), (vte_bg_cache_search), (vte_bg_get_pixmap),
+ (vte_bg_get_pixbuf):
+ Use GObject boiler-plate code (G_DEFINE_TYPE),
+ as opposed to open coding.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/vte-private.h:
+ * src/vte.c: (vte_free_row_data), (vte_g_array_fill),
+ (vte_terminal_find_charcell), (vte_terminal_preedit_width),
+ (vte_terminal_preedit_length), (_vte_invalidate_cursor_once),
+ (vte_invalidate_cursor_periodic), (vte_terminal_deselect_all),
+ (vte_terminal_set_default_tabstops),
+ (vte_terminal_match_contents_refresh), (vte_terminal_cursor_new),
+ (vte_terminal_match_check_internal),
+ (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_changed),
+ (vte_terminal_scroll_pages), (vte_terminal_maybe_scroll_to_top),
+ (vte_terminal_maybe_scroll_to_bottom),
+ (_vte_terminal_set_pointer_visible), (vte_terminal_new),
+ (vte_terminal_set_color_internal), (vte_terminal_set_color_bold),
+ (vte_terminal_set_color_dim), (vte_terminal_set_color_foreground),
+ (vte_terminal_set_color_background),
+ (vte_terminal_set_color_cursor),
+ (vte_terminal_set_color_highlight), (vte_terminal_handle_sequence),
+ (vte_terminal_catch_child_exited),
+ (_vte_terminal_connect_pty_read),
+ (_vte_terminal_connect_pty_write), (_vte_terminal_fork_basic),
+ (vte_terminal_eof), (vte_terminal_im_reset),
+ (vte_terminal_process_incoming), (vte_terminal_io_read),
+ (vte_terminal_io_write), (vte_terminal_send),
+ (vte_terminal_im_commit), (vte_terminal_im_preedit_start),
+ (vte_terminal_im_preedit_end), (vte_terminal_im_preedit_changed),
+ (vte_terminal_configure_toplevel),
+ (vte_terminal_hierarchy_changed), (vte_terminal_style_changed),
+ (add_cursor_timeout), (vte_terminal_key_press), (vte_same_class),
+ (vte_line_is_wrappable), (vte_terminal_paste_cb),
+ (vte_terminal_send_mouse_button_internal),
+ (vte_terminal_maybe_send_mouse_drag), (vte_terminal_clear_cb),
+ (vte_terminal_copy_cb),
+ (vte_terminal_get_text_range_maybe_wrapped),
+ (vte_terminal_clipboard_get), (vte_terminal_copy),
+ (vte_terminal_paste), (vte_terminal_autoscroll),
+ (vte_terminal_start_autoscroll), (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release),
+ (vte_terminal_focus_in), (vte_terminal_focus_out),
+ (vte_terminal_visibility_notify), (vte_terminal_apply_metrics),
+ (vte_terminal_set_font_full), (vte_terminal_refresh_size),
+ (vte_terminal_handle_scroll), (vte_terminal_set_scroll_adjustment),
+ (vte_terminal_connect_xft_settings),
+ (vte_terminal_disconnect_xft_settings),
+ (_vte_terminal_codeset_changed_cb), (vte_terminal_init),
+ (vte_terminal_size_request), (vte_terminal_size_allocate),
+ (vte_terminal_show), (root_pixmap_changed_cb),
+ (vte_terminal_unrealize), (vte_terminal_finalize),
+ (vte_terminal_realize), (vte_terminal_determine_colors),
+ (vte_terminal_paint), (vte_terminal_expose), (vte_terminal_scroll),
+ (vte_terminal_get_accessible), (vte_terminal_im_append_menuitems),
+ (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_set_background_image),
+ (vte_terminal_set_background_image_file),
+ (vte_terminal_set_cursor_blinks), (vte_terminal_reset),
+ (vte_terminal_set_pty):
+ * src/vteaccess.c: (vte_terminal_initialize),
+ (vte_terminal_accessible_finalize):
+ * src/vtedraw.c: (_vte_draw_new), (_vte_draw_free),
+ (_vte_draw_start), (_vte_draw_end):
+ * src/vtefc.c: (_vte_fc_transcribe_from_pango_font_description),
+ (_vte_fc_defaults_from_gtk), (_vte_fc_connect_settings_changes),
+ (_vte_fc_disconnect_settings_changes):
+ * src/vteft2.c: (_vte_ft2_destroy),
+ (_vte_ft2_set_background_image), (_vte_ft2_clear):
+ * src/vtegl.c: (_vte_gl_destroy), (_vte_gl_set_background_image),
+ (_vte_gl_clear):
+ * src/vtepango.c: (_vte_pango_destroy), (_vte_pango_start),
+ (_vte_pango_end), (_vte_pango_set_background_image),
+ (_vte_pango_set_text_font):
+ * src/vtepangox.c: (_vte_pango_x_destroy), (_vte_pango_x_start),
+ (_vte_pango_x_end), (_vte_pango_x_set_background_image),
+ (_vte_pango_x_set_text_font):
+ * src/vterdb.c: (_vte_rdb_get):
+ * src/vteseq.c: (vte_sequence_handler_scroll_up_or_down),
+ (vte_sequence_handler_set_title_internal), (vte_terminal_beep),
+ (vte_sequence_handler_do), (vte_sequence_handler_sf),
+ (vte_sequence_handler_sr), (vte_sequence_handler_vb),
+ (vte_sequence_handler_window_manipulation):
+ * src/vteskel.c: (_vte_skel_destroy):
+ * src/vtetree.c: (_vte_tree_new), (_vte_tree_destroy):
+ * src/vtexft.c: (_vte_xft_set_background_image), (_vte_xft_clear):
+ Remove superfluous checks and run-time checked type casts.
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ As part of Bug 397439.
+
+ * src/debug.c:
+ * src/iso2022.c: (_vte_iso2022_ambiguous_width_guess),
+ (_vte_iso2022_state_new), (_vte_iso2022_state_set_codeset),
+ (process_8_bit_sequence), (process_cdata), (process_control),
+ (_vte_iso2022_process):
+ * src/keymap.c: (_vte_keymap_map):
+ * src/matcher.c: (_vte_matcher_init), (_vte_matcher_create),
+ (_vte_matcher_destroy):
+ * src/pty.c: (_vte_pty_run_on_pty), (_vte_pty_fork_on_pty_name),
+ (_vte_pty_fork_on_pty_fd), (_vte_pty_set_size),
+ (_vte_pty_get_size), (_vte_pty_ptsname), (_vte_pty_open_unix98),
+ (_vte_pty_open_with_helper), (_vte_pty_open), (main):
+ * src/reaper.c: (vte_reaper_emit_signal),
+ (vte_reaper_child_watch_cb), (vte_reaper_init),
+ (vte_reaper_finalize):
+ * src/reflect.c: (text_changed_insert), (text_changed_delete):
+ * src/ring.c: (_vte_ring_insert), (_vte_ring_insert_preserve),
+ (_vte_ring_remove), (scrolled_off), (main):
+ * src/slowcat.c: (main):
+ * src/table.c: (_vte_table_printi), (_vte_table_print):
+ * src/trie.c: (char_class_string_extract):
+ * src/vte.c: (_vte_invalidate_cursor_once),
+ (vte_terminal_emit_selection_changed), (vte_terminal_emit_commit),
+ (vte_terminal_emit_emulation_changed),
+ (vte_terminal_emit_encoding_changed),
+ (vte_terminal_emit_child_exited),
+ (_vte_terminal_emit_contents_changed),
+ (vte_terminal_emit_cursor_moved), (vte_terminal_emit_eof),
+ (vte_terminal_emit_char_size_changed),
+ (_vte_terminal_emit_status_line_changed),
+ (vte_terminal_emit_increase_font_size),
+ (vte_terminal_emit_decrease_font_size),
+ (_vte_terminal_emit_text_inserted),
+ (_vte_terminal_emit_text_deleted),
+ (vte_terminal_emit_text_modified),
+ (vte_terminal_emit_text_scrolled), (vte_terminal_deselect_all),
+ (vte_terminal_match_check_internal), (vte_terminal_match_check),
+ (vte_terminal_emit_adjustment_changed),
+ (vte_terminal_queue_adjustment_changed),
+ (_vte_terminal_adjust_adjustments), (vte_terminal_scroll_pages),
+ (vte_terminal_maybe_scroll_to_bottom), (vte_terminal_set_encoding),
+ (_vte_terminal_set_pointer_visible), (vte_terminal_new),
+ (vte_terminal_generate_bold), (_vte_terminal_insert_char),
+ (display_control_sequence), (vte_terminal_fork_command),
+ (vte_terminal_emit_pending_text_signals),
+ (vte_terminal_process_incoming), (vte_terminal_io_write),
+ (vte_terminal_send), (vte_terminal_im_commit),
+ (vte_terminal_im_preedit_start), (vte_terminal_im_preedit_end),
+ (vte_terminal_im_preedit_changed),
+ (vte_terminal_configure_toplevel),
+ (vte_terminal_hierarchy_changed), (vte_terminal_style_changed),
+ (vte_terminal_key_press), (vte_terminal_paste_cb),
+ (vte_terminal_match_hilite_clear), (vte_terminal_match_hilite),
+ (vte_terminal_clear_cb), (vte_terminal_copy_cb),
+ (vte_terminal_copy), (vte_terminal_paste),
+ (vte_terminal_start_selection), (vte_terminal_extend_selection),
+ (vte_terminal_autoscroll), (vte_terminal_motion_notify),
+ (vte_terminal_button_press), (vte_terminal_button_release),
+ (vte_terminal_focus_in), (vte_terminal_focus_out),
+ (vte_terminal_set_font_full), (vte_terminal_set_size),
+ (vte_terminal_handle_scroll), (vte_terminal_set_emulation),
+ (vte_terminal_set_termcap), (vte_terminal_reset_rowdata),
+ (vte_terminal_fc_settings_changed), (vte_terminal_init),
+ (vte_terminal_size_request), (vte_terminal_size_allocate),
+ (vte_terminal_show), (vte_terminal_unrealize),
+ (vte_terminal_finalize), (vte_terminal_realize),
+ (vte_terminal_draw_cells), (_vte_terminal_map_pango_color),
+ (vte_terminal_paint), (vte_terminal_scroll),
+ (vte_terminal_class_init), (vte_terminal_get_type),
+ (vte_terminal_copy_clipboard), (vte_terminal_paste_clipboard),
+ (vte_terminal_copy_primary), (vte_terminal_paste_primary),
+ (vte_terminal_background_update),
+ (vte_terminal_queue_background_update),
+ (vte_terminal_set_background_saturation),
+ (vte_terminal_set_background_tint_color),
+ (vte_terminal_set_background_transparent),
+ (vte_terminal_set_background_image),
+ (vte_terminal_set_background_image_file),
+ (vte_terminal_set_word_chars):
+ * src/vteaccess.c: (emit_text_caret_moved),
+ (emit_text_changed_insert), (emit_text_changed_delete),
+ (vte_terminal_accessible_update_private_data_if_needed),
+ (vte_terminal_accessible_invalidate_cursor),
+ (vte_terminal_accessible_finalize),
+ (vte_terminal_accessible_get_text),
+ (vte_terminal_accessible_get_text_somewhere),
+ (vte_terminal_accessible_text_init),
+ (vte_terminal_accessible_component_init),
+ (vte_terminal_accessible_factory_new):
+ * src/vteapp.c: (main):
+ * src/vtebg.c: (vte_bg_root_pixmap), (_vte_bg_resize_pixbuf):
+ * src/vtedraw.c: (_vte_draw_new):
+ * src/vtepango.c: (_vte_pango_set_text_font):
+ * src/vtepangox.c: (_vte_pango_x_set_text_font):
+ * src/vteseq.c: (vte_terminal_emit_deiconify_window),
+ (vte_terminal_emit_iconify_window),
+ (vte_terminal_emit_icon_title_changed),
+ (vte_terminal_emit_window_title_changed),
+ (vte_terminal_emit_raise_window), (vte_terminal_emit_lower_window),
+ (vte_terminal_emit_maximize_window),
+ (vte_terminal_emit_refresh_window),
+ (vte_terminal_emit_restore_window),
+ (vte_terminal_emit_move_window), (vte_terminal_emit_resize_window),
+ (vte_sequence_handler_set_title_internal),
+ (vte_sequence_handler_decset_internal), (vte_sequence_handler_bt),
+ (vte_sequence_handler_application_keypad),
+ (vte_sequence_handler_normal_keypad),
+ (vte_sequence_handler_window_manipulation):
+ * src/vtetc.c: (main):
+ * src/vtexft.c: (_vte_xft_set_text_font):
+ s/fprintf(stderr,/g_printerr(/
+
+2007-01-17 Chris Wilson <chris chris-wilson co uk>
+
+ Only invalidate groups of inserted chars and not the whole bbox.
+ This speeds up applications like vim which maintain a status line
+ at the bottom of the screen. Fixes bug 161342.
+
+ * src/vte-private.h:
+ * src/vte.c: (update_regions), (_vte_invalidate_cells),
+ (_vte_invalidate_all), (_vte_terminal_scroll_region),
+ (vte_terminal_process_incoming), (reset_update_regions),
+ (remove_update_timeout), (update_repeat_timeout), (update_timeout):
+
+2007-01-15 Behdad Esfahbod <behdad gnome org>
+
+ Bug 387171 – vte fails to install on FreeBSD due to missing header
+ Patch from Roy Marples
+
+ * src/vteseq.c: #include <limits.h>
+
+2007-01-15 Behdad Esfahbod <behdad gnome org>
+
+ Bug 396831 – Unable to compile without X
+ Patch from Chris Wilson
+
+ * src/vtebg.c (_vte_bg_display_sync), (vte_bg_root_pixmap): Add stubs.
+
+2007-01-09 Ryan Lortie <desrt desrt ca>
+
+ Bug 394890 – Segfault when running vte or gnome-terminal
+
+ * src/vtetc.c (_vte_termcap_find_string): change 'int' to 'gssize' to
+ match previous fixup. Hopefully that does it. :)
+
+2007-01-08 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.1.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.1.
+
+ * src/Makefile.am: Bumped libtool version to 10:8:1.
+
+2006-12-29 Ryan Lortie <desrt desrt ca>
+
+ Small fix to the previous patch.
+
+ * src/vtetc.c (_vte_termcap_find_string_length): 'int' is not the same
+ as 'gssize' on 64bit platforms, causing compile errors.
+
+2006-12-27 Ryan Lortie <desrt desrt ca>
+
+ Bug 354061 – Excessive use of strlen by _vte_termcap_create
+
+ * src/vtetc.c: near-complete rewrite to use a GMappedFile rather than
+ reading a line at a time with excessive strlen/realloc use.
+
+ * str/matcher.c: this shouldn't be calling the strip code as the
+ strings it has are already unescaped.
+
+2006-12-27 Ryan Lortie <desrt desrt ca>
+
+ Bug 387475 – Gtk-Warning spew in gnome-terminal
+
+ Problem introduced by fix to bug 356552.
+
+ * src/vte.c (vte_invalidate_cursor_periodic): Add a temporary backward
+ compatibility hack to prevent GObject from spewing warnings about
+ missing GtkSettings properties in old GTK versions.
+
+2006-12-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 387482 – Variable modified in signal handler should be volatile
+ Patch from Bastien Nocera
+
+ * gnome-pty-helper/gnome-pty-helper.c: Make variable "done" volatile.
+
+2006-12-08 Behdad Esfahbod <behdad gnome org>
+
+ Red Hat Bug 218626: "last -ad" print junk in last column
+
+ * gnome-pty-helper/gnome-utmp.c (write_logout_record),
+ (write_login_record): Don't gettimeofday directly into ut.ut_tv.
+ That overruns on x86_64.
+
+2006-12-05 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.15.0.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.15.0.
+
+ * src/Makefile.am: Bumped libtool version to 10:7:1.
+
+2006-12-05 Ryan Lortie <desrt desrt ca>
+
+ Bug 356552 – cursor timeout runs all the time
+
+ * src/vte-private.h: Rework how cursor blinking works.
+ * src/vte.c: Rework how cursor blinking works. Only register the
+ cursor blink callback when cursor blink is enabled and the window
+ is focused.
+
+2006-11-16 Mariano Suárez-Alvarez <mariano gnome org>
+
+ Bug 307396 – Mouse scroll mode not controllable
+
+ * src/vte.c(vte_terminal_scroll): make the scrollwheel scroll by tenths of
+ a screen (or 1 line, whichever is bigger) instead of half screens.
+
+2006-11-16 Mariano Suárez-Alvarez <mariano gnome org>
+
+ Bug 356602 – const cast warning fixes for libvte
+ Patch by Ryan Lortie (desrt)
+
+ * src/matcher.h: Use const char * where appropriate.
+ * src/matcher.c: Use const char * where appropriate. Cast g_strdup
+ to (GCacheDupFunc) to avoid a warning.
+ * src/vtetc.h: Use const char * where appropriate.
+ * src/vtetc.c: Use const char * where appropriate. Cast g_strdup
+ to (GCacheDupFunc) to avoid a warning.
+ * src/vte.c: Use const char * where appropriate.
+
+2006-11-01 Rich Burridge <rich burridge sun com>
+
+ * src/vteaccess.c:
+ Fixed bug #150858 - In gnome-terminal, the deleted character
+ is reported as "space".
+
+2006-10-13 Behdad Esfahbod <behdad gnome org>
+
+ * po/POTFILES.in: Include vteseq.c
+
+2006-10-11 Mariano Suárez-Alvarez <msuarezalvarez arnet com ar>
+
+ Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal
+
+ * src/keymap.c (_vte_keymap_key_add_key_modifiers): Match the (newer)
+ xterm behavior when reporting modifiers to things running in a terminal.
+
+2006-10-02 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.14.1.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.14.1.
+
+ * src/Makefile.am: Bumped libtool version to 10:6:1.
+
+2006-10-02 Behdad Esfahbod <behdad gnome org>
+
+ Bug 358344 – autoscroll only works one way in fullscreen [PATCH]
+ Patch by Egmont Koblinger
+
+ * src/vte.c (vte_terminal_autoscroll),
+ (vte_terminal_motion_notify): Fix forward autoscrolling in fullscreen
+ mode.
+
+2006-09-20 Behdad Esfahbod <behdad gnome org>
+
+ Bug 353756 – font setting cleanup
+
+ * src/vte.c (vte_terminal_set_font_full): Use 'monospace' family if no
+ font is set on a terminal widget
+
+ * src/vte.c (vte_terminal_set_font_from_string_full): Don't
+ g_return_if_fail(strlen(name) > 0). An empty string is a perfectly
+ valid pango font description string.
+
+ * src/vte.c (vte_terminal_show): Make sure we have a font loaded.
+
+ * src/vteapp.c (main): Don't fallback on "Monospace 12". Let the
+ widget decide what font to use if no font is set.
+
+2006-09-18 Ryan Lortie <desrt desrt ca>
+
+ Bug 356616 – libvte broken with new autotools
+
+ * configure.in:
+ * src/Makefile.am: Fix broken variable substitution for newer
+ versions of automake.
+
+2006-09-13 Behdad Esfahbod <behdad gnome org>
+
+ Bug 354024 – Suppress multiple warnings for missing control sequence
+ handlers
+ Patch from Chris Wilson
+
+ * src/vte.c (vte_terminal_handle_sequence): Suppress multiple warnings
+ for missing control sequence handlers in non-debugging builds.
+
+2006-09-13 Behdad Esfahbod <behdad gnome org>
+
+ Bug 354620 – vte-0.14.0: undefined C code
+ Patch from Ales Nosek
+
+ * src/ssfe.c (inschar), (dokbdchar): Replace "*(tmp+1)=(*tmp--);"
+ with something well-defined.
+
+2006-09-08 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am: Define G_LOG_DOMAIN=Vte.
+
+2006-09-04 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.14.0.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.14.0.
+
+ * src/Makefile.am: Bumped libtool version to 10:5:1.
+
+2006-08-31 Behdad Esfahbod <behdad gnome org>
+
+ Bug 340631 – Printed lines containing tab characters are not wrapped
+ correctly
+
+ * src/vteseq.c (vte_sequence_handler_ta): make sure we don't move the
+ cursor back when tabbing past the end of the line.
+
+ * src/pty.c:
+ * src/ring.c:
+ * src/trie.c:
+ * src/vte.c:
+ * src/vtebg.c:
+ * src/vtetc.c:
+ Minor doc syntax update.
+
+2006-08-26 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Followup on
+ the fix for bug 350236. It was causing empty lines not to be copied.
+
+2006-08-24 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.7.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.7.
+
+ * src/Makefile.am: Bumped libtool version to 10:4:1.
+
+2006-08-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 352365 – font caching problem for not-found glyphs
+
+ * src/vtexft.c (_vte_xft_font_for_char): Add caching on a missing
+ path. This only affects the second time a character is looked up.
+
+ * src/vtexft.c (_vte_xft_font_close), (_vte_xft_font_for_char),
+ (_vte_xft_char_width): Remove g_assert()'s that are not needed, as
+ we will definitely crash pretty soon if the assertion is not true
+ anyway.
+
+2006-08-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 350236 – Cannot copy text containing invalid character sequences
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Fix another
+ bug in my rewritten selection code, that was assuming that
+ last_nonempty character is one byte long.
+
+2006-08-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 352439 – URL highlighting seriously broken
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Followup to
+ changes made for bug 350623. Put back the g_array_set_size(), in the
+ correct place this time.
+
+2006-08-22 Behdad Esfahbod <behdad gnome org>
+
+ Bug 351494 – Gnome-terminal doesn't kills bash on tab close
+ Patch from Aivars Kalvans
+
+ * src/vte.c (vte_terminal_unrealize): Undo the change from bug 348814.
+ Dispose draw in unrealize again, but also set has_fonts to FALSE.
+
+2006-08-20 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.6.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.6.
+
+ * src/Makefile.am: Bumped libtool version to 10:3:1.
+
+2006-08-17 Behdad Esfahbod <behdad gnome org>
+
+ Bug 351696 – crash on Terminal
+
+ * src/vteseq.c (vte_sequence_handler_set_title_internal): Check
+ ->window is not NULL before setting icon/window title.
+
+2006-08-16 Willie Walker <william walker sun com>
+
+ Bug 350623 – Accessible text getTextAtOffset is broken
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Do not
+ resize array before calling vte_g_array_fill since it
+ nullifies any effect vte_g_array_fill will have.
+
+2006-08-16 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Make sure
+ attr.column is initialized.
+
+2006-07-31 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.5.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.5.
+
+ * src/Makefile.am: Bumped libtool version to 10:2:1.
+
+2006-07-30 Behdad Esfahbod <behdad gnome org>
+
+ Bug 158200 – terminal backspace behavior not set to UTF-8 mode
+ Based on patch from Egmont Koblinger
+
+ * src/vte.c (_vte_terminal_setup_utf8),
+ (vte_terminal_set_encoding), (_vte_terminal_fork_basic),
+ (vte_terminal_set_pty): Make sure UTF-8 state is correctly set
+ when pty changes.
+
+2006-07-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 348814 – crash on Terminal
+ Patch from Aivars Kalvans
+
+ * src/vte.c (vte_terminal_unrealize): Do not dispose draw in
+ unrealize.
+
+2006-07-24 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.4.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.4.
+
+ * src/Makefile.am: Bumped libtool version to 10:1:1.
+
+2006-07-24 Behdad Esfahbod <behdad gnome org>
+
+ Bug 336947 – [patch] Redundant vte_terminal_set_font_full() calls
+ Patch from Aivars Kalvans
+
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_set_font_full), (vte_terminal_init),
+ (vte_terminal_realize):
+ AVoid redundant set_font_full and invalidate_all calls.
+
+2006-07-19 Behdad Esfahbod <behdad gnome org>
+
+ Bug 134800 – gnome-termnal hung up when input by ATOK
+ Patch from Yukihiro Nakai <nakai gnome gr jp>
+
+ * src/vte.c (vte_terminal_unrealize): Delay _vte_draw_free().
+
+2006-07-19 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_extend_selection): Oops. Fix selection
+ that I broke recently.
+
+2006-07-11 Behdad Esfahbod <behdad gnome org>
+
+ Bug 339983 – gnome-pty-helper should log username
+ Patch from Brian Cameron
+
+ * gnome-pty-helper/gnome-pty-helper.c (pty_remove), (shutdown_pty),
+ (pty_add), (open_ptys):
+ * gnome-pty-helper/gnome-pty.h:
+ * gnome-pty-helper/gnome-utmp.c (write_logout_record):
+ Log username if system supports it.
+
+2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.3.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.3.
+
+ * src/Makefile.am: Bumped libtool version to 10:0:1.
+
+2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 141985 – vte does not respond to 'CSI 2 1 t' or 'CSI 2 0 t' with
+ the correct window/icon title
+ Patch from Mariano Suárez-Alvarez
+
+ * src/vte.c (vte_terminal_realize), src/vteseq.c
+ * (vte_sequence_handler_set_title_internal): Set window/icon titles.
+
+2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 121904 – copy-paste of empty line
+ Bug 25290 – Small UI tweak to select-by-word (only select only letter
+ at a time for non-word characters)
+ Bug 339986 – Patch to select localized strings exactly
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_set_default_attributes),
+ (_vte_terminal_insert_char), (vte_terminal_is_word_char),
+ (vte_same_class), (vte_terminal_get_text_range_maybe_wrapped),
+ (vte_terminal_extend_selection):
+ * src/vteseq.c (vte_sequence_handler_screen_alignment_test):
+ Fix a bunch of selection-related issues. We now recognize explicitly
+ put space at the end of lines, and copy/paste it. The other change is
+ that non-wordchar characters are not grouped together. Also fixes the
+ fallback on Unicode properties that I added two commits ago.
+
+2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 311855 – Race in vte leads to blocking of input.
+ Patch from Kalle Raiskila
+
+ * src/vte-private.h:
+ * src/vte.c (_vte_terminal_connect_pty_write),
+ (_vte_terminal_disconnect_pty_write), (vte_terminal_init):
+ Use a mutex for pty_output_source.
+
+2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 339986 – Patch to select localized strings exactly
+ Patch from Takao Fujiwara
+
+ * src/vte.c (vte_terminal_is_word_char): Fall back on Unicode
+ properties for non-ASCII characters or when no array is set.
+
+2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 342396 – Ctrl-space sends " ", not NUL.
+
+ * src/keymap.c (_vte_keymap_map): Fix keymap lookup bug that I
+ introduced during the char*->char[] work on 2006-04-18.
+
+2006-07-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 345377 – real transparency
+ Patch from Kristian Høgsberg <krh redhat.com>
+
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/vte-sections.txt:
+ * python/vte.defs:
+ * src/vte-private.h:
+ * src/vte.c (vte_terminal_set_opacity), (vte_terminal_init),
+ (vte_terminal_background_update):
+ * src/vte.h:
+ * src/vteapp.c (main):
+ * src/vtedraw.c (_vte_draw_set_background_color):
+ * src/vtedraw.h:
+ * src/vteft2.c (_vte_ft2_set_background_color):
+ * src/vtegl.c (_vte_gl_set_background_color):
+ * src/vtepango.c (_vte_pango_set_background_color):
+ * src/vtepangox.c (_vte_pango_x_set_background_color):
+ * src/vteskel.c (_vte_skel_set_background_color):
+ * src/vtexft.c (_vte_xft_create), (_vte_xft_set_background_color),
+ (_vte_xft_clear):
+ Add vte_terminal_set_opacity().
+
+2006-07-05 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am: Allow _vte_debug_.* into exported symbols.
+
+2006-06-21 Behdad Esfahbod <behdad gnome org>
+
+ Bug 345514 – -no-undefined doesn't work with latest libtool
+
+ * src/Makefile.am: Remove -no-undefined.
+
+2006-06-12 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.2.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.2.
+
+ * src/Makefile.am: Bumped libtool version to 9:2:0.
+
+2006-06-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 344666 – Problems with *_CFLAGS and *_LDFLAGS in makefiles
+ Patch from Stepan Kasal <kasal ucw cz>.
+
+ * src/Makefile.am (AM_CFLAGS, AM_LDFLAGS, *_CFLAGS, *_LDADD):
+ Replace @FOO@ references by $(FOO), remove redundant (or buggy)
+ occurences of `@CFLAGS@'.
+ * gnome-pty-helper/Makefile.am (AM_CFLAGS, AM_LDFLAGS): Likewise.
+ * python/Makefile.am (vtemodule_la_CFLAGS): Likewise.
+ * src/Makefile.am (AM_CFLAGS): Add $(FT2_CFLAGS).
+
+2006-06-08 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (remove_display_timeout): Fix typo which may have been
+ causing things like crashes. Reported by muntyan. Also reordered
+ some code around update_timeout for better matching the current
+ timeouts in style.
+
+2006-06-07 Behdad Esfahbod <behdad gnome org>
+
+ Bug 339529 – gnome-terminal (vte) crashes when detatched window is
+ closed
+
+ * src/vte.c (vte_invalidate_region): Bail out if terminal->window is
+ NULL.
+
+2006-05-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 342549 – uninitialized var (coverity)
+ Patch from Paolo Borelli.
+
+ * src/vte.c (vte_cell_is_selected): Remove uninitialized var ret.
+
+2006-05-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 342082 – vte_invalidate_region() may check whether terminal is
+ realiazed or not
+ Patch from Kouhei Sutou.
+
+ * src/vte.c (vte_invalidate_region): Return if not realized.
+
+2006-05-22 Behdad Esfahbod <behdad gnome org>
+
+ Bug 340363 – vte Cygwin build fixes
+ Patch from Cygwin Ports maintainer
+
+ * configure.in, src/keymap.c, src/pty.c, src/ssfe.c, src/trie.c,
+ src/utf8echo.c, src/vte.c, src/vteseq.c, src/vtetc.c: Check and
+ include syslimits.h and ncurses/curses.h
+
+2006-05-22 Behdad Esfahbod <behdad gnome org>
+
+ Bug 341793 – vte.h doesn't need to include X11/Xlib.h
+ Patch from Kouhei Sutou
+
+ * src/vte.h: Don't #include <X11/Xlib.h>
+
+2006-05-17 Wouter Bolsterlee <uws+gnome xs4all nl>
+
+ * configure.in: Require intltool 0.35.0 to have
+ translations in the dist tarballs.
+
+2006-05-17 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.1.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.1.
+
+ * src/Makefile.am: Bumped libtool version to 9:1:0.
+
+2006-05-14 Behdad Esfahbod <behdad gnome org>
+
+ * NEWS, ChangeLog: Add vim and emacs footers for UTF-8.
+
+2006-04-27 Behdad Esfahbod <behdad gnome org>
+
+ Bug 339980 – nativeecho needs glib in LDADD to build on Solaris
+ Patch from Brian Cameron.
+
+ * src/Makefile.am: Fix it.
+
+2006-04-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 331803 – style needs to be attached/detached to the window on
+ realize/unrealize
+ Patch from Benjamin Berg <benjamin sipsolutions net>.
+
+ * src/vte.c: (vte_terminal_unrealize), (vte_terminal_realize):
+ attach and detach the style of the terminal widget.
+
+2006-04-25 Behdad Esfahbod <behdad gnome org>
+
+ * src/Makefile.am: Pass -no-undefined linker flag.
+
+2006-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.13.0.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.13.0.
+
+ * src/Makefile.am: Bumped libtool version to 9:0:0.
+
+2006-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 339448 – selection doesn't respect hard newlines
+
+ * src/vte.c (vte_terminal_get_text_range_maybe_wrapped): Add newline
+ to the end of each line that is not soft-wrapped.
+
+2006-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 148720 – Word selection erroneously captures text from next line
+ Patch from Chris Heath.
+
+ * src/vteseq.c (vte_sequence_handler_cd), (vte_sequence_handler_ce),
+ (vte_sequence_handler_clear_current_line),
+ (vte_sequence_handler_clear_above_current): Reset soft_wrapped flag.
+
+2006-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 126376 – Uncoinditional definition of _XOPEN_SOURCE breaks build
+ on NetBSD
+ Patch from Dan Winship.
+
+ * configure.in:
+ * gnome-pty-helper/configure.in: Define XOPEN_SOURCE on solaris only.
+
+2006-04-23 Behdad Esfahbod <behdad gnome org>
+
+ Bug 97719 – Selection: double/triple click doesn't cross line boundaries
+ Patch from Chris Heath.
+
+ * src/vte.c (vte_same_class): Fix problem with selecting whitespace
+ from adjacent lines, on word selection.
+
+2006-04-22 Behdad Esfahbod <behdad gnome org>
+
+ Bug 160782 – Vte isn't multi-screen safe
+ Patch from Benedikt Meurer.
+
+ * src/vte.c (vte_terminal_unrealize), (vte_terminal_realize):
+ * src/vtebg.c (vte_bg_native_new), (_vte_bg_display_sync),
+ (vte_bg_root_pixmap), (vte_bg_get_for_screen), (vte_bg_init),
+ (vte_bg_get_pixmap), (vte_bg_get_pixbuf):
+ * src/vtebg.h:
+ * src/vteft2.c (_vte_ft2_set_background_image):
+ * src/vtegl.c (_vte_gl_set_background_image):
+ * src/vtepango.c (_vte_pango_set_background_image):
+ * src/vtepangox.c (_vte_pango_x_set_background_image):
+ * src/vtexft.c (_vte_xft_set_background_image): Handle per-screen
+ backgrounds.
+
+2006-04-22 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_cursor_new), (vte_terminal_clipboard_get):
+ * src/vteapp.c (take_xconsole_ownership):
+ * src/vtebg.c (vte_bg_native_new), (_vte_bg_display_sync),
+ (vte_bg_root_pixmap):
+ * src/vtedraw.c (_vte_draw_get_colormap):
+ * src/vtefc.c (_vte_fc_transcribe_from_pango_font_description),
+ (_vte_fc_defaults_from_gtk):
+ * src/vtepango.c (_vte_pango_start), (_vte_pango_set_text_font):
+ * src/vtepangox.c (_vte_pango_x_set_text_font):
+ * src/vterdb.c (_vte_rdb_get):
+ * src/vteseq.c (vte_terminal_beep),
+ (vte_sequence_handler_window_manipulation):
+ * src/vtexft.c (_vte_xft_char_exists), (_vte_xft_text_extents),
+ (_vte_xft_font_open):
+ * src/vtegl.c: Remove obsolete #ifde GTK_CHECK_VERSION(2,2,0) checks.
+
+2006-04-22 Behdad Esfahbod <behdad gnome org>
+
+ Bug 330441 – Remove libzvt support
+ Patch from Guilherme de S. Pastore <gpastore gnome org>
+
+ * configure.in, src/Makefile.am, src/reflect.c: remove remnants
+ from the old, broken, and unmaintained libzvt.
+
+2006-04-21 Behdad Esfahbod <behdad gnome org>
+
+ Bug 328850 – Crash when pasting selection
+
+ * src/vte.c: Protect against passing NULL selection to strcmp.
+
+2006-04-20 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/tmpl/internals.sgml:
+ * doc/reference/tmpl/reaper.sgml:
+ * doc/reference/tmpl/vte-unused.sgml:
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/tmpl/vteaccess.sgml:
+ * doc/reference/vte-sections.txt: Misc fixes and updates.
+
+ * python/vte.defs:
+ * python/vte.override: Updates.
+
+ Bug 160134 – mouse events occurring past column 95 are not passed
+ through to terminal application
+ Based on patch from Sean Estabrooks.
+
+ * src/vte.h:
+ * src/vte.c (vte_terminal_feed_child_binary): New public function.
+
+ * src/vte.c (vte_terminal_send_mouse_button_internal),
+ (vte_terminal_maybe_send_mouse_drag): Use feed_child_binary.
+
+2006-04-19 Behdad Esfahbod <behdad gnome org>
+
+ Bug 135230 – Feature request to attach VTE to existing pty
+ Based on patch from eric brouhaha com, John Swensen, and
+ Chris Moller <cmoller redhat com>
+
+ * src/vte.c:
+ * src/vte.h:
+ * python/vte.defs:
+ * doc/reference/vte-sections.txt: Added vte_terminal_set_pty().
+
+2006-04-18 Behdad Esfahbod <behdad gnome org>
+
+ Bug 337442 – [patch] Reduce .plt section
+
+ * src/Makefile.am: Pass export-symbols-regex to libtool.
+
+2006-04-18 Behdad Esfahbod <behdad gnome org>
+
+ * src/caps.c (_vte_capability_init), src/caps.h:
+ * src/keymap.c (_vte_keymap_map), src/keymap.h: Make some data
+ structures const by changing char * to char [].
+
+ * src/vte.c (vte_update_delay_timeout), (vte_update_timeout),
+ (vte_terminal_extend_selection), (_vte_terminal_fudge_pango_colors):
+ Fix warnings and adapt to above changes.
+
+2006-04-18 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in, po/LINGUAS: Use intltool 0.34.90 format.
+
+2006-04-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 142247 – use of uninitialized value
+
+ * src/pty.c: Initialize the arbitrary byte that we send on the pipe
+ to zero.
+
+2006-04-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 149633 – gnome-terminal messes up boxdrawing chars aligment
+
+ * src/vte.c: Try to use the font first for all graphic characters.
+ This results in better looking graphics with modern fonts.
+
+2006-04-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 144456 – UK pound currency symbol rendered incorrectly
+
+ * src/vte.c: Offset characters drawn in draw_graphic for padding.
+
+2006-04-12 Behdad Esfahbod <behdad gnome org>
+
+ Bug 307403 – xticker doublefree
+
+ * src/xticker.c: Avoid double free.
+
+2006-04-10 Behdad Esfahbod <behdad gnome org>
+
+ Bug 337877 – Patch to use po/LINGUAS
+ Patch from Michiel Sikkes.
+
+ * configure.in, po/LINGUAS: Move list of translations to po/LINGUAS.
+
+2006-04-06 Behdad Esfahbod <behdad gnome org>
+
+ Bug 337552 – Insufficient version requirement for gtk+
+
+ * configure.in: Depend on Gtk+ 2.6.
+
+2006-03-30 Behdad Esfahbod <behdad gnome org>
+
+ Bug 168251 – add support for 256 colors terminals
+ Patch from dann godzilla ics uci edu.
+
+ * src/vte-private.h, src/vte.c, src/vteseq.c: Implement support
+ for 256 colors.
+
+2006-03-30 Behdad Esfahbod <behdad gnome org>
+
+ Bug 120276 – Wishlist: Support Rectangular Selection
+ Patch from Pedro de Medeiros.
+
+ * src/vte.c, src/vte-private.h: Implement block (rectangular)
+ selection using ctrl+mouse.
+
+2006-03-30 Behdad Esfahbod <behdad gnome org>
+
+ Bug 336117 – [patch] Use g_slice API
+ Patch from Aivars Kalvans.
+
+ * src/*.c: Use g_slice instead of g_malloc for structs.
+ Also, replace g_string_new("") with g_string_new(NULL).
+
+2006-03-30 Behdad Esfahbod <behdad gnome org>
+
+ Branchpoint for vte-0-12.
+
+2006-03-30 Guntupalli Karunakar <karunakar indlinux org>
+
+ * configure.in: Added "dz" (Dzongkha) to ALL_LINGUAS.
+
+2006-03-26 Behdad Esfahbod <behdad gnome org>
+
+ Bug 336128 – vim scrolling issues - emulation errors
+
+ * src/vteseq.c (vte_sequence_handler_sf): Update start and end
+ when updating insert_delta.
+
+2006-03-15 Behdad Esfahbod <behdad gnome org>
+
+ Bug 334385 – Use intltool
+
+ * Makefile.am, configure.in: Add intltool support.
+
+ * src/iso2022.c, src/reaper.c, src/vteaccess.c, src/vteapp.c,
+ src/vtebg.c, src/vtexft.c, src/vte.c: Include glib/gi18n-lib.h
+ instead of #ifdefing gettext stuff.
+
+ * src/vte.c (vte_terminal_class_init): Use GETTEXT_PACKAGE instead
+ of PACKAGE in bindgettextdomain.
+
+2006-03-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_size_allocate): More tweaks to the
+ previous changes. Reported by dholbach again.
+
+2006-03-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_size_allocate): Put the stuff changed in
+ previous commit in their original order. Problem reported by
+ dholbach.
+
+2006-03-13 Behdad Esfahbod <behdad gnome org>
+
+ Bug 104841 – scrolling doesn't work inside "screen" windows
+
+ * src/vte.c (vte_terminal_size_allocate): Fix restricted scrolling
+ region readjustment. Moreover, do not do unnecessary updates when
+ number of rows & columns has not changed.
+
+2006-03-13 Behdad Esfahbod <behdad gnome org>
+
+ Bug 333768 – vteapp debug stuff should be conditional
+ Patch from Egmont Koblinger.
+
+ * src/vteapp.c: Make pwd and setting env vars conditional on debug.
+
+2006-03-08 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.12.0.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.12.0.
+
+2006-03-09 Abel Cheung <maddog linuxhall org>
+
+ * configure.in: Readd kn to ALL_LINGUAS and make sure everything
+ builds fine.
+
+2006-03-08 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.11.21.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.11.21.
+
+ * configure.in: Removed kn from ALL_LINGUAS, as it was breaking
+ the build.
+
+2006-03-08 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c, src/vte-private.h: Fix vte_update_timeout repeat to
+ 25ms. (bug #333776, Egmont Koblinger)
+
+2006-03-07 Abel Cheung <maddog linuxhall org>
+
+ * configure.in: Added "kn" "zh_HK" to ALL_LINGUAS.
+
+2006-02-28 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte-private.h: Step up COALESCE_TIMEOUT and DISPLAY_TIMEOUT
+ from 2ms to 10ms. This is more compatible with the updated timeout
+ that we are doing at around 25ms.
+
+2006-02-27 Behdad Esfahbod <behdad gnome org>
+
+ * MAINTAINERS: Added.
+
+2006-02-25 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.11.20.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.11.20.
+
+2006-02-25 Behdad Esfahbod <behdad gnome org>
+
+ * src/vtexft.c: (_vte_xft_font_for_char): Rever the patch to
+ optimize memory usage by releasing fonts that aren't needed early.
+ Because that was inserting destroyed fonts into cache. Closes bug
+ #332580 and reverts bug #309322.
+
+2006-02-25 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.11.19.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.11.19.
+
+2006-02-17 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Make shift+insert paste PRIMARY and ctrl+shift+insert
+ paste CLIPBOARD (switched them. bug #123844)
+
+2006-02-17 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Better update-timeout handling. Always delay updates
+ a bit. Schedule updates as G_PRIORITY_DEFAULT_IDLE. And, set delay
+ as the number of lines, in milliseconds.
+
+2006-02-14 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq-gen.c (main): Return 0. (bug #331178)
+
+2006-02-14 Behdad Esfahbod <behdad gnome org>
+
+ * gnome-pty-helper/gnome-pty-helper.c (main): Use getpwnam to
+ correctly log multiple users with the same UID. (bug #319564,
+ patch from Laszlo (Laca) Peter.
+
+2006-02-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (update_timeout): Only discontinue timer if nothing
+ was updated in the last cycle.
+
+2006-02-13 Behdad Esfahbod <behdad gnome org>
+
+ * gnome-pty-helper/gnome-pty-helper.c: Fix race condition when
+ shutdown_helper may be called again from the signal handler when
+ it's already running. (bug #331056)
+
+2006-02-13 Behdad Esfahbod <behdad gnome org>
+
+ * configure.in: Do not prepend X_LIBS and X_CFLAGS to LIBS and
+ CFLAGS. (bug #331021, Sylvain BERTRAND)
+
+2006-02-13 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (vte_terminal_key_press): Handle Ctrl+Shift+Insert to
+ paste PRIMARY.
+
+2006-02-11 Behdad Esfahbod <behdad gnome org>
+
+ Released vte-0.11.18.
+
+ * NEWS: Updated.
+
+ * configure.in: Bumped version to 0.11.18.
+
+2006-02-11 Behdad Esfahbod <behdad gnome org>
+
+ * src/iso2022.c: Change INVALID_CODEPOINT from 0xFFFF to 0xFFFD.
+ (bug #317235, Egmont Koblinger)
+
+2006-02-11 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_invalidate_cells): Guard more against off values.
+
+2006-02-10 Behdad Esfahbod <behdad gnome org>
+
+ Update the build infrastructure. make distcheck works now!
+
+ * autogen.sh: Use a generic autogen.sh that uses gnome-common.
+
+ * configure.in: Simplify gtk-doc stuff. Update to newer syntax.
+
+ * Makefile.am, src/Makefile.am, doc/reference/Makefile.am: Updated.
+
+2006-02-10 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c (_vte_invalidate_cells): Throttle invalidating to at most
+ 40 times per second, using a timeout.
+
+2006-02-10 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteseq.c: Removed the huge sequence handler table. Changed to
+ use the compact tables in vteseq-table.h.
+
+ * src/vteseq-gen.c: Generator containing the table removed from above,
+ that generates compact tables.
+
+ * src/vteseq-table.h: Table generated by above. Can be regenerated
+ using make.
+
+ * src/Makefile.am: Adjusted.
+
+ * src/vteapp.c: Set default font to Monospace instead of Sans.
+
+2006-02-10 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Allocate terminal->pvt using GObject private data.
+
+2006-02-10 Behdad Esfahbod <behdad gnome org>
+
+ Moved all sequence handler codes into a separate file.
+
+ * src/vte.c: Stuff moved to other files.
+
+ * src/vte-private.h: Includes all struct definitions from vte.c.
+
+ * src/vteseq.c, src/vteseq.h, src/vteseq-list.h: The sequence
+ handlers are all here now.
+
+2006-02-09 Behdad Esfahbod <behdad gnome org>
+
+ * src/vteapp.c: Make a couple debug messages conditional on
+ DEBUG_MISC.
+
+2006-02-03 Behdad Esfahbod <behdad gnome org>
+
+ * src/vte.c: Warning cleanup. A couple were actually bugs.
+
+ * src/vteapp.c: No need to run $SHELL by default. Handled
+ by vte.c now. A bug was causing nothing to be run...
+
+2006-02-03 Behdad Esfahbod <behdad gnome org>
+
+ * src/debug.c, src/debug.h, src/matcher.c: Add the debug
+ flag TRIE for printing out the trie (previous was using
+ MISC.)
+
+ * src/vte.c (vte_invalidate_cells): Update row_count and
+ column_count when clamping their respective _start values.
+
+ * src/vte.c (vte_terminal_extend_selection, _vte_terminal_select_text):
+ Pass row_count to vte_invalidate_cells(), instead of row_stop.
+
+ * src/vteapp.c: Run $SHELL by default.
+
+2006-02-01 Behdad Esfahbod <behdad gnome org>
+
+ * doc/reference/tmpl/internals.sgml: Added to CVS.
+
+ * vte/src/vte.c: Fix selection vs. primary that have been
+ borked forever. Closes bug #123844.
+
+2006-01-30 Guilherme de S. Pastore <gpastore gnome org>
+
+ * src/trie.c: applied patch from Tomas Mraz to fix a double
+ free. Closes bug #161337.
+
+2006-01-30 Erdal Ronahi <erdal ronahi gmail com>
+
+ * configure.in: added ku (Kurdish) to ALL_LINGUAS
+
+2006-01-28 Guilherme de S. Pastore <gpastore gnome org>
+
+ * src/Makefile.am: add -DG_DISABLE_ASSERT to CFLAGS.
+
+ * NEWS: updated.
+
+ * vte.spec: bumped version to 0.11.17.
+
+2006-01-28 Guilherme de S. Pastore <gpastore gnome org>
+
+ * src/vte.c: only try to guess the user's shell when actually
+ forking, so we avoid unnecessary work if the application
+ already has to do that itself.
+
+2006-01-15 Guilherme de S. Pastore <gpastore gnome org>
+
+ * src/: applied patch from Kjartan Maraas that replaces g_return
+ functions with g_assert. Should give an 8% speed boost.
+
+2006-01-14 Guilherme de S. Pastore <gpastore gnome org>
+
+ * doc/reference/Makefile.am: install more than *.html, based on the
+ patch from Ed Catmur. Closes bug #321909.
+
+2006-01-14 Olav Vitters <olav bkor dhs org>
+
+ * src/caps.c: Support save and restore cursor position using \033[s
+ and \033[u. Reported by Dag Wieers. Fixes bug 170032.
+
+2005-12-31 Olav Vitters <olav bkor dhs org>
+
+ * vte.pc.in: Backup patch from Steve Langasek. It needs pkg-config
+ changes.
+
+2005-12-12 Kjartan Maraas <kmaraas gnome org>
+
+ * vte.pc.in: Cleanups for the pkg-config file.
+ Patch from Steve Langasek. Closes bug #322240.
+
+2005-12-12 Kjartan Maraas <kmaraas gnome org>
+
+ * python/vte.override: python-vte seems to have a small bug in
+ the override file that prevents the forkpty() method to be generated.
+ The attached patch fixes this problem. Patch from Michael Vogt.
+ Closes bug #169201.
+
+2005-11-30 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_preedit_length): Remove some
+ unused code.
+ (vte_terminal_process_incoming): Don't emit signals for every
+ character that's output. Patch from Padraig O'Briain. Huge
+ performance gain when a11y is activated.
+
+2005-11-16 Timur Jamakeev <timurj cvs gnome org>
+
+ * confgiure.in: Added 'ky' to ALL_LINGUAS
+
+2005-11-08 Kjartan Maraas <kmaraas gnome org>
+
+ * NEWS: Update.
+ * Makefile.am:
+ * autogen.sh:
+ * configure.in:
+ * python/Makefile.am:
+ I'm attaching a patch that modernizes the python binding
+ build stuff. Notably, it excludes python/vte.c from the dist.
+ Right now as it stands, the file is disted, which means people's
+ builds will not work unless they build against pygtk 2.8,
+ which makes this bug somewhat important. Patch from Manish Sing
+ Closes bug #320931.
+
+2005-11-01 Bill Haneman <billh gnome org>
+
+ * src/vteaccess.c:
+ (vte_terminal_accessible_get_text):
+ Swap offsets if start > end; fixes crasher
+ bug #153405. Patch from padraig o'briain,
+ thanks to Kjartan for review.
+
+2005-10-02 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vtebg.c: (_vte_property_get_pixmaps):
+ * src/vterdb.c: (_vte_property_get_string):
+ Fix gdk warnings. Patch from Michele Baldessari.
+ Closes bug #309025.
+
+2005-09-16 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vtexft.c: (_vte_xft_font_for_char): Optimize memory
+ usage by releasing fonts that aren't needed early. Patch
+ from Mike Hearn. Closes bug #309322.
+
+2005-08-13 Kjartan Maraas <kmaraas gnome org>
+
+ * gnome-pty-helper/gnome-pty-helper.c: (init_msg_pass):
+ Make VTE work on NetBSD, OpenBSD (sparc and macppc).
+ Reported by Adrian Bunk, patches by Dan Winship and
+ Rich Edelman. Closes bug #126554.
+
+2005-08-12 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vtetc.c: (_vte_termcap_destroy): Don't crash
+ if there's no termcap file. Michele Baldessari
+ Closes bug #312260.
+
+2005-08-12 Kjartan Maraas <kmaraas gnome org>
+
+ * configure.in: Correct test for recvmsg(). Patch from
+ Robert Basch. Closes bug #304815 and possibly bug #122055.
+
+2004-08-10 Kjartan Maraas <kmaraas gnome org>
+
+ Patch from: Padraig O'Briain <padraig obriain sun com>
+ Closes bug #113590.
+
+ * src/vte.c, src/vteint.h:
+ Add new functions to support accessible text selection:
+ _vte_terminal_get_selection, _vte_terminal_get_start_selection,
+ _vte_terminal_get_end_selection, _vte_terminal_select_text,
+ _vte_terminal_remove_selection
+ * src/vteaccess.c:
+ (xy_from_offset): Fix for offset being entire text.
+ (vte_terminal_accessibility_selection_changed): VteTerminal's
+ selection-changed signal handler which emits text-selection-changed
+ signal.
+ (vte_terminal_accessible_initialize): Connect to VteTerminal's
+ selection-changed signal.
+ (vte_terminal_accessible_get_n_selections) Add implementation.
+ (vte_terminal_accessible_get_selection) Add implementation.
+ (vte_terminal_accessible_add_selection) Add implementation.
+ (vte_terminal_accessible_remove_selection) Add implementation.
+ (vte_terminal_accessible_set_selection) Add implementation.
+
+2005-08-05 Kjartan Maraas <kmaraas gnome org>
+
+ * gnome-pty-helper/gnome-pty-helper.c: (exit_handler), (main):
+ Clean up utmp/wtmp under vncserver if things fall apart under
+ the terminal. (Dave Lehman). Closes bug #312373
+
+2005-07-26 Michele Baldessari <michele pupazzo org>
+
+ * python/vte.override (_wrap_vte_terminal_set_colors):
+ pyg_boxed_get should be on item not py_palette.
+ Reported with fix by Ethan Glasser-Camp <glasse rpi edu>
+ Closes bug #311570
+
+2005-07-25 Michele Baldessari <michele pupazzo org>
+
+ * src/vtepango.c (_vte_pango_create): Initialize
+ PangoContext * data->ctx with NULL. Closes bug #126262
+
+2005-07-21 Danilo Šegan <danilo gnome org>
+
+ Fixes #149925.
+
+ * src/vte.c (vte_terminal_io_read): Added simple comment for
+ translators.
+
+2005-07-07 Matthias Clasen <mclasen redhat com>
+
+ * src/vte.c (vte_terminal_unrealize): Unset the user data
+ on the gdk window.
+
+2005-06-15 Theppitak Karoonboonyanan <thep linux thai net>
+
+ * configure.in: Added 'th' (Thai) to ALL_LINGUAS.
+
+2005-06-11 Kjartan Maraas <kmaraas gnome org>
+
+ * NEWS: Update some.
+ * doc/reference/tmpl/reaper.sgml:
+ * doc/reference/tmpl/vte-unused.sgml:
+ * doc/reference/tmpl/vte.sgml:
+ * doc/reference/tmpl/vteaccess.sgml: Docs updates.
+ * src/vte.c: (vte_terminal_init), (vte_terminal_finalize),
+ (vte_terminal_get_accessible), (vte_terminal_class_init):
+ Apply patch from Padraig O'Briain <padraig obriain sun com>
+ to fix a crash. Closes bug #119913.
+
+2005-06-09 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_style_changed):
+ Fix a crash when reparenting. Closes bug #169326.
+ Patch from Michele Baldessari.
+
+2005-06-05 Ignacio Casal Quinteiro <nacho resa gmail com>
+
+ * configure.in: Added 'gl' to ALL_LINGUAS.
+
+2005-04-29 Kjartan Maraas <kmaraas gnome org>
+
+ * src/table.c: (_vte_table_literal_new), (_vte_table_free),
+ (_vte_table_addi), (_vte_table_matchi), (_vte_table_match),
+ (_vte_table_printi): Final bits of the memory reduction patch
+ from Aivars Kalvans. bug #160993 comment #9
+ * src/vte.c: (vte_terminal_scroll_region): Patch from Egmont
+ Koblinger to fix some scrolling issues. bug #164153
+ * vte.spec: Bump version.
+
+2005-04-07 Abduxukur Abdurixit <abduxukur abdurixit t-systems ch>
+
+ * configure.in: Added "ug" to ALL_LINGUAS.
+
+2005-04-01 Adi Attar <aattar cvs gnome org>
+
+ * configure.in: Added "xh" to ALL_LINGUAS.
+
+2005-03-31 Steve Murphy <murf e-tools com>
+
+ * configure.in: Added "rw" to ALL_LINGUAS.
+
+2005-03-29 Kjartan Maraas <kmaraas gnome org>
+
+ * autogen.sh: Use head -n 1 instead of head -1 to avoid
+ warning about the latter being deprecated in newer versions.
+ Reported by Ali Akcaagac. Closes bug #156022.
+ * vte.spec: Bump version
+
+2005-03-16 Manish Singh <yosh gimp org>
+
+ * python/vtemodule.c: Remove stray underscores so python module
+ works again. Fixes bug #150760.
+
+2005-03-14 Kjartan Maraas <kmaraas gnome org>
+
+ * src/Makefile.am:
+ * src/interpret.c: (main):
+ * src/matcher.c: (_vte_matcher_add), (_vte_matcher_init),
+ (_vte_matcher_create), (_vte_matcher_destroy), (_vte_matcher_new),
+ (_vte_matcher_free):
+ * src/matcher.h:
+ * src/vte.c: (vte_terminal_set_emulation), (vte_terminal_init):
+ * src/vtetc.c: (_vte_termcap_create), (_vte_termcap_destroy),
+ (_vte_termcap_new), (_vte_termcap_free):
+ * src/vtetc.h: Add patch for excessive memory consumption when
+ opening new tabs. This patch makes struct _vte_matcher and
+ struct _vte_termcap shared between terminals and should reduce
+ memory consumption with multiple tabs a lot. Patch from Aivars
+ Kalvans <kalvans at inbox lv>. From bug #160993.
+
+2005-03-14 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_scroll_region),
+ (vte_sequence_handler_al), (vte_sequence_handler_dl),
+ (vte_sequence_handler_sr), (vte_sequence_handler_insert_lines),
+ (vte_sequence_handler_delete_lines), (vte_terminal_handle_scroll):
+ Back out one of the fedora patches since it apparently causes
+ screen corruption for some users. It was rumored to have issues
+ from the start, so...
+
+2005-03-02 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_process_incoming): Fix the
+ crash in minicom when resizing the window. Closes
+ bug #163814. Also adjust the coalesce and display timeouts.
+ This makes g-t and xterm behave just about the same visually
+ but g-t is still a bit faster when using the same font and
+ utf8.
+
+2005-03-02 Kjartan Maraas <kmaraas gnome org>
+
+ * src/Makefile.am: Add vtetree.[ch]
+ * src/vte.c: (vte_terminal_draw_row): Don't use a GArray
+ but use calloc'ed memory to speed up things further.
+ From bug #137864. Patch from Benjamin Otte.
+ * src/vtetree.c: (_vte_tree_new), (_vte_tree_destroy),
+ (_vte_tree_insert), (_vte_tree_lookup): New file
+ * src/vtetree.h: New file
+ * src/vtexft.c: (_vte_xft_font_open), (_vte_xft_font_close),
+ (_vte_xft_font_for_char), (_vte_xft_char_width): Use the new
+ functions to speed up things. From bug #137864. Patch from
+ Benjamin Otte. There are still two patches in there that don't
+ apply cleanly any more. Will look at those later.
+ * vte.spec: Bump version.
+
+2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_sequence_handler_send_primary_device_attributes):
+ Patch from Mariano to make vte claim to be the right type terminal.
+ Closes bug #130671.
+
+2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/iso2022.c: (_vte_iso2022_is_ambiguous),
+ (_vte_iso2022_find_nextctl):
+ * src/uniwidths:
+ * src/vte.c: (vte_terminal_catch_child_exited), (vte_terminal_eof),
+ (vte_terminal_process_incoming), (vte_terminal_feed),
+ (vte_terminal_init), (vte_terminal_finalize), (vte_terminal_reset),
+ (add_display_timeout), (add_coalesce_timeout),
+ (remove_display_timeout), (remove_coalesce_timeout),
+ (vte_terminal_stop_processing), (vte_terminal_start_processing),
+ (vte_terminal_is_processing), (display_timeout),
+ (coalesce_timeout):
+ * src/vtexft.c: (_vte_xft_drawcharfontspec), (_vte_xft_draw_text):
+ Apply fix from Fedora package for performance problems. Closes
+ bug #143914. Patch was written by Søren Sandmann.
+
+2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_scroll_region): Fix for
+ problem with redrawing when scrolling back then forward
+ Closes bug #122150. Patch from Benjamin Otte.
+
+2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_unrealize): Fix a crash
+ when trying to use input methods. From Fedora.
+ Closes bug #168213.
+
+2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_scroll_region),
+ (vte_sequence_handler_al), (vte_sequence_handler_dl),
+ (vte_sequence_handler_sr), (vte_sequence_handler_insert_lines),
+ (vte_sequence_handler_delete_lines), (vte_terminal_handle_scroll):
+ Another patch from fedora. Make sure the screen is fully redrawn
+ before scrolling. Apparently this patch has some issues, but those
+ were found to be small enough to apply in Fedora, so I guess
+ the same holds true here. Closes bug #168212
+
+2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/iso2022.c: (_vte_iso2022_process): Apply another
+ patch from Fedora. This should fix some screen corruption
+ with multibyte charsets. Closes bug #168211 and possibly
+ others.
+
+2005-02-28 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_adjust_adjustments),
+ (vte_terminal_maybe_scroll_to_bottom),
+ (vte_terminal_update_insert_delta), (vte_terminal_handle_scroll),
+ (vte_terminal_set_scroll_adjustment), (vte_terminal_size_allocate):
+ Apply patch from Fedora to fix some scrolling issues. Closes
+ bug #168210 and possibly others.
+
+2005-02-15 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vte.c: (vte_terminal_visibility_notify): Fix black
+ backgrounds in new terminals. Fix from Jon Nettleton
+ <nettleton at gmail com>. Closes bug #125364. Has been
+ in Fedora Core for months already.
+
+2005-02-15 Kjartan Maraas <kmaraas gnome org>
+
+ * src/keymap.c: (_vte_keymap_map): Fix keypad behaviour
+ to be like xterm. Closes bug #128099. Fix is from
+ <jylefort at brutele be> and has been used in Fedora the last
+ three months at least.
+
+2005-02-15 Kjartan Maraas <kmaraas gnome org>
+
+ * src/vteregex.h: Don't include <config.h> here. It breaks
+ building on AIX and can cause problems for l10n. Closes
+ bug #161352.
+
+2005-02-15 Kjartan Maraas <kmaraas gnome org>
+
+ * src/dumpkeys.c: Fix build on NetBSD and Darwin.
+ Patch from Adrian Bunk <bunk at stusta de>. Closes
+ bug #126377.
+
+2004-12-07 Rajesh Ranjan<rranjan redhat com>
+ * configure.in: included the hi locale in ALL_LINGUAS
+2004-11-16 nalin
+ * src/vte.c(vte_terminal_io_read,vte_terminal_io_write): silence a
+ couple of warnings by expecting a GIOCondition instead of a
+ GtkInputCondition as a parameter.
+
+2004-11-16 nalin
+ * autogen.sh: accept more, newer versions of autoconf/automake. Treat
+ autoconf >= 3 as acceptable instead of just > 3.
+
+2004-11-16 nalin
+ * src/vte.c(vte_terminal_sequence_handler_scroll_up_or_down): add.
+ * src/vte.c(vte_terminal_sequence_handler_scroll_up_once): add.
+ * src/vte.c(vte_terminal_sequence_handler_scroll_down_once): add.
+ * src/vte.c(vte_terminal_sequence_handler_scroll_up): add.
+ * src/vte.c(vte_terminal_sequence_handler_scroll_down): add.
+ * src/table.c(_vte_table_addi): expand "%m" locally so that we can
+ distinguish between control sequences which differ only in the number
+ of numeric arguments they expect. This means we have a new upper
+ limit on the length of a numeric argument list we'll recognize.
+ * src/caps.c(_vte_xterm_capability_strings): remove alternates for
+ strings which include '%m' as a specifier -- that's handled at the
+ matching layer now.
+ * src/vte.c(vte_terminal_paste_cb): drop the supplied data if it isn't
+ valid UTF-8 (Red Hat #119099).
+ * src/keymap.c(_vte_keymap_map): try xterm variants if we're xterm, not
+ the other way around.
+
+2004-08-18 David Lodge <dave cirt net>
+
+ * configure.in: Added "ang" to ALL_LINGUAS.
+
+2004-08-18 Kjartan Maraas <kmaraas gnome org>
+
+ * configure.in: Added «nb» to ALL_LINGUAS.
+
+2004-08-16 Christian Rose <menthos menthos com>
+
+ * configure.in: Added "bs" to ALL_LINGUAS.
+
+2004-08-13 Gora Mohanty <gmohanty cvs gnome org>
+
+ * configure.in: Added "or" to ALL_LINGUAS.
+
+2004-07-17 Dinesh Nadarajah <dinesh_list sbcglobal net>
+
+ * ta.po: Added tamil Translation
+
+2004-05-02 nalin
+ * src/reaper.c(vte_reaper_add_child): pass the global reaper in as
+ data when adding the child source, not the terminal which called us.
+ Stop accepting a data argument, because we'd discard it anyway. Return
+ the ID of the source which is added, if that happens.
+ * configure.in: define VTE_INVALID_SOURCE for internal use.
+
+2004-05-01 nalin
+ * README: add pointers to info on bidirectional text and shaping.
+
+2004-05-01 nalin
+ * src/vte.c(vte_terminal_get_text_maybe_wrapped): add a parameter to
+ control whether or not trailing whitespace is trimmed (padraig.obriain,
+ #141148).
+ * src/vte.c,src/vte.h(vte_terminal_get_text_include_trailing_spaces):
+ add as a wrapper for the new vte_terminal_get_text_maybe_wrapped()
+ (padraig.obriain, #141148).
+ * src/vteaccess.c(vte_terminal_accessible_update_private_d): use
+ vte_terminal_get_text_include_trailing_spaces to ensure that we get
+ trailing spaces (padraig.obriain, #141148).
+ * src/vte.c(vte_terminal_insert_char): clean up some autowrap stuff.
+
+2004-04-30 nalin
+ * vte.pc.in, vte-uninstalled.pc.in: declare the defaultemulation
+ variable as one kind of variable, not that other kind (#141515).
+
+2004-04-30 nalin
+ * src/vte.c(vte_terminal_button_release): complete selection if we were
+ selecting, not just if Shift is held down (allows Press Shift, Press
+ Button, Release Shift, Release Button in addition to already-recognized
+ Press Shift, Press Button, Release Button, Release Shift) (#121905).
+ * vte.spec: buildrequire gtk-doc, manually copy png images at
+ install-time.
+
+2004-04-29 nalin
+ * src/vte.c, NEWS, doc/reference/vte-sections.txt,
+ doc/reference/tmpl/vte-unused.sgml: documentation updates.
+ * doc/reference/tmpl/reaper.sgml: note that we just proxy for glib 2.4
+ child_watch functionality, if present.
+
+2004-04-29 nalin
+ * python/vte.defs: include get_default_emulation binding.
+
+2004-04-29 nalin
+ * vte.spec: update version to 0.11.11
+
+2004-04-29 nalin
+ * src/vte.c(vte_terminal_unrealize): don't unref our accessible peer;
+ it may be accessed while we're unrealized, causing it to be destroyed
+ and re-created needlessly (#128049).
+ * src/vte.c(vte_terminal_finalize): unref our accessible peer.
+
+2004-04-29 nalin
+ * src/vte.c(vte_terminal_finalize): don't clear the child's PID early,
+ so that we'll SIGHUP it properly (the kernel should do that anyway,
+ but...) (#128291).
+
+2004-04-29 nalin
+ * src/vte.c(vte_terminal_insert_char): only deselect the current
+ selection if just-inserted text affected the selected region of the
+ screen (#135259).
+
+2004-04-29 nalin
+ * README: assorted updates.
+ * configure.in: check for <sys/termios.h>
+ * src/pty.c: include <sys/termios.h> if found (#141392).
+ * src/dumpkeys.c, src/mev.c, src/pty.c, src/ssfe.c, src/vte.c: do the
+ same.
+ * doc/reference/vte-sections.txt: add several functions which are new
+ but which weren't in the generated docs.
+ * doc/reference/vte-unused.txt: sort.
+
+2004-04-29 nalin
+ * src/vte.c(vte_terminal_scroll_region): remove stray debug printfs.
+
+2004-04-29 nalin
+ * configure.in: add a --with-default-emulation argument (part of
+ #115750). Use AS_HELP_STRING wherever we need help strings.
+ * vte.pc.in, vte-uninstalled.pc.in: add DefaultEmulation variable
+ * vte.spec: specify "xterm" as the default-emulation, even though it's
+ the default default
+ * termcaps/Makefile.am: build and install the default emulation's
+ termcap, assuming it's some kind of xterm variant.
+ * src/keymap.c(_vte_keymap_map): check for xterm-xfree86 definitions
+ if the terminal type includes xterm, not if it exactly matches xterm
+ * src/reaper.c(vte_reaper_add_child): add. The glib 2.4 SIGCHLD
+ watcher requires us to register particular PIDs for monitoring, so now
+ we require applications to do so.
+ * src/reaper.c(vte_reaper_child_watch_cb): add.
+ * src/reaper.c(vte_reaper_init): Don't hook the SIGCHLD handler if
+ we're running under glib 2.4, expect to use the g_child_watch
+ mechanism.
+ * src/vte.c: remove hard-coded definition of VTE_DEFAULT_EMULATION,
+ to be picked up from config.h instead.
+ * src/vte.c(vte_sequence_handler_cs): remove stray debug printfs.
+ * src/vte.c(vte_terminal_insert_char): only do what we were doing for
+ xn if LP was also set (#141445).
+ * src/vte.c(vte_terminal_get_default_emulation): add.
+ * src/vte.c(_vte_terminal_fork_basic): call vte_reaper_add_child for
+ new children.
+
+2004-04-27 nalin
+ * src/vte.c(vte_terminal_fork_command): more clearly document what
+ the argv and envv arguments are expected to contain (#127979).
+ * src/vte.c(vte_terminal_insert_char): attempt to more closely match
+ the behavior of am and xn on terminals -- if am is set {if xn is set,
+ autowrap should only happen before a character is output, and then only
+ if it's a graphic character, otherwise we autowrap after a character is
+ output}
+
+2004-04-21 nalin
+ * src/vte.c(vte_terminal_get_text_range_maybe_wrapped): also trim back
+ lines which are nothing but whitespace (#140765).
+ * src/vte.c(vte_terminal_configure_toplevel): invalidate the whole
+ window if we're "transparent", because we don't get expose events
+ unless some portion of our area came out from behind something else,
+ but we still need to repaint it (#122243).
+
+2004-04-20 nalin
+ * doc/reference/tmpl/reaper.sgml: document the child-exited signal.
+ * doc/reference/tmpl/vte.sgml: document the emulation-changed and
+ encoding-changed signals.
+
+2004-04-20 nalin
+ * Makefile.am: add rule for generating vte-uninstall.pc (Gman, #136129)
+ * vte-uninstalled.pc.in: add (Gman, #136129)
+
+2004-04-19 nalin
+ * src/vte.c(vte_terminal_key_press): don't steal keys from the input
+ method.
+
+2004-04-19 nalin
+ * src/pty.c(_vte_pty_set_utf8): toggle the IUTF8 flag, if
+ it was defined at compile-time (maybe for #129317).
+ * src/vte.c(vte_terminal_set_encoding): call _vte_pty_set_utf8.
+ * src/vte.h (vte_terminal_anti_alias_get_type): declare.
+ * src/vtebg.c(vte_bg_get_pixmap): Optimisation to fix the ridiculous
+ amount of time required to render solid colour or extremely small
+ image tiled backgrounds. This fixes bug #123903. (desrt)
+ * src/vtebg.c(vte_bg_root_pixmap): move resize code into a separate
+ function.
+ * src/vtebg.c(vte_bg_get_pixmap): Resize all image sources, in case
+ we're using a very small image file for the background.
+
+2004-04-19 nalin
+ * python/Makefile.am: move python module to site-packages/gtk-2.0,
+ which is added to the search path only by pygtk 2 (#92252).
+
+2004-04-19 nalin
+ * python/vte.override: define a modulename override so that the
+ Terminal class is registered in the proper namespace so that python's
+ help() builtin sees the Terminal class (#130267).
+
+2004-04-19 nalin
+ * src/vte.c(vte_terminal_anti_alias_get_type): add, for the sake of
+ bindings.
+
+2004-04-19 nalin
+ * src/vte.c(vte_terminal_key_press): call GtkWidget's key_press_event
+ callback for keys, in case GtkWidget has pre-programmed behavior for
+ that key (#133878).
+ * configure.in, gnome-pty-helper/configure.in: quote names of defined
+ functions (#133222).
+ * configure.in: make compilation of gnome-pty-helper actually
+ conditional (#133077).
+ * src/vte.c(vte_terminal_process_incoming): Doh #132610, actually
+ call vte_terminal_emit_contents_changed() when the contents change.
+
+2004-04-19 nalin
+ * src/vte.h, src/vte.c (vte_terminal_set_font_full): Add (#134429).
+ * src/vteglyph.c(_vte_glyph_cache_set_font_description): take a
+ VteTerminalAntiAlias argument.
+ * src/vteft2.c, src/vtegl.c, src/pango.c, src/pango.x, src/vtexft.c
+ (*_set_text_font): take a VteTerminalAntiAlias argument.
+
+2004-04-19 Victor Zverovich <vitaut users sourceforge net>
+ * src/vte.h src/vte.c: Added default signal handlers to
+ VteTerminalClass (#137961). [NOTE: ABI change.]
+
+2004-04-19 nalin
+ * src/vte.c(vte_terminal_configure_toplevel): don't re-invalidate
+ everything, apparently unnecessary (#122243). Might need to back this
+ out if I ever remember what specific combination of software and
+ versions prompted its addition in the first place.
+ * src/vte.c(vte_terminal_class_init): tell gettext that messages
+ retrieved from this domain should be returned in UTF-8 (#139542).
+
+2004-04-19 nalin
+ * configure.in: don't disable use of deprecated APIs unless asked
+ to do so.
+ * src/keymap.c(_vte_keymap_GDK_space): add Meta case (gafton).
+ * src/vtefc.c(_vte_fc_width_from_pango_stretch): add.
+ * src/vtefc.c(_vte_fc_transcribe_from_pango_font_description): handle
+ PangoStretch characteristics using _vte_fc_width_from_pango_stretch.
+ * src/vteregex.c: add random comments.
+ * src/vte.c(VteTerminal): track the "xn" terminal attribute.
+
+2004-04-10 Guntupalli Karunakar <karunakar freedomink org>
+
+ * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.
+
+2004-03-20 Gareth Owen <gowen72 yahoo com>
+
+ * configure.in: Added en_GB to ALL_LINGUAS
+
+2004-03-10 Alexander Winston <alexander winston comcast net>
+
+ * configure.in: Added en_CA to ALL_LINGUAS.
+
+2004-03-04 Guntupalli Karunakar <karunakar freedomink org>
+
+ * configure.in: Added "pa" for Punjabi to ALL_LINGUAS.
+
+2004-02-07 Robert Sedak <robert sedak sk htnet hr>
+
+ * configure.in: Added "hr" (Croatian) to ALL_LINGUAS.
+
+2004-02-02 Martin Kretzschmar <m_kretzschmar gmx net>
+
+ * docs/reference/Makefile.am: use gtk-doc in xml-mode.
+
+ * docs/reference/vte-docs.sgml: sgml->xml, update to DocBook XML
+ 4.1.2 DTD (fixes Bug #132945)
+
+2004-02-02 Alastair McKinstry <mckinstry computer org>
+
+ * configure.in: Added 'ga' to ALL_LINGUAS
+ * po/ga.po: Added Gaeilge (Irish) translation.
+
+2004-01-27 Åsmund Skjæveland <aasmunds fys uio no>
+
+ * configure.in: Added 'nn' to ALL_LINGUAS
+ * po/nn.po: Added Norwegian Nynorsk translation.
+
+2003-12-20 Arafat Medini <lumina silverpen de>
+
+ * configure.in: Added Arabic Locale "ar" to ALL_LINGUAS
+
+2003-12-10 Tõivo Leedjärv <toivo linux ee>
+
+ * configure.in: Added et to ALL_LINGUAS.
+
+2003-12-06 Iñaki Larrañaga <dooteo euskalgnu org>
+
+ * configure.in: Added "eu" (Basque) to ALL_LINGUAS.
+
+2003-10-14 Christian Rose <menthos menthos com>
+
+ * configure.in: Added "ne" to ALL_LINGUAS.
+
+2003-10-07 Žygimantas Beručka <uid0 tuxfamily org>
+
+ * configure.in: Added "lt" to ALL_LINGUAS.
+
+2003-09-15 nalin
+ * src/vteapp.c: add options for exercising the cursor and highlight
+ colors.
+ * src/debug.c: flush output streams when we check if debugging is
+ enabled, because we'll probably output a string next.
+ * src/iso2022.c: don't print a zero-length string. Yay compiler
+ warnings.
+ * src/interpret.c: use g_print() instead of fprintf() to print.
+ * src/keymap.c,src/ssfe.c: include <stdarg.h>, hopefully fixing
+ bug #121880 (or not).
+
+2003-09-15 nalin
+ * python/vte.defs: add specs for set_color_cursor and
+ set_color_highlight.
+
+2003-09-15 nalin
+ * src/vte.h,src/vte.c: add vte_terminal_set_color_cursor.
+ * src/vte.h,src/vte.c: add vte_terminal_set_color_highlight (#69776).
+ * src/vte.c(vte_terminal_determine_colors): add parameters for
+ specifying if the cell being rendered is the cursor or is highlighted,
+ probably for being selected. If either flag is set, and we've been
+ given a color to use for the purpose by a caller, use the supplied
+ color, else use inverse colors.
+
+2003-09-15 nalin
+ * src/iso2022.c(process_control): don't reset the conversion state
+ when we hit an end-of-line. I wasn't reading RFC1468 closely enough,
+ as it states that each line begins in the same encoding as the end of
+ the previous line, and read "application should reset before end-of-
+ line" as "terminal resets at end-of-line" (bug #122156).
+
+2003-09-11 nalin
+ * src/vteapp.c: silence a compiler warning.
+
+2003-09-11 nalin
+ * README: ask for LC_* in addition to LANG if weird spacing errors
+ crop up.
+ * src/vteconv.c,src/vteconv.h: add wrappers for _vte_conv which weed
+ out some warnings.
+ * src/iso2022.c: use _vte_conv_cu instead of _vte_conv.
+ * src/trie.c: use _vte_conv_cu instead of _vte_conv.
+ * src/vte.c: give _vte_terminal_fudge_pango_colors a return type again.
+ * src/vtebg.c: ifdef out vte_bg_source_name, which is unused.
+ * src/vtebg.c,src/vterdb.c: wrap calls to gdk_property_get to weed out
+ some compiler warnings.
+
+2003-09-11 nalin
+ * src/vte.c(vte_terminal_draw_cells_with_attributes): properly resolve
+ colors and cell properties to drawing colors.
+ * src/vte.c(_vte_terminal_fudge_pango_colors): add a function for
+ mapping GTK+ white-on-black preedit text to default reverse-colored
+ text for the terminal.
+ * src/vte.c(_vte_terminal_translate_pango_cells): don't bother
+ doing anything with the attribute for a range if the list is NULL.
+ Fudge white-on-black text to default colors in reverse so that it
+ works when the terminal is in a black-on-white color scheme.
+
+2003-09-11 nalin
+ * src/vte.c(_vte_terminal_apply_pango_attr): map weight attributes to
+ the terminal's bold attribute.
+
+2003-09-11 nalin
+ * src/vte.c(_vte_terminal_map_pango_color): add.
+ * src/vte.c(vte_terminal_im_preedit_changed): don't discard the
+ attributes list for the preedit string -- save them.
+ * src/vte.c(vte_terminal_draw_cells_with_attributes): add.
+ * src/vte.c(vte_terminal_paint): use draw_cells_with_attributes to
+ use the preedit attributes list when drawing the preedit string. This
+ changes the way the preedit string is presented to the user, but it
+ now looks [more] like GTK+ suggests it should look, so it should be a
+ good change.
+
+2003-08-13 nalin
+ * src/caps.c: add sequences for linux-console-cursor-attributes, which
+ we'll ignore (bug #108232).
+
+2003-08-13 nalin
+ * configure.in: if we don't find the python headers (even if we found
+ python), disable compilation of python bindings (bug #116756). Make the
+ checks for python support sequential for easier maintenance.
+ * python/vte.defs: add def for vte_terminal_match_set_cursor_type. Make
+ the color argument to vte_terminal_set_background_tint_color const.
+ * python/vte.override(_wrap_vte_terminal_forkpty): add.
+ * python/vte.override(_wrap_vte_terminal_fork_command): don't leak envv.
+
+2003-08-13 nalin
+ * src/vte.c(vte_terminal_fork_command,vte_terminal_forkpty): doc update
+ to note that directory and envv can be NULL for both.
+
+2003-08-13 nalin
+ * src/vteapp.c(main): if -S is passed, use forkpty to start a child that
+ just counts until killed with Ctrl-C.
+
+2003-08-13 nalin
+ * doc/reference/vte-sections.txt: add vte_terminal_forkpty.
+ * src/pty.c(_vte_pty_run_on_pty): exit on any error, to avoid leaving
+ random unreaped children running. Accept NULL command indicating that
+ no exec() should occur, but still error out if command isn't NULL and
+ exec() fails.
+ * src/pty.c(_vte_pty_fork_on_pty_name,_vte_pty_fork_on_pty_fd): store
+ 0 as the new child's PID if we're the child.
+ * src/pty.c(main): don't run "tty" by default, test the forkpty() case
+ instead.
+ * src/vte.c(vte_terminal_fork_command): rename to
+ _vte_terminal_fork_basic. Remove code to replace NULL command with
+ the user's shell.
+ * src/vte.c(vte_terminal_fork_command): new! wrap
+ _vte_terminal_fork_basic, replacing a NULL command with the user's
+ shell.
+ * src/vte.c(vte_terminal_forkpty),src/vte.h: new! wrap
+ _vte_terminal_fork_basic, passing NULL for the command and argv
+ arguments (bug #116450).
+ * src/Makefile.am: update shared library version.
+
+2003-08-12 nalin
+ * configure.in: if <ft2build.h> isn't found, then we can't use any
+ freetype-specific bits, and that's not useful. Error out, and say
+ that we need freetype 2.0.2 or newer, which introduced this header
+ into the procedure (bug #116341).
+
+2003-08-12 nalin
+ * src/vte.c: don't create an accessible peer at init() time in
+ debug mode.
+ * gnome-pty-helper/gnome-pty-helper.c(struct pty_info): add a field to
+ keep track of whether or not we created a lastlog record.
+ * gnome-pty-helper/gnome-pty-helper.c(shutdown_pty): also try to
+ write a logout record if pi->lastlog is true, because in doing so we
+ free pi->data, closing a leak (bug #116091).
+
+2003-08-12 nalin
+ * src/vteapp.c(resize_window): don't add the padding in when calculating
+ the new window size.
+
+2003-08-12 nalin
+ * doc/reference/tmpl/vte.sgml: note that dimensions passed in with
+ the resize-window signal include padding (more of bug #119141).
+
+2003-08-12 nalin
+ * src/vte.c(vte_sequence_handler_character_attributes,
+ vte_sequence_handler_decset_internal): remove redundant type checks.
+ * src/vte.c(all signal handlers): return a boolean indicating whether
+ or not to exit the processing loop instance early to allow the
+ application to deal with some input (usually along the lines of a
+ signal requesting that the terminal be resized) (bug #118938).
+
+2003-08-12 nalin
+ * python/vte.override(get_text,get_text_range): reorder arguments to
+ match the order for the C versions (#118882).
+ * python/vte.override(get_text,get_text_range,call_callback): fix
+ refcounting and callback argument marshalling (bug #118882).
+ * python/vte-demo.py: exercise get_text() on "window-raise" signals.
+
+2003-08-12 Padraig O'Briain <padraig obriain sun com>
+
+ * src/vteaccess.c:
+ (vte_terminal_initialize): New function containing initialization code
+ previously in vte_terminal_accessible_new. Also set role in
+ this function.
+ (vte_terminal_accessible_class_init): Specify function pointer for
+ vte_terminal_initialize.
+ (vte_terminal_accessible_get_type): Do not set instance data size or
+ GInstanceInitFunc. Remove vte_terminal_accessible_init.
+
+ This fixes bug #119694.
+
+2003-08-11 nalin
+ * python/vte.override: add binding for get_padding() (bug #118834).
+
+2003-08-11 nalin
+ * python/vte.override: add binding for get_cursor_position()
+ (bug #118800).
+
+2003-08-11 nalin
+ * python/vte.defs: give length parameters for feed() and feed_child()
+ default values of -1 (bug #118711).
+ * python/vte.override: use the length parameter if it's supplied to the
+ feed() and feed_child() methods.
+
+2003-08-11 nalin
+ * python/vte.override: add overrides for feed() and feed_child()
+ methods which use the length of the string as given in C, to hopefully
+ allow passing NUL bytes around as part of strings (bug #118711). Make
+ the length parameter optional, and ignored, to try to avoid breaking
+ existing Python code in an obvious way.
+
+2003-08-11 nalin
+ * src/vte.c(vte_terminal_start_selection,vte_terminal_extend_selection):
+ drop an unnecessary cast-and-check, which we don't need because we have
+ no use for the GtkWidget pointer to the terminal. Fix initial shift-
+ click (bug #118106).
+
+2003-08-11 nalin
+ * configure.in: error out if we don't find ncurses, curses, or
+ libtermcap development headers (bug #117754).
+
+2003-08-11 nalin
+ * autogen.sh: export WANT_AUTOCONF_2_5 for the sake of Mandrake autoconf
+ wrapper (bug #119066).
+
+2003-08-05 nalin
+ * src/vte.c(vte_sequence_handler_decset_internal,
+ vte_sequence_handler_window_manipulation): include the widget's padding
+ widths in resize requests (bug #119141).
+
+2003-07-30 nalin
+ * autogen.sh: check for autoconf-2.51, autoconf-2.50, autoconf-2.5 when
+ looking for autoconf 2.5x (bug #118627).
+
+2003-07-21 nalin
+ * gnome-pty-helper/configure.in: define _XOPEN_SOURCE_EXTENDED,
+ _XOPEN_SOURCE, and __EXTENSIONS__ for Solaris, as we do in the top-level
+ configure (#117636).
+
+2003-07-16 nalin
+ * gnome-pty-helper/configure.in: check for grantpt in libc and then
+ in libpt. Check for openpty in libc before checking libutil. Check for
+ sendmsg in libc before checking libsocket (with libnsl) (#117636).
+
+2003-07-11 Pablo Saratxaga <pablo mandrakesoft com>
+ * configure.in: Added Walloon (wa) to ALL_LINGUAS
+
+2003-07-10 nalin
+ * src/vteregex.h, src/vteregex.c: add.
+ * src/vte.c: use interfaces from vteregex for doing dingus matching.
+
+2003-07-03 nalin
+ * src/vte.c(vte_sequence_handler_return_terminal_status): return an
+ empty string in response to the ENQ control sequence instead of "xterm".
+ Report and patch from Mariano Suárez-Alvarez (#116495).
+
+2003-06-27 nalin
+ * src/iso2022.c: treat the "big5hkscs" encoding as an East Asian
+ encoding, which uses ambiguous widths (#116078). Report and patch
+ from Roger So.
+ * src/dumpkeys.c, src/iso2022.c, src/iso8859mode.c, src/nativeecho.c,
+ src/utf8echo.c, src/utf8mode.c, src/vte.c: don't use the literal escape
+ character, express it as an octal sequence.
+
+2003-06-16 nalin
+ * src/caps.c: add vertical-tab and form-feed to the list of control
+ sequences.
+ * src/vte.c(vte_controL_sequence_handler_form_feed): add.
+ * src/vte.c(vte_controL_sequence_handler_vertical_tab): add.
+
+2003-06-16 nalin
+ * src/vteaccess.c(xy_from_offset): fix a compiler warning.
+
+2003-06-16 nalin
+ * src/vteint.h: add. Move private VteTerminal stuff which needs to be
+ shared with other modules in the library here.
+ * src/vtedraw.c, src/vtedraw.h: add get_char_width(), for use in drawing
+ the cursor.
+ * src/vte.c(vte_invalidate_cursor_once): if the character under the
+ cursor doesn't fit into its cell, expose the column to the right of
+ it so that we can paint into the adjacent cell.
+ * src/vte.c(vte_terminal_paint): when clearing the area behind the
+ cursor or drawing the hollow rectangle to indicate its position when
+ we don't have focus, use the visible width of the character instead
+ of just assuming it will fit. This complies better with assertion 2.
+
+2003-06-09 nalin
+ * src/vte.c(vte_terminal_set_encoding): set the encoding for the iso2022
+ converter (spotted by havill).
+
+2003-06-04 nalin
+ * src/vtebg.c, src/vterdb.c: sync the display before trapping errors
+ to ensure that any errors we'll get will be handled before we remove
+ the error handlers.
+
+2003-06-03 nalin
+ * src/vtebg.c(_vte_bg_get_pixmap, _vte_bg_get_pixbuf): trap X errors
+ while retrieving the contents of the root pixmap.
+ * doc/ambiguous.txt: add.
+ * README: update.
+ * vte.spec: rebuild.
+
+Tue Jun 3 15:50:38 2003 Jonathan Blandford <jrb redhat com>
+
+ * src/pty.c (n_read): add a missing break in the switch statement.
+
+2003-06-03 Kenneth Rohde Christiansen <kenneth gnu org>
+ * configure.in: Added Limburgish (li) to ALL_LINGUAS.
+
+2003-06-02 nalin
+ * src/Makefile.am: start using libtool versioning in earnest.
+
+2003-06-01 nalin
+ * src/vtegl.c(_vte_gl_set_text_font): compile fix.
+
+2003-05-30 nalin
+ * src/vte.c(vte_sequence_handler_decset_internal): fix logic for
+ skipping over particular settings so that setting 1048 actually works.
+ * src/vte.c(vte_terminal_process_incoming): in debug mode, print out
+ characters with codepoints higher than 255 in hex rather than decimal.
+ * src/iso2022.c(_vte_iso2022_ambiguous_width): rename to
+ _vte_iso2022_ambiguous_width_guess because that's all we can do without
+ more context.
+ * src/iso2022.c(_vte_iso2022_ambiguous_width): add for using the
+ current encoding to determine what the width of an ambiguously-wide
+ character should be. This seems to work better.
+
+2003-05-30 Padraig O'Briain <padraig obriain sun com>
+ * src/vteaccess.c: Add implementation for get_character_extents,
+ get_offset_at_point and get_run_attributes. This fixes bug #110770.
+ Add casts to fix complier warnings on Solaris.
+
+ * src/vtexft.c (_vte_xft_text_extents): Do not call return as function
+ returns void. Fixes compiler error on Solaris.
+
+2003-05-29 nalin
+ * src/vteapp.c: require -i for icon-title-changed messages, which got
+ really annoying really fast.
+ * src/trie.c(main): use g_quark_from_static_string for static strings.
+
+2003-05-29 nalin
+ * src/vte.c(vte_terminal_send): fix newline stuffing (used in linefeed
+ mode).
+ * src/vte.c(vte_unicode_strlen): rename to vte_unichar_strlen.
+ * src/vte.c(vte_terminal_set_title_internal): don't leak the new title
+ in the unlikely cases.
+ * src/vte.c(vte_terminal_process_incoming): be more careful with control
+ characters to avoid cases where we could be tricked into a loop.
+ * src/vteapp.c: emit a message when the icon title is changed.
+
+2003-05-29 nalin
+ * src/vte.c(vte_terminal_process_incoming): handle control characters
+ in the middle of control sequences.
+ * src/vte.c(vte_sequence_handler_cm): fix origin mode.
+ * src/vte.c(vte_sequence_handler_cv): fix origin mode.
+ * src/vte.c(vte_sequence_handler_cs): snap the cursor to the scrolling
+ region which is set.
+ * src/table.c(_vte_table_extract_number): extract a number digit by
+ digit as we do in the trie parser.
+ * src/vte.h: declare 'struct vte_char_attributes' again to restore API
+ back compat with 0.10.x.
+ * src/iso2022.c(_vte_iso2022_sequence_length): don't recognize PM
+ messages -- Xterm doesn't do anything with them and we don't want to
+ appear to hang when we're really just waiting for the end of the
+ message.
+
+2003-05-28 nalin
+ * src/vtefc.c(_vte_fc_defaults_from_rdb): only apply DPI if we were
+ able to get a value.
+ * src/vterdb.c, src/vterdb.h: use the display and screen of a passed-in
+ widget if asked to do so, else use screen 0 of the default display.
+
+2003-05-28 nalin
+ * configure.in: check for GTK+ 2.2, and if found, force use of
+ multihead-safe APIs to try to flush out some bugs.
+ * src/vte.c, src/vteapp.c, src/vtedraw.c, src/vtefc.c, src/vteglyph.c:
+ clean up some sloppy multihead changes.
+ * src/vte.c, src/vte.h (vte_terminal_match_set_cursor_type): add.
+ * src/vtedraw.c, src/vtedraw.h: add a draw_char() method which is
+ allowed to fail.
+ * src/vte.c(vte_terminal_draw_graphic): separate the width of a column
+ and the number of columns to be drawn. Use _vte_draw_char() to avoid
+ crude approximations of characters when we have a font for them.
+
+2003-05-21 nalin
+ * src/vte.c(vte_terminal_scroll_region): force an entire window repaint
+ if we're supposed to scroll the background but we're not scrolling the
+ entire window. This means we need to repaint the scrolled region, and
+ to keep things looking right, we need to repaint everything.
+ * src/vteapp.c(main): enable visible bell if we're disabling the
+ audible bell, and vice-versa.
+ * src/vte.c: flesh out some doc comments.
+ * doc/reference/tmpl/vte.sgml: flesh out some notes on signals.
+
+2003-05-21 nalin
+ * src/vteconv.c(_vte_conv): pass zero bytes which trigger EILSEQ
+ through and keep going.
+ * src/vteconv.c: replace use of g_utf8_strlen with an internal function
+ which doesn't stop counting at NUL characters.
+
+2003-05-21 nalin
+ * src/interpret.c: use _vte_matcher_free_params_array.
+ * src/vte.c(vte_invalidate_cursor_once): add a parameter for indicating
+ if this is a "cursor blink" (periodic) refresh, and if it is set and
+ the cursor isn't supposed to blink, suppress the invalidate.
+
+2003-05-21 nalin
+ * src/iso2022.c(_vte_iso2022_process): free the temporary array.
+ * src/matcher.c(_vte_matcher_free_params_array): add.
+ * src/vte.c: use _vte_matcher_free_params_array instead of the local
+ copy, which is removed.
+ * src/interpret.c, src/table.c, src/trie.c: use
+ _vte_matcher_free_params_array to free parameter arrays instead of
+ g_value_array_free, which doesn't take care of the pointer values.
+ * src/vte.c(vte_sequence_handler_set_title_internal): only attempt to
+ close the conversion descriptor if it was opened successfully.
+ * src/vteapp.c: add the -k option to spin after gtk_main() returns.
+ * src/vtefc.c: make copies of patterns with FcPatternDuplicate so that
+ we know where all of the returned patterns came from.
+ * src/vtexft.c(_vte_xft_font_for_char): set the item in the pattern
+ array to NULL if we successfully opened a font using the pattern.
+
+2003-05-20 nalin
+ * src/iso2022.c: clarify comments near one of the warning messages.
+ * src/vtefc.c(_vte_fc_transcribe_from_pango_font_description): unref
+ the Pango context, which was created for us.
+ * src/vtepango.c: keep track of the Pango context, and unref it when
+ it is no longer needed.
+
+2003-05-20 nalin
+ * src/Makefile.am: try juggling the CFLAGS and LIBS order to let the
+ xft CFLAGS/LIBS take precedence over everything else (#113335).
+
+2003-05-20 nalin
+ * src/ssfe.c: compile fix for Solaris, patch from #113344.
+
+2003-05-20 nalin
+ * src/vte.c: remove no-longer-used tree structure.
+ * src/vtefc.c: free strings returned by g_object_get().
+
+2003-05-20 nalin
+ * src/vte.c(vte_terminal_realize): create the terminal's draw structure.
+ * src/vte.c(vte_terminal_unrealize): free the terminal's draw structure.
+ * src/vteapp.c(main): enforce a clean shutdown by requiring that the
+ terminal and top-level window are both finalized before gtk_main()
+ returns.
+
+2003-05-20 nalin
+ * src/vte.c(vte_terminal_finalize): properly send a SIGHUP to the child
+ process if it hasn't already exited (#112505).
+ * src/vteapp.c: don't exit on EOF, only on child-exited.
+ * src/vte.c(vte_sequence_handler_sf): increment the scrolling offset
+ to avoid flickering when the application has defined a scrolling region
+ with top row == 1.
+
+2003-05-19 nalin
+ * src/iso2022.c, src/keymap.c, src/mev.c, src/vtebg.h, src/vteglyph.h:
+ remove comma from end of enum declaration (#111925).
+ * src/vtetc.c: don't use parameter-as-array-size compiler
+ extension (#111925).
+ * src/ssfe.c: don't assume that the compiler interprets \e correctly,
+ use %c with value of 27 instead (#111925).
+ * doc/reference/Makefile.am: obey CPPFLAGS and LDFLAGS (#111925).
+ * gnome-pty-helper/gnome-utmp.c: only include <utmp.h> if HAVE_UTMP_H
+ was defined (#111925).
+ * src/keymap.c, src/ssfe.c: unconditionally include <term.h> if we
+ defined HAVE_CURSES or HAVE_NCURSES, as having the header is a
+ precondition for defining either (#111925).
+ * src/iso2022.c: make each array have at least one element (#111925).
+ * src/pty.c, src/gnome-login-support.c: try to open /dev/ptc if opening
+ /dev/ptmx fails due to ENOENT (#111925).
+
+2003-05-19 nalin
+ * src/vteapp.c: don't exit on eof, just child-exited.
+ * src/vte.c(vte_terminal_eof): don't disconnect from SIGCHLD on eof,
+ the child might still be running.
+
+2003-05-19 nalin
+ * src/Makefile.am: change all instances of "termcap" to "vtetc".
+ * src/termcap.c, src/termcap.h: rename to vtetc.c, vtetc.h, to avoid
+ conflicts with system headers.
+
+2003-05-19 nalin
+ * src/keymap.c: fix KP_PageDown in application keypad mode (#113187).
+ * src/reaper.c: add a finalize method which properly cleans things up
+ so that the singleton can at least theoretically be destroyed (part of
+ a fix for #112172).
+ * src/vte.c: obtain a ref to a reaper object whenever we are waiting
+ for a child to exit.
+ * po/POTFILES.in: add more source files for scanning.
+ * src/iso2022.c: rework pieces to handle incomplete sequences at the
+ end of input. Check for 8-bit SS2 and SS3 in case of EILSEQ. Build
+ a fake ISO-8859-1 map for conversions using invalid maps.
+ * src/iso2022.c(_vte_iso2022_state_free): free the state's buffer.
+ * src/vteconv.c: internalize UTF-8 to UTF-8 conversions, fix handling
+ of incomplete sequences at the end of the available data.
+ * src/vte.c: implement send/receive and automatic linefeed modes.
+ * src/vte.c(vte_sequence_handler_sr): invalidate the row which contains
+ the cursor to ensure that it doesn't leave a trail.
+ * src/vte.c(vte_sequence_handler_return_terminal_id): add.
+ * src/vte.c(vte_terminal_feed_child_using_modes): add.
+
+2003-05-19 Telsa Gwynne <hobbit aloss ukuu org uk>
+
+ * configure.in: Add cy (Welsh) to ALL_LINGUAS
+
+2003-05-13 nalin
+ * src/iso2022.c(_vte_iso2022_find_nextctl): don't recognize 8-bit
+ SS2 and SS3 by default, it breaks UTF-8 and other encodings (#112879).
+
+2003-05-13 nalin
+ * src/vtedraw.c, src/vtedraw.h: add _vte_draw_needs_repaint() to
+ indicate if the drawing back-end can only handle entire-window paints.
+ * src/vteconv.c: return a value from _vte_conv_close(), even though
+ it isn't used.
+ * src/vte.c(vte_terminal_paint): don't look at drawing starting at
+ negative row or coumn offsets.
+ * src/vtegl.c: prefer glX double-buffering to GDK's, and use double-
+ buffered possibly-direct windows instead of indirect pixmaps.
+
+2003-05-12 nalin
+ * src/vtebg.c(_vte_bg_get_pixmap, _vte_bg_get_pixbuf): account for the
+ foreign root pixmap not having a colormap by default, using the root
+ window's colormap if it doesn't already have one set.
+
+2003-05-12 nalin
+ * src/iso2022.c(_vte_iso2022_state_new): if we can't convert from the
+ locale encoding to UTF-8, use UTF-8 as the locale encoding (#112614).
+ * src/vtegl.c(_vte_gl_start): enable point smoothing.
+
+2003-05-08 nalin
+ * src/vtedraw.c, src/vtedraw.h (_vte_draw_get_colormap): let the caller
+ control whether or not we return the default colormap.
+ * src/vtegl.c: enable blending. Don't specify any buffer depths. Set
+ the current drawable before we do any drawing. Call gluOrtho2D with
+ the right args to set up the right projection.
+ * src/vteskel.c: quiet compiler warning by removing a "const".
+ * src/vtedraw.c: juggle the preferred render order again.
+
+2003-05-08 Abel Cheung <maddog linux org hk>
+
+ * configure.in: Added "mk" to ALL_LINGUAS.
+
+2003-05-07 nalin
+ * src/iso2022.c: let OSC command sequences be subject to code
+ conversion again (#112485).
+
+2003-05-07 nalin
+ * src/vteconv.c, src/vteconv.h: add VteConv as a thin wrapper around
+ GIConv.
+ * src/iso2022.c: use VteConv.
+ * src/matcher.c(_vte_matcher_find_valid_encoding): remove.
+ * src/matcher.c(_vte_matcher_wide_encoding): remove.
+ * src/trie.c: use VteConv.
+ * src/utf8echo.c: use VteConv.
+ * src/vte.c: use VteConv (#112446).
+
+2003-05-06 nalin
+ * src/vte.c: add "Since: 0.11" to documentation for functions which
+ aren't available in the 0.10 series.
+ * src/iso2022.c: default G2 to JIS0201, G3 to JIS0212 for Japanese,
+ because they appear to not be used by anyone else.
+ * vte.spec: merge with .spec file from RHL.
+
+2003-05-06 nalin
+ * src/vtegl.c: get text rendering semi-working.
+
+2003-05-06 nalin
+ * src/vteft2.c, src/vtegl.c, src/vtepango.c, src/vtepangox.c,
+ src/vtexft.c: when setting up backgrounds, don't deref an existing
+ background before fetching a new one, in case they're the same.
+ * src/vteglyph.c(_vte_glyph_draw): fix computation of the input offset.
+ * src/vtegl.c: implement drawing of backgrounds.
+
+2003-05-06 nalin
+ * src/iso2022.c(_vte_iso2022_map_J): include the whole JIS0201 map
+ instead of just the lower half.
+ * src/iso2022.c(_vte_iso2022_map_get): set the and_mask to clear the
+ high bits of pairs before looking them up in the maps.
+ * src/iso2022.c(_vte_iso2022_fragment_input): recognize the 8-bit
+ versions of SS2 and SS3.
+ * src/iso2022.c(_vte_iso2022_process_control): recognize the 8-bit
+ versions of SS2 and SS3.
+
+2003-05-06 Danilo Šegan <dsegan gmx net>
+
+ * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS.
+
+2003-05-05 nalin
+ * src/debug.h: include <glib.h> for gboolean type definition.
+ * src/matcher.c: include "config.h" and "debug.h".
+ * src/matcher.h: use G_BEGIN_DECLS/G_END_DECLS
+ * src/table.h: use G_BEGIN_DECLS/G_END_DECLS
+ * src/termcap.h: include <glib.h>, again for gboolean.
+ * src/vtebg.h,src/vterdb.h,src/vtergb.h: adjust macro used to prevent
+ multiple inclusions to match the rest of the tree.
+ * src/vtefc.c(_vte_fc_patterns_from_pango_font_desc): provide a callback
+ which can be used to override all defaults.
+ * src/vtegl.h,src/vtexft.h: don't include "config.h"
+ * src/vteglyph.c, src/vteglyph.h: add _vte_glyph_get_uncached().
+
+2003-05-04 nalin
+ * gnome-pty-helper/gnome-login-support.c(n_read,n_write): if ERESTART
+ is defined, treat it like EINTR and EAGAIN.
+ * src/pty.c(n_read,n_write): if ERESTART is defined, treat it like
+ EINTR and EAGAIN.
+
+2003-05-02 nalin
+ * configure.in: define _XOPEN_SOURCE_EXTENDED, _XOPEN_SOURCE, and
+ __EXTENSIONS__ to get definitions for msg_control and msg_controllen
+ on Solaris (#112036).
+ * src/vtedraw.c(_vte_draw_set_scroll): don't try to return a value from
+ this void function (#112036). Patch from Hidetoshi Tajima.
+ * src/xticker.c: don't include getopt.h, which isn't even needed for
+ regular getopt() (#112036). Patch from Hidetoshi Tajima.
+
+2003-05-01 nalin
+ * src/vtebg.c(vte_bg_set_root_pixmap,vte_bg_root_pixmap): remove some
+ debugging g_print() calls.
+ * src/iso2022.c(process_cdata): skip over NUL bytes (#112022).
+ * src/vte.c(vte_terminal_background_update): map the bgcolor values to
+ a pixel value before setting the window background color.
+ * src/nativeecho.c(main): echo NUL bytes if asked to do so.
+
+2003-05-01 nalin
+ * src/vtebg.c, src/vtebg.h: add a singleton object for managing
+ copies of background images, either the desktop background, an
+ in-memory pixbuf, or an on-disk file, with tinting. Using a single
+ store for this stuff lets multiple widgets share images and should
+ reduce both CPU and memory consumption in applications which create
+ more than one VteTerminal instance with similar settings.
+ * src/vtedraw.c, src/vtedraw.h: adapt the set_background_pixbuf()
+ interface to the vtebg method and rename to set_background_image().
+ * src/vteft2.c, src/vtegl.c, src/vtepango.c, src/vtepangox.c,
+ src/vteskel.c, src/vtexft.c: update to work with newer vtebg/vtedraw
+ interfaces.
+ * src/vte.c(vte_terminal_filter_property_changes): remove in favor
+ of vtebg method. Manage background state for vtebg.
+
+2003-05-01 Kang Jeong-Hee <Keizi mail co kr>
+ * doc/reference/Makefile.am: s/index.sgml/index.html/.
+ There's no index.sgml in html directory, but a index.html.
+
+2003-04-29 nalin
+ * src/vte.c(vte_sequence_handler_local_charset): remove the unused
+ DEFAULT_ISO_8859_1 case.
+ * src/vte.c(vte_terminal_class_init): don't call
+ _vte_matcher_narrow_encoding(), because we don't need it any more.
+ Change the error message emitted when _vte_matcher_wide_encoding()
+ fails (#111925), and mark it for translation.
+ * src/trie.c(main): don't call _vte_matcher_narrow_encoding() just
+ to print its result.
+ * src/vte.c(vte_terminal_set_encoding): include the right codeset name
+ in the error message.
+ * src/vteglyph.c(_vte_glyph_get): mark error message for translation.
+ * src/matcher.c, src/matcher.h: remove _vte_matcher_narrow_encoding().
+ Make tables of strings "const".
+
+2003-04-29 nalin
+ * src/vte.c(vte_terminal_unrealize): set the IM context's client window
+ to NULL before unreferencing it to avoid crashes when preedit is active.
+
+2003-04-29 nalin
+ * src/keymap.c: add keymaps for GDK_slash and GDK_question (#108299).
+
+2003-04-29 nalin
+ * src/vterdb.c(_vte_rdb_get): use INT_MAX instead of LONG_MAX when
+ passing in the maximum length, because it's returned in an int.
+
+2003-04-29 nalin
+ * src/iso2022.txt: fix the UTF-8 sample text which corresponds to the
+ ISO-2022-KR sample text so that it actually matches the text.
+
+2003-04-29 nalin
+ * src/iso2022.c(_vte_iso2022_map_U): add map for CP437.
+ * src/unitable.CP437: add.
+ * src/mkunitables.sh: add CP437.
+ * src/Makefile.am: add unitable.CP437 to the file list.
+
+2003-04-29 nalin
+ * src/iso2022.c(_vte_iso2022_process_control): accept and warn about
+ bogus map names (#110300).
+
+2003-04-28 nalin
+ * src/vte.c(vte_invalidate_cursor_once): rework to simplify the logic
+ of how many cells to invalidate when we have a preedit string.
+ * src/vte.c(vte_terminal_paint): draw the preedit string correctly for
+ cases more complicated than the default IM (seems to fix #111767).
+ * src/vterdb.c(_vte_rdb_get): use g_strncpy() and the property length
+ to avoid going past the end of the possibly-not-nul-terminated string.
+ * src/Makefile.am: build a standalone vterdb binary.
+
+2003-04-28 nalin
+ * src/vte.c(vte_terminal_insert_char): add another flag to skip over
+ sanity-checking the buffer when adding characters.
+ * src/vte.c(vte_terminal_process_incoming): sanity-check the buffer
+ only when necessary to save time.
+ * src/vte.c(vte_terminal_scroll_region): invalidate the region which
+ is exposed when we scroll so that the entire cell gets redrawn, avoiding
+ clipping problems (#111683).
+ * src/vte.c(vte_terminal_paint): fix math for determining where to
+ stop drawing.
+ * src/vte.c(vte_terminal_fill_rectangle): rename to ..._int to reduce
+ confusion over which internal drawing commands are offset and which are
+ not.
+ * src/vte.c(vte_terminal_insert_char): if performing a single
+ substitution, check the encoded width of the output char, not the
+ input char, which doesn't have one.
+
+2003-04-28 nalin
+ * src/vterdb.c, src/vterdb.h: add routines for pulling Xft antialiasing
+ and hinting options from the resource database.
+ * src/vtefc.c(_vte_fc_patterns_from_pango_font_desc): apply settings
+ from the resource database after applying settings from GTK+.
+ * src/vtefc.c(_vte_fc_defaults_from_rdb): added, for adding default
+ settings based on the resource database.
+
+2003-04-27 nalin
+ * src/vtefc.c(_vte_fc_defaults_from_gtk): complain when the installed
+ version of GTK+ doesn't support reporting Xft antialiasing and hinting
+ settings.
+
+2003-04-25 nalin
+ * src/vte.c(vte_sequence_handler_sf): freeze the window when scrolling
+ down in a restricted scrolling area again.
+
+2003-04-23 nalin
+ * src/iso2022.c(_vte_iso2022_state_set_codeset): save the new codeset.
+ * src/iso2022.c(process_cdata): compare the new codeset to the name of
+ the UTF-8 codeset instead of the local codeset to see if we need to
+ notify callers of a change.
+
+2003-04-23 nalin
+ * src/vte.c(vte_sequence_handler_sf): don't use the window freeze count
+ to check if it's safe to scroll using gdk_window_scroll(), require other
+ parts of this widget to declare it unsafe for those cases.
+
+2003-04-23 nalin
+ * src/vtexft.c(_vte_xft_char_width): take an explicit XftFont instead
+ of figuring out which one to use ourselves.
+ * src/vtexft.c(_vte_xft_draw_text): pass the XftFont which we're already
+ using to _vte_xft_char_width to save a call to _vte_xft_font_for_char.
+
+2003-04-23 nalin
+ * autogen.sh: accept libtool 1.5 in addition to 1.4 (#15968).
+
+2003-04-23 nalin
+ * src/vte.c,src/vte.h: (_vte_terminal_accessible_ref): add.
+ * src/vteaccess.c(vte_terminal_accessible_new): call
+ _vte_terminal_accessible_ref to ensure that accessible signals are
+ going to be emitted.
+
+2003-04-23 nalin
+ * src/dumpkeys.c: formatting fixup.
+ * src/iso2022.c: formatting fixups. Try using U+FFFF as the "invalid"
+ marker character instead of '?', because it's actually invalid.
+ * src/pty.c: formatting fixup.
+ * src/reflect.c: formatting fixup.
+ * src/ring.c: formatting fixup.
+ * src/ssfe.c: formatting fixups.
+ * src/trie.c: formatting fixup.
+ * src/vte.c: formatting fixups.
+ * src/vte.c(vte_terminal_get_accessible): don't add a weak pointer to
+ the AtkObject if it isn't a valid AtkObject. Only emit text-changed
+ signals if we managed to create a valid accessible peer.
+ * src/vteaccess.c: formatting fixups.
+ * src/vteaccess.c(vte_terminal_accessible_init): unset the EXPANDABLE
+ Atk state. Set the RESIZABLE state.
+ * src/vteaccess.c(vte_terminal_accessible_class_init): Remove
+ spurious(?) call to bind_textdomain.
+ * src/vteaccess.c(vte_terminal_accessible_get_type): check if the
+ accessible peer of our peer's ancestor is derived from GtkAccessible,
+ and if it isn't derive from GtkAccessible instead of that.
+ * src/vteaccess.c(vte_terminal_accessible_get_type): register our
+ factory type.
+ * src/vteaccess.c, src/vteaccess.c: add VteTerminalAccessibleFactory.
+ * src/vtedraw.c: formatting fixup.
+
+2003-04-23 nalin
+ * src/vte.c(vte_terminal_background_update): always refetch the
+ root pixmap if we don't currently have a background image (#111386).
+
+2003-04-23 nalin
+ * src/vteaccess.c: implement an AtkComponent interface (part of
+ #110770).
+ * src/vteaccess.c(vte_terminal_accessible_focus_in): set the focus
+ state on the accessible peer (part of #110770).
+ * src/vteaccess.c(vte_terminal_accessible_focus_out): unset the focus
+ state on the accessible peer (part of #110770).
+ * src/vteaccess.c(vte_terminal_accessible_init): connect to the widget's
+ visibility-notify signals.
+ * src/vteaccess.c(vte_terminal_accessible_finalize): disconnect from
+ the widget's visibility-notify signals.
+
+2003-04-23 nalin
+ * src/vte.c(vte_terminal_background_update): don't bother generating
+ a new pixmap or panning the pixbuf -- we can use the desaturated
+ pixbuf directly now (#111386).
+ * src/vte.c(vte_terminal_paint): use the drawing offsets because we
+ don't regenerate new background pixmaps when the window is moved.
+ * src/vte.c(vte_terminal_draw_cells): add jittered bold text back in,
+ fell out in the drawing overhaul (#111430).
+
+2003-04-22 nalin
+ * src/iso2022.c(_vte_iso2022_fragment_input): account for valid CSI
+ sequences which were missed earlier.
+
+2003-04-22 nalin
+ * src/vte.c(vte_terminal_eof): dispose of the PTY completely.
+ * src/vte.c(vte_terminal_child_exited): dispose of the PTY completely.
+
+2003-04-22 nalin
+ * configure.in: add missing check for recvmsg.
+ * gnome-pty-helper/gnome-login-support.c: formatting and spelling fixes.
+ * gnome-pty-helper/gnome-login-support.c(n_read): reorganize.
+ * gnome-pty-helper/gnome-login-support.c(n_write): add.
+ * gnome-pty-helper/gnome-login-support.h: add prototype for n_write.
+ * gnome-pty-helper/gnome-pty-helper.c: only define the I_SENDFD version
+ of pass_fd() if I_SENDFD is defined, to clarify compile errors when it
+ isn't defined.
+ * src/pty.c(main): exercise session logging.
+ * src/pty.c(_vte_pty_open_with_helper): add more debug messages.
+
+2003-04-22 nalin
+ * src/iso2022.c(_vte_iso2022_map_get): force visible widths to 2 columns
+ for CJK maps which use 2 bytes per character.
+ * src/iso2022.c(_vte_iso2022_fragment_input): recognize CSI/OSC/PM
+ sequences as control sequences and not raw text, allowing us to treat
+ them specially later.
+ * src/iso2022.c(process_control): pass CSI/OSC/PM sequences through
+ unmodified (without going through maps).
+
+2003-04-22 nalin
+ * src/vte.c(vte_invalidate_cursor_once): don't bother doing anything if
+ we're fully obscured (related to #102703).
+
+2003-04-22 nalin
+ * src/vteapp.c(main): stop messing with fontconfig's list of font
+ directories.
+
+2003-04-22 nalin
+ * configure.in: rework link order so that xft2 is linked before anything
+ else. You're still screwed if you link with both xft1 and xft2 libs,
+ but maybe this'll help (#107285).
+
+2003-04-22 nalin
+ * src/vteglyph.c: fix a couple of #errors.
+ * src/vte.c(vte_invalidate_cells): if the area we're invading is on the
+ edge, invalidate the edge as well.
+ * src/pty.c: implement and use wrappers for read and write which handle
+ EINTR and EAGAIN.
+ * src/vte.c(vte_terminal_scroll_region): don't use gdk_window_scroll if
+ the window is frozen for updates.
+ * src/vte.c(vte_terminal_sequence_handler_sf): when scrolling down while
+ we have a defined scrolling region, freeze the window to avoid flicker
+ when we update the scrolling offsets (#108058).
+
+2003-04-21 nalin
+ * gnome-pty-helper/gnome-login-support.c(n_read): don't bail out if
+ read() returns -1 and errno is either EINTR or EAGAIN, candidate fix for
+ #107534.
+
+2003-04-21 nalin
+ * src/vte.c(vte_terminal_io_read): add a couple of assertions here
+ just to be sure (#108066).
+
+2003-04-21 nalin
+ * src/pty.c(_vte_pty_ptsname): don't depend on PATH_MAX being
+ available and correct (#109805).
+ * src/vte.c(vte_terminal_set_termcap): don't depend on PATH_MAX being
+ available and correct (#109805).
+ * src/vte.c(vte_terminal_io_read): fix signed/unsigned comparison
+ (#108066).
+
+2003-04-21 nalin
+ * Makefile.am: add MESSAGE-OF-DOOM to EXTRA_DIST
+ * src/keymap.c: make Alt+Return generate ESC newline (#108863).
+
+2003-04-21 nalin
+ * src/Makefile.am: drop unitable.KSC5601
+ * src/iso2022.c: fixup comment re: KS X 1001 (#107119).
+ * src/mkunitables.sh: add two characters from KS X 1001:1998 (#107119).
+
+2003-04-21 nalin
+ * src/vte.c(vte_terminal_eof): don't try to process incoming data if
+ there isn't any (#110946).
+ * src/vtexft.c: mark a warning message for translation.
+ * src/vtegl.c: make the warning when glX isn't available debug-only.
+
+2003-04-21 nalin
+ * src/vteglyph.c: use #if HAVE_DECL_XXX instead of #ifdef HAVE_DECL_XXX,
+ noted by Bob Doan.
+
+2003-04-20 nalin
+ * src/vtexft.c: work around for garbled glyphs when drawing runs of
+ text using multiple fonts while mixing bitmap and antialiased fonts
+
+2003-04-17 nalin
+ * src/vte.c: add missing prototype for vte_terminal_process_incoming().
+
+2003-04-17 nalin
+ * src/vteglyph.c(_vte_glyph_get): quiet a compiler warning.
+ * src/iso2022.c: use KSX-1001 instead of KSC-5601 for Korean (#107119),
+ add maps for CNS 11643 planes 3,4,5,6,7 (can't test them, but hey).
+ Rework so that we get the data before it's passed to g_iconv(), and
+ return gunichars.
+ * src/interpret.c: adapt to changes in the iso2022 interfaces.
+ * src/vte.c: adapt to changes in the iso2022 interfaces.
+ * src/mkunitables.sh: add snippets for KSX 1001.
+ * src/iso2022.txt: add iso-2022-cn example text.
+
+2003-04-17 nalin
+ * src/vte.c(vte_terminal_process_incoming): invalidate a larger
+ rectangle to fix behavior wrt openi18n assertion 2.
+
+2003-04-16 nalin
+ * src/vte.c(vte_terminal_paint): fix logic error drawing the cursor
+ which caused ALTGR characters to always be used. Draw the preedit
+ string in the right location.
+ * src/vte.c(vte_invalidate_cursor_once): expose the visible width of
+ the preedit string, not its length.
+
+2003-04-15 nalin
+ * src/vteaccess.c: fix broken debug message.
+
+2003-04-15 nalin
+ * src/vte.c: make row_data a structure containing an array instead of a
+ simple array. Add a field to row data structures which tracks whether
+ or not we soft-wrapped from this line to the next one. Make use of the
+ field when copying text and selecting by "line" (#105189).
+ * src/reflect.c: put the label in a scrolled window to avoid mad loops
+ when we resize it to accomodate more text, which shrinks the terminal,
+ which removes text from the label, which resizes it to be smaller, which
+ gives the terminal more space, which adds text to the viewable area,
+ which requires a bigger label, and so on.
+ * src/vte.c: move vte_terminal_get_text_range logic into
+ vte_terminal_get_text_range_maybe_wrapped for internal use,
+ vte_terminal_get_text likewise.
+
+2003-04-14 nalin
+ * src/vte.c: don't snap the beginning of selection to the next line in
+ select-by-line mode.
+
+2003-04-14 nalin
+ * configure.in, src/vteglyph.c: fix macro invocations so that when
+ LCD and GRAY2/GRAY4 pixel modes are supported by freetype, we don't
+ get confused by them.
+ * src/vtepango.c, src/vtepangox.c: fix background scrolling.
+
+2003-04-14 nalin
+ * autogen.sh: require automake 1.6, 1.5 chokes on AM_LDFLAGS, which 1.7
+ wants instead of LDFLAGS(!). Require autoconf 2.52 or newer, because
+ older versions bail on configure.in.
+ * configure.in: Check if ft_render_mode_mono, FT_RENDER_MODE_NORMAL,
+ FT_PIXEL_MODE_MONO, ft_pixel_mode_mono, FT_PIXEL_MODE_GRAY2,
+ FT_PIXEL_MODE_GRAY4, FT_PIXEL_MODE_GRAY, ft_pixel_mode_grays,
+ FT_PIXEL_MODE_LCD are declared.
+ * src/vte.c, src/vteapp.c, src/vtefc.c, src/vtepango.c: handle being
+ built with GTK+ 2.0 or 2.2.
+ * src/vtegl.c: disable for GTK+ < 2.2.0.
+ * src/vtepangox.c: use a PangoX context instead of a Pango context
+ when determining font metrics.
+ * src/vteglyph.c: handle the twisty maze of load and render options and
+ pixel modes various versions of freetype support.
+
+2003-04-14 nalin
+ * configure.in: disable pangox, xft, glx drawing if run invoked with
+ the --without-x flag.
+ * vte.pc.in: include CFLAGS found by AC_PATH_XTRA when built with X.
+ * src/iso2022.c(_vte_iso2022_substitute_single): clean up and ensure
+ that ambiguous widths are respected.
+ * src/iso2022.c, src/iso2022.h: add _vte_iso2022_unichar_width().
+ * src/vte.c: remove old xft2/xft1/pango/pangox/core drawing code,
+ making draw the only supported method. Remove most dependencies on
+ gdkx and Xlib, except for root pixmap ID watching.
+ * src/vtedraw.c: only use pangox, xft if X_DISPLAY_MISSING is not
+ defined.
+ * src/vtedraw.c, src/vtedraw.h: add get_using_fontconfig() method.
+ * src/vte.c(vte_terminal_get_using_xft): use
+ _vte_draw_get_using_fontconfig(), which is what apps really want to
+ know when they call this function.
+ * src/vtegl.c: wrap in #ifndef X_DISPLAY_MISSING.
+ * src/vtepangox.c: wrap in #ifndef X_DISPLAY_MISSING.
+ * src/vtexft.c: wrap in #ifndef X_DISPLAY_MISSING.
+ * src/vteglyph.c(_vte_glyph_cache_set_description): use horizontal
+ advance instead of bitmap width when calculating display widths.
+ Rename to _vte_glyph_cache_set_font_description.
+
+2003-04-09 nalin
+ * src/vte.c: add back some variables which are used after all.
+
+2003-04-09 nalin
+ * configure.in: add specific checks for PangoX and glX.
+ * src/vteft2.c, src/vteft2.h: add drawing method using freetype and
+ GdkRGB.
+ * src/vteglyph.c, src/vteglyph.h: add.
+ * src/vtepangox.c, src/vtepangox.h: add drawing method using PangoX.
+ * src/vtergb.c, src/vtergb.h: add.
+ * src/vtegl.c, src/vtegl.h: add placeholder drawing method using
+ freetype and glX.
+ * src/Makefile.am: add newly-added source files to libvte.la target.
+ * src/vtedraw.c, src/vtedraw.h: add get_visual and get_colormap
+ methods so that drawing methods can override the default visual and
+ colormap. Rename get_text_base() to get_text_ascent(), which is more
+ correct. Remove scroll(), which would just wrap gdk_window_scroll().
+ * src/vte.c: fix logic for choosing alternate render methods when
+ VTE_USE_XFT is "0".
+ * src/vteapp.c: add -- option to stop parsing options with getopt.
+ * src/vtefc.c: fix incorrect DPI read due to type mismatch (#109513).
+
+2003-03-31 Laurent Dhima <laurenti alblinux net>
+
+ * configure.in: Added "sq" to ALL_LINGUAS.
+
+2003-03-26 nalin
+ * src/Makefile.am: specify AM_CFLAGS and AM_LDFLAGS instead of CFLAGS
+ and LDFLAGS so that automake 1.7 doesn't kick us to the curb
+
+2003-03-13 Christian Rose <menthos menthos com>
+
+ * configure.in: Added "ml" to ALL_LINGUAS.
+
+2003-03-07 nalin
+ * src/vte.c(vte_terminal_paint): adjust coordinates for the border when
+ clearing rectangles.
+ * src/vteskel.c, src/vteskel.h: add.
+ * src/vtedraw.c: use the skeleton drawing code.
+2003-03-07 nalin
+ * src/vte.c(vte_terminal_visibility_notify): watch for Visibility
+ events.
+ * src/vte.c(vte_invalidate_cells,vte_invalidate_all): don't synthesize
+ an expose event if we're fully obscured, that's just silly.
+
+2003-03-06 nalin
+ * src/vte.c, src/vte.h(vte_terminal_set_background_tint_color): take a
+ const GdkColor* instead of a non-const color.
+
+2003-03-06 nalin
+ * python/vte.defs: regenerate.
+ * python/vte.override: update for vte_char_attributes rename.
+
+2003-03-06 nalin
+ * src/vte.c, src/vte.h, src/vteaccess.c: rename struct
+ vte_char_attributes to VteCharAttributes, fixup some docs.
+ * doc/reference: finish up docs.
+
+2003-03-05 nalin
+ * vte.pc.in: add FT2_LIBS and FT2_CFLAGS to our libs and cflags. Add
+ xft >= 2.0 and fontconfig as hard requirements.
+
+2003-03-05 nalin
+ * src/vtedraw.c: don't spit out which rendering method we're using
+ except in debug mode.
+
+2003-03-05 nalin
+ * src/vtepango.c, src/vtexft.c: don't print "Bogus font." when we think
+ the font metrics are screwy.
+
+2003-03-05 nalin
+ * configure.in: require Xft2 and fontconfig, drop Xft1. Require
+ freetype2.
+ * src/Makefile.am, src/xticker.c: add xticker, useless but interesting.
+ * src/vte.c, src/vte.h: add vte_terminal_set_scroll_background() to
+ enable background scrolling (where supported by the drawing code).
+ * src/vteapp.c: set the tinting color to the default background color
+ to see what that's like. Add -s option to toggle scrolling backgrounds.
+ * src/vtefc.c, src/vtefc.h: add. For converting PangoFontDescriptions
+ to sorted lists of FcPatterns suitable for passing to XftFontOpenPattern
+ or FT_New_Face.
+ * src/vtedraw.c, src/vtedraw.h: add. New drawing layer.
+ * src/vtepango.c, src/vtepango.h: add. Drawing layer using Pango.
+ * src/vtexft.c, src/vtexft.h: add. Drawing layer using Xft2.
+ * src/vte.c: add render type VteRenderDraw for transitional period in
+ preparation for nuking other drawing code. Merge HAVE_XFT bits into
+ HAVE_XFT2 areas. Nuke Xft1-specific stuff. Move drawing of lines
+ and rectangles to dedicated functions. Always call vte_unichar_width()
+ instead of g_unichar_iswide().
+
+2003-03-04 nalin
+ * src/vte.c(vte_sequence_handler_set_title_internal): fix swap of
+ one variable for another which prevented stripping of control chars,
+ spotted by Nam SungHyun.
+
+2003-03-04 nalin
+ * src/vte.c(vte_terminal_insert_char): wrap properly when a scrolling
+ region is set (#107559).
+
+2003-02-28 Takeshi AIHANA <aihana gnome gr jp>
+
+ * po/ja.po: Added Japanese translations from gnome-2-2.
+
+2003-02-26 nalin
+ * src/iso2022.c(_vte_iso2022_substitute,_vte_iso2022_substitute_single):
+ force characters substituted through the ACS map to have width of 1.
+
+2003-02-26 nalin
+ * src/vte.c(vte_terminal_font_open_xft,vte_terminal_font_open_pango):
+ use an array of codepoints instead of a UTF-8 string so that we can
+ check for lack of font coverage in Xft fonts.
+
+2003-02-26 nalin
+ * src/vte.c: formatting fixups.
+
+2003-02-26 nalin
+ * src/vte.c(vte_terminal_font_open_xft,vte_terminal_font_open_pango):
+ patch from Jungshik Shin for detecting and handling fonts where ASCII
+ characters are double-width (#106618)
+
+2003-02-26 Taneem Ahmed <taneem eyetap org>
+
+ * configure.in: Added "bn" to ALL_LINGUAS.
+
+2003-02-25 nalin
+ * src/vteapp.c(main): take a shot at implementing xconsole-like
+ functionality when started with the -C flag: we open /dev/console and
+ TIOCCONS it, and just feed data to the widget until we lose ownership
+ of the MIT_CONSOLE_$(hostname) clipboard.
+
+2003-02-25 Samúel Jón Gunnarsson <sammi techattack nu>
+
+ * configure.in: added "is" to ALL_LINGUAS.
+
+2003-02-24 nalin
+ * src/vte.c(vte_sequence_handler_window_manipulation): don't report the
+ user-settable title and icon strings to applications, based on H D
+ Moore's "Terminal Emulator Security Issues" (CAN-2003-0070).
+ * src/vte.c(vte_sequence_handler_set_title_internal): strip out control
+ characters just to be on the safe side.
+
+2003-02-24 nalin
+ * src/vte.c(vte_sequence_handler_decset_internal): home the cursor when
+ we switch to the alternate screen (#105075).
+
+2003-02-23 Duarte Loreto <happyguy_pt hotmail com>
+
+ * configure.in: Added "pt" to ALL_LINGUAS.
+
+2003-02-21 Metin Amiroff <metin karegen com>
+
+ * configure.in: Added az to ALL_LINGUAS.
+
+2003-02-20 nalin
+ * src/keymap.c(_vte_keymap_map): in debug mode, skip coverage assertions
+ for specific keys (GDK_2 - GDK_8).
+ * src/keymap.c: remove unshifted entries for GDK_2 - GDK_8 (#106667)
+
+2003-02-20 nalin
+ * src/vte.c(vte_terminal_im_commit,vte_terminal_paste_cb): stop
+ gratuitously resetting the IM context.
+ * src/vte.c(vte_terminal_process_incoming): correctly determine when
+ we have an IM context -- it should be iff we're realized.
+ * src/vte.c(vte_terminal_key_press/release): only filter keypresses
+ through the IM context if we're realized, otherwise it doesn't exist.
+
+2003-02-20 nalin
+ * src/vte.c(vte_terminal_paint): reverse that last change -- don't
+ always assume proportional text.
+ * src/vte.c(vte_sequence_handler_ta): eliminate dead code.
+
+2003-02-20 nalin
+ * src/vte.c(vte_terminal_draw_row): move the initial drawing x left
+ whenever we back up to a previous cell to avoid drawing fragments.
+ * src/vte.c(vte_terminal_paint): always assume non-monospaced text,
+ because the "missing glyph" glyph consistently looks screwy otherwise.
+
+2003-02-20 nalin
+ * src/vte.c(vte_terminal_feed_child): don't reset the input method
+ here -- it may be in the middle of something (Red Hat #81542).
+ * src/vte.c(vte_terminal_im_commit): reset the input method when we
+ get text committed (Red Hat #81542).
+
+2003-02-19 nalin
+ * src/vte.c(vte_terminal_focus_in,vte_terminal_focus_out): if we're not
+ currently realized, don't try to tell our IM context that our focus
+ state changed, because we don't have one. While we're at it, it's
+ silly to try to force the cursor to be drawn when we're not realized,
+ either.
+ * src/vte.c(vte_terminal_background_update): disconnect self, just in
+ case we were called directly while still queued, which would otherwise
+ leak the source, leading to potential problems later (Red Hat #84368).
+
+2003-02-19 nalin
+ * src/vte.c(vte_terminal_scroll_window): use gdk_window_scroll if the
+ first row to be scrolled is the first visible row, not just if it's the
+ first row we ever saw (Red Hat #83472).
+
+2003-02-19 nalin
+ * src/vte.c(vte_terminal_button_press): grab input focus on button 1
+ press (#106573, Red Hat #84384).
+
+2003-02-19 nalin
+ * src/vte.c(vte_terminal_sequence_handler_bt): add missing chunk of
+ fix for backtab.
+
+2003-02-19 nalin
+ * src/vte.c: turn on update debugging if VTE_DEBUG_FLAGS includes
+ "updates"
+
+2003-02-19 nalin
+ * src/keymap.c: add map entries for unmodified digit keypresses.
+
+2003-02-19 nalin
+ * src/vte.c(vte_terminal_match_add): use the default cursor by default,
+ so that we don't look weird to people who aren't used to the cursor
+ changing this way.
+ * configure.in: forcibly define VTE_DEBUG to "1" when we define it.
+
+2003-02-19 nalin
+ * src/vteaccess.c: emit focus-event signals from the accessible peer
+ when the widget receives focus-in and focus-out events, noted by
+ Marc Mulcahy.
+
+2003-02-18 Roozbeh Pournader <roozbeh sharif edu>
+
+ * configure.in: Added "fa" to ALL_LINGUAS.
+
+2003-02-18 nalin
+ * src/vte.c, src/vte.h: add vte_terminal_match_set_cursor() (#105986).
+
+2003-02-18 nalin
+ * src/Makefile.am: add @LDFLAGS@ to all of the LDADD clauses, hopefully
+ fixing #105415.
+
+2003-02-17 nalin
+ * src/vte.c(vte_terminal_sequence_handler_cs): recognize and discard
+ invalid arguments (#57453).
+
+2003-02-17 nalin
+ * src/keymap.c: add map entries for Ctrl+digit keys (#106193, Red Hat
+ #83563).
+
+2003-02-17 Alessio Frusciante <algol firenze linux it>
+
+ * configure.in: Added "it" (Italian) to ALL_LINGUAS.
+
+2003-02-16 Dmitry G. Mastrukov <dmitry taurussoft org>
+
+ * configure.in: Added Belarusian to ALL_LINGUAS.
+
+2003-02-14 nalin
+ * src/vte.c(vte_terminal_sequence_handler_bt): fix to move back to the
+ leftmost column if there are no previous tabstops, exercised by
+ make menuconfig.
+
+2003-02-14 nalin
+ * src/vte.c(vte_terminal_background_update): handle pixbufs with
+ n_channels != 3.
+
+2003-02-14 nalin
+ * src/interpret.c: handle width masks now that we're encoding widths for
+ all characters.
+
+2003-02-14 nalin
+ * src/vte.c: more comments to keep myself from getting confused later.
+
+2003-02-13 nalin
+ * src/vte.c: change the coalescing timeout to 2ms.
+
+2003-02-13 nalin
+ * src/vte.c(vte_terminal_io_read): attempt to coalesce data received
+ within about 10ms to reduce load on the X server on systems where the
+ scheduler wakes us up as soon as we have a few bytes available. Based
+ on a suggested fix by msw.
+ * src/vte.c(vte_terminal_io_read): never free buf, it's not a heap
+ variable any more. Spotted by msw.
+
+2003-02-12 nalin
+ * src/vte.c(vte_terminal_finalize): close fd leak.
+ * src/vte.c(vte_terminal_fork_command): close potential fd leak.
+
+2003-02-12 nalin
+ * src/reflect.c(main): handle cases where the widget has no data and
+ returns NULL when we ask for it.
+
+2003-02-12 nalin
+ * src/reflect.c(main): do a complete read of the widget before we
+ start off in main to ensure we have accurate data.
+ * src/vteaccess.c(vte_terminal_accessible_update_private_data_if_needed):
+ only attempt to free the previous snapshot if it existed.
+
+2003-02-12 nalin
+ * src/reflect.c(main): connect to signals before any get emitted.
+ * src/vteaccess.c: use a GString to store snapshot text so that we
+ always have proper length information.
+
+2003-02-12 nalin
+ * src/reflect.c(text_changed_delete): spit out a warning if we receive
+ an out-of-range text_changed::delete signal.
+
+2003-02-11 nalin
+ * src/genwidths, src/uniwidths: add data for tracking ambiguous-width
+ Unicode characters.
+ * src/iso2022.c, src/iso2022.h: add _vte_iso2022_is_ambiguous() for
+ checking if a character is ambiguous, and _vte_iso2022_ambiguous_width()
+ for guessing how wide it should be based on the current locale. Rename
+ _vte_iso2022_get/set_width to ...encoded_width to clarify the intent,
+ ditto for the related macros.
+ * src/table.c,src/trie.c: use renamed macros for reading encoded widths.
+ * src/iso2022.c(_vte_iso2022_substitute_single,_vte_iso2022_substitute):
+ handle ambiguous widths properly, and always encode a width.
+ * src/Makefile.am: use the default LDFLAGS, I think.
+ * src/vte.c,src/vte.h: add vte_terminal_set_background_tint_color().
+ * src/vte.c(vte_terminal_unrealize): unhook from background update
+ sources, because we may not have a display after that.
+ * src/vte.c(vte_terminal_size_allocate): only queue a background update
+ if we're in transparent mode and either we've been moved or we have no
+ background yet. If our size changed, force a repaint.
+ * src/vte.c(vte_sequence_handler_window_manipulation): snip off the
+ padding along the edges when responding to requests for the window size
+ and location -- apps have no way to query it.
+ * src/vte.c(vte_terminal_get_text_range): skip over fragments properly.
+ * src/vte.c(vte_terminal_draw_row): skip over fragments properly.
+ * src/vte.c(vte_unichar_width): rework in terms of the width checking
+ in the iso2022 module for consistency.
+
+2003-02-06 Christian Rose <menthos menthos com>
+
+ * configure.in: Added "id" to ALL_LINGUAS.
+
+2003-02-03 nalin
+ * src/vte.c(vte_terminal_size_allocate): suppress background updates if
+ we haven't moved and the background image already exists (#104868).
+
+2003-01-31 nalin
+ * src/vte.c(vte_terminal_get_accessible): keep a weak pointer to the
+ accessible peer instead of a static pointer (part of #104909).
+ * src/vte.c(vte_terminal_finalize): if the accessible peer still exists,
+ remove its weak pointer before attempting to unref it.
+ * src/vte.c: rename accessible_exists member to accessible_emit, which
+ more accurately reflects its purpose.
+ * src/vteaccess.c(vte_terminal_accessible_update_private_data_if_needed):
+ always update the cursor position, in case text was added or removed
+ without the cursor itself moving.
+ * src/vteaccess.c(vte_terminal_accessible_get_text_somewhere): don't
+ emit a warning when the caller attempts to read the Nth character when
+ we have 0 to N-1, just return an empty string.
+ * src/vteaccess.c(vte_terminal_accessible_new): make the terminal peer
+ a weak pointer (part of #104909).
+ * src/vteaccess.c(vte_terminal_accessible_finalize): if the terminal
+ peer is not NULL, disconnect it as a weak pointer and don't bother
+ disconnecting from its signals (part of #104909). Add a debug message.
+ * src/vteaccess.c(vte_terminal_accessible_text_finalize): Add a debug
+ message.
+
+2003-01-31 nalin
+ * src/vte.c(vte_unichar_isgraphic): rename to vte_unichar_is_graphic,
+ to match conventions used elsewhere.
+ * src/vte.c(vte_unichar_is_graphic): count 0xa3, 0x3c0, 0x2592,
+ 0x25ae, 0x25c6 as graphic characters.
+ * src/iso2022.txt: add sample text using character set 0.
+
+2003-01-30 Fatih Demir <kabalak gtranslator org>
+
+ * configure.in: Added "tr" (Turkish) to the languages' list.
+
+2003-01-30 nalin
+ * MESSAGE-OF-DOOM: added, for scaring people away.
+ * vte.spec: bump to 0.11.x for development.
+ * src/mev.c(main): reset modes before quitting.
+ * src/vte.c(vte_terminal_button_press): don't always extend selection
+ when not in event mode.
+
+2003-01-28 nalin
+ * configure.in: make debugging support an explicit option to configure.
+ don't automatically enable debugging in maintainer mode.
+
+2003-01-27 nalin
+ * src/vte.c(vte_terminal_realize): create the "invisible" cursor using
+ a bitmap instead of a pixmap, changing it from a 1x1 black square to
+ nothing.
+
+2003-01-27 nalin
+ * src/vte.c(vte_terminal_decset_internal): make the various mouse event
+ modes mutually-exclusive, because apps expect them to be (#104395).
+ * src/vte.c: add a prototype for vte_terminal_background_update before
+ it is used to silence a compiler warning.
+
+2003-01-27 nalin
+ * src/vte.c(vte_terminal_realize): force a background update immediately
+ when we realize instead of queuing it up (#104381).
+
+2003-01-26 Daniel Yacob <locales geez org>
+
+ * configure.in: Added "am" to ALL_LINGUAS.
+
+2003-01-24 nalin
+ * src/vte.c(vte_terminal_background_update): fix declaration order
+ (#13795).
+
+2003-01-24 Nam SungHyun <namsh kldp org>
+
+ * configure.in: Added "ko" to ALL_LINGUAS.
+
+2003-01-23 nalin
+ * src/caps.c, src/vte.c: recognize and ignore attempts to set text
+ properties 21 and 2L, whatever those are (possible workaround #104154).
+
+2003-01-23 nalin
+ * src/iso2022.c: accept "1" and "2" as aliases for "B" (#104257).
+
+2003-01-23 nalin
+ * configure.in: check for curses if we don't have ncurses (the order
+ is ncurses, curses, libtermcap), as Solaris has neither ncurses nor
+ libtermcap. Reported by Brian Cameron.
+ * src/keymap.c, src/ssfe.c: accept either curses or ncurses as
+ equivalent.
+
+2003-01-22 nalin
+ * src/Makefile.am, src/mev.c: add mev.
+ * src/vte.c(vte_sequence_handler_clear_screen): don't home the cursor
+ automatically.
+ * src/vte.c(vte_terminal_button_pressed): fix sense of shift overriding
+ event mode. Ignore double- and triple-click in event mode.
+ * src/vte.c(vte_terminal_scroll): in event mode, send button release
+ events to the terminal if it's expecting them.
+ * src/vte.c(vte_terminal_send_mouse_button_internal): clamp coordinates
+ to existing cells.
+ * src/vte.c(vte_terminal_maybe_send_mouse_drag): compare integral cell
+ locations, not floating point, when choosing whether or not to drop
+ events in cell tracking mode. Don't lose the modifiers.
+ * src/vte.c(vte_terminal_motion_notify): don't autoscroll in events
+ mode.
+
+2003-01-22 nalin
+ * src/caps.c: accept OSC{number};{string}ST as set-text-parameters,
+ per XTerm docs (part of #104154).
+ * src/keymap.c: revert change to prepend "1;" to keys with
+ modifiers (#104139).
+
+2003-01-22 Christian Rose <menthos menthos com>
+
+ * configure.in: Added "mn" to ALL_LINGUAS.
+
+2003-01-21 nalin
+ * src/vte.c: streamline background images and transparency handling,
+ should use less memory now.
+
+2003-01-20 nalin
+ * src/reflect.c: add some debugging messages if REFLECT_VERBOSE is
+ set in the environment.
+
+2003-01-20 nalin
+ * src/Makefile.am, src/reflect.c: add reflect-text-view, for testing
+ with GtkTextView for sanity's sake.
+
+2003-01-20 nalin
+ * src/reflect.c: account for atk_text_get_text() being 0-clean.
+
+2003-01-20 nalin
+ * configure.in, src/Makefile.am, src/reflect.c: try to build reflect
+ with both vte and libzvt, building a useless binary if libzvt isn't
+ available.
+
+2003-01-20 nalin
+ * src/vte.c: colors 90-97 and 100-107 are bold colors, noted and patched
+ by Matthijs Melchior (#103874).
+
+2003-01-19 He Qiangqiang <carton linux net cn>
+
+ * configure.in: Added "zh_CN" (Simplified Chinese) to ALL_LINGUAS.
+
+2003-01-19 Marius Andreiana <marius galuna.ro>
+
+ * configure.in: added 'ro' to ALL_LINGUAS
+
+2003-01-18 nalin
+ * src/vteaccess.c(update_private_data_if_needed): if the caret is past
+ the end of the text, count unichars properly. Compute the caret
+ location correctly.
+ * src/reflect.c: handle text-caret-moved signals and display the caret.
+
+2003-01-18 nalin
+ * src/iso2022.c: update copyright dates.
+ * src/reflect.c: add.
+ * src/Makefile.am: add reflect (noinst).
+ * src/vteaccess.c(vte_terminal_accessible_get_text): always return a
+ string, even if it's zero-length. Properly detect and handle requests
+ that go right up to the last byte.
+
+2003-01-18 Andras Timar <timar gnome hu>
+
+ * configure.in: Added "hu" to ALL_LINGUAS.
+
+2003-01-17 nalin
+ * src/vte.c(vte_terminal_set_size): emit a "text-modified" signal,
+ because what you see changes when you resize the terminal.
+
+2003-01-17 nalin
+ * src/vte.c(vte_terminal_paint): don't draw cursors below or above the
+ screen, correctly compute the clear area when drawing the cursor,
+ if we're ignoring padding in general because we're monospaced, also
+ ignore it when drawing the character under the cursor.
+ * src/vte.c(vte_terminal_io_read): eliminate dead code.
+
+2003-01-17 nalin
+ * src/keymap.c(_vte_keymap_map): if we don't find an entry for the
+ requested key, and the terminal type is "xterm", retry using
+ "xterm-xfree86", possible fix for #103713.
+ * src/vte.c(vte_terminal_draw_row): fix handling of items with
+ width != 1 when computing runs.
+
+2003-01-17 nalin
+ * src/iso2022.c: fix boneheaded "config.h" instead of "../config.h"
+ include, pointed out by Dan Mills and Brian Cameron.
+
+2003-01-16 nalin
+ * configure.in: fix test for whether or not we need to check for termcap
+ * src/Makefile.am: override default includes to not prepend "." to the
+ include path, so that we can include the system <termcap.h> properly
+ * src/keymap.c: define the ncurses scratch buffer for use when we're
+ using termcap
+
+2003-01-16 nalin
+ * configure.in: actually disable attempts to build python bindings if
+ pygtk-2.0 isn't found (#103676)
+
+2003-01-14 nalin
+ * src/keymap.c(_vte_keymap_key_add_key_modifiers): if a key sequence
+ which needs modifiers doesn't have a numeric part, add "1" as the
+ numeric part before adding the modifiers. Spotted by msw.
+
+2003-01-13 nalin
+ * src/ring.c, src/ring.h: add _vte_ring_insert_preserve(), which
+ scrolls lost items off the top instead of the bottom, as
+ _vte_ring_insert() does.
+ * src/slowcat.c (catfile): check that we didn't read an EOF before
+ attempting to write it. Skip the more complicated checks and just
+ check that the file pointer isn't stdin before closing it.
+ * src/ssfe.c: cleanups.
+ * src/vte.c(vte_sequence_handler_sf): add lines to the scrollback area
+ when scrolling is restricted but the top line of the area is the
+ topmost visible line (Red Hat #75900).
+
+2003-01-13 nalin
+ * src/nativeecho.c, src/utf8echo.c: don't switch terminal modes before
+ or after echoing bytes -- doing so confuses me now.
+ * src/vte.c: make use of '?' to mark invalid data a compile-time define.
+ * src/vteaccess.c(vte_terminal_accessible_text_scrolled): properly
+ handle scrolling events with delta less than the window size (more
+ of #95901).
+ * src/vteaccess.c(vte_terminal_accessible_finalize): disconnect
+ from text-inserted, text-deleted, text-modified, text-scrolled,
+ cursor-moved, window-title-changed on finalize.
+ * src/vte.c(vte_terminal_key_press,vte_terminal_key_release,
+ vte_terminal_button_press,vte_terminal_button_release,
+ vte_terminal_motion_notify,vte_terminal_focus_in,vte_terminal_focus_out,
+ vte_terminal_scroll): track event modifiers in an object-local modifier
+ variable.
+ * src/vte.c(vte_terminal_key_press): always steal key events from the
+ input method if the meta key is down (#96006). Don't munge the cursor
+ or keypad modes before passing them to the keymapping routines. Stop
+ overriding the cursor mode on NumLock (doesn't appear to work as
+ documented in other terminals, needed to modify the keymap mode anyway
+ (#96364)).
+ * configure.in: define HAVE_XFT whenever HAVE_XFT2 is defined -- they're
+ more or less compatible (#103130).
+
+2003-01-10 Abel Cheung <maddog linux org hk>
+
+ * configure.in: Added "zh_TW" to ALL_LINGUAS.
+
+2003-01-10 Dmitry G. Mastrukov <dmitry taurussoft org>
+
+ * configure.in: Added Russian to ALL_LINGUAS.
+
+2003-01-09 nalin
+ * configure.in: disable the python bindings if we can't find python,
+ from Brian Cameron.
+
+2003-01-09 nalin
+ * src/vte.c: don't just skip reading data if selection is in progress --
+ we wedge if we do that (#101739). Instead, temporarily stop reading
+ from the child pty.
+ * src/vte.c(vte_terminal_open_font_xft): if we get NULL when matching
+ fonts, use the desired pattern's name when displaying an error,
+ preventing a NULL dereference (#96769).
+ * configure.in: make building of python modules depend on configure
+ having been run with --enable-python. make --enable-python the default.
+ Fix an indentation error in the version check which chokes Python 2.2.2.
+ * src/vte.h, src/vte.c: add new signals to VteTerminalClass (NOTE: may
+ break ABI, so might as well add some padding)
+ * src/vteaccess.c: be more precise about locations in text_changed
+ signals (part of #95901)
+ * src/vte.c: get more selective about when we consider it necessary to
+ emit text-insert and text-delete events.
+
+2003-01-07 nalin
+ * src/vte.c(vte_terminal_key_press): Only suppress meta-sends-escape on
+ Backspace if backspace is mapped to the delete sequence. (#100635)
+
+2003-01-07 nalin
+ * src/vte.c(vte_terminal_setup_background): Use a lookup table
+ instead of a mess of floating point math when desaturating images.
+
+2003-01-06 nalin
+ * src/vte.c(vte_terminal_init): Add the periodic blinking refresh
+ with the normal timeout instead of 0 to avoid wedging when we get
+ created without focus. Fix suggested by Dennis Haney (#102701).
+
+2003-01-06 nalin
+ * src/vte.c: Use a simple XftPatternGetString/GetDouble pair instead
+ of XftNameUnparse, which isn't in older versions of Xft (#101142).
+ * src/vte.c: Add a flag to VteTerminalPrivate which we can use to keep
+ track of modifications, particularly if they remove text, and toggle
+ it in several sequence handlers.
+ * src/vte.c(vte_terminal_process_incoming): Also emit the "contents
+ changed" signal when the modified flag is TRUE, not enough to fix
+ #95901, but at least making some forward progress.
+
+2003-01-05 Pauli Virtanen <pauli virtanen hut fi>
+
+ * configure.in (ALL_LINGUAS): Added "fi" (Finnish).
+
+2003-01-04 Stanislav Visnovsky <visnovsky nenya ms mff cuni cz>
+
+ * configure.in: (ALL_LINGUAS) Added sk (Slovak).
+ * po/sk.po: Added Slovak translation.
+
+2003-01-02 nalin
+ * configure.in: look for libncurses or libtermcap
+ * vte.pc.in: include other libraries (ncurses, termcap, socket,
+ whatever) in the list of libraries.
+ * src/keymap.c(_vte_keymap_map): for Home and End, consult libncurses
+ or libtermcap if we have no hard-wired mapping and there's none in the
+ termcap file. Should fix #100472, even in cases where Home and End
+ vary wildly from what I've got on my box.
+ * src/keymap.c: rename cursor/fkey_normal to cursor/fkey_default,
+ which makes a little more sense.
+
+2003-01-02 Zbigniew Chyla <cyba gnome pl>
+
+ * configure.in: (ALL_LINGUAS) Added pl (Polish).
+
+2002-12-22 Artis Trops <hornet navigator lv>
+
+ * configure.in: Added Latvian (lv) to ALL_LINGUAS.
+
+2002-12-19 Yanko Kaneti <yaneti declera com>
+
+ * configure.in: (ALL_LINGUAS) Added Bulgarian (bg).
+
+2002-12-18 nalin
+ * configure.in: complain if Xft2 and Xft aren't found.
+ * src/vte.c (vte_terminal_paint): if we're not double-buffered, clear
+ the drawing area before we draw text.
+ * src/vteapp.c: add -2 to toggle double-buffering.
+
+2002-12-16 nalin
+ * src/vte.c (vte_terminal_key_press): wire Shift+Home/Shift+End to
+ scroll-to-top and scroll-to-bottom.
+
+2002-12-13 nalin
+ * src/buffer.c: add a short test program.
+ * src/iso2022.c: use hard values instead of GDK defines in the 0 map.
+ Add _vte_iso2022_substitute_single() for performing a single mapping
+ operation.
+ * src/vte.c: use _vte_iso2022_substitute_single() instead of a local
+ mapping table when mapping line-drawing charset data, simplifies
+ maintenance of the mapping.
+
+2002-12-12 Pablo Saratxaga <pablo mandrakesoft com>
+ * configure.in: Added Catalan (ca), Spanish (es)
+ and Hebrew (he) to ALL_LINGUAS
+
+2002-12-11 nalin
+ * configure.in: define VTE_USE_GNOME_PTY_HELPER if use of the helper
+ is enabled at compile-time (enabled by default).
+ * src/iso2022.c(_vte_iso2022_substitute): force characters received in
+ the line-drawing map to have width = 1 (more #99603), so that we can
+ distinguish them from line-drawing characters received in eucXX, which
+ have width = 2.
+ * src/vte.c(vte_terminal_insert_char): when mapping from line-drawing
+ to gunichars, force a width of 1.
+ * src/vte.c(vte_terminal_process_incoming): extend the bounding box
+ for updates one cell further to the right, in case the cursor is in
+ a cell which contains a wide character.
+ * src/pty.c(_vte_pty_start_helper): spit out a warning if the helper
+ isn't installed.
+ * src/pty.c: don't compile in any gnome-pty-helper-specific code if
+ VTE_USE_GNOME_PTY_HELPER isn't defined.
+
+2002-12-10 nalin
+ * src/buffer.c, src/buffer.h: centralize buffer length sanity checks,
+ add some utility functions for stuffing things into buffers and pulling
+ them back out.
+ * src/debug.c, src/debug.h: add a lifecycle debug class, for tracking
+ down initialization order weirdness.
+ * src/pty.c: try to check that we can run the pty helper before
+ trying to run it, to avoid SIGPIPE failures when it's not installed.
+ * src/vte.c: never grab focus -- let the shell app deal with it.
+ Return TRUE from mouse motion and press/release events to keep them
+ from being passed up. (#101089)
+
+2002-12-09 nalin
+ * configure.in: add "uk" to the list of languages.
+ * src/vte.h: remove the alternate attribute bit -- it's no longer
+ meaningful.
+ * python/vte.override: remove the alternate attribute, add the
+ strikethrough attribute.
+ * src/vte.c (vte_terminal_insert_char): perform drawing character set
+ to Unicode mapping at insertion time if the alternate attribute is set,
+ otherwise discarding the attribute. If the character being inserted is
+ a graphic character, force its width to 1 or 2 depending on the current
+ codeset (#99603).
+ * src/vte.c (xlfd_from_pango_font_description): take advantage of
+ XftXlfdParse if we were built with Xft, as it appears to handle family
+ aliases.
+ * src/vte.c (vte_terminal_draw_graphic): decide what to draw using
+ Unicode code points (instead of reverse mappings to drawing set), and
+ implement the double-thick versions of many of the existing glyphs.
+ Return a boolean indicating whether or not we drew something.
+ * src/vte.c (vte_terminal_draw_row): if vte_terminal_draw_graphic()
+ returns FALSE, try to draw the graphic character using the current font.
+ * src/vte.c (vte_terminal_paint): if vte_terminal_draw_graphic()
+ returns FALSE, try to draw the graphic character using the current font.
+ * src/caps.c: add the undocumented default 0 to the OSC set text
+ parameters sequence (#100468).
+
+2002-12-03 nalin
+ * README: updates.
+ * src/iso2022.c, src/iso2022.h: add a width mask for overriding widths
+ for ambiguous Unicode characters, and _vte_iso2022_get_width() for
+ reading the width, using unused bits in Unicode in a manner similar to
+ http://www.cl.cam.ac.uk/~mgk25/ucs/iso2022-wc.html
+ * src/table.c,src/trie.c: strip out iso2022 widths when extracting
+ parameters of control sequences.
+ * src/vte.c: heed iso2022 widths when inserting characters into the
+ screen buffer, but clear then before storing them so that copy and
+ paste will continue to work.
+ * src/matcher.c, src/matcher.h: add matcher, a wrapper for table and
+ trie, and move _vte_table_narrow_encoding and _vte_table_wide_encoding
+ to this module.
+
+2002-12-03 nalin
+ * src/pty.c: if TIOCSCTTY is defined, use it, even if it's redundant.
+
+2002-12-02 nalin
+ * po: update-po
+ * src/utf8echo.c: change the default from resetting to the terminal's
+ default encoding before exiting to leaving it alone. Don't mess with
+ the terminal's encoding if stdout isn't connected to a terminal.
+ * src/nativeecho.c: add, for printing random bytes.
+
+2002-12-02 nalin
+ * src/vte.c: don't zero-fill rows, space-fill them.
+ * src/vte.c(vte_terminal_is_word_char): Don't just fail if the
+ word_chars array doesn't exist.
+
+2002-12-02 nalin
+ * acinclude.m4: add AC_CHECK_CC_OPT from ac-archive.
+ * configure.in: check for cfmakeraw, sys/select.h, compiler support
+ for -std= (#99698)
+ * doc/boxes.txt: change reference to online Docbook reference to the
+ charts at the Unicode web site.
+ * src/dumpkeys.c: make a best-effort at making a terminal raw on systems
+ where cfmakeraw() isn't available, from patch by Brian Cameron. Wait
+ for up to 1/50 of a second for more bytes we'll consider to be part of
+ a sequence.
+ * src/pty.c(getpt): ensure that the new terminal is opened in non-
+ blocking mode.
+ * src/trie.c: use g_unichar_digit_value() instead of subtracting '0'.
+ * src/vte.c: don't declare the xft_textitem member on non-Xft2 systems,
+ because it uses an Xft2-specific type (#99685).
+ * src/vteapp.c: add $pkgdatadir/fonts to the font path for testing.
+
+2002-11-25 nalin
+ * src/vte.c: fix mapping of Unicode code chars 0x252c and 0x2534 which
+ incorrectly mixed them up (#99474).
+ * src/iso2022.c: fix mapping of 'v' and 'w' from special graphics to
+ Unicode, which masked the above bug.
+
+2002-11-25 nalin
+ * src/vte.c: fix cd() to clear using the current colors.
+
+2002-11-25 nalin
+ * termcaps/xterm: add ta back in -- it's not a key sequence.
+
+2002-11-25 nalin
+ * src/vte.c: fix cd() to clear to the right of the cursor on the current
+ line instead of the entire line (#98844).
+
+2002-11-25 nalin
+ * src/vte.c: add keyboard debug messages when we change keyboard modes.
+ * termcaps/xterm: remove kh definition.
+
+2002-11-25 nalin
+ * src/keymap.c: make keypad arrow keys follow cursor mode (#98604).
+
+2002-11-25 nalin
+ * src/keymap.c: sort out when we add modifiers to keys (#98094). Fix
+ Alt+Tab.
+ * termcaps/xterm: remove ta definition.
+
+2002-11-25 nalin
+ * src/debug.c, src/debug.h: add keyboard debugging class.
+ * src/dumpkeys.c: refresh on Ctrl-L, reset on 'r'.
+ * src/keymap.c, src/keymap.h: add more setting combinations, and a
+ simplistic check for more complete coverage.
+ * src/vte.c: add debug messages for keyboard handling. Improve
+ detection of invalid coordinates as a signal that no text is selected
+ or hilited (#98946).
+ * termcaps/xterm.baseline: add a baseline copy of xterm from my termcap,
+ so that I can diff it more easily.
+ * termcaps/xterm: remove key definitions -- xterm's way more complicated
+ than the capability strings suggest.
+
+2002-11-22 nalin
+ * configure.in: incorporate more correct check for the right version of
+ gtk-doc (#99314).
+
+2002-11-15 Hasbullah BIn Pit <sebol ikhlas com>
+
+ * configure.in: Added "ms" to ALL_LINGUAS.
+
+2002-11-11 nalin
+ * src/vte.c: ensure that when we select by line, we include all of the
+ last line, even if it's past the edge of the screen. Snap selection to
+ the beginning or end of a line when selecting lines which don't exist.
+ Only strip off whitespace if there's nothing but whitespace to the right
+ of the selection. Chuck the non-wrapping selection code.
+
+2002-11-11 nalin
+ * src/vte.c: properly set the "selecting" flag again when we start
+ selection (#97923).
+
+2002-11-11 nalin
+ * src/vte.c: rework selection so that word- and line-based selection
+ can wrap like XTerm does (#97057,#97719).
+
+2002-11-07 nalin
+ * src/vte.h: doc fixes.
+ * src/dumpkeys.c: use the older alternate-screen decset value.
+ * src/vte.c: fixup screwups on extending selection (#97118).
+
+2002-11-05 nalin
+ * src/vte.c: handle end-of-line selection correctly. Stop highlighting
+ selection on click, but don't lose it until new text is selected
+ (#97117).
+ * python/vte.override: fix binding for set_colors() to properly take a
+ list of colors for the palette (#97682).
+ * src/vte.c, src/vte.h: add increase-font-size and decrease-font-size
+ to allow mimicking XTerm's behavior on Shift/Control+KP_Add/KP_Subtract
+ * src/vteapp.c: handle increase-font-size and decrease-font-size.
+
+2002-11-05 Abi Brady <morwen evilmagic org>
+ * src/vte.c: Add and implement the strikethrough attribute.
+ Change underline to be drawn using the ascent, rather than
+ arbritarily putting it two lines above the bottom of the
+ charcell - looks much better with large fonts.
+
+2002-11-04 nalin
+ * NEWS: be more verbose.
+ * README: add more items to the TODO list so that I don't forget them.
+ * src/vte.c: ifdef out some of the selection code.
+
+2002-10-30 nalin
+ * src/buffer.c, src/iso2022.c, src/vteaccess.c: add ident tags.
+ * src/vte.c: don't scroll-to-bottom if we're selecting (#97923).
+
+2002-10-30 nalin
+ * src/vteapp.c: implement iconify, deiconify, raise, lower, maximize,
+ restore, refresh, resize, and move signals.
+ * src/vte.c: add vte_terminal_match_remove().
+ * src/vte.c (vte_sequence_handler_cb): clear the current column in
+ addition to columns to the left, spotted by Sam Varshavchik.
+ * src/vte.c: Use g_array_set_size() to clear arrays instead of
+ removing each element. Properly initialize new columns with just the
+ default colors and not other attributes (#96978).
+ * src/vte.c (vte_sequence_handler_ta): revert to non-overwriting tabs,
+ otherwise we got occasional drawing artifacts.
+
+2002-10-30 Abi Brady <morwen evilmagic org>
+
+ * src/vte.c, src/vte.h : Support dim (halfbright) colours. All the
+ infrastructure for this was here already (apart from making sure bold
+ and half are mutually exclusive). Add API set_color_dim, and let
+ set_colors take a palette of size 24.
+
+2002-10-29 Abi Brady <morwen evilmagic org>
+ * src/iso2022.c (_vte_iso2022_map_[J4]): Map to UCS, not keysyms.
+ (which differ > 0xff).
+
+2002-10-28 Abi Brady <morwen evilmagic org>
+ * src/vte.c: Add line-drawing representation for full block. Draw
+ U+23BA-23BD. Fix drawing of U+23BD (scan line 9) and U+2592
+ (checkerboard) to use bottom line of the charcell, not the top line of
+ the one below.
+ * src/iso2022.c: Complete DEC Special Graphics to Unicode map.
+
+2002-10-25 nalin
+ * src/vte.c (vte_terminal_match_check_internal): snip off final
+ newlines when we're matching, they're usually not wanted.
+
+2002-10-24 nalin
+ * src/pty.c, src/pty.h: replace the simpler pty_open() function with
+ a logging version, adding the ability to specify a startup directory
+ (Red Hat #76529).
+ * src/vte.c, src/vte.h: replace the simpler fork_command() function with
+ a logging version, adding the ability to specify a startup directory
+ (Red Hat #76529).
+ * src/vteapp.c: modify call to handle new fork_command().
+ * python/vte.defs: update as above.
+ * python/vte.override: modify call to handle new fork_command(), adding
+ an optional "directory" argument.
+
+2002-10-23 nalin
+ * src/vte.c: refactor the selection code, cleaning up when selection is
+ cleared/started/extended (#95783).
+
+2002-10-22 nalin
+ * src/vte.c: rework how wide characters are stored to allow storing
+ tabs (#95958).
+
+2002-10-21 nalin
+ * python/vte.override: wrap vte_terminal_get_text() and
+ vte_terminal_get_text_range(). Based on patch from ha shao (#96230).
+
+2002-10-21 nalin
+ * src/vte.c, src/vte.h: add a user pointer argument to get_text
+ callbacks (#96230).
+ * src/Makefile.am: bump shared library version because we changed
+ a public function's signature. Take the opportunity to replace padding
+ fields which had previously been used up.
+
+2002-10-21 jacob berkman <jacob ximian com>
+ * src/Makefile.am (EXTRA_DIST): include decset, osc, and window
+
+2002-10-18 nalin
+ * src/iso2022.c: use character constants instead of hex constants.
+ * src/iso2022.txt: add more illustrations.
+ * src/decset: scriptlet to save some typing.
+ * src/vte.c: zero-terminate window and icon title strings again.
+ * src/decset, src/osc, src/window: add.
+
+2002-10-18 nalin
+ * src/keymap.c: add a mapping for the escape key.
+
+2002-10-18 nalin
+ * src/vte.c: implement decset 42 (enable/disable NRC processing), but
+ enable it by default. Implement decset 44 (margin bell).
+ * src/vte.c: do not trust the event->string. Use gdk_keyval_to_unicode
+ and the built-in keymapping to cope with the weirdness. Extend the
+ range of characters we controlify from 0x40-0x60 to 0x40-0x7f so that
+ lower-case ascii chars controlify (not a word, I know).
+ * src/keymap.c: add map entries for GDK_Return and GDK_KP_Enter for
+ GDK_CONTROL_MASK = cr, normal = lf.
+
+2002-10-18 nalin
+ * src/vte.c: make sure that strings passed to a commit signal are zero-
+ terminated (#96131).
+ * python/Makefile.am: install the module in site-packages instead of a
+ subdirectory, which doesn't work on my system.
+
+2002-10-17 nalin
+ * src/vte.c: remove vte_terminal_update_scroll_delta, which only did
+ things vte_terminal_adjust_adjustments already did and was only called
+ immediately after. Fill newly-added lines with the current attributes
+ if the current background isn't the default color (Red Hat #73853).
+ Implement ignored DECSET settings, so that we don't mistakenly complain
+ about settings not being implemented yet when we actually just want to
+ ignore them.
+ * vte.spec: 0.9.2
+
+2002-10-17 nalin
+ * src/vte.c: force the first cursor redraw after focus-in to always be
+ in the foreground color (Red Hat #75908).
+
+2002-10-17 nalin
+ * src/vte.c (vte_terminal_insert_char): force invalidation mode if
+ we're in insert mode to get the entire line redrawn. Spotted by msw.
+
+2002-10-17 nalin
+ * configure.in: clean up tests for wint_t. Patch from Brian Cameron.
+
+2002-10-17 nalin
+ * src/pty.c: close a possible race on systems where pty initialization
+ requires more than just opening the pty (for example, Solaris). Spotted
+ by Brian Cameron.
+ * src/utf8echo.c: don't reset to iso-8859-1 unless -r is used.
+
+2002-10-16 nalin
+ * src/vte.c: remove a bogus assertion for a case which we were already
+ handling a little further down (incorrectly triggered by autowrap).
+
+2002-10-16 nalin
+ * src/vte.c: adjust our adjustments whenever a line might scroll off
+ the top of the buffer. Fix computation of the new insertion delta to
+ ensure that it never goes below the scroll delta, which should fix the
+ resizing crashes (#94509, #95187, Red Hat #75871), and add some debug
+ assertions to verify this.
+ * configure.in, python/Makefile.am: build the python bindings as a
+ library, not a binary with wacky ldflags.
+
+2002-10-15 nalin
+ * src/vte.c: don't try to close the pty at finalize time if we didn't
+ open it. Patch from ha shao.
+ * src/keymap.c, src/keymap.h: move the addition of modifiers into a
+ separate function. Add the function key strings from terminfo for
+ fkey_sun and fkey_hp cases. Make control+F1 = F13 only in vt220 mode.
+ * src/vte.c: apply modifiers to function keys in normal and legacy
+ modes.
+
+2002-10-14 nalin
+ * src/vte.c: add super-bogus bold text mode (Red Hat #74779).
+
+2002-10-14 nalin
+ * src/caps.c: recognize CSI-r (with no arguments) as resetting the
+ scrolling region in XTerm emulation (Red Hat #75902).
+
+2002-10-14 nalin
+ * src/keymap.c: add mappings for GDK_Page_Up and GDK_Page_Down,
+ missed in the conversion.
+ * src/vte.c: steal GDK_KP_{Add,Subtract,Multiply,Divide} from the
+ input methods (Red Hat #75207).
+
+2002-10-14 nalin
+ * configure.in: more $pkglibdir -> $libexecdir fixing.
+ * doc/Makefile.am: add rules for generating ps and text versions of the
+ ctlseqs docs.
+ * doc/reference/tmpl/vte.sgml: add snippet for "commit".
+ * python/python/vte.defs: update to add a binding for
+ vte_terminal_fork_logged_command().
+ * src/buffer.h: add a warning comment that these are private interfaces.
+ Wrap declarations in G_BEGIN_DECLS/G_END_DECLS.
+ * src/caps.h: add macros for the SS2/SS3 sequences.
+ * src/marshal.list: add a marshaller for the "commit" signal.
+ * src/keymap.c, src/keymap.h: move the getting-more-convoluted
+ keypress-handling code to a shell that parses tables of static info.
+ * src/vte.c: use the keymap for most non-printable keys. Add a "commit"
+ signal to allow an app to just use the terminal for displaying data and
+ grabbing input (missing functionality noted by ha shao). Obey the
+ application's desired meta-sends-escape setting. Recognize HP function
+ key mode. Recognize and handle legacy XTerm function key mode. Force
+ a redraw if the child application tries to switch to 80/132 columns,
+ even though we don't usually let them succeed. Don't try to send
+ keystrokes to the child pty when there is no child pty. Don't convert
+ final whitespace to newlines when copying text (Red Hat #74611).
+ * python/cat.py: test program for running without a command.
+ * termcaps/xterm: change the definitions for ku/kd/kl/kr to match
+ XTerm in normal cursor mode instead of application cursor mode.
+
+2002-10-11 nalin
+ * src/vte.c: properly distinguish cursor key mode and keypad key mode,
+ obey application mode for cursor keys (#92941).
+ * src/pty.c: reset signal handlers before exec() (Red Hat #75341).
+
+2002-10-11 nalin
+ * src/trie.c: change the typedef of wint_t here to match vte.c (now
+ a gunichar instead of a long). Spotted by Brian Cameron.
+
+2002-10-11 Brian Cameron <Brian Cameron sun com>
+ * configure.in: Changed to that wchar.h is included when checking for
+ wint_t on Solaris. This was needed because on Solaris wint_t is defined
+ to be a long, and in vte.c its definition was recently changed to be a
+ gunichar. This caused the compile to break on Solaris.
+
+2002-10-10 nalin
+ * configure.in, src/pty.c, gnome-pty-helper/Makefile.am: fix the bits
+ I missed when fixing #95085.
+
+2002-10-10 nalin
+ * src/vteapp.c, python/vte-demo.py: allow specifying the scrollback
+ buffer size.
+ * src/vte.c: if we don't have wint_t, typedef wint_t as a gunichar,
+ not a long.
+
+2002-10-09 nalin
+ * src/buffer.c, src/buffer.h: add.
+ * src/interpret.c, src/vte.c: use _vte_buffer structures instead of
+ char arrays with separate lengths. Use a scratch buffer for holding
+ the results of conversions.
+ * src/vte.c: separate the pango and pangox drawing paths so that they're
+ easier to tweak and compare to each other.
+ * src/vte.c: ditch the smooth scrolling change, which won't work right
+ anyway (expose events don't get processed until after we finish
+ processing a chunk of data unless we explicitly request it, so using a
+ bbox is both simpler and faster). Use a mask when creating the cursor
+ we use for hiding the cursor.
+
+2002-10-09 nalin
+ * vte.spec, gnome-pty-helper/Makefile.am: install gnome-pty-helper into
+ the libexecdir, not pkglibdir (#95085).
+ * src/vte.c: obey smooth/jump scrolling options, default is jump scroll.
+
+Mon Oct 7 14:53:12 2002 Owen Taylor <otaylor redhat com>
+ * src/vte.c (vte_font_match): Fix over-aggressive
+ Xft => Fc conversion - need to call XftDefaultSubstitute to pick up Xft
+ X resources, not FcDefaultSubstitute.
+
+2002-10-01 Stanislav Brabec <sbrabec suse cz>
+
+ * configure.in: Added cs to ALL_LINGUAS.
+
+2002-09-24 nalin
+ * src/vte.c(vte_terminal_set_word_chars,vte_terminal_is_word_char):
+ if the list of word characters is NULL or zero-length, try to guess
+ with (g_unichar_isgraph() && !g_unichar_ispunct()), which seems to
+ produce reasonable results (#77134).
+
+2002-09-24 nalin
+ * gnome-pty-helper/acinclude.m4: Fix HAVE_UT_UT_TV for cases where
+ the static initializer might not work right (#93774, patch from
+ Kalpesh Shah).
+
+2002-09-24 nalin
+ * README, gnome-pty-helper/README: Doc fixups (mention gnome-terminal
+ instead of profterm, note the proper permissions for gnome-pty-helper,
+ #84505).
+
+2002-09-20 nalin
+ * src/ring.c: Fix a ring-buffer manipulation bug (Red Hat #74290) which
+ might cause a new item to be inserted in the wrong location.
+
+2002-09-19 nalin
+ * src/interpret.c: Munge input data the way the terminal does so that
+ conversion failures don't wedge us.
+
+2002-09-19 Brian Cameron <Brian Cameron sun com>
+ * src/vte.c: Backed out scrolldelay patches from 09-17 and 09-18 at
+ Nalin's request. Left in the patch which allows programs which
+ update the screen non-linearly like lynx to work properly.
+
+2002-09-18 Brian Cameron <Brian Cameron sun com>
+ * src/vte.c: Corrected a problem with yesterday's patch. I am now
+ properly calling g_source_remove on the scroll_delay timeout
+ function. This prevents VTE from core dumping if you start up
+ more than one VTE gnome-terminal and exit from one of them. Also
+ made the vte_scroll_timeout function a little cleaner by using
+ the VTE_IS_TERMINAL macro.
+
+2002-09-17 Brian Cameron <Brian Cameron sun com>
+ * src/vte.c: Fixed bug with my 09/11 speedup fix which caused programs
+ that update the screen non-linearly like lynx to update incorrectly.
+ Also included a speed improvement which delays the scroll-down for
+ 70ms. Too fast to be noticeable to the user, but it speeds up VTE
+ greatly.
+
+2002-09-13 nalin
+ * src/pty.c: Fix typo which broke builds on systems where MSG_NOSIGNAL
+ is defined.
+
+2002-09-12 Brian Cameron <Brian Cameron sun com>
+ * configure.in : Added -lsocket to LIBS if socket is in libsocket,
+ so VTE will compile on Solaris.
+
+2002-09-12 jacob berkman <jacob ximian com>
+
+ * src/pty.c: only use MSG_NOSIGNAL if it's defined
+
+ * gnome-pty-helper/gnome-pty-helper.c (struct pty_info): remove
+ master_fd and slave_fd fields
+ (shutdown_pty): don't close master/slave fd's here...
+ (pty_add): don't take master/slave fd args
+ (open_ptys): ...close master/slave fd's right after passing them
+
+ this fixes a hang after closing a window on os x, not sure why...
+
+ * gnome-pty-helper/Makefile.am (install-exec-hook): remove
+ trailing / after $DESTDIR
+
+ * configure.in: AC_CHECK_FUNC() doesn't do AC_DEFINE(HAVE_FOO), so
+ do that for socket() and socketpair() if they are found
+
+2002-09-12 nalin
+ * src/vte.c(vte_invalidate_cursor_once): Remove the invalidate_cells
+ parameter, because the function is a big no-op if FALSE, in which case
+ we should just not call it instead. (vte_terminal_process_incoming):
+ refresh the right number of rows after processing a block of data.
+
+2002-09-12 Brian Cameron <Brian Cameron sun com>
+ * src/vte.c Fixed minor error with my previous patch. This just makes
+ a warning go away.
+
+2002-09-11 nalin
+ * src/pty.c: Reorder definitions to avoid implicit declaration warnings.
+ * configure.in: Check for socketpair(). Check for socket() in libc
+ before poking around in libsocket.
+ * gnome-pty-helper/configure.in: Check for openpty() in libutil as well,
+ and do so before we check for other functions.
+
+2002-09-11 nalin
+ * configure.in, gnome-pty-helper/cofnigure.in: Test for sendmsg() with
+ AC_CHECK_FUNCS instead of AC_TRY_COMPILE.
+ * acconfig.h: Removed.
+ * src/pty.c: Formatting.
+
+2002-09-11 Brian Cameron <Brian Cameron sun com>
+ * configure.in: Added check for socket library and SendMsg
+ check.
+ * acconfig.h: Added this file with a HAVE_SENDMSG definition.
+ * gnome-pty-helper/configure.in: Added checks needed for the
+ source code, including the SendMsg check.
+ * src/pty.c: Corrected _vte_pty_pipe_open so it works on
+ Solaris.
+ *src/vte.c: Made some speed improvements so vte_invalidate_cells
+ is not called for every character in the while loop in
+ vte_process_incoming, but only once when the while loop is done.
+
+2002-09-11 nalin
+ * gnome-pty-helper: Update from libzvt CVS.
+ * python/Makefile.am: Fix some automake breakage.
+
+2002-09-11 nalin
+ * python/Makefile.am: Fix my broken merge of Jacob's patch to make
+ inability to build python modules non-fatal.
+
+2002-09-11 nalin
+ * src/vte.c: Skip lookups for padding information if we're pretty sure
+ we're using a monospaced font.
+
+2002-09-10 nalin
+ * src/vte.c: Fix from Brian Cameron for uninitialized GError in
+ vte_wc_from_unichar().
+ * src/interpret.c, src/iso2022.c, src/pty.c, src/ring.h, src/table.c,
+ src/table.h, src/trie.c, src/vte.c, src/vteaccess.c: Signed/unsigned
+ int/size_t/gsize and pointer typecast warning fixes from Brian Cameron.
+ * src/vte.c: Avoid invalidating the cursor in the cursor blink
+ timeout unless we have focus.
+
+2002-09-10 Jacob Berkman <jacob ximian com>
+ * configure.in (ALL_LINGUAS: remove es until the file really gets
+ added. also it wasn't added alphabetically
+
+2002-09-10 Pablo Gonzalo del Campo <pablodc bigfoot com>
+
+ * configure.in: Added "es" to ALL_LINGUAS
+
+2002-09-10 nalin
+ * src/pty.c, src/pty.h: Add vte_pty_close() and
+ vte_pty_open_with_logging(), breaking the ABI.
+ * src/vte.c, src/vte.h: Add vte_terminal_fork_logged_command(), breaking
+ the ABI.
+ * gnome-pty-helper/*: Swallow the pty helper bits of gnome-libs,
+ but install into $pkglibdir instead of $sbindir so that existing
+ packages don't suddenly start breaking.
+ * src/termcap.c(_vte_termcap_find_string_length): Fix signature to
+ match the declaration in termcap.h. From patch by Jacob Berkman.
+
+2002-09-06 nalin
+ * configure.in: Add $X_PRE_LIBS to the front of $X_LIBS, -lX11 and
+ $X_EXTRA_LIBS to the end of $X_LIBS. Remove some cruftiness and set
+ CPPFLAGS when checking for Xft. Check for the existence of wchar.h,
+ because it might not exist. Use an automake conditional to make
+ compilation of the Python bindings non-critical. From patch by
+ Jacob Berkman.
+ * src/pty.c: Silence compiler warning when exec() fails. From patch
+ by Jacob Berkman.
+ * src/interpret.c, src/vte.c: Stop including langinfo.h since we don't
+ call nl_langinfo() any more. Adapted from patch by Jacob Berkman.
+ * src/caps.c: Fill in a couple of missing initializers.
+ * src/vte.c, src/vte.h: Add accessor functions for use in language
+ bindings.
+ * python/vte.defs: Add defs for the new accessor functions.
+ * python/vte-demo.py: Add a scrollbar to the sample window, handle
+ more of the options the C version handles. Stop expecting additional
+ arguments with a signal that doesn't include any.
+ * python/Makefile.am: We only have one target, so don't bother with
+ target-specific primaries if we can avoid it (#92252).
+ * vte.pc.in: Note build dependencies on ATK, Pango, and PangoX.
+
+2002-09-05 nalin
+ * src/caps.c, src/caps.h, src/debug.c, src/debug.h, src/interpret.c,
+ src/iso2022.c, src/iso2022.h, src/pty.c, src/reaper.c, src/ring.c,
+ src/ring.h, src/table.c, src/table.h, src/termcap.c, src/termcap.h,
+ src/trie.c, src/trie.h, src/utf8echo.c, src/vte.c, src/vteaccess.c,
+ src/vteapp.c: prefix library-internal interfaces with underscores so
+ that gtk-doc doesn't guess they're public.
+ * src/vte.c: return FALSE from focus-in/focus-out/expose handlers.
+
+2002-09-05 nalin
+ * src/caps.h, src/debug.h, src/iso2022.h, src/marshal.h, src/ring.h,
+ src/table.h, src/termcap.h, src/trie.h: add giant warnings about how
+ these headers define library-internal interfaces.
+ * vte.spec: 0.8.18
+
+2002-09-05 nalin
+ * docs/reference: first pass at writing documentation
+ * src/termcap.c: fix how'd-that-ever-work in vte_termcap_strip(), patch
+ from Brian Cameron. Take \\e as an alias for \\E, which is already
+ an alias for Escape.
+ * src/vte.c(vte_terminal_get_cursor): Return an absolute cursor position
+ instead of a relative position.
+
+2002-09-04 jacob berkman <jacob ximian com>
+
+ * src/vte.c (vte_default_substitute): only compile the FC_HINT_STYLE
+ part if FC_HINT_STYLE is defined
+
+2002-09-04 nalin
+ * src/vte.c: Add missing <fontconfig/fontconfig.h> include for Xft2,
+ spotted by Jacob Berkman.
+
+2002-09-04 Brian Cameron <Brian Cameron sun com>
+ * src/vte.c: Avoid double color deallocations with Xft.
+ * configure.in: Added stropts.h check for Solaris.
+ * src/vte.c: Do not send data to the slave if the length is zero.
+ Some shells on Solaris do not handle this well.
+ * src/pty.c: Added ptem/ldterm/ttcompat ioctls so VTE will work
+ on Solaris.
+
+2002-09-03 nalin
+ * src/vte.c: Avoid double color deallocations with Xft.
+
+2002-09-03 nalin
+ * src/vte.c: Handle color allocation failures with Xft better.
+ * src/vte.h: Clean up typedef declarations.
+
+2002-09-03 nalin
+ * src/marshal.list, src/reaper.c, src/reaper.h, src/vte.c: Modify the
+ child-exited signal to pass a signed int and an unmodified exit status,
+ allowing the callback to check for normal/abnormal exit status.
+
+2002-09-02 nalin
+ * src/vte.c: Don't send zero-length strings to the child -- it may not
+ be able to cope properly. Spotted by Brian Cameron.
+
+2002-08-30 nalin
+ * src/vte.c: Handle cursor exposes correctly for multicolumn characters,
+ no matter which cell the cursor is in. Fix autoscrolling boundary
+ checks for when allocation.y != 0.
+
+2002-08-30 nalin
+ * src/vte.c(vte_terminal_insert_char): Wrap correctly to avoid screwing
+ up multicolumn characters.
+
+2002-08-30 nalin
+ * src/vte.c: Get smarter about when it's necessary to start messing
+ with our adjustments (Red Hat #73091). Change the way we clear the
+ screen so that all of the contents of the current screen become
+ scrollback data.
+
+2002-08-30 nalin
+ * src/vte.c: Register VteTerminalEraseBinding with GObject as an
+ enumerated type.
+ * python/vte.defs: Update.
+ * python/vte.overrides: Ignore vte_terminal_get_text_range().
+
+2002-08-30 nalin
+ * src/vte.c: Restore the focus-in/focus-out handlers -- the defaults
+ don't quite DTRT for us because they miss our im_context (#72946). When
+ setting the cursor location for the input method, make the Y coordinate
+ relative to the window, not the scrollback buffer. When resizing the
+ scrollback buffer, clamp the cursor to the set of possible locations,
+ not the visible locations.
+
+2002-08-30 nalin
+ * src/vte.c: Initialize the pty master fd to -1 to avoid spurious
+ window resizes on fd 0.
+ * src/debug.c, src/debug.h: Add a "pty" debug message class.
+
+2002-08-30 nalin
+ * src/iso2022.c: Fix a how'd-that-ever-work bug (not returning anything
+ from vte_iso2022_new()), spotted by Brian Cameron.
+ * configure.in: Use -Wall when building with gcc in maintainer mode.
+ * src/interpret.c, src/ring.h, src/table.c, src/trie.c, src/vte.c,
+ src/vteaccess.c: Warning cleanups.
+
+2002-08-29 nalin
+ * src/vte.c: Clean up bookkeeping for mouse autoscrolling and adjustment
+ change notifications. Reset the scrolling and insertion deltas when
+ clearing the history.
+ * src/interpret.c: Don't dump data on incomplete conversion errors,
+ which we're going to retry anyway.
+ * src/iso2022.txt: Add iso-2022-kr examples (no workee -- uses GR).
+
+2002-08-28 nalin
+ * src/vte.c, src/vte.h: Add vte_terminal_copy_primary and
+ vte_terminal_paste_primary(), because I really want to let
+ profterm decide default values for key bindings.
+
+2002-08-28 Gustavo Noronha Silva <kov debian org>
+ * configure.in (ALL_LINGUAS): added pt_BR
+
+2002-08-27 nalin
+ * src/vte.c: Stop autoscrolling on button release.
+
+2002-08-27 nalin
+ * src/vte.c: When autoscrolling, clamp the new boundary to what the user
+ can see.
+
+2002-08-27 nalin
+ * src/vte.c: Implement autoscroll (Red Hat #70481).
+
+2002-08-27 nalin
+ * src/vte.c: Only perform cr-lf substitutions when pasting text, not
+ when inputting from a live user (Red Hat #72639). Bind GDK_ISO_Left_Tab
+ to kB. Formatting changes.
+ * termcaps/xterm: Bind kB to back-tab (Red Hat #70340).
+
+2002-08-27 nalin
+ * src/vte.c: Don't tamper with the scrolling offsets -- they're updated
+ when we handle adjustment_changed notifications. Scroll instead of just
+ moving the cursor down when soft-wrapping to the next line. Avoid
+ emitting adjustment_changed when only the value has changed, likewise
+ for the value and the other fields of the adjustment.
+
+2002-08-27 nalin
+ * src/vte.c: Keep cursor position and scrolling offsets from going
+ wonky when you resize, especially on the alternate screen. Suppress
+ duplicate adjustment_changed notifications.
+ * src/vteapp.c: Set the MIN_SIZE geometry hints so that we can resize
+ to unreasonably-small dimensions.
+ * src/ring.c, src/ring.h: Add vte_ring_new_with_delta().
+
+2002-08-26 nalin
+ * src/vte.c: Add padding spaces after full lines as well -- spotted by
+ both notting and pjones.
+
+2002-08-26 nalin
+ * src/vte.c: Don't deadlock when substitution fails, spotted by msw.
+
+2002-08-26 nalin
+ * src/vte.c: If GDK_USE_XFT is set, check the value of GDK_USE_XFT, not
+ VTE_USE_XFT. Spotted by hp.
+
+2002-08-25 nalin
+ * src/vte.c: Heed the reverse-video setting when painting character
+ cells again. Make selection and matching coordinates global, fixing
+ the selecting-while-scrolling case. Prevent overdraws into the padding
+ area on the right.
+
+2002-08-25 nalin
+ * src/vte.c: Make nd() move right but not wrap -- according to Strang
+ it's undefined, but xterm doesn't wrap it. Separate do/DO from sf/SF
+ and up/UP from sr/SR, because the scrolling behavior is supposed to be
+ different. Add support for decset/decreset 7 (wraparound mode) and
+ 1051 (Sun keyboard). Add support for DECALN. Remove some type checks
+ from run-time which the compiler can catch with certainty.
+
+2002-08-25 Kjartan Maraas <kmaraas gnome org>
+ * configure.in: Added Norwegian (no) to ALL_LINGUAS.
+
+2002-08-25 Pablo Saratxaga <pablo mandrakesoft com>
+ * configure.in: Added Vietnamese (vi) to ALL_LINGUAS
+
+2002-08-22 nalin
+ * src/caps.c: Bind ENQ to "return-terminal-status".
+ * src/iso2022.c: Fix an off-by-one which incorrectly triggered an
+ assertion.
+ * src/vte.c: Implement send-primary/secondary-device-attributes. Bind
+ shift+insert to "paste PRIMARY". Guard against NULL window/icon title
+ when telling the child app what they are. Prevent DO(), up(), and UP()
+ from scrolling.
+
+2002-08-22 nalin
+ * src/vteapp.c: Set geometry hints using the initial font setup.
+2002-08-22 nalin
+ * src/vte.c, src/vte.h: Make use of the visible bell a separate option
+ from use of the audible bell, allowing both/neither to be used. Open
+ fonts right away again -- profterm reads the metrics right after calling
+ set_font(), so we have to open fonts ASAP. Rework the Xft/Pango/Xlib
+ decision code to be more consistent. Watch for style changes and reset
+ our font to the new style's font when we're already using the old
+ style's font.
+2002-08-21 nalin
+ * src/iso2022.c(vte_iso2022_substitute): Take a vte_table as an
+ additional argument, and don't mess with text that's part of a control
+ sequence, even if it's in shifted-out text.
+ * src/table.c(vte_table_match): Speed up for the no-arguments-requested
+ case, which just became much more common.
+2002-08-21 nalin
+ * src/vte.c(vte_terminal_draw_rows): Cap the maximum number of
+ characters we draw in a single call to vte_terminal_draw_cells at a
+ reasonable number.
+2002-08-21 nalin
+ * src/table.c: Don't overwrite the original pattern pointers before
+ freeing the old value.
+ * src/vte.c: Use the same pango context whenever possible, to save on
+ PangoX startup time.
+2002-08-20 nalin
+ * src/vte.c: Unref the output channel one more time when we're done
+ sending data to the child. Free the background data GDK property when
+ we're finished with it. Don't retrieve the pango context when drawing
+ unless Xft has already been disabled. Don't try to use the pango layout
+ to draw unless it's valid. Don't try to use the XftDraw item to draw
+ unless it's valid.
+2002-08-20 nalin
+ * src/vte.c: Dispose of the updated substitution context properly when
+ processing blocks of input text. Spotted by Arjan van de Ven.
+2002-08-20 nalin
+ * src/ring.c: Debug when rows get freed.
+ * src/vte.c: Maybe-release pango contexts after unreffing layouts which
+ refer to them. Decide on how we want to draw fonts before deciding
+ which fonts to draw, to avoid spurious font loading. Remove output tags
+ when the output tag's callback is about to return FALSE.
+2002-08-20 nalin
+ * src/vte.c: Don't leak the hintstyle and rgba settings. Patch from
+ Arjan van de Ven. Free PangoX contexts when we're done with them,
+ spotted by Arjan van de Ven.
+2002-08-19 nalin
+ * src/vte.c: Load fonts just-in-time to avoid spurious reloads. Don't
+ override the focus_in and focus_out event handlers -- the defaults DTRT.
+ * src/debug.c, src/debug.h: Add a RING debug class.
+2002-08-19 nalin
+ * src/iso2022.c: Handle override maps which don't affect the font
+ palette correctly, resetting at newlines and escape marks. Process
+ bogon data correctly.
+ * src/iso2022.txt: Add some sample text.
+2002-08-19 nalin
+ * src/vte.c: Fixup some fontconfig/Xft mixups. Set the hint style
+ instead of hinting when reading the GTK hint style setting (spotted
+ by katzj and otaylor).
+2002-08-19 nalin
+ * src/vte.h, src/vte.c: Use gssize instead of ssize_t. Perform
+ substitutions while processing. Use PangoX contexts when we're using
+ the PangoX fontmap and when doing PangoX rendering.
+2002-08-19 nalin
+ * src/mkunitables.sh,src/unitable.*: Add.
+ * src/iso2022.c, src/iso2022.h: Use unitables.
+ * src/caps.c: Remove sequences for designating character sets. Switch
+ to using a second passed-in buffer for storing results in case the
+ caller doesn't want substitutions done in-place.
+ * src/debug.c, src/debug.h: Add a substitution debug flag.
+ * src/interpret.c: Perform substitution.
+ * src/table.c, src/table.h: Use gssize instead of ssize_t.
+ * src/termcap.c, src/termcap.h: Use gssize instead of ssize_t.
+ * src/utf8echo.c: Use strtol, allowing users to specify code points in
+ hex format.
+2002-08-14 nalin
+ * src/vte.c(vte_terminal_configure_toplevel): repaint the entire window
+ to ensure that any overdraw area we're not paying attention to at least
+ gets cleared to the background.
+ * src/vte.c(vte_terminal_locale_encoding): don't try to second-guess
+ the local encoding, just use the current charset as returned by
+ g_get_charset().
+2002-08-14 nalin
+ * src/vte.c(vte_terminal_reset): drop pending incoming data on reset.
+ * src/vte.c: give reprocessing of pending input data a higher priority
+ than reading it from the child to prevent backlogs on corrupt or invalid
+ multibyte data from building up and whacking us exponentially.
+2002-08-13 nalin
+ * src/vte.c(vte_sequence_handler_delete_lines): initialize lines added
+ to the current default colors. Spotted by jrb.
+ * src/vte.c(vte_terminal_set_font): don't try to pick up GTK Xft
+ settings unless we're using FontConfig. Patch from otaylor.
+2002-08-11 nalin
+ * src/vte.c: reorder set/reset processing for decset so that 1049
+ properly represents the combination of 1047 and 1048 (#90027).
+2002-08-11 nalin
+ * src/caps.c: properly escape a sequence which had a bare '%' in it.
+2002-08-11 nalin
+ * src/vte.c: change Xft-related defaults match whichever version of GTK
+ we were built with (hopefully).
+2002-08-11 nalin
+ * src/vte.c: don't bother with cursor blinking or freezing/thawing
+ updates when the widget isn't realized. Patch from Gustavo Giráldez.
+2002-08-08 nalin
+ * src/vte.c: take extra steps to make sure that the cursor doesn't go
+ back into negative scrollback space.
+2002-08-08 nalin
+ * src/vte.c(vte_terminal_invalidate_all): rewrite.
+2002-08-08 nalin
+ * src/vte.c(vte_terminal_paint,vte_terminal_draw_cells): fill in the
+ background color when drawing the cursor, even if it's going to end up
+ as the default background color, spotted by Peter Jones. Draw the
+ cursor correctly if it's over a graphic character.
+2002-08-07 nalin
+ * src/vte.c(vte_terminal_draw_cells): once again, avoid drawing NULs.
+ * src/vte.c: add a small pad to each edge (#89048).
+ * src/vteapp.c: handle widget padding.
+2002-08-07 nalin
+ * src/interpret.c: look for $pkgdatadir/termcap/$TERM first, as the
+ widget does, before consulting /etc/termcap.
+ * src/ring.c(vte_ring_free): check for a non-NULL removal function
+ before calling it.
+ * src/vte.c(vte_terminal_key_press): add an option for doing
+ VT220-style or Sun/PC-style modified function keys. Default to VT220
+ for now, though, pending feedback.
+ * src/vte.c(vte_terminal_reset): scroll to the bottom when resetting.
+2002-08-07 nalin
+ * src/vte.c(vte_terminal_draw_cells): don't trust XftDrawString32() to
+ advance linearly for monospaced fonts (#90164).
+
+2002-08-07 nalin
+ * src/vte.c(vte_terminal_reset): reset the default setting as well
+ (#89506).
+
+2002-08-07 nalin
+ * src/vte.c(vte_terminal_draw_cells): perform Xft remapping for Xft1,
+ switch back to PangoX.
+2002-08-06 nalin
+ * src/vte.c(vte_terminal_set_encoding,
+ vte_sequence_handler_local_charset): use g_get_charset() instead of
+ nl_langinfo() to determine the default codeset, and to check if it's
+ UTF-8. Patch from Hidetoshi Tajima.
+ * src/vte.c(vte_terminal_set_encoding): don't leak conversion
+ descriptors when changing the encoding fails. Patch from Hidetoshi
+ Tajima.
+ * src/vte.c(vte_terminal_send): don't read past the converted string
+ when performing paste substitutions.
+ * src/vte.c: rework the straight-Pango rendering routines to call
+ normal Pango instead of PangoX.
+ * src/vte.c(vte_terminal_ensure_cursor): speed up the "add many cells"
+ case a bit.
+2002-08-05 nalin
+ * src/vte.c(vte_cell_is_between): sort the two endpoints correctly and
+ provide a boolean to control whether or not the endpoint is "in".
+ * src/vte.c(vte_cell_draw_rows): check if a cell is selected using
+ the right indicator.
+ * src/vte.c(vte_terminal_get_text): when adding a newline to the end
+ of a returned line, don't show it as being in the rightmost column.
+ * src/vte.c(xlfd_from_pango_font_description): turn the DPI, pixel size,
+ and added info into wildcards.
+ * src/vte.c(vte_terminal_draw_cells): go back to drawing individual
+ cells when using Xlib.
+ * src/vte.c: Compute right-side padding as well as left.
+ * src/vte.c(vte_terminal_init): disable use of PangoX by default.
+ * src/vteapp.c: add -D to add the same patterns profterm does to test
+ dingus hiliting.
+
+2002-08-03 Havoc Pennington <hp redhat com>
+
+ * src/vte.c (vte_terminal_setup_background): add a gdk_flush()
+ before the error trap pop, just for paranoia, may help with
+ #89049
+
+2002-08-02 nalin
+ * src/vte.c(vte_terminal_send): Substitute carriage returns for
+ newlines when pasting text to the child, fixing weird paste behavior
+ in pico and friends.
+
+2002-08-02 Christophe Merlet <christophe merlet net>
+
+ * configure.in: Added fr to ALL_LINGUAS.
+
+2002-08-01 nalin
+ * src/pty.c, src/pty.h: Expose vte_pty_set_size() and get_size() to
+ localize terminal ioctl usage.
+ * src/ring.c(vte_ring_validate): Don't repeatedly compute the same
+ value when we know it won't change.
+ * src/vte.c(vte_wc_from_unichar): Implement for the non-STDC_ISO_10646
+ case, heavily based on patch from Hidetoshi Tajima.
+ * src/vte.c(vte_terminal_ensure_cursor): Don't initialize the local
+ data unless we have to.
+ * src/vte.c(vte_terminal_process_incoming): Don't insert NUL characters
+ into the display, matching behavior of xterm.
+ * src/vte.c: Clean up use of various G_PRIORITY values throughout to
+ allow for simpler tuning. Rewrite rendering code to use per-paint
+ PangoLayouts when they're needed, use Xft2's DrawCharSpec function when
+ available, and to cut down on X requests. Don't paint on expose events
+ if the window isn't realized, drawable, and at least partially visible.
+ Don't deselect previous selection when the user clicks unless there's
+ also a drag first.
+2002-07-31 nalin
+ * src/pty.c: Include <termios.h> if available, per patch from Hidetoshi
+ Tajima.
+ * src/trie.c: Include missing <wchar.h>, spotted by Hidetoshi Tajima.
+ * src/vte.c: Initialize new lines created in insert_lines() to the
+ current default attributes like al() does.
+2002-07-30 nalin
+ * configure.in: Check for wint_t and attempt to allow compiles even
+ when wint_t isn't defined (this type is used only debug code, so it
+ shouldn't break anything).
+ * src/caps.c: Remove "te" and "ti", which are logical, in the same way
+ "so" is, from the known capabilities lists. Add a "is a key" field to
+ the termcap list so that we don't match against keystrokes in case
+ they're also control sequences.
+ * src/interpret.c: Use tables instead of tries. Don't add key sequences
+ to the table.
+ * src/pty.c: Fix incorrect invocation in sample.
+ * src/reaper.c: Include stdlib.h to quiet compiler warning.
+ * src/trie.c, src/trie.h: Remove the unused precomputing routines.
+ * src/utf8echo.c: Switch to link with tables instead of tries.
+ * src/vte.c: Switch to using tables instead of tries. Map
+ cursor-backward to LE instead of le, which handles parameters right.
+ Don't add key sequences to the parsing table. Tune updates so that
+ they occur less often when we're processing large amounts of data from
+ the child. Add a 'status-line-changed' signal. Implement fs() and
+ fix ts(). Add ::get_status_line() to get the contents of the status
+ line. Obey it() when setting default tabstops. Implement
+ cursor_next_line(), cursor_lower_left(), cursor_preceding_line(),
+ cursor_horizontal_and_vertical_position(), erase_characters(), and
+ insert_blank_characters(). Implement nw().
+
+2002-07-26 nalin
+ * src/vte.c: Initialize new lines added for al(). Spotted by jrb.
+
+2002-07-25 Ole Laursen <olau hardworking dk>
+
+ * configure.in: Added Danish translation.
+
+2002-07-25 nalin
+ * README: Note that bold isn't broken any more.
+ * termcaps/xterm: Note that k; was added.
+ * src/pty.c: Set the proper number of columns in the window size.
+ * src/ring.h: Change macro argument names to hopefully not step on
+ application code.
+ * src/vte.c: Set the terminal size to the default size as specified in
+ termcap at init-time.
+2002-07-24 nalin
+ * src/pty.c: Add private vte_pty_set_size() function.
+ * src/pty.c, src/pty.h: vte_pty_open() takes size arguments now.
+ * src/vte.c: Open the PTY with the proper initial size.
+2002-07-23 nalin
+ * src/ring.c, ring.h: Expose the ring implementation and convert several
+ simple functions into macros.
+ * src/vteapp.c: Pass all long options on to gtk_init().
+2002-07-23 nalin
+ * src/vte.c: Fix realize/unrealize to be properly reversible. Use the
+ font from the default style unless we're explicitly given one.
+ * src/vteapp.c: Don't set base size or minimum size geometry hints when
+ sizing the terminal widget.
+2002-07-22 nalin
+ * src/pty.c(vte_pty_ptsname): Fix an incorrect logic check.
+2002-07-19 nalin
+ * src/vte.c(vte_terminal_set_color_internal): If we're changing the
+ background color, apply it to the widget's window as well, from msw.
+2002-07-19 nalin
+ * src/vte.c: Undo the scrolling changes -- there too many combinations
+ of circumstances that cause them to not work right.
+2002-07-18 nalin
+ * src/vte.c: Fudge the repaint line count by one when scrolling regions
+ to ensure that the old cursor gets repainted. Calculate the area which
+ needs to be repainted when reverse-scrolling correctly.
+2002-07-18 nalin
+ * src/vte.c: Implement enough of set-mode and reset-mode to allow
+ toggling of insert mode using this sequence. Move all scrolling into
+ vte_terminal_scroll_region and use gdk_draw_drawable to avoid repainting
+ from scratch whenever possible.
+2002-07-17 nalin
+ * configure.in: Actually set ALL_LINGUAS so translations get installed.
+ * README: Document the weirdness that is cursor movement around wide
+ characters.
+ * src/vte.defs: Bind set_color_bold().
+ * src/debug.c: Suppress warnings when $VTE_DEBUG_FLAGS isn't set.
+ * src/pty.c, src/reaper.c, src/termcap.c, src/trie.c: Provide for
+ debug messages in the test program.
+ * src/interpret.c, src/trie.c: Use libc stdio instead of g_print for
+ printing what might be part of a multibyte sequence because g_print
+ checks for validity.
+ * src/interpret.c, src/trie.c, src/utf8echo.c, src/vte.c: Use gunichar
+ instead of wchar_t in places where a gunichar is expected. Provide a
+ means for converting from wchar_t to gunichar for the sake of X11 calls
+ which want a wchar_t.
+ * src/trie.c: Provide vte_trie_wide_encoding() for finding a giconv
+ target which is hopefully compatible with gunichar. Likewise provide
+ vte_trie_narrow_encoding() to find one compatible with iso-8859-1.
+ * src/vte.c: Fall back to ISO-8859-1 if we can't set things up for the
+ current locale encoding at startup time. Fall back to the current
+ encoding if we can't perform a given dynamic switch.
+2002-07-16 nalin
+ * configure.in: Set GETTEXT_PACKAGE correctly, noted by menthos.
+
+2002-07-16 nalin
+ * src/vte.c (vte_terminal_set_colors): Guess at an appropriate bold
+ version of the foreground color instead of hard-coding in a default.
+ * src/vte.c, src/vte.h (vte_terminal_set_color_bold): Add.
+
+2002-07-16 nalin
+ * src/trie.c: Correctly check for g_iconv_open() failure.
+ * src/vte.c (vte_terminal_set_encoding): Try to give a meaningful
+ error when g_iconv_open() fails, even though we're screwed.
+
+2002-07-15 nalin
+ * src/vte.c: wrap the new Xft/fontconfig-specific code in HAVE_XFT
+ * src/vte.c: Revert some changes in how new cells were initialized,
+ removing various cosmetic problems.
+ * src/vte.c (vte_terminal_process_incoming): Discard the proper number
+ of characters when we don't recognize a sequence, previously we left
+ one byte that should have been removed.
+
+2002-07-14 Havoc Pennington <hp pobox com>
+ * src/vte.c (vte_terminal_get_cursor_position): decrement spaces
+ as we go through the loop, it was nice and infinite.
+
+2002-07-13 nalin
+ * src/vte.c (vte_terminal_get_text): Add the proper number of attribute
+ structs to the attribute array to fix crashes which occurred when the
+ buffer contains non-ASCII text (Red Hat #67930).
+2002-07-12 nalin
+ * src/vte.c: Small optimization in the al() and dl() handlers. al()
+ doesn't move the cursor, per GNU termcap docs. Check for a pixbuf in
+ the bgfx check instead of pixmap, which was the wrong type.
+2002-07-12 nalin
+ * src/vte.c: Add patch to heed Xft/fontconfig settings as kept by GTK.
+ Based on patch from otaylor.
+2002-07-12 nalin
+ * src/slowcat.c: Added.
+ * src/vteapp.c: Add -a/-b flags to control audible bell and blinking
+ cursors. Only send "pwd" as an initial command if there wasn't a
+ command specified on the command line. Add a simple help message.
+ * src/vte.c: Bind F13-F35 per termcap. Treat GDK_KP_Delete as
+ GDK_Delete. Map Ctrl+F1-F12 to F13-F24. Fix dc() to ensure that the
+ rows stays full and that newly-added cells get the default attributes.
+ Fix cl() to clear all rows on the screen with the default attributes
+ (bce). Default to using Xft if available for consistency with GTK.
+2002-07-11 nalin
+ * src/vte.c: Treat super, hyper, meta, and alt as modifiers when
+ deciding to scroll-on-keypress. Noted by jrb.
+ * src/vte.c: Always map \r and \n to cr and so, even when they're
+ defined by the termcap.
+ * src/vte.c, src/vte.h: Rework how default colors are set up, and add
+ vte_terminal_set_color_foreground and vte_terminal_set_color_background.
+ * src/vte.h: Remove includes for local headers which apps are not
+ likely to never use, cleaning up the namespace a little.
+ * python/vte.defs: Bind vte_terminal_set_color_{fore,back}ground.
+ * src/debug.h, src/ring.h: Use G_BEGIN_DECLS/G_END_DECLS.
+ * src/reaper.h: Use G_BEGIN_DECLS/G_END_DECLS in the right place.
+ * src/vteapp.c: Add -B/-T flags to set background images and
+ transparency.
+2002-07-02 nalin
+ * src/vte.c: Make shift+button1 extend selection.
+2002-07-01 nalin
+ * src/vte.c (vte_terminal_draw_char): Draw unicode line-drawing code
+ points natively as we do for the GR1 support, in case the current font
+ doesn't include glyphs for them.
+ * src/vte.c: Test for g_iconv_open() failure properly (compare result
+ to ((GIConv)-1), not NULL).
+ * src/vte.c: Rework recovery from illegal sequence errors in the input
+ stream to be much more aggressive about it.
+2002-06-25 nalin
+ * src/vte.c: Bind F10 to "k;", not "k0".
+ * termcaps/xterm: Add "k;" defined as F10.
+2002-06-25 nalin
+ * src/vte.c (vte_terminal_reset_rowdata): Check for redundant resizes.
+ * src/vte.c (vte_terminal_set_scrollback_lines): Keep the alternate
+ screen buffer size the same as the window height, because xterm's
+ alternate screen doesn't backscroll.
+ * src/vte.c (vte_terminal_get_text): Don't append spaces to multicolumn
+ characters when reading the screen's contents.
+ * src/vte.c: Don't overexpose neighboring cells any more. Cleanups.
+ * src/ring.h, src/ring.c: Add vte_ring_max() to read a ring's maximum
+ size.
+2002-06-24 nalin
+ * src/vte.c (vte_sequence_handler_decset_internal): Treat option 1049
+ as a combination of 1047 and 1048.
+ * src/vte.c (vte_terminal_finalize): When finalizing while holding the
+ selection, throw the selection onto the clipboard without an owner so
+ that it doesn't just disappear.
+2002-06-19 nalin
+ * src/vte.c (vte_sequence_handler_set_title_int): Fix a logic bug
+ that got rid of the title always, not just when conversion failed.
+2002-06-19 nalin
+ * src/vte.c: Clear the alternate screen when switching to it.
+2002-06-18 nalin
+ * src/vte.c: Fix refs/derefs with IOChannels and sources. Clean up
+ I/O GIConv descriptors at finalize-time.
+2002-06-18 nalin
+ * src/vte.c: Make cursor_visible a widget-wide (not per-screen) setting.
+2002-06-18 nalin
+ * autogen.sh: Correct automake version check to require 1.5, heads
+ up from Glynn Foster.
+2002-06-18 nalin
+ * src/trie.c (vte_trie_match, vte_trie_match_x): Sort out greedy vs.
+ non-greedy pattern matching.
+ * src/vte.c (vte_sequence_handler_decset_internal): Make 1047 an alias
+ for 47 (use alternate buffer), and handle cursor save/restore properly.
+2002-06-14 nalin
+ * src/vte.c, src/vte.h (vte_terminal_fork_command): Add a parameter for
+ passing in environment variables to add.
+ * src/termcap.c: Preprocess out unused comment() and generate() funcs.
+ * src/Makefile.am: Bump library version number.
+ * vte.spec: 0.4.0
+2002-06-14 nalin
+ * configure.in, python/Makefile.am: Handle cases where pygtk isn't
+ installed in the prefix we're configuring for.
+ * src/Makefile.am: Link libvte to its library dependencies.
+2002-06-13 nalin
+ * src/vteaccess.c: Stop watching for hierarchy-changed signals -- the
+ accessible container which is our parent handles it already (from msw).
+2002-06-13 nalin
+ * src/vteaccess.c: Re-read cursor position immediately on "cursor-moved"
+ events, and emit the "text-caret-moved" signal then as well. Don't
+ override the signal handlers for signals we emit, bad things can
+ happen (from msw).
+2002-06-12 nalin
+ * src/vte.c: Re-read the termcap when we change emulation, because
+ the location of the file may have changed.
+ * src/reaper.c: Also tell the parent the child died when the child
+ dies due to an uncaught signal.
+ * python/vte.override (_wrap_vte_terminal_fork_command): Handle default
+ value for the command.
+2002-06-12 msw
+ * python/vte.override (_wrap_vte_terminal_fork_command): implement
+2002-06-12 msw
+ * acinclude.m4: added AM_CHECK_PYTHON_HEADERS from pygtk
+ * configure.in: rewrote python checks to be more robust
+ * python/Makefile.am (CFLAGS): include @PYTHON_INCLUDES@
+2002-06-12 msw
+ * src/vte.c (vte_terminal_get_accessible): turn the logic around
+ to be the right way
+2002-06-12 nalin
+ * src/vte.c: Cache the result of vte_terminal_get_accessible() and
+ unref it at finalize-time. Add debug messages to log signals emitted
+ by the widget. Implement vte_terminal_get_encoding and
+ vte_terminal_get_emulation, emit signals when these change.
+ * src/vteaccess.c: Emit a "text_caret_moved" signal when the cursor
+ moves.
+ * configure.in, src/Makefile.am: Add rules for building python modules.
+2002-06-12 msw
+ * src/vteaccess.c (vte_terminal_accessible_get_text): accept
+ end_offset of -1, which means "until the end".
+ * src/vteaccess.c (vte_terminal_accessible_new): never set the
+ description to a NULL pointer
+2002-06-10 nalin
+ * Makefile.am, configure.in: Include gettext support.
+ * src/vte.c, src/vte.h: Expose vte_terminal_set_encoding().
+ * src/vte.c: Finish merging otaylor's Xft2 patch (oops). Compute
+ padding correctly.
+ * src/pty.c, src/reaper.c, src/trie.c, src/vte.c: Mark warnings for
+ possible translation.
+2002-06-07 nalin
+ * src/vte.c: Center characters in their cells, caching their extents.
+2002-06-06 nalin
+ * src/vte.c, src/vte.h: Add get_cursor_position(). Remove get_snapshot()
+ and free_shapshot().
+ * src/vte.c: Fix a logic bug that caused us to scroll to the bottom
+ even if the user just pressed and released a modifier key. Fix saving
+ of the font in set_font() in most cases, where we weren't saving the
+ new font before. Scroll-to-bottom on input method commits, which are
+ also the result of keystrokes, when scroll-on-keystroke is enabled.
+ * src/vteaccess.c: Rework to use get_text() and get_cursor_position()
+ instead of get_snapshot(), so that selection and accessibility both
+ agree on what's visible (or "visible").
+2002-06-05 nalin
+ * configure.in: Check for pangoxft with Xft1 or Xft2, hopefully getting
+ things right for either case. Originally from patch by andersca.
+ * src/reaper.c, src/reaper.h: Add a singleton object to watch for
+ SIGCHLD when child processes quit.
+ * src/vte.c: Emit a "child-exited" signal when a child started with
+ fork_command() exits.
+ * src/vte.c: Make a better guess at font metrics when using Xft by
+ measuring the extents for a string of representative characters.
+ * src/vte.defs: Add. Not very useful yet.
+2002-05-31 nalin
+ * src/vte.c: Implement font setting using PangoX to convert Pango
+ font descriptions to core font xlfds for use when drawing with Xlib.
+2002-05-29 nalin
+ * src/trie.c, src,vte.c: Finish switching iconv to g_iconv. I think
+ this was a part of Hidetoshi Tajima's patch that I lost. Free regexes
+ when we're done with them.
+2002-05-28 nalin
+ * src/vte.c: Fix matching when scrolling delta isn't zero. Fix async
+ background updating (report from Richard Neal Plana). Fix cb() and ce()
+ when the cursor is on a line without data (needed to create it) and when
+ cells being cleared don't exist (needed to create them) (report from
+ Garret LeSage).
+ * src/vte.c, src/vteaccess.c: Always free the segment when freeing
+ arrays and strings.
+
+2002-05-24 nalin
+ * autogen.sh: Call libtoolize. (#82836)
+ * src/vte.c: Fix stupid segfault in set_scrollback_lines. (Patch
+ from notting.) Make another attempt to convert Pango font descriptions
+ to xlfds.
+ * src/vteapp.c: Add -c, -f, -t command-line flags for easier testing.
+
+2002-05-22 nalin
+ * src/vte.c: Fix hiliting of matched strings.
+
+2002-05-21 nalin
+ * src/vte.c: Filter key release events through input methods. (Patch
+ from otaylor.) When building with gcc, use -std=c99.
+
+2002-05-21 nalin
+ * autogen.sh, src/termcap.c, src/utf8echo.c, src/vte.c: Patch from
+ Hidetoshi Tajima to fix building on Solaris systems, remove use of
+ syntax that might be specific to gcc, and fix an overrun in
+ vte_termcap_generate(). (#82433)
+
+2002-05-18 andersca
+ * src/vte.c: Don't queue a background update if the background isn't
+ transparent.
+
+2002-05-16 nalin
+ * src/vte.c: Snip trailing whitespace off of copied lines, insert
+ an end-of-line only when the copied line doesn't go to the right edge,
+ don't overrun right edge, even in insert mode. Fix displaying of
+ underlined text. Finish implementing matching.
+
+2002-05-15 nalin
+ * src/vte.c: Send kI on insert key. Don't send drag events when the
+ child has only asked for click events. Fix crashbugs in selection.
+ When getting scroll events, send mouse 4/5 events to the child instead
+ of performing a history scroll if the child wants mouse events. Start
+ adding match support, merging how selection views the buffer with how
+ matching views the buffer, though matching doesn't work yet.
+
+2002-05-14 nalin
+ * src/vte.c: Don't try to draw nul characters, most fonts can't. Don't
+ send motion-tracking events to the child unless we're dragging. Fix
+ ce so that it works even right after startup. Make sure that repainting
+ the entire window actually exposes the visible parts of the window. Fix
+ tab clearing to also allow removal of the current tabstop. Implement
+ save-mode and restore-mode. Start on reverse-video mode. Don't scroll
+ on modifier keypress events. Rework part of clipboard copy.
+ * termcaps/xterm: Add missing F11/F12/End keysyms to bundled xterm
+ termcap.
+2002-05-13 nalin
+ * src/debug.c: Add "ALL" as a debug flag, aliased to everything.
+ * src/pty.c: Print debug info after redirecting stdio.
+ * src/trie.c: When debugging, count only decision nodes.
+ * src/vte.c: Fix se, for real this time. Add a mostly-ignored protected
+ attribute. Handle am, bw, ul flags properly. Make cd clear the current
+ line, too. Make ce fill the current default attributes through the end
+ of the line. Handle cS. Fix cv to work when we have a scrollback
+ buffer. Handle ll, mp. Line wrap on nd. Reset tab stops on hard
+ reset only. Handle soft-reset and full-reset. Handle uc. Initialize
+ scrollback line count properly. Tweak drawing of alternate 'a' to
+ get rid of artifacts. Reset insert mode, cursor visibility, and
+ scrolling regions when resetting.
+2002-05-10 nalin
+ * src/vte.c: Fix IC, which should *always* be done in insert mode,
+ from otaylor. Make delete mode do nothing.
+2002-05-09 nalin
+ * src/vte.c: Fixes to usage of iconv, from otaylor. Remap certain
+ characters which are missing in the current Xft font to similar
+ characters if they are in the font, from otaylor. Change default
+ emulation to "xterm", cleaning up confusion over what standout really
+ means. Reorganize some internals. Complain when an application sends
+ us a key-press sequence, as if we knew what to do with one of those.
+ Implement bt, ct, st. Reimplement ta.
+ * src/debug.c, src/debug.h: Added.
+2002-05-08 nalin
+ * src/vte.c: Implement mouse motion-event and any-event tracking.
+2002-05-07 nalin
+ * src/vte.c: Implement the rest of the special graphics characters.
+2002-05-06 nalin
+ * src/vte.c: Finish implementing window-manipulation sequences. Rename
+ signals to be more consistent. Add thin wrappers for emitting signals,
+ and use them everywhere. Support pangox even when XFT isn't available.
+ Try to provide bold text again. Add signals for most of the window
+ manipulation control sequences. Start handling mouse button events.
+ Hide the mouse cursor when we get keyboard events. Use a different
+ mouse cursor if the child is mouse-aware. Handle eA() by treating it as
+ as().
+ * src/caps.c, src/caps.h: Export definitions of VTE_CAP_CSI and friends.
+2002-05-04 nalin
+ * src/vte.c: Implement device-status-report and dec-device-status-
+ report. Clamp location values in sequence_handler_cm() to the
+ dimensions of the terminal window so that resize(1) will work right.
+ Start handling window-manipulation sequences.
+2002-05-03 nalin
+ * src/termcap.c: Export a vte_termcap_strip() function for preprocessing
+ escape sequences and whatnot from capability values.
+ * src/typescrypt: Removed.
+ * src/vte.c: Pass the hard-coded xterm-specific capabilities through
+ vte_termcap_strip(), which fixes a few weird bugs. Discard invalid
+ might-be-control-sequence sequences, like other emulators do. Don't
+ consider modifier keys, by themselves, to be enough to scroll-on-key.
+ When snapshotting, actually snapshot all of a row instead of just the
+ last character. Don't run past the end of snapshot contents when
+ reading them.
+ * src/vteaccess.c: Clamp offsets so that they always sort right.
+2002-05-02 nalin
+ * src/termcap.c: Fix handling of triple-digit escaped characters,
+ which weren't being processed right if the first digit was '1' instead
+ of '0'.
+ * src/trie.c: Rework trie matching to return the address of the
+ character which ended the match attempt, which should cut down on
+ useless initial-substring checks. Fix a subtle bug which caused
+ intermittent off-by-somenumber errors in the return address.
+ * src/vte.c: Remove several gdk_window_scroll() calls which apparently
+ aren't buffered. Convert invalid multibyte characters to '?' instead of
+ just dropping them. Provide a means of setting the backspace/delete
+ bindings. Add a poor xlfd_from_pango mapping function which would need
+ serious work to be useful. Get rid of warnings when we're transparent
+ and the root window pixmap isn't as big as the root window because it's
+ been tiled. Setup bindings using the export functions. Set the default
+ terminal size to 80x24 instead of 60x18, which was originally chosen for
+ debugging purposes. Don't use $SHELL as the command to invoke when
+ starting up a default command (as in the test app) -- libtool wrappers
+ keep screwing this up. Don't limit the number of characters we skip
+ over in invalid multibyte sequences -- sometimes that's not enough.
+ Hook up ts/te, ks/ke sequence handlers.
+ * src/vteaccess.h: Fix a crashbug due to mismatch between parent field
+ in the object's structure and its inherited object's type. Fix more
+ crash bugs due to initialization weirdness. More to go.
+2002-05-01 nalin
+ * src/vte.c: Try @pkgdatadir@/termcap/$TERM when reading termcap files.
+ This fixes the app on systems with no /etc/termcap, and also speeds up
+ loads and reduces memory consumption for xterm-color at the expense of
+ making on-the-fly emulation changes impossible. Don't xor reverse with
+ itself when drawing characters (this broke when snapshotting was added).
+ * termcaps/Makefile.am, termcaps/xterm-color: include a default termcap
+ for xterm-color.
+ * src/termcap.c src/termcap.h: make _find_boolean return a gboolean
+ instead of an int.
+
+2002-04-30 nalin
+ * src/vte.c: Disconnect from toplevel window_configure events at
+ finalize-time.
+
+2002-04-30 18:06 nalin
+ * src/vte.c: Track and free idle task tags properly. Change F11 and
+ F12 capabilities from 'k;' and 'F1' to 'F1' and 'F2'. Send a NUL on
+ control space. (#80350) Allow setting and checking of word characters,
+ and change select-by-word behavior to use the word character list.
+ Emit "contents_changed" signals whenever the visible contents change,
+ and "cursor_moved" when the cursor moves. Add snapshotting method.
+ Scroll when auto-margin handling moves the cursor to the next line.
+ Assume that the locale charset is actually ISO-8859-1 when we're in
+ a UTF-8 locale, so we don't toggle from UTF-8 to UTF-8. Treat
+ GDK_KP_Page_Up as a GDK_Page_Up, ditto for GDK_KP_Page_Down and
+ GDK_KP_Tab and GDK_KP_Space. Add vte_terminal_get_font(). Don't bother
+ messing with ring buffers if we're resizing them to their current sizes.
+ * src/pty.c, src/vte.c: Return a pid from vte_terminal_fork_command().
+ * src/vteaccess.c, src/vteaccess.h: Add VteTerminalAccessible object
+ type. It might even work, mostly.
+
+2002-04-29 14:25 nalin
+ * src/vte.c: Handle me() by resetting all attributes (including
+ colors, which we weren't resetting before).
+
+2002-04-29 10:57 nalin
+ * src/vte.c: Handle kb by treating it as a backspace. Make pangox
+ rendering the default. Handle control-key sequences better, unless
+ the input method is hiding the modifiers from us. Set the default
+ TERM variable to "xterm-color".
+ * src/vte.c src/vte.h: Get rid of vte_terminal_set_core_font().
+
+2002-04-26 19:14 nalin
+ * src/vte.c: Punt all changes to background images and transparency
+ to an idle task. Only insert newlines into the copy buffer when the
+ last column in a given line doesn't have a character in it.
+2002-04-26 17:35 notting
+ * src/pty.c: use execlp/execvp
+
+2002-04-26 12:09 nalin
+ * src/Makefile.am, src/ring.c, ring.h: add a ring buffer for storing
+ scrollback data.
+ * src/vte.c: use a ring buffer instead of a GArray to hold scrollback
+ rows. Fix a bug in that. Try to preserve what the user sees when the
+ scrollback size changes.
+ * src/vteapp.c: set a default scrollback buffer size of 100.
+2002-04-26 00:49 nalin
+ * Makefile.am: run autogen before tagging so that the tag is always
+ correct.
+ * README: update.
+ * configure.in: add pangox to the list of GTK+ 2.0 modules we link with.
+ * src/vte.c, src/vte.h: add vte_terminal_set_scrollback_lines(), add
+ some code to use pangox for rendering before trying core rendering,
+ which should make font selection actually work.
+ * vte.spec: tweak description text.
+
+2002-04-25 12:23 nalin
+
+ * Makefile.am: Uncomment the tag target.
+
+2002-04-25 12:22 nalin
+
+ * HACKING, Makefile.am, configure.in: Add some targets for building
+ tarballs in a hopefully-reproducible way.
+
+2002-04-25 12:12 nalin
+
+ * src/vte.c: Let GDK_USE_XFT turn on Xft as well as
+ VTE_USE_XFT.
+
+2002-04-25 01:45 nalin
+
+ * src/vte.c: Handle decoding errors
+ better.
+
+2002-04-25 00:49 nalin
+
+ * vte.spec: Include pkgconfig files in the package.
+
+2002-04-25 00:43 nalin
+
+ * src/vte.c: src/vte.c: Make multiple calls to
+ set_background_transparent() and set_background_image() do the
+ right thing.
+
+2002-04-25 00:05 nalin
+
+ * src/vte.c: Reverse the sanity check in
+ vte_terminal_set_background_image_file() so that it rejects
+ zero-length strings, not the other way around.
+
+2002-04-24 23:54 nalin
+
+ * src/trie.c: Demote some debug messages to being trie-specific
+ debug messages.
+ * src/vte.h: Declare vte_terminal_set_core_font() for non-Xft use.
+ * src/vte.c: Adjust idle priorities to make the terminal be more
+ responsive. Fix a double-free that corrupted the heap on core font
+ loads. Rework some pixbuf handling to only create new pixbufs when
+ we need to modify what we are given. Revert a patch for profterm
+ crackiness that's gone now.
+
+2002-04-24 20:49 nalin
+
+ * README: update to-do list.
+ * autogen.sh: remove --disable-shared.
+ * src/pty.c: remove a memory leak.
+ * src/termcap.c: fix a possible read-before-start-of-buffer.
+ * src/trie.c: use iconv instead of mbrstowcs, even if it's just
+ ASCII->W_CHAR_T.
+ * src/vte.c: fix a few memory leaks. Only reset the IM context when
+ we're realized, which is the only time we actually have an IM context.
+ Don't create a copy of a pixbuf if we don't need to desaturate it,
+ just ref it and use it directly.
+
+2002-04-23 19:40 nalin
+
+ * src/vte.c: Display UTF-8 preedit strings properly, fix
+ copy (no, really this time), and reset IM contexts when pasting
+ text in.
+
+2002-04-23 18:01 nalin
+
+ * src/pty.c: Print debug messages before redirecting stdio.
+ * src/vte.c: Fix displaying of highlighted multi-column text.
+ Use the GTK global setting for cursor blinking to control das
+ blinkencursor.
+ * src/vte.h: Remove function for setting blinking timeout.
+
+2002-04-23 15:54 nalin
+
+ * src/pty.c: Fix a compile warning.
+
+2002-04-23 15:54 nalin
+
+ * autogen.sh: Default to include optimization, even for debugging.
+ * configure.in: Move AM_CONFIG_HEADER to the top.
+ * src/pty.c: Create non-login shells by default (when argv is NULL,
+ otherwise it's up to the caller anyway.
+ * src/vte.c: Add mostly-complete input method support.
+ * src/vte.h: Add vte_terminal_im_append_menuitems().
+
+2002-04-23 13:04 hp
+
+ * src/vte.c, src/vte.h: add vte_terminal_set_font
+
+2002-04-22 17:00 hp
+
+ * src/vte.c: when setting background color, use allocated color,
+ and don't overwrite with bg of None
+
+2002-04-22 16:50 hp
+
+ * src/vte.c: use gdk_rgb_find_color to allocate X colors
+
+2002-04-22 16:35 nalin
+
+ * src/vte.c, src/vte.h, src/vteapp.c: Add vte_terminal_feed_child() to
+ send UTF-8 strings to the child process, and actually apply Havoc's
+ fix right this time.
+
+2002-04-22 09:56 nalin
+
+ * src/vte.c: Prevent double-free of incoming buffer
+ (patch from Havoc).
+
+2002-04-16 01:43 nalin
+
+ * README: Fix typo.
+ * src/vte.c: Make blinking cursors stay on while the user is typing,
+ desaturate images using integer math.
+
+2002-04-05 00:58 nalin
+
+ * vte.spec: Add less useless descriptions.
+ * src/vte.c: Fix an uninitialized variable and missing declaration
+ error.
+
+2002-03-24 21:52 nalin
+
+ * src/vte.c: Ensure that there's a data row
+ whenever we scroll forward, fixing strangeness when I suspend and
+ resume vim.
+
+2002-03-24 19:08 nalin
+
+ * src/vte.c: Copy to clipboard synchronously, which
+ fixes a number of problems. Implement background transparency.
+
+2002-03-17 20:59 nalin
+
+ * src/vte.c: Rework backgrounds to take advantage of gdk's automatic
+ drawing.
+ * src/vteapp.c: Try to enable transparency if no background
+ image is present.
+
+2002-03-17 20:58 nalin
+
+ * autogen.sh, configure.in: Adjust warnings used when in maintainer
+ mode.
+
+2002-03-17 01:15 nalin
+
+ * src/vte.c: Draw the cursor as an unfilled box when the widget does
+ not have focus.
+
+2002-03-17 01:04 nalin
+
+ * src/vte.c: Fix handling of scroll-on-output to always scroll when
+ only we're at the bottom of the buffer.
+ * src/vteapp.c: Disable scroll-on-output by default.
+
+2002-03-17 00:45 nalin
+
+ * src/vte.c src/vte.h: Rework tiling of background images, and
+ implement a blinking cursor.
+ * src/vteapp.c: Set blinking cursor by default.
+
+2002-03-14 02:58 nalin
+
+ * src/caps.c: Corrections to some xterm control sequences.
+
+2002-03-14 02:32 nalin
+
+ * configure.in: Define PACKAGE correctly.
+ * src/vte.c src/vteapp.c: Move most of the tear-down code into the
+ widget finalize method; handle EOF and widget destruction correctly
+ to prevent segfaults.
+
+2002-03-14 00:48 nalin
+
+ * configure.in: * configure.in: Define PACKAGE.
+
+2002-03-14 00:18 nalin
+
+ * configure.in: Disable gdk-pixbuf's deprecated functions.
+ * vte.c: Discard non-ascii bytes to clear logjams that
+ happen when we pass invalid terminal data to iconv().
+
+2002-03-13 23:07 nalin
+
+ * src/iso8859mode.c, src/utf8mode.c, src/vte.c, src/vte.h:
+ add missing includes
+ * vte.c vte.h: implement background color setting, provide
+ a function for setting the defaults, tile background images
+ properly
+
+2002-03-13 21:12 nalin
+
+ * configure.in, vte.pc.in, src/vte.c: Remove gdk-pixbuf-xlib
+ dependency by using just gdk-pixbuf.
+ * src/vte.c: Perform background image desaturation locally.
+
+2002-03-13 14:37 nalin
+
+ * src/vte.c: Don't add the widget's allocation offsets
+ when generating expose events.
+
+2002-03-13 14:22 nalin
+
+ * src/vteapp.c: Don't try to use transparency for now.
+
+2002-03-13 13:29 andersca
+
+ * src/vte.c, src/vte.h: Add more functions that profterm can use.
+
+2002-03-13 12:51 andersca
+
+ * .cvsignore, vte.pc.in: Silent cvs and add gdk-pixbuf-xlib to
+ depends in the .pc.in file
+
+2002-03-13 12:37 andersca
+
+ * src/.cvsignore: Sliff sloff
+
+2002-03-13 12:37 andersca
+
+ * src/.cvsignore: sssh
+
+2002-03-13 12:19 nalin
+
+ * configure.in: Add gdk-pixbuf-xlib-2.0 as a module requirement.
+
+2002-03-13 01:21 nalin
+
+ * src/vte.c, vte.h, vteapp.c: * vte.c: Add set_size,
+ set_audible_bell, set_scroll_on_output, set_scroll_on_keystroke,
+ copy_clipboard, paste_clipboard, set_background_image,
+ set_background_image_file, and set_background_saturation. Also
+ added a broken set_background_transparent.
+
+2002-03-12 22:35 nalin
+
+ * src/vte.h: adjust the name of a declared function (was _set_size,
+ is _size_set)
+
+2002-03-12 22:11 nalin
+
+ * src/vte.c: Get rid of a global copy of the parent class.
+ * vte.c: Implement ec, ic, and IC handlers.
+
+2002-03-12 22:10 nalin
+
+ * src/vte.h: Fix a typo in a comment (we don't "omit" signals).
+
+2002-03-12 15:48 nalin
+
+ * src/caps.c: Recognize xterm cursor-character-absolute sequence.
+ * src/vte.c: Handle cursor-character-absolute. Change the default font
+ to "mono" 14 point when using Xft.
+
+2002-03-12 15:22 nalin
+
+ * src/vte.c: Handle the ve (cursor visible) control sequence.
+
+2002-03-12 15:19 nalin
+
+ * src/vte.c: Handle dec private mode set (cursor visibility).
+
+2002-03-12 15:13 nalin
+
+ * src/vte.c, src/vte.h, src/vteapp.h: fix signed/unsigned problems
+ (fixes from alexl)
+
+2002-03-11 20:29 nalin
+
+ * src/vte.c: Make scroll-on-output scroll on control sequences, too.
+
+2002-03-11 20:19 nalin
+
+ * src/Makefile.am, src/iso8859mode.c, src/utf8mode.c:
+ Add simple programs for moving a terminal in and out of UTF-8 mode.
+ * src/vte.c: Be more verbose about iconv() errors. Implement dc and DC
+ handlers. Handle auto-wrapping (the "am" flag). Remove scrolling
+ cheats from the al handler, which made the window jump.
+
+2002-03-11 02:39 andersca
+
+ * src/vte.c: Add a finalize handler and free our title strings
+ there.
+
+2002-03-11 02:05 nalin
+
+ * Makefile.am, configure.in, src/vte.c, src/vte.h, src/vteapp.c:
+ Emit "window_title_changed" and "icon_title_changed" when the
+ titles change, and store the new values in a public field so that a
+ handler can retrieve the values (patch from Anders Carlsson).
+
+2002-03-11 01:54 nalin
+
+ * vte.pc.in: Add vte.pc, from Anders Carlsson.
+
+2002-03-11 01:47 nalin
+
+ * src/vte.c: Fix a duplicate-idle-handler bug.
+
+2002-03-11 01:32 nalin
+
+ * README, src/vte.c: Fix selection (except maybe the end-of-line
+ stuff).
+
+2002-03-10 23:44 nalin
+
+ * src/vte.c: Whoops, I broke selection. Fix that. Implement
+ selection by lines.
+
+2002-03-10 23:08 nalin
+
+ * src/vte.c: Move character rendering into a common function so
+ that the cursor is always drawn the same as other characters (fixes
+ previous glitches when using Xft and when the cursor was over an
+ alternate charset character).
+
+2002-03-10 03:31 nalin
+
+ * src/vte.c: Differentiate between single, double, and triple-click
+ for selection (still need to do something with that info).
+
+2002-03-10 03:16 nalin
+
+ * stamp-h.in: remove this file
+
+2002-03-10 03:15 nalin
+
+ * configure.in: Don't check for pango because we never call pango
+ directly.
+
+2002-03-10 03:13 nalin
+
+ * src/vte.c: Deselect properly when something else is inserted into
+ the clipboard.
+
+2002-03-10 02:26 nalin
+
+ * AUTHORS, HACKING, README, src/utf8echo.c, src/vte.c: Fix
+ wide-character handling (now handles mid-stream encoding changes
+ correctly). Updates to the meager docs.
+
+2002-03-09 02:41 nalin
+
+ * Makefile.am, vte.spec, src/Makefile.am: Add a .spec file (make
+ dist; rpm -ts vte*.tar.gz; rpm --rebuild) to make building a
+ package easier.
+
+2002-03-09 02:24 nalin
+
+ * src/vte.c: skip over space columns when selecting
+
+2002-03-09 02:20 nalin
+
+ * src/pty.c, src/vteapp.c: Use a login shell by default.
+
+2002-03-09 02:10 nalin
+
+ * src/vte.c, src/vte.h, src/vteapp.c: Rework input queueing to allow for
+ feeding without a pty. Use gdk_window_scroll() in _al and _up
+ handlers, and in the _do handler, because it's usually faster.
+
+2002-03-08 02:52 nalin
+
+ * src/vte.c: Implement copy and almost-correct selection
+ highlighting.
+
+2002-03-07 21:30 nalin
+
+ * src/vte.c: Use a queue for pasting data. Try to get dragging
+ detected right (doesn't work).
+
+2002-03-05 19:21 nalin
+
+ * src/vte.c: Mark the beginning of a selected area.
+
+2002-03-05 19:17 nalin
+
+ * src/vte.c: Make pasting asynchronous.
+
+2002-03-05 19:07 nalin
+
+ * src/vte.c: actually free clipboard data when finished with it
+
+2002-03-05 19:02 nalin
+
+ * src/vte.c: Implement middle-button paste.
+
+2002-03-05 18:55 nalin
+
+ * src/vte.c: Properly convert from utf-8 or wchar_t strings when
+ sending data to the pseudo-terminal.
+
+2002-03-04 19:53 nalin
+
+ * src/vte.c: Implement shift/pgup/pgdown scrolling. Make
+ scroll-on-keypress and -on-output easier to toggle.
+
+2002-03-04 19:26 nalin
+
+ * src/vte.c: Spec out the rest of the alternate characters I
+ haven't implemented yet. Remove a function that can't be easily
+ written (scroll_rows). Correctly update the insertion delta when
+ scrolling, to fix man(1) again.
+
+2002-03-04 19:16 nalin
+
+ * src/vte.c: Discard redundant cursor-position exposes.
+
+2002-03-04 18:57 nalin
+
+ * src/termcap.c, src/termcap.h, src/vte.c: Use ssize_t to measure string
+ offsets in termcap, and don't assume that all capabilities have
+ values. This fixes some nasty crashes.
+
+2002-03-04 11:53 nalin
+
+ * src/vte.c: add a missing bounds-check in the erase-in-row
+ function
+
+2002-03-04 01:13 nalin
+
+ * README, src/vte.c: Send the slave pty's erase character when the
+ user hits backspace.
+
+2002-03-04 00:59 nalin
+
+ * src/vte.c: Draw cursors to fill the entire cell. Draw the blank
+ alternate character (ooh, tough). Remove a redundant expose.
+
+2002-03-03 23:49 nalin
+
+ * src/trie.c: stop using wcsnlen, which is a GNU extension
+
+2002-03-03 23:43 nalin
+
+ * src/caps.h, src/pty.h, src/termcap.h, src/trie.h, src/vte.c,
+ src/vte.h: Add support for the line-drawing characters in the special
+ characters and line-drawing character set. (See
+ [http://vt100.net/docs/vt102-ug/table5-13.html].)
+
+2002-03-03 21:57 nalin
+
+ * src/pty.c, src/pty.h, src/vte.c: Properly differentiate insertion
+ delta (working screen) from scrolling delta. Add environment setting
+ to the pty code.
+
+2002-02-27 21:54 nalin
+
+ * src/trie.c, src/vte.c, src/vte.h: Make the Xft support use long-lived
+ data items. Clean up a lot of other Xft-related code.
+
+2002-02-27 10:45 nalin
+
+ * src/vte.c: actually hook up the nd handler to the "nd" sequence
+
+2002-02-27 00:05 nalin
+
+ * autogen.sh, configure.in, src/vte.c, src/vte.h: - Add sub-optimal
+ Xft rendering (set VTE_USE_XFT to "1" to try it); still needs
+ quite a bit of work to be useful. Implement character-position-absolute
+ and line-position-absolute, which I think are the only sequences which
+ emacs uses and which weren't implemented.
+
+2002-02-25 12:43 nalin
+
+ * src/Makefile.am: distcheck fixes
+
+2002-02-25 12:41 nalin
+
+ * README: add that line-drawing does not work to README
+
+2002-02-25 12:40 nalin
+
+ * configure.in, src/Makefile.am: tree fixups
+
+2002-02-25 12:38 nalin
+
+ * configure.in: fix autoconf reference file problem
+
+2002-02-25 12:38 nalin
+
+ * src/Makefile.in: remove stuff which should never have been added
+
+2002-02-25 12:37 nalin
+
+ * configure.ac, configure.in, src/Makefile.in: rename configure.ac
+ to configure.in, remove 2.5isms
+
+2002-02-25 12:35 nalin
+
+ * doc/ctlseqs.ps, Makefile.in, aclocal.m4, config.h.in, configure:
+ remove stuff that should never have been in there
+
+2002-02-25 12:30 nalin
+
+ * AUTHORS, ChangeLog, Makefile.am, NEWS, README, autogen.sh,
+ configure.ac, COPYING, HACKING, Makefile.in, aclocal.m4,
+ config.h.in, configure, stamp-h.in, doc/ctlseqs.ms, doc/ctlseqs.ps,
+ doc/readme.txt, doc/vttest.tar.gz, src/Makefile.am,
+ src/Makefile.in, src/caps.c, src/caps.h, src/interpret.c,
+ src/marshal.list, src/pty.c, src/pty.h, src/termcap.c,
+ src/termcap.h, src/trie.c, src/trie.h, src/typescript,
+ src/utf8echo.c, src/vte.c, src/vte.h, src/vteapp.c: Initial
+ revision
+
+2002-02-25 12:30 nalin
+
+ * AUTHORS, ChangeLog, Makefile.am, NEWS, README, autogen.sh,
+ configure.ac, COPYING, HACKING, Makefile.in, aclocal.m4,
+ config.h.in, configure, stamp-h.in, doc/ctlseqs.ms, doc/ctlseqs.ps,
+ doc/readme.txt, doc/vttest.tar.gz, src/Makefile.am,
+ src/Makefile.in, src/caps.c, src/caps.h, src/interpret.c,
+ src/marshal.list, src/pty.c, src/pty.h, src/termcap.c,
+ src/termcap.h, src/trie.c, src/trie.h, src/typescript,
+ src/utf8echo.c, src/vte.c, src/vte.h, src/vteapp.c: imported from
+ private cvs
+
+Local Variables:
+coding: utf-8
+End:
+vim: encoding=utf-8:
diff --git a/vte/HACKING b/vte/HACKING
new file mode 100644
index 0000000..b399c0e
--- /dev/null
+++ b/vte/HACKING
@@ -0,0 +1,18 @@
+This entire tree is "some highly unsupported crackrock", though we are
+cleaning it as fast as possible and aiming for a 1.0 release "next year".
+Please contact people listed in filed MAINTAINERS if you intend to hack
+on it, especially if you want to commit stuff.
+
+Vte is different from other terminal emulators in that instead of hard
+coding behavior of a few select terminals, it can emulate any terminal
+simply by reading its terminfo capabilities file. The idea being that
+if applications can communicate with any terminal by reading its
+capabilities, the emulation widget can also behave like any terminal by
+reading that file. Well, that's just the idea :).
+
+This is the most useful resource in understanding various internal states
+as well as control sequences:
+
+ http://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+
+And to understand termcap, terminfo, etc, "make terminfo" is a great start.
diff --git a/vte/MAINTAINERS b/vte/MAINTAINERS
new file mode 100644
index 0000000..2488253
--- /dev/null
+++ b/vte/MAINTAINERS
@@ -0,0 +1,7 @@
+Behdad Esfahbod
+Email: behdad gnome org
+Userid: behdad
+
+Chris Wilson
+Email: chris chris-wilson co uk
+Userid: cpwilson
diff --git a/vte/Makefile.am b/vte/Makefile.am
new file mode 100644
index 0000000..c856fb3
--- /dev/null
+++ b/vte/Makefile.am
@@ -0,0 +1,51 @@
+ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
+
+SUBDIRS = src termcaps po perf
+
+EXTRA_DIST = \
+ MAINTAINERS \
+ HACKING \
+ autogen.sh \
+ ChangeLog.pre-git
+
+DISTCLEANFILES =
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = vte$(VTE_PC_VERSION).pc
+
+DISTCHECK_CONFIGURE_FLAGS = \
+ --enable-gtk-doc \
+ --disable-silent-rules
+
+MAINTAINERCLEANFILES = \
+ ChangeLog \
+ $(srcdir)/INSTALL \
+ $(srcdir)/aclocal.m4 \
+ $(srcdir)/autoscan.log \
+ $(srcdir)/compile \
+ $(srcdir)/config.guess \
+ $(srcdir)/config.h.in \
+ $(srcdir)/config.sub \
+ $(srcdir)/configure \
+ $(srcdir)/configure.scan \
+ $(srcdir)/depcomp \
+ $(srcdir)/install-sh \
+ $(srcdir)/ltmain.sh \
+ $(srcdir)/missing \
+ $(srcdir)/mkinstalldirs \
+ $(srcdir)/omf.make \
+ $(srcdir)/xmldocs.make \
+ $(srcdir)/gtk-doc.make \
+ `find "$(srcdir)" -type f -name Makefile.in -print`
+
+# Build ChangeLog from GIT history
+ChangeLog:
+ $(AM_V_GEN) if test -d $(top_srcdir)/.git; then \
+ GIT_DIR="$(top_srcdir)/.git" git log --stat > $@; \
+ fi
+
+dist: ChangeLog
+
+.PHONY: ChangeLog
+
+-include $(top_srcdir)/git.mk
diff --git a/vte/NEWS b/vte/NEWS
new file mode 100644
index 0000000..a338299
--- /dev/null
+++ b/vte/NEWS
@@ -0,0 +1,1068 @@
+0.28.2
+======
+- Translation updates
+- Dist correct gtk-doc API docs
+
+0.28.1
+======
+- Bugs fixed:
+ * Bug 652124 - malicious escape sequence causes gnome-terminal to exhaust memory
+- Translation updates
+
+0.28.0
+======
+- Bugs fixed:
+ * Bug 642184 - vte does not build against new glade (with gladeui-2.0)
+- Translation updates
+
+0.27.90
+=======
+- Fix shrinking terminal on gtk3
+- Translation updates
+
+0.27.5
+======
+- Fix build with recent GTK+
+- Translation updates
+
+0.27.4
+======
+- Fix build with recent GTK+
+- Introspection fixes for fork_command_full
+- Translation updates
+
+0.27.3
+======
+- Add a gsettings .enums.xml file for vte's enum types
+- Fix build with latest gtk 3
+- Fix introspection annotations and require gobject-introspection 0.9.0
+- Bugs fixed:
+ * Bug 628870 - Clarify error message
+- Translation updates
+
+0.27.2
+======
+(See git log)
+
+0.27.1
+======
+
+- Bugs fixed:
+ * Bug 631589 - Pass the correct TERM value inside envp when spawning
+ * Bug 631903 - Report correct minimum/natural sizes for GTK+ 3
+ * Bug 632257 - vte leaks FDs
+- Translation updates
+
+0.25.90
+=======
+
+- Make vte parallel-buildable with gtk 2 and gtk 3
+- Bugs fixed:
+ * Bug 617690 - Setting default fg color should not cancel underline
+ * Bug 614658 - text selection with mouse is buggy when using the shift key
+ * Bug 618749 - set terminal widget background color to terminal background
+ * Bug 601926 - Don't hardcode meta to alt
+ * Bug 618097 - Broken backtab (cbt)
+ * Bug 621298 - Cursor invisible (plain black) in (xfce) Terminal & terminator
+ * Bug 626676 - Cleanup vte_terminal_determine_colors
+ * Bug 620493 - strict aliasing warning
+- Translation updates
+
+0.25.1
+=======
+- Add support for searching the buffer. New public API:
+ vte_terminal_search_[sg]et_regex
+ vte_terminal_search_find_(previous|next)
+
+0.24.1
+======
+- Bugs fixed:
https://bugzilla.gnome.org/buglist.cgi?status_whiteboard_type=substring;chfieldto=2010-04-26%2012%3A00%3A00;query_format=advanced;chfieldfrom=2010-03-29;status_whiteboard=fixed-0-24;bug_status=RESOLVED;resolution=FIXED;product=vte
+- Translation updates
+
+0.24.0
+======
+- Updated API docs
+- Cache backgrounds as cairo surfaces
+- Translation updates
+
+0.23.5
+=======
+- Fix unintented soversion bump
+
+0.23.4
+=======
+- Add public API vte_terminal_write_contents()
+- Update docs
+
+0.23.3
+=======
+- Disable symbol deprecation stuff since they were broken
+- Merge pangocairo draw impl into vtedraw (Kristian Høgsberg)
+- Bugs fixed in this release:
+ Bug 534526 - Flickering when resizing a vte widget
+ Bug 605299 - Please support xterm bracketed paste mode
+
+0.23.2
+=======
+- Fix overflow with unlimited scrollback lines
+- Require glib >= 2.22.0
+- Deprecate vte_terminal_get_padding
+- Add VteTerminal::inner-border style property
+- vteapp: Add --cursor-shape option
+- Bugs fixed in this release:
+ Bug 604966 - Fix "select all" to include text occurring after the visible region
+ Bug 604135 - [PATCH] fix behaviour of set-scrolling-region
+ Bug 603733 - Remove deprecated Glib symbol
+ Bug 603713 - ibeam/underline cursor broken with large inner-border
+ Bug 471920 - Expose the border width property
+ Bug 601265 - gnome-terminal assert failure: table.c:723:_vte_table_match
+ Revert "Bug 591648 - Don't clear the screen when switching to the alternate screen"
+
+0.23.1
+=======
+- Various crash and bug fixes
+- Rework mouse selection to be more robust. In particular, PRIMARY selection
+ now only changes when mouse button is released, not upon every motion when
+ selecting.
+- Interpret and document negative number of scrollback lines as infinite
+- We now chain unhandled motion-notify events up such that the parent widget
+ can give them a shot.
+- Bugs fixed in this release:
+ Bug 597604 - assertion failed: (_vte_ring_contains (ring, position))
+ Bug 598124 - The selection does not only change when the mousebutton is released
+ Bug 598090 - LMB Mouse up event not registered when opining context popup menu
+ Bug 587463 - "select all"+copy from gnome-terminal includes lines no longer in scrollback
+ Bug 585370 - Incomplete disabling of python
+ Bug 597242 - libvte color and cursor glitches
+ Bug 591648 - Don't clear the screen when switching to the alternate screen
+ Bug 595445 - Motion notify events are not propagated to parent widget
+ Bug 569184 - vte generates unnecessary ioctl(I_FIND) kernel warnings
+ Bug 599444 - Scrollback index type mess
+ Bug 598814 - text.getText(0, -1) triggers assertion in vteaccess.c
+ Bug 596739 - Python bindings leak memory
+ Bug 597165 - void return in vte.c
+ Bug 587894 - the environment passing with python does no longer work
+
+0.22.2
+=======
+- Fix crash introduced in previous release
+- Fix a11y assertion failure
+- Improve selection at the end of row
+- Bugs fixed in this release:
+ https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/435646
+ Bug 596444 - word-select includes \n when the word ends at the edge of the terminal
+ Bug 596460 - 0.22.1 kills vte based apps
+
+0.22.1
+=======
+- Fix crash on terminal reset
+- Fix build on Solaris
+- Bugs fixed in this release:
+ Bug 596365 - libvte crashes when issueing 'reset' in a terminal
+ Bug 588033 - background tabs may lose lines off the bottom of the scrollback
+ Bug 596163 - Doesn't display expected background color in ncurses apps
+ Bug 596011 - Problem compiling vte 0.22.0 on Solaris
+
+0.22.0
+=======
+- New stable release series
+
+0.21.7
+=======
+- Fix tab and wide-char handling
+- Revert symbol-hiding that was breaking build in some cases
+
+0.21.6
+=======
+- Another rewrite of the ring. Stores ring data on tmp files on disk now.
+ Please report any regressions.
+- Mark library-internal symbols as such
+
+0.21.5
+=======
+- Finish ring rewrite. Scrollback buffer consumes ten times less
+ memory now, and better, doesn't allocate from the heap, so closing
+ tabs actually releases memory.
+
+0.21.4
+=======
+- Remove another stale assert()
+- Oops, use the right map decoding function is iso2022 code
+
+0.21.3
+=======
+- Really fix the ring this time
+- Enable g_assert(). May trigger some bogus ones now. Please report.
+
+0.21.2
+=======
+- Bugs fixed in this release:
+ Bug 592990 - gnome terminal crashes with glibc detected
+
+0.21.1
+=======
+- Redesigning the vte buffer ring is going on. Please report any misbehavior
+- Bugs fixed in this release:
+ Bug 590824 - gnome-terminal crashed with SIGSEGV after hiting ctrl+o
+ Bug 572230 - text mode program rendering is strange in cjk locale.
+ Bug 588200 - bashisms in shell scripts
+
+0.20.5
+=======
+- Followup release to undo unintentded .soname bump
+
+0.20.4
+=======
+- New enum value VTE_ERASE_TTY.
+- Make VTE_ERASE_AUTO send \H for backspace if terminal erase is undefined.
+- Bugs fixed in this release:
+ Bug 584281 - build: avoid double installation of xterm
+ Bug 543379 - VTE sends NUL/^@ for backspace
+
+0.20.3
+=======
+- Bugs fixed in this release:
+ Bug 583129 - [python] allow passing None as command or directory option
+ Bug 583078 - [python] allow passing of environment as a dictionary
+
+0.20.2
+=======
+- Bugs fixed in this release:
+ Bug 567064 - Work around buggy iconv
+
+0.20.1
+=======
+- Bugs fixed in this release:
+ Bug 574491 – gnome-pty-helper can prevent volumes from being unmounted
+ Bug 576504 – vte does not pass its testsuite.
+ Bug 573674 – reset resets width to 80 chars
+ Bug 576797 – Double-click sometimes stops working
+
+0.20.0
+=======
+- Support using a real bold font instead of pseudo-bolding
+- Respond to fontconfig configuration changes
+- Bugs fixed in this release:
+ Bug 54926 – Should try bold version of font before pseudo-bolding
+ Bug 570208 – vte fails to build outside source tree
+ Bug 548272 – Fix output of CSI 13,14, 18-21
+ Bug 565688 – [gnome-pty-helper] using openpty in a bad way
+ Bug 566795 – VTE fails to build in trunk
+ Bug 524170 – Support initc terminfo capability and change-cursor-color
+ Bug 566730 – vte_terminal_set_color_cursor() calls invalidate_all but
+ it doesn't have to
+ Bug 565679 – alloca is discouraged
+ Bug 565675 – typo in configure.in cause ncurses checking fail
+ Bug 565663 – compile failure because use static function in another .h
+ file
+ Bug 575398 – configure warns about term.h under OpenSolaris
+ Bug 574616 – "real" transparency not working from python bindings
+ Bug 574025 – Crash in _vte_terminal_insert_char
+
+0.19.4
+======
+- Support for correct rendering of combining characters
+- Fix background rendering.
+- Misc bug fixes.
+- Bugs fixed in this release:
+ Bug 564535 – check for gperf in autogen.sh
+ Bug 149631 – gnome-terminal doesn't combine combining chars in utf8
+ Bug 564057 – src/pty.c does not compile with
+ --disable-gnome-pty-helper
+ Bug 562695 - ship pkg-config file for python bindings
+ Bug 563752 – pangocairo backend recreates cairo_surface_t for
+ background drawing
+ Bug 163213 – Cursor should remain visible when selected
+
+0.19.3
+======
+- Really fix the rendering bug.
+- Bugs fixed in this release:
+ Red Hat Bug 474618 - gnome-terminal sometime leaves empty begining
+ of the line
+
+0.19.2
+======
+- Rewrote text selection. Much less buggy now. Specially block-mode.
+- Fixed rendering bug caused by wrong tab handling introduced in 0.19.0.
+- More deprecation. VteReaper is deprecated and will be removed in 1.0.
+- Minor optimizations in the pangocairo backend. Only one FcFontSort now
+ instead of the previous two.
+- Bugs fixed in this release:
+ Red Hat Bug 474618 - gnome-terminal sometime leaves empty begining
+ of the line
+ Bug 563274 – Misspelled word in src code
+ Bug 563024 – In alternate-screen, selection can copy out of screen
+ boundaries
+ Bug 552096 – Detect tgetent if provided by libtinfo
+ Bug 559818 – redundant selection-changed signal on deselection
+ Bug 471480 – select single character
+ Bug 110371 – Cannot select newline at end of full line
+ Bug 112172 – Get rid of VteReaper
+ Bug 560667 – invalid definition of VTE_INVALID_SOURCE
+ Bug 541441 – Dehighlight links on visibility notify?
+
+0.19.1
+======
+- New, PangoCairo, rendering backend. This is functionally equivalent to the
+ previous default backend which was Xft. And just a tad bit faster.
+- All other backends are removed.
+- Configurable cursor shape (block, underline, I-beam).
+- Preliminary object properties added to VteTerminal.
+- Vte now depends on glib, pango, gtk+, and nothing else.
+- API that will be removed in vte 1.0 has been marked deprecated in this
+ release.
+- gnome-pty-helper does no longer depend on and link to glib
+- General code maintenance and cleanup.
+- Misc bug fixes.
+- Bugs fixed in this release:
+ Bug 562806 – crash in Terminal: Typing "cd " just after ...
+ Bug 562511 – scrollbar doesn't sit at the bottom
+ Bug 540951 – The gnome-pty-helper is spawn when its not needed
+ Bug 465036 – gnome-pty-helper locks /var/run/utmp
+ Bug 127870 – terminal garbled and needs 'reset' after cat'ing file
+ Bug 317236 – vte resynchrones too late on invalid UTF-8
+ Bug 107031 – device-control-string error
+ Bug 521420 – vte closes connection to child before all output is read
+ Patch from Thomas Leonard
+ Bug 514632 – Problem with cursor in emacs in gnome-terminal
+ Bug 459553 – gnome-terminal cannot shows circled digits with the
+ correct width on ja_JP.PCK
+ Patch from Takao Fujiwara
+ Bug 562385 – gnome-pty-helper goes to 100% cpu usage
+ Bug 562332 – cleanup font infos on exit?
+ Bug 562338 – don't need to connect to bunch of xft settings
+ Bug 488960 – gnome-terminal on Solaris 10 does not clean up utmpx on
+ exit (intermittent)
+ Bug 561366 – remove antialias setting for 1.0
+ Bug 562187 – Add make rules for calling gperf
+ Bug 416518 – Do something about uniwidths
+ Bug 500191 – Remove vteseq-table.h?
+ Bug 514457 – Use g_strv_length()
+ Bug 542561 – Doesn't build when disabling gnome-pty-helper
+ Bug 560766 – Deprecate and remove vte_terminal_get_using_xft()
+ Bug 536894 – Confusing use of "free" as variable-name in ring
+ functions
+ Bug 561713 – crash on font cache cleanup
+ Bug 560819 – Remove obsolete backends
+ Bug 560818 – pangocairo backend doesn't share font cache across
+ widgets
+ Bug 560977 – Cleaning up GTK Includes in vte
+ Bug 561185 – pangocairo backend sets antialias incorrectly
+ Bug 560817 – pagocairo backend doesn't have correct opacity support
+ Bug 560991 – Unsetting background doesn't work
+ Bug 395599 – Add pangocairo backend
+ Bug 557375 – >=vte-0.16.14 breaks highlighting on activity
+ Bug 556398 – maybe deprecate vte_terminal_get_char_ascent/descent
+ Bug 339819 – LibVTE terminals in GLADE
+ Bug 399364 – Implement properties
+ Bug 556328 – Document set-scroll-adjustment parameters
+ Bug 549835 – Feature Request: Configurable cursor appearance
+ Bug 509204 – child-exited signal does not provide exit code
+ Bug 539130 – building g-t fails due to GtkType etc. deprecation
+
+0.17.4
+======
+- Translation updates
+
+0.17.3
+======
+- Update python bindings to bind new API from 0.17.1
+- Bugs fixed in this release:
+ Bug 538344 – Anjuta hangs when program is executed in terminal
+
+
+0.17.2
+======
+- Bugs fixed in this release:
+ Bug 546940 – Crash when selecting text
+
+0.17.1
+======
+- New API to:
+ * Make the cursor blinking follow the gtk setting by default, with a
+ possible override.
+ * Set named cursors on matches.
+ * Do GRegex matching, to be used alternatively to the old vteregex matching.
+ * Add set-scroll-adjustments signal, needed to allow adding a VteTerminal
+ into a GtkScrolledWindow.
+ * Add version check macro.
+- Misc bug fixes.
+- Bugs fixed in this release:
+ Bug 546366 – hard to select last tab char on a line
+ Bug 545924 – tab characters not handled correctly after ncurses clear
+ Patch from Patryk Zawadzki
+ Bug 542795 – VTE_CJK_WIDTH don't work
+ Bug 399744 – Hide more font-aa implementation details
+ Bug 510903 – use gtk-cursor-blink setting
+ Bug 539130 – building g-t fails due to GtkType etc. deprecation
+ Bug 540182 – crash in geany with vte trunk
+ Bug 535552 – vte_terminal_set_allow_bold doesn't queue redraw
+ Bug 535469 – support named cursors on matches
+ Bug 418918 – Switch to GRegex
+ Bug 535467 – implement set-scroll-adjustments signal
+ Bug 535468 – need version check macros
+ Bug 515972 – Bold black is black in vte's default palette
+
+0.16.14
+=======
+- Bugs fixed in this release:
+ Bug 536632 – vte build failure in ring.c:210: error: expected
+ expression before 'do'
+ Bug 535022 – ambiguous width in utf8 locale
+ Bug 534148 – Use g_listenv() instead of environ
+ Bug 516869 – vte displays nothing on GTK+/DirectFB
+ Original patch by Jérémy Bobbio.
+ Fix "GLib-CRITICAL **: g_io_add_watch_full: assertion
+ `channel != NULL' failed"
+
+0.16.13
+=======
+- Minor optimization.
+- Bugs fixed in this release:
+ Bug 517709 – VTE's pty.c makes 4096 getrlimit calls when it only needs
+ one
+ Bug 449131 – Wrong gettext domain
+
+0.16.12
+=======
+- More work around Gdk backends that don't issue GdkVisibilityNotify.
+- Bugs fixed in this release:
+ Bug 503164 – Drawing problems for VTE with gtk+-quartz
+ Bug 449131 – Wrong gettext domain
+
+0.16.11
+=======
+- Work around Gdk backends that don't issue GdkVisibilityNotify.
+- Try transliteration when pasting text into a non-UTF-8 locale.
+- Bugs fixed in this release:
+ Bug 503164 – Drawing problems for VTE with gtk+-quartz
+ Bug 319687 – Pasting of text containing characters not in the
+ terminal's encoding silently fails
+
+0.16.10
+=======
+- Smart tab character: you can now copy/paste tab characters printed by cat,
+ diff, and other line-oriented tools and get the tab character in the
+ clipboard, instead of multiple spaces. The selection indicates that by
+ being all or none.
+- Misc bug fixes and optimizations.
+- Bugs fixed in this release:
+ * src/vtedraw.c (_vte_draw_init_user): Make VTE_BACKEND=list list
+ available backends to stderr.
+
+ Bug 497246 – Kill vte_iso2022_fragment_input
+ Bug 412435 – Invalid variable name in Makefile.am
+ Bug 416561 – Rendering issue in VtePango
+ Bug 416558 – Rendering errors in VteFT2
+ Bug 403217 – Outdated README
+ Bug 118967 – single line scrolling with "Ctrl+Shift+ArrowUp/ArrowDown"
+ Patch from Mauricio and Mariano Suárez-Alvarez
+ Bug 353610 – Don't convert tab characters upon copying
+ Bug 499892 – strikethrough line is too high
+ Bug 499891 – vte with opacity set, shows invisible chars
+ Bug 499896 – Alternate charset isn't an attribute, though we treat it
+ as one.
+ Bug 499893 – cell.attr.protect is unused
+ Bug 499287 – Fix doc coverage regression
+ Bug 142640 – FcConfigSubstitute in place of _vte_fc_defaults_from_gtk
+ to get antialias and hinting value
+ Bug 439384 – gnome-terminal on feisty crashes when giving wrong locale
+ environment
+ Bug 483642 – vte_terminal_feed crash when 8190 characters passed
+ Bug 480735 – Underlining whitespace not reliable
+ Original patch by Steven Skovran.
+
+0.16.9
+======
+- Slightly improved pango backend
+- Misc bug fixes.
+- Bugs fixed in this release:
+ Bug 469862 – Handling of wrapped links in gnome-terminal is broken
+ Bug 471901 – troubles with pad
+ Bug 153265 – Handle Sun Cut, Copy, Paste keys
+ Patch by Brian Cameron.
+ Bug 471484 – vteapp resize weirdness
+ Bug 434230 – Spaces are not underlined
+ Original patch by Santtu Lakkala.
+ Bug 450069 – vte crash on removing a terminal tab
+
+0.16.8
+======
+- Quick followup release with no code changes, to fix missing
+ documentation index in the tarball.
+
+0.16.7
+======
+- Misc bug fixes.
+- Bugs fixed in this release:
+ Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal
+ Patch by James Bowes
+ Bug 448259 – Mapping for Ctrl-_
+ Patch by Andrey Melnikov.
+ Bug 449809 – use python-config to get python includes
+ Patch by Sebastien Bacher.
+ Bug 450745 – VTE's response to CSI 2 1 t incorrectly formatted
+ Patch by Dale Sedivec.
+
+0.16.6
+======
+- Misc bug fixes.
+- Bugs fixed in this release:
+ Bug 445620 – Some characters shows different in different locales.
+ Patch from Zealot
+ Bug 372743 – vte_terminal_set_colors doesn't work as advertised
+
+0.16.5
+======
+- Fix issue with 'some strange "underline" line where cursor is
+ located and blinking'.
+
+0.16.4
+======
+- Misc bug fixes.
+- Bugs fixed in this release:
+ Bug 429278 – Cursor drawn strangely in joe
+ cf Bug 439247 – scrolling vim in full screen is painfully slow and takes up 100% of the cpu
+ Bug 440475 – Display glitch with transparent backgroud
+ Bug 375112 – ctrl-key combinations yielding just key
+ Original patch by <samo altern org> and refactored by Loïc Minier.
+ Bug 440377 – gnome-terminal cannot refresh terminal when accessibility enabled
+ Original patch by Li Yuan.
+ Bug 433776 – gnome-terminal crashes when open preedit area
+
+0.16.3
+======
+- Remove false warnings about missing glyphs in the Xft backend.
+- Rename --enable-debugging configure option to --enable-debug to
+ match other modules.
+- Fix some of refresh issue where terminals stopped updating after
+ changing workspaces.
+- Bugs fixed in this release:
+ Bug 429189 – Vte-WARNING's
+ Bug 415044 – Use --enable-debug rather than --enable-debugging
+ Bug 414716 – Refresh issue after changing workspaces
+
+0.16.2
+======
+- Consider ambiguous-width chars if VTE_CJK_WIDTH env var is set and we
+ are under a CJK locale.
+- Minor optimization
+- Bugs fixed in this release:
+ Bug 431799 – Regex highlighting is broken
+
+0.16.1
+======
+- Lots of bug fixes by Chris Wilson
+- New feature: mouse scroll-wheel now feeds three arrow-up/down keys to the
+ terminal if in the "alternate" mode. The alternate mode is used by apps
+ like vim, less, emacs, screen, etc. This makes the scroll-wheel usable
+ in a state that it was of no use before.
+- Bugs fixed in this release:
+ Bug 426870 – vte often passes NUL to functions requiring valid unichar
+ Bug 419644 – Links do not get highlighted anymore
+ Bug 404757 – URL matching doesn't work with PCRE
+ Bug 426541 – crash on IRM escape code
+ Bug 424184 – Make scroll wheel send Page Up/Down when it makes sense
+ Original patch by Shaun McCance and refined by Baris Cicek.
+ Bug 425767 – vte_terminal_set_color_highlight should test for
+ NULL before _vte_debug_print
+ Bug 422385 – vte appears at the top of the root window even when
+ packed at the bottom of it
+ Patch by Dodji Seketeli.
+ Bug 420935 – glyph can be cropped with not fitting in a cell
+ Bug 420067 – Does not handle expose events whilst processing
+ unseen incoming data
+ Bug 415381 – Improve performance of vte_terminal_insert_char()
+ Bug 418073 – Opacity ignored for vtexft
+ Bug 418910 – Asymmetric scrolling with mouse wheel
+ Bug 416634 – Rendering glitch as autowrapped chars are outside
+ invalidated bbox
+ Bug 416635 – Rendering glitch: double draw of line below exposed region
+ Bug 418588 – Invalid read when drawing preedit cursor
+ Bug 417652 – Scrolling bug exposed by nvi
+ Bug 417301 – Terminal widgets don't respond to DPI changes
+
+0.16.0
+======
+- Fix some minor bugs. More regressions to be fixed later.
+- Bugs fixed in this release:
+ Bug 414716 – gnome-terminal-2.17.92: terminal window dies...
+ Bug 414586 – Terminal screen blinks when menu is opened for the first time
+ Bug 413068 – new line added to tab when opened
+
+0.15.6
+======
+- Fix various bugs introduced in last couple of releases.
+- Bugs fixed in this release:
+ Bug 410534 – Slow content scrolling, takes 100% of CPU.
+ Bug 413068 – new line added to tab when opened
+ Bug 413262 – Incorrectly coloured tabs
+ Bug 413102 – Incorrect highlighting in vim
+ Bug 413158 – Cursor trails
+ Bug 413078 – Crash during opening a new tab whilst scrolling
+ Bug 412717 – Crash when opening a new tab with window maximized
+
+0.15.5
+======
+This is a quick followup release to 0.15.4 to fix a crasher recently
+introduced.
+- Fix a newly-introduced crasher
+- Do not link to libpython in the python bindings
+- Bugs fixed in this release:
+ Bug 412562 – Crash in vte_terminal_match_hilite_update
+ Bug 410986 – Fails to build with -z defs
+
+0.15.4
+======
+This is yet another release including awesome work of Chris Wilson.
+Hopefully mostly bugs fixed with this release and not many introduced.
+- Bugs fixed in this release:
+ Bug 412361 – Yet another mouse selection regression...
+ Bug 411000 – Orca repeats old text in gnome-terminal
+ Bug 410534 – Slow content scrolling, takes 100% of CPU.
+ Bug 410463 – Poor interactive performance with multiple terminals
+ Bug 159078 – slow highlight
+ Bug 411276 – SVN trunk compilation error
+ Bug 410986 – Fails to build with -z defs
+ Patch by Loïc Minier.
+ Bug 410819 – slider not correctly positioned after calling less
+ Bug 410534 – Slow content scrolling, takes 100% of CPU.
+ Bug 410463 – Poor interactive performance with multiple terminals
+ RedHat Bug 113195: First line displayed incorrectly if prompt changes background color
+ RedHat Bug 123845: gnome-terminal not parsing cursor position escape sequence properly
+ Bug 409055 – Terminal stays blank
+ Bug 409241 – gnome-terminal crashed with SIGSEGV in vte_terminal_draw_graphic()
+ Bug 407945 – "GNOME" Terminal" regression after "vte" update when using "csh"
+ Bug 408536 – trouble compiling vte 0.15.3
+ Bug 408040 – vte automagic hyperlinks
+ Patch by Gilles Dartiguelongue.
+ Bug 407839 – Use of environ breaks build on Solaris
+ Original patch by Damien Carbery.
+ Bug 407358 – regression in mouse selection
+
+0.15.3
+======
+This is another release including awesome work of one Chris Wilson. Lots of
+bugs with the previous release are fixed in this one and some new ones are
+introduced. Doh!
+
+- Faster control sequence matching, using gperf-generated tables now
+- Faster regex matching
+- Improved expose handling
+- Improved control sequence matching
+- Various optimizations
+- Various cleanups
+- Bugs fixed in this release:
+ Bug 407091 – vte_terminal_fork_command() env argument changed semantic
+ in 0.15.2
+ Original patch by Michael Vogt.
+ Bug 323393 – Hyper-sensitive selection
+ Bug 406763 – Selecting double-wide characters
+ Bug 363597 – Scrollback in profile dialog doesn't work
+ Bug 345344 – Pattern matching is inefficient
+ Bug 324246 – Performance degredation with large numbers of highlighted
+ addresses/URLs
+ Bug 86119 – "select all" feature
+ Original patch by Simone Gotti.
+ Bug 342059 – ASCII escape sequences don't work as expected
+ Patch by Mariano Suárez-Alvarez.
+ Bug 404757 – URL matching doesn't work with PCRE
+ Bug 403028 – decset mode 12 = blinking cursor
+ cf Bug 342338 – suffers from memory fragmentation
+ Bug 106618 – CJK 'fixed width' font and 's p a c e d o u t' issue
+ cf Bug 83285 – Treacle-slow scrolling in gnome-terminal on
+ unaccelerated X server
+ Bug 322241 – Please switch to pkg-config to check for freetype
+ Bug 322240 – Usage of pkg-config privates header
+ cf Bug 403275 – crash in Terminal: I was typing reset on th...
+ Bug 403159 – XftDrawSetClipRectangles() silently fails on ppc->i386
+ Bug 382245 – __PyGtk_API multiply defined in python module
+ Bug 155687 – Scroll region \E[NN;MMr should set cursor to home
+ Bug 147784 – cursor unvisible under mouse highlight
+ Bug 368894 – crash in Terminal: I started gnome-terminal...
+ Bug 402329 – Rendering problem with underlines and cursor
+ Bug 336105 – gnome-terminal crashes when termcap not found
+ Bug 401215 – Multi-pass renderering
+ Bug 157267 – _vte_terminal_fudge_pango_colors() breaks Japanese input
+ style
+ Patch by ynakai redhat com.
+ Bug 400834 – Use a global display/process timeout
+ Bug 401082 – double-draw issue
+ Bug 318307 – Cursor colour changes to foreground when unfocused
+ Bug 317449 – The cursor disappears when clicking on windows above
+ gnome-terminal
+ Bug 400759 – update problem with vte trunk
+ Bug 400671 – crash in Terminal: detaching of tabs
+ Bug 399137 – UTF-8 problem in VteAccess
+ Bug 400493 – Mouse selection seriously broken
+ Bug 400438 – _vte_invalidate_all triggered on GDK_VISIBILITY_UNOBSCURED
+ cf Bug 400072 – Handling of ; in control sequences
+ cf Bug 399617 – Avoid memory allocations during an expose event.
+ Bug 147495 – screen flicker when opening new terminal windows
+ Bug 334755 – Incomplete information from vte_terminal_get_font
+ Bug 400184 – _vte_pty_open declaration mismatch - breaks on Solaris
+ Bug 335269 – Change the way vte handles PangoFontDescription behind
+ vte_terminal_set_font
+ Bug 123591 – vte_terminal_fork_command succeeds even when it does not
+
+0.15.2
+======
+This is a very exciting release. Most of the changes are made by Chris Wilson
+who just got access to the vte repository. On his first day he committed more
+than 20 large patches, cleaning various parts of the code base and optimizing
+too! As a result of huge changes in this release, some regressions, specially
+on less common systems/architectures is expected. Please file bugs.
+
+Highlights of improvements in this release:
+- Moving around in vim and mc is a lot faster now, thanks to much
+ smaller areas that will be redrawn with this release.
+- Mouse wheel is usable in mc now, since we don't generate release
+ events for scroll wheel events anymore.
+- Faster. One of the internal timers was completely removed, and
+ lots of unnecessary work is not done anymore. Particularly when
+ the widget is not visible.
+- Switched to using g_spawn_async to fork the child process, so we
+ can now enjoy the error checking implemented in that functions.
+ Failed forks now return an error message.
+- Accessibility improvements.
+- New environment variable VTE_BACKEND, to choose which rendering
+ backend to use. The old VTE_USE_* env vars are deprecated and
+ not functional anymore.
+- Bugs fixed in this release:
+ Bug 399137 - continuation.
+ Bug 132316 – terminal widget's context menu posting isn't exposed as an AtkAction
+ Original patch by <padraig obriain sun com>
+ Bug 156161 – AccessibleText_getTextAtOffset returns wrong values in gnome-terminal
+ Patch by <padraig obriain sun com>
+ Bug 399137 – UTF-8 problem in VteAccess
+ Bug 123591 – vte_terminal_fork_command succeeds even when it does not
+ Bug 345514 – -no-undefined doesn't work with latest libtool
+ Bug 162003 – vte configure.in X checking can fail
+ – though this may cause other regressions!
+ Bug 314669 – Please specialize AC_PATH_XTRA
+ Bug 389538 – crash in Terminal: nothing
+ Bug 161479 – Scroll wheel generates Release events
+ Bug 398602 – Build Failure
+ Bug 397724 – Orca incorrect echo's certain input in gnome-terminal
+ when key echo is set to off (on Ubuntu Feisty).
+ Bug 398244 – Gnome-terminal opens a huge sized window
+ Bug 398243 – Crash
+ Bug 398116 – lags behind when widget not visible
+ Bug 398083 – background not painted correctly when starting up
+ Bug 397414 - port vteapp to GOption
+ Bug 395373 - Allow the user to specify backend priorities.
+ Bug 346554 – Fancy prompt triggers update problem
+ Bug 397439 – Performance enhancement patch series
+ Bug 161342 – Vte slow with mc and vim
+ Bug 387171 – vte fails to install on FreeBSD due to missing header
+ Patch from Roy Marples
+ Bug 396831 – Unable to compile without X
+ Patch from Chris Wilson
+ Bug 394890 – Segfault when running vte or gnome-terminal
+
+0.15.1
+ Bug 354061 – Excessive use of strlen by _vte_termcap_create
+ Patch from Ryan Lortie
+ Bug 387475 – Gtk-Warning spew in gnome-terminal
+ Patch from Ryan Lortie
+ Bug 387482 – Variable modified in signal handler should be volatile
+ Patch from Bastien Nocera
+ Red Hat Bug 218626: "last -ad" print junk in last column
+
+0.15.0
+ Bug 356552 – cursor timeout runs all the time [Ryan Lortie]
+ Bug 307396 – Mouse scroll mode not controllable [Mariano Suárez-Alvarez]
+ Bug 356602 – const cast warning fixes for libvte [Ryan]
+ Bug 150858 – In gnome-terminal, the deleted character reported as "space" [Rich Burridge]
+ Bug 337252 – ALT + Arrow keys don't work in irssi through gnome-terminal [Mariano]
+
+0.14.1
+ Bug 358344 – autoscroll only works one way in fullscreen [PATCH]
+ Patch by Egmont Koblinger
+ Bug 353756 – font setting cleanup
+ Bug 356616 – libvte broken with new autotools
+ Bug 354024 – Suppress multiple warnings for missing control sequence
+ handlers
+ Patch from Chris Wilson
+ Bug 354620 – vte-0.14.0: undefined C code
+ Patch from Ales Nosek
+ Define G_LOG_DOMAIN=Vte.
+
+0.14.0
+ Minor doc syntax update.
+ Fix bug causing empty lines to not being copied.
+
+0.13.7
+ Bug 350236 – Cannot copy text; invalid character sequence errors
+ Bug 352439 – URL highlighting seriously broken
+ Bug 351494 – Gnome-terminal doesn't kills bash on tab close
+ Patch from Aivars Kalvans
+ Bug 352365 – font caching problem for not-found glyphs
+
+0.13.6
+ Bug 351696 – crash on Terminal, check ->window before setting
+ icon/window title
+ Bug 350623 – Accessible text getTextAtOffset is broken
+ Patch from Willie Walker
+
+0.13.5
+ Bug 158200 – terminal backspace behavior not set to UTF-8 mode
+ Based on patch from Egmont Koblinger
+ Bug 348814 – crash on Terminal
+ Patch from Aivars Kalvans
+
+0.13.4
+ Fix selection that I broke in last release.
+ Bug 336947 – [patch] Redundant vte_terminal_set_font_full() calls
+ Patch from Aivars Kalvans
+ Bug 134800 – gnome-termnal hung up when input by ATOK
+ Patch from Yukihiro Nakai <nakai gnome gr jp>
+ Bug 339983 – gnome-pty-helper should log username
+ Patch from Brian Cameron
+
+0.13.3
+ Bug 121904 – copy-paste of empty line
+ Bug 25290 – Small UI tweak to select-by-word (only select only letter
+ at a time for non-word characters)
+ Bug 339986 – Patch to select localized strings exactly
+ Patch from Takao Fujiwara
+ Bug 311855 – Race in vte leads to blocking of input.
+ Patch from Kalle Raiskila
+ Bug 342396 – Ctrl-space sends " ", not NUL.
+ Bug 345377 – real transparency
+ Patch from Kristian Høgsberg <krh redhat.com>
+ Bug 345514 – -no-undefined doesn't work with latest libtool
+ Bug 141985 – vte does not respond to 'CSI 2 1 t' or 'CSI 2 0 t' with
+ the correct window/icon title
+ Patch from Mariano Suárez-Alvarez
+
+0.13.2
+ Bug 344666 – Problems with *_CFLAGS and *_LDFLAGS in makefiles
+ Patch from Stepan Kasal <kasal ucw cz>.
+ Bug 339529 – gnome-terminal (vte) crashes when detatched window is
+ closed
+ Bug 342549 – uninitialized var (coverity)
+ Patch from Paolo Borelli.
+ Bug 342082 – vte_invalidate_region() may check whether terminal is
+ realiazed or not
+ Patch from Kouhei Sutou.
+ Bug 340363 – vte Cygwin build fixes
+ Patch from Cygwin Ports maintainer
+ Bug 341793 – vte.h doesn't need to include X11/Xlib.h
+ Patch from Kouhei Sutou
+ Require intltool 0.35.0 to have translations in the dist tarballs.
+ Fix typo which may have been causing things like crashes.
+
+0.13.1
+ Use intltool 0.34.90 to make sure tarball includes po files.
+ Bug 339980 – nativeecho needs glib in LDADD to build on Solaris
+ Patch from Brian Cameron.
+ Bug 331803 – style needs to be attached/detached to the window on
+ realize/unrealize
+ Patch from Benjamin Berg <benjamin sipsolutions net>.
+ Pass -no-undefined linker flag.
+
+0.13.0
+ Removed obsolete #ifde GTK_CHECK_VERSION(2,2,0) checks.
+ Bug 339448 – selection doesn't respect hard newlines
+ Bug 148720 – Word selection erroneously captures text from next line
+ Bug 126376 – Uncoinditional definition of _XOPEN_SOURCE breaks build
+ on NetBSD
+ Bug 97719 – Selection: double/triple click doesn't cross line boundaries
+ Bug 160782 – Vte isn't multi-screen safe
+ Bug 330441 – Remove libzvt support
+ Bug 328850 – Crash when pasting selection
+ Bug 160134 – mouse events occurring past column 95 are not passed
+ through to terminal application
+ New public function vte_terminal_feed_child_binary
+ Bug 135230 – Feature request to attach VTE to existing pty
+ New public function vte_terminal_set_pty
+ Bug 337442 – [patch] Reduce .plt section
+ We use a regexp to limit exported symbols now.
+ Bug 142247 – use of uninitialized value
+ Bug 149633 – gnome-terminal messes up boxdrawing chars aligment
+ Bug 144456 – UK pound currency symbol rendered incorrectly
+ Bug 307403 – xticker doublefree
+ Bug 337877 – Patch to use po/LINGUAS
+ Bug 337552 – Insufficient version requirement for gtk+
+ Bug 168251 – add support for 256 colors terminals
+ Bug 120276 – Wishlist: Support Rectangular Selection
+ Bug 336117 – [patch] Use g_slice API
+ Bug 336128 – vim scrolling issues - emulation errors
+ Bug 334385 – Use intltool
+ Bug 104841 – scrolling doesn't work inside "screen" windows
+ Bug 333768 – vteapp debug stuff should be conditional
+
+0.12.0 - Released with no code changes.
+
+0.11.21 - Revert change introduced in 0.11.19 that made vte very unresponsive
+ with tall terminal windows. (bug #333776)
+ - Step up COALESCE_TIMEOUT and DISPLAY_TIMEOUT from 2ms to 10ms.
+ This is more compatible with the update timeout that we are doing
+ at 25ms, but needs testing.
+
+0.11.20 - Revert patch introduced in 0.11.16 that was corrupting the Xft
+ font cache. (bug #309322)
+
+0.11.19 - Revert Shift+Insert to paste PRIMARY. Use Ctrl+Shirt+Insert to
+ paste CLIPBOARD (bug #123844)
+ - Improvements to the update throttling handler.
+ - gnome-pty-helper minor race condition fix.
+ - Use getpwnam to correctly log multiple users with the same UID
+ (bug #319564, Laszlo Peter)
+ - A couple minor build fixes.
+
+0.11.18 - Fix bug #317235 - Use U+FFFD instead of U-FFFF for invalid
+ codepoints. (Egmont Koblinger)
+ - Modernized the build system. Depending on gnome-common for
+ autogen.sh now and make distcheck works.
+ - Limit redrawings to a maximum of 40fps. Makes vte run about
+ three times faster.
+ - Use GObject private data internally. (Behdad)
+ - Optimize the sequence handler code and split it into a
+ separate file. (Behdad)
+ - Fix bug #123844 - primary and clipboard selections are broken.
+ (Behdad)
+ - Fix bug #161337 - double free. (Guilherme de S. Pastore)
+ - Code cleanup and misc fixes. (Behdad)
+
+0.11.17 - Revert .pc changes from previous release (Olav Vitters)
+ - Fix bug #170032 - gnome-terminal has problems with ANSI
+ (save and restore cursor position) (Olav Vitters)
+ - Fix bug #321909 – vte does not install devhelp file
+ (Guilherme de S. Pastore)
+ - Apply patch from Kjartan Maraas to replace g_return* with
+ g_assert in static functions (Guilherme de S. Pastore)
+ - Avoid guessing the user's shell until we make sure it is
+ really necessary (Guilherme de S. Pastore)
+ - Disable asserts by default (Guilherme de S. Pastore)
+
+0.11.16 - Optimize memory used for fonts (Mike Hearn)
+ - Fix crasher with accessibility (Padraig O'Briain)
+ - Fix some warning from GDK (Michele Baldessari)
+ - Fix python build problems (Manish Sing)
+ - Fix generation of the forkpty() method for python.
+ (Michael Vogt)
+ - Cleanups for the .pc file (Steve Langasek)
+ - Don't emit signals for every character of output. Huge performance
+ improvement with a11y enabled. Patch from Padraig O'Briain.
+
+0.11.15 - Fix check for recvmsg () (Robert Basch)
+ - Make it possible to implement atkText selection methods
+ for VteAccessible. Bug #113590. (Padraig O'Briain)
+ - Don't crash if there's no termcap file (Michele Baldessari)
+ - Make VTE work on some Net/OpenBSD on sparc and macppc
+ (Dan Winship, Rich Edelman, Adrian Bunk)
+
+0.11.14 - Fix a crasher on reparent (Michele Baldessari)
+ - Fix a crash in a11y related code (Padraig O'Briain)
+ - Fix a crash in the pango backend (Michele Baldessari)
+ - Fix a crash from not unsetting the user data on the
+ gdk window (Matthias Clasen)
+ - Fix a crash in the python bindings when changing color
+ (Michele Baaldessari, Ethan Glasser-Kamp)
+
+0.11.13 - Back out one of the previous patches from Fedora since it had
+ issues (Reported by Warren Togami)
+ - Reduce memory consumption with more that one tab a whole lot
+ (Aivars Kalvans)
+ - Make the python bindings work again (Manish Singh)
+ - Build fix (Ali Akcaagac)
+ - Updated translations ug (Abduxukur Abdurixit), rw (Steve Murphy),
+ xh (Adi Attar))
+
+0.11.12: - Performance improvements:
+ - Two patches from bug #137864 (Benjamin Otte)
+ - Patch from bug #143914 (Søren Sandmann)
+ - Fix crash when resizing a terminal running minicom (Søren Sandmann)
+ Closes bug #163814 and duplicate.
+ - Adjust timeouts to make us behave like xterm when
+ outputing large amounts of text and still be fast (Kjartan)
+ - Fix build with VTE_DEBUG enabled (Kjartan)
+ - Build fixes for NetBSD and Darwin. Bug #126377 (Adrian Bunk)
+ - Build fixes for AIX. Bug #161352
+ - Make keypad behave like in xterm. Bug #128099. (jylefort at brutele be)
+ - Fix black background in new terminals. Bug #125364. (Fedora)
+ - Fix scrolling issues. Bug #168210 (Fedora)
+ - Fix screen corruption with multibyte charsets. Bug #168211 (Fedora)
+ - Redraw terminal fully before scrolling. Bug #168212 (Fedora)
+ - Fix crash with IM-methods. Bug #168213 (Fedora)
+ - Fix for scrolling back then forward. Bug 122150 (Benjamin Otte)
+ - Make terminal report correct type. Bug 130761 (Mariano)
+ - Updated translations:
+ Estii (et), Old English (ang), Canadian English (en_CA),
+ Spanish (es), Hungarian (hu), Albanian (sq), Norwegian bokmål
+ (nb), Bosnian (bs), Finnish (fi), Oriya (or), Georgian (ka),
+ Hindi (hi)
+0.11.11: Add APIs for setting font with/without antialiasing, cursor color,
+ hilite color, and a forkpty()-alike. Fix meta-space. Use glib 2.4's
+ child watch API if available.
+ Add a configure switch for setting the default emulation instead of
+ hard-coding it to be "xterm".
+ Tweak autowrapping of text to handle cases where the terminal has
+ both LP and xn capabilities.
+ Truncate empty lines when copying text to mimic xterm.
+ Internally abstract out matching APIs, though we still use POSIX regex.
+ Try to set UTF8 line editing mode under sufficiently-new Linux.
+ Obey Pango's specified attributes when displaying pre-edit text.
+ Never steal modifier keys which might affect the input method from
+ the input methods.
+ Fix python binding so that help() lists the terminal class.
+0.11.10: Fix cases where the application sets the encoding. Adjust display of
+ way-too-wide characters to better comply with openi18n.
+0.11.9: Accessibility improvements. Multihead fixes. Revert to the 0.10 way
+ of determining how wide an ambiguously-wide character should be. Fix
+ origin mode. Fix linefeed mode, really. Fix saving/restoring the
+ cursor position via DECSET/DECRST. Fix handling of control characters
+ in the middle of control sequences. Don't subject users to my crude
+ approximation of U00A3 if any available font can be used instead.
+0.11.8: Fix some memory leaks. Fix compilation on Solaris. Fix Ctrl-Space.
+0.11.7: Properly recognizes 8-bit versions of SS2 and SS3 intermixed with
+ UTF-8. Add Macedonian and Welsh translations (yay GTP!). Fix keypad
+ page down key in application keypad mode. Internalize some conversions
+ to work better on platforms which lack a gunichar-compatible iconv
+ target or UTF-8 to UTF-8 conversions.
+0.11.6: Recognizes 8-bit versions of SS2 and SS3.
+ Shares pixmap and pixbuf backgrounds between multiple terminal widgets
+ within the same process, reducing both memory and CPU use.
+0.11.5: Support for PC437. Fix Ctrl+/. Use xrdb font settings if GTK+ doesn't
+ have anything to say.
+0.11.4: Speedier transparency update when you move the windows, fixes for
+ flickering when scrolling part of the screen, accessibility fixes.
+ Bold works again.
+0.11.3: Reworked handling of ISO-2022 text, handles Chinese and Korean
+ correctly.
+0.11.2: Fix for wrapping when selecting by word or lines. Fix to conform to
+ OpenI18N assertions.
+0.11.1: A native FT2 drawing backend which may be faster than Pango on systems
+ without Xft2. Support for scrolling backgrounds for everyone.
+0.11.0: Support for using font sets for better Unicode coverage when drawing
+ using Xft2. Support for scrolling backgrounds with Xft2.
+0.10: Rewrote selection to better integrate dingus and autoscroll support. The
+ previous implementation was just a mess. Changed the APIs so that callers
+ have to decide whether or not to log (NOTE: this breaks gnome-terminal
+ versions before 2.1.1 and 2.0.2).
+0.9: Added integration with gnome-pty-helper. This makes the lastlog/utmp/wtmp
+ stuff work.
+0.8: Added iso-2022 and national replacement character substitutions. Line
+ drawing characters are now represented as Unicode code points internally,
+ so if you select a graphical line, you'll get the right results when you
+ paste it.
+0.7: Broke rendering code up into a couple of pieces to take advantage of
+ Xft2 and Xlib APIs for drawing more than one character at a time.
+0.6: Replaced the trie parser with a table-driven parser which is faster but
+ only accurate enough for ANSI-compatible terminal types. At some point
+ I'll add a redirection layer to use the older code for other terminals.
+0.5: Store characters as gunichars internally instead of wchar_t's. Most of
+ the internal processing is performed on gunichars anyway.
+0.4: Support for Xft2 (which lets us do things faster than Xft1), and python
+ bindings.
+0.3: Initial accessibility peer implementation.
+
+prehistory
+
+Local Variables:
+coding: utf-8
+End:
+vim: encoding=utf-8:
diff --git a/vte/README b/vte/README
new file mode 100644
index 0000000..190ef57
--- /dev/null
+++ b/vte/README
@@ -0,0 +1,13 @@
+* What is VTE?
+
+VTE is a library (libvte) implementing a terminal emulator widget for GTK+,
+and a minimal sample application (vte) using that. Vte is mainly used in
+gnome-terminal, but can also be used to embed a console/terminal in games,
+editors, IDEs, etc.
+
+VTE supports Unicode and character set conversion, as well as emulating any
+terminal known to the system's terminfo database.
+
+VTE doesn't have a homepage. Report any issues at:
+
+ http://bugzilla.gnome.org/enter_bug.cgi?product=vte
diff --git a/vte/acinclude.m4 b/vte/acinclude.m4
new file mode 100644
index 0000000..1a95c35
--- /dev/null
+++ b/vte/acinclude.m4
@@ -0,0 +1,32 @@
+dnl From msw.
+dnl
+dnl a macro to check for ability to create python extensions
+dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
+dnl function also defines PYTHON_INCLUDES
+AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
+[AC_REQUIRE([AM_PATH_PYTHON])
+AC_MSG_CHECKING(for headers required to compile python extensions)
+dnl deduce PYTHON_INCLUDES
+py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
+py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
+if test -x "$PYTHON-config"; then
+ PYTHON_INCLUDES=`$PYTHON-config --includes 2>/dev/null`
+else
+ PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
+ if test "$py_prefix" != "$py_exec_prefix"; then
+ PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
+ fi
+fi
+PYTHON_LIBS="-L${py_prefix}/libs -lpython${PYTHON_VERSION}"
+AC_SUBST(PYTHON_INCLUDES)
+AC_SUBST(PYTHON_LIBS)
+dnl check if the headers exist:
+save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
+AC_TRY_CPP([#include <Python.h>],dnl
+[AC_MSG_RESULT(found)
+$1],dnl
+[AC_MSG_RESULT(not found)
+$2])
+CPPFLAGS="$save_CPPFLAGS"
+])
diff --git a/vte/autogen.sh b/vte/autogen.sh
new file mode 100755
index 0000000..e1cc132
--- /dev/null
+++ b/vte/autogen.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+PKG_NAME="vte"
+
+(test -f $srcdir/configure.in \
+ && test -f $srcdir/README \
+ && test -d $srcdir/src) || {
+ echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
+ echo " top-level $PKG_NAME directory"
+ exit 1
+}
+
+echo "checking for GNU gperf"
+which gperf || {
+ echo "You need to install GNU gperf"
+ exit 1
+}
+
+echo "checking for gnome-autogen.sh"
+which gnome-autogen.sh || {
+ echo "You need to install the gnome-common package"
+ exit 1
+}
+
+. gnome-autogen.sh
diff --git a/vte/configure.in b/vte/configure.in
new file mode 100644
index 0000000..852056d
--- /dev/null
+++ b/vte/configure.in
@@ -0,0 +1,458 @@
+m4_define([version_major],0)
+m4_define([version_minor],28)
+m4_define([version_micro],2)
+m4_define([version_triplet],version_major.version_minor.version_micro)
+
+m4_define([so_major_adjust],9) dnl Don't change!
+
+AC_PREREQ([2.63])
+AC_INIT([vte],
+ [version_triplet],
+ [http://bugzilla.gnome.org/enter_bug.cgi?product=vte],
+ [vte])
+
+AC_CONFIG_SRCDIR([src/vte.c])
+AC_CONFIG_HEADERS([config.h])
+
+AM_INIT_AUTOMAKE([1.9 foreign no-dist-gzip dist-bzip2])
+
+m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
+
+if test -z "$enable_maintainer_mode"; then
+ enable_maintainer_mode=yes
+fi
+AM_MAINTAINER_MODE([enable])
+
+################################################################################
+# Libtool versioning
+################################################################################
+m4_define([lt_revision], m4_if(m4_eval(version_minor%2),1,0,version_micro))
+m4_define([lt_age], m4_eval(version_minor*100+version_micro-lt_revision))
+m4_define([lt_current], m4_eval(so_major_adjust+version_major+lt_age))
+m4_define([lt_triplet],lt_current:lt_revision:lt_age)
+
+LT_VERSION_INFO="lt_triplet()"
+AC_SUBST([LT_VERSION_INFO])
+
+################################################################################
+# GTK+
+################################################################################
+
+ VTE_API_VERSION=0.0
+ VTE_API_MAJOR_VERSION=0
+ VTE_API_MINOR_VERSION=0
+ VTE_PC_VERSION=
+ VTE_LIBRARY_SUFFIX=
+ VTE_SEAL_CFLAGS=
+ GTK_API_VERSION=2.0
+ GTK_REQUIRED=2.20.0
+ GLADE_API_VERSION=1.0
+
+AC_SUBST([VTE_API_VERSION])
+AC_SUBST([VTE_API_VERSION_U],[AS_TR_SH([$VTE_API_VERSION])])
+AC_SUBST([VTE_API_MAJOR_VERSION])
+AC_SUBST([VTE_API_MINOR_VERSION])
+AC_SUBST([VTE_PC_VERSION])
+AC_SUBST([VTE_SEAL_CFLAGS])
+AC_SUBST([GTK_API_VERSION])
+AC_SUBST([VTE_LIBRARY_SUFFIX_U],[AS_TR_SH([$VTE_LIBRARY_SUFFIX])])
+
+AM_CONDITIONAL([HAVE_GTK_2],[true])
+AM_CONDITIONAL([HAVE_GTK_3],[false])
+
+################################################################################
+
+# Check for programs
+AC_PROG_CC
+AC_HEADER_STDC
+AM_PROG_CC_C_O
+AC_PROG_SED
+
+# Initialize libtool
+LT_PREREQ([2.2])
+LT_INIT
+
+
+################################################################################
+# i18n
+################################################################################
+
+IT_PROG_INTLTOOL([0.35.0])
+
+GETTEXT_PACKAGE=vte-$VTE_API_VERSION
+AC_SUBST(GETTEXT_PACKAGE)
+AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",
+ [Package translatable messages domain name.])
+AM_GLIB_GNU_GETTEXT
+AC_CHECK_DECLS(bind_textdomain_codeset,,,[#include "libintl.h"])
+
+
+################################################################################
+# Platform checks
+################################################################################
+
+AC_MSG_CHECKING([for a win32 platform])
+platform_win32=no
+case "$host" in
+ *-*-mingw*|*-*-cygwin*)
+ platform_win32=yes
+ ;;
+esac
+AC_MSG_RESULT([$platform_win32])
+AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes")
+
+os_win32=no
+if test "x$platform_win32" = "xyes"; then
+ AC_MSG_CHECKING([for native win32])
+ case "$host" in
+ *-*-mingw*)
+ os_win32=yes
+ ;;
+ esac
+ AC_MSG_RESULT([$os_win32])
+fi
+AM_CONDITIONAL(OS_WIN32, test "x$os_win32" = "xyes")
+
+
+if test "x$platform_win32" != "xyes"; then
+ LIBTOOL_EXPORT_OPTIONS=
+else
+ LIBTOOL_EXPORT_OPTIONS='-no-undefined'
+fi
+AC_SUBST([LIBTOOL_EXPORT_OPTIONS])
+LIBTOOL_FLAGS='-as-needed'
+AC_SUBST([LIBTOOL_FLAGS])
+
+
+################################################################################
+# Compilation
+################################################################################
+
+dnl Use lots of warning flags with with gcc and compatible compilers
+dnl Copied from cairo
+AC_DEFUN([VTE_CC_TRY_FLAG], [
+ AC_MSG_CHECKING([whether $CC supports $1])
+
+ vte_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $1"
+
+ AC_COMPILE_IFELSE([ ], [vte_cc_flag=yes], [vte_cc_flag=no])
+ CFLAGS="$vte_save_CFLAGS"
+
+ if test "x$vte_cc_flag" = "xyes"; then
+ ifelse([$2], , :, [$2])
+ else
+ ifelse([$3], , :, [$3])
+ fi
+ AC_MSG_RESULT([$vte_cc_flag])
+])
+AC_DEFUN([VTE_LD_TRY_FLAG], [
+ AC_MSG_CHECKING([whether $CC supports $1 when linking])
+
+ vte_save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $1"
+
+ AC_LINK_IFELSE([int main(void) {return 0;}],
+ [vte_ld_flag=yes], [vte_ld_flag=no])
+ LDFLAGS="$vte_save_LDFLAGS"
+
+ if test "x$vte_ld_flag" = "xyes"; then
+ ifelse([$2], , :, [$2])
+ else
+ ifelse([$3], , :, [$3])
+ fi
+ AC_MSG_RESULT([$vte_ld_flag])
+])
+
+
+dnl Note: if you change the following variable, the cache is automatically
+dnl skipped and all flags rechecked. So there's no need to do anything
+dnl else. If for any reason you need to force a recheck, just change
+dnl MAYBE_WARN in an ignorable way (like adding whitespace)
+
+MAYBE_WARN="-Wall -Wextra \
+-Wsign-compare -Werror-implicit-function-declaration \
+-Wpointer-arith -Wwrite-strings -Wstrict-prototypes \
+-Waggregate-return -Wcast-align -Wimplicit -Wuninitialised \
+-Wmissing-prototypes -Wmissing-declarations -Wnested-externs \
+-Wpacked -Wmissing-format-attribute -Wshadow \
+-Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations \
+-Wdeclaration-after-statement -Wold-style-definition \
+-Wno-missing-field-initializers -Wno-unused-parameter \
+-fno-common -Wno-switch-enum"
+
+# invalidate cached value if MAYBE_WARN has changed
+if test "x$vte_cv_warn_maybe" != "x$MAYBE_WARN"; then
+ unset vte_cv_warn_cflags
+fi
+AC_CACHE_CHECK([for supported warning flags], vte_cv_warn_cflags, [
+ echo
+ WARN_CFLAGS=""
+
+ # Some warning options are not supported by all versions of
+ # gcc, so test all desired options against the current
+ # compiler.
+ #
+ # Note that there are some order dependencies
+ # here. Specifically, an option that disables a warning will
+ # have no net effect if a later option then enables that
+ # warnings, (perhaps implicitly). So we put some grouped
+ # options (-Wall and -Wextra) up front and the -Wno options
+ # last.
+
+ for W in $MAYBE_WARN; do
+ VTE_CC_TRY_FLAG([$W], [WARN_CFLAGS="$WARN_CFLAGS $W"])
+ done
+
+ vte_cv_warn_cflags=$WARN_CFLAGS
+ vte_cv_warn_maybe=$MAYBE_WARN
+
+ AC_MSG_CHECKING([which warning flags were supported])])
+WARN_CFLAGS=$vte_cv_warn_cflags
+AC_SUBST(WARN_CFLAGS)
+CFLAGS="$CFLAGS $WARN_CFLAGS"
+
+PYTHON_LDFLAGS=""
+for W in "-Wl,--warn-unresolved-symbols"; do
+ VTE_LD_TRY_FLAG([$W], [PYTHON_LDFLAGS="$PYTHON_LDFLAGS $W"])
+done
+AC_SUBST(PYTHON_LDFLAGS)
+
+# Enable debugging messages and additional run-time checks.
+AC_ARG_ENABLE(debug,
+ [AS_HELP_STRING([--enable-debug],
+ [enable extra debugging checks and logging messages]
+ )],
+ DEBUG=$enableval, DEBUG=no)
+if test "x$DEBUG" != "xno" ; then
+ AC_MSG_RESULT([enabling debug checks and messages])
+ AC_DEFINE(VTE_DEBUG,1,[Enable debugging messages.])
+fi
+
+##########################################################
+# Check for -Bsymbolic-functions linker flag used to avoid
+# intra-library PLT jumps, if available.
+##########################################################
+
+AC_ARG_ENABLE([Bsymbolic],
+ [AS_HELP_STRING([--disable-Bsymbolic],
+ [disable linking with -Bsymbolic])],
+ [],[enable_Bsymbolic=yes])
+
+VTE_LDFLAGS=
+if test "$enable_Bsymbolic" != "no"; then
+ FLAG="-Wl,-Bsymbolic-functions"
+ VTE_LD_TRY_FLAG([$FLAG],
+ [VTE_LDFLAGS="$VTE_LDFLAGS $FLAG"],
+ [if test "$enable_Bsymbolic" = "auto"; then
+ AC_MSG_WARN([-Bsymbolic not supported by ld; disabling])
+ enable_Bsymbolic=no
+ else
+ AC_MSG_ERROR([-Bsymbolic requested but not supported by ld. Use --disable-Bsymbolic to disable])
+ fi])
+fi
+
+AC_SUBST([VTE_LDFLAGS])
+
+################################################################################
+
+# Disable deprecations and single includes
+# We don't use GNOME_MAINTAINER_MODE_DEFINES here since it's too much and
+# it also defines VTE's own defines.
+dnl AC_ARG_ENABLE([deprecation],
+dnl [AS_HELP_STRING([--disable-deprecation],
+dnl [prohibit VTE from using deprecated GLib/Pango/ATK/GDK/GTK+ features])],
+dnl [],[enable_deprecation=$enable_maintainer_mode])
+dnl if test "x$enable_deprecation" = xyes; then
+dnl AC_MSG_NOTICE([disabling deprecated GLIB/PANGO/GDK/ATK/GTK+ features])
+dnl
+dnl AC_DEFINE([ATK_DISABLE_DEPRECATED],[1],[Disable deprecated features])
+dnl AC_DEFINE([ATK_DISABLE_SINGLE_INCLUDES],[1],[Disable single includes])
+dnl AC_DEFINE([G_DISABLE_DEPRECATED],[1],[Disable deprecated features])
+dnl AC_DEFINE([G_DISABLE_SINGLE_INCLUDES],[1],[Disable single includes])
+dnl AC_DEFINE([GDK_DISABLE_DEPRECATED],[1],[Disable deprecated features])
+dnl AC_DEFINE([GDK_DISABLE_SINGLE_INCLUDES],[1],[Disable single includes])
+dnl AC_DEFINE([GDK_PIXBUF_DISABLE_DEPRECATED],[1],[Disable deprecated features])
+dnl AC_DEFINE([GDK_PIXBUF_DISABLE_SINGLE_INCLUDES],[1],[Disable single includes])
+dnl AC_DEFINE([GTK_DISABLE_DEPRECATED],[1],[Disable deprecated features])
+dnl AC_DEFINE([GTK_DISABLE_SINGLE_INCLUDES],[1],[Disable single includes])
+dnl AC_DEFINE([PANGO_DISABLE_DEPRECATED],[1],[Disable deprecated features])
+dnl AC_DEFINE([PANGO_DISABLE_SINGLE_INCLUDES],[1],[Disable single includes])
+dnl fi
+
+################################################################################
+# Core
+################################################################################
+
+# Use all available features under glibc, and disable accidental use of
+# deprecated functionality.
+AC_EGREP_CPP(glibc,
+ [
+ #include <stdio.h>
+ #ifdef __GLIBC__
+ glibc
+ #endif
+ ],
+ AC_DEFINE(_GNU_SOURCE,1,[Use all glibc features.]))
+
+case $host in
+*-*-solaris*)
+ AC_DEFINE(_XOPEN_SOURCE_EXTENDED,1,[Needed to get declarations for msg_control and msg_controllen on
Solaris])
+ AC_DEFINE(_XOPEN_SOURCE,1,[Needed to get declarations for msg_control and msg_controllen on Solaris])
+ AC_DEFINE(__EXTENSIONS__,1,[Needed to get declarations for msg_control and msg_controllen on Solaris])
+ ;;
+esac
+
+GLIB_REQUIRED=2.26.0
+PANGO_REQUIRED=1.22.0
+AC_DEFINE(GDK_MULTIHEAD_SAFE,1,[Force use of GDK's multihead-safe APIs.])
+PKG_CHECK_MODULES(GLIB,[glib-2.0 >= $GLIB_REQUIRED gobject-2.0])
+PKG_CHECK_MODULES(GTK,[glib-2.0 >= $GLIB_REQUIRED gobject-2.0 gtk+-$GTK_API_VERSION >= $GTK_REQUIRED])
+
+AC_PATH_PROG([GLIB_GENMARSHAL],[glib-genmarshal])
+AC_PATH_PROG([GLIB_MKENUMS],[glib-mkenums])
+
+# Let the user specify the default terminal emulation.
+AC_ARG_WITH(default-emulation,
+AS_HELP_STRING(--with-default-emulation=xterm,default terminal type to be emulated),
+emulation=$withval,emulation=xterm)
+AC_DEFINE_UNQUOTED(VTE_DEFAULT_EMULATION,"$emulation",[The default terminal type to be emulated.])
+VTE_DEFAULT_EMULATION=$emulation
+AC_SUBST(VTE_DEFAULT_EMULATION)
+AM_CONDITIONAL(VTE_DEFAULT_EMULATION, [test "$emulation" != xterm])
+
+# Check for headers.
+AC_CHECK_HEADERS(sys/select.h sys/syslimits.h sys/termios.h sys/un.h sys/wait.h stropts.h termios.h wchar.h)
+AC_HEADER_TIOCGWINSZ
+
+# Check for PTY handling functions.
+AC_CHECK_FUNCS([cfmakeraw fork setsid setpgid getpgid getpt grantpt unlockpt ptsname ptsname_r tcgetattr
tcsetattr])
+
+# Pull in the right libraries for various functions which might not be
+# bundled into an exploded libc.
+AC_CHECK_FUNC(socket,[have_socket=1],AC_CHECK_LIB(socket,socket,[have_socket=1; LIBS="$LIBS -lsocket"]))
+AC_CHECK_FUNC(socketpair,[have_socketpair=1],AC_CHECK_LIB(socket,socketpair,[have_socketpair=1; LIBS="$LIBS
-lsocket"]))
+AC_CHECK_FUNC(recvmsg,[have_recvmsg=1],AC_CHECK_LIB(socket,recvmsg,[have_recvmsg=1; LIBS="$LIBS -lsocket
-lnsl"]))
+if test x$have_socket = x1 ; then
+ AC_DEFINE(HAVE_SOCKET,1,[Define if you have the socket function.])
+fi
+if test x$have_socketpair = x1 ; then
+ AC_DEFINE(HAVE_SOCKETPAIR,1,[Define if you have the socketpair function.])
+fi
+if test x$have_recvmsg = x1 ; then
+ AC_DEFINE(HAVE_RECVMSG,1,[Define if you have the recvmsg function.])
+fi
+AC_CHECK_FUNC(floor,,AC_CHECK_LIB(m,floor,LIBS=["$LIBS -lm"]))
+AC_CHECK_FUNCS([ceil floor])
+
+# Look for tgetent
+
+AC_CHECK_FUNC([tgetent],[vte_cv_termcap_lib=libc],
+ [AC_CHECK_LIB([ncurses],[tgetent],[vte_cv_termcap_lib=libncurses],
+ [AC_CHECK_LIB([tinfo],[tgetent],[vte_cv_termcap_lib=libtinfo],
+ [AC_CHECK_LIB([curses],[tgetent],[vte_cv_termcap_lib=libcurses],
+ [AC_CHECK_LIB([termcap],[tgetent],[vte_cv_termcap_lib=libtermcap],
+ [vte_cv_termcap_lib=])])])])])
+
+case "$vte_cv_termcap_lib" in
+ libc) # FIXME: which headers to include here?
+ ;;
+ libncurses) # We need ncurses.h and term.h, or ncurses/curses.h and ncurses/term.h
+ AC_CHECK_HEADERS([ncurses.h term.h],[],
+ [AC_CHECK_HEADERS([ncurses/curses.h ncurses/term.h],[],
+ [AC_MSG_ERROR([ncurses headers not found])])])
+ LIBS="-lncurses $LIBS"
+ ;;
+ libtinfo) # Need ncurses/curses.h and ncurses/term.h
+ AC_CHECK_HEADERS([ncurses.h term.h],[],
+ [AC_CHECK_HEADERS([ncurses/curses.h ncurses/term.h],[],
+ [AC_MSG_ERROR([ncurses headers not found])])])
+ LIBS="-ltinfo $LIBS"
+ ;;
+ libcurses) # Need curses.h and term.h
+ AC_CHECK_HEADERS([curses.h term.h],[],
+ [AC_MSG_ERROR([curses headers not found])],
+ [[#ifdef HAVE_CURSES_H
+ #include <curses.h>
+ #endif]])
+ LIBS="-lcurses $LIBS"
+ ;;
+ libtermcap) # Need termcap.h
+ AC_CHECK_HEADERS([termcap.h],[],
+ [AC_MSG_ERROR([termcap headers not found])])
+ LIBS="-ltermcap $LIBS"
+ ;;
+ *) AC_MSG_ERROR([tgetent not found in any library]) ;;
+esac
+
+# Search for the required modules.
+
+# We have a direct dependency on X11 on gdk-x11, see bug #613525
+AC_MSG_CHECKING([for GDK target])
+GDK_TARGET="$($PKG_CONFIG --variable target gdk-$GTK_API_VERSION)"
+AC_MSG_RESULT([$GDK_TARGET])
+case "$GDK_TARGET" in
+ x11) PLATFORM_PKGS="x11 cairo-xlib" ;;
+ *) PLATFORM_PKGS="" ;;
+esac
+
+VTE_PKGS="glib-2.0 >= $GLIB_REQUIRED gobject-2.0 pango >= $PANGO_REQUIRED gtk+-$GTK_API_VERSION >=
$GTK_REQUIRED gobject-2.0 gio-2.0 gio-unix-2.0 $PLATFORM_PKGS"
+PKG_CHECK_MODULES([VTE],[$VTE_PKGS])
+AC_SUBST([VTE_PKGS])
+
+wcs_funcs_includes="
+#ifdef HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#else
+# ifdef HAVE_STRINGS_H
+# include <strings.h>
+# endif
+#endif
+#ifdef HAVE_WCHAR_H
+# include <wchar.h>
+#endif
+"
+
+AC_CHECK_TYPES(wint_t, AC_DEFINE(HAVE_WINT_T, , [Defined when the wint_t type is supported]),
,$wcs_funcs_includes)
+
+################################################################################
+
+GTK_DOC_CHECK([1.13],[--flavour no-tmpl])
+
+AC_SUBST([GLIB_PREFIX],[$($PKG_CONFIG --variable=prefix glib-2.0)])
+AC_SUBST([GTK_PREFIX],[$($PKG_CONFIG --variable=prefix gtk+-$GTK_API_VERSION)])
+
+################################################################################
+
+AC_SUBST([VTE_MAJOR_VERSION],[version_major])
+AC_SUBST([VTE_MINOR_VERSION],[version_minor])
+AC_SUBST([VTE_MICRO_VERSION],[version_micro])
+
+################################################################################
+
+AC_CONFIG_FILES([
+Makefile
+src/Makefile
+src/vteversion.h
+termcaps/Makefile
+])
+
+AC_OUTPUT
+
+#####################
+# Print configuration
+#####################
+cat <<EOF | tee -a config.log
+
+## -------------- ##
+## Configuration. ##
+## -------------- ##
+
+Configuration for libvte $VERSION for gtk+-$GTK_API_VERSION
+ Installing Glade catalogue: $enable_glade_catalogue
+ Debugging: $DEBUG
+ Disallow deprecated features: $enable_deprecation
+EOF
diff --git a/vte/depcomp b/vte/depcomp
new file mode 100755
index 0000000..df8eea7
--- /dev/null
+++ b/vte/depcomp
@@ -0,0 +1,630 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2009-04-28.21; # UTC
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
+# Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva dcc unicamp br>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by `PROGRAMS ARGS'.
+ object Object file output by `PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputing dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake gnu org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u="sed s,\\\\\\\\,/,g"
+ depmode=msvisualcpp
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay! Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff. Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am. Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+ for arg
+ do
+ case $arg in
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+ *) set fnord "$@" "$arg" ;;
+ esac
+ shift # fnord
+ shift # $arg
+ done
+ "$@"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+ tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'. On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like `#:fec' to the end of the
+ # dependency line.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+ tr '
+' ' ' >> "$depfile"
+ echo >> "$depfile"
+
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts `$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$base.u
+ tmpdepfile3=$dir.libs/$base.u
+ "$@" -Wc,-M
+ else
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$dir$base.u
+ tmpdepfile3=$dir$base.u
+ "$@" -M
+ fi
+ stat=$?
+
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form `foo.o: dependent.h'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+icc)
+ # Intel's C compiler understands `-MD -MF file'. However on
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+ # ICC 7.0 will fill foo.d with something like
+ # foo.o: sub/foo.c
+ # foo.o: sub/foo.h
+ # which is wrong. We want:
+ # sub/foo.o: sub/foo.c
+ # sub/foo.o: sub/foo.h
+ # sub/foo.c:
+ # sub/foo.h:
+ # ICC 7.1 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using \ :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+ sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp2)
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+ # compilers, which have integrated preprocessors. The correct option
+ # to use with these is +Maked; it writes dependencies to a file named
+ # 'foo.d', which lands next to the object file, wherever that
+ # happens to be.
+ # Much of this is similar to the tru64 case; see comments there.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir.libs/$base.d
+ "$@" -Wc,+Maked
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ "$@" +Maked
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+ # Add `dependent.h:' lines.
+ sed -ne '2,${
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile" "$tmpdepfile2"
+ ;;
+
+tru64)
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in `foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+ if test "$libtool" = yes; then
+ # With Tru64 cc, shared objects can also be used to make a
+ # static library. This mechanism is used in libtool 1.4 series to
+ # handle both shared and static libraries in a single compilation.
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+ #
+ # With libtool 1.5 this exception was removed, and libtool now
+ # generates 2 separate objects for the 2 libraries. These two
+ # compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.o.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ tmpdepfile4=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove `-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ test -z "$dashmflag" && dashmflag=-M
+ # Require at least two characters before searching for `:'
+ # in the target name. This is to cope with DOS-style filenames:
+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+ "$@" $dashmflag |
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+ # X makedepend
+ shift
+ cleared=no eat=no
+ for arg
+ do
+ case $cleared in
+ no)
+ set ""; shift
+ cleared=yes ;;
+ esac
+ if test $eat = yes; then
+ eat=no
+ continue
+ fi
+ case "$arg" in
+ -D*|-I*)
+ set fnord "$@" "$arg"; shift ;;
+ # Strip any option that makedepend may not understand. Remove
+ # the object too, otherwise makedepend will parse it as a source file.
+ -arch)
+ eat=yes ;;
+ -*|$object)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift ;;
+ esac
+ done
+ obj_suffix=`echo "$object" | sed 's/^.*\././'`
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove `-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ "$@" -E |
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ sed '$ s: \\$::' > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ IFS=" "
+ for arg
+ do
+ case "$arg" in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ set fnord "$@"
+ shift
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
+ esac
+ done
+ "$@" -E 2>/dev/null |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
+ echo " " >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvcmsys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+none)
+ exec "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/vte/src/Makefile.am b/vte/src/Makefile.am
new file mode 100644
index 0000000..1971458
--- /dev/null
+++ b/vte/src/Makefile.am
@@ -0,0 +1,333 @@
+
+EXTRA_DIST = iso2022.txt
+
+
+# The library
+
+headerdir = $(includedir)/vte-$(VTE_API_VERSION)/vte
+header_HEADERS = pty.h reaper.h vte.h vteaccess.h vtepty.h vtetypebuiltins.h vteversion.h vtedeprecated.h
+
+lib_LTLIBRARIES = libvte@VTE_LIBRARY_SUFFIX_U@.la
+
+EXTRA_libvte@VTE_LIBRARY_SUFFIX_U@_la_SOURCES = \
+ genkeysyms.py \
+ keysyms.c \
+ marshal.list \
+ mkunitables.sh \
+ unitable.CNS11643 \
+ unitable.CP437 \
+ unitable.GB12345 \
+ unitable.GB2312 \
+ unitable.JIS0201 \
+ unitable.JIS0208 \
+ unitable.JIS0212 \
+ unitable.KSX1001 \
+ vteseq-2.gperf \
+ vteseq-2.c \
+ vteseq-n.gperf \
+ vteseq-n.c \
+ vtetypebuiltins.c.template \
+ vtetypebuiltins.h.template \
+ $(NULL)
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la_SOURCES = \
+ buffer.h \
+ caps.c \
+ caps.h \
+ debug.c \
+ debug.h \
+ iso2022.c \
+ iso2022.h \
+ keymap.c \
+ keymap.h \
+ marshal.c \
+ marshal.h \
+ matcher.c \
+ matcher.h \
+ pty.c \
+ pty.h \
+ reaper.c \
+ reaper.h \
+ ring.c \
+ ring.h \
+ table.c \
+ table.h \
+ trie.c \
+ trie.h \
+ vte.c \
+ vte.h \
+ vte-gtk-compat.h \
+ vte-private.h \
+ vteaccess.c \
+ vteaccess.h \
+ vtebg.c \
+ vtebg.h \
+ vteconv.c \
+ vteconv.h \
+ vtedraw.c \
+ vtedraw.h \
+ vtedeprecated.h \
+ vteint.h \
+ vtepty.h \
+ vtepty-private.h \
+ vteregex.c \
+ vteregex.h \
+ vterowdata.c \
+ vterowdata.h \
+ vteseq.c \
+ vteseq-list.h \
+ vtestream.c \
+ vtestream.h \
+ vtestream-base.h \
+ vtestream-file.h \
+ vtetc.c \
+ vtetc.h \
+ vtetree.c \
+ vtetree.h \
+ vtetypebuiltins.c \
+ vtetypebuiltins.h \
+ vteunistr.c \
+ vteunistr.h \
+ vteversion.h
+ $(NULL)
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS = \
+ -DG_LOG_DOMAIN=\"Vte-$(VTE_API_VERSION)\" \
+ -DDATADIR='"$(datadir)"' \
+ -DLIBEXECDIR='"$(libexecdir)"' \
+ -DLOCALEDIR='"$(localedir)"' \
+ -DTERMCAPDIR='"$(pkgdatadir)/termcap-$(VTE_API_VERSION)"' \
+ -DVTE_COMPILATION \
+ $(AM_CPPFLAGS)
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS = $(VTE_CFLAGS) $(AM_CFLAGS)
+libvte@VTE_LIBRARY_SUFFIX_U@_la_LIBADD = $(VTE_LIBS)
+libvte@VTE_LIBRARY_SUFFIX_U@_la_LDFLAGS = \
+ $(VTE_LDFLAGS) \
+ -version-info $(LT_VERSION_INFO) \
+ -export-symbols-regex
"^vte_terminal_.*|^vte_pty_.*|^vte_get_.*|^_vte_pty_.*|^vte_reaper_.*|_vte_debug_.*" \
+ @LIBTOOL_EXPORT_OPTIONS@ @LIBTOOL_FLAGS@ \
+ $(AM_LDFLAGS)
+
+
+# Generated sources
+
+VTESEQ_BUILTSOURCES = vteseq-list.h vteseq-2.c vteseq-n.c
+BUILT_SOURCES = marshal.c marshal.h vtetypebuiltins.c vtetypebuiltins.h $(VTESEQ_BUILTSOURCES)
+MAINTAINERCLEANFILES = $(VTESEQ_BUILTSOURCES)
+EXTRA_DIST += $(VTESEQ_BUILTSOURCES)
+CLEANFILES = marshal.c marshal.h vtetypebuiltins.c vtetypebuiltins.h stamp-vtetypebuiltins.h
+
+marshal.c: marshal.list
+ $(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_vte_marshal --header --body --internal $< > $@
+
+marshal.h: marshal.list
+ $(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_vte_marshal --header --internal $< > $@
+
+vtetypebuiltins.h: stamp-vtetypebuiltins.h
+ @true
+stamp-vtetypebuiltins.h: vtetypebuiltins.h.template vte.h vtepty.h vtedeprecated.h
+ $(AM_V_GEN) $(GLIB_MKENUMS) --template $< $(filter %.h,$^) > xgen-vtbh \
+ && (cmp -s xgen-vtbh vtetypebuiltins.h || cp xgen-vtbh vtetypebuiltins.h ) \
+ && rm -f xgen-vtbh \
+ && echo timestamp > $(@F)
+
+vtetypebuiltins.c: vtetypebuiltins.c.template vte.h vtepty.h vtedeprecated.h
+ $(AM_V_GEN) $(GLIB_MKENUMS) --template $< $(filter %.h,$^) > xgen-vtbc \
+ && (cmp -s xgen-vtbc vtetypebuiltins.c || cp xgen-vtbc vtetypebuiltins.c ) \
+ && rm -f xgen-vtbc
+
+vteseq-2.c: vteseq-2.gperf
+ $(AM_V_GEN) $(top_srcdir)/missing --run gperf -m 100 --no-strlen $< > $@.tmp && \
+ mv -f $@.tmp $@
+
+vteseq-n.c: vteseq-n.gperf
+ $(AM_V_GEN) $(top_srcdir)/missing --run gperf -m 100 $< > $@.tmp && \
+ mv -f $@.tmp $@
+
+vteseq-list.h: vteseq-2.gperf vteseq-n.gperf
+ $(AM_V_GEN) echo '/* Generated file. Do not edit */' > $@.tmp && \
+ cat $^ | grep -v '^#' | grep '\<VTE_SEQUENCE_HANDLER\>'| sed 's/.*, //' | LANG=C sort -u >> $@.tmp &&
\
+ mv -f $@.tmp $@
+
+
+# vte the application
+
+bin_PROGRAMS = vte@VTE_LIBRARY_SUFFIX_U@
+
+vte@VTE_LIBRARY_SUFFIX_U@_SOURCES = vteapp.c
+vte@VTE_LIBRARY_SUFFIX_U@_CFLAGS = $(VTE_CFLAGS)
+vte@VTE_LIBRARY_SUFFIX_U@_LDADD = libvte@VTE_LIBRARY_SUFFIX_U@.la $(VTE_LIBS)
+
+# introspection
+
+INTROSPECTION_GIRS =
+INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --warn-all
+INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
+
+if HAVE_INTROSPECTION
+
+Vte-@VTE_API_VERSION@.gir: libvte@VTE_LIBRARY_SUFFIX_U@.la
+Vte_@VTE_API_VERSION_U@_gir_INCLUDES = Pango-1.0 Gdk-$(GTK_API_VERSION) Gtk-$(GTK_API_VERSION)
+Vte_@VTE_API_VERSION_U@_gir_CFLAGS = $(VTE_CFLAGS) -DVTE_COMPILATION -I$(top_srcdir)
+Vte_@VTE_API_VERSION_U@_gir_LIBS = libvte@VTE_LIBRARY_SUFFIX_U@.la
+Vte_@VTE_API_VERSION_U@_gir_FILES = \
+ vte.c \
+ vte.h \
+ vtepty.h \
+ pty.c \
+ vtetypebuiltins.c \
+ vtetypebuiltins.h \
+ $(NULL)
+
+INTROSPECTION_GIRS += Vte-$(VTE_API_VERSION).gir
+
+girdir = $(INTROSPECTION_GIRDIR)
+nodist_gir_DATA = $(INTROSPECTION_GIRS)
+
+typelibdir = $(INTROSPECTION_TYPELIBDIR)
+nodist_typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+
+CLEANFILES += $(nodist_gir_DATA) $(nodist_typelib_DATA)
+endif
+
+
+# Misc unit tests and utilities
+
+noinst_PROGRAMS = interpret slowcat
+noinst_SCRIPTS = decset osc window
+EXTRA_DIST += $(noinst_SCRIPTS)
+
+TEST_SH = check-doc-syntax.sh
+EXTRA_DIST += $(TEST_SH)
+
+check_PROGRAMS = dumpkeys iso2022 reaper reflect-text-view reflect-vte mev ssfe table trie xticker vteconv
vtetc
+TESTS = table trie $(TEST_SH)
+
+AM_CFLAGS = $(GLIB_CFLAGS)
+LDADD = $(GLIB_LIBS)
+
+reflect_text_view_CPPFLAGS = -DUSE_TEXT_VIEW
+reflect_text_view_CFLAGS = $(VTE_CFLAGS)
+reflect_text_view_SOURCES = reflect.c
+reflect_text_view_LDADD = $(VTE_LIBS)
+
+reflect_vte_CPPFLAGS = -DUSE_VTE
+reflect_vte_CFLAGS = $(VTE_CFLAGS)
+reflect_vte_SOURCES = reflect.c
+reflect_vte_LDADD = libvte@VTE_LIBRARY_SUFFIX_U@.la $(VTE_LIBS)
+
+interpret_SOURCES = \
+ buffer.h \
+ caps.c \
+ caps.h \
+ debug.c \
+ debug.h \
+ iso2022.c \
+ iso2022.h \
+ matcher.c \
+ matcher.h \
+ table.c \
+ table.h \
+ trie.c \
+ trie.h \
+ vteconv.c \
+ vteconv.h \
+ vtetc.c \
+ vtetc.h \
+ vtetree.c \
+ vtetree.h \
+ interpret.c
+interpret_CPPFLAGS = \
+ -DINTERPRET_MAIN \
+ -DTERMCAPDIR='"$(pkgdatadir)/termcap-$(VTE_API_VERSION)"'
+interpret_CFLAGS = $(GTK_CFLAGS)
+interpret_LDADD = $(GTK_LIBS)
+
+iso2022_SOURCES = \
+ buffer.h \
+ caps.c \
+ caps.h \
+ debug.c \
+ debug.h \
+ iso2022.c \
+ iso2022.h \
+ matcher.c \
+ matcher.h \
+ table.c \
+ table.h \
+ trie.c \
+ trie.h \
+ vteconv.c \
+ vteconv.h \
+ vtetc.c \
+ vtetc.h \
+ vtetree.c \
+ vtetree.h
+iso2022_CPPFLAGS = -DISO2022_MAIN
+iso2022_CFLAGS = $(GTK_CFLAGS)
+iso2022_LDADD = $(GTK_LIBS)
+
+slowcat_SOURCES = \
+ slowcat.c
+
+table_SOURCES = \
+ buffer.h \
+ caps.c \
+ caps.h \
+ debug.c \
+ debug.h \
+ matcher.c \
+ matcher.h \
+ table.c \
+ table.h \
+ trie.c \
+ trie.h \
+ vteconv.c \
+ vteconv.h \
+ vtetc.c \
+ vtetc.h
+table_CPPFLAGS = -DTABLE_MAIN
+table_CFLAGS = $(VTE_CFLAGS)
+table_LDADD = $(VTE_LIBS)
+
+trie_SOURCES = \
+ trie.c \
+ trie.h \
+ buffer.h \
+ caps.c \
+ caps.h \
+ debug.c \
+ debug.h \
+ matcher.c \
+ matcher.h \
+ table.c \
+ table.h \
+ vteconv.c \
+ vteconv.h \
+ vtetc.c \
+ vtetc.h
+trie_CPPFLAGS = -DTRIE_MAIN
+trie_CFLAGS = $(VTE_CFLAGS)
+trie_LDADD = $(VTE_LIBS)
+
+vtetc_SOURCES = vtetc.c vtetc.h debug.c debug.h
+vtetc_CPPFLAGS = -DTERMCAP_MAIN
+
+reaper_SOURCES = reaper.c reaper.h debug.c debug.h marshal.c marshal.h
+reaper_CPPFLAGS = -DREAPER_MAIN -DLOCALEDIR='"$(localedir)"'
+
+vteconv_SOURCES = buffer.h debug.c debug.h vteconv.c vteconv.h
+vteconv_CPPFLAGS = -DVTECONV_MAIN
+vteconv_CFLAGS = $(VTE_CFLAGS)
+vteconv_LDADD = $(VTE_LIBS)
+
+dumpkeys_SOURCES = dumpkeys.c
+mev_SOURCES = mev.c
+ssfe_SOURCES = ssfe.c
+xticker_SOURCES = xticker.c
+
+#
+
+-include $(top_srcdir)/git.mk
+-include $(INTROSPECTION_MAKEFILE)
diff --git a/vte/src/Makefile.in b/vte/src/Makefile.in
new file mode 100644
index 0000000..62c5cb8
--- /dev/null
+++ b/vte/src/Makefile.in
@@ -0,0 +1,2335 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+bin_PROGRAMS = vte@VTE_LIBRARY_SUFFIX_U@$(EXEEXT)
+@HAVE_INTROSPECTION_TRUE@am__append_1 = Vte-$(VTE_API_VERSION).gir
+@HAVE_INTROSPECTION_TRUE@am__append_2 = $(nodist_gir_DATA) $(nodist_typelib_DATA)
+noinst_PROGRAMS = interpret$(EXEEXT) slowcat$(EXEEXT)
+check_PROGRAMS = dumpkeys$(EXEEXT) iso2022$(EXEEXT) reaper$(EXEEXT) \
+ reflect-text-view$(EXEEXT) reflect-vte$(EXEEXT) mev$(EXEEXT) \
+ ssfe$(EXEEXT) table$(EXEEXT) trie$(EXEEXT) xticker$(EXEEXT) \
+ vteconv$(EXEEXT) vtetc$(EXEEXT)
+TESTS = table$(EXEEXT) trie$(EXEEXT) $(TEST_SH)
+subdir = src
+DIST_COMMON = $(header_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/vteversion.h.in TODO
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES = vteversion.h
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
+ "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibdir)" \
+ "$(DESTDIR)$(headerdir)"
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libvte@VTE_LIBRARY_SUFFIX_U@_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libvte@VTE_LIBRARY_SUFFIX_U@_la_OBJECTS = \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-caps.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-debug.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-iso2022.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-keymap.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-marshal.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-matcher.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-pty.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-reaper.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-ring.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-table.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-trie.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vte.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vteaccess.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vtebg.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vteconv.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vtedraw.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vteregex.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vterowdata.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vtestream.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetc.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetree.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetypebuiltins.lo \
+ libvte@VTE_LIBRARY_SUFFIX_U@_la-vteunistr.lo
+libvte@VTE_LIBRARY_SUFFIX_U@_la_OBJECTS = \
+ $(am_libvte@VTE_LIBRARY_SUFFIX_U@_la_OBJECTS)
+AM_V_lt = $(am__v_lt_$(V))
+am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+am__v_lt_0 = --silent
+libvte@VTE_LIBRARY_SUFFIX_U@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) \
+ $(libvte@VTE_LIBRARY_SUFFIX_U@_la_LDFLAGS) $(LDFLAGS) -o $@
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+am_dumpkeys_OBJECTS = dumpkeys.$(OBJEXT)
+dumpkeys_OBJECTS = $(am_dumpkeys_OBJECTS)
+dumpkeys_LDADD = $(LDADD)
+dumpkeys_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_interpret_OBJECTS = interpret-caps.$(OBJEXT) \
+ interpret-debug.$(OBJEXT) interpret-iso2022.$(OBJEXT) \
+ interpret-matcher.$(OBJEXT) interpret-table.$(OBJEXT) \
+ interpret-trie.$(OBJEXT) interpret-vteconv.$(OBJEXT) \
+ interpret-vtetc.$(OBJEXT) interpret-vtetree.$(OBJEXT) \
+ interpret-interpret.$(OBJEXT)
+interpret_OBJECTS = $(am_interpret_OBJECTS)
+interpret_DEPENDENCIES = $(am__DEPENDENCIES_1)
+interpret_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(interpret_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_iso2022_OBJECTS = iso2022-caps.$(OBJEXT) iso2022-debug.$(OBJEXT) \
+ iso2022-iso2022.$(OBJEXT) iso2022-matcher.$(OBJEXT) \
+ iso2022-table.$(OBJEXT) iso2022-trie.$(OBJEXT) \
+ iso2022-vteconv.$(OBJEXT) iso2022-vtetc.$(OBJEXT) \
+ iso2022-vtetree.$(OBJEXT)
+iso2022_OBJECTS = $(am_iso2022_OBJECTS)
+iso2022_DEPENDENCIES = $(am__DEPENDENCIES_1)
+iso2022_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(iso2022_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_mev_OBJECTS = mev.$(OBJEXT)
+mev_OBJECTS = $(am_mev_OBJECTS)
+mev_LDADD = $(LDADD)
+mev_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_reaper_OBJECTS = reaper-reaper.$(OBJEXT) reaper-debug.$(OBJEXT) \
+ reaper-marshal.$(OBJEXT)
+reaper_OBJECTS = $(am_reaper_OBJECTS)
+reaper_LDADD = $(LDADD)
+reaper_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_reflect_text_view_OBJECTS = reflect_text_view-reflect.$(OBJEXT)
+reflect_text_view_OBJECTS = $(am_reflect_text_view_OBJECTS)
+reflect_text_view_DEPENDENCIES = $(am__DEPENDENCIES_1)
+reflect_text_view_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(reflect_text_view_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
+am_reflect_vte_OBJECTS = reflect_vte-reflect.$(OBJEXT)
+reflect_vte_OBJECTS = $(am_reflect_vte_OBJECTS)
+reflect_vte_DEPENDENCIES = libvte@VTE_LIBRARY_SUFFIX_U@.la \
+ $(am__DEPENDENCIES_1)
+reflect_vte_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(reflect_vte_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_slowcat_OBJECTS = slowcat.$(OBJEXT)
+slowcat_OBJECTS = $(am_slowcat_OBJECTS)
+slowcat_LDADD = $(LDADD)
+slowcat_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_ssfe_OBJECTS = ssfe.$(OBJEXT)
+ssfe_OBJECTS = $(am_ssfe_OBJECTS)
+ssfe_LDADD = $(LDADD)
+ssfe_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_table_OBJECTS = table-caps.$(OBJEXT) table-debug.$(OBJEXT) \
+ table-matcher.$(OBJEXT) table-table.$(OBJEXT) \
+ table-trie.$(OBJEXT) table-vteconv.$(OBJEXT) \
+ table-vtetc.$(OBJEXT)
+table_OBJECTS = $(am_table_OBJECTS)
+table_DEPENDENCIES = $(am__DEPENDENCIES_1)
+table_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(table_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_trie_OBJECTS = trie-trie.$(OBJEXT) trie-caps.$(OBJEXT) \
+ trie-debug.$(OBJEXT) trie-matcher.$(OBJEXT) \
+ trie-table.$(OBJEXT) trie-vteconv.$(OBJEXT) \
+ trie-vtetc.$(OBJEXT)
+trie_OBJECTS = $(am_trie_OBJECTS)
+trie_DEPENDENCIES = $(am__DEPENDENCIES_1)
+trie_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(trie_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_vte@VTE_LIBRARY_SUFFIX_U@_OBJECTS = \
+ vte@VTE_LIBRARY_SUFFIX_U@-vteapp.$(OBJEXT)
+vte@VTE_LIBRARY_SUFFIX_U@_OBJECTS = \
+ $(am_vte@VTE_LIBRARY_SUFFIX_U@_OBJECTS)
+vte@VTE_LIBRARY_SUFFIX_U@_DEPENDENCIES = \
+ libvte@VTE_LIBRARY_SUFFIX_U@.la $(am__DEPENDENCIES_1)
+vte@VTE_LIBRARY_SUFFIX_U@_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(vte@VTE_LIBRARY_SUFFIX_U@_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_vteconv_OBJECTS = vteconv-debug.$(OBJEXT) vteconv-vteconv.$(OBJEXT)
+vteconv_OBJECTS = $(am_vteconv_OBJECTS)
+vteconv_DEPENDENCIES = $(am__DEPENDENCIES_1)
+vteconv_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(vteconv_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_vtetc_OBJECTS = vtetc-vtetc.$(OBJEXT) vtetc-debug.$(OBJEXT)
+vtetc_OBJECTS = $(am_vtetc_OBJECTS)
+vtetc_LDADD = $(LDADD)
+vtetc_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_xticker_OBJECTS = xticker.$(OBJEXT)
+xticker_OBJECTS = $(am_xticker_OBJECTS)
+xticker_LDADD = $(LDADD)
+xticker_DEPENDENCIES = $(am__DEPENDENCIES_1)
+SCRIPTS = $(noinst_SCRIPTS)
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_$(V))
+am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
+am__v_CC_0 = @echo " CC " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_$(V))
+am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(libvte@VTE_LIBRARY_SUFFIX_U@_la_SOURCES) \
+ $(EXTRA_libvte@VTE_LIBRARY_SUFFIX_U@_la_SOURCES) \
+ $(dumpkeys_SOURCES) $(interpret_SOURCES) $(iso2022_SOURCES) \
+ $(mev_SOURCES) $(reaper_SOURCES) $(reflect_text_view_SOURCES) \
+ $(reflect_vte_SOURCES) $(slowcat_SOURCES) $(ssfe_SOURCES) \
+ $(table_SOURCES) $(trie_SOURCES) \
+ $(vte@VTE_LIBRARY_SUFFIX_U@_SOURCES) $(vteconv_SOURCES) \
+ $(vtetc_SOURCES) $(xticker_SOURCES)
+DIST_SOURCES = $(libvte@VTE_LIBRARY_SUFFIX_U@_la_SOURCES) \
+ $(EXTRA_libvte@VTE_LIBRARY_SUFFIX_U@_la_SOURCES) \
+ $(dumpkeys_SOURCES) $(interpret_SOURCES) $(iso2022_SOURCES) \
+ $(mev_SOURCES) $(reaper_SOURCES) $(reflect_text_view_SOURCES) \
+ $(reflect_vte_SOURCES) $(slowcat_SOURCES) $(ssfe_SOURCES) \
+ $(table_SOURCES) $(trie_SOURCES) \
+ $(vte@VTE_LIBRARY_SUFFIX_U@_SOURCES) $(vteconv_SOURCES) \
+ $(vtetc_SOURCES) $(xticker_SOURCES)
+DATA = $(nodist_gir_DATA) $(nodist_typelib_DATA)
+HEADERS = $(header_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+am__tty_colors = \
+red=; grn=; lgn=; blu=; std=
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLADE_CATALOGUE_DIR = @GLADE_CATALOGUE_DIR@
+GLADE_ICON_DIR = @GLADE_ICON_DIR@
+GLADE_MODULE_DIR = @GLADE_MODULE_DIR@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GLIB_PREFIX = @GLIB_PREFIX@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_API_VERSION = @GTK_API_VERSION@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+GTK_PREFIX = @GTK_PREFIX@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@
+LIBTOOL_FLAGS = @LIBTOOL_FLAGS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYGTK_CFLAGS = @PYGTK_CFLAGS@
+PYGTK_CODEGEN = @PYGTK_CODEGEN@
+PYGTK_DEFSDIR = @PYGTK_DEFSDIR@
+PYGTK_LIBS = @PYGTK_LIBS@
+PYTHON = @PYTHON@
+PYTHONMODULES = @PYTHONMODULES@
+PYTHONREV = @PYTHONREV@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+VTE_API_MAJOR_VERSION = @VTE_API_MAJOR_VERSION@
+VTE_API_MINOR_VERSION = @VTE_API_MINOR_VERSION@
+VTE_API_VERSION = @VTE_API_VERSION@
+VTE_API_VERSION_U = @VTE_API_VERSION_U@
+VTE_CFLAGS = @VTE_CFLAGS@
+VTE_DEFAULT_EMULATION = @VTE_DEFAULT_EMULATION@
+VTE_LDFLAGS = @VTE_LDFLAGS@
+VTE_LIBRARY_SUFFIX_U = @VTE_LIBRARY_SUFFIX_U@
+VTE_LIBS = @VTE_LIBS@
+VTE_MAJOR_VERSION = @VTE_MAJOR_VERSION@
+VTE_MICRO_VERSION = @VTE_MICRO_VERSION@
+VTE_MINOR_VERSION = @VTE_MINOR_VERSION@
+VTE_PC_VERSION = @VTE_PC_VERSION@
+VTE_PKGS = @VTE_PKGS@
+VTE_SEAL_CFLAGS = @VTE_SEAL_CFLAGS@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = iso2022.txt $(VTESEQ_BUILTSOURCES) $(noinst_SCRIPTS) \
+ $(TEST_SH)
+
+# The library
+headerdir = $(includedir)/vte-$(VTE_API_VERSION)/vte
+header_HEADERS = pty.h reaper.h vte.h vteaccess.h vtepty.h vtetypebuiltins.h vteversion.h vtedeprecated.h
+lib_LTLIBRARIES = libvte@VTE_LIBRARY_SUFFIX_U@.la
+EXTRA_libvte@VTE_LIBRARY_SUFFIX_U@_la_SOURCES = \
+ genkeysyms.py \
+ keysyms.c \
+ marshal.list \
+ mkunitables.sh \
+ unitable.CNS11643 \
+ unitable.CP437 \
+ unitable.GB12345 \
+ unitable.GB2312 \
+ unitable.JIS0201 \
+ unitable.JIS0208 \
+ unitable.JIS0212 \
+ unitable.KSX1001 \
+ vteseq-2.gperf \
+ vteseq-2.c \
+ vteseq-n.gperf \
+ vteseq-n.c \
+ vtetypebuiltins.c.template \
+ vtetypebuiltins.h.template \
+ $(NULL)
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la_SOURCES = \
+ buffer.h \
+ caps.c \
+ caps.h \
+ debug.c \
+ debug.h \
+ iso2022.c \
+ iso2022.h \
+ keymap.c \
+ keymap.h \
+ marshal.c \
+ marshal.h \
+ matcher.c \
+ matcher.h \
+ pty.c \
+ pty.h \
+ reaper.c \
+ reaper.h \
+ ring.c \
+ ring.h \
+ table.c \
+ table.h \
+ trie.c \
+ trie.h \
+ vte.c \
+ vte.h \
+ vte-gtk-compat.h \
+ vte-private.h \
+ vteaccess.c \
+ vteaccess.h \
+ vtebg.c \
+ vtebg.h \
+ vteconv.c \
+ vteconv.h \
+ vtedraw.c \
+ vtedraw.h \
+ vtedeprecated.h \
+ vteint.h \
+ vtepty.h \
+ vtepty-private.h \
+ vteregex.c \
+ vteregex.h \
+ vterowdata.c \
+ vterowdata.h \
+ vteseq.c \
+ vteseq-list.h \
+ vtestream.c \
+ vtestream.h \
+ vtestream-base.h \
+ vtestream-file.h \
+ vtetc.c \
+ vtetc.h \
+ vtetree.c \
+ vtetree.h \
+ vtetypebuiltins.c \
+ vtetypebuiltins.h \
+ vteunistr.c \
+ vteunistr.h \
+ vteversion.h
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS = \
+ -DG_LOG_DOMAIN=\"Vte-$(VTE_API_VERSION)\" \
+ -DDATADIR='"$(datadir)"' \
+ -DLIBEXECDIR='"$(libexecdir)"' \
+ -DLOCALEDIR='"$(localedir)"' \
+ -DTERMCAPDIR='"$(pkgdatadir)/termcap-$(VTE_API_VERSION)"' \
+ -DVTE_COMPILATION \
+ $(AM_CPPFLAGS)
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS = $(VTE_CFLAGS) $(AM_CFLAGS)
+libvte@VTE_LIBRARY_SUFFIX_U@_la_LIBADD = $(VTE_LIBS)
+libvte@VTE_LIBRARY_SUFFIX_U@_la_LDFLAGS = \
+ $(VTE_LDFLAGS) \
+ -version-info $(LT_VERSION_INFO) \
+ -export-symbols-regex
"^vte_terminal_.*|^vte_pty_.*|^vte_get_.*|^_vte_pty_.*|^vte_reaper_.*|_vte_debug_.*" \
+ @LIBTOOL_EXPORT_OPTIONS@ @LIBTOOL_FLAGS@ \
+ $(AM_LDFLAGS)
+
+
+# Generated sources
+VTESEQ_BUILTSOURCES = vteseq-list.h vteseq-2.c vteseq-n.c
+BUILT_SOURCES = marshal.c marshal.h vtetypebuiltins.c vtetypebuiltins.h $(VTESEQ_BUILTSOURCES)
+MAINTAINERCLEANFILES = $(VTESEQ_BUILTSOURCES)
+CLEANFILES = marshal.c marshal.h vtetypebuiltins.c vtetypebuiltins.h \
+ stamp-vtetypebuiltins.h $(am__append_2)
+vte@VTE_LIBRARY_SUFFIX_U@_SOURCES = vteapp.c
+vte@VTE_LIBRARY_SUFFIX_U@_CFLAGS = $(VTE_CFLAGS)
+vte@VTE_LIBRARY_SUFFIX_U@_LDADD = libvte@VTE_LIBRARY_SUFFIX_U@.la $(VTE_LIBS)
+
+# introspection
+INTROSPECTION_GIRS = $(am__append_1)
+INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --warn-all
+INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
+@HAVE_INTROSPECTION_TRUE@Vte_@VTE_API_VERSION_U@_gir_INCLUDES = Pango-1.0 Gdk-$(GTK_API_VERSION)
Gtk-$(GTK_API_VERSION)
+@HAVE_INTROSPECTION_TRUE@Vte_@VTE_API_VERSION_U@_gir_CFLAGS = $(VTE_CFLAGS) -DVTE_COMPILATION -I$(top_srcdir)
+@HAVE_INTROSPECTION_TRUE@Vte_@VTE_API_VERSION_U@_gir_LIBS = libvte@VTE_LIBRARY_SUFFIX_U@.la
+@HAVE_INTROSPECTION_TRUE@Vte_@VTE_API_VERSION_U@_gir_FILES = \
+@HAVE_INTROSPECTION_TRUE@ vte.c \
+@HAVE_INTROSPECTION_TRUE@ vte.h \
+@HAVE_INTROSPECTION_TRUE@ vtepty.h \
+@HAVE_INTROSPECTION_TRUE@ pty.c \
+@HAVE_INTROSPECTION_TRUE@ vtetypebuiltins.c \
+@HAVE_INTROSPECTION_TRUE@ vtetypebuiltins.h \
+@HAVE_INTROSPECTION_TRUE@ $(NULL)
+
+@HAVE_INTROSPECTION_TRUE@girdir = $(INTROSPECTION_GIRDIR)
+@HAVE_INTROSPECTION_TRUE@nodist_gir_DATA = $(INTROSPECTION_GIRS)
+@HAVE_INTROSPECTION_TRUE@typelibdir = $(INTROSPECTION_TYPELIBDIR)
+@HAVE_INTROSPECTION_TRUE@nodist_typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+noinst_SCRIPTS = decset osc window
+TEST_SH = check-doc-syntax.sh
+AM_CFLAGS = $(GLIB_CFLAGS)
+LDADD = $(GLIB_LIBS)
+reflect_text_view_CPPFLAGS = -DUSE_TEXT_VIEW
+reflect_text_view_CFLAGS = $(VTE_CFLAGS)
+reflect_text_view_SOURCES = reflect.c
+reflect_text_view_LDADD = $(VTE_LIBS)
+reflect_vte_CPPFLAGS = -DUSE_VTE
+reflect_vte_CFLAGS = $(VTE_CFLAGS)
+reflect_vte_SOURCES = reflect.c
+reflect_vte_LDADD = libvte@VTE_LIBRARY_SUFFIX_U@.la $(VTE_LIBS)
+interpret_SOURCES = \
+ buffer.h \
+ caps.c \
+ caps.h \
+ debug.c \
+ debug.h \
+ iso2022.c \
+ iso2022.h \
+ matcher.c \
+ matcher.h \
+ table.c \
+ table.h \
+ trie.c \
+ trie.h \
+ vteconv.c \
+ vteconv.h \
+ vtetc.c \
+ vtetc.h \
+ vtetree.c \
+ vtetree.h \
+ interpret.c
+
+interpret_CPPFLAGS = \
+ -DINTERPRET_MAIN \
+ -DTERMCAPDIR='"$(pkgdatadir)/termcap-$(VTE_API_VERSION)"'
+
+interpret_CFLAGS = $(GTK_CFLAGS)
+interpret_LDADD = $(GTK_LIBS)
+iso2022_SOURCES = \
+ buffer.h \
+ caps.c \
+ caps.h \
+ debug.c \
+ debug.h \
+ iso2022.c \
+ iso2022.h \
+ matcher.c \
+ matcher.h \
+ table.c \
+ table.h \
+ trie.c \
+ trie.h \
+ vteconv.c \
+ vteconv.h \
+ vtetc.c \
+ vtetc.h \
+ vtetree.c \
+ vtetree.h
+
+iso2022_CPPFLAGS = -DISO2022_MAIN
+iso2022_CFLAGS = $(GTK_CFLAGS)
+iso2022_LDADD = $(GTK_LIBS)
+slowcat_SOURCES = \
+ slowcat.c
+
+table_SOURCES = \
+ buffer.h \
+ caps.c \
+ caps.h \
+ debug.c \
+ debug.h \
+ matcher.c \
+ matcher.h \
+ table.c \
+ table.h \
+ trie.c \
+ trie.h \
+ vteconv.c \
+ vteconv.h \
+ vtetc.c \
+ vtetc.h
+
+table_CPPFLAGS = -DTABLE_MAIN
+table_CFLAGS = $(VTE_CFLAGS)
+table_LDADD = $(VTE_LIBS)
+trie_SOURCES = \
+ trie.c \
+ trie.h \
+ buffer.h \
+ caps.c \
+ caps.h \
+ debug.c \
+ debug.h \
+ matcher.c \
+ matcher.h \
+ table.c \
+ table.h \
+ vteconv.c \
+ vteconv.h \
+ vtetc.c \
+ vtetc.h
+
+trie_CPPFLAGS = -DTRIE_MAIN
+trie_CFLAGS = $(VTE_CFLAGS)
+trie_LDADD = $(VTE_LIBS)
+vtetc_SOURCES = vtetc.c vtetc.h debug.c debug.h
+vtetc_CPPFLAGS = -DTERMCAP_MAIN
+reaper_SOURCES = reaper.c reaper.h debug.c debug.h marshal.c marshal.h
+reaper_CPPFLAGS = -DREAPER_MAIN -DLOCALEDIR='"$(localedir)"'
+vteconv_SOURCES = buffer.h debug.c debug.h vteconv.c vteconv.h
+vteconv_CPPFLAGS = -DVTECONV_MAIN
+vteconv_CFLAGS = $(VTE_CFLAGS)
+vteconv_LDADD = $(VTE_LIBS)
+dumpkeys_SOURCES = dumpkeys.c
+mev_SOURCES = mev.c
+ssfe_SOURCES = ssfe.c
+xticker_SOURCES = xticker.c
+all: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign src/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+vteversion.h: $(top_builddir)/config.status $(srcdir)/vteversion.h.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL)
$(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG)
$$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f
'$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libvte@VTE_LIBRARY_SUFFIX_U@.la: $(libvte@VTE_LIBRARY_SUFFIX_U@_la_OBJECTS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_DEPENDENCIES)
+ $(AM_V_CCLD)$(libvte@VTE_LIBRARY_SUFFIX_U@_la_LINK) -rpath $(libdir)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_OBJECTS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_LIBADD) $(LIBS)
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p || test -f $$p1; \
+ then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install
$(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install
$(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+dumpkeys$(EXEEXT): $(dumpkeys_OBJECTS) $(dumpkeys_DEPENDENCIES)
+ @rm -f dumpkeys$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(dumpkeys_OBJECTS) $(dumpkeys_LDADD) $(LIBS)
+interpret$(EXEEXT): $(interpret_OBJECTS) $(interpret_DEPENDENCIES)
+ @rm -f interpret$(EXEEXT)
+ $(AM_V_CCLD)$(interpret_LINK) $(interpret_OBJECTS) $(interpret_LDADD) $(LIBS)
+iso2022$(EXEEXT): $(iso2022_OBJECTS) $(iso2022_DEPENDENCIES)
+ @rm -f iso2022$(EXEEXT)
+ $(AM_V_CCLD)$(iso2022_LINK) $(iso2022_OBJECTS) $(iso2022_LDADD) $(LIBS)
+mev$(EXEEXT): $(mev_OBJECTS) $(mev_DEPENDENCIES)
+ @rm -f mev$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(mev_OBJECTS) $(mev_LDADD) $(LIBS)
+reaper$(EXEEXT): $(reaper_OBJECTS) $(reaper_DEPENDENCIES)
+ @rm -f reaper$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(reaper_OBJECTS) $(reaper_LDADD) $(LIBS)
+reflect-text-view$(EXEEXT): $(reflect_text_view_OBJECTS) $(reflect_text_view_DEPENDENCIES)
+ @rm -f reflect-text-view$(EXEEXT)
+ $(AM_V_CCLD)$(reflect_text_view_LINK) $(reflect_text_view_OBJECTS) $(reflect_text_view_LDADD) $(LIBS)
+reflect-vte$(EXEEXT): $(reflect_vte_OBJECTS) $(reflect_vte_DEPENDENCIES)
+ @rm -f reflect-vte$(EXEEXT)
+ $(AM_V_CCLD)$(reflect_vte_LINK) $(reflect_vte_OBJECTS) $(reflect_vte_LDADD) $(LIBS)
+slowcat$(EXEEXT): $(slowcat_OBJECTS) $(slowcat_DEPENDENCIES)
+ @rm -f slowcat$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(slowcat_OBJECTS) $(slowcat_LDADD) $(LIBS)
+ssfe$(EXEEXT): $(ssfe_OBJECTS) $(ssfe_DEPENDENCIES)
+ @rm -f ssfe$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(ssfe_OBJECTS) $(ssfe_LDADD) $(LIBS)
+table$(EXEEXT): $(table_OBJECTS) $(table_DEPENDENCIES)
+ @rm -f table$(EXEEXT)
+ $(AM_V_CCLD)$(table_LINK) $(table_OBJECTS) $(table_LDADD) $(LIBS)
+trie$(EXEEXT): $(trie_OBJECTS) $(trie_DEPENDENCIES)
+ @rm -f trie$(EXEEXT)
+ $(AM_V_CCLD)$(trie_LINK) $(trie_OBJECTS) $(trie_LDADD) $(LIBS)
+vte@VTE_LIBRARY_SUFFIX_U@$(EXEEXT): $(vte@VTE_LIBRARY_SUFFIX_U@_OBJECTS)
$(vte@VTE_LIBRARY_SUFFIX_U@_DEPENDENCIES)
+ @rm -f vte@VTE_LIBRARY_SUFFIX_U@$(EXEEXT)
+ $(AM_V_CCLD)$(vte@VTE_LIBRARY_SUFFIX_U@_LINK) $(vte@VTE_LIBRARY_SUFFIX_U@_OBJECTS)
$(vte@VTE_LIBRARY_SUFFIX_U@_LDADD) $(LIBS)
+vteconv$(EXEEXT): $(vteconv_OBJECTS) $(vteconv_DEPENDENCIES)
+ @rm -f vteconv$(EXEEXT)
+ $(AM_V_CCLD)$(vteconv_LINK) $(vteconv_OBJECTS) $(vteconv_LDADD) $(LIBS)
+vtetc$(EXEEXT): $(vtetc_OBJECTS) $(vtetc_DEPENDENCIES)
+ @rm -f vtetc$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(vtetc_OBJECTS) $(vtetc_LDADD) $(LIBS)
+xticker$(EXEEXT): $(xticker_OBJECTS) $(xticker_DEPENDENCIES)
+ @rm -f xticker$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(xticker_OBJECTS) $(xticker_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dumpkeys.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret-caps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret-debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret-interpret.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret-iso2022.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret-matcher.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret-table.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret-trie.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret-vteconv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret-vtetc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret-vtetree.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso2022-caps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso2022-debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso2022-iso2022.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso2022-matcher.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso2022-table.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso2022-trie.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso2022-vteconv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso2022-vtetc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso2022-vtetree.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-caps.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-debug.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-iso2022.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-keymap.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-keysyms.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-marshal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-matcher.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-pty.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-reaper.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-ring.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-table.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-trie.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vte.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteaccess.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtebg.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteconv.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtedraw.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteregex.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vterowdata.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-n.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtestream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetree.Plo@am__quote@
+@AMDEP_TRUE@@am__include@
@am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetypebuiltins.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteunistr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mev.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reaper-debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reaper-marshal.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reaper-reaper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reflect_text_view-reflect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reflect_vte-reflect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slowcat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssfe.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table-caps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table-debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table-matcher.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table-table.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table-trie.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table-vteconv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/table-vtetc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie-caps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie-debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie-matcher.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie-table.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie-trie.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie-vteconv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trie-vtetc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vte@VTE_LIBRARY_SUFFIX_U -vteapp Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vteconv-debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vteconv-vteconv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vtetc-debug.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vtetc-vtetc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xticker.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-caps.lo: caps.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-caps.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-caps.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-caps.lo
`test -f 'caps.c' || echo '$(srcdir)/'`caps.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-caps.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-caps.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='caps.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-caps.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-caps.lo `test -f
'caps.c' || echo '$(srcdir)/'`caps.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-debug.lo: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-debug.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-debug.Tpo -c -o
libvte@VTE_LIBRARY_SUFFIX_U@_la-debug.lo `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-debug.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-debug.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-debug.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-debug.lo `test -f
'debug.c' || echo '$(srcdir)/'`debug.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-iso2022.lo: iso2022.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-iso2022.lo -MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-iso2022.Tpo
-c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-iso2022.lo `test -f 'iso2022.c' || echo '$(srcdir)/'`iso2022.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-iso2022.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-iso2022.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='iso2022.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-iso2022.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-iso2022.lo `test -f
'iso2022.c' || echo '$(srcdir)/'`iso2022.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-keymap.lo: keymap.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-keymap.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-keymap.Tpo -c -o
libvte@VTE_LIBRARY_SUFFIX_U@_la-keymap.lo `test -f 'keymap.c' || echo '$(srcdir)/'`keymap.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-keymap.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-keymap.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='keymap.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-keymap.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-keymap.lo `test -f
'keymap.c' || echo '$(srcdir)/'`keymap.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-marshal.lo: marshal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-marshal.lo -MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-marshal.Tpo
-c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-marshal.lo `test -f 'marshal.c' || echo '$(srcdir)/'`marshal.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-marshal.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-marshal.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='marshal.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-marshal.lo `test -f
'marshal.c' || echo '$(srcdir)/'`marshal.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-matcher.lo: matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-matcher.lo -MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-matcher.Tpo
-c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-matcher.lo `test -f 'matcher.c' || echo '$(srcdir)/'`matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-matcher.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-matcher.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matcher.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-matcher.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-matcher.lo `test -f
'matcher.c' || echo '$(srcdir)/'`matcher.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-pty.lo: pty.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-pty.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-pty.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-pty.lo
`test -f 'pty.c' || echo '$(srcdir)/'`pty.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-pty.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-pty.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pty.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-pty.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-pty.lo `test -f
'pty.c' || echo '$(srcdir)/'`pty.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-reaper.lo: reaper.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-reaper.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-reaper.Tpo -c -o
libvte@VTE_LIBRARY_SUFFIX_U@_la-reaper.lo `test -f 'reaper.c' || echo '$(srcdir)/'`reaper.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-reaper.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-reaper.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reaper.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-reaper.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-reaper.lo `test -f
'reaper.c' || echo '$(srcdir)/'`reaper.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-ring.lo: ring.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-ring.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-ring.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-ring.lo
`test -f 'ring.c' || echo '$(srcdir)/'`ring.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-ring.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-ring.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ring.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-ring.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-ring.lo `test -f
'ring.c' || echo '$(srcdir)/'`ring.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-table.lo: table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-table.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-table.Tpo -c -o
libvte@VTE_LIBRARY_SUFFIX_U@_la-table.lo `test -f 'table.c' || echo '$(srcdir)/'`table.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-table.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-table.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='table.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-table.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-table.lo `test -f
'table.c' || echo '$(srcdir)/'`table.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-trie.lo: trie.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-trie.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-trie.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-trie.lo
`test -f 'trie.c' || echo '$(srcdir)/'`trie.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-trie.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-trie.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trie.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-trie.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-trie.lo `test -f
'trie.c' || echo '$(srcdir)/'`trie.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vte.lo: vte.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-vte.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vte.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vte.lo
`test -f 'vte.c' || echo '$(srcdir)/'`vte.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vte.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vte.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vte.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vte.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vte.lo `test -f
'vte.c' || echo '$(srcdir)/'`vte.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vteaccess.lo: vteaccess.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vteaccess.lo -MD -MP -MF
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteaccess.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteaccess.lo
`test -f 'vteaccess.c' || echo '$(srcdir)/'`vteaccess.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteaccess.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteaccess.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteaccess.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vteaccess.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteaccess.lo `test
-f 'vteaccess.c' || echo '$(srcdir)/'`vteaccess.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vtebg.lo: vtebg.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-vtebg.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtebg.Tpo -c -o
libvte@VTE_LIBRARY_SUFFIX_U@_la-vtebg.lo `test -f 'vtebg.c' || echo '$(srcdir)/'`vtebg.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtebg.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtebg.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtebg.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vtebg.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vtebg.lo `test -f
'vtebg.c' || echo '$(srcdir)/'`vtebg.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vteconv.lo: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vteconv.lo -MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteconv.Tpo
-c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteconv.lo `test -f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteconv.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteconv.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vteconv.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteconv.lo `test -f
'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vtedraw.lo: vtedraw.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vtedraw.lo -MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtedraw.Tpo
-c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vtedraw.lo `test -f 'vtedraw.c' || echo '$(srcdir)/'`vtedraw.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtedraw.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtedraw.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtedraw.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vtedraw.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vtedraw.lo `test -f
'vtedraw.c' || echo '$(srcdir)/'`vtedraw.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vteregex.lo: vteregex.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vteregex.lo -MD -MP -MF
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteregex.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteregex.lo
`test -f 'vteregex.c' || echo '$(srcdir)/'`vteregex.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteregex.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteregex.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteregex.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vteregex.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteregex.lo `test
-f 'vteregex.c' || echo '$(srcdir)/'`vteregex.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vterowdata.lo: vterowdata.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vterowdata.lo -MD -MP -MF
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vterowdata.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vterowdata.lo
`test -f 'vterowdata.c' || echo '$(srcdir)/'`vterowdata.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vterowdata.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vterowdata.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vterowdata.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vterowdata.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vterowdata.lo `test
-f 'vterowdata.c' || echo '$(srcdir)/'`vterowdata.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq.lo: vteseq.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq.Tpo -c -o
libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq.lo `test -f 'vteseq.c' || echo '$(srcdir)/'`vteseq.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteseq.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq.lo `test -f
'vteseq.c' || echo '$(srcdir)/'`vteseq.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vtestream.lo: vtestream.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vtestream.lo -MD -MP -MF
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtestream.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vtestream.lo
`test -f 'vtestream.c' || echo '$(srcdir)/'`vtestream.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtestream.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtestream.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtestream.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vtestream.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vtestream.lo `test
-f 'vtestream.c' || echo '$(srcdir)/'`vtestream.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetc.lo: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetc.lo
-MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetc.Tpo -c -o
libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetc.lo `test -f 'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetc.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetc.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetc.lo'
libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetc.lo `test -f
'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetree.lo: vtetree.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetree.lo -MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetree.Tpo
-c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetree.lo `test -f 'vtetree.c' || echo '$(srcdir)/'`vtetree.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetree.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetree.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetree.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetree.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetree.lo `test -f
'vtetree.c' || echo '$(srcdir)/'`vtetree.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetypebuiltins.lo: vtetypebuiltins.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetypebuiltins.lo -MD -MP -MF
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetypebuiltins.Tpo -c -o
libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetypebuiltins.lo `test -f 'vtetypebuiltins.c' || echo
'$(srcdir)/'`vtetypebuiltins.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetypebuiltins.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetypebuiltins.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetypebuiltins.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetypebuiltins.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vtetypebuiltins.lo
`test -f 'vtetypebuiltins.c' || echo '$(srcdir)/'`vtetypebuiltins.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vteunistr.lo: vteunistr.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vteunistr.lo -MD -MP -MF
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteunistr.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteunistr.lo
`test -f 'vteunistr.c' || echo '$(srcdir)/'`vteunistr.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteunistr.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteunistr.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteunistr.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vteunistr.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteunistr.lo `test
-f 'vteunistr.c' || echo '$(srcdir)/'`vteunistr.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-keysyms.lo: keysyms.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-keysyms.lo -MD -MP -MF $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-keysyms.Tpo
-c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-keysyms.lo `test -f 'keysyms.c' || echo '$(srcdir)/'`keysyms.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-keysyms.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-keysyms.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='keysyms.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-keysyms.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-keysyms.lo `test -f
'keysyms.c' || echo '$(srcdir)/'`keysyms.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-2.lo: vteseq-2.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-2.lo -MD -MP -MF
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-2.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-2.lo
`test -f 'vteseq-2.c' || echo '$(srcdir)/'`vteseq-2.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-2.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-2.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteseq-2.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-2.lo `test
-f 'vteseq-2.c' || echo '$(srcdir)/'`vteseq-2.c
+
+libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-n.lo: vteseq-n.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS)
$(CPPFLAGS) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -MT
libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-n.lo -MD -MP -MF
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-n.Tpo -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-n.lo
`test -f 'vteseq-n.c' || echo '$(srcdir)/'`vteseq-n.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-n.Tpo
$(DEPDIR)/libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-n.Plo
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteseq-n.c'
object='libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-n.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libvte@VTE_LIBRARY_SUFFIX_U@_la_CPPFLAGS) $(CPPFLAGS)
$(libvte@VTE_LIBRARY_SUFFIX_U@_la_CFLAGS) $(CFLAGS) -c -o libvte@VTE_LIBRARY_SUFFIX_U@_la-vteseq-n.lo `test
-f 'vteseq-n.c' || echo '$(srcdir)/'`vteseq-n.c
+
+interpret-caps.o: caps.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-caps.o -MD -MP -MF $(DEPDIR)/interpret-caps.Tpo -c -o
interpret-caps.o `test -f 'caps.c' || echo '$(srcdir)/'`caps.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-caps.Tpo $(DEPDIR)/interpret-caps.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='caps.c' object='interpret-caps.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-caps.o `test -f 'caps.c' || echo '$(srcdir)/'`caps.c
+
+interpret-caps.obj: caps.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-caps.obj -MD -MP -MF $(DEPDIR)/interpret-caps.Tpo -c
-o interpret-caps.obj `if test -f 'caps.c'; then $(CYGPATH_W) 'caps.c'; else $(CYGPATH_W) '$(srcdir)/caps.c';
fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-caps.Tpo $(DEPDIR)/interpret-caps.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='caps.c' object='interpret-caps.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-caps.obj `if test -f 'caps.c'; then $(CYGPATH_W) 'caps.c'; else
$(CYGPATH_W) '$(srcdir)/caps.c'; fi`
+
+interpret-debug.o: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-debug.o -MD -MP -MF $(DEPDIR)/interpret-debug.Tpo -c
-o interpret-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-debug.Tpo $(DEPDIR)/interpret-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='interpret-debug.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+
+interpret-debug.obj: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-debug.obj -MD -MP -MF $(DEPDIR)/interpret-debug.Tpo
-c -o interpret-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else $(CYGPATH_W)
'$(srcdir)/debug.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-debug.Tpo $(DEPDIR)/interpret-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='interpret-debug.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c';
else $(CYGPATH_W) '$(srcdir)/debug.c'; fi`
+
+interpret-iso2022.o: iso2022.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-iso2022.o -MD -MP -MF $(DEPDIR)/interpret-iso2022.Tpo
-c -o interpret-iso2022.o `test -f 'iso2022.c' || echo '$(srcdir)/'`iso2022.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-iso2022.Tpo $(DEPDIR)/interpret-iso2022.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='iso2022.c' object='interpret-iso2022.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-iso2022.o `test -f 'iso2022.c' || echo '$(srcdir)/'`iso2022.c
+
+interpret-iso2022.obj: iso2022.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-iso2022.obj -MD -MP -MF
$(DEPDIR)/interpret-iso2022.Tpo -c -o interpret-iso2022.obj `if test -f 'iso2022.c'; then $(CYGPATH_W)
'iso2022.c'; else $(CYGPATH_W) '$(srcdir)/iso2022.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-iso2022.Tpo $(DEPDIR)/interpret-iso2022.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='iso2022.c' object='interpret-iso2022.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-iso2022.obj `if test -f 'iso2022.c'; then $(CYGPATH_W)
'iso2022.c'; else $(CYGPATH_W) '$(srcdir)/iso2022.c'; fi`
+
+interpret-matcher.o: matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-matcher.o -MD -MP -MF $(DEPDIR)/interpret-matcher.Tpo
-c -o interpret-matcher.o `test -f 'matcher.c' || echo '$(srcdir)/'`matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-matcher.Tpo $(DEPDIR)/interpret-matcher.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matcher.c' object='interpret-matcher.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-matcher.o `test -f 'matcher.c' || echo '$(srcdir)/'`matcher.c
+
+interpret-matcher.obj: matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-matcher.obj -MD -MP -MF
$(DEPDIR)/interpret-matcher.Tpo -c -o interpret-matcher.obj `if test -f 'matcher.c'; then $(CYGPATH_W)
'matcher.c'; else $(CYGPATH_W) '$(srcdir)/matcher.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-matcher.Tpo $(DEPDIR)/interpret-matcher.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matcher.c' object='interpret-matcher.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-matcher.obj `if test -f 'matcher.c'; then $(CYGPATH_W)
'matcher.c'; else $(CYGPATH_W) '$(srcdir)/matcher.c'; fi`
+
+interpret-table.o: table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-table.o -MD -MP -MF $(DEPDIR)/interpret-table.Tpo -c
-o interpret-table.o `test -f 'table.c' || echo '$(srcdir)/'`table.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-table.Tpo $(DEPDIR)/interpret-table.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='table.c' object='interpret-table.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-table.o `test -f 'table.c' || echo '$(srcdir)/'`table.c
+
+interpret-table.obj: table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-table.obj -MD -MP -MF $(DEPDIR)/interpret-table.Tpo
-c -o interpret-table.obj `if test -f 'table.c'; then $(CYGPATH_W) 'table.c'; else $(CYGPATH_W)
'$(srcdir)/table.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-table.Tpo $(DEPDIR)/interpret-table.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='table.c' object='interpret-table.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-table.obj `if test -f 'table.c'; then $(CYGPATH_W) 'table.c';
else $(CYGPATH_W) '$(srcdir)/table.c'; fi`
+
+interpret-trie.o: trie.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-trie.o -MD -MP -MF $(DEPDIR)/interpret-trie.Tpo -c -o
interpret-trie.o `test -f 'trie.c' || echo '$(srcdir)/'`trie.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-trie.Tpo $(DEPDIR)/interpret-trie.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trie.c' object='interpret-trie.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-trie.o `test -f 'trie.c' || echo '$(srcdir)/'`trie.c
+
+interpret-trie.obj: trie.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-trie.obj -MD -MP -MF $(DEPDIR)/interpret-trie.Tpo -c
-o interpret-trie.obj `if test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else $(CYGPATH_W) '$(srcdir)/trie.c';
fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-trie.Tpo $(DEPDIR)/interpret-trie.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trie.c' object='interpret-trie.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-trie.obj `if test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else
$(CYGPATH_W) '$(srcdir)/trie.c'; fi`
+
+interpret-vteconv.o: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-vteconv.o -MD -MP -MF $(DEPDIR)/interpret-vteconv.Tpo
-c -o interpret-vteconv.o `test -f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-vteconv.Tpo $(DEPDIR)/interpret-vteconv.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c' object='interpret-vteconv.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-vteconv.o `test -f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+
+interpret-vteconv.obj: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-vteconv.obj -MD -MP -MF
$(DEPDIR)/interpret-vteconv.Tpo -c -o interpret-vteconv.obj `if test -f 'vteconv.c'; then $(CYGPATH_W)
'vteconv.c'; else $(CYGPATH_W) '$(srcdir)/vteconv.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-vteconv.Tpo $(DEPDIR)/interpret-vteconv.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c' object='interpret-vteconv.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-vteconv.obj `if test -f 'vteconv.c'; then $(CYGPATH_W)
'vteconv.c'; else $(CYGPATH_W) '$(srcdir)/vteconv.c'; fi`
+
+interpret-vtetc.o: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-vtetc.o -MD -MP -MF $(DEPDIR)/interpret-vtetc.Tpo -c
-o interpret-vtetc.o `test -f 'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-vtetc.Tpo $(DEPDIR)/interpret-vtetc.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='interpret-vtetc.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-vtetc.o `test -f 'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+
+interpret-vtetc.obj: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-vtetc.obj -MD -MP -MF $(DEPDIR)/interpret-vtetc.Tpo
-c -o interpret-vtetc.obj `if test -f 'vtetc.c'; then $(CYGPATH_W) 'vtetc.c'; else $(CYGPATH_W)
'$(srcdir)/vtetc.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-vtetc.Tpo $(DEPDIR)/interpret-vtetc.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='interpret-vtetc.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-vtetc.obj `if test -f 'vtetc.c'; then $(CYGPATH_W) 'vtetc.c';
else $(CYGPATH_W) '$(srcdir)/vtetc.c'; fi`
+
+interpret-vtetree.o: vtetree.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-vtetree.o -MD -MP -MF $(DEPDIR)/interpret-vtetree.Tpo
-c -o interpret-vtetree.o `test -f 'vtetree.c' || echo '$(srcdir)/'`vtetree.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-vtetree.Tpo $(DEPDIR)/interpret-vtetree.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetree.c' object='interpret-vtetree.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-vtetree.o `test -f 'vtetree.c' || echo '$(srcdir)/'`vtetree.c
+
+interpret-vtetree.obj: vtetree.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-vtetree.obj -MD -MP -MF
$(DEPDIR)/interpret-vtetree.Tpo -c -o interpret-vtetree.obj `if test -f 'vtetree.c'; then $(CYGPATH_W)
'vtetree.c'; else $(CYGPATH_W) '$(srcdir)/vtetree.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-vtetree.Tpo $(DEPDIR)/interpret-vtetree.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetree.c' object='interpret-vtetree.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-vtetree.obj `if test -f 'vtetree.c'; then $(CYGPATH_W)
'vtetree.c'; else $(CYGPATH_W) '$(srcdir)/vtetree.c'; fi`
+
+interpret-interpret.o: interpret.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-interpret.o -MD -MP -MF
$(DEPDIR)/interpret-interpret.Tpo -c -o interpret-interpret.o `test -f 'interpret.c' || echo
'$(srcdir)/'`interpret.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-interpret.Tpo $(DEPDIR)/interpret-interpret.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='interpret.c' object='interpret-interpret.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-interpret.o `test -f 'interpret.c' || echo
'$(srcdir)/'`interpret.c
+
+interpret-interpret.obj: interpret.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS)
$(CPPFLAGS) $(interpret_CFLAGS) $(CFLAGS) -MT interpret-interpret.obj -MD -MP -MF
$(DEPDIR)/interpret-interpret.Tpo -c -o interpret-interpret.obj `if test -f 'interpret.c'; then $(CYGPATH_W)
'interpret.c'; else $(CYGPATH_W) '$(srcdir)/interpret.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/interpret-interpret.Tpo $(DEPDIR)/interpret-interpret.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='interpret.c' object='interpret-interpret.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(interpret_CPPFLAGS) $(CPPFLAGS)
$(interpret_CFLAGS) $(CFLAGS) -c -o interpret-interpret.obj `if test -f 'interpret.c'; then $(CYGPATH_W)
'interpret.c'; else $(CYGPATH_W) '$(srcdir)/interpret.c'; fi`
+
+iso2022-caps.o: caps.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-caps.o -MD -MP -MF $(DEPDIR)/iso2022-caps.Tpo -c -o
iso2022-caps.o `test -f 'caps.c' || echo '$(srcdir)/'`caps.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-caps.Tpo $(DEPDIR)/iso2022-caps.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='caps.c' object='iso2022-caps.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-caps.o `test -f 'caps.c' || echo '$(srcdir)/'`caps.c
+
+iso2022-caps.obj: caps.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-caps.obj -MD -MP -MF $(DEPDIR)/iso2022-caps.Tpo -c -o
iso2022-caps.obj `if test -f 'caps.c'; then $(CYGPATH_W) 'caps.c'; else $(CYGPATH_W) '$(srcdir)/caps.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-caps.Tpo $(DEPDIR)/iso2022-caps.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='caps.c' object='iso2022-caps.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-caps.obj `if test -f 'caps.c'; then $(CYGPATH_W) 'caps.c'; else
$(CYGPATH_W) '$(srcdir)/caps.c'; fi`
+
+iso2022-debug.o: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-debug.o -MD -MP -MF $(DEPDIR)/iso2022-debug.Tpo -c -o
iso2022-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-debug.Tpo $(DEPDIR)/iso2022-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='iso2022-debug.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+
+iso2022-debug.obj: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-debug.obj -MD -MP -MF $(DEPDIR)/iso2022-debug.Tpo -c -o
iso2022-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else $(CYGPATH_W) '$(srcdir)/debug.c';
fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-debug.Tpo $(DEPDIR)/iso2022-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='iso2022-debug.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else
$(CYGPATH_W) '$(srcdir)/debug.c'; fi`
+
+iso2022-iso2022.o: iso2022.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-iso2022.o -MD -MP -MF $(DEPDIR)/iso2022-iso2022.Tpo -c -o
iso2022-iso2022.o `test -f 'iso2022.c' || echo '$(srcdir)/'`iso2022.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-iso2022.Tpo $(DEPDIR)/iso2022-iso2022.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='iso2022.c' object='iso2022-iso2022.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-iso2022.o `test -f 'iso2022.c' || echo '$(srcdir)/'`iso2022.c
+
+iso2022-iso2022.obj: iso2022.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-iso2022.obj -MD -MP -MF $(DEPDIR)/iso2022-iso2022.Tpo -c
-o iso2022-iso2022.obj `if test -f 'iso2022.c'; then $(CYGPATH_W) 'iso2022.c'; else $(CYGPATH_W)
'$(srcdir)/iso2022.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-iso2022.Tpo $(DEPDIR)/iso2022-iso2022.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='iso2022.c' object='iso2022-iso2022.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-iso2022.obj `if test -f 'iso2022.c'; then $(CYGPATH_W) 'iso2022.c';
else $(CYGPATH_W) '$(srcdir)/iso2022.c'; fi`
+
+iso2022-matcher.o: matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-matcher.o -MD -MP -MF $(DEPDIR)/iso2022-matcher.Tpo -c -o
iso2022-matcher.o `test -f 'matcher.c' || echo '$(srcdir)/'`matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-matcher.Tpo $(DEPDIR)/iso2022-matcher.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matcher.c' object='iso2022-matcher.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-matcher.o `test -f 'matcher.c' || echo '$(srcdir)/'`matcher.c
+
+iso2022-matcher.obj: matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-matcher.obj -MD -MP -MF $(DEPDIR)/iso2022-matcher.Tpo -c
-o iso2022-matcher.obj `if test -f 'matcher.c'; then $(CYGPATH_W) 'matcher.c'; else $(CYGPATH_W)
'$(srcdir)/matcher.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-matcher.Tpo $(DEPDIR)/iso2022-matcher.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matcher.c' object='iso2022-matcher.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-matcher.obj `if test -f 'matcher.c'; then $(CYGPATH_W) 'matcher.c';
else $(CYGPATH_W) '$(srcdir)/matcher.c'; fi`
+
+iso2022-table.o: table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-table.o -MD -MP -MF $(DEPDIR)/iso2022-table.Tpo -c -o
iso2022-table.o `test -f 'table.c' || echo '$(srcdir)/'`table.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-table.Tpo $(DEPDIR)/iso2022-table.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='table.c' object='iso2022-table.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-table.o `test -f 'table.c' || echo '$(srcdir)/'`table.c
+
+iso2022-table.obj: table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-table.obj -MD -MP -MF $(DEPDIR)/iso2022-table.Tpo -c -o
iso2022-table.obj `if test -f 'table.c'; then $(CYGPATH_W) 'table.c'; else $(CYGPATH_W) '$(srcdir)/table.c';
fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-table.Tpo $(DEPDIR)/iso2022-table.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='table.c' object='iso2022-table.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-table.obj `if test -f 'table.c'; then $(CYGPATH_W) 'table.c'; else
$(CYGPATH_W) '$(srcdir)/table.c'; fi`
+
+iso2022-trie.o: trie.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-trie.o -MD -MP -MF $(DEPDIR)/iso2022-trie.Tpo -c -o
iso2022-trie.o `test -f 'trie.c' || echo '$(srcdir)/'`trie.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-trie.Tpo $(DEPDIR)/iso2022-trie.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trie.c' object='iso2022-trie.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-trie.o `test -f 'trie.c' || echo '$(srcdir)/'`trie.c
+
+iso2022-trie.obj: trie.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-trie.obj -MD -MP -MF $(DEPDIR)/iso2022-trie.Tpo -c -o
iso2022-trie.obj `if test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else $(CYGPATH_W) '$(srcdir)/trie.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-trie.Tpo $(DEPDIR)/iso2022-trie.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trie.c' object='iso2022-trie.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-trie.obj `if test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else
$(CYGPATH_W) '$(srcdir)/trie.c'; fi`
+
+iso2022-vteconv.o: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-vteconv.o -MD -MP -MF $(DEPDIR)/iso2022-vteconv.Tpo -c -o
iso2022-vteconv.o `test -f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-vteconv.Tpo $(DEPDIR)/iso2022-vteconv.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c' object='iso2022-vteconv.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-vteconv.o `test -f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+
+iso2022-vteconv.obj: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-vteconv.obj -MD -MP -MF $(DEPDIR)/iso2022-vteconv.Tpo -c
-o iso2022-vteconv.obj `if test -f 'vteconv.c'; then $(CYGPATH_W) 'vteconv.c'; else $(CYGPATH_W)
'$(srcdir)/vteconv.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-vteconv.Tpo $(DEPDIR)/iso2022-vteconv.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c' object='iso2022-vteconv.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-vteconv.obj `if test -f 'vteconv.c'; then $(CYGPATH_W) 'vteconv.c';
else $(CYGPATH_W) '$(srcdir)/vteconv.c'; fi`
+
+iso2022-vtetc.o: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-vtetc.o -MD -MP -MF $(DEPDIR)/iso2022-vtetc.Tpo -c -o
iso2022-vtetc.o `test -f 'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-vtetc.Tpo $(DEPDIR)/iso2022-vtetc.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='iso2022-vtetc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-vtetc.o `test -f 'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+
+iso2022-vtetc.obj: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-vtetc.obj -MD -MP -MF $(DEPDIR)/iso2022-vtetc.Tpo -c -o
iso2022-vtetc.obj `if test -f 'vtetc.c'; then $(CYGPATH_W) 'vtetc.c'; else $(CYGPATH_W) '$(srcdir)/vtetc.c';
fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-vtetc.Tpo $(DEPDIR)/iso2022-vtetc.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='iso2022-vtetc.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-vtetc.obj `if test -f 'vtetc.c'; then $(CYGPATH_W) 'vtetc.c'; else
$(CYGPATH_W) '$(srcdir)/vtetc.c'; fi`
+
+iso2022-vtetree.o: vtetree.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-vtetree.o -MD -MP -MF $(DEPDIR)/iso2022-vtetree.Tpo -c -o
iso2022-vtetree.o `test -f 'vtetree.c' || echo '$(srcdir)/'`vtetree.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-vtetree.Tpo $(DEPDIR)/iso2022-vtetree.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetree.c' object='iso2022-vtetree.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-vtetree.o `test -f 'vtetree.c' || echo '$(srcdir)/'`vtetree.c
+
+iso2022-vtetree.obj: vtetree.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS)
$(CPPFLAGS) $(iso2022_CFLAGS) $(CFLAGS) -MT iso2022-vtetree.obj -MD -MP -MF $(DEPDIR)/iso2022-vtetree.Tpo -c
-o iso2022-vtetree.obj `if test -f 'vtetree.c'; then $(CYGPATH_W) 'vtetree.c'; else $(CYGPATH_W)
'$(srcdir)/vtetree.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/iso2022-vtetree.Tpo $(DEPDIR)/iso2022-vtetree.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetree.c' object='iso2022-vtetree.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(iso2022_CPPFLAGS) $(CPPFLAGS)
$(iso2022_CFLAGS) $(CFLAGS) -c -o iso2022-vtetree.obj `if test -f 'vtetree.c'; then $(CYGPATH_W) 'vtetree.c';
else $(CYGPATH_W) '$(srcdir)/vtetree.c'; fi`
+
+reaper-reaper.o: reaper.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS)
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT reaper-reaper.o -MD -MP -MF $(DEPDIR)/reaper-reaper.Tpo -c -o
reaper-reaper.o `test -f 'reaper.c' || echo '$(srcdir)/'`reaper.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/reaper-reaper.Tpo $(DEPDIR)/reaper-reaper.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reaper.c' object='reaper-reaper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -c -o reaper-reaper.o `test -f 'reaper.c' || echo '$(srcdir)/'`reaper.c
+
+reaper-reaper.obj: reaper.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS)
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT reaper-reaper.obj -MD -MP -MF $(DEPDIR)/reaper-reaper.Tpo -c -o
reaper-reaper.obj `if test -f 'reaper.c'; then $(CYGPATH_W) 'reaper.c'; else $(CYGPATH_W)
'$(srcdir)/reaper.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/reaper-reaper.Tpo $(DEPDIR)/reaper-reaper.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reaper.c' object='reaper-reaper.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -c -o reaper-reaper.obj `if test -f 'reaper.c'; then $(CYGPATH_W) 'reaper.c'; else
$(CYGPATH_W) '$(srcdir)/reaper.c'; fi`
+
+reaper-debug.o: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS)
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT reaper-debug.o -MD -MP -MF $(DEPDIR)/reaper-debug.Tpo -c -o
reaper-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/reaper-debug.Tpo $(DEPDIR)/reaper-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='reaper-debug.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -c -o reaper-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+
+reaper-debug.obj: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS)
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT reaper-debug.obj -MD -MP -MF $(DEPDIR)/reaper-debug.Tpo -c -o
reaper-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else $(CYGPATH_W) '$(srcdir)/debug.c';
fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/reaper-debug.Tpo $(DEPDIR)/reaper-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='reaper-debug.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -c -o reaper-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else
$(CYGPATH_W) '$(srcdir)/debug.c'; fi`
+
+reaper-marshal.o: marshal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS)
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT reaper-marshal.o -MD -MP -MF $(DEPDIR)/reaper-marshal.Tpo -c -o
reaper-marshal.o `test -f 'marshal.c' || echo '$(srcdir)/'`marshal.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/reaper-marshal.Tpo $(DEPDIR)/reaper-marshal.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='marshal.c' object='reaper-marshal.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -c -o reaper-marshal.o `test -f 'marshal.c' || echo '$(srcdir)/'`marshal.c
+
+reaper-marshal.obj: marshal.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS)
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT reaper-marshal.obj -MD -MP -MF $(DEPDIR)/reaper-marshal.Tpo -c -o
reaper-marshal.obj `if test -f 'marshal.c'; then $(CYGPATH_W) 'marshal.c'; else $(CYGPATH_W)
'$(srcdir)/marshal.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/reaper-marshal.Tpo $(DEPDIR)/reaper-marshal.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='marshal.c' object='reaper-marshal.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reaper_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -c -o reaper-marshal.obj `if test -f 'marshal.c'; then $(CYGPATH_W) 'marshal.c'; else
$(CYGPATH_W) '$(srcdir)/marshal.c'; fi`
+
+reflect_text_view-reflect.o: reflect.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reflect_text_view_CPPFLAGS)
$(CPPFLAGS) $(reflect_text_view_CFLAGS) $(CFLAGS) -MT reflect_text_view-reflect.o -MD -MP -MF
$(DEPDIR)/reflect_text_view-reflect.Tpo -c -o reflect_text_view-reflect.o `test -f 'reflect.c' || echo
'$(srcdir)/'`reflect.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/reflect_text_view-reflect.Tpo
$(DEPDIR)/reflect_text_view-reflect.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reflect.c' object='reflect_text_view-reflect.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reflect_text_view_CPPFLAGS)
$(CPPFLAGS) $(reflect_text_view_CFLAGS) $(CFLAGS) -c -o reflect_text_view-reflect.o `test -f 'reflect.c' ||
echo '$(srcdir)/'`reflect.c
+
+reflect_text_view-reflect.obj: reflect.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reflect_text_view_CPPFLAGS)
$(CPPFLAGS) $(reflect_text_view_CFLAGS) $(CFLAGS) -MT reflect_text_view-reflect.obj -MD -MP -MF
$(DEPDIR)/reflect_text_view-reflect.Tpo -c -o reflect_text_view-reflect.obj `if test -f 'reflect.c'; then
$(CYGPATH_W) 'reflect.c'; else $(CYGPATH_W) '$(srcdir)/reflect.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/reflect_text_view-reflect.Tpo
$(DEPDIR)/reflect_text_view-reflect.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reflect.c' object='reflect_text_view-reflect.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reflect_text_view_CPPFLAGS)
$(CPPFLAGS) $(reflect_text_view_CFLAGS) $(CFLAGS) -c -o reflect_text_view-reflect.obj `if test -f
'reflect.c'; then $(CYGPATH_W) 'reflect.c'; else $(CYGPATH_W) '$(srcdir)/reflect.c'; fi`
+
+reflect_vte-reflect.o: reflect.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reflect_vte_CPPFLAGS)
$(CPPFLAGS) $(reflect_vte_CFLAGS) $(CFLAGS) -MT reflect_vte-reflect.o -MD -MP -MF
$(DEPDIR)/reflect_vte-reflect.Tpo -c -o reflect_vte-reflect.o `test -f 'reflect.c' || echo
'$(srcdir)/'`reflect.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/reflect_vte-reflect.Tpo $(DEPDIR)/reflect_vte-reflect.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reflect.c' object='reflect_vte-reflect.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reflect_vte_CPPFLAGS) $(CPPFLAGS)
$(reflect_vte_CFLAGS) $(CFLAGS) -c -o reflect_vte-reflect.o `test -f 'reflect.c' || echo
'$(srcdir)/'`reflect.c
+
+reflect_vte-reflect.obj: reflect.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reflect_vte_CPPFLAGS)
$(CPPFLAGS) $(reflect_vte_CFLAGS) $(CFLAGS) -MT reflect_vte-reflect.obj -MD -MP -MF
$(DEPDIR)/reflect_vte-reflect.Tpo -c -o reflect_vte-reflect.obj `if test -f 'reflect.c'; then $(CYGPATH_W)
'reflect.c'; else $(CYGPATH_W) '$(srcdir)/reflect.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/reflect_vte-reflect.Tpo $(DEPDIR)/reflect_vte-reflect.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='reflect.c' object='reflect_vte-reflect.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(reflect_vte_CPPFLAGS) $(CPPFLAGS)
$(reflect_vte_CFLAGS) $(CFLAGS) -c -o reflect_vte-reflect.obj `if test -f 'reflect.c'; then $(CYGPATH_W)
'reflect.c'; else $(CYGPATH_W) '$(srcdir)/reflect.c'; fi`
+
+table-caps.o: caps.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-caps.o -MD -MP -MF $(DEPDIR)/table-caps.Tpo -c -o table-caps.o `test -f
'caps.c' || echo '$(srcdir)/'`caps.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-caps.Tpo $(DEPDIR)/table-caps.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='caps.c' object='table-caps.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-caps.o `test -f 'caps.c' || echo '$(srcdir)/'`caps.c
+
+table-caps.obj: caps.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-caps.obj -MD -MP -MF $(DEPDIR)/table-caps.Tpo -c -o table-caps.obj `if
test -f 'caps.c'; then $(CYGPATH_W) 'caps.c'; else $(CYGPATH_W) '$(srcdir)/caps.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-caps.Tpo $(DEPDIR)/table-caps.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='caps.c' object='table-caps.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-caps.obj `if test -f 'caps.c'; then $(CYGPATH_W) 'caps.c'; else
$(CYGPATH_W) '$(srcdir)/caps.c'; fi`
+
+table-debug.o: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-debug.o -MD -MP -MF $(DEPDIR)/table-debug.Tpo -c -o table-debug.o `test
-f 'debug.c' || echo '$(srcdir)/'`debug.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-debug.Tpo $(DEPDIR)/table-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='table-debug.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+
+table-debug.obj: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-debug.obj -MD -MP -MF $(DEPDIR)/table-debug.Tpo -c -o table-debug.obj `if
test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else $(CYGPATH_W) '$(srcdir)/debug.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-debug.Tpo $(DEPDIR)/table-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='table-debug.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else
$(CYGPATH_W) '$(srcdir)/debug.c'; fi`
+
+table-matcher.o: matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-matcher.o -MD -MP -MF $(DEPDIR)/table-matcher.Tpo -c -o table-matcher.o
`test -f 'matcher.c' || echo '$(srcdir)/'`matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-matcher.Tpo $(DEPDIR)/table-matcher.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matcher.c' object='table-matcher.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-matcher.o `test -f 'matcher.c' || echo '$(srcdir)/'`matcher.c
+
+table-matcher.obj: matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-matcher.obj -MD -MP -MF $(DEPDIR)/table-matcher.Tpo -c -o
table-matcher.obj `if test -f 'matcher.c'; then $(CYGPATH_W) 'matcher.c'; else $(CYGPATH_W)
'$(srcdir)/matcher.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-matcher.Tpo $(DEPDIR)/table-matcher.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matcher.c' object='table-matcher.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-matcher.obj `if test -f 'matcher.c'; then $(CYGPATH_W) 'matcher.c';
else $(CYGPATH_W) '$(srcdir)/matcher.c'; fi`
+
+table-table.o: table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-table.o -MD -MP -MF $(DEPDIR)/table-table.Tpo -c -o table-table.o `test
-f 'table.c' || echo '$(srcdir)/'`table.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-table.Tpo $(DEPDIR)/table-table.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='table.c' object='table-table.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-table.o `test -f 'table.c' || echo '$(srcdir)/'`table.c
+
+table-table.obj: table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-table.obj -MD -MP -MF $(DEPDIR)/table-table.Tpo -c -o table-table.obj `if
test -f 'table.c'; then $(CYGPATH_W) 'table.c'; else $(CYGPATH_W) '$(srcdir)/table.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-table.Tpo $(DEPDIR)/table-table.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='table.c' object='table-table.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-table.obj `if test -f 'table.c'; then $(CYGPATH_W) 'table.c'; else
$(CYGPATH_W) '$(srcdir)/table.c'; fi`
+
+table-trie.o: trie.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-trie.o -MD -MP -MF $(DEPDIR)/table-trie.Tpo -c -o table-trie.o `test -f
'trie.c' || echo '$(srcdir)/'`trie.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-trie.Tpo $(DEPDIR)/table-trie.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trie.c' object='table-trie.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-trie.o `test -f 'trie.c' || echo '$(srcdir)/'`trie.c
+
+table-trie.obj: trie.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-trie.obj -MD -MP -MF $(DEPDIR)/table-trie.Tpo -c -o table-trie.obj `if
test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else $(CYGPATH_W) '$(srcdir)/trie.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-trie.Tpo $(DEPDIR)/table-trie.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trie.c' object='table-trie.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-trie.obj `if test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else
$(CYGPATH_W) '$(srcdir)/trie.c'; fi`
+
+table-vteconv.o: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-vteconv.o -MD -MP -MF $(DEPDIR)/table-vteconv.Tpo -c -o table-vteconv.o
`test -f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-vteconv.Tpo $(DEPDIR)/table-vteconv.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c' object='table-vteconv.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-vteconv.o `test -f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+
+table-vteconv.obj: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-vteconv.obj -MD -MP -MF $(DEPDIR)/table-vteconv.Tpo -c -o
table-vteconv.obj `if test -f 'vteconv.c'; then $(CYGPATH_W) 'vteconv.c'; else $(CYGPATH_W)
'$(srcdir)/vteconv.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-vteconv.Tpo $(DEPDIR)/table-vteconv.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c' object='table-vteconv.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-vteconv.obj `if test -f 'vteconv.c'; then $(CYGPATH_W) 'vteconv.c';
else $(CYGPATH_W) '$(srcdir)/vteconv.c'; fi`
+
+table-vtetc.o: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-vtetc.o -MD -MP -MF $(DEPDIR)/table-vtetc.Tpo -c -o table-vtetc.o `test
-f 'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-vtetc.Tpo $(DEPDIR)/table-vtetc.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='table-vtetc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-vtetc.o `test -f 'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+
+table-vtetc.obj: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -MT table-vtetc.obj -MD -MP -MF $(DEPDIR)/table-vtetc.Tpo -c -o table-vtetc.obj `if
test -f 'vtetc.c'; then $(CYGPATH_W) 'vtetc.c'; else $(CYGPATH_W) '$(srcdir)/vtetc.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/table-vtetc.Tpo $(DEPDIR)/table-vtetc.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='table-vtetc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(table_CPPFLAGS) $(CPPFLAGS)
$(table_CFLAGS) $(CFLAGS) -c -o table-vtetc.obj `if test -f 'vtetc.c'; then $(CYGPATH_W) 'vtetc.c'; else
$(CYGPATH_W) '$(srcdir)/vtetc.c'; fi`
+
+trie-trie.o: trie.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-trie.o -MD -MP -MF $(DEPDIR)/trie-trie.Tpo -c -o trie-trie.o `test -f
'trie.c' || echo '$(srcdir)/'`trie.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-trie.Tpo $(DEPDIR)/trie-trie.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trie.c' object='trie-trie.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-trie.o `test -f 'trie.c' || echo '$(srcdir)/'`trie.c
+
+trie-trie.obj: trie.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-trie.obj -MD -MP -MF $(DEPDIR)/trie-trie.Tpo -c -o trie-trie.obj `if test
-f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else $(CYGPATH_W) '$(srcdir)/trie.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-trie.Tpo $(DEPDIR)/trie-trie.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='trie.c' object='trie-trie.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-trie.obj `if test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else
$(CYGPATH_W) '$(srcdir)/trie.c'; fi`
+
+trie-caps.o: caps.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-caps.o -MD -MP -MF $(DEPDIR)/trie-caps.Tpo -c -o trie-caps.o `test -f
'caps.c' || echo '$(srcdir)/'`caps.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-caps.Tpo $(DEPDIR)/trie-caps.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='caps.c' object='trie-caps.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-caps.o `test -f 'caps.c' || echo '$(srcdir)/'`caps.c
+
+trie-caps.obj: caps.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-caps.obj -MD -MP -MF $(DEPDIR)/trie-caps.Tpo -c -o trie-caps.obj `if test
-f 'caps.c'; then $(CYGPATH_W) 'caps.c'; else $(CYGPATH_W) '$(srcdir)/caps.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-caps.Tpo $(DEPDIR)/trie-caps.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='caps.c' object='trie-caps.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-caps.obj `if test -f 'caps.c'; then $(CYGPATH_W) 'caps.c'; else
$(CYGPATH_W) '$(srcdir)/caps.c'; fi`
+
+trie-debug.o: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-debug.o -MD -MP -MF $(DEPDIR)/trie-debug.Tpo -c -o trie-debug.o `test -f
'debug.c' || echo '$(srcdir)/'`debug.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-debug.Tpo $(DEPDIR)/trie-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='trie-debug.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+
+trie-debug.obj: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-debug.obj -MD -MP -MF $(DEPDIR)/trie-debug.Tpo -c -o trie-debug.obj `if
test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else $(CYGPATH_W) '$(srcdir)/debug.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-debug.Tpo $(DEPDIR)/trie-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='trie-debug.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else
$(CYGPATH_W) '$(srcdir)/debug.c'; fi`
+
+trie-matcher.o: matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-matcher.o -MD -MP -MF $(DEPDIR)/trie-matcher.Tpo -c -o trie-matcher.o `test
-f 'matcher.c' || echo '$(srcdir)/'`matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-matcher.Tpo $(DEPDIR)/trie-matcher.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matcher.c' object='trie-matcher.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-matcher.o `test -f 'matcher.c' || echo '$(srcdir)/'`matcher.c
+
+trie-matcher.obj: matcher.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-matcher.obj -MD -MP -MF $(DEPDIR)/trie-matcher.Tpo -c -o trie-matcher.obj
`if test -f 'matcher.c'; then $(CYGPATH_W) 'matcher.c'; else $(CYGPATH_W) '$(srcdir)/matcher.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-matcher.Tpo $(DEPDIR)/trie-matcher.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='matcher.c' object='trie-matcher.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-matcher.obj `if test -f 'matcher.c'; then $(CYGPATH_W) 'matcher.c'; else
$(CYGPATH_W) '$(srcdir)/matcher.c'; fi`
+
+trie-table.o: table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-table.o -MD -MP -MF $(DEPDIR)/trie-table.Tpo -c -o trie-table.o `test -f
'table.c' || echo '$(srcdir)/'`table.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-table.Tpo $(DEPDIR)/trie-table.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='table.c' object='trie-table.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-table.o `test -f 'table.c' || echo '$(srcdir)/'`table.c
+
+trie-table.obj: table.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-table.obj -MD -MP -MF $(DEPDIR)/trie-table.Tpo -c -o trie-table.obj `if
test -f 'table.c'; then $(CYGPATH_W) 'table.c'; else $(CYGPATH_W) '$(srcdir)/table.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-table.Tpo $(DEPDIR)/trie-table.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='table.c' object='trie-table.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-table.obj `if test -f 'table.c'; then $(CYGPATH_W) 'table.c'; else
$(CYGPATH_W) '$(srcdir)/table.c'; fi`
+
+trie-vteconv.o: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-vteconv.o -MD -MP -MF $(DEPDIR)/trie-vteconv.Tpo -c -o trie-vteconv.o `test
-f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-vteconv.Tpo $(DEPDIR)/trie-vteconv.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c' object='trie-vteconv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-vteconv.o `test -f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+
+trie-vteconv.obj: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-vteconv.obj -MD -MP -MF $(DEPDIR)/trie-vteconv.Tpo -c -o trie-vteconv.obj
`if test -f 'vteconv.c'; then $(CYGPATH_W) 'vteconv.c'; else $(CYGPATH_W) '$(srcdir)/vteconv.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-vteconv.Tpo $(DEPDIR)/trie-vteconv.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c' object='trie-vteconv.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-vteconv.obj `if test -f 'vteconv.c'; then $(CYGPATH_W) 'vteconv.c'; else
$(CYGPATH_W) '$(srcdir)/vteconv.c'; fi`
+
+trie-vtetc.o: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-vtetc.o -MD -MP -MF $(DEPDIR)/trie-vtetc.Tpo -c -o trie-vtetc.o `test -f
'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-vtetc.Tpo $(DEPDIR)/trie-vtetc.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='trie-vtetc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-vtetc.o `test -f 'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+
+trie-vtetc.obj: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -MT trie-vtetc.obj -MD -MP -MF $(DEPDIR)/trie-vtetc.Tpo -c -o trie-vtetc.obj `if
test -f 'vtetc.c'; then $(CYGPATH_W) 'vtetc.c'; else $(CYGPATH_W) '$(srcdir)/vtetc.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/trie-vtetc.Tpo $(DEPDIR)/trie-vtetc.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='trie-vtetc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_CPPFLAGS) $(CPPFLAGS)
$(trie_CFLAGS) $(CFLAGS) -c -o trie-vtetc.obj `if test -f 'vtetc.c'; then $(CYGPATH_W) 'vtetc.c'; else
$(CYGPATH_W) '$(srcdir)/vtetc.c'; fi`
+
+vte@VTE_LIBRARY_SUFFIX_U@-vteapp.o: vteapp.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS)
$(vte@VTE_LIBRARY_SUFFIX_U@_CFLAGS) $(CFLAGS) -MT vte@VTE_LIBRARY_SUFFIX_U@-vteapp.o -MD -MP -MF
$(DEPDIR)/vte@VTE_LIBRARY_SUFFIX_U -vteapp Tpo -c -o vte@VTE_LIBRARY_SUFFIX_U@-vteapp.o `test -f 'vteapp.c'
|| echo '$(srcdir)/'`vteapp.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vte@VTE_LIBRARY_SUFFIX_U -vteapp Tpo
$(DEPDIR)/vte@VTE_LIBRARY_SUFFIX_U -vteapp Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteapp.c' object='vte@VTE_LIBRARY_SUFFIX_U@-vteapp.o'
libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS)
$(vte@VTE_LIBRARY_SUFFIX_U@_CFLAGS) $(CFLAGS) -c -o vte@VTE_LIBRARY_SUFFIX_U@-vteapp.o `test -f 'vteapp.c' ||
echo '$(srcdir)/'`vteapp.c
+
+vte@VTE_LIBRARY_SUFFIX_U -vteapp obj: vteapp.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS)
$(vte@VTE_LIBRARY_SUFFIX_U@_CFLAGS) $(CFLAGS) -MT vte@VTE_LIBRARY_SUFFIX_U -vteapp obj -MD -MP -MF
$(DEPDIR)/vte@VTE_LIBRARY_SUFFIX_U -vteapp Tpo -c -o vte@VTE_LIBRARY_SUFFIX_U -vteapp obj `if test -f
'vteapp.c'; then $(CYGPATH_W) 'vteapp.c'; else $(CYGPATH_W) '$(srcdir)/vteapp.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vte@VTE_LIBRARY_SUFFIX_U -vteapp Tpo
$(DEPDIR)/vte@VTE_LIBRARY_SUFFIX_U -vteapp Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteapp.c' object='vte@VTE_LIBRARY_SUFFIX_U -vteapp obj'
libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS)
$(vte@VTE_LIBRARY_SUFFIX_U@_CFLAGS) $(CFLAGS) -c -o vte@VTE_LIBRARY_SUFFIX_U -vteapp obj `if test -f
'vteapp.c'; then $(CYGPATH_W) 'vteapp.c'; else $(CYGPATH_W) '$(srcdir)/vteapp.c'; fi`
+
+vteconv-debug.o: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vteconv_CPPFLAGS)
$(CPPFLAGS) $(vteconv_CFLAGS) $(CFLAGS) -MT vteconv-debug.o -MD -MP -MF $(DEPDIR)/vteconv-debug.Tpo -c -o
vteconv-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vteconv-debug.Tpo $(DEPDIR)/vteconv-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='vteconv-debug.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vteconv_CPPFLAGS) $(CPPFLAGS)
$(vteconv_CFLAGS) $(CFLAGS) -c -o vteconv-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+
+vteconv-debug.obj: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vteconv_CPPFLAGS)
$(CPPFLAGS) $(vteconv_CFLAGS) $(CFLAGS) -MT vteconv-debug.obj -MD -MP -MF $(DEPDIR)/vteconv-debug.Tpo -c -o
vteconv-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else $(CYGPATH_W) '$(srcdir)/debug.c';
fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vteconv-debug.Tpo $(DEPDIR)/vteconv-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='vteconv-debug.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vteconv_CPPFLAGS) $(CPPFLAGS)
$(vteconv_CFLAGS) $(CFLAGS) -c -o vteconv-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else
$(CYGPATH_W) '$(srcdir)/debug.c'; fi`
+
+vteconv-vteconv.o: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vteconv_CPPFLAGS)
$(CPPFLAGS) $(vteconv_CFLAGS) $(CFLAGS) -MT vteconv-vteconv.o -MD -MP -MF $(DEPDIR)/vteconv-vteconv.Tpo -c -o
vteconv-vteconv.o `test -f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vteconv-vteconv.Tpo $(DEPDIR)/vteconv-vteconv.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c' object='vteconv-vteconv.o' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vteconv_CPPFLAGS) $(CPPFLAGS)
$(vteconv_CFLAGS) $(CFLAGS) -c -o vteconv-vteconv.o `test -f 'vteconv.c' || echo '$(srcdir)/'`vteconv.c
+
+vteconv-vteconv.obj: vteconv.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vteconv_CPPFLAGS)
$(CPPFLAGS) $(vteconv_CFLAGS) $(CFLAGS) -MT vteconv-vteconv.obj -MD -MP -MF $(DEPDIR)/vteconv-vteconv.Tpo -c
-o vteconv-vteconv.obj `if test -f 'vteconv.c'; then $(CYGPATH_W) 'vteconv.c'; else $(CYGPATH_W)
'$(srcdir)/vteconv.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vteconv-vteconv.Tpo $(DEPDIR)/vteconv-vteconv.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vteconv.c' object='vteconv-vteconv.obj' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vteconv_CPPFLAGS) $(CPPFLAGS)
$(vteconv_CFLAGS) $(CFLAGS) -c -o vteconv-vteconv.obj `if test -f 'vteconv.c'; then $(CYGPATH_W) 'vteconv.c';
else $(CYGPATH_W) '$(srcdir)/vteconv.c'; fi`
+
+vtetc-vtetc.o: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vtetc_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -MT vtetc-vtetc.o -MD -MP -MF $(DEPDIR)/vtetc-vtetc.Tpo -c -o vtetc-vtetc.o `test -f
'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vtetc-vtetc.Tpo $(DEPDIR)/vtetc-vtetc.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='vtetc-vtetc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vtetc_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -c -o vtetc-vtetc.o `test -f 'vtetc.c' || echo '$(srcdir)/'`vtetc.c
+
+vtetc-vtetc.obj: vtetc.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vtetc_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -MT vtetc-vtetc.obj -MD -MP -MF $(DEPDIR)/vtetc-vtetc.Tpo -c -o vtetc-vtetc.obj `if
test -f 'vtetc.c'; then $(CYGPATH_W) 'vtetc.c'; else $(CYGPATH_W) '$(srcdir)/vtetc.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vtetc-vtetc.Tpo $(DEPDIR)/vtetc-vtetc.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vtetc.c' object='vtetc-vtetc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vtetc_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -c -o vtetc-vtetc.obj `if test -f 'vtetc.c'; then $(CYGPATH_W) 'vtetc.c'; else
$(CYGPATH_W) '$(srcdir)/vtetc.c'; fi`
+
+vtetc-debug.o: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vtetc_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -MT vtetc-debug.o -MD -MP -MF $(DEPDIR)/vtetc-debug.Tpo -c -o vtetc-debug.o `test -f
'debug.c' || echo '$(srcdir)/'`debug.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vtetc-debug.Tpo $(DEPDIR)/vtetc-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='vtetc-debug.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vtetc_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -c -o vtetc-debug.o `test -f 'debug.c' || echo '$(srcdir)/'`debug.c
+
+vtetc-debug.obj: debug.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vtetc_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -MT vtetc-debug.obj -MD -MP -MF $(DEPDIR)/vtetc-debug.Tpo -c -o vtetc-debug.obj `if
test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else $(CYGPATH_W) '$(srcdir)/debug.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/vtetc-debug.Tpo $(DEPDIR)/vtetc-debug.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='debug.c' object='vtetc-debug.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(vtetc_CPPFLAGS) $(CPPFLAGS)
$(AM_CFLAGS) $(CFLAGS) -c -o vtetc-debug.obj `if test -f 'debug.c'; then $(CYGPATH_W) 'debug.c'; else
$(CYGPATH_W) '$(srcdir)/debug.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-nodist_girDATA: $(nodist_gir_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(girdir)" || $(MKDIR_P) "$(DESTDIR)$(girdir)"
+ @list='$(nodist_gir_DATA)'; test -n "$(girdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(girdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(girdir)" || exit $$?; \
+ done
+
+uninstall-nodist_girDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_gir_DATA)'; test -n "$(girdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(girdir)" && rm -f $$files
+install-nodist_typelibDATA: $(nodist_typelib_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(typelibdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibdir)"
+ @list='$(nodist_typelib_DATA)'; test -n "$(typelibdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(typelibdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(typelibdir)" || exit $$?; \
+ done
+
+uninstall-nodist_typelibDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(nodist_typelib_DATA)'; test -n "$(typelibdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(typelibdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(typelibdir)" && rm -f $$files
+install-headerHEADERS: $(header_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(headerdir)" || $(MKDIR_P) "$(DESTDIR)$(headerdir)"
+ @list='$(header_HEADERS)'; test -n "$(headerdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(headerdir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(headerdir)" || exit $$?; \
+ done
+
+uninstall-headerHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(header_HEADERS)'; test -n "$(headerdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(headerdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(headerdir)" && rm -f $$files
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-TESTS: $(TESTS)
+ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+ srcdir=$(srcdir); export srcdir; \
+ list=' $(TESTS) '; \
+ $(am__tty_colors); \
+ if test -n "$$list"; then \
+ for tst in $$list; do \
+ if test -f ./$$tst; then dir=./; \
+ elif test -f $$tst; then dir=; \
+ else dir="$(srcdir)/"; fi; \
+ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xpass=`expr $$xpass + 1`; \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=XPASS; \
+ ;; \
+ *) \
+ col=$$grn; res=PASS; \
+ ;; \
+ esac; \
+ elif test $$? -ne 77; then \
+ all=`expr $$all + 1`; \
+ case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$tst[\ \ ]*) \
+ xfail=`expr $$xfail + 1`; \
+ col=$$lgn; res=XFAIL; \
+ ;; \
+ *) \
+ failed=`expr $$failed + 1`; \
+ col=$$red; res=FAIL; \
+ ;; \
+ esac; \
+ else \
+ skip=`expr $$skip + 1`; \
+ col=$$blu; res=SKIP; \
+ fi; \
+ echo "$${col}$$res$${std}: $$tst"; \
+ done; \
+ if test "$$all" -eq 1; then \
+ tests="test"; \
+ All=""; \
+ else \
+ tests="tests"; \
+ All="All "; \
+ fi; \
+ if test "$$failed" -eq 0; then \
+ if test "$$xfail" -eq 0; then \
+ banner="$$All$$all $$tests passed"; \
+ else \
+ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
+ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
+ fi; \
+ else \
+ if test "$$xpass" -eq 0; then \
+ banner="$$failed of $$all $$tests failed"; \
+ else \
+ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
+ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
+ fi; \
+ fi; \
+ dashes="$$banner"; \
+ skipped=""; \
+ if test "$$skip" -ne 0; then \
+ if test "$$skip" -eq 1; then \
+ skipped="($$skip test was not run)"; \
+ else \
+ skipped="($$skip tests were not run)"; \
+ fi; \
+ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$skipped"; \
+ fi; \
+ report=""; \
+ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+ report="Please report to $(PACKAGE_BUGREPORT)"; \
+ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+ dashes="$$report"; \
+ fi; \
+ dashes=`echo "$$dashes" | sed s/./=/g`; \
+ if test "$$failed" -eq 0; then \
+ echo "$$grn$$dashes"; \
+ else \
+ echo "$$red$$dashes"; \
+ fi; \
+ echo "$$banner"; \
+ test -z "$$skipped" || echo "$$skipped"; \
+ test -z "$$report" || echo "$$report"; \
+ echo "$$dashes$$std"; \
+ test "$$failed" -eq 0; \
+ else :; fi
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \
+ $(HEADERS)
+install-binPROGRAMS: install-libLTLIBRARIES
+
+installdirs:
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(girdir)"
"$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(headerdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+ clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-headerHEADERS install-nodist_girDATA \
+ install-nodist_typelibDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS install-libLTLIBRARIES
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-headerHEADERS \
+ uninstall-libLTLIBRARIES uninstall-nodist_girDATA \
+ uninstall-nodist_typelibDATA
+
+.MAKE: all check check-am install install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+ clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+ clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \
+ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-binPROGRAMS \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-headerHEADERS \
+ install-html install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-man install-nodist_girDATA \
+ install-nodist_typelibDATA install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-binPROGRAMS \
+ uninstall-headerHEADERS uninstall-libLTLIBRARIES \
+ uninstall-nodist_girDATA uninstall-nodist_typelibDATA
+
+ $(NULL)
+
+marshal.c: marshal.list
+ $(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_vte_marshal --header --body --internal $< > $@
+
+marshal.h: marshal.list
+ $(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_vte_marshal --header --internal $< > $@
+
+vtetypebuiltins.h: stamp-vtetypebuiltins.h
+ @true
+stamp-vtetypebuiltins.h: vtetypebuiltins.h.template vte.h vtepty.h vtedeprecated.h
+ $(AM_V_GEN) $(GLIB_MKENUMS) --template $< $(filter %.h,$^) > xgen-vtbh \
+ && (cmp -s xgen-vtbh vtetypebuiltins.h || cp xgen-vtbh vtetypebuiltins.h ) \
+ && rm -f xgen-vtbh \
+ && echo timestamp > $(@F)
+
+vtetypebuiltins.c: vtetypebuiltins.c.template vte.h vtepty.h vtedeprecated.h
+ $(AM_V_GEN) $(GLIB_MKENUMS) --template $< $(filter %.h,$^) > xgen-vtbc \
+ && (cmp -s xgen-vtbc vtetypebuiltins.c || cp xgen-vtbc vtetypebuiltins.c ) \
+ && rm -f xgen-vtbc
+
+vteseq-2.c: vteseq-2.gperf
+ $(AM_V_GEN) $(top_srcdir)/missing --run gperf -m 100 --no-strlen $< > $@.tmp && \
+ mv -f $@.tmp $@
+
+vteseq-n.c: vteseq-n.gperf
+ $(AM_V_GEN) $(top_srcdir)/missing --run gperf -m 100 $< > $@.tmp && \
+ mv -f $@.tmp $@
+
+vteseq-list.h: vteseq-2.gperf vteseq-n.gperf
+ $(AM_V_GEN) echo '/* Generated file. Do not edit */' > $@.tmp && \
+ cat $^ | grep -v '^#' | grep '\<VTE_SEQUENCE_HANDLER\>'| sed 's/.*, //' | LANG=C sort -u >> $@.tmp &&
\
+ mv -f $@.tmp $@
+
+@HAVE_INTROSPECTION_TRUE@Vte-@VTE_API_VERSION@.gir: libvte@VTE_LIBRARY_SUFFIX_U@.la
+
+#
+
+-include $(top_srcdir)/git.mk
+-include $(INTROSPECTION_MAKEFILE)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/vte/src/TODO b/vte/src/TODO
new file mode 100644
index 0000000..4729fb1
--- /dev/null
+++ b/vte/src/TODO
@@ -0,0 +1,32 @@
+Remove VteTerminalPrivate:char_{a,de}scent
+
+Handle display changes for cursors! (vte_terminal_set_cursor_from_regex_match is buggy then)
+Maybe rename vte_terminal_feed_child to make utf-8 clear
+use guint8 instead char in vte_terminal_feed_child_binary?
+VteBufferClass::commit size param -> gsize! (also in class_init: gtype!)
+::commit make TYPE_POINTER to avoid the string copy?
+VteBufferClass etc: add padding!!!
+support passing child_pid = -1 to remove the wathch in vte_buffer_watch_child
+add default handlers for Vtebuffer:move-window and :resize-window to VteView ?
+add default handlers for VteView:{in,de}crease-font-size ?
+VteScreen:scroll_delta -> move to vteview ??
+add freeze/unfreeze vtebuffer methods (to use while selecting, saving, etc)
+difference between default_row/column_count and row/column_count in Vtebufferprivate?
+remove vte_buffer_refresh_size calls from get_Preferred_width/height!
+make Vteview able to view just a subrect of the grid of vtebuffer (replace buffer->column/row_count by
terminal ones?)
+maybe replace word-chars with a regex?
+replace vte_conv with VTE_CONV_GUNICHAR_TYPE to/from UTF-8 with g_utf8_to_ucs4/g_ucs4_to_utf8
+[re]do stuff from realize/size-allocate when buffer is set!
+make vtebuffer implement ginitable (ring_ini can fail!)
+vtebufferiter: is it global, or should it store the VteScreen too? + vte_view_match_check_iter: what if the
iter points to a different screen thatn the one currently shown?
+make vte_view_match_check* return a GMatchInfo instead (depends on glib bug
https://bugzilla.gnome.org/show_bug.cgi?id=653005)
+add freeze/thaw to vtebuffer
+rename VteBufferIter -> VteBufferMark to match gtktextview stuff?
+add vte_view_freeze/thaw_scroll ? to temporarily inhibit scroll-to-end on keystroke/output
+use AtkText:text-insterted/changed/removed instead of text-changed (see bug atk #638377)
+move gtk-doc vte-docs.xml etc from GFDL to simply GPL 3+ ?
+get-goemetry-hints arg order (out last), and also add maybe (inout) flags?
+hide VteBuffer public struct, extending it is not really possible anyway, and then remove ->priv
+VteProcess to abstract around g_spawn_async() (and for running task notification & question on tab close in
g-t?)
+
+hard: move from GIOChannel to GIOStream, process IO on a worker thread, make buffer abstract and move pty
stuff up into a derived VtePtyBuffer class
diff --git a/vte/src/buffer.h b/vte/src/buffer.h
new file mode 100644
index 0000000..987a6a8
--- /dev/null
+++ b/vte/src/buffer.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ * MA 02111-1307, USA
+ *
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_buffer_h_included
+#define vte_buffer_h_included
+
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+typedef GByteArray VteBuffer;
+
+#define _vte_buffer_new g_byte_array_new
+#define _vte_buffer_free(B) g_byte_array_free (B, TRUE)
+#define _vte_buffer_append(B, data, length) g_byte_array_append (B, (const guint8 *) (data), length)
+#define _vte_buffer_length(B) ((B)->len)
+#define _vte_buffer_consume(B, length) g_byte_array_remove_range (B, 0, length)
+#define _vte_buffer_clear(B) g_byte_array_set_size (B, 0)
+#define _vte_buffer_set_minimum_size(B, length) g_byte_array_set_size (B, (guint) MAX ((gint)
(length), (gint) (B)->len))
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/caps.c b/vte/src/caps.c
new file mode 100644
index 0000000..c7217e0
--- /dev/null
+++ b/vte/src/caps.c
@@ -0,0 +1,599 @@
+/*
+ * Copyright (C) 2001,2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#include <stdlib.h>
+#include <glib.h>
+#include "caps.h"
+
+#define ESC _VTE_CAP_ESC
+#define CSI _VTE_CAP_CSI
+#define ST _VTE_CAP_ST
+#define OSC _VTE_CAP_OSC
+#define PM _VTE_CAP_PM
+#define APC _VTE_CAP_APC
+
+#define ENQ "\005"
+#define BEL "\007"
+#define BS "\010"
+#define TAB "\011"
+#define LF "\012"
+#define VT "\013"
+#define FF "\014"
+#define CR "\015"
+#define SO "\016"
+#define SI "\017"
+
+/* This list combined from the Linux termcap(5) man page, and
+ * termcap_&_terminfo by Strang, Mui, and O'Reilly. */
+struct _vte_capability_quark _vte_terminal_capability_strings[] = {
+ {"!1", TRUE, 0},
+ {"!2", TRUE, 0},
+ {"!3", TRUE, 0},
+
+ {"#1", TRUE, 0},
+ {"#2", TRUE, 0},
+ {"#3", TRUE, 0},
+ {"#4", TRUE, 0},
+
+ {"%0", TRUE, 0},
+ {"%1", TRUE, 0},
+ {"%2", TRUE, 0},
+ {"%3", TRUE, 0},
+ {"%4", TRUE, 0},
+ {"%5", TRUE, 0},
+ {"%6", TRUE, 0},
+ {"%7", TRUE, 0},
+ {"%8", TRUE, 0},
+ {"%9", TRUE, 0},
+ {"%a", TRUE, 0},
+ {"%b", TRUE, 0},
+ {"%c", TRUE, 0},
+ {"%d", TRUE, 0},
+ {"%e", TRUE, 0},
+ {"%f", TRUE, 0},
+ {"%g", TRUE, 0},
+ {"%h", TRUE, 0},
+ {"%i", TRUE, 0},
+ {"%j", TRUE, 0},
+
+ {"&0", TRUE, 0},
+ {"&1", TRUE, 0},
+ {"&2", TRUE, 0},
+ {"&3", TRUE, 0},
+ {"&4", TRUE, 0},
+ {"&5", TRUE, 0},
+ {"&6", TRUE, 0},
+ {"&7", TRUE, 0},
+ {"&8", TRUE, 0},
+ {"&9", TRUE, 0},
+
+ {"*0", TRUE, 0},
+ {"*1", TRUE, 0},
+ {"*2", TRUE, 0},
+ {"*3", TRUE, 0},
+ {"*4", TRUE, 0},
+ {"*5", TRUE, 0},
+ {"*6", TRUE, 0},
+ {"*7", TRUE, 0},
+ {"*8", TRUE, 0},
+ {"*9", TRUE, 0},
+
+ {"@0", TRUE, 0},
+ {"@1", TRUE, 0},
+ {"@2", TRUE, 0},
+ {"@3", TRUE, 0},
+ {"@4", TRUE, 0},
+ {"@5", TRUE, 0},
+ {"@6", TRUE, 0},
+ {"@7", TRUE, 0},
+ {"@8", TRUE, 0},
+ {"@9", TRUE, 0},
+
+ {"ae", FALSE, 0},
+ {"al", FALSE, 0},
+ {"AL", FALSE, 0},
+ {"as", FALSE, 0},
+
+ {"bc", FALSE, 0},
+ {"bl", FALSE, 0},
+ {"bt", FALSE, 0},
+
+ {"cb", FALSE, 0},
+ {"cc", FALSE, 0},
+ {"cd", FALSE, 0},
+ {"ce", FALSE, 0},
+ {"ch", FALSE, 0},
+ {"cl", FALSE, 0},
+ {"cm", FALSE, 0},
+ {"CM", FALSE, 0},
+ {"cr", FALSE, 0},
+ {"cs", FALSE, 0},
+ {"ct", FALSE, 0},
+ {"cv", FALSE, 0},
+
+ {"dc", FALSE, 0},
+ {"DC", FALSE, 0},
+ {"dl", FALSE, 0},
+ {"DL", FALSE, 0},
+ {"dm", FALSE, 0},
+ {"do", FALSE, 0},
+ {"DO", FALSE, 0},
+ {"ds", FALSE, 0},
+
+ {"eA", FALSE, 0},
+ {"ec", FALSE, 0},
+ {"ed", FALSE, 0},
+ {"ei", FALSE, 0},
+
+ {"F1", TRUE, 0},
+ {"F2", TRUE, 0},
+ {"F3", TRUE, 0},
+ {"F4", TRUE, 0},
+ {"F5", TRUE, 0},
+ {"F6", TRUE, 0},
+ {"F7", TRUE, 0},
+ {"F8", TRUE, 0},
+ {"F9", TRUE, 0},
+ {"FA", TRUE, 0},
+ {"FB", TRUE, 0},
+ {"FC", TRUE, 0},
+ {"FD", TRUE, 0},
+ {"FE", TRUE, 0},
+ {"FF", TRUE, 0},
+ {"FG", TRUE, 0},
+ {"FH", TRUE, 0},
+ {"FI", TRUE, 0},
+ {"FJ", TRUE, 0},
+ {"FK", TRUE, 0},
+ {"FL", TRUE, 0},
+ {"FM", TRUE, 0},
+ {"FN", TRUE, 0},
+ {"FO", TRUE, 0},
+ {"FP", TRUE, 0},
+ {"FQ", TRUE, 0},
+ {"FR", TRUE, 0},
+ {"FS", TRUE, 0},
+ {"FT", TRUE, 0},
+ {"FU", TRUE, 0},
+ {"FV", TRUE, 0},
+ {"FW", TRUE, 0},
+ {"FX", TRUE, 0},
+ {"FY", TRUE, 0},
+ {"FZ", TRUE, 0},
+
+ {"Fa", TRUE, 0},
+ {"Fb", TRUE, 0},
+ {"Fc", TRUE, 0},
+ {"Fd", TRUE, 0},
+ {"Fe", TRUE, 0},
+ {"Ff", TRUE, 0},
+ {"Fg", TRUE, 0},
+ {"Fh", TRUE, 0},
+ {"Fi", TRUE, 0},
+ {"Fj", TRUE, 0},
+ {"Fk", TRUE, 0},
+ {"Fl", TRUE, 0},
+ {"Fm", TRUE, 0},
+ {"Fn", TRUE, 0},
+ {"Fo", TRUE, 0},
+ {"Fp", TRUE, 0},
+ {"Fq", TRUE, 0},
+ {"Fr", TRUE, 0},
+
+ {"ff", FALSE, 0},
+ {"fs", FALSE, 0},
+
+ {"hd", FALSE, 0},
+ {"ho", FALSE, 0},
+ {"hu", FALSE, 0},
+
+ {"i1", FALSE, 0},
+ {"i3", FALSE, 0},
+
+ {"ic", FALSE, 0},
+ {"IC", FALSE, 0},
+ {"if", FALSE, 0},
+ {"im", FALSE, 0},
+ {"ip", FALSE, 0},
+ {"iP", FALSE, 0},
+ {"is", FALSE, 0},
+
+ {"K1", TRUE, 0},
+ {"K2", TRUE, 0},
+ {"K3", TRUE, 0},
+ {"K4", TRUE, 0},
+ {"K5", TRUE, 0},
+
+ {"k0", TRUE, 0},
+ {"k1", TRUE, 0},
+ {"k2", TRUE, 0},
+ {"k3", TRUE, 0},
+ {"k4", TRUE, 0},
+ {"k5", TRUE, 0},
+ {"k6", TRUE, 0},
+ {"k7", TRUE, 0},
+ {"k8", TRUE, 0},
+ {"k9", TRUE, 0},
+ {"k;", TRUE, 0},
+ {"ka", TRUE, 0},
+ {"kA", TRUE, 0},
+ {"kb", TRUE, 0},
+ {"kB", TRUE, 0},
+ {"kC", TRUE, 0},
+ {"kd", TRUE, 0},
+ {"kD", TRUE, 0},
+ {"ke", TRUE, 0},
+ {"kE", TRUE, 0},
+ {"kF", TRUE, 0},
+ {"kh", TRUE, 0},
+ {"kH", TRUE, 0},
+ {"kI", TRUE, 0},
+ {"kl", TRUE, 0},
+ {"kL", TRUE, 0},
+ {"kM", TRUE, 0},
+ {"kN", TRUE, 0},
+ {"kP", TRUE, 0},
+ {"kr", TRUE, 0},
+ {"kR", TRUE, 0},
+ {"ks", TRUE, 0},
+ {"kS", TRUE, 0},
+ {"kt", TRUE, 0},
+ {"kT", TRUE, 0},
+ {"ku", TRUE, 0},
+
+ {"l0", FALSE, 0},
+ {"l1", FALSE, 0},
+ {"l2", FALSE, 0},
+ {"l3", FALSE, 0},
+ {"l4", FALSE, 0},
+ {"l5", FALSE, 0},
+ {"l6", FALSE, 0},
+ {"l7", FALSE, 0},
+ {"l8", FALSE, 0},
+ {"l9", FALSE, 0},
+
+ {"la", FALSE, 0},
+ {"le", FALSE, 0},
+ {"LE", FALSE, 0},
+ {"LF", FALSE, 0},
+ {"ll", FALSE, 0},
+ {"LO", FALSE, 0},
+
+ {"mb", FALSE, 0},
+ {"MC", FALSE, 0},
+ {"md", FALSE, 0},
+ {"me", FALSE, 0},
+ {"mh", FALSE, 0},
+ {"mk", FALSE, 0},
+ {"ml", FALSE, 0},
+ {"ML", FALSE, 0},
+ {"mm", FALSE, 0},
+ {"mo", FALSE, 0},
+ {"mp", FALSE, 0},
+ {"mr", FALSE, 0},
+ {"MR", FALSE, 0},
+ {"mu", FALSE, 0},
+
+ {"nd", FALSE, 0},
+ {"nl", FALSE, 0},
+ {"nw", FALSE, 0},
+
+ {"pc", FALSE, 0},
+ {"pf", FALSE, 0},
+ {"pk", FALSE, 0},
+ {"pl", FALSE, 0},
+ {"pn", FALSE, 0},
+ {"po", FALSE, 0},
+ {"pO", FALSE, 0},
+ {"ps", FALSE, 0},
+ {"px", FALSE, 0},
+
+ {"r1", FALSE, 0},
+ {"r2", FALSE, 0},
+ {"r3", FALSE, 0},
+
+ {"RA", FALSE, 0},
+ {"rc", FALSE, 0},
+ {"rf", FALSE, 0},
+ {"RF", FALSE, 0},
+ {"RI", FALSE, 0},
+ {"rp", FALSE, 0},
+ {"rP", FALSE, 0},
+ {"rs", FALSE, 0},
+ {"RX", FALSE, 0},
+
+ {"s0", FALSE, 0},
+ {"s1", FALSE, 0},
+ {"s2", FALSE, 0},
+ {"s3", FALSE, 0},
+
+ {"sa", FALSE, 0},
+ {"SA", FALSE, 0},
+ {"sc", FALSE, 0},
+ {"se", FALSE, 0},
+ {"sf", FALSE, 0},
+ {"SF", FALSE, 0},
+ /* {"so", 0}, standout is always the same as another attribute. */
+ {"sr", FALSE, 0},
+ {"SR", FALSE, 0},
+ {"st", FALSE, 0},
+ {"SX", FALSE, 0},
+
+ {"ta", FALSE, 0},
+ /* {"te", 0}, terminal end-use is "logical". */
+ /* {"ti", 0}, terminal init is "logical". */
+ {"ts", FALSE, 0},
+
+ {"uc", FALSE, 0},
+ {"ue", FALSE, 0},
+ {"up", FALSE, 0},
+ {"UP", FALSE, 0},
+ {"us", FALSE, 0},
+
+ {"vb", FALSE, 0},
+ /* {"ve", FALSE, 0}, */
+ {"vi", FALSE, 0},
+ /* {"vs", FALSE, 0}, */
+
+ {"wi", FALSE, 0},
+
+ {"XF", FALSE, 0},
+ {"XN", FALSE, 0},
+
+
+ {"", FALSE, 0}
+};
+
+/* From some really old XTerm docs we had at the office, and an updated
+ * version at Moy, Gildea, and Dickey. */
+struct _vte_capability_string _vte_xterm_capability_strings[] = {
+ {ENQ, "return-terminal-status", 0},
+ {VT, "vertical-tab", 0},
+ {FF, "form-feed", 0},
+
+ {ESC " F", "7-bit-controls", 0},
+ {ESC " G", "8-bit-controls", 0},
+ {ESC " L", "ansi-conformance-level-1", 0},
+ {ESC " M", "ansi-conformance-level-2", 0},
+ {ESC " N", "ansi-conformance-level-3", 0},
+ {ESC "#3", "double-height-top-half", 0},
+ {ESC "#4", "double-height-bottom-half", 0},
+ {ESC "#5", "single-width", 0},
+ {ESC "#6", "double-width", 0},
+ {ESC "#8", "screen-alignment-test", 0},
+
+ /* These are actually designate-other-coding-system from ECMA 35,
+ * but we don't support the full repertoire. Actually, we don't
+ * know what the full repertoire looks like. */
+ {ESC "%%@", "iso8859-1-character-set", 0},
+ {ESC "%%G", "utf-8-character-set", 0},
+
+ {ESC "7", "save-cursor", 0},
+ {ESC "8", "restore-cursor", 0},
+ {ESC "=", "application-keypad", 0},
+ {ESC ">", "normal-keypad", 0},
+ {ESC "D", "index", 0},
+ {ESC "E", "next-line", 0},
+ {ESC "F", "cursor-lower-left", 0},
+ {ESC "H", "tab-set", 0},
+ {ESC "M", "reverse-index", 0},
+ /* {ESC "N", "single-shift-g2", 0}, */
+ /* {ESC "O", "single-shift-g3", 0}, */
+ {ESC "P%s" ESC "\\", "device-control-string", 0},
+ {ESC "V", "start-of-guarded-area", 0},
+ {ESC "W", "end-of-guarded-area", 0},
+ {ESC "X", "start-of-string", 0},
+ {ESC "\\", "end-of-string", 0},
+ {ESC "Z", "return-terminal-id", 0},
+ {ESC "c", "full-reset", 0},
+ {ESC "l", "memory-lock", 0},
+ {ESC "m", "memory-unlock", 0},
+ /* {ESC "n", "invoke-g2-character-set", 0}, */
+ /* {ESC "o", "invoke-g3-character-set", 0}, */
+ /* {ESC "|", "invoke-g3-character-set-as-gr", 0}, */
+ /* {ESC "}", "invoke-g2-character-set-as-gr", 0}, */
+ /* {ESC "~", "invoke-g1-character-set-as-gr", 0}, */
+
+ /* APC stuff omitted. */
+
+ /* DCS stuff omitted. */
+
+ {CSI "@", "insert-blank-characters", 0},
+ {CSI "%d@", "insert-blank-characters", 0},
+ {CSI "A", "cursor-up", 0},
+ {CSI "%dA", "cursor-up", 0},
+ {CSI "B", "cursor-down", 0},
+ {CSI "%dB", "cursor-down", 0},
+ {CSI "C", "cursor-forward", 0},
+ {CSI "%dC", "cursor-forward", 0},
+ {CSI "D", "cursor-backward", 0},
+ {CSI "%dD", "cursor-backward", 0},
+ {CSI "E", "cursor-next-line", 0},
+ {CSI "%dE", "cursor-next-line", 0},
+ {CSI "F", "cursor-preceding-line", 0},
+ {CSI "%dF", "cursor-preceding-line", 0},
+ {CSI "G", "cursor-character-absolute", 0},
+ {CSI "%dG", "cursor-character-absolute", 0},
+ {CSI ";H", "cursor-position", 0},
+ {CSI "%dH", "cursor-position", 0},
+ {CSI "%d;H", "cursor-position", 0},
+ {CSI ";%dH", "cursor-position", 0},
+ {CSI "%d;%dH", "cursor-position", 0},
+ {CSI "I", "cursor-forward-tabulation", 0},
+ {CSI "J", "erase-in-display", 0},
+ {CSI "%dJ", "erase-in-display", 0},
+ {CSI "?J", "selective-erase-in-display", 0},
+ {CSI "?%dJ", "selective-erase-in-display", 0},
+ {CSI "K", "erase-in-line", 0},
+ {CSI "%dK", "erase-in-line", 0},
+ {CSI "?K", "selective-erase-in-line", 0},
+ {CSI "?%dK", "selective-erase-in-line", 0},
+ {CSI "L", "insert-lines", 0},
+ {CSI "%dL", "insert-lines", 0},
+ {CSI "M", "delete-lines", 0},
+ {CSI "%dM", "delete-lines", 0},
+ {CSI "P", "delete-characters", 0},
+ {CSI "%dP", "delete-characters", 0},
+ {CSI "S", "scroll-up", 0},
+ {CSI "%dS", "scroll-up", 0},
+ {CSI "T", "scroll-down", 0},
+ {CSI "%dT", "scroll-down", 0},
+ {CSI "%d;%d;%d;%d;%dT", "initiate-hilite-mouse-tracking", 0},
+ {CSI "X", "erase-characters", 0},
+ {CSI "%dX", "erase-characters", 0},
+ {CSI "Z", "cursor-back-tab", 0},
+ {CSI "%dZ", "cursor-back-tab", 0},
+
+ {CSI "`", "character-position-absolute", 0},
+ {CSI "%d`", "character-position-absolute", 0},
+ {CSI "b", "repeat", 0},
+ {CSI "%db", "repeat", 0},
+ {CSI "c", "send-primary-device-attributes", 0},
+ {CSI "%dc", "send-primary-device-attributes", 0},
+ {CSI ">c", "send-secondary-device-attributes", 0},
+ {CSI ">%dc", "send-secondary-device-attributes", 0},
+ {CSI "=c", "send-tertiary-device-attributes", 0},
+ {CSI "=%dc", "send-tertiary-device-attributes", 0},
+ {CSI "?%mc", "linux-console-cursor-attributes", 0},
+ {CSI "d", "line-position-absolute", 0},
+ {CSI "%dd", "line-position-absolute", 0},
+ {CSI ";f", "horizontal-and-vertical-position", 0},
+ {CSI "%d;f", "horizontal-and-vertical-position", 0},
+ {CSI ";%df", "horizontal-and-vertical-position", 0},
+ {CSI "%d;%df", "horizontal-and-vertical-position", 0},
+ {CSI "g", "tab-clear", 0},
+ {CSI "%dg", "tab-clear", 0},
+
+ {CSI "%mh", "set-mode", 0},
+ {CSI "?%mh", "decset", 0},
+
+ {CSI "%mi", "media-copy", 0},
+ {CSI "?%mi", "dec-media-copy", 0},
+
+ {CSI "%ml", "reset-mode", 0},
+ {CSI "?%ml", "decreset", 0},
+
+ {CSI "%mm", "character-attributes", 0},
+
+ {CSI "%dn", "device-status-report", 0},
+ {CSI "?%dn", "dec-device-status-report", 0},
+ {CSI "!p", "soft-reset", 0},
+ {CSI "%d;%d\"p", "set-conformance-level", 0},
+ {CSI "%d\"q", "select-character-protection", 0},
+
+ {CSI "r", "set-scrolling-region", 0},
+ {CSI ";r", "set-scrolling-region", 0},
+ {CSI ";%dr", "set-scrolling-region-from-start", 0},
+ {CSI "%dr", "set-scrolling-region-to-end", 0},
+ {CSI "%d;r", "set-scrolling-region-to-end", 0},
+ {CSI "%d;%dr", "set-scrolling-region", 0},
+
+ {CSI "?%mr", "restore-mode", 0},
+ {CSI "s", "save-cursor", 0},
+ {CSI "?%ms", "save-mode", 0},
+ {CSI "u", "restore-cursor", 0},
+
+ {CSI "%mt", "window-manipulation", 0},
+
+ {CSI "%d;%d;%d;%dw", "enable-filter-rectangle", 0},
+ {CSI "%dx", "request-terminal-parameters", 0},
+ {CSI "%d;%d'z", "enable-locator-reporting", 0},
+ {CSI "%m'{", "select-locator-events", 0},
+ {CSI "%d'|", "request-locator-position", 0},
+
+ /* Set text parameters, BEL-terminated versions. */
+ {OSC ";%s" BEL, "set-icon-and-window-title", 0}, /* undocumented default */
+ {OSC "0;%s" BEL, "set-icon-and-window-title", 0},
+ {OSC "1;%s" BEL, "set-icon-title", 0},
+ {OSC "2;%s" BEL, "set-window-title", 0},
+ {OSC "3;%s" BEL, "set-xproperty", 0},
+ {OSC "4;%s" BEL, "change-color", 0},
+ {OSC "10;%s" BEL, "change-foreground-colors", 0},
+ {OSC "11;%s" BEL, "change-background-colors", 0},
+ {OSC "12;%s" BEL, "change-cursor-colors", 0},
+ {OSC "13;%s" BEL, "change-mouse-cursor-foreground-colors", 0},
+ {OSC "14;%s" BEL, "change-mouse-cursor-foreground-colors", 0},
+ {OSC "15;%s" BEL, "change-tek-background-colors", 0},
+ {OSC "16;%s" BEL, "change-tek-background-colors", 0},
+ {OSC "17;%s" BEL, "change-highlight-colors", 0},
+ {OSC "46;%s" BEL, "change-logfile", 0},
+ {OSC "50;#%d" BEL, "change-font-number", 0},
+ {OSC "50;%s" BEL, "change-font-name", 0},
+
+ /* Set text parameters, ST-terminated versions. */
+ {OSC ";%s" ST, "set-icon-and-window-title", 0}, /* undocumented default */
+ {OSC "0;%s" ST, "set-icon-and-window-title", 0},
+ {OSC "1;%s" ST, "set-icon-title", 0},
+ {OSC "2;%s" ST, "set-window-title", 0},
+ {OSC "3;%s" ST, "set-xproperty", 0},
+ {OSC "4;%s" ST, "change-color", 0},
+ {OSC "10;%s" ST, "change-foreground-colors", 0},
+ {OSC "11;%s" ST, "change-background-colors", 0},
+ {OSC "12;%s" ST, "change-cursor-colors", 0},
+ {OSC "13;%s" ST, "change-mouse-cursor-foreground-colors", 0},
+ {OSC "14;%s" ST, "change-mouse-cursor-foreground-colors", 0},
+ {OSC "15;%s" ST, "change-tek-background-colors", 0},
+ {OSC "16;%s" ST, "change-tek-background-colors", 0},
+ {OSC "17;%s" ST, "change-highlight-colors", 0},
+ {OSC "46;%s" ST, "change-logfile", 0},
+ {OSC "50;#%d" ST, "change-font-number", 0},
+ {OSC "50;%s" ST, "change-font-name", 0},
+
+ /* These may be bogus, I can't find docs for them anywhere (#104154). */
+ {OSC "21;%s" BEL, "set-text-property-21", 0},
+ {OSC "2L;%s" BEL, "set-text-property-2L", 0},
+ {OSC "21;%s" ST, "set-text-property-21", 0},
+ {OSC "2L;%s" ST, "set-text-property-2L", 0},
+
+ {NULL, NULL, 0},
+};
+
+#if 0
+/**
+ * vte_capability_init:
+ *
+ * Initializes the vte_terminal_capability_strings and
+ * vte_xterm_capability_strings structures used by the terminal. Can
+ * be called multiple times without ill effect.
+ *
+ * Returns: void
+ */
+
+void
+_vte_capability_init(void)
+{
+ unsigned int i;
+ for (i = 0; _vte_terminal_capability_strings[i].capability[0]; i++) {
+ const char *tmp;
+ GQuark quark;
+ tmp = _vte_terminal_capability_strings[i].capability;
+ quark = g_quark_from_static_string(tmp);
+ _vte_terminal_capability_strings[i].quark = quark;
+ }
+ for (i = 0; i < G_N_ELEMENTS(_vte_xterm_capability_strings); i++) {
+ const char *tmp;
+ GQuark quark;
+ tmp = _vte_xterm_capability_strings[i].value;
+ if (tmp != NULL) {
+ quark = g_quark_from_static_string(tmp);
+ _vte_xterm_capability_strings[i].quark = quark;
+ }
+ }
+}
+#endif
diff --git a/vte/src/caps.h b/vte/src/caps.h
new file mode 100644
index 0000000..e8d1118
--- /dev/null
+++ b/vte/src/caps.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2001,2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_caps_h_included
+#define vte_caps_h_included
+
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+#define _VTE_CAP_ESC "\033" /* Escape */
+#define _VTE_CAP_CSI _VTE_CAP_ESC "[" /* Control Sequence Introducer */
+#define _VTE_CAP_ST _VTE_CAP_ESC "\\" /* String Terminator */
+#define _VTE_CAP_OSC _VTE_CAP_ESC "]" /* Operating System Command */
+#define _VTE_CAP_PM _VTE_CAP_ESC "^" /* Privacy Message */
+#define _VTE_CAP_APC _VTE_CAP_ESC "_" /* Application Program Command */
+#define _VTE_CAP_SS2 _VTE_CAP_ESC "N" /* Single-shift to G2 */
+#define _VTE_CAP_SS3 _VTE_CAP_ESC "O" /* Single-shift to G3 */
+
+/* A NULL-terminated list of capability strings which have string values,
+ * which means they're either key sequences or commands. */
+struct _vte_capability_quark {
+ const char capability[4];
+ gboolean key;
+ GQuark quark;
+};
+struct _vte_capability_string {
+ const char *code;
+ const char *value;
+ GQuark quark;
+};
+
+/* The known capability strings in termcap entries, terminated by NULLs. */
+extern struct _vte_capability_quark _vte_terminal_capability_strings[];
+
+/* The xterm-specific terminal control strings, terminated by NULLs. */
+extern struct _vte_capability_string _vte_xterm_capability_strings[];
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/check-doc-syntax.sh b/vte/src/check-doc-syntax.sh
new file mode 100755
index 0000000..81f76be
--- /dev/null
+++ b/vte/src/check-doc-syntax.sh
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+LC_ALL=C
+export LC_ALL
+
+prefix=vte
+PREFIX=VTE
+
+if grep --version 2>/dev/null | grep GNU >/dev/null; then
+ :
+else
+ echo "GNU grep not found; skipping test"
+ exit 0
+fi
+
+test -z "$srcdir" && srcdir=.
+stat=0
+
+echo Checking documentation for incorrect syntax
+
+cd "$srcdir"
+
+# Note: this test is also run from doc/public/ to check the SGML files
+
+if test "x$SGML_DOCS" = x; then
+ FILES=$all_source_files
+ if test "x$FILES" = x; then
+ FILES=`find . -name "$prefix*.h" -or -name "$prefix*.c"`
+ fi
+fi
+
+enum_regexp="\([^%@']\|^\)\<\(FALSE\|TRUE\|NULL\|${PREFIX}_[0-9A-Z_]*\)\($\|[^(A-Za-z0-9_]\)"
+if test "x$SGML_DOCS" = x; then
+ enum_regexp='^[^:]*:[/ ][*]\(\|[ \t].*\)'$enum_regexp\($\|[^:]\)
+fi
+if echo $FILES | xargs grep . /dev/null | sed -e '/<programlisting>/,/<\/programlisting>/d' | grep
"$enum_regexp" | grep -v '#####'; then
+ stat=1
+ echo Error: some macros in the docs are not prefixed by percent sign.
+ echo Fix this by searching for the following regexp in the above files:
+ echo " '$enum_regexp'"
+fi >&2
+
+type_regexp="\( .*[^#']\| \|^\)\<$prefix[0-9a-z_]*_t\>\($\|[^:]$\|[^:].\)"
+if test "x$SGML_DOCS" = x; then
+ type_regexp='^[^:]*:[/ ][*]'$type_regexp
+else
+ type_regexp='\(.'$type_regexp'\)\|\('$type_regexp'.\)'
+fi
+
+if echo $FILES | xargs grep . /dev/null | sed -e '/<programlisting>/,/<\/programlisting>/d' | grep
"$type_regexp" | grep -v '#####'; then
+ stat=1
+ echo Error: some type names in the docs are not prefixed by hash sign,
+ echo neither are the only token in the doc line followed by colon.
+ echo Fix this by searching for the following regexp in the above files:
+ echo " '$type_regexp'"
+fi >&2
+
+func_regexp="\([^#']\|^\)\<\(${prefix}_[][<>/0-9a-z_]*\>[^][<>(]\)"
+if test "x$SGML_DOCS" = x; then
+ func_regexp='^[^:]*:[/ ][*]\(\|[ \t].*\)'$func_regexp
+fi
+
+# We need to filter out gtk-doc markup errors for program listings.
+if echo $FILES | xargs grep . /dev/null | sed -e '/<programlisting>/,/<\/programlisting>/d' | grep
"$func_regexp" | grep -v '^[^:]*: [*] [a-z_0-9]*:$' | grep -v '#####'; then
+ stat=1
+ echo Error: some function names in the docs are not followed by parentheses.
+ echo Fix this by searching for the following regexp in the above files:
+ echo " '$func_regexp'"
+fi >&2
+
+note_regexp='\<NOTE\>'
+if echo $FILES | xargs grep "$note_regexp" /dev/null; then
+ stat=1
+ echo Error: some source files contain the string 'NOTE'.
+ echo Be civil and replace it by 'Note' please.
+fi >&2
+
+exit $stat
diff --git a/vte/src/debug.c b/vte/src/debug.c
new file mode 100644
index 0000000..54997b9
--- /dev/null
+++ b/vte/src/debug.c
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2002,2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+
+#include <glib.h>
+#include "debug.h"
+
+VteDebugFlags _vte_debug_flags;
+
+void
+_vte_debug_init(void)
+{
+#ifdef VTE_DEBUG
+ const GDebugKey keys[] = {
+ { "misc", VTE_DEBUG_MISC },
+ { "io", VTE_DEBUG_IO },
+ { "adj", VTE_DEBUG_ADJ },
+ { "updates", VTE_DEBUG_UPDATES },
+ { "events", VTE_DEBUG_EVENTS },
+ { "parse", VTE_DEBUG_PARSE },
+ { "signals", VTE_DEBUG_SIGNALS },
+ { "selection", VTE_DEBUG_SELECTION },
+ { "substitution", VTE_DEBUG_SUBSTITUTION },
+ { "ring", VTE_DEBUG_RING },
+ { "pty", VTE_DEBUG_PTY },
+ { "cursor", VTE_DEBUG_CURSOR },
+ { "keyboard", VTE_DEBUG_KEYBOARD },
+ { "lifecycle", VTE_DEBUG_LIFECYCLE },
+ { "trie", VTE_DEBUG_TRIE },
+ { "work", VTE_DEBUG_WORK },
+ { "cells", VTE_DEBUG_CELLS },
+ { "timeout", VTE_DEBUG_TIMEOUT },
+ { "draw", VTE_DEBUG_DRAW },
+ { "ally", VTE_DEBUG_ALLY },
+ { "pangocairo", VTE_DEBUG_PANGOCAIRO },
+ { "widget-size", VTE_DEBUG_WIDGET_SIZE },
+ { "bg", VTE_DEBUG_BG }
+ };
+
+ _vte_debug_flags = g_parse_debug_string (g_getenv("VTE_DEBUG"),
+ keys, G_N_ELEMENTS (keys));
+ _vte_debug_print(0xFFFFFFFF, "VTE debug flags = %x\n", _vte_debug_flags);
+#endif /* VTE_DEBUG */
+}
diff --git a/vte/src/debug.h b/vte/src/debug.h
new file mode 100644
index 0000000..eee72cb
--- /dev/null
+++ b/vte/src/debug.h
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_debug_h_included
+#define vte_debug_h_included
+
+#include <config.h>
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+typedef enum {
+ VTE_DEBUG_MISC = 1 << 0,
+ VTE_DEBUG_PARSE = 1 << 1,
+ VTE_DEBUG_IO = 1 << 2,
+ VTE_DEBUG_UPDATES = 1 << 3,
+ VTE_DEBUG_EVENTS = 1 << 4,
+ VTE_DEBUG_SIGNALS = 1 << 5,
+ VTE_DEBUG_SELECTION = 1 << 6,
+ VTE_DEBUG_SUBSTITUTION = 1 << 7,
+ VTE_DEBUG_RING = 1 << 8,
+ VTE_DEBUG_PTY = 1 << 9,
+ VTE_DEBUG_CURSOR = 1 << 10,
+ VTE_DEBUG_KEYBOARD = 1 << 11,
+ VTE_DEBUG_LIFECYCLE = 1 << 12,
+ VTE_DEBUG_TRIE = 1 << 13,
+ VTE_DEBUG_WORK = 1 << 14,
+ VTE_DEBUG_CELLS = 1 << 15,
+ VTE_DEBUG_TIMEOUT = 1 << 16,
+ VTE_DEBUG_DRAW = 1 << 17,
+ VTE_DEBUG_ALLY = 1 << 18,
+ VTE_DEBUG_ADJ = 1 << 19,
+ VTE_DEBUG_PANGOCAIRO = 1 << 20,
+ VTE_DEBUG_WIDGET_SIZE = 1 << 21,
+ VTE_DEBUG_BG = 1 << 22
+} VteDebugFlags;
+
+void _vte_debug_init(void);
+
+extern VteDebugFlags _vte_debug_flags;
+static inline gboolean _vte_debug_on(VteDebugFlags flags) G_GNUC_CONST G_GNUC_UNUSED;
+
+static inline gboolean
+_vte_debug_on(VteDebugFlags flags)
+{
+ return (_vte_debug_flags & flags) == flags;
+}
+
+#ifdef VTE_DEBUG
+#define _VTE_DEBUG_IF(flags) if (G_UNLIKELY (_vte_debug_on (flags)))
+#else
+#define _VTE_DEBUG_IF(flags) if (0)
+#endif
+
+#if defined(__GNUC__) && G_HAVE_GNUC_VARARGS
+#define _vte_debug_print(flags, fmt, ...) \
+ G_STMT_START { _VTE_DEBUG_IF(flags) g_printerr(fmt, ##__VA_ARGS__); } G_STMT_END
+#else
+#include <stdarg.h>
+#include <glib/gstdio.h>
+static void _vte_debug_print(guint flags, const char *fmt, ...)
+{
+ _VTE_DEBUG_IF(flags) {
+ va_list ap;
+ va_start (ap, fmt);
+ g_vfprintf (stderr, fmt, ap);
+ va_end (ap);
+ }
+}
+#endif
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/decset b/vte/src/decset
new file mode 100755
index 0000000..a68bfb7
--- /dev/null
+++ b/vte/src/decset
@@ -0,0 +1,16 @@
+#!/bin/sh
+#
+# Set or reset DEC private modes. You'll need the XTerm docs.
+#
+if [ "$#" -eq 0 ] ; then
+ echo usage: `basename $0` '[ -r | -s ] mode [...]'
+ exit
+fi
+char=h
+for arg in $@ ; do
+ case "$arg" in
+ -r) char=l ;;
+ -s) char=h ;;
+ *) echo -n -e '\033[?'${arg}${char}
+ esac
+done
diff --git a/vte/src/dumpkeys.c b/vte/src/dumpkeys.c
new file mode 100644
index 0000000..976eb5e
--- /dev/null
+++ b/vte/src/dumpkeys.c
@@ -0,0 +1,348 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
+#ifdef HAVE_SYS_TERMIOS_H
+#include <sys/termios.h>
+#endif
+#include <sys/time.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#endif
+#include <unistd.h>
+#include <glib.h>
+
+#define ESC "\033"
+#define MODE_APPLICATION_KEYPAD ESC "="
+#define MODE_NORMAL_KEYPAD ESC ">"
+#define MODE_APPLICATION_CURSOR_KEYS 1
+#define MODE_SUN_FUNCTION_KEYS 1051
+#define MODE_HP_FUNCTION_KEYS 1052
+#define MODE_XTERM_FUNCTION_KEYS 1060
+#define MODE_VT220_FUNCTION_KEYS 1061
+#define MODE_ALTERNATE_SCREEN 1047
+
+enum {
+ normal = 0, application = 1
+} keypad_mode = normal, cursor_mode = normal;
+gboolean sun_fkeys = FALSE, hp_fkeys = FALSE,
+ xterm_fkeys = FALSE, vt220_fkeys = FALSE;
+struct termios original;
+
+/* Output the DEC private mode set sequence. */
+static void
+decset(int mode, gboolean value)
+{
+ g_print(ESC "[?%d%c", mode, value ? 'h' : 'l');
+}
+
+/* Move the cursor to the upper left corner of the screen. */
+static void
+home(void)
+{
+ g_print(ESC "[1;1H");
+}
+
+/* Clear the screen. */
+static void
+clear(void)
+{
+ g_print(ESC "[2J");
+ home();
+}
+
+/* Print the what-does-this-key-do help messages and current status. */
+static void
+print_help(void)
+{
+ g_print(ESC "[m");
+ home();
+ g_print(ESC "[K" "A - KEYPAD ");
+ if (keypad_mode == application) {
+ g_print("APPLICATION\r\n");
+ } else {
+ g_print("NORMAL\r\n");
+ }
+ g_print(ESC "[K" "B - CURSOR ");
+ if (cursor_mode == application) {
+ g_print("APPLICATION\r\n");
+ } else {
+ g_print("NORMAL\r\n");
+ }
+ g_print(ESC "[K" "C - SUN ");
+ if (sun_fkeys) {
+ g_print("TRUE\r\n");
+ } else {
+ g_print("FALSE\r\n");
+ }
+ g_print(ESC "[K" "D - HP ");
+ if (hp_fkeys) {
+ g_print("TRUE\r\n");
+ } else {
+ g_print("FALSE\r\n");
+ }
+ g_print(ESC "[K" "E - XTERM ");
+ if (xterm_fkeys) {
+ g_print("TRUE\r\n");
+ } else {
+ g_print("FALSE\r\n");
+ }
+ g_print(ESC "[K" "F - VT220 ");
+ if (vt220_fkeys) {
+ g_print("TRUE\r\n");
+ } else {
+ g_print("FALSE\r\n");
+ }
+ g_print(ESC "[K" "R - RESET\r\n");
+ g_print(ESC "[K" "Q - QUIT\r\n");
+}
+
+/* Reset the scrolling region, so that the entire screen becomes
+ * addressable again. */
+static void
+reset_scrolling_region(void)
+{
+ g_print(ESC "[r");
+}
+
+/* Set the scrolling region, so that the help/status at the top of the
+ * screen doesn't scroll off. */
+static void
+set_scrolling_region(void)
+{
+ g_print(ESC "[10;24r");
+ g_print(ESC "[9;1H");
+}
+
+/* Save the current location of the cursor in the terminal's memory. */
+static void
+save_cursor(void)
+{
+ g_print(ESC "7");
+}
+
+/* Restore the cursor to the location stored in the terminal's memory. */
+static void
+restore_cursor(void)
+{
+ g_print(ESC "8");
+}
+
+/* Reset all of the keyboard modes. */
+static void
+reset(void)
+{
+ g_print(MODE_NORMAL_KEYPAD);
+ decset(MODE_APPLICATION_CURSOR_KEYS, FALSE);
+ decset(MODE_SUN_FUNCTION_KEYS, FALSE);
+ decset(MODE_HP_FUNCTION_KEYS, FALSE);
+ decset(MODE_XTERM_FUNCTION_KEYS, FALSE);
+ decset(MODE_VT220_FUNCTION_KEYS, FALSE);
+ reset_scrolling_region();
+ restore_cursor();
+}
+
+/* Cleanly exit. */
+G_GNUC_NORETURN static void
+sigint_handler(int signum)
+{
+ if (tcsetattr(STDIN_FILENO, TCSANOW, &original) != 0) {
+ perror("tcsetattr");
+ }
+ reset();
+ _exit(1);
+}
+
+int
+main(int argc, char **argv)
+{
+ char c;
+ guint i;
+ struct termios tcattr;
+ GByteArray *bytes;
+ gboolean done = FALSE, saved = FALSE;
+ struct timeval tv;
+ fd_set readset;
+
+ /* Start up: save the cursor location and put the terminal in
+ * raw mode. */
+ bytes = g_byte_array_new();
+ save_cursor();
+ if (tcgetattr(STDIN_FILENO, &tcattr) != 0) {
+ perror("tcgetattr");
+ return 1;
+ }
+ original = tcattr;
+ signal(SIGINT, sigint_handler);
+ /* Here we approximate what cfmakeraw() would do, for the benefit
+ * of systems which don't actually provide the function. */
+ tcattr.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP |
+ INLCR | IGNCR | ICRNL | IXON);
+ tcattr.c_oflag &= ~(OPOST);
+ tcattr.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
+ tcattr.c_cflag &= ~(CSIZE | PARENB);
+ tcattr.c_cflag |= CS8;
+#ifdef HAVE_CFMAKERAW
+ cfmakeraw(&tcattr);
+#endif
+ if (tcsetattr(STDIN_FILENO, TCSANOW, &tcattr) != 0) {
+ perror("tcsetattr");
+ return 1;
+ }
+
+ /* Switch to the alternate screen, clear it, and reset the keyboard. */
+ decset(MODE_ALTERNATE_SCREEN, TRUE);
+ clear();
+ reset();
+
+ /* Main processing loop. */
+ while (!done) {
+ print_help();
+ set_scrolling_region();
+ if (saved) {
+ restore_cursor();
+ }
+
+ /* Read a single byte. */
+ if (read(STDIN_FILENO, &c, 1) != 1) {
+ done = TRUE;
+ }
+ switch (c) {
+ case 'A':
+ case 'a':
+ keypad_mode = 1 - keypad_mode;
+ if (keypad_mode == normal) {
+ g_print(MODE_NORMAL_KEYPAD);
+ } else {
+ g_print(MODE_APPLICATION_KEYPAD);
+ }
+ break;
+ case 'B':
+ case 'b':
+ cursor_mode = 1 - cursor_mode;
+ decset(MODE_APPLICATION_CURSOR_KEYS,
+ cursor_mode == application);
+ break;
+ case 'C':
+ case 'c':
+ sun_fkeys = !sun_fkeys;
+ decset(MODE_SUN_FUNCTION_KEYS, sun_fkeys);
+ break;
+ case 'D':
+ case 'd':
+ hp_fkeys = !hp_fkeys;
+ decset(MODE_HP_FUNCTION_KEYS, hp_fkeys);
+ break;
+ case 'E':
+ case 'e':
+ xterm_fkeys = !xterm_fkeys;
+ decset(MODE_XTERM_FUNCTION_KEYS, xterm_fkeys);
+ break;
+ case 'F':
+ case 'f':
+ vt220_fkeys = !vt220_fkeys;
+ decset(MODE_VT220_FUNCTION_KEYS, vt220_fkeys);
+ break;
+ case 'R':
+ case 'r':
+ keypad_mode = cursor_mode = normal;
+ sun_fkeys = hp_fkeys = xterm_fkeys = vt220_fkeys = FALSE;
+ reset();
+ break;
+ case 'Q':
+ case 'q':
+ done = TRUE;
+ break;
+ case 0x0c: /* ^L */
+ clear();
+ if (saved) {
+ restore_cursor();
+ saved = FALSE;
+ }
+ break;
+ default:
+ /* We get here if it's not one of the keys we care
+ * about, so it might be a sequence. */
+ if (saved) {
+ restore_cursor();
+ }
+ g_byte_array_append(bytes, (const guint8 *) &c, 1);
+ /* Wait for up to just under 1/50 second. */
+ tv.tv_sec = 0;
+ tv.tv_usec = 1000000 / 50;
+ FD_ZERO(&readset);
+ FD_SET(STDIN_FILENO, &readset);
+ while (select(STDIN_FILENO + 1,
+ &readset, NULL, NULL, &tv) == 1) {
+ if (read(STDIN_FILENO, &c, 1) == 1) {
+ g_byte_array_append(bytes, (const guint8 *) &c, 1);
+ } else {
+ break;
+ }
+ tv.tv_sec = 0;
+ tv.tv_usec = 1000000 / 50;
+ FD_ZERO(&readset);
+ FD_SET(STDIN_FILENO, &readset);
+ }
+ /* Clear this line, and print the sequence. */
+ g_print(ESC "[K");
+ for (i = 0; i < bytes->len; i++) {
+ if (bytes->data[i] == 27) {
+ g_print("<ESC> ");
+ } else
+ if ((((guint8)bytes->data[i]) < 32) ||
+ (((guint8)bytes->data[i]) > 126)) {
+ g_print("<0x%02x> ", bytes->data[i]);
+ } else {
+ g_print("`%c' ", bytes->data[i]);
+ }
+ }
+ g_print("\r\n");
+ g_byte_array_set_size(bytes, 0);
+ save_cursor();
+ saved = TRUE;
+ break;
+ }
+ reset_scrolling_region();
+ }
+
+ decset(MODE_ALTERNATE_SCREEN, FALSE);
+
+ if (tcsetattr(STDIN_FILENO, TCSANOW, &original) != 0) {
+ perror("tcsetattr");
+ return 1;
+ }
+
+ g_byte_array_free(bytes, TRUE);
+
+ reset();
+
+ return 0;
+}
diff --git a/vte/src/genkeysyms.py b/vte/src/genkeysyms.py
new file mode 100755
index 0000000..b99bd79
--- /dev/null
+++ b/vte/src/genkeysyms.py
@@ -0,0 +1,27 @@
+#!/usr/bin/python
+
+import os, string, sys
+
+def scanheader(filename):
+ definitions = {}
+ file = open(filename, "r")
+ if file:
+ for line in file.readlines():
+ if line[:12] == '#define GDK_':
+ fields = string.split(line)
+ fields[2] = string.lower(fields[2])
+ if definitions.has_key(fields[2]):
+ definitions[fields[2]] = definitions[fields[2]] + ", " + fields[1]
+ else:
+ definitions[fields[2]] = fields[1]
+ file.close()
+ for key in definitions.keys():
+ print '\tcase %s: return \"%s\";' % (key, definitions[key])
+
+print '\t/* this file is auto-generated -- do not edit */'
+
+if len(sys.argv) > 1:
+ for header in sys.argv[1:]:
+ scanheader(header)
+else:
+ scanheader("/usr/include/gtk-2.0/gdk/gdkkeysyms.h")
diff --git a/vte/src/interpret.c b/vte/src/interpret.c
new file mode 100644
index 0000000..782d05b
--- /dev/null
+++ b/vte/src/interpret.c
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2001,2002,2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#include <sys/types.h>
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <glib.h>
+#include <glib-object.h>
+#include "caps.h"
+#include "debug.h"
+#include "iso2022.h"
+#include "matcher.h"
+#include "vtetc.h"
+
+int
+main(int argc, char **argv)
+{
+ char *terminal = NULL;
+ struct _vte_matcher *matcher = NULL;
+ struct _vte_termcap *termcap = NULL;
+ GArray *array;
+ unsigned int i, j;
+ int l;
+ unsigned char buf[4096];
+ GValue *value;
+ int infile;
+ struct _vte_iso2022_state *subst;
+ const char *tmp;
+ GQuark quark;
+ GValueArray *values;
+
+ _vte_debug_init();
+
+ if (argc < 2) {
+ g_print("usage: %s terminal [file]\n", argv[0]);
+ return 1;
+ }
+
+ if ((argc > 2) && (strcmp(argv[2], "-") != 0)) {
+ infile = open (argv[2], O_RDONLY);
+ if (infile == -1) {
+ g_print("error opening %s: %s\n", argv[2],
+ strerror(errno));
+ exit(1);
+ }
+ } else {
+ infile = 1;
+ }
+
+ g_type_init();
+ terminal = argv[1];
+ termcap = _vte_termcap_new(g_build_filename(TERMCAPDIR, terminal, NULL));
+ if (termcap == NULL) {
+ termcap = _vte_termcap_new("/etc/termcap");
+ }
+ array = g_array_new(FALSE, FALSE, sizeof(gunichar));
+
+ matcher = _vte_matcher_new(terminal, termcap);
+
+ subst = _vte_iso2022_state_new(NULL, NULL, NULL);
+
+ for (;;) {
+ l = read (infile, buf, sizeof (buf));
+ if (!l)
+ break;
+ if (l == -1) {
+ if (errno == EAGAIN)
+ continue;
+ exit (1);
+ }
+ g_array_set_size (array, 0);
+ _vte_iso2022_process(subst, buf, (unsigned int) l, array);
+
+ i = 0;
+ while (i <= array->len) {
+ tmp = NULL;
+ values = NULL;
+ for (j = 1; j < (array->len - i); j++) {
+ _vte_matcher_match(matcher,
+ &g_array_index(array, gunichar, i),
+ j,
+ &tmp,
+ NULL,
+ &quark,
+ &values);
+ if ((tmp == NULL) || (strlen(tmp) > 0)) {
+ break;
+ }
+ }
+ if (i + j == array->len) {
+ break;
+ }
+ if (tmp == NULL) {
+ gunichar c;
+ c = g_array_index(array, gunichar, i);
+ if (VTE_ISO2022_HAS_ENCODED_WIDTH(c)) {
+ c &= ~VTE_ISO2022_ENCODED_WIDTH_MASK;
+ }
+ if (c < 32) {
+ g_print("`^%c'\n", c + 64);
+ } else
+ if (c < 127) {
+ g_print("`%c'\n", c);
+ } else {
+ g_print("`0x%x'\n", c);
+ }
+ i++;
+ continue;
+ }
+
+ l = j;
+ g_print("%s(", g_quark_to_string(quark));
+ for (j = 0; (values != NULL) && (j < values->n_values); j++) {
+ if (j > 0) {
+ g_print(", ");
+ }
+ value = g_value_array_get_nth(values, j);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ g_print("%ld", g_value_get_long(value));
+ }
+ if (G_VALUE_HOLDS_STRING(value)) {
+ g_print("`%s'",
+ g_value_get_string(value));
+ }
+ if (G_VALUE_HOLDS_POINTER(value)) {
+ g_print("`%ls'",
+ (wchar_t*)
+ g_value_get_pointer(value));
+ }
+ }
+ if (values != NULL) {
+ _vte_matcher_free_params_array(matcher, values);
+ }
+ g_print(")\n");
+ i += l;
+ }
+ }
+ g_print("End of data.\n");
+
+ close (infile);
+
+ _vte_iso2022_state_free(subst);
+ g_array_free(array, TRUE);
+ _vte_termcap_free(termcap);
+ _vte_matcher_free(matcher);
+ return 0;
+}
diff --git a/vte/src/iso2022.c b/vte/src/iso2022.c
new file mode 100644
index 0000000..79a9e01
--- /dev/null
+++ b/vte/src/iso2022.c
@@ -0,0 +1,1831 @@
+/*
+ * Copyright (C) 2002,2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#include <sys/types.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <glib.h>
+#include "debug.h"
+#include "buffer.h"
+#include "iso2022.h"
+#include "matcher.h"
+#include "vteconv.h"
+#include "vtetree.h"
+
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+#include <glib/gi18n-lib.h>
+
+#include <gtk/gtk.h>
+
+#if GTK_CHECK_VERSION (2, 90, 7)
+#define GDK_KEY(symbol) GDK_KEY_##symbol
+#else
+#include <gdk/gdkkeysyms.h>
+#define GDK_KEY(symbol) GDK_##symbol
+#endif
+
+/* Maps which jive with XTerm's ESC ()*+ ? sequences, RFC 1468. Add the
+ * PC437 map because despite knowing that XTerm doesn't support it, certain
+ * applications try to use it anyway. */
+#define NARROW_MAPS "012AB4C5RQKYE6ZH7=" "J" "U"
+/* Maps which jive with RFC 1468's ESC $ ? sequences. */
+#define WIDE_MAPS "@B"
+/* Maps which jive with RFC 1557/1922/2237's ESC $ ()*+ ? sequences. */
+#define WIDE_GMAPS "C" "AGHIJKLM" "D"
+/* Fudge factor we add to wide map identifiers to keep them distinct. */
+#define WIDE_FUDGE 0x100000
+/* An invalid codepoint. */
+#define INVALID_CODEPOINT 0xFFFD
+
+struct _vte_iso2022_map16 {
+ guint16 from, to;
+};
+
+struct _vte_iso2022_map32 {
+ guint32 from, to;
+};
+
+struct _vte_iso2022_block {
+ enum {
+ _vte_iso2022_cdata,
+ _vte_iso2022_preserve,
+ _vte_iso2022_control
+ } type;
+ gulong start, end;
+};
+
+struct _vte_iso2022_state {
+ gboolean nrc_enabled;
+ int current, override;
+ gunichar g[4];
+ const gchar *codeset, *native_codeset, *utf8_codeset, *target_codeset;
+ gint ambiguous_width;
+ VteConv conv;
+ _vte_iso2022_codeset_changed_cb_fn codeset_changed;
+ gpointer codeset_changed_data;
+ VteBuffer *buffer;
+};
+
+/* DEC Special Character and Line Drawing Set. VT100 and higher (per XTerm
+ * docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_0[] = {
+ { 96, 0x25c6}, /* diamond */
+ {'a', 0x2592}, /* checkerboard */
+ {'b', 0x2409}, /* HT symbol */
+ {'c', 0x240c}, /* FF symbol */
+ {'d', 0x240d}, /* CR symbol */
+ {'e', 0x240a}, /* LF symbol */
+ {'f', 0x00b0}, /* degree */
+ {'g', 0x00b1}, /* plus/minus */
+ {'h', 0x2424}, /* NL symbol */
+ {'i', 0x240b}, /* VT symbol */
+ {'j', 0x2518}, /* downright corner */
+ {'k', 0x2510}, /* upright corner */
+ {'l', 0x250c}, /* upleft corner */
+ {'m', 0x2514}, /* downleft corner */
+ {'n', 0x253c}, /* cross */
+ {'o', 0x23ba}, /* scan line 1/9 */
+ {'p', 0x23bb}, /* scan line 3/9 */
+ {'q', 0x2500}, /* horizontal line (also scan line 5/9) */
+ {'r', 0x23bc}, /* scan line 7/9 */
+ {'s', 0x23bd}, /* scan line 9/9 */
+ {'t', 0x251c}, /* left t */
+ {'u', 0x2524}, /* right t */
+ {'v', 0x2534}, /* bottom t */
+ {'w', 0x252c}, /* top t */
+ {'x', 0x2502}, /* vertical line */
+ {'y', 0x2264}, /* <= */
+ {'z', 0x2265}, /* >= */
+ {'{', 0x03c0}, /* pi */
+ {'|', 0x2260}, /* not equal */
+ {'}', 0x00a3}, /* pound currency sign */
+ {'~', 0x00b7}, /* bullet */
+};
+/* United Kingdom. VT100 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_A[] = {
+ {'$', GDK_KEY (sterling)},
+};
+/* US-ASCII (no conversions). VT100 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_B[] = {
+ {0, 0},
+};
+/* Dutch. VT220 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_4[] = {
+ {'#', GDK_KEY (sterling)},
+ {'@', GDK_KEY (threequarters)},
+ {'[', GDK_KEY (ydiaeresis)},
+ {'\\', GDK_KEY (onehalf)},
+ {']', GDK_KEY (bar)}, /* FIXME? not in XTerm 170 */
+ {'{', GDK_KEY (diaeresis)},
+ {'|', 0x192}, /* f with hook (florin) */ /* FIXME? not in XTerm 170 */
+ {'}', GDK_KEY (onequarter)},
+ {'~', GDK_KEY (acute)}
+};
+/* Finnish. VT220 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_C[] = {
+ {'[', GDK_KEY (Adiaeresis)},
+ {'\\', GDK_KEY (Odiaeresis)},
+ {']', GDK_KEY (Aring)},
+ {'^', GDK_KEY (Udiaeresis)},
+ {'`', GDK_KEY (eacute)},
+ {'{', GDK_KEY (adiaeresis)},
+ {'|', GDK_KEY (odiaeresis)},
+ {'}', GDK_KEY (aring)},
+ {'~', GDK_KEY (udiaeresis)},
+};
+/* French. VT220 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_R[] = {
+ {'#', GDK_KEY (sterling)},
+ {'@', GDK_KEY (agrave)},
+ {'[', GDK_KEY (degree)},
+ {'\\', GDK_KEY (ccedilla)},
+ {']', GDK_KEY (section)},
+ {'{', GDK_KEY (eacute)},
+ {'|', GDK_KEY (ugrave)},
+ {'}', GDK_KEY (egrave)},
+ {'~', GDK_KEY (diaeresis)},
+};
+/* French Canadian. VT220 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_Q[] = {
+ {'@', GDK_KEY (agrave)},
+ {'[', GDK_KEY (acircumflex)},
+ {'\\', GDK_KEY (ccedilla)},
+ {']', GDK_KEY (ecircumflex)},
+ {'^', GDK_KEY (icircumflex)},
+ {'`', GDK_KEY (ocircumflex)},
+ {'{', GDK_KEY (eacute)},
+ {'|', GDK_KEY (ugrave)},
+ {'}', GDK_KEY (egrave)},
+ {'~', GDK_KEY (ucircumflex)},
+};
+/* German. VT220 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_K[] = {
+ {'@', GDK_KEY (section)},
+ {'[', GDK_KEY (Adiaeresis)},
+ {'\\', GDK_KEY (Odiaeresis)},
+ {']', GDK_KEY (Udiaeresis)},
+ {'{', GDK_KEY (adiaeresis)},
+ {'|', GDK_KEY (odiaeresis)},
+ {'}', GDK_KEY (udiaeresis)},
+ {'~', GDK_KEY (ssharp)},
+};
+/* Italian. VT220 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_Y[] = {
+ {'#', GDK_KEY (sterling)},
+ {'@', GDK_KEY (section)},
+ {'[', GDK_KEY (degree)},
+ {'\\', GDK_KEY (ccedilla)},
+ {']', GDK_KEY (eacute)},
+ {'`', GDK_KEY (ugrave)},
+ {'{', GDK_KEY (agrave)},
+ {'|', GDK_KEY (ograve)},
+ {'}', GDK_KEY (egrave)},
+ {'~', GDK_KEY (igrave)},
+};
+/* Norwegian and Danish. VT220 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_E[] = {
+ {'@', GDK_KEY (Adiaeresis)},
+ {'[', GDK_KEY (AE)},
+ {'\\', GDK_KEY (Ooblique)},
+ {']', GDK_KEY (Aring)},
+ {'^', GDK_KEY (Udiaeresis)},
+ {'`', GDK_KEY (adiaeresis)},
+ {'{', GDK_KEY (ae)},
+ {'|', GDK_KEY (oslash)},
+ {'}', GDK_KEY (aring)},
+ {'~', GDK_KEY (udiaeresis)},
+};
+/* Spanish. VT220 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_Z[] = {
+ {'#', GDK_KEY (sterling)},
+ {'@', GDK_KEY (section)},
+ {'[', GDK_KEY (exclamdown)},
+ {'\\', GDK_KEY (Ntilde)},
+ {']', GDK_KEY (questiondown)},
+ {'{', GDK_KEY (degree)},
+ {'|', GDK_KEY (ntilde)},
+ {'}', GDK_KEY (ccedilla)},
+};
+/* Swedish. VT220 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_H[] = {
+ {'@', GDK_KEY (Eacute)},
+ {'[', GDK_KEY (Adiaeresis)},
+ {'\\', GDK_KEY (Odiaeresis)},
+ {']', GDK_KEY (Aring)},
+ {'^', GDK_KEY (Udiaeresis)},
+ {'`', GDK_KEY (eacute)},
+ {'{', GDK_KEY (adiaeresis)},
+ {'|', GDK_KEY (odiaeresis)},
+ {'}', GDK_KEY (aring)},
+ {'~', GDK_KEY (udiaeresis)},
+};
+/* Swiss. VT220 and higher (per XTerm docs). */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_equal[] = {
+ {'#', GDK_KEY (ugrave)},
+ {'@', GDK_KEY (agrave)},
+ {'[', GDK_KEY (eacute)},
+ {'\\', GDK_KEY (ccedilla)},
+ {']', GDK_KEY (ecircumflex)},
+ {'^', GDK_KEY (icircumflex)},
+ {'_', GDK_KEY (egrave)},
+ {'`', GDK_KEY (ocircumflex)},
+ {'{', GDK_KEY (adiaeresis)},
+ {'|', GDK_KEY (odiaeresis)},
+ {'}', GDK_KEY (udiaeresis)},
+ {'~', GDK_KEY (ucircumflex)},
+};
+/* Codepage 437. */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_U[] = {
+#include "unitable.CP437"
+};
+
+/* Japanese. JIS X 0201-1976 ("Roman" set), per RFC 1468/2237. */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_J[] = {
+#include "unitable.JIS0201"
+};
+/* Japanese. JIS X 0208-1978, per RFC 1468/2237. */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_wide_at[] = {
+#include "unitable.JIS0208"
+};
+/* Chinese. GB 2312-80, per RFC 1922. */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_wide_A[] = {
+#include "unitable.GB2312"
+};
+/* Japanese. JIS X 0208-1983, per RFC 1468/2237. */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_wide_B[] = {
+#include "unitable.JIS0208"
+};
+/* Korean. KS X 1001 (formerly KS C 5601), per Ken Lunde's
+ * CJKV_Information_Processing. */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_wide_C[] = {
+#include "unitable.KSX1001"
+};
+/* Japanese. JIS X 0212-1990, per RFC 2237. */
+static const struct _vte_iso2022_map16 _vte_iso2022_map_wide_D[] = {
+#include "unitable.JIS0212"
+};
+/* Chinese. CNS 11643-plane-1, per RFC 1922. */
+static const struct _vte_iso2022_map32 _vte_iso2022_map_wide_G[] = {
+#include "unitable.CNS11643"
+};
+
+static gint
+_vte_direct_compare(gconstpointer a, gconstpointer b)
+{
+ return GPOINTER_TO_INT(a) - GPOINTER_TO_INT(b);
+}
+
+/* If we have the encoding, decide how wide an ambiguously-wide character is
+ * based on the encoding. This is basically what GNU libc does, and it agrees
+ * with my reading of Unicode UAX 11, so.... */
+static int
+_vte_iso2022_ambiguous_width(struct _vte_iso2022_state *state)
+{
+ const char wide_codelist[][10] = {
+ "big5",
+ "big5hkscs",
+ "euccn",
+ "eucjp",
+ "euckr",
+ "euctw",
+ "gb18030",
+ "gb2312",
+ "gbk",
+ "shiftjis",
+ "tcvn",
+ };
+ gsize i, j;
+ char codeset[16];
+
+ /* Catch weirdo cases. */
+ if ((state->codeset == NULL) || (state->codeset[0] == '\0')) {
+ return 1;
+ }
+
+ /* Sort-of canonify the encoding name. */
+ i = j = 0;
+ for (i = 0; state->codeset[i] != '\0'; i++) {
+ if (g_ascii_isalnum(state->codeset[i]))
+ codeset[j++] = g_ascii_tolower(state->codeset[i]);
+
+ if (j >= sizeof(codeset) - 1)
+ break;
+ }
+ codeset[j] = '\0';
+
+ /* Check for the name in the list. */
+ for (i = 0; i < G_N_ELEMENTS(wide_codelist); i++) {
+ if (strcmp(codeset, wide_codelist[i]) == 0) {
+ return 2;
+ }
+ }
+
+ /*
+ * Decide the ambiguous width according to user preference if
+ * current locale is UTF-8.
+ */
+ if (strcmp (codeset, "utf8") == 0) {
+ const char *env = g_getenv ("VTE_CJK_WIDTH");
+ if (env && (g_ascii_strcasecmp (env, "wide")==0 || g_ascii_strcasecmp (env, "1")==0))
+ return 2;
+ }
+
+ /* Not in the list => not wide. */
+ return 1;
+}
+
+static inline gboolean
+_vte_iso2022_is_ambiguous(gunichar c)
+{
+ if (G_LIKELY (c < 0x80))
+ return FALSE;
+ if (G_UNLIKELY (g_unichar_iszerowidth (c)))
+ return FALSE;
+ return G_UNLIKELY (!g_unichar_iswide (c) && g_unichar_iswide_cjk (c));
+}
+
+int
+_vte_iso2022_unichar_width(struct _vte_iso2022_state *state,
+ gunichar c)
+{
+ if (G_LIKELY (c < 0x80))
+ return 1;
+ if (G_UNLIKELY (g_unichar_iszerowidth (c)))
+ return 0;
+ if (G_UNLIKELY (g_unichar_iswide (c)))
+ return 2;
+ if (G_LIKELY (state->ambiguous_width == 1))
+ return 1;
+ if (G_UNLIKELY (g_unichar_iswide_cjk (c)))
+ return 2;
+ return 1;
+}
+
+static GHashTable *
+_vte_iso2022_map_init16(const struct _vte_iso2022_map16 *map, gssize length)
+{
+ GHashTable *ret;
+ int i;
+ if (length == 0) {
+ return NULL;
+ }
+ ret = g_hash_table_new(NULL, NULL);
+ for (i = 0; i < length; i++) {
+ g_hash_table_insert(ret,
+ GINT_TO_POINTER((unsigned int) map[i].from),
+ GINT_TO_POINTER((unsigned int) map[i].to));
+ }
+ return ret;
+}
+
+static GHashTable *
+_vte_iso2022_map_init32(const struct _vte_iso2022_map32 *map, gssize length)
+{
+ GHashTable *ret;
+ int i;
+ if (length == 0) {
+ return NULL;
+ }
+ ret = g_hash_table_new(NULL, NULL);
+ for (i = 0; i < length; i++) {
+ g_hash_table_insert(ret,
+ GINT_TO_POINTER((unsigned int) map[i].from),
+ GINT_TO_POINTER((unsigned int) map[i].to));
+ }
+ return ret;
+}
+
+static void
+_vte_iso2022_map_get(gunichar mapname,
+ GHashTable **_map, guint *bytes_per_char, guint *force_width,
+ gulong *or_mask, gulong *and_mask)
+{
+ static VteTree *maps = NULL;
+ gint bytes = 0, width = 0;
+ GHashTable *map = NULL;
+ gboolean new_map = FALSE;
+ gsize i;
+
+ if (or_mask) {
+ *or_mask = 0;
+ }
+ if (and_mask) {
+ *and_mask = (~(0));
+ }
+
+ /* Make sure we have a map, erm, map. */
+ if (maps == NULL) {
+ maps = _vte_tree_new(_vte_direct_compare);
+ }
+
+ /* Check for a cached map for this charset. */
+ map = _vte_tree_lookup(maps, GINT_TO_POINTER(mapname));
+ new_map = map == NULL;
+
+ /* Construct a new one. */
+ switch (mapname) {
+ case '0':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_0,
+ G_N_ELEMENTS(_vte_iso2022_map_0));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'A':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_A,
+ G_N_ELEMENTS(_vte_iso2022_map_A));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case '1': /* treated as an alias in xterm */
+ case '2': /* treated as an alias in xterm */
+ case 'B':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_B,
+ G_N_ELEMENTS(_vte_iso2022_map_B));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case '4':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_4,
+ G_N_ELEMENTS(_vte_iso2022_map_4));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'C':
+ case '5':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_C,
+ G_N_ELEMENTS(_vte_iso2022_map_C));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'R':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_R,
+ G_N_ELEMENTS(_vte_iso2022_map_R));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'Q':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_Q,
+ G_N_ELEMENTS(_vte_iso2022_map_Q));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'K':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_K,
+ G_N_ELEMENTS(_vte_iso2022_map_K));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'Y':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_Y,
+ G_N_ELEMENTS(_vte_iso2022_map_Y));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'E':
+ case '6':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_E,
+ G_N_ELEMENTS(_vte_iso2022_map_E));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'Z':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_Z,
+ G_N_ELEMENTS(_vte_iso2022_map_Z));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'H':
+ case '7':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_H,
+ G_N_ELEMENTS(_vte_iso2022_map_H));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case '=':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_equal,
+ G_N_ELEMENTS(_vte_iso2022_map_equal));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'U':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_U,
+ G_N_ELEMENTS(_vte_iso2022_map_U));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case 'J':
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_J,
+ G_N_ELEMENTS(_vte_iso2022_map_J));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ case '@' + WIDE_FUDGE:
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_wide_at,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_at));
+ }
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ *and_mask = 0xf7f7f;
+ break;
+ case 'A' + WIDE_FUDGE:
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_wide_A,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_A));
+ }
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ *and_mask = 0xf7f7f;
+ break;
+ case 'B' + WIDE_FUDGE:
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_wide_B,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_B));
+ }
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ *and_mask = 0xf7f7f;
+ break;
+ case 'C' + WIDE_FUDGE:
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_wide_C,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_C));
+ }
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ *and_mask = 0xf7f7f;
+ break;
+ case 'D' + WIDE_FUDGE:
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_wide_D,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_D));
+ }
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ *and_mask = 0xf7f7f;
+ break;
+ case 'G' + WIDE_FUDGE:
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init32(_vte_iso2022_map_wide_G,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_G));
+ }
+ /* Return the plane number as part of the "or" mask. */
+ g_assert(or_mask != NULL);
+ *or_mask = 0x10000;
+ *and_mask = 0xf7f7f;
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ break;
+ case 'H' + WIDE_FUDGE:
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init32(_vte_iso2022_map_wide_G,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_G));
+ }
+ /* Return the plane number as part of the "or" mask. */
+ g_assert(or_mask != NULL);
+ *or_mask = 0x20000;
+ *and_mask = 0xf7f7f;
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ break;
+ case 'I' + WIDE_FUDGE:
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init32(_vte_iso2022_map_wide_G,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_G));
+ }
+ /* Return the plane number as part of the "or" mask. */
+ g_assert(or_mask != NULL);
+ *or_mask = 0x30000;
+ *and_mask = 0xf7f7f;
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ break;
+ case 'J' + WIDE_FUDGE:
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init32(_vte_iso2022_map_wide_G,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_G));
+ }
+ /* Return the plane number as part of the "or" mask. */
+ g_assert(or_mask != NULL);
+ *or_mask = 0x40000;
+ *and_mask = 0xf7f7f;
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ break;
+ case 'K' + WIDE_FUDGE:
+ if (map == NULL) {
+ map = _vte_iso2022_map_init32(_vte_iso2022_map_wide_G,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_G));
+ }
+ /* Return the plane number as part of the "or" mask. */
+ g_assert(or_mask != NULL);
+ *or_mask = 0x50000;
+ *and_mask = 0xf7f7f;
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ break;
+ case 'L' + WIDE_FUDGE:
+ if (G_UNLIKELY (map == NULL)) {
+ map = _vte_iso2022_map_init32(_vte_iso2022_map_wide_G,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_G));
+ }
+ /* Return the plane number as part of the "or" mask. */
+ g_assert(or_mask != NULL);
+ *or_mask = 0x60000;
+ *and_mask = 0xf7f7f;
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ break;
+ case 'M' + WIDE_FUDGE:
+ if (G_UNLIKELY(map == NULL)) {
+ map = _vte_iso2022_map_init32(_vte_iso2022_map_wide_G,
+ G_N_ELEMENTS(_vte_iso2022_map_wide_G));
+ }
+ /* Return the plane number as part of the "or" mask. */
+ g_assert(or_mask != NULL);
+ *or_mask = 0x70000;
+ *and_mask = 0xf7f7f;
+ width = 2; /* CJKV expects 2 bytes -> 2 columns */
+ bytes = 2;
+ break;
+ default:
+ /* No such map. Set up a ISO-8859-1 to UCS-4 map. */
+ if (G_UNLIKELY (map == NULL)) {
+ struct _vte_iso2022_map16 _vte_iso2022_map_NUL[256];
+ for (i = 0; i < G_N_ELEMENTS(_vte_iso2022_map_NUL); i++) {
+ _vte_iso2022_map_NUL[i].from = (i & 0xff);
+ _vte_iso2022_map_NUL[i].to = (i & 0xff);
+ }
+ map = _vte_iso2022_map_init16(_vte_iso2022_map_NUL,
+ G_N_ELEMENTS(_vte_iso2022_map_NUL));
+ }
+ width = 1;
+ bytes = 1;
+ break;
+ }
+ /* Save the new map. */
+ if (G_UNLIKELY(new_map && map != NULL)) {
+ _vte_tree_insert(maps, GINT_TO_POINTER(mapname), map);
+ }
+ /* Return. */
+ if (_map) {
+ *_map = map;
+ }
+ if (bytes_per_char) {
+ *bytes_per_char = bytes;
+ }
+ if (force_width) {
+ *force_width = width;
+ }
+}
+
+int
+_vte_iso2022_get_encoded_width(gunichar c)
+{
+ int width;
+ width = (c & VTE_ISO2022_ENCODED_WIDTH_MASK) >> VTE_ISO2022_ENCODED_WIDTH_BIT_OFFSET;
+ return CLAMP(width, 0, 2);
+}
+
+static gunichar
+_vte_iso2022_set_encoded_width(gunichar c, int width)
+{
+ width = CLAMP(width, 0, 2);
+ c &= ~(VTE_ISO2022_ENCODED_WIDTH_MASK);
+ c |= (width << VTE_ISO2022_ENCODED_WIDTH_BIT_OFFSET);
+ return c;
+}
+
+struct _vte_iso2022_state *
+_vte_iso2022_state_new(const char *native_codeset,
+ _vte_iso2022_codeset_changed_cb_fn fn,
+ gpointer data)
+{
+ struct _vte_iso2022_state *state;
+ state = g_slice_new0(struct _vte_iso2022_state);
+ state->nrc_enabled = TRUE;
+ state->current = 0;
+ state->override = -1;
+ state->g[0] = 'B';
+ state->g[1] = 'B';
+ state->g[2] = 'B';
+ state->g[3] = 'B';
+ state->codeset = native_codeset;
+ state->native_codeset = state->codeset;
+ if (native_codeset == NULL) {
+ g_get_charset(&state->codeset);
+ state->native_codeset = state->codeset;
+ }
+ state->utf8_codeset = "UTF-8";
+ state->target_codeset = VTE_CONV_GUNICHAR_TYPE;
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "Native codeset \"%s\", currently %s\n",
+ state->native_codeset, state->codeset);
+ state->conv = _vte_conv_open(state->target_codeset, state->codeset);
+ state->codeset_changed = fn;
+ state->codeset_changed_data = data;
+ state->buffer = _vte_buffer_new();
+ if (state->conv == VTE_INVALID_CONV) {
+ g_warning(_("Unable to convert characters from %s to %s."),
+ state->codeset, state->target_codeset);
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "Using UTF-8 instead.\n");
+ state->codeset = state->utf8_codeset;
+ state->conv = _vte_conv_open(state->target_codeset,
+ state->codeset);
+ if (state->conv == VTE_INVALID_CONV) {
+ g_error(_("Unable to convert characters from %s to %s."),
+ state->codeset, state->target_codeset);
+ }
+ }
+ state->ambiguous_width = _vte_iso2022_ambiguous_width(state);
+ return state;
+}
+
+void
+_vte_iso2022_state_free(struct _vte_iso2022_state *state)
+{
+ _vte_buffer_free(state->buffer);
+ if (state->conv != VTE_INVALID_CONV) {
+ _vte_conv_close(state->conv);
+ }
+ g_slice_free(struct _vte_iso2022_state, state);
+}
+
+void
+_vte_iso2022_state_set_codeset(struct _vte_iso2022_state *state,
+ const char *codeset)
+{
+ VteConv conv;
+
+ g_return_if_fail(state != NULL);
+ g_return_if_fail(codeset != NULL);
+ g_return_if_fail(strlen(codeset) > 0);
+
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION, "%s\n", codeset);
+ conv = _vte_conv_open(state->target_codeset, codeset);
+ if (conv == VTE_INVALID_CONV) {
+ g_warning(_("Unable to convert characters from %s to %s."),
+ codeset, state->target_codeset);
+ return;
+ }
+ if (state->conv != VTE_INVALID_CONV) {
+ _vte_conv_close(state->conv);
+ }
+ state->codeset = g_intern_string (codeset);
+ state->conv = conv;
+ state->ambiguous_width = _vte_iso2022_ambiguous_width (state);
+}
+
+const char *
+_vte_iso2022_state_get_codeset(struct _vte_iso2022_state *state)
+{
+ return state->codeset;
+}
+
+static const guchar *
+_vte_iso2022_find_nextctl(const guchar *p, const guchar * const q)
+{
+ do {
+ switch (*p) {
+ case '\033':
+ case '\n':
+ case '\r':
+ case '\016':
+ case '\017':
+#ifdef VTE_ISO2022_8_BIT_CONTROLS
+ /* This breaks UTF-8 and other encodings which
+ * use the high bits.
+ */
+ case '0x8e':
+ case '0x8f':
+#endif
+ return p;
+ }
+ } while (++p < q);
+ return NULL;
+}
+
+static long
+_vte_iso2022_sequence_length(const unsigned char *nextctl, gsize length)
+{
+ long sequence_length = -1;
+ gsize i;
+
+ switch (nextctl[0]) {
+ case '\n':
+ case '\r':
+ case '\016':
+ case '\017':
+ /* LF */
+ /* CR */
+ /* SO */
+ /* SI */
+ sequence_length = 1;
+ break;
+ case 0x8e:
+ case 0x8f:
+ /* SS2 - 8bit */
+ /* SS3 - 8bit */
+ sequence_length = 1;
+ break;
+ case '\033':
+ if (length < 2) {
+ /* Inconclusive. */
+ sequence_length = 0;
+ } else {
+ switch (nextctl[1]) {
+ case '[':
+ /* ESC [, the CSI. The first letter
+ * is the end of the sequence, */
+ for (i = 2; i < length; i++) {
+ if (g_unichar_isalpha(nextctl[i])) {
+ break;
+ }
+ if ((nextctl[i] == '@') ||
+ (nextctl[i] == '`') ||
+ (nextctl[i] == '{') ||
+ (nextctl[i] == '|')) {
+ break;
+ }
+ }
+ if (i < length) {
+ /* Return the length of this
+ * sequence. */
+ sequence_length = i + 1;
+ } else {
+ /* Inconclusive. */
+ sequence_length = 0;
+ }
+ break;
+#if 0
+ case ']':
+ /* ESC ], the OSC. Search for a string
+ * terminator or a BEL. */
+ for (i = 2; i < q - nextctl - 1; i++) {
+ if ((nextctl[i] == '\033') &&
+ (nextctl[i + 1] == '\\')) {
+ break;
+ }
+ }
+ if (i < length - 1) {
+ /* Return the length of this
+ * sequence. */
+ sequence_length = i + 1;
+ } else {
+ for (i = 2; i < length; i++) {
+ if (nextctl[i] == '\007') {
+ break;
+ }
+ }
+ if (i < length) {
+ /* Return the length of
+ * this sequence. */
+ sequence_length = i + 1;
+ } else {
+ /* Inconclusive. */
+ sequence_length = 0;
+ }
+ }
+ break;
+#endif
+#if 0
+ case '^':
+ /* ESC ^, the PM. Search for a string
+ * terminator. */
+#endif
+ case 'P':
+ /* ESC P, the DCS. Search for a string
+ * terminator. */
+ for (i = 2; i < length - 1; i++) {
+ if ((nextctl[i] == '\033') &&
+ (nextctl[i + 1] == '\\')) {
+ break;
+ }
+ }
+ if (i < length - 1) {
+ /* Return the length of this
+ * sequence. */
+ sequence_length = i + 1;
+ } else {
+ /* Inconclusive. */
+ sequence_length = 0;
+ }
+ break;
+ case 'N':
+ case 'O':
+ case 'n':
+ case 'o':
+ /* ESC N */
+ /* ESC O */
+ /* ESC n */
+ /* ESC o */
+ sequence_length = 2;
+ break;
+ case '(':
+ case ')':
+ case '*':
+ case '+':
+ if (length < 3) {
+ /* Inconclusive. */
+ sequence_length = 0;
+ } else {
+ /* ESC ) x */
+ /* ESC ( x */
+ /* ESC * x */
+ /* ESC + x */
+ /* Just accept whatever. */
+ sequence_length = 3;
+ }
+ break;
+ case '%':
+ if (length < 3) {
+ /* Inconclusive. */
+ sequence_length = 0;
+ } else {
+ /* ESC % @ */
+ /* ESC % G */
+ switch (nextctl[2]) {
+ case '@':
+ case 'G':
+ sequence_length = 3;
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case '$':
+ if (length < 3) {
+ /* Inconclusive. */
+ sequence_length = 0;
+ } else {
+ switch (nextctl[2]) {
+ case '@':
+ case 'B':
+ /* ESC $ @ */
+ /* ESC $ B */
+ sequence_length = 3;
+ break;
+ case '(':
+ case ')':
+ case '*':
+ case '+':
+ /* ESC $ ( x */
+ /* ESC $ ) x */
+ /* ESC $ * x */
+ /* ESC $ + x */
+ if (length < 4) {
+ /* Inconclusive. */
+ sequence_length = 0;
+ } else {
+ /* strchr(WIDE_GMAPS, nextctl[3]) */
+ switch (nextctl[3]) {
+ case 'C':
+ case 'A':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'D':
+ sequence_length = 4;
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ }
+ return sequence_length;
+}
+
+static int
+process_8_bit_sequence(struct _vte_iso2022_state *state,
+ const guchar **inbuf, gsize *inbytes,
+ gunichar **outbuf, gsize *outbytes)
+{
+ guint i, width;
+ gpointer p;
+ gunichar c, *outptr;
+ const guchar *inptr;
+ gulong acc, or_mask, and_mask;
+ GHashTable *map;
+ guint bytes_per_char, force_width, current;
+
+ /* Check if it's an 8-bit escape. If it is, take a note of which map
+ * it's for, and if it isn't, fail. */
+ current = 0;
+ switch (**inbuf) {
+ case 0x8e:
+ current = 2;
+ break;
+ case 0x8f:
+ current = 3;
+ break;
+ default:
+ /* We processed 0 bytes, and we have no intention of looking
+ * at this byte again. */
+ return 0;
+ }
+
+ inptr = *inbuf;
+ outptr = *outbuf;
+
+ /* Find the map, and ensure that in addition to the escape byte, we
+ * have enough information to construct the character. */
+ _vte_iso2022_map_get(state->g[current],
+ &map, &bytes_per_char, &force_width,
+ &or_mask, &and_mask);
+ if (*inbytes < (bytes_per_char + 1)) {
+ /* We need more information to work with. */
+ return -1;
+ }
+
+ for (acc = 0, i = 0; i < bytes_per_char; i++) {
+ acc = (acc << 8) | ((guint8*)inptr)[i + 1];
+ }
+ *inbuf += (bytes_per_char + 1);
+ *inbytes -= (bytes_per_char + 1);
+
+ acc &= and_mask;
+ acc |= or_mask;
+ p = GINT_TO_POINTER(acc);
+ c = GPOINTER_TO_INT(g_hash_table_lookup(map, p));
+ if ((c == 0) && (acc != 0)) {
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "%04lx -(%c)-> %04lx(?)\n",
+ acc, state->g[current] & 0xff, acc);
+ } else {
+ width = 0;
+ if (force_width != 0) {
+ width = force_width;
+ } else {
+ if (G_UNLIKELY (_vte_iso2022_is_ambiguous(c))) {
+ width = state->ambiguous_width;
+ }
+ }
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "%05lx -> " "%04x\n", acc, c);
+ c = _vte_iso2022_set_encoded_width(c, width);
+ }
+ /* Save the unichar. */
+ g_assert(*outbytes >= sizeof(c));
+ *outbytes -= sizeof(c);
+ *outptr++ = c;
+ *outbuf = outptr;
+ /* Return the number of input bytes consumed. */
+ return bytes_per_char + 1;
+}
+
+static glong
+process_cdata(struct _vte_iso2022_state *state, const guchar *cdata, gsize length,
+ GArray *gunichars)
+{
+ int ambiguous_width;
+ glong processed = 0;
+ GHashTable *map;
+ guint bytes_per_char, force_width, current;
+ gsize converted;
+ const guchar *inbuf;
+ gunichar *outbuf, *buf;
+ gsize inbytes, outbytes;
+ guint i, j, width;
+ gulong acc, or_mask, and_mask;
+ gunichar c;
+ gboolean single, stop;
+
+ ambiguous_width = state->ambiguous_width;
+
+ single = (state->override != -1);
+ current = single ? state->override : state->current;
+ state->override = -1;
+ g_assert(current < G_N_ELEMENTS(state->g));
+
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "Current map = %d (%c).\n",
+ current, (state->g[current] & 0xff));
+
+ if (!state->nrc_enabled || (state->g[current] == 'B')) {
+ inbuf = cdata;
+ inbytes = length;
+ _vte_buffer_set_minimum_size(state->buffer,
+ sizeof(gunichar) * length * 2);
+ buf = (gunichar *)state->buffer->data;
+ outbuf = buf;
+ outbytes = sizeof(gunichar) * length * 2;
+ do {
+ converted = _vte_conv_cu(state->conv,
+ &inbuf, &inbytes,
+ &outbuf, &outbytes);
+ stop = FALSE;
+ switch (converted) {
+ case ((gsize)-1):
+ switch (errno) {
+ case EILSEQ:
+ /* Check if it's an 8-bit sequence. */
+ i = process_8_bit_sequence(state,
+ &inbuf,
+ &inbytes,
+ &outbuf,
+ &outbytes);
+ switch (i) {
+ case 0:
+ /* iconv() may be buggy,
+ * returning EILSEQ and
+ * no remaining bytes.
+ * Bug 567064 */
+ if (inbytes) {
+ /* Nope, munge the input. */
+ inbuf++;
+ inbytes--;
+ }
+ *outbuf++ = INVALID_CODEPOINT;
+ outbytes -= sizeof(gunichar);
+ break;
+ case -1:
+ /* Looks good so far, try again
+ * later. */
+ stop = TRUE;
+ break;
+ default:
+ /* Processed n bytes, just keep
+ * going. */
+ break;
+ }
+ break;
+ case EINVAL:
+ /* Incomplete. Save for later. */
+ stop = TRUE;
+ break;
+ case E2BIG:
+ /* Should never happen. */
+ g_assert_not_reached();
+ break;
+ default:
+ /* Should never happen. */
+ g_assert_not_reached();
+ break;
+ }
+ default:
+ break;
+ }
+ } while ((inbytes > 0) && !stop);
+
+ /* encode any ambiguous widths and skip blanks */
+ j = gunichars->len;
+ g_array_set_size(gunichars, gunichars->len + outbuf-buf);
+ for (i = 0; buf + i < outbuf; i++) {
+ c = buf[i];
+ if (G_UNLIKELY (c == '\0')) {
+ /* Skip the padding character. */
+ continue;
+ }
+ if (G_UNLIKELY (_vte_iso2022_is_ambiguous(c))) {
+ width = ambiguous_width;
+ c = _vte_iso2022_set_encoded_width(c, width);
+ }
+ g_array_index(gunichars, gunichar, j++) = c;
+ }
+ gunichars->len = j;
+
+ /* Done. */
+ processed = length - inbytes;
+ } else {
+ _vte_iso2022_map_get(state->g[current],
+ &map, &bytes_per_char, &force_width,
+ &or_mask, &and_mask);
+ i = 0;
+ acc = 0;
+ j = gunichars->len;
+ g_array_set_size(gunichars, gunichars->len + length);
+ do {
+ if (i < length) {
+ acc = (acc << 8) | cdata[i];
+ }
+ i++;
+ if ((i % bytes_per_char) == 0) {
+ acc &= and_mask;
+ acc |= or_mask;
+ c = GPOINTER_TO_INT(g_hash_table_lookup(map,
+ GINT_TO_POINTER(acc)));
+ if ((c == 0) && (acc != 0)) {
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "%04lx -(%c)-> "
+ "%04lx(?)\n",
+ acc,
+ state->g[current] & 0xff,
+ acc);
+ c = acc;
+ } else {
+ width = 0;
+ if (force_width != 0) {
+ width = force_width;
+ } else {
+ if (G_UNLIKELY (_vte_iso2022_is_ambiguous(c))) {
+ width = ambiguous_width;
+ }
+ }
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "%05lx -> "
+ "%04x\n", acc, c);
+ c = _vte_iso2022_set_encoded_width(c, width);
+ }
+ g_array_index(gunichars, gunichar, j++) = c;
+ if (single) {
+ break;
+ }
+ acc = 0;
+ }
+ } while (i < length);
+ processed = i;
+ gunichars->len = j;
+ }
+ return processed;
+}
+
+gunichar
+_vte_iso2022_process_single(struct _vte_iso2022_state *state,
+ gunichar c, gunichar map)
+{
+ GHashTable *hash;
+ gunichar ret = c;
+ gpointer p;
+ guint bytes_per_char, force_width;
+ gulong or_mask, and_mask;
+
+ _vte_iso2022_map_get(map,
+ &hash, &bytes_per_char, &force_width,
+ &or_mask, &and_mask);
+
+ p = GINT_TO_POINTER((c & and_mask) | or_mask);
+ if (hash != NULL) {
+ p = g_hash_table_lookup(hash, p);
+ }
+ if (p != NULL) {
+ ret = GPOINTER_TO_INT(p);
+ }
+ if (force_width) {
+ ret = _vte_iso2022_set_encoded_width(ret, force_width);
+ }
+ return ret;
+}
+
+static void
+process_control(struct _vte_iso2022_state *state, guchar *ctl, gsize length,
+ GArray *gunichars)
+{
+ gunichar c;
+ gsize i;
+ if (length >= 1) {
+ switch (ctl[0]) {
+ case '\r': /* CR */
+ c = '\r';
+ g_array_append_val(gunichars, c);
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION, "\tCR\n");
+ break;
+ case '\n': /* LF */
+ c = '\n';
+ g_array_append_val(gunichars, c);
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION, "\tLF\n");
+ break;
+ case '\016': /* SO */
+ state->current = 1;
+ state->override = -1;
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION, "\tSO (^N)\n");
+ break;
+ case '\017': /* SI */
+ state->current = 0;
+ state->override = -1;
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION, "\tSI (^O)\n");
+ break;
+ case 0x8e:
+ /* SS2 - 8bit */
+ state->override = 2;
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tSS2 (8-bit)\n");
+ break;
+ case 0x8f:
+ /* SS3 - 8bit */
+ state->override = 3;
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tSS3 (8-bit)\n");
+ break;
+ case '\033':
+ if (length >= 2) {
+ switch (ctl[1]) {
+ case '[': /* CSI */
+ case ']': /* OSC */
+ case '^': /* PM */
+ case 'P': /* DCS */
+ /* Pass it through. */
+ for (i = 0; i < length; i++) {
+ c = (guchar) ctl[i];
+ g_array_append_val(gunichars,
+ c);
+ }
+ _VTE_DEBUG_IF(VTE_DEBUG_SUBSTITUTION) {
+ g_printerr("\t");
+ for (i = 0; i < length; i++) {
+ c = (guchar) ctl[i];
+ g_printerr(
+ "(%s%c)",
+ c < 0x20 ?
+ "^" : "",
+ c < 0x20 ?
+ c : c + 64);
+ }
+ g_printerr("\n");
+ }
+ break;
+ case 'N': /* SS2 */
+ state->override = 2;
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tSS2\n");
+ break;
+ case 'O': /* SS3 */
+ state->override = 3;
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tSS3\n");
+ break;
+ case 'n': /* LS2 */
+ state->current = 2;
+ state->override = -1;
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tLS2\n");
+ break;
+ case 'o': /* LS3 */
+ state->current = 3;
+ state->override = -1;
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tLS3\n");
+ break;
+ case '(':
+ case ')':
+ case '*':
+ case '+':
+ if (length >= 3) {
+ int g = -1;
+ switch (ctl[1]) {
+ case '(':
+ g = 0;
+ break;
+ case ')':
+ g = 1;
+ break;
+ case '*':
+ g = 2;
+ break;
+ case '+':
+ g = 3;
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+ /* strchr(NARROW_MAPS, c) */
+ switch (ctl[2]) {
+ case '0':
+ case '1':
+ case '2':
+ case 'A':
+ case 'B':
+ case '4':
+ case 'C':
+ case '5':
+ case 'R':
+ case 'Q':
+ case 'K':
+ case 'Y':
+ case 'E':
+ case '6':
+ case 'Z':
+ case 'H':
+ case '7':
+ case '=':
+ case 'J':
+ case 'U':
+ state->g[g] = ctl[2];
+ break;
+
+ default:
+ g_warning(_("Attempt to set invalid NRC map '%c'."),
ctl[2]);
+ break;
+ }
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tG[%d] = %c.\n",
+ g, c);
+ }
+ break;
+ case '%':
+ if (length >= 3) {
+ gboolean notify = FALSE;
+ switch (ctl[2]) {
+ case '@':
+ if (strcmp(state->codeset, state->native_codeset) !=
0) {
+ notify = TRUE;
+ }
+ _vte_iso2022_state_set_codeset(state,
state->native_codeset);
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tNative encoding.\n");
+ break;
+ case 'G':
+ if (strcmp(state->codeset, state->utf8_codeset) != 0)
{
+ notify = TRUE;
+ }
+ _vte_iso2022_state_set_codeset(state,
state->utf8_codeset);
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tUTF-8 encoding.\n");
+ break;
+ default:
+ /* Application signalled an "identified coding
system" we haven't heard of. See ECMA-35 for gory details. */
+ g_warning(_("Unrecognized identified coding
system."));
+ break;
+ }
+ if (notify &&
+ state->codeset_changed) {
+ state->codeset_changed(state,
state->codeset_changed_data);
+ }
+ }
+ break;
+ case '$':
+ if (length >= 4) {
+ int g = -1;
+ c = 0;
+ switch (ctl[2]) {
+ case '@':
+ g = 0;
+ c = '@';
+ break;
+ case 'B':
+ g = 0;
+ c = 'B';
+ break;
+ case '(':
+ g = 0;
+ break;
+ case ')':
+ g = 1;
+ break;
+ case '*':
+ g = 2;
+ break;
+ case '+':
+ g = 3;
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+ if (c == 0) {
+ c = ctl[3];
+ }
+ /* strchr(WIDE_MAPS WIDE_GMAPS, c) */
+ switch (c) {
+ case '@':
+ case 'B':
+ case 'C':
+ case 'A':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'D':
+ state->g[g] = c + WIDE_FUDGE;
+ break;
+
+ default:
+ g_warning(_("Attempt to set invalid wide NRC map
'%c'."), c);
+ break;
+ }
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tG[%d] = wide %c.\n",
+ g, c);
+ } else
+ if (length >= 3) {
+ switch (ctl[2]) {
+ case '@':
+ c = '@';
+ break;
+ case 'B':
+ c = 'B';
+ break;
+ default:
+ c = ctl[2];
+ break;
+ }
+ /* strchr(WIDE_MAPS, c) */
+ switch (c){
+ case '@':
+ case 'B':
+ state->g[0] = c + WIDE_FUDGE;
+ break;
+
+ default:
+ g_warning(_("Attempt to set invalid wide NRC map
'%c'."), c);
+ }
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "\tG[0] = wide %c.\n",
+ c);
+ }
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+ break;
+ }
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+ }
+}
+
+static guint
+process_block (struct _vte_iso2022_state *state,
+ guchar *input,
+ struct _vte_iso2022_block *block,
+ gboolean last,
+ GArray *gunichars)
+{
+ guint preserve_last = -1;
+ guint initial;
+
+ switch (block->type) {
+ case _vte_iso2022_cdata:
+ _VTE_DEBUG_IF(VTE_DEBUG_SUBSTITUTION) {
+ guint j;
+ g_printerr("%3ld %3ld CDATA \"%.*s\"",
+ block->start, block->end,
+ (int) (block->end - block->start),
+ input + block->start);
+ g_printerr(" (");
+ for (j = block->start; j < block->end; j++) {
+ if (j > block->start) {
+ g_printerr(", ");
+ }
+ g_printerr("0x%02x",
+ input[j]);
+ }
+ g_printerr(")\n");
+ }
+ initial = 0;
+ while (initial < block->end - block->start) {
+ int j;
+ j = process_cdata(state,
+ input +
+ block->start +
+ initial,
+ block->end -
+ block->start -
+ initial,
+ gunichars);
+ if (j == 0) {
+ break;
+ }
+ initial += j;
+ }
+ if (initial < block->end - block->start && last) {
+ preserve_last = block->start + initial;
+ }
+ break;
+ case _vte_iso2022_control:
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "%3ld %3ld CONTROL ",
+ block->start, block->end);
+ process_control(state,
+ input + block->start,
+ block->end - block->start,
+ gunichars);
+ break;
+ case _vte_iso2022_preserve:
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "%3ld %3ld PRESERVE\n",
+ block->start, block->end);
+ preserve_last = block->start;
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+
+ return preserve_last;
+}
+
+gsize
+_vte_iso2022_process(struct _vte_iso2022_state *state,
+ guchar *input, gsize length,
+ GArray *gunichars)
+{
+ struct _vte_iso2022_block block;
+ guint preserve_last = -1;
+ const guchar *nextctl, *p, *q;
+ glong sequence_length = 0;
+
+ p = input;
+ q = input + length;
+ do {
+ nextctl = _vte_iso2022_find_nextctl(p, q);
+ if (nextctl == NULL) {
+ /* It's all garden-variety data. */
+ block.type = _vte_iso2022_cdata;
+ block.start = p - input;
+ block.end = q - input;
+ preserve_last = process_block (state,
+ input, &block,
+ TRUE,
+ gunichars);
+ break;
+ }
+ /* We got some garden-variety data. */
+ if (nextctl != p) {
+ block.type = _vte_iso2022_cdata;
+ block.start = p - input;
+ block.end = nextctl - input;
+ process_block (state, input, &block, FALSE, gunichars);
+ }
+ /* Move on to the control data. */
+ p = nextctl;
+ sequence_length = _vte_iso2022_sequence_length(nextctl,
+ q - nextctl);
+ switch (sequence_length) {
+ case -1:
+ /* It's just garden-variety data. */
+ block.type = _vte_iso2022_cdata;
+ block.start = p - input;
+ block.end = nextctl + 1 - input;
+ /* Continue at the next byte. */
+ p = nextctl + 1;
+ break;
+ case 0:
+ /* Inconclusive. Save this data and try again later. */
+ block.type = _vte_iso2022_preserve;
+ block.start = nextctl - input;
+ block.end = q - input;
+ /* Trigger an end-of-loop. */
+ p = q;
+ break;
+ default:
+ /* It's a control sequence. */
+ block.type = _vte_iso2022_control;
+ block.start = nextctl - input;
+ block.end = nextctl + sequence_length - input;
+ /* Continue after the sequence. */
+ p = nextctl + sequence_length;
+ break;
+ }
+ preserve_last = process_block (state,
+ input, &block,
+ FALSE,
+ gunichars);
+ } while (p < q);
+ if (preserve_last != (guint) -1) {
+ length = preserve_last;
+ }
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "Consuming %ld bytes.\n", (long) length);
+ return length;
+}
+
+#ifdef ISO2022_MAIN
+#include <stdio.h>
+int
+main(int argc, char **argv)
+{
+ VteBuffer *buffer;
+ struct _vte_iso2022_state *state;
+ GString *string;
+ GArray *gunichars;
+ struct {
+ const char *s;
+ gboolean process;
+ } strings[] = {
+ {"abcd\033$(Cefgh\ri\nj\033)0k\017lmn\033Nopqrst\033%G", TRUE},
+ {"ABCD\033$(C\033)", TRUE},
+ {"0", TRUE},
+ {"\014\033[33;41m", TRUE},
+ {"\015", TRUE},
+ {"\014{|}\015\r\n", TRUE},
+ {"\033(B\033)0\033*B\033+B", TRUE},
+ {"\033$B$+$J4A;z\033(J~", TRUE},
+ {"\033(B\033)0\033*B\033+B", TRUE},
+ {"\033$)C\0161hD!\017", TRUE},
+ {"\033$*C\033N1hD!", TRUE},
+ {"\033$(G\043\071", TRUE},
+ {"\033(B\033)0\033*B\033+B", TRUE},
+ {"\r\n", TRUE},
+ };
+ guint i;
+ FILE *fp;
+ guchar b;
+
+ state = _vte_iso2022_state_new(NULL, NULL, NULL);
+ buffer = _vte_buffer_new();
+ gunichars = g_array_new(FALSE, FALSE, sizeof(gunichar));
+ if (argc > 1) {
+ string = g_string_new(NULL);
+ for (i = 1; i < (guint) argc; i++) {
+ if (strcmp(argv[i], "-") == 0) {
+ fp = stdin;
+ } else {
+ fp = fopen(argv[i], "r");
+ }
+ while (fread(&b, sizeof(guchar), 1, fp) == sizeof(b)) {
+ g_string_append_c(string, b);
+ }
+ if (fp != stdin) {
+ fclose(fp);
+ }
+ }
+ _vte_buffer_append(buffer, string->str, string->len);
+ _vte_iso2022_process(state, buffer->data, _vte_buffer_length (buffer), gunichars);
+ g_string_free(string, TRUE);
+ } else {
+ for (i = 0; i < G_N_ELEMENTS(strings); i++) {
+ string = g_string_new(strings[i].s);
+ _vte_buffer_append(buffer, string->str, string->len);
+ g_string_free(string, TRUE);
+ if (strings[i].process) {
+ _vte_iso2022_process(state, buffer->data, _vte_buffer_length (buffer),
gunichars);
+ }
+ }
+ }
+ _vte_buffer_free(buffer);
+ _vte_iso2022_state_free(state);
+
+ string = g_string_new(NULL);
+ for (i = 0; i < gunichars->len; i++) {
+ g_string_append_unichar(string,
+ g_array_index(gunichars, gunichar, i));
+ }
+ (void) write(STDOUT_FILENO, string->str, string->len);
+ g_string_free(string, TRUE);
+
+ return 0;
+}
+#endif
diff --git a/vte/src/iso2022.h b/vte/src/iso2022.h
new file mode 100644
index 0000000..cb54f81
--- /dev/null
+++ b/vte/src/iso2022.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_iso2022_h_included
+#define vte_iso2022_h_included
+
+
+#include <glib.h>
+#include <glib-object.h>
+#include "buffer.h"
+#include "matcher.h"
+
+G_BEGIN_DECLS
+
+struct _vte_iso2022_state;
+typedef void (*_vte_iso2022_codeset_changed_cb_fn)(struct _vte_iso2022_state *,
+ gpointer);
+struct _vte_iso2022_state *_vte_iso2022_state_new(const char *native_codeset,
+ _vte_iso2022_codeset_changed_cb_fn,
+ gpointer);
+void _vte_iso2022_state_set_codeset(struct _vte_iso2022_state *state,
+ const char *codeset);
+const char *_vte_iso2022_state_get_codeset(struct _vte_iso2022_state *state);
+gsize _vte_iso2022_process(struct _vte_iso2022_state *state,
+ guchar *input, gsize length,
+ GArray *gunichars);
+gunichar _vte_iso2022_process_single(struct _vte_iso2022_state *state,
+ gunichar c, gunichar map);
+void _vte_iso2022_state_free(struct _vte_iso2022_state *);
+
+
+#define VTE_ISO2022_ENCODED_WIDTH_BIT_OFFSET 28
+#define VTE_ISO2022_ENCODED_WIDTH_MASK (3 << VTE_ISO2022_ENCODED_WIDTH_BIT_OFFSET)
+#define VTE_ISO2022_HAS_ENCODED_WIDTH(__c) (((__c) & VTE_ISO2022_ENCODED_WIDTH_MASK) != 0)
+int _vte_iso2022_get_encoded_width(gunichar c);
+int _vte_iso2022_unichar_width(struct _vte_iso2022_state *state,
+ gunichar c);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/iso2022.txt b/vte/src/iso2022.txt
new file mode 100644
index 0000000..80ac6ed
--- /dev/null
+++ b/vte/src/iso2022.txt
@@ -0,0 +1,33 @@
+#
+# Sample text using terminal national character set suppport.
+#
+General format: [ISO-2022] [UTF-8]
+
+#
+# Sample text from Ken Lunde's [4mCJKV Information Processing[m.
+#
+ISO-2022-JP/156: [$B$+$J4A;z(B] [かな漢字]
+ISO-2022-KR/158: [$)C1hD!)B] [김치]
+
+#
+# Sample text based on XTerm's specs and random other docs.
+#
+US-ASCII: [(B#$@[\]^_{|}~(B] [#$@[\]^_{|}~]
+Graphics: [(0abcdefghijklmnopqrstuvwxyz_{|}~(B]
+ [▒␉␌␍␊°±␋┘┐┌└┼⎺⎻─⎼⎽├┤┴┬│≤≥_π≠£·]
+British: [(A#$@[\]^_{|}~(B] [#£@[\]^_{|}~]
+Dutch: [(4#$@[\]^_{|}~(B] [£$¾ÿ½|^_¨f¼´]
+Finnish: [(C#$@[\]^_{|}~(B] [#$@ÄÖÅÜ_äöåü]
+French: [(R#$@[\]^_{|}~(B] [£$à°ç§^_éùè¨]
+French Canadian: [(Q#$@[\]^_{|}~(B] [#$àâçêî_éùèû]
+German: [(K#$@[\]^_{|}~(B] [#$§ÄÖÜ^_äöüß]
+Italian: [(Y#$@[\]^_{|}~(B] [£$§°çé^_àòèì]
+Norwegian/Danish: [(E#$@[\]^_{|}~(B] [#$ÄÆØÅÜ_æøåü]
+Spanish: [(Z#$@[\]^_{|}~(B] [£$§¡Ñ¿^_°ñç~]
+Swedish: [(H#$@[\]^_{|}~(B] [#$ÉÄÖÅÜ_äöåü]
+Swiss: [(=#$@[\]^_{|}~(B] [ù$àéçêîèäöüû]
+
+ISO-2022-JP: [(J~\(B~\] [¥‾~\]
+ISO-2022-KR: [$)C>o^-] [억嚬]
+ISO-2022-CN(1): [$)G&*&4] [⑩⑽]
+ISO-2022-CN(2): [$*HN$&N5~] [怀梩]
diff --git a/vte/src/keymap.c b/vte/src/keymap.c
new file mode 100644
index 0000000..9a21669
--- /dev/null
+++ b/vte/src/keymap.c
@@ -0,0 +1,1455 @@
+/*
+ * Copyright (C) 2002,2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <glib.h>
+#include <gtk/gtk.h>
+#include "caps.h"
+#include "debug.h"
+#include "keymap.h"
+#include "vtetc.h"
+
+#if GTK_CHECK_VERSION (2, 90, 7)
+#define GDK_KEY(symbol) GDK_KEY_##symbol
+#else
+#include <gdk/gdkkeysyms.h>
+#define GDK_KEY(symbol) GDK_##symbol
+#endif
+
+#if defined(HAVE_NCURSES_H) && defined(HAVE_TERM_H)
+#include <ncurses.h>
+#include <term.h>
+#define VTE_TERMCAP_NAME "ncurses"
+#elif defined(HAVE_NCURSES_CURSES_H) && defined(HAVE_NCURSES_TERM_H)
+#include <ncurses/curses.h>
+#include <ncurses/term.h>
+#define VTE_TERMCAP_NAME "ncurses"
+#elif defined(HAVE_CURSES_H) && defined(HAVE_TERM_H)
+#include <curses.h>
+#include <term.h>
+#define VTE_TERMCAP_NAME "curses"
+#elif defined(HAVE_TERMCAP_H)
+#include <termcap.h>
+#define VTE_TERMCAP_NAME "termcap"
+#else
+#error No termcap??
+#endif
+
+#ifdef VTE_DEBUG
+static const char *
+_vte_keysym_name(guint keyval)
+{
+ switch (keyval) {
+#include "keysyms.c"
+ default:
+ break;
+ }
+ return "(unknown)";
+}
+static void
+_vte_keysym_print(guint keyval,
+ GdkModifierType modifiers,
+ gboolean sun_mode,
+ gboolean hp_mode,
+ gboolean legacy_mode,
+ gboolean vt220_mode)
+{
+ g_printerr("Mapping ");
+ if (modifiers & GDK_CONTROL_MASK) {
+ g_printerr("Control+");
+ }
+ if (modifiers & VTE_META_MASK) {
+ g_printerr("Meta+");
+ }
+ if (modifiers & VTE_NUMLOCK_MASK) {
+ g_printerr("NumLock+");
+ }
+ if (modifiers & GDK_SHIFT_MASK) {
+ g_printerr("Shift+");
+ }
+ g_printerr("%s" , _vte_keysym_name(keyval));
+ if (sun_mode|hp_mode|legacy_mode|vt220_mode) {
+ gboolean first = TRUE;
+ g_printerr("(");
+ if (sun_mode) {
+ if (!first) {
+ g_printerr(",");
+ }
+ first = FALSE;
+ g_printerr("Sun");
+ }
+ if (hp_mode) {
+ if (!first) {
+ g_printerr(",");
+ }
+ first = FALSE;
+ g_printerr("HP");
+ }
+ if (legacy_mode) {
+ if (!first) {
+ g_printerr(",");
+ }
+ first = FALSE;
+ g_printerr("Legacy");
+ }
+ if (vt220_mode) {
+ if (!first) {
+ g_printerr(",");
+ }
+ first = FALSE;
+ g_printerr("VT220");
+ }
+ g_printerr(")");
+ }
+}
+#else
+static void
+_vte_keysym_print(guint keyval,
+ GdkModifierType modifiers,
+ gboolean sun_mode,
+ gboolean hp_mode,
+ gboolean legacy_mode,
+ gboolean vt220_mode)
+{
+}
+#endif
+
+enum _vte_cursor_mode {
+ cursor_default = 1 << 0,
+ cursor_app = 1 << 1
+};
+
+enum _vte_keypad_mode {
+ keypad_default = 1 << 0,
+ keypad_app = 1 << 1
+};
+
+enum _vte_fkey_mode {
+ fkey_default = 1 << 0,
+ fkey_sun = 1 << 1,
+ fkey_hp = 1 << 2,
+ fkey_legacy = 1 << 3,
+ fkey_vt220 = 1 << 4
+};
+
+#define cursor_all (cursor_default | cursor_app)
+#define keypad_all (keypad_default | keypad_app)
+#define fkey_all (fkey_default | fkey_sun | fkey_hp | fkey_legacy | fkey_vt220)
+#define fkey_notvt220 (fkey_default | fkey_sun | fkey_hp | fkey_legacy)
+#define fkey_notsun (fkey_default | fkey_hp | fkey_legacy | fkey_vt220)
+#define fkey_nothp (fkey_default | fkey_sun | fkey_legacy | fkey_vt220)
+#define fkey_notsunvt (fkey_default | fkey_hp | fkey_legacy)
+#define fkey_notsunhp (fkey_default | fkey_legacy | fkey_vt220)
+#define fkey_nothpvt (fkey_default | fkey_sun | fkey_legacy)
+
+struct _vte_keymap_entry {
+ enum _vte_cursor_mode cursor_mode;
+ enum _vte_keypad_mode keypad_mode;
+ enum _vte_fkey_mode fkey_mode;
+ GdkModifierType mod_mask;
+ const char normal[8];
+ gssize normal_length;
+ const char special[4];
+};
+
+#define X_NULL ""
+
+/* Normal keys unaffected by modes. */
+static const struct _vte_keymap_entry _vte_keymap_GDK_space[] = {
+ /* Meta+space = ESC+" " */
+ {cursor_all, keypad_all, fkey_all,
+ VTE_META_MASK, _VTE_CAP_ESC " ", 2, X_NULL},
+ /* Control+space = NUL */
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\0", 1, X_NULL},
+ /* Regular space. */
+ {cursor_all, keypad_all, fkey_all, 0, " ", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_Tab[] = {
+ /* Shift+Tab = Back-Tab */
+ {cursor_all, keypad_all, fkey_all,
+ GDK_SHIFT_MASK, X_NULL, 0, "kB"},
+ {cursor_all, keypad_all, fkey_all,
+ GDK_SHIFT_MASK, _VTE_CAP_CSI "Z", -1, X_NULL},
+ /* Alt+Tab = Esc+Tab */
+ {cursor_all, keypad_all, fkey_all,
+ VTE_META_MASK, _VTE_CAP_ESC "\t", -1, X_NULL},
+ /* Regular tab. */
+ {cursor_all, keypad_all, fkey_all,
+ 0, X_NULL, 0, "ta"},
+ {cursor_all, keypad_all, fkey_all, 0, "\t", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_Return[] = {
+ {cursor_all, keypad_all, fkey_all,
+ VTE_META_MASK, _VTE_CAP_ESC "\n", 2, X_NULL},
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\n", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, "\r", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_Escape[] = {
+ {cursor_all, keypad_all, fkey_all,
+ VTE_META_MASK, _VTE_CAP_ESC _VTE_CAP_ESC, 2, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, _VTE_CAP_ESC, 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_Insert[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "kI"},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "Q", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "2z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_notsunhp, 0, _VTE_CAP_CSI "2~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_ISO_Left_Tab[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "kB"},
+ {cursor_all, keypad_all, fkey_all, 0, _VTE_CAP_CSI "Z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_slash[] = {
+ {cursor_all, keypad_all, fkey_all,
+ VTE_META_MASK, _VTE_CAP_ESC "/", 2, X_NULL},
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\037", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, "/", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_question[] = {
+ {cursor_all, keypad_all, fkey_all,
+ VTE_META_MASK, _VTE_CAP_ESC "?", 2, X_NULL},
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\177", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, "?", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+/* Various numeric keys enter control characters. */
+static const struct _vte_keymap_entry _vte_keymap_GDK_2[] = {
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\0", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+static const struct _vte_keymap_entry _vte_keymap_GDK_3[] = {
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\033", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+static const struct _vte_keymap_entry _vte_keymap_GDK_4[] = {
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\034", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+static const struct _vte_keymap_entry _vte_keymap_GDK_5[] = {
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\035", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+static const struct _vte_keymap_entry _vte_keymap_GDK_6[] = {
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\036", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+static const struct _vte_keymap_entry _vte_keymap_GDK_7[] = {
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\037", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+static const struct _vte_keymap_entry _vte_keymap_GDK_8[] = {
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\177", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+static const struct _vte_keymap_entry _vte_keymap_GDK_Minus[] = {
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\037", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+/* Home and End are strange cases because their sequences vary wildly from
+ * system to system, or mine's just broken. But anyway. */
+static const struct _vte_keymap_entry _vte_keymap_GDK_Home[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "kh"},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "1~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "h", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_nothpvt, 0, X_NULL, 0, "kh"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_End[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "@7"},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "4~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "@7"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_Page_Up[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "kP"},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "T", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_notsunhp, 0, _VTE_CAP_CSI "5~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "5z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_Page_Down[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "kN"},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "S", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_notsunhp, 0, _VTE_CAP_CSI "6~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "6z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+/* Keys affected by the cursor key mode. */
+static const struct _vte_keymap_entry _vte_keymap_GDK_Up[] = {
+ {cursor_default, keypad_all, fkey_all, 0, X_NULL, 0, "ku"},
+ {cursor_default, keypad_all, fkey_nothp, 0, _VTE_CAP_CSI "A", -1, X_NULL},
+ {cursor_default, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "A", -1, X_NULL},
+ {cursor_app, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "A", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_Down[] = {
+ {cursor_default, keypad_all, fkey_all, 0, X_NULL, 0, "kd"},
+ {cursor_default, keypad_all, fkey_nothp, 0, _VTE_CAP_CSI "B", -1, X_NULL},
+ {cursor_default, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "B", -1, X_NULL},
+ {cursor_app, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "B", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_Right[] = {
+ {cursor_default, keypad_all, fkey_all, 0, X_NULL, 0, "kr"},
+ {cursor_default, keypad_all, fkey_nothp, 0, _VTE_CAP_CSI "C", -1, X_NULL},
+ {cursor_default, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "C", -1, X_NULL},
+ {cursor_app, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "C", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_Left[] = {
+ {cursor_default, keypad_all, fkey_all, 0, X_NULL, 0, "kl"},
+ {cursor_default, keypad_all, fkey_nothp, 0, _VTE_CAP_CSI "D", -1, X_NULL},
+ {cursor_default, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "D", -1, X_NULL},
+ {cursor_app, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "D", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+/* Keys (potentially) affected by the keypad key mode. */
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Space[] = {
+ {cursor_all, keypad_default, fkey_all, 0, " ", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, 0, _VTE_CAP_SS3 " ", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Tab[] = {
+ {cursor_all, keypad_default, fkey_all, 0, "\t", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, 0, _VTE_CAP_SS3 "I", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Enter[] = {
+ {cursor_all, keypad_default, fkey_all, 0, X_NULL, 0, "@8"},
+ {cursor_all, keypad_app, fkey_all, VTE_NUMLOCK_MASK | GDK_CONTROL_MASK, "\n", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, VTE_NUMLOCK_MASK, "\r", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, 0, _VTE_CAP_SS3 "M", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, GDK_CONTROL_MASK, "\n", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, "\r", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_F1[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "k1"},
+ {cursor_all, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "P", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_F2[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "k2"},
+ {cursor_all, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "Q", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_F3[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "k3"},
+ {cursor_all, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "R", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_F4[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "k4"},
+ {cursor_all, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "S", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Multiply[] = {
+ {cursor_all, keypad_default, fkey_all, 0, "*", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, VTE_NUMLOCK_MASK, "*", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, 0, _VTE_CAP_SS3 "j", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Add[] = {
+ {cursor_all, keypad_default, fkey_notvt220, 0, "+", 1, X_NULL},
+ {cursor_all, keypad_default, fkey_vt220, 0, ",", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_notvt220, VTE_NUMLOCK_MASK, "+", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_vt220, VTE_NUMLOCK_MASK, ",", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_notvt220, 0, _VTE_CAP_SS3 "k", -1, X_NULL},
+ {cursor_all, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "l", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Separator[] = {
+ {cursor_all, keypad_default, fkey_all, 0, ",", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, 0, _VTE_CAP_SS3 "l", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Subtract[] = {
+ {cursor_all, keypad_default, fkey_all, 0, "-", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, VTE_NUMLOCK_MASK, "-", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, 0, _VTE_CAP_SS3 "m", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Decimal_Delete[] = {
+ {cursor_all, keypad_default, fkey_default, 0, ".", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_notsun, 0, _VTE_CAP_SS3 "3~", -1, X_NULL},
+ {cursor_all, keypad_app, fkey_sun, 0, _VTE_CAP_SS3 "3~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Divide[] = {
+ {cursor_all, keypad_default, fkey_all, 0, "/", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, VTE_NUMLOCK_MASK, "/", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_all, 0, _VTE_CAP_SS3 "o", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+/* GDK already separates keypad "0" from keypad "Insert", so the only time
+ * we'll see this key is when NumLock is on, and that means that we're in
+ * "default" mode. */
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_0[] = {
+ {cursor_all, keypad_all, fkey_all, 0, "0", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_1[] = {
+ {cursor_all, keypad_all, fkey_all, 0, "1", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_2[] = {
+ {cursor_all, keypad_all, fkey_all, 0, "2", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_3[] = {
+ {cursor_all, keypad_all, fkey_all, 0, "3", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_4[] = {
+ {cursor_all, keypad_all, fkey_all, 0, "4", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_5[] = {
+ {cursor_all, keypad_all, fkey_all, 0, "5", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_6[] = {
+ {cursor_all, keypad_all, fkey_all, 0, "6", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_7[] = {
+ {cursor_all, keypad_all, fkey_all, 0, "7", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_8[] = {
+ {cursor_all, keypad_all, fkey_all, 0, "8", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_9[] = {
+ {cursor_all, keypad_all, fkey_all, 0, "9", 1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+/* These are the same keys as above, but without numlock. If there's a
+ * capability associated with the key, then we send that, unless we're in
+ * application mode. */
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Insert[] = {
+ {cursor_all, keypad_default, fkey_notsunvt,
+ 0, _VTE_CAP_CSI "2~", -1, X_NULL},
+ {cursor_all, keypad_default, fkey_sun, 0, _VTE_CAP_CSI "2z", -1, X_NULL},
+ {cursor_all, keypad_default, fkey_vt220, 0, "0", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_notvt220, 0, _VTE_CAP_CSI "2~", -1, X_NULL},
+ {cursor_all, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "p", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_End[] = {
+ {cursor_all, keypad_default, fkey_all, 0, X_NULL, 0, "K4"},
+ {cursor_all, keypad_default, fkey_notvt220,
+ 0, _VTE_CAP_CSI "4~", -1, X_NULL},
+ {cursor_all, keypad_default, fkey_vt220, 0, "1", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_notvt220, 0, _VTE_CAP_CSI "4~", -1, X_NULL},
+ {cursor_all, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "q", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Down[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "kd"},
+ {cursor_app, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "B", -1, X_NULL},
+ {cursor_default, keypad_all, fkey_notvt220,
+ 0, _VTE_CAP_CSI "B", -1, X_NULL},
+ {cursor_default, keypad_default, fkey_vt220, 0, "2", 1, X_NULL},
+ {cursor_default, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "r", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Page_Down[] = {
+ {cursor_all, keypad_default, fkey_all, 0, X_NULL, 0, "K5"},
+ {cursor_all, keypad_default, fkey_notsunvt,
+ 0, _VTE_CAP_CSI "6~", -1, X_NULL},
+ {cursor_all, keypad_default, fkey_sun, 0, _VTE_CAP_CSI "6z", -1, X_NULL},
+ {cursor_all, keypad_default, fkey_vt220, 0, "3", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_notvt220, 0, _VTE_CAP_CSI "6~", -1, X_NULL},
+ {cursor_all, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "s", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Left[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "kl"},
+ {cursor_app, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "D", -1, X_NULL},
+ {cursor_default, keypad_all, fkey_notvt220,
+ 0, _VTE_CAP_CSI "D", -1, X_NULL},
+ {cursor_default, keypad_default, fkey_vt220, 0, "4", 1, X_NULL},
+ {cursor_default, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "t", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Begin[] = {
+ {cursor_all, keypad_default, fkey_all, 0, X_NULL, 0, "K2"},
+ {cursor_all, keypad_default, fkey_notvt220,
+ 0, _VTE_CAP_CSI "E", -1, X_NULL},
+ {cursor_all, keypad_default, fkey_vt220, 0, "5", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_notvt220, 0, _VTE_CAP_CSI "E", -1, X_NULL},
+ {cursor_all, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "u", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Right[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "kr"},
+ {cursor_app, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "C", -1, X_NULL},
+ {cursor_default, keypad_all, fkey_notvt220,
+ 0, _VTE_CAP_CSI "C", -1, X_NULL},
+ {cursor_default, keypad_default, fkey_vt220, 0, "6", 1, X_NULL},
+ {cursor_default, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "v", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Home[] = {
+ {cursor_all, keypad_default, fkey_all, 0, X_NULL, 0, "K1"},
+ {cursor_all, keypad_default, fkey_notvt220,
+ 0, _VTE_CAP_CSI "1~", -1, X_NULL},
+ {cursor_all, keypad_default, fkey_vt220, 0, "7", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_notvt220, 0, _VTE_CAP_CSI "1~", -1, X_NULL},
+ {cursor_all, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "w", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Up[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "ku"},
+ {cursor_app, keypad_all, fkey_all, 0, _VTE_CAP_SS3 "A", -1, X_NULL},
+ {cursor_default, keypad_all, fkey_notvt220,
+ 0, _VTE_CAP_CSI "A", -1, X_NULL},
+ {cursor_default, keypad_default, fkey_vt220, 0, "8", 1, X_NULL},
+ {cursor_default, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "x", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_KP_Page_Up[] = {
+ {cursor_all, keypad_default, fkey_all, 0, X_NULL, 0, "K3"},
+ {cursor_all, keypad_default, fkey_notvt220,
+ 0, _VTE_CAP_CSI "5~", -1, X_NULL},
+ {cursor_all, keypad_default, fkey_vt220, 0, "9", 1, X_NULL},
+ {cursor_all, keypad_app, fkey_notvt220, 0, _VTE_CAP_CSI "5~", -1, X_NULL},
+ {cursor_all, keypad_app, fkey_vt220, 0, _VTE_CAP_SS3 "y", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+
+/* Keys affected by the function key mode. */
+static const struct _vte_keymap_entry _vte_keymap_GDK_F1[] = {
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "k1"},
+ {cursor_all, keypad_all, fkey_vt220, GDK_CONTROL_MASK, X_NULL, 0, "F3"},
+ {cursor_all, keypad_all, fkey_vt220, 0, X_NULL, 0, "k1"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_SS3 "P", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "224z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "p", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "11~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220,
+ GDK_CONTROL_MASK, _VTE_CAP_CSI "23~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_SS3 "P", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F2[] = {
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "k2"},
+ {cursor_all, keypad_all, fkey_vt220, GDK_CONTROL_MASK, X_NULL, 0, "F4"},
+ {cursor_all, keypad_all, fkey_vt220, 0, X_NULL, 0, "k2"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_SS3 "Q", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "225z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "q", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "12~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220,
+ GDK_CONTROL_MASK, _VTE_CAP_CSI "24~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_SS3 "Q", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F3[] = {
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "k3"},
+ {cursor_all, keypad_all, fkey_vt220, GDK_CONTROL_MASK, X_NULL, 0, "F5"},
+ {cursor_all, keypad_all, fkey_vt220, 0, X_NULL, 0, "k3"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_SS3 "R", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "226z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "r", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "13~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220,
+ GDK_CONTROL_MASK, _VTE_CAP_CSI "25~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_SS3 "R", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F4[] = {
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "k4"},
+ {cursor_all, keypad_all, fkey_vt220, GDK_CONTROL_MASK, X_NULL, 0, "F6"},
+ {cursor_all, keypad_all, fkey_vt220, 0, X_NULL, 0, "k4"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_SS3 "S", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "227z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "s", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "14~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220,
+ GDK_CONTROL_MASK, _VTE_CAP_CSI "26~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_SS3 "S", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F5[] = {
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "k5"},
+ {cursor_all, keypad_all, fkey_vt220, GDK_CONTROL_MASK, X_NULL, 0, "F7"},
+ {cursor_all, keypad_all, fkey_vt220, 0, X_NULL, 0, "k5"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_CSI "15~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "228z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "t", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "15~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220,
+ GDK_CONTROL_MASK, _VTE_CAP_CSI "28~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "15~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F6[] = {
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "k6"},
+ {cursor_all, keypad_all, fkey_vt220, GDK_CONTROL_MASK, X_NULL, 0, "F8"},
+ {cursor_all, keypad_all, fkey_vt220, 0, X_NULL, 0, "k6"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_CSI "17~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "229z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "u", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "17~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220,
+ GDK_CONTROL_MASK, _VTE_CAP_CSI "29~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "17~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F7[] = {
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "k7"},
+ {cursor_all, keypad_all, fkey_vt220, GDK_CONTROL_MASK, X_NULL, 0, "F9"},
+ {cursor_all, keypad_all, fkey_vt220, 0, X_NULL, 0, "k7"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_CSI "18~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "230z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "v", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "18~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220,
+ GDK_CONTROL_MASK, _VTE_CAP_CSI "31~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "18~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F8[] = {
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "k8"},
+ {cursor_all, keypad_all, fkey_vt220, GDK_CONTROL_MASK, X_NULL, 0, "FA"},
+ {cursor_all, keypad_all, fkey_vt220, 0, X_NULL, 0, "k8"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_CSI "19~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "231z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_ESC "w", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "19~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220,
+ GDK_CONTROL_MASK, _VTE_CAP_CSI "32~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "19~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F9[] = {
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "k9"},
+ {cursor_all, keypad_all, fkey_vt220, GDK_CONTROL_MASK, X_NULL, 0, "FB"},
+ {cursor_all, keypad_all, fkey_vt220, 0, X_NULL, 0, "k9"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_CSI "20~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "232z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_CSI "20~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "20~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220,
+ GDK_CONTROL_MASK, _VTE_CAP_CSI "33~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "20~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F10[] = {
+ {cursor_all, keypad_all, fkey_notvt220, 0, X_NULL, 0, "k;"},
+ {cursor_all, keypad_all, fkey_vt220, GDK_CONTROL_MASK, X_NULL, 0, "FC"},
+ {cursor_all, keypad_all, fkey_vt220, 0, X_NULL, 0, "k;"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_CSI "21~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "233z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_CSI "21~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "21~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220,
+ GDK_CONTROL_MASK, _VTE_CAP_CSI "34~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "21~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F11[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "F1"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_CSI "23~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "192z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_CSI "23~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "23~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "23~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F12[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "F2"},
+ {cursor_all, keypad_all, fkey_default, 0, _VTE_CAP_CSI "24~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "193z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_hp, 0, _VTE_CAP_CSI "24~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_legacy, 0, _VTE_CAP_CSI "24~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_vt220, 0, _VTE_CAP_CSI "24~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F13[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "F3"},
+ {cursor_all, keypad_all, fkey_notsun, 0, _VTE_CAP_CSI "25~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "194z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F14[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "F4"},
+ {cursor_all, keypad_all, fkey_notsun, 0, _VTE_CAP_CSI "26~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "195z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F15[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "F5"},
+ {cursor_all, keypad_all, fkey_notsun, 0, _VTE_CAP_CSI "28~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "196z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F16[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "F6"},
+ {cursor_all, keypad_all, fkey_notsun, 0, _VTE_CAP_CSI "29~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "197z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F17[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "F7"},
+ {cursor_all, keypad_all, fkey_notsun, 0, _VTE_CAP_CSI "31~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "198z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F18[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "F8"},
+ {cursor_all, keypad_all, fkey_notsun, 0, _VTE_CAP_CSI "32~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "199z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F19[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "F9"},
+ {cursor_all, keypad_all, fkey_notsun, 0, _VTE_CAP_CSI "33~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "200z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F20[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FA"},
+ {cursor_all, keypad_all, fkey_notsun, 0, _VTE_CAP_CSI "34~", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_sun, 0, _VTE_CAP_CSI "201z", -1, X_NULL},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F21[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FB"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F22[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FC"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F23[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FD"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F24[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FE"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F25[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FF"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F26[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FG"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F27[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FH"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F28[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FI"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F29[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FJ"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F30[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FK"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F31[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FL"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F32[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FM"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F33[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FN"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F34[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FO"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_entry _vte_keymap_GDK_F35[] = {
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, "FP"},
+ {cursor_all, keypad_all, fkey_all, 0, X_NULL, 0, X_NULL},
+};
+
+static const struct _vte_keymap_group {
+ guint keyval;
+ const struct _vte_keymap_entry *entries;
+} _vte_keymap[] = {
+ {GDK_KEY (space), _vte_keymap_GDK_space},
+ {GDK_KEY (Return), _vte_keymap_GDK_Return},
+ {GDK_KEY (Escape), _vte_keymap_GDK_Escape},
+ {GDK_KEY (Tab), _vte_keymap_GDK_Tab},
+ {GDK_KEY (ISO_Left_Tab), _vte_keymap_GDK_ISO_Left_Tab},
+ {GDK_KEY (Home), _vte_keymap_GDK_Home},
+ {GDK_KEY (End), _vte_keymap_GDK_End},
+ {GDK_KEY (Insert), _vte_keymap_GDK_Insert},
+ {GDK_KEY (slash), _vte_keymap_GDK_slash},
+ {GDK_KEY (question), _vte_keymap_GDK_question},
+ /* GDK_KEY (Delete is all handled in code), due to funkiness. */
+ {GDK_KEY (Page_Up), _vte_keymap_GDK_Page_Up},
+ {GDK_KEY (Page_Down), _vte_keymap_GDK_Page_Down},
+
+ {GDK_KEY (2), _vte_keymap_GDK_2},
+ {GDK_KEY (3), _vte_keymap_GDK_3},
+ {GDK_KEY (4), _vte_keymap_GDK_4},
+ {GDK_KEY (5), _vte_keymap_GDK_5},
+ {GDK_KEY (6), _vte_keymap_GDK_6},
+ {GDK_KEY (7), _vte_keymap_GDK_7},
+ {GDK_KEY (8), _vte_keymap_GDK_8},
+ {GDK_KEY (minus), _vte_keymap_GDK_Minus},
+
+ {GDK_KEY (Up), _vte_keymap_GDK_Up},
+ {GDK_KEY (Down), _vte_keymap_GDK_Down},
+ {GDK_KEY (Right), _vte_keymap_GDK_Right},
+ {GDK_KEY (Left), _vte_keymap_GDK_Left},
+
+ {GDK_KEY (KP_Space), _vte_keymap_GDK_KP_Space},
+ {GDK_KEY (KP_Tab), _vte_keymap_GDK_KP_Tab},
+ {GDK_KEY (KP_Enter), _vte_keymap_GDK_KP_Enter},
+ {GDK_KEY (KP_F1), _vte_keymap_GDK_KP_F1},
+ {GDK_KEY (KP_F2), _vte_keymap_GDK_KP_F2},
+ {GDK_KEY (KP_F3), _vte_keymap_GDK_KP_F3},
+ {GDK_KEY (KP_F4), _vte_keymap_GDK_KP_F4},
+ {GDK_KEY (KP_Multiply), _vte_keymap_GDK_KP_Multiply},
+ {GDK_KEY (KP_Add), _vte_keymap_GDK_KP_Add},
+ {GDK_KEY (KP_Separator), _vte_keymap_GDK_KP_Separator},
+ {GDK_KEY (KP_Subtract), _vte_keymap_GDK_KP_Subtract},
+ {GDK_KEY (KP_Decimal), _vte_keymap_GDK_KP_Decimal_Delete},
+ {GDK_KEY (KP_Delete), _vte_keymap_GDK_KP_Decimal_Delete},
+ {GDK_KEY (KP_Divide), _vte_keymap_GDK_KP_Divide},
+ {GDK_KEY (KP_0), _vte_keymap_GDK_KP_0},
+ {GDK_KEY (KP_Insert), _vte_keymap_GDK_KP_Insert},
+ {GDK_KEY (KP_1), _vte_keymap_GDK_KP_1},
+ {GDK_KEY (KP_End), _vte_keymap_GDK_KP_End},
+ {GDK_KEY (KP_2), _vte_keymap_GDK_KP_2},
+ {GDK_KEY (KP_Down), _vte_keymap_GDK_KP_Down},
+ {GDK_KEY (KP_3), _vte_keymap_GDK_KP_3},
+ {GDK_KEY (KP_Page_Down), _vte_keymap_GDK_KP_Page_Down},
+ {GDK_KEY (KP_4), _vte_keymap_GDK_KP_4},
+ {GDK_KEY (KP_Left), _vte_keymap_GDK_KP_Left},
+ {GDK_KEY (KP_5), _vte_keymap_GDK_KP_5},
+ {GDK_KEY (KP_Begin), _vte_keymap_GDK_KP_Begin},
+ {GDK_KEY (KP_6), _vte_keymap_GDK_KP_6},
+ {GDK_KEY (KP_Right), _vte_keymap_GDK_KP_Right},
+ {GDK_KEY (KP_7), _vte_keymap_GDK_KP_7},
+ {GDK_KEY (KP_Home), _vte_keymap_GDK_KP_Home},
+ {GDK_KEY (KP_8), _vte_keymap_GDK_KP_8},
+ {GDK_KEY (KP_Up), _vte_keymap_GDK_KP_Up},
+ {GDK_KEY (KP_9), _vte_keymap_GDK_KP_9},
+ {GDK_KEY (KP_Page_Up), _vte_keymap_GDK_KP_Page_Up},
+
+ {GDK_KEY (F1), _vte_keymap_GDK_F1},
+ {GDK_KEY (F2), _vte_keymap_GDK_F2},
+ {GDK_KEY (F3), _vte_keymap_GDK_F3},
+ {GDK_KEY (F4), _vte_keymap_GDK_F4},
+ {GDK_KEY (F5), _vte_keymap_GDK_F5},
+ {GDK_KEY (F6), _vte_keymap_GDK_F6},
+ {GDK_KEY (F7), _vte_keymap_GDK_F7},
+ {GDK_KEY (F8), _vte_keymap_GDK_F8},
+ {GDK_KEY (F9), _vte_keymap_GDK_F9},
+ {GDK_KEY (F10), _vte_keymap_GDK_F10},
+ {GDK_KEY (F11), _vte_keymap_GDK_F11},
+ {GDK_KEY (F12), _vte_keymap_GDK_F12},
+ {GDK_KEY (F13), _vte_keymap_GDK_F13},
+ {GDK_KEY (F14), _vte_keymap_GDK_F14},
+ {GDK_KEY (F15), _vte_keymap_GDK_F15},
+ {GDK_KEY (F16), _vte_keymap_GDK_F16},
+ {GDK_KEY (F17), _vte_keymap_GDK_F17},
+ {GDK_KEY (F18), _vte_keymap_GDK_F18},
+ {GDK_KEY (F19), _vte_keymap_GDK_F19},
+ {GDK_KEY (F20), _vte_keymap_GDK_F20},
+ {GDK_KEY (F21), _vte_keymap_GDK_F21},
+ {GDK_KEY (F22), _vte_keymap_GDK_F22},
+ {GDK_KEY (F23), _vte_keymap_GDK_F23},
+ {GDK_KEY (F24), _vte_keymap_GDK_F24},
+ {GDK_KEY (F25), _vte_keymap_GDK_F25},
+ {GDK_KEY (F26), _vte_keymap_GDK_F26},
+ {GDK_KEY (F27), _vte_keymap_GDK_F27},
+ {GDK_KEY (F28), _vte_keymap_GDK_F28},
+ {GDK_KEY (F29), _vte_keymap_GDK_F29},
+ {GDK_KEY (F30), _vte_keymap_GDK_F30},
+ {GDK_KEY (F31), _vte_keymap_GDK_F31},
+ {GDK_KEY (F32), _vte_keymap_GDK_F32},
+ {GDK_KEY (F33), _vte_keymap_GDK_F33},
+ {GDK_KEY (F34), _vte_keymap_GDK_F34},
+ {GDK_KEY (F35), _vte_keymap_GDK_F35},
+};
+
+/* Map the specified keyval/modifier setup, dependent on the mode, to either
+ * a literal string or a capability name. */
+void
+_vte_keymap_map(guint keyval,
+ GdkModifierType modifiers,
+ gboolean sun_mode,
+ gboolean hp_mode,
+ gboolean legacy_mode,
+ gboolean vt220_mode,
+ gboolean app_cursor_keys,
+ gboolean app_keypad_keys,
+ struct _vte_termcap *termcap,
+ const char *terminal,
+ char **normal,
+ gssize *normal_length,
+ const char **special)
+{
+ gsize i;
+ const struct _vte_keymap_entry *entries;
+ enum _vte_cursor_mode cursor_mode;
+ enum _vte_keypad_mode keypad_mode;
+ enum _vte_fkey_mode fkey_mode;
+ char *cap, *tmp;
+ const char *termcap_special = NULL;
+ char ncurses_buffer[4096];
+ char ncurses_area[512];
+
+ g_return_if_fail(normal != NULL);
+ g_return_if_fail(normal_length != NULL);
+ g_return_if_fail(special != NULL);
+
+ _VTE_DEBUG_IF(VTE_DEBUG_KEYBOARD)
+ _vte_keysym_print(keyval, modifiers,
+ sun_mode,
+ hp_mode,
+ legacy_mode,
+ vt220_mode);
+
+ /* Start from scratch. */
+ *normal = NULL;
+ *special = NULL;
+ *normal_length = 0;
+
+ /* Search for the list for this key. */
+ entries = NULL;
+ for (i = 0; i < G_N_ELEMENTS(_vte_keymap); i++) {
+#ifdef VTE_DEBUG
+ int j;
+ GdkModifierType mods;
+ /* Check for NULL strings with non-zero length, and
+ * vice-versa. */
+ entries = _vte_keymap[i].entries;
+ for (j = 0; entries[j].normal_length || entries[j].special[0]; j++) {
+ if (entries[j].normal_length) {
+ g_assert(!entries[j].special[0]);
+ } else {
+ g_assert(!entries[j].normal[0]);
+ }
+ }
+ /* Check for coverage. This check is not exhaustive. */
+ fkey_mode = 0;
+ mods = GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK;
+ for (j = 0; entries[j].normal_length || entries[j].special[0]; j++) {
+ if (entries[j].fkey_mode != fkey_all) {
+ fkey_mode |= entries[j].fkey_mode;
+ }
+ mods &= entries[j].mod_mask;
+ }
+ switch (_vte_keymap[i].keyval) {
+ case GDK_KEY (2):
+ case GDK_KEY (3):
+ case GDK_KEY (4):
+ case GDK_KEY (5):
+ case GDK_KEY (6):
+ case GDK_KEY (7):
+ case GDK_KEY (8):
+ /* Known non-full-coverage cases. */
+ break;
+ default:
+ /* Everything else we double-check. */
+ g_assert((fkey_mode == 0) || (fkey_mode == fkey_all));
+ break;
+ }
+ entries = NULL;
+#endif
+ if (_vte_keymap[i].keyval == keyval) {
+ /* Found it! */
+ entries = _vte_keymap[i].entries;
+ break;
+ }
+ }
+ if (entries == NULL) {
+ _vte_debug_print(VTE_DEBUG_KEYBOARD,
+ " (ignoring, no map for key).\n");
+ return;
+ }
+
+ /* Build mode masks. */
+ cursor_mode = app_cursor_keys ? cursor_app : cursor_default;
+ keypad_mode = app_keypad_keys ? keypad_app : keypad_default;
+ if (sun_mode) {
+ fkey_mode = fkey_sun;
+ } else
+ if (hp_mode) {
+ fkey_mode = fkey_hp;
+ } else
+ if (legacy_mode) {
+ fkey_mode = fkey_legacy;
+ } else
+ if (vt220_mode) {
+ fkey_mode = fkey_vt220;
+ } else {
+ fkey_mode = fkey_default;
+ }
+ modifiers &= (GDK_SHIFT_MASK | GDK_CONTROL_MASK | VTE_META_MASK | VTE_NUMLOCK_MASK);
+
+ /* Search for the conditions. */
+ for (i = 0; entries[i].normal_length || entries[i].special[0]; i++)
+ if ((entries[i].cursor_mode & cursor_mode) &&
+ (entries[i].keypad_mode & keypad_mode) &&
+ (entries[i].fkey_mode & fkey_mode))
+ if ((modifiers & entries[i].mod_mask) == entries[i].mod_mask) {
+ if (entries[i].normal_length) {
+ if (entries[i].normal_length != -1) {
+ *normal_length = entries[i].normal_length;
+ *normal = g_memdup(entries[i].normal,
+ entries[i].normal_length);
+ } else {
+ *normal_length = strlen(entries[i].normal);
+ *normal = g_strdup(entries[i].normal);
+ }
+ _vte_keymap_key_add_key_modifiers(keyval,
+ modifiers,
+ sun_mode,
+ hp_mode,
+ legacy_mode,
+ vt220_mode,
+ cursor_mode & cursor_app,
+ normal,
+ normal_length);
+ _VTE_DEBUG_IF(VTE_DEBUG_KEYBOARD) {
+ int j;
+ g_printerr(" to '");
+ for (j = 0; j < *normal_length; j++) {
+ if (((*normal)[j] < 32) ||
+ ((*normal)[j] >= 127)) {
+ g_printerr("<0x%02x>",
+ (*normal)[j]);
+ } else {
+ g_printerr("%c",
+ (*normal)[j]);
+ }
+ }
+ g_printerr("'.\n");
+ }
+ return;
+ } else {
+ termcap_special = entries[i].special;
+ cap = _vte_termcap_find_string(termcap,
+ terminal,
+ entries[i].special);
+ if (cap != NULL) {
+ *special = NULL;
+ if (strlen(cap) > 0) {
+ /* Save the special string. */
+ *special = entries[i].special;
+ _vte_debug_print(VTE_DEBUG_KEYBOARD,
+ " to \"%s\"", *special);
+ }
+ g_free(cap);
+ if (*special != NULL) {
+ /* Return the special string. */
+ _vte_debug_print(VTE_DEBUG_KEYBOARD,
+ ", returning.\n");
+ return;
+ }
+ }
+ }
+ }
+ if (termcap_special != NULL) {
+ tmp = g_strdup(terminal);
+ cap = NULL;
+ if (tgetent(ncurses_buffer, tmp) == 1) {
+ cap = ncurses_area;
+ tmp = g_strdup(termcap_special);
+ cap = tgetstr(tmp, &cap);
+ }
+ if ((cap == NULL) && (strstr(terminal, "xterm") != NULL)) {
+ /* try, try again */
+ if (tgetent(ncurses_buffer, "xterm-xfree86") == 1) {
+ cap = ncurses_area;
+ tmp = g_strdup(termcap_special);
+ cap = tgetstr(tmp, &cap);
+ }
+ }
+ g_free(tmp);
+ if ((cap != NULL) && (*cap != '\0')) {
+ *normal_length = strlen(cap);
+ *normal = g_strdup(cap);
+#ifdef VTE_DEBUG
+ if (_vte_debug_on(VTE_DEBUG_KEYBOARD)) {
+ int j;
+ g_printerr(" via " VTE_TERMCAP_NAME " to '");
+ for (j = 0; j < *normal_length; j++) {
+ if (((*normal)[j] < 32) ||
+ ((*normal)[j] >= 127)) {
+ g_printerr("<0x%02x>",
+ (*normal)[j]);
+ } else {
+ g_printerr("%c",
+ (*normal)[j]);
+ }
+ }
+ g_printerr("', returning.\n");
+ }
+#endif
+ return;
+ }
+ }
+
+ _vte_debug_print(VTE_DEBUG_KEYBOARD,
+ " (ignoring, no match for modifier state).\n");
+}
+
+gboolean
+_vte_keymap_key_is_modifier(guint keyval)
+{
+ gboolean modifier = FALSE;
+ /* Determine if this is just a modifier key. */
+ switch (keyval) {
+ case GDK_KEY (Alt_L):
+ case GDK_KEY (Alt_R):
+ case GDK_KEY (Caps_Lock):
+ case GDK_KEY (Control_L):
+ case GDK_KEY (Control_R):
+ case GDK_KEY (Eisu_Shift):
+ case GDK_KEY (Hyper_L):
+ case GDK_KEY (Hyper_R):
+ case GDK_KEY (ISO_First_Group_Lock):
+ case GDK_KEY (ISO_Group_Lock):
+ case GDK_KEY (ISO_Group_Shift):
+ case GDK_KEY (ISO_Last_Group_Lock):
+ case GDK_KEY (ISO_Level3_Lock):
+ case GDK_KEY (ISO_Level3_Shift):
+ case GDK_KEY (ISO_Lock):
+ case GDK_KEY (ISO_Next_Group_Lock):
+ case GDK_KEY (ISO_Prev_Group_Lock):
+ case GDK_KEY (Kana_Lock):
+ case GDK_KEY (Kana_Shift):
+ case GDK_KEY (Meta_L):
+ case GDK_KEY (Meta_R):
+ case GDK_KEY (Num_Lock):
+ case GDK_KEY (Scroll_Lock):
+ case GDK_KEY (Shift_L):
+ case GDK_KEY (Shift_Lock):
+ case GDK_KEY (Shift_R):
+ case GDK_KEY (Super_L):
+ case GDK_KEY (Super_R):
+ modifier = TRUE;
+ break;
+ default:
+ modifier = FALSE;
+ break;
+ }
+ return modifier;
+}
+
+static gboolean
+_vte_keymap_key_gets_modifiers(guint keyval)
+{
+ gboolean fkey = FALSE;
+ /* Determine if this key gets modifiers. */
+ switch (keyval) {
+ case GDK_KEY (Up):
+ case GDK_KEY (Down):
+ case GDK_KEY (Left):
+ case GDK_KEY (Right):
+ case GDK_KEY (Insert):
+ case GDK_KEY (Delete):
+ case GDK_KEY (Page_Up):
+ case GDK_KEY (Page_Down):
+ case GDK_KEY (KP_Up):
+ case GDK_KEY (KP_Down):
+ case GDK_KEY (KP_Left):
+ case GDK_KEY (KP_Right):
+ case GDK_KEY (KP_Insert):
+ case GDK_KEY (KP_Delete):
+ case GDK_KEY (KP_Page_Up):
+ case GDK_KEY (KP_Page_Down):
+ case GDK_KEY (F1):
+ case GDK_KEY (F2):
+ case GDK_KEY (F3):
+ case GDK_KEY (F4):
+ case GDK_KEY (F5):
+ case GDK_KEY (F6):
+ case GDK_KEY (F7):
+ case GDK_KEY (F8):
+ case GDK_KEY (F9):
+ case GDK_KEY (F10):
+ case GDK_KEY (F11):
+ case GDK_KEY (F12):
+ case GDK_KEY (F13):
+ case GDK_KEY (F14):
+ case GDK_KEY (F15):
+ case GDK_KEY (F16):
+ case GDK_KEY (F17):
+ case GDK_KEY (F18):
+ case GDK_KEY (F19):
+ case GDK_KEY (F20):
+ case GDK_KEY (F21):
+ case GDK_KEY (F22):
+ case GDK_KEY (F23):
+ case GDK_KEY (F24):
+ case GDK_KEY (F25):
+ case GDK_KEY (F26):
+ case GDK_KEY (F27):
+ case GDK_KEY (F28):
+ case GDK_KEY (F29):
+ case GDK_KEY (F30):
+ case GDK_KEY (F31):
+ case GDK_KEY (F32):
+ case GDK_KEY (F33):
+ case GDK_KEY (F34):
+ case GDK_KEY (F35):
+ fkey = TRUE;
+ break;
+ default:
+ fkey = FALSE;
+ break;
+ }
+ return fkey;
+}
+
+/* Prior and Next are ommitted for the SS3 to CSI switch below */
+static gboolean
+is_cursor_key(guint keyval)
+{
+ switch (keyval) {
+ case GDK_KEY (Home):
+ case GDK_KEY (Left):
+ case GDK_KEY (Up):
+ case GDK_KEY (Right):
+ case GDK_KEY (Down):
+ case GDK_KEY (End):
+
+ case GDK_KEY (KP_Home):
+ case GDK_KEY (KP_Left):
+ case GDK_KEY (KP_Up):
+ case GDK_KEY (KP_Right):
+ case GDK_KEY (KP_Down):
+ case GDK_KEY (KP_End):
+ return TRUE;
+ default:
+ return FALSE;
+ }
+}
+
+
+void
+_vte_keymap_key_add_key_modifiers(guint keyval,
+ GdkModifierType modifiers,
+ gboolean sun_mode,
+ gboolean hp_mode,
+ gboolean legacy_mode,
+ gboolean vt220_mode,
+ gboolean cursor_app_mode,
+ char **normal,
+ gssize *normal_length)
+{
+ int modifier, offset;
+ char *nnormal;
+ GdkModifierType significant_modifiers;
+
+ significant_modifiers = GDK_SHIFT_MASK |
+ GDK_CONTROL_MASK |
+ VTE_META_MASK;
+
+ if (!_vte_keymap_key_gets_modifiers(keyval)) {
+ return;
+ }
+ if (sun_mode || hp_mode || vt220_mode) {
+ /* no modifiers for you! */
+ return;
+ }
+
+ switch (modifiers & significant_modifiers) {
+ case 0:
+ modifier = 0;
+ break;
+ case GDK_SHIFT_MASK:
+ modifier = 2;
+ break;
+ case VTE_META_MASK:
+ modifier = 3;
+ break;
+ case GDK_SHIFT_MASK | VTE_META_MASK:
+ modifier = 4;
+ break;
+ case GDK_CONTROL_MASK:
+ modifier = 5;
+ break;
+ case GDK_SHIFT_MASK | GDK_CONTROL_MASK:
+ modifier = 6;
+ break;
+ case VTE_META_MASK | GDK_CONTROL_MASK:
+ modifier = 7;
+ break;
+ case GDK_SHIFT_MASK | VTE_META_MASK | GDK_CONTROL_MASK:
+ modifier = 8;
+ break;
+ default:
+ modifier = 8;
+ break;
+ }
+
+ if (modifier == 0) {
+ return;
+ }
+
+ nnormal = g_malloc0(*normal_length + 4);
+ memcpy(nnormal, *normal, *normal_length);
+ if (strlen(nnormal) > 1) {
+ /* SS3 should have no modifiers so make it CSI instead. See
+ * http://cvsweb.xfree86.org/cvsweb/xc/programs/xterm/input.c.diff?r1=3.57&r2=3.58
+ */
+ if (cursor_app_mode &&
+ g_str_has_prefix(nnormal, _VTE_CAP_SS3)
+ && is_cursor_key(keyval)) {
+ nnormal[1] = '[';
+ }
+
+ /* Get the offset of the last character. */
+ offset = strlen(nnormal) - 1;
+ if (g_ascii_isdigit(nnormal[offset - 1])) {
+ /* Stuff a semicolon and the modifier in right before
+ * that last character. */
+ nnormal[offset + 2] = nnormal[offset];
+ nnormal[offset + 1] = modifier + '0';
+ nnormal[offset + 0] = ';';
+ *normal_length += 2;
+ } else {
+#if 1
+ /* Stuff a "1", a semicolon and the modifier in right
+ * before that last character, matching Xterm. */
+ nnormal[offset + 3] = nnormal[offset];
+ nnormal[offset + 2] = modifier + '0';
+ nnormal[offset + 1] = ';';
+ nnormal[offset + 0] = '1';
+ *normal_length += 3;
+#else
+ /* Stuff the modifier in right before that last
+ * character, matching what people expect. */
+ nnormal[offset + 1] = nnormal[offset];
+ nnormal[offset + 0] = modifier + '0';
+ *normal_length += 1;
+#endif
+ }
+ g_free(*normal);
+ *normal = nnormal;
+ } else {
+ g_free(nnormal);
+ }
+}
diff --git a/vte/src/keymap.h b/vte/src/keymap.h
new file mode 100644
index 0000000..243e22e
--- /dev/null
+++ b/vte/src/keymap.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_keymap_h_included
+#define vte_keymap_h_included
+
+#include <glib.h>
+#include <gdk/gdk.h>
+#include "vtetc.h"
+
+G_BEGIN_DECLS
+
+#define VTE_META_MASK GDK_META_MASK
+#define VTE_NUMLOCK_MASK GDK_MOD2_MASK
+
+/* Map the specified keyval/modifier setup, dependent on the mode, to either
+ * a literal string or a capability name. */
+void _vte_keymap_map(guint keyval,
+ GdkModifierType modifiers,
+ gboolean sun_mode,
+ gboolean hp_mode,
+ gboolean legacy_mode,
+ gboolean vt220_mode,
+ gboolean app_cursor_keys,
+ gboolean app_keypad_keys,
+ struct _vte_termcap *termcap,
+ const char *term,
+ char **normal,
+ gssize *normal_length,
+ const char **special);
+
+/* Return TRUE if a keyval is just a modifier key. */
+gboolean _vte_keymap_key_is_modifier(guint keyval);
+
+/* Add modifiers to the sequence if they're needed. */
+void _vte_keymap_key_add_key_modifiers(guint keyval,
+ GdkModifierType modifiers,
+ gboolean sun_mode,
+ gboolean hp_mode,
+ gboolean legacy_mode,
+ gboolean vt220_mode,
+ gboolean app_cursor_keys,
+ char **normal,
+ gssize *normal_length);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/keysyms.c b/vte/src/keysyms.c
new file mode 100644
index 0000000..c8acee3
--- /dev/null
+++ b/vte/src/keysyms.c
@@ -0,0 +1,1254 @@
+ /* this file is auto-generated -- do not edit */
+ case 0xfe0a: return "GDK_ISO_Prev_Group";
+ case 0xfe0c: return "GDK_ISO_First_Group";
+ case 0xfe0b: return "GDK_ISO_Prev_Group_Lock";
+ case 0xfe0e: return "GDK_ISO_Last_Group";
+ case 0xfe0d: return "GDK_ISO_First_Group_Lock";
+ case 0xfe0f: return "GDK_ISO_Last_Group_Lock";
+ case 0xce5: return "GDK_hebrew_waw";
+ case 0xcf7: return "GDK_hebrew_qoph, GDK_hebrew_kuf";
+ case 0x2a1: return "GDK_Hstroke";
+ case 0xdbd: return "GDK_Thai_fofa";
+ case 0x4df: return "GDK_semivoicedsound";
+ case 0x2bc: return "GDK_jcircumflex";
+ case 0x2bb: return "GDK_gbreve";
+ case 0x9ec: return "GDK_upleftcorner";
+ case 0x9eb: return "GDK_uprightcorner";
+ case 0x9ea: return "GDK_lowrightcorner";
+ case 0xcf9: return "GDK_hebrew_shin";
+ case 0x47e: return "GDK_overline";
+ case 0xce6: return "GDK_hebrew_zain, GDK_hebrew_zayin";
+ case 0x05b: return "GDK_bracketleft";
+ case 0x05c: return "GDK_backslash";
+ case 0x05a: return "GDK_Z";
+ case 0x05f: return "GDK_underscore";
+ case 0x05d: return "GDK_bracketright";
+ case 0x05e: return "GDK_asciicircum";
+ case 0x6c6: return "GDK_Cyrillic_ef";
+ case 0x6c7: return "GDK_Cyrillic_ghe";
+ case 0x6c4: return "GDK_Cyrillic_de";
+ case 0x6c5: return "GDK_Cyrillic_ie";
+ case 0x6c2: return "GDK_Cyrillic_be";
+ case 0x6c3: return "GDK_Cyrillic_tse";
+ case 0x6c0: return "GDK_Cyrillic_yu";
+ case 0x6c1: return "GDK_Cyrillic_a";
+ case 0x5e3: return "GDK_Arabic_kaf";
+ case 0x5e2: return "GDK_Arabic_qaf";
+ case 0x5e1: return "GDK_Arabic_feh";
+ case 0x5e0: return "GDK_Arabic_tatweel";
+ case 0x5e7: return "GDK_Arabic_ha, GDK_Arabic_heh";
+ case 0x5e6: return "GDK_Arabic_noon";
+ case 0x5e5: return "GDK_Arabic_meem";
+ case 0x5e4: return "GDK_Arabic_lam";
+ case 0x5e9: return "GDK_Arabic_alefmaksura";
+ case 0x5e8: return "GDK_Arabic_waw";
+ case 0xab4: return "GDK_threefifths";
+ case 0x2b1: return "GDK_hstroke";
+ case 0x9e5: return "GDK_lf";
+ case 0x13bc: return "GDK_OE";
+ case 0x9e3: return "GDK_ff";
+ case 0x9e2: return "GDK_ht";
+ case 0x9e1: return "GDK_checkerboard";
+ case 0x2b6: return "GDK_hcircumflex";
+ case 0x2b9: return "GDK_idotless";
+ case 0xee4: return "GDK_Hangul_J_Pieub";
+ case 0xecc: return "GDK_Hangul_U";
+ case 0xef4: return "GDK_Hangul_SunkyeongeumPhieuf";
+ case 0x9e9: return "GDK_vt";
+ case 0x9e8: return "GDK_nl";
+ case 0xfe01: return "GDK_ISO_Lock";
+ case 0xfe03: return "GDK_ISO_Level3_Shift";
+ case 0xfe02: return "GDK_ISO_Level2_Latch";
+ case 0xfe05: return "GDK_ISO_Level3_Lock";
+ case 0xfe04: return "GDK_ISO_Level3_Latch";
+ case 0xfe07: return "GDK_ISO_Group_Lock";
+ case 0xfe06: return "GDK_ISO_Group_Latch";
+ case 0xfe09: return "GDK_ISO_Next_Group_Lock";
+ case 0xfe08: return "GDK_ISO_Next_Group";
+ case 0xab1: return "GDK_twothirds";
+ case 0x065: return "GDK_e";
+ case 0xef3: return "GDK_Hangul_KkogjiDalrinIeung";
+ case 0x5ec: return "GDK_Arabic_dammatan";
+ case 0xffee: return "GDK_Hyper_R";
+ case 0x5ea: return "GDK_Arabic_yeh";
+ case 0xfd0c: return "GDK_3270_PA3";
+ case 0x5ef: return "GDK_Arabic_damma";
+ case 0x5ee: return "GDK_Arabic_fatha";
+ case 0x5ed: return "GDK_Arabic_kasratan";
+ case 0x0f3: return "GDK_oacute";
+ case 0x063: return "GDK_c";
+ case 0x7a3: return "GDK_Greek_ETAaccent";
+ case 0xfd0e: return "GDK_3270_Attn";
+ case 0x052: return "GDK_R";
+ case 0x053: return "GDK_S";
+ case 0x050: return "GDK_P";
+ case 0x051: return "GDK_Q";
+ case 0x056: return "GDK_V";
+ case 0x057: return "GDK_W";
+ case 0x054: return "GDK_T";
+ case 0x055: return "GDK_U";
+ case 0x6cf: return "GDK_Cyrillic_o";
+ case 0xffea: return "GDK_Alt_R";
+ case 0x058: return "GDK_X";
+ case 0x059: return "GDK_Y";
+ case 0x6cb: return "GDK_Cyrillic_ka";
+ case 0x6cc: return "GDK_Cyrillic_el";
+ case 0x6ca: return "GDK_Cyrillic_shorti";
+ case 0x0c4: return "GDK_Adiaeresis";
+ case 0x0c5: return "GDK_Aring";
+ case 0x0c6: return "GDK_AE";
+ case 0x0c7: return "GDK_Ccedilla";
+ case 0x0c0: return "GDK_Agrave";
+ case 0xffec: return "GDK_Super_R";
+ case 0x0c2: return "GDK_Acircumflex";
+ case 0x0c3: return "GDK_Atilde";
+ case 0xffeb: return "GDK_Super_L";
+ case 0x0c8: return "GDK_Egrave";
+ case 0x0c9: return "GDK_Eacute";
+ case 0xeab: return "GDK_Hangul_RieulMieum";
+ case 0x0a6: return "GDK_brokenbar";
+ case 0xba9: return "GDK_upcaret";
+ case 0x7c9: return "GDK_Greek_IOTA";
+ case 0x0a7: return "GDK_section";
+ case 0x7c7: return "GDK_Greek_ETA";
+ case 0x7c6: return "GDK_Greek_ZETA";
+ case 0x7c5: return "GDK_Greek_EPSILON";
+ case 0x7c4: return "GDK_Greek_DELTA";
+ case 0x7c3: return "GDK_Greek_GAMMA";
+ case 0x7c2: return "GDK_Greek_BETA";
+ case 0x7c1: return "GDK_Greek_ALPHA";
+ case 0x9e0: return "GDK_soliddiamond";
+ case 0xbd8: return "GDK_rightshoe";
+ case 0xea3: return "GDK_Hangul_KiyeogSios";
+ case 0x20aa: return "GDK_NewSheqelSign";
+ case 0x8da: return "GDK_includedin";
+ case 0xfefd: return "GDK_Pointer_Drag5";
+ case 0xfefc: return "GDK_Pointer_DfltBtnPrev";
+ case 0xfefb: return "GDK_Pointer_DfltBtnNext";
+ case 0xfefa: return "GDK_Pointer_Accelerate";
+ case 0x20a8: return "GDK_RupeeSign";
+ case 0x8dc: return "GDK_intersection";
+ case 0xec9: return "GDK_Hangul_WAE";
+ case 0xec8: return "GDK_Hangul_WA";
+ case 0xad1: return "GDK_rightsinglequotemark";
+ case 0x7cf: return "GDK_Greek_OMICRON";
+ case 0x7ce: return "GDK_Greek_XI";
+ case 0x7cd: return "GDK_Greek_NU";
+ case 0x7cc: return "GDK_Greek_MU";
+ case 0x7cb: return "GDK_Greek_LAMDA, GDK_Greek_LAMBDA";
+ case 0x7ca: return "GDK_Greek_KAPPA";
+ case 0x8dd: return "GDK_union";
+ case 0x0cd: return "GDK_Iacute";
+ case 0x0ce: return "GDK_Icircumflex";
+ case 0x0cf: return "GDK_Idiaeresis";
+ case 0xde5: return "GDK_Thai_lakkhangyao";
+ case 0x0ca: return "GDK_Ecircumflex";
+ case 0x0cb: return "GDK_Ediaeresis";
+ case 0x0cc: return "GDK_Igrave";
+ case 0xaf8: return "GDK_femalesymbol";
+ case 0xfef7: return "GDK_Pointer_Drag3";
+ case 0xfef6: return "GDK_Pointer_Drag2";
+ case 0xfef5: return "GDK_Pointer_Drag1";
+ case 0xfef4: return "GDK_Pointer_Drag_Dflt";
+ case 0xfef3: return "GDK_Pointer_DblClick5";
+ case 0xfef2: return "GDK_Pointer_DblClick4";
+ case 0xfef1: return "GDK_Pointer_DblClick3";
+ case 0xfef0: return "GDK_Pointer_DblClick2";
+ case 0xdaf: return "GDK_Thai_topatak";
+ case 0x6c9: return "GDK_Cyrillic_i";
+ case 0xfef9: return "GDK_Pointer_EnableKeys";
+ case 0xfef8: return "GDK_Pointer_Drag4";
+ case 0xec1: return "GDK_Hangul_YA";
+ case 0xec0: return "GDK_Hangul_AE";
+ case 0xdae: return "GDK_Thai_dochada";
+ case 0xec3: return "GDK_Hangul_EO";
+ case 0xcfa: return "GDK_hebrew_taw, GDK_hebrew_taf";
+ case 0xec2: return "GDK_Hangul_YAE";
+ case 0x6f7: return "GDK_Cyrillic_VE";
+ case 0x1bf: return "GDK_zabovedot";
+ case 0xec5: return "GDK_Hangul_YEO";
+ case 0x1bd: return "GDK_doubleacute";
+ case 0x1be: return "GDK_zcaron";
+ case 0x1bb: return "GDK_tcaron";
+ case 0x1bc: return "GDK_zacute";
+ case 0x1ba: return "GDK_scedilla";
+ case 0xbdc: return "GDK_lefttack";
+ case 0xef9: return "GDK_Hangul_J_KkogjiDalrinIeung";
+ case 0xde8: return "GDK_Thai_maiek";
+ case 0x02c: return "GDK_comma";
+ case 0x02b: return "GDK_plus";
+ case 0x02a: return "GDK_asterisk";
+ case 0xec6: return "GDK_Hangul_YE";
+ case 0x02f: return "GDK_slash";
+ case 0x02e: return "GDK_period";
+ case 0x02d: return "GDK_minus";
+ case 0xecd: return "GDK_Hangul_WEO";
+ case 0x3dd: return "GDK_Utilde";
+ case 0x3de: return "GDK_Umacron";
+ case 0xff55: return "GDK_Prior, GDK_Page_Up";
+ case 0xff54: return "GDK_Down";
+ case 0xff57: return "GDK_End";
+ case 0xff56: return "GDK_Next, GDK_Page_Down";
+ case 0xff51: return "GDK_Left";
+ case 0xff50: return "GDK_Home";
+ case 0xff53: return "GDK_Right";
+ case 0xff52: return "GDK_Up";
+ case 0xadd: return "GDK_filledrighttribullet";
+ case 0xff58: return "GDK_Begin";
+ case 0x7f6: return "GDK_Greek_phi";
+ case 0xfd08: return "GDK_3270_Reset";
+ case 0x029: return "GDK_parenright";
+ case 0x028: return "GDK_parenleft";
+ case 0x023: return "GDK_numbersign";
+ case 0x022: return "GDK_quotedbl";
+ case 0x021: return "GDK_exclam";
+ case 0x020: return "GDK_space";
+ case 0x027: return "GDK_apostrophe, GDK_quoteright";
+ case 0x026: return "GDK_ampersand";
+ case 0x025: return "GDK_percent";
+ case 0x024: return "GDK_dollar";
+ case 0xcf0: return "GDK_hebrew_nun";
+ case 0xcf1: return "GDK_hebrew_samech, GDK_hebrew_samekh";
+ case 0xcf2: return "GDK_hebrew_ayin";
+ case 0xcf3: return "GDK_hebrew_finalpe";
+ case 0xcf4: return "GDK_hebrew_pe";
+ case 0xcf5: return "GDK_hebrew_finalzade, GDK_hebrew_finalzadi";
+ case 0xcf6: return "GDK_hebrew_zade, GDK_hebrew_zadi";
+ case 0x1b9: return "GDK_scaron";
+ case 0x1b6: return "GDK_sacute";
+ case 0x1b7: return "GDK_caron";
+ case 0x1b5: return "GDK_lcaron";
+ case 0x1b2: return "GDK_ogonek";
+ case 0x1b3: return "GDK_lstroke";
+ case 0x1b1: return "GDK_aogonek";
+ case 0xef6: return "GDK_Hangul_AraeA";
+ case 0xef7: return "GDK_Hangul_AraeAE";
+ case 0xece: return "GDK_Hangul_WE";
+ case 0xef5: return "GDK_Hangul_YeorinHieuh";
+ case 0xef2: return "GDK_Hangul_PanSios";
+ case 0xdab: return "GDK_Thai_soso";
+ case 0xef0: return "GDK_Hangul_SunkyeongeumMieum";
+ case 0xef1: return "GDK_Hangul_SunkyeongeumPieub";
+ case 0xef8: return "GDK_Hangul_J_PanSios";
+ case 0xac4: return "GDK_threeeighths";
+ case 0xdca: return "GDK_Thai_sosua";
+ case 0x3d9: return "GDK_Uogonek";
+ case 0x5ac: return "GDK_Arabic_comma";
+ case 0xfd01: return "GDK_3270_Duplicate";
+ case 0x3d2: return "GDK_Omacron";
+ case 0x3d3: return "GDK_Kcedilla";
+ case 0x3d1: return "GDK_Ncedilla";
+ case 0x06e: return "GDK_n";
+ case 0xdc5: return "GDK_Thai_loling";
+ case 0x7a2: return "GDK_Greek_EPSILONaccent";
+ case 0xffe5: return "GDK_Caps_Lock";
+ case 0x06d: return "GDK_m";
+ case 0xff8d: return "GDK_KP_Enter";
+ case 0xebb: return "GDK_Hangul_Khieuq";
+ case 0x06c: return "GDK_l";
+ case 0xdc7: return "GDK_Thai_wowaen";
+ case 0xffe7: return "GDK_Meta_L";
+ case 0xfd05: return "GDK_3270_BackTab";
+ case 0xdc0: return "GDK_Thai_phosamphao";
+ case 0xdc1: return "GDK_Thai_moma";
+ case 0xdc2: return "GDK_Thai_yoyak";
+ case 0xffe6: return "GDK_Shift_Lock";
+ case 0xdc4: return "GDK_Thai_ru";
+ case 0x06a: return "GDK_j";
+ case 0xdc6: return "GDK_Thai_lu";
+ case 0xacd: return "GDK_rightopentriangle";
+ case 0xace: return "GDK_emopencircle";
+ case 0xffe1: return "GDK_Shift_L";
+ case 0xacf: return "GDK_emopenrectangle";
+ case 0xaca: return "GDK_signaturemark";
+ case 0xacc: return "GDK_leftopentriangle";
+ case 0xffe0: return "GDK_F35, GDK_R15";
+ case 0xfe78: return "GDK_Overlay1_Enable";
+ case 0xfe79: return "GDK_Overlay2_Enable";
+ case 0xea4: return "GDK_Hangul_Nieun";
+ case 0xff3b: return "GDK_Hangul_PostHanja";
+ case 0xfe70: return "GDK_AccessX_Enable";
+ case 0xfe71: return "GDK_AccessX_Feedback_Enable";
+ case 0xfe72: return "GDK_RepeatKeys_Enable";
+ case 0xffe2: return "GDK_Shift_R";
+ case 0xfe74: return "GDK_BounceKeys_Enable";
+ case 0xfe75: return "GDK_StickyKeys_Enable";
+ case 0xfe76: return "GDK_MouseKeys_Enable";
+ case 0xfe77: return "GDK_MouseKeys_Accel_Enable";
+ case 0xdde: return "GDK_Thai_maihanakat_maitho";
+ case 0x4a8: return "GDK_kana_i";
+ case 0x4a9: return "GDK_kana_u";
+ case 0xdda: return "GDK_Thai_phinthu";
+ case 0xed6: return "GDK_Hangul_J_KiyeogSios";
+ case 0x4a2: return "GDK_kana_openingbracket";
+ case 0x4a3: return "GDK_kana_closingbracket";
+ case 0x4a1: return "GDK_kana_fullstop";
+ case 0x4a6: return "GDK_kana_WO";
+ case 0x4a7: return "GDK_kana_a";
+ case 0x4a4: return "GDK_kana_comma";
+ case 0x4a5: return "GDK_kana_conjunctive, GDK_kana_middledot";
+ case 0x8c8: return "GDK_approximate";
+ case 0xba3: return "GDK_leftcaret";
+ case 0xdcb: return "GDK_Thai_hohip";
+ case 0xdcc: return "GDK_Thai_lochula";
+ case 0xac9: return "GDK_trademark";
+ case 0xdce: return "GDK_Thai_honokhuk";
+ case 0xdcf: return "GDK_Thai_paiyannoi";
+ case 0xac5: return "GDK_fiveeighths";
+ case 0x0ab: return "GDK_guillemotleft";
+ case 0xff3d: return "GDK_MultipleCandidate, GDK_Zen_Koho, GDK_Hangul_MultipleCandidate";
+ case 0xac3: return "GDK_oneeighth";
+ case 0x0ac: return "GDK_notsign";
+ case 0x7f4: return "GDK_Greek_tau";
+ case 0x7f5: return "GDK_Greek_upsilon";
+ case 0xff80: return "GDK_KP_Space";
+ case 0x7f7: return "GDK_Greek_chi";
+ case 0x7f0: return "GDK_Greek_pi";
+ case 0x7f1: return "GDK_Greek_rho";
+ case 0x7f2: return "GDK_Greek_sigma";
+ case 0x7f3: return "GDK_Greek_finalsmallsigma";
+ case 0xff89: return "GDK_KP_Tab";
+ case 0x7f8: return "GDK_Greek_psi";
+ case 0x7f9: return "GDK_Greek_omega";
+ case 0xdd5: return "GDK_Thai_saraii";
+ case 0xdd4: return "GDK_Thai_sarai";
+ case 0xdd7: return "GDK_Thai_sarauee";
+ case 0xdd6: return "GDK_Thai_saraue";
+ case 0xdd1: return "GDK_Thai_maihanakat";
+ case 0xdd0: return "GDK_Thai_saraa";
+ case 0xdd3: return "GDK_Thai_saraam";
+ case 0xdd2: return "GDK_Thai_saraaa";
+ case 0x4ab: return "GDK_kana_o";
+ case 0x4ac: return "GDK_kana_ya";
+ case 0x4aa: return "GDK_kana_e";
+ case 0x4af: return "GDK_kana_tsu, GDK_kana_tu";
+ case 0xdd8: return "GDK_Thai_sarau";
+ case 0x4ad: return "GDK_kana_yu";
+ case 0x4ae: return "GDK_kana_yo";
+ case 0xad9: return "GDK_latincross";
+ case 0xdf1: return "GDK_Thai_leknung";
+ case 0xada: return "GDK_hexagram";
+ case 0xad0: return "GDK_leftsinglequotemark";
+ case 0xfe7a: return "GDK_AudibleBell_Enable";
+ case 0xad2: return "GDK_leftdoublequotemark";
+ case 0xad3: return "GDK_rightdoublequotemark";
+ case 0xad4: return "GDK_prescription";
+ case 0xadb: return "GDK_filledrectbullet";
+ case 0xad6: return "GDK_minutes";
+ case 0xad7: return "GDK_seconds";
+ case 0xffd6: return "GDK_F25, GDK_R5";
+ case 0xffd7: return "GDK_F26, GDK_R6";
+ case 0xffd4: return "GDK_F23, GDK_R3";
+ case 0xfe73: return "GDK_SlowKeys_Enable";
+ case 0xffd2: return "GDK_F21, GDK_R1";
+ case 0xffd3: return "GDK_F22, GDK_R2";
+ case 0xffd0: return "GDK_F19, GDK_L9";
+ case 0xffd1: return "GDK_F20, GDK_L10";
+ case 0xffffff: return "GDK_VoidSymbol";
+ case 0xffd8: return "GDK_F27, GDK_R7";
+ case 0xffd9: return "GDK_F28, GDK_R8";
+ case 0x1fb: return "GDK_udoubleacute";
+ case 0x8b2: return "GDK_botleftsummation";
+ case 0x8b1: return "GDK_topleftsummation";
+ case 0x8b0: return "GDK_rightmiddlecurlybrace";
+ case 0x1ff: return "GDK_abovedot";
+ case 0x8b6: return "GDK_botrightsummation";
+ case 0x8b5: return "GDK_toprightsummation";
+ case 0x1fe: return "GDK_tcedilla";
+ case 0xdaa: return "GDK_Thai_chochang";
+ case 0xba6: return "GDK_rightcaret";
+ case 0xda3: return "GDK_Thai_khokhuat";
+ case 0xacb: return "GDK_trademarkincircle";
+ case 0xabb: return "GDK_figdash";
+ case 0x5da: return "GDK_Arabic_ghain";
+ case 0xaf9: return "GDK_telephone";
+ case 0xabc: return "GDK_leftanglebracket";
+ case 0xffc3: return "GDK_F6";
+ case 0xffc2: return "GDK_F5";
+ case 0xffc1: return "GDK_F4";
+ case 0xffc0: return "GDK_F3";
+ case 0xffc7: return "GDK_F10";
+ case 0xffc6: return "GDK_F9";
+ case 0xfee8: return "GDK_Pointer_Button_Dflt";
+ case 0xfee9: return "GDK_Pointer_Button1";
+ case 0xfee6: return "GDK_Pointer_DownLeft";
+ case 0xfee7: return "GDK_Pointer_DownRight";
+ case 0xffc9: return "GDK_F12, GDK_L2";
+ case 0xfee5: return "GDK_Pointer_UpRight";
+ case 0xfee2: return "GDK_Pointer_Up";
+ case 0xfee3: return "GDK_Pointer_Down";
+ case 0xfee0: return "GDK_Pointer_Left";
+ case 0xfee1: return "GDK_Pointer_Right";
+ case 0x1f2: return "GDK_ncaron";
+ case 0x1f0: return "GDK_dstroke";
+ case 0x1f1: return "GDK_nacute";
+ case 0x8bf: return "GDK_integral";
+ case 0x8be: return "GDK_greaterthanequal";
+ case 0x1f5: return "GDK_odoubleacute";
+ case 0x20a7: return "GDK_PesetaSign";
+ case 0xdf7: return "GDK_Thai_lekchet";
+ case 0x1f8: return "GDK_rcaron";
+ case 0x1f9: return "GDK_uring";
+ case 0xdf6: return "GDK_Thai_lekhok";
+ case 0xffdf: return "GDK_F34, GDK_R14";
+ case 0xedd: return "GDK_Hangul_J_RieulMieum";
+ case 0xffdd: return "GDK_F32, GDK_R12";
+ case 0xffde: return "GDK_F33, GDK_R13";
+ case 0xffdb: return "GDK_F30, GDK_R10";
+ case 0xffdc: return "GDK_F31, GDK_R11";
+ case 0xffda: return "GDK_F29, GDK_R9";
+ case 0xeca: return "GDK_Hangul_OE";
+ case 0xedf: return "GDK_Hangul_J_RieulSios";
+ case 0xbfc: return "GDK_righttack";
+ case 0xffcc: return "GDK_F15, GDK_L5";
+ case 0xffcb: return "GDK_F14, GDK_L4";
+ case 0xffca: return "GDK_F13, GDK_L3";
+ case 0xeb9: return "GDK_Hangul_SsangJieuj";
+ case 0x20ac: return "GDK_EuroSign";
+ case 0xffcf: return "GDK_F18, GDK_L8";
+ case 0xffce: return "GDK_F17, GDK_L7";
+ case 0xffcd: return "GDK_F16, GDK_L6";
+ case 0xfeef: return "GDK_Pointer_DblClick1";
+ case 0xeb3: return "GDK_Hangul_SsangPieub";
+ case 0xfeed: return "GDK_Pointer_Button5";
+ case 0xff1b: return "GDK_Escape";
+ case 0xfeeb: return "GDK_Pointer_Button3";
+ case 0xfeec: return "GDK_Pointer_Button4";
+ case 0xeb4: return "GDK_Hangul_PieubSios";
+ case 0xfeea: return "GDK_Pointer_Button2";
+ case 0x5d8: return "GDK_Arabic_zah";
+ case 0x5d9: return "GDK_Arabic_ain";
+ case 0x5d4: return "GDK_Arabic_sheen";
+ case 0x5d5: return "GDK_Arabic_sad";
+ case 0x5d6: return "GDK_Arabic_dad";
+ case 0x5d7: return "GDK_Arabic_tah";
+ case 0x5d0: return "GDK_Arabic_thal";
+ case 0x5d1: return "GDK_Arabic_ra";
+ case 0x5d2: return "GDK_Arabic_zain";
+ case 0x5d3: return "GDK_Arabic_seen";
+ case 0xefa: return "GDK_Hangul_J_YeorinHieuh";
+ case 0x2c6: return "GDK_Ccircumflex";
+ case 0x2c5: return "GDK_Cabovedot";
+ case 0xdf4: return "GDK_Thai_leksi";
+ case 0x7ba: return "GDK_Greek_upsilonaccentdieresis";
+ case 0x7bb: return "GDK_Greek_omegaaccent";
+ case 0x3a3: return "GDK_Rcedilla";
+ case 0x0da: return "GDK_Uacute";
+ case 0x0dc: return "GDK_Udiaeresis";
+ case 0x0db: return "GDK_Ucircumflex";
+ case 0x0de: return "GDK_THORN, GDK_Thorn";
+ case 0x0dd: return "GDK_Yacute";
+ case 0x0df: return "GDK_ssharp";
+ case 0xfe34: return "GDK_ISO_Enter";
+ case 0xdcd: return "GDK_Thai_oang";
+ case 0xac6: return "GDK_seveneighths";
+ case 0xfe30: return "GDK_ISO_Continuous_Underline";
+ case 0xfe31: return "GDK_ISO_Discontinuous_Underline";
+ case 0xfe32: return "GDK_ISO_Emphasize";
+ case 0xfe33: return "GDK_ISO_Center_Object";
+ case 0xce9: return "GDK_hebrew_yod";
+ case 0xce8: return "GDK_hebrew_tet, GDK_hebrew_teth";
+ case 0xea5: return "GDK_Hangul_NieunJieuj";
+ case 0x1c6: return "GDK_Cacute";
+ case 0xce1: return "GDK_hebrew_bet, GDK_hebrew_beth";
+ case 0xce0: return "GDK_hebrew_aleph";
+ case 0xce3: return "GDK_hebrew_dalet, GDK_hebrew_daleth";
+ case 0xce2: return "GDK_hebrew_gimel, GDK_hebrew_gimmel";
+ case 0x7a4: return "GDK_Greek_IOTAaccent";
+ case 0xce4: return "GDK_hebrew_he";
+ case 0xce7: return "GDK_hebrew_chet, GDK_hebrew_het";
+ case 0x1c0: return "GDK_Racute";
+ case 0x3c0: return "GDK_Amacron";
+ case 0x3c7: return "GDK_Iogonek";
+ case 0x1c3: return "GDK_Abreve";
+ case 0x069: return "GDK_i";
+ case 0x068: return "GDK_h";
+ case 0x067: return "GDK_g";
+ case 0x066: return "GDK_f";
+ case 0xfd0b: return "GDK_3270_PA2";
+ case 0x064: return "GDK_d";
+ case 0xfd0d: return "GDK_3270_Test";
+ case 0x062: return "GDK_b";
+ case 0x061: return "GDK_a";
+ case 0x060: return "GDK_grave, GDK_quoteleft";
+ case 0x0d1: return "GDK_Ntilde";
+ case 0x0d0: return "GDK_ETH, GDK_Eth";
+ case 0x0d3: return "GDK_Oacute";
+ case 0x0d2: return "GDK_Ograve";
+ case 0x0d5: return "GDK_Otilde";
+ case 0x0d4: return "GDK_Ocircumflex";
+ case 0x0d7: return "GDK_multiply";
+ case 0x0d6: return "GDK_Odiaeresis";
+ case 0x0d9: return "GDK_Ugrave";
+ case 0x0d8: return "GDK_Ooblique";
+ case 0x6ae: return "GDK_Byelorussian_shortu";
+ case 0xdea: return "GDK_Thai_maitri";
+ case 0x7b8: return "GDK_Greek_upsilonaccent";
+ case 0x7b9: return "GDK_Greek_upsilondieresis";
+ case 0x9df: return "GDK_blank";
+ case 0x7b1: return "GDK_Greek_alphaaccent";
+ case 0x7b2: return "GDK_Greek_epsilonaccent";
+ case 0x7b3: return "GDK_Greek_etaaccent";
+ case 0x7b4: return "GDK_Greek_iotaaccent";
+ case 0x6cd: return "GDK_Cyrillic_em";
+ case 0x7b6: return "GDK_Greek_iotaaccentdieresis";
+ case 0x7b7: return "GDK_Greek_omicronaccent";
+ case 0x3cc: return "GDK_Eabovedot";
+ case 0xfd09: return "GDK_3270_Quit";
+ case 0x6ce: return "GDK_Cyrillic_en";
+ case 0x3cf: return "GDK_Imacron";
+ case 0x06f: return "GDK_o";
+ case 0xfd02: return "GDK_3270_FieldMark";
+ case 0xfd03: return "GDK_3270_Right2";
+ case 0xfd04: return "GDK_3270_Left2";
+ case 0x06b: return "GDK_k";
+ case 0xfd06: return "GDK_3270_EraseEOF";
+ case 0xfd07: return "GDK_3270_EraseInput";
+ case 0xcea: return "GDK_hebrew_finalkaph";
+ case 0xcec: return "GDK_hebrew_lamed";
+ case 0xceb: return "GDK_hebrew_kaph";
+ case 0xcee: return "GDK_hebrew_mem";
+ case 0x8b3: return "GDK_topvertsummationconnector";
+ case 0xcef: return "GDK_hebrew_finalnun";
+ case 0x8f6: return "GDK_function";
+ case 0xddf: return "GDK_Thai_baht";
+ case 0xdf8: return "GDK_Thai_lekpaet";
+ case 0x6df: return "GDK_Cyrillic_hardsign";
+ case 0x6de: return "GDK_Cyrillic_che";
+ case 0x6dd: return "GDK_Cyrillic_shcha";
+ case 0x6dc: return "GDK_Cyrillic_e";
+ case 0x6db: return "GDK_Cyrillic_sha";
+ case 0x6da: return "GDK_Cyrillic_ze";
+ case 0xeb6: return "GDK_Hangul_SsangSios";
+ case 0x0c1: return "GDK_Aacute";
+ case 0xade: return "GDK_emfilledcircle";
+ case 0xff6a: return "GDK_Help";
+ case 0xff6b: return "GDK_Break";
+ case 0x7e9: return "GDK_Greek_iota";
+ case 0x7e8: return "GDK_Greek_theta";
+ case 0xff34: return "GDK_Hangul_Hanja";
+ case 0x7e5: return "GDK_Greek_epsilon";
+ case 0x7e4: return "GDK_Greek_delta";
+ case 0x7e7: return "GDK_Greek_eta";
+ case 0x7e6: return "GDK_Greek_zeta";
+ case 0x7e1: return "GDK_Greek_alpha";
+ case 0x7e3: return "GDK_Greek_gamma";
+ case 0x7e2: return "GDK_Greek_beta";
+ case 0x1e6: return "GDK_cacute";
+ case 0x7b5: return "GDK_Greek_iotadieresis";
+ case 0x1e5: return "GDK_lacute";
+ case 0xda5: return "GDK_Thai_khokhon";
+ case 0xecb: return "GDK_Hangul_YO";
+ case 0xbcc: return "GDK_quad";
+ case 0x8ef: return "GDK_partialderivative";
+ case 0xbca: return "GDK_jot";
+ case 0x8fe: return "GDK_downarrow";
+ case 0x8fd: return "GDK_rightarrow";
+ case 0x8fc: return "GDK_uparrow";
+ case 0x8fb: return "GDK_leftarrow";
+ case 0x6d9: return "GDK_Cyrillic_yeru";
+ case 0x6d8: return "GDK_Cyrillic_softsign";
+ case 0x6d7: return "GDK_Cyrillic_ve";
+ case 0x6d6: return "GDK_Cyrillic_zhe";
+ case 0x6d5: return "GDK_Cyrillic_u";
+ case 0x1e0: return "GDK_racute";
+ case 0x6d3: return "GDK_Cyrillic_es";
+ case 0x6d2: return "GDK_Cyrillic_er";
+ case 0x6d1: return "GDK_Cyrillic_ya";
+ case 0x6d0: return "GDK_Cyrillic_pe";
+ case 0xea7: return "GDK_Hangul_Dikeud";
+ case 0xfee4: return "GDK_Pointer_UpLeft";
+ case 0xed4: return "GDK_Hangul_J_Kiyeog";
+ case 0xea6: return "GDK_Hangul_NieunHieuh";
+ case 0xbcf: return "GDK_circle";
+ case 0xff60: return "GDK_Select";
+ case 0x04e: return "GDK_N";
+ case 0xff62: return "GDK_Execute";
+ case 0xff63: return "GDK_Insert";
+ case 0xff65: return "GDK_Undo";
+ case 0xff66: return "GDK_Redo";
+ case 0xff7f: return "GDK_Num_Lock";
+ case 0xff68: return "GDK_Find";
+ case 0xff69: return "GDK_Cancel";
+ case 0x7ef: return "GDK_Greek_omicron";
+ case 0x7ea: return "GDK_Greek_kappa";
+ case 0x6b7: return "GDK_Ukrainian_YI, GDK_Ukranian_YI";
+ case 0x6ac: return "GDK_Macedonia_kje";
+ case 0x7eb: return "GDK_Greek_lamda, GDK_Greek_lambda";
+ case 0xed5: return "GDK_Hangul_J_SsangKiyeog";
+ case 0xdf0: return "GDK_Thai_leksun";
+ case 0xea1: return "GDK_Hangul_Kiyeog";
+ case 0xaac: return "GDK_signifblank";
+ case 0xdd9: return "GDK_Thai_sarauu";
+ case 0x7c8: return "GDK_Greek_THETA";
+ case 0x2de: return "GDK_Scircumflex";
+ case 0x2dd: return "GDK_Ubreve";
+ case 0x1a9: return "GDK_Scaron";
+ case 0xed2: return "GDK_Hangul_YI";
+ case 0xab6: return "GDK_onesixth";
+ case 0x1a3: return "GDK_Lstroke";
+ case 0x1a2: return "GDK_breve";
+ case 0x1a1: return "GDK_Aogonek";
+ case 0xed3: return "GDK_Hangul_I";
+ case 0x1a6: return "GDK_Sacute";
+ case 0x1a5: return "GDK_Lcaron";
+ case 0x03d: return "GDK_equal";
+ case 0x03e: return "GDK_greater";
+ case 0x03f: return "GDK_question";
+ case 0xee0: return "GDK_Hangul_J_RieulTieut";
+ case 0xee7: return "GDK_Hangul_J_SsangSios";
+ case 0x03a: return "GDK_colon";
+ case 0x03b: return "GDK_semicolon";
+ case 0x03c: return "GDK_less";
+ case 0xee9: return "GDK_Hangul_J_Jieuj";
+ case 0xffc5: return "GDK_F8";
+ case 0x4bf: return "GDK_kana_SO";
+ case 0x4be: return "GDK_kana_SE";
+ case 0x4bd: return "GDK_kana_SU";
+ case 0x4bc: return "GDK_kana_SHI";
+ case 0x4bb: return "GDK_kana_SA";
+ case 0x4ba: return "GDK_kana_KO";
+ case 0xec7: return "GDK_Hangul_O";
+ case 0xed7: return "GDK_Hangul_J_Nieun";
+ case 0x7ab: return "GDK_Greek_OMEGAaccent";
+ case 0x0f4: return "GDK_ocircumflex";
+ case 0x1ac: return "GDK_Zacute";
+ case 0x1ab: return "GDK_Tcaron";
+ case 0x1aa: return "GDK_Scedilla";
+ case 0x1af: return "GDK_Zabovedot";
+ case 0x1ae: return "GDK_Zcaron";
+ case 0x2d8: return "GDK_Gcircumflex";
+ case 0x1cc: return "GDK_Ecaron";
+ case 0xfe60: return "GDK_dead_belowdot";
+ case 0x20a1: return "GDK_ColonSign";
+ case 0xed0: return "GDK_Hangul_YU";
+ case 0x2d5: return "GDK_Gabovedot";
+ case 0x4b7: return "GDK_kana_KI";
+ case 0x4b6: return "GDK_kana_KA";
+ case 0x4b5: return "GDK_kana_O";
+ case 0x4b4: return "GDK_kana_E";
+ case 0x4b3: return "GDK_kana_U";
+ case 0x4b2: return "GDK_kana_I";
+ case 0x4b1: return "GDK_kana_A";
+ case 0x4b0: return "GDK_prolongedsound";
+ case 0x4b9: return "GDK_kana_KE";
+ case 0x4b8: return "GDK_kana_KU";
+ case 0x034: return "GDK_4";
+ case 0x035: return "GDK_5";
+ case 0x036: return "GDK_6";
+ case 0x037: return "GDK_7";
+ case 0x030: return "GDK_0";
+ case 0x031: return "GDK_1";
+ case 0x032: return "GDK_2";
+ case 0x033: return "GDK_3";
+ case 0xed1: return "GDK_Hangul_EU";
+ case 0x038: return "GDK_8";
+ case 0x3bf: return "GDK_eng";
+ case 0xdb2: return "GDK_Thai_thophuthao";
+ case 0xab8: return "GDK_careof";
+ case 0x8cd: return "GDK_ifonlyif";
+ case 0x8ce: return "GDK_implies";
+ case 0x8cf: return "GDK_identical";
+ case 0xab5: return "GDK_fourfifths";
+ case 0xab2: return "GDK_onefifth";
+ case 0xab3: return "GDK_twofifths";
+ case 0xab0: return "GDK_onethird";
+ case 0x07e: return "GDK_asciitilde";
+ case 0xff91: return "GDK_KP_F1";
+ case 0xffed: return "GDK_Hyper_L";
+ case 0xff93: return "GDK_KP_F3";
+ case 0xff92: return "GDK_KP_F2";
+ case 0xff95: return "GDK_KP_Home";
+ case 0xff94: return "GDK_KP_F4";
+ case 0xff97: return "GDK_KP_Up";
+ case 0xff96: return "GDK_KP_Left";
+ case 0xff99: return "GDK_KP_Down";
+ case 0xff98: return "GDK_KP_Right";
+ case 0x0a4: return "GDK_currency";
+ case 0x0a5: return "GDK_yen";
+ case 0x0a2: return "GDK_cent";
+ case 0x0a3: return "GDK_sterling";
+ case 0x0a0: return "GDK_nobreakspace";
+ case 0x0a1: return "GDK_exclamdown";
+ case 0xde6: return "GDK_Thai_maiyamok";
+ case 0xde7: return "GDK_Thai_maitaikhu";
+ case 0xde4: return "GDK_Thai_saraaimaimalai";
+ case 0x6d4: return "GDK_Cyrillic_te";
+ case 0xde2: return "GDK_Thai_sarao";
+ case 0xde3: return "GDK_Thai_saraaimaimuan";
+ case 0xde0: return "GDK_Thai_sarae";
+ case 0xde1: return "GDK_Thai_saraae";
+ case 0x7a8: return "GDK_Greek_UPSILONaccent";
+ case 0x8b7: return "GDK_rightmiddlesummation";
+ case 0xde9: return "GDK_Thai_maitho";
+ case 0xff2d: return "GDK_Kana_Lock";
+ case 0xff2e: return "GDK_Kana_Shift";
+ case 0xff2f: return "GDK_Eisu_Shift";
+ case 0xff2a: return "GDK_Zenkaku_Hankaku";
+ case 0xff2b: return "GDK_Touroku";
+ case 0xff2c: return "GDK_Massyo";
+ case 0x7af: return "GDK_Greek_horizbar";
+ case 0xff9a: return "GDK_KP_Prior, GDK_KP_Page_Up";
+ case 0xffe4: return "GDK_Control_R";
+ case 0xff9c: return "GDK_KP_End";
+ case 0xff9b: return "GDK_KP_Next, GDK_KP_Page_Down";
+ case 0xff9e: return "GDK_KP_Insert";
+ case 0xff9d: return "GDK_KP_Begin";
+ case 0xffe3: return "GDK_Control_L";
+ case 0xff9f: return "GDK_KP_Delete";
+ case 0x0af: return "GDK_macron";
+ case 0x0ad: return "GDK_hyphen";
+ case 0x0ae: return "GDK_registered";
+ case 0xffe9: return "GDK_Alt_L";
+ case 0xffe8: return "GDK_Meta_R";
+ case 0x0aa: return "GDK_ordfeminine";
+ case 0xeba: return "GDK_Hangul_Cieuc";
+ case 0xda9: return "GDK_Thai_choching";
+ case 0xfd0a: return "GDK_3270_PA1";
+ case 0x8c9: return "GDK_similarequal";
+ case 0xabf: return "GDK_marker";
+ case 0x8c5: return "GDK_nabla";
+ case 0xabd: return "GDK_decimalpoint";
+ case 0xabe: return "GDK_rightanglebracket";
+ case 0x8c0: return "GDK_therefore";
+ case 0x8c1: return "GDK_variation";
+ case 0x8c2: return "GDK_infinity";
+ case 0xff24: return "GDK_Romaji";
+ case 0xff25: return "GDK_Hiragana";
+ case 0xff26: return "GDK_Katakana";
+ case 0xff27: return "GDK_Hiragana_Katakana";
+ case 0xff20: return "GDK_Multi_key";
+ case 0xff21: return "GDK_Kanji";
+ case 0xff22: return "GDK_Muhenkan";
+ case 0xff23: return "GDK_Henkan_Mode, GDK_Henkan";
+ case 0xcdf: return "GDK_hebrew_doublelowline";
+ case 0xff28: return "GDK_Zenkaku";
+ case 0xff29: return "GDK_Hankaku";
+ case 0xded: return "GDK_Thai_nikhahit";
+ case 0xdeb: return "GDK_Thai_maichattawa";
+ case 0xdec: return "GDK_Thai_thanthakhat";
+ case 0xebc: return "GDK_Hangul_Tieut";
+ case 0xab7: return "GDK_fivesixths";
+ case 0xfed5: return "GDK_Terminate_Server";
+ case 0xfed4: return "GDK_Last_Virtual_Screen";
+ case 0x6c8: return "GDK_Cyrillic_ha";
+ case 0xfed1: return "GDK_Prev_Virtual_Screen";
+ case 0xfed0: return "GDK_First_Virtual_Screen";
+ case 0xfed2: return "GDK_Next_Virtual_Screen";
+ case 0xced: return "GDK_hebrew_finalmem";
+ case 0x1e8: return "GDK_ccaron";
+ case 0xfe2c: return "GDK_ISO_Fast_Cursor_Left";
+ case 0xfe2b: return "GDK_ISO_Release_Both_Margins";
+ case 0xfe2a: return "GDK_ISO_Release_Margin_Right";
+ case 0x8b4: return "GDK_botvertsummationconnector";
+ case 0x1e3: return "GDK_abreve";
+ case 0xfe2f: return "GDK_ISO_Fast_Cursor_Down";
+ case 0xfe2e: return "GDK_ISO_Fast_Cursor_Up";
+ case 0xfe2d: return "GDK_ISO_Fast_Cursor_Right";
+ case 0x6a4: return "GDK_Ukrainian_ie, GDK_Ukranian_je";
+ case 0x6a5: return "GDK_Macedonia_dse";
+ case 0x6a6: return "GDK_Ukrainian_i, GDK_Ukranian_i";
+ case 0x6a7: return "GDK_Ukrainian_yi, GDK_Ukranian_yi";
+ case 0x7d1: return "GDK_Greek_RHO";
+ case 0x6a1: return "GDK_Serbian_dje";
+ case 0x6a2: return "GDK_Macedonia_gje";
+ case 0x6a3: return "GDK_Cyrillic_io";
+ case 0x6a8: return "GDK_Cyrillic_je, GDK_Serbian_je";
+ case 0x6a9: return "GDK_Cyrillic_lje, GDK_Serbian_lje";
+ case 0xea9: return "GDK_Hangul_Rieul";
+ case 0xea8: return "GDK_Hangul_SsangDikeud";
+ case 0xdc8: return "GDK_Thai_sosala";
+ case 0xeaa: return "GDK_Hangul_RieulKiyeog";
+ case 0xff61: return "GDK_Print";
+ case 0x3bd: return "GDK_ENG";
+ case 0x07a: return "GDK_z";
+ case 0x07b: return "GDK_braceleft";
+ case 0x07c: return "GDK_bar";
+ case 0x07d: return "GDK_braceright";
+ case 0x3ba: return "GDK_emacron";
+ case 0x3bb: return "GDK_gcedilla";
+ case 0x3bc: return "GDK_tslash";
+ case 0x5c9: return "GDK_Arabic_tehmarbuta";
+ case 0x5c8: return "GDK_Arabic_beh";
+ case 0xaae: return "GDK_ellipsis";
+ case 0x5c1: return "GDK_Arabic_hamza";
+ case 0x5c3: return "GDK_Arabic_hamzaonalef";
+ case 0x5c2: return "GDK_Arabic_maddaonalef";
+ case 0x5c5: return "GDK_Arabic_hamzaunderalef";
+ case 0x5c4: return "GDK_Arabic_hamzaonwaw";
+ case 0x5c7: return "GDK_Arabic_alef";
+ case 0x5c6: return "GDK_Arabic_hamzaonyeh";
+ case 0xdc9: return "GDK_Thai_sorusi";
+ case 0x4c0: return "GDK_kana_TA";
+ case 0x6af: return "GDK_Cyrillic_dzhe, GDK_Serbian_dze";
+ case 0xead: return "GDK_Hangul_RieulSios";
+ case 0xeac: return "GDK_Hangul_RieulPieub";
+ case 0x6aa: return "GDK_Cyrillic_nje, GDK_Serbian_nje";
+ case 0x6ab: return "GDK_Serbian_tshe";
+ case 0x4c1: return "GDK_kana_CHI, GDK_kana_TI";
+ case 0xba8: return "GDK_downcaret";
+ case 0xff67: return "GDK_Menu";
+ case 0xadf: return "GDK_emfilledrect";
+ case 0x7ee: return "GDK_Greek_xi";
+ case 0xfe29: return "GDK_ISO_Release_Margin_Left";
+ case 0xfe28: return "GDK_ISO_Set_Margin_Right";
+ case 0x7ed: return "GDK_Greek_nu";
+ case 0xfe23: return "GDK_ISO_Partial_Line_Up";
+ case 0x1ef: return "GDK_dcaron";
+ case 0xfe21: return "GDK_ISO_Move_Line_Up";
+ case 0xfe20: return "GDK_ISO_Left_Tab";
+ case 0xfe27: return "GDK_ISO_Set_Margin_Left";
+ case 0xfe26: return "GDK_ISO_Partial_Space_Right";
+ case 0xfe25: return "GDK_ISO_Partial_Space_Left";
+ case 0xfe24: return "GDK_ISO_Partial_Line_Down";
+ case 0xeb0: return "GDK_Hangul_RieulHieuh";
+ case 0x4c6: return "GDK_kana_NI";
+ case 0xed9: return "GDK_Hangul_J_NieunHieuh";
+ case 0x5ca: return "GDK_Arabic_teh";
+ case 0x5cc: return "GDK_Arabic_jeem";
+ case 0x4c7: return "GDK_kana_NU";
+ case 0x5ce: return "GDK_Arabic_khah";
+ case 0x5cd: return "GDK_Arabic_hah";
+ case 0x5cf: return "GDK_Arabic_dal";
+ case 0x078: return "GDK_x";
+ case 0x079: return "GDK_y";
+ case 0x7ec: return "GDK_Greek_mu";
+ case 0x070: return "GDK_p";
+ case 0x071: return "GDK_q";
+ case 0x072: return "GDK_r";
+ case 0x073: return "GDK_s";
+ case 0x074: return "GDK_t";
+ case 0x075: return "GDK_u";
+ case 0x076: return "GDK_v";
+ case 0x077: return "GDK_w";
+ case 0x0e2: return "GDK_acircumflex";
+ case 0x0e3: return "GDK_atilde";
+ case 0x0e0: return "GDK_agrave";
+ case 0x0e1: return "GDK_aacute";
+ case 0x0e6: return "GDK_ae";
+ case 0x0e7: return "GDK_ccedilla";
+ case 0x0e4: return "GDK_adiaeresis";
+ case 0x0e5: return "GDK_aring";
+ case 0x0e8: return "GDK_egrave";
+ case 0x0e9: return "GDK_eacute";
+ case 0xea2: return "GDK_Hangul_SsangKiyeog";
+ case 0xfd17: return "GDK_3270_Setup";
+ case 0xfd16: return "GDK_3270_Play";
+ case 0xfd15: return "GDK_3270_Copy";
+ case 0xfd14: return "GDK_3270_Rule";
+ case 0xfd13: return "GDK_3270_Ident";
+ case 0xfd12: return "GDK_3270_Jump";
+ case 0xfd11: return "GDK_3270_KeyClick";
+ case 0xfe22: return "GDK_ISO_Move_Line_Down";
+ case 0xffaa: return "GDK_KP_Multiply";
+ case 0xff3a: return "GDK_Hangul_PreHanja";
+ case 0xffac: return "GDK_KP_Separator";
+ case 0xffab: return "GDK_KP_Add";
+ case 0xffae: return "GDK_KP_Decimal";
+ case 0xffad: return "GDK_KP_Subtract";
+ case 0xfd19: return "GDK_3270_ChangeScreen";
+ case 0xfd18: return "GDK_3270_Record";
+ case 0xafb: return "GDK_phonographcopyright";
+ case 0x041: return "GDK_A";
+ case 0xda8: return "GDK_Thai_chochan";
+ case 0xafa: return "GDK_telephonerecorder";
+ case 0xaff: return "GDK_cursor";
+ case 0xfe58: return "GDK_dead_abovering";
+ case 0xfe59: return "GDK_dead_doubleacute";
+ case 0xfe56: return "GDK_dead_abovedot";
+ case 0x1ec: return "GDK_ecaron";
+ case 0xfe54: return "GDK_dead_macron";
+ case 0xfe55: return "GDK_dead_breve";
+ case 0xfe52: return "GDK_dead_circumflex";
+ case 0xfe53: return "GDK_dead_tilde";
+ case 0xfe50: return "GDK_dead_grave";
+ case 0xfe51: return "GDK_dead_acute";
+ case 0xaaa: return "GDK_endash";
+ case 0x20a9: return "GDK_WonSign";
+ case 0x042: return "GDK_B";
+ case 0x1ea: return "GDK_eogonek";
+ case 0x20a3: return "GDK_FFrancSign";
+ case 0x20a2: return "GDK_CruzeiroSign";
+ case 0xebf: return "GDK_Hangul_A";
+ case 0xfd1e: return "GDK_3270_Enter";
+ case 0xfd1d: return "GDK_3270_PrintScreen";
+ case 0xfd1c: return "GDK_3270_CursorSelect";
+ case 0xfd1b: return "GDK_3270_ExSelect";
+ case 0xfd1a: return "GDK_3270_DeleteWord";
+ case 0x3a2: return "GDK_kra, GDK_kappa";
+ case 0xffc4: return "GDK_F7";
+ case 0x0eb: return "GDK_ediaeresis";
+ case 0x0ec: return "GDK_igrave";
+ case 0x0ea: return "GDK_ecircumflex";
+ case 0x0ef: return "GDK_idiaeresis";
+ case 0x0ed: return "GDK_iacute";
+ case 0x0ee: return "GDK_icircumflex";
+ case 0xee1: return "GDK_Hangul_J_RieulPhieuf";
+ case 0xff13: return "GDK_Pause";
+ case 0xcf8: return "GDK_hebrew_resh";
+ case 0xed8: return "GDK_Hangul_J_NieunJieuj";
+ case 0xffc8: return "GDK_F11, GDK_L1";
+ case 0x20a4: return "GDK_LiraSign";
+ case 0x7d8: return "GDK_Greek_PSI";
+ case 0x7d9: return "GDK_Greek_OMEGA";
+ case 0x7d6: return "GDK_Greek_PHI";
+ case 0xff15: return "GDK_Sys_Req";
+ case 0x7d4: return "GDK_Greek_TAU";
+ case 0x7d5: return "GDK_Greek_UPSILON";
+ case 0x7d2: return "GDK_Greek_SIGMA";
+ case 0x7d0: return "GDK_Greek_PI";
+ case 0xff14: return "GDK_Scroll_Lock";
+ case 0xaf2: return "GDK_doubledagger";
+ case 0xaf3: return "GDK_checkmark";
+ case 0xaf0: return "GDK_maltesecross";
+ case 0xaf1: return "GDK_dagger";
+ case 0xaf6: return "GDK_musicalflat";
+ case 0xaf7: return "GDK_malesymbol";
+ case 0xaf4: return "GDK_ballotcross";
+ case 0xaf5: return "GDK_musicalsharp";
+ case 0xfe5f: return "GDK_dead_semivoiced_sound";
+ case 0xdac: return "GDK_Thai_chochoe";
+ case 0xfe5d: return "GDK_dead_iota";
+ case 0xfe5e: return "GDK_dead_voiced_sound";
+ case 0xfe5b: return "GDK_dead_cedilla";
+ case 0xfe5c: return "GDK_dead_ogonek";
+ case 0xdad: return "GDK_Thai_yoying";
+ case 0xfe5a: return "GDK_dead_caron";
+ case 0x8bc: return "GDK_lessthanequal";
+ case 0x5cb: return "GDK_Arabic_theh";
+ case 0xdf5: return "GDK_Thai_lekha";
+ case 0x6e8: return "GDK_Cyrillic_HA";
+ case 0x6e9: return "GDK_Cyrillic_I";
+ case 0x20a6: return "GDK_NairaSign";
+ case 0xee5: return "GDK_Hangul_J_PieubSios";
+ case 0x6e0: return "GDK_Cyrillic_YU";
+ case 0x6e1: return "GDK_Cyrillic_A";
+ case 0x6e2: return "GDK_Cyrillic_BE";
+ case 0x6e3: return "GDK_Cyrillic_TSE";
+ case 0x6e4: return "GDK_Cyrillic_DE";
+ case 0x6e5: return "GDK_Cyrillic_IE";
+ case 0x6e6: return "GDK_Cyrillic_EF";
+ case 0x6e7: return "GDK_Cyrillic_GHE";
+ case 0x8bd: return "GDK_notequal";
+ case 0xbc2: return "GDK_downtack";
+ case 0xbc3: return "GDK_upshoe";
+ case 0xbc0: return "GDK_overbar";
+ case 0x3fd: return "GDK_utilde";
+ case 0x3fe: return "GDK_umacron";
+ case 0xbc4: return "GDK_downstile";
+ case 0xaa2: return "GDK_enspace";
+ case 0x6be: return "GDK_Byelorussian_SHORTU";
+ case 0xede: return "GDK_Hangul_J_RieulPieub";
+ case 0x0a8: return "GDK_diaeresis";
+ case 0x6bf: return "GDK_Cyrillic_DZHE, GDK_Serbian_DZE";
+ case 0x6ba: return "GDK_Cyrillic_NJE, GDK_Serbian_NJE";
+ case 0xeda: return "GDK_Hangul_J_Dikeud";
+ case 0x6bc: return "GDK_Macedonia_KJE";
+ case 0x6bb: return "GDK_Serbian_TSHE";
+ case 0x20ab: return "GDK_DongSign";
+ case 0xee3: return "GDK_Hangul_J_Mieum";
+ case 0x9ef: return "GDK_horizlinescan1";
+ case 0x7a1: return "GDK_Greek_ALPHAaccent";
+ case 0xee2: return "GDK_Hangul_J_RieulHieuh";
+ case 0x6ea: return "GDK_Cyrillic_SHORTI";
+ case 0x6eb: return "GDK_Cyrillic_KA";
+ case 0x6ec: return "GDK_Cyrillic_EL";
+ case 0x6ed: return "GDK_Cyrillic_EM";
+ case 0x6ee: return "GDK_Cyrillic_EN";
+ case 0x6ef: return "GDK_Cyrillic_O";
+ case 0xeb8: return "GDK_Hangul_Jieuj";
+ case 0x3b5: return "GDK_itilde";
+ case 0x0a9: return "GDK_copyright";
+ case 0x3b6: return "GDK_lcedilla";
+ case 0xee6: return "GDK_Hangul_J_Sios";
+ case 0x3f1: return "GDK_ncedilla";
+ case 0x3f2: return "GDK_omacron";
+ case 0x3f3: return "GDK_kcedilla";
+ case 0x6b9: return "GDK_Cyrillic_LJE, GDK_Serbian_LJE";
+ case 0x6b8: return "GDK_Cyrillic_JE, GDK_Serbian_JE";
+ case 0xbce: return "GDK_uptack";
+ case 0x6b5: return "GDK_Macedonia_DSE";
+ case 0x3f9: return "GDK_uogonek";
+ case 0xff7e: return "GDK_Mode_switch, GDK_script_switch, GDK_ISO_Group_Shift, GDK_kana_switch,
GDK_Arabic_switch, GDK_Greek_switch, GDK_Hebrew_switch, GDK_Hangul_switch";
+ case 0x6b6: return "GDK_Ukrainian_I, GDK_Ukranian_I";
+ case 0x6b1: return "GDK_Serbian_DJE";
+ case 0x6b0: return "GDK_numerosign";
+ case 0x6b3: return "GDK_Cyrillic_IO";
+ case 0x6b2: return "GDK_Macedonia_GJE";
+ case 0x5f2: return "GDK_Arabic_sukun";
+ case 0x5f0: return "GDK_Arabic_kasra";
+ case 0x5f1: return "GDK_Arabic_shadda";
+ case 0xda6: return "GDK_Thai_khorakhang";
+ case 0x3b3: return "GDK_rcedilla";
+ case 0x9ed: return "GDK_lowleftcorner";
+ case 0x2e5: return "GDK_cabovedot";
+ case 0x2e6: return "GDK_ccircumflex";
+ case 0xdc3: return "GDK_Thai_rorua";
+ case 0x0bc: return "GDK_onequarter";
+ case 0x0bb: return "GDK_guillemotright";
+ case 0x0ba: return "GDK_masculine";
+ case 0x0bf: return "GDK_questiondown";
+ case 0x0be: return "GDK_threequarters";
+ case 0x0bd: return "GDK_onehalf";
+ case 0x9f8: return "GDK_vertbar";
+ case 0x9f2: return "GDK_horizlinescan7";
+ case 0x9f3: return "GDK_horizlinescan9";
+ case 0x9f0: return "GDK_horizlinescan3";
+ case 0x9f1: return "GDK_horizlinescan5";
+ case 0x9f6: return "GDK_bott";
+ case 0x9f7: return "GDK_topt";
+ case 0x9f4: return "GDK_leftt";
+ case 0x9f5: return "GDK_rightt";
+ case 0x4de: return "GDK_voicedsound";
+ case 0x4dd: return "GDK_kana_N";
+ case 0x4c2: return "GDK_kana_TSU, GDK_kana_TU";
+ case 0x4c3: return "GDK_kana_TE";
+ case 0x4da: return "GDK_kana_RE";
+ case 0x4c5: return "GDK_kana_NA";
+ case 0x4dc: return "GDK_kana_WA";
+ case 0x4db: return "GDK_kana_RO";
+ case 0x4c8: return "GDK_kana_NE";
+ case 0x4c9: return "GDK_kana_NO";
+ case 0xee8: return "GDK_Hangul_J_Ieung";
+ case 0x3a5: return "GDK_Itilde";
+ case 0x040: return "GDK_at";
+ case 0x043: return "GDK_C";
+ case 0x3a6: return "GDK_Lcedilla";
+ case 0x045: return "GDK_E";
+ case 0x044: return "GDK_D";
+ case 0x047: return "GDK_G";
+ case 0x046: return "GDK_F";
+ case 0x049: return "GDK_I";
+ case 0x048: return "GDK_H";
+ case 0x7a5: return "GDK_Greek_IOTAdiaeresis";
+ case 0x7ae: return "GDK_Greek_accentdieresis";
+ case 0xdf3: return "GDK_Thai_leksam";
+ case 0xaa9: return "GDK_emdash";
+ case 0xaa8: return "GDK_hairspace";
+ case 0xeec: return "GDK_Hangul_J_Tieut";
+ case 0xaa3: return "GDK_em3space";
+ case 0x9e4: return "GDK_cr";
+ case 0xaa1: return "GDK_emspace";
+ case 0xaa7: return "GDK_thinspace";
+ case 0xaa6: return "GDK_punctspace";
+ case 0xaa5: return "GDK_digitspace";
+ case 0xaa4: return "GDK_em4space";
+ case 0x0b9: return "GDK_onesuperior";
+ case 0x0b8: return "GDK_cedilla";
+ case 0x0b3: return "GDK_threesuperior";
+ case 0x0b2: return "GDK_twosuperior";
+ case 0x0b1: return "GDK_plusminus";
+ case 0x0b0: return "GDK_degree";
+ case 0x0b7: return "GDK_periodcentered";
+ case 0x0b6: return "GDK_paragraph";
+ case 0x0b5: return "GDK_mu";
+ case 0x0b4: return "GDK_acute";
+ case 0x04a: return "GDK_J";
+ case 0xdf2: return "GDK_Thai_leksong";
+ case 0x04c: return "GDK_L";
+ case 0x04b: return "GDK_K";
+ case 0x3aa: return "GDK_Emacron";
+ case 0x04d: return "GDK_M";
+ case 0x3ac: return "GDK_Tslash";
+ case 0x3ab: return "GDK_Gcedilla";
+ case 0xdf9: return "GDK_Thai_lekkao";
+ case 0x04f: return "GDK_O";
+ case 0x13bd: return "GDK_oe";
+ case 0x13be: return "GDK_Ydiaeresis";
+ case 0x4d5: return "GDK_kana_YU";
+ case 0x4ca: return "GDK_kana_HA";
+ case 0x4cb: return "GDK_kana_HI";
+ case 0x4cc: return "GDK_kana_FU, GDK_kana_HU";
+ case 0x4d1: return "GDK_kana_MU";
+ case 0x4d0: return "GDK_kana_MI";
+ case 0x4d3: return "GDK_kana_MO";
+ case 0x4d2: return "GDK_kana_ME";
+ case 0x7a7: return "GDK_Greek_OMICRONaccent";
+ case 0xae0: return "GDK_enopencircbullet";
+ case 0x4d9: return "GDK_kana_RU";
+ case 0x4d8: return "GDK_kana_RI";
+ case 0x6fa: return "GDK_Cyrillic_ZE";
+ case 0xeea: return "GDK_Hangul_J_Cieuc";
+ case 0x6fc: return "GDK_Cyrillic_E";
+ case 0xfeee: return "GDK_Pointer_DblClick_Dflt";
+ case 0x6fe: return "GDK_Cyrillic_CHE";
+ case 0x6fd: return "GDK_Cyrillic_SHCHA";
+ case 0x6ff: return "GDK_Cyrillic_HARDSIGN";
+ case 0xbd3: return "GDK_upstile";
+ case 0xeb2: return "GDK_Hangul_Pieub";
+ case 0xfd10: return "GDK_3270_AltCursor";
+ case 0xbd6: return "GDK_downshoe";
+ case 0xeb7: return "GDK_Hangul_Ieung";
+ case 0xec4: return "GDK_Hangul_E";
+ case 0xedc: return "GDK_Hangul_J_RieulKiyeog";
+ case 0x1db: return "GDK_Udoubleacute";
+ case 0xeb5: return "GDK_Hangul_Sios";
+ case 0x1de: return "GDK_Tcedilla";
+ case 0x8d6: return "GDK_radical";
+ case 0xff33: return "GDK_Hangul_End";
+ case 0xff32: return "GDK_Hangul_Start";
+ case 0xff31: return "GDK_Hangul";
+ case 0xff30: return "GDK_Eisu_toggle";
+ case 0xff37: return "GDK_Codeinput, GDK_Kanji_Bangou, GDK_Hangul_Codeinput";
+ case 0xff36: return "GDK_Hangul_Romaja";
+ case 0xff35: return "GDK_Hangul_Jamo";
+ case 0x4d4: return "GDK_kana_YA";
+ case 0x5bb: return "GDK_Arabic_semicolon";
+ case 0xff39: return "GDK_Hangul_Banja";
+ case 0xff38: return "GDK_Hangul_Jeonja";
+ case 0x5bf: return "GDK_Arabic_question_mark";
+ case 0x4d7: return "GDK_kana_RA";
+ case 0x4c4: return "GDK_kana_TO";
+ case 0x4d6: return "GDK_kana_YO";
+ case 0x7a9: return "GDK_Greek_UPSILONdieresis";
+ case 0x4cd: return "GDK_kana_HE";
+ case 0xffaf: return "GDK_KP_Divide";
+ case 0x4ce: return "GDK_kana_HO";
+ case 0x1d8: return "GDK_Rcaron";
+ case 0x1d9: return "GDK_Uring";
+ case 0x4cf: return "GDK_kana_MA";
+ case 0xafc: return "GDK_caret";
+ case 0x1d0: return "GDK_Dstroke";
+ case 0x1d1: return "GDK_Nacute";
+ case 0x1d2: return "GDK_Ncaron";
+ case 0x8db: return "GDK_includes";
+ case 0x8de: return "GDK_logicaland";
+ case 0x1d5: return "GDK_Odoubleacute";
+ case 0x9ee: return "GDK_crossinglines";
+ case 0x8df: return "GDK_logicalor";
+ case 0x6f1: return "GDK_Cyrillic_YA";
+ case 0x6f0: return "GDK_Cyrillic_PE";
+ case 0x6f3: return "GDK_Cyrillic_ES";
+ case 0x6f2: return "GDK_Cyrillic_ER";
+ case 0x6f5: return "GDK_Cyrillic_U";
+ case 0x6f4: return "GDK_Cyrillic_TE";
+ case 0xffff: return "GDK_Delete";
+ case 0x6f6: return "GDK_Cyrillic_ZHE";
+ case 0x6f9: return "GDK_Cyrillic_YERU";
+ case 0x6f8: return "GDK_Cyrillic_SOFTSIGN";
+ case 0xbda: return "GDK_leftshoe";
+ case 0xeef: return "GDK_Hangul_RieulYeorinHieuh";
+ case 0xadc: return "GDK_filledlefttribullet";
+ case 0xdbf: return "GDK_Thai_fofan";
+ case 0xeb1: return "GDK_Hangul_Mieum";
+ case 0xafd: return "GDK_singlelowquotemark";
+ case 0xebe: return "GDK_Hangul_Hieuh";
+ case 0xafe: return "GDK_doublelowquotemark";
+ case 0xff3c: return "GDK_SingleCandidate, GDK_Hangul_SingleCandidate";
+ case 0xda2: return "GDK_Thai_khokhai";
+ case 0xaaf: return "GDK_doubbaselinedot";
+ case 0xff3f: return "GDK_Hangul_Special";
+ case 0xff3e: return "GDK_PreviousCandidate, GDK_Mae_Koho, GDK_Hangul_PreviousCandidate";
+ case 0xfe57: return "GDK_dead_diaeresis";
+ case 0xecf: return "GDK_Hangul_WI";
+ case 0x2a9: return "GDK_Iabovedot";
+ case 0xdbe: return "GDK_Thai_phophan";
+ case 0xda1: return "GDK_Thai_kokai";
+ case 0xdbc: return "GDK_Thai_phophung";
+ case 0xdbb: return "GDK_Thai_popla";
+ case 0xdba: return "GDK_Thai_bobaimai";
+ case 0x2fe: return "GDK_scircumflex";
+ case 0x2fd: return "GDK_ubreve";
+ case 0xeaf: return "GDK_Hangul_RieulPhieuf";
+ case 0x2a6: return "GDK_Hcircumflex";
+ case 0xda7: return "GDK_Thai_ngongu";
+ case 0x6fb: return "GDK_Cyrillic_SHA";
+ case 0x1c8: return "GDK_Ccaron";
+ case 0x1c5: return "GDK_Lacute";
+ case 0x0ff: return "GDK_ydiaeresis";
+ case 0x0fe: return "GDK_thorn";
+ case 0x0fd: return "GDK_yacute";
+ case 0x0fc: return "GDK_udiaeresis";
+ case 0x0fb: return "GDK_ucircumflex";
+ case 0x0fa: return "GDK_uacute";
+ case 0xeff: return "GDK_Korean_Won";
+ case 0xda4: return "GDK_Thai_khokhwai";
+ case 0xeae: return "GDK_Hangul_RieulTieut";
+ case 0xffd5: return "GDK_F24, GDK_R4";
+ case 0x20a5: return "GDK_MillSign";
+ case 0x3e0: return "GDK_amacron";
+ case 0xebd: return "GDK_Hangul_Phieuf";
+ case 0x3e7: return "GDK_iogonek";
+ case 0x6b4: return "GDK_Ukrainian_IE, GDK_Ukranian_JE";
+ case 0x0f9: return "GDK_ugrave";
+ case 0x0f8: return "GDK_oslash";
+ case 0x0f7: return "GDK_division";
+ case 0x0f6: return "GDK_odiaeresis";
+ case 0x0f5: return "GDK_otilde";
+ case 0x1cf: return "GDK_Dcaron";
+ case 0x1ca: return "GDK_Eogonek";
+ case 0x0f2: return "GDK_ograve";
+ case 0x0f1: return "GDK_ntilde";
+ case 0x0f0: return "GDK_eth";
+ case 0xdb7: return "GDK_Thai_thothahan";
+ case 0xdb6: return "GDK_Thai_thothung";
+ case 0xdb5: return "GDK_Thai_totao";
+ case 0xdb4: return "GDK_Thai_dodek";
+ case 0xdb3: return "GDK_Thai_nonen";
+ case 0x2f8: return "GDK_gcircumflex";
+ case 0xdb1: return "GDK_Thai_thonangmontho";
+ case 0xdb0: return "GDK_Thai_thothan";
+ case 0x2f5: return "GDK_gabovedot";
+ case 0x2ab: return "GDK_Gbreve";
+ case 0x2ac: return "GDK_Jcircumflex";
+ case 0xdb9: return "GDK_Thai_nonu";
+ case 0xdb8: return "GDK_Thai_thothong";
+ case 0x3ec: return "GDK_eabovedot";
+ case 0x3ef: return "GDK_imacron";
+ case 0x8af: return "GDK_leftmiddlecurlybrace";
+ case 0x8ad: return "GDK_toprightparens";
+ case 0x8ae: return "GDK_botrightparens";
+ case 0x8ab: return "GDK_topleftparens";
+ case 0x8ac: return "GDK_botleftparens";
+ case 0x8aa: return "GDK_botrightsqbracket";
+ case 0xfd0f: return "GDK_3270_CursorBlink";
+ case 0xffbd: return "GDK_KP_Equal";
+ case 0xffbe: return "GDK_F1";
+ case 0xffbf: return "GDK_F2";
+ case 0xeeb: return "GDK_Hangul_J_Khieuq";
+ case 0xff0b: return "GDK_Clear";
+ case 0xff0a: return "GDK_Linefeed";
+ case 0xff08: return "GDK_BackSpace";
+ case 0xff0d: return "GDK_Return";
+ case 0xff09: return "GDK_Tab";
+ case 0xae9: return "GDK_filledtribulletdown";
+ case 0xae8: return "GDK_filledtribulletup";
+ case 0xae7: return "GDK_enfilledsqbullet";
+ case 0xae6: return "GDK_enfilledcircbullet";
+ case 0xae5: return "GDK_openstar";
+ case 0xae4: return "GDK_opentribulletdown";
+ case 0xae3: return "GDK_opentribulletup";
+ case 0xae2: return "GDK_openrectbullet";
+ case 0xae1: return "GDK_enopensquarebullet";
+ case 0xffb1: return "GDK_KP_1";
+ case 0xeee: return "GDK_Hangul_J_Hieuh";
+ case 0x20a0: return "GDK_EcuSign";
+ case 0xeed: return "GDK_Hangul_J_Phieuf";
+ case 0xbc6: return "GDK_underbar";
+ case 0x8a6: return "GDK_vertconnector";
+ case 0x8a7: return "GDK_topleftsqbracket";
+ case 0x8a4: return "GDK_topintegral";
+ case 0x8a5: return "GDK_botintegral";
+ case 0x8a2: return "GDK_topleftradical";
+ case 0x8a3: return "GDK_horizconnector";
+ case 0x8a1: return "GDK_leftradical";
+ case 0x8a8: return "GDK_botleftsqbracket";
+ case 0x8a9: return "GDK_toprightsqbracket";
+ case 0xedb: return "GDK_Hangul_J_Rieul";
+ case 0xaee: return "GDK_heart";
+ case 0xaed: return "GDK_diamond";
+ case 0xaec: return "GDK_club";
+ case 0xaeb: return "GDK_rightpointer";
+ case 0xaea: return "GDK_leftpointer";
+ case 0x039: return "GDK_9";
+ case 0xffb4: return "GDK_KP_4";
+ case 0xffb5: return "GDK_KP_5";
+ case 0xffb6: return "GDK_KP_6";
+ case 0xffb7: return "GDK_KP_7";
+ case 0xffb0: return "GDK_KP_0";
+ case 0x5eb: return "GDK_Arabic_fathatan";
+ case 0xffb2: return "GDK_KP_2";
+ case 0xffb3: return "GDK_KP_3";
+ case 0xffb8: return "GDK_KP_8";
+ case 0xffb9: return "GDK_KP_9";
+ case 0x7d7: return "GDK_Greek_CHI";
diff --git a/vte/src/marshal.c b/vte/src/marshal.c
new file mode 100644
index 0000000..dc11916
--- /dev/null
+++ b/vte/src/marshal.c
@@ -0,0 +1,231 @@
+
+#ifndef ___vte_marshal_MARSHAL_H__
+#define ___vte_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#define g_marshal_value_peek_variant(v) g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* VOID:INT,INT (marshal.list:1) */
+G_GNUC_INTERNAL void _vte_marshal_VOID__INT_INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+void
+_vte_marshal_VOID__INT_INT (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__INT_INT) (gpointer data1,
+ gint arg_1,
+ gint arg_2,
+ gpointer data2);
+ register GMarshalFunc_VOID__INT_INT callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_VOID__INT_INT) (marshal_data ? marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_int (param_values + 1),
+ g_marshal_value_peek_int (param_values + 2),
+ data2);
+}
+
+/* VOID:OBJECT,OBJECT (marshal.list:2) */
+G_GNUC_INTERNAL void _vte_marshal_VOID__OBJECT_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+void
+_vte_marshal_VOID__OBJECT_OBJECT (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__OBJECT_OBJECT) (gpointer data1,
+ gpointer arg_1,
+ gpointer arg_2,
+ gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_OBJECT callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_VOID__OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_object (param_values + 2),
+ data2);
+}
+
+/* VOID:STRING,UINT (marshal.list:3) */
+G_GNUC_INTERNAL void _vte_marshal_VOID__STRING_UINT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+void
+_vte_marshal_VOID__STRING_UINT (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__STRING_UINT) (gpointer data1,
+ gpointer arg_1,
+ guint arg_2,
+ gpointer data2);
+ register GMarshalFunc_VOID__STRING_UINT callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_VOID__STRING_UINT) (marshal_data ? marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_string (param_values + 1),
+ g_marshal_value_peek_uint (param_values + 2),
+ data2);
+}
+
+/* VOID:UINT,UINT (marshal.list:4) */
+G_GNUC_INTERNAL void _vte_marshal_VOID__UINT_UINT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+void
+_vte_marshal_VOID__UINT_UINT (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__UINT_UINT) (gpointer data1,
+ guint arg_1,
+ guint arg_2,
+ gpointer data2);
+ register GMarshalFunc_VOID__UINT_UINT callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_VOID__UINT_UINT) (marshal_data ? marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_uint (param_values + 1),
+ g_marshal_value_peek_uint (param_values + 2),
+ data2);
+}
+
+G_END_DECLS
+
+#endif /* ___vte_marshal_MARSHAL_H__ */
+
diff --git a/vte/src/marshal.h b/vte/src/marshal.h
new file mode 100644
index 0000000..fb2584c
--- /dev/null
+++ b/vte/src/marshal.h
@@ -0,0 +1,44 @@
+
+#ifndef ___vte_marshal_MARSHAL_H__
+#define ___vte_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* VOID:INT,INT (marshal.list:1) */
+G_GNUC_INTERNAL void _vte_marshal_VOID__INT_INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:OBJECT,OBJECT (marshal.list:2) */
+G_GNUC_INTERNAL void _vte_marshal_VOID__OBJECT_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:STRING,UINT (marshal.list:3) */
+G_GNUC_INTERNAL void _vte_marshal_VOID__STRING_UINT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:UINT,UINT (marshal.list:4) */
+G_GNUC_INTERNAL void _vte_marshal_VOID__UINT_UINT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+G_END_DECLS
+
+#endif /* ___vte_marshal_MARSHAL_H__ */
+
diff --git a/vte/src/marshal.list b/vte/src/marshal.list
new file mode 100644
index 0000000..0276422
--- /dev/null
+++ b/vte/src/marshal.list
@@ -0,0 +1,4 @@
+VOID:INT,INT
+VOID:OBJECT,OBJECT
+VOID:STRING,UINT
+VOID:UINT,UINT
diff --git a/vte/src/matcher.c b/vte/src/matcher.c
new file mode 100644
index 0000000..723cbaa
--- /dev/null
+++ b/vte/src/matcher.c
@@ -0,0 +1,248 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include <config.h>
+#include <sys/types.h>
+#include <string.h>
+#include <glib-object.h>
+#include "debug.h"
+#include "caps.h"
+#include "matcher.h"
+#include "table.h"
+#include "trie.h"
+
+struct _vte_matcher {
+ _vte_matcher_match_func match; /* shortcut to the most common op */
+ struct _vte_matcher_impl *impl;
+ GValueArray *free_params;
+};
+
+static GStaticMutex _vte_matcher_mutex = G_STATIC_MUTEX_INIT;
+static GCache *_vte_matcher_cache = NULL;
+static struct _vte_matcher_impl dummy_vte_matcher_trie = {
+ &_vte_matcher_trie
+};
+static struct _vte_matcher_impl dummy_vte_matcher_table = {
+ &_vte_matcher_table
+};
+
+/* Add a string to the matcher. */
+static void
+_vte_matcher_add(const struct _vte_matcher *matcher,
+ const char *pattern, gssize length,
+ const char *result, GQuark quark)
+{
+ matcher->impl->klass->add(matcher->impl, pattern, length, result, quark);
+}
+
+/* Loads all sequences into matcher */
+static void
+_vte_matcher_init(struct _vte_matcher *matcher, const char *emulation,
+ struct _vte_termcap *termcap)
+{
+ const char *code, *value;
+ gboolean found_cr = FALSE, found_lf = FALSE;
+ gssize stripped_length;
+ char *stripped;
+ int i;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "_vte_matcher_init()\n");
+
+ if (termcap != NULL) {
+ /* Load the known capability strings from the termcap
+ * structure into the table for recognition. */
+ for (i = 0;
+ _vte_terminal_capability_strings[i].capability[0];
+ i++) {
+ if (_vte_terminal_capability_strings[i].key) {
+ continue;
+ }
+ code = _vte_terminal_capability_strings[i].capability;
+ stripped = _vte_termcap_find_string_length(termcap,
+ emulation,
+ code,
+ &stripped_length);
+ if (stripped[0] != '\0') {
+ _vte_matcher_add(matcher,
+ stripped, stripped_length,
+ code, 0);
+ if (stripped[0] == '\r') {
+ found_cr = TRUE;
+ } else
+ if (stripped[0] == '\n') {
+ if (strcmp(code, "sf") == 0 ||
+ strcmp(code, "do") == 0) {
+ found_lf = TRUE;
+ }
+ }
+ }
+ g_free(stripped);
+ }
+ }
+
+ /* Add emulator-specific sequences. */
+ if (strstr(emulation, "xterm") || strstr(emulation, "dtterm")) {
+ /* Add all of the xterm-specific stuff. */
+ for (i = 0;
+ _vte_xterm_capability_strings[i].value != NULL;
+ i++) {
+ code = _vte_xterm_capability_strings[i].code;
+ value = _vte_xterm_capability_strings[i].value;
+ _vte_matcher_add(matcher, code, strlen (code),
+ value, 0);
+ }
+ }
+
+ /* Always define cr and lf. */
+ if (!found_cr) {
+ _vte_matcher_add(matcher, "\r", 1, "cr", 0);
+ }
+ if (!found_lf) {
+ _vte_matcher_add(matcher, "\n", 1, "sf", 0);
+ }
+
+ _VTE_DEBUG_IF(VTE_DEBUG_TRIE) {
+ g_printerr("Trie contents:\n");
+ _vte_matcher_print(matcher);
+ g_printerr("\n");
+ }
+}
+
+/* Allocates new matcher structure. */
+static gpointer
+_vte_matcher_create(gpointer key)
+{
+ char *emulation = key;
+ struct _vte_matcher *ret = NULL;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "_vte_matcher_create()\n");
+ ret = g_slice_new(struct _vte_matcher);
+ ret->impl = &dummy_vte_matcher_trie;
+ ret->match = NULL;
+ ret->free_params = NULL;
+
+ if (strcmp(emulation, "xterm") == 0) {
+ ret->impl = &dummy_vte_matcher_table;
+ } else
+ if (strcmp(emulation, "dtterm") == 0) {
+ ret->impl = &dummy_vte_matcher_table;
+ }
+
+ return ret;
+}
+
+/* Noone uses this matcher, free it. */
+static void
+_vte_matcher_destroy(gpointer value)
+{
+ struct _vte_matcher *matcher = value;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "_vte_matcher_destroy()\n");
+ if (matcher->free_params != NULL) {
+ g_value_array_free (matcher->free_params);
+ }
+ if (matcher->match != NULL) /* do not call destroy on dummy values */
+ matcher->impl->klass->destroy(matcher->impl);
+ g_slice_free(struct _vte_matcher, matcher);
+}
+
+/* Create and init matcher. */
+struct _vte_matcher *
+_vte_matcher_new(const char *emulation, struct _vte_termcap *termcap)
+{
+ struct _vte_matcher *ret = NULL;
+ g_static_mutex_lock(&_vte_matcher_mutex);
+
+ if (emulation == NULL) {
+ emulation = "";
+ }
+
+ if (_vte_matcher_cache == NULL) {
+ _vte_matcher_cache = g_cache_new(_vte_matcher_create,
+ _vte_matcher_destroy,
+ (GCacheDupFunc) g_strdup, g_free,
+ g_str_hash, g_direct_hash, g_str_equal);
+ }
+
+ ret = g_cache_insert(_vte_matcher_cache, (gpointer) emulation);
+
+ if (ret->match == NULL) {
+ ret->impl = ret->impl->klass->create();
+ ret->match = ret->impl->klass->match;
+ _vte_matcher_init(ret, emulation, termcap);
+ }
+
+ g_static_mutex_unlock(&_vte_matcher_mutex);
+ return ret;
+}
+
+/* Free a matcher. */
+void
+_vte_matcher_free(struct _vte_matcher *matcher)
+{
+ g_assert(_vte_matcher_cache != NULL);
+ g_static_mutex_lock(&_vte_matcher_mutex);
+ g_cache_remove(_vte_matcher_cache, matcher);
+ g_static_mutex_unlock(&_vte_matcher_mutex);
+}
+
+/* Check if a string matches a sequence the matcher knows about. */
+const char *
+_vte_matcher_match(struct _vte_matcher *matcher,
+ const gunichar *pattern, gssize length,
+ const char **res, const gunichar **consumed,
+ GQuark *quark, GValueArray **array)
+{
+ if (G_UNLIKELY (array != NULL && matcher->free_params != NULL)) {
+ *array = matcher->free_params;
+ matcher->free_params = NULL;
+ }
+ return matcher->match(matcher->impl, pattern, length,
+ res, consumed, quark, array);
+}
+
+/* Dump out the contents of a matcher, mainly for debugging. */
+void
+_vte_matcher_print(struct _vte_matcher *matcher)
+{
+ matcher->impl->klass->print(matcher->impl);
+}
+
+/* Free a parameter array. Most of the GValue elements can clean up after
+ * themselves, but we're using gpointers to hold unicode character strings, and
+ * we need to free those ourselves. */
+void
+_vte_matcher_free_params_array(struct _vte_matcher *matcher,
+ GValueArray *params)
+{
+ guint i;
+ for (i = 0; i < params->n_values; i++) {
+ GValue *value = ¶ms->values[i];
+ if (G_UNLIKELY (g_type_is_a (value->g_type, G_TYPE_POINTER))) {
+ g_free (g_value_get_pointer (value));
+ }
+ }
+ if (G_UNLIKELY (matcher == NULL || matcher->free_params != NULL)) {
+ g_value_array_free (params);
+ } else {
+ matcher->free_params = params;
+ params->n_values = 0;
+ }
+}
+
diff --git a/vte/src/matcher.h b/vte/src/matcher.h
new file mode 100644
index 0000000..540cf97
--- /dev/null
+++ b/vte/src/matcher.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_matcher_h_included
+#define vte_matcher_h_included
+
+
+#include <glib-object.h>
+#include "vtetc.h"
+
+G_BEGIN_DECLS
+
+struct _vte_matcher;
+
+struct _vte_matcher_impl {
+ const struct _vte_matcher_class *klass;
+ /* private */
+};
+
+typedef struct _vte_matcher_impl *(*_vte_matcher_create_func)(void);
+typedef const char *(*_vte_matcher_match_func)(struct _vte_matcher_impl *impl,
+ const gunichar *pattern, gssize length,
+ const char **res, const gunichar **consumed,
+ GQuark *quark, GValueArray **array);
+typedef void (*_vte_matcher_add_func)(struct _vte_matcher_impl *impl,
+ const char *pattern, gssize length,
+ const char *result, GQuark quark);
+typedef void (*_vte_matcher_print_func)(struct _vte_matcher_impl *impl);
+typedef void (*_vte_matcher_destroy_func)(struct _vte_matcher_impl *impl);
+struct _vte_matcher_class{
+ _vte_matcher_create_func create;
+ _vte_matcher_add_func add;
+ _vte_matcher_print_func print;
+ _vte_matcher_match_func match;
+ _vte_matcher_destroy_func destroy;
+};
+
+/* Create and init matcher. */
+struct _vte_matcher *_vte_matcher_new(const char *emulation,
+ struct _vte_termcap *termcap);
+
+/* Free a matcher. */
+void _vte_matcher_free(struct _vte_matcher *matcher);
+
+/* Check if a string matches a sequence the matcher knows about. */
+const char *_vte_matcher_match(struct _vte_matcher *matcher,
+ const gunichar *pattern, gssize length,
+ const char **res, const gunichar **consumed,
+ GQuark *quark, GValueArray **array);
+
+/* Dump out the contents of a matcher, mainly for debugging. */
+void _vte_matcher_print(struct _vte_matcher *matcher);
+
+/* Free a parameter array. */
+void _vte_matcher_free_params_array(struct _vte_matcher *matcher, GValueArray *params);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/mev.c b/vte/src/mev.c
new file mode 100644
index 0000000..f6817e1
--- /dev/null
+++ b/vte/src/mev.c
@@ -0,0 +1,311 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#include <sys/types.h>
+#ifdef HAVE_SYS_TERMIOS_H
+#include <sys/termios.h>
+#endif
+#include <sys/time.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <string.h>
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#endif
+#include <unistd.h>
+#include <glib.h>
+#include "caps.h"
+
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
+
+static enum {
+ tracking_x10 = 9,
+ tracking_mouse = 1000,
+ tracking_hilite = 1001,
+ tracking_cell_motion = 1002,
+ tracking_all_motion = 1003
+} tracking_mode = 0;
+
+static void
+decset(int mode, gboolean value)
+{
+ fprintf(stdout, _VTE_CAP_CSI "?%d%c", mode, value ? 'h' : 'l');
+}
+
+static void
+reset(void)
+{
+ decset(tracking_x10, FALSE);
+ decset(tracking_mouse, FALSE);
+ decset(tracking_hilite, FALSE);
+ decset(tracking_cell_motion, FALSE);
+ decset(tracking_all_motion, FALSE);
+ fflush(stdout);
+}
+
+static void
+clear(void)
+{
+ fprintf(stdout, "%s",
+ _VTE_CAP_ESC "7"
+ _VTE_CAP_CSI "8;1H"
+ _VTE_CAP_CSI "1J"
+ _VTE_CAP_CSI "2K"
+ _VTE_CAP_CSI "1;1H");
+ reset();
+ switch (tracking_mode) {
+ case tracking_x10:
+ fprintf(stdout, "X10 tracking enabled.\r\n");
+ decset(tracking_x10, TRUE);
+ break;
+ case tracking_mouse:
+ fprintf(stdout, "Mouse tracking enabled.\r\n");
+ decset(tracking_mouse, TRUE);
+ break;
+ case tracking_hilite:
+ fprintf(stdout, "Hilite tracking enabled.\r\n");
+ decset(tracking_hilite, TRUE);
+ break;
+ case tracking_cell_motion:
+ fprintf(stdout, "Cell motion tracking enabled.\r\n");
+ decset(tracking_cell_motion, TRUE);
+ break;
+ case tracking_all_motion:
+ fprintf(stdout, "All motion tracking enabled.\r\n");
+ decset(tracking_all_motion, TRUE);
+ break;
+ default:
+ fprintf(stdout, "Tracking disabled.\r\n");
+ break;
+ }
+ fprintf(stdout, "A - X10.\r\n");
+ fprintf(stdout, "B - Mouse tracking.\r\n");
+ fprintf(stdout, "C - Hilite tracking [FIXME: NOT IMPLEMENTED].\r\n");
+ fprintf(stdout, "D - Cell motion tracking.\r\n");
+ fprintf(stdout, "E - All motion tracking.\r\n");
+ fprintf(stdout, "%s", _VTE_CAP_ESC "8");
+ fflush(stdout);
+}
+
+static gboolean
+parse(void)
+{
+ GByteArray *bytes;
+ gchar buffer[64];
+ int i, length;
+ guchar b;
+ gboolean ret = FALSE;
+
+ bytes = g_byte_array_new();
+ if ((length = read(STDIN_FILENO, buffer, sizeof(buffer))) > 0) {
+ g_byte_array_append(bytes, buffer, length);
+ }
+
+ i = 0;
+ while (i < bytes->len) {
+ switch (bytes->data[i]) {
+ case 'A':
+ case 'a':
+ tracking_mode = (tracking_mode == tracking_x10) ?
+ 0 : tracking_x10;
+ i++;
+ break;
+ case 'B':
+ case 'b':
+ tracking_mode = (tracking_mode == tracking_mouse) ?
+ 0 : tracking_mouse;
+ i++;
+ break;
+ case 'C':
+ case 'c':
+ tracking_mode = (tracking_mode == tracking_hilite) ?
+ 0 : tracking_hilite;
+ i++;
+ break;
+ case 'D':
+ case 'd':
+ tracking_mode = (tracking_mode == tracking_cell_motion) ?
+ 0 : tracking_cell_motion;
+ i++;
+ break;
+ case 'E':
+ case 'e':
+ tracking_mode = (tracking_mode == tracking_all_motion) ?
+ 0 : tracking_all_motion;
+ i++;
+ break;
+ case 'Q':
+ case 'q':
+ ret = TRUE;
+ i++;
+ break;
+ case '\033':
+ if (bytes->len - i >= 6) {
+ int button = 0;
+ const char *shift = "", *control = "",
+ *meta = "";
+ gboolean motion = FALSE;
+ int x, y;
+ if ((bytes->data[i + 0] == '\033') &&
+ (bytes->data[i + 1] == '[')) {
+ if (bytes->data[i + 2] == 'M') {
+ b = bytes->data[i + 3] - 32;
+ switch (b & 3) {
+ case 0:
+ button = 1;
+ if (b & 64) {
+ button += 3;
+ }
+ break;
+ case 1:
+ button = 2;
+ if (b & 64) {
+ button += 3;
+ }
+ break;
+ case 2:
+ button = 3;
+ if (b & 64) {
+ button += 3;
+ }
+ break;
+ case 3:
+ button = 0;
+ break;
+ }
+ shift = b & 4 ?
+ "[shift]" :
+ "";
+ meta = b & 8 ?
+ "[meta]" :
+ "";
+ control = b & 16 ?
+ "[control]" :
+ "";
+ motion = (b & 32) != 0;
+ x = bytes->data[i + 4] - 32;
+ y = bytes->data[i + 5] - 32;
+ fprintf(stdout, "%d %s%s%s(%s%s%s) at %d,%d\r\n",
+ button,
+ motion ? "motion " : "",
+ (!motion && button) ? "press" : "",
+ (!motion && !button) ? "release" : "",
+ meta, control, shift,
+ x, y);
+ }
+ }
+ i += 6;
+ break;
+ }
+ default:
+ while (i < length) {
+ if (bytes->data[i] < 32) {
+ fprintf(stdout, "'^%c' ",
+ bytes->data[i] | 64);
+ } else {
+ fprintf(stdout, "'%c' ",
+ bytes->data[i]);
+ }
+ i++;
+ }
+ fprintf(stdout, "\r\n");
+ break;
+ }
+ }
+ fflush(stdout);
+ g_byte_array_free(bytes, TRUE);
+
+ return ret;
+}
+
+static struct termios tcattr, original;
+
+static void
+sigint_handler(int signum)
+{
+ if (tcsetattr(STDIN_FILENO, TCSANOW, &original) != 0) {
+ perror("tcsetattr");
+ }
+ reset();
+ _exit(1);
+}
+
+int
+main(int argc, char **argv)
+{
+ int flags;
+ gboolean stop;
+ fd_set in_fds;
+
+ if (tcgetattr(STDIN_FILENO, &tcattr) != 0) {
+ perror("tcgetattr");
+ return 1;
+ }
+
+ original = tcattr;
+ signal(SIGINT, sigint_handler);
+ /* Here we approximate what cfmakeraw() would do, for the benefit
+ * of systems which don't actually provide the function. */
+ tcattr.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP |
+ INLCR | IGNCR | ICRNL | IXON);
+ tcattr.c_oflag &= ~(OPOST);
+ tcattr.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
+ tcattr.c_cflag &= ~(CSIZE | PARENB);
+ tcattr.c_cflag |= CS8;
+#ifdef HAVE_CFMAKERAW
+ cfmakeraw(&tcattr);
+#endif
+ if (tcsetattr(STDIN_FILENO, TCSANOW, &tcattr) != 0) {
+ perror("tcsetattr");
+ return 1;
+ }
+
+ flags = fcntl(STDIN_FILENO, F_GETFL);
+ fcntl(STDIN_FILENO, F_SETFL, flags & ~(O_NONBLOCK));
+ fprintf(stdout, "%s",
+ _VTE_CAP_CSI "9;1H"
+ _VTE_CAP_CSI "2K"
+ _VTE_CAP_CSI "2J");
+ do {
+ clear();
+ FD_ZERO(&in_fds);
+ FD_SET(STDIN_FILENO, &in_fds);
+ stop = TRUE;
+ switch (select(STDIN_FILENO + 1, &in_fds, NULL, NULL, NULL)) {
+ case 1:
+ stop = parse();
+ break;
+ default:
+ stop = TRUE;
+ break;
+ }
+ } while (!stop);
+ reset();
+ fcntl(STDIN_FILENO, F_SETFL, flags);
+
+ if (tcsetattr(STDIN_FILENO, TCSANOW, &original) != 0) {
+ perror("tcsetattr");
+ return 1;
+ }
+
+ return 0;
+}
diff --git a/vte/src/mkunitables.sh b/vte/src/mkunitables.sh
new file mode 100755
index 0000000..3c5d708
--- /dev/null
+++ b/vte/src/mkunitables.sh
@@ -0,0 +1,45 @@
+#!/bin/sh -e
+
+awk=${AWK:-awk}
+
+generate() {
+ echo " /* generated file -- do not edit */"
+ ${awk} -F'#' '/^0x/ {print $1}' $* |\
+ ${awk} '{print $(NF-1),$(NF)}' $* |\
+ (
+ while read A B ; do
+ if test `printf '%d' $A` != `printf '%d' $B` ; then
+ echo " {$A, $B},"
+ fi
+ done
+ )
+}
+
+cjkmaphome=http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/
+cpmaphome=http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/
+
+encodings="CNS11643 CP437 GB12345 GB2312 JIS0201 JIS0208 JIS0212 KSX1001"
+if test "$#" != 0 ; then
+ encodings="$*"
+fi
+for encoding in $encodings ; do
+ if ! test -f unitable.$encoding ; then
+ if ! test -f $encoding.TXT ; then
+ echo -n "Retrieving "
+ case $encoding in
+ CP*) wget -qc $cpmaphome/$encoding.TXT;;
+ CNS*) wget -qc $cjkmaphome/OTHER/$encoding.TXT;;
+ GB*) wget -qc $cjkmaphome/GB/$encoding.TXT;;
+ JIS*) wget -qc $cjkmaphome/JIS/$encoding.TXT;;
+ KSX1001)
+ wget -qc $cjkmaphome/KSC/$encoding.TXT
+ echo 0x2266 0x20AC >> $encoding.TXT
+ echo 0x2267 0x00AE >> $encoding.TXT
+ ;;
+ esac
+ fi
+ echo -n $encoding
+ generate < $encoding.TXT > unitable.$encoding
+ echo .
+ fi
+done
diff --git a/vte/src/osc b/vte/src/osc
new file mode 100755
index 0000000..1a8d41f
--- /dev/null
+++ b/vte/src/osc
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# Operating system commands.
+#
+if [ "$#" -eq 0 ] ; then
+ echo usage: `basename $0` 'command [...]'
+ echo commands:
+ echo " 0 'title' change icon name and window title"
+ echo " 1 'title' change icon name"
+ echo " 2 'title' change window title"
+ echo " 12 'color' change cursor color"
+ exit
+fi
+args=
+for arg in $@ ; do
+ if [ "$args" = "" ] ; then
+ args="$arg"
+ else
+ args="$args;$arg"
+ fi
+done
+printf "]"${args}
diff --git a/vte/src/pty.c b/vte/src/pty.c
new file mode 100644
index 0000000..a4c8c07
--- /dev/null
+++ b/vte/src/pty.c
@@ -0,0 +1,2052 @@
+/*
+ * Copyright (C) 2001,2002 Red Hat, Inc.
+ * Copyright © 2009, 2010 Christian Persch
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/**
+ * SECTION: vte-pty
+ * @short_description: Functions for starting a new process on a new pseudo-terminal and for
+ * manipulating pseudo-terminals
+ *
+ * The terminal widget uses these functions to start commands with new controlling
+ * pseudo-terminals and to resize pseudo-terminals.
+ *
+ * Since: 0.26
+ */
+
+#include <config.h>
+
+#include "vtepty.h"
+#include "vtepty-private.h"
+#include "vte.h"
+
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
+#ifdef HAVE_SYS_TERMIOS_H
+#include <sys/termios.h>
+#endif
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#ifdef HAVE_SYS_SYSLIMITS_H
+#include <sys/syslimits.h>
+#endif
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#endif
+#include <unistd.h>
+#ifdef HAVE_STROPTS_H
+#include <stropts.h>
+#endif
+#include <glib.h>
+#include <gio/gio.h>
+#include "debug.h"
+#include "pty.h"
+
+#ifdef MSG_NOSIGNAL
+#define PTY_RECVMSG_FLAGS MSG_NOSIGNAL
+#else
+#define PTY_RECVMSG_FLAGS 0
+#endif
+
+#include <glib/gi18n-lib.h>
+
+#ifdef VTE_USE_GNOME_PTY_HELPER
+#include <sys/uio.h>
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+#include "../gnome-pty-helper/gnome-pty.h"
+static gboolean _vte_pty_helper_started = FALSE;
+static pid_t _vte_pty_helper_pid = -1;
+static int _vte_pty_helper_tunnel = -1;
+#endif
+
+/* Reset the handlers for all known signals to their defaults. The parent
+ * (or one of the libraries it links to) may have changed one to be ignored. */
+static void
+_vte_pty_reset_signal_handlers(void)
+{
+#ifdef SIGHUP
+ signal(SIGHUP, SIG_DFL);
+#endif
+ signal(SIGINT, SIG_DFL);
+ signal(SIGILL, SIG_DFL);
+ signal(SIGABRT, SIG_DFL);
+ signal(SIGFPE, SIG_DFL);
+#ifdef SIGKILL
+ signal(SIGKILL, SIG_DFL);
+#endif
+ signal(SIGSEGV, SIG_DFL);
+#ifdef SIGPIPE
+ signal(SIGPIPE, SIG_DFL);
+#endif
+#ifdef SIGALRM
+ signal(SIGALRM, SIG_DFL);
+#endif
+ signal(SIGTERM, SIG_DFL);
+#ifdef SIGCHLD
+ signal(SIGCHLD, SIG_DFL);
+#endif
+#ifdef SIGCONT
+ signal(SIGCONT, SIG_DFL);
+#endif
+#ifdef SIGSTOP
+ signal(SIGSTOP, SIG_DFL);
+#endif
+#ifdef SIGTSTP
+ signal(SIGTSTP, SIG_DFL);
+#endif
+#ifdef SIGTTIN
+ signal(SIGTTIN, SIG_DFL);
+#endif
+#ifdef SIGTTOU
+ signal(SIGTTOU, SIG_DFL);
+#endif
+#ifdef SIGBUS
+ signal(SIGBUS, SIG_DFL);
+#endif
+#ifdef SIGPOLL
+ signal(SIGPOLL, SIG_DFL);
+#endif
+#ifdef SIGPROF
+ signal(SIGPROF, SIG_DFL);
+#endif
+#ifdef SIGSYS
+ signal(SIGSYS, SIG_DFL);
+#endif
+#ifdef SIGTRAP
+ signal(SIGTRAP, SIG_DFL);
+#endif
+#ifdef SIGURG
+ signal(SIGURG, SIG_DFL);
+#endif
+#ifdef SIGVTALARM
+ signal(SIGVTALARM, SIG_DFL);
+#endif
+#ifdef SIGXCPU
+ signal(SIGXCPU, SIG_DFL);
+#endif
+#ifdef SIGXFSZ
+ signal(SIGXFSZ, SIG_DFL);
+#endif
+#ifdef SIGIOT
+ signal(SIGIOT, SIG_DFL);
+#endif
+#ifdef SIGEMT
+ signal(SIGEMT, SIG_DFL);
+#endif
+#ifdef SIGSTKFLT
+ signal(SIGSTKFLT, SIG_DFL);
+#endif
+#ifdef SIGIO
+ signal(SIGIO, SIG_DFL);
+#endif
+#ifdef SIGCLD
+ signal(SIGCLD, SIG_DFL);
+#endif
+#ifdef SIGPWR
+ signal(SIGPWR, SIG_DFL);
+#endif
+#ifdef SIGINFO
+ signal(SIGINFO, SIG_DFL);
+#endif
+#ifdef SIGLOST
+ signal(SIGLOST, SIG_DFL);
+#endif
+#ifdef SIGWINCH
+ signal(SIGWINCH, SIG_DFL);
+#endif
+#ifdef SIGUNUSED
+ signal(SIGUNUSED, SIG_DFL);
+#endif
+}
+
+typedef struct _VtePtyPrivate VtePtyPrivate;
+
+typedef struct {
+ enum {
+ TTY_OPEN_BY_NAME,
+ TTY_OPEN_BY_FD
+ } mode;
+ union {
+ const char *name;
+ int fd;
+ } tty;
+} VtePtyChildSetupData;
+
+/**
+ * VtePty:
+ *
+ * Since: 0.26
+ */
+struct _VtePty {
+ GObject parent_instance;
+
+ /* <private> */
+ VtePtyPrivate *priv;
+};
+
+struct _VtePtyPrivate {
+ VtePtyFlags flags;
+ int pty_fd;
+
+ const char *term;
+ VtePtyChildSetupData child_setup_data;
+
+ gpointer helper_tag; /* only use when using_helper is TRUE */
+
+ guint utf8 : 1;
+ guint foreign : 1;
+ guint using_helper : 1;
+};
+
+struct _VtePtyClass {
+ GObjectClass parent_class;
+};
+
+/**
+ * vte_pty_child_setup:
+ * @pty: a #VtePty
+ *
+ * FIXMEchpe
+ *
+ * Since: 0.26
+ */
+void
+vte_pty_child_setup (VtePty *pty)
+{
+ VtePtyPrivate *priv = pty->priv;
+ VtePtyChildSetupData *data = &priv->child_setup_data;
+ int fd = -1;
+ const char *tty = NULL;
+
+ if (priv->foreign) {
+ fd = priv->pty_fd;
+ } else {
+ /* Save the name of the pty -- we'll need it later to acquire
+ * it as our controlling terminal.
+ */
+ switch (data->mode) {
+ case TTY_OPEN_BY_NAME:
+ tty = data->tty.name;
+ break;
+ case TTY_OPEN_BY_FD:
+ fd = data->tty.fd;
+ tty = ttyname(fd);
+ break;
+ }
+
+ _vte_debug_print (VTE_DEBUG_PTY,
+ "Setting up child pty: name = %s, fd = %d\n",
+ tty ? tty : "(none)", fd);
+
+
+ /* Try to reopen the pty to acquire it as our controlling terminal. */
+ /* FIXMEchpe: why not just use the passed fd in TTY_OPEN_BY_FD mode? */
+ if (tty != NULL) {
+ int i = open(tty, O_RDWR);
+ if (i != -1) {
+ if (fd != -1){
+ close(fd);
+ }
+ fd = i;
+ }
+ }
+ }
+
+ if (fd == -1)
+ _exit (127);
+
+ /* Start a new session and become process-group leader. */
+#if defined(HAVE_SETSID) && defined(HAVE_SETPGID)
+ _vte_debug_print (VTE_DEBUG_PTY, "Starting new session\n");
+ setsid();
+ setpgid(0, 0);
+#endif
+
+#ifdef TIOCSCTTY
+ /* TIOCSCTTY is defined? Let's try that, too. */
+ ioctl(fd, TIOCSCTTY, fd);
+#endif
+
+#ifdef HAVE_STROPTS_H
+ if (isastream (fd) == 1) {
+ if ((ioctl(fd, I_FIND, "ptem") == 0) &&
+ (ioctl(fd, I_PUSH, "ptem") == -1)) {
+ _exit (127);
+ }
+ if ((ioctl(fd, I_FIND, "ldterm") == 0) &&
+ (ioctl(fd, I_PUSH, "ldterm") == -1)) {
+ _exit (127);
+ }
+ if ((ioctl(fd, I_FIND, "ttcompat") == 0) &&
+ (ioctl(fd, I_PUSH, "ttcompat") == -1)) {
+ perror ("ioctl (fd, I_PUSH, \"ttcompat\")");
+ _exit (127);
+ }
+ }
+#endif
+
+ /* now setup child I/O through the tty */
+ if (fd != STDIN_FILENO) {
+ if (dup2(fd, STDIN_FILENO) != STDIN_FILENO){
+ _exit (127);
+ }
+ }
+ if (fd != STDOUT_FILENO) {
+ if (dup2(fd, STDOUT_FILENO) != STDOUT_FILENO){
+ _exit (127);
+ }
+ }
+ if (fd != STDERR_FILENO) {
+ if (dup2(fd, STDERR_FILENO) != STDERR_FILENO){
+ _exit (127);
+ }
+ }
+
+ /* Close the original slave descriptor, unless it's one of the stdio
+ * descriptors. */
+ if (fd != STDIN_FILENO &&
+ fd != STDOUT_FILENO &&
+ fd != STDERR_FILENO) {
+ close(fd);
+ }
+
+ /* Reset our signals -- our parent may have done any number of
+ * weird things to them. */
+ _vte_pty_reset_signal_handlers();
+
+ /* Now set the TERM environment variable */
+ if (priv->term != NULL) {
+ g_setenv("TERM", priv->term, TRUE);
+ }
+}
+
+/* TODO: clean up the spawning
+ * - replace current env rather than adding!
+ */
+
+/*
+ * __vte_pty_get_argv:
+ * @command: the command to run
+ * @argv: the argument vector
+ * @flags: (inout) flags from #GSpawnFlags
+ *
+ * Creates an argument vector to pass to g_spawn_async() from @command and
+ * @argv, modifying *@flags if necessary.
+ *
+ * Returns: a newly allocated array of strings. Free with g_strfreev()
+ */
+char **
+__vte_pty_get_argv (const char *command,
+ char **argv,
+ GSpawnFlags *flags /* inout */)
+{
+ char **argv2;
+ int i, argc;
+
+ g_return_val_if_fail(command != NULL, NULL);
+
+ /* push the command into argv[0] */
+ argc = argv ? g_strv_length (argv) : 0;
+ argv2 = g_new (char *, argc + 2);
+
+ argv2[0] = g_strdup (command);
+
+ for (i = 0; i < argc; i++) {
+ argv2[i+1] = g_strdup (argv[i]);
+ }
+ argv2[i+1] = NULL;
+
+ if (argv) {
+ *flags |= G_SPAWN_FILE_AND_ARGV_ZERO;
+ }
+
+ return argv2;
+}
+
+/*
+ * __vte_pty_merge_environ:
+ * @envp: environment vector
+ *
+ * Merges @envp to the parent environment, and returns a new environment vector.
+ *
+ * Returns: a newly allocated string array. Free using g_strfreev()
+ */
+static gchar **
+__vte_pty_merge_environ (char **envp, const char *term_value)
+{
+ GHashTable *table;
+ GHashTableIter iter;
+ char *name, *value;
+ gchar **parent_environ;
+ GPtrArray *array;
+ gint i;
+
+ table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+
+ parent_environ = g_listenv ();
+ for (i = 0; parent_environ[i] != NULL; i++) {
+ g_hash_table_replace (table,
+ g_strdup (parent_environ[i]),
+ g_strdup (g_getenv (parent_environ[i])));
+ }
+ g_strfreev (parent_environ);
+
+ if (envp != NULL) {
+ for (i = 0; envp[i] != NULL; i++) {
+ name = g_strdup (envp[i]);
+ value = strchr (name, '=');
+ if (value) {
+ *value = '\0';
+ value = g_strdup (value + 1);
+ }
+ g_hash_table_replace (table, name, value);
+ }
+ }
+
+ if (term_value != NULL)
+ g_hash_table_replace (table, g_strdup ("TERM"), g_strdup (term_value));
+
+ array = g_ptr_array_sized_new (g_hash_table_size (table) + 1);
+ g_hash_table_iter_init(&iter, table);
+ while (g_hash_table_iter_next(&iter, (gpointer) &name, (gpointer) &value)) {
+ g_ptr_array_add (array, g_strconcat (name, "=", value, NULL));
+ }
+ g_assert(g_hash_table_size(table) == array->len);
+ g_hash_table_destroy (table);
+ g_ptr_array_add (array, NULL);
+
+ return (gchar **) g_ptr_array_free (array, FALSE);
+}
+
+/*
+ * __vte_pty_get_pty_flags:
+ * @lastlog: %TRUE if the session should be logged to the lastlog
+ * @utmp: %TRUE if the session should be logged to the utmp/utmpx log
+ * @wtmp: %TRUE if the session should be logged to the wtmp/wtmpx log
+ *
+ * Combines the @lastlog, @utmp, @wtmp arguments into the coresponding
+ * #VtePtyFlags flags.
+ *
+ * Returns: flags from #VtePtyFlags
+ */
+VtePtyFlags
+__vte_pty_get_pty_flags(gboolean lastlog,
+ gboolean utmp,
+ gboolean wtmp)
+{
+ VtePtyFlags flags = VTE_PTY_DEFAULT;
+
+ if (!lastlog)
+ flags |= VTE_PTY_NO_LASTLOG;
+ if (!utmp)
+ flags |= VTE_PTY_NO_UTMP;
+ if (!wtmp)
+ flags |= VTE_PTY_NO_WTMP;
+
+ return flags;
+}
+
+/*
+ * __vte_pty_spawn:
+ * @pty: a #VtePty
+ * @directory: the name of a directory the command should start in, or %NULL
+ * to use the cwd
+ * @argv: child's argument vector
+ * @envv: a list of environment variables to be added to the environment before
+ * starting the process, or %NULL
+ * @spawn_flags: flags from #GSpawnFlags
+ * @child_setup: function to run in the child just before exec()
+ * @child_setup_data: user data for @child_setup
+ * @child_pid: a location to store the child PID, or %NULL
+ * @error: return location for a #GError, or %NULL
+ *
+ * Uses g_spawn_async() to spawn the command in @argv. The child's environment will
+ * be the parent environment with the variables in @envv set afterwards.
+ *
+ * Enforces the vte_terminal_watch_child() requirements by adding
+ * %G_SPAWN_DO_NOT_REAP_CHILD to @spawn_flags.
+ *
+ * Note that the %G_SPAWN_LEAVE_DESCRIPTORS_OPEN flag is not supported;
+ * it will be cleared!
+ *
+ * If spawning the command in @working_directory fails because the child
+ * is unable to chdir() to it, falls back trying to spawn the command
+ * in the parent's working directory.
+ *
+ * Returns: %TRUE on success, or %FALSE on failure with @error filled in
+ */
+gboolean
+__vte_pty_spawn (VtePty *pty,
+ const char *directory,
+ char **argv,
+ char **envv,
+ GSpawnFlags spawn_flags,
+ GSpawnChildSetupFunc child_setup,
+ gpointer child_setup_data,
+ GPid *child_pid /* out */,
+ GError **error)
+{
+ gboolean ret = TRUE;
+ char **envp2;
+ gint i;
+ GError *err = NULL;
+
+ spawn_flags |= G_SPAWN_DO_NOT_REAP_CHILD;
+
+ /* FIXMEchpe: Enforce this until I've checked our code to make sure
+ * it doesn't leak out internal FDs into the child this way.
+ */
+ spawn_flags &= ~G_SPAWN_LEAVE_DESCRIPTORS_OPEN;
+
+ /* add the given environment to the childs */
+ envp2 = __vte_pty_merge_environ (envv, pty->priv->term);
+
+ _VTE_DEBUG_IF (VTE_DEBUG_MISC) {
+ g_printerr ("Spawing command:\n");
+ for (i = 0; argv[i] != NULL; i++) {
+ g_printerr (" argv[%d] = %s\n", i, argv[i]);
+ }
+ for (i = 0; envp2[i] != NULL; i++) {
+ g_printerr (" env[%d] = %s\n", i, envp2[i]);
+ }
+ g_printerr (" directory: %s\n",
+ directory ? directory : "(none)");
+ }
+
+ ret = g_spawn_async_with_pipes(directory,
+ argv, envp2,
+ spawn_flags,
+ child_setup ? child_setup
+ : (GSpawnChildSetupFunc) vte_pty_child_setup,
+ child_setup ? child_setup_data : pty,
+ child_pid,
+ NULL, NULL, NULL,
+ &err);
+ if (!ret &&
+ directory != NULL &&
+ g_error_matches(err, G_SPAWN_ERROR, G_SPAWN_ERROR_CHDIR)) {
+ /* try spawning in our working directory */
+ g_clear_error(&err);
+ ret = g_spawn_async_with_pipes(NULL,
+ argv, envp2,
+ spawn_flags,
+ child_setup ? child_setup
+ : (GSpawnChildSetupFunc) vte_pty_child_setup,
+ child_setup ? child_setup_data : pty,
+ child_pid,
+ NULL, NULL, NULL,
+ &err);
+ }
+
+ g_strfreev (envp2);
+
+ if (ret)
+ return TRUE;
+
+ g_propagate_error (error, err);
+ return FALSE;
+}
+
+/*
+ * __vte_pty_fork:
+ * @pty: a #VtePty
+ * @pid: (out) a location to store a #GPid, or %NULL
+ * @error: a location to store a #GError, or %NULL
+ *
+ * Forks and calls vte_pty_child_setup() in the child.
+ *
+ * Returns: %TRUE on success, or %FALSE on failure with @error filled in
+ */
+gboolean
+__vte_pty_fork(VtePty *pty,
+ GPid *pid,
+ GError **error)
+{
+#ifdef HAVE_FORK
+ gboolean ret = TRUE;
+
+ *pid = fork();
+ switch (*pid) {
+ case -1:
+ g_set_error(error,
+ G_SPAWN_ERROR,
+ G_SPAWN_ERROR_FAILED,
+ "Unable to fork: %s",
+ g_strerror(errno));
+ ret = FALSE;
+ case 0: /* child */
+ vte_pty_child_setup(pty);
+ break;
+ default: /* parent */
+ break;
+ }
+
+ return ret;
+#else /* !HAVE_FORK */
+ g_set_error_literal(error, G_SPAWN_ERROR, G_SPAWN_ERROR_FAILED,
+ "No fork implementation");
+ return FALSE;
+#endif /* HAVE_FORK */
+}
+
+/**
+ * vte_pty_set_size:
+ * @pty: a #VtePty
+ * @rows: the desired number of rows
+ * @columns: the desired number of columns
+ * @error: (allow-none); return location to store a #GError, or %NULL
+ *
+ * Attempts to resize the pseudo terminal's window size. If successful, the
+ * OS kernel will send #SIGWINCH to the child process group.
+ *
+ * If setting the window size failed, @error will be set to a #GIOError.
+ *
+ * Returns: %TRUE on success, %FALSE on failure with @error filled in
+ *
+ * Since: 0.26
+ */
+gboolean
+vte_pty_set_size(VtePty *pty,
+ int rows,
+ int columns,
+ GError **error)
+{
+ VtePtyPrivate *priv;
+ struct winsize size;
+ int master;
+ int ret;
+
+ g_return_val_if_fail(VTE_IS_PTY(pty), FALSE);
+
+ priv = pty->priv;
+
+ master = vte_pty_get_fd(pty);
+
+ memset(&size, 0, sizeof(size));
+ size.ws_row = rows > 0 ? rows : 24;
+ size.ws_col = columns > 0 ? columns : 80;
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "Setting size on fd %d to (%d,%d).\n",
+ master, columns, rows);
+ ret = ioctl(master, TIOCSWINSZ, &size);
+ if (ret != 0) {
+ int errsv = errno;
+
+ g_set_error(error, G_IO_ERROR,
+ g_io_error_from_errno(errsv),
+ "Failed to set window size: %s",
+ g_strerror(errsv));
+
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "Failed to set size on %d: %s.\n",
+ master, g_strerror(errsv));
+
+ errno = errsv;
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/**
+ * vte_pty_get_size:
+ * @pty: a #VtePty
+ * @rows: (out) (allow-none): a location to store the number of rows, or %NULL
+ * @columns: (out) (allow-none): a location to store the number of columns, or %NULL
+ * @error: return location to store a #GError, or %NULL
+ *
+ * Reads the pseudo terminal's window size.
+ *
+ * If getting the window size failed, @error will be set to a #GIOError.
+ *
+ * Returns: %TRUE on success, %FALSE on failure with @error filled in
+ *
+ * Since: 0.26
+ */
+gboolean
+vte_pty_get_size(VtePty *pty,
+ int *rows,
+ int *columns,
+ GError **error)
+{
+ VtePtyPrivate *priv;
+ struct winsize size;
+ int master;
+ int ret;
+
+ g_return_val_if_fail(VTE_IS_PTY(pty), FALSE);
+
+ priv = pty->priv;
+
+ master = vte_pty_get_fd(pty);
+
+ memset(&size, 0, sizeof(size));
+ ret = ioctl(master, TIOCGWINSZ, &size);
+ if (ret == 0) {
+ if (columns != NULL) {
+ *columns = size.ws_col;
+ }
+ if (rows != NULL) {
+ *rows = size.ws_row;
+ }
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "Size on fd %d is (%d,%d).\n",
+ master, size.ws_col, size.ws_row);
+ return TRUE;
+ } else {
+ int errsv = errno;
+
+ g_set_error(error, G_IO_ERROR,
+ g_io_error_from_errno(errsv),
+ "Failed to get window size: %s",
+ g_strerror(errsv));
+
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "Failed to read size from fd %d: %s\n",
+ master, g_strerror(errsv));
+
+ errno = errsv;
+
+ return FALSE;
+ }
+}
+
+/*
+ * _vte_pty_ptsname:
+ * @master: file descriptor to the PTY master
+ * @error: a location to store a #GError, or %NULL
+ *
+ * Returns: a newly allocated string containing the file name of the
+ * PTY slave device, or %NULL on failure with @error filled in
+ */
+static char *
+_vte_pty_ptsname(int master,
+ GError **error)
+{
+#if defined(HAVE_PTSNAME_R)
+ gsize len = 1024;
+ char *buf = NULL;
+ int i, errsv;
+ do {
+ buf = g_malloc0(len);
+ i = ptsname_r(master, buf, len - 1);
+ switch (i) {
+ case 0:
+ /* Return the allocated buffer with the name in it. */
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "PTY slave is `%s'.\n", buf);
+ return buf;
+ break;
+ default:
+ errsv = errno;
+ g_free(buf);
+ errno = errsv;
+ buf = NULL;
+ break;
+ }
+ len *= 2;
+ } while ((i != 0) && (errno == ERANGE));
+
+ g_set_error(error, VTE_PTY_ERROR, VTE_PTY_ERROR_PTY98_FAILED,
+ "%s failed: %s", "ptsname_r", g_strerror(errno));
+ return NULL;
+#elif defined(HAVE_PTSNAME)
+ char *p;
+ if ((p = ptsname(master)) != NULL) {
+ _vte_debug_print(VTE_DEBUG_PTY, "PTY slave is `%s'.\n", p);
+ return g_strdup(p);
+ }
+
+ g_set_error(error, VTE_PTY_ERROR, VTE_PTY_ERROR_PTY98_FAILED,
+ "%s failed: %s", "ptsname", g_strerror(errno));
+ return NULL;
+#elif defined(TIOCGPTN)
+ int pty = 0;
+ if (ioctl(master, TIOCGPTN, &pty) == 0) {
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "PTY slave is `/dev/pts/%d'.\n", pty);
+ return g_strdup_printf("/dev/pts/%d", pty);
+ }
+
+ g_set_error(error, VTE_PTY_ERROR, VTE_PTY_ERROR_PTY98_FAILED,
+ "%s failed: %s", "ioctl(TIOCGPTN)", g_strerror(errno));
+ return NULL;
+#else
+#error no ptsname implementation for this platform
+#endif
+}
+
+/*
+ * _vte_pty_getpt:
+ * @error: a location to store a #GError, or %NULL
+ *
+ * Opens a file descriptor for the next available PTY master.
+ * Sets the descriptor to blocking mode!
+ *
+ * Returns: a new file descriptor, or %-1 on failure
+ */
+static int
+_vte_pty_getpt(GError **error)
+{
+ int fd, flags, rv;
+#ifdef HAVE_GETPT
+ /* Call the system's function for allocating a pty. */
+ fd = getpt();
+#else
+ /* Try to allocate a pty by accessing the pty master multiplex. */
+ fd = open("/dev/ptmx", O_RDWR | O_NOCTTY);
+ if ((fd == -1) && (errno == ENOENT)) {
+ fd = open("/dev/ptc", O_RDWR | O_NOCTTY); /* AIX */
+ }
+#endif
+ if (fd == -1) {
+ g_set_error (error, VTE_PTY_ERROR,
+ VTE_PTY_ERROR_PTY98_FAILED,
+ "%s failed: %s", "getpt", g_strerror(errno));
+ return -1;
+ }
+
+ rv = fcntl(fd, F_GETFL, 0);
+ if (rv < 0) {
+ int errsv = errno;
+ g_set_error(error, VTE_PTY_ERROR,
+ VTE_PTY_ERROR_PTY98_FAILED,
+ "%s failed: %s", "fcntl(F_GETFL)", g_strerror(errno));
+ close(fd);
+ errno = errsv;
+ return -1;
+ }
+
+ /* Set it to blocking. */
+ /* FIXMEchpe: why?? vte_terminal_set_pty does the inverse... */
+ flags = rv & ~(O_NONBLOCK);
+ rv = fcntl(fd, F_SETFL, flags);
+ if (rv < 0) {
+ int errsv = errno;
+ g_set_error(error, VTE_PTY_ERROR,
+ VTE_PTY_ERROR_PTY98_FAILED,
+ "%s failed: %s", "fcntl(F_SETFL)", g_strerror(errno));
+ close(fd);
+ errno = errsv;
+ return -1;
+ }
+
+ return fd;
+}
+
+static gboolean
+_vte_pty_grantpt(int master,
+ GError **error)
+{
+#ifdef HAVE_GRANTPT
+ int rv;
+
+ rv = grantpt(master);
+ if (rv != 0) {
+ int errsv = errno;
+ g_set_error(error, VTE_PTY_ERROR, VTE_PTY_ERROR_PTY98_FAILED,
+ "%s failed: %s", "grantpt", g_strerror(errsv));
+ errno = errsv;
+ return FALSE;
+ }
+#endif
+ return TRUE;
+}
+
+static gboolean
+_vte_pty_unlockpt(int fd,
+ GError **error)
+{
+ int rv;
+#ifdef HAVE_UNLOCKPT
+ rv = unlockpt(fd);
+ if (rv != 0) {
+ int errsv = errno;
+ g_set_error(error, VTE_PTY_ERROR, VTE_PTY_ERROR_PTY98_FAILED,
+ "%s failed: %s", "unlockpt", g_strerror(errsv));
+ errno = errsv;
+ return FALSE;
+ }
+ return TRUE;
+#elif defined(TIOCSPTLCK)
+ int zero = 0;
+ rv = ioctl(fd, TIOCSPTLCK, &zero);
+ if (rv != 0) {
+ int errsv = errno;
+ g_set_error(error, VTE_PTY_ERROR, VTE_PTY_ERROR_PTY98_FAILED,
+ "%s failed: %s", "ioctl(TIOCSPTLCK)", g_strerror(errsv));
+ errno = errsv;
+ return FALSE;
+ }
+ return TRUE;
+#else
+#error no unlockpt implementation for this platform
+#endif
+}
+
+/*
+ * _vte_pty_open_unix98:
+ * @pty: a #VtePty
+ * @error: a location to store a #GError, or %NULL
+ *
+ * Opens a new file descriptor to a new PTY master.
+ *
+ * Returns: %TRUE on success, %FALSE on failure with @error filled in
+ */
+static gboolean
+_vte_pty_open_unix98(VtePty *pty,
+ GError **error)
+{
+ VtePtyPrivate *priv = pty->priv;
+ int fd;
+ char *buf;
+
+ /* Attempt to open the master. */
+ fd = _vte_pty_getpt(error);
+ if (fd == -1)
+ return FALSE;
+
+ _vte_debug_print(VTE_DEBUG_PTY, "Allocated pty on fd %d.\n", fd);
+
+ /* Read the slave number and unlock it. */
+ if ((buf = _vte_pty_ptsname(fd, error)) == NULL ||
+ !_vte_pty_grantpt(fd, error) ||
+ !_vte_pty_unlockpt(fd, error)) {
+ int errsv = errno;
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "PTY setup failed, bailing.\n");
+ close(fd);
+ errno = errsv;
+ return FALSE;
+ }
+
+ priv->pty_fd = fd;
+ priv->child_setup_data.mode = TTY_OPEN_BY_NAME;
+ priv->child_setup_data.tty.name = buf;
+ priv->using_helper = FALSE;
+
+ return TRUE;
+}
+
+#ifdef VTE_USE_GNOME_PTY_HELPER
+#ifdef HAVE_RECVMSG
+static void
+_vte_pty_read_ptypair(int tunnel, int *parentfd, int *childfd)
+{
+ int i, ret;
+ char control[LINE_MAX], iobuf[LINE_MAX];
+ struct cmsghdr *cmsg;
+ struct msghdr msg;
+ struct iovec vec;
+
+ for (i = 0; i < 2; i++) {
+ vec.iov_base = iobuf;
+ vec.iov_len = sizeof(iobuf);
+ msg.msg_name = NULL;
+ msg.msg_namelen = 0;
+ msg.msg_iov = &vec;
+ msg.msg_iovlen = 1;
+ msg.msg_control = control;
+ msg.msg_controllen = sizeof(control);
+ ret = recvmsg(tunnel, &msg, PTY_RECVMSG_FLAGS);
+ if (ret == -1) {
+ return;
+ }
+ for (cmsg = CMSG_FIRSTHDR(&msg);
+ cmsg != NULL;
+ cmsg = CMSG_NXTHDR(&msg, cmsg)) {
+ if (cmsg->cmsg_type == SCM_RIGHTS) {
+ memcpy(&ret, CMSG_DATA(cmsg), sizeof(ret));
+ switch (i) {
+ case 0:
+ *parentfd = ret;
+ break;
+ case 1:
+ *childfd = ret;
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+ }
+ }
+ }
+}
+#elif defined (I_RECVFD)
+static void
+_vte_pty_read_ptypair(int tunnel, int *parentfd, int *childfd)
+{
+ int i;
+ if (ioctl(tunnel, I_RECVFD, &i) == -1) {
+ return;
+ }
+ *parentfd = i;
+ if (ioctl(tunnel, I_RECVFD, &i) == -1) {
+ return;
+ }
+ *childfd = i;
+}
+#endif
+
+#ifdef HAVE_SOCKETPAIR
+static int
+_vte_pty_pipe_open(int *a, int *b)
+{
+ int p[2], ret = -1;
+#ifdef PF_UNIX
+#ifdef SOCK_STREAM
+ ret = socketpair(PF_UNIX, SOCK_STREAM, 0, p);
+#else
+#ifdef SOCK_DGRAM
+ ret = socketpair(PF_UNIX, SOCK_DGRAM, 0, p);
+#endif
+#endif
+ if (ret == 0) {
+ *a = p[0];
+ *b = p[1];
+ return 0;
+ }
+#endif
+ return ret;
+}
+#else
+static int
+_vte_pty_pipe_open(int *a, int *b)
+{
+ int p[2], ret = -1;
+
+ ret = pipe(p);
+
+ if (ret == 0) {
+ *a = p[0];
+ *b = p[1];
+ }
+ return ret;
+}
+#endif
+
+/* Like read, but hide EINTR and EAGAIN. */
+static ssize_t
+n_read(int fd, void *buffer, size_t count)
+{
+ size_t n = 0;
+ char *buf = buffer;
+ int i;
+ while (n < count) {
+ i = read(fd, buf + n, count - n);
+ switch (i) {
+ case 0:
+ return n;
+ case -1:
+ switch (errno) {
+ case EINTR:
+ case EAGAIN:
+#ifdef ERESTART
+ case ERESTART:
+#endif
+ break;
+ default:
+ return -1;
+ }
+ break;
+ default:
+ n += i;
+ break;
+ }
+ }
+ return n;
+}
+
+/* Like write, but hide EINTR and EAGAIN. */
+static ssize_t
+n_write(int fd, const void *buffer, size_t count)
+{
+ size_t n = 0;
+ const char *buf = buffer;
+ int i;
+ while (n < count) {
+ i = write(fd, buf + n, count - n);
+ switch (i) {
+ case 0:
+ return n;
+ case -1:
+ switch (errno) {
+ case EINTR:
+ case EAGAIN:
+#ifdef ERESTART
+ case ERESTART:
+#endif
+ break;
+ default:
+ return -1;
+ }
+ break;
+ default:
+ n += i;
+ break;
+ }
+ }
+ return n;
+}
+
+/*
+ * _vte_pty_stop_helper:
+ *
+ * Terminates the running GNOME PTY helper.
+ */
+static void
+_vte_pty_stop_helper(void)
+{
+ if (_vte_pty_helper_started) {
+ close(_vte_pty_helper_tunnel);
+ _vte_pty_helper_tunnel = -1;
+ kill(_vte_pty_helper_pid, SIGTERM);
+ _vte_pty_helper_pid = -1;
+ _vte_pty_helper_started = FALSE;
+ }
+}
+
+/*
+ * _vte_pty_start_helper:
+ * @error: a location to store a #GError, or %NULL
+ *
+ * Starts the GNOME PTY helper process, if it is not already running.
+ *
+ * Returns: %TRUE if the helper was already started, or starting it succeeded,
+ * %FALSE on failure with @error filled in
+ */
+static gboolean
+_vte_pty_start_helper(GError **error)
+{
+ int i, errsv;
+ int tunnel = -1;
+ int tmp[2] = { -1, -1 };
+
+ if (_vte_pty_helper_started)
+ return TRUE;
+
+ /* Create a communication link for use with the helper. */
+ tmp[0] = open("/dev/null", O_RDONLY);
+ if (tmp[0] == -1) {
+ goto failure;
+ }
+ tmp[1] = open("/dev/null", O_RDONLY);
+ if (tmp[1] == -1) {
+ goto failure;
+ }
+ if (_vte_pty_pipe_open(&_vte_pty_helper_tunnel, &tunnel) != 0) {
+ goto failure;
+ }
+ close(tmp[0]);
+ close(tmp[1]);
+ tmp[0] = tmp[1] = -1;
+
+ /* Now fork and start the helper. */
+ _vte_pty_helper_pid = fork();
+ if (_vte_pty_helper_pid == -1) {
+ goto failure;
+ }
+ if (_vte_pty_helper_pid == 0) {
+ /* Child. Close descriptors. No need to close all,
+ * gnome-pty-helper does that anyway. */
+ for (i = 0; i < 3; i++) {
+ close(i);
+ }
+ /* Reassign the socket pair to stdio. */
+ dup2(tunnel, STDIN_FILENO);
+ dup2(tunnel, STDOUT_FILENO);
+ close(tunnel);
+ close(_vte_pty_helper_tunnel);
+ /* Exec our helper. */
+ execl(LIBEXECDIR "/gnome-pty-helper",
+ "gnome-pty-helper", NULL);
+ /* Bail. */
+ _exit(1);
+ }
+ close(tunnel);
+ atexit(_vte_pty_stop_helper);
+
+ _vte_pty_helper_started = TRUE;
+ return TRUE;
+
+failure:
+ errsv = errno;
+
+ g_set_error(error, VTE_PTY_ERROR,
+ VTE_PTY_ERROR_PTY_HELPER_FAILED,
+ "Failed to start gnome-pty-helper: %s",
+ g_strerror (errsv));
+
+ if (tmp[0] != -1)
+ close(tmp[0]);
+ if (tmp[1] != -1)
+ close(tmp[1]);
+ if (tunnel != -1)
+ close(tunnel);
+ if (_vte_pty_helper_tunnel != -1)
+ close(_vte_pty_helper_tunnel);
+
+ _vte_pty_helper_pid = -1;
+ _vte_pty_helper_tunnel = -1;
+
+ errno = errsv;
+ return FALSE;
+}
+
+/*
+ * _vte_pty_helper_ops_from_flags:
+ * @flags: flags from #VtePtyFlags
+ *
+ * Translates @flags into the corresponding op code for the
+ * GNOME PTY helper.
+ *
+ * Returns: the #GnomePtyOps corresponding to @flags
+ */
+static int
+_vte_pty_helper_ops_from_flags (VtePtyFlags flags)
+{
+ int op = 0;
+ static const int opmap[8] = {
+ GNOME_PTY_OPEN_NO_DB_UPDATE, /* 0 0 0 */
+ GNOME_PTY_OPEN_PTY_LASTLOG, /* 0 0 1 */
+ GNOME_PTY_OPEN_PTY_UTMP, /* 0 1 0 */
+ GNOME_PTY_OPEN_PTY_LASTLOGUTMP, /* 0 1 1 */
+ GNOME_PTY_OPEN_PTY_WTMP, /* 1 0 0 */
+ GNOME_PTY_OPEN_PTY_LASTLOGWTMP, /* 1 0 1 */
+ GNOME_PTY_OPEN_PTY_UWTMP, /* 1 1 0 */
+ GNOME_PTY_OPEN_PTY_LASTLOGUWTMP, /* 1 1 1 */
+ };
+ if ((flags & VTE_PTY_NO_LASTLOG) == 0) {
+ op += 1;
+ }
+ if ((flags & VTE_PTY_NO_UTMP) == 0) {
+ op += 2;
+ }
+ if ((flags & VTE_PTY_NO_WTMP) == 0) {
+ op += 4;
+ }
+ g_assert(op >= 0 && op < (int) G_N_ELEMENTS(opmap));
+
+ return opmap[op];
+}
+
+/*
+ * _vte_pty_open_with_helper:
+ * @pty: a #VtePty
+ * @error: a location to store a #GError, or %NULL
+ *
+ * Opens a new file descriptor to a new PTY master using the
+ * GNOME PTY helper.
+ *
+ * Returns: %TRUE on success, %FALSE on failure with @error filled in
+ */
+static gboolean
+_vte_pty_open_with_helper(VtePty *pty,
+ GError **error)
+{
+ VtePtyPrivate *priv = pty->priv;
+ GnomePtyOps ops;
+ int ret;
+ int parentfd = -1, childfd = -1;
+ gpointer tag;
+
+ /* We have to use the pty helper here. */
+ if (!_vte_pty_start_helper(error))
+ return FALSE;
+
+ /* Try to open a new descriptor. */
+
+ ops = _vte_pty_helper_ops_from_flags(priv->flags);
+ /* Send our request. */
+ if (n_write(_vte_pty_helper_tunnel,
+ &ops, sizeof(ops)) != sizeof(ops)) {
+ g_set_error (error, VTE_PTY_ERROR,
+ VTE_PTY_ERROR_PTY_HELPER_FAILED,
+ "Failed to send request to gnome-pty-helper: %s",
+ g_strerror(errno));
+ return FALSE;
+ }
+ _vte_debug_print(VTE_DEBUG_PTY, "Sent request to helper.\n");
+ /* Read back the response. */
+ if (n_read(_vte_pty_helper_tunnel,
+ &ret, sizeof(ret)) != sizeof(ret)) {
+ g_set_error (error, VTE_PTY_ERROR,
+ VTE_PTY_ERROR_PTY_HELPER_FAILED,
+ "Failed to read response from gnome-pty-helper: %s",
+ g_strerror(errno));
+ return FALSE;
+ }
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "Received response from helper.\n");
+ if (ret == 0) {
+ g_set_error_literal (error, VTE_PTY_ERROR,
+ VTE_PTY_ERROR_PTY_HELPER_FAILED,
+ "gnome-pty-helper failed to open pty");
+ return FALSE;
+ }
+ _vte_debug_print(VTE_DEBUG_PTY, "Helper returns success.\n");
+ /* Read back a tag. */
+ if (n_read(_vte_pty_helper_tunnel,
+ &tag, sizeof(tag)) != sizeof(tag)) {
+ g_set_error (error, VTE_PTY_ERROR,
+ VTE_PTY_ERROR_PTY_HELPER_FAILED,
+ "Failed to read tag from gnome-pty-helper: %s",
+ g_strerror(errno));
+ return FALSE;
+ }
+ _vte_debug_print(VTE_DEBUG_PTY, "Tag = %p.\n", tag);
+ /* Receive the master and slave ptys. */
+ _vte_pty_read_ptypair(_vte_pty_helper_tunnel,
+ &parentfd, &childfd);
+
+ if ((parentfd == -1) || (childfd == -1)) {
+ int errsv = errno;
+
+ close(parentfd);
+ close(childfd);
+
+ g_set_error (error, VTE_PTY_ERROR,
+ VTE_PTY_ERROR_PTY_HELPER_FAILED,
+ "Failed to read master or slave pty from gnome-pty-helper: %s",
+ g_strerror(errsv));
+ errno = errsv;
+ return FALSE;
+ }
+
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "Got master pty %d and slave pty %d.\n",
+ parentfd, childfd);
+
+ priv->using_helper = TRUE;
+ priv->helper_tag = tag;
+ priv->pty_fd = parentfd;
+
+ priv->child_setup_data.mode = TTY_OPEN_BY_FD;
+ priv->child_setup_data.tty.fd = childfd;
+
+ return TRUE;
+}
+
+#endif /* VTE_USE_GNOME_PTY_HELPER */
+
+/**
+ * vte_pty_set_utf8:
+ * @pty: a #VtePty
+ * @utf8: whether or not the pty is in UTF-8 mode
+ * @error: (allow-none): return location to store a #GError, or %NULL
+ *
+ * Tells the kernel whether the terminal is UTF-8 or not, in case it can make
+ * use of the info. Linux 2.6.5 or so defines IUTF8 to make the line
+ * discipline do multibyte backspace correctly.
+ *
+ * Returns: %TRUE on success, %FALSE on failure with @error filled in
+ *
+ * Since: 0.26
+ */
+gboolean
+vte_pty_set_utf8(VtePty *pty,
+ gboolean utf8,
+ GError **error)
+{
+#if defined(HAVE_TCSETATTR) && defined(IUTF8)
+ VtePtyPrivate *priv;
+ struct termios tio;
+ tcflag_t saved_cflag;
+
+ g_return_val_if_fail(VTE_IS_PTY(pty), FALSE);
+
+ priv = pty->priv;
+ g_return_val_if_fail (priv->pty_fd > 0, FALSE);
+
+ if (tcgetattr(priv->pty_fd, &tio) == -1) {
+ int errsv = errno;
+ g_set_error(error, G_IO_ERROR, g_io_error_from_errno(errsv),
+ "%s failed: %s", "tcgetattr", g_strerror(errsv));
+ errno = errsv;
+ return FALSE;
+ }
+
+ saved_cflag = tio.c_iflag;
+ if (utf8) {
+ tio.c_iflag |= IUTF8;
+ } else {
+ tio.c_iflag &= ~IUTF8;
+ }
+
+ /* Only set the flag if it changes */
+ if (saved_cflag != tio.c_iflag &&
+ tcsetattr(priv->pty_fd, TCSANOW, &tio) == -1) {
+ int errsv = errno;
+ g_set_error(error, G_IO_ERROR, g_io_error_from_errno(errsv),
+ "%s failed: %s", "tcgetattr", g_strerror(errsv));
+ errno = errsv;
+ return FALSE;
+ }
+#endif
+
+ return TRUE;
+}
+
+/**
+ * vte_pty_close:
+ * @pty: a #VtePty
+ *
+ * Cleans up the PTY, specifically any logging performed for the session.
+ * The file descriptor to the PTY master remains open.
+ *
+ * Since: 0.26
+ */
+void
+vte_pty_close (VtePty *pty)
+{
+#ifdef VTE_USE_GNOME_PTY_HELPER
+ VtePtyPrivate *priv = pty->priv;
+ gpointer tag;
+ GnomePtyOps ops;
+
+ if (!priv->using_helper)
+ return;
+
+ /* Signal the helper that it needs to close its connection. */
+ tag = priv->helper_tag;
+
+ ops = GNOME_PTY_CLOSE_PTY;
+ if (n_write(_vte_pty_helper_tunnel,
+ &ops, sizeof(ops)) != sizeof(ops)) {
+ return;
+ }
+ if (n_write(_vte_pty_helper_tunnel,
+ &tag, sizeof(tag)) != sizeof(tag)) {
+ return;
+ }
+
+ ops = GNOME_PTY_SYNCH;
+ if (n_write(_vte_pty_helper_tunnel,
+ &ops, sizeof(ops)) != sizeof(ops)) {
+ return;
+ }
+ n_read(_vte_pty_helper_tunnel, &ops, 1);
+
+ priv->helper_tag = NULL;
+ priv->using_helper = FALSE;
+#endif
+}
+
+/* VTE PTY class */
+
+enum {
+ PROP_0,
+ PROP_FLAGS,
+ PROP_FD,
+ PROP_TERM
+};
+
+/* GInitable impl */
+
+static gboolean
+vte_pty_initable_init (GInitable *initable,
+ GCancellable *cancellable,
+ GError **error)
+{
+ VtePty *pty = VTE_PTY (initable);
+ VtePtyPrivate *priv = pty->priv;
+ gboolean ret = FALSE;
+
+ if (cancellable != NULL) {
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+ "Cancellable initialisation not supported");
+ return FALSE;
+ }
+
+ /* If we already have a (foreign) FD, we're done. */
+ if (priv->foreign) {
+ g_assert(priv->pty_fd != -1);
+ return TRUE;
+ }
+
+#ifdef VTE_USE_GNOME_PTY_HELPER
+ if ((priv->flags & VTE_PTY_NO_HELPER) == 0) {
+ GError *err = NULL;
+
+ ret = _vte_pty_open_with_helper(pty, &err);
+ g_assert(ret || err != NULL);
+
+ if (ret)
+ goto out;
+
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "_vte_pty_open_with_helper failed: %s\n",
+ err->message);
+
+ /* Only do fallback if gnome-pty-helper failed! */
+ if ((priv->flags & VTE_PTY_NO_FALLBACK) ||
+ !g_error_matches(err,
+ VTE_PTY_ERROR,
+ VTE_PTY_ERROR_PTY_HELPER_FAILED)) {
+ g_propagate_error (error, err);
+ goto out;
+ }
+
+ g_error_free(err);
+ /* Fall back to unix98 PTY */
+ }
+#else
+ if (priv->flags & VTE_PTY_NO_FALLBACK) {
+ g_set_error_literal(error, VTE_PTY_ERROR, VTE_PTY_ERROR_PTY_HELPER_FAILED,
+ "VTE compiled without GNOME PTY helper");
+ goto out;
+ }
+#endif /* VTE_USE_GNOME_PTY_HELPER */
+
+ ret = _vte_pty_open_unix98(pty, error);
+
+ out:
+ _vte_debug_print(VTE_DEBUG_PTY,
+ "vte_pty_initable_init returning %s with ptyfd = %d\n",
+ ret ? "TRUE" : "FALSE", priv->pty_fd);
+
+ return ret;
+}
+
+static void
+vte_pty_initable_iface_init (GInitableIface *iface)
+{
+ iface->init = vte_pty_initable_init;
+}
+
+/* GObjectClass impl */
+
+G_DEFINE_TYPE_WITH_CODE (VtePty, vte_pty, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, vte_pty_initable_iface_init))
+
+static void
+vte_pty_init (VtePty *pty)
+{
+ VtePtyPrivate *priv;
+
+ priv = pty->priv = G_TYPE_INSTANCE_GET_PRIVATE (pty, VTE_TYPE_PTY, VtePtyPrivate);
+
+ priv->flags = VTE_PTY_DEFAULT;
+ priv->pty_fd = -1;
+ priv->foreign = FALSE;
+ priv->using_helper = FALSE;
+ priv->helper_tag = NULL;
+ priv->term = vte_terminal_get_default_emulation(NULL /* that's ok, this function is just retarded
*/); /* already interned */
+}
+
+static void
+vte_pty_finalize (GObject *object)
+{
+ VtePty *pty = VTE_PTY (object);
+ VtePtyPrivate *priv = pty->priv;
+
+ if (priv->child_setup_data.mode == TTY_OPEN_BY_FD &&
+ priv->child_setup_data.tty.fd != -1) {
+ /* Close the child FD */
+ close(priv->child_setup_data.tty.fd);
+ }
+
+ vte_pty_close(pty);
+
+ /* Close the master FD */
+ if (priv->pty_fd != -1) {
+ close(priv->pty_fd);
+ }
+
+ G_OBJECT_CLASS (vte_pty_parent_class)->finalize (object);
+}
+
+static void
+vte_pty_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ VtePty *pty = VTE_PTY (object);
+ VtePtyPrivate *priv = pty->priv;
+
+ switch (property_id) {
+ case PROP_FLAGS:
+ g_value_set_flags(value, priv->flags);
+ break;
+
+ case PROP_FD:
+ g_value_set_int(value, vte_pty_get_fd(pty));
+ break;
+
+ case PROP_TERM:
+ g_value_set_string(value, priv->term);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
+ }
+}
+
+static void
+vte_pty_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ VtePty *pty = VTE_PTY (object);
+ VtePtyPrivate *priv = pty->priv;
+
+ switch (property_id) {
+ case PROP_FLAGS:
+ priv->flags = g_value_get_flags(value);
+ break;
+
+ case PROP_FD:
+ priv->pty_fd = g_value_get_int(value);
+ priv->foreign = (priv->pty_fd != -1);
+ break;
+
+ case PROP_TERM:
+ vte_pty_set_term(pty, g_value_get_string(value));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ }
+}
+
+static void
+vte_pty_class_init (VtePtyClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ g_type_class_add_private(object_class, sizeof(VtePtyPrivate));
+
+ object_class->set_property = vte_pty_set_property;
+ object_class->get_property = vte_pty_get_property;
+ object_class->finalize = vte_pty_finalize;
+
+ /**
+ * VtePty:flags:
+ *
+ * Controls how the session is recorded in lastlog, utmp, and wtmp,
+ * and whether to use the GNOME PTY helper.
+ *
+ * Since: 0.26
+ */
+ g_object_class_install_property
+ (object_class,
+ PROP_FLAGS,
+ g_param_spec_flags ("flags", NULL, NULL,
+ VTE_TYPE_PTY_FLAGS,
+ VTE_PTY_DEFAULT,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * VtePty:fd:
+ *
+ * The file descriptor of the PTY master.
+ *
+ * Since: 0.26
+ */
+ g_object_class_install_property
+ (object_class,
+ PROP_FD,
+ g_param_spec_int ("fd", NULL, NULL,
+ -1, G_MAXINT, -1,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * VtePty:term:
+ *
+ * The value to set for the TERM environment variable just after
+ * forking.
+ *
+ * Since: 0.26
+ */
+ g_object_class_install_property
+ (object_class,
+ PROP_TERM,
+ g_param_spec_string ("term", NULL, NULL,
+ "xterm",
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+}
+
+/* public API */
+
+/**
+ * vte_pty_error_quark:
+ *
+ * Error domain for VTE PTY errors. Errors in this domain will be from the #VtePtyError
+ * enumeration. See #GError for more information on error domains.
+ *
+ * Returns: the error domain for VTE PTY errors
+ *
+ * Since: 0.26
+ */
+GQuark
+vte_pty_error_quark(void)
+{
+ static GQuark quark = 0;
+
+ if (G_UNLIKELY (quark == 0))
+ quark = g_quark_from_static_string("vte-pty-error");
+
+ return quark;
+}
+
+/**
+ * vte_pty_new:
+ * @flags: flags from #VtePtyFlags
+ * @error: (allow-none): return location for a #GError, or %NULL
+ *
+ * Allocates a new pseudo-terminal.
+ *
+ * You can later use fork() or the g_spawn_async() family of functions
+ * to start a process on the PTY.
+ *
+ * If using fork(), you MUST call vte_pty_child_setup() in the child.
+ *
+ * If using g_spawn_async() and friends, you MUST either use
+ * vte_pty_child_setup() directly as the child setup function, or call
+ * vte_pty_child_setup() from your own child setup function supplied.
+ * Also, you MUST pass the %G_SPAWN_DO_NOT_REAP_CHILD flag.
+ *
+ * If GNOME PTY Helper is available and
+ * unless some of the %VTE_PTY_NO_LASTLOG, %VTE_PTY_NO_UTMP or
+ * %VTE_PTY_NO_WTMP flags are passed in @flags, the
+ * session is logged in the corresponding lastlog, utmp or wtmp
+ * system files. When passing %VTE_PTY_NO_HELPER in @flags, the
+ * GNOME PTY Helper is bypassed entirely.
+ *
+ * When passing %VTE_PTY_NO_FALLBACK in @flags,
+ * and opening a PTY using the PTY helper fails, there will
+ * be no fallback to allocate a PTY using Unix98 PTY functions.
+ *
+ * Returns: (transfer full): a new #VtePty, or %NULL on error with @error filled in
+ *
+ * Since: 0.26
+ */
+VtePty *
+vte_pty_new (VtePtyFlags flags,
+ GError **error)
+{
+ return g_initable_new (VTE_TYPE_PTY,
+ NULL /* cancellable */,
+ error,
+ "flags", flags,
+ NULL);
+}
+
+/**
+ * vte_pty_new_foreign:
+ * @fd: (transfer full): a file descriptor to the PTY
+ * @error: (allow-none): return location for a #GError, or %NULL
+ *
+ * Creates a new #VtePty for the PTY master @fd.
+ *
+ * No entry will be made in the lastlog, utmp or wtmp system files.
+ *
+ * Note that the newly created #VtePty will take ownership of @fd
+ * and close it on finalize.
+ *
+ * Returns: (transfer full): a new #VtePty for @fd, or %NULL on error with @error filled in
+ *
+ * Since: 0.26
+ */
+VtePty *
+vte_pty_new_foreign (int fd,
+ GError **error)
+{
+ g_return_val_if_fail(fd >= 0, NULL);
+
+ return g_initable_new (VTE_TYPE_PTY,
+ NULL /* cancellable */,
+ error,
+ "fd", fd,
+ NULL);
+}
+
+/**
+ * vte_pty_get_fd:
+ * @pty: a #VtePty
+ *
+ * Returns: (transfer none): the file descriptor of the PTY master in @pty. The
+ * file descriptor belongs to @pty and must not be closed
+ */
+int
+vte_pty_get_fd (VtePty *pty)
+{
+ VtePtyPrivate *priv;
+
+ g_return_val_if_fail(VTE_IS_PTY(pty), -1);
+
+ priv = pty->priv;
+ g_return_val_if_fail(priv->pty_fd != -1, -1);
+
+ return priv->pty_fd;
+}
+
+/**
+ * vte_pty_set_term:
+ * @pty: a #VtePty
+ * @emulation: (allow-none): the name of a terminal description, or %NULL
+ *
+ * Sets what value of the TERM environment variable to set just after forking.
+ *
+ * Since: 0.26
+ */
+void
+vte_pty_set_term (VtePty *pty,
+ const char *emulation)
+{
+ VtePtyPrivate *priv;
+
+ g_return_if_fail(VTE_IS_PTY(pty));
+ g_return_if_fail(emulation != NULL);
+
+ priv = pty->priv;
+ emulation = g_intern_string(emulation);
+ if (emulation == priv->term)
+ return;
+
+ priv->term = emulation;
+ g_object_notify(G_OBJECT(pty), "term");
+}
+
+/* Reimplementation of the ugly deprecated APIs _vte_pty_*() */
+
+#ifndef VTE_DISABLE_DEPRECATED_SOURCE
+
+static GHashTable *fd_to_pty_hash = NULL;
+
+static VtePty *
+get_vte_pty_for_fd (int fd)
+{
+ VtePty *pty;
+
+ if (fd_to_pty_hash != NULL &&
+ (pty = g_hash_table_lookup(fd_to_pty_hash, &fd)) != NULL)
+ return pty;
+
+ g_warning("No VtePty found for fd %d!\n", fd);
+ return NULL;
+}
+
+/**
+ * _vte_pty_open:
+ * @child: location to store the new process's ID
+ * @env_add: a list of environment variables to add to the child's environment
+ * @command: name of the binary to run
+ * @argv: arguments to pass to @command
+ * @directory: directory to start the new command in, or %NULL
+ * @columns: desired window columns
+ * @rows: desired window rows
+ * @lastlog: %TRUE if the lastlog should be updated
+ * @utmp: %TRUE if the utmp or utmpx log should be updated
+ * @wtmp: %TRUE if the wtmp or wtmpx log should be updated
+ *
+ * Starts a new copy of @command running under a psuedo-terminal, optionally in
+ * the supplied @directory, with window size set to @rows x @columns
+ * and variables in @env_add added to its environment. If any combination of
+ * @lastlog, @utmp, and @wtmp is set, then the session is logged in the
+ * corresponding system files.
+ *
+ * Returns: an open file descriptor for the pty master, -1 on failure
+ *
+ * Deprecated: 0.26: Use #VtePty together with fork() or the g_spawn_async() family of functions instead
+ */
+int
+_vte_pty_open(pid_t *child,
+ char **env_add,
+ const char *command,
+ char **argv,
+ const char *directory,
+ int columns,
+ int rows,
+ gboolean lastlog,
+ gboolean utmp,
+ gboolean wtmp)
+{
+ VtePty *pty;
+ GPid pid;
+ gboolean ret;
+
+ pty = vte_pty_new(__vte_pty_get_pty_flags (lastlog, utmp, wtmp), NULL);
+ if (pty == NULL)
+ return -1;
+
+ if (command != NULL) {
+ char **real_argv;
+ GSpawnFlags spawn_flags;
+
+ spawn_flags = G_SPAWN_CHILD_INHERITS_STDIN |
+ G_SPAWN_SEARCH_PATH;
+ real_argv = __vte_pty_get_argv(command, argv, &spawn_flags);
+ ret = __vte_pty_spawn(pty,
+ directory,
+ real_argv,
+ env_add,
+ spawn_flags,
+ NULL, NULL,
+ &pid,
+ NULL);
+ g_strfreev(real_argv);
+ } else {
+ ret = __vte_pty_fork(pty, &pid, NULL);
+ }
+
+ if (!ret) {
+ g_object_unref(pty);
+ return -1;
+ }
+
+ vte_pty_set_size(pty, rows, columns, NULL);
+
+ /* Stash the pty in the hash so we can later retrieve it by FD */
+ if (fd_to_pty_hash == NULL) {
+ fd_to_pty_hash = g_hash_table_new_full(g_int_hash,
+ g_int_equal,
+ NULL,
+ (GDestroyNotify) g_object_unref);
+ }
+
+ g_hash_table_insert(fd_to_pty_hash, &pty->priv->pty_fd, pty /* adopt refcount */);
+
+ if (child)
+ *child = (pid_t) pid;
+
+ return vte_pty_get_fd(pty);
+}
+
+/**
+ * _vte_pty_get_size:
+ * @master: the file descriptor of the PTY master
+ * @columns: a place to store the number of columns
+ * @rows: a place to store the number of rows
+ *
+ * Attempts to read the pseudo terminal's window size.
+ *
+ * Returns: 0 on success, -1 on failure.
+ *
+ * Deprecated: 0.26: Use #VtePty and vte_pty_get_size() instead
+ */
+int
+_vte_pty_get_size(int master,
+ int *columns,
+ int *rows)
+{
+ VtePty *pty;
+
+ if ((pty = get_vte_pty_for_fd(master)) == NULL)
+ return -1;
+
+ if (vte_pty_get_size(pty, rows, columns, NULL))
+ return 0;
+
+ return -1;
+}
+
+/**
+ * _vte_pty_set_size:
+ * @master: the file descriptor of the PTY master
+ * @columns: the desired number of columns
+ * @rows: the desired number of rows
+ *
+ * Attempts to resize the pseudo terminal's window size. If successful, the
+ * OS kernel will send #SIGWINCH to the child process group.
+ *
+ * Returns: 0 on success, -1 on failure.
+ *
+ * Deprecated: 0.26: Use #VtePty and vte_pty_set_size() instead
+ */
+int
+_vte_pty_set_size(int master,
+ int columns,
+ int rows)
+{
+ VtePty *pty;
+
+ if ((pty = get_vte_pty_for_fd(master)) == NULL)
+ return -1;
+
+ if (vte_pty_set_size(pty, rows, columns, NULL))
+ return 0;
+
+ return -1;
+}
+
+/**
+ * _vte_pty_set_utf8:
+ * @pty: The pty master descriptor.
+ * @utf8: Whether or not the pty is in UTF-8 mode.
+ *
+ * Tells the kernel whether the terminal is UTF-8 or not, in case it can make
+ * use of the info. Linux 2.6.5 or so defines IUTF8 to make the line
+ * discipline do multibyte backspace correctly.
+ *
+ * Deprecated: 0.26: Use #VtePty and vte_pty_set_utf8() instead
+ */
+void _vte_pty_set_utf8(int master,
+ gboolean utf8)
+{
+ VtePty *pty;
+
+ if ((pty = get_vte_pty_for_fd(master)) == NULL)
+ return;
+
+ vte_pty_set_utf8(pty, utf8, NULL);
+}
+
+/**
+ * _vte_pty_close:
+ * @pty: the pty master descriptor.
+ *
+ * Cleans up the PTY associated with the descriptor, specifically any logging
+ * performed for the session. The descriptor itself remains open.
+ *
+ * Deprecated: 0.26: Use #VtePty and vte_pty_close() instead
+ */
+void _vte_pty_close(int master)
+{
+ VtePty *pty;
+
+ if ((pty = get_vte_pty_for_fd(master)) == NULL)
+ return;
+
+ /* Prevent closing the FD */
+ pty->priv->pty_fd = -1;
+
+ g_hash_table_remove(fd_to_pty_hash, &master);
+
+ if (g_hash_table_size(fd_to_pty_hash) == 0) {
+ g_hash_table_destroy(fd_to_pty_hash);
+ fd_to_pty_hash = NULL;
+ }
+}
+
+#endif /* !VTE_DISABLE_DEPRECATED_SOURCE */
diff --git a/vte/src/pty.h b/vte/src/pty.h
new file mode 100644
index 0000000..726d639
--- /dev/null
+++ b/vte/src/pty.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2001,2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef VTE_DISABLE_DEPRECATED
+
+#ifndef vte_pty_h_included
+#define vte_pty_h_included
+
+#include <sys/types.h>
+
+G_BEGIN_DECLS
+
+/* Start up the given binary (exact path, not interpreted at all) in a
+ * pseudo-terminal of its own, returning the descriptor for the master
+ * side of the PTY pair, logging the session to the specified files, and
+ * storing the child's PID in the given argument. */
+int _vte_pty_open(pid_t *child, char **env_add,
+ const char *command, char **argv, const char *directory,
+ int columns, int rows,
+ gboolean lastlog, gboolean utmp, gboolean wtmp);
+
+/* Set or read the size of a terminal. Returns 0 on success, -1 on failure,
+ * with errno set to defined return codes from ioctl(). */
+int _vte_pty_get_size(int master, int *columns, int *rows);
+int _vte_pty_set_size(int master, int columns, int rows);
+
+/* Try to let the kernel know that the terminal is or is not UTF-8. */
+void _vte_pty_set_utf8(int pty, gboolean utf8);
+
+/* Close a pty. */
+void _vte_pty_close(int pty);
+
+G_END_DECLS
+
+#endif /* vte_pty_h_included */
+
+#endif /* !VTE_DISABLE_DEPRECATED */
diff --git a/vte/src/reaper.c b/vte/src/reaper.c
new file mode 100644
index 0000000..35ae488
--- /dev/null
+++ b/vte/src/reaper.c
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/**
+ * SECTION: vte-reaper
+ * @short_description: A singleton object which catches %SIGCHLD signals and
+ * converts them into GObject-style "child-exited" signals
+ *
+ * Because an application may need to be notified when child processes
+ * exit, and because there is only one %SIGCHLD handler, the #VteTerminal
+ * widget relies on a #VteReaper to watch for %SIGCHLD notifications and
+ * retrieve the exit status of child processes which have exited. When
+ * glib provides child_watch functionality, the #VteReaper merely acts as
+ * a proxy for glib's own functionality.
+ *
+ * Since 0.11.11
+ */
+
+#include <config.h>
+
+#include "debug.h"
+#include "marshal.h"
+#include "reaper.h"
+
+static VteReaper *singleton_reaper = NULL;
+
+G_DEFINE_TYPE(VteReaper, vte_reaper, G_TYPE_OBJECT)
+
+static void
+vte_reaper_child_watch_cb(GPid pid, gint status, gpointer data)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Reaper emitting child-exited signal.\n");
+ g_signal_emit_by_name(data, "child-exited", pid, status);
+ g_spawn_close_pid (pid);
+}
+
+/**
+ * vte_reaper_add_child:
+ * @pid: the ID of a child process which will be monitored
+ *
+ * Ensures that child-exited signals will be emitted when @pid exits. This is
+ * necessary for correct operation when running with glib versions >= 2.4.
+ *
+ * Returns: the new source ID
+ *
+ * Since 0.11.11
+ */
+int
+vte_reaper_add_child(GPid pid)
+{
+ return g_child_watch_add_full(G_PRIORITY_LOW,
+ pid,
+ vte_reaper_child_watch_cb,
+ vte_reaper_get(),
+ (GDestroyNotify)g_object_unref);
+}
+
+static void
+vte_reaper_init(VteReaper *reaper)
+{
+}
+
+static GObject*
+vte_reaper_constructor (GType type,
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ if (singleton_reaper) {
+ return g_object_ref (singleton_reaper);
+ } else {
+ GObject *obj;
+ obj = G_OBJECT_CLASS (vte_reaper_parent_class)->constructor (type, n_construct_properties,
construct_properties);
+ singleton_reaper = VTE_REAPER (obj);
+ return obj;
+ }
+}
+
+
+static void
+vte_reaper_finalize(GObject *reaper)
+{
+ G_OBJECT_CLASS(vte_reaper_parent_class)->finalize(reaper);
+ singleton_reaper = NULL;
+}
+
+static void
+vte_reaper_class_init(VteReaperClass *klass)
+{
+ GObjectClass *gobject_class;
+
+ /**
+ * VteReaper::child-exited:
+ * @vtereaper: the object which received the signal
+ * @arg1: the process ID of the exited child
+ * @arg2: the status of the exited child, as returned by waitpid()
+ *
+ * Emitted when the #VteReaper object detects that a child of the
+ * current process has exited.
+ *
+ * Since: 0.11.11
+ */
+ klass->child_exited_signal = g_signal_new(g_intern_static_string("child-exited"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ _vte_marshal_VOID__INT_INT,
+ G_TYPE_NONE,
+ 2, G_TYPE_INT, G_TYPE_INT);
+
+ gobject_class = G_OBJECT_CLASS(klass);
+ gobject_class->constructor = vte_reaper_constructor;
+ gobject_class->finalize = vte_reaper_finalize;
+}
+
+/**
+ * vte_reaper_get:
+ *
+ * Finds the address of the global #VteReaper object, creating the object if
+ * necessary.
+ *
+ * Returns: the global #VteReaper object, which should not be unreffed.
+ */
+VteReaper *
+vte_reaper_get(void)
+{
+ return g_object_new(VTE_TYPE_REAPER, NULL);
+}
+
+#ifdef REAPER_MAIN
+
+#include <unistd.h>
+
+GMainContext *context;
+GMainLoop *loop;
+pid_t child;
+
+static void
+child_exited(GObject *object, int pid, int status, gpointer data)
+{
+ g_print("[parent] Child with pid %d exited with code %d, "
+ "was waiting for %d.\n", pid, status, GPOINTER_TO_INT(data));
+ if (child == pid) {
+ g_print("[parent] Quitting.\n");
+ g_main_loop_quit(loop);
+ }
+}
+
+int
+main(int argc, char **argv)
+{
+ VteReaper *reaper;
+ pid_t p, q;
+
+ _vte_debug_init();
+
+ g_type_init();
+ context = g_main_context_default();
+ loop = g_main_loop_new(context, FALSE);
+ reaper = vte_reaper_get();
+
+ g_print("[parent] Forking.\n");
+ p = fork();
+ switch (p) {
+ case -1:
+ g_print("[parent] Fork failed.\n");
+ g_assert_not_reached();
+ break;
+ case 0:
+ g_print("[child] Going to sleep.\n");
+ sleep(10);
+ g_print("[child] Quitting.\n");
+ _exit(30);
+ break;
+ default:
+ g_print("[parent] Starting to wait for %d.\n", p);
+ child = p;
+ g_signal_connect(reaper,
+ "child-exited",
+ G_CALLBACK(child_exited),
+ GINT_TO_POINTER(child));
+ break;
+ }
+
+ g_print("[parent] Forking.\n");
+ q = fork();
+ switch (q) {
+ case -1:
+ g_print("[parent] Fork failed.\n");
+ g_assert_not_reached();
+ break;
+ case 0:
+ g_print("[child] Going to sleep.\n");
+ sleep(5);
+ _exit(5);
+ break;
+ default:
+ g_print("[parent] Not waiting for %d.\n", q);
+ break;
+ }
+
+
+ g_main_loop_run(loop);
+
+ g_object_unref(reaper);
+
+ return 0;
+}
+#endif
diff --git a/vte/src/reaper.h b/vte/src/reaper.h
new file mode 100644
index 0000000..d67498e
--- /dev/null
+++ b/vte/src/reaper.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef VTE_DISABLE_DEPRECATED
+
+#ifndef vte_reaper_h_included
+#define vte_reaper_h_included
+
+#include <sys/wait.h>
+#include <signal.h>
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/**
+ * VteReaper:
+ *
+ * The reaper object.
+ */
+struct _VteReaper {
+ GObject object;
+
+ /*< private >*/
+ GIOChannel *_channel; /* unused */
+ int _iopipe[2]; /* unused */
+};
+typedef struct _VteReaper VteReaper;
+
+struct _VteReaperClass {
+ GObjectClass parent_class;
+ /*< private >*/
+ guint child_exited_signal;
+};
+typedef struct _VteReaperClass VteReaperClass;
+
+GType vte_reaper_get_type(void);
+
+#define VTE_TYPE_REAPER (vte_reaper_get_type())
+#define VTE_REAPER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
+ VTE_TYPE_REAPER, \
+ VteReaper))
+#define VTE_REAPER_CLASS(klass) G_TYPE_CHECK_CLASS_CAST((klass), \
+ VTE_TYPE_REAPER, \
+ VteReaperClass)
+#define VTE_IS_REAPER(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), VTE_TYPE_REAPER)
+#define VTE_IS_REAPER_CLASS(klass) G_TYPE_CHECK_CLASS_TYPE((klass), \
+ VTE_TYPE_REAPER)
+#define VTE_REAPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \
+ VTE_TYPE_REAPER, \
+ VteReaperClass))
+
+VteReaper *vte_reaper_get(void);
+int vte_reaper_add_child(GPid pid);
+
+G_END_DECLS
+
+#endif
+
+#endif /* !VTE_DISABLE_DEPRECATED */
diff --git a/vte/src/reflect.c b/vte/src/reflect.c
new file mode 100644
index 0000000..6d43649
--- /dev/null
+++ b/vte/src/reflect.c
@@ -0,0 +1,340 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#include <sys/types.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <gtk/gtk.h>
+#include <atk/atk.h>
+#ifdef USE_VTE
+#include "vte.h"
+#endif
+
+static GArray *contents = NULL;
+
+#ifdef USE_TEXT_VIEW
+/*
+ * Implementation for a TextView widget.
+ */
+static void
+terminal_init_text_view(GtkWidget **widget)
+{
+ *widget = gtk_text_view_new();
+ gtk_text_view_set_editable(GTK_TEXT_VIEW(*widget), TRUE);
+}
+static void
+terminal_shell_text_view(GtkWidget *widget)
+{
+ /* no-op */
+}
+static GtkAdjustment *
+terminal_adjustment_text_view(GtkWidget *terminal)
+{
+#if GTK_CHECK_VERSION (2, 21, 6)
+ return gtk_text_view_get_vadjustment(GTK_TEXT_VIEW(terminal));
+#else
+ return GTK_TEXT_VIEW(terminal)->vadjustment;
+#endif
+}
+#endif
+#ifdef USE_VTE
+/*
+ * Implementation for a VteTerminal widget.
+ */
+static void
+terminal_init_vte(GtkWidget **terminal)
+{
+ *terminal = vte_terminal_new();
+ g_signal_connect(G_OBJECT(*terminal), "eof",
+ G_CALLBACK(gtk_main_quit), NULL);
+ g_signal_connect(G_OBJECT(*terminal), "child-exited",
+ G_CALLBACK(gtk_main_quit), NULL);
+}
+static void
+terminal_shell_vte(GtkWidget *terminal)
+{
+ vte_terminal_fork_command(VTE_TERMINAL(terminal),
+ getenv("SHELL") ? getenv("SHELL") : "/bin/sh",
+ NULL,
+ NULL,
+ g_get_home_dir() ? g_get_home_dir() : NULL,
+ FALSE,
+ FALSE,
+ FALSE);
+}
+static GtkAdjustment *
+terminal_adjustment_vte(GtkWidget *terminal)
+{
+ return (VTE_TERMINAL(terminal))->adjustment;
+}
+#endif
+
+/*
+ * Update the contents of the widget with the data from our contents array.
+ */
+static void
+update_contents(AtkObject *obj, GtkWidget *widget)
+{
+ int caret, i;
+ GString *s;
+
+ caret = atk_text_get_caret_offset(ATK_TEXT(obj));
+ s = g_string_new(NULL);
+ for (i = 0; i < contents->len; i++) {
+ if (i == caret) {
+ s = g_string_append(s, "[CARET]");
+ }
+ s = g_string_append_unichar(s,
+ g_array_index(contents,
+ gunichar,
+ i));
+ }
+ if (i == caret) {
+ s = g_string_append(s, "[CARET]");
+ }
+ if (GTK_IS_LABEL(widget)) {
+ gtk_label_set_text(GTK_LABEL(widget), s->str);
+ gtk_label_set_selectable(GTK_LABEL(widget),
+ atk_text_get_n_selections(ATK_TEXT(obj)) > 0);
+ if (gtk_label_get_selectable(GTK_LABEL(widget))) {
+ int selection_start, selection_end;
+ atk_text_get_selection(ATK_TEXT(obj), 0,
+ &selection_start,
+ &selection_end);
+ gtk_label_select_region(GTK_LABEL(widget),
+ selection_start, selection_end);
+ }
+ }
+ g_string_free(s, TRUE);
+}
+
+/* Handle inserted text by inserting the text into our gunichar array. */
+static void
+text_changed_insert(AtkObject *obj, gint offset, gint length, gpointer data)
+{
+ char *inserted, *p;
+ gunichar c;
+ int i;
+
+ inserted = atk_text_get_text(ATK_TEXT(obj), offset, offset + length);
+
+ if (!g_utf8_validate(inserted, -1, NULL)) {
+ g_free(inserted);
+ g_error("UTF-8 validation error");
+ return;
+ }
+
+ p = inserted;
+ i = 0;
+ while (i < length) {
+ c = g_utf8_get_char(p);
+ if (offset + i >= contents->len) {
+ g_array_append_val(contents, c);
+ } else {
+ g_array_insert_val(contents, offset + i, c);
+ }
+ i++;
+ p = g_utf8_next_char(p);
+ }
+
+#ifdef VTE_DEBUG
+ if ((getenv("REFLECT_VERBOSE") != NULL) &&
+ (atol(getenv("REFLECT_VERBOSE")) != 0)) {
+ g_printerr("Inserted %d chars ('%.*s') at %d,",
+ length, (int)(p - inserted), inserted, offset);
+ g_printerr(" buffer contains %d characters.\n",
+ contents->len);
+ }
+#endif
+
+ g_free(inserted);
+
+ update_contents(obj, GTK_WIDGET(data));
+}
+
+/* Handle deleted text by removing the text from our gunichar array. */
+static void
+text_changed_delete(AtkObject *obj, gint offset, gint length, gpointer data)
+{
+ int i;
+ for (i = offset + length - 1; i >= offset; i--) {
+ if (i > contents->len - 1) {
+ g_warning("Invalid character %d was deleted.\n", i);
+ }
+ g_array_remove_index(contents, i);
+ }
+#ifdef VTE_DEBUG
+ if ((getenv("REFLECT_VERBOSE") != NULL) &&
+ (atol(getenv("REFLECT_VERBOSE")) != 0)) {
+ g_printerr("Deleted %d chars at %d.\n", length, offset);
+ }
+#endif
+ update_contents(obj, GTK_WIDGET(data));
+}
+
+static void
+text_caret_moved(AtkObject *obj, gint offset, gpointer data)
+{
+ update_contents(obj, GTK_WIDGET(data));
+}
+
+static void
+text_selection_changed(AtkObject *obj, gpointer data)
+{
+ update_contents(obj, GTK_WIDGET(data));
+}
+
+/* Wrapper versions. */
+static void
+terminal_init(GtkWidget **terminal)
+{
+ *terminal = NULL;
+#ifdef USE_TEXT_VIEW
+ terminal_init_text_view(terminal);
+ return;
+#endif
+#ifdef USE_VTE
+ terminal_init_vte(terminal);
+ return;
+#endif
+ g_assert_not_reached();
+}
+static void
+terminal_shell(GtkWidget *terminal)
+{
+#ifdef USE_TEXT_VIEW
+ terminal_shell_text_view(terminal);
+ return;
+#endif
+#ifdef USE_VTE
+ terminal_shell_vte(terminal);
+ return;
+#endif
+ g_assert_not_reached();
+}
+static GtkAdjustment *
+terminal_adjustment(GtkWidget *terminal)
+{
+#ifdef USE_TEXT_VIEW
+ return terminal_adjustment_text_view(terminal);
+#endif
+#ifdef USE_VTE
+ return terminal_adjustment_vte(terminal);
+#endif
+ g_assert_not_reached();
+}
+
+int
+main(int argc, char **argv)
+{
+ GtkWidget *label, *terminal, *tophalf, *pane, *window, *scrollbar, *sw;
+ AtkObject *obj;
+ char *text, *p;
+ gunichar c;
+ gint count;
+
+ gtk_init(&argc, &argv);
+
+ contents = g_array_new(TRUE, FALSE, sizeof(gunichar));
+
+ terminal_init(&terminal);
+
+#ifdef USE_TEXT_VIEW
+ tophalf = gtk_scrolled_window_new(NULL, terminal_adjustment(terminal));
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(tophalf),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ scrollbar = NULL;
+ gtk_container_add(GTK_CONTAINER(tophalf), terminal);
+#else
+ tophalf = gtk_hbox_new(FALSE, 0);
+
+ gtk_box_pack_start(GTK_BOX(tophalf), terminal, TRUE, TRUE, 0);
+ gtk_widget_show(terminal);
+
+ scrollbar = gtk_vscrollbar_new(terminal_adjustment(terminal));
+ gtk_box_pack_start(GTK_BOX(tophalf), scrollbar, FALSE, TRUE, 0);
+ gtk_widget_show(scrollbar);
+#endif
+ gtk_widget_show(terminal);
+
+ label = gtk_label_new("");
+ gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
+
+ sw = gtk_scrolled_window_new(NULL, NULL);
+ gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), label);
+ gtk_widget_show(label);
+
+#if GTK_CHECK_VERSION (2, 91, 2)
+ pane = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
+#else
+ pane = gtk_vpaned_new();
+#endif
+ gtk_paned_pack1(GTK_PANED(pane), tophalf, TRUE, FALSE);
+ gtk_paned_pack2(GTK_PANED(pane), sw, TRUE, FALSE);
+ gtk_widget_show(tophalf);
+ gtk_widget_show(sw);
+
+ window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ g_signal_connect(G_OBJECT(window), "delete_event",
+ G_CALLBACK(gtk_main_quit), NULL);
+ gtk_container_add(GTK_CONTAINER(window), pane);
+ gtk_widget_show(pane);
+
+ obj = gtk_widget_get_accessible(terminal);
+ g_assert(obj != NULL);
+ g_signal_connect(G_OBJECT(obj), "text-changed::insert",
+ G_CALLBACK(text_changed_insert), label);
+ g_signal_connect(G_OBJECT(obj), "text-changed::delete",
+ G_CALLBACK(text_changed_delete), label);
+ g_signal_connect(G_OBJECT(obj), "text-caret-moved",
+ G_CALLBACK(text_caret_moved), label);
+ g_signal_connect(G_OBJECT(obj), "text-selection-changed",
+ G_CALLBACK(text_selection_changed), label);
+
+ count = atk_text_get_character_count(ATK_TEXT(obj));
+ if (count > 0) {
+ text = atk_text_get_text(ATK_TEXT(obj), 0, count);
+ if (text != NULL) {
+ for (p = text;
+ contents->len < count;
+ p = g_utf8_next_char(p)) {
+ c = g_utf8_get_char(p);
+ g_array_append_val(contents, c);
+ }
+ g_free(text);
+ }
+ }
+ terminal_shell(terminal);
+
+ gtk_window_set_default_size(GTK_WINDOW(window), 600, 450);
+ gtk_widget_show(window);
+
+ update_contents(obj, terminal);
+
+ gtk_main();
+
+ g_array_free(contents, TRUE);
+ contents = NULL;
+
+ return 0;
+}
diff --git a/vte/src/ring.c b/vte/src/ring.c
new file mode 100644
index 0000000..db4edec
--- /dev/null
+++ b/vte/src/ring.c
@@ -0,0 +1,631 @@
+/*
+ * Copyright (C) 2002,2009,2010 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Red Hat Author(s): Nalin Dahyabhai, Behdad Esfahbod
+ */
+
+#include <config.h>
+
+#include "debug.h"
+#include "ring.h"
+
+#include <string.h>
+
+/*
+ * VteRing: A buffer ring
+ */
+
+#ifdef VTE_DEBUG
+static void
+_vte_ring_validate (VteRing * ring)
+{
+ g_assert(ring != NULL);
+ _vte_debug_print(VTE_DEBUG_RING,
+ " Delta = %lu, Length = %lu, Max = %lu, Writable = %lu.\n",
+ ring->start, ring->end - ring->start,
+ ring->max, ring->end - ring->writable);
+
+ g_assert (ring->start <= ring->writable);
+ g_assert (ring->writable <= ring->end);
+
+ g_assert (ring->end - ring->start <= ring->max);
+ g_assert (ring->end - ring->writable <= ring->mask);
+}
+#else
+#define _vte_ring_validate(ring) G_STMT_START {} G_STMT_END
+#endif
+
+
+void
+_vte_ring_init (VteRing *ring, gulong max_rows)
+{
+ _vte_debug_print(VTE_DEBUG_RING, "New ring %p.\n", ring);
+
+ memset (ring, 0, sizeof (*ring));
+
+ ring->max = MAX (max_rows, 3);
+
+ ring->mask = 31;
+ ring->array = g_malloc0 (sizeof (ring->array[0]) * (ring->mask + 1));
+
+ ring->attr_stream = _vte_file_stream_new ();
+ ring->text_stream = _vte_file_stream_new ();
+ ring->row_stream = _vte_file_stream_new ();
+
+ ring->last_attr.text_offset = 0;
+ ring->last_attr.attr.i = basic_cell.i.attr;
+ ring->utf8_buffer = g_string_sized_new (128);
+
+ _vte_row_data_init (&ring->cached_row);
+ ring->cached_row_num = (gulong) -1;
+
+ _vte_ring_validate(ring);
+}
+
+void
+_vte_ring_fini (VteRing *ring)
+{
+ gulong i;
+
+ for (i = 0; i <= ring->mask; i++)
+ _vte_row_data_fini (&ring->array[i]);
+
+ g_free (ring->array);
+
+ g_object_unref (ring->attr_stream);
+ g_object_unref (ring->text_stream);
+ g_object_unref (ring->row_stream);
+
+ g_string_free (ring->utf8_buffer, TRUE);
+
+ _vte_row_data_fini (&ring->cached_row);
+}
+
+typedef struct _VteRowRecord {
+ gsize text_offset;
+ gsize attr_offset;
+} VteRowRecord;
+
+static gboolean
+_vte_ring_read_row_record (VteRing *ring, VteRowRecord *record, gulong position)
+{
+ return _vte_stream_read (ring->row_stream, position * sizeof (*record), (char *) record, sizeof
(*record));
+}
+
+static void
+_vte_ring_append_row_record (VteRing *ring, const VteRowRecord *record, gulong position)
+{
+ _vte_stream_append (ring->row_stream, (const char *) record, sizeof (*record));
+}
+
+static void
+_vte_ring_freeze_row (VteRing *ring, gulong position, const VteRowData *row)
+{
+ VteRowRecord record;
+ VteCell *cell;
+ GString *buffer = ring->utf8_buffer;
+ int i;
+
+ _vte_debug_print (VTE_DEBUG_RING, "Freezing row %lu.\n", position);
+
+ record.text_offset = _vte_stream_head (ring->text_stream);
+ record.attr_offset = _vte_stream_head (ring->attr_stream);
+
+ g_string_set_size (buffer, 0);
+ for (i = 0, cell = row->cells; i < row->len; i++, cell++) {
+ VteIntCellAttr attr;
+ int num_chars;
+
+ /* Attr storage:
+ *
+ * 1. We don't store attrs for fragments. They can be
+ * reconstructed using the columns of their start cell.
+ *
+ * 2. We store one attr per vteunistr character starting
+ * from the second character, with columns=0.
+ *
+ * That's enough to reconstruct the attrs, and to store
+ * the text in real UTF-8.
+ */
+ attr.s = cell->attr;
+ if (G_LIKELY (!attr.s.fragment)) {
+
+ if (ring->last_attr.attr.i != attr.i) {
+ ring->last_attr.text_offset = record.text_offset + buffer->len;
+ _vte_stream_append (ring->attr_stream, (const char *) &ring->last_attr,
sizeof (ring->last_attr));
+ if (!buffer->len)
+ /* This row doesn't use last_attr, adjust */
+ record.attr_offset += sizeof (ring->last_attr);
+ ring->last_attr.attr = attr;
+ }
+
+ num_chars = _vte_unistr_strlen (cell->c);
+ if (num_chars > 1) {
+ attr.s.columns = 0;
+ ring->last_attr.text_offset = record.text_offset + buffer->len
+ + g_unichar_to_utf8 (_vte_unistr_get_base
(cell->c), NULL);
+ _vte_stream_append (ring->attr_stream, (const char *) &ring->last_attr,
sizeof (ring->last_attr));
+ ring->last_attr.attr = attr;
+ }
+
+ _vte_unistr_append_to_string (cell->c, buffer);
+ }
+ }
+ if (!row->attr.soft_wrapped)
+ g_string_append_c (buffer, '\n');
+
+ _vte_stream_append (ring->text_stream, buffer->str, buffer->len);
+ _vte_ring_append_row_record (ring, &record, position);
+}
+
+static void
+_vte_ring_thaw_row (VteRing *ring, gulong position, VteRowData *row, gboolean do_truncate)
+{
+ VteRowRecord records[2], record;
+ VteIntCellAttr attr;
+ VteCellAttrChange attr_change;
+ VteCell cell;
+ const char *p, *q, *end;
+ GString *buffer = ring->utf8_buffer;
+
+ _vte_debug_print (VTE_DEBUG_RING, "Thawing row %lu.\n", position);
+
+ _vte_row_data_clear (row);
+
+ attr_change.text_offset = 0;
+
+ if (!_vte_ring_read_row_record (ring, &records[0], position))
+ return;
+ if ((position + 1) * sizeof (records[0]) < _vte_stream_head (ring->row_stream)) {
+ if (!_vte_ring_read_row_record (ring, &records[1], position + 1))
+ return;
+ } else
+ records[1].text_offset = _vte_stream_head (ring->text_stream);
+
+ g_string_set_size (buffer, records[1].text_offset - records[0].text_offset);
+ if (!_vte_stream_read (ring->text_stream, records[0].text_offset, buffer->str, buffer->len))
+ return;
+
+ record = records[0];
+
+ if (G_LIKELY (buffer->len && buffer->str[buffer->len - 1] == '\n'))
+ buffer->len--;
+ else
+ row->attr.soft_wrapped = TRUE;
+
+ p = buffer->str;
+ end = p + buffer->len;
+ while (p < end) {
+
+ if (record.text_offset >= ring->last_attr.text_offset) {
+ attr = ring->last_attr.attr;
+ } else {
+ if (record.text_offset >= attr_change.text_offset) {
+ if (!_vte_stream_read (ring->attr_stream, record.attr_offset, (char *)
&attr_change, sizeof (attr_change)))
+ return;
+ record.attr_offset += sizeof (attr_change);
+ }
+ attr = attr_change.attr;
+ }
+
+ cell.attr = attr.s;
+ cell.c = g_utf8_get_char (p);
+
+ q = g_utf8_next_char (p);
+ record.text_offset += q - p;
+ p = q;
+
+ if (G_UNLIKELY (cell.attr.columns == 0)) {
+ if (G_LIKELY (row->len)) {
+ /* Combine it */
+ row->cells[row->len - 1].c = _vte_unistr_append_unichar (row->cells[row->len
- 1].c, cell.c);
+ } else {
+ cell.attr.columns = 1;
+ _vte_row_data_append (row, &cell);
+ }
+ } else {
+ _vte_row_data_append (row, &cell);
+ if (cell.attr.columns > 1) {
+ /* Add the fragments */
+ int i, columns = cell.attr.columns;
+ cell.attr.fragment = 1;
+ cell.attr.columns = 1;
+ for (i = 1; i < columns; i++)
+ _vte_row_data_append (row, &cell);
+ }
+ }
+ }
+
+ if (do_truncate) {
+ if (records[0].text_offset < ring->last_attr.text_offset)
+ if (!_vte_stream_read (ring->attr_stream, records[0].attr_offset, (char *)
&ring->last_attr, sizeof (ring->last_attr))) {
+ ring->last_attr.text_offset = 0;
+ ring->last_attr.attr.i = basic_cell.i.attr;
+ }
+ _vte_stream_truncate (ring->row_stream, position * sizeof (record));
+ _vte_stream_truncate (ring->attr_stream, records[0].attr_offset);
+ _vte_stream_truncate (ring->text_stream, records[0].text_offset);
+ }
+}
+
+static void
+_vte_ring_reset_streams (VteRing *ring, gulong position)
+{
+ _vte_debug_print (VTE_DEBUG_RING, "Reseting streams to %lu.\n", position);
+
+ _vte_stream_reset (ring->row_stream, position * sizeof (VteRowRecord));
+ _vte_stream_reset (ring->text_stream, 0);
+ _vte_stream_reset (ring->attr_stream, 0);
+
+ ring->last_attr.text_offset = 0;
+ ring->last_attr.attr.i = basic_cell.i.attr;
+
+ ring->last_page = position;
+}
+
+static void
+_vte_ring_new_page (VteRing *ring)
+{
+ _vte_debug_print (VTE_DEBUG_RING, "Starting new stream page at %lu.\n", ring->writable);
+
+ _vte_stream_new_page (ring->attr_stream);
+ _vte_stream_new_page (ring->text_stream);
+ _vte_stream_new_page (ring->row_stream);
+
+ ring->last_page = ring->writable;
+}
+
+
+
+static inline VteRowData *
+_vte_ring_writable_index (VteRing *ring, gulong position)
+{
+ return &ring->array[position & ring->mask];
+}
+
+const VteRowData *
+_vte_ring_index (VteRing *ring, gulong position)
+{
+ if (G_LIKELY (position >= ring->writable))
+ return _vte_ring_writable_index (ring, position);
+
+ if (ring->cached_row_num != position) {
+ _vte_debug_print(VTE_DEBUG_RING, "Caching row %lu.\n", position);
+ _vte_ring_thaw_row (ring, position, &ring->cached_row, FALSE);
+ ring->cached_row_num = position;
+ }
+
+ return &ring->cached_row;
+}
+
+static void _vte_ring_ensure_writable (VteRing *ring, gulong position);
+static void _vte_ring_ensure_writable_room (VteRing *ring);
+
+VteRowData *
+_vte_ring_index_writable (VteRing *ring, gulong position)
+{
+ _vte_ring_ensure_writable (ring, position);
+ return _vte_ring_writable_index (ring, position);
+}
+
+static void
+_vte_ring_freeze_one_row (VteRing *ring)
+{
+ VteRowData *row;
+
+ if (G_UNLIKELY (ring->writable == ring->start))
+ _vte_ring_reset_streams (ring, ring->writable);
+
+ row = _vte_ring_writable_index (ring, ring->writable);
+ _vte_ring_freeze_row (ring, ring->writable, row);
+
+ ring->writable++;
+
+ if (G_UNLIKELY (ring->writable == ring->last_page || ring->writable - ring->last_page >= ring->max))
+ _vte_ring_new_page (ring);
+}
+
+static void
+_vte_ring_thaw_one_row (VteRing *ring)
+{
+ VteRowData *row;
+
+ g_assert (ring->start < ring->writable);
+
+ _vte_ring_ensure_writable_room (ring);
+
+ ring->writable--;
+
+ if (ring->writable == ring->cached_row_num)
+ ring->cached_row_num = (gulong) -1; /* Invalidate cached row */
+
+ row = _vte_ring_writable_index (ring, ring->writable);
+
+ _vte_ring_thaw_row (ring, ring->writable, row, TRUE);
+}
+
+static void
+_vte_ring_discard_one_row (VteRing *ring)
+{
+ ring->start++;
+ if (G_UNLIKELY (ring->start == ring->writable)) {
+ _vte_ring_reset_streams (ring, 0);
+ }
+ if (ring->start > ring->writable)
+ ring->writable = ring->start;
+}
+
+static void
+_vte_ring_maybe_freeze_one_row (VteRing *ring)
+{
+ if (G_LIKELY (ring->writable + ring->mask == ring->end))
+ _vte_ring_freeze_one_row (ring);
+}
+
+static void
+_vte_ring_maybe_discard_one_row (VteRing *ring)
+{
+ if ((gulong) _vte_ring_length (ring) == ring->max)
+ _vte_ring_discard_one_row (ring);
+}
+
+static void
+_vte_ring_ensure_writable_room (VteRing *ring)
+{
+ gulong new_mask, old_mask, i, end;
+ VteRowData *old_array, *new_array;;
+
+ if (G_LIKELY (ring->writable + ring->mask > ring->end))
+ return;
+
+ _vte_debug_print(VTE_DEBUG_RING, "Enlarging writable array.\n");
+
+ old_mask = ring->mask;
+ old_array = ring->array;
+
+ ring->mask = (ring->mask << 1) + 1;
+ ring->array = g_malloc0 (sizeof (ring->array[0]) * (ring->mask + 1));
+
+ new_mask = ring->mask;
+ new_array = ring->array;
+
+ end = ring->writable + old_mask + 1;
+ for (i = ring->writable; i < end; i++)
+ new_array[i & new_mask] = old_array[i & old_mask];
+
+ g_free (old_array);
+}
+
+static void
+_vte_ring_ensure_writable (VteRing *ring, gulong position)
+{
+ if (G_LIKELY (position >= ring->writable))
+ return;
+
+ _vte_debug_print(VTE_DEBUG_RING, "Ensure writable %lu.\n", position);
+
+ while (position < ring->writable)
+ _vte_ring_thaw_one_row (ring);
+}
+
+/**
+ * _vte_ring_resize:
+ * @ring: a #VteRing
+ * @max_rows: new maximum numbers of rows in the ring
+ *
+ * Changes the number of lines the ring can contain.
+ */
+void
+_vte_ring_resize (VteRing *ring, gulong max_rows)
+{
+ _vte_debug_print(VTE_DEBUG_RING, "Resizing to %lu.\n", max_rows);
+ _vte_ring_validate(ring);
+
+ /* Adjust the start of tail chunk now */
+ if ((gulong) _vte_ring_length (ring) > max_rows) {
+ ring->start = ring->end - max_rows;
+ if (ring->start >= ring->writable) {
+ _vte_ring_reset_streams (ring, 0);
+ ring->writable = ring->start;
+ }
+ }
+
+ ring->max = max_rows;
+}
+
+void
+_vte_ring_shrink (VteRing *ring, gulong max_len)
+{
+ if ((gulong) _vte_ring_length (ring) <= max_len)
+ return;
+
+ _vte_debug_print(VTE_DEBUG_RING, "Shrinking to %lu.\n", max_len);
+ _vte_ring_validate(ring);
+
+ if (ring->writable - ring->start <= max_len)
+ ring->end = ring->start + max_len;
+ else {
+ while (ring->writable - ring->start > max_len) {
+ _vte_ring_ensure_writable (ring, ring->writable - 1);
+ ring->end = ring->writable;
+ }
+ }
+
+ /* TODO May want to shrink down ring->array */
+
+ _vte_ring_validate(ring);
+}
+
+/**
+ * _vte_ring_insert_internal:
+ * @ring: a #VteRing
+ * @position: an index
+ *
+ * Inserts a new, empty, row into @ring at the @position'th offset.
+ * The item at that position and any items after that are shifted down.
+ *
+ * Return: the newly added row.
+ */
+VteRowData *
+_vte_ring_insert (VteRing *ring, gulong position)
+{
+ gulong i;
+ VteRowData *row, tmp;
+
+ _vte_debug_print(VTE_DEBUG_RING, "Inserting at position %lu.\n", position);
+ _vte_ring_validate(ring);
+
+ _vte_ring_maybe_discard_one_row (ring);
+
+ _vte_ring_ensure_writable (ring, position);
+ _vte_ring_ensure_writable_room (ring);
+
+ g_assert (position >= ring->writable && position <= ring->end);
+
+ tmp = *_vte_ring_writable_index (ring, ring->end);
+ for (i = ring->end; i > position; i--)
+ *_vte_ring_writable_index (ring, i) = *_vte_ring_writable_index (ring, i - 1);
+ *_vte_ring_writable_index (ring, position) = tmp;
+
+ row = _vte_ring_writable_index (ring, position);
+ _vte_row_data_clear (row);
+ ring->end++;
+
+ _vte_ring_maybe_freeze_one_row (ring);
+
+ _vte_ring_validate(ring);
+ return row;
+}
+
+/**
+ * _vte_ring_remove:
+ * @ring: a #VteRing
+ * @position: an index
+ *
+ * Removes the @position'th item from @ring.
+ */
+void
+_vte_ring_remove (VteRing * ring, gulong position)
+{
+ gulong i;
+ VteRowData tmp;
+
+ _vte_debug_print(VTE_DEBUG_RING, "Removing item at position %lu.\n", position);
+ _vte_ring_validate(ring);
+
+ if (G_UNLIKELY (!_vte_ring_contains (ring, position)))
+ return;
+
+ _vte_ring_ensure_writable (ring, position);
+
+ tmp = *_vte_ring_writable_index (ring, position);
+ for (i = position; i < ring->end - 1; i++)
+ *_vte_ring_writable_index (ring, i) = *_vte_ring_writable_index (ring, i + 1);
+ *_vte_ring_writable_index (ring, ring->end - 1) = tmp;
+
+ if (ring->end > ring->writable)
+ ring->end--;
+
+ _vte_ring_validate(ring);
+}
+
+
+/**
+ * _vte_ring_append:
+ * @ring: a #VteRing
+ * @data: the new item
+ *
+ * Appends a new item to the ring.
+ *
+ * Return: the newly added row.
+ */
+VteRowData *
+_vte_ring_append (VteRing * ring)
+{
+ return _vte_ring_insert (ring, _vte_ring_next (ring));
+}
+
+
+static gboolean
+_vte_ring_write_row (VteRing *ring,
+ GOutputStream *stream,
+ VteRowData *row,
+ VteTerminalWriteFlags flags,
+ GCancellable *cancellable,
+ GError **error)
+{
+ VteCell *cell;
+ GString *buffer = ring->utf8_buffer;
+ int i;
+ gsize bytes_written;
+
+ /* Simple version of the loop in _vte_ring_freeze_row().
+ * TODO Should unify one day */
+ g_string_set_size (buffer, 0);
+ for (i = 0, cell = row->cells; i < row->len; i++, cell++) {
+ if (G_LIKELY (!cell->attr.fragment))
+ _vte_unistr_append_to_string (cell->c, buffer);
+ }
+ if (!row->attr.soft_wrapped)
+ g_string_append_c (buffer, '\n');
+
+ return g_output_stream_write_all (stream, buffer->str, buffer->len, &bytes_written, cancellable,
error);
+}
+
+/**
+ * _vte_ring_write_contents:
+ * @ring: a #VteRing
+ * @stream: a #GOutputStream to write to
+ * @flags: a set of #VteTerminalWriteFlags
+ * @cancellable: optional #GCancellable object, %NULL to ignore
+ * @error: a #GError location to store the error occuring, or %NULL to ignore
+ *
+ * Write entire ring contents to @stream according to @flags.
+ *
+ * Return: %TRUE on success, %FALSE if there was an error
+ */
+gboolean
+_vte_ring_write_contents (VteRing *ring,
+ GOutputStream *stream,
+ VteTerminalWriteFlags flags,
+ GCancellable *cancellable,
+ GError **error)
+{
+ gulong i;
+
+ _vte_debug_print(VTE_DEBUG_RING, "Writing contents to GOutputStream.\n");
+
+ if (ring->start < ring->writable) {
+ VteRowRecord record;
+ /* XXX what to do in case of error? */
+ if (_vte_ring_read_row_record (ring, &record, ring->start)) {
+ if (!_vte_stream_write_contents (ring->text_stream, stream,
+ record.text_offset,
+ cancellable, error))
+ return FALSE;
+ }
+ }
+
+ for (i = ring->writable; i < ring->end; i++) {
+ if (!_vte_ring_write_row (ring, stream,
+ _vte_ring_writable_index (ring, i),
+ flags, cancellable, error))
+ return FALSE;
+ }
+
+ return TRUE;
+}
diff --git a/vte/src/ring.h b/vte/src/ring.h
new file mode 100644
index 0000000..50dd5a2
--- /dev/null
+++ b/vte/src/ring.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2002,2009,2010 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Red Hat Author(s): Behdad Esfahbod
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_ring_h_included
+#define vte_ring_h_included
+
+#include <gio/gio.h>
+#include "vte.h"
+
+#include "vterowdata.h"
+#include "vtestream.h"
+
+G_BEGIN_DECLS
+
+
+typedef struct _VteCellAttrChange {
+ gsize text_offset;
+ VteIntCellAttr attr;
+} VteCellAttrChange;
+
+
+/*
+ * VteRing: A scrollback buffer ring
+ */
+
+typedef struct _VteRing VteRing;
+struct _VteRing {
+ gulong max;
+
+ gulong start, end;
+
+ /* Writable */
+ gulong writable, mask;
+ VteRowData *array;
+
+ /* Storage */
+ gulong last_page;
+ VteStream *attr_stream, *text_stream, *row_stream;
+ VteCellAttrChange last_attr;
+ GString *utf8_buffer;
+
+ VteRowData cached_row;
+ gulong cached_row_num;
+
+};
+
+#define _vte_ring_contains(__ring, __position) \
+ (((gulong) (__position) >= (__ring)->start) && \
+ ((gulong) (__position) < (__ring)->end))
+#define _vte_ring_delta(__ring) ((glong) (__ring)->start)
+#define _vte_ring_length(__ring) ((glong) ((__ring)->end - (__ring)->start))
+#define _vte_ring_next(__ring) ((glong) (__ring)->end)
+
+const VteRowData *_vte_ring_index (VteRing *ring, gulong position);
+VteRowData *_vte_ring_index_writable (VteRing *ring, gulong position);
+
+void _vte_ring_init (VteRing *ring, gulong max_rows);
+void _vte_ring_fini (VteRing *ring);
+void _vte_ring_resize (VteRing *ring, gulong max_rows);
+void _vte_ring_shrink (VteRing *ring, gulong max_len);
+VteRowData *_vte_ring_insert (VteRing *ring, gulong position);
+VteRowData *_vte_ring_append (VteRing *ring);
+void _vte_ring_remove (VteRing *ring, gulong position);
+gboolean _vte_ring_write_contents (VteRing *ring,
+ GOutputStream *stream,
+ VteTerminalWriteFlags flags,
+ GCancellable *cancellable,
+ GError **error);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/slowcat.c b/vte/src/slowcat.c
new file mode 100644
index 0000000..78ac531
--- /dev/null
+++ b/vte/src/slowcat.c
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <errno.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <glib.h>
+
+static void
+catfile(const char *pathname, long delay, long chunksize)
+{
+ FILE *fp;
+ struct timeval tv;
+ char *buf;
+ int c;
+ long i;
+
+ if (!((pathname == NULL) || (strcmp(pathname, "-") == 0))) {
+ fp = fopen(pathname, "r");
+ if (fp == NULL) {
+ g_warning("Error opening file `%s': %s.\n",
+ pathname, strerror(errno));
+ return;
+ }
+ } else {
+ fp = stdin;
+ }
+
+ buf = g_malloc(chunksize);
+
+ while (!feof(fp)) {
+ tv.tv_sec = delay / 1000000;
+ tv.tv_usec = delay % 1000000;
+ select(0, NULL, NULL, NULL, &tv);
+ for (i = 0; i < chunksize; i++) {
+ c = fgetc(fp);
+ if (c != EOF) {
+ buf[i] = c;
+ } else {
+ break;
+ }
+ }
+ if (i > 0) {
+ int bytes;
+ bytes = write(STDOUT_FILENO, buf, i);
+ fsync(STDOUT_FILENO);
+ }
+ }
+
+ g_free(buf);
+
+ if (fp != stdin) {
+ fclose(fp);
+ }
+}
+
+int
+main(int argc, char **argv)
+{
+ int i, c;
+ long delay = 200000, chunksize = 1, tmp;
+ char *p;
+ GList *files = NULL, *file;
+
+ while ((c = getopt(argc, argv, "t:c:")) != -1) {
+ switch (c) {
+ case 't':
+ tmp = strtol(optarg, &p, 0);
+ if ((p != NULL) && (*p == '\0')) {
+ delay = tmp;
+ }
+ break;
+ case 'c':
+ tmp = strtol(optarg, &p, 0);
+ if ((p != NULL) && (*p == '\0')) {
+ chunksize = tmp;
+ }
+ break;
+ default:
+ g_printerr("Usage: slowcat [-t delay] [-c chunksize] [file ...]\n");
+ exit(1);
+ break;
+ }
+ }
+ for (i = optind; i < argc; i++) {
+ files = g_list_append(files, argv[i]);
+ }
+
+ if (files) {
+ for (file = files; file != NULL; file = g_list_next(file)) {
+ catfile((const char*)file->data, delay, chunksize);
+ }
+ } else {
+ catfile(NULL, delay, chunksize);
+ }
+ return 0;
+}
diff --git a/vte/src/ssfe.c b/vte/src/ssfe.c
new file mode 100644
index 0000000..33706eb
--- /dev/null
+++ b/vte/src/ssfe.c
@@ -0,0 +1,1271 @@
+/* An ircII-like split-screen front end
+ Copyright (C) 1995 Roger Espel Llima
+
+ Started: 17 Feb 95 by orabidoo <roger espel llima ens fr>
+ Latest modification: 7 June 97
+
+ To compile: gcc ssfe.c -o ssfe -ltermcap
+
+ If it doesn't work, try gcc ssfe.c -o ssfe -lcurses
+ or try cc, acc or c89 instead of gcc, or -lncurses.
+
+ Use: ssfe [options] program arguments
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation. See the file LICENSE for details.
+
+ From attachment to Red Hat Bugzilla #75900.
+*/
+
+#include <config.h>
+
+#include <stdarg.h>
+
+#if defined(HAVE_NCURSES_H) && defined(HAVE_TERM_H)
+#include <ncurses.h>
+#include <term.h>
+#define VTE_TERMCAP_NAME "ncurses"
+#elif defined(HAVE_NCURSES_CURSES_H) && defined(HAVE_NCURSES_TERM_H)
+#include <ncurses/curses.h>
+#include <ncurses/term.h>
+#define VTE_TERMCAP_NAME "ncurses"
+#elif defined(HAVE_CURSES_H) && defined(HAVE_TERM_H)
+#include <curses.h>
+#include <term.h>
+#define VTE_TERMCAP_NAME "curses"
+#elif defined(HAVE_TERMCAP_H)
+#include <termcap.h>
+#define VTE_TERMCAP_NAME "termcap"
+#else
+#error No termcap??
+#endif
+
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#ifdef HAVE_SYS_TERMIOS_H
+#include <sys/termios.h>
+#endif
+#include <sys/time.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#endif
+#include <time.h>
+#include <unistd.h>
+
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
+
+#define BUF_SIZE 512
+#define MAX_COLS 512
+
+unsigned char *statusline;
+int ystatus, yinput; /* line number of the status line, input line */
+
+int ttyfd;
+#ifdef TIOCGWINSZ
+struct winsize wsz;
+#endif
+
+#ifdef USE_SGTTY
+struct sgttyb term, term0;
+struct tchars tch, tch0;
+struct ltchars lch, lch0;
+#else
+struct termios term, term0;
+#endif
+
+int pid, mypid;
+int i;
+int ncols, nlines;
+int readfd, writefd, errfd;
+
+unsigned char *t, *w;
+unsigned char tmpstr[BUF_SIZE], extrainput[BUF_SIZE+20], readbuf[2*BUF_SIZE],
+ *input, *writebuf, o_buffer[BUF_SIZE];
+int bold=0, inv=0, under=0, wherex=0, wherey=0, donl=0;
+int hold_mode=0, hold_lines=0, ctrlx=0, beep_mode=0, flow=0;
+
+unsigned char defprompt[]="> ",
+ nullstring[]="",
+ *prompt;
+int plen=0, specialprompt=0, modified=1, no_echo=0;
+
+#define MAX_TAB_LINES 20
+struct tabinfo {
+ unsigned char string[BUF_SIZE];
+ struct tabinfo *prev, *next;
+};
+int tablines=0;
+struct tabinfo *curtabt=NULL, *curtabr=NULL, *oldest=NULL;
+
+#define MAX_HIST_LINES 50
+struct histinfo {
+ unsigned char string[BUF_SIZE+20];
+ int len, plen;
+ struct histinfo *prev, *next;
+};
+int histlines=0;
+struct histinfo *histcurrent=NULL, *histoldest=NULL;
+
+char ctrl_t[128] = "/next\n";
+
+unsigned char id[]="`#ssfe#", *inid=id, protcmd[BUF_SIZE], *wpc=protcmd;
+int idstatus=0; /* 0 looking for/in the word, 1 in the arguments */
+#define ID_BACK "@ssfe@"
+
+int rc, rrc, inputcursor, inputlast, inputofs, inarrow=0, quote=0;
+int cursorwhere; /* 0 = up, 1 = down, 2 = undef */
+int dispmode=1; /* 0=raw, 1=wordwrap, 2=process ^b^v^_ */
+int printmode=0;
+int cutline=0;
+
+char *termtype, termcap[1024], *tc, capabilities[2048];
+char *t_cm, *t_cl, *t_mr, *t_md, *t_me, *t_cs, *t_ce, *t_us;
+int ansi_cs = 0;
+
+fd_set ready, result;
+
+static int myputchar(int c) {
+ unsigned char cc=(unsigned char)c;
+ return(write(1, &cc, 1));
+}
+
+static int addchar(int c) {
+ (*w++)=(unsigned char)c;
+ return *w;
+}
+
+static void putcap(unsigned char *s) {
+ tputs(s, 0, myputchar);
+}
+
+static int do_cs(int y1, int y2) {
+ static char temp[16];
+ if (ansi_cs) {
+ sprintf(temp, "%c[%d;%dr", 27, y1, y2);
+ write(1, temp, strlen(temp));
+ } else putcap((char *)tgoto(t_cs, y2-1, y1-1));
+ return 0;
+}
+
+static void writecap(unsigned char *s) {
+ tputs(s, 0, addchar);
+}
+
+static void gotoxy(int x, int y) {
+/* left upper = 0, 0 */
+ putcap(tgoto(t_cm, x, y));
+}
+
+#define clearscreen() (putcap(t_cl))
+#define cleareol() (putcap(t_ce))
+#define fullscroll() (do_cs(0, 0))
+#define winscroll() (do_cs(1, nlines-2))
+#define setbold() (putcap(t_md))
+#define setunder() (putcap(t_us))
+#define setinv() (putcap(t_mr))
+#define normal() (putcap(t_me))
+
+static void ofsredisplay(int x);
+static void inschar(unsigned char t);
+static void dokbdchar(unsigned char t);
+static void displaystatus(void);
+
+static void cleanupexit(int n, const char *error) {
+ normal();
+ fullscroll();
+ gotoxy(0, nlines-1);
+ cleareol();
+#ifdef USE_SGTTY
+ ioctl(ttyfd, TIOCSETP, &term0);
+ ioctl(ttyfd, TIOCSETC, &tch0);
+ ioctl(ttyfd, TIOCSLTC, &lch0);
+#else
+ tcsetattr(ttyfd, TCSADRAIN, &term0);
+#endif
+ close(ttyfd);
+ if (error!=NULL)
+ fprintf(stderr, "%s\n", error);
+ exit(n);
+}
+
+static void allsigs(int);
+
+static void interrupted(int ignored) {
+ cleanupexit(1, "interrupted");
+}
+
+static void sigpipe(int ignored) {
+ cleanupexit(1, "program died");
+}
+
+static void sigcont(int ignored) {
+ allsigs(0);
+#ifdef USE_SGTTY
+ ioctl(ttyfd, TIOCSETP, &term);
+ ioctl(ttyfd, TIOCSETC, &tch);
+ ioctl(ttyfd, TIOCSLTC, &lch);
+#else
+ tcsetattr(ttyfd, TCSANOW, &term);
+#endif
+ wherex=0;
+ wherey=ystatus-1;
+ displaystatus();
+ ofsredisplay(0);
+}
+
+static void suspend(int ignored) {
+ normal();
+ fullscroll();
+ gotoxy(0, ystatus);
+ cleareol();
+#ifdef USE_SGTTY
+ ioctl(ttyfd, TIOCSETP, &term0);
+ ioctl(ttyfd, TIOCSETC, &tch0);
+ ioctl(ttyfd, TIOCSLTC, &lch0);
+#else
+ tcsetattr(ttyfd, TCSANOW, &term0);
+#endif
+ kill(pid, SIGCONT);
+ signal(SIGTSTP, SIG_DFL);
+ signal(SIGCONT, sigcont);
+ kill(mypid, SIGTSTP);
+}
+
+static void sigwinch(int ignored) {
+#ifdef TIOCGWINSZ
+ signal(SIGWINCH, sigwinch);
+ if (ioctl(ttyfd, TIOCGWINSZ, &wsz)>=0 && wsz.ws_row>0 && wsz.ws_col>0) {
+ nlines=wsz.ws_row;
+ ncols=wsz.ws_col;
+ cursorwhere=2;
+ ystatus=nlines-2;
+ yinput=nlines-1;
+ wherex=0;
+ wherey=ystatus-1;
+ displaystatus();
+ if (inputlast>ncols-8) {
+ inputcursor=ncols-9;
+ inputofs=inputlast-ncols+9;
+ } else {
+ inputofs=0;
+ inputcursor=inputlast;
+ }
+ ofsredisplay(0);
+ }
+#endif
+}
+
+static void allsigs(int ignored) {
+ signal(SIGHUP, interrupted);
+ signal(SIGINT, interrupted);
+ signal(SIGQUIT, SIG_IGN);
+ signal(SIGPIPE, sigpipe);
+ signal(SIGTSTP, suspend);
+ signal(SIGCONT, sigcont);
+#ifdef TIOCGWINSZ
+ signal(SIGWINCH, sigwinch);
+#endif
+}
+
+static void setstatus(unsigned char *title) {
+ unsigned char *t=title;
+ for (;*t;t++) if (*t<' ') (*t)+='@';
+ memset(statusline, ' ', MAX_COLS-1);
+ memcpy(statusline, title, strlen(title)<MAX_COLS ? strlen(title) : MAX_COLS);
+}
+
+static void displaystatus(void) {
+ normal();
+ fullscroll();
+ gotoxy(0, ystatus);
+ setinv();
+ write(1, statusline, ncols-1);
+ if (hold_mode) {
+ gotoxy(ncols-4, ystatus);
+ write(1, "(h)", 3);
+ }
+ cursorwhere=2;
+ normal();
+ cleareol();
+}
+
+static int casecmp(unsigned char *s, unsigned char *t) {
+ while (((*s>='a' && *s<='z')?(*s)-32:*s)==
+ ((*t>='a' && *t<='z')?(*t)-32:*t)) {
+ if (*s=='\0') return 1;
+ s++; t++;
+ }
+ return 0;
+}
+
+static void addtab(unsigned char *line) {
+ struct tabinfo *nt;
+
+ nt=oldest;
+ if (tablines) do {
+ if (casecmp(nt->string, line)) {
+ strcpy(nt->string, line);
+ if (nt==oldest) oldest=nt->prev;
+ else {
+ nt->prev->next=nt->next;
+ nt->next->prev=nt->prev;
+ nt->prev=oldest;
+ nt->next=oldest->next;
+ oldest->next=nt;
+ nt->next->prev=nt;
+ }
+ curtabt=oldest->next;
+ curtabr=oldest;
+ return;
+ }
+ nt=nt->next;
+ } while (nt!=oldest);
+
+ if (!tablines) {
+ nt=(struct tabinfo *)malloc(sizeof (struct tabinfo));
+ nt->prev=nt->next=curtabt=curtabr=oldest=nt;
+ tablines++;
+ } else if (tablines<MAX_TAB_LINES) {
+ nt=(struct tabinfo *)malloc(sizeof (struct tabinfo));
+ nt->prev=oldest;
+ nt->next=oldest->next;
+ oldest->next=nt;
+ nt->next->prev=nt;
+ tablines++;
+ } else {
+ nt=oldest;
+ oldest=nt->prev;
+ }
+ strcpy(nt->string, line);
+ oldest=nt->prev;
+ curtabt=oldest->next;
+ curtabr=oldest;
+}
+
+static void doprotcommand(void) {
+ unsigned char *tmp;
+
+ switch (protcmd[0]) {
+ case 'i' : dispmode=2; /* set irc mode, ack */
+ bold=inv=under=0;
+ write(writefd, "@ssfe@i\n", 8);
+ break;
+ case 'c' : dispmode=1; /* set cooked mode, ack */
+ write(writefd, "@ssfe@c\n", 8);
+ break;
+ case 's' : setstatus(protcmd+1); /* set status */
+ displaystatus();
+ break;
+ case 'T' : strncpy(ctrl_t, protcmd+1, 127); /* set ^t's text */
+ ctrl_t[126] = '\0';
+ strcat(ctrl_t, "\n");
+ break;
+ case 't' : addtab(protcmd+1); /* add tabkey entry */
+ break;
+ case 'l' : fullscroll(); /* clear screen */
+ normal();
+ clearscreen();
+ bold=inv=under=wherex=wherey=donl=0;
+ displaystatus();
+ ofsredisplay(0);
+ break;
+
+ case 'P' : no_echo = 1; /* password prompt */
+ case 'p' : if (strlen(protcmd+1)<=8) { /* prompt something */
+ fullscroll();
+ if (!specialprompt) {
+ histcurrent->len=inputlast;
+ histcurrent->plen=plen;
+ }
+ input=extrainput;
+ strcpy(input, protcmd+1);
+ plen=strlen(input);
+ inputofs=0;
+ modified=specialprompt=1;
+ inputlast=inputcursor=plen;
+ ofsredisplay(0);
+ }
+ break;
+ case 'n' : if (cursorwhere!=1) { /* type text */
+ normal();
+ fullscroll();
+ gotoxy(inputcursor, yinput);
+ cursorwhere=1;
+ }
+ for (tmp=protcmd+1; *tmp; tmp++) {
+ inschar(*tmp);
+ }
+ break;
+ case 'o' : strcpy(o_buffer, protcmd+1);
+ break;
+ }
+}
+
+static void do_newline(void) {
+ unsigned char t;
+ hold_lines++;
+ if (hold_mode && hold_lines>nlines-4) {
+ normal();
+ fullscroll();
+ gotoxy(ncols-4, ystatus);
+ setinv();
+ write(1, "(H)", 3);
+ while(1) {
+ read(0, &t, 1);
+ if (t==9) break;
+ dokbdchar(t);
+ }
+ normal();
+ fullscroll();
+ gotoxy(ncols-4, ystatus);
+ setinv();
+ write(1, "(h)", 3);
+ hold_lines=0;
+ normal();
+ winscroll();
+ gotoxy(ncols-1, wherey);
+ if (bold) setbold();
+ if (under) setunder();
+ if (inv) setinv();
+ }
+}
+
+static void formatter(unsigned char *readbuf, int rc) {
+
+ unsigned char t, *r, *lwr, *lww;
+ int lwrc, lwbold, lwunder, lwinv, lwx;
+
+ lwbold=lwunder=lwinv=0;
+ if (cursorwhere!=0) {
+ winscroll();
+ gotoxy(wherex, wherey);
+ cursorwhere=0;
+ }
+ if (donl) {
+ do_newline();
+ write(1, "\r\n", 2);
+ normal();
+ wherex=0;
+ bold=inv=under=lwbold=lwinv=lwunder=0;
+ if (wherey<ystatus-1) {
+ wherey++;
+ }
+ } else {
+ if (dispmode>1) {
+ if (bold) {
+ setbold();
+ }
+ if (under) {
+ setunder();
+ }
+ if (inv) {
+ setinv();
+ }
+ lwbold=bold;
+ lwinv=inv;
+ lwunder=under;
+ }
+ }
+ if (rc && readbuf[rc-1]=='\n') {
+ rc--;
+ donl=1; cutline=0;
+ } else {
+ donl=0;
+ if (dispmode==0) cutline=1;
+ }
+ if (dispmode==0) {
+ if (rc) write(1, readbuf, rc);
+ normal();
+ return;
+ }
+ lww=w=writebuf;
+ lwr=r=readbuf;
+ lwrc=rc;
+ lwx=wherex;
+ while(rc-->0) {
+ t=(*r++);
+ if (t=='\r') continue;
+ if ((wherex>ncols-2) || (t==9 && (wherex>((ncols-2)&0xfff8)))) {
+ if (t==' ' || t==9) ;
+ else if (lww>writebuf+ncols/2) {
+ wherex=lwx; r=lwr; w=lww; rc=lwrc;
+ bold=lwbold; inv=lwinv; under=lwunder; wherex=lwx;
+ } else {
+ rc++; r--;
+ }
+ write(1, writebuf, w-writebuf);
+ do_newline();
+ write(1, "\r\n ", 13);
+ w=writebuf;
+ lwr=r; lww=w; lwrc=rc;
+ lwbold=bold; lwinv=inv; lwunder=under;
+ lwx=wherex=11;
+ if (wherey<ystatus-1) wherey++;
+ rc--; t=(*r++);
+ }
+ if (t=='\n') {
+ if (w!=writebuf) write(1, writebuf, w-writebuf);
+ do_newline();
+ write(1, "\r\n", 2);
+ normal();
+ w=writebuf;
+ lwr=r; lww=w; lwrc=rc;
+ lwbold=bold=lwinv=inv=lwunder=under=lwx=wherex=0;
+ if (wherey<ystatus-1) wherey++;
+ } else if (dispmode>1 &&
+ ((t==2 && bold) || (t==22 && inv) || (t==31 && under))) {
+ writecap(t_me);
+ bold=under=inv=0;
+ } else if (dispmode>1 && t==2) {
+ writecap(t_md);
+ bold=1;
+ } else if (dispmode>1 && t==22) {
+ writecap(t_mr);
+ inv=1;
+ } else if (dispmode>1 && t==31) {
+ writecap(t_us);
+ under=1;
+ } else if (dispmode>1 && t==15) {
+ if (bold || inv || under) writecap(t_me);
+ bold=under=inv=0;
+ } else if (t==9) {
+ (*w++)=t;
+ wherex=(wherex & 0xfff8)+8;
+ } else if (t<' ' && (t!=7 || !beep_mode)) {
+ wherex++;
+ if (inv) {
+ writecap(t_me);
+ (*w++)=(t+'@');
+ } else {
+ writecap(t_mr);
+ (*w++)=(t+'@');
+ writecap(t_me);
+ }
+ if (bold) writecap(t_md);
+ if (inv) writecap(t_mr);
+ if (under) writecap(t_us);
+ } else {
+ if (t!=7) wherex++;
+ (*w++)=t;
+ }
+ if (t==' ' || t==9) {
+ lwr=r; lww=w; lwrc=rc;
+ lwbold=bold; lwinv=inv; lwunder=under;
+ lwx=wherex;
+ }
+ }
+ if (w!=writebuf) write(1, writebuf, w-writebuf);
+}
+
+static void doprogramline(unsigned char *readbuf, int rc) {
+
+ unsigned char *w, *r, *r2, t;
+ if (dispmode==0) {
+ formatter(readbuf, rc);
+ return;
+ }
+ w=r=readbuf;
+ while(rc-->0) {
+ t=(*r++);
+ if (idstatus==0) {
+ if (*inid=='\0') {
+ idstatus=1;
+ wpc=protcmd;
+ inid=id;
+ } else {
+ if (*inid==t && (inid!=id || r==(readbuf+1) || *(r-2)=='\n')) {
+ inid++;
+ (*wpc++)=t;
+ } else {
+ r2=protcmd;
+ while (r2!=wpc) {
+ (*w++)=(*r2++);
+ }
+ (*w++)=t;
+ wpc=protcmd;
+ inid=id;
+ }
+ }
+ }
+ if (idstatus==1) {
+ if (t=='\n') {
+ *wpc='\0';
+ doprotcommand();
+ inid=id;
+ wpc=protcmd;
+ idstatus=0;
+ } else {
+ (*wpc++)=t;
+ }
+ }
+ }
+ if (w!=readbuf) formatter(readbuf, w-readbuf);
+}
+
+static void write1(unsigned char t, int pos) {
+ if (no_echo && pos>=plen) {
+ write(1, "*", 1);
+ } else if (t>=' ')
+ write(1, &t, 1);
+ else {
+ setinv();
+ t+='@';
+ write(1, &t, 1);
+ normal();
+ }
+}
+
+static void ofsredisplay(int x) {
+/* redisplays starting at x */
+ unsigned char *w;
+ int i;
+ gotoxy(x, yinput);
+ if (inputlast-inputofs>=x) {
+ i=((inputlast-inputofs>ncols-1 ? ncols-1-x : inputlast-inputofs-x));
+ for (w=input+inputofs+x; i--; w++) write1(*w, w-input);
+ }
+ cleareol();
+ gotoxy(inputcursor, yinput);
+ cursorwhere=1;
+}
+
+static void delempty(struct histinfo *leavealone) {
+ struct histinfo *h, *h2;
+ int cont=0;
+ h=histoldest;
+ do {
+ cont=0;
+ if ((h->len<=h->plen) && (h!=leavealone)) {
+ histlines--;
+ h->next->prev=h->prev;
+ h->prev->next=h->next;
+ h2=h->prev;
+ free(h);
+ if (h==histoldest) {
+ histoldest=h2;
+ cont=1;
+ }
+ h=h2;
+ } else h=h->prev;
+ } while ((h!=histoldest || cont) && histlines>0);
+ if (!histlines) {
+ histoldest=NULL;
+ return;
+ }
+}
+
+static struct histinfo *makenew(void) {
+ struct histinfo *nh;
+ if (!histlines) {
+ nh=(struct histinfo *)malloc(sizeof (struct histinfo));
+ nh->prev=nh->next=histoldest=nh;
+ histlines++;
+ } else if (histlines<MAX_HIST_LINES) {
+ nh=(struct histinfo *)malloc(sizeof (struct histinfo));
+ nh->prev=histoldest;
+ nh->next=histoldest->next;
+ histoldest->next=nh;
+ nh->next->prev=nh;
+ histlines++;
+ } else {
+ nh=histoldest;
+ histoldest=nh->prev;
+ }
+ return nh;
+}
+
+static void sendline(int yank) {
+ if (!specialprompt) {
+ histcurrent->len=inputlast;
+ histcurrent->plen=plen;
+ }
+ if (!yank) {
+ input[inputlast]='\n';
+ if (printmode) formatter(input, inputlast+1);
+ if (write(writefd, input+plen, inputlast+1-plen)<inputlast+1-plen)
+ cleanupexit(1, "write error");
+ }
+ input[inputlast]='\0';
+ delempty(NULL);
+ histcurrent=makenew();
+ input=histcurrent->string;
+ strcpy(input, prompt);
+ plen=strlen(prompt);
+ inputofs=specialprompt=0;
+ modified=1;
+ inputcursor=inputlast=plen;
+ ofsredisplay(0);
+ no_echo=0;
+}
+
+static void modify(void) {
+ struct histinfo *h;
+ if (!modified) {
+ if (inputlast>plen) {
+ h=histcurrent;
+ delempty(h);
+ histcurrent=makenew();
+ strcpy(histcurrent->string, h->string);
+ input=histcurrent->string;
+ }
+ modified=1;
+ }
+}
+
+static void fixpos(void) {
+ if (inputcursor<8 && inputofs>0) {
+ inputofs-=ncols-16;
+ inputcursor+=ncols-16;
+ if (inputofs<0) {
+ inputcursor+=inputofs;
+ inputofs=0;
+ }
+ ofsredisplay(0);
+ } else if (inputcursor>ncols-8) {
+ inputofs+=ncols-16;
+ inputcursor-=ncols-16;
+ ofsredisplay(0);
+ }
+}
+
+static void reshow(void) {
+ if (inputlast>ncols-8) {
+ inputcursor=ncols-9;
+ inputofs=inputlast-ncols+9;
+ } else {
+ inputofs=0;
+ inputcursor=inputlast;
+ }
+ ofsredisplay(0);
+}
+
+static void inschar(unsigned char t) {
+
+ unsigned char *tmp;
+
+ if (inputlast<BUF_SIZE-4) {
+ modify();
+ if (inputofs+inputcursor==inputlast) {
+ write1(t, inputlast);
+ input[inputlast++]=t;
+ input[inputlast]='\0';
+ inputcursor++;
+ } else {
+ tmp=input+inputlast;
+ while (tmp>=input+inputofs+inputcursor) {
+ *(tmp+1)=(*tmp);
+ tmp--;
+ }
+ input[inputofs+(inputcursor++)]=t;
+ inputlast++;
+ ofsredisplay(inputcursor-1);
+ }
+ fixpos();
+ }
+}
+
+static void dokbdchar(unsigned char t) {
+
+ unsigned char *tmp;
+
+ if (inarrow==1) {
+ if (t=='[' || t=='O') {
+ inarrow++;
+ return;
+ }
+ inarrow=0;
+ } else if (inarrow==2) {
+ inarrow=0;
+ if (t=='D') t=2;
+ else if (t=='C') t=6;
+ else if (t=='A') t=16;
+ else if (t=='B') t=14;
+ else return;
+ }
+ if (ctrlx && !quote) {
+ ctrlx=0;
+ t|=0x20;
+ if (dispmode>0 && ((t=='h' && !hold_mode) || t=='y')) {
+ hold_mode=1;
+ hold_lines=0;
+ if (cursorwhere!=1) fullscroll();
+ cursorwhere=2;
+ normal();
+ gotoxy(ncols-4, ystatus);
+ setinv();
+ write(1, "(h)", 3);
+ normal();
+ } else if (dispmode>0 && ((t=='h' && hold_mode) || t=='n')) {
+ hold_mode=0;
+ if (cursorwhere!=1) fullscroll();
+ cursorwhere=2;
+ normal();
+ gotoxy(ncols-4, ystatus);
+ setinv();
+ write(1, " ", 3);
+ normal();
+ } else if (dispmode>0 && t=='i') {
+ dispmode=3-dispmode;
+ bold=inv=under=0;
+ } else if (dispmode>0 && t=='b') {
+ beep_mode=!beep_mode;
+ } else if (t=='c') cleanupexit(1, "exiting");
+ return;
+ }
+ if (cutline) donl=1;
+ if (cursorwhere!=1) {
+ normal();
+ fullscroll();
+ gotoxy(inputcursor, yinput);
+ cursorwhere=1;
+ }
+ if (t==24 && !quote) {
+ ctrlx=1;
+ return;
+ } else ctrlx=0;
+ if (t==27 && !quote) {
+ inarrow=1;
+ } else if ((t==10 || t==13) && !quote) { /* return, do_newline */
+ sendline(0);
+ if (tablines) {
+ curtabr=oldest;
+ curtabt=oldest->next;
+ }
+ } else if (t==25 && !quote) { /* ^y */
+ if (!specialprompt) {
+ sendline(1);
+ if (tablines) {
+ curtabr=oldest;
+ curtabt=oldest->next;
+ }
+ }
+ } else if (t==21 && !quote) { /* ^u */
+ modify();
+ input[plen]='\0';
+ inputcursor=inputlast=plen;
+ inputofs=0;
+ ofsredisplay(0);
+ } else if ((t==8 || t==0x7f) && !quote) { /* ^h, ^? */
+ if (inputcursor>plen) {
+ modify();
+ tmp=input+inputcursor+inputofs;
+ while (tmp<input+inputlast) {
+ *(tmp-1)=(*tmp);
+ tmp++;
+ }
+ input[--inputlast]='\0';
+ gotoxy(--inputcursor, yinput);
+ ofsredisplay(inputcursor);
+ fixpos();
+ }
+ } else if (t==4 && !quote) { /* ^d */
+ if (inputcursor+inputofs<inputlast) {
+ modify();
+ tmp=input+inputcursor+inputofs+1;
+ while (tmp<input+inputlast) {
+ *(tmp-1)=(*tmp);
+ tmp++;
+ }
+ input[--inputlast]='\0';
+ gotoxy(inputcursor, yinput);
+ ofsredisplay(inputcursor);
+ }
+ } else if (t==11 && !quote) { /* ^k */
+ if (inputcursor+inputofs<inputlast) {
+ modify();
+ input[inputlast=inputofs+inputcursor]='\0';
+ ofsredisplay(inputcursor);
+ }
+ } else if (t==2 && !quote) { /* ^b */
+ if (inputcursor>0 && (inputcursor>plen || inputofs>0)) {
+ gotoxy(--inputcursor, yinput);
+ fixpos();
+ }
+ } else if (t==6 && !quote) { /* ^f */
+ if (inputcursor+inputofs<inputlast) {
+ gotoxy(++inputcursor, yinput);
+ fixpos();
+ }
+ } else if (t==1 && !quote) { /* ^a */
+ if (inputcursor+inputofs>plen) {
+ if (inputofs==0)
+ gotoxy((inputcursor=plen), yinput);
+ else {
+ inputofs=0;
+ inputcursor=plen;
+ ofsredisplay(0);
+ }
+ }
+ } else if (t==5 && !quote) { /* ^e */
+ if (inputcursor+inputofs<inputlast) {
+ if (inputlast-inputofs<ncols-3) {
+ gotoxy((inputcursor=inputlast-inputofs), yinput);
+ } else if (inputlast>ncols-8) {
+ inputcursor=ncols-9;
+ inputofs=inputlast-ncols+9;
+ ofsredisplay(0);
+ } else {
+ inputofs=0;
+ inputcursor=inputlast;
+ ofsredisplay(0);
+ }
+ }
+ } else if (t==12 && !quote) { /* ^l */
+ displaystatus();
+ ofsredisplay(0);
+ } else if (t==9 && !quote) { /* TAB */
+ if (tablines) {
+ modify();
+ strcpy(input+plen, curtabt->string);
+ curtabr=curtabt->prev;
+ curtabt=curtabt->next;
+ inputlast=strlen(input);
+ reshow();
+ }
+ } else if (t==18 && !quote) { /* ^r */
+ if (tablines) {
+ modify();
+ strcpy(input+plen, curtabr->string);
+ curtabt=curtabr->next;
+ curtabr=curtabr->prev;
+ inputlast=strlen(input);
+ reshow();
+ }
+ } else if (t==16 && !quote) { /* ^p */
+ if (histlines>1 && !specialprompt) {
+ histcurrent->plen=plen;
+ histcurrent->len=inputlast;
+ histcurrent=histcurrent->next;
+ plen=histcurrent->plen;
+ inputlast=histcurrent->len;
+ input=histcurrent->string;
+ modified=0;
+ reshow();
+ }
+ } else if (t==14 && !quote) { /* ^n */
+ if (histlines>1 && !specialprompt) {
+ histcurrent->plen=plen;
+ histcurrent->len=inputlast;
+ histcurrent=histcurrent->prev;
+ plen=histcurrent->plen;
+ inputlast=histcurrent->len;
+ input=histcurrent->string;
+ modified=0;
+ reshow();
+ }
+ } else if (t==15 &&!quote) { /* ^o */
+ if (strlen(o_buffer)) modify();
+ for (tmp=o_buffer; *tmp; tmp++) inschar(*tmp);
+ } else if (t==20 && !quote) { /* ^t */
+ write(writefd, ctrl_t, strlen(ctrl_t));
+ } else if (t==22 && !quote) { /* ^v */
+ quote++;
+ return;
+#ifdef CONTROL_W
+ } else if (t==23 && !quote) { /* ^w */
+ fullscroll();
+ normal();
+ clearscreen();
+ bold=inv=under=wherex=wherey=donl=0;
+ displaystatus();
+ ofsredisplay(0);
+#endif
+ } else inschar(t);
+ quote=0;
+}
+
+static void barf(const char *m) {
+ fprintf(stderr, "%s\n", m);
+ exit(1);
+}
+
+char *myname;
+
+static void use(void) {
+ fprintf(stderr, "Use: %s [options] program [program's options]\n", myname);
+ fprintf(stderr, "Options are:\n");
+ fprintf(stderr, " -raw, -cooked, -irc : set display mode\n");
+ fprintf(stderr, " -print : print your input lines\n");
+ fprintf(stderr, " -prompt <prompt> : specify a command-line prompt\n");
+ fprintf(stderr, " -hold : pause after each full screen (for cooked/irc mode)\n");
+ fprintf(stderr, " -beep : let beeps through (for cooked/irc mode)\n");
+ fprintf(stderr, " -flow : leave ^S/^Q alone for flow control\n");
+ exit(1);
+}
+
+int main(int argc, char *argv[]) {
+
+ char *vr;
+ int pfds0[2], pfds1[2], pfds2[2];
+
+ myname=(*argv);
+ prompt=nullstring;
+ while (argc>1) {
+ if (strcmp(argv[1], "-raw")==0) {
+ dispmode=0;
+ argv++; argc--;
+ } else if (strcmp(argv[1], "-cooked")==0) {
+ dispmode=1;
+ argv++; argc--;
+ } else if (strcmp(argv[1], "-irc")==0) {
+ dispmode=2;
+ argv++; argc--;
+ } else if (strcmp(argv[1], "-hold")==0) {
+ hold_mode=1;
+ argv++; argc--;
+ } else if (strcmp(argv[1], "-print")==0) {
+ argv++; argc--;
+ if (prompt==nullstring) prompt=defprompt;
+ printmode=1;
+ } else if (strcmp(argv[1], "-beep")==0) {
+ beep_mode=1;
+ argv++; argc--;
+ } else if (strcmp(argv[1], "-flow")==0) {
+ flow=1;
+ argv++; argc--;
+ } else if (strcmp(argv[1], "-prompt")==0) {
+ if (argc>2) prompt=(unsigned char *)argv[2];
+ if (strlen(prompt)>8) barf("Prompt too long");
+ argv+=2; argc-=2;
+ } else break;
+ }
+ if (argc<2) use();
+ if (!isatty(0)) barf("I can only run on a tty, sorry");
+ if ((termtype=getenv("TERM"))==NULL) barf("No terminal type set");
+ if (tgetent(termcap, termtype)<1) barf("No termcap info for your terminal");
+ tc=capabilities;
+ if ((t_cm=(char *)tgetstr("cm", &tc))==NULL)
+ barf("Can't find a way to move the cursor around with your terminal");
+ if ((t_cl=(char *)tgetstr("cl", &tc))==NULL)
+ barf("Can't find a way to clear the screen with your terminal");
+ if ((t_ce=(char *)tgetstr("ce", &tc))==NULL)
+ barf("Can't find a way to clear to end of line with your terminal");
+ if ((t_cs=(char *)tgetstr("cs", &tc))==NULL) {
+ if (strncmp(termtype, "xterm", 5)==0 || strncmp(termtype, "vt100", 5)==0)
+ ansi_cs=1;
+ else
+ barf("Can't find a way to set the scrolling region with your terminal");
+ }
+ if ((t_me=(char *)tgetstr("me", &tc))!=NULL) {
+ if ((t_mr=(char *)tgetstr("mr", &tc))==NULL) t_mr=t_me;
+ if ((t_md=(char *)tgetstr("md", &tc))==NULL) t_md=t_me;
+ if ((t_us=(char *)tgetstr("us", &tc))==NULL) t_us=t_me;
+ } else if ((t_me=(char *)tgetstr("se", &tc))!=NULL &&
+ (t_mr=(char *)tgetstr("so", &tc))!=NULL) {
+ t_md=t_mr;
+ t_us=tc;
+ (*tc++)='\0';
+ } else {
+ t_me=t_md=t_mr=t_us=tc;
+ (*tc++)='\0';
+ }
+
+/*
+ if ((ttyfd=open("/dev/tty", O_RDWR))<0 &&
+ (ttyfd=open("/dev/tty", O_RDONLY))<0) barf("Can't open terminal!");
+ */
+ ttyfd = 0;
+
+#ifdef TIOCGWINSZ
+ if (ioctl(ttyfd, TIOCGWINSZ, &wsz)<0 || wsz.ws_row<1 || wsz.ws_col<1) {
+#endif
+ nlines=((vr=getenv("LINES"))?atoi(vr):0);
+ ncols=((vr=getenv("COLUMNS"))?atoi(vr):0);
+ if (nlines<1 || ncols<1) {
+ if ((nlines=tgetnum("li"))<1 || (ncols=tgetnum("co"))<1) {
+ nlines=24; ncols=80;
+ }
+ }
+#ifdef TIOCGWINSZ
+ } else {
+ nlines=wsz.ws_row;
+ ncols=wsz.ws_col;
+ }
+#endif
+
+ if (pipe(pfds0)<0 || pipe(pfds1)<0 || pipe(pfds2)<0) {
+ perror("pipe");
+ exit(1);
+ }
+ mypid=getpid();
+ switch (pid=fork()) {
+ case -1:
+ perror("fork");
+ exit(1);
+ case 0:
+ if (pfds0[0]!=0) dup2(pfds0[0], 0);
+ if (pfds1[1]!=1) dup2(pfds1[1], 1);
+ if (pfds2[1]!=2) dup2(pfds2[1], 2);
+ if (pfds0[0]>2) close(pfds0[0]);
+ if (pfds0[1]>2) close(pfds0[1]);
+ if (pfds1[0]>2) close(pfds1[0]);
+ if (pfds1[1]>2) close(pfds1[1]);
+ if (pfds2[0]>2) close(pfds2[0]);
+ if (pfds2[1]>2) close(pfds2[1]);
+ /* okay we can read from 0 and write to 1 and 2, now.. it seems */
+ execvp(argv[1], argv+1);
+ perror("exec");
+ sleep(1);
+ exit(1);
+ default:
+ close(pfds0[0]);
+ close(pfds1[1]);
+ close(pfds2[1]);
+ readfd=pfds1[0];
+ writefd=pfds0[1];
+ errfd=pfds2[0];
+ }
+
+#ifdef USE_SGTTY
+
+ if (ioctl(ttyfd, TIOCGETP, &term)<0 || ioctl(ttyfd, TIOCGETC, &tch)<0 ||
+ ioctl(ttyfd, TIOCGLTC, &lch)<0) {
+ perror("sgtty get ioctl");
+ exit(1);
+ }
+ term0=term;
+ tch0=tch;
+ lch0=lch;
+ term.sg_flags|=CBREAK;
+ term.sg_flags&= ~ECHO & ~CRMOD;
+
+ memset(&tch, -1, sizeof(tch));
+ memset(&lch, -1, sizeof(lch));
+ tch.t_intrc=(char)28;
+ tch.t_quitc=(char)3;
+ if (flow) {
+ tch.t_startc=(char)17;
+ tch.t_stopc=(char)19;
+ }
+ lch.t_suspc=(char)26;
+
+ if (ioctl(ttyfd, TIOCSETP, &term)<0 || ioctl(ttyfd, TIOCSETC, &tch)<0 ||
+ ioctl(ttyfd, TIOCSLTC, &lch)<0) {
+ perror("sgtty set ioctl");
+ exit(1);
+ }
+
+#else
+ if (tcgetattr(ttyfd, &term)<0) {
+ perror("tcgetattr");
+ exit(1);
+ }
+ term0=term;
+
+ term.c_lflag &= ~ECHO & ~ICANON;
+ term.c_cc[VTIME]=(char)0;
+ term.c_cc[VMIN]=(char)1;
+ if (!flow) {
+ term.c_cc[VSTOP]=(char)0;
+ term.c_cc[VSTART]=(char)0;
+ }
+ term.c_cc[VQUIT]=(char)3;
+ term.c_cc[VINTR]=(char)28; /* reverse ^c and ^\ */
+ term.c_cc[VSUSP]=(char)26;
+#ifdef VREPRINT
+ term.c_cc[VREPRINT]=(char)0;
+#endif
+#ifdef VDISCARD
+ term.c_cc[VDISCARD]=(char)0;
+#endif
+#ifdef VLNEXT
+ term.c_cc[VLNEXT]=(char)0;
+#endif
+#ifdef VDSUSP
+ term.c_cc[VDSUSP]=(char)0;
+#endif
+
+ if (tcsetattr(ttyfd, TCSANOW, &term)<0) {
+ perror("tcsetattr");
+ exit(1);
+ }
+#endif
+
+ allsigs(0);
+
+ ystatus=nlines-2;
+ yinput=nlines-1;
+
+ if (nlines>255) barf("Screen too big");
+ if (ystatus<=2 || ncols<20) barf("Screen too small");
+
+ statusline=(unsigned char *)malloc(MAX_COLS);
+ writebuf=(unsigned char *)malloc(20*BUF_SIZE);
+ strcpy(tmpstr, " ");
+ for (i=1; i<argc; i++)
+ if (strlen(tmpstr)+strlen(argv[i])<ncols-1) {
+ strcat(tmpstr, argv[i]);
+ strcat(tmpstr, " ");
+ }
+ setstatus(tmpstr);
+
+ if (dispmode==0) wherey=ystatus-1;
+ clearscreen();
+ displaystatus();
+
+ histoldest=histcurrent=(struct histinfo *)malloc(sizeof (struct histinfo));
+ input=histcurrent->string;
+ histcurrent->prev=histcurrent->next=histcurrent;
+ histlines=1;
+ plen=strlen(prompt);
+ inputlast=inputcursor=plen;
+ strcpy(input, prompt);
+ ofsredisplay(0);
+ *protcmd='\0';
+ *o_buffer='\0';
+ cursorwhere=1;
+
+ FD_ZERO(&ready);
+ FD_SET(ttyfd, &ready);
+ FD_SET(readfd, &ready);
+ FD_SET(errfd, &ready);
+
+ while(1) {
+ result=ready;
+
+ if (select(64, &result, NULL, NULL, NULL)<=0) {
+ if (errno==EINTR) {
+ continue;
+ } else {
+ cleanupexit(1, "select error");
+ }
+ }
+
+ if (FD_ISSET(readfd, &result)) {
+ if ((rc=read(readfd, readbuf, BUF_SIZE))>0) {
+ doprogramline(readbuf, rc);
+ } else {
+ cleanupexit(1, "program terminated");
+ }
+ }
+
+ if (FD_ISSET(errfd, &result)) {
+ if ((rc=read(errfd, readbuf, BUF_SIZE))>0) {
+ doprogramline(readbuf, rc);
+ } else {
+ cleanupexit(1, "program terminated");
+ }
+ }
+
+ if (FD_ISSET(ttyfd, &result)) {
+ if ((rrc=read(0, readbuf, BUF_SIZE))>0) {
+ for (t=readbuf; rrc>0; rrc--) {
+ dokbdchar(*(t++));
+ }
+ } else {
+ cleanupexit(1, "read error from keyboard");
+ }
+ }
+
+ }
+}
+
diff --git a/vte/src/table.c b/vte/src/table.c
new file mode 100644
index 0000000..140e8c8
--- /dev/null
+++ b/vte/src/table.c
@@ -0,0 +1,935 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#include <sys/types.h>
+#include <assert.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <glib.h>
+#include <glib-object.h>
+#include "debug.h"
+#include "iso2022.h"
+#include "table.h"
+
+/* Table info. */
+#define VTE_TABLE_MAX_LITERAL (128 + 32)
+#define _vte_table_map_literal(__c) \
+ (((__c) < (VTE_TABLE_MAX_LITERAL)) ? (__c) : 0)
+#define _vte_table_is_numeric(__c) \
+ (((__c) >= '0') && ((__c) <= '9'))
+#define _vte_table_is_numeric_list(__c) \
+ ((((__c) >= '0') && ((__c) <= '9')) || (__c) == ';')
+
+struct _vte_table {
+ struct _vte_matcher_impl impl;
+ GQuark resultq;
+ const char *result;
+ unsigned char *original;
+ gssize original_length;
+ int increment;
+ struct _vte_table *table_string;
+ struct _vte_table *table_number;
+ struct _vte_table *table_number_list;
+ struct _vte_table **table;
+};
+
+/* Argument info. */
+enum _vte_table_argtype {
+ _vte_table_arg_number=0,
+ _vte_table_arg_string,
+ _vte_table_arg_char
+};
+struct _vte_table_arginfo {
+ const gunichar *start;
+ struct _vte_table_arginfo *next;
+ guint type:2;
+ guint length:30;
+};
+#define MAX_STACK 16
+struct _vte_table_arginfo_head {
+ guint stack_allocated;
+ struct _vte_table_arginfo *list;
+ struct _vte_table_arginfo stack[MAX_STACK];
+};
+
+static void
+_vte_table_arginfo_head_init(struct _vte_table_arginfo_head *head)
+{
+ head->list = NULL;
+ head->stack_allocated = 0;
+}
+static inline struct _vte_table_arginfo*
+_vte_table_arginfo_alloc(struct _vte_table_arginfo_head *head)
+{
+ struct _vte_table_arginfo *info;
+ if (G_LIKELY (head->stack_allocated < G_N_ELEMENTS(head->stack))) {
+ info = &head->stack[head->stack_allocated++];
+ } else {
+ info = g_slice_new (struct _vte_table_arginfo);
+ }
+ info->next = head->list;
+ head->list = info;
+ return info;
+}
+static void
+_vte_table_arginfo_head_revert(struct _vte_table_arginfo_head *head, struct _vte_table_arginfo *last)
+{
+ struct _vte_table_arginfo *info;
+ info = head->list;
+ head->list = last->next;
+ if (last >= &head->stack[0] &&
+ last < &head->stack[G_N_ELEMENTS(head->stack)]){
+ head->stack_allocated = last - &head->stack[0];
+ }
+ do {
+ struct _vte_table_arginfo *next = info->next;
+ if (info >= &head->stack[0] &&
+ info < &head->stack[G_N_ELEMENTS(head->stack)]){
+ break;
+ }
+ g_slice_free(struct _vte_table_arginfo, info);
+ if (info == last) {
+ break;
+ }
+ info = next;
+ }while (TRUE);
+}
+static struct _vte_table_arginfo *
+_vte_table_arginfo_head_reverse(struct _vte_table_arginfo_head *head)
+{
+ struct _vte_table_arginfo *prev = NULL;
+ while (head->list) {
+ struct _vte_table_arginfo *next = head->list->next;
+
+ head->list->next = prev;
+
+ prev = head->list;
+ head->list = next;
+ }
+ return prev;
+}
+static void
+_vte_table_arginfo_head_finalize(struct _vte_table_arginfo_head *head)
+{
+ struct _vte_table_arginfo *info, *next;
+ for (info = head->list; info != NULL; info = next) {
+ next = info->next;
+ if (info >= &head->stack[0] &&
+ info < &head->stack[G_N_ELEMENTS(head->stack)]){
+ continue;
+ }
+ g_slice_free(struct _vte_table_arginfo, info);
+ }
+}
+
+/* Create an empty, one-level table. */
+struct _vte_table *
+_vte_table_new(void)
+{
+ struct _vte_table * ret;
+ ret = g_slice_new0(struct _vte_table);
+ ret->impl.klass = &_vte_matcher_table;
+ return ret;
+}
+
+static struct _vte_table **
+_vte_table_literal_new(void)
+{
+ return g_new0(struct _vte_table *, VTE_TABLE_MAX_LITERAL);
+}
+
+/* Free a table. */
+void
+_vte_table_free(struct _vte_table *table)
+{
+ unsigned int i;
+ if (table->table != NULL) {
+ for (i = 0; i < VTE_TABLE_MAX_LITERAL; i++) {
+ if (table->table[i] != NULL) {
+ _vte_table_free(table->table[i]);
+ }
+ }
+ g_free(table->table);
+ }
+ if (table->table_string != NULL) {
+ _vte_table_free(table->table_string);
+ }
+ if (table->table_number != NULL) {
+ _vte_table_free(table->table_number);
+ }
+ if (table->table_number_list != NULL) {
+ _vte_table_free(table->table_number_list);
+ }
+ if (table->original_length == 0) {
+ g_assert(table->original == NULL);
+ } else {
+ g_assert(table->original != NULL);
+ }
+ if (table->original != NULL) {
+ g_free(table->original);
+ }
+ g_slice_free(struct _vte_table, table);
+}
+
+/* Add a string to the tree with the given increment value. */
+static void
+_vte_table_addi(struct _vte_table *table,
+ const unsigned char *original, gssize original_length,
+ const char *pattern, gssize length,
+ const char *result, GQuark quark, int inc)
+{
+ int i;
+ guint8 check;
+ struct _vte_table *subtable;
+
+ if (original_length == -1) {
+ original_length = strlen((char *) original);
+ }
+ if (length == -1) {
+ length = strlen(pattern);
+ }
+
+ /* If this is the terminal node, set the result. */
+ if (length == 0) {
+ if (table->result != NULL)
+ _vte_debug_print (VTE_DEBUG_PARSE,
+ "`%s' and `%s' are indistinguishable.\n",
+ table->result, result);
+
+ table->resultq = g_quark_from_string(result);
+ table->result = g_quark_to_string(table->resultq);
+ if (table->original != NULL) {
+ g_free(table->original);
+ }
+ table->original = g_memdup(original, original_length);
+ table->original_length = original_length;
+ table->increment = inc;
+ return;
+ }
+
+ /* All of the interesting arguments begin with '%'. */
+ if (pattern[0] == '%') {
+ /* Handle an increment. */
+ if (pattern[1] == 'i') {
+ _vte_table_addi(table, original, original_length,
+ pattern + 2, length - 2,
+ result, quark, inc + 1);
+ return;
+ }
+
+ /* Handle numeric parameters. */
+ if ((pattern[1] == 'd') ||
+ (pattern[1] == '2') ||
+ (pattern[1] == '3')) {
+ /* Create a new subtable. */
+ if (table->table_number == NULL) {
+ subtable = _vte_table_new();
+ table->table_number = subtable;
+ } else {
+ subtable = table->table_number;
+ }
+ /* Add the rest of the string to the subtable. */
+ _vte_table_addi(subtable, original, original_length,
+ pattern + 2, length - 2,
+ result, quark, inc);
+ return;
+ }
+
+ /* Handle variable-length parameters. */
+ if ((pattern[1] == 'm') ||
+ (pattern[1] == 'M')) {
+ /* Build the "new" original using the initial portion
+ * of the original string and what's left after this
+ * specifier. */
+ if (pattern[1] == 'm') {
+ int initial;
+ GByteArray *b;
+
+ initial = original_length - length;
+ /* 0 args; we use 'M' to signal that zero is
+ * not allowed. */
+ b = g_byte_array_new();
+ g_byte_array_set_size(b, 0);
+ g_byte_array_append(b, original, initial);
+ g_byte_array_append(b, (const guint8*)pattern + 2, length - 2);
+ _vte_table_addi(table, b->data, b->len,
+ (const char *)b->data + initial,
+ b->len - initial,
+ result, quark, inc);
+ g_byte_array_free(b, TRUE);
+ }
+ /* Create a new subtable. */
+ if (table->table_number_list == NULL) {
+ subtable = _vte_table_new();
+ table->table_number_list = subtable;
+ } else {
+ subtable = table->table_number_list;
+ }
+ /* Add the rest of the string to the subtable. */
+ _vte_table_addi(subtable, original, original_length,
+ pattern + 2, length - 2,
+ result, quark, inc);
+ return;
+ }
+
+ /* Handle string parameters. */
+ if (pattern[1] == 's') {
+ /* It must have a terminator. */
+ g_assert(length >= 3);
+ /* Create a new subtable. */
+ if (table->table_string == NULL) {
+ subtable = _vte_table_new();
+ table->table_string = subtable;
+ } else {
+ subtable = table->table_string;
+ }
+ /* Add the rest of the string to the subtable. */
+ _vte_table_addi(subtable, original, original_length,
+ pattern + 2, length - 2,
+ result, quark, inc);
+ return;
+ }
+
+ /* Handle an escaped '%'. */
+ if (pattern[1] == '%') {
+ /* Create a new subtable. */
+ if (table->table == NULL) {
+ table->table = _vte_table_literal_new();
+ subtable = _vte_table_new();
+ table->table['%'] = subtable;
+ } else
+ if (table->table['%'] == NULL) {
+ subtable = _vte_table_new();
+ table->table['%'] = subtable;
+ } else {
+ subtable = table->table['%'];
+ }
+ /* Add the rest of the string to the subtable. */
+ _vte_table_addi(subtable, original, original_length,
+ pattern + 2, length - 2,
+ result, quark, inc);
+ return;
+ }
+
+ /* Handle a parameter character. */
+ if (pattern[1] == '+') {
+ /* It must have an addend. */
+ g_assert(length >= 3);
+ /* Fill in all of the table entries above the given
+ * character value. */
+ for (i = pattern[2]; i < VTE_TABLE_MAX_LITERAL; i++) {
+ /* Create a new subtable. */
+ if (table->table == NULL) {
+ table->table = _vte_table_literal_new();
+ subtable = _vte_table_new();
+ table->table[i] = subtable;
+ } else
+ if (table->table[i] == NULL) {
+ subtable = _vte_table_new();
+ table->table[i] = subtable;
+ } else {
+ subtable = table->table[i];
+ }
+ /* Add the rest of the string to the subtable. */
+ _vte_table_addi(subtable,
+ original, original_length,
+ pattern + 3, length - 3,
+ result, quark, inc);
+ }
+ /* Also add a subtable for higher characters. */
+ if (table->table == NULL) {
+ table->table = _vte_table_literal_new();
+ subtable = _vte_table_new();
+ table->table[0] = subtable;
+ } else
+ if (table->table[0] == NULL) {
+ subtable = _vte_table_new();
+ table->table[0] = subtable;
+ } else {
+ subtable = table->table[0];
+ }
+ /* Add the rest of the string to the subtable. */
+ _vte_table_addi(subtable, original, original_length,
+ pattern + 3, length - 3,
+ result, quark, inc);
+ return;
+ }
+ }
+
+ /* A literal (or an unescaped '%', which is also a literal). */
+ check = (guint8) pattern[0];
+ g_assert(check < VTE_TABLE_MAX_LITERAL);
+ if (table->table == NULL) {
+ table->table = _vte_table_literal_new();
+ subtable = _vte_table_new();
+ table->table[check] = subtable;
+ } else
+ if (table->table[check] == NULL) {
+ subtable = _vte_table_new();
+ table->table[check] = subtable;
+ } else {
+ subtable = table->table[check];
+ }
+
+ /* Add the rest of the string to the subtable. */
+ _vte_table_addi(subtable, original, original_length,
+ pattern + 1, length - 1,
+ result, quark, inc);
+}
+
+/* Add a string to the matching tree. */
+void
+_vte_table_add(struct _vte_table *table,
+ const char *pattern, gssize length,
+ const char *result, GQuark quark)
+{
+ _vte_table_addi(table,
+ (const unsigned char *) pattern, length,
+ pattern, length,
+ result, quark, 0);
+}
+
+/* Match a string in a subtree. */
+static const char *
+_vte_table_matchi(struct _vte_table *table,
+ const gunichar *candidate, gssize length,
+ const char **res, const gunichar **consumed, GQuark *quark,
+ unsigned char **original, gssize *original_length,
+ struct _vte_table_arginfo_head *params)
+{
+ int i = 0;
+ struct _vte_table *subtable = NULL;
+ struct _vte_table_arginfo *arginfo;
+
+ /* Check if this is a result node. */
+ if (table->result != NULL) {
+ *consumed = candidate;
+ *original = table->original;
+ *original_length = table->original_length;
+ *res = table->result;
+ *quark = table->resultq;
+ return table->result;
+ }
+
+ /* If we're out of data, but we still have children, return the empty
+ * string. */
+ if (G_UNLIKELY (length == 0)) {
+ *consumed = candidate;
+ return "";
+ }
+
+ /* Check if this node has a string disposition. */
+ if (table->table_string != NULL) {
+ /* Iterate over all non-terminator values. */
+ subtable = table->table_string;
+ for (i = 0; i < length; i++) {
+ if ((subtable->table != NULL) &&
+ (subtable->table[_vte_table_map_literal(candidate[i])] != NULL)) {
+ break;
+ }
+ }
+ /* Save the parameter info. */
+ arginfo = _vte_table_arginfo_alloc(params);
+ arginfo->type = _vte_table_arg_string;
+ arginfo->start = candidate;
+ arginfo->length = i;
+ /* Continue. */
+ return _vte_table_matchi(subtable, candidate + i, length - i,
+ res, consumed, quark,
+ original, original_length, params);
+ }
+
+ /* Check if this could be a list. */
+ if ((_vte_table_is_numeric_list(candidate[0])) &&
+ (table->table_number_list != NULL)) {
+ const char *local_result;
+
+ subtable = table->table_number_list;
+ /* Iterate over all numeric characters and ';'. */
+ for (i = 1; i < length; i++) {
+ if (!_vte_table_is_numeric_list(candidate[i])) {
+ break;
+ }
+ }
+ /* Save the parameter info. */
+ arginfo = _vte_table_arginfo_alloc(params);
+ arginfo->type = _vte_table_arg_number;
+ arginfo->start = candidate;
+ arginfo->length = i;
+
+ /* Try and continue. */
+ local_result = _vte_table_matchi(subtable,
+ candidate + i, length - i,
+ res, consumed, quark,
+ original, original_length,
+ params);
+ if (local_result != NULL) {
+ return local_result;
+ }
+ _vte_table_arginfo_head_revert (params, arginfo);
+
+ /* try again */
+ }
+
+ /* Check if this could be a number. */
+ if ((_vte_table_is_numeric(candidate[0])) &&
+ (table->table_number != NULL)) {
+ subtable = table->table_number;
+ /* Iterate over all numeric characters. */
+ for (i = 1; i < length; i++) {
+ if (!_vte_table_is_numeric(candidate[i])) {
+ break;
+ }
+ }
+ /* Save the parameter info. */
+ arginfo = _vte_table_arginfo_alloc(params);
+ arginfo->type = _vte_table_arg_number;
+ arginfo->start = candidate;
+ arginfo->length = i;
+ /* Continue. */
+ return _vte_table_matchi(subtable, candidate + i, length - i,
+ res, consumed, quark,
+ original, original_length, params);
+ }
+
+ /* Check for an exact match. */
+ if ((table->table != NULL) &&
+ (table->table[_vte_table_map_literal(candidate[0])] != NULL)) {
+ subtable = table->table[_vte_table_map_literal(candidate[0])];
+ /* Save the parameter info. */
+ arginfo = _vte_table_arginfo_alloc(params);
+ arginfo->type = _vte_table_arg_char;
+ arginfo->start = candidate;
+ arginfo->length = 1;
+ /* Continue. */
+ return _vte_table_matchi(subtable, candidate + 1, length - 1,
+ res, consumed, quark,
+ original, original_length, params);
+ }
+
+ /* If there's nothing else to do, then we can't go on. Keep track of
+ * where we are. */
+ *consumed = candidate;
+ return NULL;
+}
+
+static void
+_vte_table_extract_numbers(GValueArray **array,
+ struct _vte_table_arginfo *arginfo, long increment)
+{
+ GValue value = {0,};
+ gssize i;
+
+ g_value_init(&value, G_TYPE_LONG);
+ i = 0;
+ do {
+ long total = 0;
+ for (; i < arginfo->length && arginfo->start[i] != ';'; i++) {
+ gint v = g_unichar_digit_value (arginfo->start[i]);
+ total *= 10;
+ total += v == -1 ? 0 : v;
+ }
+ if (G_UNLIKELY (*array == NULL)) {
+ *array = g_value_array_new(1);
+ }
+ g_value_set_long(&value, total);
+ g_value_array_append(*array, &value);
+ } while (i++ < arginfo->length);
+ g_value_unset(&value);
+}
+
+static void
+_vte_table_extract_string(GValueArray **array,
+ struct _vte_table_arginfo *arginfo)
+{
+ GValue value = {0,};
+ gunichar *ptr;
+ guint i;
+
+ ptr = g_new(gunichar, arginfo->length + 1);
+ for (i = 0; i < arginfo->length; i++) {
+ ptr[i] = arginfo->start[i] & ~VTE_ISO2022_ENCODED_WIDTH_MASK;
+ }
+ ptr[i] = '\0';
+ g_value_init(&value, G_TYPE_POINTER);
+ g_value_set_pointer(&value, ptr);
+
+ if (G_UNLIKELY (*array == NULL)) {
+ *array = g_value_array_new(1);
+ }
+ g_value_array_append(*array, &value);
+ g_value_unset(&value);
+}
+
+static void
+_vte_table_extract_char(GValueArray **array,
+ struct _vte_table_arginfo *arginfo, long increment)
+{
+ GValue value = {0,};
+
+ g_value_init(&value, G_TYPE_LONG);
+ g_value_set_long(&value, *(arginfo->start) - increment);
+
+ if (G_UNLIKELY (*array == NULL)) {
+ *array = g_value_array_new(1);
+ }
+ g_value_array_append(*array, &value);
+ g_value_unset(&value);
+}
+
+/* Check if a string matches something in the tree. */
+const char *
+_vte_table_match(struct _vte_table *table,
+ const gunichar *candidate, gssize length,
+ const char **res, const gunichar **consumed,
+ GQuark *quark, GValueArray **array)
+{
+ struct _vte_table *head;
+ const gunichar *dummy_consumed;
+ const char *dummy_res;
+ GQuark dummy_quark;
+ GValueArray *dummy_array;
+ const char *ret;
+ unsigned char *original, *p;
+ gssize original_length;
+ long increment = 0;
+ int i;
+ struct _vte_table_arginfo_head params;
+ struct _vte_table_arginfo *arginfo;
+
+ /* Clean up extracted parameters. */
+ if (G_UNLIKELY (res == NULL)) {
+ res = &dummy_res;
+ }
+ *res = NULL;
+ if (G_UNLIKELY (consumed == NULL)) {
+ consumed = &dummy_consumed;
+ }
+ *consumed = candidate;
+ if (G_UNLIKELY (quark == NULL)) {
+ quark = &dummy_quark;
+ }
+ *quark = 0;
+ if (G_UNLIKELY (array == NULL)) {
+ dummy_array = NULL;
+ array = &dummy_array;
+ }
+
+ /* Provide a fast path for the usual "not a sequence" cases. */
+ if (G_LIKELY (length == 0 || candidate == NULL)) {
+ return NULL;
+ }
+
+ /* If there's no literal path, and no generic path, and the numeric
+ * path isn't available, then it's not a sequence, either. */
+ if (table->table == NULL ||
+ table->table[_vte_table_map_literal(candidate[0])] == NULL) {
+ if (table->table_string == NULL) {
+ if (table->table_number == NULL ||
+ !_vte_table_is_numeric(candidate[0])){
+ if (table->table_number_list == NULL ||
+ !_vte_table_is_numeric_list(candidate[0])){
+ /* No match. */
+ return NULL;
+ }
+ }
+ }
+ }
+
+ /* Check for a literal match. */
+ for (i = 0, head = table; i < length && head != NULL; i++) {
+ if (head->table == NULL) {
+ head = NULL;
+ } else {
+ head = head->table[_vte_table_map_literal(candidate[i])];
+ }
+ }
+ if (head != NULL && head->result != NULL) {
+ /* Got a literal match. */
+ *consumed = candidate + i;
+ *res = head->result;
+ *quark = head->resultq;
+ return *res;
+ }
+
+ _vte_table_arginfo_head_init (¶ms);
+
+ /* Check for a pattern match. */
+ ret = _vte_table_matchi(table, candidate, length,
+ res, consumed, quark,
+ &original, &original_length,
+ ¶ms);
+ *res = ret;
+
+ /* If we got a match, extract the parameters. */
+ if (ret != NULL && ret[0] != '\0' && array != &dummy_array) {
+ g_assert(original != NULL);
+ p = original;
+ arginfo = _vte_table_arginfo_head_reverse (¶ms);
+ do {
+ /* All of the interesting arguments begin with '%'. */
+ if (p[0] == '%') {
+ /* Handle an increment. */
+ if (p[1] == 'i') {
+ increment++;
+ p += 2;
+ continue;
+ }
+ /* Handle an escaped '%'. */
+ else if (p[1] == '%') {
+ p++;
+ }
+ /* Handle numeric parameters. */
+ else if ((p[1] == 'd') ||
+ (p[1] == '2') ||
+ (p[1] == '3') ||
+ (p[1] == 'm') ||
+ (p[1] == 'M')) {
+ _vte_table_extract_numbers(array,
+ arginfo,
+ increment);
+ p++;
+ }
+ /* Handle string parameters. */
+ else if (p[1] == 's') {
+ _vte_table_extract_string(array,
+ arginfo);
+ p++;
+ }
+ /* Handle a parameter character. */
+ else if (p[1] == '+') {
+ _vte_table_extract_char(array,
+ arginfo,
+ p[2]);
+ p += 2;
+ } else {
+ _vte_debug_print (VTE_DEBUG_PARSE,
+ "Invalid termcap sequence %s\n",
+ original);
+ }
+ } /* else Literal. */
+ arginfo = arginfo->next;
+ } while (++p < original + original_length && arginfo);
+ }
+
+ /* Clean up extracted parameters. */
+ _vte_table_arginfo_head_finalize (¶ms);
+
+ return ret;
+}
+
+static void
+_vte_table_printi(struct _vte_table *table, const char *lead, int *count)
+{
+ unsigned int i;
+ char *newlead = NULL;
+
+ (*count)++;
+
+ /* Result? */
+ if (table->result != NULL) {
+ g_printerr("%s = `%s'(%d)\n", lead,
+ table->result, table->increment);
+ }
+
+ /* Literal? */
+ for (i = 1; i < VTE_TABLE_MAX_LITERAL; i++) {
+ if ((table->table != NULL) && (table->table[i] != NULL)) {
+ if (i < 32) {
+ newlead = g_strdup_printf("%s^%c", lead,
+ i + 64);
+ } else {
+ newlead = g_strdup_printf("%s%c", lead, i);
+ }
+ _vte_table_printi(table->table[i], newlead, count);
+ g_free(newlead);
+ }
+ }
+
+ /* String? */
+ if (table->table_string != NULL) {
+ newlead = g_strdup_printf("%s{string}", lead);
+ _vte_table_printi(table->table_string,
+ newlead, count);
+ g_free(newlead);
+ }
+
+ /* Number(+)? */
+ if (table->table_number != NULL) {
+ newlead = g_strdup_printf("%s{number}", lead);
+ _vte_table_printi(table->table_number,
+ newlead, count);
+ g_free(newlead);
+ }
+}
+
+/* Dump out the contents of a tree. */
+void
+_vte_table_print(struct _vte_table *table)
+{
+ int count = 0;
+ _vte_table_printi(table, "", &count);
+ g_printerr("%d nodes = %ld bytes.\n",
+ count, (long) count * sizeof(struct _vte_table));
+}
+
+#ifdef TABLE_MAIN
+/* Return an escaped version of a string suitable for printing. */
+static char *
+escape(const char *p)
+{
+ char *tmp;
+ GString *ret;
+ int i;
+ guint8 check;
+ ret = g_string_new(NULL);
+ for (i = 0; p[i] != '\0'; i++) {
+ tmp = NULL;
+ check = p[i];
+ if (check < 32) {
+ tmp = g_strdup_printf("^%c", check + 64);
+ } else
+ if (check >= 0x80) {
+ tmp = g_strdup_printf("{0x%x}", check);
+ } else {
+ tmp = g_strdup_printf("%c", check);
+ }
+ g_string_append(ret, tmp);
+ g_free(tmp);
+ }
+ return g_string_free(ret, FALSE);
+}
+
+/* Spread out a narrow ASCII string into a wide-character string. */
+static gunichar *
+make_wide(const char *p)
+{
+ gunichar *ret;
+ guint8 check;
+ int i;
+ ret = g_malloc((strlen(p) + 1) * sizeof(gunichar));
+ for (i = 0; p[i] != 0; i++) {
+ check = (guint8) p[i];
+ g_assert(check < 0x80);
+ ret[i] = check;
+ }
+ ret[i] = '\0';
+ return ret;
+}
+
+/* Print the contents of a GValueArray. */
+static void
+print_array(GValueArray *array)
+{
+ int i;
+ GValue *value;
+ if (array != NULL) {
+ printf(" (");
+ for (i = 0; i < array->n_values; i++) {
+ value = g_value_array_get_nth(array, i);
+ if (i > 0) {
+ printf(", ");
+ }
+ if (G_VALUE_HOLDS_LONG(value)) {
+ printf("%ld", g_value_get_long(value));
+ } else
+ if (G_VALUE_HOLDS_STRING(value)) {
+ printf("\"%s\"", g_value_get_string(value));
+ } else
+ if (G_VALUE_HOLDS_POINTER(value)) {
+ printf("\"%ls\"",
+ (wchar_t*) g_value_get_pointer(value));
+ }
+ }
+ printf(")");
+ /* _vte_matcher_free_params_array(array); */
+ }
+}
+
+int
+main(int argc, char **argv)
+{
+ struct _vte_table *table;
+ int i;
+ const char *candidates[] = {
+ "ABCD",
+ "ABCDEF",
+ "]2;foo",
+ "]3;foo",
+ "]3;fook",
+ "[3;foo",
+ "[3;3m",
+ "[3;3mk",
+ "[3;3hk",
+ "[3;3h",
+ "]3;3h",
+ "[3;3k",
+ "[3;3kj",
+ "s",
+ };
+ const char *result, *p;
+ const gunichar *consumed;
+ char *tmp;
+ gunichar *candidate;
+ GQuark quark;
+ GValueArray *array;
+ g_type_init();
+ table = _vte_table_new();
+ _vte_table_add(table, "ABCDEFG", 7, "ABCDEFG", 0);
+ _vte_table_add(table, "ABCD", 4, "ABCD", 0);
+ _vte_table_add(table, "ABCDEFH", 7, "ABCDEFH", 0);
+ _vte_table_add(table, "ACDEFH", 6, "ACDEFH", 0);
+ _vte_table_add(table, "ACDEF%sJ", 8, "ACDEF%sJ", 0);
+ _vte_table_add(table, "ACDEF%i%mJ", 10, "ACDEF%dJ", 0);
+ _vte_table_add(table, "[%mh", 5, "move-cursor", 0);
+ _vte_table_add(table, "[%d;%d;%dm", 11, "set-graphic-rendition", 0);
+ _vte_table_add(table, "[%dm", 5, "set-graphic-rendition", 0);
+ _vte_table_add(table, "[m", 3, "set-graphic-rendition", 0);
+ _vte_table_add(table, "]3;%s", 7, "set-icon-title", 0);
+ _vte_table_add(table, "]4;%s", 7, "set-window-title", 0);
+ printf("Table contents:\n");
+ _vte_table_print(table);
+ printf("\nTable matches:\n");
+ for (i = 0; i < G_N_ELEMENTS(candidates); i++) {
+ p = candidates[i];
+ candidate = make_wide(p);
+ array = NULL;
+ _vte_table_match(table, candidate, strlen(p),
+ &result, &consumed, &quark, &array);
+ tmp = escape(p);
+ printf("`%s' => `%s'", tmp, (result ? result : "(NULL)"));
+ g_free(tmp);
+ print_array(array);
+ printf(" (%d chars)\n", (int) (consumed ? consumed - candidate: 0));
+ g_free(candidate);
+ }
+ _vte_table_free(table);
+ return 0;
+}
+#endif
+
+const struct _vte_matcher_class _vte_matcher_table = {
+ (_vte_matcher_create_func)_vte_table_new,
+ (_vte_matcher_add_func)_vte_table_add,
+ (_vte_matcher_print_func)_vte_table_print,
+ (_vte_matcher_match_func)_vte_table_match,
+ (_vte_matcher_destroy_func)_vte_table_free
+};
diff --git a/vte/src/table.h b/vte/src/table.h
new file mode 100644
index 0000000..31989f2
--- /dev/null
+++ b/vte/src/table.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_table_h_included
+#define vte_table_h_included
+
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+struct _vte_table;
+
+/* Create an empty, one-level table. */
+struct _vte_table *_vte_table_new(void);
+
+/* Free a table tree. */
+void _vte_table_free(struct _vte_table *table);
+
+/* Add a string to the matching tree. */
+void _vte_table_add(struct _vte_table *table,
+ const char *pattern, gssize length,
+ const char *result, GQuark quark);
+
+/* Check if a string matches something in the tree. */
+const char *_vte_table_match(struct _vte_table *table,
+ const gunichar *pattern, gssize length,
+ const char **res, const gunichar **consumed,
+ GQuark *quark, GValueArray **array);
+/* Dump out the contents of a tree. */
+void _vte_table_print(struct _vte_table *table);
+
+extern const struct _vte_matcher_class _vte_matcher_table;
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/trie.c b/vte/src/trie.c
new file mode 100644
index 0000000..7b40a35
--- /dev/null
+++ b/vte/src/trie.c
@@ -0,0 +1,1110 @@
+/*
+ * Copyright (C) 2001,2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#include <sys/types.h>
+#ifdef HAVE_SYS_SYSLIMITS_H
+#include <sys/syslimits.h>
+#endif
+#include <assert.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef HAVE_WCHAR_H
+#include <wchar.h>
+#endif
+#include <glib.h>
+#include <glib-object.h>
+#include "debug.h"
+#include "iso2022.h"
+#include "matcher.h"
+#include "trie.h"
+#include "vteconv.h"
+
+#ifndef HAVE_WINT_T
+typedef gunichar wint_t;
+#endif
+
+#include <glib/gi18n-lib.h>
+
+#ifndef TRIE_MAYBE_STATIC
+#define TRIE_MAYBE_STATIC
+#endif
+
+/* Structures and whatnot for tracking character classes. */
+struct char_class_data {
+ gunichar c; /* A character. */
+ int i; /* An integer. */
+ char *s; /* A string. */
+ int inc; /* An increment value. */
+};
+
+struct char_class {
+ enum cclass {
+ exact = 0, /* Not a special class. */
+ digit, /* Multiple-digit special class. */
+ multi, /* Multiple-number special class. */
+ any, /* Any single character. */
+ string, /* Any string of characters. */
+ invalid /* A placeholder. */
+ } type;
+ gboolean multiple; /* Whether a sequence of multiple
+ characters in this class should be
+ counted together. */
+ gunichar *code; /* A magic string that indicates this
+ class should be found here. */
+ gsize code_length;
+ gsize ccount; /* The maximum number of characters
+ after the format specifier to
+ consume. */
+ gboolean (*check)(const gunichar c, struct char_class_data *data);
+ /* Function to check if a character
+ is in this class. */
+ void (*setup)(const gunichar *s, struct char_class_data *data, int inc);
+ /* Setup the data struct for use in the
+ * above check function. */
+ gboolean (*extract)(const gunichar *s, gsize length,
+ struct char_class_data *data,
+ GValueArray *array);
+ /* Extract a parameter. */
+};
+
+/* A trie to hold control sequences. */
+struct _vte_trie {
+ struct _vte_matcher_impl impl;
+ const char *result; /* If this is a terminal node, then this
+ field contains its "value". */
+ GQuark quark; /* The quark for the value of the
+ result. */
+ gsize trie_path_count; /* Number of children of this node. */
+ struct trie_path {
+ struct char_class *cclass;
+ struct char_class_data data;
+ struct _vte_trie *trie; /* The child node corresponding to this
+ character. */
+ } *trie_paths;
+};
+
+/* Functions for checking if a particular character is part of a class, and
+ * for setting up a structure for use when determining matches. */
+static gboolean
+char_class_exact_check(gunichar c, struct char_class_data *data)
+{
+ return (c == data->c) ? TRUE : FALSE;
+}
+static void
+char_class_exact_setup(const gunichar *s, struct char_class_data *data, int inc)
+{
+ data->c = s[0];
+ return;
+}
+static void
+char_class_percent_setup(const gunichar *s, struct char_class_data *data,
+ int inc)
+{
+ data->c = '%';
+ return;
+}
+static gboolean
+char_class_none_extract(const gunichar *s, gsize length,
+ struct char_class_data *data, GValueArray *array)
+{
+ return FALSE;
+}
+
+static gboolean
+char_class_digit_check(gunichar c, struct char_class_data *data)
+{
+ switch (c) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ return TRUE;
+ default:
+ return FALSE;
+ }
+}
+static void
+char_class_digit_setup(const gunichar *s, struct char_class_data *data, int inc)
+{
+ data->inc = inc;
+ return;
+}
+static gboolean
+char_class_digit_extract(const gunichar *s, gsize length,
+ struct char_class_data *data, GValueArray *array)
+{
+ long ret = 0;
+ gsize i;
+ GValue value;
+ for (i = 0; i < length; i++) {
+ ret *= 10;
+ ret += g_unichar_digit_value(s[i]) == -1 ?
+ 0 : g_unichar_digit_value(s[i]);
+ }
+ memset(&value, 0, sizeof(value));
+ g_value_init(&value, G_TYPE_LONG);
+ g_value_set_long(&value, ret - data->inc);
+ g_value_array_append(array, &value);
+ g_value_unset(&value);
+ return TRUE;
+}
+
+static gboolean
+char_class_multi_check(gunichar c, struct char_class_data *data)
+{
+ switch (c) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ case ';':
+ return TRUE;
+ default:
+ return FALSE;
+ }
+}
+static void
+char_class_multi_setup(const gunichar *s, struct char_class_data *data, int inc)
+{
+ data->inc = inc;
+ return;
+}
+static gboolean
+char_class_multi_extract(const gunichar *s, gsize length,
+ struct char_class_data *data, GValueArray *array)
+{
+ long ret = 0;
+ gsize i;
+ GValue value;
+ memset(&value, 0, sizeof(value));
+ g_value_init(&value, G_TYPE_LONG);
+ for (i = 0; i < length; i++) {
+ if (s[i] == ';') {
+ g_value_set_long(&value, ret - data->inc);
+ g_value_array_append(array, &value);
+ ret = 0;
+ } else {
+ ret *= 10;
+ ret += (s[i] - '0');
+ }
+ }
+ g_value_set_long(&value, ret - data->inc);
+ g_value_array_append(array, &value);
+ g_value_unset(&value);
+ return TRUE;
+}
+
+static gboolean
+char_class_any_check(gunichar c, struct char_class_data *data)
+{
+ return (c >= data->c) ? TRUE : FALSE;
+}
+static void
+char_class_any_setup(const gunichar *s, struct char_class_data *data, int inc)
+{
+ data->c = s[0] + inc;
+ return;
+}
+static gboolean
+char_class_any_extract(const gunichar *s, gsize length,
+ struct char_class_data *data, GValueArray *array)
+{
+ long ret = 0;
+ GValue value;
+ ret = s[0] - data->c;
+ memset(&value, 0, sizeof(value));
+ g_value_init(&value, G_TYPE_LONG);
+ g_value_set_long(&value, ret - data->inc);
+ g_value_array_append(array, &value);
+ g_value_unset(&value);
+ return TRUE;
+}
+
+static gboolean
+char_class_string_check(gunichar c, struct char_class_data *data)
+{
+ return (c != data->c) ? TRUE : FALSE;
+}
+static void
+char_class_string_setup(const gunichar *s, struct char_class_data *data, int inc)
+{
+ data->c = s[0];
+ return;
+}
+static gsize
+unichar_snlen(const gunichar *s, gsize length)
+{
+ gsize i;
+ for (i = 0; i < length; i++) {
+ if (s[i] == '\0') {
+ return i;
+ }
+ }
+ return length;
+}
+static void
+unichar_sncpy(gunichar *d, const gunichar *s, gsize length)
+{
+ unsigned int i;
+ for (i = 0; i < length; i++) {
+ d[i] = s[i];
+ if (s[i] == 0) {
+ break;
+ }
+ }
+}
+static int
+unichar_sncmp(const gunichar *a, const gunichar *b, gsize length)
+{
+ gsize i;
+ for (i = 0; i < length; i++) {
+ if (a[i] != b[i]) {
+ return a[i] - b[i];
+ }
+ if (a[i] == 0) {
+ break;
+ }
+ }
+ return 0;
+}
+static gboolean
+char_class_string_extract(const gunichar *s, gsize length,
+ struct char_class_data *data, GValueArray *array)
+{
+ gunichar *ret = NULL;
+ gsize len;
+ gsize i;
+ GValue value;
+
+ len = unichar_snlen(s, length);
+ ret = g_malloc0((len + 1) * sizeof(gunichar));
+ unichar_sncpy(ret, s, len);
+ for (i = 0; i < len; i++) {
+ ret[i] &= ~(VTE_ISO2022_ENCODED_WIDTH_MASK);
+ }
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Extracting string `%ls'.\n", (wchar_t*) ret);
+ memset(&value, 0, sizeof(value));
+
+ g_value_init(&value, G_TYPE_POINTER);
+ g_value_set_pointer(&value, ret);
+ g_value_array_append(array, &value);
+ g_value_unset(&value);
+
+ return TRUE;
+}
+
+static gunichar empty_wstring[] = {'\0'};
+static gunichar digit_wstring1[] = {'%', '2', '\0'};
+static gunichar digit_wstring2[] = {'%', 'd', '\0'};
+static gunichar any_wstring[] = {'%', '+', '\0'};
+static gunichar exact_wstring[] = {'%', '%', '\0'};
+static gunichar string_wstring[] = {'%', 's', '\0'};
+static gunichar multi_wstring[] = {'%', 'm', '\0'};
+
+static struct char_class char_classes[] = {
+ {exact, FALSE, empty_wstring, 0, 1,
+ char_class_exact_check,
+ char_class_exact_setup,
+ char_class_none_extract},
+ {digit, TRUE, digit_wstring1, 2, 0,
+ char_class_digit_check,
+ char_class_digit_setup,
+ char_class_digit_extract},
+ {digit, TRUE, digit_wstring2, 2, 0,
+ char_class_digit_check,
+ char_class_digit_setup,
+ char_class_digit_extract},
+ {multi, TRUE, multi_wstring, 2, 0,
+ char_class_multi_check,
+ char_class_multi_setup,
+ char_class_multi_extract},
+ {any, FALSE, any_wstring, 2, 1,
+ char_class_any_check,
+ char_class_any_setup,
+ char_class_any_extract},
+ {exact, FALSE, exact_wstring, 2, 0,
+ char_class_exact_check,
+ char_class_percent_setup,
+ char_class_none_extract},
+ {string, TRUE, string_wstring, 2, 0,
+ char_class_string_check,
+ char_class_string_setup,
+ char_class_string_extract},
+};
+
+/* Create a new trie. */
+TRIE_MAYBE_STATIC struct _vte_trie *
+_vte_trie_new(void)
+{
+ struct _vte_trie *ret;
+ ret = g_slice_new0(struct _vte_trie);
+ ret->impl.klass = &_vte_matcher_trie;
+ return ret;
+}
+
+TRIE_MAYBE_STATIC void
+_vte_trie_free(struct _vte_trie *trie)
+{
+ unsigned int i;
+ for (i = 0; i < trie->trie_path_count; i++) {
+ _vte_trie_free(trie->trie_paths[i].trie);
+ }
+ if (trie->trie_path_count > 0) {
+ g_free(trie->trie_paths);
+ }
+ g_slice_free(struct _vte_trie, trie);
+}
+
+/* Add the given pattern, with its own result string, to the trie, with the
+ * given initial increment value. */
+static void
+_vte_trie_addx(struct _vte_trie *trie, gunichar *pattern, gsize length,
+ const char *result, GQuark quark, int inc)
+{
+ gsize i;
+ struct char_class *cclass = NULL;
+ struct char_class_data data;
+ gunichar *code;
+ gsize len = 0, ccount = 0;
+ gunichar inc_wstring[] = {'%', 'i', '\0'};
+
+ /* The trivial case -- we'll just set the result at this node. */
+ if (length == 0) {
+ if (trie->result == NULL) {
+ trie->quark = g_quark_from_string(result);
+ trie->result = g_quark_to_string(trie->quark);
+ } else {
+ _VTE_DEBUG_IF(VTE_DEBUG_PARSE)
+ g_warning(_("Duplicate (%s/%s)!"),
+ result, trie->result);
+ }
+ return;
+ }
+
+ /* If this part of the control sequence indicates incrementing a
+ * parameter, keep track of the incrementing, skip over the increment
+ * substring, and keep going. */
+ if ((length >= 2) && (unichar_sncmp(pattern, inc_wstring, 2) == 0)) {
+ _vte_trie_addx(trie, pattern + 2, length - 2,
+ result, quark, inc + 1);
+ return;
+ }
+
+ /* Now check for examples of character class specifiers, and use that
+ * to put this part of the pattern in a character class. */
+ for (i = G_N_ELEMENTS(char_classes); i--; ) {
+ len = char_classes[i].code_length;
+ code = char_classes[i].code;
+ ccount = char_classes[i].ccount;
+ if ((len <= length) && (unichar_sncmp(pattern, code, len) == 0)) {
+ cclass = &char_classes[i];
+ break;
+ }
+ }
+
+ /* Initialize the data item using the data we have here. */
+ memset(&data, 0, sizeof(data));
+ cclass->setup(pattern + len, &data, inc);
+
+ /* Hunt for a subtrie which matches this class / data pair. */
+ for (i = 0; i < trie->trie_path_count; i++) {
+ struct char_class_data *tdata;
+ tdata = &trie->trie_paths[i].data;
+ if ((trie->trie_paths[i].cclass == cclass) &&
+ (memcmp(&data, tdata, sizeof(data)) == 0)) {
+ /* It matches, so insert the rest of the pattern into
+ * this subtrie. */
+ _vte_trie_addx(trie->trie_paths[i].trie,
+ pattern + (len + ccount),
+ length - (len + ccount),
+ result,
+ quark,
+ inc);
+ return;
+ }
+ }
+
+ /* Add a new subtrie to contain the rest of this pattern. */
+ trie->trie_path_count++;
+ trie->trie_paths = g_realloc(trie->trie_paths,
+ trie->trie_path_count *
+ sizeof(trie->trie_paths[0]));
+ i = trie->trie_path_count - 1;
+ memset(&trie->trie_paths[i], 0, sizeof(trie->trie_paths[i]));
+ trie->trie_paths[i].trie = _vte_trie_new();
+ cclass->setup(pattern + len, &trie->trie_paths[i].data, inc);
+ trie->trie_paths[i].cclass = cclass;
+
+ /* Now insert the rest of the pattern into the node we just created. */
+ _vte_trie_addx(trie->trie_paths[i].trie,
+ pattern + (len + ccount),
+ length - (len + ccount),
+ result,
+ quark,
+ inc);
+}
+
+/* Add the given pattern, with its own result string, to the trie. */
+TRIE_MAYBE_STATIC void
+_vte_trie_add(struct _vte_trie *trie, const char *pattern, gsize length,
+ const char *result, GQuark quark)
+{
+ const guchar *tpattern;
+ guchar *wpattern, *wpattern_end;
+ VteConv conv;
+ gsize wlength;
+
+ g_return_if_fail(trie != NULL);
+ g_return_if_fail(pattern != NULL);
+ g_return_if_fail(length > 0);
+ g_return_if_fail(result != NULL);
+ if (quark == 0) {
+ quark = g_quark_from_string(result);
+ }
+
+ wlength = sizeof(gunichar) * (length + 1);
+ wpattern = wpattern_end = g_malloc0(wlength + 1);
+
+ conv = _vte_conv_open(VTE_CONV_GUNICHAR_TYPE, "UTF-8");
+ g_assert(conv != VTE_INVALID_CONV);
+
+ tpattern = (const guchar *)pattern;
+ _vte_conv(conv, &tpattern, &length, &wpattern_end, &wlength);
+ if (length == 0) {
+ wlength = (wpattern_end - wpattern) / sizeof(gunichar);
+ _vte_trie_addx(trie, (gunichar*)wpattern, wlength,
+ result, quark, 0);
+ }
+ _vte_conv_close(conv);
+
+ g_free(wpattern);
+}
+
+/* Check if the given pattern matches part of the given trie, returning an
+ * empty string on a partial initial match, a %NULL if there's no match in the
+ * works, and the result string if we have an exact match. */
+static const char *
+_vte_trie_matchx(struct _vte_trie *trie, const gunichar *pattern, gsize length,
+ gboolean greedy,
+ const char **res, const gunichar **consumed,
+ GQuark *quark, GValueArray *array)
+{
+ unsigned int i;
+ const char *hres;
+ enum cclass cc;
+ const char *best = NULL;
+ GValueArray *bestarray = NULL;
+ GQuark bestquark = 0;
+ const gunichar *bestconsumed = pattern;
+
+ /* Make sure that attempting to save output values doesn't kill us. */
+ if (res == NULL) {
+ res = &hres;
+ }
+
+ /* Trivial cases. We've matched an entire pattern, or we're out of
+ * pattern to match. */
+ if (trie->result != NULL) {
+ *res = trie->result;
+ *quark = trie->quark;
+ *consumed = pattern;
+ return *res;
+ }
+ if (length <= 0) {
+ if (trie->trie_path_count > 0) {
+ *res = "";
+ *quark = g_quark_from_static_string("");
+ *consumed = pattern;
+ return *res;
+ } else {
+ *res = NULL;
+ *quark = 0;
+ *consumed = pattern;
+ return *res;
+ }
+ }
+
+ /* Now figure out which (if any) subtrees to search. First, see
+ * which character class this character matches. */
+ for (cc = exact; cc < invalid; cc++)
+ for (i = 0; i < trie->trie_path_count; i++) {
+ struct _vte_trie *subtrie = trie->trie_paths[i].trie;
+ struct char_class *cclass = trie->trie_paths[i].cclass;
+ struct char_class_data *data = &trie->trie_paths[i].data;
+ if (trie->trie_paths[i].cclass->type == cc) {
+ /* If it matches this character class... */
+ if (cclass->check(pattern[0], data)) {
+ const gunichar *prospect = pattern + 1;
+ const char *tmp;
+ GQuark tmpquark = 0;
+ GValueArray *tmparray;
+ gboolean better = FALSE;
+ /* Move past characters which might match this
+ * part of the string... */
+ while (cclass->multiple &&
+ ((gsize)(prospect - pattern) < length) &&
+ cclass->check(prospect[0], data)) {
+ prospect++;
+ }
+ /* ... see if there's a parameter here, ... */
+ tmparray = g_value_array_new(0);
+ cclass->extract(pattern,
+ prospect - pattern,
+ data,
+ tmparray);
+ /* ... and check if the subtree matches the
+ * rest of the input string. Any parameters
+ * further on will be appended to the array. */
+ _vte_trie_matchx(subtrie,
+ prospect,
+ length - (prospect - pattern),
+ greedy,
+ &tmp,
+ consumed,
+ &tmpquark,
+ tmparray);
+ /* If we haven't seen any matches yet, go ahead
+ * and go by this result. */
+ if (best == NULL) {
+ better = TRUE;
+ } else
+ /* If we have a match, and we didn't have one
+ * already, go by this result. */
+ if ((best != NULL) &&
+ (best[0] == '\0') &&
+ (tmp != NULL) &&
+ (tmp[0] != '\0')) {
+ better = TRUE;
+ } else
+ /* If we already have a match, and this one's
+ * better (longer if we're greedy, shorter if
+ * we're not), then go by this result. */
+ if ((tmp != NULL) &&
+ (tmp[0] != '\0') &&
+ (bestconsumed != NULL) &&
+ (consumed != NULL) &&
+ (*consumed != NULL)) {
+ if (greedy &&
+ (bestconsumed < *consumed)) {
+ better = TRUE;
+ } else
+ if (!greedy &&
+ (bestconsumed > *consumed)) {
+ better = TRUE;
+ }
+ }
+ if (better) {
+ best = tmp;
+ if (bestarray != NULL) {
+ _vte_matcher_free_params_array(
+ NULL, bestarray);
+ }
+ bestarray = tmparray;
+ bestquark = tmpquark;
+ bestconsumed = *consumed;
+ } else {
+ _vte_matcher_free_params_array(
+ NULL, tmparray);
+ tmparray = NULL;
+ }
+ }
+ }
+ }
+
+ /* We're done searching. Copy out any parameters we picked up. */
+ if (bestarray != NULL) {
+ for (i = 0; i < bestarray->n_values; i++) {
+ GValue *value = g_value_array_get_nth(bestarray, i);
+ g_value_array_append(array, value);
+
+ if (G_VALUE_HOLDS_POINTER(value)) {
+ g_value_set_pointer(value, NULL);
+ }
+ }
+ _vte_matcher_free_params_array(NULL, bestarray);
+ }
+#if 0
+ printf("`%s' ", best);
+ dump_array(array);
+#endif
+ *quark = bestquark;
+ *res = best;
+ *consumed = bestconsumed;
+ return *res;
+}
+
+/* Check if the given pattern matches part of the given trie, returning an
+ * empty string on a partial initial match, a %NULL if there's no match in the
+ * works, and the result string if we have an exact match. */
+TRIE_MAYBE_STATIC const char *
+_vte_trie_match(struct _vte_trie *trie, const gunichar *pattern, gsize length,
+ const char **res, const gunichar **consumed,
+ GQuark *quark, GValueArray **array)
+{
+ const char *ret = NULL;
+ GQuark tmpquark;
+ GValueArray *valuearray;
+ GValue *value;
+ const gunichar *dummyconsumed;
+ gboolean greedy = FALSE;
+ guint i;
+
+ if (array != NULL && *array != NULL) {
+ valuearray = *array;
+ } else {
+ valuearray = g_value_array_new(0);
+ }
+ if (quark == NULL) {
+ quark = &tmpquark;
+ }
+ *quark = 0;
+
+ if (consumed == NULL) {
+ consumed = &dummyconsumed;
+ }
+ *consumed = pattern;
+
+ ret = _vte_trie_matchx(trie, pattern, length, greedy,
+ res, consumed, quark, valuearray);
+
+ if (((ret == NULL) || (ret[0] == '\0')) || (valuearray->n_values == 0)){
+ if (valuearray != NULL) {
+ for (i = 0; i < valuearray->n_values; i++) {
+ value = g_value_array_get_nth(valuearray, i);
+ if (G_VALUE_HOLDS_POINTER(value)) {
+ g_free(g_value_get_pointer(value));
+ g_value_set_pointer(value, NULL);
+ }
+ }
+ if (array == NULL || valuearray != *array) {
+ _vte_matcher_free_params_array(NULL, valuearray);
+ }
+ }
+ } else {
+ if (array == NULL) {
+ _vte_matcher_free_params_array(NULL, valuearray);
+ }
+ }
+
+ return ret;
+}
+
+/* Print the next layer of the trie, indented by length spaces. */
+static void
+_vte_trie_printx(struct _vte_trie *trie, const char *previous,
+ gsize *nodecount)
+{
+ unsigned int i;
+ char buf[LINE_MAX];
+
+ if ((nodecount) && (trie->trie_path_count > 0)) {
+ (*nodecount)++;
+ }
+
+ for (i = 0; i < trie->trie_path_count; i++) {
+ memset(buf, '\0', sizeof(buf));
+ snprintf(buf, sizeof(buf), "%s", previous);
+ switch (trie->trie_paths[i].cclass->type) {
+ case exact:
+ if (trie->trie_paths[i].data.c < 32) {
+ snprintf(buf + strlen(buf),
+ sizeof(buf) - strlen(buf),
+ "^%lc",
+ (wint_t)trie->trie_paths[i].data.c +
+ 64);
+ } else
+ if (trie->trie_paths[i].data.c > 126) {
+ snprintf(buf + strlen(buf),
+ sizeof(buf) - strlen(buf),
+ "[:%ld:]",
+ (long)trie->trie_paths[i].data.c);
+ } else {
+ snprintf(buf + strlen(buf),
+ sizeof(buf) - strlen(buf),
+ "%lc",
+ (wint_t)trie->trie_paths[i].data.c);
+ }
+ break;
+ case digit:
+ snprintf(buf + strlen(buf),
+ sizeof(buf) - strlen(buf),
+ "{num+%d}",
+ trie->trie_paths[i].data.inc);
+ break;
+ case multi:
+ snprintf(buf + strlen(buf),
+ sizeof(buf) - strlen(buf),
+ "{multinum+%d}",
+ trie->trie_paths[i].data.inc);
+ break;
+ case any:
+ if (trie->trie_paths[i].data.c < 32) {
+ snprintf(buf + strlen(buf),
+ sizeof(buf) - strlen(buf),
+ "{char+0x%02lx}",
+ (long)trie->trie_paths[i].data.c);
+ } else {
+ snprintf(buf + strlen(buf),
+ sizeof(buf) - strlen(buf),
+ "{char+`%lc'}",
+ (wint_t)trie->trie_paths[i].data.c);
+ }
+ break;
+ case string:
+ snprintf(buf + strlen(buf),
+ sizeof(buf) - strlen(buf),
+ "{string}");
+ break;
+ case invalid:
+ break;
+ }
+ if (trie->trie_paths[i].trie->result != NULL) {
+ printf("%s = `%s'\n", buf,
+ trie->trie_paths[i].trie->result);
+ }
+ _vte_trie_printx(trie->trie_paths[i].trie, buf, nodecount);
+ }
+}
+
+/* Print the trie. */
+TRIE_MAYBE_STATIC void
+_vte_trie_print(struct _vte_trie *trie)
+{
+ gsize nodecount = 0;
+ _vte_trie_printx(trie, "", &nodecount);
+ printf("Trie has %ld nodes.\n", (long) nodecount);
+}
+
+#ifdef TRIE_MAIN
+static void
+dump_array(GValueArray *array)
+{
+ unsigned int i;
+ if (array != NULL) {
+ printf("args = {");
+ for (i = 0; i < array->n_values; i++) {
+ GValue *value;
+ value = g_value_array_get_nth(array, i);
+ if (i > 0) {
+ printf(", ");
+ }
+ if (G_VALUE_HOLDS_LONG(value)) {
+ printf("%ld", g_value_get_long(value));
+ }
+ if (G_VALUE_HOLDS_STRING(value)) {
+ printf("`%s'", g_value_get_string(value));
+ }
+ if (G_VALUE_HOLDS_POINTER(value)) {
+ printf("`%ls'",
+ (wchar_t*) g_value_get_pointer(value));
+ }
+ }
+ printf("}\n");
+ }
+}
+
+static void
+convert_mbstowcs(const char *i, gsize ilen,
+ gunichar *o, gsize *olen, gsize max_olen)
+{
+ VteConv conv;
+ gsize outlen;
+ conv = _vte_conv_open(VTE_CONV_GUNICHAR_TYPE, "UTF-8");
+ g_assert(conv != VTE_INVALID_CONV);
+
+ memset(o, 0, max_olen);
+ outlen = max_olen;
+ _vte_conv_cu(conv, (char**)&i, &ilen, &o, &outlen);
+ _vte_conv_close(conv);
+
+ *olen = (max_olen - outlen) / sizeof(gunichar);
+}
+
+int
+main(int argc, char **argv)
+{
+ struct _vte_trie *trie;
+ GValueArray *array = NULL;
+ GQuark quark;
+ gunichar buf[LINE_MAX];
+ const gunichar *consumed;
+ gsize buflen;
+
+ _vte_debug_init();
+
+ g_type_init();
+ trie = _vte_trie_new();
+
+ _vte_trie_add(trie, "abcdef", 6, "abcdef",
+ g_quark_from_static_string("abcdef"));
+ _vte_trie_add(trie, "abcde", 5, "abcde",
+ g_quark_from_static_string("abcde"));
+ _vte_trie_add(trie, "abcdeg", 6, "abcdeg",
+ g_quark_from_static_string("abcdeg"));
+ _vte_trie_add(trie, "abc%+Aeg", 8, "abc%+Aeg",
+ g_quark_from_static_string("abc%+Aeg"));
+ _vte_trie_add(trie, "abc%deg", 7, "abc%deg",
+ g_quark_from_static_string("abc%deg"));
+ _vte_trie_add(trie, "abc%%eg", 7, "abc%%eg",
+ g_quark_from_static_string("abc%%eg"));
+ _vte_trie_add(trie, "abc%%%i%deg", 11, "abc%%%i%deg",
+ g_quark_from_static_string("abc%%%i%deg"));
+ _vte_trie_add(trie, "<esc>[%i%d;%dH", 14, "vtmatch",
+ g_quark_from_static_string("vtmatch"));
+ _vte_trie_add(trie, "<esc>[%i%mL", 11, "multimatch",
+ g_quark_from_static_string("multimatch"));
+ _vte_trie_add(trie, "<esc>[%mL<esc>[%mL", 18, "greedy",
+ g_quark_from_static_string("greedy"));
+ _vte_trie_add(trie, "<esc>]2;%sh", 11, "decset-title",
+ g_quark_from_static_string("decset-title"));
+
+ printf("Wide encoding is `%s'.\n", VTE_CONV_GUNICHAR_TYPE);
+
+ _vte_trie_print(trie);
+ printf("\n");
+
+ quark = 0;
+ convert_mbstowcs("abc", 3, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "abc",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abcdef", 6, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "abcdef",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abcde", 5, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "abcde",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abcdeg", 6, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "abcdeg",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abc%deg", 7, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "abc%deg",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abc10eg", 7, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "abc10eg",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abc%eg", 6, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "abc%eg",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abc%10eg", 8, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "abc%10eg",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abcBeg", 6, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "abcBeg",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>[25;26H", 12, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "<esc>[25;26H",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>[25;2", 10, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "<esc>[25;2",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>[25L", 9, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "<esc>[25L",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>[25L<esc>[24L", 18, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "<esc>[25L<esc>[24L",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>[25;26L", 12, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "<esc>[25;26L",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>]2;WoofWoofh", 17, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "<esc>]2;WoofWoofh",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>]2;WoofWoofh<esc>]2;WoofWoofh", 34,
+ buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "<esc>]2;WoofWoofh<esc>]2;WoofWoofh",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>]2;WoofWoofhfoo", 20, buf, &buflen, sizeof(buf));
+ printf("`%s' = `%s'\n", "<esc>]2;WoofWoofhfoo",
+ _vte_trie_match(trie, buf, buflen,
+ NULL, &consumed, &quark, &array));
+ printf("=> `%s' (%d)\n", g_quark_to_string(quark), (int)(consumed - buf));
+ if (array != NULL) {
+ dump_array(array);
+ _vte_matcher_free_params_array(NULL, array);
+ array = NULL;
+ }
+
+ _vte_trie_free(trie);
+
+ return 0;
+}
+#endif
+
+const struct _vte_matcher_class _vte_matcher_trie = {
+ (_vte_matcher_create_func)_vte_trie_new,
+ (_vte_matcher_add_func)_vte_trie_add,
+ (_vte_matcher_print_func)_vte_trie_print,
+ (_vte_matcher_match_func)_vte_trie_match,
+ (_vte_matcher_destroy_func)_vte_trie_free
+};
diff --git a/vte/src/trie.h b/vte/src/trie.h
new file mode 100644
index 0000000..3e23c2c
--- /dev/null
+++ b/vte/src/trie.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2001,2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_trie_h_included
+#define vte_trie_h_included
+
+
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+struct _vte_trie;
+
+/* Create a new trie structure. */
+struct _vte_trie *_vte_trie_new(void);
+
+/* Free a trie structure. */
+void _vte_trie_free(struct _vte_trie *trie);
+
+/* Add a string to the trie, along with its associated result and an optional
+ * Quark to store with it. */
+void _vte_trie_add(struct _vte_trie *trie,
+ const char *pattern, size_t length,
+ const char *result, GQuark quark);
+
+/* See if a given pattern of a given length is in the trie. The result is
+ * returned both as the result of the function, and in the pointer res (if
+ * res is not NULL). The associated quark is also stored in "quark". If
+ * the string could be the initial portion of some sequence in the trie, the
+ * empty string is returned for the answer. If no match is found, and the
+ * passed-in string can not be an initial substring of one of the strings in
+ * the trie, then NULL is returned. */
+const char *_vte_trie_match(struct _vte_trie *trie,
+ const gunichar *pattern, size_t length,
+ const char **res,
+ const gunichar **consumed,
+ GQuark *quark,
+ GValueArray **array);
+
+/* Print the contents of the trie (mainly for diagnostic purposes). */
+void _vte_trie_print(struct _vte_trie *trie);
+
+extern const struct _vte_matcher_class _vte_matcher_trie;
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/unitable.CNS11643 b/vte/src/unitable.CNS11643
new file mode 100644
index 0000000..425e756
--- /dev/null
+++ b/vte/src/unitable.CNS11643
@@ -0,0 +1,17712 @@
+ /* generated file -- do not edit */
+ {0x12121, 0x3000},
+ {0x12122, 0xFF0C},
+ {0x12123, 0x3001},
+ {0x12124, 0x3002},
+ {0x12125, 0xFF0E},
+ {0x12126, 0x30FB},
+ {0x12127, 0xFF1B},
+ {0x12128, 0xFF1A},
+ {0x12129, 0xFF1F},
+ {0x1212A, 0xFF01},
+ {0x1212B, 0xFE30},
+ {0x1212C, 0x2026},
+ {0x1212D, 0x2025},
+ {0x1212E, 0xFE50},
+ {0x1212F, 0xFE51},
+ {0x12130, 0xFE52},
+ {0x12131, 0x00B7},
+ {0x12132, 0xFE54},
+ {0x12133, 0xFE55},
+ {0x12134, 0xFE56},
+ {0x12135, 0xFE57},
+ {0x12136, 0xFE31},
+ {0x12137, 0x2014},
+ {0x12138, 0xFE32},
+ {0x12139, 0x2013},
+ {0x1213E, 0xFF08},
+ {0x1213F, 0xFF09},
+ {0x12140, 0xFE35},
+ {0x12141, 0xFE36},
+ {0x12142, 0xFF5B},
+ {0x12143, 0xFF5D},
+ {0x12144, 0xFE37},
+ {0x12145, 0xFE38},
+ {0x12146, 0x3014},
+ {0x12147, 0x3015},
+ {0x12148, 0xFE39},
+ {0x12149, 0xFE3A},
+ {0x1214A, 0x3010},
+ {0x1214B, 0x3011},
+ {0x1214C, 0xFE3B},
+ {0x1214D, 0xFE3C},
+ {0x1214E, 0x300A},
+ {0x1214F, 0x300B},
+ {0x12150, 0xFE3D},
+ {0x12151, 0xFE3E},
+ {0x12152, 0x3008},
+ {0x12153, 0x3009},
+ {0x12154, 0xFE3F},
+ {0x12155, 0xFE40},
+ {0x12156, 0x300C},
+ {0x12157, 0x300D},
+ {0x12158, 0xFE41},
+ {0x12159, 0xFE42},
+ {0x1215A, 0x300E},
+ {0x1215B, 0x300F},
+ {0x1215C, 0xFE43},
+ {0x1215D, 0xFE44},
+ {0x1215E, 0xFE59},
+ {0x1215F, 0xFE5A},
+ {0x12160, 0xFE5B},
+ {0x12161, 0xFE5C},
+ {0x12162, 0xFE5D},
+ {0x12163, 0xFE5E},
+ {0x12164, 0x2018},
+ {0x12165, 0x2019},
+ {0x12166, 0x201C},
+ {0x12167, 0x201D},
+ {0x12168, 0x301D},
+ {0x12169, 0x301E},
+ {0x1216A, 0x2032},
+ {0x1216B, 0x2035},
+ {0x1216C, 0xFF03},
+ {0x1216D, 0xFF06},
+ {0x1216E, 0xFF0A},
+ {0x1216F, 0x203B},
+ {0x12170, 0x00A7},
+ {0x12171, 0x3003},
+ {0x12172, 0x25CB},
+ {0x12173, 0x25CF},
+ {0x12174, 0x25B3},
+ {0x12175, 0x25B2},
+ {0x12176, 0x25CE},
+ {0x12177, 0x2606},
+ {0x12178, 0x2605},
+ {0x12179, 0x25C7},
+ {0x1217A, 0x25C6},
+ {0x1217B, 0x25A1},
+ {0x1217C, 0x25A0},
+ {0x1217D, 0x25BD},
+ {0x1217E, 0x25BC},
+ {0x12221, 0x32A3},
+ {0x12222, 0x2105},
+ {0x12223, 0x203E},
+ {0x12225, 0xFF3F},
+ {0x12227, 0xFE49},
+ {0x12228, 0xFE4A},
+ {0x12229, 0xFE4D},
+ {0x1222A, 0xFE4E},
+ {0x1222B, 0xFE4B},
+ {0x1222C, 0xFE4C},
+ {0x1222D, 0xFE5F},
+ {0x1222E, 0xFE60},
+ {0x1222F, 0xFE61},
+ {0x12230, 0xFF0B},
+ {0x12231, 0xFF0D},
+ {0x12232, 0x00D7},
+ {0x12233, 0x00F7},
+ {0x12234, 0x00B1},
+ {0x12235, 0x221A},
+ {0x12236, 0xFF1C},
+ {0x12237, 0xFF1E},
+ {0x12238, 0xFF1D},
+ {0x12239, 0x2266},
+ {0x1223A, 0x2267},
+ {0x1223B, 0x2260},
+ {0x1223C, 0x221E},
+ {0x1223D, 0x2252},
+ {0x1223E, 0x2261},
+ {0x1223F, 0xFE62},
+ {0x12240, 0xFE63},
+ {0x12241, 0xFE64},
+ {0x12242, 0xFE66},
+ {0x12243, 0xFE65},
+ {0x12244, 0x223C},
+ {0x12245, 0x2229},
+ {0x12246, 0x222A},
+ {0x12247, 0x22A5},
+ {0x12248, 0x2220},
+ {0x12249, 0x221F},
+ {0x1224A, 0x22BF},
+ {0x1224B, 0x33D2},
+ {0x1224C, 0x33D1},
+ {0x1224D, 0x222B},
+ {0x1224E, 0x222E},
+ {0x1224F, 0x2235},
+ {0x12250, 0x2234},
+ {0x12251, 0x2640},
+ {0x12252, 0x2642},
+ {0x12253, 0x2641},
+ {0x12254, 0x2609},
+ {0x12255, 0x2191},
+ {0x12256, 0x2193},
+ {0x12257, 0x2192},
+ {0x12258, 0x2190},
+ {0x12259, 0x2196},
+ {0x1225A, 0x2197},
+ {0x1225B, 0x2199},
+ {0x1225C, 0x2198},
+ {0x1225D, 0x2016},
+ {0x1225E, 0xFF5C},
+ {0x1225F, 0xFF0F},
+ {0x12260, 0xFF3C},
+ {0x12261, 0x2215},
+ {0x12262, 0xFE68},
+ {0x12263, 0xFF04},
+ {0x12264, 0xFFE5},
+ {0x12265, 0x3012},
+ {0x12266, 0xFFE0},
+ {0x12267, 0xFFE1},
+ {0x12268, 0xFF05},
+ {0x12269, 0xFF20},
+ {0x1226A, 0x2103},
+ {0x1226B, 0x2109},
+ {0x1226C, 0xFE69},
+ {0x1226D, 0xFE6A},
+ {0x1226E, 0xFE6B},
+ {0x1226F, 0x33D5},
+ {0x12270, 0x339C},
+ {0x12271, 0x339D},
+ {0x12272, 0x339E},
+ {0x12273, 0x33CE},
+ {0x12274, 0x33A1},
+ {0x12275, 0x338E},
+ {0x12276, 0x338F},
+ {0x12277, 0x33C4},
+ {0x12278, 0x00B0},
+ {0x12279, 0x5159},
+ {0x1227A, 0x515B},
+ {0x1227B, 0x515E},
+ {0x1227C, 0x515D},
+ {0x1227D, 0x5161},
+ {0x1227E, 0x5163},
+ {0x12321, 0x55E7},
+ {0x12322, 0x74E9},
+ {0x12323, 0x7CCE},
+ {0x12324, 0x2581},
+ {0x12325, 0x2582},
+ {0x12326, 0x2583},
+ {0x12327, 0x2584},
+ {0x12328, 0x2585},
+ {0x12329, 0x2586},
+ {0x1232A, 0x2587},
+ {0x1232B, 0x2588},
+ {0x1232C, 0x258F},
+ {0x1232D, 0x258E},
+ {0x1232E, 0x258D},
+ {0x1232F, 0x258C},
+ {0x12330, 0x258B},
+ {0x12331, 0x258A},
+ {0x12332, 0x2589},
+ {0x12333, 0x253C},
+ {0x12334, 0x2534},
+ {0x12335, 0x252C},
+ {0x12336, 0x2524},
+ {0x12337, 0x251C},
+ {0x12338, 0x2594},
+ {0x12339, 0x2500},
+ {0x1233A, 0x2502},
+ {0x1233B, 0x2595},
+ {0x1233C, 0x250C},
+ {0x1233D, 0x2510},
+ {0x1233E, 0x2514},
+ {0x1233F, 0x2518},
+ {0x12340, 0x256D},
+ {0x12341, 0x256E},
+ {0x12342, 0x2570},
+ {0x12343, 0x256F},
+ {0x12344, 0x2550},
+ {0x12345, 0x255E},
+ {0x12346, 0x256A},
+ {0x12347, 0x2561},
+ {0x12348, 0x25E2},
+ {0x12349, 0x25E3},
+ {0x1234A, 0x25E5},
+ {0x1234B, 0x25E4},
+ {0x1234C, 0x2571},
+ {0x1234D, 0x2572},
+ {0x1234E, 0x2573},
+ {0x12421, 0xFF10},
+ {0x12422, 0xFF11},
+ {0x12423, 0xFF12},
+ {0x12424, 0xFF13},
+ {0x12425, 0xFF14},
+ {0x12426, 0xFF15},
+ {0x12427, 0xFF16},
+ {0x12428, 0xFF17},
+ {0x12429, 0xFF18},
+ {0x1242A, 0xFF19},
+ {0x1242B, 0x2160},
+ {0x1242C, 0x2161},
+ {0x1242D, 0x2162},
+ {0x1242E, 0x2163},
+ {0x1242F, 0x2164},
+ {0x12430, 0x2165},
+ {0x12431, 0x2166},
+ {0x12432, 0x2167},
+ {0x12433, 0x2168},
+ {0x12434, 0x2169},
+ {0x12435, 0x3021},
+ {0x12436, 0x3022},
+ {0x12437, 0x3023},
+ {0x12438, 0x3024},
+ {0x12439, 0x3025},
+ {0x1243A, 0x3026},
+ {0x1243B, 0x3027},
+ {0x1243C, 0x3028},
+ {0x1243D, 0x3029},
+ {0x1243F, 0x5344},
+ {0x12441, 0xFF21},
+ {0x12442, 0xFF22},
+ {0x12443, 0xFF23},
+ {0x12444, 0xFF24},
+ {0x12445, 0xFF25},
+ {0x12446, 0xFF26},
+ {0x12447, 0xFF27},
+ {0x12448, 0xFF28},
+ {0x12449, 0xFF29},
+ {0x1244A, 0xFF2A},
+ {0x1244B, 0xFF2B},
+ {0x1244C, 0xFF2C},
+ {0x1244D, 0xFF2D},
+ {0x1244E, 0xFF2E},
+ {0x1244F, 0xFF2F},
+ {0x12450, 0xFF30},
+ {0x12451, 0xFF31},
+ {0x12452, 0xFF32},
+ {0x12453, 0xFF33},
+ {0x12454, 0xFF34},
+ {0x12455, 0xFF35},
+ {0x12456, 0xFF36},
+ {0x12457, 0xFF37},
+ {0x12458, 0xFF38},
+ {0x12459, 0xFF39},
+ {0x1245A, 0xFF3A},
+ {0x1245B, 0xFF41},
+ {0x1245C, 0xFF42},
+ {0x1245D, 0xFF43},
+ {0x1245E, 0xFF44},
+ {0x1245F, 0xFF45},
+ {0x12460, 0xFF46},
+ {0x12461, 0xFF47},
+ {0x12462, 0xFF48},
+ {0x12463, 0xFF49},
+ {0x12464, 0xFF4A},
+ {0x12465, 0xFF4B},
+ {0x12466, 0xFF4C},
+ {0x12467, 0xFF4D},
+ {0x12468, 0xFF4E},
+ {0x12469, 0xFF4F},
+ {0x1246A, 0xFF50},
+ {0x1246B, 0xFF51},
+ {0x1246C, 0xFF52},
+ {0x1246D, 0xFF53},
+ {0x1246E, 0xFF54},
+ {0x1246F, 0xFF55},
+ {0x12470, 0xFF56},
+ {0x12471, 0xFF57},
+ {0x12472, 0xFF58},
+ {0x12473, 0xFF59},
+ {0x12474, 0xFF5A},
+ {0x12475, 0x0391},
+ {0x12476, 0x0392},
+ {0x12477, 0x0393},
+ {0x12478, 0x0394},
+ {0x12479, 0x0395},
+ {0x1247A, 0x0396},
+ {0x1247B, 0x0397},
+ {0x1247C, 0x0398},
+ {0x1247D, 0x0399},
+ {0x1247E, 0x039A},
+ {0x12521, 0x039B},
+ {0x12522, 0x039C},
+ {0x12523, 0x039D},
+ {0x12524, 0x039E},
+ {0x12525, 0x039F},
+ {0x12526, 0x03A0},
+ {0x12527, 0x03A1},
+ {0x12528, 0x03A3},
+ {0x12529, 0x03A4},
+ {0x1252A, 0x03A5},
+ {0x1252B, 0x03A6},
+ {0x1252C, 0x03A7},
+ {0x1252D, 0x03A8},
+ {0x1252E, 0x03A9},
+ {0x1252F, 0x03B1},
+ {0x12530, 0x03B2},
+ {0x12531, 0x03B3},
+ {0x12532, 0x03B4},
+ {0x12533, 0x03B5},
+ {0x12534, 0x03B6},
+ {0x12535, 0x03B7},
+ {0x12536, 0x03B8},
+ {0x12537, 0x03B9},
+ {0x12538, 0x03BA},
+ {0x12539, 0x03BB},
+ {0x1253A, 0x03BC},
+ {0x1253B, 0x03BD},
+ {0x1253C, 0x03BE},
+ {0x1253D, 0x03BF},
+ {0x1253E, 0x03C0},
+ {0x1253F, 0x03C1},
+ {0x12540, 0x03C3},
+ {0x12541, 0x03C4},
+ {0x12542, 0x03C5},
+ {0x12543, 0x03C6},
+ {0x12544, 0x03C7},
+ {0x12545, 0x03C8},
+ {0x12546, 0x03C9},
+ {0x12547, 0x3105},
+ {0x12548, 0x3106},
+ {0x12549, 0x3107},
+ {0x1254A, 0x3108},
+ {0x1254B, 0x3109},
+ {0x1254C, 0x310A},
+ {0x1254D, 0x310B},
+ {0x1254E, 0x310C},
+ {0x1254F, 0x310D},
+ {0x12550, 0x310E},
+ {0x12551, 0x310F},
+ {0x12552, 0x3110},
+ {0x12553, 0x3111},
+ {0x12554, 0x3112},
+ {0x12555, 0x3113},
+ {0x12556, 0x3114},
+ {0x12557, 0x3115},
+ {0x12558, 0x3116},
+ {0x12559, 0x3117},
+ {0x1255A, 0x3118},
+ {0x1255B, 0x3119},
+ {0x1255C, 0x311A},
+ {0x1255D, 0x311B},
+ {0x1255E, 0x311C},
+ {0x1255F, 0x311D},
+ {0x12560, 0x311E},
+ {0x12561, 0x311F},
+ {0x12562, 0x3120},
+ {0x12563, 0x3121},
+ {0x12564, 0x3122},
+ {0x12565, 0x3123},
+ {0x12566, 0x3124},
+ {0x12567, 0x3125},
+ {0x12568, 0x3126},
+ {0x12569, 0x3127},
+ {0x1256A, 0x3128},
+ {0x1256B, 0x3129},
+ {0x1256C, 0x02D9},
+ {0x1256D, 0x02C9},
+ {0x1256E, 0x02CA},
+ {0x1256F, 0x02C7},
+ {0x12570, 0x02CB},
+ {0x12621, 0x2460},
+ {0x12622, 0x2461},
+ {0x12623, 0x2462},
+ {0x12624, 0x2463},
+ {0x12625, 0x2464},
+ {0x12626, 0x2465},
+ {0x12627, 0x2466},
+ {0x12628, 0x2467},
+ {0x12629, 0x2468},
+ {0x1262A, 0x2469},
+ {0x1262B, 0x2474},
+ {0x1262C, 0x2475},
+ {0x1262D, 0x2476},
+ {0x1262E, 0x2477},
+ {0x1262F, 0x2478},
+ {0x12630, 0x2479},
+ {0x12631, 0x247A},
+ {0x12632, 0x247B},
+ {0x12633, 0x247C},
+ {0x12634, 0x247D},
+ {0x12635, 0x2170},
+ {0x12636, 0x2171},
+ {0x12637, 0x2172},
+ {0x12638, 0x2173},
+ {0x12639, 0x2174},
+ {0x1263A, 0x2175},
+ {0x1263B, 0x2176},
+ {0x1263C, 0x2177},
+ {0x1263D, 0x2178},
+ {0x1263E, 0x2179},
+ {0x14221, 0x2400},
+ {0x14222, 0x2401},
+ {0x14223, 0x2402},
+ {0x14224, 0x2403},
+ {0x14225, 0x2404},
+ {0x14226, 0x2405},
+ {0x14227, 0x2406},
+ {0x14228, 0x2407},
+ {0x14229, 0x2408},
+ {0x1422A, 0x2409},
+ {0x1422B, 0x240A},
+ {0x1422C, 0x240B},
+ {0x1422D, 0x240C},
+ {0x1422E, 0x240D},
+ {0x1422F, 0x240E},
+ {0x14230, 0x240F},
+ {0x14231, 0x2410},
+ {0x14232, 0x2411},
+ {0x14233, 0x2412},
+ {0x14234, 0x2413},
+ {0x14235, 0x2414},
+ {0x14236, 0x2415},
+ {0x14237, 0x2416},
+ {0x14238, 0x2417},
+ {0x14239, 0x2418},
+ {0x1423A, 0x2419},
+ {0x1423B, 0x241A},
+ {0x1423C, 0x241B},
+ {0x1423D, 0x241C},
+ {0x1423E, 0x241D},
+ {0x1423F, 0x241E},
+ {0x14240, 0x241F},
+ {0x14241, 0x2421},
+ {0x14421, 0x4E00},
+ {0x14422, 0x4E59},
+ {0x14423, 0x4E01},
+ {0x14424, 0x4E03},
+ {0x14425, 0x4E43},
+ {0x14426, 0x4E5D},
+ {0x14427, 0x4E86},
+ {0x14428, 0x4E8C},
+ {0x14429, 0x4EBA},
+ {0x1442A, 0x513F},
+ {0x1442B, 0x5165},
+ {0x1442C, 0x516B},
+ {0x1442D, 0x51E0},
+ {0x1442E, 0x5200},
+ {0x1442F, 0x5201},
+ {0x14430, 0x529B},
+ {0x14431, 0x5315},
+ {0x14432, 0x5341},
+ {0x14433, 0x535C},
+ {0x14434, 0x53C8},
+ {0x14435, 0x4E09},
+ {0x14436, 0x4E0B},
+ {0x14437, 0x4E08},
+ {0x14438, 0x4E0A},
+ {0x14439, 0x4E2B},
+ {0x1443A, 0x4E38},
+ {0x1443B, 0x51E1},
+ {0x1443C, 0x4E45},
+ {0x1443D, 0x4E48},
+ {0x1443E, 0x4E5F},
+ {0x1443F, 0x4E5E},
+ {0x14440, 0x4E8E},
+ {0x14441, 0x4EA1},
+ {0x14442, 0x5140},
+ {0x14443, 0x5203},
+ {0x14444, 0x52FA},
+ {0x14445, 0x5343},
+ {0x14446, 0x53C9},
+ {0x14447, 0x53E3},
+ {0x14448, 0x571F},
+ {0x14449, 0x58EB},
+ {0x1444A, 0x5915},
+ {0x1444B, 0x5927},
+ {0x1444C, 0x5973},
+ {0x1444D, 0x5B50},
+ {0x1444E, 0x5B51},
+ {0x1444F, 0x5B53},
+ {0x14450, 0x5BF8},
+ {0x14451, 0x5C0F},
+ {0x14452, 0x5C22},
+ {0x14453, 0x5C38},
+ {0x14454, 0x5C71},
+ {0x14455, 0x5DDD},
+ {0x14456, 0x5DE5},
+ {0x14457, 0x5DF1},
+ {0x14458, 0x5DF2},
+ {0x14459, 0x5DF3},
+ {0x1445A, 0x5DFE},
+ {0x1445B, 0x5E72},
+ {0x1445C, 0x5EFE},
+ {0x1445D, 0x5F0B},
+ {0x1445E, 0x5F13},
+ {0x1445F, 0x624D},
+ {0x14460, 0x4E11},
+ {0x14461, 0x4E10},
+ {0x14462, 0x4E0D},
+ {0x14463, 0x4E2D},
+ {0x14464, 0x4E30},
+ {0x14465, 0x4E39},
+ {0x14466, 0x4E4B},
+ {0x14467, 0x5C39},
+ {0x14468, 0x4E88},
+ {0x14469, 0x4E91},
+ {0x1446A, 0x4E95},
+ {0x1446B, 0x4E92},
+ {0x1446C, 0x4E94},
+ {0x1446D, 0x4EA2},
+ {0x1446E, 0x4EC1},
+ {0x1446F, 0x4EC0},
+ {0x14470, 0x4EC3},
+ {0x14471, 0x4EC6},
+ {0x14472, 0x4EC7},
+ {0x14473, 0x4ECD},
+ {0x14474, 0x4ECA},
+ {0x14475, 0x4ECB},
+ {0x14476, 0x4EC4},
+ {0x14477, 0x5143},
+ {0x14478, 0x5141},
+ {0x14479, 0x5167},
+ {0x1447A, 0x516D},
+ {0x1447B, 0x516E},
+ {0x1447C, 0x516C},
+ {0x1447D, 0x5197},
+ {0x1447E, 0x51F6},
+ {0x14521, 0x5206},
+ {0x14522, 0x5207},
+ {0x14523, 0x5208},
+ {0x14524, 0x52FB},
+ {0x14525, 0x52FE},
+ {0x14526, 0x52FF},
+ {0x14527, 0x5316},
+ {0x14528, 0x5339},
+ {0x14529, 0x5348},
+ {0x1452A, 0x5347},
+ {0x1452B, 0x5345},
+ {0x1452C, 0x535E},
+ {0x1452D, 0x5384},
+ {0x1452E, 0x53CB},
+ {0x1452F, 0x53CA},
+ {0x14530, 0x53CD},
+ {0x14531, 0x58EC},
+ {0x14532, 0x5929},
+ {0x14533, 0x592B},
+ {0x14534, 0x592A},
+ {0x14535, 0x592D},
+ {0x14536, 0x5B54},
+ {0x14537, 0x5C11},
+ {0x14538, 0x5C24},
+ {0x14539, 0x5C3A},
+ {0x1453A, 0x5C6F},
+ {0x1453B, 0x5DF4},
+ {0x1453C, 0x5E7B},
+ {0x1453D, 0x5EFF},
+ {0x1453E, 0x5F14},
+ {0x1453F, 0x5F15},
+ {0x14540, 0x5FC3},
+ {0x14541, 0x6208},
+ {0x14542, 0x6236},
+ {0x14543, 0x624B},
+ {0x14544, 0x624E},
+ {0x14545, 0x652F},
+ {0x14546, 0x6587},
+ {0x14547, 0x6597},
+ {0x14548, 0x65A4},
+ {0x14549, 0x65B9},
+ {0x1454A, 0x65E5},
+ {0x1454B, 0x66F0},
+ {0x1454C, 0x6708},
+ {0x1454D, 0x6728},
+ {0x1454E, 0x6B20},
+ {0x1454F, 0x6B62},
+ {0x14550, 0x6B79},
+ {0x14551, 0x6BCB},
+ {0x14552, 0x6BD4},
+ {0x14553, 0x6BDB},
+ {0x14554, 0x6C0F},
+ {0x14555, 0x6C34},
+ {0x14556, 0x706B},
+ {0x14557, 0x722A},
+ {0x14558, 0x7236},
+ {0x14559, 0x723B},
+ {0x1455A, 0x7247},
+ {0x1455B, 0x7259},
+ {0x1455C, 0x725B},
+ {0x1455D, 0x72AC},
+ {0x1455E, 0x738B},
+ {0x1455F, 0x4E19},
+ {0x14560, 0x4E16},
+ {0x14561, 0x4E15},
+ {0x14562, 0x4E14},
+ {0x14563, 0x4E18},
+ {0x14564, 0x4E3B},
+ {0x14565, 0x4E4D},
+ {0x14566, 0x4E4F},
+ {0x14567, 0x4E4E},
+ {0x14568, 0x4EE5},
+ {0x14569, 0x4ED8},
+ {0x1456A, 0x4ED4},
+ {0x1456B, 0x4ED5},
+ {0x1456C, 0x4ED6},
+ {0x1456D, 0x4ED7},
+ {0x1456E, 0x4EE3},
+ {0x1456F, 0x4EE4},
+ {0x14570, 0x4ED9},
+ {0x14571, 0x4EDE},
+ {0x14572, 0x5145},
+ {0x14573, 0x5144},
+ {0x14574, 0x5189},
+ {0x14575, 0x518A},
+ {0x14576, 0x51AC},
+ {0x14577, 0x51F9},
+ {0x14578, 0x51FA},
+ {0x14579, 0x51F8},
+ {0x1457A, 0x520A},
+ {0x1457B, 0x52A0},
+ {0x1457C, 0x529F},
+ {0x1457D, 0x5305},
+ {0x1457E, 0x5306},
+ {0x14621, 0x5317},
+ {0x14622, 0x531D},
+ {0x14623, 0x4EDF},
+ {0x14624, 0x534A},
+ {0x14625, 0x5349},
+ {0x14626, 0x5361},
+ {0x14627, 0x5360},
+ {0x14628, 0x536F},
+ {0x14629, 0x536E},
+ {0x1462A, 0x53BB},
+ {0x1462B, 0x53EF},
+ {0x1462C, 0x53E4},
+ {0x1462D, 0x53F3},
+ {0x1462E, 0x53EC},
+ {0x1462F, 0x53EE},
+ {0x14630, 0x53E9},
+ {0x14631, 0x53E8},
+ {0x14632, 0x53FC},
+ {0x14633, 0x53F8},
+ {0x14634, 0x53F5},
+ {0x14635, 0x53EB},
+ {0x14636, 0x53E6},
+ {0x14637, 0x53EA},
+ {0x14638, 0x53F2},
+ {0x14639, 0x53F1},
+ {0x1463A, 0x53F0},
+ {0x1463B, 0x53E5},
+ {0x1463C, 0x53ED},
+ {0x1463D, 0x53FB},
+ {0x1463E, 0x56DB},
+ {0x1463F, 0x56DA},
+ {0x14640, 0x5916},
+ {0x14641, 0x592E},
+ {0x14642, 0x5931},
+ {0x14643, 0x5974},
+ {0x14644, 0x5976},
+ {0x14645, 0x5B55},
+ {0x14646, 0x5B83},
+ {0x14647, 0x5C3C},
+ {0x14648, 0x5DE8},
+ {0x14649, 0x5DE7},
+ {0x1464A, 0x5DE6},
+ {0x1464B, 0x5E02},
+ {0x1464C, 0x5E03},
+ {0x1464D, 0x5E73},
+ {0x1464E, 0x5E7C},
+ {0x1464F, 0x5F01},
+ {0x14650, 0x5F18},
+ {0x14651, 0x5F17},
+ {0x14652, 0x5FC5},
+ {0x14653, 0x620A},
+ {0x14654, 0x6253},
+ {0x14655, 0x6254},
+ {0x14656, 0x6252},
+ {0x14657, 0x6251},
+ {0x14658, 0x65A5},
+ {0x14659, 0x65E6},
+ {0x1465A, 0x672E},
+ {0x1465B, 0x672C},
+ {0x1465C, 0x672A},
+ {0x1465D, 0x672B},
+ {0x1465E, 0x672D},
+ {0x1465F, 0x6B63},
+ {0x14660, 0x6BCD},
+ {0x14661, 0x6C11},
+ {0x14662, 0x6C10},
+ {0x14663, 0x6C38},
+ {0x14664, 0x6C41},
+ {0x14665, 0x6C40},
+ {0x14666, 0x6C3E},
+ {0x14667, 0x72AF},
+ {0x14668, 0x7384},
+ {0x14669, 0x7389},
+ {0x1466A, 0x74DC},
+ {0x1466B, 0x74E6},
+ {0x1466C, 0x7518},
+ {0x1466D, 0x751F},
+ {0x1466E, 0x7528},
+ {0x1466F, 0x7529},
+ {0x14670, 0x7530},
+ {0x14671, 0x7531},
+ {0x14672, 0x7532},
+ {0x14673, 0x7533},
+ {0x14674, 0x758B},
+ {0x14675, 0x767D},
+ {0x14676, 0x76AE},
+ {0x14677, 0x76BF},
+ {0x14678, 0x76EE},
+ {0x14679, 0x77DB},
+ {0x1467A, 0x77E2},
+ {0x1467B, 0x77F3},
+ {0x1467C, 0x793A},
+ {0x1467D, 0x79BE},
+ {0x1467E, 0x7A74},
+ {0x14721, 0x7ACB},
+ {0x14722, 0x4E1E},
+ {0x14723, 0x4E1F},
+ {0x14724, 0x4E52},
+ {0x14725, 0x4E53},
+ {0x14726, 0x4E69},
+ {0x14727, 0x4E99},
+ {0x14728, 0x4EA4},
+ {0x14729, 0x4EA6},
+ {0x1472A, 0x4EA5},
+ {0x1472B, 0x4EFF},
+ {0x1472C, 0x4F09},
+ {0x1472D, 0x4F19},
+ {0x1472E, 0x4F0A},
+ {0x1472F, 0x4F15},
+ {0x14730, 0x4F0D},
+ {0x14731, 0x4F10},
+ {0x14732, 0x4F11},
+ {0x14733, 0x4F0F},
+ {0x14734, 0x4EF2},
+ {0x14735, 0x4EF6},
+ {0x14736, 0x4EFB},
+ {0x14737, 0x4EF0},
+ {0x14738, 0x4EF3},
+ {0x14739, 0x4EFD},
+ {0x1473A, 0x4F01},
+ {0x1473B, 0x4F0B},
+ {0x1473C, 0x5149},
+ {0x1473D, 0x5147},
+ {0x1473E, 0x5146},
+ {0x1473F, 0x5148},
+ {0x14740, 0x5168},
+ {0x14741, 0x5171},
+ {0x14742, 0x518D},
+ {0x14743, 0x51B0},
+ {0x14744, 0x5217},
+ {0x14745, 0x5211},
+ {0x14746, 0x5212},
+ {0x14747, 0x520E},
+ {0x14748, 0x5216},
+ {0x14749, 0x52A3},
+ {0x1474A, 0x5308},
+ {0x1474B, 0x5321},
+ {0x1474C, 0x5320},
+ {0x1474D, 0x5370},
+ {0x1474E, 0x5371},
+ {0x1474F, 0x5409},
+ {0x14750, 0x540F},
+ {0x14751, 0x540C},
+ {0x14752, 0x540A},
+ {0x14753, 0x5410},
+ {0x14754, 0x5401},
+ {0x14755, 0x540B},
+ {0x14756, 0x5404},
+ {0x14757, 0x5411},
+ {0x14758, 0x540D},
+ {0x14759, 0x5408},
+ {0x1475A, 0x5403},
+ {0x1475B, 0x540E},
+ {0x1475C, 0x5406},
+ {0x1475D, 0x5412},
+ {0x1475E, 0x56E0},
+ {0x1475F, 0x56DE},
+ {0x14760, 0x56DD},
+ {0x14761, 0x5733},
+ {0x14762, 0x5730},
+ {0x14763, 0x5728},
+ {0x14764, 0x572D},
+ {0x14765, 0x572C},
+ {0x14766, 0x572F},
+ {0x14767, 0x5729},
+ {0x14768, 0x5919},
+ {0x14769, 0x591A},
+ {0x1476A, 0x5937},
+ {0x1476B, 0x5938},
+ {0x1476C, 0x5984},
+ {0x1476D, 0x5978},
+ {0x1476E, 0x5983},
+ {0x1476F, 0x597D},
+ {0x14770, 0x5979},
+ {0x14771, 0x5982},
+ {0x14772, 0x5981},
+ {0x14773, 0x5B57},
+ {0x14774, 0x5B58},
+ {0x14775, 0x5B87},
+ {0x14776, 0x5B88},
+ {0x14777, 0x5B85},
+ {0x14778, 0x5B89},
+ {0x14779, 0x5BFA},
+ {0x1477A, 0x5C16},
+ {0x1477B, 0x5C79},
+ {0x1477C, 0x5DDE},
+ {0x1477D, 0x5E06},
+ {0x1477E, 0x5E76},
+ {0x14821, 0x5E74},
+ {0x14822, 0x5F0F},
+ {0x14823, 0x5F1B},
+ {0x14824, 0x5FD9},
+ {0x14825, 0x5FD6},
+ {0x14826, 0x620E},
+ {0x14827, 0x620C},
+ {0x14828, 0x620D},
+ {0x14829, 0x6210},
+ {0x1482A, 0x6263},
+ {0x1482B, 0x625B},
+ {0x1482C, 0x6258},
+ {0x1482D, 0x6536},
+ {0x1482E, 0x65E9},
+ {0x1482F, 0x65E8},
+ {0x14830, 0x65EC},
+ {0x14831, 0x65ED},
+ {0x14832, 0x66F2},
+ {0x14833, 0x66F3},
+ {0x14834, 0x6709},
+ {0x14835, 0x673D},
+ {0x14836, 0x6734},
+ {0x14837, 0x6731},
+ {0x14838, 0x6735},
+ {0x14839, 0x6B21},
+ {0x1483A, 0x6B64},
+ {0x1483B, 0x6B7B},
+ {0x1483C, 0x6C16},
+ {0x1483D, 0x6C5D},
+ {0x1483E, 0x6C57},
+ {0x1483F, 0x6C59},
+ {0x14840, 0x6C5F},
+ {0x14841, 0x6C60},
+ {0x14842, 0x6C50},
+ {0x14843, 0x6C55},
+ {0x14844, 0x6C61},
+ {0x14845, 0x6C5B},
+ {0x14846, 0x6C4D},
+ {0x14847, 0x6C4E},
+ {0x14848, 0x7070},
+ {0x14849, 0x725F},
+ {0x1484A, 0x725D},
+ {0x1484B, 0x767E},
+ {0x1484C, 0x7AF9},
+ {0x1484D, 0x7C73},
+ {0x1484E, 0x7CF8},
+ {0x1484F, 0x7F36},
+ {0x14850, 0x7F8A},
+ {0x14851, 0x7FBD},
+ {0x14852, 0x8001},
+ {0x14853, 0x8003},
+ {0x14854, 0x800C},
+ {0x14855, 0x8012},
+ {0x14856, 0x8033},
+ {0x14857, 0x807F},
+ {0x14858, 0x8089},
+ {0x14859, 0x808B},
+ {0x1485A, 0x808C},
+ {0x1485B, 0x81E3},
+ {0x1485C, 0x81EA},
+ {0x1485D, 0x81F3},
+ {0x1485E, 0x81FC},
+ {0x1485F, 0x820C},
+ {0x14860, 0x821B},
+ {0x14861, 0x821F},
+ {0x14862, 0x826E},
+ {0x14863, 0x8272},
+ {0x14864, 0x827E},
+ {0x14865, 0x866B},
+ {0x14866, 0x8840},
+ {0x14867, 0x884C},
+ {0x14868, 0x8863},
+ {0x14869, 0x897F},
+ {0x1486A, 0x9621},
+ {0x1486B, 0x4E32},
+ {0x1486C, 0x4EA8},
+ {0x1486D, 0x4F4D},
+ {0x1486E, 0x4F4F},
+ {0x1486F, 0x4F47},
+ {0x14870, 0x4F57},
+ {0x14871, 0x4F5E},
+ {0x14872, 0x4F34},
+ {0x14873, 0x4F5B},
+ {0x14874, 0x4F55},
+ {0x14875, 0x4F30},
+ {0x14876, 0x4F50},
+ {0x14877, 0x4F51},
+ {0x14878, 0x4F3D},
+ {0x14879, 0x4F3A},
+ {0x1487A, 0x4F38},
+ {0x1487B, 0x4F43},
+ {0x1487C, 0x4F54},
+ {0x1487D, 0x4F3C},
+ {0x1487E, 0x4F46},
+ {0x14921, 0x4F63},
+ {0x14922, 0x4F5C},
+ {0x14923, 0x4F60},
+ {0x14924, 0x4F2F},
+ {0x14925, 0x4F4E},
+ {0x14926, 0x4F36},
+ {0x14927, 0x4F59},
+ {0x14928, 0x4F5D},
+ {0x14929, 0x4F48},
+ {0x1492A, 0x4F5A},
+ {0x1492B, 0x514C},
+ {0x1492C, 0x514B},
+ {0x1492D, 0x514D},
+ {0x1492E, 0x5175},
+ {0x1492F, 0x51B6},
+ {0x14930, 0x51B7},
+ {0x14931, 0x5225},
+ {0x14932, 0x5224},
+ {0x14933, 0x5229},
+ {0x14934, 0x522A},
+ {0x14935, 0x5228},
+ {0x14936, 0x52AB},
+ {0x14937, 0x52A9},
+ {0x14938, 0x52AA},
+ {0x14939, 0x52AC},
+ {0x1493A, 0x5323},
+ {0x1493B, 0x5373},
+ {0x1493C, 0x5375},
+ {0x1493D, 0x541D},
+ {0x1493E, 0x542D},
+ {0x1493F, 0x541E},
+ {0x14940, 0x543E},
+ {0x14941, 0x5426},
+ {0x14942, 0x544E},
+ {0x14943, 0x5427},
+ {0x14944, 0x5446},
+ {0x14945, 0x5443},
+ {0x14946, 0x5433},
+ {0x14947, 0x5448},
+ {0x14948, 0x5442},
+ {0x14949, 0x541B},
+ {0x1494A, 0x5429},
+ {0x1494B, 0x544A},
+ {0x1494C, 0x5439},
+ {0x1494D, 0x543B},
+ {0x1494E, 0x5438},
+ {0x1494F, 0x542E},
+ {0x14950, 0x5435},
+ {0x14951, 0x5436},
+ {0x14952, 0x5420},
+ {0x14953, 0x543C},
+ {0x14954, 0x5440},
+ {0x14955, 0x5431},
+ {0x14956, 0x542B},
+ {0x14957, 0x541F},
+ {0x14958, 0x542C},
+ {0x14959, 0x56EA},
+ {0x1495A, 0x56F0},
+ {0x1495B, 0x56E4},
+ {0x1495C, 0x56EB},
+ {0x1495D, 0x574A},
+ {0x1495E, 0x5751},
+ {0x1495F, 0x5740},
+ {0x14960, 0x574D},
+ {0x14961, 0x5747},
+ {0x14962, 0x574E},
+ {0x14963, 0x573E},
+ {0x14964, 0x5750},
+ {0x14965, 0x574F},
+ {0x14966, 0x573B},
+ {0x14967, 0x58EF},
+ {0x14968, 0x593E},
+ {0x14969, 0x599D},
+ {0x1496A, 0x5992},
+ {0x1496B, 0x59A8},
+ {0x1496C, 0x599E},
+ {0x1496D, 0x59A3},
+ {0x1496E, 0x5999},
+ {0x1496F, 0x5996},
+ {0x14970, 0x598D},
+ {0x14971, 0x59A4},
+ {0x14972, 0x5993},
+ {0x14973, 0x598A},
+ {0x14974, 0x59A5},
+ {0x14975, 0x5B5D},
+ {0x14976, 0x5B5C},
+ {0x14977, 0x5B5A},
+ {0x14978, 0x5B5B},
+ {0x14979, 0x5B8C},
+ {0x1497A, 0x5B8B},
+ {0x1497B, 0x5B8F},
+ {0x1497C, 0x5C2C},
+ {0x1497D, 0x5C40},
+ {0x1497E, 0x5C41},
+ {0x14A21, 0x5C3F},
+ {0x14A22, 0x5C3E},
+ {0x14A23, 0x5C90},
+ {0x14A24, 0x5C91},
+ {0x14A25, 0x5C94},
+ {0x14A26, 0x5C8C},
+ {0x14A27, 0x5DEB},
+ {0x14A28, 0x5E0C},
+ {0x14A29, 0x5E8F},
+ {0x14A2A, 0x5E87},
+ {0x14A2B, 0x5E8A},
+ {0x14A2C, 0x5EF7},
+ {0x14A2D, 0x5F04},
+ {0x14A2E, 0x5F1F},
+ {0x14A2F, 0x5F64},
+ {0x14A30, 0x5F62},
+ {0x14A31, 0x5F77},
+ {0x14A32, 0x5F79},
+ {0x14A33, 0x5FD8},
+ {0x14A34, 0x5FCC},
+ {0x14A35, 0x5FD7},
+ {0x14A36, 0x5FCD},
+ {0x14A37, 0x5FF1},
+ {0x14A38, 0x5FEB},
+ {0x14A39, 0x5FF8},
+ {0x14A3A, 0x5FEA},
+ {0x14A3B, 0x6212},
+ {0x14A3C, 0x6211},
+ {0x14A3D, 0x6284},
+ {0x14A3E, 0x6297},
+ {0x14A3F, 0x6296},
+ {0x14A40, 0x6280},
+ {0x14A41, 0x6276},
+ {0x14A42, 0x6289},
+ {0x14A43, 0x626D},
+ {0x14A44, 0x628A},
+ {0x14A45, 0x627C},
+ {0x14A46, 0x627E},
+ {0x14A47, 0x6279},
+ {0x14A48, 0x6273},
+ {0x14A49, 0x6292},
+ {0x14A4A, 0x626F},
+ {0x14A4B, 0x6298},
+ {0x14A4C, 0x626E},
+ {0x14A4D, 0x6295},
+ {0x14A4E, 0x6293},
+ {0x14A4F, 0x6291},
+ {0x14A50, 0x6286},
+ {0x14A51, 0x6539},
+ {0x14A52, 0x653B},
+ {0x14A53, 0x6538},
+ {0x14A54, 0x65F1},
+ {0x14A55, 0x66F4},
+ {0x14A56, 0x675F},
+ {0x14A57, 0x674E},
+ {0x14A58, 0x674F},
+ {0x14A59, 0x6750},
+ {0x14A5A, 0x6751},
+ {0x14A5B, 0x675C},
+ {0x14A5C, 0x6756},
+ {0x14A5D, 0x675E},
+ {0x14A5E, 0x6749},
+ {0x14A5F, 0x6746},
+ {0x14A60, 0x6760},
+ {0x14A61, 0x6753},
+ {0x14A62, 0x6757},
+ {0x14A63, 0x6B65},
+ {0x14A64, 0x6BCF},
+ {0x14A65, 0x6C42},
+ {0x14A66, 0x6C5E},
+ {0x14A67, 0x6C99},
+ {0x14A68, 0x6C81},
+ {0x14A69, 0x6C88},
+ {0x14A6A, 0x6C89},
+ {0x14A6B, 0x6C85},
+ {0x14A6C, 0x6C9B},
+ {0x14A6D, 0x6C6A},
+ {0x14A6E, 0x6C7A},
+ {0x14A6F, 0x6C90},
+ {0x14A70, 0x6C70},
+ {0x14A71, 0x6C8C},
+ {0x14A72, 0x6C68},
+ {0x14A73, 0x6C96},
+ {0x14A74, 0x6C92},
+ {0x14A75, 0x6C7D},
+ {0x14A76, 0x6C83},
+ {0x14A77, 0x6C72},
+ {0x14A78, 0x6C7E},
+ {0x14A79, 0x6C74},
+ {0x14A7A, 0x6C86},
+ {0x14A7B, 0x6C76},
+ {0x14A7C, 0x6C8D},
+ {0x14A7D, 0x6C94},
+ {0x14A7E, 0x6C98},
+ {0x14B21, 0x6C82},
+ {0x14B22, 0x7076},
+ {0x14B23, 0x707C},
+ {0x14B24, 0x707D},
+ {0x14B25, 0x7078},
+ {0x14B26, 0x7262},
+ {0x14B27, 0x7261},
+ {0x14B28, 0x7260},
+ {0x14B29, 0x72C4},
+ {0x14B2A, 0x72C2},
+ {0x14B2B, 0x7396},
+ {0x14B2C, 0x752C},
+ {0x14B2D, 0x752B},
+ {0x14B2E, 0x7537},
+ {0x14B2F, 0x7538},
+ {0x14B30, 0x7682},
+ {0x14B31, 0x76EF},
+ {0x14B32, 0x77E3},
+ {0x14B33, 0x79C1},
+ {0x14B34, 0x79C0},
+ {0x14B35, 0x79BF},
+ {0x14B36, 0x7A76},
+ {0x14B37, 0x7CFB},
+ {0x14B38, 0x7F55},
+ {0x14B39, 0x8096},
+ {0x14B3A, 0x8093},
+ {0x14B3B, 0x809D},
+ {0x14B3C, 0x8098},
+ {0x14B3D, 0x809B},
+ {0x14B3E, 0x809A},
+ {0x14B3F, 0x80B2},
+ {0x14B40, 0x826F},
+ {0x14B41, 0x8292},
+ {0x14B42, 0x828B},
+ {0x14B43, 0x828D},
+ {0x14B44, 0x898B},
+ {0x14B45, 0x89D2},
+ {0x14B46, 0x8A00},
+ {0x14B47, 0x8C37},
+ {0x14B48, 0x8C46},
+ {0x14B49, 0x8C55},
+ {0x14B4A, 0x8C9D},
+ {0x14B4B, 0x8D64},
+ {0x14B4C, 0x8D70},
+ {0x14B4D, 0x8DB3},
+ {0x14B4E, 0x8EAB},
+ {0x14B4F, 0x8ECA},
+ {0x14B50, 0x8F9B},
+ {0x14B51, 0x8FB0},
+ {0x14B52, 0x8FC2},
+ {0x14B53, 0x8FC6},
+ {0x14B54, 0x8FC5},
+ {0x14B55, 0x8FC4},
+ {0x14B56, 0x5DE1},
+ {0x14B57, 0x9091},
+ {0x14B58, 0x90A2},
+ {0x14B59, 0x90AA},
+ {0x14B5A, 0x90A6},
+ {0x14B5B, 0x90A3},
+ {0x14B5C, 0x9149},
+ {0x14B5D, 0x91C6},
+ {0x14B5E, 0x91CC},
+ {0x14B5F, 0x9632},
+ {0x14B60, 0x962E},
+ {0x14B61, 0x9631},
+ {0x14B62, 0x962A},
+ {0x14B63, 0x962C},
+ {0x14B64, 0x4E26},
+ {0x14B65, 0x4E56},
+ {0x14B66, 0x4E73},
+ {0x14B67, 0x4E8B},
+ {0x14B68, 0x4E9B},
+ {0x14B69, 0x4E9E},
+ {0x14B6A, 0x4EAB},
+ {0x14B6B, 0x4EAC},
+ {0x14B6C, 0x4F6F},
+ {0x14B6D, 0x4F9D},
+ {0x14B6E, 0x4F8D},
+ {0x14B6F, 0x4F73},
+ {0x14B70, 0x4F7F},
+ {0x14B71, 0x4F6C},
+ {0x14B72, 0x4F9B},
+ {0x14B73, 0x4F8B},
+ {0x14B74, 0x4F86},
+ {0x14B75, 0x4F83},
+ {0x14B76, 0x4F70},
+ {0x14B77, 0x4F75},
+ {0x14B78, 0x4F88},
+ {0x14B79, 0x4F69},
+ {0x14B7A, 0x4F7B},
+ {0x14B7B, 0x4F96},
+ {0x14B7C, 0x4F7E},
+ {0x14B7D, 0x4F8F},
+ {0x14B7E, 0x4F91},
+ {0x14C21, 0x4F7A},
+ {0x14C22, 0x5154},
+ {0x14C23, 0x5152},
+ {0x14C24, 0x5155},
+ {0x14C25, 0x5169},
+ {0x14C26, 0x5177},
+ {0x14C27, 0x5176},
+ {0x14C28, 0x5178},
+ {0x14C29, 0x51BD},
+ {0x14C2A, 0x51FD},
+ {0x14C2B, 0x523B},
+ {0x14C2C, 0x5238},
+ {0x14C2D, 0x5237},
+ {0x14C2E, 0x523A},
+ {0x14C2F, 0x5230},
+ {0x14C30, 0x522E},
+ {0x14C31, 0x5236},
+ {0x14C32, 0x5241},
+ {0x14C33, 0x52BE},
+ {0x14C34, 0x52BB},
+ {0x14C35, 0x5352},
+ {0x14C36, 0x5354},
+ {0x14C37, 0x5353},
+ {0x14C38, 0x5351},
+ {0x14C39, 0x5366},
+ {0x14C3A, 0x5377},
+ {0x14C3B, 0x5378},
+ {0x14C3C, 0x5379},
+ {0x14C3D, 0x53D6},
+ {0x14C3E, 0x53D4},
+ {0x14C3F, 0x53D7},
+ {0x14C40, 0x5473},
+ {0x14C41, 0x5475},
+ {0x14C42, 0x5496},
+ {0x14C43, 0x5478},
+ {0x14C44, 0x5495},
+ {0x14C45, 0x5480},
+ {0x14C46, 0x547B},
+ {0x14C47, 0x5477},
+ {0x14C48, 0x5484},
+ {0x14C49, 0x5492},
+ {0x14C4A, 0x5486},
+ {0x14C4B, 0x547C},
+ {0x14C4C, 0x5490},
+ {0x14C4D, 0x5471},
+ {0x14C4E, 0x5476},
+ {0x14C4F, 0x548C},
+ {0x14C50, 0x549A},
+ {0x14C51, 0x5462},
+ {0x14C52, 0x5468},
+ {0x14C53, 0x548B},
+ {0x14C54, 0x547D},
+ {0x14C55, 0x548E},
+ {0x14C56, 0x56FA},
+ {0x14C57, 0x5783},
+ {0x14C58, 0x5777},
+ {0x14C59, 0x576A},
+ {0x14C5A, 0x5769},
+ {0x14C5B, 0x5761},
+ {0x14C5C, 0x5766},
+ {0x14C5D, 0x5764},
+ {0x14C5E, 0x577C},
+ {0x14C5F, 0x591C},
+ {0x14C60, 0x5949},
+ {0x14C61, 0x5947},
+ {0x14C62, 0x5948},
+ {0x14C63, 0x5944},
+ {0x14C64, 0x5954},
+ {0x14C65, 0x59BE},
+ {0x14C66, 0x59BB},
+ {0x14C67, 0x59D4},
+ {0x14C68, 0x59B9},
+ {0x14C69, 0x59AE},
+ {0x14C6A, 0x59D1},
+ {0x14C6B, 0x59C6},
+ {0x14C6C, 0x59D0},
+ {0x14C6D, 0x59CD},
+ {0x14C6E, 0x59CB},
+ {0x14C6F, 0x59D3},
+ {0x14C70, 0x59CA},
+ {0x14C71, 0x59AF},
+ {0x14C72, 0x59B3},
+ {0x14C73, 0x59D2},
+ {0x14C74, 0x59C5},
+ {0x14C75, 0x5B5F},
+ {0x14C76, 0x5B64},
+ {0x14C77, 0x5B63},
+ {0x14C78, 0x5B97},
+ {0x14C79, 0x5B9A},
+ {0x14C7A, 0x5B98},
+ {0x14C7B, 0x5B9C},
+ {0x14C7C, 0x5B99},
+ {0x14C7D, 0x5B9B},
+ {0x14C7E, 0x5C1A},
+ {0x14D21, 0x5C48},
+ {0x14D22, 0x5C45},
+ {0x14D23, 0x5C46},
+ {0x14D24, 0x5CB7},
+ {0x14D25, 0x5CA1},
+ {0x14D26, 0x5CB8},
+ {0x14D27, 0x5CA9},
+ {0x14D28, 0x5CAB},
+ {0x14D29, 0x5CB1},
+ {0x14D2A, 0x5CB3},
+ {0x14D2B, 0x5E18},
+ {0x14D2C, 0x5E1A},
+ {0x14D2D, 0x5E16},
+ {0x14D2E, 0x5E15},
+ {0x14D2F, 0x5E1B},
+ {0x14D30, 0x5E11},
+ {0x14D31, 0x5E78},
+ {0x14D32, 0x5E9A},
+ {0x14D33, 0x5E97},
+ {0x14D34, 0x5E9C},
+ {0x14D35, 0x5E95},
+ {0x14D36, 0x5E96},
+ {0x14D37, 0x5EF6},
+ {0x14D38, 0x5F26},
+ {0x14D39, 0x5F27},
+ {0x14D3A, 0x5F29},
+ {0x14D3B, 0x5F80},
+ {0x14D3C, 0x5F81},
+ {0x14D3D, 0x5F7F},
+ {0x14D3E, 0x5F7C},
+ {0x14D3F, 0x5FDD},
+ {0x14D40, 0x5FE0},
+ {0x14D41, 0x5FFD},
+ {0x14D42, 0x5FF5},
+ {0x14D43, 0x5FFF},
+ {0x14D44, 0x600F},
+ {0x14D45, 0x6014},
+ {0x14D46, 0x602F},
+ {0x14D47, 0x6035},
+ {0x14D48, 0x6016},
+ {0x14D49, 0x602A},
+ {0x14D4A, 0x6015},
+ {0x14D4B, 0x6021},
+ {0x14D4C, 0x6027},
+ {0x14D4D, 0x6029},
+ {0x14D4E, 0x602B},
+ {0x14D4F, 0x601B},
+ {0x14D50, 0x6216},
+ {0x14D51, 0x6215},
+ {0x14D52, 0x623F},
+ {0x14D53, 0x623E},
+ {0x14D54, 0x6240},
+ {0x14D55, 0x627F},
+ {0x14D56, 0x62C9},
+ {0x14D57, 0x62CC},
+ {0x14D58, 0x62C4},
+ {0x14D59, 0x62BF},
+ {0x14D5A, 0x62C2},
+ {0x14D5B, 0x62B9},
+ {0x14D5C, 0x62D2},
+ {0x14D5D, 0x62DB},
+ {0x14D5E, 0x62AB},
+ {0x14D5F, 0x62D3},
+ {0x14D60, 0x62D4},
+ {0x14D61, 0x62CB},
+ {0x14D62, 0x62C8},
+ {0x14D63, 0x62A8},
+ {0x14D64, 0x62BD},
+ {0x14D65, 0x62BC},
+ {0x14D66, 0x62D0},
+ {0x14D67, 0x62D9},
+ {0x14D68, 0x62C7},
+ {0x14D69, 0x62CD},
+ {0x14D6A, 0x62B5},
+ {0x14D6B, 0x62DA},
+ {0x14D6C, 0x62B1},
+ {0x14D6D, 0x62D8},
+ {0x14D6E, 0x62D6},
+ {0x14D6F, 0x62D7},
+ {0x14D70, 0x62C6},
+ {0x14D71, 0x62AC},
+ {0x14D72, 0x62CE},
+ {0x14D73, 0x653E},
+ {0x14D74, 0x65A7},
+ {0x14D75, 0x65BC},
+ {0x14D76, 0x65FA},
+ {0x14D77, 0x6614},
+ {0x14D78, 0x6613},
+ {0x14D79, 0x660C},
+ {0x14D7A, 0x6606},
+ {0x14D7B, 0x6602},
+ {0x14D7C, 0x660E},
+ {0x14D7D, 0x6600},
+ {0x14D7E, 0x660F},
+ {0x14E21, 0x6615},
+ {0x14E22, 0x660A},
+ {0x14E23, 0x6607},
+ {0x14E24, 0x670D},
+ {0x14E25, 0x670B},
+ {0x14E26, 0x676D},
+ {0x14E27, 0x678B},
+ {0x14E28, 0x6795},
+ {0x14E29, 0x6771},
+ {0x14E2A, 0x679C},
+ {0x14E2B, 0x6773},
+ {0x14E2C, 0x6777},
+ {0x14E2D, 0x6787},
+ {0x14E2E, 0x679D},
+ {0x14E2F, 0x6797},
+ {0x14E30, 0x676F},
+ {0x14E31, 0x6770},
+ {0x14E32, 0x677F},
+ {0x14E33, 0x6789},
+ {0x14E34, 0x677E},
+ {0x14E35, 0x6790},
+ {0x14E36, 0x6775},
+ {0x14E37, 0x679A},
+ {0x14E38, 0x6793},
+ {0x14E39, 0x677C},
+ {0x14E3A, 0x676A},
+ {0x14E3B, 0x6772},
+ {0x14E3C, 0x6B23},
+ {0x14E3D, 0x6B66},
+ {0x14E3E, 0x6B67},
+ {0x14E3F, 0x6B7F},
+ {0x14E40, 0x6C13},
+ {0x14E41, 0x6C1B},
+ {0x14E42, 0x6CE3},
+ {0x14E43, 0x6CE8},
+ {0x14E44, 0x6CF3},
+ {0x14E45, 0x6CB1},
+ {0x14E46, 0x6CCC},
+ {0x14E47, 0x6CE5},
+ {0x14E48, 0x6CB3},
+ {0x14E49, 0x6CBD},
+ {0x14E4A, 0x6CBE},
+ {0x14E4B, 0x6CBC},
+ {0x14E4C, 0x6CE2},
+ {0x14E4D, 0x6CAB},
+ {0x14E4E, 0x6CD5},
+ {0x14E4F, 0x6CD3},
+ {0x14E50, 0x6CB8},
+ {0x14E51, 0x6CC4},
+ {0x14E52, 0x6CB9},
+ {0x14E53, 0x6CC1},
+ {0x14E54, 0x6CAE},
+ {0x14E55, 0x6CD7},
+ {0x14E56, 0x6CC5},
+ {0x14E57, 0x6CF1},
+ {0x14E58, 0x6CBF},
+ {0x14E59, 0x6CBB},
+ {0x14E5A, 0x6CE1},
+ {0x14E5B, 0x6CDB},
+ {0x14E5C, 0x6CCA},
+ {0x14E5D, 0x6CAC},
+ {0x14E5E, 0x6CEF},
+ {0x14E5F, 0x6CDC},
+ {0x14E60, 0x6CD6},
+ {0x14E61, 0x6CE0},
+ {0x14E62, 0x7095},
+ {0x14E63, 0x708E},
+ {0x14E64, 0x7092},
+ {0x14E65, 0x708A},
+ {0x14E66, 0x7099},
+ {0x14E67, 0x722C},
+ {0x14E68, 0x722D},
+ {0x14E69, 0x7238},
+ {0x14E6A, 0x7248},
+ {0x14E6B, 0x7267},
+ {0x14E6C, 0x7269},
+ {0x14E6D, 0x72C0},
+ {0x14E6E, 0x72CE},
+ {0x14E6F, 0x72D9},
+ {0x14E70, 0x72D7},
+ {0x14E71, 0x72D0},
+ {0x14E72, 0x73A9},
+ {0x14E73, 0x73A8},
+ {0x14E74, 0x739F},
+ {0x14E75, 0x73AB},
+ {0x14E76, 0x73A5},
+ {0x14E77, 0x753D},
+ {0x14E78, 0x759D},
+ {0x14E79, 0x7599},
+ {0x14E7A, 0x759A},
+ {0x14E7B, 0x7684},
+ {0x14E7C, 0x76C2},
+ {0x14E7D, 0x76F2},
+ {0x14E7E, 0x76F4},
+ {0x14F21, 0x77E5},
+ {0x14F22, 0x77FD},
+ {0x14F23, 0x793E},
+ {0x14F24, 0x7940},
+ {0x14F25, 0x7941},
+ {0x14F26, 0x79C9},
+ {0x14F27, 0x79C8},
+ {0x14F28, 0x7A7A},
+ {0x14F29, 0x7A79},
+ {0x14F2A, 0x7AFA},
+ {0x14F2B, 0x7CFE},
+ {0x14F2C, 0x7F54},
+ {0x14F2D, 0x7F8C},
+ {0x14F2E, 0x7F8B},
+ {0x14F2F, 0x8005},
+ {0x14F30, 0x80BA},
+ {0x14F31, 0x80A5},
+ {0x14F32, 0x80A2},
+ {0x14F33, 0x80B1},
+ {0x14F34, 0x80A1},
+ {0x14F35, 0x80AB},
+ {0x14F36, 0x80A9},
+ {0x14F37, 0x80B4},
+ {0x14F38, 0x80AA},
+ {0x14F39, 0x80AF},
+ {0x14F3A, 0x81E5},
+ {0x14F3B, 0x81FE},
+ {0x14F3C, 0x820D},
+ {0x14F3D, 0x82B3},
+ {0x14F3E, 0x829D},
+ {0x14F3F, 0x8299},
+ {0x14F40, 0x82AD},
+ {0x14F41, 0x82BD},
+ {0x14F42, 0x829F},
+ {0x14F43, 0x82B9},
+ {0x14F44, 0x82B1},
+ {0x14F45, 0x82AC},
+ {0x14F46, 0x82A5},
+ {0x14F47, 0x82AF},
+ {0x14F48, 0x82B8},
+ {0x14F49, 0x82A3},
+ {0x14F4A, 0x82B0},
+ {0x14F4B, 0x82BE},
+ {0x14F4C, 0x82B7},
+ {0x14F4D, 0x864E},
+ {0x14F4E, 0x8671},
+ {0x14F4F, 0x521D},
+ {0x14F50, 0x8868},
+ {0x14F51, 0x8ECB},
+ {0x14F52, 0x8FCE},
+ {0x14F53, 0x8FD4},
+ {0x14F54, 0x8FD1},
+ {0x14F55, 0x90B5},
+ {0x14F56, 0x90B8},
+ {0x14F57, 0x90B1},
+ {0x14F58, 0x90B6},
+ {0x14F59, 0x91C7},
+ {0x14F5A, 0x91D1},
+ {0x14F5B, 0x9577},
+ {0x14F5C, 0x9580},
+ {0x14F5D, 0x961C},
+ {0x14F5E, 0x9640},
+ {0x14F5F, 0x963F},
+ {0x14F60, 0x963B},
+ {0x14F61, 0x9644},
+ {0x14F62, 0x9642},
+ {0x14F63, 0x96B9},
+ {0x14F64, 0x96E8},
+ {0x14F65, 0x9752},
+ {0x14F66, 0x975E},
+ {0x14F67, 0x4E9F},
+ {0x14F68, 0x4EAD},
+ {0x14F69, 0x4EAE},
+ {0x14F6A, 0x4FE1},
+ {0x14F6B, 0x4FB5},
+ {0x14F6C, 0x4FAF},
+ {0x14F6D, 0x4FBF},
+ {0x14F6E, 0x4FE0},
+ {0x14F6F, 0x4FD1},
+ {0x14F70, 0x4FCF},
+ {0x14F71, 0x4FDD},
+ {0x14F72, 0x4FC3},
+ {0x14F73, 0x4FB6},
+ {0x14F74, 0x4FD8},
+ {0x14F75, 0x4FDF},
+ {0x14F76, 0x4FCA},
+ {0x14F77, 0x4FD7},
+ {0x14F78, 0x4FAE},
+ {0x14F79, 0x4FD0},
+ {0x14F7A, 0x4FC4},
+ {0x14F7B, 0x4FC2},
+ {0x14F7C, 0x4FDA},
+ {0x14F7D, 0x4FCE},
+ {0x14F7E, 0x4FDE},
+ {0x15021, 0x4FB7},
+ {0x15022, 0x5157},
+ {0x15023, 0x5192},
+ {0x15024, 0x5191},
+ {0x15025, 0x51A0},
+ {0x15026, 0x524E},
+ {0x15027, 0x5243},
+ {0x15028, 0x524A},
+ {0x15029, 0x524D},
+ {0x1502A, 0x524C},
+ {0x1502B, 0x524B},
+ {0x1502C, 0x5247},
+ {0x1502D, 0x52C7},
+ {0x1502E, 0x52C9},
+ {0x1502F, 0x52C3},
+ {0x15030, 0x52C1},
+ {0x15031, 0x530D},
+ {0x15032, 0x5357},
+ {0x15033, 0x537B},
+ {0x15034, 0x539A},
+ {0x15035, 0x53DB},
+ {0x15036, 0x54AC},
+ {0x15037, 0x54C0},
+ {0x15038, 0x54A8},
+ {0x15039, 0x54CE},
+ {0x1503A, 0x54C9},
+ {0x1503B, 0x54B8},
+ {0x1503C, 0x54A6},
+ {0x1503D, 0x54B3},
+ {0x1503E, 0x54C7},
+ {0x1503F, 0x54C2},
+ {0x15040, 0x54BD},
+ {0x15041, 0x54AA},
+ {0x15042, 0x54C1},
+ {0x15043, 0x54C4},
+ {0x15044, 0x54C8},
+ {0x15045, 0x54AF},
+ {0x15046, 0x54AB},
+ {0x15047, 0x54B1},
+ {0x15048, 0x54BB},
+ {0x15049, 0x54A9},
+ {0x1504A, 0x54A7},
+ {0x1504B, 0x54BF},
+ {0x1504C, 0x56FF},
+ {0x1504D, 0x5782},
+ {0x1504E, 0x578B},
+ {0x1504F, 0x57A0},
+ {0x15050, 0x57A3},
+ {0x15051, 0x57A2},
+ {0x15052, 0x57CE},
+ {0x15053, 0x57AE},
+ {0x15054, 0x5793},
+ {0x15055, 0x5955},
+ {0x15056, 0x5951},
+ {0x15057, 0x594F},
+ {0x15058, 0x594E},
+ {0x15059, 0x5950},
+ {0x1505A, 0x59DC},
+ {0x1505B, 0x59D8},
+ {0x1505C, 0x59FF},
+ {0x1505D, 0x59E3},
+ {0x1505E, 0x59E8},
+ {0x1505F, 0x5A03},
+ {0x15060, 0x59E5},
+ {0x15061, 0x59EA},
+ {0x15062, 0x59DA},
+ {0x15063, 0x59E6},
+ {0x15064, 0x5A01},
+ {0x15065, 0x59FB},
+ {0x15066, 0x5B69},
+ {0x15067, 0x5BA3},
+ {0x15068, 0x5BA6},
+ {0x15069, 0x5BA4},
+ {0x1506A, 0x5BA2},
+ {0x1506B, 0x5BA5},
+ {0x1506C, 0x5C01},
+ {0x1506D, 0x5C4E},
+ {0x1506E, 0x5C4F},
+ {0x1506F, 0x5C4D},
+ {0x15070, 0x5C4B},
+ {0x15071, 0x5CD9},
+ {0x15072, 0x5CD2},
+ {0x15073, 0x5DF7},
+ {0x15074, 0x5E1D},
+ {0x15075, 0x5E25},
+ {0x15076, 0x5E1F},
+ {0x15077, 0x5E7D},
+ {0x15078, 0x5EA0},
+ {0x15079, 0x5EA6},
+ {0x1507A, 0x5EFA},
+ {0x1507B, 0x5F08},
+ {0x1507C, 0x5F2D},
+ {0x1507D, 0x5F65},
+ {0x1507E, 0x5F88},
+ {0x15121, 0x5F85},
+ {0x15122, 0x5F8A},
+ {0x15123, 0x5F8B},
+ {0x15124, 0x5F87},
+ {0x15125, 0x5F8C},
+ {0x15126, 0x5F89},
+ {0x15127, 0x6012},
+ {0x15128, 0x601D},
+ {0x15129, 0x6020},
+ {0x1512A, 0x6025},
+ {0x1512B, 0x600E},
+ {0x1512C, 0x6028},
+ {0x1512D, 0x604D},
+ {0x1512E, 0x6070},
+ {0x1512F, 0x6068},
+ {0x15130, 0x6062},
+ {0x15131, 0x6046},
+ {0x15132, 0x6043},
+ {0x15133, 0x606C},
+ {0x15134, 0x606B},
+ {0x15135, 0x606A},
+ {0x15136, 0x6064},
+ {0x15137, 0x6241},
+ {0x15138, 0x62DC},
+ {0x15139, 0x6316},
+ {0x1513A, 0x6309},
+ {0x1513B, 0x62FC},
+ {0x1513C, 0x62ED},
+ {0x1513D, 0x6301},
+ {0x1513E, 0x62EE},
+ {0x1513F, 0x62FD},
+ {0x15140, 0x6307},
+ {0x15141, 0x62F1},
+ {0x15142, 0x62F7},
+ {0x15143, 0x62EF},
+ {0x15144, 0x62EC},
+ {0x15145, 0x62FE},
+ {0x15146, 0x62F4},
+ {0x15147, 0x6311},
+ {0x15148, 0x6302},
+ {0x15149, 0x653F},
+ {0x1514A, 0x6545},
+ {0x1514B, 0x65AB},
+ {0x1514C, 0x65BD},
+ {0x1514D, 0x65E2},
+ {0x1514E, 0x6625},
+ {0x1514F, 0x662D},
+ {0x15150, 0x6620},
+ {0x15151, 0x6627},
+ {0x15152, 0x662F},
+ {0x15153, 0x661F},
+ {0x15154, 0x6628},
+ {0x15155, 0x6631},
+ {0x15156, 0x6624},
+ {0x15157, 0x66F7},
+ {0x15158, 0x67FF},
+ {0x15159, 0x67D3},
+ {0x1515A, 0x67F1},
+ {0x1515B, 0x67D4},
+ {0x1515C, 0x67D0},
+ {0x1515D, 0x67EC},
+ {0x1515E, 0x67B6},
+ {0x1515F, 0x67AF},
+ {0x15160, 0x67F5},
+ {0x15161, 0x67E9},
+ {0x15162, 0x67EF},
+ {0x15163, 0x67C4},
+ {0x15164, 0x67D1},
+ {0x15165, 0x67B4},
+ {0x15166, 0x67DA},
+ {0x15167, 0x67E5},
+ {0x15168, 0x67B8},
+ {0x15169, 0x67CF},
+ {0x1516A, 0x67DE},
+ {0x1516B, 0x67F3},
+ {0x1516C, 0x67B0},
+ {0x1516D, 0x67D9},
+ {0x1516E, 0x67E2},
+ {0x1516F, 0x67DD},
+ {0x15170, 0x67D2},
+ {0x15171, 0x6B6A},
+ {0x15172, 0x6B83},
+ {0x15173, 0x6B86},
+ {0x15174, 0x6BB5},
+ {0x15175, 0x6BD2},
+ {0x15176, 0x6BD7},
+ {0x15177, 0x6C1F},
+ {0x15178, 0x6CC9},
+ {0x15179, 0x6D0B},
+ {0x1517A, 0x6D32},
+ {0x1517B, 0x6D2A},
+ {0x1517C, 0x6D41},
+ {0x1517D, 0x6D25},
+ {0x1517E, 0x6D0C},
+ {0x15221, 0x6D31},
+ {0x15222, 0x6D1E},
+ {0x15223, 0x6D17},
+ {0x15224, 0x6D3B},
+ {0x15225, 0x6D3D},
+ {0x15226, 0x6D3E},
+ {0x15227, 0x6D36},
+ {0x15228, 0x6D1B},
+ {0x15229, 0x6CF5},
+ {0x1522A, 0x6D39},
+ {0x1522B, 0x6D27},
+ {0x1522C, 0x6D38},
+ {0x1522D, 0x6D29},
+ {0x1522E, 0x6D2E},
+ {0x1522F, 0x6D35},
+ {0x15230, 0x6D0E},
+ {0x15231, 0x6D2B},
+ {0x15232, 0x70AB},
+ {0x15233, 0x70BA},
+ {0x15234, 0x70B3},
+ {0x15235, 0x70AC},
+ {0x15236, 0x70AF},
+ {0x15237, 0x70AD},
+ {0x15238, 0x70B8},
+ {0x15239, 0x70AE},
+ {0x1523A, 0x70A4},
+ {0x1523B, 0x7230},
+ {0x1523C, 0x7272},
+ {0x1523D, 0x726F},
+ {0x1523E, 0x7274},
+ {0x1523F, 0x72E9},
+ {0x15240, 0x72E0},
+ {0x15241, 0x72E1},
+ {0x15242, 0x73B7},
+ {0x15243, 0x73CA},
+ {0x15244, 0x73BB},
+ {0x15245, 0x73B2},
+ {0x15246, 0x73CD},
+ {0x15247, 0x73C0},
+ {0x15248, 0x73B3},
+ {0x15249, 0x751A},
+ {0x1524A, 0x752D},
+ {0x1524B, 0x754F},
+ {0x1524C, 0x754C},
+ {0x1524D, 0x754E},
+ {0x1524E, 0x754B},
+ {0x1524F, 0x75AB},
+ {0x15250, 0x75A4},
+ {0x15251, 0x75A5},
+ {0x15252, 0x75A2},
+ {0x15253, 0x75A3},
+ {0x15254, 0x7678},
+ {0x15255, 0x7686},
+ {0x15256, 0x7687},
+ {0x15257, 0x7688},
+ {0x15258, 0x76C8},
+ {0x15259, 0x76C6},
+ {0x1525A, 0x76C3},
+ {0x1525B, 0x76C5},
+ {0x1525C, 0x7701},
+ {0x1525D, 0x76F9},
+ {0x1525E, 0x76F8},
+ {0x1525F, 0x7709},
+ {0x15260, 0x770B},
+ {0x15261, 0x76FE},
+ {0x15262, 0x76FC},
+ {0x15263, 0x7707},
+ {0x15264, 0x77DC},
+ {0x15265, 0x7802},
+ {0x15266, 0x7814},
+ {0x15267, 0x780C},
+ {0x15268, 0x780D},
+ {0x15269, 0x7946},
+ {0x1526A, 0x7949},
+ {0x1526B, 0x7948},
+ {0x1526C, 0x7947},
+ {0x1526D, 0x79B9},
+ {0x1526E, 0x79BA},
+ {0x1526F, 0x79D1},
+ {0x15270, 0x79D2},
+ {0x15271, 0x79CB},
+ {0x15272, 0x7A7F},
+ {0x15273, 0x7A81},
+ {0x15274, 0x7AFF},
+ {0x15275, 0x7AFD},
+ {0x15276, 0x7C7D},
+ {0x15277, 0x7D02},
+ {0x15278, 0x7D05},
+ {0x15279, 0x7D00},
+ {0x1527A, 0x7D09},
+ {0x1527B, 0x7D07},
+ {0x1527C, 0x7D04},
+ {0x1527D, 0x7D06},
+ {0x1527E, 0x7F38},
+ {0x15321, 0x7F8E},
+ {0x15322, 0x7FBF},
+ {0x15323, 0x8010},
+ {0x15324, 0x800D},
+ {0x15325, 0x8011},
+ {0x15326, 0x8036},
+ {0x15327, 0x80D6},
+ {0x15328, 0x80E5},
+ {0x15329, 0x80DA},
+ {0x1532A, 0x80C3},
+ {0x1532B, 0x80C4},
+ {0x1532C, 0x80CC},
+ {0x1532D, 0x80E1},
+ {0x1532E, 0x80DB},
+ {0x1532F, 0x80CE},
+ {0x15330, 0x80DE},
+ {0x15331, 0x80E4},
+ {0x15332, 0x80DD},
+ {0x15333, 0x81F4},
+ {0x15334, 0x8222},
+ {0x15335, 0x82E7},
+ {0x15336, 0x8303},
+ {0x15337, 0x8305},
+ {0x15338, 0x82E3},
+ {0x15339, 0x82DB},
+ {0x1533A, 0x82E6},
+ {0x1533B, 0x8304},
+ {0x1533C, 0x82E5},
+ {0x1533D, 0x8302},
+ {0x1533E, 0x8309},
+ {0x1533F, 0x82D2},
+ {0x15340, 0x82D7},
+ {0x15341, 0x82F1},
+ {0x15342, 0x8301},
+ {0x15343, 0x82DC},
+ {0x15344, 0x82D4},
+ {0x15345, 0x82D1},
+ {0x15346, 0x82DE},
+ {0x15347, 0x82D3},
+ {0x15348, 0x82DF},
+ {0x15349, 0x82EF},
+ {0x1534A, 0x8306},
+ {0x1534B, 0x8650},
+ {0x1534C, 0x8679},
+ {0x1534D, 0x867B},
+ {0x1534E, 0x867A},
+ {0x1534F, 0x884D},
+ {0x15350, 0x886B},
+ {0x15351, 0x8981},
+ {0x15352, 0x89D4},
+ {0x15353, 0x8A08},
+ {0x15354, 0x8A02},
+ {0x15355, 0x8A03},
+ {0x15356, 0x8C9E},
+ {0x15357, 0x8CA0},
+ {0x15358, 0x8D74},
+ {0x15359, 0x8D73},
+ {0x1535A, 0x8DB4},
+ {0x1535B, 0x8ECD},
+ {0x1535C, 0x8ECC},
+ {0x1535D, 0x8FF0},
+ {0x1535E, 0x8FE6},
+ {0x1535F, 0x8FE2},
+ {0x15360, 0x8FEA},
+ {0x15361, 0x8FE5},
+ {0x15362, 0x8FED},
+ {0x15363, 0x8FEB},
+ {0x15364, 0x8FE4},
+ {0x15365, 0x8FE8},
+ {0x15366, 0x90CA},
+ {0x15367, 0x90CE},
+ {0x15368, 0x90C1},
+ {0x15369, 0x90C3},
+ {0x1536A, 0x914B},
+ {0x1536B, 0x914A},
+ {0x1536C, 0x91CD},
+ {0x1536D, 0x9582},
+ {0x1536E, 0x9650},
+ {0x1536F, 0x964B},
+ {0x15370, 0x964C},
+ {0x15371, 0x964D},
+ {0x15372, 0x9762},
+ {0x15373, 0x9769},
+ {0x15374, 0x97CB},
+ {0x15375, 0x97ED},
+ {0x15376, 0x97F3},
+ {0x15377, 0x9801},
+ {0x15378, 0x98A8},
+ {0x15379, 0x98DB},
+ {0x1537A, 0x98DF},
+ {0x1537B, 0x9996},
+ {0x1537C, 0x9999},
+ {0x1537D, 0x4E58},
+ {0x1537E, 0x4EB3},
+ {0x15421, 0x500C},
+ {0x15422, 0x500D},
+ {0x15423, 0x5023},
+ {0x15424, 0x4FEF},
+ {0x15425, 0x5026},
+ {0x15426, 0x5025},
+ {0x15427, 0x4FF8},
+ {0x15428, 0x5029},
+ {0x15429, 0x5016},
+ {0x1542A, 0x5006},
+ {0x1542B, 0x503C},
+ {0x1542C, 0x501F},
+ {0x1542D, 0x501A},
+ {0x1542E, 0x5012},
+ {0x1542F, 0x5011},
+ {0x15430, 0x4FFA},
+ {0x15431, 0x5000},
+ {0x15432, 0x5014},
+ {0x15433, 0x5028},
+ {0x15434, 0x4FF1},
+ {0x15435, 0x5021},
+ {0x15436, 0x500B},
+ {0x15437, 0x5019},
+ {0x15438, 0x5018},
+ {0x15439, 0x4FF3},
+ {0x1543A, 0x4FEE},
+ {0x1543B, 0x502D},
+ {0x1543C, 0x502A},
+ {0x1543D, 0x4FFE},
+ {0x1543E, 0x502B},
+ {0x1543F, 0x5009},
+ {0x15440, 0x517C},
+ {0x15441, 0x51A4},
+ {0x15442, 0x51A5},
+ {0x15443, 0x51A2},
+ {0x15444, 0x51CD},
+ {0x15445, 0x51CC},
+ {0x15446, 0x51C6},
+ {0x15447, 0x51CB},
+ {0x15448, 0x5256},
+ {0x15449, 0x525C},
+ {0x1544A, 0x5254},
+ {0x1544B, 0x525B},
+ {0x1544C, 0x525D},
+ {0x1544D, 0x532A},
+ {0x1544E, 0x537F},
+ {0x1544F, 0x539F},
+ {0x15450, 0x539D},
+ {0x15451, 0x53DF},
+ {0x15452, 0x54E8},
+ {0x15453, 0x5510},
+ {0x15454, 0x5501},
+ {0x15455, 0x5537},
+ {0x15456, 0x54FC},
+ {0x15457, 0x54E5},
+ {0x15458, 0x54F2},
+ {0x15459, 0x5506},
+ {0x1545A, 0x54FA},
+ {0x1545B, 0x5514},
+ {0x1545C, 0x54E9},
+ {0x1545D, 0x54ED},
+ {0x1545E, 0x54E1},
+ {0x1545F, 0x5509},
+ {0x15460, 0x54EE},
+ {0x15461, 0x54EA},
+ {0x15462, 0x54E6},
+ {0x15463, 0x5527},
+ {0x15464, 0x5507},
+ {0x15465, 0x54FD},
+ {0x15466, 0x550F},
+ {0x15467, 0x5703},
+ {0x15468, 0x5704},
+ {0x15469, 0x57C2},
+ {0x1546A, 0x57D4},
+ {0x1546B, 0x57CB},
+ {0x1546C, 0x57C3},
+ {0x1546D, 0x5809},
+ {0x1546E, 0x590F},
+ {0x1546F, 0x5957},
+ {0x15470, 0x5958},
+ {0x15471, 0x595A},
+ {0x15472, 0x5A11},
+ {0x15473, 0x5A18},
+ {0x15474, 0x5A1C},
+ {0x15475, 0x5A1F},
+ {0x15476, 0x5A1B},
+ {0x15477, 0x5A13},
+ {0x15478, 0x59EC},
+ {0x15479, 0x5A20},
+ {0x1547A, 0x5A23},
+ {0x1547B, 0x5A29},
+ {0x1547C, 0x5A25},
+ {0x1547D, 0x5A0C},
+ {0x1547E, 0x5A09},
+ {0x15521, 0x5B6B},
+ {0x15522, 0x5C58},
+ {0x15523, 0x5BB0},
+ {0x15524, 0x5BB3},
+ {0x15525, 0x5BB6},
+ {0x15526, 0x5BB4},
+ {0x15527, 0x5BAE},
+ {0x15528, 0x5BB5},
+ {0x15529, 0x5BB9},
+ {0x1552A, 0x5BB8},
+ {0x1552B, 0x5C04},
+ {0x1552C, 0x5C51},
+ {0x1552D, 0x5C55},
+ {0x1552E, 0x5C50},
+ {0x1552F, 0x5CED},
+ {0x15530, 0x5CFD},
+ {0x15531, 0x5CFB},
+ {0x15532, 0x5CEA},
+ {0x15533, 0x5CE8},
+ {0x15534, 0x5CF0},
+ {0x15535, 0x5CF6},
+ {0x15536, 0x5D01},
+ {0x15537, 0x5CF4},
+ {0x15538, 0x5DEE},
+ {0x15539, 0x5E2D},
+ {0x1553A, 0x5E2B},
+ {0x1553B, 0x5EAB},
+ {0x1553C, 0x5EAD},
+ {0x1553D, 0x5EA7},
+ {0x1553E, 0x5F31},
+ {0x1553F, 0x5F92},
+ {0x15540, 0x5F91},
+ {0x15541, 0x5F90},
+ {0x15542, 0x6059},
+ {0x15543, 0x6063},
+ {0x15544, 0x6065},
+ {0x15545, 0x6050},
+ {0x15546, 0x6055},
+ {0x15547, 0x606D},
+ {0x15548, 0x6069},
+ {0x15549, 0x606F},
+ {0x1554A, 0x6084},
+ {0x1554B, 0x609F},
+ {0x1554C, 0x609A},
+ {0x1554D, 0x608D},
+ {0x1554E, 0x6094},
+ {0x1554F, 0x608C},
+ {0x15550, 0x6085},
+ {0x15551, 0x6096},
+ {0x15552, 0x6247},
+ {0x15553, 0x62F3},
+ {0x15554, 0x6308},
+ {0x15555, 0x62FF},
+ {0x15556, 0x634E},
+ {0x15557, 0x633E},
+ {0x15558, 0x632F},
+ {0x15559, 0x6355},
+ {0x1555A, 0x6342},
+ {0x1555B, 0x6346},
+ {0x1555C, 0x634F},
+ {0x1555D, 0x6349},
+ {0x1555E, 0x633A},
+ {0x1555F, 0x6350},
+ {0x15560, 0x633D},
+ {0x15561, 0x632A},
+ {0x15562, 0x632B},
+ {0x15563, 0x6328},
+ {0x15564, 0x634D},
+ {0x15565, 0x634C},
+ {0x15566, 0x6548},
+ {0x15567, 0x6549},
+ {0x15568, 0x6599},
+ {0x15569, 0x65C1},
+ {0x1556A, 0x65C5},
+ {0x1556B, 0x6642},
+ {0x1556C, 0x6649},
+ {0x1556D, 0x664F},
+ {0x1556E, 0x6643},
+ {0x1556F, 0x6652},
+ {0x15570, 0x664C},
+ {0x15571, 0x6645},
+ {0x15572, 0x6641},
+ {0x15573, 0x66F8},
+ {0x15574, 0x6714},
+ {0x15575, 0x6715},
+ {0x15576, 0x6717},
+ {0x15577, 0x6821},
+ {0x15578, 0x6838},
+ {0x15579, 0x6848},
+ {0x1557A, 0x6846},
+ {0x1557B, 0x6853},
+ {0x1557C, 0x6839},
+ {0x1557D, 0x6842},
+ {0x1557E, 0x6854},
+ {0x15621, 0x6829},
+ {0x15622, 0x68B3},
+ {0x15623, 0x6817},
+ {0x15624, 0x684C},
+ {0x15625, 0x6851},
+ {0x15626, 0x683D},
+ {0x15627, 0x67F4},
+ {0x15628, 0x6850},
+ {0x15629, 0x6840},
+ {0x1562A, 0x683C},
+ {0x1562B, 0x6843},
+ {0x1562C, 0x682A},
+ {0x1562D, 0x6845},
+ {0x1562E, 0x6813},
+ {0x1562F, 0x6818},
+ {0x15630, 0x6841},
+ {0x15631, 0x6B8A},
+ {0x15632, 0x6B89},
+ {0x15633, 0x6BB7},
+ {0x15634, 0x6C23},
+ {0x15635, 0x6C27},
+ {0x15636, 0x6C28},
+ {0x15637, 0x6C26},
+ {0x15638, 0x6C24},
+ {0x15639, 0x6CF0},
+ {0x1563A, 0x6D6A},
+ {0x1563B, 0x6D95},
+ {0x1563C, 0x6D88},
+ {0x1563D, 0x6D87},
+ {0x1563E, 0x6D66},
+ {0x1563F, 0x6D78},
+ {0x15640, 0x6D77},
+ {0x15641, 0x6D59},
+ {0x15642, 0x6D93},
+ {0x15643, 0x6D6C},
+ {0x15644, 0x6D89},
+ {0x15645, 0x6D6E},
+ {0x15646, 0x6D5A},
+ {0x15647, 0x6D74},
+ {0x15648, 0x6D69},
+ {0x15649, 0x6D8C},
+ {0x1564A, 0x6D8A},
+ {0x1564B, 0x6D79},
+ {0x1564C, 0x6D85},
+ {0x1564D, 0x6D65},
+ {0x1564E, 0x6D94},
+ {0x1564F, 0x70CA},
+ {0x15650, 0x70D8},
+ {0x15651, 0x70E4},
+ {0x15652, 0x70D9},
+ {0x15653, 0x70C8},
+ {0x15654, 0x70CF},
+ {0x15655, 0x7239},
+ {0x15656, 0x7279},
+ {0x15657, 0x72FC},
+ {0x15658, 0x72F9},
+ {0x15659, 0x72FD},
+ {0x1565A, 0x72F8},
+ {0x1565B, 0x72F7},
+ {0x1565C, 0x7386},
+ {0x1565D, 0x73ED},
+ {0x1565E, 0x7409},
+ {0x1565F, 0x73EE},
+ {0x15660, 0x73E0},
+ {0x15661, 0x73EA},
+ {0x15662, 0x73DE},
+ {0x15663, 0x7554},
+ {0x15664, 0x755D},
+ {0x15665, 0x755C},
+ {0x15666, 0x755A},
+ {0x15667, 0x7559},
+ {0x15668, 0x75BE},
+ {0x15669, 0x75C5},
+ {0x1566A, 0x75C7},
+ {0x1566B, 0x75B2},
+ {0x1566C, 0x75B3},
+ {0x1566D, 0x75BD},
+ {0x1566E, 0x75BC},
+ {0x1566F, 0x75B9},
+ {0x15670, 0x75C2},
+ {0x15671, 0x75B8},
+ {0x15672, 0x768B},
+ {0x15673, 0x76B0},
+ {0x15674, 0x76CA},
+ {0x15675, 0x76CD},
+ {0x15676, 0x76CE},
+ {0x15677, 0x7729},
+ {0x15678, 0x771F},
+ {0x15679, 0x7720},
+ {0x1567A, 0x7728},
+ {0x1567B, 0x77E9},
+ {0x1567C, 0x7830},
+ {0x1567D, 0x7827},
+ {0x1567E, 0x7838},
+ {0x15721, 0x781D},
+ {0x15722, 0x7834},
+ {0x15723, 0x7837},
+ {0x15724, 0x7825},
+ {0x15725, 0x782D},
+ {0x15726, 0x7820},
+ {0x15727, 0x781F},
+ {0x15728, 0x7832},
+ {0x15729, 0x7955},
+ {0x1572A, 0x7950},
+ {0x1572B, 0x7960},
+ {0x1572C, 0x795F},
+ {0x1572D, 0x7956},
+ {0x1572E, 0x795E},
+ {0x1572F, 0x795D},
+ {0x15730, 0x7957},
+ {0x15731, 0x795A},
+ {0x15732, 0x79E4},
+ {0x15733, 0x79E3},
+ {0x15734, 0x79E7},
+ {0x15735, 0x79DF},
+ {0x15736, 0x79E6},
+ {0x15737, 0x79E9},
+ {0x15738, 0x79D8},
+ {0x15739, 0x7A84},
+ {0x1573A, 0x7A88},
+ {0x1573B, 0x7AD9},
+ {0x1573C, 0x7B06},
+ {0x1573D, 0x7B11},
+ {0x1573E, 0x7C89},
+ {0x1573F, 0x7D21},
+ {0x15740, 0x7D17},
+ {0x15741, 0x7D0B},
+ {0x15742, 0x7D0A},
+ {0x15743, 0x7D20},
+ {0x15744, 0x7D22},
+ {0x15745, 0x7D14},
+ {0x15746, 0x7D10},
+ {0x15747, 0x7D15},
+ {0x15748, 0x7D1A},
+ {0x15749, 0x7D1C},
+ {0x1574A, 0x7D0D},
+ {0x1574B, 0x7D19},
+ {0x1574C, 0x7D1B},
+ {0x1574D, 0x7F3A},
+ {0x1574E, 0x7F5F},
+ {0x1574F, 0x7F94},
+ {0x15750, 0x7FC5},
+ {0x15751, 0x7FC1},
+ {0x15752, 0x8006},
+ {0x15753, 0x8004},
+ {0x15754, 0x8018},
+ {0x15755, 0x8015},
+ {0x15756, 0x8019},
+ {0x15757, 0x8017},
+ {0x15758, 0x803D},
+ {0x15759, 0x803F},
+ {0x1575A, 0x80F1},
+ {0x1575B, 0x8102},
+ {0x1575C, 0x80F0},
+ {0x1575D, 0x8105},
+ {0x1575E, 0x80ED},
+ {0x1575F, 0x80F4},
+ {0x15760, 0x8106},
+ {0x15761, 0x80F8},
+ {0x15762, 0x80F3},
+ {0x15763, 0x8108},
+ {0x15764, 0x80FD},
+ {0x15765, 0x810A},
+ {0x15766, 0x80FC},
+ {0x15767, 0x80EF},
+ {0x15768, 0x81ED},
+ {0x15769, 0x81EC},
+ {0x1576A, 0x8200},
+ {0x1576B, 0x8210},
+ {0x1576C, 0x822A},
+ {0x1576D, 0x822B},
+ {0x1576E, 0x8228},
+ {0x1576F, 0x822C},
+ {0x15770, 0x82BB},
+ {0x15771, 0x832B},
+ {0x15772, 0x8352},
+ {0x15773, 0x8354},
+ {0x15774, 0x834A},
+ {0x15775, 0x8338},
+ {0x15776, 0x8350},
+ {0x15777, 0x8349},
+ {0x15778, 0x8335},
+ {0x15779, 0x8334},
+ {0x1577A, 0x834F},
+ {0x1577B, 0x8332},
+ {0x1577C, 0x8339},
+ {0x1577D, 0x8336},
+ {0x1577E, 0x8317},
+ {0x15821, 0x8340},
+ {0x15822, 0x8331},
+ {0x15823, 0x8328},
+ {0x15824, 0x8343},
+ {0x15825, 0x8654},
+ {0x15826, 0x868A},
+ {0x15827, 0x86AA},
+ {0x15828, 0x8693},
+ {0x15829, 0x86A4},
+ {0x1582A, 0x86A9},
+ {0x1582B, 0x868C},
+ {0x1582C, 0x86A3},
+ {0x1582D, 0x869C},
+ {0x1582E, 0x8870},
+ {0x1582F, 0x8877},
+ {0x15830, 0x8881},
+ {0x15831, 0x8882},
+ {0x15832, 0x887D},
+ {0x15833, 0x8879},
+ {0x15834, 0x8A18},
+ {0x15835, 0x8A10},
+ {0x15836, 0x8A0E},
+ {0x15837, 0x8A0C},
+ {0x15838, 0x8A15},
+ {0x15839, 0x8A0A},
+ {0x1583A, 0x8A17},
+ {0x1583B, 0x8A13},
+ {0x1583C, 0x8A16},
+ {0x1583D, 0x8A0F},
+ {0x1583E, 0x8A11},
+ {0x1583F, 0x8C48},
+ {0x15840, 0x8C7A},
+ {0x15841, 0x8C79},
+ {0x15842, 0x8CA1},
+ {0x15843, 0x8CA2},
+ {0x15844, 0x8D77},
+ {0x15845, 0x8EAC},
+ {0x15846, 0x8ED2},
+ {0x15847, 0x8ED4},
+ {0x15848, 0x8ECF},
+ {0x15849, 0x8FB1},
+ {0x1584A, 0x9001},
+ {0x1584B, 0x9006},
+ {0x1584C, 0x8FF7},
+ {0x1584D, 0x9000},
+ {0x1584E, 0x8FFA},
+ {0x1584F, 0x8FF4},
+ {0x15850, 0x9003},
+ {0x15851, 0x8FFD},
+ {0x15852, 0x9005},
+ {0x15853, 0x8FF8},
+ {0x15854, 0x9095},
+ {0x15855, 0x90E1},
+ {0x15856, 0x90DD},
+ {0x15857, 0x90E2},
+ {0x15858, 0x9152},
+ {0x15859, 0x914D},
+ {0x1585A, 0x914C},
+ {0x1585B, 0x91D8},
+ {0x1585C, 0x91DD},
+ {0x1585D, 0x91D7},
+ {0x1585E, 0x91DC},
+ {0x1585F, 0x91D9},
+ {0x15860, 0x9583},
+ {0x15861, 0x9662},
+ {0x15862, 0x9663},
+ {0x15863, 0x9661},
+ {0x15864, 0x965B},
+ {0x15865, 0x965D},
+ {0x15866, 0x9664},
+ {0x15867, 0x9658},
+ {0x15868, 0x965E},
+ {0x15869, 0x96BB},
+ {0x1586A, 0x98E2},
+ {0x1586B, 0x99AC},
+ {0x1586C, 0x9AA8},
+ {0x1586D, 0x9AD8},
+ {0x1586E, 0x9B25},
+ {0x1586F, 0x9B32},
+ {0x15870, 0x9B3C},
+ {0x15871, 0x4E7E},
+ {0x15872, 0x507A},
+ {0x15873, 0x507D},
+ {0x15874, 0x505C},
+ {0x15875, 0x5047},
+ {0x15876, 0x5043},
+ {0x15877, 0x504C},
+ {0x15878, 0x505A},
+ {0x15879, 0x5049},
+ {0x1587A, 0x5065},
+ {0x1587B, 0x5076},
+ {0x1587C, 0x504E},
+ {0x1587D, 0x5055},
+ {0x1587E, 0x5075},
+ {0x15921, 0x5074},
+ {0x15922, 0x5077},
+ {0x15923, 0x504F},
+ {0x15924, 0x500F},
+ {0x15925, 0x506F},
+ {0x15926, 0x506D},
+ {0x15927, 0x515C},
+ {0x15928, 0x5195},
+ {0x15929, 0x51F0},
+ {0x1592A, 0x526A},
+ {0x1592B, 0x526F},
+ {0x1592C, 0x52D2},
+ {0x1592D, 0x52D9},
+ {0x1592E, 0x52D8},
+ {0x1592F, 0x52D5},
+ {0x15930, 0x5310},
+ {0x15931, 0x530F},
+ {0x15932, 0x5319},
+ {0x15933, 0x533F},
+ {0x15934, 0x5340},
+ {0x15935, 0x533E},
+ {0x15936, 0x53C3},
+ {0x15937, 0x66FC},
+ {0x15938, 0x5546},
+ {0x15939, 0x556A},
+ {0x1593A, 0x5566},
+ {0x1593B, 0x5544},
+ {0x1593C, 0x555E},
+ {0x1593D, 0x5561},
+ {0x1593E, 0x5543},
+ {0x1593F, 0x554A},
+ {0x15940, 0x5531},
+ {0x15941, 0x5556},
+ {0x15942, 0x554F},
+ {0x15943, 0x5555},
+ {0x15944, 0x552F},
+ {0x15945, 0x5564},
+ {0x15946, 0x5538},
+ {0x15947, 0x552E},
+ {0x15948, 0x555C},
+ {0x15949, 0x552C},
+ {0x1594A, 0x5563},
+ {0x1594B, 0x5533},
+ {0x1594C, 0x5541},
+ {0x1594D, 0x5557},
+ {0x1594E, 0x5708},
+ {0x1594F, 0x570B},
+ {0x15950, 0x5709},
+ {0x15951, 0x57DF},
+ {0x15952, 0x5805},
+ {0x15953, 0x580A},
+ {0x15954, 0x5806},
+ {0x15955, 0x57E0},
+ {0x15956, 0x57E4},
+ {0x15957, 0x57FA},
+ {0x15958, 0x5802},
+ {0x15959, 0x5835},
+ {0x1595A, 0x57F7},
+ {0x1595B, 0x57F9},
+ {0x1595C, 0x5920},
+ {0x1595D, 0x5962},
+ {0x1595E, 0x5A36},
+ {0x1595F, 0x5A41},
+ {0x15960, 0x5A49},
+ {0x15961, 0x5A66},
+ {0x15962, 0x5A6A},
+ {0x15963, 0x5A40},
+ {0x15964, 0x5A3C},
+ {0x15965, 0x5A62},
+ {0x15966, 0x5A5A},
+ {0x15967, 0x5A46},
+ {0x15968, 0x5A4A},
+ {0x15969, 0x5B70},
+ {0x1596A, 0x5BC7},
+ {0x1596B, 0x5BC5},
+ {0x1596C, 0x5BC4},
+ {0x1596D, 0x5BC2},
+ {0x1596E, 0x5BBF},
+ {0x1596F, 0x5BC6},
+ {0x15970, 0x5C09},
+ {0x15971, 0x5C08},
+ {0x15972, 0x5C07},
+ {0x15973, 0x5C60},
+ {0x15974, 0x5C5C},
+ {0x15975, 0x5C5D},
+ {0x15976, 0x5D07},
+ {0x15977, 0x5D06},
+ {0x15978, 0x5D0E},
+ {0x15979, 0x5D1B},
+ {0x1597A, 0x5D16},
+ {0x1597B, 0x5D22},
+ {0x1597C, 0x5D11},
+ {0x1597D, 0x5D29},
+ {0x1597E, 0x5D14},
+ {0x15A21, 0x5D19},
+ {0x15A22, 0x5D24},
+ {0x15A23, 0x5D27},
+ {0x15A24, 0x5D17},
+ {0x15A25, 0x5DE2},
+ {0x15A26, 0x5E38},
+ {0x15A27, 0x5E36},
+ {0x15A28, 0x5E33},
+ {0x15A29, 0x5E37},
+ {0x15A2A, 0x5EB7},
+ {0x15A2B, 0x5EB8},
+ {0x15A2C, 0x5EB6},
+ {0x15A2D, 0x5EB5},
+ {0x15A2E, 0x5EBE},
+ {0x15A2F, 0x5F35},
+ {0x15A30, 0x5F37},
+ {0x15A31, 0x5F57},
+ {0x15A32, 0x5F6C},
+ {0x15A33, 0x5F69},
+ {0x15A34, 0x5F6B},
+ {0x15A35, 0x5F97},
+ {0x15A36, 0x5F99},
+ {0x15A37, 0x5F9E},
+ {0x15A38, 0x5F98},
+ {0x15A39, 0x5FA1},
+ {0x15A3A, 0x5FA0},
+ {0x15A3B, 0x5F9C},
+ {0x15A3C, 0x607F},
+ {0x15A3D, 0x60A3},
+ {0x15A3E, 0x6089},
+ {0x15A3F, 0x60A0},
+ {0x15A40, 0x60A8},
+ {0x15A41, 0x60CB},
+ {0x15A42, 0x60B4},
+ {0x15A43, 0x60E6},
+ {0x15A44, 0x60BD},
+ {0x15A45, 0x60C5},
+ {0x15A46, 0x60BB},
+ {0x15A47, 0x60B5},
+ {0x15A48, 0x60DC},
+ {0x15A49, 0x60BC},
+ {0x15A4A, 0x60D8},
+ {0x15A4B, 0x60D5},
+ {0x15A4C, 0x60C6},
+ {0x15A4D, 0x60DF},
+ {0x15A4E, 0x60B8},
+ {0x15A4F, 0x60DA},
+ {0x15A50, 0x60C7},
+ {0x15A51, 0x621A},
+ {0x15A52, 0x621B},
+ {0x15A53, 0x6248},
+ {0x15A54, 0x63A0},
+ {0x15A55, 0x63A7},
+ {0x15A56, 0x6372},
+ {0x15A57, 0x6396},
+ {0x15A58, 0x63A2},
+ {0x15A59, 0x63A5},
+ {0x15A5A, 0x6377},
+ {0x15A5B, 0x6367},
+ {0x15A5C, 0x6398},
+ {0x15A5D, 0x63AA},
+ {0x15A5E, 0x6371},
+ {0x15A5F, 0x63A9},
+ {0x15A60, 0x6389},
+ {0x15A61, 0x6383},
+ {0x15A62, 0x639B},
+ {0x15A63, 0x636B},
+ {0x15A64, 0x63A8},
+ {0x15A65, 0x6384},
+ {0x15A66, 0x6388},
+ {0x15A67, 0x6399},
+ {0x15A68, 0x63A1},
+ {0x15A69, 0x63AC},
+ {0x15A6A, 0x6392},
+ {0x15A6B, 0x638F},
+ {0x15A6C, 0x6380},
+ {0x15A6D, 0x637B},
+ {0x15A6E, 0x6369},
+ {0x15A6F, 0x6368},
+ {0x15A70, 0x637A},
+ {0x15A71, 0x655D},
+ {0x15A72, 0x6556},
+ {0x15A73, 0x6551},
+ {0x15A74, 0x6559},
+ {0x15A75, 0x6557},
+ {0x15A76, 0x555F},
+ {0x15A77, 0x654F},
+ {0x15A78, 0x6558},
+ {0x15A79, 0x6555},
+ {0x15A7A, 0x6554},
+ {0x15A7B, 0x659C},
+ {0x15A7C, 0x659B},
+ {0x15A7D, 0x65AC},
+ {0x15A7E, 0x65CF},
+ {0x15B21, 0x65CB},
+ {0x15B22, 0x65CC},
+ {0x15B23, 0x65CE},
+ {0x15B24, 0x665D},
+ {0x15B25, 0x665A},
+ {0x15B26, 0x6664},
+ {0x15B27, 0x6668},
+ {0x15B28, 0x6666},
+ {0x15B29, 0x665E},
+ {0x15B2A, 0x66F9},
+ {0x15B2B, 0x52D7},
+ {0x15B2C, 0x671B},
+ {0x15B2D, 0x6881},
+ {0x15B2E, 0x68AF},
+ {0x15B2F, 0x68A2},
+ {0x15B30, 0x6893},
+ {0x15B31, 0x68B5},
+ {0x15B32, 0x687F},
+ {0x15B33, 0x6876},
+ {0x15B34, 0x68B1},
+ {0x15B35, 0x68A7},
+ {0x15B36, 0x6897},
+ {0x15B37, 0x68B0},
+ {0x15B38, 0x6883},
+ {0x15B39, 0x68C4},
+ {0x15B3A, 0x68AD},
+ {0x15B3B, 0x6886},
+ {0x15B3C, 0x6885},
+ {0x15B3D, 0x6894},
+ {0x15B3E, 0x689D},
+ {0x15B3F, 0x68A8},
+ {0x15B40, 0x689F},
+ {0x15B41, 0x68A1},
+ {0x15B42, 0x6882},
+ {0x15B43, 0x6B32},
+ {0x15B44, 0x6BBA},
+ {0x15B45, 0x6BEB},
+ {0x15B46, 0x6BEC},
+ {0x15B47, 0x6C2B},
+ {0x15B48, 0x6D8E},
+ {0x15B49, 0x6DBC},
+ {0x15B4A, 0x6DF3},
+ {0x15B4B, 0x6DD9},
+ {0x15B4C, 0x6DB2},
+ {0x15B4D, 0x6DE1},
+ {0x15B4E, 0x6DCC},
+ {0x15B4F, 0x6DE4},
+ {0x15B50, 0x6DFB},
+ {0x15B51, 0x6DFA},
+ {0x15B52, 0x6E05},
+ {0x15B53, 0x6DC7},
+ {0x15B54, 0x6DCB},
+ {0x15B55, 0x6DAF},
+ {0x15B56, 0x6DD1},
+ {0x15B57, 0x6DAE},
+ {0x15B58, 0x6DDE},
+ {0x15B59, 0x6DF9},
+ {0x15B5A, 0x6DB8},
+ {0x15B5B, 0x6DF7},
+ {0x15B5C, 0x6DF5},
+ {0x15B5D, 0x6DC5},
+ {0x15B5E, 0x6DD2},
+ {0x15B5F, 0x6E1A},
+ {0x15B60, 0x6DB5},
+ {0x15B61, 0x6DDA},
+ {0x15B62, 0x6DEB},
+ {0x15B63, 0x6DD8},
+ {0x15B64, 0x6DEA},
+ {0x15B65, 0x6DF1},
+ {0x15B66, 0x6DEE},
+ {0x15B67, 0x6DE8},
+ {0x15B68, 0x6DC6},
+ {0x15B69, 0x6DC4},
+ {0x15B6A, 0x6DAA},
+ {0x15B6B, 0x6DEC},
+ {0x15B6C, 0x6DBF},
+ {0x15B6D, 0x6DE6},
+ {0x15B6E, 0x70F9},
+ {0x15B6F, 0x7109},
+ {0x15B70, 0x710A},
+ {0x15B71, 0x70FD},
+ {0x15B72, 0x70EF},
+ {0x15B73, 0x723D},
+ {0x15B74, 0x727D},
+ {0x15B75, 0x7281},
+ {0x15B76, 0x731C},
+ {0x15B77, 0x731B},
+ {0x15B78, 0x7316},
+ {0x15B79, 0x7313},
+ {0x15B7A, 0x7319},
+ {0x15B7B, 0x7387},
+ {0x15B7C, 0x7405},
+ {0x15B7D, 0x740A},
+ {0x15B7E, 0x7403},
+ {0x15C21, 0x7406},
+ {0x15C22, 0x73FE},
+ {0x15C23, 0x740D},
+ {0x15C24, 0x74E0},
+ {0x15C25, 0x74F6},
+ {0x15C26, 0x74F7},
+ {0x15C27, 0x751C},
+ {0x15C28, 0x7522},
+ {0x15C29, 0x7565},
+ {0x15C2A, 0x7566},
+ {0x15C2B, 0x7562},
+ {0x15C2C, 0x7570},
+ {0x15C2D, 0x758F},
+ {0x15C2E, 0x75D4},
+ {0x15C2F, 0x75D5},
+ {0x15C30, 0x75B5},
+ {0x15C31, 0x75CA},
+ {0x15C32, 0x75CD},
+ {0x15C33, 0x768E},
+ {0x15C34, 0x76D4},
+ {0x15C35, 0x76D2},
+ {0x15C36, 0x76DB},
+ {0x15C37, 0x7737},
+ {0x15C38, 0x773E},
+ {0x15C39, 0x773C},
+ {0x15C3A, 0x7736},
+ {0x15C3B, 0x7738},
+ {0x15C3C, 0x773A},
+ {0x15C3D, 0x786B},
+ {0x15C3E, 0x7843},
+ {0x15C3F, 0x784E},
+ {0x15C40, 0x7965},
+ {0x15C41, 0x7968},
+ {0x15C42, 0x796D},
+ {0x15C43, 0x79FB},
+ {0x15C44, 0x7A92},
+ {0x15C45, 0x7A95},
+ {0x15C46, 0x7B20},
+ {0x15C47, 0x7B28},
+ {0x15C48, 0x7B1B},
+ {0x15C49, 0x7B2C},
+ {0x15C4A, 0x7B26},
+ {0x15C4B, 0x7B19},
+ {0x15C4C, 0x7B1E},
+ {0x15C4D, 0x7B2E},
+ {0x15C4E, 0x7C92},
+ {0x15C4F, 0x7C97},
+ {0x15C50, 0x7C95},
+ {0x15C51, 0x7D46},
+ {0x15C52, 0x7D43},
+ {0x15C53, 0x7D71},
+ {0x15C54, 0x7D2E},
+ {0x15C55, 0x7D39},
+ {0x15C56, 0x7D3C},
+ {0x15C57, 0x7D40},
+ {0x15C58, 0x7D30},
+ {0x15C59, 0x7D33},
+ {0x15C5A, 0x7D44},
+ {0x15C5B, 0x7D2F},
+ {0x15C5C, 0x7D42},
+ {0x15C5D, 0x7D32},
+ {0x15C5E, 0x7D31},
+ {0x15C5F, 0x7F3D},
+ {0x15C60, 0x7F9E},
+ {0x15C61, 0x7F9A},
+ {0x15C62, 0x7FCC},
+ {0x15C63, 0x7FCE},
+ {0x15C64, 0x7FD2},
+ {0x15C65, 0x801C},
+ {0x15C66, 0x804A},
+ {0x15C67, 0x8046},
+ {0x15C68, 0x812F},
+ {0x15C69, 0x8116},
+ {0x15C6A, 0x8123},
+ {0x15C6B, 0x812B},
+ {0x15C6C, 0x8129},
+ {0x15C6D, 0x8130},
+ {0x15C6E, 0x8124},
+ {0x15C6F, 0x8202},
+ {0x15C70, 0x8235},
+ {0x15C71, 0x8237},
+ {0x15C72, 0x8236},
+ {0x15C73, 0x8239},
+ {0x15C74, 0x838E},
+ {0x15C75, 0x839E},
+ {0x15C76, 0x8398},
+ {0x15C77, 0x8378},
+ {0x15C78, 0x83A2},
+ {0x15C79, 0x8396},
+ {0x15C7A, 0x83BD},
+ {0x15C7B, 0x83AB},
+ {0x15C7C, 0x8392},
+ {0x15C7D, 0x838A},
+ {0x15C7E, 0x8393},
+ {0x15D21, 0x8389},
+ {0x15D22, 0x83A0},
+ {0x15D23, 0x8377},
+ {0x15D24, 0x837B},
+ {0x15D25, 0x837C},
+ {0x15D26, 0x8386},
+ {0x15D27, 0x83A7},
+ {0x15D28, 0x8655},
+ {0x15D29, 0x5F6A},
+ {0x15D2A, 0x86C7},
+ {0x15D2B, 0x86C0},
+ {0x15D2C, 0x86B6},
+ {0x15D2D, 0x86C4},
+ {0x15D2E, 0x86B5},
+ {0x15D2F, 0x86C6},
+ {0x15D30, 0x86CB},
+ {0x15D31, 0x86B1},
+ {0x15D32, 0x86AF},
+ {0x15D33, 0x86C9},
+ {0x15D34, 0x8853},
+ {0x15D35, 0x889E},
+ {0x15D36, 0x8888},
+ {0x15D37, 0x88AB},
+ {0x15D38, 0x8892},
+ {0x15D39, 0x8896},
+ {0x15D3A, 0x888D},
+ {0x15D3B, 0x888B},
+ {0x15D3C, 0x8993},
+ {0x15D3D, 0x898F},
+ {0x15D3E, 0x8A2A},
+ {0x15D3F, 0x8A1D},
+ {0x15D40, 0x8A23},
+ {0x15D41, 0x8A25},
+ {0x15D42, 0x8A31},
+ {0x15D43, 0x8A2D},
+ {0x15D44, 0x8A1F},
+ {0x15D45, 0x8A1B},
+ {0x15D46, 0x8A22},
+ {0x15D47, 0x8C49},
+ {0x15D48, 0x8C5A},
+ {0x15D49, 0x8CA9},
+ {0x15D4A, 0x8CAC},
+ {0x15D4B, 0x8CAB},
+ {0x15D4C, 0x8CA8},
+ {0x15D4D, 0x8CAA},
+ {0x15D4E, 0x8CA7},
+ {0x15D4F, 0x8D67},
+ {0x15D50, 0x8D66},
+ {0x15D51, 0x8DBE},
+ {0x15D52, 0x8DBA},
+ {0x15D53, 0x8EDB},
+ {0x15D54, 0x8EDF},
+ {0x15D55, 0x9019},
+ {0x15D56, 0x900D},
+ {0x15D57, 0x901A},
+ {0x15D58, 0x9017},
+ {0x15D59, 0x9023},
+ {0x15D5A, 0x901F},
+ {0x15D5B, 0x901D},
+ {0x15D5C, 0x9010},
+ {0x15D5D, 0x9015},
+ {0x15D5E, 0x901E},
+ {0x15D5F, 0x9020},
+ {0x15D60, 0x900F},
+ {0x15D61, 0x9022},
+ {0x15D62, 0x9016},
+ {0x15D63, 0x901B},
+ {0x15D64, 0x9014},
+ {0x15D65, 0x90E8},
+ {0x15D66, 0x90ED},
+ {0x15D67, 0x90FD},
+ {0x15D68, 0x9157},
+ {0x15D69, 0x91CE},
+ {0x15D6A, 0x91F5},
+ {0x15D6B, 0x91E6},
+ {0x15D6C, 0x91E3},
+ {0x15D6D, 0x91E7},
+ {0x15D6E, 0x91ED},
+ {0x15D6F, 0x91E9},
+ {0x15D70, 0x9589},
+ {0x15D71, 0x966A},
+ {0x15D72, 0x9675},
+ {0x15D73, 0x9673},
+ {0x15D74, 0x9678},
+ {0x15D75, 0x9670},
+ {0x15D76, 0x9674},
+ {0x15D77, 0x9676},
+ {0x15D78, 0x9677},
+ {0x15D79, 0x966C},
+ {0x15D7A, 0x96C0},
+ {0x15D7B, 0x96EA},
+ {0x15D7C, 0x96E9},
+ {0x15D7D, 0x7AE0},
+ {0x15D7E, 0x7ADF},
+ {0x15E21, 0x9802},
+ {0x15E22, 0x9803},
+ {0x15E23, 0x9B5A},
+ {0x15E24, 0x9CE5},
+ {0x15E25, 0x9E75},
+ {0x15E26, 0x9E7F},
+ {0x15E27, 0x9EA5},
+ {0x15E28, 0x9EBB},
+ {0x15E29, 0x50A2},
+ {0x15E2A, 0x508D},
+ {0x15E2B, 0x5085},
+ {0x15E2C, 0x5099},
+ {0x15E2D, 0x5091},
+ {0x15E2E, 0x5080},
+ {0x15E2F, 0x5096},
+ {0x15E30, 0x5098},
+ {0x15E31, 0x509A},
+ {0x15E32, 0x6700},
+ {0x15E33, 0x51F1},
+ {0x15E34, 0x5272},
+ {0x15E35, 0x5274},
+ {0x15E36, 0x5275},
+ {0x15E37, 0x5269},
+ {0x15E38, 0x52DE},
+ {0x15E39, 0x52DD},
+ {0x15E3A, 0x52DB},
+ {0x15E3B, 0x535A},
+ {0x15E3C, 0x53A5},
+ {0x15E3D, 0x557B},
+ {0x15E3E, 0x5580},
+ {0x15E3F, 0x55A7},
+ {0x15E40, 0x557C},
+ {0x15E41, 0x558A},
+ {0x15E42, 0x559D},
+ {0x15E43, 0x5598},
+ {0x15E44, 0x5582},
+ {0x15E45, 0x559C},
+ {0x15E46, 0x55AA},
+ {0x15E47, 0x5594},
+ {0x15E48, 0x5587},
+ {0x15E49, 0x558B},
+ {0x15E4A, 0x5583},
+ {0x15E4B, 0x55B3},
+ {0x15E4C, 0x55AE},
+ {0x15E4D, 0x559F},
+ {0x15E4E, 0x553E},
+ {0x15E4F, 0x55B2},
+ {0x15E50, 0x559A},
+ {0x15E51, 0x55BB},
+ {0x15E52, 0x55AC},
+ {0x15E53, 0x55B1},
+ {0x15E54, 0x557E},
+ {0x15E55, 0x5589},
+ {0x15E56, 0x55AB},
+ {0x15E57, 0x5599},
+ {0x15E58, 0x570D},
+ {0x15E59, 0x582F},
+ {0x15E5A, 0x582A},
+ {0x15E5B, 0x5834},
+ {0x15E5C, 0x5824},
+ {0x15E5D, 0x5830},
+ {0x15E5E, 0x5831},
+ {0x15E5F, 0x5821},
+ {0x15E60, 0x581D},
+ {0x15E61, 0x5820},
+ {0x15E62, 0x58F9},
+ {0x15E63, 0x58FA},
+ {0x15E64, 0x5960},
+ {0x15E65, 0x5A77},
+ {0x15E66, 0x5A9A},
+ {0x15E67, 0x5A7F},
+ {0x15E68, 0x5A92},
+ {0x15E69, 0x5A9B},
+ {0x15E6A, 0x5AA7},
+ {0x15E6B, 0x5B73},
+ {0x15E6C, 0x5B71},
+ {0x15E6D, 0x5BD2},
+ {0x15E6E, 0x5BCC},
+ {0x15E6F, 0x5BD3},
+ {0x15E70, 0x5BD0},
+ {0x15E71, 0x5C0A},
+ {0x15E72, 0x5C0B},
+ {0x15E73, 0x5C31},
+ {0x15E74, 0x5D4C},
+ {0x15E75, 0x5D50},
+ {0x15E76, 0x5D34},
+ {0x15E77, 0x5D47},
+ {0x15E78, 0x5DFD},
+ {0x15E79, 0x5E45},
+ {0x15E7A, 0x5E3D},
+ {0x15E7B, 0x5E40},
+ {0x15E7C, 0x5E43},
+ {0x15E7D, 0x5E7E},
+ {0x15E7E, 0x5ECA},
+ {0x15F21, 0x5EC1},
+ {0x15F22, 0x5EC2},
+ {0x15F23, 0x5EC4},
+ {0x15F24, 0x5F3C},
+ {0x15F25, 0x5F6D},
+ {0x15F26, 0x5FA9},
+ {0x15F27, 0x5FAA},
+ {0x15F28, 0x5FA8},
+ {0x15F29, 0x60D1},
+ {0x15F2A, 0x60E1},
+ {0x15F2B, 0x60B2},
+ {0x15F2C, 0x60B6},
+ {0x15F2D, 0x60E0},
+ {0x15F2E, 0x611C},
+ {0x15F2F, 0x6123},
+ {0x15F30, 0x60FA},
+ {0x15F31, 0x6115},
+ {0x15F32, 0x60F0},
+ {0x15F33, 0x60FB},
+ {0x15F34, 0x60F4},
+ {0x15F35, 0x6168},
+ {0x15F36, 0x60F1},
+ {0x15F37, 0x610E},
+ {0x15F38, 0x60F6},
+ {0x15F39, 0x6109},
+ {0x15F3A, 0x6100},
+ {0x15F3B, 0x6112},
+ {0x15F3C, 0x621F},
+ {0x15F3D, 0x6249},
+ {0x15F3E, 0x63A3},
+ {0x15F3F, 0x638C},
+ {0x15F40, 0x63CF},
+ {0x15F41, 0x63C0},
+ {0x15F42, 0x63E9},
+ {0x15F43, 0x63C9},
+ {0x15F44, 0x63C6},
+ {0x15F45, 0x63CD},
+ {0x15F46, 0x63D2},
+ {0x15F47, 0x63E3},
+ {0x15F48, 0x63D0},
+ {0x15F49, 0x63E1},
+ {0x15F4A, 0x63D6},
+ {0x15F4B, 0x63ED},
+ {0x15F4C, 0x63EE},
+ {0x15F4D, 0x6376},
+ {0x15F4E, 0x63F4},
+ {0x15F4F, 0x63EA},
+ {0x15F50, 0x63DB},
+ {0x15F51, 0x6452},
+ {0x15F52, 0x63DA},
+ {0x15F53, 0x63F9},
+ {0x15F54, 0x655E},
+ {0x15F55, 0x6566},
+ {0x15F56, 0x6562},
+ {0x15F57, 0x6563},
+ {0x15F58, 0x6591},
+ {0x15F59, 0x6590},
+ {0x15F5A, 0x65AF},
+ {0x15F5B, 0x666E},
+ {0x15F5C, 0x6670},
+ {0x15F5D, 0x6674},
+ {0x15F5E, 0x6676},
+ {0x15F5F, 0x666F},
+ {0x15F60, 0x6691},
+ {0x15F61, 0x667A},
+ {0x15F62, 0x667E},
+ {0x15F63, 0x6677},
+ {0x15F64, 0x66FE},
+ {0x15F65, 0x66FF},
+ {0x15F66, 0x671F},
+ {0x15F67, 0x671D},
+ {0x15F68, 0x68FA},
+ {0x15F69, 0x68D5},
+ {0x15F6A, 0x68E0},
+ {0x15F6B, 0x68D8},
+ {0x15F6C, 0x68D7},
+ {0x15F6D, 0x6905},
+ {0x15F6E, 0x68DF},
+ {0x15F6F, 0x68F5},
+ {0x15F70, 0x68EE},
+ {0x15F71, 0x68E7},
+ {0x15F72, 0x68F9},
+ {0x15F73, 0x68D2},
+ {0x15F74, 0x68F2},
+ {0x15F75, 0x68E3},
+ {0x15F76, 0x68CB},
+ {0x15F77, 0x68CD},
+ {0x15F78, 0x690D},
+ {0x15F79, 0x6912},
+ {0x15F7A, 0x690E},
+ {0x15F7B, 0x68C9},
+ {0x15F7C, 0x68DA},
+ {0x15F7D, 0x696E},
+ {0x15F7E, 0x68FB},
+ {0x16021, 0x6B3E},
+ {0x16022, 0x6B3A},
+ {0x16023, 0x6B3D},
+ {0x16024, 0x6B98},
+ {0x16025, 0x6B96},
+ {0x16026, 0x6BBC},
+ {0x16027, 0x6BEF},
+ {0x16028, 0x6C2E},
+ {0x16029, 0x6C2F},
+ {0x1602A, 0x6C2C},
+ {0x1602B, 0x6E2F},
+ {0x1602C, 0x6E38},
+ {0x1602D, 0x6E54},
+ {0x1602E, 0x6E21},
+ {0x1602F, 0x6E32},
+ {0x16030, 0x6E67},
+ {0x16031, 0x6E4A},
+ {0x16032, 0x6E20},
+ {0x16033, 0x6E25},
+ {0x16034, 0x6E23},
+ {0x16035, 0x6E1B},
+ {0x16036, 0x6E5B},
+ {0x16037, 0x6E58},
+ {0x16038, 0x6E24},
+ {0x16039, 0x6E56},
+ {0x1603A, 0x6E6E},
+ {0x1603B, 0x6E2D},
+ {0x1603C, 0x6E26},
+ {0x1603D, 0x6E6F},
+ {0x1603E, 0x6E34},
+ {0x1603F, 0x6E4D},
+ {0x16040, 0x6E3A},
+ {0x16041, 0x6E2C},
+ {0x16042, 0x6E43},
+ {0x16043, 0x6E1D},
+ {0x16044, 0x6E3E},
+ {0x16045, 0x6ECB},
+ {0x16046, 0x6E89},
+ {0x16047, 0x6E19},
+ {0x16048, 0x6E4E},
+ {0x16049, 0x6E63},
+ {0x1604A, 0x6E44},
+ {0x1604B, 0x6E72},
+ {0x1604C, 0x6E69},
+ {0x1604D, 0x6E5F},
+ {0x1604E, 0x7119},
+ {0x1604F, 0x711A},
+ {0x16050, 0x7126},
+ {0x16051, 0x7130},
+ {0x16052, 0x7121},
+ {0x16053, 0x7136},
+ {0x16054, 0x716E},
+ {0x16055, 0x711C},
+ {0x16056, 0x724C},
+ {0x16057, 0x7284},
+ {0x16058, 0x7280},
+ {0x16059, 0x7336},
+ {0x1605A, 0x7325},
+ {0x1605B, 0x7334},
+ {0x1605C, 0x7329},
+ {0x1605D, 0x743A},
+ {0x1605E, 0x742A},
+ {0x1605F, 0x7433},
+ {0x16060, 0x7422},
+ {0x16061, 0x7425},
+ {0x16062, 0x7435},
+ {0x16063, 0x7436},
+ {0x16064, 0x7434},
+ {0x16065, 0x742F},
+ {0x16066, 0x741B},
+ {0x16067, 0x7426},
+ {0x16068, 0x7428},
+ {0x16069, 0x7525},
+ {0x1606A, 0x7526},
+ {0x1606B, 0x756B},
+ {0x1606C, 0x756A},
+ {0x1606D, 0x75E2},
+ {0x1606E, 0x75DB},
+ {0x1606F, 0x75E3},
+ {0x16070, 0x75D9},
+ {0x16071, 0x75D8},
+ {0x16072, 0x75DE},
+ {0x16073, 0x75E0},
+ {0x16074, 0x767B},
+ {0x16075, 0x767C},
+ {0x16076, 0x7696},
+ {0x16077, 0x7693},
+ {0x16078, 0x76B4},
+ {0x16079, 0x76DC},
+ {0x1607A, 0x774F},
+ {0x1607B, 0x77ED},
+ {0x1607C, 0x785D},
+ {0x1607D, 0x786C},
+ {0x1607E, 0x786F},
+ {0x16121, 0x7A0D},
+ {0x16122, 0x7A08},
+ {0x16123, 0x7A0B},
+ {0x16124, 0x7A05},
+ {0x16125, 0x7A00},
+ {0x16126, 0x7A98},
+ {0x16127, 0x7A97},
+ {0x16128, 0x7A96},
+ {0x16129, 0x7AE5},
+ {0x1612A, 0x7AE3},
+ {0x1612B, 0x7B49},
+ {0x1612C, 0x7B56},
+ {0x1612D, 0x7B46},
+ {0x1612E, 0x7B50},
+ {0x1612F, 0x7B52},
+ {0x16130, 0x7B54},
+ {0x16131, 0x7B4D},
+ {0x16132, 0x7B4B},
+ {0x16133, 0x7B4F},
+ {0x16134, 0x7B51},
+ {0x16135, 0x7C9F},
+ {0x16136, 0x7CA5},
+ {0x16137, 0x7D5E},
+ {0x16138, 0x7D50},
+ {0x16139, 0x7D68},
+ {0x1613A, 0x7D55},
+ {0x1613B, 0x7D2B},
+ {0x1613C, 0x7D6E},
+ {0x1613D, 0x7D72},
+ {0x1613E, 0x7D61},
+ {0x1613F, 0x7D66},
+ {0x16140, 0x7D62},
+ {0x16141, 0x7D70},
+ {0x16142, 0x7D73},
+ {0x16143, 0x5584},
+ {0x16144, 0x7FD4},
+ {0x16145, 0x7FD5},
+ {0x16146, 0x800B},
+ {0x16147, 0x8052},
+ {0x16148, 0x8085},
+ {0x16149, 0x8155},
+ {0x1614A, 0x8154},
+ {0x1614B, 0x814B},
+ {0x1614C, 0x8151},
+ {0x1614D, 0x814E},
+ {0x1614E, 0x8139},
+ {0x1614F, 0x8146},
+ {0x16150, 0x813E},
+ {0x16151, 0x814C},
+ {0x16152, 0x8153},
+ {0x16153, 0x8174},
+ {0x16154, 0x8212},
+ {0x16155, 0x821C},
+ {0x16156, 0x83E9},
+ {0x16157, 0x8403},
+ {0x16158, 0x83F8},
+ {0x16159, 0x840D},
+ {0x1615A, 0x83E0},
+ {0x1615B, 0x83C5},
+ {0x1615C, 0x840B},
+ {0x1615D, 0x83C1},
+ {0x1615E, 0x83EF},
+ {0x1615F, 0x83F1},
+ {0x16160, 0x83F4},
+ {0x16161, 0x8457},
+ {0x16162, 0x840A},
+ {0x16163, 0x83F0},
+ {0x16164, 0x840C},
+ {0x16165, 0x83CC},
+ {0x16166, 0x83FD},
+ {0x16167, 0x83F2},
+ {0x16168, 0x83CA},
+ {0x16169, 0x8438},
+ {0x1616A, 0x840E},
+ {0x1616B, 0x8404},
+ {0x1616C, 0x83DC},
+ {0x1616D, 0x8407},
+ {0x1616E, 0x83D4},
+ {0x1616F, 0x83DF},
+ {0x16170, 0x865B},
+ {0x16171, 0x86DF},
+ {0x16172, 0x86D9},
+ {0x16173, 0x86ED},
+ {0x16174, 0x86D4},
+ {0x16175, 0x86DB},
+ {0x16176, 0x86E4},
+ {0x16177, 0x86D0},
+ {0x16178, 0x86DE},
+ {0x16179, 0x8857},
+ {0x1617A, 0x88C1},
+ {0x1617B, 0x88C2},
+ {0x1617C, 0x88B1},
+ {0x1617D, 0x8983},
+ {0x1617E, 0x8996},
+ {0x16221, 0x8A3B},
+ {0x16222, 0x8A60},
+ {0x16223, 0x8A55},
+ {0x16224, 0x8A5E},
+ {0x16225, 0x8A3C},
+ {0x16226, 0x8A41},
+ {0x16227, 0x8A54},
+ {0x16228, 0x8A5B},
+ {0x16229, 0x8A50},
+ {0x1622A, 0x8A46},
+ {0x1622B, 0x8A34},
+ {0x1622C, 0x8A3A},
+ {0x1622D, 0x8A36},
+ {0x1622E, 0x8A56},
+ {0x1622F, 0x8C61},
+ {0x16230, 0x8C82},
+ {0x16231, 0x8CAF},
+ {0x16232, 0x8CBC},
+ {0x16233, 0x8CB3},
+ {0x16234, 0x8CBD},
+ {0x16235, 0x8CC1},
+ {0x16236, 0x8CBB},
+ {0x16237, 0x8CC0},
+ {0x16238, 0x8CB4},
+ {0x16239, 0x8CB7},
+ {0x1623A, 0x8CB6},
+ {0x1623B, 0x8CBF},
+ {0x1623C, 0x8CB8},
+ {0x1623D, 0x8D8A},
+ {0x1623E, 0x8D85},
+ {0x1623F, 0x8D81},
+ {0x16240, 0x8DCE},
+ {0x16241, 0x8DDD},
+ {0x16242, 0x8DCB},
+ {0x16243, 0x8DDA},
+ {0x16244, 0x8DD1},
+ {0x16245, 0x8DCC},
+ {0x16246, 0x8DDB},
+ {0x16247, 0x8DC6},
+ {0x16248, 0x8EFB},
+ {0x16249, 0x8EF8},
+ {0x1624A, 0x8EFC},
+ {0x1624B, 0x8F9C},
+ {0x1624C, 0x902E},
+ {0x1624D, 0x9035},
+ {0x1624E, 0x9031},
+ {0x1624F, 0x9038},
+ {0x16250, 0x9032},
+ {0x16251, 0x9036},
+ {0x16252, 0x9102},
+ {0x16253, 0x90F5},
+ {0x16254, 0x9109},
+ {0x16255, 0x90FE},
+ {0x16256, 0x9163},
+ {0x16257, 0x9165},
+ {0x16258, 0x91CF},
+ {0x16259, 0x9214},
+ {0x1625A, 0x9215},
+ {0x1625B, 0x9223},
+ {0x1625C, 0x9209},
+ {0x1625D, 0x921E},
+ {0x1625E, 0x920D},
+ {0x1625F, 0x9210},
+ {0x16260, 0x9207},
+ {0x16261, 0x9211},
+ {0x16262, 0x9594},
+ {0x16263, 0x958F},
+ {0x16264, 0x958B},
+ {0x16265, 0x9591},
+ {0x16266, 0x9593},
+ {0x16267, 0x9592},
+ {0x16268, 0x958E},
+ {0x16269, 0x968A},
+ {0x1626A, 0x968E},
+ {0x1626B, 0x968B},
+ {0x1626C, 0x967D},
+ {0x1626D, 0x9685},
+ {0x1626E, 0x9686},
+ {0x1626F, 0x968D},
+ {0x16270, 0x9672},
+ {0x16271, 0x9684},
+ {0x16272, 0x96C1},
+ {0x16273, 0x96C5},
+ {0x16274, 0x96C4},
+ {0x16275, 0x96C6},
+ {0x16276, 0x96C7},
+ {0x16277, 0x96EF},
+ {0x16278, 0x96F2},
+ {0x16279, 0x97CC},
+ {0x1627A, 0x9805},
+ {0x1627B, 0x9806},
+ {0x1627C, 0x9808},
+ {0x1627D, 0x98E7},
+ {0x1627E, 0x98EA},
+ {0x16321, 0x98EF},
+ {0x16322, 0x98E9},
+ {0x16323, 0x98F2},
+ {0x16324, 0x98ED},
+ {0x16325, 0x99AE},
+ {0x16326, 0x99AD},
+ {0x16327, 0x9EC3},
+ {0x16328, 0x9ECD},
+ {0x16329, 0x9ED1},
+ {0x1632A, 0x4E82},
+ {0x1632B, 0x50AD},
+ {0x1632C, 0x50B5},
+ {0x1632D, 0x50B2},
+ {0x1632E, 0x50B3},
+ {0x1632F, 0x50C5},
+ {0x16330, 0x50BE},
+ {0x16331, 0x50AC},
+ {0x16332, 0x50B7},
+ {0x16333, 0x50BB},
+ {0x16334, 0x50AF},
+ {0x16335, 0x50C7},
+ {0x16336, 0x527F},
+ {0x16337, 0x5277},
+ {0x16338, 0x527D},
+ {0x16339, 0x52DF},
+ {0x1633A, 0x52E6},
+ {0x1633B, 0x52E4},
+ {0x1633C, 0x52E2},
+ {0x1633D, 0x52E3},
+ {0x1633E, 0x532F},
+ {0x1633F, 0x55DF},
+ {0x16340, 0x55E8},
+ {0x16341, 0x55D3},
+ {0x16342, 0x55E6},
+ {0x16343, 0x55CE},
+ {0x16344, 0x55DC},
+ {0x16345, 0x55C7},
+ {0x16346, 0x55D1},
+ {0x16347, 0x55E3},
+ {0x16348, 0x55E4},
+ {0x16349, 0x55EF},
+ {0x1634A, 0x55DA},
+ {0x1634B, 0x55E1},
+ {0x1634C, 0x55C5},
+ {0x1634D, 0x55C6},
+ {0x1634E, 0x55E5},
+ {0x1634F, 0x55C9},
+ {0x16350, 0x5712},
+ {0x16351, 0x5713},
+ {0x16352, 0x585E},
+ {0x16353, 0x5851},
+ {0x16354, 0x5858},
+ {0x16355, 0x5857},
+ {0x16356, 0x585A},
+ {0x16357, 0x5854},
+ {0x16358, 0x586B},
+ {0x16359, 0x584C},
+ {0x1635A, 0x586D},
+ {0x1635B, 0x584A},
+ {0x1635C, 0x5862},
+ {0x1635D, 0x5852},
+ {0x1635E, 0x584B},
+ {0x1635F, 0x5967},
+ {0x16360, 0x5AC1},
+ {0x16361, 0x5AC9},
+ {0x16362, 0x5ACC},
+ {0x16363, 0x5ABE},
+ {0x16364, 0x5ABD},
+ {0x16365, 0x5ABC},
+ {0x16366, 0x5AB3},
+ {0x16367, 0x5AC2},
+ {0x16368, 0x5AB2},
+ {0x16369, 0x5D69},
+ {0x1636A, 0x5D6F},
+ {0x1636B, 0x5E4C},
+ {0x1636C, 0x5E79},
+ {0x1636D, 0x5EC9},
+ {0x1636E, 0x5EC8},
+ {0x1636F, 0x5F12},
+ {0x16370, 0x5F59},
+ {0x16371, 0x5FAC},
+ {0x16372, 0x5FAE},
+ {0x16373, 0x611A},
+ {0x16374, 0x610F},
+ {0x16375, 0x6148},
+ {0x16376, 0x611F},
+ {0x16377, 0x60F3},
+ {0x16378, 0x611B},
+ {0x16379, 0x60F9},
+ {0x1637A, 0x6101},
+ {0x1637B, 0x6108},
+ {0x1637C, 0x614E},
+ {0x1637D, 0x614C},
+ {0x1637E, 0x6144},
+ {0x16421, 0x614D},
+ {0x16422, 0x613E},
+ {0x16423, 0x6134},
+ {0x16424, 0x6127},
+ {0x16425, 0x610D},
+ {0x16426, 0x6106},
+ {0x16427, 0x6137},
+ {0x16428, 0x6221},
+ {0x16429, 0x6222},
+ {0x1642A, 0x6413},
+ {0x1642B, 0x643E},
+ {0x1642C, 0x641E},
+ {0x1642D, 0x642A},
+ {0x1642E, 0x642D},
+ {0x1642F, 0x643D},
+ {0x16430, 0x642C},
+ {0x16431, 0x640F},
+ {0x16432, 0x641C},
+ {0x16433, 0x6414},
+ {0x16434, 0x640D},
+ {0x16435, 0x6436},
+ {0x16436, 0x6416},
+ {0x16437, 0x6417},
+ {0x16438, 0x6406},
+ {0x16439, 0x656C},
+ {0x1643A, 0x659F},
+ {0x1643B, 0x65B0},
+ {0x1643C, 0x6697},
+ {0x1643D, 0x6689},
+ {0x1643E, 0x6687},
+ {0x1643F, 0x6688},
+ {0x16440, 0x6696},
+ {0x16441, 0x6684},
+ {0x16442, 0x6698},
+ {0x16443, 0x668D},
+ {0x16444, 0x6703},
+ {0x16445, 0x6994},
+ {0x16446, 0x696D},
+ {0x16447, 0x695A},
+ {0x16448, 0x6977},
+ {0x16449, 0x6960},
+ {0x1644A, 0x6954},
+ {0x1644B, 0x6975},
+ {0x1644C, 0x6930},
+ {0x1644D, 0x6982},
+ {0x1644E, 0x694A},
+ {0x1644F, 0x6968},
+ {0x16450, 0x696B},
+ {0x16451, 0x695E},
+ {0x16452, 0x6953},
+ {0x16453, 0x6979},
+ {0x16454, 0x6986},
+ {0x16455, 0x695D},
+ {0x16456, 0x6963},
+ {0x16457, 0x695B},
+ {0x16458, 0x6B47},
+ {0x16459, 0x6B72},
+ {0x1645A, 0x6BC0},
+ {0x1645B, 0x6BBF},
+ {0x1645C, 0x6BD3},
+ {0x1645D, 0x6BFD},
+ {0x1645E, 0x6EA2},
+ {0x1645F, 0x6EAF},
+ {0x16460, 0x6ED3},
+ {0x16461, 0x6EB6},
+ {0x16462, 0x6EC2},
+ {0x16463, 0x6E90},
+ {0x16464, 0x6E9D},
+ {0x16465, 0x6EC7},
+ {0x16466, 0x6EC5},
+ {0x16467, 0x6EA5},
+ {0x16468, 0x6E98},
+ {0x16469, 0x6EBC},
+ {0x1646A, 0x6EBA},
+ {0x1646B, 0x6EAB},
+ {0x1646C, 0x6ED1},
+ {0x1646D, 0x6E96},
+ {0x1646E, 0x6E9C},
+ {0x1646F, 0x6EC4},
+ {0x16470, 0x6ED4},
+ {0x16471, 0x6EAA},
+ {0x16472, 0x6EA7},
+ {0x16473, 0x6EB4},
+ {0x16474, 0x714E},
+ {0x16475, 0x7159},
+ {0x16476, 0x7169},
+ {0x16477, 0x7164},
+ {0x16478, 0x7149},
+ {0x16479, 0x7167},
+ {0x1647A, 0x715C},
+ {0x1647B, 0x716C},
+ {0x1647C, 0x7166},
+ {0x1647D, 0x714C},
+ {0x1647E, 0x7165},
+ {0x16521, 0x715E},
+ {0x16522, 0x7146},
+ {0x16523, 0x7168},
+ {0x16524, 0x7156},
+ {0x16525, 0x723A},
+ {0x16526, 0x7252},
+ {0x16527, 0x7337},
+ {0x16528, 0x7345},
+ {0x16529, 0x733F},
+ {0x1652A, 0x733E},
+ {0x1652B, 0x746F},
+ {0x1652C, 0x745A},
+ {0x1652D, 0x7455},
+ {0x1652E, 0x745F},
+ {0x1652F, 0x745E},
+ {0x16530, 0x7441},
+ {0x16531, 0x743F},
+ {0x16532, 0x7459},
+ {0x16533, 0x745B},
+ {0x16534, 0x745C},
+ {0x16535, 0x7576},
+ {0x16536, 0x7578},
+ {0x16537, 0x7600},
+ {0x16538, 0x75F0},
+ {0x16539, 0x7601},
+ {0x1653A, 0x75F2},
+ {0x1653B, 0x75F1},
+ {0x1653C, 0x75FA},
+ {0x1653D, 0x75FF},
+ {0x1653E, 0x75F4},
+ {0x1653F, 0x75F3},
+ {0x16540, 0x76DE},
+ {0x16541, 0x76DF},
+ {0x16542, 0x775B},
+ {0x16543, 0x776B},
+ {0x16544, 0x7766},
+ {0x16545, 0x775E},
+ {0x16546, 0x7763},
+ {0x16547, 0x7779},
+ {0x16548, 0x776A},
+ {0x16549, 0x776C},
+ {0x1654A, 0x775C},
+ {0x1654B, 0x7765},
+ {0x1654C, 0x7768},
+ {0x1654D, 0x7762},
+ {0x1654E, 0x77EE},
+ {0x1654F, 0x788E},
+ {0x16550, 0x78B0},
+ {0x16551, 0x7897},
+ {0x16552, 0x7898},
+ {0x16553, 0x788C},
+ {0x16554, 0x7889},
+ {0x16555, 0x787C},
+ {0x16556, 0x7891},
+ {0x16557, 0x7893},
+ {0x16558, 0x787F},
+ {0x16559, 0x797A},
+ {0x1655A, 0x797F},
+ {0x1655B, 0x7981},
+ {0x1655C, 0x842C},
+ {0x1655D, 0x79BD},
+ {0x1655E, 0x7A1C},
+ {0x1655F, 0x7A1A},
+ {0x16560, 0x7A20},
+ {0x16561, 0x7A14},
+ {0x16562, 0x7A1F},
+ {0x16563, 0x7A1E},
+ {0x16564, 0x7A9F},
+ {0x16565, 0x7AA0},
+ {0x16566, 0x7B77},
+ {0x16567, 0x7BC0},
+ {0x16568, 0x7B60},
+ {0x16569, 0x7B6E},
+ {0x1656A, 0x7B67},
+ {0x1656B, 0x7CB1},
+ {0x1656C, 0x7CB3},
+ {0x1656D, 0x7CB5},
+ {0x1656E, 0x7D93},
+ {0x1656F, 0x7D79},
+ {0x16570, 0x7D91},
+ {0x16571, 0x7D81},
+ {0x16572, 0x7D8F},
+ {0x16573, 0x7D5B},
+ {0x16574, 0x7F6E},
+ {0x16575, 0x7F69},
+ {0x16576, 0x7F6A},
+ {0x16577, 0x7F72},
+ {0x16578, 0x7FA9},
+ {0x16579, 0x7FA8},
+ {0x1657A, 0x7FA4},
+ {0x1657B, 0x8056},
+ {0x1657C, 0x8058},
+ {0x1657D, 0x8086},
+ {0x1657E, 0x8084},
+ {0x16621, 0x8171},
+ {0x16622, 0x8170},
+ {0x16623, 0x8178},
+ {0x16624, 0x8165},
+ {0x16625, 0x816E},
+ {0x16626, 0x8173},
+ {0x16627, 0x816B},
+ {0x16628, 0x8179},
+ {0x16629, 0x817A},
+ {0x1662A, 0x8166},
+ {0x1662B, 0x8205},
+ {0x1662C, 0x8247},
+ {0x1662D, 0x8482},
+ {0x1662E, 0x8477},
+ {0x1662F, 0x843D},
+ {0x16630, 0x8431},
+ {0x16631, 0x8475},
+ {0x16632, 0x8466},
+ {0x16633, 0x846B},
+ {0x16634, 0x8449},
+ {0x16635, 0x846C},
+ {0x16636, 0x845B},
+ {0x16637, 0x843C},
+ {0x16638, 0x8435},
+ {0x16639, 0x8461},
+ {0x1663A, 0x8463},
+ {0x1663B, 0x8469},
+ {0x1663C, 0x846D},
+ {0x1663D, 0x8446},
+ {0x1663E, 0x865E},
+ {0x1663F, 0x865C},
+ {0x16640, 0x865F},
+ {0x16641, 0x86F9},
+ {0x16642, 0x8713},
+ {0x16643, 0x8708},
+ {0x16644, 0x8707},
+ {0x16645, 0x8700},
+ {0x16646, 0x86FE},
+ {0x16647, 0x86FB},
+ {0x16648, 0x8702},
+ {0x16649, 0x8703},
+ {0x1664A, 0x8706},
+ {0x1664B, 0x870A},
+ {0x1664C, 0x8859},
+ {0x1664D, 0x88DF},
+ {0x1664E, 0x88D4},
+ {0x1664F, 0x88D9},
+ {0x16650, 0x88DC},
+ {0x16651, 0x88D8},
+ {0x16652, 0x88DD},
+ {0x16653, 0x88E1},
+ {0x16654, 0x88CA},
+ {0x16655, 0x88D5},
+ {0x16656, 0x88D2},
+ {0x16657, 0x899C},
+ {0x16658, 0x89E3},
+ {0x16659, 0x8A6B},
+ {0x1665A, 0x8A72},
+ {0x1665B, 0x8A73},
+ {0x1665C, 0x8A66},
+ {0x1665D, 0x8A69},
+ {0x1665E, 0x8A70},
+ {0x1665F, 0x8A87},
+ {0x16660, 0x8A7C},
+ {0x16661, 0x8A63},
+ {0x16662, 0x8AA0},
+ {0x16663, 0x8A71},
+ {0x16664, 0x8A85},
+ {0x16665, 0x8A6D},
+ {0x16666, 0x8A62},
+ {0x16667, 0x8A6E},
+ {0x16668, 0x8A6C},
+ {0x16669, 0x8A79},
+ {0x1666A, 0x8A7B},
+ {0x1666B, 0x8A3E},
+ {0x1666C, 0x8A68},
+ {0x1666D, 0x8C62},
+ {0x1666E, 0x8C8A},
+ {0x1666F, 0x8C89},
+ {0x16670, 0x8CCA},
+ {0x16671, 0x8CC7},
+ {0x16672, 0x8CC8},
+ {0x16673, 0x8CC4},
+ {0x16674, 0x8CB2},
+ {0x16675, 0x8CC3},
+ {0x16676, 0x8CC2},
+ {0x16677, 0x8CC5},
+ {0x16678, 0x8DE1},
+ {0x16679, 0x8DDF},
+ {0x1667A, 0x8DE8},
+ {0x1667B, 0x8DEF},
+ {0x1667C, 0x8DF3},
+ {0x1667D, 0x8DFA},
+ {0x1667E, 0x8DEA},
+ {0x16721, 0x8DE4},
+ {0x16722, 0x8DE6},
+ {0x16723, 0x8EB2},
+ {0x16724, 0x8F03},
+ {0x16725, 0x8F09},
+ {0x16726, 0x8EFE},
+ {0x16727, 0x8F0A},
+ {0x16728, 0x8F9F},
+ {0x16729, 0x8FB2},
+ {0x1672A, 0x904B},
+ {0x1672B, 0x904A},
+ {0x1672C, 0x9053},
+ {0x1672D, 0x9042},
+ {0x1672E, 0x9054},
+ {0x1672F, 0x903C},
+ {0x16730, 0x9055},
+ {0x16731, 0x9050},
+ {0x16732, 0x9047},
+ {0x16733, 0x904F},
+ {0x16734, 0x904E},
+ {0x16735, 0x904D},
+ {0x16736, 0x9051},
+ {0x16737, 0x903E},
+ {0x16738, 0x9041},
+ {0x16739, 0x9112},
+ {0x1673A, 0x9117},
+ {0x1673B, 0x916C},
+ {0x1673C, 0x916A},
+ {0x1673D, 0x9169},
+ {0x1673E, 0x91C9},
+ {0x1673F, 0x9237},
+ {0x16740, 0x9257},
+ {0x16741, 0x9238},
+ {0x16742, 0x923D},
+ {0x16743, 0x9240},
+ {0x16744, 0x923E},
+ {0x16745, 0x925B},
+ {0x16746, 0x924B},
+ {0x16747, 0x9264},
+ {0x16748, 0x9251},
+ {0x16749, 0x9234},
+ {0x1674A, 0x9249},
+ {0x1674B, 0x924D},
+ {0x1674C, 0x9245},
+ {0x1674D, 0x9239},
+ {0x1674E, 0x923F},
+ {0x1674F, 0x925A},
+ {0x16750, 0x9598},
+ {0x16751, 0x9698},
+ {0x16752, 0x9694},
+ {0x16753, 0x9695},
+ {0x16754, 0x96CD},
+ {0x16755, 0x96CB},
+ {0x16756, 0x96C9},
+ {0x16757, 0x96CA},
+ {0x16758, 0x96F7},
+ {0x16759, 0x96FB},
+ {0x1675A, 0x96F9},
+ {0x1675B, 0x96F6},
+ {0x1675C, 0x9756},
+ {0x1675D, 0x9774},
+ {0x1675E, 0x9776},
+ {0x1675F, 0x9810},
+ {0x16760, 0x9811},
+ {0x16761, 0x9813},
+ {0x16762, 0x980A},
+ {0x16763, 0x9812},
+ {0x16764, 0x980C},
+ {0x16765, 0x98FC},
+ {0x16766, 0x98F4},
+ {0x16767, 0x98FD},
+ {0x16768, 0x98FE},
+ {0x16769, 0x99B3},
+ {0x1676A, 0x99B1},
+ {0x1676B, 0x99B4},
+ {0x1676C, 0x9AE1},
+ {0x1676D, 0x9CE9},
+ {0x1676E, 0x9E82},
+ {0x1676F, 0x9F0E},
+ {0x16770, 0x9F13},
+ {0x16771, 0x9F20},
+ {0x16772, 0x50E7},
+ {0x16773, 0x50EE},
+ {0x16774, 0x50E5},
+ {0x16775, 0x50D6},
+ {0x16776, 0x50ED},
+ {0x16777, 0x50DA},
+ {0x16778, 0x50D5},
+ {0x16779, 0x50CF},
+ {0x1677A, 0x50D1},
+ {0x1677B, 0x50F1},
+ {0x1677C, 0x50CE},
+ {0x1677D, 0x50E9},
+ {0x1677E, 0x5162},
+ {0x16821, 0x51F3},
+ {0x16822, 0x5283},
+ {0x16823, 0x5282},
+ {0x16824, 0x5331},
+ {0x16825, 0x53AD},
+ {0x16826, 0x55FE},
+ {0x16827, 0x5600},
+ {0x16828, 0x561B},
+ {0x16829, 0x5617},
+ {0x1682A, 0x55FD},
+ {0x1682B, 0x5614},
+ {0x1682C, 0x5606},
+ {0x1682D, 0x5609},
+ {0x1682E, 0x560D},
+ {0x1682F, 0x560E},
+ {0x16830, 0x55F7},
+ {0x16831, 0x5616},
+ {0x16832, 0x561F},
+ {0x16833, 0x5608},
+ {0x16834, 0x5610},
+ {0x16835, 0x55F6},
+ {0x16836, 0x5718},
+ {0x16837, 0x5716},
+ {0x16838, 0x5875},
+ {0x16839, 0x587E},
+ {0x1683A, 0x5883},
+ {0x1683B, 0x5893},
+ {0x1683C, 0x588A},
+ {0x1683D, 0x5879},
+ {0x1683E, 0x5885},
+ {0x1683F, 0x587D},
+ {0x16840, 0x58FD},
+ {0x16841, 0x5925},
+ {0x16842, 0x5922},
+ {0x16843, 0x5924},
+ {0x16844, 0x596A},
+ {0x16845, 0x5969},
+ {0x16846, 0x5AE1},
+ {0x16847, 0x5AE6},
+ {0x16848, 0x5AE9},
+ {0x16849, 0x5AD7},
+ {0x1684A, 0x5AD6},
+ {0x1684B, 0x5AD8},
+ {0x1684C, 0x5AE3},
+ {0x1684D, 0x5B75},
+ {0x1684E, 0x5BDE},
+ {0x1684F, 0x5BE7},
+ {0x16850, 0x5BE1},
+ {0x16851, 0x5BE5},
+ {0x16852, 0x5BE6},
+ {0x16853, 0x5BE8},
+ {0x16854, 0x5BE2},
+ {0x16855, 0x5BE4},
+ {0x16856, 0x5BDF},
+ {0x16857, 0x5C0D},
+ {0x16858, 0x5C62},
+ {0x16859, 0x5D84},
+ {0x1685A, 0x5D87},
+ {0x1685B, 0x5E5B},
+ {0x1685C, 0x5E63},
+ {0x1685D, 0x5E55},
+ {0x1685E, 0x5E57},
+ {0x1685F, 0x5E54},
+ {0x16860, 0x5ED3},
+ {0x16861, 0x5ED6},
+ {0x16862, 0x5F0A},
+ {0x16863, 0x5F46},
+ {0x16864, 0x5F70},
+ {0x16865, 0x5FB9},
+ {0x16866, 0x6147},
+ {0x16867, 0x613F},
+ {0x16868, 0x614B},
+ {0x16869, 0x6177},
+ {0x1686A, 0x6162},
+ {0x1686B, 0x6163},
+ {0x1686C, 0x615F},
+ {0x1686D, 0x615A},
+ {0x1686E, 0x6158},
+ {0x1686F, 0x6175},
+ {0x16870, 0x622A},
+ {0x16871, 0x6487},
+ {0x16872, 0x6458},
+ {0x16873, 0x6454},
+ {0x16874, 0x64A4},
+ {0x16875, 0x6478},
+ {0x16876, 0x645F},
+ {0x16877, 0x647A},
+ {0x16878, 0x6451},
+ {0x16879, 0x6467},
+ {0x1687A, 0x6434},
+ {0x1687B, 0x646D},
+ {0x1687C, 0x647B},
+ {0x1687D, 0x6572},
+ {0x1687E, 0x65A1},
+ {0x16921, 0x65D7},
+ {0x16922, 0x65D6},
+ {0x16923, 0x66A2},
+ {0x16924, 0x66A8},
+ {0x16925, 0x669D},
+ {0x16926, 0x699C},
+ {0x16927, 0x69A8},
+ {0x16928, 0x6995},
+ {0x16929, 0x69C1},
+ {0x1692A, 0x69AE},
+ {0x1692B, 0x69D3},
+ {0x1692C, 0x69CB},
+ {0x1692D, 0x699B},
+ {0x1692E, 0x69B7},
+ {0x1692F, 0x69BB},
+ {0x16930, 0x69AB},
+ {0x16931, 0x69B4},
+ {0x16932, 0x69D0},
+ {0x16933, 0x69CD},
+ {0x16934, 0x69AD},
+ {0x16935, 0x69CC},
+ {0x16936, 0x69A6},
+ {0x16937, 0x69C3},
+ {0x16938, 0x69A3},
+ {0x16939, 0x6B49},
+ {0x1693A, 0x6B4C},
+ {0x1693B, 0x6C33},
+ {0x1693C, 0x6F33},
+ {0x1693D, 0x6F14},
+ {0x1693E, 0x6EFE},
+ {0x1693F, 0x6F13},
+ {0x16940, 0x6EF4},
+ {0x16941, 0x6F29},
+ {0x16942, 0x6F3E},
+ {0x16943, 0x6F20},
+ {0x16944, 0x6F2C},
+ {0x16945, 0x6F0F},
+ {0x16946, 0x6F02},
+ {0x16947, 0x6F22},
+ {0x16948, 0x6EFF},
+ {0x16949, 0x6EEF},
+ {0x1694A, 0x6F06},
+ {0x1694B, 0x6F31},
+ {0x1694C, 0x6F38},
+ {0x1694D, 0x6F32},
+ {0x1694E, 0x6F23},
+ {0x1694F, 0x6F15},
+ {0x16950, 0x6F2B},
+ {0x16951, 0x6F2F},
+ {0x16952, 0x6F88},
+ {0x16953, 0x6F2A},
+ {0x16954, 0x6EEC},
+ {0x16955, 0x6F01},
+ {0x16956, 0x6EF2},
+ {0x16957, 0x6ECC},
+ {0x16958, 0x6EF7},
+ {0x16959, 0x7194},
+ {0x1695A, 0x7199},
+ {0x1695B, 0x717D},
+ {0x1695C, 0x718A},
+ {0x1695D, 0x7184},
+ {0x1695E, 0x7192},
+ {0x1695F, 0x723E},
+ {0x16960, 0x7292},
+ {0x16961, 0x7296},
+ {0x16962, 0x7344},
+ {0x16963, 0x7350},
+ {0x16964, 0x7464},
+ {0x16965, 0x7463},
+ {0x16966, 0x746A},
+ {0x16967, 0x7470},
+ {0x16968, 0x746D},
+ {0x16969, 0x7504},
+ {0x1696A, 0x7591},
+ {0x1696B, 0x7627},
+ {0x1696C, 0x760D},
+ {0x1696D, 0x760B},
+ {0x1696E, 0x7609},
+ {0x1696F, 0x7613},
+ {0x16970, 0x76E1},
+ {0x16971, 0x76E3},
+ {0x16972, 0x7784},
+ {0x16973, 0x777D},
+ {0x16974, 0x777F},
+ {0x16975, 0x7761},
+ {0x16976, 0x78C1},
+ {0x16977, 0x789F},
+ {0x16978, 0x78A7},
+ {0x16979, 0x78B3},
+ {0x1697A, 0x78A9},
+ {0x1697B, 0x78A3},
+ {0x1697C, 0x798E},
+ {0x1697D, 0x798F},
+ {0x1697E, 0x798D},
+ {0x16A21, 0x7A2E},
+ {0x16A22, 0x7A31},
+ {0x16A23, 0x7AAA},
+ {0x16A24, 0x7AA9},
+ {0x16A25, 0x7AED},
+ {0x16A26, 0x7AEF},
+ {0x16A27, 0x7BA1},
+ {0x16A28, 0x7B95},
+ {0x16A29, 0x7B8B},
+ {0x16A2A, 0x7B75},
+ {0x16A2B, 0x7B97},
+ {0x16A2C, 0x7B9D},
+ {0x16A2D, 0x7B94},
+ {0x16A2E, 0x7B8F},
+ {0x16A2F, 0x7BB8},
+ {0x16A30, 0x7B87},
+ {0x16A31, 0x7B84},
+ {0x16A32, 0x7CB9},
+ {0x16A33, 0x7CBD},
+ {0x16A34, 0x7CBE},
+ {0x16A35, 0x7DBB},
+ {0x16A36, 0x7DB0},
+ {0x16A37, 0x7D9C},
+ {0x16A38, 0x7DBD},
+ {0x16A39, 0x7DBE},
+ {0x16A3A, 0x7DA0},
+ {0x16A3B, 0x7DCA},
+ {0x16A3C, 0x7DB4},
+ {0x16A3D, 0x7DB2},
+ {0x16A3E, 0x7DB1},
+ {0x16A3F, 0x7DBA},
+ {0x16A40, 0x7DA2},
+ {0x16A41, 0x7DBF},
+ {0x16A42, 0x7DB5},
+ {0x16A43, 0x7DB8},
+ {0x16A44, 0x7DAD},
+ {0x16A45, 0x7DD2},
+ {0x16A46, 0x7DC7},
+ {0x16A47, 0x7DAC},
+ {0x16A48, 0x7F70},
+ {0x16A49, 0x7FE0},
+ {0x16A4A, 0x7FE1},
+ {0x16A4B, 0x7FDF},
+ {0x16A4C, 0x805E},
+ {0x16A4D, 0x805A},
+ {0x16A4E, 0x8087},
+ {0x16A4F, 0x8150},
+ {0x16A50, 0x8180},
+ {0x16A51, 0x818F},
+ {0x16A52, 0x8188},
+ {0x16A53, 0x818A},
+ {0x16A54, 0x817F},
+ {0x16A55, 0x8182},
+ {0x16A56, 0x81E7},
+ {0x16A57, 0x81FA},
+ {0x16A58, 0x8207},
+ {0x16A59, 0x8214},
+ {0x16A5A, 0x821E},
+ {0x16A5B, 0x824B},
+ {0x16A5C, 0x84C9},
+ {0x16A5D, 0x84BF},
+ {0x16A5E, 0x84C6},
+ {0x16A5F, 0x84C4},
+ {0x16A60, 0x8499},
+ {0x16A61, 0x849E},
+ {0x16A62, 0x84B2},
+ {0x16A63, 0x849C},
+ {0x16A64, 0x84CB},
+ {0x16A65, 0x84B8},
+ {0x16A66, 0x84C0},
+ {0x16A67, 0x84D3},
+ {0x16A68, 0x8490},
+ {0x16A69, 0x84BC},
+ {0x16A6A, 0x84D1},
+ {0x16A6B, 0x84CA},
+ {0x16A6C, 0x873F},
+ {0x16A6D, 0x871C},
+ {0x16A6E, 0x873B},
+ {0x16A6F, 0x8722},
+ {0x16A70, 0x8725},
+ {0x16A71, 0x8734},
+ {0x16A72, 0x8718},
+ {0x16A73, 0x8755},
+ {0x16A74, 0x8737},
+ {0x16A75, 0x8729},
+ {0x16A76, 0x88F3},
+ {0x16A77, 0x8902},
+ {0x16A78, 0x88F4},
+ {0x16A79, 0x88F9},
+ {0x16A7A, 0x88F8},
+ {0x16A7B, 0x88FD},
+ {0x16A7C, 0x88E8},
+ {0x16A7D, 0x891A},
+ {0x16A7E, 0x88EF},
+ {0x16B21, 0x8AA6},
+ {0x16B22, 0x8A8C},
+ {0x16B23, 0x8A9E},
+ {0x16B24, 0x8AA3},
+ {0x16B25, 0x8A8D},
+ {0x16B26, 0x8AA1},
+ {0x16B27, 0x8A93},
+ {0x16B28, 0x8AA4},
+ {0x16B29, 0x8AAA},
+ {0x16B2A, 0x8AA5},
+ {0x16B2B, 0x8AA8},
+ {0x16B2C, 0x8A98},
+ {0x16B2D, 0x8A91},
+ {0x16B2E, 0x8A9A},
+ {0x16B2F, 0x8AA7},
+ {0x16B30, 0x8C6A},
+ {0x16B31, 0x8C8D},
+ {0x16B32, 0x8C8C},
+ {0x16B33, 0x8CD3},
+ {0x16B34, 0x8CD1},
+ {0x16B35, 0x8CD2},
+ {0x16B36, 0x8D6B},
+ {0x16B37, 0x8D99},
+ {0x16B38, 0x8D95},
+ {0x16B39, 0x8DFC},
+ {0x16B3A, 0x8F14},
+ {0x16B3B, 0x8F12},
+ {0x16B3C, 0x8F15},
+ {0x16B3D, 0x8F13},
+ {0x16B3E, 0x8FA3},
+ {0x16B3F, 0x9060},
+ {0x16B40, 0x9058},
+ {0x16B41, 0x905C},
+ {0x16B42, 0x9063},
+ {0x16B43, 0x9059},
+ {0x16B44, 0x905E},
+ {0x16B45, 0x9062},
+ {0x16B46, 0x905D},
+ {0x16B47, 0x905B},
+ {0x16B48, 0x9119},
+ {0x16B49, 0x9118},
+ {0x16B4A, 0x911E},
+ {0x16B4B, 0x9175},
+ {0x16B4C, 0x9178},
+ {0x16B4D, 0x9177},
+ {0x16B4E, 0x9174},
+ {0x16B4F, 0x9278},
+ {0x16B50, 0x92AC},
+ {0x16B51, 0x9280},
+ {0x16B52, 0x9285},
+ {0x16B53, 0x9298},
+ {0x16B54, 0x9296},
+ {0x16B55, 0x927B},
+ {0x16B56, 0x9293},
+ {0x16B57, 0x929C},
+ {0x16B58, 0x92A8},
+ {0x16B59, 0x927C},
+ {0x16B5A, 0x9291},
+ {0x16B5B, 0x95A1},
+ {0x16B5C, 0x95A8},
+ {0x16B5D, 0x95A9},
+ {0x16B5E, 0x95A3},
+ {0x16B5F, 0x95A5},
+ {0x16B60, 0x95A4},
+ {0x16B61, 0x9699},
+ {0x16B62, 0x969C},
+ {0x16B63, 0x969B},
+ {0x16B64, 0x96CC},
+ {0x16B65, 0x96D2},
+ {0x16B66, 0x9700},
+ {0x16B67, 0x977C},
+ {0x16B68, 0x9785},
+ {0x16B69, 0x97F6},
+ {0x16B6A, 0x9817},
+ {0x16B6B, 0x9818},
+ {0x16B6C, 0x98AF},
+ {0x16B6D, 0x98B1},
+ {0x16B6E, 0x9903},
+ {0x16B6F, 0x9905},
+ {0x16B70, 0x990C},
+ {0x16B71, 0x9909},
+ {0x16B72, 0x99C1},
+ {0x16B73, 0x9AAF},
+ {0x16B74, 0x9AB0},
+ {0x16B75, 0x9AE6},
+ {0x16B76, 0x9B41},
+ {0x16B77, 0x9B42},
+ {0x16B78, 0x9CF4},
+ {0x16B79, 0x9CF6},
+ {0x16B7A, 0x9CF3},
+ {0x16B7B, 0x9EBC},
+ {0x16B7C, 0x9F3B},
+ {0x16B7D, 0x9F4A},
+ {0x16B7E, 0x5104},
+ {0x16C21, 0x5100},
+ {0x16C22, 0x50FB},
+ {0x16C23, 0x50F5},
+ {0x16C24, 0x50F9},
+ {0x16C25, 0x5102},
+ {0x16C26, 0x5108},
+ {0x16C27, 0x5109},
+ {0x16C28, 0x5105},
+ {0x16C29, 0x51DC},
+ {0x16C2A, 0x5287},
+ {0x16C2B, 0x5288},
+ {0x16C2C, 0x5289},
+ {0x16C2D, 0x528D},
+ {0x16C2E, 0x528A},
+ {0x16C2F, 0x52F0},
+ {0x16C30, 0x53B2},
+ {0x16C31, 0x562E},
+ {0x16C32, 0x563B},
+ {0x16C33, 0x5639},
+ {0x16C34, 0x5632},
+ {0x16C35, 0x563F},
+ {0x16C36, 0x5634},
+ {0x16C37, 0x5629},
+ {0x16C38, 0x5653},
+ {0x16C39, 0x564E},
+ {0x16C3A, 0x5657},
+ {0x16C3B, 0x5674},
+ {0x16C3C, 0x5636},
+ {0x16C3D, 0x562F},
+ {0x16C3E, 0x5630},
+ {0x16C3F, 0x5880},
+ {0x16C40, 0x589F},
+ {0x16C41, 0x589E},
+ {0x16C42, 0x58B3},
+ {0x16C43, 0x589C},
+ {0x16C44, 0x58AE},
+ {0x16C45, 0x58A9},
+ {0x16C46, 0x58A6},
+ {0x16C47, 0x596D},
+ {0x16C48, 0x5B09},
+ {0x16C49, 0x5AFB},
+ {0x16C4A, 0x5B0B},
+ {0x16C4B, 0x5AF5},
+ {0x16C4C, 0x5B0C},
+ {0x16C4D, 0x5B08},
+ {0x16C4E, 0x5BEE},
+ {0x16C4F, 0x5BEC},
+ {0x16C50, 0x5BE9},
+ {0x16C51, 0x5BEB},
+ {0x16C52, 0x5C64},
+ {0x16C53, 0x5C65},
+ {0x16C54, 0x5D9D},
+ {0x16C55, 0x5D94},
+ {0x16C56, 0x5E62},
+ {0x16C57, 0x5E5F},
+ {0x16C58, 0x5E61},
+ {0x16C59, 0x5EE2},
+ {0x16C5A, 0x5EDA},
+ {0x16C5B, 0x5EDF},
+ {0x16C5C, 0x5EDD},
+ {0x16C5D, 0x5EE3},
+ {0x16C5E, 0x5EE0},
+ {0x16C5F, 0x5F48},
+ {0x16C60, 0x5F71},
+ {0x16C61, 0x5FB7},
+ {0x16C62, 0x5FB5},
+ {0x16C63, 0x6176},
+ {0x16C64, 0x6167},
+ {0x16C65, 0x616E},
+ {0x16C66, 0x615D},
+ {0x16C67, 0x6155},
+ {0x16C68, 0x6182},
+ {0x16C69, 0x617C},
+ {0x16C6A, 0x6170},
+ {0x16C6B, 0x616B},
+ {0x16C6C, 0x617E},
+ {0x16C6D, 0x61A7},
+ {0x16C6E, 0x6190},
+ {0x16C6F, 0x61AB},
+ {0x16C70, 0x618E},
+ {0x16C71, 0x61AC},
+ {0x16C72, 0x619A},
+ {0x16C73, 0x61A4},
+ {0x16C74, 0x6194},
+ {0x16C75, 0x61AE},
+ {0x16C76, 0x622E},
+ {0x16C77, 0x6469},
+ {0x16C78, 0x646F},
+ {0x16C79, 0x6479},
+ {0x16C7A, 0x649E},
+ {0x16C7B, 0x64B2},
+ {0x16C7C, 0x6488},
+ {0x16C7D, 0x6490},
+ {0x16C7E, 0x64B0},
+ {0x16D21, 0x64A5},
+ {0x16D22, 0x6493},
+ {0x16D23, 0x6495},
+ {0x16D24, 0x64A9},
+ {0x16D25, 0x6492},
+ {0x16D26, 0x64AE},
+ {0x16D27, 0x64AD},
+ {0x16D28, 0x64AB},
+ {0x16D29, 0x649A},
+ {0x16D2A, 0x64AC},
+ {0x16D2B, 0x6499},
+ {0x16D2C, 0x64A2},
+ {0x16D2D, 0x64B3},
+ {0x16D2E, 0x6575},
+ {0x16D2F, 0x6577},
+ {0x16D30, 0x6578},
+ {0x16D31, 0x66AE},
+ {0x16D32, 0x66AB},
+ {0x16D33, 0x66B4},
+ {0x16D34, 0x66B1},
+ {0x16D35, 0x6A23},
+ {0x16D36, 0x6A1F},
+ {0x16D37, 0x69E8},
+ {0x16D38, 0x6A01},
+ {0x16D39, 0x6A1E},
+ {0x16D3A, 0x6A19},
+ {0x16D3B, 0x69FD},
+ {0x16D3C, 0x6A21},
+ {0x16D3D, 0x6A13},
+ {0x16D3E, 0x6A0A},
+ {0x16D3F, 0x69F3},
+ {0x16D40, 0x6A02},
+ {0x16D41, 0x6A05},
+ {0x16D42, 0x69ED},
+ {0x16D43, 0x6A11},
+ {0x16D44, 0x6B50},
+ {0x16D45, 0x6B4E},
+ {0x16D46, 0x6BA4},
+ {0x16D47, 0x6BC5},
+ {0x16D48, 0x6BC6},
+ {0x16D49, 0x6F3F},
+ {0x16D4A, 0x6F7C},
+ {0x16D4B, 0x6F84},
+ {0x16D4C, 0x6F51},
+ {0x16D4D, 0x6F66},
+ {0x16D4E, 0x6F54},
+ {0x16D4F, 0x6F86},
+ {0x16D50, 0x6F6D},
+ {0x16D51, 0x6F5B},
+ {0x16D52, 0x6F78},
+ {0x16D53, 0x6F6E},
+ {0x16D54, 0x6F8E},
+ {0x16D55, 0x6F7A},
+ {0x16D56, 0x6F70},
+ {0x16D57, 0x6F64},
+ {0x16D58, 0x6F97},
+ {0x16D59, 0x6F58},
+ {0x16D5A, 0x6ED5},
+ {0x16D5B, 0x6F6F},
+ {0x16D5C, 0x6F60},
+ {0x16D5D, 0x6F5F},
+ {0x16D5E, 0x719F},
+ {0x16D5F, 0x71AC},
+ {0x16D60, 0x71B1},
+ {0x16D61, 0x71A8},
+ {0x16D62, 0x7256},
+ {0x16D63, 0x729B},
+ {0x16D64, 0x734E},
+ {0x16D65, 0x7357},
+ {0x16D66, 0x7469},
+ {0x16D67, 0x748B},
+ {0x16D68, 0x7483},
+ {0x16D69, 0x747E},
+ {0x16D6A, 0x7480},
+ {0x16D6B, 0x757F},
+ {0x16D6C, 0x7620},
+ {0x16D6D, 0x7629},
+ {0x16D6E, 0x761F},
+ {0x16D6F, 0x7624},
+ {0x16D70, 0x7626},
+ {0x16D71, 0x7621},
+ {0x16D72, 0x7622},
+ {0x16D73, 0x769A},
+ {0x16D74, 0x76BA},
+ {0x16D75, 0x76E4},
+ {0x16D76, 0x778E},
+ {0x16D77, 0x7787},
+ {0x16D78, 0x778C},
+ {0x16D79, 0x7791},
+ {0x16D7A, 0x778B},
+ {0x16D7B, 0x78CB},
+ {0x16D7C, 0x78C5},
+ {0x16D7D, 0x78BA},
+ {0x16D7E, 0x78CA},
+ {0x16E21, 0x78BE},
+ {0x16E22, 0x78D5},
+ {0x16E23, 0x78BC},
+ {0x16E24, 0x78D0},
+ {0x16E25, 0x7A3F},
+ {0x16E26, 0x7A3C},
+ {0x16E27, 0x7A40},
+ {0x16E28, 0x7A3D},
+ {0x16E29, 0x7A37},
+ {0x16E2A, 0x7A3B},
+ {0x16E2B, 0x7AAF},
+ {0x16E2C, 0x7AAE},
+ {0x16E2D, 0x7BAD},
+ {0x16E2E, 0x7BB1},
+ {0x16E2F, 0x7BC4},
+ {0x16E30, 0x7BB4},
+ {0x16E31, 0x7BC6},
+ {0x16E32, 0x7BC7},
+ {0x16E33, 0x7BC1},
+ {0x16E34, 0x7BA0},
+ {0x16E35, 0x7BCC},
+ {0x16E36, 0x7CCA},
+ {0x16E37, 0x7DE0},
+ {0x16E38, 0x7DF4},
+ {0x16E39, 0x7DEF},
+ {0x16E3A, 0x7DFB},
+ {0x16E3B, 0x7DD8},
+ {0x16E3C, 0x7DEC},
+ {0x16E3D, 0x7DDD},
+ {0x16E3E, 0x7DE8},
+ {0x16E3F, 0x7DE3},
+ {0x16E40, 0x7DDA},
+ {0x16E41, 0x7DDE},
+ {0x16E42, 0x7DE9},
+ {0x16E43, 0x7D9E},
+ {0x16E44, 0x7DD9},
+ {0x16E45, 0x7DF2},
+ {0x16E46, 0x7DF9},
+ {0x16E47, 0x7F75},
+ {0x16E48, 0x7F77},
+ {0x16E49, 0x7FAF},
+ {0x16E4A, 0x7FE9},
+ {0x16E4B, 0x8026},
+ {0x16E4C, 0x819B},
+ {0x16E4D, 0x819C},
+ {0x16E4E, 0x819D},
+ {0x16E4F, 0x81A0},
+ {0x16E50, 0x819A},
+ {0x16E51, 0x8198},
+ {0x16E52, 0x8517},
+ {0x16E53, 0x853D},
+ {0x16E54, 0x851A},
+ {0x16E55, 0x84EE},
+ {0x16E56, 0x852C},
+ {0x16E57, 0x852D},
+ {0x16E58, 0x8513},
+ {0x16E59, 0x8511},
+ {0x16E5A, 0x8523},
+ {0x16E5B, 0x8521},
+ {0x16E5C, 0x8514},
+ {0x16E5D, 0x84EC},
+ {0x16E5E, 0x8525},
+ {0x16E5F, 0x84FF},
+ {0x16E60, 0x8506},
+ {0x16E61, 0x8782},
+ {0x16E62, 0x8774},
+ {0x16E63, 0x8776},
+ {0x16E64, 0x8760},
+ {0x16E65, 0x8766},
+ {0x16E66, 0x8778},
+ {0x16E67, 0x8768},
+ {0x16E68, 0x8759},
+ {0x16E69, 0x8757},
+ {0x16E6A, 0x874C},
+ {0x16E6B, 0x8753},
+ {0x16E6C, 0x885B},
+ {0x16E6D, 0x885D},
+ {0x16E6E, 0x8910},
+ {0x16E6F, 0x8907},
+ {0x16E70, 0x8912},
+ {0x16E71, 0x8913},
+ {0x16E72, 0x8915},
+ {0x16E73, 0x890A},
+ {0x16E74, 0x8ABC},
+ {0x16E75, 0x8AD2},
+ {0x16E76, 0x8AC7},
+ {0x16E77, 0x8AC4},
+ {0x16E78, 0x8A95},
+ {0x16E79, 0x8ACB},
+ {0x16E7A, 0x8AF8},
+ {0x16E7B, 0x8AB2},
+ {0x16E7C, 0x8AC9},
+ {0x16E7D, 0x8AC2},
+ {0x16E7E, 0x8ABF},
+ {0x16F21, 0x8AB0},
+ {0x16F22, 0x8AD6},
+ {0x16F23, 0x8ACD},
+ {0x16F24, 0x8AB6},
+ {0x16F25, 0x8AB9},
+ {0x16F26, 0x8ADB},
+ {0x16F27, 0x8C4C},
+ {0x16F28, 0x8C4E},
+ {0x16F29, 0x8C6C},
+ {0x16F2A, 0x8CE0},
+ {0x16F2B, 0x8CDE},
+ {0x16F2C, 0x8CE6},
+ {0x16F2D, 0x8CE4},
+ {0x16F2E, 0x8CEC},
+ {0x16F2F, 0x8CED},
+ {0x16F30, 0x8CE2},
+ {0x16F31, 0x8CE3},
+ {0x16F32, 0x8CDC},
+ {0x16F33, 0x8CEA},
+ {0x16F34, 0x8CE1},
+ {0x16F35, 0x8D6D},
+ {0x16F36, 0x8D9F},
+ {0x16F37, 0x8DA3},
+ {0x16F38, 0x8E2B},
+ {0x16F39, 0x8E10},
+ {0x16F3A, 0x8E1D},
+ {0x16F3B, 0x8E22},
+ {0x16F3C, 0x8E0F},
+ {0x16F3D, 0x8E29},
+ {0x16F3E, 0x8E1F},
+ {0x16F3F, 0x8E21},
+ {0x16F40, 0x8E1E},
+ {0x16F41, 0x8EBA},
+ {0x16F42, 0x8F1D},
+ {0x16F43, 0x8F1B},
+ {0x16F44, 0x8F1F},
+ {0x16F45, 0x8F29},
+ {0x16F46, 0x8F26},
+ {0x16F47, 0x8F2A},
+ {0x16F48, 0x8F1C},
+ {0x16F49, 0x8F1E},
+ {0x16F4A, 0x8F25},
+ {0x16F4B, 0x9069},
+ {0x16F4C, 0x906E},
+ {0x16F4D, 0x9068},
+ {0x16F4E, 0x906D},
+ {0x16F4F, 0x9077},
+ {0x16F50, 0x9130},
+ {0x16F51, 0x912D},
+ {0x16F52, 0x9127},
+ {0x16F53, 0x9131},
+ {0x16F54, 0x9187},
+ {0x16F55, 0x9189},
+ {0x16F56, 0x918B},
+ {0x16F57, 0x9183},
+ {0x16F58, 0x92C5},
+ {0x16F59, 0x92BB},
+ {0x16F5A, 0x92B7},
+ {0x16F5B, 0x92EA},
+ {0x16F5C, 0x92E4},
+ {0x16F5D, 0x92C1},
+ {0x16F5E, 0x92B3},
+ {0x16F5F, 0x92BC},
+ {0x16F60, 0x92D2},
+ {0x16F61, 0x92C7},
+ {0x16F62, 0x92F0},
+ {0x16F63, 0x92B2},
+ {0x16F64, 0x95AD},
+ {0x16F65, 0x95B1},
+ {0x16F66, 0x9704},
+ {0x16F67, 0x9706},
+ {0x16F68, 0x9707},
+ {0x16F69, 0x9709},
+ {0x16F6A, 0x9760},
+ {0x16F6B, 0x978D},
+ {0x16F6C, 0x978B},
+ {0x16F6D, 0x978F},
+ {0x16F6E, 0x9821},
+ {0x16F6F, 0x982B},
+ {0x16F70, 0x981C},
+ {0x16F71, 0x98B3},
+ {0x16F72, 0x990A},
+ {0x16F73, 0x9913},
+ {0x16F74, 0x9912},
+ {0x16F75, 0x9918},
+ {0x16F76, 0x99DD},
+ {0x16F77, 0x99D0},
+ {0x16F78, 0x99DF},
+ {0x16F79, 0x99DB},
+ {0x16F7A, 0x99D1},
+ {0x16F7B, 0x99D5},
+ {0x16F7C, 0x99D2},
+ {0x16F7D, 0x99D9},
+ {0x16F7E, 0x9AB7},
+ {0x17021, 0x9AEE},
+ {0x17022, 0x9AEF},
+ {0x17023, 0x9B27},
+ {0x17024, 0x9B45},
+ {0x17025, 0x9B44},
+ {0x17026, 0x9B77},
+ {0x17027, 0x9B6F},
+ {0x17028, 0x9D06},
+ {0x17029, 0x9D09},
+ {0x1702A, 0x9D03},
+ {0x1702B, 0x9EA9},
+ {0x1702C, 0x9EBE},
+ {0x1702D, 0x9ECE},
+ {0x1702E, 0x58A8},
+ {0x1702F, 0x9F52},
+ {0x17030, 0x5112},
+ {0x17031, 0x5118},
+ {0x17032, 0x5114},
+ {0x17033, 0x5110},
+ {0x17034, 0x5115},
+ {0x17035, 0x5180},
+ {0x17036, 0x51AA},
+ {0x17037, 0x51DD},
+ {0x17038, 0x5291},
+ {0x17039, 0x5293},
+ {0x1703A, 0x52F3},
+ {0x1703B, 0x5659},
+ {0x1703C, 0x566B},
+ {0x1703D, 0x5679},
+ {0x1703E, 0x5669},
+ {0x1703F, 0x5664},
+ {0x17040, 0x5678},
+ {0x17041, 0x566A},
+ {0x17042, 0x5668},
+ {0x17043, 0x5665},
+ {0x17044, 0x5671},
+ {0x17045, 0x566F},
+ {0x17046, 0x566C},
+ {0x17047, 0x5662},
+ {0x17048, 0x5676},
+ {0x17049, 0x58C1},
+ {0x1704A, 0x58BE},
+ {0x1704B, 0x58C7},
+ {0x1704C, 0x58C5},
+ {0x1704D, 0x596E},
+ {0x1704E, 0x5B1D},
+ {0x1704F, 0x5B34},
+ {0x17050, 0x5B78},
+ {0x17051, 0x5BF0},
+ {0x17052, 0x5C0E},
+ {0x17053, 0x5F4A},
+ {0x17054, 0x61B2},
+ {0x17055, 0x6191},
+ {0x17056, 0x61A9},
+ {0x17057, 0x618A},
+ {0x17058, 0x61CD},
+ {0x17059, 0x61B6},
+ {0x1705A, 0x61BE},
+ {0x1705B, 0x61CA},
+ {0x1705C, 0x61C8},
+ {0x1705D, 0x6230},
+ {0x1705E, 0x64C5},
+ {0x1705F, 0x64C1},
+ {0x17060, 0x64CB},
+ {0x17061, 0x64BB},
+ {0x17062, 0x64BC},
+ {0x17063, 0x64DA},
+ {0x17064, 0x64C4},
+ {0x17065, 0x64C7},
+ {0x17066, 0x64C2},
+ {0x17067, 0x64CD},
+ {0x17068, 0x64BF},
+ {0x17069, 0x64D2},
+ {0x1706A, 0x64D4},
+ {0x1706B, 0x64BE},
+ {0x1706C, 0x6574},
+ {0x1706D, 0x66C6},
+ {0x1706E, 0x66C9},
+ {0x1706F, 0x66B9},
+ {0x17070, 0x66C4},
+ {0x17071, 0x66C7},
+ {0x17072, 0x66B8},
+ {0x17073, 0x6A3D},
+ {0x17074, 0x6A38},
+ {0x17075, 0x6A3A},
+ {0x17076, 0x6A59},
+ {0x17077, 0x6A6B},
+ {0x17078, 0x6A58},
+ {0x17079, 0x6A39},
+ {0x1707A, 0x6A44},
+ {0x1707B, 0x6A62},
+ {0x1707C, 0x6A61},
+ {0x1707D, 0x6A4B},
+ {0x1707E, 0x6A47},
+ {0x17121, 0x6A35},
+ {0x17122, 0x6A5F},
+ {0x17123, 0x6A48},
+ {0x17124, 0x6B59},
+ {0x17125, 0x6B77},
+ {0x17126, 0x6C05},
+ {0x17127, 0x6FC2},
+ {0x17128, 0x6FB1},
+ {0x17129, 0x6FA1},
+ {0x1712A, 0x6FC3},
+ {0x1712B, 0x6FA4},
+ {0x1712C, 0x6FC1},
+ {0x1712D, 0x6FA7},
+ {0x1712E, 0x6FB3},
+ {0x1712F, 0x6FC0},
+ {0x17130, 0x6FB9},
+ {0x17131, 0x6FB6},
+ {0x17132, 0x6FA6},
+ {0x17133, 0x6FA0},
+ {0x17134, 0x6FB4},
+ {0x17135, 0x71BE},
+ {0x17136, 0x71C9},
+ {0x17137, 0x71D0},
+ {0x17138, 0x71D2},
+ {0x17139, 0x71C8},
+ {0x1713A, 0x71D5},
+ {0x1713B, 0x71B9},
+ {0x1713C, 0x71CE},
+ {0x1713D, 0x71D9},
+ {0x1713E, 0x71DC},
+ {0x1713F, 0x71C3},
+ {0x17140, 0x71C4},
+ {0x17141, 0x7368},
+ {0x17142, 0x749C},
+ {0x17143, 0x74A3},
+ {0x17144, 0x7498},
+ {0x17145, 0x749F},
+ {0x17146, 0x749E},
+ {0x17147, 0x74E2},
+ {0x17148, 0x750C},
+ {0x17149, 0x750D},
+ {0x1714A, 0x7634},
+ {0x1714B, 0x7638},
+ {0x1714C, 0x763A},
+ {0x1714D, 0x76E7},
+ {0x1714E, 0x76E5},
+ {0x1714F, 0x77A0},
+ {0x17150, 0x779E},
+ {0x17151, 0x779F},
+ {0x17152, 0x77A5},
+ {0x17153, 0x78E8},
+ {0x17154, 0x78DA},
+ {0x17155, 0x78EC},
+ {0x17156, 0x78E7},
+ {0x17157, 0x79A6},
+ {0x17158, 0x7A4D},
+ {0x17159, 0x7A4E},
+ {0x1715A, 0x7A46},
+ {0x1715B, 0x7A4C},
+ {0x1715C, 0x7A4B},
+ {0x1715D, 0x7ABA},
+ {0x1715E, 0x7BD9},
+ {0x1715F, 0x7C11},
+ {0x17160, 0x7BC9},
+ {0x17161, 0x7BE4},
+ {0x17162, 0x7BDB},
+ {0x17163, 0x7BE1},
+ {0x17164, 0x7BE9},
+ {0x17165, 0x7BE6},
+ {0x17166, 0x7CD5},
+ {0x17167, 0x7CD6},
+ {0x17168, 0x7E0A},
+ {0x17169, 0x7E11},
+ {0x1716A, 0x7E08},
+ {0x1716B, 0x7E1B},
+ {0x1716C, 0x7E23},
+ {0x1716D, 0x7E1E},
+ {0x1716E, 0x7E1D},
+ {0x1716F, 0x7E09},
+ {0x17170, 0x7E10},
+ {0x17171, 0x7F79},
+ {0x17172, 0x7FB2},
+ {0x17173, 0x7FF0},
+ {0x17174, 0x7FF1},
+ {0x17175, 0x7FEE},
+ {0x17176, 0x8028},
+ {0x17177, 0x81B3},
+ {0x17178, 0x81A9},
+ {0x17179, 0x81A8},
+ {0x1717A, 0x81FB},
+ {0x1717B, 0x8208},
+ {0x1717C, 0x8258},
+ {0x1717D, 0x8259},
+ {0x1717E, 0x854A},
+ {0x17221, 0x8559},
+ {0x17222, 0x8548},
+ {0x17223, 0x8568},
+ {0x17224, 0x8569},
+ {0x17225, 0x8543},
+ {0x17226, 0x8549},
+ {0x17227, 0x856D},
+ {0x17228, 0x856A},
+ {0x17229, 0x855E},
+ {0x1722A, 0x8783},
+ {0x1722B, 0x879F},
+ {0x1722C, 0x879E},
+ {0x1722D, 0x87A2},
+ {0x1722E, 0x878D},
+ {0x1722F, 0x8861},
+ {0x17230, 0x892A},
+ {0x17231, 0x8932},
+ {0x17232, 0x8925},
+ {0x17233, 0x892B},
+ {0x17234, 0x8921},
+ {0x17235, 0x89AA},
+ {0x17236, 0x89A6},
+ {0x17237, 0x8AE6},
+ {0x17238, 0x8AFA},
+ {0x17239, 0x8AEB},
+ {0x1723A, 0x8AF1},
+ {0x1723B, 0x8B00},
+ {0x1723C, 0x8ADC},
+ {0x1723D, 0x8AE7},
+ {0x1723E, 0x8AEE},
+ {0x1723F, 0x8AFE},
+ {0x17240, 0x8B01},
+ {0x17241, 0x8B02},
+ {0x17242, 0x8AF7},
+ {0x17243, 0x8AED},
+ {0x17244, 0x8AF3},
+ {0x17245, 0x8AF6},
+ {0x17246, 0x8AFC},
+ {0x17247, 0x8C6B},
+ {0x17248, 0x8C6D},
+ {0x17249, 0x8C93},
+ {0x1724A, 0x8CF4},
+ {0x1724B, 0x8E44},
+ {0x1724C, 0x8E31},
+ {0x1724D, 0x8E34},
+ {0x1724E, 0x8E42},
+ {0x1724F, 0x8E39},
+ {0x17250, 0x8E35},
+ {0x17251, 0x8F3B},
+ {0x17252, 0x8F2F},
+ {0x17253, 0x8F38},
+ {0x17254, 0x8F33},
+ {0x17255, 0x8FA8},
+ {0x17256, 0x8FA6},
+ {0x17257, 0x9075},
+ {0x17258, 0x9074},
+ {0x17259, 0x9078},
+ {0x1725A, 0x9072},
+ {0x1725B, 0x907C},
+ {0x1725C, 0x907A},
+ {0x1725D, 0x9134},
+ {0x1725E, 0x9192},
+ {0x1725F, 0x9320},
+ {0x17260, 0x9336},
+ {0x17261, 0x92F8},
+ {0x17262, 0x9333},
+ {0x17263, 0x932F},
+ {0x17264, 0x9322},
+ {0x17265, 0x92FC},
+ {0x17266, 0x932B},
+ {0x17267, 0x9304},
+ {0x17268, 0x931A},
+ {0x17269, 0x9310},
+ {0x1726A, 0x9326},
+ {0x1726B, 0x9321},
+ {0x1726C, 0x9315},
+ {0x1726D, 0x932E},
+ {0x1726E, 0x9319},
+ {0x1726F, 0x95BB},
+ {0x17270, 0x96A7},
+ {0x17271, 0x96A8},
+ {0x17272, 0x96AA},
+ {0x17273, 0x96D5},
+ {0x17274, 0x970E},
+ {0x17275, 0x9711},
+ {0x17276, 0x9716},
+ {0x17277, 0x970D},
+ {0x17278, 0x9713},
+ {0x17279, 0x970F},
+ {0x1727A, 0x975B},
+ {0x1727B, 0x975C},
+ {0x1727C, 0x9766},
+ {0x1727D, 0x9798},
+ {0x1727E, 0x9830},
+ {0x17321, 0x9838},
+ {0x17322, 0x983B},
+ {0x17323, 0x9837},
+ {0x17324, 0x982D},
+ {0x17325, 0x9839},
+ {0x17326, 0x9824},
+ {0x17327, 0x9910},
+ {0x17328, 0x9928},
+ {0x17329, 0x991E},
+ {0x1732A, 0x991B},
+ {0x1732B, 0x9921},
+ {0x1732C, 0x991A},
+ {0x1732D, 0x99ED},
+ {0x1732E, 0x99E2},
+ {0x1732F, 0x99F1},
+ {0x17330, 0x9AB8},
+ {0x17331, 0x9ABC},
+ {0x17332, 0x9AFB},
+ {0x17333, 0x9AED},
+ {0x17334, 0x9B28},
+ {0x17335, 0x9B91},
+ {0x17336, 0x9D15},
+ {0x17337, 0x9D23},
+ {0x17338, 0x9D26},
+ {0x17339, 0x9D28},
+ {0x1733A, 0x9D12},
+ {0x1733B, 0x9D1B},
+ {0x1733C, 0x9ED8},
+ {0x1733D, 0x9ED4},
+ {0x1733E, 0x9F8D},
+ {0x1733F, 0x9F9C},
+ {0x17340, 0x512A},
+ {0x17341, 0x511F},
+ {0x17342, 0x5121},
+ {0x17343, 0x5132},
+ {0x17344, 0x52F5},
+ {0x17345, 0x568E},
+ {0x17346, 0x5680},
+ {0x17347, 0x5690},
+ {0x17348, 0x5685},
+ {0x17349, 0x5687},
+ {0x1734A, 0x568F},
+ {0x1734B, 0x58D5},
+ {0x1734C, 0x58D3},
+ {0x1734D, 0x58D1},
+ {0x1734E, 0x58CE},
+ {0x1734F, 0x5B30},
+ {0x17350, 0x5B2A},
+ {0x17351, 0x5B24},
+ {0x17352, 0x5B7A},
+ {0x17353, 0x5C37},
+ {0x17354, 0x5C68},
+ {0x17355, 0x5DBC},
+ {0x17356, 0x5DBA},
+ {0x17357, 0x5DBD},
+ {0x17358, 0x5DB8},
+ {0x17359, 0x5E6B},
+ {0x1735A, 0x5F4C},
+ {0x1735B, 0x5FBD},
+ {0x1735C, 0x61C9},
+ {0x1735D, 0x61C2},
+ {0x1735E, 0x61C7},
+ {0x1735F, 0x61E6},
+ {0x17360, 0x61CB},
+ {0x17361, 0x6232},
+ {0x17362, 0x6234},
+ {0x17363, 0x64CE},
+ {0x17364, 0x64CA},
+ {0x17365, 0x64D8},
+ {0x17366, 0x64E0},
+ {0x17367, 0x64F0},
+ {0x17368, 0x64E6},
+ {0x17369, 0x64EC},
+ {0x1736A, 0x64F1},
+ {0x1736B, 0x64E2},
+ {0x1736C, 0x64ED},
+ {0x1736D, 0x6582},
+ {0x1736E, 0x6583},
+ {0x1736F, 0x66D9},
+ {0x17370, 0x66D6},
+ {0x17371, 0x6A80},
+ {0x17372, 0x6A94},
+ {0x17373, 0x6A84},
+ {0x17374, 0x6AA2},
+ {0x17375, 0x6A9C},
+ {0x17376, 0x6ADB},
+ {0x17377, 0x6AA3},
+ {0x17378, 0x6A7E},
+ {0x17379, 0x6A97},
+ {0x1737A, 0x6A90},
+ {0x1737B, 0x6AA0},
+ {0x1737C, 0x6B5C},
+ {0x1737D, 0x6BAE},
+ {0x1737E, 0x6BDA},
+ {0x17421, 0x6C08},
+ {0x17422, 0x6FD8},
+ {0x17423, 0x6FF1},
+ {0x17424, 0x6FDF},
+ {0x17425, 0x6FE0},
+ {0x17426, 0x6FDB},
+ {0x17427, 0x6FE4},
+ {0x17428, 0x6FEB},
+ {0x17429, 0x6FEF},
+ {0x1742A, 0x6F80},
+ {0x1742B, 0x6FEC},
+ {0x1742C, 0x6FE1},
+ {0x1742D, 0x6FE9},
+ {0x1742E, 0x6FD5},
+ {0x1742F, 0x6FEE},
+ {0x17430, 0x6FF0},
+ {0x17431, 0x71E7},
+ {0x17432, 0x71DF},
+ {0x17433, 0x71EE},
+ {0x17434, 0x71E6},
+ {0x17435, 0x71E5},
+ {0x17436, 0x71ED},
+ {0x17437, 0x71EC},
+ {0x17438, 0x71F4},
+ {0x17439, 0x71E0},
+ {0x1743A, 0x7235},
+ {0x1743B, 0x7246},
+ {0x1743C, 0x7370},
+ {0x1743D, 0x7372},
+ {0x1743E, 0x74A9},
+ {0x1743F, 0x74B0},
+ {0x17440, 0x74A6},
+ {0x17441, 0x74A8},
+ {0x17442, 0x7646},
+ {0x17443, 0x7642},
+ {0x17444, 0x764C},
+ {0x17445, 0x76EA},
+ {0x17446, 0x77B3},
+ {0x17447, 0x77AA},
+ {0x17448, 0x77B0},
+ {0x17449, 0x77AC},
+ {0x1744A, 0x77A7},
+ {0x1744B, 0x77AD},
+ {0x1744C, 0x77EF},
+ {0x1744D, 0x78F7},
+ {0x1744E, 0x78FA},
+ {0x1744F, 0x78F4},
+ {0x17450, 0x78EF},
+ {0x17451, 0x7901},
+ {0x17452, 0x79A7},
+ {0x17453, 0x79AA},
+ {0x17454, 0x7A57},
+ {0x17455, 0x7ABF},
+ {0x17456, 0x7C07},
+ {0x17457, 0x7C0D},
+ {0x17458, 0x7BFE},
+ {0x17459, 0x7BF7},
+ {0x1745A, 0x7C0C},
+ {0x1745B, 0x7BE0},
+ {0x1745C, 0x7CE0},
+ {0x1745D, 0x7CDC},
+ {0x1745E, 0x7CDE},
+ {0x1745F, 0x7CE2},
+ {0x17460, 0x7CDF},
+ {0x17461, 0x7CD9},
+ {0x17462, 0x7CDD},
+ {0x17463, 0x7E2E},
+ {0x17464, 0x7E3E},
+ {0x17465, 0x7E46},
+ {0x17466, 0x7E37},
+ {0x17467, 0x7E32},
+ {0x17468, 0x7E43},
+ {0x17469, 0x7E2B},
+ {0x1746A, 0x7E3D},
+ {0x1746B, 0x7E31},
+ {0x1746C, 0x7E45},
+ {0x1746D, 0x7E41},
+ {0x1746E, 0x7E34},
+ {0x1746F, 0x7E39},
+ {0x17470, 0x7E48},
+ {0x17471, 0x7E35},
+ {0x17472, 0x7E3F},
+ {0x17473, 0x7E2F},
+ {0x17474, 0x7F44},
+ {0x17475, 0x7FF3},
+ {0x17476, 0x7FFC},
+ {0x17477, 0x8071},
+ {0x17478, 0x8072},
+ {0x17479, 0x8070},
+ {0x1747A, 0x806F},
+ {0x1747B, 0x8073},
+ {0x1747C, 0x81C6},
+ {0x1747D, 0x81C3},
+ {0x1747E, 0x81BA},
+ {0x17521, 0x81C2},
+ {0x17522, 0x81C0},
+ {0x17523, 0x81BF},
+ {0x17524, 0x81BD},
+ {0x17525, 0x81C9},
+ {0x17526, 0x81BE},
+ {0x17527, 0x81E8},
+ {0x17528, 0x8209},
+ {0x17529, 0x8271},
+ {0x1752A, 0x85AA},
+ {0x1752B, 0x8584},
+ {0x1752C, 0x857E},
+ {0x1752D, 0x859C},
+ {0x1752E, 0x8591},
+ {0x1752F, 0x8594},
+ {0x17530, 0x85AF},
+ {0x17531, 0x859B},
+ {0x17532, 0x8587},
+ {0x17533, 0x85A8},
+ {0x17534, 0x858A},
+ {0x17535, 0x85A6},
+ {0x17536, 0x8667},
+ {0x17537, 0x87C0},
+ {0x17538, 0x87D1},
+ {0x17539, 0x87B3},
+ {0x1753A, 0x87D2},
+ {0x1753B, 0x87C6},
+ {0x1753C, 0x87AB},
+ {0x1753D, 0x87BB},
+ {0x1753E, 0x87BA},
+ {0x1753F, 0x87C8},
+ {0x17540, 0x87CB},
+ {0x17541, 0x893B},
+ {0x17542, 0x8936},
+ {0x17543, 0x8944},
+ {0x17544, 0x8938},
+ {0x17545, 0x893D},
+ {0x17546, 0x89AC},
+ {0x17547, 0x8B0E},
+ {0x17548, 0x8B17},
+ {0x17549, 0x8B19},
+ {0x1754A, 0x8B1B},
+ {0x1754B, 0x8B0A},
+ {0x1754C, 0x8B20},
+ {0x1754D, 0x8B1D},
+ {0x1754E, 0x8B04},
+ {0x1754F, 0x8B10},
+ {0x17550, 0x8C41},
+ {0x17551, 0x8C3F},
+ {0x17552, 0x8C73},
+ {0x17553, 0x8CFA},
+ {0x17554, 0x8CFD},
+ {0x17555, 0x8CFC},
+ {0x17556, 0x8CF8},
+ {0x17557, 0x8CFB},
+ {0x17558, 0x8DA8},
+ {0x17559, 0x8E49},
+ {0x1755A, 0x8E4B},
+ {0x1755B, 0x8E48},
+ {0x1755C, 0x8E4A},
+ {0x1755D, 0x8F44},
+ {0x1755E, 0x8F3E},
+ {0x1755F, 0x8F42},
+ {0x17560, 0x8F45},
+ {0x17561, 0x8F3F},
+ {0x17562, 0x907F},
+ {0x17563, 0x907D},
+ {0x17564, 0x9084},
+ {0x17565, 0x9081},
+ {0x17566, 0x9082},
+ {0x17567, 0x9080},
+ {0x17568, 0x9139},
+ {0x17569, 0x91A3},
+ {0x1756A, 0x919E},
+ {0x1756B, 0x919C},
+ {0x1756C, 0x934D},
+ {0x1756D, 0x9382},
+ {0x1756E, 0x9328},
+ {0x1756F, 0x9375},
+ {0x17570, 0x934A},
+ {0x17571, 0x9365},
+ {0x17572, 0x934B},
+ {0x17573, 0x9318},
+ {0x17574, 0x937E},
+ {0x17575, 0x936C},
+ {0x17576, 0x935B},
+ {0x17577, 0x9370},
+ {0x17578, 0x935A},
+ {0x17579, 0x9354},
+ {0x1757A, 0x95CA},
+ {0x1757B, 0x95CB},
+ {0x1757C, 0x95CC},
+ {0x1757D, 0x95C8},
+ {0x1757E, 0x95C6},
+ {0x17621, 0x96B1},
+ {0x17622, 0x96B8},
+ {0x17623, 0x96D6},
+ {0x17624, 0x971C},
+ {0x17625, 0x971E},
+ {0x17626, 0x97A0},
+ {0x17627, 0x97D3},
+ {0x17628, 0x9846},
+ {0x17629, 0x98B6},
+ {0x1762A, 0x9935},
+ {0x1762B, 0x9A01},
+ {0x1762C, 0x99FF},
+ {0x1762D, 0x9BAE},
+ {0x1762E, 0x9BAB},
+ {0x1762F, 0x9BAA},
+ {0x17630, 0x9BAD},
+ {0x17631, 0x9D3B},
+ {0x17632, 0x9D3F},
+ {0x17633, 0x9E8B},
+ {0x17634, 0x9ECF},
+ {0x17635, 0x9EDE},
+ {0x17636, 0x9EDC},
+ {0x17637, 0x9EDD},
+ {0x17638, 0x9EDB},
+ {0x17639, 0x9F3E},
+ {0x1763A, 0x9F4B},
+ {0x1763B, 0x53E2},
+ {0x1763C, 0x5695},
+ {0x1763D, 0x56AE},
+ {0x1763E, 0x58D9},
+ {0x1763F, 0x58D8},
+ {0x17640, 0x5B38},
+ {0x17641, 0x5F5E},
+ {0x17642, 0x61E3},
+ {0x17643, 0x6233},
+ {0x17644, 0x64F4},
+ {0x17645, 0x64F2},
+ {0x17646, 0x64FE},
+ {0x17647, 0x6506},
+ {0x17648, 0x64FA},
+ {0x17649, 0x64FB},
+ {0x1764A, 0x64F7},
+ {0x1764B, 0x65B7},
+ {0x1764C, 0x66DC},
+ {0x1764D, 0x6726},
+ {0x1764E, 0x6AB3},
+ {0x1764F, 0x6AAC},
+ {0x17650, 0x6AC3},
+ {0x17651, 0x6ABB},
+ {0x17652, 0x6AB8},
+ {0x17653, 0x6AC2},
+ {0x17654, 0x6AAE},
+ {0x17655, 0x6AAF},
+ {0x17656, 0x6B5F},
+ {0x17657, 0x6B78},
+ {0x17658, 0x6BAF},
+ {0x17659, 0x7009},
+ {0x1765A, 0x700B},
+ {0x1765B, 0x6FFE},
+ {0x1765C, 0x7006},
+ {0x1765D, 0x6FFA},
+ {0x1765E, 0x7011},
+ {0x1765F, 0x700F},
+ {0x17660, 0x71FB},
+ {0x17661, 0x71FC},
+ {0x17662, 0x71FE},
+ {0x17663, 0x71F8},
+ {0x17664, 0x7377},
+ {0x17665, 0x7375},
+ {0x17666, 0x74A7},
+ {0x17667, 0x74BF},
+ {0x17668, 0x7515},
+ {0x17669, 0x7656},
+ {0x1766A, 0x7658},
+ {0x1766B, 0x7652},
+ {0x1766C, 0x77BD},
+ {0x1766D, 0x77BF},
+ {0x1766E, 0x77BB},
+ {0x1766F, 0x77BC},
+ {0x17670, 0x790E},
+ {0x17671, 0x79AE},
+ {0x17672, 0x7A61},
+ {0x17673, 0x7A62},
+ {0x17674, 0x7A60},
+ {0x17675, 0x7AC4},
+ {0x17676, 0x7AC5},
+ {0x17677, 0x7C2B},
+ {0x17678, 0x7C27},
+ {0x17679, 0x7C2A},
+ {0x1767A, 0x7C1E},
+ {0x1767B, 0x7C23},
+ {0x1767C, 0x7C21},
+ {0x1767D, 0x7CE7},
+ {0x1767E, 0x7E54},
+ {0x17721, 0x7E55},
+ {0x17722, 0x7E5E},
+ {0x17723, 0x7E5A},
+ {0x17724, 0x7E61},
+ {0x17725, 0x7E52},
+ {0x17726, 0x7E59},
+ {0x17727, 0x7F48},
+ {0x17728, 0x7FF9},
+ {0x17729, 0x7FFB},
+ {0x1772A, 0x8077},
+ {0x1772B, 0x8076},
+ {0x1772C, 0x81CD},
+ {0x1772D, 0x81CF},
+ {0x1772E, 0x820A},
+ {0x1772F, 0x85CF},
+ {0x17730, 0x85A9},
+ {0x17731, 0x85CD},
+ {0x17732, 0x85D0},
+ {0x17733, 0x85C9},
+ {0x17734, 0x85B0},
+ {0x17735, 0x85BA},
+ {0x17736, 0x85B9},
+ {0x17737, 0x87EF},
+ {0x17738, 0x87EC},
+ {0x17739, 0x87F2},
+ {0x1773A, 0x87E0},
+ {0x1773B, 0x8986},
+ {0x1773C, 0x89B2},
+ {0x1773D, 0x89F4},
+ {0x1773E, 0x8B28},
+ {0x1773F, 0x8B39},
+ {0x17740, 0x8B2C},
+ {0x17741, 0x8B2B},
+ {0x17742, 0x8C50},
+ {0x17743, 0x8D05},
+ {0x17744, 0x8E59},
+ {0x17745, 0x8E63},
+ {0x17746, 0x8E66},
+ {0x17747, 0x8E64},
+ {0x17748, 0x8E5F},
+ {0x17749, 0x8E55},
+ {0x1774A, 0x8EC0},
+ {0x1774B, 0x8F49},
+ {0x1774C, 0x8F4D},
+ {0x1774D, 0x9087},
+ {0x1774E, 0x9083},
+ {0x1774F, 0x9088},
+ {0x17750, 0x91AB},
+ {0x17751, 0x91AC},
+ {0x17752, 0x91D0},
+ {0x17753, 0x9394},
+ {0x17754, 0x938A},
+ {0x17755, 0x9396},
+ {0x17756, 0x93A2},
+ {0x17757, 0x93B3},
+ {0x17758, 0x93AE},
+ {0x17759, 0x93AC},
+ {0x1775A, 0x93B0},
+ {0x1775B, 0x9398},
+ {0x1775C, 0x939A},
+ {0x1775D, 0x9397},
+ {0x1775E, 0x95D4},
+ {0x1775F, 0x95D6},
+ {0x17760, 0x95D0},
+ {0x17761, 0x95D5},
+ {0x17762, 0x96E2},
+ {0x17763, 0x96DC},
+ {0x17764, 0x96D9},
+ {0x17765, 0x96DB},
+ {0x17766, 0x96DE},
+ {0x17767, 0x9724},
+ {0x17768, 0x97A3},
+ {0x17769, 0x97A6},
+ {0x1776A, 0x97AD},
+ {0x1776B, 0x97F9},
+ {0x1776C, 0x984D},
+ {0x1776D, 0x984F},
+ {0x1776E, 0x984C},
+ {0x1776F, 0x984E},
+ {0x17770, 0x9853},
+ {0x17771, 0x98BA},
+ {0x17772, 0x993E},
+ {0x17773, 0x993F},
+ {0x17774, 0x993D},
+ {0x17775, 0x992E},
+ {0x17776, 0x99A5},
+ {0x17777, 0x9A0E},
+ {0x17778, 0x9AC1},
+ {0x17779, 0x9B03},
+ {0x1777A, 0x9B06},
+ {0x1777B, 0x9B4F},
+ {0x1777C, 0x9B4E},
+ {0x1777D, 0x9B4D},
+ {0x1777E, 0x9BCA},
+ {0x17821, 0x9BC9},
+ {0x17822, 0x9BFD},
+ {0x17823, 0x9BC8},
+ {0x17824, 0x9BC0},
+ {0x17825, 0x9D51},
+ {0x17826, 0x9D5D},
+ {0x17827, 0x9D60},
+ {0x17828, 0x9EE0},
+ {0x17829, 0x9F15},
+ {0x1782A, 0x9F2C},
+ {0x1782B, 0x5133},
+ {0x1782C, 0x56A5},
+ {0x1782D, 0x56A8},
+ {0x1782E, 0x58DE},
+ {0x1782F, 0x58DF},
+ {0x17830, 0x58E2},
+ {0x17831, 0x5BF5},
+ {0x17832, 0x9F90},
+ {0x17833, 0x5EEC},
+ {0x17834, 0x61F2},
+ {0x17835, 0x61F7},
+ {0x17836, 0x61F6},
+ {0x17837, 0x61F5},
+ {0x17838, 0x6500},
+ {0x17839, 0x650F},
+ {0x1783A, 0x66E0},
+ {0x1783B, 0x66DD},
+ {0x1783C, 0x6AE5},
+ {0x1783D, 0x6ADD},
+ {0x1783E, 0x6ADA},
+ {0x1783F, 0x6AD3},
+ {0x17840, 0x701B},
+ {0x17841, 0x701F},
+ {0x17842, 0x7028},
+ {0x17843, 0x701A},
+ {0x17844, 0x701D},
+ {0x17845, 0x7015},
+ {0x17846, 0x7018},
+ {0x17847, 0x7206},
+ {0x17848, 0x720D},
+ {0x17849, 0x7258},
+ {0x1784A, 0x72A2},
+ {0x1784B, 0x7378},
+ {0x1784C, 0x737A},
+ {0x1784D, 0x74BD},
+ {0x1784E, 0x74CA},
+ {0x1784F, 0x74E3},
+ {0x17850, 0x7587},
+ {0x17851, 0x7586},
+ {0x17852, 0x765F},
+ {0x17853, 0x7661},
+ {0x17854, 0x77C7},
+ {0x17855, 0x7919},
+ {0x17856, 0x79B1},
+ {0x17857, 0x7A6B},
+ {0x17858, 0x7A69},
+ {0x17859, 0x7C3E},
+ {0x1785A, 0x7C3F},
+ {0x1785B, 0x7C38},
+ {0x1785C, 0x7C3D},
+ {0x1785D, 0x7C37},
+ {0x1785E, 0x7C40},
+ {0x1785F, 0x7E6B},
+ {0x17860, 0x7E6D},
+ {0x17861, 0x7E79},
+ {0x17862, 0x7E69},
+ {0x17863, 0x7E6A},
+ {0x17864, 0x7E73},
+ {0x17865, 0x7F85},
+ {0x17866, 0x7FB6},
+ {0x17867, 0x7FB9},
+ {0x17868, 0x7FB8},
+ {0x17869, 0x81D8},
+ {0x1786A, 0x85E9},
+ {0x1786B, 0x85DD},
+ {0x1786C, 0x85EA},
+ {0x1786D, 0x85D5},
+ {0x1786E, 0x85E4},
+ {0x1786F, 0x85E5},
+ {0x17870, 0x85F7},
+ {0x17871, 0x87FB},
+ {0x17872, 0x8805},
+ {0x17873, 0x880D},
+ {0x17874, 0x87F9},
+ {0x17875, 0x87FE},
+ {0x17876, 0x8960},
+ {0x17877, 0x895F},
+ {0x17878, 0x8956},
+ {0x17879, 0x895E},
+ {0x1787A, 0x8B41},
+ {0x1787B, 0x8B5C},
+ {0x1787C, 0x8B58},
+ {0x1787D, 0x8B49},
+ {0x1787E, 0x8B5A},
+ {0x17921, 0x8B4E},
+ {0x17922, 0x8B4F},
+ {0x17923, 0x8B46},
+ {0x17924, 0x8B59},
+ {0x17925, 0x8D08},
+ {0x17926, 0x8D0A},
+ {0x17927, 0x8E7C},
+ {0x17928, 0x8E72},
+ {0x17929, 0x8E87},
+ {0x1792A, 0x8E76},
+ {0x1792B, 0x8E6C},
+ {0x1792C, 0x8E7A},
+ {0x1792D, 0x8E74},
+ {0x1792E, 0x8F54},
+ {0x1792F, 0x8F4E},
+ {0x17930, 0x8FAD},
+ {0x17931, 0x908A},
+ {0x17932, 0x908B},
+ {0x17933, 0x91B1},
+ {0x17934, 0x91AE},
+ {0x17935, 0x93E1},
+ {0x17936, 0x93D1},
+ {0x17937, 0x93DF},
+ {0x17938, 0x93C3},
+ {0x17939, 0x93C8},
+ {0x1793A, 0x93DC},
+ {0x1793B, 0x93DD},
+ {0x1793C, 0x93D6},
+ {0x1793D, 0x93E2},
+ {0x1793E, 0x93CD},
+ {0x1793F, 0x93D8},
+ {0x17940, 0x93E4},
+ {0x17941, 0x93D7},
+ {0x17942, 0x93E8},
+ {0x17943, 0x95DC},
+ {0x17944, 0x96B4},
+ {0x17945, 0x96E3},
+ {0x17946, 0x972A},
+ {0x17947, 0x9727},
+ {0x17948, 0x9761},
+ {0x17949, 0x97DC},
+ {0x1794A, 0x97FB},
+ {0x1794B, 0x985E},
+ {0x1794C, 0x9858},
+ {0x1794D, 0x985B},
+ {0x1794E, 0x98BC},
+ {0x1794F, 0x9945},
+ {0x17950, 0x9949},
+ {0x17951, 0x9A16},
+ {0x17952, 0x9A19},
+ {0x17953, 0x9B0D},
+ {0x17954, 0x9BE8},
+ {0x17955, 0x9BE7},
+ {0x17956, 0x9BD6},
+ {0x17957, 0x9BDB},
+ {0x17958, 0x9D89},
+ {0x17959, 0x9D61},
+ {0x1795A, 0x9D72},
+ {0x1795B, 0x9D6A},
+ {0x1795C, 0x9D6C},
+ {0x1795D, 0x9E92},
+ {0x1795E, 0x9E97},
+ {0x1795F, 0x9E93},
+ {0x17960, 0x9EB4},
+ {0x17961, 0x52F8},
+ {0x17962, 0x56B7},
+ {0x17963, 0x56B6},
+ {0x17964, 0x56B4},
+ {0x17965, 0x56BC},
+ {0x17966, 0x58E4},
+ {0x17967, 0x5B40},
+ {0x17968, 0x5B43},
+ {0x17969, 0x5B7D},
+ {0x1796A, 0x5BF6},
+ {0x1796B, 0x5DC9},
+ {0x1796C, 0x61F8},
+ {0x1796D, 0x61FA},
+ {0x1796E, 0x6518},
+ {0x1796F, 0x6514},
+ {0x17970, 0x6519},
+ {0x17971, 0x66E6},
+ {0x17972, 0x6727},
+ {0x17973, 0x6AEC},
+ {0x17974, 0x703E},
+ {0x17975, 0x7030},
+ {0x17976, 0x7032},
+ {0x17977, 0x7210},
+ {0x17978, 0x737B},
+ {0x17979, 0x74CF},
+ {0x1797A, 0x7662},
+ {0x1797B, 0x7665},
+ {0x1797C, 0x7926},
+ {0x1797D, 0x792A},
+ {0x1797E, 0x792C},
+ {0x17A21, 0x792B},
+ {0x17A22, 0x7AC7},
+ {0x17A23, 0x7AF6},
+ {0x17A24, 0x7C4C},
+ {0x17A25, 0x7C43},
+ {0x17A26, 0x7C4D},
+ {0x17A27, 0x7CEF},
+ {0x17A28, 0x7CF0},
+ {0x17A29, 0x8FAE},
+ {0x17A2A, 0x7E7D},
+ {0x17A2B, 0x7E7C},
+ {0x17A2C, 0x7E82},
+ {0x17A2D, 0x7F4C},
+ {0x17A2E, 0x8000},
+ {0x17A2F, 0x81DA},
+ {0x17A30, 0x8266},
+ {0x17A31, 0x85FB},
+ {0x17A32, 0x85F9},
+ {0x17A33, 0x8611},
+ {0x17A34, 0x85FA},
+ {0x17A35, 0x8606},
+ {0x17A36, 0x860B},
+ {0x17A37, 0x8607},
+ {0x17A38, 0x860A},
+ {0x17A39, 0x8814},
+ {0x17A3A, 0x8815},
+ {0x17A3B, 0x8964},
+ {0x17A3C, 0x89BA},
+ {0x17A3D, 0x89F8},
+ {0x17A3E, 0x8B70},
+ {0x17A3F, 0x8B6C},
+ {0x17A40, 0x8B66},
+ {0x17A41, 0x8B6F},
+ {0x17A42, 0x8B5F},
+ {0x17A43, 0x8B6B},
+ {0x17A44, 0x8D0F},
+ {0x17A45, 0x8D0D},
+ {0x17A46, 0x8E89},
+ {0x17A47, 0x8E81},
+ {0x17A48, 0x8E85},
+ {0x17A49, 0x8E82},
+ {0x17A4A, 0x91B4},
+ {0x17A4B, 0x91CB},
+ {0x17A4C, 0x9418},
+ {0x17A4D, 0x9403},
+ {0x17A4E, 0x93FD},
+ {0x17A4F, 0x95E1},
+ {0x17A50, 0x9730},
+ {0x17A51, 0x98C4},
+ {0x17A52, 0x9952},
+ {0x17A53, 0x9951},
+ {0x17A54, 0x99A8},
+ {0x17A55, 0x9A2B},
+ {0x17A56, 0x9A30},
+ {0x17A57, 0x9A37},
+ {0x17A58, 0x9A35},
+ {0x17A59, 0x9C13},
+ {0x17A5A, 0x9C0D},
+ {0x17A5B, 0x9E79},
+ {0x17A5C, 0x9EB5},
+ {0x17A5D, 0x9EE8},
+ {0x17A5E, 0x9F2F},
+ {0x17A5F, 0x9F5F},
+ {0x17A60, 0x9F63},
+ {0x17A61, 0x9F61},
+ {0x17A62, 0x5137},
+ {0x17A63, 0x5138},
+ {0x17A64, 0x56C1},
+ {0x17A65, 0x56C0},
+ {0x17A66, 0x56C2},
+ {0x17A67, 0x5914},
+ {0x17A68, 0x5C6C},
+ {0x17A69, 0x5DCD},
+ {0x17A6A, 0x61FC},
+ {0x17A6B, 0x61FE},
+ {0x17A6C, 0x651D},
+ {0x17A6D, 0x651C},
+ {0x17A6E, 0x6595},
+ {0x17A6F, 0x66E9},
+ {0x17A70, 0x6AFB},
+ {0x17A71, 0x6B04},
+ {0x17A72, 0x6AFA},
+ {0x17A73, 0x6BB2},
+ {0x17A74, 0x704C},
+ {0x17A75, 0x721B},
+ {0x17A76, 0x72A7},
+ {0x17A77, 0x74D6},
+ {0x17A78, 0x74D4},
+ {0x17A79, 0x7669},
+ {0x17A7A, 0x77D3},
+ {0x17A7B, 0x7C50},
+ {0x17A7C, 0x7E8F},
+ {0x17A7D, 0x7E8C},
+ {0x17A7E, 0x7FBC},
+ {0x17B21, 0x8617},
+ {0x17B22, 0x862D},
+ {0x17B23, 0x861A},
+ {0x17B24, 0x8823},
+ {0x17B25, 0x8822},
+ {0x17B26, 0x8821},
+ {0x17B27, 0x881F},
+ {0x17B28, 0x896A},
+ {0x17B29, 0x896C},
+ {0x17B2A, 0x89BD},
+ {0x17B2B, 0x8B74},
+ {0x17B2C, 0x8B77},
+ {0x17B2D, 0x8B7D},
+ {0x17B2E, 0x8D13},
+ {0x17B2F, 0x8E8A},
+ {0x17B30, 0x8E8D},
+ {0x17B31, 0x8E8B},
+ {0x17B32, 0x8F5F},
+ {0x17B33, 0x8FAF},
+ {0x17B34, 0x91BA},
+ {0x17B35, 0x942E},
+ {0x17B36, 0x9433},
+ {0x17B37, 0x9435},
+ {0x17B38, 0x943A},
+ {0x17B39, 0x9438},
+ {0x17B3A, 0x9432},
+ {0x17B3B, 0x942B},
+ {0x17B3C, 0x95E2},
+ {0x17B3D, 0x9738},
+ {0x17B3E, 0x9739},
+ {0x17B3F, 0x9732},
+ {0x17B40, 0x97FF},
+ {0x17B41, 0x9867},
+ {0x17B42, 0x9865},
+ {0x17B43, 0x9957},
+ {0x17B44, 0x9A45},
+ {0x17B45, 0x9A43},
+ {0x17B46, 0x9A40},
+ {0x17B47, 0x9A3E},
+ {0x17B48, 0x9ACF},
+ {0x17B49, 0x9B54},
+ {0x17B4A, 0x9B51},
+ {0x17B4B, 0x9C2D},
+ {0x17B4C, 0x9C25},
+ {0x17B4D, 0x9DAF},
+ {0x17B4E, 0x9DB4},
+ {0x17B4F, 0x9DC2},
+ {0x17B50, 0x9DB8},
+ {0x17B51, 0x9E9D},
+ {0x17B52, 0x9EEF},
+ {0x17B53, 0x9F19},
+ {0x17B54, 0x9F5C},
+ {0x17B55, 0x9F66},
+ {0x17B56, 0x9F67},
+ {0x17B57, 0x513C},
+ {0x17B58, 0x513B},
+ {0x17B59, 0x56C8},
+ {0x17B5A, 0x56CA},
+ {0x17B5B, 0x56C9},
+ {0x17B5C, 0x5B7F},
+ {0x17B5D, 0x5DD4},
+ {0x17B5E, 0x5DD2},
+ {0x17B5F, 0x5F4E},
+ {0x17B60, 0x61FF},
+ {0x17B61, 0x6524},
+ {0x17B62, 0x6B0A},
+ {0x17B63, 0x6B61},
+ {0x17B64, 0x7051},
+ {0x17B65, 0x7058},
+ {0x17B66, 0x7380},
+ {0x17B67, 0x74E4},
+ {0x17B68, 0x758A},
+ {0x17B69, 0x766E},
+ {0x17B6A, 0x766C},
+ {0x17B6B, 0x79B3},
+ {0x17B6C, 0x7C60},
+ {0x17B6D, 0x7C5F},
+ {0x17B6E, 0x807E},
+ {0x17B6F, 0x807D},
+ {0x17B70, 0x81DF},
+ {0x17B71, 0x8972},
+ {0x17B72, 0x896F},
+ {0x17B73, 0x89FC},
+ {0x17B74, 0x8B80},
+ {0x17B75, 0x8D16},
+ {0x17B76, 0x8D17},
+ {0x17B77, 0x8E91},
+ {0x17B78, 0x8E93},
+ {0x17B79, 0x8F61},
+ {0x17B7A, 0x9148},
+ {0x17B7B, 0x9444},
+ {0x17B7C, 0x9451},
+ {0x17B7D, 0x9452},
+ {0x17B7E, 0x973D},
+ {0x17C21, 0x973E},
+ {0x17C22, 0x97C3},
+ {0x17C23, 0x97C1},
+ {0x17C24, 0x986B},
+ {0x17C25, 0x9955},
+ {0x17C26, 0x9A55},
+ {0x17C27, 0x9A4D},
+ {0x17C28, 0x9AD2},
+ {0x17C29, 0x9B1A},
+ {0x17C2A, 0x9C49},
+ {0x17C2B, 0x9C31},
+ {0x17C2C, 0x9C3E},
+ {0x17C2D, 0x9C3B},
+ {0x17C2E, 0x9DD3},
+ {0x17C2F, 0x9DD7},
+ {0x17C30, 0x9F34},
+ {0x17C31, 0x9F6C},
+ {0x17C32, 0x9F6A},
+ {0x17C33, 0x9F94},
+ {0x17C34, 0x56CC},
+ {0x17C35, 0x5DD6},
+ {0x17C36, 0x6200},
+ {0x17C37, 0x6523},
+ {0x17C38, 0x652B},
+ {0x17C39, 0x652A},
+ {0x17C3A, 0x66EC},
+ {0x17C3B, 0x6B10},
+ {0x17C3C, 0x74DA},
+ {0x17C3D, 0x7ACA},
+ {0x17C3E, 0x7C64},
+ {0x17C3F, 0x7C63},
+ {0x17C40, 0x7C65},
+ {0x17C41, 0x7E93},
+ {0x17C42, 0x7E96},
+ {0x17C43, 0x7E94},
+ {0x17C44, 0x81E2},
+ {0x17C45, 0x8638},
+ {0x17C46, 0x863F},
+ {0x17C47, 0x8831},
+ {0x17C48, 0x8B8A},
+ {0x17C49, 0x9090},
+ {0x17C4A, 0x908F},
+ {0x17C4B, 0x9463},
+ {0x17C4C, 0x9460},
+ {0x17C4D, 0x9464},
+ {0x17C4E, 0x9768},
+ {0x17C4F, 0x986F},
+ {0x17C50, 0x995C},
+ {0x17C51, 0x9A5A},
+ {0x17C52, 0x9A5B},
+ {0x17C53, 0x9A57},
+ {0x17C54, 0x9AD3},
+ {0x17C55, 0x9AD4},
+ {0x17C56, 0x9AD1},
+ {0x17C57, 0x9C54},
+ {0x17C58, 0x9C57},
+ {0x17C59, 0x9C56},
+ {0x17C5A, 0x9DE5},
+ {0x17C5B, 0x9E9F},
+ {0x17C5C, 0x9EF4},
+ {0x17C5D, 0x56D1},
+ {0x17C5E, 0x58E9},
+ {0x17C5F, 0x652C},
+ {0x17C60, 0x705E},
+ {0x17C61, 0x7671},
+ {0x17C62, 0x7672},
+ {0x17C63, 0x77D7},
+ {0x17C64, 0x7F50},
+ {0x17C65, 0x7F88},
+ {0x17C66, 0x8836},
+ {0x17C67, 0x8839},
+ {0x17C68, 0x8862},
+ {0x17C69, 0x8B93},
+ {0x17C6A, 0x8B92},
+ {0x17C6B, 0x8B96},
+ {0x17C6C, 0x8277},
+ {0x17C6D, 0x8D1B},
+ {0x17C6E, 0x91C0},
+ {0x17C6F, 0x946A},
+ {0x17C70, 0x9742},
+ {0x17C71, 0x9748},
+ {0x17C72, 0x9744},
+ {0x17C73, 0x97C6},
+ {0x17C74, 0x9870},
+ {0x17C75, 0x9A5F},
+ {0x17C76, 0x9B22},
+ {0x17C77, 0x9B58},
+ {0x17C78, 0x9C5F},
+ {0x17C79, 0x9DF9},
+ {0x17C7A, 0x9DFA},
+ {0x17C7B, 0x9E7C},
+ {0x17C7C, 0x9E7D},
+ {0x17C7D, 0x9F07},
+ {0x17C7E, 0x9F77},
+ {0x17D21, 0x9F72},
+ {0x17D22, 0x5EF3},
+ {0x17D23, 0x6B16},
+ {0x17D24, 0x7063},
+ {0x17D25, 0x7C6C},
+ {0x17D26, 0x7C6E},
+ {0x17D27, 0x883B},
+ {0x17D28, 0x89C0},
+ {0x17D29, 0x8EA1},
+ {0x17D2A, 0x91C1},
+ {0x17D2B, 0x9472},
+ {0x17D2C, 0x9470},
+ {0x17D2D, 0x9871},
+ {0x17D2E, 0x995E},
+ {0x17D2F, 0x9AD6},
+ {0x17D30, 0x9B23},
+ {0x17D31, 0x9ECC},
+ {0x17D32, 0x7064},
+ {0x17D33, 0x77DA},
+ {0x17D34, 0x8B9A},
+ {0x17D35, 0x9477},
+ {0x17D36, 0x97C9},
+ {0x17D37, 0x9A62},
+ {0x17D38, 0x9A65},
+ {0x17D39, 0x7E9C},
+ {0x17D3A, 0x8B9C},
+ {0x17D3B, 0x8EAA},
+ {0x17D3C, 0x91C5},
+ {0x17D3D, 0x947D},
+ {0x17D3E, 0x947E},
+ {0x17D3F, 0x947C},
+ {0x17D40, 0x9C77},
+ {0x17D41, 0x9C78},
+ {0x17D42, 0x9EF7},
+ {0x17D43, 0x8C54},
+ {0x17D44, 0x947F},
+ {0x17D45, 0x9E1A},
+ {0x17D46, 0x7228},
+ {0x17D47, 0x9A6A},
+ {0x17D48, 0x9B31},
+ {0x17D49, 0x9E1B},
+ {0x17D4A, 0x9E1E},
+ {0x17D4B, 0x7C72},
+ {0x22121, 0x4E42},
+ {0x22122, 0x4E5C},
+ {0x22123, 0x51F5},
+ {0x22124, 0x531A},
+ {0x22125, 0x5382},
+ {0x22126, 0x4E07},
+ {0x22127, 0x4E0C},
+ {0x22128, 0x4E47},
+ {0x22129, 0x4E8D},
+ {0x2212A, 0x56D7},
+ {0x2212B, 0x5C6E},
+ {0x2212C, 0x5F73},
+ {0x2212D, 0x4E0F},
+ {0x2212E, 0x5187},
+ {0x2212F, 0x4E0E},
+ {0x22130, 0x4E2E},
+ {0x22131, 0x4E93},
+ {0x22132, 0x4EC2},
+ {0x22133, 0x4EC9},
+ {0x22134, 0x4EC8},
+ {0x22135, 0x5198},
+ {0x22136, 0x52FC},
+ {0x22137, 0x536C},
+ {0x22138, 0x53B9},
+ {0x22139, 0x5720},
+ {0x2213A, 0x5903},
+ {0x2213B, 0x592C},
+ {0x2213C, 0x5C10},
+ {0x2213D, 0x5DFF},
+ {0x2213E, 0x65E1},
+ {0x2213F, 0x6BB3},
+ {0x22140, 0x6BCC},
+ {0x22141, 0x6C14},
+ {0x22142, 0x723F},
+ {0x22143, 0x4E31},
+ {0x22144, 0x4E3C},
+ {0x22145, 0x4EE8},
+ {0x22146, 0x4EDC},
+ {0x22147, 0x4EE9},
+ {0x22148, 0x4EE1},
+ {0x22149, 0x4EDD},
+ {0x2214A, 0x4EDA},
+ {0x2214B, 0x520C},
+ {0x2214C, 0x5209},
+ {0x2214D, 0x531C},
+ {0x2214E, 0x534C},
+ {0x2214F, 0x5722},
+ {0x22150, 0x5723},
+ {0x22151, 0x5917},
+ {0x22152, 0x592F},
+ {0x22153, 0x5B81},
+ {0x22154, 0x5B84},
+ {0x22155, 0x5C12},
+ {0x22156, 0x5C3B},
+ {0x22157, 0x5C74},
+ {0x22158, 0x5C73},
+ {0x22159, 0x5E04},
+ {0x2215A, 0x5E80},
+ {0x2215B, 0x5E82},
+ {0x2215C, 0x5FC9},
+ {0x2215D, 0x6209},
+ {0x2215E, 0x6250},
+ {0x2215F, 0x6C15},
+ {0x22160, 0x6C36},
+ {0x22161, 0x6C43},
+ {0x22162, 0x6C3F},
+ {0x22163, 0x6C3B},
+ {0x22164, 0x72AE},
+ {0x22165, 0x72B0},
+ {0x22166, 0x738A},
+ {0x22167, 0x79B8},
+ {0x22168, 0x808A},
+ {0x22169, 0x961E},
+ {0x2216A, 0x4F0E},
+ {0x2216B, 0x4F18},
+ {0x2216C, 0x4F2C},
+ {0x2216D, 0x4EF5},
+ {0x2216E, 0x4F14},
+ {0x2216F, 0x4EF1},
+ {0x22170, 0x4F00},
+ {0x22171, 0x4EF7},
+ {0x22172, 0x4F08},
+ {0x22173, 0x4F1D},
+ {0x22174, 0x4F02},
+ {0x22175, 0x4F05},
+ {0x22176, 0x4F22},
+ {0x22177, 0x4F13},
+ {0x22178, 0x4F04},
+ {0x22179, 0x4EF4},
+ {0x2217A, 0x4F12},
+ {0x2217B, 0x51B1},
+ {0x2217C, 0x5213},
+ {0x2217D, 0x5210},
+ {0x2217E, 0x52A6},
+ {0x22221, 0x5322},
+ {0x22222, 0x531F},
+ {0x22223, 0x534D},
+ {0x22224, 0x538A},
+ {0x22225, 0x5407},
+ {0x22226, 0x56E1},
+ {0x22227, 0x56DF},
+ {0x22228, 0x572E},
+ {0x22229, 0x572A},
+ {0x2222A, 0x5734},
+ {0x2222B, 0x593C},
+ {0x2222C, 0x5980},
+ {0x2222D, 0x597C},
+ {0x2222E, 0x5985},
+ {0x2222F, 0x597B},
+ {0x22230, 0x597E},
+ {0x22231, 0x5977},
+ {0x22232, 0x597F},
+ {0x22233, 0x5B56},
+ {0x22234, 0x5C15},
+ {0x22235, 0x5C25},
+ {0x22236, 0x5C7C},
+ {0x22237, 0x5C7A},
+ {0x22238, 0x5C7B},
+ {0x22239, 0x5C7E},
+ {0x2223A, 0x5DDF},
+ {0x2223B, 0x5E75},
+ {0x2223C, 0x5E84},
+ {0x2223D, 0x5F02},
+ {0x2223E, 0x5F1A},
+ {0x2223F, 0x5F74},
+ {0x22240, 0x5FD5},
+ {0x22241, 0x5FD4},
+ {0x22242, 0x5FCF},
+ {0x22243, 0x625C},
+ {0x22244, 0x625E},
+ {0x22245, 0x6264},
+ {0x22246, 0x6261},
+ {0x22247, 0x6266},
+ {0x22248, 0x6262},
+ {0x22249, 0x6259},
+ {0x2224A, 0x6260},
+ {0x2224B, 0x625A},
+ {0x2224C, 0x6265},
+ {0x2224D, 0x6537},
+ {0x2224E, 0x65EF},
+ {0x2224F, 0x65EE},
+ {0x22250, 0x673E},
+ {0x22251, 0x6739},
+ {0x22252, 0x6738},
+ {0x22253, 0x673B},
+ {0x22254, 0x673A},
+ {0x22255, 0x673F},
+ {0x22256, 0x673C},
+ {0x22257, 0x6733},
+ {0x22258, 0x6C18},
+ {0x22259, 0x6C46},
+ {0x2225A, 0x6C52},
+ {0x2225B, 0x6C5C},
+ {0x2225C, 0x6C4F},
+ {0x2225D, 0x6C4A},
+ {0x2225E, 0x6C54},
+ {0x2225F, 0x6C4B},
+ {0x22260, 0x6C4C},
+ {0x22261, 0x7071},
+ {0x22262, 0x725E},
+ {0x22263, 0x72B4},
+ {0x22264, 0x72B5},
+ {0x22265, 0x738E},
+ {0x22266, 0x752A},
+ {0x22267, 0x767F},
+ {0x22268, 0x7A75},
+ {0x22269, 0x7F51},
+ {0x2226A, 0x8278},
+ {0x2226B, 0x827C},
+ {0x2226C, 0x8280},
+ {0x2226D, 0x827D},
+ {0x2226E, 0x827F},
+ {0x2226F, 0x864D},
+ {0x22270, 0x897E},
+ {0x22271, 0x9099},
+ {0x22272, 0x9097},
+ {0x22273, 0x9098},
+ {0x22274, 0x909B},
+ {0x22275, 0x9094},
+ {0x22276, 0x9622},
+ {0x22277, 0x9624},
+ {0x22278, 0x9620},
+ {0x22279, 0x9623},
+ {0x2227A, 0x4F56},
+ {0x2227B, 0x4F3B},
+ {0x2227C, 0x4F62},
+ {0x2227D, 0x4F49},
+ {0x2227E, 0x4F53},
+ {0x22321, 0x4F64},
+ {0x22322, 0x4F3E},
+ {0x22323, 0x4F67},
+ {0x22324, 0x4F52},
+ {0x22325, 0x4F5F},
+ {0x22326, 0x4F41},
+ {0x22327, 0x4F58},
+ {0x22328, 0x4F2D},
+ {0x22329, 0x4F33},
+ {0x2232A, 0x4F3F},
+ {0x2232B, 0x4F61},
+ {0x2232C, 0x518F},
+ {0x2232D, 0x51B9},
+ {0x2232E, 0x521C},
+ {0x2232F, 0x521E},
+ {0x22330, 0x5221},
+ {0x22331, 0x52AD},
+ {0x22332, 0x52AE},
+ {0x22333, 0x5309},
+ {0x22334, 0x5363},
+ {0x22335, 0x5372},
+ {0x22336, 0x538E},
+ {0x22337, 0x538F},
+ {0x22338, 0x5430},
+ {0x22339, 0x5437},
+ {0x2233A, 0x542A},
+ {0x2233B, 0x5454},
+ {0x2233C, 0x5445},
+ {0x2233D, 0x5419},
+ {0x2233E, 0x541C},
+ {0x2233F, 0x5425},
+ {0x22340, 0x5418},
+ {0x22341, 0x543D},
+ {0x22342, 0x544F},
+ {0x22343, 0x5441},
+ {0x22344, 0x5428},
+ {0x22345, 0x5424},
+ {0x22346, 0x5447},
+ {0x22347, 0x56EE},
+ {0x22348, 0x56E7},
+ {0x22349, 0x56E5},
+ {0x2234A, 0x5741},
+ {0x2234B, 0x5745},
+ {0x2234C, 0x574C},
+ {0x2234D, 0x5749},
+ {0x2234E, 0x574B},
+ {0x2234F, 0x5752},
+ {0x22350, 0x5906},
+ {0x22351, 0x5940},
+ {0x22352, 0x59A6},
+ {0x22353, 0x5998},
+ {0x22354, 0x59A0},
+ {0x22355, 0x5997},
+ {0x22356, 0x598E},
+ {0x22357, 0x59A2},
+ {0x22358, 0x5990},
+ {0x22359, 0x598F},
+ {0x2235A, 0x59A7},
+ {0x2235B, 0x59A1},
+ {0x2235C, 0x5B8E},
+ {0x2235D, 0x5B92},
+ {0x2235E, 0x5C28},
+ {0x2235F, 0x5C2A},
+ {0x22360, 0x5C8D},
+ {0x22361, 0x5C8F},
+ {0x22362, 0x5C88},
+ {0x22363, 0x5C8B},
+ {0x22364, 0x5C89},
+ {0x22365, 0x5C92},
+ {0x22366, 0x5C8A},
+ {0x22367, 0x5C86},
+ {0x22368, 0x5C93},
+ {0x22369, 0x5C95},
+ {0x2236A, 0x5DE0},
+ {0x2236B, 0x5E0A},
+ {0x2236C, 0x5E0E},
+ {0x2236D, 0x5E8B},
+ {0x2236E, 0x5E89},
+ {0x2236F, 0x5E8C},
+ {0x22370, 0x5E88},
+ {0x22371, 0x5E8D},
+ {0x22372, 0x5F05},
+ {0x22373, 0x5F1D},
+ {0x22374, 0x5F78},
+ {0x22375, 0x5F76},
+ {0x22376, 0x5FD2},
+ {0x22377, 0x5FD1},
+ {0x22378, 0x5FD0},
+ {0x22379, 0x5FED},
+ {0x2237A, 0x5FE8},
+ {0x2237B, 0x5FEE},
+ {0x2237C, 0x5FF3},
+ {0x2237D, 0x5FE1},
+ {0x2237E, 0x5FE4},
+ {0x22421, 0x5FE3},
+ {0x22422, 0x5FFA},
+ {0x22423, 0x5FEF},
+ {0x22424, 0x5FF7},
+ {0x22425, 0x5FFB},
+ {0x22426, 0x6000},
+ {0x22427, 0x5FF4},
+ {0x22428, 0x623A},
+ {0x22429, 0x6283},
+ {0x2242A, 0x628C},
+ {0x2242B, 0x628E},
+ {0x2242C, 0x628F},
+ {0x2242D, 0x6294},
+ {0x2242E, 0x6287},
+ {0x2242F, 0x6271},
+ {0x22430, 0x627B},
+ {0x22431, 0x627A},
+ {0x22432, 0x6270},
+ {0x22433, 0x6281},
+ {0x22434, 0x6288},
+ {0x22435, 0x6277},
+ {0x22436, 0x627D},
+ {0x22437, 0x6272},
+ {0x22438, 0x6274},
+ {0x22439, 0x65F0},
+ {0x2243A, 0x65F4},
+ {0x2243B, 0x65F3},
+ {0x2243C, 0x65F2},
+ {0x2243D, 0x65F5},
+ {0x2243E, 0x6745},
+ {0x2243F, 0x6747},
+ {0x22440, 0x6759},
+ {0x22441, 0x6755},
+ {0x22442, 0x674C},
+ {0x22443, 0x6748},
+ {0x22444, 0x675D},
+ {0x22445, 0x674D},
+ {0x22446, 0x675A},
+ {0x22447, 0x674B},
+ {0x22448, 0x6BD0},
+ {0x22449, 0x6C19},
+ {0x2244A, 0x6C1A},
+ {0x2244B, 0x6C78},
+ {0x2244C, 0x6C67},
+ {0x2244D, 0x6C6B},
+ {0x2244E, 0x6C84},
+ {0x2244F, 0x6C8B},
+ {0x22450, 0x6C8F},
+ {0x22451, 0x6C71},
+ {0x22452, 0x6C6F},
+ {0x22453, 0x6C69},
+ {0x22454, 0x6C9A},
+ {0x22455, 0x6C6D},
+ {0x22456, 0x6C87},
+ {0x22457, 0x6C95},
+ {0x22458, 0x6C9C},
+ {0x22459, 0x6C66},
+ {0x2245A, 0x6C73},
+ {0x2245B, 0x6C65},
+ {0x2245C, 0x6C7B},
+ {0x2245D, 0x6C8E},
+ {0x2245E, 0x7074},
+ {0x2245F, 0x707A},
+ {0x22460, 0x7263},
+ {0x22461, 0x72BF},
+ {0x22462, 0x72BD},
+ {0x22463, 0x72C3},
+ {0x22464, 0x72C6},
+ {0x22465, 0x72C1},
+ {0x22466, 0x72BA},
+ {0x22467, 0x72C5},
+ {0x22468, 0x7395},
+ {0x22469, 0x7397},
+ {0x2246A, 0x7393},
+ {0x2246B, 0x7394},
+ {0x2246C, 0x7392},
+ {0x2246D, 0x753A},
+ {0x2246E, 0x7539},
+ {0x2246F, 0x7594},
+ {0x22470, 0x7595},
+ {0x22471, 0x7681},
+ {0x22472, 0x793D},
+ {0x22473, 0x8034},
+ {0x22474, 0x8095},
+ {0x22475, 0x8099},
+ {0x22476, 0x8090},
+ {0x22477, 0x8092},
+ {0x22478, 0x809C},
+ {0x22479, 0x8290},
+ {0x2247A, 0x828F},
+ {0x2247B, 0x8285},
+ {0x2247C, 0x828E},
+ {0x2247D, 0x8291},
+ {0x2247E, 0x8293},
+ {0x22521, 0x828A},
+ {0x22522, 0x8283},
+ {0x22523, 0x8284},
+ {0x22524, 0x8C78},
+ {0x22525, 0x8FC9},
+ {0x22526, 0x8FBF},
+ {0x22527, 0x909F},
+ {0x22528, 0x90A1},
+ {0x22529, 0x90A5},
+ {0x2252A, 0x909E},
+ {0x2252B, 0x90A7},
+ {0x2252C, 0x90A0},
+ {0x2252D, 0x9630},
+ {0x2252E, 0x9628},
+ {0x2252F, 0x962F},
+ {0x22530, 0x962D},
+ {0x22531, 0x4E33},
+ {0x22532, 0x4F98},
+ {0x22533, 0x4F7C},
+ {0x22534, 0x4F85},
+ {0x22535, 0x4F7D},
+ {0x22536, 0x4F80},
+ {0x22537, 0x4F87},
+ {0x22538, 0x4F76},
+ {0x22539, 0x4F74},
+ {0x2253A, 0x4F89},
+ {0x2253B, 0x4F84},
+ {0x2253C, 0x4F77},
+ {0x2253D, 0x4F4C},
+ {0x2253E, 0x4F97},
+ {0x2253F, 0x4F6A},
+ {0x22540, 0x4F9A},
+ {0x22541, 0x4F79},
+ {0x22542, 0x4F81},
+ {0x22543, 0x4F78},
+ {0x22544, 0x4F90},
+ {0x22545, 0x4F9C},
+ {0x22546, 0x4F94},
+ {0x22547, 0x4F9E},
+ {0x22548, 0x4F92},
+ {0x22549, 0x4F82},
+ {0x2254A, 0x4F95},
+ {0x2254B, 0x4F6B},
+ {0x2254C, 0x4F6E},
+ {0x2254D, 0x519E},
+ {0x2254E, 0x51BC},
+ {0x2254F, 0x51BE},
+ {0x22550, 0x5235},
+ {0x22551, 0x5232},
+ {0x22552, 0x5233},
+ {0x22553, 0x5246},
+ {0x22554, 0x5231},
+ {0x22555, 0x52BC},
+ {0x22556, 0x530A},
+ {0x22557, 0x530B},
+ {0x22558, 0x533C},
+ {0x22559, 0x5392},
+ {0x2255A, 0x5394},
+ {0x2255B, 0x5487},
+ {0x2255C, 0x547F},
+ {0x2255D, 0x5481},
+ {0x2255E, 0x5491},
+ {0x2255F, 0x5482},
+ {0x22560, 0x5488},
+ {0x22561, 0x546B},
+ {0x22562, 0x547A},
+ {0x22563, 0x547E},
+ {0x22564, 0x5465},
+ {0x22565, 0x546C},
+ {0x22566, 0x5474},
+ {0x22567, 0x5466},
+ {0x22568, 0x548D},
+ {0x22569, 0x546F},
+ {0x2256A, 0x5461},
+ {0x2256B, 0x5460},
+ {0x2256C, 0x5498},
+ {0x2256D, 0x5463},
+ {0x2256E, 0x5467},
+ {0x2256F, 0x5464},
+ {0x22570, 0x56F7},
+ {0x22571, 0x56F9},
+ {0x22572, 0x576F},
+ {0x22573, 0x5772},
+ {0x22574, 0x576D},
+ {0x22575, 0x576B},
+ {0x22576, 0x5771},
+ {0x22577, 0x5770},
+ {0x22578, 0x5776},
+ {0x22579, 0x5780},
+ {0x2257A, 0x5775},
+ {0x2257B, 0x577B},
+ {0x2257C, 0x5773},
+ {0x2257D, 0x5774},
+ {0x2257E, 0x5762},
+ {0x22621, 0x5768},
+ {0x22622, 0x577D},
+ {0x22623, 0x590C},
+ {0x22624, 0x5945},
+ {0x22625, 0x59B5},
+ {0x22626, 0x59BA},
+ {0x22627, 0x59CF},
+ {0x22628, 0x59CE},
+ {0x22629, 0x59B2},
+ {0x2262A, 0x59CC},
+ {0x2262B, 0x59C1},
+ {0x2262C, 0x59B6},
+ {0x2262D, 0x59BC},
+ {0x2262E, 0x59C3},
+ {0x2262F, 0x59D6},
+ {0x22630, 0x59B1},
+ {0x22631, 0x59BD},
+ {0x22632, 0x59C0},
+ {0x22633, 0x59C8},
+ {0x22634, 0x59B4},
+ {0x22635, 0x59C7},
+ {0x22636, 0x5B62},
+ {0x22637, 0x5B65},
+ {0x22638, 0x5B93},
+ {0x22639, 0x5B95},
+ {0x2263A, 0x5C44},
+ {0x2263B, 0x5C47},
+ {0x2263C, 0x5CAE},
+ {0x2263D, 0x5CA4},
+ {0x2263E, 0x5CA0},
+ {0x2263F, 0x5CB5},
+ {0x22640, 0x5CAF},
+ {0x22641, 0x5CA8},
+ {0x22642, 0x5CAC},
+ {0x22643, 0x5C9F},
+ {0x22644, 0x5CA3},
+ {0x22645, 0x5CAD},
+ {0x22646, 0x5CA2},
+ {0x22647, 0x5CAA},
+ {0x22648, 0x5CA7},
+ {0x22649, 0x5C9D},
+ {0x2264A, 0x5CA5},
+ {0x2264B, 0x5CB6},
+ {0x2264C, 0x5CB0},
+ {0x2264D, 0x5CA6},
+ {0x2264E, 0x5E17},
+ {0x2264F, 0x5E14},
+ {0x22650, 0x5E19},
+ {0x22651, 0x5F28},
+ {0x22652, 0x5F22},
+ {0x22653, 0x5F23},
+ {0x22654, 0x5F24},
+ {0x22655, 0x5F54},
+ {0x22656, 0x5F82},
+ {0x22657, 0x5F7E},
+ {0x22658, 0x5F7D},
+ {0x22659, 0x5FDE},
+ {0x2265A, 0x5FE5},
+ {0x2265B, 0x602D},
+ {0x2265C, 0x6026},
+ {0x2265D, 0x6019},
+ {0x2265E, 0x6032},
+ {0x2265F, 0x600B},
+ {0x22660, 0x6034},
+ {0x22661, 0x600A},
+ {0x22662, 0x6017},
+ {0x22663, 0x6033},
+ {0x22664, 0x601A},
+ {0x22665, 0x601E},
+ {0x22666, 0x602C},
+ {0x22667, 0x6022},
+ {0x22668, 0x600D},
+ {0x22669, 0x6010},
+ {0x2266A, 0x602E},
+ {0x2266B, 0x6013},
+ {0x2266C, 0x6011},
+ {0x2266D, 0x600C},
+ {0x2266E, 0x6009},
+ {0x2266F, 0x601C},
+ {0x22670, 0x6214},
+ {0x22671, 0x623D},
+ {0x22672, 0x62AD},
+ {0x22673, 0x62B4},
+ {0x22674, 0x62D1},
+ {0x22675, 0x62BE},
+ {0x22676, 0x62AA},
+ {0x22677, 0x62B6},
+ {0x22678, 0x62CA},
+ {0x22679, 0x62AE},
+ {0x2267A, 0x62B3},
+ {0x2267B, 0x62AF},
+ {0x2267C, 0x62BB},
+ {0x2267D, 0x62A9},
+ {0x2267E, 0x62B0},
+ {0x22721, 0x62B8},
+ {0x22722, 0x653D},
+ {0x22723, 0x65A8},
+ {0x22724, 0x65BB},
+ {0x22725, 0x6609},
+ {0x22726, 0x65FC},
+ {0x22727, 0x6604},
+ {0x22728, 0x6612},
+ {0x22729, 0x6608},
+ {0x2272A, 0x65FB},
+ {0x2272B, 0x6603},
+ {0x2272C, 0x660B},
+ {0x2272D, 0x660D},
+ {0x2272E, 0x6605},
+ {0x2272F, 0x65FD},
+ {0x22730, 0x6611},
+ {0x22731, 0x6610},
+ {0x22732, 0x66F6},
+ {0x22733, 0x670A},
+ {0x22734, 0x6785},
+ {0x22735, 0x676C},
+ {0x22736, 0x678E},
+ {0x22737, 0x6792},
+ {0x22738, 0x6776},
+ {0x22739, 0x677B},
+ {0x2273A, 0x6798},
+ {0x2273B, 0x6786},
+ {0x2273C, 0x6784},
+ {0x2273D, 0x6774},
+ {0x2273E, 0x678D},
+ {0x2273F, 0x678C},
+ {0x22740, 0x677A},
+ {0x22741, 0x679F},
+ {0x22742, 0x6791},
+ {0x22743, 0x6799},
+ {0x22744, 0x6783},
+ {0x22745, 0x677D},
+ {0x22746, 0x6781},
+ {0x22747, 0x6778},
+ {0x22748, 0x6779},
+ {0x22749, 0x6794},
+ {0x2274A, 0x6B25},
+ {0x2274B, 0x6B80},
+ {0x2274C, 0x6B7E},
+ {0x2274D, 0x6BDE},
+ {0x2274E, 0x6C1D},
+ {0x2274F, 0x6C93},
+ {0x22750, 0x6CEC},
+ {0x22751, 0x6CEB},
+ {0x22752, 0x6CEE},
+ {0x22753, 0x6CD9},
+ {0x22754, 0x6CB6},
+ {0x22755, 0x6CD4},
+ {0x22756, 0x6CAD},
+ {0x22757, 0x6CE7},
+ {0x22758, 0x6CB7},
+ {0x22759, 0x6CD0},
+ {0x2275A, 0x6CC2},
+ {0x2275B, 0x6CBA},
+ {0x2275C, 0x6CC3},
+ {0x2275D, 0x6CC6},
+ {0x2275E, 0x6CED},
+ {0x2275F, 0x6CF2},
+ {0x22760, 0x6CD2},
+ {0x22761, 0x6CDD},
+ {0x22762, 0x6CB4},
+ {0x22763, 0x6C8A},
+ {0x22764, 0x6C9D},
+ {0x22765, 0x6C80},
+ {0x22766, 0x6CDE},
+ {0x22767, 0x6CC0},
+ {0x22768, 0x6D30},
+ {0x22769, 0x6CCD},
+ {0x2276A, 0x6CC7},
+ {0x2276B, 0x6CB0},
+ {0x2276C, 0x6CF9},
+ {0x2276D, 0x6CCF},
+ {0x2276E, 0x6CE9},
+ {0x2276F, 0x6CD1},
+ {0x22770, 0x7094},
+ {0x22771, 0x7098},
+ {0x22772, 0x7085},
+ {0x22773, 0x7093},
+ {0x22774, 0x7086},
+ {0x22775, 0x7084},
+ {0x22776, 0x7091},
+ {0x22777, 0x7096},
+ {0x22778, 0x7082},
+ {0x22779, 0x709A},
+ {0x2277A, 0x7083},
+ {0x2277B, 0x726A},
+ {0x2277C, 0x72D6},
+ {0x2277D, 0x72CB},
+ {0x2277E, 0x72D8},
+ {0x22821, 0x72C9},
+ {0x22822, 0x72DC},
+ {0x22823, 0x72D2},
+ {0x22824, 0x72D4},
+ {0x22825, 0x72DA},
+ {0x22826, 0x72CC},
+ {0x22827, 0x72D1},
+ {0x22828, 0x73A4},
+ {0x22829, 0x73A1},
+ {0x2282A, 0x73AD},
+ {0x2282B, 0x73A6},
+ {0x2282C, 0x73A2},
+ {0x2282D, 0x73A0},
+ {0x2282E, 0x73AC},
+ {0x2282F, 0x739D},
+ {0x22830, 0x74DD},
+ {0x22831, 0x74E8},
+ {0x22832, 0x753F},
+ {0x22833, 0x7540},
+ {0x22834, 0x753E},
+ {0x22835, 0x758C},
+ {0x22836, 0x7598},
+ {0x22837, 0x76AF},
+ {0x22838, 0x76F3},
+ {0x22839, 0x76F1},
+ {0x2283A, 0x76F0},
+ {0x2283B, 0x76F5},
+ {0x2283C, 0x77F8},
+ {0x2283D, 0x77FC},
+ {0x2283E, 0x77F9},
+ {0x2283F, 0x77FB},
+ {0x22840, 0x77FA},
+ {0x22841, 0x77F7},
+ {0x22842, 0x7942},
+ {0x22843, 0x793F},
+ {0x22844, 0x79C5},
+ {0x22845, 0x7A78},
+ {0x22846, 0x7A7B},
+ {0x22847, 0x7AFB},
+ {0x22848, 0x7C75},
+ {0x22849, 0x7CFD},
+ {0x2284A, 0x8035},
+ {0x2284B, 0x808F},
+ {0x2284C, 0x80AE},
+ {0x2284D, 0x80A3},
+ {0x2284E, 0x80B8},
+ {0x2284F, 0x80B5},
+ {0x22850, 0x80AD},
+ {0x22851, 0x8220},
+ {0x22852, 0x82A0},
+ {0x22853, 0x82C0},
+ {0x22854, 0x82AB},
+ {0x22855, 0x829A},
+ {0x22856, 0x8298},
+ {0x22857, 0x829B},
+ {0x22858, 0x82B5},
+ {0x22859, 0x82A7},
+ {0x2285A, 0x82AE},
+ {0x2285B, 0x82BC},
+ {0x2285C, 0x829E},
+ {0x2285D, 0x82BA},
+ {0x2285E, 0x82B4},
+ {0x2285F, 0x82A8},
+ {0x22860, 0x82A1},
+ {0x22861, 0x82A9},
+ {0x22862, 0x82C2},
+ {0x22863, 0x82A4},
+ {0x22864, 0x82C3},
+ {0x22865, 0x82B6},
+ {0x22866, 0x82A2},
+ {0x22867, 0x8670},
+ {0x22868, 0x866F},
+ {0x22869, 0x866D},
+ {0x2286A, 0x866E},
+ {0x2286B, 0x8C56},
+ {0x2286C, 0x8FD2},
+ {0x2286D, 0x8FCB},
+ {0x2286E, 0x8FD3},
+ {0x2286F, 0x8FCD},
+ {0x22870, 0x8FD6},
+ {0x22871, 0x8FD5},
+ {0x22872, 0x8FD7},
+ {0x22873, 0x90B2},
+ {0x22874, 0x90B4},
+ {0x22875, 0x90AF},
+ {0x22876, 0x90B3},
+ {0x22877, 0x90B0},
+ {0x22878, 0x9639},
+ {0x22879, 0x963D},
+ {0x2287A, 0x963C},
+ {0x2287B, 0x963A},
+ {0x2287C, 0x9643},
+ {0x2287D, 0x4FCD},
+ {0x2287E, 0x4FC5},
+ {0x22921, 0x4FD3},
+ {0x22922, 0x4FB2},
+ {0x22923, 0x4FC9},
+ {0x22924, 0x4FCB},
+ {0x22925, 0x4FC1},
+ {0x22926, 0x4FD4},
+ {0x22927, 0x4FDC},
+ {0x22928, 0x4FD9},
+ {0x22929, 0x4FBB},
+ {0x2292A, 0x4FB3},
+ {0x2292B, 0x4FDB},
+ {0x2292C, 0x4FC7},
+ {0x2292D, 0x4FD6},
+ {0x2292E, 0x4FBA},
+ {0x2292F, 0x4FC0},
+ {0x22930, 0x4FB9},
+ {0x22931, 0x4FEC},
+ {0x22932, 0x5244},
+ {0x22933, 0x5249},
+ {0x22934, 0x52C0},
+ {0x22935, 0x52C2},
+ {0x22936, 0x533D},
+ {0x22937, 0x537C},
+ {0x22938, 0x5397},
+ {0x22939, 0x5396},
+ {0x2293A, 0x5399},
+ {0x2293B, 0x5398},
+ {0x2293C, 0x54BA},
+ {0x2293D, 0x54A1},
+ {0x2293E, 0x54AD},
+ {0x2293F, 0x54A5},
+ {0x22940, 0x54CF},
+ {0x22941, 0x54C3},
+ {0x22942, 0x830D},
+ {0x22943, 0x54B7},
+ {0x22944, 0x54AE},
+ {0x22945, 0x54D6},
+ {0x22946, 0x54B6},
+ {0x22947, 0x54C5},
+ {0x22948, 0x54C6},
+ {0x22949, 0x54A0},
+ {0x2294A, 0x5470},
+ {0x2294B, 0x54BC},
+ {0x2294C, 0x54A2},
+ {0x2294D, 0x54BE},
+ {0x2294E, 0x5472},
+ {0x2294F, 0x54DE},
+ {0x22950, 0x54B0},
+ {0x22951, 0x57B5},
+ {0x22952, 0x579E},
+ {0x22953, 0x579F},
+ {0x22954, 0x57A4},
+ {0x22955, 0x578C},
+ {0x22956, 0x5797},
+ {0x22957, 0x579D},
+ {0x22958, 0x579B},
+ {0x22959, 0x5794},
+ {0x2295A, 0x5798},
+ {0x2295B, 0x578F},
+ {0x2295C, 0x5799},
+ {0x2295D, 0x57A5},
+ {0x2295E, 0x579A},
+ {0x2295F, 0x5795},
+ {0x22960, 0x58F4},
+ {0x22961, 0x590D},
+ {0x22962, 0x5953},
+ {0x22963, 0x59E1},
+ {0x22964, 0x59DE},
+ {0x22965, 0x59EE},
+ {0x22966, 0x5A00},
+ {0x22967, 0x59F1},
+ {0x22968, 0x59DD},
+ {0x22969, 0x59FA},
+ {0x2296A, 0x59FD},
+ {0x2296B, 0x59FC},
+ {0x2296C, 0x59F6},
+ {0x2296D, 0x59E4},
+ {0x2296E, 0x59F2},
+ {0x2296F, 0x59F7},
+ {0x22970, 0x59DB},
+ {0x22971, 0x59E9},
+ {0x22972, 0x59F3},
+ {0x22973, 0x59F5},
+ {0x22974, 0x59E0},
+ {0x22975, 0x59FE},
+ {0x22976, 0x59F4},
+ {0x22977, 0x59ED},
+ {0x22978, 0x5BA8},
+ {0x22979, 0x5C4C},
+ {0x2297A, 0x5CD0},
+ {0x2297B, 0x5CD8},
+ {0x2297C, 0x5CCC},
+ {0x2297D, 0x5CD7},
+ {0x2297E, 0x5CCB},
+ {0x22A21, 0x5CDB},
+ {0x22A22, 0x5CDE},
+ {0x22A23, 0x5CDA},
+ {0x22A24, 0x5CC9},
+ {0x22A25, 0x5CC7},
+ {0x22A26, 0x5CCA},
+ {0x22A27, 0x5CD6},
+ {0x22A28, 0x5CD3},
+ {0x22A29, 0x5CD4},
+ {0x22A2A, 0x5CCF},
+ {0x22A2B, 0x5CC8},
+ {0x22A2C, 0x5CC6},
+ {0x22A2D, 0x5CCE},
+ {0x22A2E, 0x5CDF},
+ {0x22A2F, 0x5CF8},
+ {0x22A30, 0x5DF9},
+ {0x22A31, 0x5E21},
+ {0x22A32, 0x5E22},
+ {0x22A33, 0x5E23},
+ {0x22A34, 0x5E20},
+ {0x22A35, 0x5E24},
+ {0x22A36, 0x5EB0},
+ {0x22A37, 0x5EA4},
+ {0x22A38, 0x5EA2},
+ {0x22A39, 0x5E9B},
+ {0x22A3A, 0x5EA3},
+ {0x22A3B, 0x5EA5},
+ {0x22A3C, 0x5F07},
+ {0x22A3D, 0x5F2E},
+ {0x22A3E, 0x5F56},
+ {0x22A3F, 0x5F86},
+ {0x22A40, 0x6037},
+ {0x22A41, 0x6039},
+ {0x22A42, 0x6054},
+ {0x22A43, 0x6072},
+ {0x22A44, 0x605E},
+ {0x22A45, 0x6045},
+ {0x22A46, 0x6053},
+ {0x22A47, 0x6047},
+ {0x22A48, 0x6049},
+ {0x22A49, 0x605B},
+ {0x22A4A, 0x604C},
+ {0x22A4B, 0x6040},
+ {0x22A4C, 0x6042},
+ {0x22A4D, 0x605F},
+ {0x22A4E, 0x6024},
+ {0x22A4F, 0x6044},
+ {0x22A50, 0x6058},
+ {0x22A51, 0x6066},
+ {0x22A52, 0x606E},
+ {0x22A53, 0x6242},
+ {0x22A54, 0x6243},
+ {0x22A55, 0x62CF},
+ {0x22A56, 0x630D},
+ {0x22A57, 0x630B},
+ {0x22A58, 0x62F5},
+ {0x22A59, 0x630E},
+ {0x22A5A, 0x6303},
+ {0x22A5B, 0x62EB},
+ {0x22A5C, 0x62F9},
+ {0x22A5D, 0x630F},
+ {0x22A5E, 0x630C},
+ {0x22A5F, 0x62F8},
+ {0x22A60, 0x62F6},
+ {0x22A61, 0x6300},
+ {0x22A62, 0x6313},
+ {0x22A63, 0x6314},
+ {0x22A64, 0x62FA},
+ {0x22A65, 0x6315},
+ {0x22A66, 0x62FB},
+ {0x22A67, 0x62F0},
+ {0x22A68, 0x6541},
+ {0x22A69, 0x6543},
+ {0x22A6A, 0x65AA},
+ {0x22A6B, 0x65BF},
+ {0x22A6C, 0x6636},
+ {0x22A6D, 0x6621},
+ {0x22A6E, 0x6632},
+ {0x22A6F, 0x6635},
+ {0x22A70, 0x661C},
+ {0x22A71, 0x6626},
+ {0x22A72, 0x6622},
+ {0x22A73, 0x6633},
+ {0x22A74, 0x662B},
+ {0x22A75, 0x663A},
+ {0x22A76, 0x661D},
+ {0x22A77, 0x6634},
+ {0x22A78, 0x6639},
+ {0x22A79, 0x662E},
+ {0x22A7A, 0x670F},
+ {0x22A7B, 0x6710},
+ {0x22A7C, 0x67C1},
+ {0x22A7D, 0x67F2},
+ {0x22A7E, 0x67C8},
+ {0x22B21, 0x67BA},
+ {0x22B22, 0x67DC},
+ {0x22B23, 0x67BB},
+ {0x22B24, 0x67F8},
+ {0x22B25, 0x67D8},
+ {0x22B26, 0x67C0},
+ {0x22B27, 0x67B7},
+ {0x22B28, 0x67C5},
+ {0x22B29, 0x67EB},
+ {0x22B2A, 0x67E4},
+ {0x22B2B, 0x67DF},
+ {0x22B2C, 0x67B5},
+ {0x22B2D, 0x67CD},
+ {0x22B2E, 0x67B3},
+ {0x22B2F, 0x67F7},
+ {0x22B30, 0x67F6},
+ {0x22B31, 0x67EE},
+ {0x22B32, 0x67E3},
+ {0x22B33, 0x67C2},
+ {0x22B34, 0x67B9},
+ {0x22B35, 0x67CE},
+ {0x22B36, 0x67E7},
+ {0x22B37, 0x67F0},
+ {0x22B38, 0x67B2},
+ {0x22B39, 0x67FC},
+ {0x22B3A, 0x67C6},
+ {0x22B3B, 0x67ED},
+ {0x22B3C, 0x67CC},
+ {0x22B3D, 0x67AE},
+ {0x22B3E, 0x67E6},
+ {0x22B3F, 0x67DB},
+ {0x22B40, 0x67FA},
+ {0x22B41, 0x67C9},
+ {0x22B42, 0x67CA},
+ {0x22B43, 0x67C3},
+ {0x22B44, 0x67EA},
+ {0x22B45, 0x67CB},
+ {0x22B46, 0x6B28},
+ {0x22B47, 0x6B82},
+ {0x22B48, 0x6B84},
+ {0x22B49, 0x6BB6},
+ {0x22B4A, 0x6BD6},
+ {0x22B4B, 0x6BD8},
+ {0x22B4C, 0x6BE0},
+ {0x22B4D, 0x6C20},
+ {0x22B4E, 0x6C21},
+ {0x22B4F, 0x6D28},
+ {0x22B50, 0x6D34},
+ {0x22B51, 0x6D2D},
+ {0x22B52, 0x6D1F},
+ {0x22B53, 0x6D3C},
+ {0x22B54, 0x6D3F},
+ {0x22B55, 0x6D12},
+ {0x22B56, 0x6D0A},
+ {0x22B57, 0x6CDA},
+ {0x22B58, 0x6D33},
+ {0x22B59, 0x6D04},
+ {0x22B5A, 0x6D19},
+ {0x22B5B, 0x6D3A},
+ {0x22B5C, 0x6D1A},
+ {0x22B5D, 0x6D11},
+ {0x22B5E, 0x6D00},
+ {0x22B5F, 0x6D1D},
+ {0x22B60, 0x6D42},
+ {0x22B61, 0x6D01},
+ {0x22B62, 0x6D18},
+ {0x22B63, 0x6D37},
+ {0x22B64, 0x6D03},
+ {0x22B65, 0x6D0F},
+ {0x22B66, 0x6D40},
+ {0x22B67, 0x6D07},
+ {0x22B68, 0x6D20},
+ {0x22B69, 0x6D2C},
+ {0x22B6A, 0x6D08},
+ {0x22B6B, 0x6D22},
+ {0x22B6C, 0x6D09},
+ {0x22B6D, 0x6D10},
+ {0x22B6E, 0x70B7},
+ {0x22B6F, 0x709F},
+ {0x22B70, 0x70BE},
+ {0x22B71, 0x70B1},
+ {0x22B72, 0x70B0},
+ {0x22B73, 0x70A1},
+ {0x22B74, 0x70B4},
+ {0x22B75, 0x70B5},
+ {0x22B76, 0x70A9},
+ {0x22B77, 0x7241},
+ {0x22B78, 0x7249},
+ {0x22B79, 0x724A},
+ {0x22B7A, 0x726C},
+ {0x22B7B, 0x7270},
+ {0x22B7C, 0x7273},
+ {0x22B7D, 0x726E},
+ {0x22B7E, 0x72CA},
+ {0x22C21, 0x72E4},
+ {0x22C22, 0x72E8},
+ {0x22C23, 0x72EB},
+ {0x22C24, 0x72DF},
+ {0x22C25, 0x72EA},
+ {0x22C26, 0x72E6},
+ {0x22C27, 0x72E3},
+ {0x22C28, 0x7385},
+ {0x22C29, 0x73CC},
+ {0x22C2A, 0x73C2},
+ {0x22C2B, 0x73C8},
+ {0x22C2C, 0x73C5},
+ {0x22C2D, 0x73B9},
+ {0x22C2E, 0x73B6},
+ {0x22C2F, 0x73B5},
+ {0x22C30, 0x73B4},
+ {0x22C31, 0x73EB},
+ {0x22C32, 0x73BF},
+ {0x22C33, 0x73C7},
+ {0x22C34, 0x73BE},
+ {0x22C35, 0x73C3},
+ {0x22C36, 0x73C6},
+ {0x22C37, 0x73B8},
+ {0x22C38, 0x73CB},
+ {0x22C39, 0x74EC},
+ {0x22C3A, 0x74EE},
+ {0x22C3B, 0x752E},
+ {0x22C3C, 0x7547},
+ {0x22C3D, 0x7548},
+ {0x22C3E, 0x75A7},
+ {0x22C3F, 0x75AA},
+ {0x22C40, 0x7679},
+ {0x22C41, 0x76C4},
+ {0x22C42, 0x7708},
+ {0x22C43, 0x7703},
+ {0x22C44, 0x7704},
+ {0x22C45, 0x7705},
+ {0x22C46, 0x770A},
+ {0x22C47, 0x76F7},
+ {0x22C48, 0x76FB},
+ {0x22C49, 0x76FA},
+ {0x22C4A, 0x77E7},
+ {0x22C4B, 0x77E8},
+ {0x22C4C, 0x7806},
+ {0x22C4D, 0x7811},
+ {0x22C4E, 0x7812},
+ {0x22C4F, 0x7805},
+ {0x22C50, 0x7810},
+ {0x22C51, 0x780F},
+ {0x22C52, 0x780E},
+ {0x22C53, 0x7809},
+ {0x22C54, 0x7803},
+ {0x22C55, 0x7813},
+ {0x22C56, 0x794A},
+ {0x22C57, 0x794C},
+ {0x22C58, 0x794B},
+ {0x22C59, 0x7945},
+ {0x22C5A, 0x7944},
+ {0x22C5B, 0x79D5},
+ {0x22C5C, 0x79CD},
+ {0x22C5D, 0x79CF},
+ {0x22C5E, 0x79D6},
+ {0x22C5F, 0x79CE},
+ {0x22C60, 0x7A80},
+ {0x22C61, 0x7A7E},
+ {0x22C62, 0x7AD1},
+ {0x22C63, 0x7B00},
+ {0x22C64, 0x7B01},
+ {0x22C65, 0x7C7A},
+ {0x22C66, 0x7C78},
+ {0x22C67, 0x7C79},
+ {0x22C68, 0x7C7F},
+ {0x22C69, 0x7C80},
+ {0x22C6A, 0x7C81},
+ {0x22C6B, 0x7D03},
+ {0x22C6C, 0x7D08},
+ {0x22C6D, 0x7D01},
+ {0x22C6E, 0x7F58},
+ {0x22C6F, 0x7F91},
+ {0x22C70, 0x7F8D},
+ {0x22C71, 0x7FBE},
+ {0x22C72, 0x8007},
+ {0x22C73, 0x800E},
+ {0x22C74, 0x800F},
+ {0x22C75, 0x8014},
+ {0x22C76, 0x8037},
+ {0x22C77, 0x80D8},
+ {0x22C78, 0x80C7},
+ {0x22C79, 0x80E0},
+ {0x22C7A, 0x80D1},
+ {0x22C7B, 0x80C8},
+ {0x22C7C, 0x80C2},
+ {0x22C7D, 0x80D0},
+ {0x22C7E, 0x80C5},
+ {0x22D21, 0x80E3},
+ {0x22D22, 0x80D9},
+ {0x22D23, 0x80DC},
+ {0x22D24, 0x80CA},
+ {0x22D25, 0x80D5},
+ {0x22D26, 0x80C9},
+ {0x22D27, 0x80CF},
+ {0x22D28, 0x80D7},
+ {0x22D29, 0x80E6},
+ {0x22D2A, 0x80CD},
+ {0x22D2B, 0x81FF},
+ {0x22D2C, 0x8221},
+ {0x22D2D, 0x8294},
+ {0x22D2E, 0x82D9},
+ {0x22D2F, 0x82FE},
+ {0x22D30, 0x82F9},
+ {0x22D31, 0x8307},
+ {0x22D32, 0x82E8},
+ {0x22D33, 0x8300},
+ {0x22D34, 0x82D5},
+ {0x22D35, 0x833A},
+ {0x22D36, 0x82EB},
+ {0x22D37, 0x82D6},
+ {0x22D38, 0x82F4},
+ {0x22D39, 0x82EC},
+ {0x22D3A, 0x82E1},
+ {0x22D3B, 0x82F2},
+ {0x22D3C, 0x82F5},
+ {0x22D3D, 0x830C},
+ {0x22D3E, 0x82FB},
+ {0x22D3F, 0x82F6},
+ {0x22D40, 0x82F0},
+ {0x22D41, 0x82EA},
+ {0x22D42, 0x82E4},
+ {0x22D43, 0x82E0},
+ {0x22D44, 0x82FA},
+ {0x22D45, 0x82F3},
+ {0x22D46, 0x82ED},
+ {0x22D47, 0x8677},
+ {0x22D48, 0x8674},
+ {0x22D49, 0x867C},
+ {0x22D4A, 0x8673},
+ {0x22D4B, 0x8841},
+ {0x22D4C, 0x884E},
+ {0x22D4D, 0x8867},
+ {0x22D4E, 0x886A},
+ {0x22D4F, 0x8869},
+ {0x22D50, 0x89D3},
+ {0x22D51, 0x8A04},
+ {0x22D52, 0x8A07},
+ {0x22D53, 0x8D72},
+ {0x22D54, 0x8FE3},
+ {0x22D55, 0x8FE1},
+ {0x22D56, 0x8FEE},
+ {0x22D57, 0x8FE0},
+ {0x22D58, 0x90F1},
+ {0x22D59, 0x90BD},
+ {0x22D5A, 0x90BF},
+ {0x22D5B, 0x90D5},
+ {0x22D5C, 0x90C5},
+ {0x22D5D, 0x90BE},
+ {0x22D5E, 0x90C7},
+ {0x22D5F, 0x90CB},
+ {0x22D60, 0x90C8},
+ {0x22D61, 0x91D4},
+ {0x22D62, 0x91D3},
+ {0x22D63, 0x9654},
+ {0x22D64, 0x964F},
+ {0x22D65, 0x9651},
+ {0x22D66, 0x9653},
+ {0x22D67, 0x964A},
+ {0x22D68, 0x964E},
+ {0x22D69, 0x501E},
+ {0x22D6A, 0x5005},
+ {0x22D6B, 0x5007},
+ {0x22D6C, 0x5013},
+ {0x22D6D, 0x5022},
+ {0x22D6E, 0x5030},
+ {0x22D6F, 0x501B},
+ {0x22D70, 0x4FF5},
+ {0x22D71, 0x4FF4},
+ {0x22D72, 0x5033},
+ {0x22D73, 0x5037},
+ {0x22D74, 0x502C},
+ {0x22D75, 0x4FF6},
+ {0x22D76, 0x4FF7},
+ {0x22D77, 0x5017},
+ {0x22D78, 0x501C},
+ {0x22D79, 0x5020},
+ {0x22D7A, 0x5027},
+ {0x22D7B, 0x5035},
+ {0x22D7C, 0x502F},
+ {0x22D7D, 0x5031},
+ {0x22D7E, 0x500E},
+ {0x22E21, 0x515A},
+ {0x22E22, 0x5194},
+ {0x22E23, 0x5193},
+ {0x22E24, 0x51CA},
+ {0x22E25, 0x51C4},
+ {0x22E26, 0x51C5},
+ {0x22E27, 0x51C8},
+ {0x22E28, 0x51CE},
+ {0x22E29, 0x5261},
+ {0x22E2A, 0x525A},
+ {0x22E2B, 0x5252},
+ {0x22E2C, 0x525E},
+ {0x22E2D, 0x525F},
+ {0x22E2E, 0x5255},
+ {0x22E2F, 0x5262},
+ {0x22E30, 0x52CD},
+ {0x22E31, 0x530E},
+ {0x22E32, 0x539E},
+ {0x22E33, 0x5526},
+ {0x22E34, 0x54E2},
+ {0x22E35, 0x5517},
+ {0x22E36, 0x5512},
+ {0x22E37, 0x54E7},
+ {0x22E38, 0x54F3},
+ {0x22E39, 0x54E4},
+ {0x22E3A, 0x551A},
+ {0x22E3B, 0x54FF},
+ {0x22E3C, 0x5504},
+ {0x22E3D, 0x5508},
+ {0x22E3E, 0x54EB},
+ {0x22E3F, 0x5511},
+ {0x22E40, 0x5505},
+ {0x22E41, 0x54F1},
+ {0x22E42, 0x550A},
+ {0x22E43, 0x54FB},
+ {0x22E44, 0x54F7},
+ {0x22E45, 0x54F8},
+ {0x22E46, 0x54E0},
+ {0x22E47, 0x550E},
+ {0x22E48, 0x5503},
+ {0x22E49, 0x550B},
+ {0x22E4A, 0x5701},
+ {0x22E4B, 0x5702},
+ {0x22E4C, 0x57CC},
+ {0x22E4D, 0x5832},
+ {0x22E4E, 0x57D5},
+ {0x22E4F, 0x57D2},
+ {0x22E50, 0x57BA},
+ {0x22E51, 0x57C6},
+ {0x22E52, 0x57BD},
+ {0x22E53, 0x57BC},
+ {0x22E54, 0x57B8},
+ {0x22E55, 0x57B6},
+ {0x22E56, 0x57BF},
+ {0x22E57, 0x57C7},
+ {0x22E58, 0x57D0},
+ {0x22E59, 0x57B9},
+ {0x22E5A, 0x57C1},
+ {0x22E5B, 0x590E},
+ {0x22E5C, 0x594A},
+ {0x22E5D, 0x5A19},
+ {0x22E5E, 0x5A16},
+ {0x22E5F, 0x5A2D},
+ {0x22E60, 0x5A2E},
+ {0x22E61, 0x5A15},
+ {0x22E62, 0x5A0F},
+ {0x22E63, 0x5A17},
+ {0x22E64, 0x5A0A},
+ {0x22E65, 0x5A1E},
+ {0x22E66, 0x5A33},
+ {0x22E67, 0x5B6C},
+ {0x22E68, 0x5BA7},
+ {0x22E69, 0x5BAD},
+ {0x22E6A, 0x5BAC},
+ {0x22E6B, 0x5C03},
+ {0x22E6C, 0x5C56},
+ {0x22E6D, 0x5C54},
+ {0x22E6E, 0x5CEC},
+ {0x22E6F, 0x5CFF},
+ {0x22E70, 0x5CEE},
+ {0x22E71, 0x5CF1},
+ {0x22E72, 0x5CF7},
+ {0x22E73, 0x5D00},
+ {0x22E74, 0x5CF9},
+ {0x22E75, 0x5E29},
+ {0x22E76, 0x5E28},
+ {0x22E77, 0x5EA8},
+ {0x22E78, 0x5EAE},
+ {0x22E79, 0x5EAA},
+ {0x22E7A, 0x5EAC},
+ {0x22E7B, 0x5F33},
+ {0x22E7C, 0x5F30},
+ {0x22E7D, 0x5F67},
+ {0x22E7E, 0x605D},
+ {0x22F21, 0x605A},
+ {0x22F22, 0x6067},
+ {0x22F23, 0x6041},
+ {0x22F24, 0x60A2},
+ {0x22F25, 0x6088},
+ {0x22F26, 0x6080},
+ {0x22F27, 0x6092},
+ {0x22F28, 0x6081},
+ {0x22F29, 0x609D},
+ {0x22F2A, 0x6083},
+ {0x22F2B, 0x6095},
+ {0x22F2C, 0x609B},
+ {0x22F2D, 0x6097},
+ {0x22F2E, 0x6087},
+ {0x22F2F, 0x609C},
+ {0x22F30, 0x608E},
+ {0x22F31, 0x6219},
+ {0x22F32, 0x6246},
+ {0x22F33, 0x62F2},
+ {0x22F34, 0x6310},
+ {0x22F35, 0x6356},
+ {0x22F36, 0x632C},
+ {0x22F37, 0x6344},
+ {0x22F38, 0x6345},
+ {0x22F39, 0x6336},
+ {0x22F3A, 0x6343},
+ {0x22F3B, 0x63E4},
+ {0x22F3C, 0x6339},
+ {0x22F3D, 0x634B},
+ {0x22F3E, 0x634A},
+ {0x22F3F, 0x633C},
+ {0x22F40, 0x6329},
+ {0x22F41, 0x6341},
+ {0x22F42, 0x6334},
+ {0x22F43, 0x6358},
+ {0x22F44, 0x6354},
+ {0x22F45, 0x6359},
+ {0x22F46, 0x632D},
+ {0x22F47, 0x6347},
+ {0x22F48, 0x6333},
+ {0x22F49, 0x635A},
+ {0x22F4A, 0x6351},
+ {0x22F4B, 0x6338},
+ {0x22F4C, 0x6357},
+ {0x22F4D, 0x6340},
+ {0x22F4E, 0x6348},
+ {0x22F4F, 0x654A},
+ {0x22F50, 0x6546},
+ {0x22F51, 0x65C6},
+ {0x22F52, 0x65C3},
+ {0x22F53, 0x65C4},
+ {0x22F54, 0x65C2},
+ {0x22F55, 0x664A},
+ {0x22F56, 0x665F},
+ {0x22F57, 0x6647},
+ {0x22F58, 0x6651},
+ {0x22F59, 0x6712},
+ {0x22F5A, 0x6713},
+ {0x22F5B, 0x681F},
+ {0x22F5C, 0x681A},
+ {0x22F5D, 0x6849},
+ {0x22F5E, 0x6832},
+ {0x22F5F, 0x6833},
+ {0x22F60, 0x683B},
+ {0x22F61, 0x684B},
+ {0x22F62, 0x684F},
+ {0x22F63, 0x6816},
+ {0x22F64, 0x6831},
+ {0x22F65, 0x681C},
+ {0x22F66, 0x6835},
+ {0x22F67, 0x682B},
+ {0x22F68, 0x682D},
+ {0x22F69, 0x682F},
+ {0x22F6A, 0x684E},
+ {0x22F6B, 0x6844},
+ {0x22F6C, 0x6834},
+ {0x22F6D, 0x681D},
+ {0x22F6E, 0x6812},
+ {0x22F6F, 0x6814},
+ {0x22F70, 0x6826},
+ {0x22F71, 0x6828},
+ {0x22F72, 0x682E},
+ {0x22F73, 0x684D},
+ {0x22F74, 0x683A},
+ {0x22F75, 0x6825},
+ {0x22F76, 0x6820},
+ {0x22F77, 0x6B2C},
+ {0x22F78, 0x6B2F},
+ {0x22F79, 0x6B2D},
+ {0x22F7A, 0x6B31},
+ {0x22F7B, 0x6B34},
+ {0x22F7C, 0x6B6D},
+ {0x22F7D, 0x8082},
+ {0x22F7E, 0x6B88},
+ {0x23021, 0x6BE6},
+ {0x23022, 0x6BE4},
+ {0x23023, 0x6BE8},
+ {0x23024, 0x6BE3},
+ {0x23025, 0x6BE2},
+ {0x23026, 0x6BE7},
+ {0x23027, 0x6C25},
+ {0x23028, 0x6D7A},
+ {0x23029, 0x6D63},
+ {0x2302A, 0x6D64},
+ {0x2302B, 0x6D76},
+ {0x2302C, 0x6D0D},
+ {0x2302D, 0x6D61},
+ {0x2302E, 0x6D92},
+ {0x2302F, 0x6D58},
+ {0x23030, 0x6D62},
+ {0x23031, 0x6D6D},
+ {0x23032, 0x6D6F},
+ {0x23033, 0x6D91},
+ {0x23034, 0x6D8D},
+ {0x23035, 0x6DEF},
+ {0x23036, 0x6D7F},
+ {0x23037, 0x6D86},
+ {0x23038, 0x6D5E},
+ {0x23039, 0x6D67},
+ {0x2303A, 0x6D60},
+ {0x2303B, 0x6D97},
+ {0x2303C, 0x6D70},
+ {0x2303D, 0x6D7C},
+ {0x2303E, 0x6D5F},
+ {0x2303F, 0x6D82},
+ {0x23040, 0x6D98},
+ {0x23041, 0x6D2F},
+ {0x23042, 0x6D68},
+ {0x23043, 0x6D8B},
+ {0x23044, 0x6D7E},
+ {0x23045, 0x6D80},
+ {0x23046, 0x6D84},
+ {0x23047, 0x6D16},
+ {0x23048, 0x6D83},
+ {0x23049, 0x6D7B},
+ {0x2304A, 0x6D7D},
+ {0x2304B, 0x6D75},
+ {0x2304C, 0x6D90},
+ {0x2304D, 0x70DC},
+ {0x2304E, 0x70D3},
+ {0x2304F, 0x70D1},
+ {0x23050, 0x70DD},
+ {0x23051, 0x70CB},
+ {0x23052, 0x7F39},
+ {0x23053, 0x70E2},
+ {0x23054, 0x70D7},
+ {0x23055, 0x70D2},
+ {0x23056, 0x70DE},
+ {0x23057, 0x70E0},
+ {0x23058, 0x70D4},
+ {0x23059, 0x70CD},
+ {0x2305A, 0x70C5},
+ {0x2305B, 0x70C6},
+ {0x2305C, 0x70C7},
+ {0x2305D, 0x70DA},
+ {0x2305E, 0x70CE},
+ {0x2305F, 0x70E1},
+ {0x23060, 0x7242},
+ {0x23061, 0x7278},
+ {0x23062, 0x7277},
+ {0x23063, 0x7276},
+ {0x23064, 0x7300},
+ {0x23065, 0x72FA},
+ {0x23066, 0x72F4},
+ {0x23067, 0x72FE},
+ {0x23068, 0x72F6},
+ {0x23069, 0x72F3},
+ {0x2306A, 0x72FB},
+ {0x2306B, 0x7301},
+ {0x2306C, 0x73D3},
+ {0x2306D, 0x73D9},
+ {0x2306E, 0x73E5},
+ {0x2306F, 0x73D6},
+ {0x23070, 0x73BC},
+ {0x23071, 0x73E7},
+ {0x23072, 0x73E3},
+ {0x23073, 0x73E9},
+ {0x23074, 0x73DC},
+ {0x23075, 0x73D2},
+ {0x23076, 0x73DB},
+ {0x23077, 0x73D4},
+ {0x23078, 0x73DD},
+ {0x23079, 0x73DA},
+ {0x2307A, 0x73D7},
+ {0x2307B, 0x73D8},
+ {0x2307C, 0x73E8},
+ {0x2307D, 0x74DE},
+ {0x2307E, 0x74DF},
+ {0x23121, 0x74F4},
+ {0x23122, 0x74F5},
+ {0x23123, 0x7521},
+ {0x23124, 0x755B},
+ {0x23125, 0x755F},
+ {0x23126, 0x75B0},
+ {0x23127, 0x75C1},
+ {0x23128, 0x75BB},
+ {0x23129, 0x75C4},
+ {0x2312A, 0x75C0},
+ {0x2312B, 0x75BF},
+ {0x2312C, 0x75B6},
+ {0x2312D, 0x75BA},
+ {0x2312E, 0x768A},
+ {0x2312F, 0x76C9},
+ {0x23130, 0x771D},
+ {0x23131, 0x771B},
+ {0x23132, 0x7710},
+ {0x23133, 0x7713},
+ {0x23134, 0x7712},
+ {0x23135, 0x7723},
+ {0x23136, 0x7711},
+ {0x23137, 0x7715},
+ {0x23138, 0x7719},
+ {0x23139, 0x771A},
+ {0x2313A, 0x7722},
+ {0x2313B, 0x7727},
+ {0x2313C, 0x7823},
+ {0x2313D, 0x782C},
+ {0x2313E, 0x7822},
+ {0x2313F, 0x7835},
+ {0x23140, 0x782F},
+ {0x23141, 0x7828},
+ {0x23142, 0x782E},
+ {0x23143, 0x782B},
+ {0x23144, 0x7821},
+ {0x23145, 0x7829},
+ {0x23146, 0x7833},
+ {0x23147, 0x782A},
+ {0x23148, 0x7831},
+ {0x23149, 0x7954},
+ {0x2314A, 0x795B},
+ {0x2314B, 0x794F},
+ {0x2314C, 0x795C},
+ {0x2314D, 0x7953},
+ {0x2314E, 0x7952},
+ {0x2314F, 0x7951},
+ {0x23150, 0x79EB},
+ {0x23151, 0x79EC},
+ {0x23152, 0x79E0},
+ {0x23153, 0x79EE},
+ {0x23154, 0x79ED},
+ {0x23155, 0x79EA},
+ {0x23156, 0x79DC},
+ {0x23157, 0x79DE},
+ {0x23158, 0x79DD},
+ {0x23159, 0x7A86},
+ {0x2315A, 0x7A89},
+ {0x2315B, 0x7A85},
+ {0x2315C, 0x7A8B},
+ {0x2315D, 0x7A8C},
+ {0x2315E, 0x7A8A},
+ {0x2315F, 0x7A87},
+ {0x23160, 0x7AD8},
+ {0x23161, 0x7B10},
+ {0x23162, 0x7B04},
+ {0x23163, 0x7B13},
+ {0x23164, 0x7B05},
+ {0x23165, 0x7B0F},
+ {0x23166, 0x7B08},
+ {0x23167, 0x7B0A},
+ {0x23168, 0x7B0E},
+ {0x23169, 0x7B09},
+ {0x2316A, 0x7B12},
+ {0x2316B, 0x7C84},
+ {0x2316C, 0x7C91},
+ {0x2316D, 0x7C8A},
+ {0x2316E, 0x7C8C},
+ {0x2316F, 0x7C88},
+ {0x23170, 0x7C8D},
+ {0x23171, 0x7C85},
+ {0x23172, 0x7D1E},
+ {0x23173, 0x7D1D},
+ {0x23174, 0x7D11},
+ {0x23175, 0x7D0E},
+ {0x23176, 0x7D18},
+ {0x23177, 0x7D16},
+ {0x23178, 0x7D13},
+ {0x23179, 0x7D1F},
+ {0x2317A, 0x7D12},
+ {0x2317B, 0x7D0F},
+ {0x2317C, 0x7D0C},
+ {0x2317D, 0x7F5C},
+ {0x2317E, 0x7F61},
+ {0x23221, 0x7F5E},
+ {0x23222, 0x7F60},
+ {0x23223, 0x7F5D},
+ {0x23224, 0x7F5B},
+ {0x23225, 0x7F96},
+ {0x23226, 0x7F92},
+ {0x23227, 0x7FC3},
+ {0x23228, 0x7FC2},
+ {0x23229, 0x7FC0},
+ {0x2322A, 0x8016},
+ {0x2322B, 0x803E},
+ {0x2322C, 0x8039},
+ {0x2322D, 0x80FA},
+ {0x2322E, 0x80F2},
+ {0x2322F, 0x80F9},
+ {0x23230, 0x80F5},
+ {0x23231, 0x8101},
+ {0x23232, 0x80FB},
+ {0x23233, 0x8100},
+ {0x23234, 0x8201},
+ {0x23235, 0x822F},
+ {0x23236, 0x8225},
+ {0x23237, 0x8333},
+ {0x23238, 0x832D},
+ {0x23239, 0x8344},
+ {0x2323A, 0x8319},
+ {0x2323B, 0x8351},
+ {0x2323C, 0x8325},
+ {0x2323D, 0x8356},
+ {0x2323E, 0x833F},
+ {0x2323F, 0x8341},
+ {0x23240, 0x8326},
+ {0x23241, 0x831C},
+ {0x23242, 0x8322},
+ {0x23243, 0x8342},
+ {0x23244, 0x834E},
+ {0x23245, 0x831B},
+ {0x23246, 0x832A},
+ {0x23247, 0x8308},
+ {0x23248, 0x833C},
+ {0x23249, 0x834D},
+ {0x2324A, 0x8316},
+ {0x2324B, 0x8324},
+ {0x2324C, 0x8320},
+ {0x2324D, 0x8337},
+ {0x2324E, 0x832F},
+ {0x2324F, 0x8329},
+ {0x23250, 0x8347},
+ {0x23251, 0x8345},
+ {0x23252, 0x834C},
+ {0x23253, 0x8353},
+ {0x23254, 0x831E},
+ {0x23255, 0x832C},
+ {0x23256, 0x834B},
+ {0x23257, 0x8327},
+ {0x23258, 0x8348},
+ {0x23259, 0x8653},
+ {0x2325A, 0x8652},
+ {0x2325B, 0x86A2},
+ {0x2325C, 0x86A8},
+ {0x2325D, 0x8696},
+ {0x2325E, 0x868D},
+ {0x2325F, 0x8691},
+ {0x23260, 0x869E},
+ {0x23261, 0x8687},
+ {0x23262, 0x8697},
+ {0x23263, 0x8686},
+ {0x23264, 0x868B},
+ {0x23265, 0x869A},
+ {0x23266, 0x8685},
+ {0x23267, 0x86A5},
+ {0x23268, 0x8699},
+ {0x23269, 0x86A1},
+ {0x2326A, 0x86A7},
+ {0x2326B, 0x8695},
+ {0x2326C, 0x8698},
+ {0x2326D, 0x868E},
+ {0x2326E, 0x869D},
+ {0x2326F, 0x8690},
+ {0x23270, 0x8694},
+ {0x23271, 0x8843},
+ {0x23272, 0x8844},
+ {0x23273, 0x886D},
+ {0x23274, 0x8875},
+ {0x23275, 0x8876},
+ {0x23276, 0x8872},
+ {0x23277, 0x8880},
+ {0x23278, 0x8871},
+ {0x23279, 0x887F},
+ {0x2327A, 0x886F},
+ {0x2327B, 0x8883},
+ {0x2327C, 0x887E},
+ {0x2327D, 0x8874},
+ {0x2327E, 0x887C},
+ {0x23321, 0x8A12},
+ {0x23322, 0x8C47},
+ {0x23323, 0x8C57},
+ {0x23324, 0x8C7B},
+ {0x23325, 0x8CA4},
+ {0x23326, 0x8CA3},
+ {0x23327, 0x8D76},
+ {0x23328, 0x8D78},
+ {0x23329, 0x8DB5},
+ {0x2332A, 0x8DB7},
+ {0x2332B, 0x8DB6},
+ {0x2332C, 0x8ED1},
+ {0x2332D, 0x8ED3},
+ {0x2332E, 0x8FFE},
+ {0x2332F, 0x8FF5},
+ {0x23330, 0x9002},
+ {0x23331, 0x8FFF},
+ {0x23332, 0x8FFB},
+ {0x23333, 0x9004},
+ {0x23334, 0x8FFC},
+ {0x23335, 0x8FF6},
+ {0x23336, 0x90D6},
+ {0x23337, 0x90E0},
+ {0x23338, 0x90D9},
+ {0x23339, 0x90DA},
+ {0x2333A, 0x90E3},
+ {0x2333B, 0x90DF},
+ {0x2333C, 0x90E5},
+ {0x2333D, 0x90D8},
+ {0x2333E, 0x90DB},
+ {0x2333F, 0x90D7},
+ {0x23340, 0x90DC},
+ {0x23341, 0x90E4},
+ {0x23342, 0x9150},
+ {0x23343, 0x914E},
+ {0x23344, 0x914F},
+ {0x23345, 0x91D5},
+ {0x23346, 0x91E2},
+ {0x23347, 0x91DA},
+ {0x23348, 0x965C},
+ {0x23349, 0x965F},
+ {0x2334A, 0x96BC},
+ {0x2334B, 0x98E3},
+ {0x2334C, 0x9ADF},
+ {0x2334D, 0x9B2F},
+ {0x2334E, 0x4E7F},
+ {0x2334F, 0x5070},
+ {0x23350, 0x506A},
+ {0x23351, 0x5061},
+ {0x23352, 0x505E},
+ {0x23353, 0x5060},
+ {0x23354, 0x5053},
+ {0x23355, 0x504B},
+ {0x23356, 0x505D},
+ {0x23357, 0x5072},
+ {0x23358, 0x5048},
+ {0x23359, 0x504D},
+ {0x2335A, 0x5041},
+ {0x2335B, 0x505B},
+ {0x2335C, 0x504A},
+ {0x2335D, 0x5062},
+ {0x2335E, 0x5015},
+ {0x2335F, 0x5045},
+ {0x23360, 0x505F},
+ {0x23361, 0x5069},
+ {0x23362, 0x506B},
+ {0x23363, 0x5063},
+ {0x23364, 0x5064},
+ {0x23365, 0x5046},
+ {0x23366, 0x5040},
+ {0x23367, 0x506E},
+ {0x23368, 0x5073},
+ {0x23369, 0x5057},
+ {0x2336A, 0x5051},
+ {0x2336B, 0x51D0},
+ {0x2336C, 0x526B},
+ {0x2336D, 0x526D},
+ {0x2336E, 0x526C},
+ {0x2336F, 0x526E},
+ {0x23370, 0x52D6},
+ {0x23371, 0x52D3},
+ {0x23372, 0x532D},
+ {0x23373, 0x539C},
+ {0x23374, 0x5575},
+ {0x23375, 0x5576},
+ {0x23376, 0x553C},
+ {0x23377, 0x554D},
+ {0x23378, 0x5550},
+ {0x23379, 0x5534},
+ {0x2337A, 0x552A},
+ {0x2337B, 0x5551},
+ {0x2337C, 0x5562},
+ {0x2337D, 0x5536},
+ {0x2337E, 0x5535},
+ {0x23421, 0x5530},
+ {0x23422, 0x5552},
+ {0x23423, 0x5545},
+ {0x23424, 0x550C},
+ {0x23425, 0x5532},
+ {0x23426, 0x5565},
+ {0x23427, 0x554E},
+ {0x23428, 0x5539},
+ {0x23429, 0x5548},
+ {0x2342A, 0x552D},
+ {0x2342B, 0x553B},
+ {0x2342C, 0x5540},
+ {0x2342D, 0x554B},
+ {0x2342E, 0x570A},
+ {0x2342F, 0x5707},
+ {0x23430, 0x57FB},
+ {0x23431, 0x5814},
+ {0x23432, 0x57E2},
+ {0x23433, 0x57F6},
+ {0x23434, 0x57DC},
+ {0x23435, 0x57F4},
+ {0x23436, 0x5800},
+ {0x23437, 0x57ED},
+ {0x23438, 0x57FD},
+ {0x23439, 0x5808},
+ {0x2343A, 0x57F8},
+ {0x2343B, 0x580B},
+ {0x2343C, 0x57F3},
+ {0x2343D, 0x57CF},
+ {0x2343E, 0x5807},
+ {0x2343F, 0x57EE},
+ {0x23440, 0x57E3},
+ {0x23441, 0x57F2},
+ {0x23442, 0x57E5},
+ {0x23443, 0x57EC},
+ {0x23444, 0x57E1},
+ {0x23445, 0x580E},
+ {0x23446, 0x57FC},
+ {0x23447, 0x5810},
+ {0x23448, 0x57E7},
+ {0x23449, 0x5801},
+ {0x2344A, 0x580C},
+ {0x2344B, 0x57F1},
+ {0x2344C, 0x57E9},
+ {0x2344D, 0x57F0},
+ {0x2344E, 0x580D},
+ {0x2344F, 0x5804},
+ {0x23450, 0x595C},
+ {0x23451, 0x5A60},
+ {0x23452, 0x5A58},
+ {0x23453, 0x5A55},
+ {0x23454, 0x5A67},
+ {0x23455, 0x5A5E},
+ {0x23456, 0x5A38},
+ {0x23457, 0x5A35},
+ {0x23458, 0x5A6D},
+ {0x23459, 0x5A50},
+ {0x2345A, 0x5A5F},
+ {0x2345B, 0x5A65},
+ {0x2345C, 0x5A6C},
+ {0x2345D, 0x5A53},
+ {0x2345E, 0x5A64},
+ {0x2345F, 0x5A57},
+ {0x23460, 0x5A43},
+ {0x23461, 0x5A5D},
+ {0x23462, 0x5A52},
+ {0x23463, 0x5A44},
+ {0x23464, 0x5A5B},
+ {0x23465, 0x5A48},
+ {0x23466, 0x5A8E},
+ {0x23467, 0x5A3E},
+ {0x23468, 0x5A4D},
+ {0x23469, 0x5A39},
+ {0x2346A, 0x5A4C},
+ {0x2346B, 0x5A70},
+ {0x2346C, 0x5A69},
+ {0x2346D, 0x5A47},
+ {0x2346E, 0x5A51},
+ {0x2346F, 0x5A56},
+ {0x23470, 0x5A42},
+ {0x23471, 0x5A5C},
+ {0x23472, 0x5B72},
+ {0x23473, 0x5B6E},
+ {0x23474, 0x5BC1},
+ {0x23475, 0x5BC0},
+ {0x23476, 0x5C59},
+ {0x23477, 0x5D1E},
+ {0x23478, 0x5D0B},
+ {0x23479, 0x5D1D},
+ {0x2347A, 0x5D1A},
+ {0x2347B, 0x5D20},
+ {0x2347C, 0x5D0C},
+ {0x2347D, 0x5D28},
+ {0x2347E, 0x5D0D},
+ {0x23521, 0x5D26},
+ {0x23522, 0x5D25},
+ {0x23523, 0x5D0F},
+ {0x23524, 0x5D30},
+ {0x23525, 0x5D12},
+ {0x23526, 0x5D23},
+ {0x23527, 0x5D1F},
+ {0x23528, 0x5D2E},
+ {0x23529, 0x5E3E},
+ {0x2352A, 0x5E34},
+ {0x2352B, 0x5EB1},
+ {0x2352C, 0x5EB4},
+ {0x2352D, 0x5EB9},
+ {0x2352E, 0x5EB2},
+ {0x2352F, 0x5EB3},
+ {0x23530, 0x5F36},
+ {0x23531, 0x5F38},
+ {0x23532, 0x5F9B},
+ {0x23533, 0x5F96},
+ {0x23534, 0x5F9F},
+ {0x23535, 0x608A},
+ {0x23536, 0x6090},
+ {0x23537, 0x6086},
+ {0x23538, 0x60BE},
+ {0x23539, 0x60B0},
+ {0x2353A, 0x60BA},
+ {0x2353B, 0x60D3},
+ {0x2353C, 0x60D4},
+ {0x2353D, 0x60CF},
+ {0x2353E, 0x60E4},
+ {0x2353F, 0x60D9},
+ {0x23540, 0x60DD},
+ {0x23541, 0x60C8},
+ {0x23542, 0x60B1},
+ {0x23543, 0x60DB},
+ {0x23544, 0x60B7},
+ {0x23545, 0x60CA},
+ {0x23546, 0x60BF},
+ {0x23547, 0x60C3},
+ {0x23548, 0x60CD},
+ {0x23549, 0x60C0},
+ {0x2354A, 0x6332},
+ {0x2354B, 0x6365},
+ {0x2354C, 0x638A},
+ {0x2354D, 0x6382},
+ {0x2354E, 0x637D},
+ {0x2354F, 0x63BD},
+ {0x23550, 0x639E},
+ {0x23551, 0x63AD},
+ {0x23552, 0x639D},
+ {0x23553, 0x6397},
+ {0x23554, 0x63AB},
+ {0x23555, 0x638E},
+ {0x23556, 0x636F},
+ {0x23557, 0x6387},
+ {0x23558, 0x6390},
+ {0x23559, 0x636E},
+ {0x2355A, 0x63AF},
+ {0x2355B, 0x6375},
+ {0x2355C, 0x639C},
+ {0x2355D, 0x636D},
+ {0x2355E, 0x63AE},
+ {0x2355F, 0x637C},
+ {0x23560, 0x63A4},
+ {0x23561, 0x633B},
+ {0x23562, 0x639F},
+ {0x23563, 0x6378},
+ {0x23564, 0x6385},
+ {0x23565, 0x6381},
+ {0x23566, 0x6391},
+ {0x23567, 0x638D},
+ {0x23568, 0x6370},
+ {0x23569, 0x6553},
+ {0x2356A, 0x65CD},
+ {0x2356B, 0x6665},
+ {0x2356C, 0x6661},
+ {0x2356D, 0x665B},
+ {0x2356E, 0x6659},
+ {0x2356F, 0x665C},
+ {0x23570, 0x6662},
+ {0x23571, 0x6718},
+ {0x23572, 0x6879},
+ {0x23573, 0x6887},
+ {0x23574, 0x6890},
+ {0x23575, 0x689C},
+ {0x23576, 0x686D},
+ {0x23577, 0x686E},
+ {0x23578, 0x68AE},
+ {0x23579, 0x68AB},
+ {0x2357A, 0x6956},
+ {0x2357B, 0x686F},
+ {0x2357C, 0x68A3},
+ {0x2357D, 0x68AC},
+ {0x2357E, 0x68A9},
+ {0x23621, 0x6875},
+ {0x23622, 0x6874},
+ {0x23623, 0x68B2},
+ {0x23624, 0x688F},
+ {0x23625, 0x6877},
+ {0x23626, 0x6892},
+ {0x23627, 0x687C},
+ {0x23628, 0x686B},
+ {0x23629, 0x6872},
+ {0x2362A, 0x68AA},
+ {0x2362B, 0x6880},
+ {0x2362C, 0x6871},
+ {0x2362D, 0x687E},
+ {0x2362E, 0x689B},
+ {0x2362F, 0x6896},
+ {0x23630, 0x688B},
+ {0x23631, 0x68A0},
+ {0x23632, 0x6889},
+ {0x23633, 0x68A4},
+ {0x23634, 0x6878},
+ {0x23635, 0x687B},
+ {0x23636, 0x6891},
+ {0x23637, 0x688C},
+ {0x23638, 0x688A},
+ {0x23639, 0x687D},
+ {0x2363A, 0x6B36},
+ {0x2363B, 0x6B33},
+ {0x2363C, 0x6B37},
+ {0x2363D, 0x6B38},
+ {0x2363E, 0x6B91},
+ {0x2363F, 0x6B8F},
+ {0x23640, 0x6B8D},
+ {0x23641, 0x6B8E},
+ {0x23642, 0x6B8C},
+ {0x23643, 0x6C2A},
+ {0x23644, 0x6DC0},
+ {0x23645, 0x6DAB},
+ {0x23646, 0x6DB4},
+ {0x23647, 0x6DB3},
+ {0x23648, 0x6E74},
+ {0x23649, 0x6DAC},
+ {0x2364A, 0x6DE9},
+ {0x2364B, 0x6DE2},
+ {0x2364C, 0x6DB7},
+ {0x2364D, 0x6DF6},
+ {0x2364E, 0x6DD4},
+ {0x2364F, 0x6E00},
+ {0x23650, 0x6DC8},
+ {0x23651, 0x6DE0},
+ {0x23652, 0x6DDF},
+ {0x23653, 0x6DD6},
+ {0x23654, 0x6DBE},
+ {0x23655, 0x6DE5},
+ {0x23656, 0x6DDC},
+ {0x23657, 0x6DDD},
+ {0x23658, 0x6DDB},
+ {0x23659, 0x6DF4},
+ {0x2365A, 0x6DCA},
+ {0x2365B, 0x6DBD},
+ {0x2365C, 0x6DED},
+ {0x2365D, 0x6DF0},
+ {0x2365E, 0x6DBA},
+ {0x2365F, 0x6DD5},
+ {0x23660, 0x6DC2},
+ {0x23661, 0x6DCF},
+ {0x23662, 0x6DC9},
+ {0x23663, 0x6DD0},
+ {0x23664, 0x6DF2},
+ {0x23665, 0x6DD3},
+ {0x23666, 0x6DFD},
+ {0x23667, 0x6DD7},
+ {0x23668, 0x6DCD},
+ {0x23669, 0x6DE3},
+ {0x2366A, 0x6DBB},
+ {0x2366B, 0x70FA},
+ {0x2366C, 0x710D},
+ {0x2366D, 0x70F7},
+ {0x2366E, 0x7117},
+ {0x2366F, 0x70F4},
+ {0x23670, 0x710C},
+ {0x23671, 0x70F0},
+ {0x23672, 0x7104},
+ {0x23673, 0x70F3},
+ {0x23674, 0x7110},
+ {0x23675, 0x70FC},
+ {0x23676, 0x70FF},
+ {0x23677, 0x7106},
+ {0x23678, 0x7113},
+ {0x23679, 0x7100},
+ {0x2367A, 0x70F8},
+ {0x2367B, 0x70F6},
+ {0x2367C, 0x710B},
+ {0x2367D, 0x7102},
+ {0x2367E, 0x710E},
+ {0x23721, 0x727E},
+ {0x23722, 0x727B},
+ {0x23723, 0x727C},
+ {0x23724, 0x727F},
+ {0x23725, 0x731D},
+ {0x23726, 0x7317},
+ {0x23727, 0x7307},
+ {0x23728, 0x7311},
+ {0x23729, 0x7318},
+ {0x2372A, 0x730A},
+ {0x2372B, 0x7308},
+ {0x2372C, 0x72FF},
+ {0x2372D, 0x730F},
+ {0x2372E, 0x731E},
+ {0x2372F, 0x7388},
+ {0x23730, 0x73F6},
+ {0x23731, 0x73F8},
+ {0x23732, 0x73F5},
+ {0x23733, 0x7404},
+ {0x23734, 0x7401},
+ {0x23735, 0x73FD},
+ {0x23736, 0x7407},
+ {0x23737, 0x7400},
+ {0x23738, 0x73FA},
+ {0x23739, 0x73FC},
+ {0x2373A, 0x73FF},
+ {0x2373B, 0x740C},
+ {0x2373C, 0x740B},
+ {0x2373D, 0x73F4},
+ {0x2373E, 0x7408},
+ {0x2373F, 0x7564},
+ {0x23740, 0x7563},
+ {0x23741, 0x75CE},
+ {0x23742, 0x75D2},
+ {0x23743, 0x75CF},
+ {0x23744, 0x75CB},
+ {0x23745, 0x75CC},
+ {0x23746, 0x75D1},
+ {0x23747, 0x75D0},
+ {0x23748, 0x768F},
+ {0x23749, 0x7689},
+ {0x2374A, 0x76D3},
+ {0x2374B, 0x7739},
+ {0x2374C, 0x772F},
+ {0x2374D, 0x772D},
+ {0x2374E, 0x7731},
+ {0x2374F, 0x7732},
+ {0x23750, 0x7734},
+ {0x23751, 0x7733},
+ {0x23752, 0x773D},
+ {0x23753, 0x7725},
+ {0x23754, 0x773B},
+ {0x23755, 0x7735},
+ {0x23756, 0x7848},
+ {0x23757, 0x7852},
+ {0x23758, 0x7849},
+ {0x23759, 0x784D},
+ {0x2375A, 0x784A},
+ {0x2375B, 0x784C},
+ {0x2375C, 0x7826},
+ {0x2375D, 0x7845},
+ {0x2375E, 0x7850},
+ {0x2375F, 0x7964},
+ {0x23760, 0x7967},
+ {0x23761, 0x7969},
+ {0x23762, 0x796A},
+ {0x23763, 0x7963},
+ {0x23764, 0x796B},
+ {0x23765, 0x7961},
+ {0x23766, 0x79BB},
+ {0x23767, 0x79FA},
+ {0x23768, 0x79F8},
+ {0x23769, 0x79F6},
+ {0x2376A, 0x79F7},
+ {0x2376B, 0x7A8F},
+ {0x2376C, 0x7A94},
+ {0x2376D, 0x7A90},
+ {0x2376E, 0x7B35},
+ {0x2376F, 0x7B3B},
+ {0x23770, 0x7B34},
+ {0x23771, 0x7B25},
+ {0x23772, 0x7B30},
+ {0x23773, 0x7B22},
+ {0x23774, 0x7B24},
+ {0x23775, 0x7B33},
+ {0x23776, 0x7B18},
+ {0x23777, 0x7B2A},
+ {0x23778, 0x7B1D},
+ {0x23779, 0x7B31},
+ {0x2377A, 0x7B2B},
+ {0x2377B, 0x7B2D},
+ {0x2377C, 0x7B2F},
+ {0x2377D, 0x7B32},
+ {0x2377E, 0x7B38},
+ {0x23821, 0x7B1A},
+ {0x23822, 0x7B23},
+ {0x23823, 0x7C94},
+ {0x23824, 0x7C98},
+ {0x23825, 0x7C96},
+ {0x23826, 0x7CA3},
+ {0x23827, 0x7D35},
+ {0x23828, 0x7D3D},
+ {0x23829, 0x7D38},
+ {0x2382A, 0x7D36},
+ {0x2382B, 0x7D3A},
+ {0x2382C, 0x7D45},
+ {0x2382D, 0x7D2C},
+ {0x2382E, 0x7D29},
+ {0x2382F, 0x7D41},
+ {0x23830, 0x7D47},
+ {0x23831, 0x7D3E},
+ {0x23832, 0x7D3F},
+ {0x23833, 0x7D4A},
+ {0x23834, 0x7D3B},
+ {0x23835, 0x7D28},
+ {0x23836, 0x7F63},
+ {0x23837, 0x7F95},
+ {0x23838, 0x7F9C},
+ {0x23839, 0x7F9D},
+ {0x2383A, 0x7F9B},
+ {0x2383B, 0x7FCA},
+ {0x2383C, 0x7FCB},
+ {0x2383D, 0x7FCD},
+ {0x2383E, 0x7FD0},
+ {0x2383F, 0x7FD1},
+ {0x23840, 0x7FC7},
+ {0x23841, 0x7FCF},
+ {0x23842, 0x7FC9},
+ {0x23843, 0x801F},
+ {0x23844, 0x801E},
+ {0x23845, 0x801B},
+ {0x23846, 0x8047},
+ {0x23847, 0x8043},
+ {0x23848, 0x8048},
+ {0x23849, 0x8118},
+ {0x2384A, 0x8125},
+ {0x2384B, 0x8119},
+ {0x2384C, 0x811B},
+ {0x2384D, 0x812D},
+ {0x2384E, 0x811F},
+ {0x2384F, 0x812C},
+ {0x23850, 0x811E},
+ {0x23851, 0x8121},
+ {0x23852, 0x8115},
+ {0x23853, 0x8127},
+ {0x23854, 0x811D},
+ {0x23855, 0x8122},
+ {0x23856, 0x8211},
+ {0x23857, 0x8238},
+ {0x23858, 0x8233},
+ {0x23859, 0x823A},
+ {0x2385A, 0x8234},
+ {0x2385B, 0x8232},
+ {0x2385C, 0x8274},
+ {0x2385D, 0x8390},
+ {0x2385E, 0x83A3},
+ {0x2385F, 0x83A8},
+ {0x23860, 0x838D},
+ {0x23861, 0x837A},
+ {0x23862, 0x8373},
+ {0x23863, 0x83A4},
+ {0x23864, 0x8374},
+ {0x23865, 0x838F},
+ {0x23866, 0x8381},
+ {0x23867, 0x8395},
+ {0x23868, 0x8399},
+ {0x23869, 0x8375},
+ {0x2386A, 0x8394},
+ {0x2386B, 0x83A9},
+ {0x2386C, 0x837D},
+ {0x2386D, 0x8383},
+ {0x2386E, 0x838C},
+ {0x2386F, 0x839D},
+ {0x23870, 0x839B},
+ {0x23871, 0x83AA},
+ {0x23872, 0x838B},
+ {0x23873, 0x837E},
+ {0x23874, 0x83A5},
+ {0x23875, 0x83AF},
+ {0x23876, 0x8388},
+ {0x23877, 0x8397},
+ {0x23878, 0x83B0},
+ {0x23879, 0x837F},
+ {0x2387A, 0x83A6},
+ {0x2387B, 0x8387},
+ {0x2387C, 0x83AE},
+ {0x2387D, 0x8376},
+ {0x2387E, 0x8659},
+ {0x23921, 0x8656},
+ {0x23922, 0x86BF},
+ {0x23923, 0x86B7},
+ {0x23924, 0x86C2},
+ {0x23925, 0x86C1},
+ {0x23926, 0x86C5},
+ {0x23927, 0x86BA},
+ {0x23928, 0x86B0},
+ {0x23929, 0x86C8},
+ {0x2392A, 0x86B9},
+ {0x2392B, 0x86B3},
+ {0x2392C, 0x86B8},
+ {0x2392D, 0x86CC},
+ {0x2392E, 0x86B4},
+ {0x2392F, 0x86BB},
+ {0x23930, 0x86BC},
+ {0x23931, 0x86C3},
+ {0x23932, 0x86BD},
+ {0x23933, 0x86BE},
+ {0x23934, 0x8852},
+ {0x23935, 0x8889},
+ {0x23936, 0x8895},
+ {0x23937, 0x88A8},
+ {0x23938, 0x88A2},
+ {0x23939, 0x88AA},
+ {0x2393A, 0x889A},
+ {0x2393B, 0x8891},
+ {0x2393C, 0x88A1},
+ {0x2393D, 0x889F},
+ {0x2393E, 0x8898},
+ {0x2393F, 0x88A7},
+ {0x23940, 0x8899},
+ {0x23941, 0x889B},
+ {0x23942, 0x8897},
+ {0x23943, 0x88A4},
+ {0x23944, 0x88AC},
+ {0x23945, 0x888C},
+ {0x23946, 0x8893},
+ {0x23947, 0x888E},
+ {0x23948, 0x8982},
+ {0x23949, 0x89D6},
+ {0x2394A, 0x89D9},
+ {0x2394B, 0x89D5},
+ {0x2394C, 0x8A30},
+ {0x2394D, 0x8A27},
+ {0x2394E, 0x8A2C},
+ {0x2394F, 0x8A1E},
+ {0x23950, 0x8C39},
+ {0x23951, 0x8C3B},
+ {0x23952, 0x8C5C},
+ {0x23953, 0x8C5D},
+ {0x23954, 0x8C7D},
+ {0x23955, 0x8CA5},
+ {0x23956, 0x8D7D},
+ {0x23957, 0x8D7B},
+ {0x23958, 0x8D79},
+ {0x23959, 0x8DBC},
+ {0x2395A, 0x8DC2},
+ {0x2395B, 0x8DB9},
+ {0x2395C, 0x8DBF},
+ {0x2395D, 0x8DC1},
+ {0x2395E, 0x8ED8},
+ {0x2395F, 0x8EDE},
+ {0x23960, 0x8EDD},
+ {0x23961, 0x8EDC},
+ {0x23962, 0x8ED7},
+ {0x23963, 0x8EE0},
+ {0x23964, 0x8EE1},
+ {0x23965, 0x9024},
+ {0x23966, 0x900B},
+ {0x23967, 0x9011},
+ {0x23968, 0x901C},
+ {0x23969, 0x900C},
+ {0x2396A, 0x9021},
+ {0x2396B, 0x90EF},
+ {0x2396C, 0x90EA},
+ {0x2396D, 0x90F0},
+ {0x2396E, 0x90F4},
+ {0x2396F, 0x90F2},
+ {0x23970, 0x90F3},
+ {0x23971, 0x90D4},
+ {0x23972, 0x90EB},
+ {0x23973, 0x90EC},
+ {0x23974, 0x90E9},
+ {0x23975, 0x9156},
+ {0x23976, 0x9158},
+ {0x23977, 0x915A},
+ {0x23978, 0x9153},
+ {0x23979, 0x9155},
+ {0x2397A, 0x91EC},
+ {0x2397B, 0x91F4},
+ {0x2397C, 0x91F1},
+ {0x2397D, 0x91F3},
+ {0x2397E, 0x91F8},
+ {0x23A21, 0x91E4},
+ {0x23A22, 0x91F9},
+ {0x23A23, 0x91EA},
+ {0x23A24, 0x91EB},
+ {0x23A25, 0x91F7},
+ {0x23A26, 0x91E8},
+ {0x23A27, 0x91EE},
+ {0x23A28, 0x957A},
+ {0x23A29, 0x9586},
+ {0x23A2A, 0x9588},
+ {0x23A2B, 0x967C},
+ {0x23A2C, 0x966D},
+ {0x23A2D, 0x966B},
+ {0x23A2E, 0x9671},
+ {0x23A2F, 0x966F},
+ {0x23A30, 0x96BF},
+ {0x23A31, 0x976A},
+ {0x23A32, 0x9804},
+ {0x23A33, 0x98E5},
+ {0x23A34, 0x9997},
+ {0x23A35, 0x509B},
+ {0x23A36, 0x5095},
+ {0x23A37, 0x5094},
+ {0x23A38, 0x509E},
+ {0x23A39, 0x508B},
+ {0x23A3A, 0x50A3},
+ {0x23A3B, 0x5083},
+ {0x23A3C, 0x508C},
+ {0x23A3D, 0x508E},
+ {0x23A3E, 0x509D},
+ {0x23A3F, 0x5068},
+ {0x23A40, 0x509C},
+ {0x23A41, 0x5092},
+ {0x23A42, 0x5082},
+ {0x23A43, 0x5087},
+ {0x23A44, 0x515F},
+ {0x23A45, 0x51D4},
+ {0x23A46, 0x5312},
+ {0x23A47, 0x5311},
+ {0x23A48, 0x53A4},
+ {0x23A49, 0x53A7},
+ {0x23A4A, 0x5591},
+ {0x23A4B, 0x55A8},
+ {0x23A4C, 0x55A5},
+ {0x23A4D, 0x55AD},
+ {0x23A4E, 0x5577},
+ {0x23A4F, 0x5645},
+ {0x23A50, 0x55A2},
+ {0x23A51, 0x5593},
+ {0x23A52, 0x5588},
+ {0x23A53, 0x558F},
+ {0x23A54, 0x55B5},
+ {0x23A55, 0x5581},
+ {0x23A56, 0x55A3},
+ {0x23A57, 0x5592},
+ {0x23A58, 0x55A4},
+ {0x23A59, 0x557D},
+ {0x23A5A, 0x558C},
+ {0x23A5B, 0x55A6},
+ {0x23A5C, 0x557F},
+ {0x23A5D, 0x5595},
+ {0x23A5E, 0x55A1},
+ {0x23A5F, 0x558E},
+ {0x23A60, 0x570C},
+ {0x23A61, 0x5829},
+ {0x23A62, 0x5837},
+ {0x23A63, 0x5819},
+ {0x23A64, 0x581E},
+ {0x23A65, 0x5827},
+ {0x23A66, 0x5823},
+ {0x23A67, 0x5828},
+ {0x23A68, 0x57F5},
+ {0x23A69, 0x5848},
+ {0x23A6A, 0x5825},
+ {0x23A6B, 0x581C},
+ {0x23A6C, 0x581B},
+ {0x23A6D, 0x5833},
+ {0x23A6E, 0x583F},
+ {0x23A6F, 0x5836},
+ {0x23A70, 0x582E},
+ {0x23A71, 0x5839},
+ {0x23A72, 0x5838},
+ {0x23A73, 0x582D},
+ {0x23A74, 0x582C},
+ {0x23A75, 0x583B},
+ {0x23A76, 0x5961},
+ {0x23A77, 0x5AAF},
+ {0x23A78, 0x5A94},
+ {0x23A79, 0x5A9F},
+ {0x23A7A, 0x5A7A},
+ {0x23A7B, 0x5AA2},
+ {0x23A7C, 0x5A9E},
+ {0x23A7D, 0x5A78},
+ {0x23A7E, 0x5AA6},
+ {0x23B21, 0x5A7C},
+ {0x23B22, 0x5AA5},
+ {0x23B23, 0x5AAC},
+ {0x23B24, 0x5A95},
+ {0x23B25, 0x5AAE},
+ {0x23B26, 0x5A37},
+ {0x23B27, 0x5A84},
+ {0x23B28, 0x5A8A},
+ {0x23B29, 0x5A97},
+ {0x23B2A, 0x5A83},
+ {0x23B2B, 0x5A8B},
+ {0x23B2C, 0x5AA9},
+ {0x23B2D, 0x5A7B},
+ {0x23B2E, 0x5A7D},
+ {0x23B2F, 0x5A8C},
+ {0x23B30, 0x5A9C},
+ {0x23B31, 0x5A8F},
+ {0x23B32, 0x5A93},
+ {0x23B33, 0x5A9D},
+ {0x23B34, 0x5BEA},
+ {0x23B35, 0x5BCD},
+ {0x23B36, 0x5BCB},
+ {0x23B37, 0x5BD4},
+ {0x23B38, 0x5BD1},
+ {0x23B39, 0x5BCA},
+ {0x23B3A, 0x5BCE},
+ {0x23B3B, 0x5C0C},
+ {0x23B3C, 0x5C30},
+ {0x23B3D, 0x5D37},
+ {0x23B3E, 0x5D43},
+ {0x23B3F, 0x5D6B},
+ {0x23B40, 0x5D41},
+ {0x23B41, 0x5D4B},
+ {0x23B42, 0x5D3F},
+ {0x23B43, 0x5D35},
+ {0x23B44, 0x5D51},
+ {0x23B45, 0x5D4E},
+ {0x23B46, 0x5D55},
+ {0x23B47, 0x5D33},
+ {0x23B48, 0x5D3A},
+ {0x23B49, 0x5D52},
+ {0x23B4A, 0x5D3D},
+ {0x23B4B, 0x5D31},
+ {0x23B4C, 0x5D59},
+ {0x23B4D, 0x5D42},
+ {0x23B4E, 0x5D39},
+ {0x23B4F, 0x5D49},
+ {0x23B50, 0x5D38},
+ {0x23B51, 0x5D3C},
+ {0x23B52, 0x5D32},
+ {0x23B53, 0x5D36},
+ {0x23B54, 0x5D40},
+ {0x23B55, 0x5D45},
+ {0x23B56, 0x5E44},
+ {0x23B57, 0x5E41},
+ {0x23B58, 0x5F58},
+ {0x23B59, 0x5FA6},
+ {0x23B5A, 0x5FA5},
+ {0x23B5B, 0x5FAB},
+ {0x23B5C, 0x60C9},
+ {0x23B5D, 0x60B9},
+ {0x23B5E, 0x60CC},
+ {0x23B5F, 0x60E2},
+ {0x23B60, 0x60CE},
+ {0x23B61, 0x60C4},
+ {0x23B62, 0x6114},
+ {0x23B63, 0x60F2},
+ {0x23B64, 0x610A},
+ {0x23B65, 0x6116},
+ {0x23B66, 0x6105},
+ {0x23B67, 0x60F5},
+ {0x23B68, 0x6113},
+ {0x23B69, 0x60F8},
+ {0x23B6A, 0x60FC},
+ {0x23B6B, 0x60FE},
+ {0x23B6C, 0x60C1},
+ {0x23B6D, 0x6103},
+ {0x23B6E, 0x6118},
+ {0x23B6F, 0x611D},
+ {0x23B70, 0x6110},
+ {0x23B71, 0x60FF},
+ {0x23B72, 0x6104},
+ {0x23B73, 0x610B},
+ {0x23B74, 0x624A},
+ {0x23B75, 0x6394},
+ {0x23B76, 0x63B1},
+ {0x23B77, 0x63B0},
+ {0x23B78, 0x63CE},
+ {0x23B79, 0x63E5},
+ {0x23B7A, 0x63E8},
+ {0x23B7B, 0x63EF},
+ {0x23B7C, 0x63C3},
+ {0x23B7D, 0x649D},
+ {0x23B7E, 0x63F3},
+ {0x23C21, 0x63CA},
+ {0x23C22, 0x63E0},
+ {0x23C23, 0x63F6},
+ {0x23C24, 0x63D5},
+ {0x23C25, 0x63F2},
+ {0x23C26, 0x63F5},
+ {0x23C27, 0x6461},
+ {0x23C28, 0x63DF},
+ {0x23C29, 0x63BE},
+ {0x23C2A, 0x63DD},
+ {0x23C2B, 0x63DC},
+ {0x23C2C, 0x63C4},
+ {0x23C2D, 0x63D8},
+ {0x23C2E, 0x63D3},
+ {0x23C2F, 0x63C2},
+ {0x23C30, 0x63C7},
+ {0x23C31, 0x63CC},
+ {0x23C32, 0x63CB},
+ {0x23C33, 0x63C8},
+ {0x23C34, 0x63F0},
+ {0x23C35, 0x63D7},
+ {0x23C36, 0x63D9},
+ {0x23C37, 0x6532},
+ {0x23C38, 0x6567},
+ {0x23C39, 0x656A},
+ {0x23C3A, 0x6564},
+ {0x23C3B, 0x655C},
+ {0x23C3C, 0x6568},
+ {0x23C3D, 0x6565},
+ {0x23C3E, 0x658C},
+ {0x23C3F, 0x659D},
+ {0x23C40, 0x659E},
+ {0x23C41, 0x65AE},
+ {0x23C42, 0x65D0},
+ {0x23C43, 0x65D2},
+ {0x23C44, 0x667C},
+ {0x23C45, 0x666C},
+ {0x23C46, 0x667B},
+ {0x23C47, 0x6680},
+ {0x23C48, 0x6671},
+ {0x23C49, 0x6679},
+ {0x23C4A, 0x666A},
+ {0x23C4B, 0x6672},
+ {0x23C4C, 0x6701},
+ {0x23C4D, 0x690C},
+ {0x23C4E, 0x68D3},
+ {0x23C4F, 0x6904},
+ {0x23C50, 0x68DC},
+ {0x23C51, 0x692A},
+ {0x23C52, 0x68EC},
+ {0x23C53, 0x68EA},
+ {0x23C54, 0x68F1},
+ {0x23C55, 0x690F},
+ {0x23C56, 0x68D6},
+ {0x23C57, 0x68F7},
+ {0x23C58, 0x68EB},
+ {0x23C59, 0x68E4},
+ {0x23C5A, 0x68F6},
+ {0x23C5B, 0x6913},
+ {0x23C5C, 0x6910},
+ {0x23C5D, 0x68F3},
+ {0x23C5E, 0x68E1},
+ {0x23C5F, 0x6907},
+ {0x23C60, 0x68CC},
+ {0x23C61, 0x6908},
+ {0x23C62, 0x6970},
+ {0x23C63, 0x68B4},
+ {0x23C64, 0x6911},
+ {0x23C65, 0x68EF},
+ {0x23C66, 0x68C6},
+ {0x23C67, 0x6914},
+ {0x23C68, 0x68F8},
+ {0x23C69, 0x68D0},
+ {0x23C6A, 0x68FD},
+ {0x23C6B, 0x68FC},
+ {0x23C6C, 0x68E8},
+ {0x23C6D, 0x690B},
+ {0x23C6E, 0x690A},
+ {0x23C6F, 0x6917},
+ {0x23C70, 0x68CE},
+ {0x23C71, 0x68C8},
+ {0x23C72, 0x68DD},
+ {0x23C73, 0x68DE},
+ {0x23C74, 0x68E6},
+ {0x23C75, 0x68F4},
+ {0x23C76, 0x68D1},
+ {0x23C77, 0x6906},
+ {0x23C78, 0x68D4},
+ {0x23C79, 0x68E9},
+ {0x23C7A, 0x6915},
+ {0x23C7B, 0x6925},
+ {0x23C7C, 0x68C7},
+ {0x23C7D, 0x6B39},
+ {0x23C7E, 0x6B3B},
+ {0x23D21, 0x6B3F},
+ {0x23D22, 0x6B3C},
+ {0x23D23, 0x6B94},
+ {0x23D24, 0x6B97},
+ {0x23D25, 0x6B99},
+ {0x23D26, 0x6B95},
+ {0x23D27, 0x6BBD},
+ {0x23D28, 0x6BF0},
+ {0x23D29, 0x6BF2},
+ {0x23D2A, 0x6BF3},
+ {0x23D2B, 0x6C30},
+ {0x23D2C, 0x6DFC},
+ {0x23D2D, 0x6E46},
+ {0x23D2E, 0x6E47},
+ {0x23D2F, 0x6E1F},
+ {0x23D30, 0x6E49},
+ {0x23D31, 0x6E88},
+ {0x23D32, 0x6E3C},
+ {0x23D33, 0x6E3D},
+ {0x23D34, 0x6E45},
+ {0x23D35, 0x6E62},
+ {0x23D36, 0x6E2B},
+ {0x23D37, 0x6E3F},
+ {0x23D38, 0x6E41},
+ {0x23D39, 0x6E5D},
+ {0x23D3A, 0x6E73},
+ {0x23D3B, 0x6E1C},
+ {0x23D3C, 0x6E33},
+ {0x23D3D, 0x6E4B},
+ {0x23D3E, 0x6E40},
+ {0x23D3F, 0x6E51},
+ {0x23D40, 0x6E3B},
+ {0x23D41, 0x6E03},
+ {0x23D42, 0x6E2E},
+ {0x23D43, 0x6E5E},
+ {0x23D44, 0x6E68},
+ {0x23D45, 0x6E5C},
+ {0x23D46, 0x6E61},
+ {0x23D47, 0x6E31},
+ {0x23D48, 0x6E28},
+ {0x23D49, 0x6E60},
+ {0x23D4A, 0x6E71},
+ {0x23D4B, 0x6E6B},
+ {0x23D4C, 0x6E39},
+ {0x23D4D, 0x6E22},
+ {0x23D4E, 0x6E30},
+ {0x23D4F, 0x6E53},
+ {0x23D50, 0x6E65},
+ {0x23D51, 0x6E27},
+ {0x23D52, 0x6E78},
+ {0x23D53, 0x6E64},
+ {0x23D54, 0x6E77},
+ {0x23D55, 0x6E55},
+ {0x23D56, 0x6E79},
+ {0x23D57, 0x6E52},
+ {0x23D58, 0x6E66},
+ {0x23D59, 0x6E35},
+ {0x23D5A, 0x6E36},
+ {0x23D5B, 0x6E5A},
+ {0x23D5C, 0x7120},
+ {0x23D5D, 0x711E},
+ {0x23D5E, 0x712F},
+ {0x23D5F, 0x70FB},
+ {0x23D60, 0x712E},
+ {0x23D61, 0x7131},
+ {0x23D62, 0x7123},
+ {0x23D63, 0x7125},
+ {0x23D64, 0x7122},
+ {0x23D65, 0x7132},
+ {0x23D66, 0x711F},
+ {0x23D67, 0x7128},
+ {0x23D68, 0x713A},
+ {0x23D69, 0x711B},
+ {0x23D6A, 0x724B},
+ {0x23D6B, 0x725A},
+ {0x23D6C, 0x7288},
+ {0x23D6D, 0x7289},
+ {0x23D6E, 0x7286},
+ {0x23D6F, 0x7285},
+ {0x23D70, 0x728B},
+ {0x23D71, 0x7312},
+ {0x23D72, 0x730B},
+ {0x23D73, 0x7330},
+ {0x23D74, 0x7322},
+ {0x23D75, 0x7331},
+ {0x23D76, 0x7333},
+ {0x23D77, 0x7327},
+ {0x23D78, 0x7332},
+ {0x23D79, 0x732D},
+ {0x23D7A, 0x7326},
+ {0x23D7B, 0x7323},
+ {0x23D7C, 0x7335},
+ {0x23D7D, 0x730C},
+ {0x23D7E, 0x742E},
+ {0x23E21, 0x742C},
+ {0x23E22, 0x7430},
+ {0x23E23, 0x742B},
+ {0x23E24, 0x7416},
+ {0x23E25, 0x741A},
+ {0x23E26, 0x7421},
+ {0x23E27, 0x742D},
+ {0x23E28, 0x7431},
+ {0x23E29, 0x7424},
+ {0x23E2A, 0x7423},
+ {0x23E2B, 0x741D},
+ {0x23E2C, 0x7429},
+ {0x23E2D, 0x7420},
+ {0x23E2E, 0x7432},
+ {0x23E2F, 0x74FB},
+ {0x23E30, 0x752F},
+ {0x23E31, 0x756F},
+ {0x23E32, 0x756C},
+ {0x23E33, 0x75E7},
+ {0x23E34, 0x75DA},
+ {0x23E35, 0x75E1},
+ {0x23E36, 0x75E6},
+ {0x23E37, 0x75DD},
+ {0x23E38, 0x75DF},
+ {0x23E39, 0x75E4},
+ {0x23E3A, 0x75D7},
+ {0x23E3B, 0x7695},
+ {0x23E3C, 0x7692},
+ {0x23E3D, 0x76DA},
+ {0x23E3E, 0x7746},
+ {0x23E3F, 0x7747},
+ {0x23E40, 0x7744},
+ {0x23E41, 0x774D},
+ {0x23E42, 0x7745},
+ {0x23E43, 0x774A},
+ {0x23E44, 0x774E},
+ {0x23E45, 0x774B},
+ {0x23E46, 0x774C},
+ {0x23E47, 0x77DE},
+ {0x23E48, 0x77EC},
+ {0x23E49, 0x7860},
+ {0x23E4A, 0x7864},
+ {0x23E4B, 0x7865},
+ {0x23E4C, 0x785C},
+ {0x23E4D, 0x786D},
+ {0x23E4E, 0x7871},
+ {0x23E4F, 0x786A},
+ {0x23E50, 0x786E},
+ {0x23E51, 0x7870},
+ {0x23E52, 0x7869},
+ {0x23E53, 0x7868},
+ {0x23E54, 0x785E},
+ {0x23E55, 0x7862},
+ {0x23E56, 0x7974},
+ {0x23E57, 0x7973},
+ {0x23E58, 0x7972},
+ {0x23E59, 0x7970},
+ {0x23E5A, 0x7A02},
+ {0x23E5B, 0x7A0A},
+ {0x23E5C, 0x7A03},
+ {0x23E5D, 0x7A0C},
+ {0x23E5E, 0x7A04},
+ {0x23E5F, 0x7A99},
+ {0x23E60, 0x7AE6},
+ {0x23E61, 0x7AE4},
+ {0x23E62, 0x7B4A},
+ {0x23E63, 0x7B47},
+ {0x23E64, 0x7B44},
+ {0x23E65, 0x7B48},
+ {0x23E66, 0x7B4C},
+ {0x23E67, 0x7B4E},
+ {0x23E68, 0x7B40},
+ {0x23E69, 0x7B58},
+ {0x23E6A, 0x7B45},
+ {0x23E6B, 0x7CA2},
+ {0x23E6C, 0x7C9E},
+ {0x23E6D, 0x7CA8},
+ {0x23E6E, 0x7CA1},
+ {0x23E6F, 0x7D58},
+ {0x23E70, 0x7D6F},
+ {0x23E71, 0x7D63},
+ {0x23E72, 0x7D53},
+ {0x23E73, 0x7D56},
+ {0x23E74, 0x7D67},
+ {0x23E75, 0x7D6A},
+ {0x23E76, 0x7D4F},
+ {0x23E77, 0x7D6D},
+ {0x23E78, 0x7D5C},
+ {0x23E79, 0x7D6B},
+ {0x23E7A, 0x7D52},
+ {0x23E7B, 0x7D54},
+ {0x23E7C, 0x7D69},
+ {0x23E7D, 0x7D51},
+ {0x23E7E, 0x7D5F},
+ {0x23F21, 0x7D4E},
+ {0x23F22, 0x7F3E},
+ {0x23F23, 0x7F3F},
+ {0x23F24, 0x7F65},
+ {0x23F25, 0x7F66},
+ {0x23F26, 0x7FA2},
+ {0x23F27, 0x7FA0},
+ {0x23F28, 0x7FA1},
+ {0x23F29, 0x7FD7},
+ {0x23F2A, 0x8051},
+ {0x23F2B, 0x804F},
+ {0x23F2C, 0x8050},
+ {0x23F2D, 0x80FE},
+ {0x23F2E, 0x80D4},
+ {0x23F2F, 0x8143},
+ {0x23F30, 0x814A},
+ {0x23F31, 0x8152},
+ {0x23F32, 0x814F},
+ {0x23F33, 0x8147},
+ {0x23F34, 0x813D},
+ {0x23F35, 0x814D},
+ {0x23F36, 0x813A},
+ {0x23F37, 0x81E6},
+ {0x23F38, 0x81EE},
+ {0x23F39, 0x81F7},
+ {0x23F3A, 0x81F8},
+ {0x23F3B, 0x81F9},
+ {0x23F3C, 0x8204},
+ {0x23F3D, 0x823C},
+ {0x23F3E, 0x823D},
+ {0x23F3F, 0x823F},
+ {0x23F40, 0x8275},
+ {0x23F41, 0x833B},
+ {0x23F42, 0x83CF},
+ {0x23F43, 0x83F9},
+ {0x23F44, 0x8423},
+ {0x23F45, 0x83C0},
+ {0x23F46, 0x83E8},
+ {0x23F47, 0x8412},
+ {0x23F48, 0x83E7},
+ {0x23F49, 0x83E4},
+ {0x23F4A, 0x83FC},
+ {0x23F4B, 0x83F6},
+ {0x23F4C, 0x8410},
+ {0x23F4D, 0x83C6},
+ {0x23F4E, 0x83C8},
+ {0x23F4F, 0x83EB},
+ {0x23F50, 0x83E3},
+ {0x23F51, 0x83BF},
+ {0x23F52, 0x8401},
+ {0x23F53, 0x83DD},
+ {0x23F54, 0x83E5},
+ {0x23F55, 0x83D8},
+ {0x23F56, 0x83FF},
+ {0x23F57, 0x83E1},
+ {0x23F58, 0x83CB},
+ {0x23F59, 0x83CE},
+ {0x23F5A, 0x83D6},
+ {0x23F5B, 0x83F5},
+ {0x23F5C, 0x83C9},
+ {0x23F5D, 0x8409},
+ {0x23F5E, 0x840F},
+ {0x23F5F, 0x83DE},
+ {0x23F60, 0x8411},
+ {0x23F61, 0x8406},
+ {0x23F62, 0x83C2},
+ {0x23F63, 0x83F3},
+ {0x23F64, 0x83D5},
+ {0x23F65, 0x83FA},
+ {0x23F66, 0x83C7},
+ {0x23F67, 0x83D1},
+ {0x23F68, 0x83EA},
+ {0x23F69, 0x8413},
+ {0x23F6A, 0x839A},
+ {0x23F6B, 0x83C3},
+ {0x23F6C, 0x83EC},
+ {0x23F6D, 0x83EE},
+ {0x23F6E, 0x83C4},
+ {0x23F6F, 0x83FB},
+ {0x23F70, 0x83D7},
+ {0x23F71, 0x83E2},
+ {0x23F72, 0x841B},
+ {0x23F73, 0x83DB},
+ {0x23F74, 0x83FE},
+ {0x23F75, 0x86D8},
+ {0x23F76, 0x86E2},
+ {0x23F77, 0x86E6},
+ {0x23F78, 0x86D3},
+ {0x23F79, 0x86E3},
+ {0x23F7A, 0x86DA},
+ {0x23F7B, 0x86EA},
+ {0x23F7C, 0x86DD},
+ {0x23F7D, 0x86EB},
+ {0x23F7E, 0x86DC},
+ {0x24021, 0x86EC},
+ {0x24022, 0x86E9},
+ {0x24023, 0x86D7},
+ {0x24024, 0x86E8},
+ {0x24025, 0x86D1},
+ {0x24026, 0x8848},
+ {0x24027, 0x8856},
+ {0x24028, 0x8855},
+ {0x24029, 0x88BA},
+ {0x2402A, 0x88D7},
+ {0x2402B, 0x88B9},
+ {0x2402C, 0x88B8},
+ {0x2402D, 0x88C0},
+ {0x2402E, 0x88BE},
+ {0x2402F, 0x88B6},
+ {0x24030, 0x88BC},
+ {0x24031, 0x88B7},
+ {0x24032, 0x88BD},
+ {0x24033, 0x88B2},
+ {0x24034, 0x8901},
+ {0x24035, 0x88C9},
+ {0x24036, 0x8995},
+ {0x24037, 0x8998},
+ {0x24038, 0x8997},
+ {0x24039, 0x89DD},
+ {0x2403A, 0x89DA},
+ {0x2403B, 0x89DB},
+ {0x2403C, 0x8A4E},
+ {0x2403D, 0x8A4D},
+ {0x2403E, 0x8A39},
+ {0x2403F, 0x8A59},
+ {0x24040, 0x8A40},
+ {0x24041, 0x8A57},
+ {0x24042, 0x8A58},
+ {0x24043, 0x8A44},
+ {0x24044, 0x8A45},
+ {0x24045, 0x8A52},
+ {0x24046, 0x8A48},
+ {0x24047, 0x8A51},
+ {0x24048, 0x8A4A},
+ {0x24049, 0x8A4C},
+ {0x2404A, 0x8A4F},
+ {0x2404B, 0x8C5F},
+ {0x2404C, 0x8C81},
+ {0x2404D, 0x8C80},
+ {0x2404E, 0x8CBA},
+ {0x2404F, 0x8CBE},
+ {0x24050, 0x8CB0},
+ {0x24051, 0x8CB9},
+ {0x24052, 0x8CB5},
+ {0x24053, 0x8D84},
+ {0x24054, 0x8D80},
+ {0x24055, 0x8D89},
+ {0x24056, 0x8DD8},
+ {0x24057, 0x8DD3},
+ {0x24058, 0x8DCD},
+ {0x24059, 0x8DC7},
+ {0x2405A, 0x8DD6},
+ {0x2405B, 0x8DDC},
+ {0x2405C, 0x8DCF},
+ {0x2405D, 0x8DD5},
+ {0x2405E, 0x8DD9},
+ {0x2405F, 0x8DC8},
+ {0x24060, 0x8DD7},
+ {0x24061, 0x8DC5},
+ {0x24062, 0x8EEF},
+ {0x24063, 0x8EF7},
+ {0x24064, 0x8EFA},
+ {0x24065, 0x8EF9},
+ {0x24066, 0x8EE6},
+ {0x24067, 0x8EEE},
+ {0x24068, 0x8EE5},
+ {0x24069, 0x8EF5},
+ {0x2406A, 0x8EE7},
+ {0x2406B, 0x8EE8},
+ {0x2406C, 0x8EF6},
+ {0x2406D, 0x8EEB},
+ {0x2406E, 0x8EF1},
+ {0x2406F, 0x8EEC},
+ {0x24070, 0x8EF4},
+ {0x24071, 0x8EE9},
+ {0x24072, 0x902D},
+ {0x24073, 0x9034},
+ {0x24074, 0x902F},
+ {0x24075, 0x9106},
+ {0x24076, 0x912C},
+ {0x24077, 0x9104},
+ {0x24078, 0x90FF},
+ {0x24079, 0x90FC},
+ {0x2407A, 0x9108},
+ {0x2407B, 0x90F9},
+ {0x2407C, 0x90FB},
+ {0x2407D, 0x9101},
+ {0x2407E, 0x9100},
+ {0x24121, 0x9107},
+ {0x24122, 0x9105},
+ {0x24123, 0x9103},
+ {0x24124, 0x9161},
+ {0x24125, 0x9164},
+ {0x24126, 0x915F},
+ {0x24127, 0x9162},
+ {0x24128, 0x9160},
+ {0x24129, 0x9201},
+ {0x2412A, 0x920A},
+ {0x2412B, 0x9225},
+ {0x2412C, 0x9203},
+ {0x2412D, 0x921A},
+ {0x2412E, 0x9226},
+ {0x2412F, 0x920F},
+ {0x24130, 0x920C},
+ {0x24131, 0x9200},
+ {0x24132, 0x9212},
+ {0x24133, 0x91FF},
+ {0x24134, 0x91FD},
+ {0x24135, 0x9206},
+ {0x24136, 0x9204},
+ {0x24137, 0x9227},
+ {0x24138, 0x9202},
+ {0x24139, 0x921C},
+ {0x2413A, 0x9224},
+ {0x2413B, 0x9219},
+ {0x2413C, 0x9217},
+ {0x2413D, 0x9205},
+ {0x2413E, 0x9216},
+ {0x2413F, 0x957B},
+ {0x24140, 0x958D},
+ {0x24141, 0x958C},
+ {0x24142, 0x9590},
+ {0x24143, 0x9687},
+ {0x24144, 0x967E},
+ {0x24145, 0x9688},
+ {0x24146, 0x9689},
+ {0x24147, 0x9683},
+ {0x24148, 0x9680},
+ {0x24149, 0x96C2},
+ {0x2414A, 0x96C8},
+ {0x2414B, 0x96C3},
+ {0x2414C, 0x96F1},
+ {0x2414D, 0x96F0},
+ {0x2414E, 0x976C},
+ {0x2414F, 0x9770},
+ {0x24150, 0x976E},
+ {0x24151, 0x9807},
+ {0x24152, 0x98A9},
+ {0x24153, 0x98EB},
+ {0x24154, 0x9CE6},
+ {0x24155, 0x9EF9},
+ {0x24156, 0x4E83},
+ {0x24157, 0x4E84},
+ {0x24158, 0x4EB6},
+ {0x24159, 0x50BD},
+ {0x2415A, 0x50BF},
+ {0x2415B, 0x50C6},
+ {0x2415C, 0x50AE},
+ {0x2415D, 0x50C4},
+ {0x2415E, 0x50CA},
+ {0x2415F, 0x50B4},
+ {0x24160, 0x50C8},
+ {0x24161, 0x50C2},
+ {0x24162, 0x50B0},
+ {0x24163, 0x50C1},
+ {0x24164, 0x50BA},
+ {0x24165, 0x50B1},
+ {0x24166, 0x50CB},
+ {0x24167, 0x50C9},
+ {0x24168, 0x50B6},
+ {0x24169, 0x50B8},
+ {0x2416A, 0x51D7},
+ {0x2416B, 0x527A},
+ {0x2416C, 0x5278},
+ {0x2416D, 0x527B},
+ {0x2416E, 0x527C},
+ {0x2416F, 0x55C3},
+ {0x24170, 0x55DB},
+ {0x24171, 0x55CC},
+ {0x24172, 0x55D0},
+ {0x24173, 0x55CB},
+ {0x24174, 0x55CA},
+ {0x24175, 0x55DD},
+ {0x24176, 0x55C0},
+ {0x24177, 0x55D4},
+ {0x24178, 0x55C4},
+ {0x24179, 0x55E9},
+ {0x2417A, 0x55BF},
+ {0x2417B, 0x55D2},
+ {0x2417C, 0x558D},
+ {0x2417D, 0x55CF},
+ {0x2417E, 0x55D5},
+ {0x24221, 0x55E2},
+ {0x24222, 0x55D6},
+ {0x24223, 0x55C8},
+ {0x24224, 0x55F2},
+ {0x24225, 0x55CD},
+ {0x24226, 0x55D9},
+ {0x24227, 0x55C2},
+ {0x24228, 0x5714},
+ {0x24229, 0x5853},
+ {0x2422A, 0x5868},
+ {0x2422B, 0x5864},
+ {0x2422C, 0x584F},
+ {0x2422D, 0x584D},
+ {0x2422E, 0x5849},
+ {0x2422F, 0x586F},
+ {0x24230, 0x5855},
+ {0x24231, 0x584E},
+ {0x24232, 0x585D},
+ {0x24233, 0x5859},
+ {0x24234, 0x5865},
+ {0x24235, 0x585B},
+ {0x24236, 0x583D},
+ {0x24237, 0x5863},
+ {0x24238, 0x5871},
+ {0x24239, 0x58FC},
+ {0x2423A, 0x5AC7},
+ {0x2423B, 0x5AC4},
+ {0x2423C, 0x5ACB},
+ {0x2423D, 0x5ABA},
+ {0x2423E, 0x5AB8},
+ {0x2423F, 0x5AB1},
+ {0x24240, 0x5AB5},
+ {0x24241, 0x5AB0},
+ {0x24242, 0x5ABF},
+ {0x24243, 0x5AC8},
+ {0x24244, 0x5ABB},
+ {0x24245, 0x5AC6},
+ {0x24246, 0x5AB7},
+ {0x24247, 0x5AC0},
+ {0x24248, 0x5ACA},
+ {0x24249, 0x5AB4},
+ {0x2424A, 0x5AB6},
+ {0x2424B, 0x5ACD},
+ {0x2424C, 0x5AB9},
+ {0x2424D, 0x5A90},
+ {0x2424E, 0x5BD6},
+ {0x2424F, 0x5BD8},
+ {0x24250, 0x5BD9},
+ {0x24251, 0x5C1F},
+ {0x24252, 0x5C33},
+ {0x24253, 0x5D71},
+ {0x24254, 0x5D63},
+ {0x24255, 0x5D4A},
+ {0x24256, 0x5D65},
+ {0x24257, 0x5D72},
+ {0x24258, 0x5D6C},
+ {0x24259, 0x5D5E},
+ {0x2425A, 0x5D68},
+ {0x2425B, 0x5D67},
+ {0x2425C, 0x5D62},
+ {0x2425D, 0x5DF0},
+ {0x2425E, 0x5E4F},
+ {0x2425F, 0x5E4E},
+ {0x24260, 0x5E4A},
+ {0x24261, 0x5E4D},
+ {0x24262, 0x5E4B},
+ {0x24263, 0x5EC5},
+ {0x24264, 0x5ECC},
+ {0x24265, 0x5EC6},
+ {0x24266, 0x5ECB},
+ {0x24267, 0x5EC7},
+ {0x24268, 0x5F40},
+ {0x24269, 0x5FAF},
+ {0x2426A, 0x5FAD},
+ {0x2426B, 0x60F7},
+ {0x2426C, 0x6149},
+ {0x2426D, 0x614A},
+ {0x2426E, 0x612B},
+ {0x2426F, 0x6145},
+ {0x24270, 0x6136},
+ {0x24271, 0x6132},
+ {0x24272, 0x612E},
+ {0x24273, 0x6146},
+ {0x24274, 0x612F},
+ {0x24275, 0x614F},
+ {0x24276, 0x6129},
+ {0x24277, 0x6140},
+ {0x24278, 0x6220},
+ {0x24279, 0x9168},
+ {0x2427A, 0x6223},
+ {0x2427B, 0x6225},
+ {0x2427C, 0x6224},
+ {0x2427D, 0x63C5},
+ {0x2427E, 0x63F1},
+ {0x24321, 0x63EB},
+ {0x24322, 0x6410},
+ {0x24323, 0x6412},
+ {0x24324, 0x6409},
+ {0x24325, 0x6420},
+ {0x24326, 0x6424},
+ {0x24327, 0x6433},
+ {0x24328, 0x6443},
+ {0x24329, 0x641F},
+ {0x2432A, 0x6415},
+ {0x2432B, 0x6418},
+ {0x2432C, 0x6439},
+ {0x2432D, 0x6437},
+ {0x2432E, 0x6422},
+ {0x2432F, 0x6423},
+ {0x24330, 0x640C},
+ {0x24331, 0x6426},
+ {0x24332, 0x6430},
+ {0x24333, 0x6428},
+ {0x24334, 0x6441},
+ {0x24335, 0x6435},
+ {0x24336, 0x642F},
+ {0x24337, 0x640A},
+ {0x24338, 0x641A},
+ {0x24339, 0x6440},
+ {0x2433A, 0x6425},
+ {0x2433B, 0x6427},
+ {0x2433C, 0x640B},
+ {0x2433D, 0x63E7},
+ {0x2433E, 0x641B},
+ {0x2433F, 0x642E},
+ {0x24340, 0x6421},
+ {0x24341, 0x640E},
+ {0x24342, 0x656F},
+ {0x24343, 0x6592},
+ {0x24344, 0x65D3},
+ {0x24345, 0x6686},
+ {0x24346, 0x668C},
+ {0x24347, 0x6695},
+ {0x24348, 0x6690},
+ {0x24349, 0x668B},
+ {0x2434A, 0x668A},
+ {0x2434B, 0x6699},
+ {0x2434C, 0x6694},
+ {0x2434D, 0x6678},
+ {0x2434E, 0x6720},
+ {0x2434F, 0x6966},
+ {0x24350, 0x695F},
+ {0x24351, 0x6938},
+ {0x24352, 0x694E},
+ {0x24353, 0x6962},
+ {0x24354, 0x6971},
+ {0x24355, 0x693F},
+ {0x24356, 0x6945},
+ {0x24357, 0x696A},
+ {0x24358, 0x6939},
+ {0x24359, 0x6942},
+ {0x2435A, 0x6957},
+ {0x2435B, 0x6959},
+ {0x2435C, 0x697A},
+ {0x2435D, 0x6948},
+ {0x2435E, 0x6949},
+ {0x2435F, 0x6935},
+ {0x24360, 0x696C},
+ {0x24361, 0x6933},
+ {0x24362, 0x693D},
+ {0x24363, 0x6965},
+ {0x24364, 0x68F0},
+ {0x24365, 0x6978},
+ {0x24366, 0x6934},
+ {0x24367, 0x6969},
+ {0x24368, 0x6940},
+ {0x24369, 0x696F},
+ {0x2436A, 0x6944},
+ {0x2436B, 0x6976},
+ {0x2436C, 0x6958},
+ {0x2436D, 0x6941},
+ {0x2436E, 0x6974},
+ {0x2436F, 0x694C},
+ {0x24370, 0x693B},
+ {0x24371, 0x694B},
+ {0x24372, 0x6937},
+ {0x24373, 0x695C},
+ {0x24374, 0x694F},
+ {0x24375, 0x6951},
+ {0x24376, 0x6932},
+ {0x24377, 0x6952},
+ {0x24378, 0x692F},
+ {0x24379, 0x697B},
+ {0x2437A, 0x693C},
+ {0x2437B, 0x6B46},
+ {0x2437C, 0x6B45},
+ {0x2437D, 0x6B43},
+ {0x2437E, 0x6B42},
+ {0x24421, 0x6B48},
+ {0x24422, 0x6B41},
+ {0x24423, 0x6B9B},
+ {0x24424, 0x6BFB},
+ {0x24425, 0x6BFC},
+ {0x24426, 0x6BF9},
+ {0x24427, 0x6BF7},
+ {0x24428, 0x6BF8},
+ {0x24429, 0x6E9B},
+ {0x2442A, 0x6ED6},
+ {0x2442B, 0x6EC8},
+ {0x2442C, 0x6E8F},
+ {0x2442D, 0x6EC0},
+ {0x2442E, 0x6E9F},
+ {0x2442F, 0x6E93},
+ {0x24430, 0x6E94},
+ {0x24431, 0x6EA0},
+ {0x24432, 0x6EB1},
+ {0x24433, 0x6EB9},
+ {0x24434, 0x6EC6},
+ {0x24435, 0x6ED2},
+ {0x24436, 0x6EBD},
+ {0x24437, 0x6EC1},
+ {0x24438, 0x6E9E},
+ {0x24439, 0x6EC9},
+ {0x2443A, 0x6EB7},
+ {0x2443B, 0x6EB0},
+ {0x2443C, 0x6ECD},
+ {0x2443D, 0x6EA6},
+ {0x2443E, 0x6ECF},
+ {0x2443F, 0x6EB2},
+ {0x24440, 0x6EBE},
+ {0x24441, 0x6EC3},
+ {0x24442, 0x6EDC},
+ {0x24443, 0x6ED8},
+ {0x24444, 0x6E99},
+ {0x24445, 0x6E92},
+ {0x24446, 0x6E8E},
+ {0x24447, 0x6E8D},
+ {0x24448, 0x6EA4},
+ {0x24449, 0x6EA1},
+ {0x2444A, 0x6EBF},
+ {0x2444B, 0x6EB3},
+ {0x2444C, 0x6ED0},
+ {0x2444D, 0x6ECA},
+ {0x2444E, 0x6E97},
+ {0x2444F, 0x6EAE},
+ {0x24450, 0x6EA3},
+ {0x24451, 0x7147},
+ {0x24452, 0x7154},
+ {0x24453, 0x7152},
+ {0x24454, 0x7163},
+ {0x24455, 0x7160},
+ {0x24456, 0x7141},
+ {0x24457, 0x715D},
+ {0x24458, 0x7162},
+ {0x24459, 0x7172},
+ {0x2445A, 0x7178},
+ {0x2445B, 0x716A},
+ {0x2445C, 0x7161},
+ {0x2445D, 0x7142},
+ {0x2445E, 0x7158},
+ {0x2445F, 0x7143},
+ {0x24460, 0x714B},
+ {0x24461, 0x7170},
+ {0x24462, 0x715F},
+ {0x24463, 0x7150},
+ {0x24464, 0x7153},
+ {0x24465, 0x7144},
+ {0x24466, 0x714D},
+ {0x24467, 0x715A},
+ {0x24468, 0x724F},
+ {0x24469, 0x728D},
+ {0x2446A, 0x728C},
+ {0x2446B, 0x7291},
+ {0x2446C, 0x7290},
+ {0x2446D, 0x728E},
+ {0x2446E, 0x733C},
+ {0x2446F, 0x7342},
+ {0x24470, 0x733B},
+ {0x24471, 0x733A},
+ {0x24472, 0x7340},
+ {0x24473, 0x734A},
+ {0x24474, 0x7349},
+ {0x24475, 0x7444},
+ {0x24476, 0x744A},
+ {0x24477, 0x744B},
+ {0x24478, 0x7452},
+ {0x24479, 0x7451},
+ {0x2447A, 0x7457},
+ {0x2447B, 0x7440},
+ {0x2447C, 0x744F},
+ {0x2447D, 0x7450},
+ {0x2447E, 0x744E},
+ {0x24521, 0x7442},
+ {0x24522, 0x7446},
+ {0x24523, 0x744D},
+ {0x24524, 0x7454},
+ {0x24525, 0x74E1},
+ {0x24526, 0x74FF},
+ {0x24527, 0x74FE},
+ {0x24528, 0x74FD},
+ {0x24529, 0x751D},
+ {0x2452A, 0x7579},
+ {0x2452B, 0x7577},
+ {0x2452C, 0x6983},
+ {0x2452D, 0x75EF},
+ {0x2452E, 0x760F},
+ {0x2452F, 0x7603},
+ {0x24530, 0x75F7},
+ {0x24531, 0x75FE},
+ {0x24532, 0x75FC},
+ {0x24533, 0x75F9},
+ {0x24534, 0x75F8},
+ {0x24535, 0x7610},
+ {0x24536, 0x75FB},
+ {0x24537, 0x75F6},
+ {0x24538, 0x75ED},
+ {0x24539, 0x75F5},
+ {0x2453A, 0x75FD},
+ {0x2453B, 0x7699},
+ {0x2453C, 0x76B5},
+ {0x2453D, 0x76DD},
+ {0x2453E, 0x7755},
+ {0x2453F, 0x775F},
+ {0x24540, 0x7760},
+ {0x24541, 0x7752},
+ {0x24542, 0x7756},
+ {0x24543, 0x775A},
+ {0x24544, 0x7769},
+ {0x24545, 0x7767},
+ {0x24546, 0x7754},
+ {0x24547, 0x7759},
+ {0x24548, 0x776D},
+ {0x24549, 0x77E0},
+ {0x2454A, 0x7887},
+ {0x2454B, 0x789A},
+ {0x2454C, 0x7894},
+ {0x2454D, 0x788F},
+ {0x2454E, 0x7884},
+ {0x2454F, 0x7895},
+ {0x24550, 0x7885},
+ {0x24551, 0x7886},
+ {0x24552, 0x78A1},
+ {0x24553, 0x7883},
+ {0x24554, 0x7879},
+ {0x24555, 0x7899},
+ {0x24556, 0x7880},
+ {0x24557, 0x7896},
+ {0x24558, 0x787B},
+ {0x24559, 0x797C},
+ {0x2455A, 0x7982},
+ {0x2455B, 0x797D},
+ {0x2455C, 0x7979},
+ {0x2455D, 0x7A11},
+ {0x2455E, 0x7A18},
+ {0x2455F, 0x7A19},
+ {0x24560, 0x7A12},
+ {0x24561, 0x7A17},
+ {0x24562, 0x7A15},
+ {0x24563, 0x7A22},
+ {0x24564, 0x7A13},
+ {0x24565, 0x7A1B},
+ {0x24566, 0x7A10},
+ {0x24567, 0x7AA3},
+ {0x24568, 0x7AA2},
+ {0x24569, 0x7A9E},
+ {0x2456A, 0x7AEB},
+ {0x2456B, 0x7B66},
+ {0x2456C, 0x7B64},
+ {0x2456D, 0x7B6D},
+ {0x2456E, 0x7B74},
+ {0x2456F, 0x7B69},
+ {0x24570, 0x7B72},
+ {0x24571, 0x7B65},
+ {0x24572, 0x7B73},
+ {0x24573, 0x7B71},
+ {0x24574, 0x7B70},
+ {0x24575, 0x7B61},
+ {0x24576, 0x7B78},
+ {0x24577, 0x7B76},
+ {0x24578, 0x7B63},
+ {0x24579, 0x7CB2},
+ {0x2457A, 0x7CB4},
+ {0x2457B, 0x7CAF},
+ {0x2457C, 0x7D88},
+ {0x2457D, 0x7D86},
+ {0x2457E, 0x7D80},
+ {0x24621, 0x7D8D},
+ {0x24622, 0x7D7F},
+ {0x24623, 0x7D85},
+ {0x24624, 0x7D7A},
+ {0x24625, 0x7D8E},
+ {0x24626, 0x7D7B},
+ {0x24627, 0x7D83},
+ {0x24628, 0x7D7C},
+ {0x24629, 0x7D8C},
+ {0x2462A, 0x7D94},
+ {0x2462B, 0x7D84},
+ {0x2462C, 0x7D7D},
+ {0x2462D, 0x7D92},
+ {0x2462E, 0x7F6D},
+ {0x2462F, 0x7F6B},
+ {0x24630, 0x7F67},
+ {0x24631, 0x7F68},
+ {0x24632, 0x7F6C},
+ {0x24633, 0x7FA6},
+ {0x24634, 0x7FA5},
+ {0x24635, 0x7FA7},
+ {0x24636, 0x7FDB},
+ {0x24637, 0x7FDC},
+ {0x24638, 0x8021},
+ {0x24639, 0x8164},
+ {0x2463A, 0x8160},
+ {0x2463B, 0x8177},
+ {0x2463C, 0x815C},
+ {0x2463D, 0x8169},
+ {0x2463E, 0x815B},
+ {0x2463F, 0x8162},
+ {0x24640, 0x8172},
+ {0x24641, 0x6721},
+ {0x24642, 0x815E},
+ {0x24643, 0x8176},
+ {0x24644, 0x8167},
+ {0x24645, 0x816F},
+ {0x24646, 0x8144},
+ {0x24647, 0x8161},
+ {0x24648, 0x821D},
+ {0x24649, 0x8249},
+ {0x2464A, 0x8244},
+ {0x2464B, 0x8240},
+ {0x2464C, 0x8242},
+ {0x2464D, 0x8245},
+ {0x2464E, 0x84F1},
+ {0x2464F, 0x843F},
+ {0x24650, 0x8456},
+ {0x24651, 0x8476},
+ {0x24652, 0x8479},
+ {0x24653, 0x848F},
+ {0x24654, 0x848D},
+ {0x24655, 0x8465},
+ {0x24656, 0x8451},
+ {0x24657, 0x8440},
+ {0x24658, 0x8486},
+ {0x24659, 0x8467},
+ {0x2465A, 0x8430},
+ {0x2465B, 0x844D},
+ {0x2465C, 0x847D},
+ {0x2465D, 0x845A},
+ {0x2465E, 0x8459},
+ {0x2465F, 0x8474},
+ {0x24660, 0x8473},
+ {0x24661, 0x845D},
+ {0x24662, 0x8507},
+ {0x24663, 0x845E},
+ {0x24664, 0x8437},
+ {0x24665, 0x843A},
+ {0x24666, 0x8434},
+ {0x24667, 0x847A},
+ {0x24668, 0x8443},
+ {0x24669, 0x8478},
+ {0x2466A, 0x8432},
+ {0x2466B, 0x8445},
+ {0x2466C, 0x8429},
+ {0x2466D, 0x83D9},
+ {0x2466E, 0x844B},
+ {0x2466F, 0x842F},
+ {0x24670, 0x8442},
+ {0x24671, 0x842D},
+ {0x24672, 0x845F},
+ {0x24673, 0x8470},
+ {0x24674, 0x8439},
+ {0x24675, 0x844E},
+ {0x24676, 0x844C},
+ {0x24677, 0x8452},
+ {0x24678, 0x846F},
+ {0x24679, 0x84C5},
+ {0x2467A, 0x848E},
+ {0x2467B, 0x843B},
+ {0x2467C, 0x8447},
+ {0x2467D, 0x8436},
+ {0x2467E, 0x8433},
+ {0x24721, 0x8468},
+ {0x24722, 0x847E},
+ {0x24723, 0x8444},
+ {0x24724, 0x842B},
+ {0x24725, 0x8460},
+ {0x24726, 0x8454},
+ {0x24727, 0x846E},
+ {0x24728, 0x8450},
+ {0x24729, 0x870B},
+ {0x2472A, 0x8704},
+ {0x2472B, 0x86F7},
+ {0x2472C, 0x870C},
+ {0x2472D, 0x86FA},
+ {0x2472E, 0x86D6},
+ {0x2472F, 0x86F5},
+ {0x24730, 0x874D},
+ {0x24731, 0x86F8},
+ {0x24732, 0x870E},
+ {0x24733, 0x8709},
+ {0x24734, 0x8701},
+ {0x24735, 0x86F6},
+ {0x24736, 0x870D},
+ {0x24737, 0x8705},
+ {0x24738, 0x88D6},
+ {0x24739, 0x88CB},
+ {0x2473A, 0x88CD},
+ {0x2473B, 0x88CE},
+ {0x2473C, 0x88DE},
+ {0x2473D, 0x88DB},
+ {0x2473E, 0x88DA},
+ {0x2473F, 0x88CC},
+ {0x24740, 0x88D0},
+ {0x24741, 0x8985},
+ {0x24742, 0x899B},
+ {0x24743, 0x89DF},
+ {0x24744, 0x89E5},
+ {0x24745, 0x89E4},
+ {0x24746, 0x89E1},
+ {0x24747, 0x89E0},
+ {0x24748, 0x89E2},
+ {0x24749, 0x89DC},
+ {0x2474A, 0x89E6},
+ {0x2474B, 0x8A76},
+ {0x2474C, 0x8A86},
+ {0x2474D, 0x8A7F},
+ {0x2474E, 0x8A61},
+ {0x2474F, 0x8A3F},
+ {0x24750, 0x8A77},
+ {0x24751, 0x8A82},
+ {0x24752, 0x8A84},
+ {0x24753, 0x8A75},
+ {0x24754, 0x8A83},
+ {0x24755, 0x8A81},
+ {0x24756, 0x8A74},
+ {0x24757, 0x8A7A},
+ {0x24758, 0x8C3C},
+ {0x24759, 0x8C4B},
+ {0x2475A, 0x8C4A},
+ {0x2475B, 0x8C65},
+ {0x2475C, 0x8C64},
+ {0x2475D, 0x8C66},
+ {0x2475E, 0x8C86},
+ {0x2475F, 0x8C84},
+ {0x24760, 0x8C85},
+ {0x24761, 0x8CCC},
+ {0x24762, 0x8D68},
+ {0x24763, 0x8D69},
+ {0x24764, 0x8D91},
+ {0x24765, 0x8D8C},
+ {0x24766, 0x8D8E},
+ {0x24767, 0x8D8F},
+ {0x24768, 0x8D8D},
+ {0x24769, 0x8D93},
+ {0x2476A, 0x8D94},
+ {0x2476B, 0x8D90},
+ {0x2476C, 0x8D92},
+ {0x2476D, 0x8DF0},
+ {0x2476E, 0x8DE0},
+ {0x2476F, 0x8DEC},
+ {0x24770, 0x8DF1},
+ {0x24771, 0x8DEE},
+ {0x24772, 0x8DD0},
+ {0x24773, 0x8DE9},
+ {0x24774, 0x8DE3},
+ {0x24775, 0x8DE2},
+ {0x24776, 0x8DE7},
+ {0x24777, 0x8DF2},
+ {0x24778, 0x8DEB},
+ {0x24779, 0x8DF4},
+ {0x2477A, 0x8F06},
+ {0x2477B, 0x8EFF},
+ {0x2477C, 0x8F01},
+ {0x2477D, 0x8F00},
+ {0x2477E, 0x8F05},
+ {0x24821, 0x8F07},
+ {0x24822, 0x8F08},
+ {0x24823, 0x8F02},
+ {0x24824, 0x8F0B},
+ {0x24825, 0x9052},
+ {0x24826, 0x903F},
+ {0x24827, 0x9044},
+ {0x24828, 0x9049},
+ {0x24829, 0x903D},
+ {0x2482A, 0x9110},
+ {0x2482B, 0x910D},
+ {0x2482C, 0x910F},
+ {0x2482D, 0x9111},
+ {0x2482E, 0x9116},
+ {0x2482F, 0x9114},
+ {0x24830, 0x910B},
+ {0x24831, 0x910E},
+ {0x24832, 0x916E},
+ {0x24833, 0x916F},
+ {0x24834, 0x9248},
+ {0x24835, 0x9252},
+ {0x24836, 0x9230},
+ {0x24837, 0x923A},
+ {0x24838, 0x9266},
+ {0x24839, 0x9233},
+ {0x2483A, 0x9265},
+ {0x2483B, 0x925E},
+ {0x2483C, 0x9283},
+ {0x2483D, 0x922E},
+ {0x2483E, 0x924A},
+ {0x2483F, 0x9246},
+ {0x24840, 0x926D},
+ {0x24841, 0x926C},
+ {0x24842, 0x924F},
+ {0x24843, 0x9260},
+ {0x24844, 0x9267},
+ {0x24845, 0x926F},
+ {0x24846, 0x9236},
+ {0x24847, 0x9261},
+ {0x24848, 0x9270},
+ {0x24849, 0x9231},
+ {0x2484A, 0x9254},
+ {0x2484B, 0x9263},
+ {0x2484C, 0x9250},
+ {0x2484D, 0x9272},
+ {0x2484E, 0x924E},
+ {0x2484F, 0x9253},
+ {0x24850, 0x924C},
+ {0x24851, 0x9256},
+ {0x24852, 0x9232},
+ {0x24853, 0x959F},
+ {0x24854, 0x959C},
+ {0x24855, 0x959E},
+ {0x24856, 0x959B},
+ {0x24857, 0x9692},
+ {0x24858, 0x9693},
+ {0x24859, 0x9691},
+ {0x2485A, 0x9697},
+ {0x2485B, 0x96CE},
+ {0x2485C, 0x96FA},
+ {0x2485D, 0x96FD},
+ {0x2485E, 0x96F8},
+ {0x2485F, 0x96F5},
+ {0x24860, 0x9773},
+ {0x24861, 0x9777},
+ {0x24862, 0x9778},
+ {0x24863, 0x9772},
+ {0x24864, 0x980F},
+ {0x24865, 0x980D},
+ {0x24866, 0x980E},
+ {0x24867, 0x98AC},
+ {0x24868, 0x98F6},
+ {0x24869, 0x98F9},
+ {0x2486A, 0x99AF},
+ {0x2486B, 0x99B2},
+ {0x2486C, 0x99B0},
+ {0x2486D, 0x99B5},
+ {0x2486E, 0x9AAD},
+ {0x2486F, 0x9AAB},
+ {0x24870, 0x9B5B},
+ {0x24871, 0x9CEA},
+ {0x24872, 0x9CED},
+ {0x24873, 0x9CE7},
+ {0x24874, 0x9E80},
+ {0x24875, 0x9EFD},
+ {0x24876, 0x50E6},
+ {0x24877, 0x50D4},
+ {0x24878, 0x50D7},
+ {0x24879, 0x50E8},
+ {0x2487A, 0x50F3},
+ {0x2487B, 0x50DB},
+ {0x2487C, 0x50EA},
+ {0x2487D, 0x50DD},
+ {0x2487E, 0x50E4},
+ {0x24921, 0x50D3},
+ {0x24922, 0x50EC},
+ {0x24923, 0x50F0},
+ {0x24924, 0x50EF},
+ {0x24925, 0x50E3},
+ {0x24926, 0x50E0},
+ {0x24927, 0x51D8},
+ {0x24928, 0x5280},
+ {0x24929, 0x5281},
+ {0x2492A, 0x52E9},
+ {0x2492B, 0x52EB},
+ {0x2492C, 0x5330},
+ {0x2492D, 0x53AC},
+ {0x2492E, 0x5627},
+ {0x2492F, 0x5615},
+ {0x24930, 0x560C},
+ {0x24931, 0x5612},
+ {0x24932, 0x55FC},
+ {0x24933, 0x560F},
+ {0x24934, 0x561C},
+ {0x24935, 0x5601},
+ {0x24936, 0x5613},
+ {0x24937, 0x5602},
+ {0x24938, 0x55FA},
+ {0x24939, 0x561D},
+ {0x2493A, 0x5604},
+ {0x2493B, 0x55FF},
+ {0x2493C, 0x55F9},
+ {0x2493D, 0x5889},
+ {0x2493E, 0x587C},
+ {0x2493F, 0x5890},
+ {0x24940, 0x5898},
+ {0x24941, 0x5886},
+ {0x24942, 0x5881},
+ {0x24943, 0x587F},
+ {0x24944, 0x5874},
+ {0x24945, 0x588B},
+ {0x24946, 0x587A},
+ {0x24947, 0x5887},
+ {0x24948, 0x5891},
+ {0x24949, 0x588E},
+ {0x2494A, 0x5876},
+ {0x2494B, 0x5882},
+ {0x2494C, 0x5888},
+ {0x2494D, 0x587B},
+ {0x2494E, 0x5894},
+ {0x2494F, 0x588F},
+ {0x24950, 0x58FE},
+ {0x24951, 0x596B},
+ {0x24952, 0x5ADC},
+ {0x24953, 0x5AEE},
+ {0x24954, 0x5AE5},
+ {0x24955, 0x5AD5},
+ {0x24956, 0x5AEA},
+ {0x24957, 0x5ADA},
+ {0x24958, 0x5AED},
+ {0x24959, 0x5AEB},
+ {0x2495A, 0x5AF3},
+ {0x2495B, 0x5AE2},
+ {0x2495C, 0x5AE0},
+ {0x2495D, 0x5ADB},
+ {0x2495E, 0x5AEC},
+ {0x2495F, 0x5ADE},
+ {0x24960, 0x5ADD},
+ {0x24961, 0x5AD9},
+ {0x24962, 0x5AE8},
+ {0x24963, 0x5ADF},
+ {0x24964, 0x5B77},
+ {0x24965, 0x5BE0},
+ {0x24966, 0x5BE3},
+ {0x24967, 0x5C63},
+ {0x24968, 0x5D82},
+ {0x24969, 0x5D80},
+ {0x2496A, 0x5D7D},
+ {0x2496B, 0x5D86},
+ {0x2496C, 0x5D7A},
+ {0x2496D, 0x5D81},
+ {0x2496E, 0x5D77},
+ {0x2496F, 0x5D8A},
+ {0x24970, 0x5D89},
+ {0x24971, 0x5D88},
+ {0x24972, 0x5D7E},
+ {0x24973, 0x5D7C},
+ {0x24974, 0x5D8D},
+ {0x24975, 0x5D79},
+ {0x24976, 0x5D7F},
+ {0x24977, 0x5E58},
+ {0x24978, 0x5E59},
+ {0x24979, 0x5E53},
+ {0x2497A, 0x5ED8},
+ {0x2497B, 0x5ED1},
+ {0x2497C, 0x5ED7},
+ {0x2497D, 0x5ECE},
+ {0x2497E, 0x5EDC},
+ {0x24A21, 0x5ED5},
+ {0x24A22, 0x5ED9},
+ {0x24A23, 0x5ED2},
+ {0x24A24, 0x5ED4},
+ {0x24A25, 0x5F44},
+ {0x24A26, 0x5F43},
+ {0x24A27, 0x5F6F},
+ {0x24A28, 0x5FB6},
+ {0x24A29, 0x612C},
+ {0x24A2A, 0x6128},
+ {0x24A2B, 0x6141},
+ {0x24A2C, 0x615E},
+ {0x24A2D, 0x6171},
+ {0x24A2E, 0x6173},
+ {0x24A2F, 0x6152},
+ {0x24A30, 0x6153},
+ {0x24A31, 0x6172},
+ {0x24A32, 0x616C},
+ {0x24A33, 0x6180},
+ {0x24A34, 0x6174},
+ {0x24A35, 0x6154},
+ {0x24A36, 0x617A},
+ {0x24A37, 0x615B},
+ {0x24A38, 0x6165},
+ {0x24A39, 0x613B},
+ {0x24A3A, 0x616A},
+ {0x24A3B, 0x6161},
+ {0x24A3C, 0x6156},
+ {0x24A3D, 0x6229},
+ {0x24A3E, 0x6227},
+ {0x24A3F, 0x622B},
+ {0x24A40, 0x642B},
+ {0x24A41, 0x644D},
+ {0x24A42, 0x645B},
+ {0x24A43, 0x645D},
+ {0x24A44, 0x6474},
+ {0x24A45, 0x6476},
+ {0x24A46, 0x6472},
+ {0x24A47, 0x6473},
+ {0x24A48, 0x647D},
+ {0x24A49, 0x6475},
+ {0x24A4A, 0x6466},
+ {0x24A4B, 0x64A6},
+ {0x24A4C, 0x644E},
+ {0x24A4D, 0x6482},
+ {0x24A4E, 0x645E},
+ {0x24A4F, 0x645C},
+ {0x24A50, 0x644B},
+ {0x24A51, 0x6453},
+ {0x24A52, 0x6460},
+ {0x24A53, 0x6450},
+ {0x24A54, 0x647F},
+ {0x24A55, 0x643F},
+ {0x24A56, 0x646C},
+ {0x24A57, 0x646B},
+ {0x24A58, 0x6459},
+ {0x24A59, 0x6465},
+ {0x24A5A, 0x6477},
+ {0x24A5B, 0x6573},
+ {0x24A5C, 0x65A0},
+ {0x24A5D, 0x66A1},
+ {0x24A5E, 0x66A0},
+ {0x24A5F, 0x669F},
+ {0x24A60, 0x6705},
+ {0x24A61, 0x6704},
+ {0x24A62, 0x6722},
+ {0x24A63, 0x69B1},
+ {0x24A64, 0x69B6},
+ {0x24A65, 0x69C9},
+ {0x24A66, 0x69A0},
+ {0x24A67, 0x69CE},
+ {0x24A68, 0x6996},
+ {0x24A69, 0x69B0},
+ {0x24A6A, 0x69AC},
+ {0x24A6B, 0x69BC},
+ {0x24A6C, 0x6991},
+ {0x24A6D, 0x6999},
+ {0x24A6E, 0x698E},
+ {0x24A6F, 0x69A7},
+ {0x24A70, 0x698D},
+ {0x24A71, 0x69A9},
+ {0x24A72, 0x69BE},
+ {0x24A73, 0x69AF},
+ {0x24A74, 0x69BF},
+ {0x24A75, 0x69C4},
+ {0x24A76, 0x69BD},
+ {0x24A77, 0x69A4},
+ {0x24A78, 0x69D4},
+ {0x24A79, 0x69B9},
+ {0x24A7A, 0x69CA},
+ {0x24A7B, 0x699A},
+ {0x24A7C, 0x69CF},
+ {0x24A7D, 0x69B3},
+ {0x24A7E, 0x6993},
+ {0x24B21, 0x69AA},
+ {0x24B22, 0x69A1},
+ {0x24B23, 0x699E},
+ {0x24B24, 0x69D9},
+ {0x24B25, 0x6997},
+ {0x24B26, 0x6990},
+ {0x24B27, 0x69C2},
+ {0x24B28, 0x69B5},
+ {0x24B29, 0x69A5},
+ {0x24B2A, 0x69C6},
+ {0x24B2B, 0x6B4A},
+ {0x24B2C, 0x6B4D},
+ {0x24B2D, 0x6B4B},
+ {0x24B2E, 0x6B9E},
+ {0x24B2F, 0x6B9F},
+ {0x24B30, 0x6BA0},
+ {0x24B31, 0x6BC3},
+ {0x24B32, 0x6BC4},
+ {0x24B33, 0x6BFE},
+ {0x24B34, 0x6ECE},
+ {0x24B35, 0x6EF5},
+ {0x24B36, 0x6EF1},
+ {0x24B37, 0x6F03},
+ {0x24B38, 0x6F25},
+ {0x24B39, 0x6EF8},
+ {0x24B3A, 0x6F37},
+ {0x24B3B, 0x6EFB},
+ {0x24B3C, 0x6F2E},
+ {0x24B3D, 0x6F09},
+ {0x24B3E, 0x6F4E},
+ {0x24B3F, 0x6F19},
+ {0x24B40, 0x6F1A},
+ {0x24B41, 0x6F27},
+ {0x24B42, 0x6F18},
+ {0x24B43, 0x6F3B},
+ {0x24B44, 0x6F12},
+ {0x24B45, 0x6EED},
+ {0x24B46, 0x6F0A},
+ {0x24B47, 0x6F36},
+ {0x24B48, 0x6F73},
+ {0x24B49, 0x6EF9},
+ {0x24B4A, 0x6EEE},
+ {0x24B4B, 0x6F2D},
+ {0x24B4C, 0x6F40},
+ {0x24B4D, 0x6F30},
+ {0x24B4E, 0x6F3C},
+ {0x24B4F, 0x6F35},
+ {0x24B50, 0x6EEB},
+ {0x24B51, 0x6F07},
+ {0x24B52, 0x6F0E},
+ {0x24B53, 0x6F43},
+ {0x24B54, 0x6F05},
+ {0x24B55, 0x6EFD},
+ {0x24B56, 0x6EF6},
+ {0x24B57, 0x6F39},
+ {0x24B58, 0x6F1C},
+ {0x24B59, 0x6EFC},
+ {0x24B5A, 0x6F3A},
+ {0x24B5B, 0x6F1F},
+ {0x24B5C, 0x6F0D},
+ {0x24B5D, 0x6F1E},
+ {0x24B5E, 0x6F08},
+ {0x24B5F, 0x6F21},
+ {0x24B60, 0x7187},
+ {0x24B61, 0x7190},
+ {0x24B62, 0x7189},
+ {0x24B63, 0x7180},
+ {0x24B64, 0x7185},
+ {0x24B65, 0x7182},
+ {0x24B66, 0x718F},
+ {0x24B67, 0x717B},
+ {0x24B68, 0x7186},
+ {0x24B69, 0x7181},
+ {0x24B6A, 0x7197},
+ {0x24B6B, 0x7244},
+ {0x24B6C, 0x7253},
+ {0x24B6D, 0x7297},
+ {0x24B6E, 0x7295},
+ {0x24B6F, 0x7293},
+ {0x24B70, 0x7343},
+ {0x24B71, 0x734D},
+ {0x24B72, 0x7351},
+ {0x24B73, 0x734C},
+ {0x24B74, 0x7462},
+ {0x24B75, 0x7473},
+ {0x24B76, 0x7471},
+ {0x24B77, 0x7475},
+ {0x24B78, 0x7472},
+ {0x24B79, 0x7467},
+ {0x24B7A, 0x746E},
+ {0x24B7B, 0x7500},
+ {0x24B7C, 0x7502},
+ {0x24B7D, 0x7503},
+ {0x24B7E, 0x757D},
+ {0x24C21, 0x7590},
+ {0x24C22, 0x7616},
+ {0x24C23, 0x7608},
+ {0x24C24, 0x760C},
+ {0x24C25, 0x7615},
+ {0x24C26, 0x7611},
+ {0x24C27, 0x760A},
+ {0x24C28, 0x7614},
+ {0x24C29, 0x76B8},
+ {0x24C2A, 0x7781},
+ {0x24C2B, 0x777C},
+ {0x24C2C, 0x7785},
+ {0x24C2D, 0x7782},
+ {0x24C2E, 0x776E},
+ {0x24C2F, 0x7780},
+ {0x24C30, 0x776F},
+ {0x24C31, 0x777E},
+ {0x24C32, 0x7783},
+ {0x24C33, 0x78B2},
+ {0x24C34, 0x78AA},
+ {0x24C35, 0x78B4},
+ {0x24C36, 0x78AD},
+ {0x24C37, 0x78A8},
+ {0x24C38, 0x787E},
+ {0x24C39, 0x78AB},
+ {0x24C3A, 0x789E},
+ {0x24C3B, 0x78A5},
+ {0x24C3C, 0x78A0},
+ {0x24C3D, 0x78AC},
+ {0x24C3E, 0x78A2},
+ {0x24C3F, 0x78A4},
+ {0x24C40, 0x7998},
+ {0x24C41, 0x798A},
+ {0x24C42, 0x798B},
+ {0x24C43, 0x7996},
+ {0x24C44, 0x7995},
+ {0x24C45, 0x7994},
+ {0x24C46, 0x7993},
+ {0x24C47, 0x7997},
+ {0x24C48, 0x7988},
+ {0x24C49, 0x7992},
+ {0x24C4A, 0x7990},
+ {0x24C4B, 0x7A2B},
+ {0x24C4C, 0x7A4A},
+ {0x24C4D, 0x7A30},
+ {0x24C4E, 0x7A2F},
+ {0x24C4F, 0x7A28},
+ {0x24C50, 0x7A26},
+ {0x24C51, 0x7AA8},
+ {0x24C52, 0x7AAB},
+ {0x24C53, 0x7AAC},
+ {0x24C54, 0x7AEE},
+ {0x24C55, 0x7B88},
+ {0x24C56, 0x7B9C},
+ {0x24C57, 0x7B8A},
+ {0x24C58, 0x7B91},
+ {0x24C59, 0x7B90},
+ {0x24C5A, 0x7B96},
+ {0x24C5B, 0x7B8D},
+ {0x24C5C, 0x7B8C},
+ {0x24C5D, 0x7B9B},
+ {0x24C5E, 0x7B8E},
+ {0x24C5F, 0x7B85},
+ {0x24C60, 0x7B98},
+ {0x24C61, 0x5284},
+ {0x24C62, 0x7B99},
+ {0x24C63, 0x7BA4},
+ {0x24C64, 0x7B82},
+ {0x24C65, 0x7CBB},
+ {0x24C66, 0x7CBF},
+ {0x24C67, 0x7CBC},
+ {0x24C68, 0x7CBA},
+ {0x24C69, 0x7DA7},
+ {0x24C6A, 0x7DB7},
+ {0x24C6B, 0x7DC2},
+ {0x24C6C, 0x7DA3},
+ {0x24C6D, 0x7DAA},
+ {0x24C6E, 0x7DC1},
+ {0x24C6F, 0x7DC0},
+ {0x24C70, 0x7DC5},
+ {0x24C71, 0x7D9D},
+ {0x24C72, 0x7DCE},
+ {0x24C73, 0x7DC4},
+ {0x24C74, 0x7DC6},
+ {0x24C75, 0x7DCB},
+ {0x24C76, 0x7DCC},
+ {0x24C77, 0x7DAF},
+ {0x24C78, 0x7DB9},
+ {0x24C79, 0x7D96},
+ {0x24C7A, 0x7DBC},
+ {0x24C7B, 0x7D9F},
+ {0x24C7C, 0x7DA6},
+ {0x24C7D, 0x7DAE},
+ {0x24C7E, 0x7DA9},
+ {0x24D21, 0x7DA1},
+ {0x24D22, 0x7DC9},
+ {0x24D23, 0x7F73},
+ {0x24D24, 0x7FE2},
+ {0x24D25, 0x7FE3},
+ {0x24D26, 0x7FE5},
+ {0x24D27, 0x7FDE},
+ {0x24D28, 0x8024},
+ {0x24D29, 0x805D},
+ {0x24D2A, 0x805C},
+ {0x24D2B, 0x8189},
+ {0x24D2C, 0x8186},
+ {0x24D2D, 0x8183},
+ {0x24D2E, 0x8187},
+ {0x24D2F, 0x818D},
+ {0x24D30, 0x818C},
+ {0x24D31, 0x818B},
+ {0x24D32, 0x8215},
+ {0x24D33, 0x8497},
+ {0x24D34, 0x84A4},
+ {0x24D35, 0x84A1},
+ {0x24D36, 0x849F},
+ {0x24D37, 0x84BA},
+ {0x24D38, 0x84CE},
+ {0x24D39, 0x84C2},
+ {0x24D3A, 0x84AC},
+ {0x24D3B, 0x84AE},
+ {0x24D3C, 0x84AB},
+ {0x24D3D, 0x84B9},
+ {0x24D3E, 0x84B4},
+ {0x24D3F, 0x84C1},
+ {0x24D40, 0x84CD},
+ {0x24D41, 0x84AA},
+ {0x24D42, 0x849A},
+ {0x24D43, 0x84B1},
+ {0x24D44, 0x84D0},
+ {0x24D45, 0x849D},
+ {0x24D46, 0x84A7},
+ {0x24D47, 0x84BB},
+ {0x24D48, 0x84A2},
+ {0x24D49, 0x8494},
+ {0x24D4A, 0x84C7},
+ {0x24D4B, 0x84CC},
+ {0x24D4C, 0x849B},
+ {0x24D4D, 0x84A9},
+ {0x24D4E, 0x84AF},
+ {0x24D4F, 0x84A8},
+ {0x24D50, 0x84D6},
+ {0x24D51, 0x8498},
+ {0x24D52, 0x84B6},
+ {0x24D53, 0x84CF},
+ {0x24D54, 0x84A0},
+ {0x24D55, 0x84D7},
+ {0x24D56, 0x84D4},
+ {0x24D57, 0x84D2},
+ {0x24D58, 0x84DB},
+ {0x24D59, 0x84B0},
+ {0x24D5A, 0x8491},
+ {0x24D5B, 0x8661},
+ {0x24D5C, 0x8733},
+ {0x24D5D, 0x8723},
+ {0x24D5E, 0x8728},
+ {0x24D5F, 0x876B},
+ {0x24D60, 0x8740},
+ {0x24D61, 0x872E},
+ {0x24D62, 0x871E},
+ {0x24D63, 0x8721},
+ {0x24D64, 0x8719},
+ {0x24D65, 0x871B},
+ {0x24D66, 0x8743},
+ {0x24D67, 0x872C},
+ {0x24D68, 0x8741},
+ {0x24D69, 0x873E},
+ {0x24D6A, 0x8746},
+ {0x24D6B, 0x8720},
+ {0x24D6C, 0x8732},
+ {0x24D6D, 0x872A},
+ {0x24D6E, 0x872D},
+ {0x24D6F, 0x873C},
+ {0x24D70, 0x8712},
+ {0x24D71, 0x873A},
+ {0x24D72, 0x8731},
+ {0x24D73, 0x8735},
+ {0x24D74, 0x8742},
+ {0x24D75, 0x8726},
+ {0x24D76, 0x8727},
+ {0x24D77, 0x8738},
+ {0x24D78, 0x8724},
+ {0x24D79, 0x871A},
+ {0x24D7A, 0x8730},
+ {0x24D7B, 0x8711},
+ {0x24D7C, 0x88F7},
+ {0x24D7D, 0x88E7},
+ {0x24D7E, 0x88F1},
+ {0x24E21, 0x88F2},
+ {0x24E22, 0x88FA},
+ {0x24E23, 0x88FE},
+ {0x24E24, 0x88EE},
+ {0x24E25, 0x88FC},
+ {0x24E26, 0x88F6},
+ {0x24E27, 0x88FB},
+ {0x24E28, 0x88F0},
+ {0x24E29, 0x88EC},
+ {0x24E2A, 0x88EB},
+ {0x24E2B, 0x899D},
+ {0x24E2C, 0x89A1},
+ {0x24E2D, 0x899F},
+ {0x24E2E, 0x899E},
+ {0x24E2F, 0x89E9},
+ {0x24E30, 0x89EB},
+ {0x24E31, 0x89E8},
+ {0x24E32, 0x8AAB},
+ {0x24E33, 0x8A99},
+ {0x24E34, 0x8A8B},
+ {0x24E35, 0x8A92},
+ {0x24E36, 0x8A8F},
+ {0x24E37, 0x8A96},
+ {0x24E38, 0x8C3D},
+ {0x24E39, 0x8C68},
+ {0x24E3A, 0x8C69},
+ {0x24E3B, 0x8CD5},
+ {0x24E3C, 0x8CCF},
+ {0x24E3D, 0x8CD7},
+ {0x24E3E, 0x8D96},
+ {0x24E3F, 0x8E09},
+ {0x24E40, 0x8E02},
+ {0x24E41, 0x8DFF},
+ {0x24E42, 0x8E0D},
+ {0x24E43, 0x8DFD},
+ {0x24E44, 0x8E0A},
+ {0x24E45, 0x8E03},
+ {0x24E46, 0x8E07},
+ {0x24E47, 0x8E06},
+ {0x24E48, 0x8E05},
+ {0x24E49, 0x8DFE},
+ {0x24E4A, 0x8E00},
+ {0x24E4B, 0x8E04},
+ {0x24E4C, 0x8F10},
+ {0x24E4D, 0x8F11},
+ {0x24E4E, 0x8F0E},
+ {0x24E4F, 0x8F0D},
+ {0x24E50, 0x9123},
+ {0x24E51, 0x911C},
+ {0x24E52, 0x9120},
+ {0x24E53, 0x9122},
+ {0x24E54, 0x911F},
+ {0x24E55, 0x911D},
+ {0x24E56, 0x911A},
+ {0x24E57, 0x9124},
+ {0x24E58, 0x9121},
+ {0x24E59, 0x911B},
+ {0x24E5A, 0x917A},
+ {0x24E5B, 0x9172},
+ {0x24E5C, 0x9179},
+ {0x24E5D, 0x9173},
+ {0x24E5E, 0x92A5},
+ {0x24E5F, 0x92A4},
+ {0x24E60, 0x9276},
+ {0x24E61, 0x929B},
+ {0x24E62, 0x927A},
+ {0x24E63, 0x92A0},
+ {0x24E64, 0x9294},
+ {0x24E65, 0x92AA},
+ {0x24E66, 0x928D},
+ {0x24E67, 0x92A6},
+ {0x24E68, 0x929A},
+ {0x24E69, 0x92AB},
+ {0x24E6A, 0x9279},
+ {0x24E6B, 0x9297},
+ {0x24E6C, 0x927F},
+ {0x24E6D, 0x92A3},
+ {0x24E6E, 0x92EE},
+ {0x24E6F, 0x928E},
+ {0x24E70, 0x9282},
+ {0x24E71, 0x9295},
+ {0x24E72, 0x92A2},
+ {0x24E73, 0x927D},
+ {0x24E74, 0x9288},
+ {0x24E75, 0x92A1},
+ {0x24E76, 0x928A},
+ {0x24E77, 0x9286},
+ {0x24E78, 0x928C},
+ {0x24E79, 0x9299},
+ {0x24E7A, 0x92A7},
+ {0x24E7B, 0x927E},
+ {0x24E7C, 0x9287},
+ {0x24E7D, 0x92A9},
+ {0x24E7E, 0x929D},
+ {0x24F21, 0x928B},
+ {0x24F22, 0x922D},
+ {0x24F23, 0x969E},
+ {0x24F24, 0x96A1},
+ {0x24F25, 0x96FF},
+ {0x24F26, 0x9758},
+ {0x24F27, 0x977D},
+ {0x24F28, 0x977A},
+ {0x24F29, 0x977E},
+ {0x24F2A, 0x9783},
+ {0x24F2B, 0x9780},
+ {0x24F2C, 0x9782},
+ {0x24F2D, 0x977B},
+ {0x24F2E, 0x9784},
+ {0x24F2F, 0x9781},
+ {0x24F30, 0x977F},
+ {0x24F31, 0x97CE},
+ {0x24F32, 0x97CD},
+ {0x24F33, 0x9816},
+ {0x24F34, 0x98AD},
+ {0x24F35, 0x98AE},
+ {0x24F36, 0x9902},
+ {0x24F37, 0x9900},
+ {0x24F38, 0x9907},
+ {0x24F39, 0x999D},
+ {0x24F3A, 0x999C},
+ {0x24F3B, 0x99C3},
+ {0x24F3C, 0x99B9},
+ {0x24F3D, 0x99BB},
+ {0x24F3E, 0x99BA},
+ {0x24F3F, 0x99C2},
+ {0x24F40, 0x99BD},
+ {0x24F41, 0x99C7},
+ {0x24F42, 0x9AB1},
+ {0x24F43, 0x9AE3},
+ {0x24F44, 0x9AE7},
+ {0x24F45, 0x9B3E},
+ {0x24F46, 0x9B3F},
+ {0x24F47, 0x9B60},
+ {0x24F48, 0x9B61},
+ {0x24F49, 0x9B5F},
+ {0x24F4A, 0x9CF1},
+ {0x24F4B, 0x9CF2},
+ {0x24F4C, 0x9CF5},
+ {0x24F4D, 0x9EA7},
+ {0x24F4E, 0x50FF},
+ {0x24F4F, 0x5103},
+ {0x24F50, 0x5130},
+ {0x24F51, 0x50F8},
+ {0x24F52, 0x5106},
+ {0x24F53, 0x5107},
+ {0x24F54, 0x50F6},
+ {0x24F55, 0x50FE},
+ {0x24F56, 0x510B},
+ {0x24F57, 0x510C},
+ {0x24F58, 0x50FD},
+ {0x24F59, 0x510A},
+ {0x24F5A, 0x528B},
+ {0x24F5B, 0x528C},
+ {0x24F5C, 0x52F1},
+ {0x24F5D, 0x52EF},
+ {0x24F5E, 0x5648},
+ {0x24F5F, 0x5642},
+ {0x24F60, 0x564C},
+ {0x24F61, 0x5635},
+ {0x24F62, 0x5641},
+ {0x24F63, 0x564A},
+ {0x24F64, 0x5649},
+ {0x24F65, 0x5646},
+ {0x24F66, 0x5658},
+ {0x24F67, 0x565A},
+ {0x24F68, 0x5640},
+ {0x24F69, 0x5633},
+ {0x24F6A, 0x563D},
+ {0x24F6B, 0x562C},
+ {0x24F6C, 0x563E},
+ {0x24F6D, 0x5638},
+ {0x24F6E, 0x562A},
+ {0x24F6F, 0x563A},
+ {0x24F70, 0x571A},
+ {0x24F71, 0x58AB},
+ {0x24F72, 0x589D},
+ {0x24F73, 0x58B1},
+ {0x24F74, 0x58A0},
+ {0x24F75, 0x58A3},
+ {0x24F76, 0x58AF},
+ {0x24F77, 0x58AC},
+ {0x24F78, 0x58A5},
+ {0x24F79, 0x58A1},
+ {0x24F7A, 0x58FF},
+ {0x24F7B, 0x5AFF},
+ {0x24F7C, 0x5AF4},
+ {0x24F7D, 0x5AFD},
+ {0x24F7E, 0x5AF7},
+ {0x25021, 0x5AF6},
+ {0x25022, 0x5B03},
+ {0x25023, 0x5AF8},
+ {0x25024, 0x5B02},
+ {0x25025, 0x5AF9},
+ {0x25026, 0x5B01},
+ {0x25027, 0x5B07},
+ {0x25028, 0x5B05},
+ {0x25029, 0x5B0F},
+ {0x2502A, 0x5C67},
+ {0x2502B, 0x5D99},
+ {0x2502C, 0x5D97},
+ {0x2502D, 0x5D9F},
+ {0x2502E, 0x5D92},
+ {0x2502F, 0x5DA2},
+ {0x25030, 0x5D93},
+ {0x25031, 0x5D95},
+ {0x25032, 0x5DA0},
+ {0x25033, 0x5D9C},
+ {0x25034, 0x5DA1},
+ {0x25035, 0x5D9A},
+ {0x25036, 0x5D9E},
+ {0x25037, 0x5E69},
+ {0x25038, 0x5E5D},
+ {0x25039, 0x5E60},
+ {0x2503A, 0x5E5C},
+ {0x2503B, 0x7DF3},
+ {0x2503C, 0x5EDB},
+ {0x2503D, 0x5EDE},
+ {0x2503E, 0x5EE1},
+ {0x2503F, 0x5F49},
+ {0x25040, 0x5FB2},
+ {0x25041, 0x618B},
+ {0x25042, 0x6183},
+ {0x25043, 0x6179},
+ {0x25044, 0x61B1},
+ {0x25045, 0x61B0},
+ {0x25046, 0x61A2},
+ {0x25047, 0x6189},
+ {0x25048, 0x619B},
+ {0x25049, 0x6193},
+ {0x2504A, 0x61AF},
+ {0x2504B, 0x61AD},
+ {0x2504C, 0x619F},
+ {0x2504D, 0x6192},
+ {0x2504E, 0x61AA},
+ {0x2504F, 0x61A1},
+ {0x25050, 0x618D},
+ {0x25051, 0x6166},
+ {0x25052, 0x61B3},
+ {0x25053, 0x622D},
+ {0x25054, 0x646E},
+ {0x25055, 0x6470},
+ {0x25056, 0x6496},
+ {0x25057, 0x64A0},
+ {0x25058, 0x6485},
+ {0x25059, 0x6497},
+ {0x2505A, 0x649C},
+ {0x2505B, 0x648F},
+ {0x2505C, 0x648B},
+ {0x2505D, 0x648A},
+ {0x2505E, 0x648C},
+ {0x2505F, 0x64A3},
+ {0x25060, 0x649F},
+ {0x25061, 0x6468},
+ {0x25062, 0x64B1},
+ {0x25063, 0x6498},
+ {0x25064, 0x6576},
+ {0x25065, 0x657A},
+ {0x25066, 0x6579},
+ {0x25067, 0x657B},
+ {0x25068, 0x65B2},
+ {0x25069, 0x65B3},
+ {0x2506A, 0x66B5},
+ {0x2506B, 0x66B0},
+ {0x2506C, 0x66A9},
+ {0x2506D, 0x66B2},
+ {0x2506E, 0x66B7},
+ {0x2506F, 0x66AA},
+ {0x25070, 0x66AF},
+ {0x25071, 0x6A00},
+ {0x25072, 0x6A06},
+ {0x25073, 0x6A17},
+ {0x25074, 0x69E5},
+ {0x25075, 0x69F8},
+ {0x25076, 0x6A15},
+ {0x25077, 0x69F1},
+ {0x25078, 0x69E4},
+ {0x25079, 0x6A20},
+ {0x2507A, 0x69FF},
+ {0x2507B, 0x69EC},
+ {0x2507C, 0x69E2},
+ {0x2507D, 0x6A1B},
+ {0x2507E, 0x6A1D},
+ {0x25121, 0x69FE},
+ {0x25122, 0x6A27},
+ {0x25123, 0x69F2},
+ {0x25124, 0x69EE},
+ {0x25125, 0x6A14},
+ {0x25126, 0x69F7},
+ {0x25127, 0x69E7},
+ {0x25128, 0x6A40},
+ {0x25129, 0x6A08},
+ {0x2512A, 0x69E6},
+ {0x2512B, 0x69FB},
+ {0x2512C, 0x6A0D},
+ {0x2512D, 0x69FC},
+ {0x2512E, 0x69EB},
+ {0x2512F, 0x6A09},
+ {0x25130, 0x6A04},
+ {0x25131, 0x6A18},
+ {0x25132, 0x6A25},
+ {0x25133, 0x6A0F},
+ {0x25134, 0x69F6},
+ {0x25135, 0x6A26},
+ {0x25136, 0x6A07},
+ {0x25137, 0x69F4},
+ {0x25138, 0x6A16},
+ {0x25139, 0x6B51},
+ {0x2513A, 0x6BA5},
+ {0x2513B, 0x6BA3},
+ {0x2513C, 0x6BA2},
+ {0x2513D, 0x6BA6},
+ {0x2513E, 0x6C01},
+ {0x2513F, 0x6C00},
+ {0x25140, 0x6BFF},
+ {0x25141, 0x6C02},
+ {0x25142, 0x6F41},
+ {0x25143, 0x6F26},
+ {0x25144, 0x6F7E},
+ {0x25145, 0x6F87},
+ {0x25146, 0x6FC6},
+ {0x25147, 0x6F92},
+ {0x25148, 0x6F8D},
+ {0x25149, 0x6F89},
+ {0x2514A, 0x6F8C},
+ {0x2514B, 0x6F62},
+ {0x2514C, 0x6F4F},
+ {0x2514D, 0x6F85},
+ {0x2514E, 0x6F5A},
+ {0x2514F, 0x6F96},
+ {0x25150, 0x6F76},
+ {0x25151, 0x6F6C},
+ {0x25152, 0x6F82},
+ {0x25153, 0x6F55},
+ {0x25154, 0x6F72},
+ {0x25155, 0x6F52},
+ {0x25156, 0x6F50},
+ {0x25157, 0x6F57},
+ {0x25158, 0x6F94},
+ {0x25159, 0x6F93},
+ {0x2515A, 0x6F5D},
+ {0x2515B, 0x6F00},
+ {0x2515C, 0x6F61},
+ {0x2515D, 0x6F6B},
+ {0x2515E, 0x6F7D},
+ {0x2515F, 0x6F67},
+ {0x25160, 0x6F90},
+ {0x25161, 0x6F53},
+ {0x25162, 0x6F8B},
+ {0x25163, 0x6F69},
+ {0x25164, 0x6F7F},
+ {0x25165, 0x6F95},
+ {0x25166, 0x6F63},
+ {0x25167, 0x6F77},
+ {0x25168, 0x6F6A},
+ {0x25169, 0x6F7B},
+ {0x2516A, 0x71B2},
+ {0x2516B, 0x71AF},
+ {0x2516C, 0x719B},
+ {0x2516D, 0x71B0},
+ {0x2516E, 0x71A0},
+ {0x2516F, 0x719A},
+ {0x25170, 0x71A9},
+ {0x25171, 0x71B5},
+ {0x25172, 0x719D},
+ {0x25173, 0x71A5},
+ {0x25174, 0x719E},
+ {0x25175, 0x71A4},
+ {0x25176, 0x71A1},
+ {0x25177, 0x71AA},
+ {0x25178, 0x719C},
+ {0x25179, 0x71A7},
+ {0x2517A, 0x71B3},
+ {0x2517B, 0x7298},
+ {0x2517C, 0x729A},
+ {0x2517D, 0x7358},
+ {0x2517E, 0x7352},
+ {0x25221, 0x735E},
+ {0x25222, 0x735F},
+ {0x25223, 0x7360},
+ {0x25224, 0x735D},
+ {0x25225, 0x735B},
+ {0x25226, 0x7361},
+ {0x25227, 0x735A},
+ {0x25228, 0x7359},
+ {0x25229, 0x7362},
+ {0x2522A, 0x7487},
+ {0x2522B, 0x7489},
+ {0x2522C, 0x748A},
+ {0x2522D, 0x7486},
+ {0x2522E, 0x7481},
+ {0x2522F, 0x747D},
+ {0x25230, 0x7485},
+ {0x25231, 0x7488},
+ {0x25232, 0x747C},
+ {0x25233, 0x7479},
+ {0x25234, 0x7508},
+ {0x25235, 0x7507},
+ {0x25236, 0x757E},
+ {0x25237, 0x7625},
+ {0x25238, 0x761E},
+ {0x25239, 0x7619},
+ {0x2523A, 0x761D},
+ {0x2523B, 0x761C},
+ {0x2523C, 0x7623},
+ {0x2523D, 0x761A},
+ {0x2523E, 0x7628},
+ {0x2523F, 0x761B},
+ {0x25240, 0x769C},
+ {0x25241, 0x769D},
+ {0x25242, 0x769E},
+ {0x25243, 0x769B},
+ {0x25244, 0x778D},
+ {0x25245, 0x778F},
+ {0x25246, 0x7789},
+ {0x25247, 0x7788},
+ {0x25248, 0x78CD},
+ {0x25249, 0x78BB},
+ {0x2524A, 0x78CF},
+ {0x2524B, 0x78CC},
+ {0x2524C, 0x78D1},
+ {0x2524D, 0x78CE},
+ {0x2524E, 0x78D4},
+ {0x2524F, 0x78C8},
+ {0x25250, 0x78C3},
+ {0x25251, 0x78C4},
+ {0x25252, 0x78C9},
+ {0x25253, 0x799A},
+ {0x25254, 0x79A1},
+ {0x25255, 0x79A0},
+ {0x25256, 0x799C},
+ {0x25257, 0x79A2},
+ {0x25258, 0x799B},
+ {0x25259, 0x6B76},
+ {0x2525A, 0x7A39},
+ {0x2525B, 0x7AB2},
+ {0x2525C, 0x7AB4},
+ {0x2525D, 0x7AB3},
+ {0x2525E, 0x7BB7},
+ {0x2525F, 0x7BCB},
+ {0x25260, 0x7BBE},
+ {0x25261, 0x7BAC},
+ {0x25262, 0x7BCE},
+ {0x25263, 0x7BAF},
+ {0x25264, 0x7BB9},
+ {0x25265, 0x7BCA},
+ {0x25266, 0x7BB5},
+ {0x25267, 0x7CC5},
+ {0x25268, 0x7CC8},
+ {0x25269, 0x7CCC},
+ {0x2526A, 0x7CCB},
+ {0x2526B, 0x7DF7},
+ {0x2526C, 0x7DDB},
+ {0x2526D, 0x7DEA},
+ {0x2526E, 0x7DE7},
+ {0x2526F, 0x7DD7},
+ {0x25270, 0x7DE1},
+ {0x25271, 0x7E03},
+ {0x25272, 0x7DFA},
+ {0x25273, 0x7DE6},
+ {0x25274, 0x7DF6},
+ {0x25275, 0x7DF1},
+ {0x25276, 0x7DF0},
+ {0x25277, 0x7DEE},
+ {0x25278, 0x7DDF},
+ {0x25279, 0x7F76},
+ {0x2527A, 0x7FAC},
+ {0x2527B, 0x7FB0},
+ {0x2527C, 0x7FAD},
+ {0x2527D, 0x7FED},
+ {0x2527E, 0x7FEB},
+ {0x25321, 0x7FEA},
+ {0x25322, 0x7FEC},
+ {0x25323, 0x7FE6},
+ {0x25324, 0x7FE8},
+ {0x25325, 0x8064},
+ {0x25326, 0x8067},
+ {0x25327, 0x81A3},
+ {0x25328, 0x819F},
+ {0x25329, 0x819E},
+ {0x2532A, 0x8195},
+ {0x2532B, 0x81A2},
+ {0x2532C, 0x8199},
+ {0x2532D, 0x8197},
+ {0x2532E, 0x8216},
+ {0x2532F, 0x824F},
+ {0x25330, 0x8253},
+ {0x25331, 0x8252},
+ {0x25332, 0x8250},
+ {0x25333, 0x824E},
+ {0x25334, 0x8251},
+ {0x25335, 0x8524},
+ {0x25336, 0x853B},
+ {0x25337, 0x850F},
+ {0x25338, 0x8500},
+ {0x25339, 0x8529},
+ {0x2533A, 0x850E},
+ {0x2533B, 0x8509},
+ {0x2533C, 0x850D},
+ {0x2533D, 0x851F},
+ {0x2533E, 0x850A},
+ {0x2533F, 0x8527},
+ {0x25340, 0x851C},
+ {0x25341, 0x84FB},
+ {0x25342, 0x852B},
+ {0x25343, 0x84FA},
+ {0x25344, 0x8508},
+ {0x25345, 0x850C},
+ {0x25346, 0x84F4},
+ {0x25347, 0x852A},
+ {0x25348, 0x84F2},
+ {0x25349, 0x8515},
+ {0x2534A, 0x84F7},
+ {0x2534B, 0x84EB},
+ {0x2534C, 0x84F3},
+ {0x2534D, 0x84FC},
+ {0x2534E, 0x8512},
+ {0x2534F, 0x84EA},
+ {0x25350, 0x84E9},
+ {0x25351, 0x8516},
+ {0x25352, 0x84FE},
+ {0x25353, 0x8528},
+ {0x25354, 0x851D},
+ {0x25355, 0x852E},
+ {0x25356, 0x8502},
+ {0x25357, 0x84FD},
+ {0x25358, 0x851E},
+ {0x25359, 0x84F6},
+ {0x2535A, 0x8531},
+ {0x2535B, 0x8526},
+ {0x2535C, 0x84E7},
+ {0x2535D, 0x84E8},
+ {0x2535E, 0x84F0},
+ {0x2535F, 0x84EF},
+ {0x25360, 0x84F9},
+ {0x25361, 0x8518},
+ {0x25362, 0x8520},
+ {0x25363, 0x8530},
+ {0x25364, 0x850B},
+ {0x25365, 0x8519},
+ {0x25366, 0x852F},
+ {0x25367, 0x8662},
+ {0x25368, 0x8756},
+ {0x25369, 0x8763},
+ {0x2536A, 0x8764},
+ {0x2536B, 0x8777},
+ {0x2536C, 0x87E1},
+ {0x2536D, 0x8773},
+ {0x2536E, 0x8758},
+ {0x2536F, 0x8754},
+ {0x25370, 0x875B},
+ {0x25371, 0x8752},
+ {0x25372, 0x8761},
+ {0x25373, 0x875A},
+ {0x25374, 0x8751},
+ {0x25375, 0x875E},
+ {0x25376, 0x876D},
+ {0x25377, 0x876A},
+ {0x25378, 0x8750},
+ {0x25379, 0x874E},
+ {0x2537A, 0x875F},
+ {0x2537B, 0x875D},
+ {0x2537C, 0x876F},
+ {0x2537D, 0x876C},
+ {0x2537E, 0x877A},
+ {0x25421, 0x876E},
+ {0x25422, 0x875C},
+ {0x25423, 0x8765},
+ {0x25424, 0x874F},
+ {0x25425, 0x877B},
+ {0x25426, 0x8775},
+ {0x25427, 0x8762},
+ {0x25428, 0x8767},
+ {0x25429, 0x8769},
+ {0x2542A, 0x885A},
+ {0x2542B, 0x8905},
+ {0x2542C, 0x890C},
+ {0x2542D, 0x8914},
+ {0x2542E, 0x890B},
+ {0x2542F, 0x8917},
+ {0x25430, 0x8918},
+ {0x25431, 0x8919},
+ {0x25432, 0x8906},
+ {0x25433, 0x8916},
+ {0x25434, 0x8911},
+ {0x25435, 0x890E},
+ {0x25436, 0x8909},
+ {0x25437, 0x89A2},
+ {0x25438, 0x89A4},
+ {0x25439, 0x89A3},
+ {0x2543A, 0x89ED},
+ {0x2543B, 0x89F0},
+ {0x2543C, 0x89EC},
+ {0x2543D, 0x8ACF},
+ {0x2543E, 0x8AC6},
+ {0x2543F, 0x8AB8},
+ {0x25440, 0x8AD3},
+ {0x25441, 0x8AD1},
+ {0x25442, 0x8AD4},
+ {0x25443, 0x8AD5},
+ {0x25444, 0x8ABB},
+ {0x25445, 0x8AD7},
+ {0x25446, 0x8ABE},
+ {0x25447, 0x8AC0},
+ {0x25448, 0x8AC5},
+ {0x25449, 0x8AD8},
+ {0x2544A, 0x8AC3},
+ {0x2544B, 0x8ABA},
+ {0x2544C, 0x8ABD},
+ {0x2544D, 0x8AD9},
+ {0x2544E, 0x8C3E},
+ {0x2544F, 0x8C4D},
+ {0x25450, 0x8C8F},
+ {0x25451, 0x8CE5},
+ {0x25452, 0x8CDF},
+ {0x25453, 0x8CD9},
+ {0x25454, 0x8CE8},
+ {0x25455, 0x8CDA},
+ {0x25456, 0x8CDD},
+ {0x25457, 0x8CE7},
+ {0x25458, 0x8DA0},
+ {0x25459, 0x8D9C},
+ {0x2545A, 0x8DA1},
+ {0x2545B, 0x8D9B},
+ {0x2545C, 0x8E20},
+ {0x2545D, 0x8E23},
+ {0x2545E, 0x8E25},
+ {0x2545F, 0x8E24},
+ {0x25460, 0x8E2E},
+ {0x25461, 0x8E15},
+ {0x25462, 0x8E1B},
+ {0x25463, 0x8E16},
+ {0x25464, 0x8E11},
+ {0x25465, 0x8E19},
+ {0x25466, 0x8E26},
+ {0x25467, 0x8E27},
+ {0x25468, 0x8E14},
+ {0x25469, 0x8E12},
+ {0x2546A, 0x8E18},
+ {0x2546B, 0x8E13},
+ {0x2546C, 0x8E1C},
+ {0x2546D, 0x8E17},
+ {0x2546E, 0x8E1A},
+ {0x2546F, 0x8F2C},
+ {0x25470, 0x8F24},
+ {0x25471, 0x8F18},
+ {0x25472, 0x8F1A},
+ {0x25473, 0x8F20},
+ {0x25474, 0x8F23},
+ {0x25475, 0x8F16},
+ {0x25476, 0x8F17},
+ {0x25477, 0x9073},
+ {0x25478, 0x9070},
+ {0x25479, 0x906F},
+ {0x2547A, 0x9067},
+ {0x2547B, 0x906B},
+ {0x2547C, 0x912F},
+ {0x2547D, 0x912B},
+ {0x2547E, 0x9129},
+ {0x25521, 0x912A},
+ {0x25522, 0x9132},
+ {0x25523, 0x9126},
+ {0x25524, 0x912E},
+ {0x25525, 0x9185},
+ {0x25526, 0x9186},
+ {0x25527, 0x918A},
+ {0x25528, 0x9181},
+ {0x25529, 0x9182},
+ {0x2552A, 0x9184},
+ {0x2552B, 0x9180},
+ {0x2552C, 0x92D0},
+ {0x2552D, 0x92C3},
+ {0x2552E, 0x92C4},
+ {0x2552F, 0x92C0},
+ {0x25530, 0x92D9},
+ {0x25531, 0x92B6},
+ {0x25532, 0x92CF},
+ {0x25533, 0x92F1},
+ {0x25534, 0x92DF},
+ {0x25535, 0x92D8},
+ {0x25536, 0x92E9},
+ {0x25537, 0x92D7},
+ {0x25538, 0x92DD},
+ {0x25539, 0x92CC},
+ {0x2553A, 0x92EF},
+ {0x2553B, 0x92C2},
+ {0x2553C, 0x92E8},
+ {0x2553D, 0x92CA},
+ {0x2553E, 0x92C8},
+ {0x2553F, 0x92CE},
+ {0x25540, 0x92E6},
+ {0x25541, 0x92CD},
+ {0x25542, 0x92D5},
+ {0x25543, 0x92C9},
+ {0x25544, 0x92E0},
+ {0x25545, 0x92DE},
+ {0x25546, 0x92E7},
+ {0x25547, 0x92D1},
+ {0x25548, 0x92D3},
+ {0x25549, 0x92B5},
+ {0x2554A, 0x92E1},
+ {0x2554B, 0x9325},
+ {0x2554C, 0x92C6},
+ {0x2554D, 0x92B4},
+ {0x2554E, 0x957C},
+ {0x2554F, 0x95AC},
+ {0x25550, 0x95AB},
+ {0x25551, 0x95AE},
+ {0x25552, 0x95B0},
+ {0x25553, 0x96A4},
+ {0x25554, 0x96A2},
+ {0x25555, 0x96D3},
+ {0x25556, 0x9705},
+ {0x25557, 0x9708},
+ {0x25558, 0x9702},
+ {0x25559, 0x975A},
+ {0x2555A, 0x978A},
+ {0x2555B, 0x978E},
+ {0x2555C, 0x9788},
+ {0x2555D, 0x97D0},
+ {0x2555E, 0x97CF},
+ {0x2555F, 0x981E},
+ {0x25560, 0x981D},
+ {0x25561, 0x9826},
+ {0x25562, 0x9829},
+ {0x25563, 0x9828},
+ {0x25564, 0x9820},
+ {0x25565, 0x981B},
+ {0x25566, 0x9827},
+ {0x25567, 0x98B2},
+ {0x25568, 0x9908},
+ {0x25569, 0x98FA},
+ {0x2556A, 0x9911},
+ {0x2556B, 0x9914},
+ {0x2556C, 0x9916},
+ {0x2556D, 0x9917},
+ {0x2556E, 0x9915},
+ {0x2556F, 0x99DC},
+ {0x25570, 0x99CD},
+ {0x25571, 0x99CF},
+ {0x25572, 0x99D3},
+ {0x25573, 0x99D4},
+ {0x25574, 0x99CE},
+ {0x25575, 0x99C9},
+ {0x25576, 0x99D6},
+ {0x25577, 0x99D8},
+ {0x25578, 0x99CB},
+ {0x25579, 0x99D7},
+ {0x2557A, 0x99CC},
+ {0x2557B, 0x9AB3},
+ {0x2557C, 0x9AEC},
+ {0x2557D, 0x9AEB},
+ {0x2557E, 0x9AF3},
+ {0x25621, 0x9AF2},
+ {0x25622, 0x9AF1},
+ {0x25623, 0x9B46},
+ {0x25624, 0x9B43},
+ {0x25625, 0x9B67},
+ {0x25626, 0x9B74},
+ {0x25627, 0x9B71},
+ {0x25628, 0x9B66},
+ {0x25629, 0x9B76},
+ {0x2562A, 0x9B75},
+ {0x2562B, 0x9B70},
+ {0x2562C, 0x9B68},
+ {0x2562D, 0x9B64},
+ {0x2562E, 0x9B6C},
+ {0x2562F, 0x9CFC},
+ {0x25630, 0x9CFA},
+ {0x25631, 0x9CFD},
+ {0x25632, 0x9CFF},
+ {0x25633, 0x9CF7},
+ {0x25634, 0x9D07},
+ {0x25635, 0x9D00},
+ {0x25636, 0x9CF9},
+ {0x25637, 0x9CFB},
+ {0x25638, 0x9D08},
+ {0x25639, 0x9D05},
+ {0x2563A, 0x9D04},
+ {0x2563B, 0x9E83},
+ {0x2563C, 0x9ED3},
+ {0x2563D, 0x9F0F},
+ {0x2563E, 0x9F10},
+ {0x2563F, 0x511C},
+ {0x25640, 0x5113},
+ {0x25641, 0x5117},
+ {0x25642, 0x511A},
+ {0x25643, 0x5111},
+ {0x25644, 0x51DE},
+ {0x25645, 0x5334},
+ {0x25646, 0x53E1},
+ {0x25647, 0x5670},
+ {0x25648, 0x5660},
+ {0x25649, 0x566E},
+ {0x2564A, 0x5673},
+ {0x2564B, 0x5666},
+ {0x2564C, 0x5663},
+ {0x2564D, 0x566D},
+ {0x2564E, 0x5672},
+ {0x2564F, 0x565E},
+ {0x25650, 0x5677},
+ {0x25651, 0x571C},
+ {0x25652, 0x571B},
+ {0x25653, 0x58C8},
+ {0x25654, 0x58BD},
+ {0x25655, 0x58C9},
+ {0x25656, 0x58BF},
+ {0x25657, 0x58BA},
+ {0x25658, 0x58C2},
+ {0x25659, 0x58BC},
+ {0x2565A, 0x58C6},
+ {0x2565B, 0x5B17},
+ {0x2565C, 0x5B19},
+ {0x2565D, 0x5B1B},
+ {0x2565E, 0x5B21},
+ {0x2565F, 0x5B14},
+ {0x25660, 0x5B13},
+ {0x25661, 0x5B10},
+ {0x25662, 0x5B16},
+ {0x25663, 0x5B28},
+ {0x25664, 0x5B1A},
+ {0x25665, 0x5B20},
+ {0x25666, 0x5B1E},
+ {0x25667, 0x5BEF},
+ {0x25668, 0x5DAC},
+ {0x25669, 0x5DB1},
+ {0x2566A, 0x5DA9},
+ {0x2566B, 0x5DA7},
+ {0x2566C, 0x5DB5},
+ {0x2566D, 0x5DB0},
+ {0x2566E, 0x5DAE},
+ {0x2566F, 0x5DAA},
+ {0x25670, 0x5DA8},
+ {0x25671, 0x5DB2},
+ {0x25672, 0x5DAD},
+ {0x25673, 0x5DAF},
+ {0x25674, 0x5DB4},
+ {0x25675, 0x5E67},
+ {0x25676, 0x5E68},
+ {0x25677, 0x5E66},
+ {0x25678, 0x5E6F},
+ {0x25679, 0x5EE9},
+ {0x2567A, 0x5EE7},
+ {0x2567B, 0x5EE6},
+ {0x2567C, 0x5EE8},
+ {0x2567D, 0x5EE5},
+ {0x2567E, 0x5F4B},
+ {0x25721, 0x5FBC},
+ {0x25722, 0x5FBB},
+ {0x25723, 0x619D},
+ {0x25724, 0x61A8},
+ {0x25725, 0x6196},
+ {0x25726, 0x61C5},
+ {0x25727, 0x61B4},
+ {0x25728, 0x61C6},
+ {0x25729, 0x61C1},
+ {0x2572A, 0x61CC},
+ {0x2572B, 0x61BA},
+ {0x2572C, 0x61BF},
+ {0x2572D, 0x61B8},
+ {0x2572E, 0x618C},
+ {0x2572F, 0x64D7},
+ {0x25730, 0x64D6},
+ {0x25731, 0x64D0},
+ {0x25732, 0x64CF},
+ {0x25733, 0x64C9},
+ {0x25734, 0x64BD},
+ {0x25735, 0x6489},
+ {0x25736, 0x64C3},
+ {0x25737, 0x64DB},
+ {0x25738, 0x64F3},
+ {0x25739, 0x64D9},
+ {0x2573A, 0x6533},
+ {0x2573B, 0x657F},
+ {0x2573C, 0x657C},
+ {0x2573D, 0x65A2},
+ {0x2573E, 0x66C8},
+ {0x2573F, 0x66BE},
+ {0x25740, 0x66C0},
+ {0x25741, 0x66CA},
+ {0x25742, 0x66CB},
+ {0x25743, 0x66CF},
+ {0x25744, 0x66BD},
+ {0x25745, 0x66BB},
+ {0x25746, 0x66BA},
+ {0x25747, 0x66CC},
+ {0x25748, 0x6723},
+ {0x25749, 0x6A34},
+ {0x2574A, 0x6A66},
+ {0x2574B, 0x6A49},
+ {0x2574C, 0x6A67},
+ {0x2574D, 0x6A32},
+ {0x2574E, 0x6A68},
+ {0x2574F, 0x6A3E},
+ {0x25750, 0x6A5D},
+ {0x25751, 0x6A6D},
+ {0x25752, 0x6A76},
+ {0x25753, 0x6A5B},
+ {0x25754, 0x6A51},
+ {0x25755, 0x6A28},
+ {0x25756, 0x6A5A},
+ {0x25757, 0x6A3B},
+ {0x25758, 0x6A3F},
+ {0x25759, 0x6A41},
+ {0x2575A, 0x6A6A},
+ {0x2575B, 0x6A64},
+ {0x2575C, 0x6A50},
+ {0x2575D, 0x6A4F},
+ {0x2575E, 0x6A54},
+ {0x2575F, 0x6A6F},
+ {0x25760, 0x6A69},
+ {0x25761, 0x6A60},
+ {0x25762, 0x6A3C},
+ {0x25763, 0x6A5E},
+ {0x25764, 0x6A56},
+ {0x25765, 0x6A55},
+ {0x25766, 0x6A4D},
+ {0x25767, 0x6A4E},
+ {0x25768, 0x6A46},
+ {0x25769, 0x6B55},
+ {0x2576A, 0x6B54},
+ {0x2576B, 0x6B56},
+ {0x2576C, 0x6BA7},
+ {0x2576D, 0x6BAA},
+ {0x2576E, 0x6BAB},
+ {0x2576F, 0x6BC8},
+ {0x25770, 0x6BC7},
+ {0x25771, 0x6C04},
+ {0x25772, 0x6C03},
+ {0x25773, 0x6C06},
+ {0x25774, 0x6FAD},
+ {0x25775, 0x6FCB},
+ {0x25776, 0x6FA3},
+ {0x25777, 0x6FC7},
+ {0x25778, 0x6FBC},
+ {0x25779, 0x6FCE},
+ {0x2577A, 0x6FC8},
+ {0x2577B, 0x6F5E},
+ {0x2577C, 0x6FC4},
+ {0x2577D, 0x6FBD},
+ {0x2577E, 0x6F9E},
+ {0x25821, 0x6FCA},
+ {0x25822, 0x6FA8},
+ {0x25823, 0x7004},
+ {0x25824, 0x6FA5},
+ {0x25825, 0x6FAE},
+ {0x25826, 0x6FBA},
+ {0x25827, 0x6FAC},
+ {0x25828, 0x6FAA},
+ {0x25829, 0x6FCF},
+ {0x2582A, 0x6FBF},
+ {0x2582B, 0x6FB8},
+ {0x2582C, 0x6FA2},
+ {0x2582D, 0x6FC9},
+ {0x2582E, 0x6FAB},
+ {0x2582F, 0x6FCD},
+ {0x25830, 0x6FAF},
+ {0x25831, 0x6FB2},
+ {0x25832, 0x6FB0},
+ {0x25833, 0x71C5},
+ {0x25834, 0x71C2},
+ {0x25835, 0x71BF},
+ {0x25836, 0x71B8},
+ {0x25837, 0x71D6},
+ {0x25838, 0x71C0},
+ {0x25839, 0x71C1},
+ {0x2583A, 0x71CB},
+ {0x2583B, 0x71D4},
+ {0x2583C, 0x71CA},
+ {0x2583D, 0x71C7},
+ {0x2583E, 0x71CF},
+ {0x2583F, 0x71BD},
+ {0x25840, 0x71D8},
+ {0x25841, 0x71BC},
+ {0x25842, 0x71C6},
+ {0x25843, 0x71DA},
+ {0x25844, 0x71DB},
+ {0x25845, 0x729D},
+ {0x25846, 0x729E},
+ {0x25847, 0x7369},
+ {0x25848, 0x7366},
+ {0x25849, 0x7367},
+ {0x2584A, 0x736C},
+ {0x2584B, 0x7365},
+ {0x2584C, 0x736B},
+ {0x2584D, 0x736A},
+ {0x2584E, 0x747F},
+ {0x2584F, 0x749A},
+ {0x25850, 0x74A0},
+ {0x25851, 0x7494},
+ {0x25852, 0x7492},
+ {0x25853, 0x7495},
+ {0x25854, 0x74A1},
+ {0x25855, 0x750B},
+ {0x25856, 0x7580},
+ {0x25857, 0x762F},
+ {0x25858, 0x762D},
+ {0x25859, 0x7631},
+ {0x2585A, 0x763D},
+ {0x2585B, 0x7633},
+ {0x2585C, 0x763C},
+ {0x2585D, 0x7635},
+ {0x2585E, 0x7632},
+ {0x2585F, 0x7630},
+ {0x25860, 0x76BB},
+ {0x25861, 0x76E6},
+ {0x25862, 0x779A},
+ {0x25863, 0x779D},
+ {0x25864, 0x77A1},
+ {0x25865, 0x779C},
+ {0x25866, 0x779B},
+ {0x25867, 0x77A2},
+ {0x25868, 0x77A3},
+ {0x25869, 0x7795},
+ {0x2586A, 0x7799},
+ {0x2586B, 0x7797},
+ {0x2586C, 0x78DD},
+ {0x2586D, 0x78E9},
+ {0x2586E, 0x78E5},
+ {0x2586F, 0x78EA},
+ {0x25870, 0x78DE},
+ {0x25871, 0x78E3},
+ {0x25872, 0x78DB},
+ {0x25873, 0x78E1},
+ {0x25874, 0x78E2},
+ {0x25875, 0x78ED},
+ {0x25876, 0x78DF},
+ {0x25877, 0x78E0},
+ {0x25878, 0x79A4},
+ {0x25879, 0x7A44},
+ {0x2587A, 0x7A48},
+ {0x2587B, 0x7A47},
+ {0x2587C, 0x7AB6},
+ {0x2587D, 0x7AB8},
+ {0x2587E, 0x7AB5},
+ {0x25921, 0x7AB1},
+ {0x25922, 0x7AB7},
+ {0x25923, 0x7BDE},
+ {0x25924, 0x7BE3},
+ {0x25925, 0x7BE7},
+ {0x25926, 0x7BDD},
+ {0x25927, 0x7BD5},
+ {0x25928, 0x7BE5},
+ {0x25929, 0x7BDA},
+ {0x2592A, 0x7BE8},
+ {0x2592B, 0x7BF9},
+ {0x2592C, 0x7BD4},
+ {0x2592D, 0x7BEA},
+ {0x2592E, 0x7BE2},
+ {0x2592F, 0x7BDC},
+ {0x25930, 0x7BEB},
+ {0x25931, 0x7BD8},
+ {0x25932, 0x7BDF},
+ {0x25933, 0x7CD2},
+ {0x25934, 0x7CD4},
+ {0x25935, 0x7CD7},
+ {0x25936, 0x7CD0},
+ {0x25937, 0x7CD1},
+ {0x25938, 0x7E12},
+ {0x25939, 0x7E21},
+ {0x2593A, 0x7E17},
+ {0x2593B, 0x7E0C},
+ {0x2593C, 0x7E1F},
+ {0x2593D, 0x7E20},
+ {0x2593E, 0x7E13},
+ {0x2593F, 0x7E0E},
+ {0x25940, 0x7E1C},
+ {0x25941, 0x7E15},
+ {0x25942, 0x7E1A},
+ {0x25943, 0x7E22},
+ {0x25944, 0x7E0B},
+ {0x25945, 0x7E0F},
+ {0x25946, 0x7E16},
+ {0x25947, 0x7E0D},
+ {0x25948, 0x7E14},
+ {0x25949, 0x7E25},
+ {0x2594A, 0x7E24},
+ {0x2594B, 0x7F43},
+ {0x2594C, 0x7F7B},
+ {0x2594D, 0x7F7C},
+ {0x2594E, 0x7F7A},
+ {0x2594F, 0x7FB1},
+ {0x25950, 0x7FEF},
+ {0x25951, 0x802A},
+ {0x25952, 0x8029},
+ {0x25953, 0x806C},
+ {0x25954, 0x81B1},
+ {0x25955, 0x81A6},
+ {0x25956, 0x81AE},
+ {0x25957, 0x81B9},
+ {0x25958, 0x81B5},
+ {0x25959, 0x81AB},
+ {0x2595A, 0x81B0},
+ {0x2595B, 0x81AC},
+ {0x2595C, 0x81B4},
+ {0x2595D, 0x81B2},
+ {0x2595E, 0x81B7},
+ {0x2595F, 0x81A7},
+ {0x25960, 0x81F2},
+ {0x25961, 0x8255},
+ {0x25962, 0x8256},
+ {0x25963, 0x8257},
+ {0x25964, 0x8556},
+ {0x25965, 0x8545},
+ {0x25966, 0x856B},
+ {0x25967, 0x854D},
+ {0x25968, 0x8553},
+ {0x25969, 0x8561},
+ {0x2596A, 0x8558},
+ {0x2596B, 0x8540},
+ {0x2596C, 0x8546},
+ {0x2596D, 0x8564},
+ {0x2596E, 0x8541},
+ {0x2596F, 0x8562},
+ {0x25970, 0x8544},
+ {0x25971, 0x8551},
+ {0x25972, 0x8547},
+ {0x25973, 0x8563},
+ {0x25974, 0x853E},
+ {0x25975, 0x855B},
+ {0x25976, 0x8571},
+ {0x25977, 0x854E},
+ {0x25978, 0x856E},
+ {0x25979, 0x8575},
+ {0x2597A, 0x8555},
+ {0x2597B, 0x8567},
+ {0x2597C, 0x8560},
+ {0x2597D, 0x858C},
+ {0x2597E, 0x8566},
+ {0x25A21, 0x855D},
+ {0x25A22, 0x8554},
+ {0x25A23, 0x8565},
+ {0x25A24, 0x856C},
+ {0x25A25, 0x8663},
+ {0x25A26, 0x8665},
+ {0x25A27, 0x8664},
+ {0x25A28, 0x87A4},
+ {0x25A29, 0x879B},
+ {0x25A2A, 0x878F},
+ {0x25A2B, 0x8797},
+ {0x25A2C, 0x8793},
+ {0x25A2D, 0x8792},
+ {0x25A2E, 0x8788},
+ {0x25A2F, 0x8781},
+ {0x25A30, 0x8796},
+ {0x25A31, 0x8798},
+ {0x25A32, 0x8779},
+ {0x25A33, 0x8787},
+ {0x25A34, 0x87A3},
+ {0x25A35, 0x8785},
+ {0x25A36, 0x8790},
+ {0x25A37, 0x8791},
+ {0x25A38, 0x879D},
+ {0x25A39, 0x8784},
+ {0x25A3A, 0x8794},
+ {0x25A3B, 0x879C},
+ {0x25A3C, 0x879A},
+ {0x25A3D, 0x8789},
+ {0x25A3E, 0x891E},
+ {0x25A3F, 0x8926},
+ {0x25A40, 0x8930},
+ {0x25A41, 0x892D},
+ {0x25A42, 0x892E},
+ {0x25A43, 0x8927},
+ {0x25A44, 0x8931},
+ {0x25A45, 0x8922},
+ {0x25A46, 0x8929},
+ {0x25A47, 0x8923},
+ {0x25A48, 0x892F},
+ {0x25A49, 0x892C},
+ {0x25A4A, 0x891F},
+ {0x25A4B, 0x89F1},
+ {0x25A4C, 0x8AE0},
+ {0x25A4D, 0x8AE2},
+ {0x25A4E, 0x8AF2},
+ {0x25A4F, 0x8AF4},
+ {0x25A50, 0x8AF5},
+ {0x25A51, 0x8ADD},
+ {0x25A52, 0x8B14},
+ {0x25A53, 0x8AE4},
+ {0x25A54, 0x8ADF},
+ {0x25A55, 0x8AF0},
+ {0x25A56, 0x8AC8},
+ {0x25A57, 0x8ADE},
+ {0x25A58, 0x8AE1},
+ {0x25A59, 0x8AE8},
+ {0x25A5A, 0x8AFF},
+ {0x25A5B, 0x8AEF},
+ {0x25A5C, 0x8AFB},
+ {0x25A5D, 0x8C91},
+ {0x25A5E, 0x8C92},
+ {0x25A5F, 0x8C90},
+ {0x25A60, 0x8CF5},
+ {0x25A61, 0x8CEE},
+ {0x25A62, 0x8CF1},
+ {0x25A63, 0x8CF0},
+ {0x25A64, 0x8CF3},
+ {0x25A65, 0x8D6C},
+ {0x25A66, 0x8D6E},
+ {0x25A67, 0x8DA5},
+ {0x25A68, 0x8DA7},
+ {0x25A69, 0x8E33},
+ {0x25A6A, 0x8E3E},
+ {0x25A6B, 0x8E38},
+ {0x25A6C, 0x8E40},
+ {0x25A6D, 0x8E45},
+ {0x25A6E, 0x8E36},
+ {0x25A6F, 0x8E3C},
+ {0x25A70, 0x8E3D},
+ {0x25A71, 0x8E41},
+ {0x25A72, 0x8E30},
+ {0x25A73, 0x8E3F},
+ {0x25A74, 0x8EBD},
+ {0x25A75, 0x8F36},
+ {0x25A76, 0x8F2E},
+ {0x25A77, 0x8F35},
+ {0x25A78, 0x8F32},
+ {0x25A79, 0x8F39},
+ {0x25A7A, 0x8F37},
+ {0x25A7B, 0x8F34},
+ {0x25A7C, 0x9076},
+ {0x25A7D, 0x9079},
+ {0x25A7E, 0x907B},
+ {0x25B21, 0x9086},
+ {0x25B22, 0x90FA},
+ {0x25B23, 0x9133},
+ {0x25B24, 0x9135},
+ {0x25B25, 0x9136},
+ {0x25B26, 0x9193},
+ {0x25B27, 0x9190},
+ {0x25B28, 0x9191},
+ {0x25B29, 0x918D},
+ {0x25B2A, 0x918F},
+ {0x25B2B, 0x9327},
+ {0x25B2C, 0x931E},
+ {0x25B2D, 0x9308},
+ {0x25B2E, 0x931F},
+ {0x25B2F, 0x9306},
+ {0x25B30, 0x930F},
+ {0x25B31, 0x937A},
+ {0x25B32, 0x9338},
+ {0x25B33, 0x933C},
+ {0x25B34, 0x931B},
+ {0x25B35, 0x9323},
+ {0x25B36, 0x9312},
+ {0x25B37, 0x9301},
+ {0x25B38, 0x9346},
+ {0x25B39, 0x932D},
+ {0x25B3A, 0x930E},
+ {0x25B3B, 0x930D},
+ {0x25B3C, 0x92CB},
+ {0x25B3D, 0x931D},
+ {0x25B3E, 0x92FA},
+ {0x25B3F, 0x9313},
+ {0x25B40, 0x92F9},
+ {0x25B41, 0x92F7},
+ {0x25B42, 0x9334},
+ {0x25B43, 0x9302},
+ {0x25B44, 0x9324},
+ {0x25B45, 0x92FF},
+ {0x25B46, 0x9329},
+ {0x25B47, 0x9339},
+ {0x25B48, 0x9335},
+ {0x25B49, 0x932A},
+ {0x25B4A, 0x9314},
+ {0x25B4B, 0x930C},
+ {0x25B4C, 0x930B},
+ {0x25B4D, 0x92FE},
+ {0x25B4E, 0x9309},
+ {0x25B4F, 0x9300},
+ {0x25B50, 0x92FB},
+ {0x25B51, 0x9316},
+ {0x25B52, 0x95BC},
+ {0x25B53, 0x95CD},
+ {0x25B54, 0x95BE},
+ {0x25B55, 0x95B9},
+ {0x25B56, 0x95BA},
+ {0x25B57, 0x95B6},
+ {0x25B58, 0x95BF},
+ {0x25B59, 0x95B5},
+ {0x25B5A, 0x95BD},
+ {0x25B5B, 0x96A9},
+ {0x25B5C, 0x96D4},
+ {0x25B5D, 0x970B},
+ {0x25B5E, 0x9712},
+ {0x25B5F, 0x9710},
+ {0x25B60, 0x9799},
+ {0x25B61, 0x9797},
+ {0x25B62, 0x9794},
+ {0x25B63, 0x97F0},
+ {0x25B64, 0x97F8},
+ {0x25B65, 0x9835},
+ {0x25B66, 0x982F},
+ {0x25B67, 0x9832},
+ {0x25B68, 0x9924},
+ {0x25B69, 0x991F},
+ {0x25B6A, 0x9927},
+ {0x25B6B, 0x9929},
+ {0x25B6C, 0x999E},
+ {0x25B6D, 0x99EE},
+ {0x25B6E, 0x99EC},
+ {0x25B6F, 0x99E5},
+ {0x25B70, 0x99E4},
+ {0x25B71, 0x99F0},
+ {0x25B72, 0x99E3},
+ {0x25B73, 0x99EA},
+ {0x25B74, 0x99E9},
+ {0x25B75, 0x99E7},
+ {0x25B76, 0x9AB9},
+ {0x25B77, 0x9ABF},
+ {0x25B78, 0x9AB4},
+ {0x25B79, 0x9ABB},
+ {0x25B7A, 0x9AF6},
+ {0x25B7B, 0x9AFA},
+ {0x25B7C, 0x9AF9},
+ {0x25B7D, 0x9AF7},
+ {0x25B7E, 0x9B33},
+ {0x25C21, 0x9B80},
+ {0x25C22, 0x9B85},
+ {0x25C23, 0x9B87},
+ {0x25C24, 0x9B7C},
+ {0x25C25, 0x9B7E},
+ {0x25C26, 0x9B7B},
+ {0x25C27, 0x9B82},
+ {0x25C28, 0x9B93},
+ {0x25C29, 0x9B92},
+ {0x25C2A, 0x9B90},
+ {0x25C2B, 0x9B7A},
+ {0x25C2C, 0x9B95},
+ {0x25C2D, 0x9B7D},
+ {0x25C2E, 0x9B88},
+ {0x25C2F, 0x9D25},
+ {0x25C30, 0x9D17},
+ {0x25C31, 0x9D20},
+ {0x25C32, 0x9D1E},
+ {0x25C33, 0x9D14},
+ {0x25C34, 0x9D29},
+ {0x25C35, 0x9D1D},
+ {0x25C36, 0x9D18},
+ {0x25C37, 0x9D22},
+ {0x25C38, 0x9D10},
+ {0x25C39, 0x9D19},
+ {0x25C3A, 0x9D1F},
+ {0x25C3B, 0x9E88},
+ {0x25C3C, 0x9E86},
+ {0x25C3D, 0x9E87},
+ {0x25C3E, 0x9EAE},
+ {0x25C3F, 0x9EAD},
+ {0x25C40, 0x9ED5},
+ {0x25C41, 0x9ED6},
+ {0x25C42, 0x9EFA},
+ {0x25C43, 0x9F12},
+ {0x25C44, 0x9F3D},
+ {0x25C45, 0x5126},
+ {0x25C46, 0x5125},
+ {0x25C47, 0x5122},
+ {0x25C48, 0x5124},
+ {0x25C49, 0x5120},
+ {0x25C4A, 0x5129},
+ {0x25C4B, 0x52F4},
+ {0x25C4C, 0x5693},
+ {0x25C4D, 0x568C},
+ {0x25C4E, 0x568D},
+ {0x25C4F, 0x5686},
+ {0x25C50, 0x5684},
+ {0x25C51, 0x5683},
+ {0x25C52, 0x567E},
+ {0x25C53, 0x5682},
+ {0x25C54, 0x567F},
+ {0x25C55, 0x5681},
+ {0x25C56, 0x58D6},
+ {0x25C57, 0x58D4},
+ {0x25C58, 0x58CF},
+ {0x25C59, 0x58D2},
+ {0x25C5A, 0x5B2D},
+ {0x25C5B, 0x5B25},
+ {0x25C5C, 0x5B32},
+ {0x25C5D, 0x5B23},
+ {0x25C5E, 0x5B2C},
+ {0x25C5F, 0x5B27},
+ {0x25C60, 0x5B26},
+ {0x25C61, 0x5B2F},
+ {0x25C62, 0x5B2E},
+ {0x25C63, 0x5B7B},
+ {0x25C64, 0x5BF1},
+ {0x25C65, 0x5BF2},
+ {0x25C66, 0x5DB7},
+ {0x25C67, 0x5E6C},
+ {0x25C68, 0x5E6A},
+ {0x25C69, 0x5FBE},
+ {0x25C6A, 0x61C3},
+ {0x25C6B, 0x61B5},
+ {0x25C6C, 0x61BC},
+ {0x25C6D, 0x61E7},
+ {0x25C6E, 0x61E0},
+ {0x25C6F, 0x61E5},
+ {0x25C70, 0x61E4},
+ {0x25C71, 0x61E8},
+ {0x25C72, 0x61DE},
+ {0x25C73, 0x64EF},
+ {0x25C74, 0x64E9},
+ {0x25C75, 0x64E3},
+ {0x25C76, 0x64EB},
+ {0x25C77, 0x64E4},
+ {0x25C78, 0x64E8},
+ {0x25C79, 0x6581},
+ {0x25C7A, 0x6580},
+ {0x25C7B, 0x65B6},
+ {0x25C7C, 0x65DA},
+ {0x25C7D, 0x66D2},
+ {0x25C7E, 0x6A8D},
+ {0x25D21, 0x6A96},
+ {0x25D22, 0x6A81},
+ {0x25D23, 0x6AA5},
+ {0x25D24, 0x6A89},
+ {0x25D25, 0x6A9F},
+ {0x25D26, 0x6A9B},
+ {0x25D27, 0x6AA1},
+ {0x25D28, 0x6A9E},
+ {0x25D29, 0x6A87},
+ {0x25D2A, 0x6A93},
+ {0x25D2B, 0x6A8E},
+ {0x25D2C, 0x6A95},
+ {0x25D2D, 0x6A83},
+ {0x25D2E, 0x6AA8},
+ {0x25D2F, 0x6AA4},
+ {0x25D30, 0x6A91},
+ {0x25D31, 0x6A7F},
+ {0x25D32, 0x6AA6},
+ {0x25D33, 0x6A9A},
+ {0x25D34, 0x6A85},
+ {0x25D35, 0x6A8C},
+ {0x25D36, 0x6A92},
+ {0x25D37, 0x6B5B},
+ {0x25D38, 0x6BAD},
+ {0x25D39, 0x6C09},
+ {0x25D3A, 0x6FCC},
+ {0x25D3B, 0x6FA9},
+ {0x25D3C, 0x6FF4},
+ {0x25D3D, 0x6FD4},
+ {0x25D3E, 0x6FE3},
+ {0x25D3F, 0x6FDC},
+ {0x25D40, 0x6FED},
+ {0x25D41, 0x6FE7},
+ {0x25D42, 0x6FE6},
+ {0x25D43, 0x6FDE},
+ {0x25D44, 0x6FF2},
+ {0x25D45, 0x6FDD},
+ {0x25D46, 0x6FE2},
+ {0x25D47, 0x6FE8},
+ {0x25D48, 0x71E1},
+ {0x25D49, 0x71F1},
+ {0x25D4A, 0x71E8},
+ {0x25D4B, 0x71F2},
+ {0x25D4C, 0x71E4},
+ {0x25D4D, 0x71F0},
+ {0x25D4E, 0x71E2},
+ {0x25D4F, 0x7373},
+ {0x25D50, 0x736E},
+ {0x25D51, 0x736F},
+ {0x25D52, 0x7497},
+ {0x25D53, 0x74B2},
+ {0x25D54, 0x74AB},
+ {0x25D55, 0x7490},
+ {0x25D56, 0x74AA},
+ {0x25D57, 0x74AD},
+ {0x25D58, 0x74B1},
+ {0x25D59, 0x74A5},
+ {0x25D5A, 0x74AF},
+ {0x25D5B, 0x7510},
+ {0x25D5C, 0x7511},
+ {0x25D5D, 0x7512},
+ {0x25D5E, 0x750F},
+ {0x25D5F, 0x7584},
+ {0x25D60, 0x7643},
+ {0x25D61, 0x7648},
+ {0x25D62, 0x7649},
+ {0x25D63, 0x7647},
+ {0x25D64, 0x76A4},
+ {0x25D65, 0x76E9},
+ {0x25D66, 0x77B5},
+ {0x25D67, 0x77AB},
+ {0x25D68, 0x77B2},
+ {0x25D69, 0x77B7},
+ {0x25D6A, 0x77B6},
+ {0x25D6B, 0x77B4},
+ {0x25D6C, 0x77B1},
+ {0x25D6D, 0x77A8},
+ {0x25D6E, 0x77F0},
+ {0x25D6F, 0x78F3},
+ {0x25D70, 0x78FD},
+ {0x25D71, 0x7902},
+ {0x25D72, 0x78FB},
+ {0x25D73, 0x78FC},
+ {0x25D74, 0x78FF},
+ {0x25D75, 0x78F2},
+ {0x25D76, 0x7905},
+ {0x25D77, 0x78F9},
+ {0x25D78, 0x78FE},
+ {0x25D79, 0x7904},
+ {0x25D7A, 0x79AB},
+ {0x25D7B, 0x79A8},
+ {0x25D7C, 0x7A5C},
+ {0x25D7D, 0x7A5B},
+ {0x25D7E, 0x7A56},
+ {0x25E21, 0x7A58},
+ {0x25E22, 0x7A54},
+ {0x25E23, 0x7A5A},
+ {0x25E24, 0x7ABE},
+ {0x25E25, 0x7AC0},
+ {0x25E26, 0x7AC1},
+ {0x25E27, 0x7C05},
+ {0x25E28, 0x7C0F},
+ {0x25E29, 0x7BF2},
+ {0x25E2A, 0x7C00},
+ {0x25E2B, 0x7BFF},
+ {0x25E2C, 0x7BFB},
+ {0x25E2D, 0x7C0E},
+ {0x25E2E, 0x7BF4},
+ {0x25E2F, 0x7C0B},
+ {0x25E30, 0x7BF3},
+ {0x25E31, 0x7C02},
+ {0x25E32, 0x7C09},
+ {0x25E33, 0x7C03},
+ {0x25E34, 0x7C01},
+ {0x25E35, 0x7BF8},
+ {0x25E36, 0x7BFD},
+ {0x25E37, 0x7C06},
+ {0x25E38, 0x7BF0},
+ {0x25E39, 0x7BF1},
+ {0x25E3A, 0x7C10},
+ {0x25E3B, 0x7C0A},
+ {0x25E3C, 0x7CE8},
+ {0x25E3D, 0x7E2D},
+ {0x25E3E, 0x7E3C},
+ {0x25E3F, 0x7E42},
+ {0x25E40, 0x7E33},
+ {0x25E41, 0x9848},
+ {0x25E42, 0x7E38},
+ {0x25E43, 0x7E2A},
+ {0x25E44, 0x7E49},
+ {0x25E45, 0x7E40},
+ {0x25E46, 0x7E47},
+ {0x25E47, 0x7E29},
+ {0x25E48, 0x7E4C},
+ {0x25E49, 0x7E30},
+ {0x25E4A, 0x7E3B},
+ {0x25E4B, 0x7E36},
+ {0x25E4C, 0x7E44},
+ {0x25E4D, 0x7E3A},
+ {0x25E4E, 0x7F45},
+ {0x25E4F, 0x7F7F},
+ {0x25E50, 0x7F7E},
+ {0x25E51, 0x7F7D},
+ {0x25E52, 0x7FF4},
+ {0x25E53, 0x7FF2},
+ {0x25E54, 0x802C},
+ {0x25E55, 0x81BB},
+ {0x25E56, 0x81C4},
+ {0x25E57, 0x81CC},
+ {0x25E58, 0x81CA},
+ {0x25E59, 0x81C5},
+ {0x25E5A, 0x81C7},
+ {0x25E5B, 0x81BC},
+ {0x25E5C, 0x81E9},
+ {0x25E5D, 0x825B},
+ {0x25E5E, 0x825A},
+ {0x25E5F, 0x825C},
+ {0x25E60, 0x8583},
+ {0x25E61, 0x8580},
+ {0x25E62, 0x858F},
+ {0x25E63, 0x85A7},
+ {0x25E64, 0x8595},
+ {0x25E65, 0x85A0},
+ {0x25E66, 0x858B},
+ {0x25E67, 0x85A3},
+ {0x25E68, 0x857B},
+ {0x25E69, 0x85A4},
+ {0x25E6A, 0x859A},
+ {0x25E6B, 0x859E},
+ {0x25E6C, 0x8577},
+ {0x25E6D, 0x857C},
+ {0x25E6E, 0x8589},
+ {0x25E6F, 0x85A1},
+ {0x25E70, 0x857A},
+ {0x25E71, 0x8578},
+ {0x25E72, 0x8557},
+ {0x25E73, 0x858E},
+ {0x25E74, 0x8596},
+ {0x25E75, 0x8586},
+ {0x25E76, 0x858D},
+ {0x25E77, 0x8599},
+ {0x25E78, 0x859D},
+ {0x25E79, 0x8581},
+ {0x25E7A, 0x85A2},
+ {0x25E7B, 0x8582},
+ {0x25E7C, 0x8588},
+ {0x25E7D, 0x8585},
+ {0x25E7E, 0x8579},
+ {0x25F21, 0x8576},
+ {0x25F22, 0x8598},
+ {0x25F23, 0x8590},
+ {0x25F24, 0x859F},
+ {0x25F25, 0x8668},
+ {0x25F26, 0x87BE},
+ {0x25F27, 0x87AA},
+ {0x25F28, 0x87AD},
+ {0x25F29, 0x87C5},
+ {0x25F2A, 0x87B0},
+ {0x25F2B, 0x87AC},
+ {0x25F2C, 0x87B9},
+ {0x25F2D, 0x87B5},
+ {0x25F2E, 0x87BC},
+ {0x25F2F, 0x87AE},
+ {0x25F30, 0x87C9},
+ {0x25F31, 0x87C3},
+ {0x25F32, 0x87C2},
+ {0x25F33, 0x87CC},
+ {0x25F34, 0x87B7},
+ {0x25F35, 0x87AF},
+ {0x25F36, 0x87C4},
+ {0x25F37, 0x87CA},
+ {0x25F38, 0x87B4},
+ {0x25F39, 0x87B6},
+ {0x25F3A, 0x87BF},
+ {0x25F3B, 0x87B8},
+ {0x25F3C, 0x87BD},
+ {0x25F3D, 0x87DE},
+ {0x25F3E, 0x87B2},
+ {0x25F3F, 0x8935},
+ {0x25F40, 0x8933},
+ {0x25F41, 0x893C},
+ {0x25F42, 0x893E},
+ {0x25F43, 0x8941},
+ {0x25F44, 0x8952},
+ {0x25F45, 0x8937},
+ {0x25F46, 0x8942},
+ {0x25F47, 0x89AD},
+ {0x25F48, 0x89AF},
+ {0x25F49, 0x89AE},
+ {0x25F4A, 0x89F2},
+ {0x25F4B, 0x89F3},
+ {0x25F4C, 0x8B1E},
+ {0x25F4D, 0x8B18},
+ {0x25F4E, 0x8B16},
+ {0x25F4F, 0x8B11},
+ {0x25F50, 0x8B05},
+ {0x25F51, 0x8B0B},
+ {0x25F52, 0x8B22},
+ {0x25F53, 0x8B0F},
+ {0x25F54, 0x8B12},
+ {0x25F55, 0x8B15},
+ {0x25F56, 0x8B07},
+ {0x25F57, 0x8B0D},
+ {0x25F58, 0x8B08},
+ {0x25F59, 0x8B06},
+ {0x25F5A, 0x8B1C},
+ {0x25F5B, 0x8B13},
+ {0x25F5C, 0x8B1A},
+ {0x25F5D, 0x8C4F},
+ {0x25F5E, 0x8C70},
+ {0x25F5F, 0x8C72},
+ {0x25F60, 0x8C71},
+ {0x25F61, 0x8C6F},
+ {0x25F62, 0x8C95},
+ {0x25F63, 0x8C94},
+ {0x25F64, 0x8CF9},
+ {0x25F65, 0x8D6F},
+ {0x25F66, 0x8E4E},
+ {0x25F67, 0x8E4D},
+ {0x25F68, 0x8E53},
+ {0x25F69, 0x8E50},
+ {0x25F6A, 0x8E4C},
+ {0x25F6B, 0x8E47},
+ {0x25F6C, 0x8F43},
+ {0x25F6D, 0x8F40},
+ {0x25F6E, 0x9085},
+ {0x25F6F, 0x907E},
+ {0x25F70, 0x9138},
+ {0x25F71, 0x919A},
+ {0x25F72, 0x91A2},
+ {0x25F73, 0x919B},
+ {0x25F74, 0x9199},
+ {0x25F75, 0x919F},
+ {0x25F76, 0x91A1},
+ {0x25F77, 0x919D},
+ {0x25F78, 0x91A0},
+ {0x25F79, 0x93A1},
+ {0x25F7A, 0x9383},
+ {0x25F7B, 0x93AF},
+ {0x25F7C, 0x9364},
+ {0x25F7D, 0x9356},
+ {0x25F7E, 0x9347},
+ {0x26021, 0x937C},
+ {0x26022, 0x9358},
+ {0x26023, 0x935C},
+ {0x26024, 0x9376},
+ {0x26025, 0x9349},
+ {0x26026, 0x9350},
+ {0x26027, 0x9351},
+ {0x26028, 0x9360},
+ {0x26029, 0x936D},
+ {0x2602A, 0x938F},
+ {0x2602B, 0x934C},
+ {0x2602C, 0x936A},
+ {0x2602D, 0x9379},
+ {0x2602E, 0x9357},
+ {0x2602F, 0x9355},
+ {0x26030, 0x9352},
+ {0x26031, 0x934F},
+ {0x26032, 0x9371},
+ {0x26033, 0x9377},
+ {0x26034, 0x937B},
+ {0x26035, 0x9361},
+ {0x26036, 0x935E},
+ {0x26037, 0x9363},
+ {0x26038, 0x9367},
+ {0x26039, 0x934E},
+ {0x2603A, 0x9359},
+ {0x2603B, 0x95C7},
+ {0x2603C, 0x95C0},
+ {0x2603D, 0x95C9},
+ {0x2603E, 0x95C3},
+ {0x2603F, 0x95C5},
+ {0x26040, 0x95B7},
+ {0x26041, 0x96AE},
+ {0x26042, 0x96B0},
+ {0x26043, 0x96AC},
+ {0x26044, 0x9720},
+ {0x26045, 0x971F},
+ {0x26046, 0x9718},
+ {0x26047, 0x971D},
+ {0x26048, 0x9719},
+ {0x26049, 0x979A},
+ {0x2604A, 0x97A1},
+ {0x2604B, 0x979C},
+ {0x2604C, 0x979E},
+ {0x2604D, 0x979D},
+ {0x2604E, 0x97D5},
+ {0x2604F, 0x97D4},
+ {0x26050, 0x97F1},
+ {0x26051, 0x9841},
+ {0x26052, 0x9844},
+ {0x26053, 0x984A},
+ {0x26054, 0x9849},
+ {0x26055, 0x9845},
+ {0x26056, 0x9843},
+ {0x26057, 0x9925},
+ {0x26058, 0x992B},
+ {0x26059, 0x992C},
+ {0x2605A, 0x992A},
+ {0x2605B, 0x9933},
+ {0x2605C, 0x9932},
+ {0x2605D, 0x992F},
+ {0x2605E, 0x992D},
+ {0x2605F, 0x9931},
+ {0x26060, 0x9930},
+ {0x26061, 0x9998},
+ {0x26062, 0x99A3},
+ {0x26063, 0x99A1},
+ {0x26064, 0x9A02},
+ {0x26065, 0x99FA},
+ {0x26066, 0x99F4},
+ {0x26067, 0x99F7},
+ {0x26068, 0x99F9},
+ {0x26069, 0x99F8},
+ {0x2606A, 0x99F6},
+ {0x2606B, 0x99FB},
+ {0x2606C, 0x99FD},
+ {0x2606D, 0x99FE},
+ {0x2606E, 0x99FC},
+ {0x2606F, 0x9A03},
+ {0x26070, 0x9ABE},
+ {0x26071, 0x9AFE},
+ {0x26072, 0x9AFD},
+ {0x26073, 0x9B01},
+ {0x26074, 0x9AFC},
+ {0x26075, 0x9B48},
+ {0x26076, 0x9B9A},
+ {0x26077, 0x9BA8},
+ {0x26078, 0x9B9E},
+ {0x26079, 0x9B9B},
+ {0x2607A, 0x9BA6},
+ {0x2607B, 0x9BA1},
+ {0x2607C, 0x9BA5},
+ {0x2607D, 0x9BA4},
+ {0x2607E, 0x9B86},
+ {0x26121, 0x9BA2},
+ {0x26122, 0x9BA0},
+ {0x26123, 0x9BAF},
+ {0x26124, 0x9D33},
+ {0x26125, 0x9D41},
+ {0x26126, 0x9D67},
+ {0x26127, 0x9D36},
+ {0x26128, 0x9D2E},
+ {0x26129, 0x9D2F},
+ {0x2612A, 0x9D31},
+ {0x2612B, 0x9D38},
+ {0x2612C, 0x9D30},
+ {0x2612D, 0x9D45},
+ {0x2612E, 0x9D42},
+ {0x2612F, 0x9D43},
+ {0x26130, 0x9D3E},
+ {0x26131, 0x9D37},
+ {0x26132, 0x9D40},
+ {0x26133, 0x9D3D},
+ {0x26134, 0x7FF5},
+ {0x26135, 0x9D2D},
+ {0x26136, 0x9E8A},
+ {0x26137, 0x9E89},
+ {0x26138, 0x9E8D},
+ {0x26139, 0x9EB0},
+ {0x2613A, 0x9EC8},
+ {0x2613B, 0x9EDA},
+ {0x2613C, 0x9EFB},
+ {0x2613D, 0x9EFF},
+ {0x2613E, 0x9F24},
+ {0x2613F, 0x9F23},
+ {0x26140, 0x9F22},
+ {0x26141, 0x9F54},
+ {0x26142, 0x9FA0},
+ {0x26143, 0x5131},
+ {0x26144, 0x512D},
+ {0x26145, 0x512E},
+ {0x26146, 0x5698},
+ {0x26147, 0x569C},
+ {0x26148, 0x5697},
+ {0x26149, 0x569A},
+ {0x2614A, 0x569D},
+ {0x2614B, 0x5699},
+ {0x2614C, 0x5970},
+ {0x2614D, 0x5B3C},
+ {0x2614E, 0x5C69},
+ {0x2614F, 0x5C6A},
+ {0x26150, 0x5DC0},
+ {0x26151, 0x5E6D},
+ {0x26152, 0x5E6E},
+ {0x26153, 0x61D8},
+ {0x26154, 0x61DF},
+ {0x26155, 0x61ED},
+ {0x26156, 0x61EE},
+ {0x26157, 0x61F1},
+ {0x26158, 0x61EA},
+ {0x26159, 0x61F0},
+ {0x2615A, 0x61EB},
+ {0x2615B, 0x61D6},
+ {0x2615C, 0x61E9},
+ {0x2615D, 0x64FF},
+ {0x2615E, 0x6504},
+ {0x2615F, 0x64FD},
+ {0x26160, 0x64F8},
+ {0x26161, 0x6501},
+ {0x26162, 0x6503},
+ {0x26163, 0x64FC},
+ {0x26164, 0x6594},
+ {0x26165, 0x65DB},
+ {0x26166, 0x66DA},
+ {0x26167, 0x66DB},
+ {0x26168, 0x66D8},
+ {0x26169, 0x6AC5},
+ {0x2616A, 0x6AB9},
+ {0x2616B, 0x6ABD},
+ {0x2616C, 0x6AE1},
+ {0x2616D, 0x6AC6},
+ {0x2616E, 0x6ABA},
+ {0x2616F, 0x6AB6},
+ {0x26170, 0x6AB7},
+ {0x26171, 0x6AC7},
+ {0x26172, 0x6AB4},
+ {0x26173, 0x6AAD},
+ {0x26174, 0x6B5E},
+ {0x26175, 0x6BC9},
+ {0x26176, 0x6C0B},
+ {0x26177, 0x7007},
+ {0x26178, 0x700C},
+ {0x26179, 0x700D},
+ {0x2617A, 0x7001},
+ {0x2617B, 0x7005},
+ {0x2617C, 0x7014},
+ {0x2617D, 0x700E},
+ {0x2617E, 0x6FFF},
+ {0x26221, 0x7000},
+ {0x26222, 0x6FFB},
+ {0x26223, 0x7026},
+ {0x26224, 0x6FFC},
+ {0x26225, 0x6FF7},
+ {0x26226, 0x700A},
+ {0x26227, 0x7201},
+ {0x26228, 0x71FF},
+ {0x26229, 0x71F9},
+ {0x2622A, 0x7203},
+ {0x2622B, 0x71FD},
+ {0x2622C, 0x7376},
+ {0x2622D, 0x74B8},
+ {0x2622E, 0x74C0},
+ {0x2622F, 0x74B5},
+ {0x26230, 0x74C1},
+ {0x26231, 0x74BE},
+ {0x26232, 0x74B6},
+ {0x26233, 0x74BB},
+ {0x26234, 0x74C2},
+ {0x26235, 0x7514},
+ {0x26236, 0x7513},
+ {0x26237, 0x765C},
+ {0x26238, 0x7664},
+ {0x26239, 0x7659},
+ {0x2623A, 0x7650},
+ {0x2623B, 0x7653},
+ {0x2623C, 0x7657},
+ {0x2623D, 0x765A},
+ {0x2623E, 0x76A6},
+ {0x2623F, 0x76BD},
+ {0x26240, 0x76EC},
+ {0x26241, 0x77C2},
+ {0x26242, 0x77BA},
+ {0x26243, 0x790C},
+ {0x26244, 0x7913},
+ {0x26245, 0x7914},
+ {0x26246, 0x7909},
+ {0x26247, 0x7910},
+ {0x26248, 0x7912},
+ {0x26249, 0x7911},
+ {0x2624A, 0x79AD},
+ {0x2624B, 0x79AC},
+ {0x2624C, 0x7A5F},
+ {0x2624D, 0x7C1C},
+ {0x2624E, 0x7C29},
+ {0x2624F, 0x7C19},
+ {0x26250, 0x7C20},
+ {0x26251, 0x7C1F},
+ {0x26252, 0x7C2D},
+ {0x26253, 0x7C1D},
+ {0x26254, 0x7C26},
+ {0x26255, 0x7C28},
+ {0x26256, 0x7C22},
+ {0x26257, 0x7C25},
+ {0x26258, 0x7C30},
+ {0x26259, 0x7E5C},
+ {0x2625A, 0x7E50},
+ {0x2625B, 0x7E56},
+ {0x2625C, 0x7E63},
+ {0x2625D, 0x7E58},
+ {0x2625E, 0x7E62},
+ {0x2625F, 0x7E5F},
+ {0x26260, 0x7E51},
+ {0x26261, 0x7E60},
+ {0x26262, 0x7E57},
+ {0x26263, 0x7E53},
+ {0x26264, 0x7FB5},
+ {0x26265, 0x7FB3},
+ {0x26266, 0x7FF7},
+ {0x26267, 0x7FF8},
+ {0x26268, 0x8075},
+ {0x26269, 0x81D1},
+ {0x2626A, 0x81D2},
+ {0x2626B, 0x81D0},
+ {0x2626C, 0x825F},
+ {0x2626D, 0x825E},
+ {0x2626E, 0x85B4},
+ {0x2626F, 0x85C6},
+ {0x26270, 0x85C0},
+ {0x26271, 0x85C3},
+ {0x26272, 0x85C2},
+ {0x26273, 0x85B3},
+ {0x26274, 0x85B5},
+ {0x26275, 0x85BD},
+ {0x26276, 0x85C7},
+ {0x26277, 0x85C4},
+ {0x26278, 0x85BF},
+ {0x26279, 0x85CB},
+ {0x2627A, 0x85CE},
+ {0x2627B, 0x85C8},
+ {0x2627C, 0x85C5},
+ {0x2627D, 0x85B1},
+ {0x2627E, 0x85B6},
+ {0x26321, 0x85D2},
+ {0x26322, 0x8624},
+ {0x26323, 0x85B8},
+ {0x26324, 0x85B7},
+ {0x26325, 0x85BE},
+ {0x26326, 0x8669},
+ {0x26327, 0x87E7},
+ {0x26328, 0x87E6},
+ {0x26329, 0x87E2},
+ {0x2632A, 0x87DB},
+ {0x2632B, 0x87EB},
+ {0x2632C, 0x87EA},
+ {0x2632D, 0x87E5},
+ {0x2632E, 0x87DF},
+ {0x2632F, 0x87F3},
+ {0x26330, 0x87E4},
+ {0x26331, 0x87D4},
+ {0x26332, 0x87DC},
+ {0x26333, 0x87D3},
+ {0x26334, 0x87ED},
+ {0x26335, 0x87D8},
+ {0x26336, 0x87E3},
+ {0x26337, 0x87D7},
+ {0x26338, 0x87D9},
+ {0x26339, 0x8801},
+ {0x2633A, 0x87F4},
+ {0x2633B, 0x87E8},
+ {0x2633C, 0x87DD},
+ {0x2633D, 0x8953},
+ {0x2633E, 0x894B},
+ {0x2633F, 0x894F},
+ {0x26340, 0x894C},
+ {0x26341, 0x8946},
+ {0x26342, 0x8950},
+ {0x26343, 0x8951},
+ {0x26344, 0x8949},
+ {0x26345, 0x8B2A},
+ {0x26346, 0x8B27},
+ {0x26347, 0x8B23},
+ {0x26348, 0x8B33},
+ {0x26349, 0x8B30},
+ {0x2634A, 0x8B35},
+ {0x2634B, 0x8B47},
+ {0x2634C, 0x8B2F},
+ {0x2634D, 0x8B3C},
+ {0x2634E, 0x8B3E},
+ {0x2634F, 0x8B31},
+ {0x26350, 0x8B25},
+ {0x26351, 0x8B37},
+ {0x26352, 0x8B26},
+ {0x26353, 0x8B36},
+ {0x26354, 0x8B2E},
+ {0x26355, 0x8B24},
+ {0x26356, 0x8B3B},
+ {0x26357, 0x8B3D},
+ {0x26358, 0x8B3A},
+ {0x26359, 0x8C42},
+ {0x2635A, 0x8C75},
+ {0x2635B, 0x8C99},
+ {0x2635C, 0x8C98},
+ {0x2635D, 0x8C97},
+ {0x2635E, 0x8CFE},
+ {0x2635F, 0x8D04},
+ {0x26360, 0x8D02},
+ {0x26361, 0x8D00},
+ {0x26362, 0x8E5C},
+ {0x26363, 0x8E62},
+ {0x26364, 0x8E60},
+ {0x26365, 0x8E57},
+ {0x26366, 0x8E56},
+ {0x26367, 0x8E5E},
+ {0x26368, 0x8E65},
+ {0x26369, 0x8E67},
+ {0x2636A, 0x8E5B},
+ {0x2636B, 0x8E5A},
+ {0x2636C, 0x8E61},
+ {0x2636D, 0x8E5D},
+ {0x2636E, 0x8E69},
+ {0x2636F, 0x8E54},
+ {0x26370, 0x8F46},
+ {0x26371, 0x8F47},
+ {0x26372, 0x8F48},
+ {0x26373, 0x8F4B},
+ {0x26374, 0x9128},
+ {0x26375, 0x913A},
+ {0x26376, 0x913B},
+ {0x26377, 0x913E},
+ {0x26378, 0x91A8},
+ {0x26379, 0x91A5},
+ {0x2637A, 0x91A7},
+ {0x2637B, 0x91AF},
+ {0x2637C, 0x91AA},
+ {0x2637D, 0x93B5},
+ {0x2637E, 0x938C},
+ {0x26421, 0x9392},
+ {0x26422, 0x93B7},
+ {0x26423, 0x939B},
+ {0x26424, 0x939D},
+ {0x26425, 0x9389},
+ {0x26426, 0x93A7},
+ {0x26427, 0x938E},
+ {0x26428, 0x93AA},
+ {0x26429, 0x939E},
+ {0x2642A, 0x93A6},
+ {0x2642B, 0x9395},
+ {0x2642C, 0x9388},
+ {0x2642D, 0x9399},
+ {0x2642E, 0x939F},
+ {0x2642F, 0x9380},
+ {0x26430, 0x938D},
+ {0x26431, 0x93B1},
+ {0x26432, 0x9391},
+ {0x26433, 0x93B2},
+ {0x26434, 0x93A4},
+ {0x26435, 0x93A8},
+ {0x26436, 0x93B4},
+ {0x26437, 0x93A3},
+ {0x26438, 0x95D2},
+ {0x26439, 0x95D3},
+ {0x2643A, 0x95D1},
+ {0x2643B, 0x96B3},
+ {0x2643C, 0x96D7},
+ {0x2643D, 0x96DA},
+ {0x2643E, 0x5DC2},
+ {0x2643F, 0x96DF},
+ {0x26440, 0x96D8},
+ {0x26441, 0x96DD},
+ {0x26442, 0x9723},
+ {0x26443, 0x9722},
+ {0x26444, 0x9725},
+ {0x26445, 0x97AC},
+ {0x26446, 0x97AE},
+ {0x26447, 0x97A8},
+ {0x26448, 0x97AB},
+ {0x26449, 0x97A4},
+ {0x2644A, 0x97AA},
+ {0x2644B, 0x97A2},
+ {0x2644C, 0x97A5},
+ {0x2644D, 0x97D7},
+ {0x2644E, 0x97D9},
+ {0x2644F, 0x97D6},
+ {0x26450, 0x97D8},
+ {0x26451, 0x97FA},
+ {0x26452, 0x9850},
+ {0x26453, 0x9851},
+ {0x26454, 0x9852},
+ {0x26455, 0x98B8},
+ {0x26456, 0x9941},
+ {0x26457, 0x993C},
+ {0x26458, 0x993A},
+ {0x26459, 0x9A0F},
+ {0x2645A, 0x9A0B},
+ {0x2645B, 0x9A09},
+ {0x2645C, 0x9A0D},
+ {0x2645D, 0x9A04},
+ {0x2645E, 0x9A11},
+ {0x2645F, 0x9A0A},
+ {0x26460, 0x9A05},
+ {0x26461, 0x9A07},
+ {0x26462, 0x9A06},
+ {0x26463, 0x9AC0},
+ {0x26464, 0x9ADC},
+ {0x26465, 0x9B08},
+ {0x26466, 0x9B04},
+ {0x26467, 0x9B05},
+ {0x26468, 0x9B29},
+ {0x26469, 0x9B35},
+ {0x2646A, 0x9B4A},
+ {0x2646B, 0x9B4C},
+ {0x2646C, 0x9B4B},
+ {0x2646D, 0x9BC7},
+ {0x2646E, 0x9BC6},
+ {0x2646F, 0x9BC3},
+ {0x26470, 0x9BBF},
+ {0x26471, 0x9BC1},
+ {0x26472, 0x9BB5},
+ {0x26473, 0x9BB8},
+ {0x26474, 0x9BD3},
+ {0x26475, 0x9BB6},
+ {0x26476, 0x9BC4},
+ {0x26477, 0x9BB9},
+ {0x26478, 0x9BBD},
+ {0x26479, 0x9D5C},
+ {0x2647A, 0x9D53},
+ {0x2647B, 0x9D4F},
+ {0x2647C, 0x9D4A},
+ {0x2647D, 0x9D5B},
+ {0x2647E, 0x9D4B},
+ {0x26521, 0x9D59},
+ {0x26522, 0x9D56},
+ {0x26523, 0x9D4C},
+ {0x26524, 0x9D57},
+ {0x26525, 0x9D52},
+ {0x26526, 0x9D54},
+ {0x26527, 0x9D5F},
+ {0x26528, 0x9D58},
+ {0x26529, 0x9D5A},
+ {0x2652A, 0x9E8E},
+ {0x2652B, 0x9E8C},
+ {0x2652C, 0x9EDF},
+ {0x2652D, 0x9F01},
+ {0x2652E, 0x9F00},
+ {0x2652F, 0x9F16},
+ {0x26530, 0x9F25},
+ {0x26531, 0x9F2B},
+ {0x26532, 0x9F2A},
+ {0x26533, 0x9F29},
+ {0x26534, 0x9F28},
+ {0x26535, 0x9F4C},
+ {0x26536, 0x9F55},
+ {0x26537, 0x5134},
+ {0x26538, 0x5135},
+ {0x26539, 0x5296},
+ {0x2653A, 0x52F7},
+ {0x2653B, 0x53B4},
+ {0x2653C, 0x56AB},
+ {0x2653D, 0x56AD},
+ {0x2653E, 0x56A6},
+ {0x2653F, 0x56A7},
+ {0x26540, 0x56AA},
+ {0x26541, 0x56AC},
+ {0x26542, 0x58DA},
+ {0x26543, 0x58DD},
+ {0x26544, 0x58DB},
+ {0x26545, 0x5912},
+ {0x26546, 0x5B3D},
+ {0x26547, 0x5B3E},
+ {0x26548, 0x5B3F},
+ {0x26549, 0x5DC3},
+ {0x2654A, 0x5E70},
+ {0x2654B, 0x5FBF},
+ {0x2654C, 0x61FB},
+ {0x2654D, 0x6507},
+ {0x2654E, 0x6510},
+ {0x2654F, 0x650D},
+ {0x26550, 0x6509},
+ {0x26551, 0x650C},
+ {0x26552, 0x650E},
+ {0x26553, 0x6584},
+ {0x26554, 0x65DE},
+ {0x26555, 0x65DD},
+ {0x26556, 0x66DE},
+ {0x26557, 0x6AE7},
+ {0x26558, 0x6AE0},
+ {0x26559, 0x6ACC},
+ {0x2655A, 0x6AD1},
+ {0x2655B, 0x6AD9},
+ {0x2655C, 0x6ACB},
+ {0x2655D, 0x6ADF},
+ {0x2655E, 0x6ADC},
+ {0x2655F, 0x6AD0},
+ {0x26560, 0x6AEB},
+ {0x26561, 0x6ACF},
+ {0x26562, 0x6ACD},
+ {0x26563, 0x6ADE},
+ {0x26564, 0x6B60},
+ {0x26565, 0x6BB0},
+ {0x26566, 0x6C0C},
+ {0x26567, 0x7019},
+ {0x26568, 0x7027},
+ {0x26569, 0x7020},
+ {0x2656A, 0x7016},
+ {0x2656B, 0x702B},
+ {0x2656C, 0x7021},
+ {0x2656D, 0x7022},
+ {0x2656E, 0x7023},
+ {0x2656F, 0x7029},
+ {0x26570, 0x7017},
+ {0x26571, 0x7024},
+ {0x26572, 0x701C},
+ {0x26573, 0x720C},
+ {0x26574, 0x720A},
+ {0x26575, 0x7207},
+ {0x26576, 0x7202},
+ {0x26577, 0x7205},
+ {0x26578, 0x72A5},
+ {0x26579, 0x72A6},
+ {0x2657A, 0x72A4},
+ {0x2657B, 0x72A3},
+ {0x2657C, 0x72A1},
+ {0x2657D, 0x74CB},
+ {0x2657E, 0x74C5},
+ {0x26621, 0x74B7},
+ {0x26622, 0x74C3},
+ {0x26623, 0x7516},
+ {0x26624, 0x7660},
+ {0x26625, 0x77C9},
+ {0x26626, 0x77CA},
+ {0x26627, 0x77C4},
+ {0x26628, 0x77F1},
+ {0x26629, 0x791D},
+ {0x2662A, 0x791B},
+ {0x2662B, 0x7921},
+ {0x2662C, 0x791C},
+ {0x2662D, 0x7917},
+ {0x2662E, 0x791E},
+ {0x2662F, 0x79B0},
+ {0x26630, 0x7A67},
+ {0x26631, 0x7A68},
+ {0x26632, 0x7C33},
+ {0x26633, 0x7C3C},
+ {0x26634, 0x7C39},
+ {0x26635, 0x7C2C},
+ {0x26636, 0x7C3B},
+ {0x26637, 0x7CEC},
+ {0x26638, 0x7CEA},
+ {0x26639, 0x7E76},
+ {0x2663A, 0x7E75},
+ {0x2663B, 0x7E78},
+ {0x2663C, 0x7E70},
+ {0x2663D, 0x7E77},
+ {0x2663E, 0x7E6F},
+ {0x2663F, 0x7E7A},
+ {0x26640, 0x7E72},
+ {0x26641, 0x7E74},
+ {0x26642, 0x7E68},
+ {0x26643, 0x7F4B},
+ {0x26644, 0x7F4A},
+ {0x26645, 0x7F83},
+ {0x26646, 0x7F86},
+ {0x26647, 0x7FB7},
+ {0x26648, 0x7FFD},
+ {0x26649, 0x7FFE},
+ {0x2664A, 0x8078},
+ {0x2664B, 0x81D7},
+ {0x2664C, 0x81D5},
+ {0x2664D, 0x820B},
+ {0x2664E, 0x8264},
+ {0x2664F, 0x8261},
+ {0x26650, 0x8263},
+ {0x26651, 0x85EB},
+ {0x26652, 0x85F1},
+ {0x26653, 0x85ED},
+ {0x26654, 0x85D9},
+ {0x26655, 0x85E1},
+ {0x26656, 0x85E8},
+ {0x26657, 0x85DA},
+ {0x26658, 0x85D7},
+ {0x26659, 0x85EC},
+ {0x2665A, 0x85F2},
+ {0x2665B, 0x85F8},
+ {0x2665C, 0x85D8},
+ {0x2665D, 0x85DF},
+ {0x2665E, 0x85E3},
+ {0x2665F, 0x85DC},
+ {0x26660, 0x85D1},
+ {0x26661, 0x85F0},
+ {0x26662, 0x85E6},
+ {0x26663, 0x85EF},
+ {0x26664, 0x85DE},
+ {0x26665, 0x85E2},
+ {0x26666, 0x8800},
+ {0x26667, 0x87FA},
+ {0x26668, 0x8803},
+ {0x26669, 0x87F6},
+ {0x2666A, 0x87F7},
+ {0x2666B, 0x8809},
+ {0x2666C, 0x880C},
+ {0x2666D, 0x880B},
+ {0x2666E, 0x8806},
+ {0x2666F, 0x87FC},
+ {0x26670, 0x8808},
+ {0x26671, 0x87FF},
+ {0x26672, 0x880A},
+ {0x26673, 0x8802},
+ {0x26674, 0x8962},
+ {0x26675, 0x895A},
+ {0x26676, 0x895B},
+ {0x26677, 0x8957},
+ {0x26678, 0x8961},
+ {0x26679, 0x895C},
+ {0x2667A, 0x8958},
+ {0x2667B, 0x895D},
+ {0x2667C, 0x8959},
+ {0x2667D, 0x8988},
+ {0x2667E, 0x89B7},
+ {0x26721, 0x89B6},
+ {0x26722, 0x89F6},
+ {0x26723, 0x8B50},
+ {0x26724, 0x8B48},
+ {0x26725, 0x8B4A},
+ {0x26726, 0x8B40},
+ {0x26727, 0x8B53},
+ {0x26728, 0x8B56},
+ {0x26729, 0x8B54},
+ {0x2672A, 0x8B4B},
+ {0x2672B, 0x8B55},
+ {0x2672C, 0x8B51},
+ {0x2672D, 0x8B42},
+ {0x2672E, 0x8B52},
+ {0x2672F, 0x8B57},
+ {0x26730, 0x8C43},
+ {0x26731, 0x8C77},
+ {0x26732, 0x8C76},
+ {0x26733, 0x8C9A},
+ {0x26734, 0x8D06},
+ {0x26735, 0x8D07},
+ {0x26736, 0x8D09},
+ {0x26737, 0x8DAC},
+ {0x26738, 0x8DAA},
+ {0x26739, 0x8DAD},
+ {0x2673A, 0x8DAB},
+ {0x2673B, 0x8E6D},
+ {0x2673C, 0x8E78},
+ {0x2673D, 0x8E73},
+ {0x2673E, 0x8E6A},
+ {0x2673F, 0x8E6F},
+ {0x26740, 0x8E7B},
+ {0x26741, 0x8EC2},
+ {0x26742, 0x8F52},
+ {0x26743, 0x8F51},
+ {0x26744, 0x8F4F},
+ {0x26745, 0x8F50},
+ {0x26746, 0x8F53},
+ {0x26747, 0x8FB4},
+ {0x26748, 0x9140},
+ {0x26749, 0x913F},
+ {0x2674A, 0x91B0},
+ {0x2674B, 0x91AD},
+ {0x2674C, 0x93DE},
+ {0x2674D, 0x93C7},
+ {0x2674E, 0x93CF},
+ {0x2674F, 0x93C2},
+ {0x26750, 0x93DA},
+ {0x26751, 0x93D0},
+ {0x26752, 0x93F9},
+ {0x26753, 0x93EC},
+ {0x26754, 0x93CC},
+ {0x26755, 0x93D9},
+ {0x26756, 0x93A9},
+ {0x26757, 0x93E6},
+ {0x26758, 0x93CA},
+ {0x26759, 0x93D4},
+ {0x2675A, 0x93EE},
+ {0x2675B, 0x93E3},
+ {0x2675C, 0x93D5},
+ {0x2675D, 0x93C4},
+ {0x2675E, 0x93CE},
+ {0x2675F, 0x93C0},
+ {0x26760, 0x93D2},
+ {0x26761, 0x93A5},
+ {0x26762, 0x93E7},
+ {0x26763, 0x957D},
+ {0x26764, 0x95DA},
+ {0x26765, 0x95DB},
+ {0x26766, 0x96E1},
+ {0x26767, 0x9729},
+ {0x26768, 0x972B},
+ {0x26769, 0x972C},
+ {0x2676A, 0x9728},
+ {0x2676B, 0x9726},
+ {0x2676C, 0x97B3},
+ {0x2676D, 0x97B7},
+ {0x2676E, 0x97B6},
+ {0x2676F, 0x97DD},
+ {0x26770, 0x97DE},
+ {0x26771, 0x97DF},
+ {0x26772, 0x985C},
+ {0x26773, 0x9859},
+ {0x26774, 0x985D},
+ {0x26775, 0x9857},
+ {0x26776, 0x98BF},
+ {0x26777, 0x98BD},
+ {0x26778, 0x98BB},
+ {0x26779, 0x98BE},
+ {0x2677A, 0x9948},
+ {0x2677B, 0x9947},
+ {0x2677C, 0x9943},
+ {0x2677D, 0x99A6},
+ {0x2677E, 0x99A7},
+ {0x26821, 0x9A1A},
+ {0x26822, 0x9A15},
+ {0x26823, 0x9A25},
+ {0x26824, 0x9A1D},
+ {0x26825, 0x9A24},
+ {0x26826, 0x9A1B},
+ {0x26827, 0x9A22},
+ {0x26828, 0x9A20},
+ {0x26829, 0x9A27},
+ {0x2682A, 0x9A23},
+ {0x2682B, 0x9A1E},
+ {0x2682C, 0x9A1C},
+ {0x2682D, 0x9A14},
+ {0x2682E, 0x9AC2},
+ {0x2682F, 0x9B0B},
+ {0x26830, 0x9B0A},
+ {0x26831, 0x9B0E},
+ {0x26832, 0x9B0C},
+ {0x26833, 0x9B37},
+ {0x26834, 0x9BEA},
+ {0x26835, 0x9BEB},
+ {0x26836, 0x9BE0},
+ {0x26837, 0x9BDE},
+ {0x26838, 0x9BE4},
+ {0x26839, 0x9BE6},
+ {0x2683A, 0x9BE2},
+ {0x2683B, 0x9BF0},
+ {0x2683C, 0x9BD4},
+ {0x2683D, 0x9BD7},
+ {0x2683E, 0x9BEC},
+ {0x2683F, 0x9BDC},
+ {0x26840, 0x9BD9},
+ {0x26841, 0x9BE5},
+ {0x26842, 0x9BD5},
+ {0x26843, 0x9BE1},
+ {0x26844, 0x9BDA},
+ {0x26845, 0x9D77},
+ {0x26846, 0x9D81},
+ {0x26847, 0x9D8A},
+ {0x26848, 0x9D84},
+ {0x26849, 0x9D88},
+ {0x2684A, 0x9D71},
+ {0x2684B, 0x9D80},
+ {0x2684C, 0x9D78},
+ {0x2684D, 0x9D86},
+ {0x2684E, 0x9D8B},
+ {0x2684F, 0x9D8C},
+ {0x26850, 0x9D7D},
+ {0x26851, 0x9D6B},
+ {0x26852, 0x9D74},
+ {0x26853, 0x9D75},
+ {0x26854, 0x9D70},
+ {0x26855, 0x9D69},
+ {0x26856, 0x9D85},
+ {0x26857, 0x9D73},
+ {0x26858, 0x9D7B},
+ {0x26859, 0x9D82},
+ {0x2685A, 0x9D6F},
+ {0x2685B, 0x9D79},
+ {0x2685C, 0x9D7F},
+ {0x2685D, 0x9D87},
+ {0x2685E, 0x9D68},
+ {0x2685F, 0x9E94},
+ {0x26860, 0x9E91},
+ {0x26861, 0x9EC0},
+ {0x26862, 0x9EFC},
+ {0x26863, 0x9F2D},
+ {0x26864, 0x9F40},
+ {0x26865, 0x9F41},
+ {0x26866, 0x9F4D},
+ {0x26867, 0x9F56},
+ {0x26868, 0x9F57},
+ {0x26869, 0x9F58},
+ {0x2686A, 0x5337},
+ {0x2686B, 0x56B2},
+ {0x2686C, 0x56B5},
+ {0x2686D, 0x56B3},
+ {0x2686E, 0x58E3},
+ {0x2686F, 0x5B45},
+ {0x26870, 0x5DC6},
+ {0x26871, 0x5DC7},
+ {0x26872, 0x5EEE},
+ {0x26873, 0x5EEF},
+ {0x26874, 0x5FC0},
+ {0x26875, 0x5FC1},
+ {0x26876, 0x61F9},
+ {0x26877, 0x6517},
+ {0x26878, 0x6516},
+ {0x26879, 0x6515},
+ {0x2687A, 0x6513},
+ {0x2687B, 0x65DF},
+ {0x2687C, 0x66E8},
+ {0x2687D, 0x66E3},
+ {0x2687E, 0x66E4},
+ {0x26921, 0x6AF3},
+ {0x26922, 0x6AF0},
+ {0x26923, 0x6AEA},
+ {0x26924, 0x6AE8},
+ {0x26925, 0x6AF9},
+ {0x26926, 0x6AF1},
+ {0x26927, 0x6AEE},
+ {0x26928, 0x6AEF},
+ {0x26929, 0x703C},
+ {0x2692A, 0x7035},
+ {0x2692B, 0x702F},
+ {0x2692C, 0x7037},
+ {0x2692D, 0x7034},
+ {0x2692E, 0x7031},
+ {0x2692F, 0x7042},
+ {0x26930, 0x7038},
+ {0x26931, 0x703F},
+ {0x26932, 0x703A},
+ {0x26933, 0x7039},
+ {0x26934, 0x702A},
+ {0x26935, 0x7040},
+ {0x26936, 0x703B},
+ {0x26937, 0x7033},
+ {0x26938, 0x7041},
+ {0x26939, 0x7213},
+ {0x2693A, 0x7214},
+ {0x2693B, 0x72A8},
+ {0x2693C, 0x737D},
+ {0x2693D, 0x737C},
+ {0x2693E, 0x74BA},
+ {0x2693F, 0x76AB},
+ {0x26940, 0x76AA},
+ {0x26941, 0x76BE},
+ {0x26942, 0x76ED},
+ {0x26943, 0x77CC},
+ {0x26944, 0x77CE},
+ {0x26945, 0x77CF},
+ {0x26946, 0x77CD},
+ {0x26947, 0x77F2},
+ {0x26948, 0x7925},
+ {0x26949, 0x7923},
+ {0x2694A, 0x7927},
+ {0x2694B, 0x7928},
+ {0x2694C, 0x7924},
+ {0x2694D, 0x7929},
+ {0x2694E, 0x79B2},
+ {0x2694F, 0x7A6E},
+ {0x26950, 0x7A6C},
+ {0x26951, 0x7A6D},
+ {0x26952, 0x7AF7},
+ {0x26953, 0x7C49},
+ {0x26954, 0x7C48},
+ {0x26955, 0x7C4A},
+ {0x26956, 0x7C47},
+ {0x26957, 0x7C45},
+ {0x26958, 0x7CEE},
+ {0x26959, 0x7E7B},
+ {0x2695A, 0x7E7E},
+ {0x2695B, 0x7E81},
+ {0x2695C, 0x7E80},
+ {0x2695D, 0x7FBA},
+ {0x2695E, 0x7FFF},
+ {0x2695F, 0x8079},
+ {0x26960, 0x81DB},
+ {0x26961, 0x81D9},
+ {0x26962, 0x8268},
+ {0x26963, 0x8269},
+ {0x26964, 0x8622},
+ {0x26965, 0x85FF},
+ {0x26966, 0x8601},
+ {0x26967, 0x85FE},
+ {0x26968, 0x861B},
+ {0x26969, 0x8600},
+ {0x2696A, 0x85F6},
+ {0x2696B, 0x8604},
+ {0x2696C, 0x8609},
+ {0x2696D, 0x8605},
+ {0x2696E, 0x860C},
+ {0x2696F, 0x85FD},
+ {0x26970, 0x8819},
+ {0x26971, 0x8810},
+ {0x26972, 0x8811},
+ {0x26973, 0x8817},
+ {0x26974, 0x8813},
+ {0x26975, 0x8816},
+ {0x26976, 0x8963},
+ {0x26977, 0x8966},
+ {0x26978, 0x89B9},
+ {0x26979, 0x89F7},
+ {0x2697A, 0x8B60},
+ {0x2697B, 0x8B6A},
+ {0x2697C, 0x8B5D},
+ {0x2697D, 0x8B68},
+ {0x2697E, 0x8B63},
+ {0x26A21, 0x8B65},
+ {0x26A22, 0x8B67},
+ {0x26A23, 0x8B6D},
+ {0x26A24, 0x8DAE},
+ {0x26A25, 0x8E86},
+ {0x26A26, 0x8E88},
+ {0x26A27, 0x8E84},
+ {0x26A28, 0x8F59},
+ {0x26A29, 0x8F56},
+ {0x26A2A, 0x8F57},
+ {0x26A2B, 0x8F55},
+ {0x26A2C, 0x8F58},
+ {0x26A2D, 0x8F5A},
+ {0x26A2E, 0x908D},
+ {0x26A2F, 0x9143},
+ {0x26A30, 0x9141},
+ {0x26A31, 0x91B7},
+ {0x26A32, 0x91B5},
+ {0x26A33, 0x91B2},
+ {0x26A34, 0x91B3},
+ {0x26A35, 0x940B},
+ {0x26A36, 0x9413},
+ {0x26A37, 0x93FB},
+ {0x26A38, 0x9420},
+ {0x26A39, 0x940F},
+ {0x26A3A, 0x9414},
+ {0x26A3B, 0x93FE},
+ {0x26A3C, 0x9415},
+ {0x26A3D, 0x9410},
+ {0x26A3E, 0x9428},
+ {0x26A3F, 0x9419},
+ {0x26A40, 0x940D},
+ {0x26A41, 0x93F5},
+ {0x26A42, 0x9400},
+ {0x26A43, 0x93F7},
+ {0x26A44, 0x9407},
+ {0x26A45, 0x940E},
+ {0x26A46, 0x9416},
+ {0x26A47, 0x9412},
+ {0x26A48, 0x93FA},
+ {0x26A49, 0x9409},
+ {0x26A4A, 0x93F8},
+ {0x26A4B, 0x943C},
+ {0x26A4C, 0x940A},
+ {0x26A4D, 0x93FF},
+ {0x26A4E, 0x93FC},
+ {0x26A4F, 0x940C},
+ {0x26A50, 0x93F6},
+ {0x26A51, 0x9411},
+ {0x26A52, 0x9406},
+ {0x26A53, 0x95DE},
+ {0x26A54, 0x95E0},
+ {0x26A55, 0x95DF},
+ {0x26A56, 0x972E},
+ {0x26A57, 0x972F},
+ {0x26A58, 0x97B9},
+ {0x26A59, 0x97BB},
+ {0x26A5A, 0x97FD},
+ {0x26A5B, 0x97FE},
+ {0x26A5C, 0x9860},
+ {0x26A5D, 0x9862},
+ {0x26A5E, 0x9863},
+ {0x26A5F, 0x985F},
+ {0x26A60, 0x98C1},
+ {0x26A61, 0x98C2},
+ {0x26A62, 0x9950},
+ {0x26A63, 0x994E},
+ {0x26A64, 0x9959},
+ {0x26A65, 0x994C},
+ {0x26A66, 0x994B},
+ {0x26A67, 0x9953},
+ {0x26A68, 0x9A32},
+ {0x26A69, 0x9A34},
+ {0x26A6A, 0x9A31},
+ {0x26A6B, 0x9A2C},
+ {0x26A6C, 0x9A2A},
+ {0x26A6D, 0x9A36},
+ {0x26A6E, 0x9A29},
+ {0x26A6F, 0x9A2E},
+ {0x26A70, 0x9A38},
+ {0x26A71, 0x9A2D},
+ {0x26A72, 0x9AC7},
+ {0x26A73, 0x9ACA},
+ {0x26A74, 0x9AC6},
+ {0x26A75, 0x9B10},
+ {0x26A76, 0x9B12},
+ {0x26A77, 0x9B11},
+ {0x26A78, 0x9C0B},
+ {0x26A79, 0x9C08},
+ {0x26A7A, 0x9BF7},
+ {0x26A7B, 0x9C05},
+ {0x26A7C, 0x9C12},
+ {0x26A7D, 0x9BF8},
+ {0x26A7E, 0x9C40},
+ {0x26B21, 0x9C07},
+ {0x26B22, 0x9C0E},
+ {0x26B23, 0x9C06},
+ {0x26B24, 0x9C17},
+ {0x26B25, 0x9C14},
+ {0x26B26, 0x9C09},
+ {0x26B27, 0x9D9F},
+ {0x26B28, 0x9D99},
+ {0x26B29, 0x9DA4},
+ {0x26B2A, 0x9D9D},
+ {0x26B2B, 0x9D92},
+ {0x26B2C, 0x9D98},
+ {0x26B2D, 0x9D90},
+ {0x26B2E, 0x9D9B},
+ {0x26B2F, 0x9DA0},
+ {0x26B30, 0x9D94},
+ {0x26B31, 0x9D9C},
+ {0x26B32, 0x9DAA},
+ {0x26B33, 0x9D97},
+ {0x26B34, 0x9DA1},
+ {0x26B35, 0x9D9A},
+ {0x26B36, 0x9DA2},
+ {0x26B37, 0x9DA8},
+ {0x26B38, 0x9D9E},
+ {0x26B39, 0x9DA3},
+ {0x26B3A, 0x9DBF},
+ {0x26B3B, 0x9DA9},
+ {0x26B3C, 0x9D96},
+ {0x26B3D, 0x9DA6},
+ {0x26B3E, 0x9DA7},
+ {0x26B3F, 0x9E99},
+ {0x26B40, 0x9E9B},
+ {0x26B41, 0x9E9A},
+ {0x26B42, 0x9EE5},
+ {0x26B43, 0x9EE4},
+ {0x26B44, 0x9EE7},
+ {0x26B45, 0x9EE6},
+ {0x26B46, 0x9F30},
+ {0x26B47, 0x9F2E},
+ {0x26B48, 0x9F5B},
+ {0x26B49, 0x9F60},
+ {0x26B4A, 0x9F5E},
+ {0x26B4B, 0x9F5D},
+ {0x26B4C, 0x9F59},
+ {0x26B4D, 0x9F91},
+ {0x26B4E, 0x513A},
+ {0x26B4F, 0x5139},
+ {0x26B50, 0x5298},
+ {0x26B51, 0x5297},
+ {0x26B52, 0x56C3},
+ {0x26B53, 0x56BD},
+ {0x26B54, 0x56BE},
+ {0x26B55, 0x5B48},
+ {0x26B56, 0x5B47},
+ {0x26B57, 0x5DCB},
+ {0x26B58, 0x5DCF},
+ {0x26B59, 0x5EF1},
+ {0x26B5A, 0x61FD},
+ {0x26B5B, 0x651B},
+ {0x26B5C, 0x6B02},
+ {0x26B5D, 0x6AFC},
+ {0x26B5E, 0x6B03},
+ {0x26B5F, 0x6AF8},
+ {0x26B60, 0x6B00},
+ {0x26B61, 0x7043},
+ {0x26B62, 0x7044},
+ {0x26B63, 0x704A},
+ {0x26B64, 0x7048},
+ {0x26B65, 0x7049},
+ {0x26B66, 0x7045},
+ {0x26B67, 0x7046},
+ {0x26B68, 0x721D},
+ {0x26B69, 0x721A},
+ {0x26B6A, 0x7219},
+ {0x26B6B, 0x737E},
+ {0x26B6C, 0x7517},
+ {0x26B6D, 0x766A},
+ {0x26B6E, 0x77D0},
+ {0x26B6F, 0x792D},
+ {0x26B70, 0x7931},
+ {0x26B71, 0x792F},
+ {0x26B72, 0x7C54},
+ {0x26B73, 0x7C53},
+ {0x26B74, 0x7CF2},
+ {0x26B75, 0x7E8A},
+ {0x26B76, 0x7E87},
+ {0x26B77, 0x7E88},
+ {0x26B78, 0x7E8B},
+ {0x26B79, 0x7E86},
+ {0x26B7A, 0x7E8D},
+ {0x26B7B, 0x7F4D},
+ {0x26B7C, 0x7FBB},
+ {0x26B7D, 0x8030},
+ {0x26B7E, 0x81DD},
+ {0x26C21, 0x8618},
+ {0x26C22, 0x862A},
+ {0x26C23, 0x8626},
+ {0x26C24, 0x861F},
+ {0x26C25, 0x8623},
+ {0x26C26, 0x861C},
+ {0x26C27, 0x8619},
+ {0x26C28, 0x8627},
+ {0x26C29, 0x862E},
+ {0x26C2A, 0x8621},
+ {0x26C2B, 0x8620},
+ {0x26C2C, 0x8629},
+ {0x26C2D, 0x861E},
+ {0x26C2E, 0x8625},
+ {0x26C2F, 0x8829},
+ {0x26C30, 0x881D},
+ {0x26C31, 0x881B},
+ {0x26C32, 0x8820},
+ {0x26C33, 0x8824},
+ {0x26C34, 0x881C},
+ {0x26C35, 0x882B},
+ {0x26C36, 0x884A},
+ {0x26C37, 0x896D},
+ {0x26C38, 0x8969},
+ {0x26C39, 0x896E},
+ {0x26C3A, 0x896B},
+ {0x26C3B, 0x89FA},
+ {0x26C3C, 0x8B79},
+ {0x26C3D, 0x8B78},
+ {0x26C3E, 0x8B45},
+ {0x26C3F, 0x8B7A},
+ {0x26C40, 0x8B7B},
+ {0x26C41, 0x8D10},
+ {0x26C42, 0x8D14},
+ {0x26C43, 0x8DAF},
+ {0x26C44, 0x8E8E},
+ {0x26C45, 0x8E8C},
+ {0x26C46, 0x8F5E},
+ {0x26C47, 0x8F5B},
+ {0x26C48, 0x8F5D},
+ {0x26C49, 0x9146},
+ {0x26C4A, 0x9144},
+ {0x26C4B, 0x9145},
+ {0x26C4C, 0x91B9},
+ {0x26C4D, 0x943F},
+ {0x26C4E, 0x943B},
+ {0x26C4F, 0x9436},
+ {0x26C50, 0x9429},
+ {0x26C51, 0x943D},
+ {0x26C52, 0x9430},
+ {0x26C53, 0x9439},
+ {0x26C54, 0x942A},
+ {0x26C55, 0x9437},
+ {0x26C56, 0x942C},
+ {0x26C57, 0x9440},
+ {0x26C58, 0x9431},
+ {0x26C59, 0x95E5},
+ {0x26C5A, 0x95E4},
+ {0x26C5B, 0x95E3},
+ {0x26C5C, 0x9735},
+ {0x26C5D, 0x973A},
+ {0x26C5E, 0x97BF},
+ {0x26C5F, 0x97E1},
+ {0x26C60, 0x9864},
+ {0x26C61, 0x98C9},
+ {0x26C62, 0x98C6},
+ {0x26C63, 0x98C0},
+ {0x26C64, 0x9958},
+ {0x26C65, 0x9956},
+ {0x26C66, 0x9A39},
+ {0x26C67, 0x9A3D},
+ {0x26C68, 0x9A46},
+ {0x26C69, 0x9A44},
+ {0x26C6A, 0x9A42},
+ {0x26C6B, 0x9A41},
+ {0x26C6C, 0x9A3A},
+ {0x26C6D, 0x9A3F},
+ {0x26C6E, 0x9ACD},
+ {0x26C6F, 0x9B15},
+ {0x26C70, 0x9B17},
+ {0x26C71, 0x9B18},
+ {0x26C72, 0x9B16},
+ {0x26C73, 0x9B3A},
+ {0x26C74, 0x9B52},
+ {0x26C75, 0x9C2B},
+ {0x26C76, 0x9C1D},
+ {0x26C77, 0x9C1C},
+ {0x26C78, 0x9C2C},
+ {0x26C79, 0x9C23},
+ {0x26C7A, 0x9C28},
+ {0x26C7B, 0x9C29},
+ {0x26C7C, 0x9C24},
+ {0x26C7D, 0x9C21},
+ {0x26C7E, 0x9DB7},
+ {0x26D21, 0x9DB6},
+ {0x26D22, 0x9DBC},
+ {0x26D23, 0x9DC1},
+ {0x26D24, 0x9DC7},
+ {0x26D25, 0x9DCA},
+ {0x26D26, 0x9DCF},
+ {0x26D27, 0x9DBE},
+ {0x26D28, 0x9DC5},
+ {0x26D29, 0x9DC3},
+ {0x26D2A, 0x9DBB},
+ {0x26D2B, 0x9DB5},
+ {0x26D2C, 0x9DCE},
+ {0x26D2D, 0x9DB9},
+ {0x26D2E, 0x9DBA},
+ {0x26D2F, 0x9DAC},
+ {0x26D30, 0x9DC8},
+ {0x26D31, 0x9DB1},
+ {0x26D32, 0x9DAD},
+ {0x26D33, 0x9DCC},
+ {0x26D34, 0x9DB3},
+ {0x26D35, 0x9DCD},
+ {0x26D36, 0x9DB2},
+ {0x26D37, 0x9E7A},
+ {0x26D38, 0x9E9C},
+ {0x26D39, 0x9EEB},
+ {0x26D3A, 0x9EEE},
+ {0x26D3B, 0x9EED},
+ {0x26D3C, 0x9F1B},
+ {0x26D3D, 0x9F18},
+ {0x26D3E, 0x9F1A},
+ {0x26D3F, 0x9F31},
+ {0x26D40, 0x9F4E},
+ {0x26D41, 0x9F65},
+ {0x26D42, 0x9F64},
+ {0x26D43, 0x9F92},
+ {0x26D44, 0x4EB9},
+ {0x26D45, 0x56C6},
+ {0x26D46, 0x56C5},
+ {0x26D47, 0x56CB},
+ {0x26D48, 0x5971},
+ {0x26D49, 0x5B4B},
+ {0x26D4A, 0x5B4C},
+ {0x26D4B, 0x5DD5},
+ {0x26D4C, 0x5DD1},
+ {0x26D4D, 0x5EF2},
+ {0x26D4E, 0x6521},
+ {0x26D4F, 0x6520},
+ {0x26D50, 0x6526},
+ {0x26D51, 0x6522},
+ {0x26D52, 0x6B0B},
+ {0x26D53, 0x6B08},
+ {0x26D54, 0x6B09},
+ {0x26D55, 0x6C0D},
+ {0x26D56, 0x7055},
+ {0x26D57, 0x7056},
+ {0x26D58, 0x7057},
+ {0x26D59, 0x7052},
+ {0x26D5A, 0x721E},
+ {0x26D5B, 0x721F},
+ {0x26D5C, 0x72A9},
+ {0x26D5D, 0x737F},
+ {0x26D5E, 0x74D8},
+ {0x26D5F, 0x74D5},
+ {0x26D60, 0x74D9},
+ {0x26D61, 0x74D7},
+ {0x26D62, 0x766D},
+ {0x26D63, 0x76AD},
+ {0x26D64, 0x7935},
+ {0x26D65, 0x79B4},
+ {0x26D66, 0x7A70},
+ {0x26D67, 0x7A71},
+ {0x26D68, 0x7C57},
+ {0x26D69, 0x7C5C},
+ {0x26D6A, 0x7C59},
+ {0x26D6B, 0x7C5B},
+ {0x26D6C, 0x7C5A},
+ {0x26D6D, 0x7CF4},
+ {0x26D6E, 0x7CF1},
+ {0x26D6F, 0x7E91},
+ {0x26D70, 0x7F4F},
+ {0x26D71, 0x7F87},
+ {0x26D72, 0x81DE},
+ {0x26D73, 0x826B},
+ {0x26D74, 0x8634},
+ {0x26D75, 0x8635},
+ {0x26D76, 0x8633},
+ {0x26D77, 0x862C},
+ {0x26D78, 0x8632},
+ {0x26D79, 0x8636},
+ {0x26D7A, 0x882C},
+ {0x26D7B, 0x8828},
+ {0x26D7C, 0x8826},
+ {0x26D7D, 0x882A},
+ {0x26D7E, 0x8825},
+ {0x26E21, 0x8971},
+ {0x26E22, 0x89BF},
+ {0x26E23, 0x89BE},
+ {0x26E24, 0x89FB},
+ {0x26E25, 0x8B7E},
+ {0x26E26, 0x8B84},
+ {0x26E27, 0x8B82},
+ {0x26E28, 0x8B86},
+ {0x26E29, 0x8B85},
+ {0x26E2A, 0x8B7F},
+ {0x26E2B, 0x8D15},
+ {0x26E2C, 0x8E95},
+ {0x26E2D, 0x8E94},
+ {0x26E2E, 0x8E9A},
+ {0x26E2F, 0x8E92},
+ {0x26E30, 0x8E90},
+ {0x26E31, 0x8E96},
+ {0x26E32, 0x8E97},
+ {0x26E33, 0x8F60},
+ {0x26E34, 0x8F62},
+ {0x26E35, 0x9147},
+ {0x26E36, 0x944C},
+ {0x26E37, 0x9450},
+ {0x26E38, 0x944A},
+ {0x26E39, 0x944B},
+ {0x26E3A, 0x944F},
+ {0x26E3B, 0x9447},
+ {0x26E3C, 0x9445},
+ {0x26E3D, 0x9448},
+ {0x26E3E, 0x9449},
+ {0x26E3F, 0x9446},
+ {0x26E40, 0x973F},
+ {0x26E41, 0x97E3},
+ {0x26E42, 0x986A},
+ {0x26E43, 0x9869},
+ {0x26E44, 0x98CB},
+ {0x26E45, 0x9954},
+ {0x26E46, 0x995B},
+ {0x26E47, 0x9A4E},
+ {0x26E48, 0x9A53},
+ {0x26E49, 0x9A54},
+ {0x26E4A, 0x9A4C},
+ {0x26E4B, 0x9A4F},
+ {0x26E4C, 0x9A48},
+ {0x26E4D, 0x9A4A},
+ {0x26E4E, 0x9A49},
+ {0x26E4F, 0x9A52},
+ {0x26E50, 0x9A50},
+ {0x26E51, 0x9AD0},
+ {0x26E52, 0x9B19},
+ {0x26E53, 0x9B2B},
+ {0x26E54, 0x9B3B},
+ {0x26E55, 0x9B56},
+ {0x26E56, 0x9B55},
+ {0x26E57, 0x9C46},
+ {0x26E58, 0x9C48},
+ {0x26E59, 0x9C3F},
+ {0x26E5A, 0x9C44},
+ {0x26E5B, 0x9C39},
+ {0x26E5C, 0x9C33},
+ {0x26E5D, 0x9C41},
+ {0x26E5E, 0x9C3C},
+ {0x26E5F, 0x9C37},
+ {0x26E60, 0x9C34},
+ {0x26E61, 0x9C32},
+ {0x26E62, 0x9C3D},
+ {0x26E63, 0x9C36},
+ {0x26E64, 0x9DDB},
+ {0x26E65, 0x9DD2},
+ {0x26E66, 0x9DDE},
+ {0x26E67, 0x9DDA},
+ {0x26E68, 0x9DCB},
+ {0x26E69, 0x9DD0},
+ {0x26E6A, 0x9DDC},
+ {0x26E6B, 0x9DD1},
+ {0x26E6C, 0x9DDF},
+ {0x26E6D, 0x9DE9},
+ {0x26E6E, 0x9DD9},
+ {0x26E6F, 0x9DD8},
+ {0x26E70, 0x9DD6},
+ {0x26E71, 0x9DF5},
+ {0x26E72, 0x9DD5},
+ {0x26E73, 0x9DDD},
+ {0x26E74, 0x9EB6},
+ {0x26E75, 0x9EF0},
+ {0x26E76, 0x9F35},
+ {0x26E77, 0x9F33},
+ {0x26E78, 0x9F32},
+ {0x26E79, 0x9F42},
+ {0x26E7A, 0x9F6B},
+ {0x26E7B, 0x9F95},
+ {0x26E7C, 0x9FA2},
+ {0x26E7D, 0x513D},
+ {0x26E7E, 0x5299},
+ {0x26F21, 0x58E8},
+ {0x26F22, 0x58E7},
+ {0x26F23, 0x5972},
+ {0x26F24, 0x5B4D},
+ {0x26F25, 0x5DD8},
+ {0x26F26, 0x882F},
+ {0x26F27, 0x5F4F},
+ {0x26F28, 0x6201},
+ {0x26F29, 0x6203},
+ {0x26F2A, 0x6204},
+ {0x26F2B, 0x6529},
+ {0x26F2C, 0x6525},
+ {0x26F2D, 0x6596},
+ {0x26F2E, 0x66EB},
+ {0x26F2F, 0x6B11},
+ {0x26F30, 0x6B12},
+ {0x26F31, 0x6B0F},
+ {0x26F32, 0x6BCA},
+ {0x26F33, 0x705B},
+ {0x26F34, 0x705A},
+ {0x26F35, 0x7222},
+ {0x26F36, 0x7382},
+ {0x26F37, 0x7381},
+ {0x26F38, 0x7383},
+ {0x26F39, 0x7670},
+ {0x26F3A, 0x77D4},
+ {0x26F3B, 0x7C67},
+ {0x26F3C, 0x7C66},
+ {0x26F3D, 0x7E95},
+ {0x26F3E, 0x826C},
+ {0x26F3F, 0x863A},
+ {0x26F40, 0x8640},
+ {0x26F41, 0x8639},
+ {0x26F42, 0x863C},
+ {0x26F43, 0x8631},
+ {0x26F44, 0x863B},
+ {0x26F45, 0x863E},
+ {0x26F46, 0x8830},
+ {0x26F47, 0x8832},
+ {0x26F48, 0x882E},
+ {0x26F49, 0x8833},
+ {0x26F4A, 0x8976},
+ {0x26F4B, 0x8974},
+ {0x26F4C, 0x8973},
+ {0x26F4D, 0x89FE},
+ {0x26F4E, 0x8B8C},
+ {0x26F4F, 0x8B8E},
+ {0x26F50, 0x8B8B},
+ {0x26F51, 0x8B88},
+ {0x26F52, 0x8C45},
+ {0x26F53, 0x8D19},
+ {0x26F54, 0x8E98},
+ {0x26F55, 0x8F64},
+ {0x26F56, 0x8F63},
+ {0x26F57, 0x91BC},
+ {0x26F58, 0x9462},
+ {0x26F59, 0x9455},
+ {0x26F5A, 0x945D},
+ {0x26F5B, 0x9457},
+ {0x26F5C, 0x945E},
+ {0x26F5D, 0x97C4},
+ {0x26F5E, 0x97C5},
+ {0x26F5F, 0x9800},
+ {0x26F60, 0x9A56},
+ {0x26F61, 0x9A59},
+ {0x26F62, 0x9B1E},
+ {0x26F63, 0x9B1F},
+ {0x26F64, 0x9B20},
+ {0x26F65, 0x9C52},
+ {0x26F66, 0x9C58},
+ {0x26F67, 0x9C50},
+ {0x26F68, 0x9C4A},
+ {0x26F69, 0x9C4D},
+ {0x26F6A, 0x9C4B},
+ {0x26F6B, 0x9C55},
+ {0x26F6C, 0x9C59},
+ {0x26F6D, 0x9C4C},
+ {0x26F6E, 0x9C4E},
+ {0x26F6F, 0x9DFB},
+ {0x26F70, 0x9DF7},
+ {0x26F71, 0x9DEF},
+ {0x26F72, 0x9DE3},
+ {0x26F73, 0x9DEB},
+ {0x26F74, 0x9DF8},
+ {0x26F75, 0x9DE4},
+ {0x26F76, 0x9DF6},
+ {0x26F77, 0x9DE1},
+ {0x26F78, 0x9DEE},
+ {0x26F79, 0x9DE6},
+ {0x26F7A, 0x9DF2},
+ {0x26F7B, 0x9DF0},
+ {0x26F7C, 0x9DE2},
+ {0x26F7D, 0x9DEC},
+ {0x26F7E, 0x9DF4},
+ {0x27021, 0x9DF3},
+ {0x27022, 0x9DE8},
+ {0x27023, 0x9DED},
+ {0x27024, 0x9EC2},
+ {0x27025, 0x9ED0},
+ {0x27026, 0x9EF2},
+ {0x27027, 0x9EF3},
+ {0x27028, 0x9F06},
+ {0x27029, 0x9F1C},
+ {0x2702A, 0x9F38},
+ {0x2702B, 0x9F37},
+ {0x2702C, 0x9F36},
+ {0x2702D, 0x9F43},
+ {0x2702E, 0x9F4F},
+ {0x2702F, 0x9F71},
+ {0x27030, 0x9F70},
+ {0x27031, 0x9F6E},
+ {0x27032, 0x9F6F},
+ {0x27033, 0x56D3},
+ {0x27034, 0x56CD},
+ {0x27035, 0x5B4E},
+ {0x27036, 0x5C6D},
+ {0x27037, 0x652D},
+ {0x27038, 0x66ED},
+ {0x27039, 0x66EE},
+ {0x2703A, 0x6B13},
+ {0x2703B, 0x705F},
+ {0x2703C, 0x7061},
+ {0x2703D, 0x705D},
+ {0x2703E, 0x7060},
+ {0x2703F, 0x7223},
+ {0x27040, 0x74DB},
+ {0x27041, 0x74E5},
+ {0x27042, 0x77D5},
+ {0x27043, 0x7938},
+ {0x27044, 0x79B7},
+ {0x27045, 0x79B6},
+ {0x27046, 0x7C6A},
+ {0x27047, 0x7E97},
+ {0x27048, 0x7F89},
+ {0x27049, 0x826D},
+ {0x2704A, 0x8643},
+ {0x2704B, 0x8838},
+ {0x2704C, 0x8837},
+ {0x2704D, 0x8835},
+ {0x2704E, 0x884B},
+ {0x2704F, 0x8B94},
+ {0x27050, 0x8B95},
+ {0x27051, 0x8E9E},
+ {0x27052, 0x8E9F},
+ {0x27053, 0x8EA0},
+ {0x27054, 0x8E9D},
+ {0x27055, 0x91BE},
+ {0x27056, 0x91BD},
+ {0x27057, 0x91C2},
+ {0x27058, 0x946B},
+ {0x27059, 0x9468},
+ {0x2705A, 0x9469},
+ {0x2705B, 0x96E5},
+ {0x2705C, 0x9746},
+ {0x2705D, 0x9743},
+ {0x2705E, 0x9747},
+ {0x2705F, 0x97C7},
+ {0x27060, 0x97E5},
+ {0x27061, 0x9A5E},
+ {0x27062, 0x9AD5},
+ {0x27063, 0x9B59},
+ {0x27064, 0x9C63},
+ {0x27065, 0x9C67},
+ {0x27066, 0x9C66},
+ {0x27067, 0x9C62},
+ {0x27068, 0x9C5E},
+ {0x27069, 0x9C60},
+ {0x2706A, 0x9E02},
+ {0x2706B, 0x9DFE},
+ {0x2706C, 0x9E07},
+ {0x2706D, 0x9E03},
+ {0x2706E, 0x9E06},
+ {0x2706F, 0x9E05},
+ {0x27070, 0x9E00},
+ {0x27071, 0x9E01},
+ {0x27072, 0x9E09},
+ {0x27073, 0x9DFF},
+ {0x27074, 0x9DFD},
+ {0x27075, 0x9E04},
+ {0x27076, 0x9EA0},
+ {0x27077, 0x9F1E},
+ {0x27078, 0x9F46},
+ {0x27079, 0x9F74},
+ {0x2707A, 0x9F75},
+ {0x2707B, 0x9F76},
+ {0x2707C, 0x56D4},
+ {0x2707D, 0x652E},
+ {0x2707E, 0x65B8},
+ {0x27121, 0x6B18},
+ {0x27122, 0x6B19},
+ {0x27123, 0x6B17},
+ {0x27124, 0x6B1A},
+ {0x27125, 0x7062},
+ {0x27126, 0x7226},
+ {0x27127, 0x72AA},
+ {0x27128, 0x77D8},
+ {0x27129, 0x77D9},
+ {0x2712A, 0x7939},
+ {0x2712B, 0x7C69},
+ {0x2712C, 0x7C6B},
+ {0x2712D, 0x7CF6},
+ {0x2712E, 0x7E9A},
+ {0x2712F, 0x7E98},
+ {0x27130, 0x7E9B},
+ {0x27131, 0x7E99},
+ {0x27132, 0x81E0},
+ {0x27133, 0x81E1},
+ {0x27134, 0x8646},
+ {0x27135, 0x8647},
+ {0x27136, 0x8648},
+ {0x27137, 0x8979},
+ {0x27138, 0x897A},
+ {0x27139, 0x897C},
+ {0x2713A, 0x897B},
+ {0x2713B, 0x89FF},
+ {0x2713C, 0x8B98},
+ {0x2713D, 0x8B99},
+ {0x2713E, 0x8EA5},
+ {0x2713F, 0x8EA4},
+ {0x27140, 0x8EA3},
+ {0x27141, 0x946E},
+ {0x27142, 0x946D},
+ {0x27143, 0x946F},
+ {0x27144, 0x9471},
+ {0x27145, 0x9473},
+ {0x27146, 0x9749},
+ {0x27147, 0x9872},
+ {0x27148, 0x995F},
+ {0x27149, 0x9C68},
+ {0x2714A, 0x9C6E},
+ {0x2714B, 0x9C6D},
+ {0x2714C, 0x9E0B},
+ {0x2714D, 0x9E0D},
+ {0x2714E, 0x9E10},
+ {0x2714F, 0x9E0F},
+ {0x27150, 0x9E12},
+ {0x27151, 0x9E11},
+ {0x27152, 0x9EA1},
+ {0x27153, 0x9EF5},
+ {0x27154, 0x9F09},
+ {0x27155, 0x9F47},
+ {0x27156, 0x9F78},
+ {0x27157, 0x9F7B},
+ {0x27158, 0x9F7A},
+ {0x27159, 0x9F79},
+ {0x2715A, 0x571E},
+ {0x2715B, 0x7066},
+ {0x2715C, 0x7C6F},
+ {0x2715D, 0x883C},
+ {0x2715E, 0x8DB2},
+ {0x2715F, 0x8EA6},
+ {0x27160, 0x91C3},
+ {0x27161, 0x9474},
+ {0x27162, 0x9478},
+ {0x27163, 0x9476},
+ {0x27164, 0x9475},
+ {0x27165, 0x9A60},
+ {0x27166, 0x9B2E},
+ {0x27167, 0x9C74},
+ {0x27168, 0x9C73},
+ {0x27169, 0x9C71},
+ {0x2716A, 0x9C75},
+ {0x2716B, 0x9E14},
+ {0x2716C, 0x9E13},
+ {0x2716D, 0x9EF6},
+ {0x2716E, 0x9F0A},
+ {0x2716F, 0x9FA4},
+ {0x27170, 0x7068},
+ {0x27171, 0x7065},
+ {0x27172, 0x7CF7},
+ {0x27173, 0x866A},
+ {0x27174, 0x883E},
+ {0x27175, 0x883D},
+ {0x27176, 0x883F},
+ {0x27177, 0x8B9E},
+ {0x27178, 0x8C9C},
+ {0x27179, 0x8EA9},
+ {0x2717A, 0x8EC9},
+ {0x2717B, 0x974B},
+ {0x2717C, 0x9873},
+ {0x2717D, 0x9874},
+ {0x2717E, 0x98CC},
+ {0x27221, 0x9961},
+ {0x27222, 0x99AB},
+ {0x27223, 0x9A64},
+ {0x27224, 0x9A66},
+ {0x27225, 0x9A67},
+ {0x27226, 0x9B24},
+ {0x27227, 0x9E15},
+ {0x27228, 0x9E17},
+ {0x27229, 0x9F48},
+ {0x2722A, 0x6207},
+ {0x2722B, 0x6B1E},
+ {0x2722C, 0x7227},
+ {0x2722D, 0x864C},
+ {0x2722E, 0x8EA8},
+ {0x2722F, 0x9482},
+ {0x27230, 0x9480},
+ {0x27231, 0x9481},
+ {0x27232, 0x9A69},
+ {0x27233, 0x9A68},
+ {0x27234, 0x9E19},
+ {0x27235, 0x864B},
+ {0x27236, 0x8B9F},
+ {0x27237, 0x9483},
+ {0x27238, 0x9C79},
+ {0x27239, 0x9EB7},
+ {0x2723A, 0x7675},
+ {0x2723B, 0x9A6B},
+ {0x2723C, 0x9C7A},
+ {0x2723D, 0x9E1D},
+ {0x2723E, 0x7069},
+ {0x2723F, 0x706A},
+ {0x27240, 0x7229},
+ {0x27241, 0x9EA4},
+ {0x27242, 0x9F7E},
+ {0x27243, 0x9F49},
+ {0x27244, 0x9F98},
+ {0xE2121, 0x4E28},
+ {0xE2122, 0x4E36},
+ {0xE2123, 0x4E3F},
+ {0xE2124, 0x4E85},
+ {0xE2125, 0x4E05},
+ {0xE2126, 0x4E04},
+ {0xE2127, 0x5182},
+ {0xE2128, 0x5196},
+ {0xE2129, 0x5338},
+ {0xE212A, 0x5369},
+ {0xE212B, 0x53B6},
+ {0xE212C, 0x4E2A},
+ {0xE212D, 0x4E87},
+ {0xE212E, 0x4E49},
+ {0xE212F, 0x51E2},
+ {0xE2130, 0x4E46},
+ {0xE2131, 0x4E8F},
+ {0xE2132, 0x4EBC},
+ {0xE2133, 0x4EBE},
+ {0xE2134, 0x5166},
+ {0xE2135, 0x51E3},
+ {0xE2136, 0x5204},
+ {0xE2137, 0x529C},
+ {0xE2139, 0x5902},
+ {0xE213A, 0x590A},
+ {0xE213B, 0x5B80},
+ {0xE213C, 0x5DDB},
+ {0xE213D, 0x5E7A},
+ {0xE213E, 0x5E7F},
+ {0xE213F, 0x5EF4},
+ {0xE2140, 0x5F50},
+ {0xE2141, 0x5F51},
+ {0xE2142, 0x5F61},
+ {0xE2143, 0x961D},
+ {0xE2145, 0x4E63},
+ {0xE2146, 0x4E62},
+ {0xE2147, 0x4EA3},
+ {0xE2148, 0x5185},
+ {0xE2149, 0x4EC5},
+ {0xE214A, 0x4ECF},
+ {0xE214B, 0x4ECE},
+ {0xE214C, 0x4ECC},
+ {0xE214D, 0x5184},
+ {0xE214E, 0x5186},
+ {0xE2151, 0x51E4},
+ {0xE2152, 0x5205},
+ {0xE2153, 0x529E},
+ {0xE2154, 0x529D},
+ {0xE2155, 0x52FD},
+ {0xE2156, 0x5300},
+ {0xE2157, 0x533A},
+ {0xE2159, 0x5346},
+ {0xE215A, 0x535D},
+ {0xE215B, 0x5386},
+ {0xE215C, 0x53B7},
+ {0xE215E, 0x53CC},
+ {0xE2160, 0x53CE},
+ {0xE2161, 0x5721},
+ {0xE2163, 0x5E00},
+ {0xE2164, 0x5F0C},
+ {0xE2165, 0x6237},
+ {0xE2166, 0x6238},
+ {0xE2167, 0x6534},
+ {0xE2168, 0x6535},
+ {0xE2169, 0x65E0},
+ {0xE216B, 0x738D},
+ {0xE216C, 0x4E97},
+ {0xE216D, 0x4EE0},
+ {0xE2170, 0x4EE7},
+ {0xE2172, 0x4EE6},
+ {0xE2177, 0x56D8},
+ {0xE2178, 0x518B},
+ {0xE2179, 0x518C},
+ {0xE217A, 0x5199},
+ {0xE217B, 0x51E5},
+ {0xE217D, 0x520B},
+ {0xE2222, 0x5304},
+ {0xE2223, 0x5303},
+ {0xE2224, 0x5307},
+ {0xE2226, 0x531E},
+ {0xE2227, 0x535F},
+ {0xE2228, 0x536D},
+ {0xE2229, 0x5389},
+ {0xE222A, 0x53BA},
+ {0xE222B, 0x53D0},
+ {0xE222D, 0x53F6},
+ {0xE222E, 0x53F7},
+ {0xE222F, 0x53F9},
+ {0xE2231, 0x53F4},
+ {0xE2234, 0x5724},
+ {0xE2235, 0x5904},
+ {0xE2236, 0x5918},
+ {0xE2237, 0x5932},
+ {0xE2238, 0x5930},
+ {0xE2239, 0x5934},
+ {0xE223B, 0x5975},
+ {0xE223D, 0x5B82},
+ {0xE223E, 0x5BF9},
+ {0xE223F, 0x5C14},
+ {0xE2247, 0x5E81},
+ {0xE2248, 0x5E83},
+ {0xE2249, 0x5F0D},
+ {0xE224A, 0x5F52},
+ {0xE224C, 0x5FCA},
+ {0xE224D, 0x5FC7},
+ {0xE224E, 0x6239},
+ {0xE2250, 0x624F},
+ {0xE2251, 0x65E7},
+ {0xE2252, 0x672F},
+ {0xE2253, 0x6B7A},
+ {0xE2254, 0x6C39},
+ {0xE2257, 0x6C37},
+ {0xE2258, 0x6C44},
+ {0xE2259, 0x6C45},
+ {0xE225A, 0x738C},
+ {0xE225B, 0x7592},
+ {0xE225C, 0x7676},
+ {0xE225D, 0x9093},
+ {0xE225E, 0x9092},
+ {0xE2261, 0x4E21},
+ {0xE2262, 0x4E20},
+ {0xE2263, 0x4E22},
+ {0xE2264, 0x4E68},
+ {0xE2265, 0x4E89},
+ {0xE2266, 0x4E98},
+ {0xE2267, 0x4EF9},
+ {0xE2268, 0x4EEF},
+ {0xE226B, 0x4EF8},
+ {0xE226C, 0x4F06},
+ {0xE226D, 0x4F03},
+ {0xE226E, 0x4EFC},
+ {0xE226F, 0x4EEE},
+ {0xE2270, 0x4F16},
+ {0xE2272, 0x4F28},
+ {0xE2273, 0x4F1C},
+ {0xE2274, 0x4F07},
+ {0xE2275, 0x4F1A},
+ {0xE2276, 0x4EFA},
+ {0xE2277, 0x4F17},
+ {0xE2278, 0x514A},
+ {0xE227A, 0x5172},
+ {0xE227C, 0x51B4},
+ {0xE227D, 0x51B3},
+ {0xE227E, 0x51B2},
+ {0xE2322, 0x51E8},
+ {0xE2324, 0x5214},
+ {0xE2325, 0x520F},
+ {0xE2326, 0x5215},
+ {0xE2327, 0x5218},
+ {0xE2328, 0x52A8},
+ {0xE232A, 0x534B},
+ {0xE232B, 0x534F},
+ {0xE232D, 0x5350},
+ {0xE232F, 0x538B},
+ {0xE2331, 0x53BE},
+ {0xE2333, 0x53D2},
+ {0xE2334, 0x5416},
+ {0xE2335, 0x53FF},
+ {0xE2337, 0x5400},
+ {0xE2339, 0x5405},
+ {0xE233A, 0x5413},
+ {0xE233B, 0x5415},
+ {0xE233E, 0x56E3},
+ {0xE233F, 0x5735},
+ {0xE2340, 0x5736},
+ {0xE2341, 0x5731},
+ {0xE2342, 0x5732},
+ {0xE2343, 0x58EE},
+ {0xE2344, 0x5905},
+ {0xE2345, 0x4E54},
+ {0xE2347, 0x5936},
+ {0xE234B, 0x597A},
+ {0xE234D, 0x5986},
+ {0xE2350, 0x5B86},
+ {0xE2351, 0x5F53},
+ {0xE2352, 0x5C18},
+ {0xE2354, 0x5C3D},
+ {0xE2355, 0x5C78},
+ {0xE235A, 0x5C80},
+ {0xE235C, 0x5E08},
+ {0xE2361, 0x5EF5},
+ {0xE2362, 0x5F0E},
+ {0xE2366, 0x5FD3},
+ {0xE2367, 0x5FDA},
+ {0xE2369, 0x5FDB},
+ {0xE236B, 0x620F},
+ {0xE236C, 0x625D},
+ {0xE236D, 0x625F},
+ {0xE236E, 0x6267},
+ {0xE236F, 0x6257},
+ {0xE2370, 0x9F50},
+ {0xE2372, 0x65EB},
+ {0xE2373, 0x65EA},
+ {0xE2375, 0x6737},
+ {0xE2377, 0x6732},
+ {0xE2378, 0x6736},
+ {0xE2379, 0x6B22},
+ {0xE237A, 0x6BCE},
+ {0xE237C, 0x6C58},
+ {0xE237D, 0x6C51},
+ {0xE237E, 0x6C77},
+ {0xE2421, 0x6C3C},
+ {0xE2423, 0x6C5A},
+ {0xE2425, 0x6C53},
+ {0xE2426, 0x706F},
+ {0xE2427, 0x7072},
+ {0xE2428, 0x706E},
+ {0xE242B, 0x7073},
+ {0xE242C, 0x72B1},
+ {0xE242D, 0x72B2},
+ {0xE242F, 0x738F},
+ {0xE2433, 0x793C},
+ {0xE2435, 0x808D},
+ {0xE2436, 0x808E},
+ {0xE2438, 0x827B},
+ {0xE243A, 0x8D71},
+ {0xE243B, 0x8FB9},
+ {0xE243C, 0x9096},
+ {0xE243D, 0x909A},
+ {0xE243F, 0x4E24},
+ {0xE2440, 0x4E71},
+ {0xE2442, 0x4E9C},
+ {0xE2443, 0x4F45},
+ {0xE2444, 0x4F4A},
+ {0xE2445, 0x4F39},
+ {0xE2446, 0x4F37},
+ {0xE2448, 0x4F32},
+ {0xE2449, 0x4F42},
+ {0xE244B, 0x4F44},
+ {0xE244C, 0x4F4B},
+ {0xE244E, 0x4F40},
+ {0xE244F, 0x4F35},
+ {0xE2450, 0x4F31},
+ {0xE2451, 0x5151},
+ {0xE2453, 0x5150},
+ {0xE2454, 0x514E},
+ {0xE2457, 0x519D},
+ {0xE2459, 0x51B5},
+ {0xE245A, 0x51B8},
+ {0xE245B, 0x51EC},
+ {0xE245C, 0x5223},
+ {0xE245D, 0x5227},
+ {0xE245E, 0x5226},
+ {0xE245F, 0x521F},
+ {0xE2460, 0x522B},
+ {0xE2461, 0x5220},
+ {0xE2462, 0x52B4},
+ {0xE2463, 0x52B3},
+ {0xE2465, 0x5325},
+ {0xE2466, 0x533B},
+ {0xE2467, 0x5374},
+ {0xE246D, 0x544D},
+ {0xE2470, 0x543A},
+ {0xE2473, 0x5444},
+ {0xE2474, 0x544C},
+ {0xE2475, 0x5423},
+ {0xE2476, 0x541A},
+ {0xE2477, 0x5432},
+ {0xE2478, 0x544B},
+ {0xE2479, 0x5421},
+ {0xE247B, 0x5434},
+ {0xE247C, 0x5449},
+ {0xE247D, 0x5450},
+ {0xE247E, 0x5422},
+ {0xE2521, 0x543F},
+ {0xE2522, 0x5451},
+ {0xE2523, 0x545A},
+ {0xE2524, 0x542F},
+ {0xE2526, 0x56E9},
+ {0xE2527, 0x56F2},
+ {0xE2528, 0x56F3},
+ {0xE2529, 0x56EF},
+ {0xE252A, 0x56ED},
+ {0xE252B, 0x56EC},
+ {0xE252C, 0x56E6},
+ {0xE252D, 0x5748},
+ {0xE252F, 0x5744},
+ {0xE2530, 0x573F},
+ {0xE2531, 0x573C},
+ {0xE2532, 0x5753},
+ {0xE2533, 0x5756},
+ {0xE2535, 0x575F},
+ {0xE2536, 0x5743},
+ {0xE2537, 0x5758},
+ {0xE2538, 0x5757},
+ {0xE253C, 0x5746},
+ {0xE253E, 0x573D},
+ {0xE2540, 0x5742},
+ {0xE2541, 0x5754},
+ {0xE2542, 0x5755},
+ {0xE2543, 0x58F1},
+ {0xE2544, 0x58F2},
+ {0xE2545, 0x58F0},
+ {0xE2546, 0x590B},
+ {0xE2547, 0x9EA6},
+ {0xE2548, 0x56F1},
+ {0xE2549, 0x593D},
+ {0xE254B, 0x5994},
+ {0xE254C, 0x598C},
+ {0xE254E, 0x599C},
+ {0xE2551, 0x599F},
+ {0xE2553, 0x599B},
+ {0xE2555, 0x5989},
+ {0xE2556, 0x599A},
+ {0xE2558, 0x6588},
+ {0xE255A, 0x5B8D},
+ {0xE255C, 0x5BFE},
+ {0xE255D, 0x5BFF},
+ {0xE255E, 0x5BFD},
+ {0xE255F, 0x5C2B},
+ {0xE2561, 0x5C84},
+ {0xE2562, 0x5C8E},
+ {0xE2563, 0x5C9C},
+ {0xE2566, 0x5C85},
+ {0xE2567, 0x5DF5},
+ {0xE2568, 0x5E09},
+ {0xE256B, 0x5E0B},
+ {0xE256D, 0x5E92},
+ {0xE256E, 0x5E90},
+ {0xE256F, 0x5F03},
+ {0xE2571, 0x5F1E},
+ {0xE2572, 0x5F63},
+ {0xE2574, 0x5FE7},
+ {0xE2575, 0x5FFE},
+ {0xE2576, 0x5FE6},
+ {0xE2577, 0x5FDC},
+ {0xE2578, 0x5FCE},
+ {0xE257A, 0x5FFC},
+ {0xE257B, 0x5FDF},
+ {0xE257C, 0x5FEC},
+ {0xE257D, 0x5FF6},
+ {0xE2621, 0x5FF2},
+ {0xE2622, 0x5FF0},
+ {0xE2623, 0x5FF9},
+ {0xE2625, 0x6213},
+ {0xE2628, 0x623B},
+ {0xE2629, 0x623C},
+ {0xE262A, 0x6282},
+ {0xE262E, 0x6278},
+ {0xE262F, 0x628B},
+ {0xE2631, 0x629E},
+ {0xE2632, 0x62A5},
+ {0xE2633, 0x629B},
+ {0xE2634, 0x629C},
+ {0xE2635, 0x6299},
+ {0xE2636, 0x628D},
+ {0xE2637, 0x6285},
+ {0xE2638, 0x629D},
+ {0xE2639, 0x6275},
+ {0xE263D, 0x65F6},
+ {0xE2641, 0x66F5},
+ {0xE2642, 0x675B},
+ {0xE2644, 0x6754},
+ {0xE2645, 0x6752},
+ {0xE2647, 0x6758},
+ {0xE2648, 0x6744},
+ {0xE2649, 0x674A},
+ {0xE264A, 0x6761},
+ {0xE264C, 0x6C7F},
+ {0xE264D, 0x6C91},
+ {0xE264E, 0x6C9E},
+ {0xE2650, 0x6C6E},
+ {0xE2651, 0x6C7C},
+ {0xE2652, 0x6C9F},
+ {0xE2653, 0x6C75},
+ {0xE2655, 0x6C56},
+ {0xE2656, 0x6CA2},
+ {0xE2657, 0x6C79},
+ {0xE2659, 0x6CA1},
+ {0xE265B, 0x6CAA},
+ {0xE265C, 0x6CA0},
+ {0xE265E, 0x7079},
+ {0xE265F, 0x7077},
+ {0xE2660, 0x707E},
+ {0xE2662, 0x7075},
+ {0xE2663, 0x707B},
+ {0xE2664, 0x7264},
+ {0xE2666, 0x72BB},
+ {0xE2667, 0x72BC},
+ {0xE2668, 0x72C7},
+ {0xE2669, 0x72B9},
+ {0xE266A, 0x72BE},
+ {0xE266B, 0x72B6},
+ {0xE266E, 0x7398},
+ {0xE2673, 0x7593},
+ {0xE2674, 0x7680},
+ {0xE2676, 0x7683},
+ {0xE2677, 0x76C0},
+ {0xE2678, 0x76C1},
+ {0xE267B, 0x77F4},
+ {0xE267C, 0x77F5},
+ {0xE267E, 0x7ACC},
+ {0xE2721, 0x7ACD},
+ {0xE2722, 0x7CFA},
+ {0xE2723, 0x809F},
+ {0xE2724, 0x8091},
+ {0xE2725, 0x8097},
+ {0xE2726, 0x8094},
+ {0xE2728, 0x8286},
+ {0xE2729, 0x828C},
+ {0xE272B, 0x8295},
+ {0xE272D, 0x866C},
+ {0xE272F, 0x8FB5},
+ {0xE2730, 0x8FBE},
+ {0xE2731, 0x8FC7},
+ {0xE2733, 0x8FC1},
+ {0xE2734, 0x90A9},
+ {0xE2735, 0x90A4},
+ {0xE2739, 0x90A8},
+ {0xE273A, 0x9627},
+ {0xE273B, 0x9626},
+ {0xE273C, 0x962B},
+ {0xE273D, 0x9633},
+ {0xE273E, 0x9634},
+ {0xE273F, 0x9629},
+ {0xE2740, 0x4E3D},
+ {0xE2742, 0x4E9D},
+ {0xE2743, 0x4F93},
+ {0xE2744, 0x4F8A},
+ {0xE2747, 0x4F6D},
+ {0xE2748, 0x4F8E},
+ {0xE2749, 0x4FA0},
+ {0xE274A, 0x4FA2},
+ {0xE274B, 0x4FA1},
+ {0xE274C, 0x4F9F},
+ {0xE274D, 0x4FA3},
+ {0xE274F, 0x4F72},
+ {0xE2751, 0x4F8C},
+ {0xE2752, 0x5156},
+ {0xE2755, 0x5190},
+ {0xE2759, 0x51ED},
+ {0xE275A, 0x51FE},
+ {0xE275B, 0x522F},
+ {0xE275D, 0x523C},
+ {0xE275E, 0x5234},
+ {0xE275F, 0x5239},
+ {0xE2760, 0x52B9},
+ {0xE2761, 0x52B5},
+ {0xE2762, 0x52BF},
+ {0xE2763, 0x5355},
+ {0xE2765, 0x5376},
+ {0xE2766, 0x537A},
+ {0xE2767, 0x5393},
+ {0xE2769, 0x53C1},
+ {0xE276A, 0x53C2},
+ {0xE276B, 0x53D5},
+ {0xE276C, 0x5485},
+ {0xE276E, 0x545F},
+ {0xE276F, 0x5493},
+ {0xE2770, 0x5489},
+ {0xE2771, 0x5479},
+ {0xE2772, 0x9EFE},
+ {0xE2773, 0x548F},
+ {0xE2774, 0x5469},
+ {0xE2775, 0x546D},
+ {0xE2777, 0x5494},
+ {0xE2778, 0x546A},
+ {0xE2779, 0x548A},
+ {0xE277B, 0x56FD},
+ {0xE277C, 0x56FB},
+ {0xE277D, 0x56F8},
+ {0xE2821, 0x56FC},
+ {0xE2822, 0x56F6},
+ {0xE2823, 0x5765},
+ {0xE2824, 0x5781},
+ {0xE2825, 0x5763},
+ {0xE2826, 0x5767},
+ {0xE2828, 0x576E},
+ {0xE2829, 0x5778},
+ {0xE282A, 0x577F},
+ {0xE282D, 0x58F3},
+ {0xE282E, 0x594B},
+ {0xE282F, 0x594C},
+ {0xE2833, 0x59AD},
+ {0xE2835, 0x59C4},
+ {0xE2837, 0x59C2},
+ {0xE2838, 0x59B0},
+ {0xE283D, 0x59BF},
+ {0xE283F, 0x59C9},
+ {0xE2840, 0x59B8},
+ {0xE2841, 0x59AC},
+ {0xE2845, 0x59B7},
+ {0xE2846, 0x59D7},
+ {0xE2848, 0x5B60},
+ {0xE284A, 0x5B96},
+ {0xE284B, 0x5B9E},
+ {0xE284C, 0x5B94},
+ {0xE284D, 0x5B9F},
+ {0xE284E, 0x5B9D},
+ {0xE2850, 0x5C00},
+ {0xE2851, 0x5C19},
+ {0xE2854, 0x5C49},
+ {0xE2855, 0x5C4A},
+ {0xE2857, 0x5CBB},
+ {0xE2858, 0x5CC1},
+ {0xE285C, 0x5CB9},
+ {0xE285D, 0x5C9E},
+ {0xE285E, 0x5CB4},
+ {0xE285F, 0x5CBA},
+ {0xE2860, 0x5DF6},
+ {0xE2861, 0x5E13},
+ {0xE2862, 0x5E12},
+ {0xE2863, 0x5E77},
+ {0xE2865, 0x5E98},
+ {0xE2867, 0x5E99},
+ {0xE2868, 0x5E9D},
+ {0xE2869, 0x5EF8},
+ {0xE286B, 0x5EF9},
+ {0xE286D, 0x5F06},
+ {0xE286E, 0x5F21},
+ {0xE2870, 0x5F25},
+ {0xE2871, 0x5F55},
+ {0xE2875, 0x5F84},
+ {0xE2876, 0x5F83},
+ {0xE2877, 0x6030},
+ {0xE2878, 0x6007},
+ {0xE287A, 0x6036},
+ {0xE287E, 0x5FE9},
+ {0xE2921, 0x603D},
+ {0xE2922, 0x6008},
+ {0xE2925, 0x62BA},
+ {0xE2926, 0x62B2},
+ {0xE2928, 0x62B7},
+ {0xE2929, 0x62E4},
+ {0xE292A, 0x62A7},
+ {0xE292E, 0x62D5},
+ {0xE292F, 0x62E1},
+ {0xE2930, 0x62DD},
+ {0xE2931, 0x62A6},
+ {0xE2932, 0x62C1},
+ {0xE2933, 0x62C5},
+ {0xE2934, 0x62C0},
+ {0xE2935, 0x62DF},
+ {0xE2936, 0x62E0},
+ {0xE2937, 0x62DE},
+ {0xE2939, 0x6589},
+ {0xE293B, 0x65A6},
+ {0xE293C, 0x65BA},
+ {0xE293E, 0x65FF},
+ {0xE2940, 0x6617},
+ {0xE2941, 0x6618},
+ {0xE2942, 0x6601},
+ {0xE2943, 0x65FE},
+ {0xE2945, 0x670C},
+ {0xE2947, 0x676B},
+ {0xE2948, 0x6796},
+ {0xE2949, 0x6782},
+ {0xE294A, 0x678A},
+ {0xE294C, 0x67A3},
+ {0xE294E, 0x67A2},
+ {0xE294F, 0x678F},
+ {0xE2951, 0x67F9},
+ {0xE2952, 0x6780},
+ {0xE2953, 0x6B26},
+ {0xE2954, 0x6B27},
+ {0xE2955, 0x6B68},
+ {0xE2956, 0x6B69},
+ {0xE2958, 0x6B81},
+ {0xE2959, 0x6BB4},
+ {0xE295A, 0x6BD1},
+ {0xE295D, 0x6C1C},
+ {0xE2963, 0x6C97},
+ {0xE2964, 0x6C6C},
+ {0xE2965, 0x6CDF},
+ {0xE2967, 0x6CEA},
+ {0xE2969, 0x6CE4},
+ {0xE296A, 0x6CD8},
+ {0xE296B, 0x6CB2},
+ {0xE296C, 0x6CCE},
+ {0xE296D, 0x6CC8},
+ {0xE296F, 0x708B},
+ {0xE2970, 0x7088},
+ {0xE2971, 0x7090},
+ {0xE2972, 0x708F},
+ {0xE2974, 0x7087},
+ {0xE2975, 0x7089},
+ {0xE2976, 0x708D},
+ {0xE2977, 0x7081},
+ {0xE2979, 0x708C},
+ {0xE297C, 0x7240},
+ {0xE2A21, 0x7265},
+ {0xE2A22, 0x7266},
+ {0xE2A23, 0x7268},
+ {0xE2A26, 0x72CD},
+ {0xE2A27, 0x72D3},
+ {0xE2A28, 0x72DB},
+ {0xE2A2A, 0x72CF},
+ {0xE2A2B, 0x73A7},
+ {0xE2A2C, 0x73A3},
+ {0xE2A2D, 0x739E},
+ {0xE2A2F, 0x73AF},
+ {0xE2A32, 0x73AA},
+ {0xE2A33, 0x739C},
+ {0xE2A35, 0x7542},
+ {0xE2A36, 0x7544},
+ {0xE2A37, 0x753B},
+ {0xE2A38, 0x7541},
+ {0xE2A3A, 0x759B},
+ {0xE2A3B, 0x759E},
+ {0xE2A3D, 0x79C4},
+ {0xE2A3E, 0x79C3},
+ {0xE2A3F, 0x79C6},
+ {0xE2A42, 0x79C7},
+ {0xE2A44, 0x79CA},
+ {0xE2A47, 0x7ACF},
+ {0xE2A48, 0x7C76},
+ {0xE2A49, 0x7C74},
+ {0xE2A4A, 0x7CFF},
+ {0xE2A4B, 0x7CFC},
+ {0xE2A4E, 0x7F59},
+ {0xE2A4F, 0x80A8},
+ {0xE2A52, 0x80B0},
+ {0xE2A54, 0x80B3},
+ {0xE2A56, 0x80A4},
+ {0xE2A57, 0x80B6},
+ {0xE2A58, 0x80A7},
+ {0xE2A59, 0x80AC},
+ {0xE2A5B, 0x80A6},
+ {0xE2A5C, 0x5367},
+ {0xE2A5D, 0x820E},
+ {0xE2A5E, 0x82C4},
+ {0xE2A5F, 0x833E},
+ {0xE2A60, 0x829C},
+ {0xE2A66, 0x82AA},
+ {0xE2A68, 0x82C9},
+ {0xE2A6B, 0x82A6},
+ {0xE2A6C, 0x82B2},
+ {0xE2A70, 0x8FCC},
+ {0xE2A71, 0x8FD9},
+ {0xE2A72, 0x8FCA},
+ {0xE2A73, 0x8FD8},
+ {0xE2A74, 0x8FCF},
+ {0xE2A75, 0x90B7},
+ {0xE2A77, 0x90AD},
+ {0xE2A78, 0x90B9},
+ {0xE2A79, 0x9637},
+ {0xE2A7B, 0x9641},
+ {0xE2A7C, 0x963E},
+ {0xE2A7D, 0x96B6},
+ {0xE2A7E, 0x9751},
+ {0xE2B21, 0x9763},
+ {0xE2B22, 0x4E57},
+ {0xE2B23, 0x4E79},
+ {0xE2B24, 0x4EB2},
+ {0xE2B25, 0x4EB0},
+ {0xE2B26, 0x4EAF},
+ {0xE2B27, 0x4EB1},
+ {0xE2B28, 0x4FD2},
+ {0xE2B29, 0x4FD5},
+ {0xE2B2B, 0x4FBE},
+ {0xE2B2C, 0x4FB8},
+ {0xE2B2D, 0x4FB0},
+ {0xE2B2E, 0x4FB1},
+ {0xE2B2F, 0x4FC8},
+ {0xE2B32, 0x4FC6},
+ {0xE2B33, 0x4FCC},
+ {0xE2B34, 0x4FE5},
+ {0xE2B35, 0x4FE3},
+ {0xE2B36, 0x4FB4},
+ {0xE2B37, 0x516A},
+ {0xE2B39, 0x519F},
+ {0xE2B3B, 0x51C1},
+ {0xE2B3D, 0x51C2},
+ {0xE2B3E, 0x51C3},
+ {0xE2B3F, 0x5245},
+ {0xE2B40, 0x5248},
+ {0xE2B43, 0x524F},
+ {0xE2B46, 0x52C5},
+ {0xE2B47, 0x52CA},
+ {0xE2B48, 0x52C4},
+ {0xE2B49, 0x5327},
+ {0xE2B4A, 0x5358},
+ {0xE2B4B, 0x537D},
+ {0xE2B4D, 0x53DD},
+ {0xE2B4E, 0x53DC},
+ {0xE2B4F, 0x53DA},
+ {0xE2B50, 0x53D9},
+ {0xE2B51, 0x54B9},
+ {0xE2B53, 0x54D0},
+ {0xE2B54, 0x54B4},
+ {0xE2B55, 0x54CA},
+ {0xE2B57, 0x54A3},
+ {0xE2B58, 0x54DA},
+ {0xE2B59, 0x54A4},
+ {0xE2B5B, 0x54B2},
+ {0xE2B5C, 0x549E},
+ {0xE2B5D, 0x549F},
+ {0xE2B5E, 0x54B5},
+ {0xE2B61, 0x54CD},
+ {0xE2B63, 0x54CC},
+ {0xE2B65, 0x5700},
+ {0xE2B66, 0x57AC},
+ {0xE2B67, 0x5791},
+ {0xE2B68, 0x578E},
+ {0xE2B69, 0x578D},
+ {0xE2B6A, 0x5792},
+ {0xE2B6B, 0x57A1},
+ {0xE2B6C, 0x5790},
+ {0xE2B6D, 0x57A6},
+ {0xE2B6E, 0x57A8},
+ {0xE2B70, 0x579C},
+ {0xE2B71, 0x5796},
+ {0xE2B72, 0x57A7},
+ {0xE2B77, 0x58F5},
+ {0xE2B79, 0x5909},
+ {0xE2B7A, 0x5908},
+ {0xE2B7C, 0x5952},
+ {0xE2C21, 0x59DF},
+ {0xE2C23, 0x59EB},
+ {0xE2C24, 0x59EF},
+ {0xE2C25, 0x59F0},
+ {0xE2C26, 0x59D5},
+ {0xE2C27, 0x5A0D},
+ {0xE2C28, 0x5A04},
+ {0xE2C29, 0x59F9},
+ {0xE2C2A, 0x5A02},
+ {0xE2C2B, 0x59F8},
+ {0xE2C2C, 0x59E2},
+ {0xE2C2D, 0x59D9},
+ {0xE2C2E, 0x59E7},
+ {0xE2C2F, 0x5B6A},
+ {0xE2C32, 0x5BAB},
+ {0xE2C34, 0x5C1B},
+ {0xE2C35, 0x5C2F},
+ {0xE2C37, 0x663C},
+ {0xE2C3B, 0x5CD1},
+ {0xE2C3C, 0x5CDC},
+ {0xE2C3D, 0x5CE6},
+ {0xE2C3E, 0x5CE1},
+ {0xE2C3F, 0x5CCD},
+ {0xE2C41, 0x5CE2},
+ {0xE2C42, 0x5CDD},
+ {0xE2C43, 0x5CE5},
+ {0xE2C44, 0x5DFB},
+ {0xE2C45, 0x5DFA},
+ {0xE2C46, 0x5E1E},
+ {0xE2C48, 0x5EA1},
+ {0xE2C4B, 0x5EFC},
+ {0xE2C4C, 0x5EFB},
+ {0xE2C4D, 0x5F2F},
+ {0xE2C50, 0x5F66},
+ {0xE2C54, 0x605C},
+ {0xE2C56, 0x604E},
+ {0xE2C57, 0x6051},
+ {0xE2C5A, 0x6023},
+ {0xE2C5B, 0x6031},
+ {0xE2C5C, 0x607C},
+ {0xE2C5D, 0x6052},
+ {0xE2C5F, 0x6060},
+ {0xE2C60, 0x604A},
+ {0xE2C61, 0x6061},
+ {0xE2C63, 0x6218},
+ {0xE2C6B, 0x631F},
+ {0xE2C6C, 0x6317},
+ {0xE2C6D, 0x62EA},
+ {0xE2C6E, 0x6321},
+ {0xE2C6F, 0x6304},
+ {0xE2C70, 0x6305},
+ {0xE2C72, 0x6531},
+ {0xE2C73, 0x6544},
+ {0xE2C74, 0x6540},
+ {0xE2C76, 0x6542},
+ {0xE2C77, 0x65BE},
+ {0xE2C79, 0x6629},
+ {0xE2C7A, 0x661B},
+ {0xE2C7C, 0x6623},
+ {0xE2C7D, 0x662C},
+ {0xE2C7E, 0x661A},
+ {0xE2D21, 0x6630},
+ {0xE2D22, 0x663B},
+ {0xE2D23, 0x661E},
+ {0xE2D24, 0x6637},
+ {0xE2D25, 0x6638},
+ {0xE2D27, 0x670E},
+ {0xE2D2A, 0x67E8},
+ {0xE2D2B, 0x67D6},
+ {0xE2D2D, 0x67C7},
+ {0xE2D2E, 0x67BC},
+ {0xE2D2F, 0x6852},
+ {0xE2D30, 0x67BF},
+ {0xE2D31, 0x67D5},
+ {0xE2D32, 0x67FE},
+ {0xE2D33, 0x8363},
+ {0xE2D34, 0x67FB},
+ {0xE2D36, 0x67B1},
+ {0xE2D37, 0x6801},
+ {0xE2D38, 0x6805},
+ {0xE2D39, 0x6800},
+ {0xE2D3A, 0x67D7},
+ {0xE2D3C, 0x6B2A},
+ {0xE2D3D, 0x6B6B},
+ {0xE2D42, 0x6BE1},
+ {0xE2D45, 0x6D23},
+ {0xE2D46, 0x6CFF},
+ {0xE2D47, 0x6D14},
+ {0xE2D48, 0x6D05},
+ {0xE2D49, 0x6D13},
+ {0xE2D4A, 0x6D06},
+ {0xE2D4B, 0x6D21},
+ {0xE2D4D, 0x6D15},
+ {0xE2D4E, 0x6CAF},
+ {0xE2D4F, 0x6CF4},
+ {0xE2D50, 0x6D02},
+ {0xE2D51, 0x6D45},
+ {0xE2D53, 0x6D26},
+ {0xE2D55, 0x6D44},
+ {0xE2D57, 0x6D24},
+ {0xE2D58, 0x70A5},
+ {0xE2D5A, 0x70A3},
+ {0xE2D5C, 0x70A2},
+ {0xE2D5D, 0x70BB},
+ {0xE2D5E, 0x70A0},
+ {0xE2D5F, 0x70AA},
+ {0xE2D62, 0x70A8},
+ {0xE2D63, 0x70B6},
+ {0xE2D64, 0x70B2},
+ {0xE2D65, 0x70A7},
+ {0xE2D68, 0x70B9},
+ {0xE2D69, 0x722E},
+ {0xE2D6B, 0x723C},
+ {0xE2D6D, 0x726D},
+ {0xE2D70, 0x72E7},
+ {0xE2D71, 0x72ED},
+ {0xE2D73, 0x72EC},
+ {0xE2D74, 0x72E5},
+ {0xE2D75, 0x72E2},
+ {0xE2D77, 0x73C4},
+ {0xE2D78, 0x73BD},
+ {0xE2D79, 0x73CF},
+ {0xE2D7A, 0x73C9},
+ {0xE2D7B, 0x73C1},
+ {0xE2D7C, 0x73D0},
+ {0xE2D7E, 0x73CE},
+ {0xE2E21, 0x74ED},
+ {0xE2E22, 0x74EB},
+ {0xE2E24, 0x74EF},
+ {0xE2E25, 0x7549},
+ {0xE2E26, 0x7550},
+ {0xE2E27, 0x7546},
+ {0xE2E28, 0x754A},
+ {0xE2E2A, 0x754D},
+ {0xE2E2B, 0x75A6},
+ {0xE2E2F, 0x75A8},
+ {0xE2E32, 0x76C7},
+ {0xE2E33, 0x76FF},
+ {0xE2E35, 0x76FD},
+ {0xE2E36, 0x77E6},
+ {0xE2E37, 0x780A},
+ {0xE2E39, 0x7804},
+ {0xE2E3A, 0x780B},
+ {0xE2E3B, 0x7807},
+ {0xE2E3D, 0x7815},
+ {0xE2E3E, 0x7808},
+ {0xE2E40, 0x79D3},
+ {0xE2E41, 0x79D4},
+ {0xE2E42, 0x79D0},
+ {0xE2E43, 0x79D7},
+ {0xE2E44, 0x7A7C},
+ {0xE2E47, 0x7A7D},
+ {0xE2E48, 0x7A83},
+ {0xE2E49, 0x7A82},
+ {0xE2E4B, 0x7AD4},
+ {0xE2E4C, 0x7AD5},
+ {0xE2E4D, 0x7AD3},
+ {0xE2E4E, 0x7AD0},
+ {0xE2E4F, 0x7AD2},
+ {0xE2E50, 0x7AFE},
+ {0xE2E51, 0x7AFC},
+ {0xE2E52, 0x7C77},
+ {0xE2E53, 0x7C7C},
+ {0xE2E54, 0x7C7B},
+ {0xE2E5D, 0x7F8F},
+ {0xE2E5E, 0x80D3},
+ {0xE2E60, 0x80CB},
+ {0xE2E61, 0x80D2},
+ {0xE2E63, 0x8109},
+ {0xE2E64, 0x80E2},
+ {0xE2E65, 0x80DF},
+ {0xE2E66, 0x80C6},
+ {0xE2E68, 0x8224},
+ {0xE2E69, 0x82F7},
+ {0xE2E6A, 0x82D8},
+ {0xE2E6B, 0x82DD},
+ {0xE2E6E, 0x82F8},
+ {0xE2E6F, 0x82FC},
+ {0xE2E72, 0x82E9},
+ {0xE2E74, 0x82EE},
+ {0xE2E76, 0x82D0},
+ {0xE2E77, 0x830E},
+ {0xE2E78, 0x82E2},
+ {0xE2E79, 0x830B},
+ {0xE2E7A, 0x82FD},
+ {0xE2E7B, 0x5179},
+ {0xE2E7C, 0x8676},
+ {0xE2E7E, 0x8678},
+ {0xE2F23, 0x8675},
+ {0xE2F24, 0x867D},
+ {0xE2F26, 0x8842},
+ {0xE2F27, 0x8866},
+ {0xE2F29, 0x898C},
+ {0xE2F2A, 0x8A05},
+ {0xE2F2C, 0x8A06},
+ {0xE2F2E, 0x8C9F},
+ {0xE2F30, 0x8FF1},
+ {0xE2F31, 0x8FE7},
+ {0xE2F32, 0x8FE9},
+ {0xE2F33, 0x8FEF},
+ {0xE2F34, 0x90C2},
+ {0xE2F35, 0x90BC},
+ {0xE2F37, 0x90C6},
+ {0xE2F38, 0x90C0},
+ {0xE2F3B, 0x90CD},
+ {0xE2F3C, 0x90C9},
+ {0xE2F3E, 0x90C4},
+ {0xE2F40, 0x9581},
+ {0xE2F42, 0x9CEC},
+ {0xE2F43, 0x5032},
+ {0xE2F44, 0x4FF9},
+ {0xE2F45, 0x501D},
+ {0xE2F46, 0x4FFF},
+ {0xE2F47, 0x5004},
+ {0xE2F48, 0x4FF0},
+ {0xE2F49, 0x5003},
+ {0xE2F4B, 0x5002},
+ {0xE2F4C, 0x4FFC},
+ {0xE2F4D, 0x4FF2},
+ {0xE2F4E, 0x5024},
+ {0xE2F4F, 0x5008},
+ {0xE2F50, 0x5036},
+ {0xE2F51, 0x502E},
+ {0xE2F53, 0x5010},
+ {0xE2F54, 0x5038},
+ {0xE2F55, 0x5039},
+ {0xE2F56, 0x4FFD},
+ {0xE2F57, 0x5056},
+ {0xE2F58, 0x4FFB},
+ {0xE2F59, 0x51A3},
+ {0xE2F5A, 0x51A6},
+ {0xE2F5B, 0x51A1},
+ {0xE2F5E, 0x51C7},
+ {0xE2F5F, 0x51C9},
+ {0xE2F60, 0x5260},
+ {0xE2F61, 0x5264},
+ {0xE2F62, 0x5259},
+ {0xE2F63, 0x5265},
+ {0xE2F64, 0x5267},
+ {0xE2F65, 0x5257},
+ {0xE2F66, 0x5263},
+ {0xE2F68, 0x5253},
+ {0xE2F6A, 0x52CF},
+ {0xE2F6C, 0x52CE},
+ {0xE2F6D, 0x52D0},
+ {0xE2F6E, 0x52D1},
+ {0xE2F6F, 0x52CC},
+ {0xE2F73, 0x550D},
+ {0xE2F74, 0x54F4},
+ {0xE2F76, 0x5513},
+ {0xE2F77, 0x54EF},
+ {0xE2F78, 0x54F5},
+ {0xE2F79, 0x54F9},
+ {0xE2F7A, 0x5502},
+ {0xE2F7B, 0x5500},
+ {0xE2F7E, 0x5518},
+ {0xE3021, 0x54F0},
+ {0xE3022, 0x54F6},
+ {0xE3025, 0x5519},
+ {0xE3027, 0x5705},
+ {0xE3028, 0x57C9},
+ {0xE302A, 0x57B7},
+ {0xE302B, 0x57CD},
+ {0xE302F, 0x57BE},
+ {0xE3030, 0x57BB},
+ {0xE3032, 0x57DB},
+ {0xE3033, 0x57C8},
+ {0xE3034, 0x57C4},
+ {0xE3035, 0x57C5},
+ {0xE3036, 0x57D1},
+ {0xE3037, 0x57CA},
+ {0xE3038, 0x57C0},
+ {0xE303B, 0x5A21},
+ {0xE303C, 0x5A2A},
+ {0xE303E, 0x5A1D},
+ {0xE3040, 0x5A0B},
+ {0xE3045, 0x5A22},
+ {0xE3048, 0x5A24},
+ {0xE304A, 0x5A14},
+ {0xE304B, 0x5A31},
+ {0xE304D, 0x5A2F},
+ {0xE304E, 0x5A1A},
+ {0xE304F, 0x5A12},
+ {0xE3052, 0x5A26},
+ {0xE3055, 0x5BBC},
+ {0xE3056, 0x5BBB},
+ {0xE3057, 0x5BB7},
+ {0xE3058, 0x5C05},
+ {0xE3059, 0x5C06},
+ {0xE305A, 0x5C52},
+ {0xE305B, 0x5C53},
+ {0xE305E, 0x5CFA},
+ {0xE305F, 0x5CEB},
+ {0xE3061, 0x5CF3},
+ {0xE3062, 0x5CF5},
+ {0xE3063, 0x5CE9},
+ {0xE3064, 0x5CEF},
+ {0xE3066, 0x5E2A},
+ {0xE3067, 0x5E30},
+ {0xE3068, 0x5E2E},
+ {0xE3069, 0x5E2C},
+ {0xE306A, 0x5E2F},
+ {0xE306B, 0x5EAF},
+ {0xE306C, 0x5EA9},
+ {0xE306E, 0x5EFD},
+ {0xE306F, 0x5F32},
+ {0xE3070, 0x5F8E},
+ {0xE3071, 0x5F93},
+ {0xE3072, 0x5F8F},
+ {0xE3073, 0x604F},
+ {0xE3074, 0x6099},
+ {0xE3076, 0x607E},
+ {0xE3078, 0x6074},
+ {0xE3079, 0x604B},
+ {0xE307A, 0x6073},
+ {0xE307B, 0x6075},
+ {0xE307E, 0x6056},
+ {0xE3121, 0x60A9},
+ {0xE3122, 0x608B},
+ {0xE3123, 0x60A6},
+ {0xE3125, 0x6093},
+ {0xE3126, 0x60AE},
+ {0xE3127, 0x609E},
+ {0xE3128, 0x60A7},
+ {0xE3129, 0x6245},
+ {0xE312C, 0x632E},
+ {0xE312E, 0x6352},
+ {0xE312F, 0x6330},
+ {0xE3130, 0x635B},
+ {0xE3132, 0x6319},
+ {0xE3133, 0x631B},
+ {0xE3135, 0x6331},
+ {0xE3136, 0x635D},
+ {0xE3137, 0x6337},
+ {0xE3138, 0x6335},
+ {0xE3139, 0x6353},
+ {0xE313B, 0x635C},
+ {0xE313C, 0x633F},
+ {0xE313D, 0x654B},
+ {0xE3140, 0x658B},
+ {0xE3142, 0x659A},
+ {0xE3143, 0x6650},
+ {0xE3144, 0x6646},
+ {0xE3145, 0x664E},
+ {0xE3146, 0x6640},
+ {0xE3148, 0x664B},
+ {0xE3149, 0x6648},
+ {0xE314B, 0x6660},
+ {0xE314C, 0x6644},
+ {0xE314D, 0x664D},
+ {0xE314F, 0x6837},
+ {0xE3150, 0x6824},
+ {0xE3153, 0x681B},
+ {0xE3154, 0x6836},
+ {0xE3156, 0x682C},
+ {0xE3157, 0x6819},
+ {0xE3158, 0x6856},
+ {0xE3159, 0x6847},
+ {0xE315A, 0x683E},
+ {0xE315B, 0x681E},
+ {0xE315D, 0x6815},
+ {0xE315E, 0x6822},
+ {0xE315F, 0x6827},
+ {0xE3160, 0x6859},
+ {0xE3161, 0x6858},
+ {0xE3162, 0x6855},
+ {0xE3163, 0x6830},
+ {0xE3164, 0x6823},
+ {0xE3165, 0x6B2E},
+ {0xE3166, 0x6B2B},
+ {0xE3167, 0x6B30},
+ {0xE3168, 0x6B6C},
+ {0xE316A, 0x6B8B},
+ {0xE316C, 0x6BE9},
+ {0xE316D, 0x6BEA},
+ {0xE316E, 0x6BE5},
+ {0xE316F, 0x6D6B},
+ {0xE3172, 0x6D73},
+ {0xE3173, 0x6D57},
+ {0xE3176, 0x6D5D},
+ {0xE3177, 0x6D56},
+ {0xE3178, 0x6D8F},
+ {0xE3179, 0x6D5B},
+ {0xE317A, 0x6D1C},
+ {0xE317B, 0x6D9A},
+ {0xE317C, 0x6D9B},
+ {0xE317D, 0x6D99},
+ {0xE3221, 0x6D81},
+ {0xE3222, 0x6D71},
+ {0xE3225, 0x6D72},
+ {0xE3226, 0x6D5C},
+ {0xE3227, 0x6D96},
+ {0xE3228, 0x70C4},
+ {0xE3229, 0x70DB},
+ {0xE322A, 0x70CC},
+ {0xE322B, 0x70D0},
+ {0xE322C, 0x70E3},
+ {0xE322D, 0x70DF},
+ {0xE322F, 0x70D6},
+ {0xE3230, 0x70EE},
+ {0xE3231, 0x70D5},
+ {0xE3236, 0x727A},
+ {0xE3238, 0x72F5},
+ {0xE3239, 0x7302},
+ {0xE323C, 0x73E2},
+ {0xE323D, 0x73EC},
+ {0xE323E, 0x73D5},
+ {0xE323F, 0x73F9},
+ {0xE3240, 0x73DF},
+ {0xE3241, 0x73E6},
+ {0xE3246, 0x73E4},
+ {0xE3247, 0x73E1},
+ {0xE3248, 0x74F3},
+ {0xE324D, 0x7556},
+ {0xE324E, 0x7555},
+ {0xE324F, 0x7558},
+ {0xE3250, 0x7557},
+ {0xE3251, 0x755E},
+ {0xE3252, 0x75C3},
+ {0xE3255, 0x75B4},
+ {0xE3257, 0x75B1},
+ {0xE325A, 0x76CB},
+ {0xE325B, 0x76CC},
+ {0xE325C, 0x772A},
+ {0xE325E, 0x7716},
+ {0xE325F, 0x770F},
+ {0xE3262, 0x773F},
+ {0xE3263, 0x772B},
+ {0xE3264, 0x770E},
+ {0xE3265, 0x7724},
+ {0xE3267, 0x7721},
+ {0xE3268, 0x7718},
+ {0xE3269, 0x77DD},
+ {0xE326C, 0x7824},
+ {0xE326D, 0x7836},
+ {0xE326F, 0x7958},
+ {0xE3270, 0x7959},
+ {0xE3272, 0x7962},
+ {0xE3273, 0x79DA},
+ {0xE3274, 0x79D9},
+ {0xE3276, 0x79E1},
+ {0xE3277, 0x79E5},
+ {0xE3278, 0x79E8},
+ {0xE3279, 0x79DB},
+ {0xE327B, 0x79E2},
+ {0xE327C, 0x79F0},
+ {0xE3323, 0x7ADA},
+ {0xE3324, 0x7ADD},
+ {0xE3326, 0x7ADB},
+ {0xE3327, 0x7ADC},
+ {0xE332A, 0x7B0D},
+ {0xE332B, 0x7B0B},
+ {0xE332C, 0x7B14},
+ {0xE332D, 0x7C8E},
+ {0xE332E, 0x7C86},
+ {0xE3330, 0x7C87},
+ {0xE3331, 0x7C83},
+ {0xE3332, 0x7C8B},
+ {0xE3337, 0x7D24},
+ {0xE333B, 0x7D25},
+ {0xE333C, 0x7F62},
+ {0xE333D, 0x7F93},
+ {0xE333E, 0x7F99},
+ {0xE333F, 0x7F97},
+ {0xE3342, 0x7FC4},
+ {0xE3343, 0x7FC6},
+ {0xE3344, 0x800A},
+ {0xE3347, 0x8040},
+ {0xE3348, 0x803C},
+ {0xE3349, 0x803B},
+ {0xE334A, 0x80F6},
+ {0xE334B, 0x80FF},
+ {0xE334C, 0x80EE},
+ {0xE334D, 0x8104},
+ {0xE334E, 0x8103},
+ {0xE334F, 0x8107},
+ {0xE3352, 0x80F7},
+ {0xE3355, 0x822D},
+ {0xE3357, 0x8227},
+ {0xE3358, 0x8229},
+ {0xE3359, 0x831F},
+ {0xE335A, 0x8357},
+ {0xE335F, 0x8321},
+ {0xE3362, 0x8318},
+ {0xE3363, 0x8358},
+ {0xE3369, 0x8684},
+ {0xE336A, 0x869F},
+ {0xE336B, 0x869B},
+ {0xE336C, 0x8689},
+ {0xE336D, 0x86A6},
+ {0xE336E, 0x8692},
+ {0xE336F, 0x868F},
+ {0xE3370, 0x86A0},
+ {0xE3371, 0x884F},
+ {0xE3372, 0x8878},
+ {0xE3373, 0x887A},
+ {0xE3374, 0x886E},
+ {0xE3375, 0x887B},
+ {0xE3376, 0x8884},
+ {0xE3377, 0x8873},
+ {0xE337A, 0x8A0D},
+ {0xE337B, 0x8A0B},
+ {0xE337C, 0x8A19},
+ {0xE3425, 0x8FF9},
+ {0xE3426, 0x9009},
+ {0xE3427, 0x9008},
+ {0xE3429, 0x90DE},
+ {0xE342A, 0x9151},
+ {0xE342D, 0x91DB},
+ {0xE342E, 0x91DF},
+ {0xE342F, 0x91DE},
+ {0xE3430, 0x91D6},
+ {0xE3431, 0x91E0},
+ {0xE3432, 0x9585},
+ {0xE3433, 0x9660},
+ {0xE3434, 0x9659},
+ {0xE3436, 0x9656},
+ {0xE3439, 0x96BD},
+ {0xE343C, 0x5042},
+ {0xE343D, 0x5059},
+ {0xE343F, 0x5044},
+ {0xE3440, 0x5066},
+ {0xE3441, 0x5052},
+ {0xE3442, 0x5054},
+ {0xE3443, 0x5071},
+ {0xE3444, 0x5050},
+ {0xE3445, 0x507B},
+ {0xE3446, 0x507C},
+ {0xE3447, 0x5058},
+ {0xE344A, 0x5079},
+ {0xE344B, 0x506C},
+ {0xE344C, 0x5078},
+ {0xE344D, 0x51A8},
+ {0xE344E, 0x51D1},
+ {0xE344F, 0x51CF},
+ {0xE3450, 0x5268},
+ {0xE3451, 0x5276},
+ {0xE3452, 0x52D4},
+ {0xE3454, 0x53A0},
+ {0xE3455, 0x53C4},
+ {0xE3457, 0x5558},
+ {0xE3458, 0x554C},
+ {0xE3459, 0x5568},
+ {0xE345B, 0x5549},
+ {0xE345E, 0x555D},
+ {0xE345F, 0x5529},
+ {0xE3461, 0x5554},
+ {0xE3462, 0x5553},
+ {0xE3464, 0x555A},
+ {0xE3466, 0x553A},
+ {0xE3467, 0x553F},
+ {0xE3468, 0x552B},
+ {0xE3469, 0x57EA},
+ {0xE346B, 0x57EF},
+ {0xE346E, 0x57DD},
+ {0xE346F, 0x57FE},
+ {0xE3471, 0x57DE},
+ {0xE3472, 0x57E6},
+ {0xE3474, 0x57E8},
+ {0xE3475, 0x57FF},
+ {0xE3476, 0x5803},
+ {0xE3477, 0x58F7},
+ {0xE3478, 0x68A6},
+ {0xE3479, 0x591F},
+ {0xE347B, 0x595B},
+ {0xE347C, 0x595D},
+ {0xE347D, 0x595E},
+ {0xE3522, 0x5A2B},
+ {0xE3524, 0x5A3B},
+ {0xE3527, 0x5A61},
+ {0xE3528, 0x5A3A},
+ {0xE3529, 0x5A6E},
+ {0xE352A, 0x5A4B},
+ {0xE352B, 0x5A6B},
+ {0xE352E, 0x5A45},
+ {0xE352F, 0x5A4E},
+ {0xE3530, 0x5A68},
+ {0xE3531, 0x5A3D},
+ {0xE3532, 0x5A71},
+ {0xE3533, 0x5A3F},
+ {0xE3534, 0x5A6F},
+ {0xE3535, 0x5A75},
+ {0xE3537, 0x5A73},
+ {0xE3538, 0x5A2C},
+ {0xE3539, 0x5A59},
+ {0xE353A, 0x5A54},
+ {0xE353B, 0x5A4F},
+ {0xE353C, 0x5A63},
+ {0xE353F, 0x5BC8},
+ {0xE3541, 0x5BC3},
+ {0xE3543, 0x5C5B},
+ {0xE3544, 0x5C61},
+ {0xE3546, 0x5D21},
+ {0xE3547, 0x5D0A},
+ {0xE3548, 0x5D09},
+ {0xE354A, 0x5D2C},
+ {0xE354B, 0x5D08},
+ {0xE354E, 0x5D2A},
+ {0xE354F, 0x5D15},
+ {0xE3551, 0x5D10},
+ {0xE3552, 0x5D13},
+ {0xE3554, 0x5D2F},
+ {0xE3555, 0x5D18},
+ {0xE3557, 0x5DE3},
+ {0xE3558, 0x5E39},
+ {0xE3559, 0x5E35},
+ {0xE355A, 0x5E3A},
+ {0xE355B, 0x5E32},
+ {0xE3560, 0x5EBB},
+ {0xE3561, 0x5EBA},
+ {0xE3562, 0x5F34},
+ {0xE3563, 0x5F39},
+ {0xE3568, 0x6098},
+ {0xE356A, 0x60D0},
+ {0xE356E, 0x60D7},
+ {0xE356F, 0x60AA},
+ {0xE3571, 0x60A1},
+ {0xE3572, 0x60A4},
+ {0xE3574, 0x60EE},
+ {0xE3576, 0x60E7},
+ {0xE3579, 0x60DE},
+ {0xE357C, 0x637E},
+ {0xE357D, 0x638B},
+ {0xE3622, 0x6379},
+ {0xE3623, 0x6386},
+ {0xE3624, 0x6393},
+ {0xE3626, 0x6373},
+ {0xE3627, 0x636A},
+ {0xE3629, 0x636C},
+ {0xE362B, 0x637F},
+ {0xE362D, 0x63B2},
+ {0xE362E, 0x63BA},
+ {0xE3631, 0x6366},
+ {0xE3632, 0x6374},
+ {0xE3634, 0x655A},
+ {0xE3636, 0x654E},
+ {0xE3637, 0x654D},
+ {0xE3638, 0x658D},
+ {0xE3639, 0x658E},
+ {0xE363A, 0x65AD},
+ {0xE363C, 0x65C7},
+ {0xE363D, 0x65CA},
+ {0xE363F, 0x65C9},
+ {0xE3641, 0x65E3},
+ {0xE3642, 0x6657},
+ {0xE3644, 0x6663},
+ {0xE3645, 0x6667},
+ {0xE3646, 0x671A},
+ {0xE3647, 0x6719},
+ {0xE3648, 0x6716},
+ {0xE364B, 0x689E},
+ {0xE364C, 0x68B6},
+ {0xE364D, 0x6898},
+ {0xE364E, 0x6873},
+ {0xE3650, 0x689A},
+ {0xE3651, 0x688E},
+ {0xE3652, 0x68B7},
+ {0xE3653, 0x68DB},
+ {0xE3654, 0x68A5},
+ {0xE3655, 0x686C},
+ {0xE3656, 0x68C1},
+ {0xE3657, 0x6884},
+ {0xE365A, 0x6895},
+ {0xE365B, 0x687A},
+ {0xE365C, 0x6899},
+ {0xE365E, 0x68B8},
+ {0xE365F, 0x68B9},
+ {0xE3660, 0x6870},
+ {0xE3662, 0x6B35},
+ {0xE3664, 0x6B90},
+ {0xE3665, 0x6BBB},
+ {0xE3666, 0x6BED},
+ {0xE366A, 0x6DC1},
+ {0xE366B, 0x6DC3},
+ {0xE366C, 0x6DCE},
+ {0xE366F, 0x6DAD},
+ {0xE3670, 0x6E04},
+ {0xE3672, 0x6DB9},
+ {0xE3674, 0x6DE7},
+ {0xE3676, 0x6E08},
+ {0xE3677, 0x6E06},
+ {0xE3679, 0x6E0A},
+ {0xE367A, 0x6DB0},
+ {0xE367C, 0x6DF8},
+ {0xE367D, 0x6E0C},
+ {0xE3721, 0x6DB1},
+ {0xE3723, 0x6E02},
+ {0xE3724, 0x6E07},
+ {0xE3725, 0x6E09},
+ {0xE3726, 0x6E01},
+ {0xE3727, 0x6E17},
+ {0xE3728, 0x6DFF},
+ {0xE3729, 0x6E12},
+ {0xE372C, 0x7103},
+ {0xE372D, 0x7107},
+ {0xE372E, 0x7101},
+ {0xE372F, 0x70F5},
+ {0xE3730, 0x70F1},
+ {0xE3731, 0x7108},
+ {0xE3732, 0x70F2},
+ {0xE3733, 0x710F},
+ {0xE3735, 0x70FE},
+ {0xE3739, 0x731A},
+ {0xE373A, 0x7310},
+ {0xE373B, 0x730E},
+ {0xE373C, 0x7402},
+ {0xE373D, 0x73F3},
+ {0xE3740, 0x73FB},
+ {0xE3744, 0x751B},
+ {0xE3745, 0x7523},
+ {0xE3746, 0x7561},
+ {0xE3747, 0x7568},
+ {0xE3749, 0x7567},
+ {0xE374A, 0x75D3},
+ {0xE374D, 0x7690},
+ {0xE3750, 0x76D5},
+ {0xE3751, 0x76D7},
+ {0xE3752, 0x76D6},
+ {0xE3753, 0x7730},
+ {0xE3755, 0x7726},
+ {0xE3757, 0x7740},
+ {0xE3759, 0x771E},
+ {0xE375D, 0x7847},
+ {0xE375F, 0x784B},
+ {0xE3760, 0x7851},
+ {0xE3761, 0x784F},
+ {0xE3762, 0x7842},
+ {0xE3763, 0x7846},
+ {0xE3765, 0x796E},
+ {0xE3766, 0x796C},
+ {0xE3767, 0x79F2},
+ {0xE3769, 0x79F1},
+ {0xE376A, 0x79F5},
+ {0xE376B, 0x79F3},
+ {0xE376C, 0x79F9},
+ {0xE3770, 0x7A9A},
+ {0xE3771, 0x7A93},
+ {0xE3772, 0x7A91},
+ {0xE3773, 0x7AE1},
+ {0xE3776, 0x7B21},
+ {0xE3777, 0x7B1C},
+ {0xE3778, 0x7B16},
+ {0xE3779, 0x7B17},
+ {0xE377A, 0x7B36},
+ {0xE377B, 0x7B1F},
+ {0xE377D, 0x7C93},
+ {0xE377E, 0x7C99},
+ {0xE3821, 0x7C9A},
+ {0xE3822, 0x7C9C},
+ {0xE3824, 0x7D49},
+ {0xE3826, 0x7D34},
+ {0xE3827, 0x7D37},
+ {0xE3829, 0x7D2D},
+ {0xE382B, 0x7D4C},
+ {0xE382E, 0x7D48},
+ {0xE3831, 0x7F3B},
+ {0xE3836, 0x8008},
+ {0xE3837, 0x801A},
+ {0xE3839, 0x801D},
+ {0xE383B, 0x8049},
+ {0xE383C, 0x8045},
+ {0xE383D, 0x8044},
+ {0xE383E, 0x7C9B},
+ {0xE3841, 0x812A},
+ {0xE3842, 0x812E},
+ {0xE3845, 0x8131},
+ {0xE3847, 0x811A},
+ {0xE3848, 0x8134},
+ {0xE3849, 0x8117},
+ {0xE384D, 0x831D},
+ {0xE384E, 0x8371},
+ {0xE384F, 0x8384},
+ {0xE3850, 0x8380},
+ {0xE3851, 0x8372},
+ {0xE3852, 0x83A1},
+ {0xE3854, 0x8379},
+ {0xE3855, 0x8391},
+ {0xE3857, 0x839F},
+ {0xE3858, 0x83AD},
+ {0xE385B, 0x8323},
+ {0xE385D, 0x8385},
+ {0xE385E, 0x839C},
+ {0xE385F, 0x83B7},
+ {0xE3860, 0x8658},
+ {0xE3861, 0x865A},
+ {0xE3863, 0x8657},
+ {0xE3864, 0x86B2},
+ {0xE3866, 0x86AE},
+ {0xE386A, 0x8845},
+ {0xE386B, 0x889C},
+ {0xE386C, 0x8894},
+ {0xE386D, 0x88A3},
+ {0xE386E, 0x888F},
+ {0xE386F, 0x88A5},
+ {0xE3870, 0x88A9},
+ {0xE3871, 0x88A6},
+ {0xE3872, 0x888A},
+ {0xE3873, 0x88A0},
+ {0xE3874, 0x8890},
+ {0xE3875, 0x8992},
+ {0xE3876, 0x8991},
+ {0xE3877, 0x8994},
+ {0xE3879, 0x8A26},
+ {0xE387A, 0x8A32},
+ {0xE387B, 0x8A28},
+ {0xE387E, 0x8A1C},
+ {0xE3922, 0x8A2B},
+ {0xE3923, 0x8A20},
+ {0xE3925, 0x8A29},
+ {0xE3929, 0x8A21},
+ {0xE392A, 0x8C3A},
+ {0xE392C, 0x8C5B},
+ {0xE392D, 0x8C58},
+ {0xE392E, 0x8C7C},
+ {0xE3930, 0x8CA6},
+ {0xE3931, 0x8CAE},
+ {0xE3932, 0x8CAD},
+ {0xE3933, 0x8D65},
+ {0xE3935, 0x8D7E},
+ {0xE3937, 0x8D7C},
+ {0xE3938, 0x8D7F},
+ {0xE3939, 0x8D7A},
+ {0xE393A, 0x8DBD},
+ {0xE393D, 0x8DC0},
+ {0xE393E, 0x8DBB},
+ {0xE393F, 0x8EAD},
+ {0xE3940, 0x8EAF},
+ {0xE3941, 0x8ED6},
+ {0xE3947, 0x8ED9},
+ {0xE394A, 0x9012},
+ {0xE394B, 0x900E},
+ {0xE394C, 0x9025},
+ {0xE394E, 0x9013},
+ {0xE394F, 0x90EE},
+ {0xE3951, 0x90AB},
+ {0xE3952, 0x90F7},
+ {0xE3954, 0x9159},
+ {0xE3955, 0x9154},
+ {0xE3956, 0x91F2},
+ {0xE3957, 0x91F0},
+ {0xE3958, 0x91E5},
+ {0xE3959, 0x91F6},
+ {0xE395C, 0x9587},
+ {0xE395E, 0x965A},
+ {0xE3961, 0x966E},
+ {0xE3965, 0x9679},
+ {0xE3967, 0x98E1},
+ {0xE3968, 0x98E6},
+ {0xE396A, 0x9EC4},
+ {0xE396B, 0x9ED2},
+ {0xE396C, 0x4E80},
+ {0xE396E, 0x4E81},
+ {0xE396F, 0x508F},
+ {0xE3970, 0x5097},
+ {0xE3971, 0x5088},
+ {0xE3972, 0x5089},
+ {0xE3975, 0x5081},
+ {0xE3976, 0x5160},
+ {0xE3979, 0x5E42},
+ {0xE397A, 0x51D3},
+ {0xE397D, 0x51D2},
+ {0xE397E, 0x51D6},
+ {0xE3A21, 0x5273},
+ {0xE3A23, 0x5270},
+ {0xE3A27, 0x53A8},
+ {0xE3A28, 0x53A6},
+ {0xE3A29, 0x53C5},
+ {0xE3A2A, 0x5597},
+ {0xE3A2B, 0x55DE},
+ {0xE3A2E, 0x5596},
+ {0xE3A2F, 0x55B4},
+ {0xE3A31, 0x5585},
+ {0xE3A33, 0x559B},
+ {0xE3A34, 0x55A0},
+ {0xE3A36, 0x5559},
+ {0xE3A38, 0x5586},
+ {0xE3A3B, 0x55AF},
+ {0xE3A3C, 0x557A},
+ {0xE3A40, 0x559E},
+ {0xE3A42, 0x55A9},
+ {0xE3A43, 0x570F},
+ {0xE3A44, 0x570E},
+ {0xE3A45, 0x581A},
+ {0xE3A47, 0x581F},
+ {0xE3A49, 0x583C},
+ {0xE3A4A, 0x5818},
+ {0xE3A4B, 0x583E},
+ {0xE3A4C, 0x5826},
+ {0xE3A4E, 0x583A},
+ {0xE3A50, 0x5822},
+ {0xE3A52, 0x58FB},
+ {0xE3A53, 0x5963},
+ {0xE3A54, 0x5964},
+ {0xE3A56, 0x5AA8},
+ {0xE3A57, 0x5AA3},
+ {0xE3A58, 0x5A82},
+ {0xE3A59, 0x5A88},
+ {0xE3A5A, 0x5AA1},
+ {0xE3A5B, 0x5A85},
+ {0xE3A5C, 0x5A98},
+ {0xE3A5E, 0x5A99},
+ {0xE3A60, 0x5A89},
+ {0xE3A61, 0x5A81},
+ {0xE3A62, 0x5A96},
+ {0xE3A63, 0x5A80},
+ {0xE3A66, 0x5A91},
+ {0xE3A6B, 0x5ACF},
+ {0xE3A72, 0x5A87},
+ {0xE3A73, 0x5AA0},
+ {0xE3A75, 0x5A79},
+ {0xE3A77, 0x5A86},
+ {0xE3A78, 0x5AAB},
+ {0xE3A79, 0x5AAA},
+ {0xE3A7A, 0x5AA4},
+ {0xE3A7B, 0x5A8D},
+ {0xE3A7C, 0x5A7E},
+ {0xE3A7E, 0x5BD5},
+ {0xE3B24, 0x5C1E},
+ {0xE3B25, 0x5C5F},
+ {0xE3B26, 0x5C5E},
+ {0xE3B27, 0x5D44},
+ {0xE3B28, 0x5D3E},
+ {0xE3B2A, 0x5D48},
+ {0xE3B2B, 0x5D1C},
+ {0xE3B2D, 0x5D5B},
+ {0xE3B2E, 0x5D4D},
+ {0xE3B31, 0x5D57},
+ {0xE3B33, 0x5D53},
+ {0xE3B34, 0x5D4F},
+ {0xE3B36, 0x5D3B},
+ {0xE3B37, 0x5D46},
+ {0xE3B3A, 0x5E46},
+ {0xE3B3B, 0x5E47},
+ {0xE3B3D, 0x5E48},
+ {0xE3B3E, 0x5EC0},
+ {0xE3B3F, 0x5EBD},
+ {0xE3B40, 0x5EBF},
+ {0xE3B42, 0x5F11},
+ {0xE3B44, 0x5F3E},
+ {0xE3B45, 0x5F3B},
+ {0xE3B47, 0x5F3A},
+ {0xE3B4B, 0x5FA7},
+ {0xE3B4D, 0x60EA},
+ {0xE3B4F, 0x6107},
+ {0xE3B50, 0x6122},
+ {0xE3B51, 0x610C},
+ {0xE3B54, 0x60B3},
+ {0xE3B55, 0x60D6},
+ {0xE3B56, 0x60D2},
+ {0xE3B58, 0x60E3},
+ {0xE3B59, 0x60E5},
+ {0xE3B5A, 0x60E9},
+ {0xE3B5D, 0x6111},
+ {0xE3B5E, 0x60FD},
+ {0xE3B61, 0x611E},
+ {0xE3B62, 0x6120},
+ {0xE3B63, 0x6121},
+ {0xE3B64, 0x621E},
+ {0xE3B66, 0x63E2},
+ {0xE3B67, 0x63DE},
+ {0xE3B68, 0x63E6},
+ {0xE3B6D, 0x63F8},
+ {0xE3B6F, 0x63FE},
+ {0xE3B70, 0x63C1},
+ {0xE3B71, 0x63BF},
+ {0xE3B72, 0x63F7},
+ {0xE3B73, 0x63D1},
+ {0xE3B74, 0x655F},
+ {0xE3B75, 0x6560},
+ {0xE3B76, 0x6561},
+ {0xE3B79, 0x65D1},
+ {0xE3B7C, 0x667D},
+ {0xE3B7D, 0x666B},
+ {0xE3B7E, 0x667F},
+ {0xE3C23, 0x6673},
+ {0xE3C24, 0x6681},
+ {0xE3C25, 0x666D},
+ {0xE3C26, 0x6669},
+ {0xE3C29, 0x671E},
+ {0xE3C2A, 0x68ED},
+ {0xE3C2F, 0x6903},
+ {0xE3C31, 0x68FE},
+ {0xE3C32, 0x68E5},
+ {0xE3C33, 0x691E},
+ {0xE3C34, 0x6902},
+ {0xE3C37, 0x6909},
+ {0xE3C38, 0x68CA},
+ {0xE3C39, 0x6900},
+ {0xE3C3B, 0x6901},
+ {0xE3C3C, 0x6918},
+ {0xE3C3D, 0x68E2},
+ {0xE3C3E, 0x68CF},
+ {0xE3C40, 0x692E},
+ {0xE3C41, 0x68C5},
+ {0xE3C42, 0x68FF},
+ {0xE3C44, 0x691C},
+ {0xE3C45, 0x68C3},
+ {0xE3C47, 0x6B6F},
+ {0xE3C49, 0x6B6E},
+ {0xE3C4B, 0x6BBE},
+ {0xE3C4D, 0x6BF4},
+ {0xE3C4E, 0x6C2D},
+ {0xE3C50, 0x6DB6},
+ {0xE3C51, 0x6E75},
+ {0xE3C52, 0x6E1E},
+ {0xE3C54, 0x6E18},
+ {0xE3C56, 0x6E48},
+ {0xE3C58, 0x6E4F},
+ {0xE3C5A, 0x6E42},
+ {0xE3C5B, 0x6E6A},
+ {0xE3C5C, 0x6E70},
+ {0xE3C5D, 0x6DFE},
+ {0xE3C60, 0x6E6D},
+ {0xE3C62, 0x6E7B},
+ {0xE3C63, 0x6E7E},
+ {0xE3C64, 0x6E59},
+ {0xE3C66, 0x6E57},
+ {0xE3C68, 0x6E80},
+ {0xE3C69, 0x6E50},
+ {0xE3C6B, 0x6E29},
+ {0xE3C6C, 0x6E76},
+ {0xE3C6D, 0x6E2A},
+ {0xE3C6E, 0x6E4C},
+ {0xE3C6F, 0x712A},
+ {0xE3C71, 0x7135},
+ {0xE3C72, 0x712C},
+ {0xE3C73, 0x7137},
+ {0xE3C74, 0x711D},
+ {0xE3C77, 0x7138},
+ {0xE3C79, 0x7134},
+ {0xE3C7A, 0x712B},
+ {0xE3C7B, 0x7133},
+ {0xE3C7C, 0x7127},
+ {0xE3C7D, 0x7124},
+ {0xE3D21, 0x712D},
+ {0xE3D22, 0x7232},
+ {0xE3D23, 0x7283},
+ {0xE3D24, 0x7282},
+ {0xE3D25, 0x7287},
+ {0xE3D26, 0x7306},
+ {0xE3D27, 0x7324},
+ {0xE3D28, 0x7338},
+ {0xE3D29, 0x732A},
+ {0xE3D2A, 0x732C},
+ {0xE3D2B, 0x732B},
+ {0xE3D2D, 0x732F},
+ {0xE3D2E, 0x7328},
+ {0xE3D2F, 0x7417},
+ {0xE3D32, 0x7419},
+ {0xE3D33, 0x7438},
+ {0xE3D35, 0x741F},
+ {0xE3D36, 0x7414},
+ {0xE3D37, 0x743C},
+ {0xE3D38, 0x73F7},
+ {0xE3D39, 0x741C},
+ {0xE3D3A, 0x7415},
+ {0xE3D3B, 0x7418},
+ {0xE3D3C, 0x7439},
+ {0xE3D3D, 0x74F9},
+ {0xE3D3E, 0x7524},
+ {0xE3D42, 0x756E},
+ {0xE3D43, 0x756D},
+ {0xE3D44, 0x7571},
+ {0xE3D45, 0x758E},
+ {0xE3D47, 0x75E5},
+ {0xE3D4C, 0x7694},
+ {0xE3D4D, 0x76B3},
+ {0xE3D4F, 0x76D9},
+ {0xE3D51, 0x7748},
+ {0xE3D52, 0x7749},
+ {0xE3D53, 0x7743},
+ {0xE3D56, 0x7742},
+ {0xE3D57, 0x77DF},
+ {0xE3D59, 0x7863},
+ {0xE3D5A, 0x7876},
+ {0xE3D5C, 0x785F},
+ {0xE3D5D, 0x7866},
+ {0xE3D5E, 0x7966},
+ {0xE3D5F, 0x7971},
+ {0xE3D62, 0x7976},
+ {0xE3D63, 0x7984},
+ {0xE3D64, 0x7975},
+ {0xE3D65, 0x79FF},
+ {0xE3D66, 0x7A07},
+ {0xE3D68, 0x7A0E},
+ {0xE3D69, 0x7A09},
+ {0xE3D70, 0x7AE7},
+ {0xE3D71, 0x7AE2},
+ {0xE3D72, 0x7B55},
+ {0xE3D75, 0x7B43},
+ {0xE3D76, 0x7B57},
+ {0xE3D77, 0x7B6C},
+ {0xE3D78, 0x7B42},
+ {0xE3D79, 0x7B53},
+ {0xE3D7B, 0x7B41},
+ {0xE3D7E, 0x7CA7},
+ {0xE3E21, 0x7CA0},
+ {0xE3E22, 0x7CA6},
+ {0xE3E23, 0x7CA4},
+ {0xE3E24, 0x7D74},
+ {0xE3E26, 0x7D59},
+ {0xE3E28, 0x7D60},
+ {0xE3E29, 0x7D57},
+ {0xE3E2A, 0x7D6C},
+ {0xE3E2B, 0x7D7E},
+ {0xE3E2C, 0x7D64},
+ {0xE3E2E, 0x7D5A},
+ {0xE3E2F, 0x7D5D},
+ {0xE3E33, 0x7D76},
+ {0xE3E34, 0x7D4D},
+ {0xE3E35, 0x7D75},
+ {0xE3E37, 0x7FD3},
+ {0xE3E38, 0x7FD6},
+ {0xE3E3B, 0x8060},
+ {0xE3E3C, 0x804E},
+ {0xE3E3D, 0x8145},
+ {0xE3E3E, 0x813B},
+ {0xE3E40, 0x8148},
+ {0xE3E41, 0x8142},
+ {0xE3E42, 0x8149},
+ {0xE3E43, 0x8140},
+ {0xE3E44, 0x8114},
+ {0xE3E45, 0x8141},
+ {0xE3E47, 0x81EF},
+ {0xE3E48, 0x81F6},
+ {0xE3E49, 0x8203},
+ {0xE3E4B, 0x83ED},
+ {0xE3E4D, 0x83DA},
+ {0xE3E4E, 0x8418},
+ {0xE3E4F, 0x83D2},
+ {0xE3E50, 0x8408},
+ {0xE3E52, 0x8400},
+ {0xE3E56, 0x8417},
+ {0xE3E57, 0x8346},
+ {0xE3E58, 0x8414},
+ {0xE3E59, 0x83D3},
+ {0xE3E5A, 0x8405},
+ {0xE3E5B, 0x841F},
+ {0xE3E5C, 0x8402},
+ {0xE3E5D, 0x8416},
+ {0xE3E5E, 0x83CD},
+ {0xE3E5F, 0x83E6},
+ {0xE3E61, 0x865D},
+ {0xE3E62, 0x86D5},
+ {0xE3E63, 0x86E1},
+ {0xE3E68, 0x86EE},
+ {0xE3E69, 0x8847},
+ {0xE3E6A, 0x8846},
+ {0xE3E6D, 0x88BB},
+ {0xE3E6F, 0x88BF},
+ {0xE3E70, 0x88B4},
+ {0xE3E72, 0x88B5},
+ {0xE3E74, 0x899A},
+ {0xE3E75, 0x8A43},
+ {0xE3E78, 0x8A5A},
+ {0xE3E7C, 0x8A35},
+ {0xE3E7D, 0x8A38},
+ {0xE3E7E, 0x8A42},
+ {0xE3F21, 0x8A49},
+ {0xE3F22, 0x8A5D},
+ {0xE3F23, 0x8A4B},
+ {0xE3F24, 0x8A3D},
+ {0xE3F29, 0x8C60},
+ {0xE3F2A, 0x8C5E},
+ {0xE3F2B, 0x8C7F},
+ {0xE3F2C, 0x8C7E},
+ {0xE3F2D, 0x8C83},
+ {0xE3F2F, 0x8CB1},
+ {0xE3F30, 0x8D87},
+ {0xE3F33, 0x8D88},
+ {0xE3F34, 0x8D83},
+ {0xE3F37, 0x8D86},
+ {0xE3F38, 0x8D8B},
+ {0xE3F39, 0x8D82},
+ {0xE3F3A, 0x8DCA},
+ {0xE3F3B, 0x8DD2},
+ {0xE3F3E, 0x8DD4},
+ {0xE3F3F, 0x8DC9},
+ {0xE3F40, 0x8EB0},
+ {0xE3F44, 0x8EF2},
+ {0xE3F45, 0x8EE4},
+ {0xE3F46, 0x8EF3},
+ {0xE3F47, 0x8EEA},
+ {0xE3F49, 0x8EFD},
+ {0xE3F4B, 0x8F9D},
+ {0xE3F4C, 0x902B},
+ {0xE3F4D, 0x902A},
+ {0xE3F4F, 0x9028},
+ {0xE3F50, 0x9029},
+ {0xE3F51, 0x902C},
+ {0xE3F54, 0x903A},
+ {0xE3F55, 0x9030},
+ {0xE3F56, 0x9037},
+ {0xE3F57, 0x903B},
+ {0xE3F59, 0x910A},
+ {0xE3F5D, 0x91FE},
+ {0xE3F5E, 0x9220},
+ {0xE3F60, 0x920B},
+ {0xE3F62, 0x9218},
+ {0xE3F63, 0x9222},
+ {0xE3F65, 0x921B},
+ {0xE3F66, 0x9208},
+ {0xE3F68, 0x920E},
+ {0xE3F69, 0x9213},
+ {0xE3F6C, 0x9595},
+ {0xE3F70, 0x968C},
+ {0xE3F71, 0x967B},
+ {0xE3F72, 0x967F},
+ {0xE3F73, 0x9681},
+ {0xE3F75, 0x9682},
+ {0xE3F7B, 0x96EE},
+ {0xE3F7C, 0x96ED},
+ {0xE3F7E, 0x96EC},
+ {0xE4021, 0x975F},
+ {0xE4022, 0x976F},
+ {0xE4024, 0x976D},
+ {0xE402B, 0x98F0},
+ {0xE402F, 0x9AA9},
+ {0xE4032, 0x9AE0},
+ {0xE4033, 0x4EB7},
+ {0xE4036, 0x50CC},
+ {0xE4037, 0x50BC},
+ {0xE4039, 0x50AA},
+ {0xE403A, 0x50B9},
+ {0xE403C, 0x50AB},
+ {0xE403D, 0x50C3},
+ {0xE403E, 0x50CD},
+ {0xE403F, 0x517E},
+ {0xE4040, 0x527E},
+ {0xE4041, 0x5279},
+ {0xE4044, 0x52E1},
+ {0xE4045, 0x52E0},
+ {0xE4046, 0x52E7},
+ {0xE4047, 0x5380},
+ {0xE4048, 0x53AB},
+ {0xE4049, 0x53AA},
+ {0xE404A, 0x53A9},
+ {0xE404B, 0x53E0},
+ {0xE404C, 0x55EA},
+ {0xE404E, 0x55D7},
+ {0xE4051, 0x55C1},
+ {0xE4052, 0x5715},
+ {0xE4054, 0x586C},
+ {0xE4056, 0x585C},
+ {0xE4057, 0x5850},
+ {0xE4058, 0x5861},
+ {0xE4059, 0x586A},
+ {0xE405A, 0x5869},
+ {0xE405B, 0x5856},
+ {0xE405C, 0x5860},
+ {0xE405D, 0x5866},
+ {0xE405E, 0x585F},
+ {0xE405F, 0x5923},
+ {0xE4060, 0x5966},
+ {0xE4061, 0x5968},
+ {0xE4064, 0x5ACE},
+ {0xE4066, 0x5AC5},
+ {0xE4067, 0x5AC3},
+ {0xE406A, 0x5AD0},
+ {0xE4071, 0x5B74},
+ {0xE4072, 0x5B76},
+ {0xE4073, 0x5BDC},
+ {0xE4074, 0x5BD7},
+ {0xE4075, 0x5BDA},
+ {0xE4076, 0x5BDB},
+ {0xE4078, 0x5C20},
+ {0xE4079, 0x5D6D},
+ {0xE407A, 0x5D66},
+ {0xE407C, 0x5D64},
+ {0xE407D, 0x5D6E},
+ {0xE4121, 0x5D60},
+ {0xE4122, 0x5F42},
+ {0xE4123, 0x5F5A},
+ {0xE4124, 0x5F6E},
+ {0xE4127, 0x6130},
+ {0xE4128, 0x613A},
+ {0xE4129, 0x612A},
+ {0xE412A, 0x6143},
+ {0xE412B, 0x6119},
+ {0xE412C, 0x6131},
+ {0xE412E, 0x613D},
+ {0xE4132, 0x6408},
+ {0xE4133, 0x6432},
+ {0xE4134, 0x6438},
+ {0xE4136, 0x6431},
+ {0xE4138, 0x6419},
+ {0xE413A, 0x6411},
+ {0xE413D, 0x6429},
+ {0xE413E, 0x641D},
+ {0xE4142, 0x643C},
+ {0xE4144, 0x6446},
+ {0xE4145, 0x6447},
+ {0xE4148, 0x643A},
+ {0xE4149, 0x6407},
+ {0xE414B, 0x656B},
+ {0xE414D, 0x6570},
+ {0xE414E, 0x656D},
+ {0xE4150, 0x65E4},
+ {0xE4151, 0x6693},
+ {0xE4156, 0x668F},
+ {0xE4159, 0x6692},
+ {0xE415B, 0x668E},
+ {0xE415D, 0x6946},
+ {0xE4165, 0x6931},
+ {0xE4168, 0x693E},
+ {0xE416A, 0x697C},
+ {0xE416B, 0x6943},
+ {0xE416D, 0x6973},
+ {0xE416F, 0x6955},
+ {0xE4172, 0x6985},
+ {0xE4173, 0x694D},
+ {0xE4174, 0x6950},
+ {0xE4175, 0x6947},
+ {0xE4176, 0x6967},
+ {0xE4177, 0x6936},
+ {0xE4178, 0x6964},
+ {0xE4179, 0x6961},
+ {0xE417B, 0x697D},
+ {0xE417C, 0x6B44},
+ {0xE417D, 0x6B40},
+ {0xE417E, 0x6B71},
+ {0xE4221, 0x6B73},
+ {0xE4222, 0x6B9C},
+ {0xE4226, 0x6BC1},
+ {0xE4228, 0x6BFA},
+ {0xE4229, 0x6C31},
+ {0xE422A, 0x6C32},
+ {0xE422D, 0x6EB8},
+ {0xE422E, 0x6EA8},
+ {0xE4230, 0x6E91},
+ {0xE4231, 0x6EBB},
+ {0xE4233, 0x6E9A},
+ {0xE4236, 0x6EA9},
+ {0xE4239, 0x6EB5},
+ {0xE423A, 0x6E6C},
+ {0xE423B, 0x6EE8},
+ {0xE423D, 0x6EDD},
+ {0xE423E, 0x6EDA},
+ {0xE423F, 0x6EE6},
+ {0xE4240, 0x6EAC},
+ {0xE4244, 0x6ED9},
+ {0xE4245, 0x6EE3},
+ {0xE4246, 0x6EE9},
+ {0xE4247, 0x6EDB},
+ {0xE4249, 0x716F},
+ {0xE424C, 0x7148},
+ {0xE424E, 0x714A},
+ {0xE424F, 0x716B},
+ {0xE4251, 0x714F},
+ {0xE4252, 0x7157},
+ {0xE4253, 0x7174},
+ {0xE4257, 0x7145},
+ {0xE4258, 0x7151},
+ {0xE4259, 0x716D},
+ {0xE425B, 0x7251},
+ {0xE425C, 0x7250},
+ {0xE425D, 0x724E},
+ {0xE425F, 0x7341},
+ {0xE4261, 0x732E},
+ {0xE4262, 0x7346},
+ {0xE4264, 0x7427},
+ {0xE4266, 0x7448},
+ {0xE4267, 0x7453},
+ {0xE4268, 0x743D},
+ {0xE426A, 0x745D},
+ {0xE426B, 0x7456},
+ {0xE426D, 0x741E},
+ {0xE426E, 0x7447},
+ {0xE426F, 0x7443},
+ {0xE4270, 0x7458},
+ {0xE4271, 0x7449},
+ {0xE4273, 0x744C},
+ {0xE4274, 0x7445},
+ {0xE4275, 0x743E},
+ {0xE4277, 0x7501},
+ {0xE4278, 0x751E},
+ {0xE427B, 0x757A},
+ {0xE427C, 0x75EE},
+ {0xE427D, 0x7602},
+ {0xE427E, 0x7697},
+ {0xE4321, 0x7698},
+ {0xE4325, 0x775D},
+ {0xE4326, 0x7764},
+ {0xE4327, 0x7753},
+ {0xE4328, 0x7758},
+ {0xE4329, 0x7882},
+ {0xE432A, 0x7890},
+ {0xE432B, 0x788A},
+ {0xE432D, 0x787A},
+ {0xE432E, 0x787D},
+ {0xE4330, 0x788B},
+ {0xE4331, 0x7878},
+ {0xE4334, 0x788D},
+ {0xE4335, 0x7888},
+ {0xE4336, 0x7892},
+ {0xE4337, 0x7881},
+ {0xE4338, 0x797E},
+ {0xE4339, 0x7983},
+ {0xE433D, 0x7980},
+ {0xE4341, 0x7A0F},
+ {0xE4344, 0x7A1D},
+ {0xE4346, 0x7AA1},
+ {0xE4347, 0x7AA4},
+ {0xE4349, 0x7AE9},
+ {0xE434A, 0x7AEA},
+ {0xE434C, 0x7B62},
+ {0xE434D, 0x7B6B},
+ {0xE434F, 0x7B5E},
+ {0xE4351, 0x7B79},
+ {0xE4354, 0x7B6F},
+ {0xE4355, 0x7B68},
+ {0xE4358, 0x7CAE},
+ {0xE435C, 0x7CB0},
+ {0xE435E, 0x7D90},
+ {0xE4360, 0x7D8A},
+ {0xE4362, 0x7D8B},
+ {0xE4363, 0x7D99},
+ {0xE4364, 0x7D95},
+ {0xE4366, 0x7D87},
+ {0xE4367, 0x7D78},
+ {0xE4368, 0x7D97},
+ {0xE4369, 0x7D89},
+ {0xE436A, 0x7D98},
+ {0xE436E, 0x7FA3},
+ {0xE4372, 0x7FDD},
+ {0xE4373, 0x8057},
+ {0xE4375, 0x8163},
+ {0xE4376, 0x816A},
+ {0xE4377, 0x816C},
+ {0xE437B, 0x815D},
+ {0xE437C, 0x8175},
+ {0xE437E, 0x815F},
+ {0xE4422, 0x817D},
+ {0xE4423, 0x816D},
+ {0xE4426, 0x8241},
+ {0xE4427, 0x844F},
+ {0xE4428, 0x8484},
+ {0xE442A, 0x847F},
+ {0xE442C, 0x8448},
+ {0xE442D, 0x842A},
+ {0xE442E, 0x847B},
+ {0xE442F, 0x8472},
+ {0xE4430, 0x8464},
+ {0xE4431, 0x842E},
+ {0xE4432, 0x845C},
+ {0xE4433, 0x8453},
+ {0xE4435, 0x8441},
+ {0xE4436, 0x84C8},
+ {0xE4438, 0x8462},
+ {0xE4439, 0x8480},
+ {0xE443A, 0x843E},
+ {0xE443B, 0x8483},
+ {0xE443C, 0x8471},
+ {0xE443E, 0x844A},
+ {0xE443F, 0x8455},
+ {0xE4440, 0x8458},
+ {0xE4444, 0x86FC},
+ {0xE4445, 0x86FD},
+ {0xE4446, 0x8715},
+ {0xE4448, 0x8716},
+ {0xE4449, 0x86FF},
+ {0xE444D, 0x8858},
+ {0xE444E, 0x88CF},
+ {0xE444F, 0x88E0},
+ {0xE4454, 0x89E7},
+ {0xE4455, 0x8A6A},
+ {0xE4456, 0x8A80},
+ {0xE4458, 0x8A6F},
+ {0xE4459, 0x8A65},
+ {0xE445B, 0x8A78},
+ {0xE445C, 0x8A7D},
+ {0xE445D, 0x8A88},
+ {0xE4460, 0x8A64},
+ {0xE4461, 0x8A7E},
+ {0xE4463, 0x8A67},
+ {0xE4464, 0x8C63},
+ {0xE4465, 0x8C88},
+ {0xE4467, 0x8CCD},
+ {0xE4469, 0x8CC9},
+ {0xE446B, 0x8DED},
+ {0xE4473, 0x8EB1},
+ {0xE4476, 0x8F04},
+ {0xE4477, 0x8F9E},
+ {0xE4478, 0x8FA0},
+ {0xE4479, 0x9043},
+ {0xE447A, 0x9046},
+ {0xE447B, 0x9048},
+ {0xE447C, 0x9045},
+ {0xE447D, 0x9040},
+ {0xE447E, 0x904C},
+ {0xE4523, 0x910C},
+ {0xE4524, 0x9113},
+ {0xE4525, 0x9115},
+ {0xE4527, 0x916B},
+ {0xE4528, 0x9167},
+ {0xE4529, 0x925D},
+ {0xE452A, 0x9255},
+ {0xE452B, 0x9235},
+ {0xE452D, 0x9259},
+ {0xE452E, 0x922F},
+ {0xE452F, 0x923C},
+ {0xE4530, 0x928F},
+ {0xE4531, 0x925C},
+ {0xE4532, 0x926A},
+ {0xE4533, 0x9262},
+ {0xE4534, 0x925F},
+ {0xE4535, 0x926B},
+ {0xE4536, 0x926E},
+ {0xE4537, 0x923B},
+ {0xE4538, 0x9244},
+ {0xE4539, 0x9241},
+ {0xE453A, 0x959A},
+ {0xE453C, 0x9599},
+ {0xE4540, 0x968F},
+ {0xE4542, 0x9696},
+ {0xE4546, 0x96F4},
+ {0xE4547, 0x96FC},
+ {0xE4549, 0x9755},
+ {0xE454B, 0x9779},
+ {0xE454F, 0x97EE},
+ {0xE4550, 0x97F5},
+ {0xE4552, 0x980B},
+ {0xE4554, 0x98F3},
+ {0xE4557, 0x98F7},
+ {0xE4558, 0x98FF},
+ {0xE4559, 0x98F5},
+ {0xE455B, 0x98EC},
+ {0xE455C, 0x98F1},
+ {0xE455F, 0x999A},
+ {0xE4561, 0x9AE2},
+ {0xE4562, 0x9B3D},
+ {0xE4563, 0x9B5D},
+ {0xE4564, 0x9CE8},
+ {0xE4566, 0x9CEB},
+ {0xE4567, 0x9CEF},
+ {0xE4568, 0x9CEE},
+ {0xE4569, 0x9E81},
+ {0xE456A, 0x9F14},
+ {0xE456B, 0x50D0},
+ {0xE456C, 0x50D9},
+ {0xE456D, 0x50DC},
+ {0xE456E, 0x50D8},
+ {0xE4570, 0x50E1},
+ {0xE4571, 0x50EB},
+ {0xE4574, 0x50F4},
+ {0xE4575, 0x50E2},
+ {0xE4576, 0x50DE},
+ {0xE457A, 0x51F4},
+ {0xE457E, 0x52ED},
+ {0xE4621, 0x52EA},
+ {0xE4623, 0x5332},
+ {0xE4625, 0x53AE},
+ {0xE4626, 0x53B0},
+ {0xE4628, 0x55FB},
+ {0xE4629, 0x5603},
+ {0xE462A, 0x560B},
+ {0xE462C, 0x5607},
+ {0xE462E, 0x55F8},
+ {0xE4630, 0x5628},
+ {0xE4631, 0x561E},
+ {0xE4633, 0x5618},
+ {0xE4634, 0x5611},
+ {0xE4635, 0x5651},
+ {0xE4636, 0x5605},
+ {0xE4637, 0x5717},
+ {0xE4638, 0x5892},
+ {0xE463A, 0x588C},
+ {0xE463C, 0x5878},
+ {0xE463D, 0x5884},
+ {0xE463E, 0x5873},
+ {0xE463F, 0x58AD},
+ {0xE4640, 0x5897},
+ {0xE4641, 0x5895},
+ {0xE4642, 0x5877},
+ {0xE4643, 0x5872},
+ {0xE4644, 0x5896},
+ {0xE4645, 0x588D},
+ {0xE4646, 0x5910},
+ {0xE4648, 0x596C},
+ {0xE464A, 0x5AE7},
+ {0xE464C, 0x5AE4},
+ {0xE464F, 0x5AEF},
+ {0xE4650, 0x5626},
+ {0xE4653, 0x5AF0},
+ {0xE4654, 0x5D7B},
+ {0xE4656, 0x5D83},
+ {0xE4659, 0x5D8B},
+ {0xE465A, 0x5D8C},
+ {0xE465C, 0x5D78},
+ {0xE465D, 0x5E52},
+ {0xE4660, 0x5ED0},
+ {0xE4661, 0x5ECF},
+ {0xE4663, 0x5FB3},
+ {0xE4664, 0x5FB4},
+ {0xE4668, 0x617B},
+ {0xE466A, 0x616F},
+ {0xE466B, 0x6181},
+ {0xE466C, 0x613C},
+ {0xE466D, 0x6142},
+ {0xE466E, 0x6138},
+ {0xE466F, 0x6133},
+ {0xE4671, 0x6160},
+ {0xE4672, 0x6169},
+ {0xE4673, 0x617D},
+ {0xE4674, 0x6186},
+ {0xE4675, 0x622C},
+ {0xE4676, 0x6228},
+ {0xE4678, 0x644C},
+ {0xE467A, 0x6457},
+ {0xE467B, 0x647C},
+ {0xE467E, 0x6455},
+ {0xE4721, 0x6462},
+ {0xE4722, 0x6471},
+ {0xE4723, 0x646A},
+ {0xE4724, 0x6456},
+ {0xE4725, 0x643B},
+ {0xE4726, 0x6481},
+ {0xE4728, 0x644F},
+ {0xE4729, 0x647E},
+ {0xE472A, 0x6464},
+ {0xE4730, 0x6571},
+ {0xE4733, 0x66A5},
+ {0xE4734, 0x669A},
+ {0xE4735, 0x669C},
+ {0xE4737, 0x66A6},
+ {0xE4739, 0x66A4},
+ {0xE473A, 0x698F},
+ {0xE473B, 0x69C5},
+ {0xE473C, 0x69C8},
+ {0xE473D, 0x6992},
+ {0xE473E, 0x69B2},
+ {0xE4742, 0x69E3},
+ {0xE4743, 0x69C0},
+ {0xE4744, 0x69D6},
+ {0xE4745, 0x69D1},
+ {0xE4746, 0x699F},
+ {0xE4747, 0x69A2},
+ {0xE4748, 0x69D2},
+ {0xE474C, 0x69E1},
+ {0xE474D, 0x69D5},
+ {0xE474E, 0x699D},
+ {0xE4751, 0x6998},
+ {0xE4753, 0x6B74},
+ {0xE4754, 0x6BA1},
+ {0xE4756, 0x6EF0},
+ {0xE4757, 0x6EF3},
+ {0xE475A, 0x6F1B},
+ {0xE475B, 0x6F0C},
+ {0xE475C, 0x6F1D},
+ {0xE475D, 0x6F34},
+ {0xE475E, 0x6F28},
+ {0xE475F, 0x6F17},
+ {0xE4761, 0x6F44},
+ {0xE4762, 0x6F42},
+ {0xE4763, 0x6F04},
+ {0xE4764, 0x6F11},
+ {0xE4765, 0x6EFA},
+ {0xE4766, 0x6F4A},
+ {0xE4767, 0x7191},
+ {0xE4768, 0x718E},
+ {0xE476A, 0x718B},
+ {0xE476B, 0x718D},
+ {0xE476C, 0x717F},
+ {0xE476D, 0x718C},
+ {0xE476E, 0x717E},
+ {0xE476F, 0x717C},
+ {0xE4770, 0x7183},
+ {0xE4772, 0x7188},
+ {0xE4775, 0x7294},
+ {0xE4777, 0x7355},
+ {0xE4778, 0x7353},
+ {0xE4779, 0x734F},
+ {0xE477A, 0x7354},
+ {0xE477B, 0x746C},
+ {0xE477C, 0x7465},
+ {0xE477D, 0x7466},
+ {0xE477E, 0x7461},
+ {0xE4821, 0x746B},
+ {0xE4822, 0x7468},
+ {0xE4823, 0x7476},
+ {0xE4825, 0x7460},
+ {0xE4827, 0x7474},
+ {0xE4828, 0x7506},
+ {0xE4829, 0x760E},
+ {0xE482B, 0x7607},
+ {0xE482E, 0x76B9},
+ {0xE4830, 0x76B7},
+ {0xE4831, 0x76E2},
+ {0xE4833, 0x7774},
+ {0xE4834, 0x7777},
+ {0xE4835, 0x7776},
+ {0xE4836, 0x7775},
+ {0xE4838, 0x7778},
+ {0xE4839, 0x7771},
+ {0xE483B, 0x777A},
+ {0xE483C, 0x715B},
+ {0xE483D, 0x777B},
+ {0xE483E, 0x78A6},
+ {0xE483F, 0x78AE},
+ {0xE4840, 0x78B8},
+ {0xE4844, 0x78B1},
+ {0xE4845, 0x78AF},
+ {0xE4847, 0x7989},
+ {0xE4848, 0x7987},
+ {0xE484B, 0x7A29},
+ {0xE484D, 0x7A2A},
+ {0xE484F, 0x7A2D},
+ {0xE4850, 0x7A2C},
+ {0xE4852, 0x7A32},
+ {0xE4854, 0x7AEC},
+ {0xE4855, 0x7AF0},
+ {0xE4856, 0x7B81},
+ {0xE4857, 0x7B9E},
+ {0xE4858, 0x7B83},
+ {0xE485A, 0x7B92},
+ {0xE485C, 0x7BA3},
+ {0xE485D, 0x7B9F},
+ {0xE485E, 0x7B93},
+ {0xE4860, 0x7B86},
+ {0xE4861, 0x7CB8},
+ {0xE4862, 0x7CB7},
+ {0xE4868, 0x7DC8},
+ {0xE4869, 0x7DB6},
+ {0xE486B, 0x7DD1},
+ {0xE486D, 0x7DA8},
+ {0xE486E, 0x7DAB},
+ {0xE4870, 0x7DB3},
+ {0xE4871, 0x7DCD},
+ {0xE4873, 0x7DCF},
+ {0xE4874, 0x7DA4},
+ {0xE4877, 0x7F41},
+ {0xE4878, 0x7F6F},
+ {0xE4879, 0x7F71},
+ {0xE4922, 0x8023},
+ {0xE4923, 0x805B},
+ {0xE4925, 0x8061},
+ {0xE4926, 0x805F},
+ {0xE4927, 0x8181},
+ {0xE492A, 0x8184},
+ {0xE492B, 0x8213},
+ {0xE492D, 0x824A},
+ {0xE492E, 0x824C},
+ {0xE4932, 0x84BD},
+ {0xE4933, 0x8495},
+ {0xE4935, 0x8492},
+ {0xE4936, 0x84C3},
+ {0xE4938, 0x8496},
+ {0xE4939, 0x84A5},
+ {0xE493A, 0x84B5},
+ {0xE493B, 0x84B3},
+ {0xE493C, 0x84A3},
+ {0xE493D, 0x84E4},
+ {0xE493E, 0x84D8},
+ {0xE493F, 0x84D5},
+ {0xE4941, 0x84B7},
+ {0xE4942, 0x84AD},
+ {0xE4943, 0x84DA},
+ {0xE4944, 0x8493},
+ {0xE4945, 0x8736},
+ {0xE4949, 0x873D},
+ {0xE494A, 0x872B},
+ {0xE494B, 0x8747},
+ {0xE494C, 0x8739},
+ {0xE494E, 0x8745},
+ {0xE494F, 0x871D},
+ {0xE4951, 0x88FF},
+ {0xE4952, 0x88EA},
+ {0xE4954, 0x88F5},
+ {0xE4956, 0x8900},
+ {0xE4957, 0x88ED},
+ {0xE4958, 0x8903},
+ {0xE4959, 0x88E9},
+ {0xE495C, 0x89EA},
+ {0xE495E, 0x8A9B},
+ {0xE495F, 0x8A8E},
+ {0xE4960, 0x8AA2},
+ {0xE4962, 0x8A9C},
+ {0xE4963, 0x8A94},
+ {0xE4964, 0x8A90},
+ {0xE4965, 0x8AA9},
+ {0xE4966, 0x8AAC},
+ {0xE4968, 0x8A9F},
+ {0xE496B, 0x8A9D},
+ {0xE496D, 0x8C67},
+ {0xE4970, 0x8CD0},
+ {0xE4971, 0x8CD6},
+ {0xE4972, 0x8CD4},
+ {0xE4973, 0x8D98},
+ {0xE4974, 0x8D9A},
+ {0xE4975, 0x8D97},
+ {0xE4979, 0x8E0B},
+ {0xE497A, 0x8E08},
+ {0xE497B, 0x8E01},
+ {0xE497C, 0x8EB4},
+ {0xE497D, 0x8EB3},
+ {0xE4A21, 0x8FA1},
+ {0xE4A22, 0x8FA2},
+ {0xE4A24, 0x905A},
+ {0xE4A26, 0x9061},
+ {0xE4A27, 0x905F},
+ {0xE4A2A, 0x9125},
+ {0xE4A2B, 0x917B},
+ {0xE4A2C, 0x9176},
+ {0xE4A2D, 0x917C},
+ {0xE4A2F, 0x9289},
+ {0xE4A30, 0x92F6},
+ {0xE4A31, 0x92B1},
+ {0xE4A32, 0x92AD},
+ {0xE4A33, 0x9292},
+ {0xE4A34, 0x9281},
+ {0xE4A35, 0x9284},
+ {0xE4A37, 0x92AE},
+ {0xE4A38, 0x9290},
+ {0xE4A39, 0x929E},
+ {0xE4A3D, 0x95A2},
+ {0xE4A3E, 0x95A7},
+ {0xE4A44, 0x96A0},
+ {0xE4A45, 0x969D},
+ {0xE4A46, 0x969F},
+ {0xE4A47, 0x96D0},
+ {0xE4A49, 0x96D1},
+ {0xE4A4C, 0x9759},
+ {0xE4A4E, 0x9764},
+ {0xE4A52, 0x9819},
+ {0xE4A54, 0x9814},
+ {0xE4A55, 0x9815},
+ {0xE4A56, 0x981A},
+ {0xE4A5B, 0x9906},
+ {0xE4A5D, 0x98F8},
+ {0xE4A5E, 0x9901},
+ {0xE4A60, 0x99BE},
+ {0xE4A61, 0x99BC},
+ {0xE4A62, 0x99B7},
+ {0xE4A63, 0x99B6},
+ {0xE4A64, 0x99C0},
+ {0xE4A66, 0x99B8},
+ {0xE4A6A, 0x99C4},
+ {0xE4A6C, 0x99BF},
+ {0xE4A6E, 0x9ADA},
+ {0xE4A6F, 0x9AE4},
+ {0xE4A70, 0x9AE9},
+ {0xE4A71, 0x9AE8},
+ {0xE4A72, 0x9AEA},
+ {0xE4A73, 0x9AE5},
+ {0xE4A75, 0x9B26},
+ {0xE4A78, 0x9B40},
+ {0xE4B22, 0x9EBD},
+ {0xE4B27, 0x510E},
+ {0xE4B29, 0x50F7},
+ {0xE4B2B, 0x50FC},
+ {0xE4B2C, 0x510D},
+ {0xE4B2D, 0x5101},
+ {0xE4B2E, 0x51DA},
+ {0xE4B2F, 0x51D9},
+ {0xE4B30, 0x51DB},
+ {0xE4B31, 0x5286},
+ {0xE4B32, 0x528E},
+ {0xE4B33, 0x52EE},
+ {0xE4B34, 0x5333},
+ {0xE4B35, 0x53B1},
+ {0xE4B37, 0x5647},
+ {0xE4B38, 0x562D},
+ {0xE4B39, 0x5654},
+ {0xE4B3B, 0x564B},
+ {0xE4B3C, 0x5652},
+ {0xE4B3D, 0x5631},
+ {0xE4B3E, 0x5644},
+ {0xE4B3F, 0x5656},
+ {0xE4B40, 0x5650},
+ {0xE4B41, 0x562B},
+ {0xE4B43, 0x564D},
+ {0xE4B44, 0x5637},
+ {0xE4B45, 0x564F},
+ {0xE4B46, 0x58A2},
+ {0xE4B47, 0x58B7},
+ {0xE4B49, 0x58B2},
+ {0xE4B4B, 0x58AA},
+ {0xE4B4C, 0x58B5},
+ {0xE4B4D, 0x58B0},
+ {0xE4B4F, 0x58B4},
+ {0xE4B50, 0x58A4},
+ {0xE4B51, 0x58A7},
+ {0xE4B53, 0x5926},
+ {0xE4B54, 0x5AFE},
+ {0xE4B56, 0x5B04},
+ {0xE4B58, 0x5AFC},
+ {0xE4B5A, 0x5B06},
+ {0xE4B5B, 0x5B0A},
+ {0xE4B5C, 0x5AFA},
+ {0xE4B5D, 0x5B0D},
+ {0xE4B5E, 0x5B00},
+ {0xE4B5F, 0x5B0E},
+ {0xE4B63, 0x5D91},
+ {0xE4B65, 0x5D8F},
+ {0xE4B66, 0x5D90},
+ {0xE4B67, 0x5D98},
+ {0xE4B68, 0x5DA4},
+ {0xE4B69, 0x5D9B},
+ {0xE4B6A, 0x5DA3},
+ {0xE4B6B, 0x5D96},
+ {0xE4B6C, 0x5DE4},
+ {0xE4B6D, 0x5E5A},
+ {0xE4B70, 0x5E5E},
+ {0xE4B72, 0x5FB8},
+ {0xE4B73, 0x6157},
+ {0xE4B74, 0x615C},
+ {0xE4B75, 0x61A6},
+ {0xE4B76, 0x6195},
+ {0xE4B77, 0x6188},
+ {0xE4B79, 0x61A3},
+ {0xE4B7A, 0x618F},
+ {0xE4B7C, 0x6164},
+ {0xE4B7E, 0x6159},
+ {0xE4C21, 0x6178},
+ {0xE4C23, 0x6185},
+ {0xE4C24, 0x6187},
+ {0xE4C25, 0x619E},
+ {0xE4C28, 0x6198},
+ {0xE4C29, 0x619C},
+ {0xE4C2C, 0x622F},
+ {0xE4C2D, 0x6480},
+ {0xE4C2E, 0x649B},
+ {0xE4C2F, 0x648E},
+ {0xE4C30, 0x648D},
+ {0xE4C31, 0x6494},
+ {0xE4C32, 0x64C6},
+ {0xE4C34, 0x64A8},
+ {0xE4C35, 0x6483},
+ {0xE4C37, 0x64B9},
+ {0xE4C38, 0x6486},
+ {0xE4C39, 0x64B4},
+ {0xE4C3A, 0x64AF},
+ {0xE4C3B, 0x6491},
+ {0xE4C3D, 0x64AA},
+ {0xE4C3E, 0x64A1},
+ {0xE4C3F, 0x64A7},
+ {0xE4C40, 0x66B6},
+ {0xE4C41, 0x66B3},
+ {0xE4C43, 0x66BC},
+ {0xE4C44, 0x66AC},
+ {0xE4C46, 0x66AD},
+ {0xE4C47, 0x6A0E},
+ {0xE4C49, 0x6A1C},
+ {0xE4C4A, 0x6A1A},
+ {0xE4C4D, 0x6A0B},
+ {0xE4C4F, 0x69EF},
+ {0xE4C50, 0x6A0C},
+ {0xE4C51, 0x69F0},
+ {0xE4C52, 0x6A22},
+ {0xE4C54, 0x69D8},
+ {0xE4C56, 0x6A12},
+ {0xE4C57, 0x69FA},
+ {0xE4C59, 0x6A2A},
+ {0xE4C5B, 0x6A10},
+ {0xE4C5E, 0x6A29},
+ {0xE4C5F, 0x69F9},
+ {0xE4C60, 0x69EA},
+ {0xE4C61, 0x6A2C},
+ {0xE4C62, 0x6A24},
+ {0xE4C64, 0x69E9},
+ {0xE4C65, 0x6B52},
+ {0xE4C66, 0x6B4F},
+ {0xE4C67, 0x6B53},
+ {0xE4C6A, 0x6F10},
+ {0xE4C6B, 0x6F65},
+ {0xE4C6C, 0x6F75},
+ {0xE4C71, 0x6FD0},
+ {0xE4C73, 0x6F5C},
+ {0xE4C74, 0x6F3D},
+ {0xE4C75, 0x6F71},
+ {0xE4C77, 0x6F91},
+ {0xE4C78, 0x6F0B},
+ {0xE4C79, 0x6F79},
+ {0xE4C7A, 0x6F81},
+ {0xE4C7B, 0x6F8F},
+ {0xE4C7D, 0x6F59},
+ {0xE4C7E, 0x6F74},
+ {0xE4D22, 0x71AE},
+ {0xE4D24, 0x71A3},
+ {0xE4D25, 0x71AD},
+ {0xE4D28, 0x71AB},
+ {0xE4D29, 0x71A6},
+ {0xE4D2A, 0x71A2},
+ {0xE4D2C, 0x52F2},
+ {0xE4D2D, 0x7257},
+ {0xE4D2E, 0x7255},
+ {0xE4D2F, 0x7299},
+ {0xE4D30, 0x734B},
+ {0xE4D31, 0x747A},
+ {0xE4D35, 0x748C},
+ {0xE4D36, 0x7484},
+ {0xE4D39, 0x7482},
+ {0xE4D3A, 0x7493},
+ {0xE4D3B, 0x747B},
+ {0xE4D3D, 0x7509},
+ {0xE4D44, 0x778A},
+ {0xE4D46, 0x7790},
+ {0xE4D48, 0x78C6},
+ {0xE4D49, 0x78D3},
+ {0xE4D4A, 0x78C0},
+ {0xE4D4B, 0x78D2},
+ {0xE4D4C, 0x78C7},
+ {0xE4D4D, 0x78C2},
+ {0xE4D4F, 0x799F},
+ {0xE4D50, 0x799D},
+ {0xE4D51, 0x799E},
+ {0xE4D53, 0x7A41},
+ {0xE4D55, 0x7A38},
+ {0xE4D56, 0x7A3A},
+ {0xE4D57, 0x7A42},
+ {0xE4D5A, 0x7A3E},
+ {0xE4D5B, 0x7AB0},
+ {0xE4D5C, 0x7BAE},
+ {0xE4D5D, 0x7BB3},
+ {0xE4D60, 0x7BBF},
+ {0xE4D63, 0x7BCD},
+ {0xE4D65, 0x7BB2},
+ {0xE4D6D, 0x7CC4},
+ {0xE4D6E, 0x7CCD},
+ {0xE4D6F, 0x7CC2},
+ {0xE4D70, 0x7CC6},
+ {0xE4D71, 0x7CC3},
+ {0xE4D72, 0x7CC9},
+ {0xE4D73, 0x7CC7},
+ {0xE4D75, 0x7DF8},
+ {0xE4D77, 0x7DED},
+ {0xE4D78, 0x7DE2},
+ {0xE4D7C, 0x7DDC},
+ {0xE4D7D, 0x7E02},
+ {0xE4D7E, 0x7E01},
+ {0xE4E22, 0x7DD6},
+ {0xE4E24, 0x7DE4},
+ {0xE4E25, 0x7DFE},
+ {0xE4E27, 0x7E00},
+ {0xE4E28, 0x7DFC},
+ {0xE4E29, 0x7DFD},
+ {0xE4E2B, 0x7DF5},
+ {0xE4E2C, 0x7DFF},
+ {0xE4E2E, 0x7DEB},
+ {0xE4E2F, 0x7DE5},
+ {0xE4E30, 0x7F78},
+ {0xE4E31, 0x7FAE},
+ {0xE4E32, 0x7FE7},
+ {0xE4E34, 0x8065},
+ {0xE4E35, 0x806A},
+ {0xE4E36, 0x8066},
+ {0xE4E37, 0x8068},
+ {0xE4E38, 0x806B},
+ {0xE4E39, 0x8194},
+ {0xE4E3A, 0x81A1},
+ {0xE4E3B, 0x8192},
+ {0xE4E3C, 0x8196},
+ {0xE4E3D, 0x8193},
+ {0xE4E40, 0x8501},
+ {0xE4E42, 0x84F8},
+ {0xE4E44, 0x84F5},
+ {0xE4E46, 0x8504},
+ {0xE4E4B, 0x851B},
+ {0xE4E4C, 0x8503},
+ {0xE4E4D, 0x8533},
+ {0xE4E4E, 0x8534},
+ {0xE4E4F, 0x84ED},
+ {0xE4E52, 0x8535},
+ {0xE4E54, 0x8505},
+ {0xE4E59, 0x877D},
+ {0xE4E5D, 0x8771},
+ {0xE4E5F, 0x885C},
+ {0xE4E60, 0x88E6},
+ {0xE4E61, 0x890F},
+ {0xE4E62, 0x891B},
+ {0xE4E64, 0x89A9},
+ {0xE4E65, 0x89A5},
+ {0xE4E66, 0x89EE},
+ {0xE4E67, 0x8AB1},
+ {0xE4E69, 0x8ACC},
+ {0xE4E6A, 0x8ACE},
+ {0xE4E6C, 0x8AB7},
+ {0xE4E6E, 0x8AB5},
+ {0xE4E6F, 0x8AE9},
+ {0xE4E70, 0x8AB4},
+ {0xE4E72, 0x8AB3},
+ {0xE4E73, 0x8AC1},
+ {0xE4E74, 0x8AAF},
+ {0xE4E75, 0x8ACA},
+ {0xE4E76, 0x8AD0},
+ {0xE4E7A, 0x8C8E},
+ {0xE4E7D, 0x8CE9},
+ {0xE4E7E, 0x8CDB},
+ {0xE4F22, 0x8CEB},
+ {0xE4F23, 0x8DA4},
+ {0xE4F25, 0x8DA2},
+ {0xE4F26, 0x8D9D},
+ {0xE4F2B, 0x8E2A},
+ {0xE4F2C, 0x8E28},
+ {0xE4F2F, 0x8EB8},
+ {0xE4F30, 0x8EB6},
+ {0xE4F31, 0x8EB9},
+ {0xE4F32, 0x8EB7},
+ {0xE4F33, 0x8F22},
+ {0xE4F34, 0x8F2B},
+ {0xE4F35, 0x8F27},
+ {0xE4F36, 0x8F19},
+ {0xE4F37, 0x8FA4},
+ {0xE4F39, 0x8FB3},
+ {0xE4F3B, 0x9071},
+ {0xE4F3C, 0x906A},
+ {0xE4F3F, 0x9188},
+ {0xE4F40, 0x918C},
+ {0xE4F41, 0x92BF},
+ {0xE4F42, 0x92B8},
+ {0xE4F43, 0x92BE},
+ {0xE4F44, 0x92DC},
+ {0xE4F45, 0x92E5},
+ {0xE4F48, 0x92D4},
+ {0xE4F49, 0x92D6},
+ {0xE4F4B, 0x92DA},
+ {0xE4F4C, 0x92ED},
+ {0xE4F4D, 0x92F3},
+ {0xE4F4E, 0x92DB},
+ {0xE4F50, 0x92B9},
+ {0xE4F51, 0x92E2},
+ {0xE4F52, 0x92EB},
+ {0xE4F53, 0x95AF},
+ {0xE4F55, 0x95B2},
+ {0xE4F56, 0x95B3},
+ {0xE4F5A, 0x96A3},
+ {0xE4F5B, 0x96A5},
+ {0xE4F60, 0x970A},
+ {0xE4F62, 0x9787},
+ {0xE4F63, 0x9789},
+ {0xE4F64, 0x978C},
+ {0xE4F65, 0x97EF},
+ {0xE4F66, 0x982A},
+ {0xE4F67, 0x9822},
+ {0xE4F69, 0x981F},
+ {0xE4F6B, 0x9919},
+ {0xE4F6D, 0x99CA},
+ {0xE4F6E, 0x99DA},
+ {0xE4F72, 0x99DE},
+ {0xE4F73, 0x99C8},
+ {0xE4F74, 0x99E0},
+ {0xE4F76, 0x9AB6},
+ {0xE4F77, 0x9AB5},
+ {0xE4F79, 0x9AF4},
+ {0xE4F7B, 0x9B6B},
+ {0xE4F7C, 0x9B69},
+ {0xE4F7D, 0x9B72},
+ {0xE4F7E, 0x9B63},
+ {0xE5022, 0x9D0D},
+ {0xE5024, 0x9D01},
+ {0xE5025, 0x9D0C},
+ {0xE5027, 0x9CF8},
+ {0xE502A, 0x9CFE},
+ {0xE502B, 0x9D02},
+ {0xE502C, 0x9E84},
+ {0xE502E, 0x9EAB},
+ {0xE502F, 0x9EAA},
+ {0xE5030, 0x511D},
+ {0xE5031, 0x5116},
+ {0xE5033, 0x512B},
+ {0xE5034, 0x511E},
+ {0xE5035, 0x511B},
+ {0xE5036, 0x5290},
+ {0xE5037, 0x5294},
+ {0xE5038, 0x5314},
+ {0xE503B, 0x5667},
+ {0xE503D, 0x567B},
+ {0xE503F, 0x565F},
+ {0xE5040, 0x5661},
+ {0xE5048, 0x58C3},
+ {0xE5049, 0x58CA},
+ {0xE504A, 0x58BB},
+ {0xE504B, 0x58C0},
+ {0xE504C, 0x58C4},
+ {0xE504D, 0x5901},
+ {0xE504E, 0x5B1F},
+ {0xE504F, 0x5B18},
+ {0xE5050, 0x5B11},
+ {0xE5051, 0x5B15},
+ {0xE5053, 0x5B12},
+ {0xE5054, 0x5B1C},
+ {0xE5056, 0x5B22},
+ {0xE5057, 0x5B79},
+ {0xE5058, 0x5DA6},
+ {0xE505A, 0x5DB3},
+ {0xE505B, 0x5DAB},
+ {0xE505C, 0x5EEA},
+ {0xE505E, 0x5F5B},
+ {0xE5061, 0x61B7},
+ {0xE5062, 0x61CE},
+ {0xE5063, 0x61B9},
+ {0xE5064, 0x61BD},
+ {0xE5065, 0x61CF},
+ {0xE5066, 0x61C0},
+ {0xE5067, 0x6199},
+ {0xE5068, 0x6197},
+ {0xE506A, 0x61BB},
+ {0xE506B, 0x61D0},
+ {0xE506C, 0x61C4},
+ {0xE506D, 0x6231},
+ {0xE506F, 0x64D3},
+ {0xE5070, 0x64C0},
+ {0xE5075, 0x64DC},
+ {0xE5076, 0x64D1},
+ {0xE5077, 0x64C8},
+ {0xE5079, 0x64D5},
+ {0xE507A, 0x66C3},
+ {0xE507D, 0x66BF},
+ {0xE507E, 0x66C5},
+ {0xE5122, 0x66CD},
+ {0xE5123, 0x66C1},
+ {0xE5124, 0x6706},
+ {0xE5126, 0x6724},
+ {0xE5127, 0x6A63},
+ {0xE5128, 0x6A42},
+ {0xE5129, 0x6A52},
+ {0xE512B, 0x6A43},
+ {0xE512C, 0x6A33},
+ {0xE512E, 0x6A6C},
+ {0xE512F, 0x6A57},
+ {0xE5131, 0x6A4C},
+ {0xE5132, 0x6A6E},
+ {0xE5138, 0x6A37},
+ {0xE513A, 0x6A71},
+ {0xE513B, 0x6A4A},
+ {0xE513C, 0x6A36},
+ {0xE513E, 0x6A53},
+ {0xE5140, 0x6A45},
+ {0xE5141, 0x6A70},
+ {0xE5144, 0x6A5C},
+ {0xE5145, 0x6B58},
+ {0xE5146, 0x6B57},
+ {0xE514D, 0x6FBB},
+ {0xE5150, 0x6FBE},
+ {0xE5154, 0x6FB5},
+ {0xE5155, 0x6FD3},
+ {0xE5156, 0x6F9F},
+ {0xE5158, 0x6FB7},
+ {0xE5159, 0x6FF5},
+ {0xE515A, 0x71B7},
+ {0xE515C, 0x71BB},
+ {0xE515E, 0x71D1},
+ {0xE5160, 0x71BA},
+ {0xE5162, 0x71B6},
+ {0xE5163, 0x71CC},
+ {0xE5166, 0x71D3},
+ {0xE5167, 0x749B},
+ {0xE516A, 0x7496},
+ {0xE516B, 0x74A2},
+ {0xE516C, 0x749D},
+ {0xE516D, 0x750A},
+ {0xE516E, 0x750E},
+ {0xE5170, 0x7581},
+ {0xE5171, 0x762C},
+ {0xE5172, 0x7637},
+ {0xE5173, 0x7636},
+ {0xE5174, 0x763B},
+ {0xE5176, 0x76A1},
+ {0xE5179, 0x7798},
+ {0xE517B, 0x7796},
+ {0xE5221, 0x78D6},
+ {0xE5222, 0x78EB},
+ {0xE5224, 0x78DC},
+ {0xE5226, 0x79A5},
+ {0xE5227, 0x79A9},
+ {0xE5228, 0x9834},
+ {0xE5229, 0x7A53},
+ {0xE522A, 0x7A45},
+ {0xE522C, 0x7A4F},
+ {0xE522E, 0x7ABD},
+ {0xE522F, 0x7ABB},
+ {0xE5230, 0x7AF1},
+ {0xE5233, 0x7BEC},
+ {0xE5234, 0x7BED},
+ {0xE5237, 0x7CD3},
+ {0xE5239, 0x7CE1},
+ {0xE523B, 0x7E19},
+ {0xE523F, 0x7E27},
+ {0xE5240, 0x7E26},
+ {0xE5243, 0x806E},
+ {0xE5244, 0x81AF},
+ {0xE5247, 0x81AD},
+ {0xE5249, 0x81AA},
+ {0xE524A, 0x8218},
+ {0xE524F, 0x856F},
+ {0xE5250, 0x854C},
+ {0xE5252, 0x8542},
+ {0xE5254, 0x855C},
+ {0xE5255, 0x8570},
+ {0xE5256, 0x855F},
+ {0xE5258, 0x855A},
+ {0xE5259, 0x854B},
+ {0xE525A, 0x853F},
+ {0xE525B, 0x878A},
+ {0xE525D, 0x878B},
+ {0xE525E, 0x87A1},
+ {0xE525F, 0x878E},
+ {0xE5262, 0x8799},
+ {0xE5263, 0x885E},
+ {0xE5264, 0x885F},
+ {0xE5265, 0x8924},
+ {0xE5266, 0x89A7},
+ {0xE5267, 0x8AEA},
+ {0xE5268, 0x8AFD},
+ {0xE5269, 0x8AF9},
+ {0xE526A, 0x8AE3},
+ {0xE526B, 0x8AE5},
+ {0xE526E, 0x8AEC},
+ {0xE5273, 0x8CF2},
+ {0xE5275, 0x8CEF},
+ {0xE5277, 0x8DA6},
+ {0xE527B, 0x8E3B},
+ {0xE527C, 0x8E43},
+ {0xE527E, 0x8E32},
+ {0xE5321, 0x8F31},
+ {0xE5322, 0x8F30},
+ {0xE5324, 0x8F2D},
+ {0xE5325, 0x8F3C},
+ {0xE5326, 0x8FA7},
+ {0xE5327, 0x8FA5},
+ {0xE532B, 0x9137},
+ {0xE532C, 0x9195},
+ {0xE532D, 0x918E},
+ {0xE532F, 0x9196},
+ {0xE5331, 0x9345},
+ {0xE5332, 0x930A},
+ {0xE5335, 0x92FD},
+ {0xE5336, 0x9317},
+ {0xE5337, 0x931C},
+ {0xE5338, 0x9307},
+ {0xE5339, 0x9331},
+ {0xE533A, 0x9332},
+ {0xE533B, 0x932C},
+ {0xE533C, 0x9330},
+ {0xE533D, 0x9303},
+ {0xE533E, 0x9305},
+ {0xE5340, 0x95C2},
+ {0xE5342, 0x95B8},
+ {0xE5344, 0x95C1},
+ {0xE5348, 0x96AB},
+ {0xE5349, 0x96B7},
+ {0xE534C, 0x9715},
+ {0xE534D, 0x9714},
+ {0xE5350, 0x970C},
+ {0xE5351, 0x9717},
+ {0xE5353, 0x9793},
+ {0xE5355, 0x97D2},
+ {0xE5358, 0x9836},
+ {0xE5359, 0x9831},
+ {0xE535A, 0x9833},
+ {0xE535B, 0x983C},
+ {0xE535C, 0x982E},
+ {0xE535D, 0x983A},
+ {0xE535F, 0x983D},
+ {0xE5361, 0x98B5},
+ {0xE5362, 0x9922},
+ {0xE5363, 0x9923},
+ {0xE5364, 0x9920},
+ {0xE5365, 0x991C},
+ {0xE5366, 0x991D},
+ {0xE5368, 0x99A0},
+ {0xE536A, 0x99EF},
+ {0xE536B, 0x99E8},
+ {0xE536C, 0x99EB},
+ {0xE5370, 0x99E1},
+ {0xE5371, 0x99E6},
+ {0xE5374, 0x9AF8},
+ {0xE5375, 0x9AF5},
+ {0xE5378, 0x9B83},
+ {0xE5379, 0x9B94},
+ {0xE537A, 0x9B84},
+ {0xE537C, 0x9B8B},
+ {0xE537D, 0x9B8F},
+ {0xE5421, 0x9B8C},
+ {0xE5423, 0x9B89},
+ {0xE5425, 0x9B8E},
+ {0xE5429, 0x9D24},
+ {0xE542A, 0x9D0F},
+ {0xE542C, 0x9D13},
+ {0xE542D, 0x9D0A},
+ {0xE5432, 0x9D2A},
+ {0xE5433, 0x9D1A},
+ {0xE5435, 0x9D27},
+ {0xE5436, 0x9D16},
+ {0xE5437, 0x9D21},
+ {0xE5439, 0x9E85},
+ {0xE543A, 0x9EAC},
+ {0xE543B, 0x9EC6},
+ {0xE543C, 0x9EC5},
+ {0xE543D, 0x9ED7},
+ {0xE543E, 0x9F53},
+ {0xE5440, 0x5128},
+ {0xE5441, 0x5127},
+ {0xE5442, 0x51DF},
+ {0xE5444, 0x5335},
+ {0xE5445, 0x53B3},
+ {0xE5447, 0x568A},
+ {0xE5448, 0x567D},
+ {0xE5449, 0x5689},
+ {0xE544B, 0x58CD},
+ {0xE544C, 0x58D0},
+ {0xE544E, 0x5B2B},
+ {0xE544F, 0x5B33},
+ {0xE5450, 0x5B29},
+ {0xE5451, 0x5B35},
+ {0xE5452, 0x5B31},
+ {0xE5453, 0x5B37},
+ {0xE5454, 0x5C36},
+ {0xE5455, 0x5DBE},
+ {0xE5457, 0x5DB9},
+ {0xE5459, 0x5DBB},
+ {0xE545B, 0x61E2},
+ {0xE545C, 0x61DB},
+ {0xE545D, 0x61DD},
+ {0xE545E, 0x61DC},
+ {0xE545F, 0x61DA},
+ {0xE5461, 0x61D9},
+ {0xE5464, 0x64DF},
+ {0xE5467, 0x64E1},
+ {0xE5469, 0x64EE},
+ {0xE546B, 0x65B5},
+ {0xE546C, 0x66D4},
+ {0xE546D, 0x66D5},
+ {0xE546F, 0x66D0},
+ {0xE5470, 0x66D1},
+ {0xE5471, 0x66CE},
+ {0xE5472, 0x66D7},
+ {0xE5475, 0x6A7D},
+ {0xE5476, 0x6A8A},
+ {0xE5478, 0x6AA7},
+ {0xE547A, 0x6A99},
+ {0xE547B, 0x6A82},
+ {0xE547C, 0x6A88},
+ {0xE5521, 0x6A86},
+ {0xE5523, 0x6A98},
+ {0xE5524, 0x6A9D},
+ {0xE5527, 0x6A8F},
+ {0xE5529, 0x6AAA},
+ {0xE552B, 0x6B5D},
+ {0xE552D, 0x6C0A},
+ {0xE552F, 0x6FD7},
+ {0xE5530, 0x6FD6},
+ {0xE5531, 0x6FE5},
+ {0xE5535, 0x6FD9},
+ {0xE5536, 0x6FDA},
+ {0xE5537, 0x6FEA},
+ {0xE5539, 0x6FF6},
+ {0xE553C, 0x71E3},
+ {0xE553E, 0x71E9},
+ {0xE5540, 0x71EB},
+ {0xE5541, 0x71EF},
+ {0xE5542, 0x71F3},
+ {0xE5543, 0x71EA},
+ {0xE5549, 0x7371},
+ {0xE554B, 0x74AE},
+ {0xE554D, 0x74B3},
+ {0xE554F, 0x74AC},
+ {0xE5552, 0x7583},
+ {0xE5553, 0x7645},
+ {0xE5554, 0x764E},
+ {0xE5555, 0x7644},
+ {0xE5556, 0x76A3},
+ {0xE5557, 0x76A5},
+ {0xE5558, 0x77A6},
+ {0xE5559, 0x77A4},
+ {0xE555B, 0x77A9},
+ {0xE555C, 0x77AF},
+ {0xE5560, 0x78F0},
+ {0xE5561, 0x78F8},
+ {0xE5562, 0x78F1},
+ {0xE5564, 0x7A49},
+ {0xE5568, 0x7AC2},
+ {0xE5569, 0x7AF2},
+ {0xE556A, 0x7AF3},
+ {0xE556B, 0x7BFA},
+ {0xE556D, 0x7BF6},
+ {0xE556E, 0x7BFC},
+ {0xE556F, 0x7C18},
+ {0xE5570, 0x7C08},
+ {0xE5571, 0x7C12},
+ {0xE5574, 0x7CDB},
+ {0xE5575, 0x7CDA},
+ {0xE5579, 0x7E2C},
+ {0xE557A, 0x7E4D},
+ {0xE557D, 0x7F46},
+ {0xE557E, 0x7FF6},
+ {0xE5621, 0x802B},
+ {0xE5622, 0x8074},
+ {0xE5623, 0x81B8},
+ {0xE5624, 0x81C8},
+ {0xE5628, 0x8592},
+ {0xE5629, 0x8593},
+ {0xE562B, 0x857F},
+ {0xE562C, 0x85AB},
+ {0xE562D, 0x8597},
+ {0xE5630, 0x85AC},
+ {0xE5634, 0x87CE},
+ {0xE5636, 0x87CD},
+ {0xE5639, 0x87C1},
+ {0xE563A, 0x87B1},
+ {0xE563B, 0x87C7},
+ {0xE563D, 0x8940},
+ {0xE563F, 0x893F},
+ {0xE5640, 0x8939},
+ {0xE5642, 0x8943},
+ {0xE5646, 0x89AB},
+ {0xE5648, 0x8B1F},
+ {0xE5649, 0x8B09},
+ {0xE564A, 0x8B0C},
+ {0xE564D, 0x8C40},
+ {0xE564F, 0x8C96},
+ {0xE5651, 0x8CF6},
+ {0xE5652, 0x8CF7},
+ {0xE5654, 0x8E46},
+ {0xE5655, 0x8E4F},
+ {0xE5659, 0x8F3D},
+ {0xE565A, 0x8F41},
+ {0xE565B, 0x9366},
+ {0xE565C, 0x9378},
+ {0xE565D, 0x935D},
+ {0xE565E, 0x9369},
+ {0xE565F, 0x9374},
+ {0xE5660, 0x937D},
+ {0xE5661, 0x936E},
+ {0xE5662, 0x9372},
+ {0xE5663, 0x9373},
+ {0xE5664, 0x9362},
+ {0xE5665, 0x9348},
+ {0xE5666, 0x9353},
+ {0xE5667, 0x935F},
+ {0xE5668, 0x9368},
+ {0xE566A, 0x937F},
+ {0xE566B, 0x936B},
+ {0xE566D, 0x95C4},
+ {0xE566F, 0x96AF},
+ {0xE5670, 0x96AD},
+ {0xE5671, 0x96B2},
+ {0xE5674, 0x971A},
+ {0xE5675, 0x971B},
+ {0xE567A, 0x979B},
+ {0xE567B, 0x979F},
+ {0xE5726, 0x9840},
+ {0xE5728, 0x9847},
+ {0xE572A, 0x98B7},
+ {0xE5730, 0x99A2},
+ {0xE5733, 0x9A00},
+ {0xE5734, 0x99F3},
+ {0xE5737, 0x99F5},
+ {0xE573A, 0x9ABD},
+ {0xE573B, 0x9B00},
+ {0xE573C, 0x9B02},
+ {0xE573E, 0x9B34},
+ {0xE573F, 0x9B49},
+ {0xE5740, 0x9B9F},
+ {0xE5742, 0x9BA3},
+ {0xE5743, 0x9BCD},
+ {0xE5744, 0x9B99},
+ {0xE5745, 0x9B9D},
+ {0xE5748, 0x9D39},
+ {0xE574A, 0x9D44},
+ {0xE574D, 0x9D35},
+ {0xE5750, 0x9EAF},
+ {0xE5752, 0x512F},
+ {0xE5755, 0x9F8E},
+ {0xE5757, 0x569F},
+ {0xE5758, 0x569B},
+ {0xE5759, 0x569E},
+ {0xE575A, 0x5696},
+ {0xE575B, 0x5694},
+ {0xE575C, 0x56A0},
+ {0xE575E, 0x5B3B},
+ {0xE5761, 0x5B3A},
+ {0xE5762, 0x5DC1},
+ {0xE5763, 0x5F4D},
+ {0xE5764, 0x5F5D},
+ {0xE5765, 0x61F3},
+ {0xE576A, 0x64F6},
+ {0xE576B, 0x64E5},
+ {0xE576C, 0x64EA},
+ {0xE576D, 0x64E7},
+ {0xE576E, 0x6505},
+ {0xE5770, 0x64F9},
+ {0xE5774, 0x6AAB},
+ {0xE5775, 0x6AED},
+ {0xE5776, 0x6AB2},
+ {0xE5777, 0x6AB0},
+ {0xE5778, 0x6AB5},
+ {0xE5779, 0x6ABE},
+ {0xE577A, 0x6AC1},
+ {0xE577B, 0x6AC8},
+ {0xE577D, 0x6AC0},
+ {0xE577E, 0x6ABC},
+ {0xE5821, 0x6AB1},
+ {0xE5822, 0x6AC4},
+ {0xE5823, 0x6ABF},
+ {0xE5826, 0x7008},
+ {0xE5827, 0x7003},
+ {0xE5828, 0x6FFD},
+ {0xE5829, 0x7010},
+ {0xE582A, 0x7002},
+ {0xE582B, 0x7013},
+ {0xE582D, 0x71FA},
+ {0xE582E, 0x7200},
+ {0xE582F, 0x74B9},
+ {0xE5830, 0x74BC},
+ {0xE5832, 0x765B},
+ {0xE5833, 0x7651},
+ {0xE5834, 0x764F},
+ {0xE5835, 0x76EB},
+ {0xE5836, 0x77B8},
+ {0xE5838, 0x77B9},
+ {0xE5839, 0x77C1},
+ {0xE583A, 0x77C0},
+ {0xE583B, 0x77BE},
+ {0xE583C, 0x790B},
+ {0xE583E, 0x7907},
+ {0xE583F, 0x790A},
+ {0xE5840, 0x7908},
+ {0xE5842, 0x790D},
+ {0xE5843, 0x7906},
+ {0xE5844, 0x7915},
+ {0xE5845, 0x79AF},
+ {0xE5849, 0x7AF5},
+ {0xE584C, 0x7C2E},
+ {0xE584E, 0x7C1B},
+ {0xE5850, 0x7C1A},
+ {0xE5851, 0x7C24},
+ {0xE5854, 0x7CE6},
+ {0xE5855, 0x7CE3},
+ {0xE5858, 0x7E5D},
+ {0xE5859, 0x7E4F},
+ {0xE585A, 0x7E66},
+ {0xE585B, 0x7E5B},
+ {0xE585C, 0x7F47},
+ {0xE585D, 0x7FB4},
+ {0xE5861, 0x7FFA},
+ {0xE5862, 0x802E},
+ {0xE5865, 0x81CE},
+ {0xE5868, 0x8219},
+ {0xE586B, 0x85CC},
+ {0xE586C, 0x85B2},
+ {0xE586E, 0x85BB},
+ {0xE586F, 0x85C1},
+ {0xE5873, 0x87E9},
+ {0xE5874, 0x87EE},
+ {0xE5875, 0x87F0},
+ {0xE5876, 0x87D6},
+ {0xE5877, 0x880E},
+ {0xE5878, 0x87DA},
+ {0xE5879, 0x8948},
+ {0xE587A, 0x894A},
+ {0xE587B, 0x894E},
+ {0xE587C, 0x894D},
+ {0xE587D, 0x89B1},
+ {0xE587E, 0x89B0},
+ {0xE5921, 0x89B3},
+ {0xE5923, 0x8B38},
+ {0xE5924, 0x8B32},
+ {0xE5926, 0x8B2D},
+ {0xE5928, 0x8B34},
+ {0xE592A, 0x8B29},
+ {0xE592B, 0x8C74},
+ {0xE592E, 0x8D03},
+ {0xE5931, 0x8DA9},
+ {0xE5932, 0x8E58},
+ {0xE5935, 0x8EBF},
+ {0xE5936, 0x8EC1},
+ {0xE5937, 0x8F4A},
+ {0xE5938, 0x8FAC},
+ {0xE593A, 0x9089},
+ {0xE593B, 0x913D},
+ {0xE593C, 0x913C},
+ {0xE593D, 0x91A9},
+ {0xE593E, 0x93A0},
+ {0xE5940, 0x9390},
+ {0xE5942, 0x9393},
+ {0xE5943, 0x938B},
+ {0xE5944, 0x93AD},
+ {0xE5945, 0x93BB},
+ {0xE5946, 0x93B8},
+ {0xE5949, 0x939C},
+ {0xE594A, 0x95D8},
+ {0xE594B, 0x95D7},
+ {0xE594F, 0x975D},
+ {0xE5950, 0x97A9},
+ {0xE5951, 0x97DA},
+ {0xE5956, 0x9854},
+ {0xE5958, 0x9855},
+ {0xE5959, 0x984B},
+ {0xE595B, 0x983F},
+ {0xE595C, 0x98B9},
+ {0xE5961, 0x9938},
+ {0xE5962, 0x9936},
+ {0xE5963, 0x9940},
+ {0xE5965, 0x993B},
+ {0xE5966, 0x9939},
+ {0xE5967, 0x99A4},
+ {0xE596A, 0x9A08},
+ {0xE596B, 0x9A0C},
+ {0xE596D, 0x9A10},
+ {0xE596F, 0x9B07},
+ {0xE5971, 0x9BD2},
+ {0xE5973, 0x9BC2},
+ {0xE5974, 0x9BBB},
+ {0xE5975, 0x9BCC},
+ {0xE5976, 0x9BCB},
+ {0xE5979, 0x9D4D},
+ {0xE597A, 0x9D63},
+ {0xE597B, 0x9D4E},
+ {0xE597D, 0x9D50},
+ {0xE597E, 0x9D55},
+ {0xE5A22, 0x9D5E},
+ {0xE5A24, 0x9E90},
+ {0xE5A25, 0x9EB2},
+ {0xE5A26, 0x9EB1},
+ {0xE5A28, 0x9ECA},
+ {0xE5A29, 0x9F02},
+ {0xE5A2A, 0x9F27},
+ {0xE5A2B, 0x9F26},
+ {0xE5A2D, 0x56AF},
+ {0xE5A2E, 0x58E0},
+ {0xE5A2F, 0x58DC},
+ {0xE5A31, 0x5B39},
+ {0xE5A34, 0x5B7C},
+ {0xE5A35, 0x5BF3},
+ {0xE5A38, 0x5C6B},
+ {0xE5A39, 0x5DC4},
+ {0xE5A3A, 0x650B},
+ {0xE5A3B, 0x6508},
+ {0xE5A3C, 0x650A},
+ {0xE5A3F, 0x65DC},
+ {0xE5A42, 0x66E1},
+ {0xE5A43, 0x66DF},
+ {0xE5A44, 0x6ACE},
+ {0xE5A45, 0x6AD4},
+ {0xE5A46, 0x6AE3},
+ {0xE5A47, 0x6AD7},
+ {0xE5A48, 0x6AE2},
+ {0xE5A4D, 0x6AD8},
+ {0xE5A4E, 0x6AD5},
+ {0xE5A4F, 0x6AD2},
+ {0xE5A52, 0x701E},
+ {0xE5A53, 0x702C},
+ {0xE5A54, 0x7025},
+ {0xE5A55, 0x6FF3},
+ {0xE5A56, 0x7204},
+ {0xE5A57, 0x7208},
+ {0xE5A58, 0x7215},
+ {0xE5A5A, 0x74C4},
+ {0xE5A5B, 0x74C9},
+ {0xE5A5C, 0x74C7},
+ {0xE5A5D, 0x74C8},
+ {0xE5A5E, 0x76A9},
+ {0xE5A5F, 0x77C6},
+ {0xE5A60, 0x77C5},
+ {0xE5A61, 0x7918},
+ {0xE5A62, 0x791A},
+ {0xE5A63, 0x7920},
+ {0xE5A65, 0x7A66},
+ {0xE5A66, 0x7A64},
+ {0xE5A67, 0x7A6A},
+ {0xE5A6E, 0x7C35},
+ {0xE5A6F, 0x7C34},
+ {0xE5A72, 0x7E6C},
+ {0xE5A74, 0x7E6E},
+ {0xE5A75, 0x7E71},
+ {0xE5A77, 0x81D4},
+ {0xE5A78, 0x81D6},
+ {0xE5A79, 0x821A},
+ {0xE5A7A, 0x8262},
+ {0xE5A7B, 0x8265},
+ {0xE5A7C, 0x8276},
+ {0xE5A7D, 0x85DB},
+ {0xE5A7E, 0x85D6},
+ {0xE5B22, 0x85E7},
+ {0xE5B25, 0x85F4},
+ {0xE5B27, 0x87FD},
+ {0xE5B28, 0x87D5},
+ {0xE5B29, 0x8807},
+ {0xE5B2B, 0x880F},
+ {0xE5B2C, 0x87F8},
+ {0xE5B2F, 0x8987},
+ {0xE5B31, 0x89B5},
+ {0xE5B32, 0x89F5},
+ {0xE5B34, 0x8B3F},
+ {0xE5B35, 0x8B43},
+ {0xE5B36, 0x8B4C},
+ {0xE5B38, 0x8D0B},
+ {0xE5B39, 0x8E6B},
+ {0xE5B3A, 0x8E68},
+ {0xE5B3B, 0x8E70},
+ {0xE5B3C, 0x8E75},
+ {0xE5B3D, 0x8E77},
+ {0xE5B3F, 0x8EC3},
+ {0xE5B41, 0x93E9},
+ {0xE5B42, 0x93EA},
+ {0xE5B43, 0x93CB},
+ {0xE5B44, 0x93C5},
+ {0xE5B45, 0x93C6},
+ {0xE5B47, 0x93ED},
+ {0xE5B48, 0x93D3},
+ {0xE5B4A, 0x93E5},
+ {0xE5B4D, 0x93DB},
+ {0xE5B4E, 0x93EB},
+ {0xE5B4F, 0x93E0},
+ {0xE5B50, 0x93C1},
+ {0xE5B53, 0x95DD},
+ {0xE5B5D, 0x97B2},
+ {0xE5B5E, 0x97B4},
+ {0xE5B5F, 0x97B1},
+ {0xE5B60, 0x97B5},
+ {0xE5B61, 0x97F2},
+ {0xE5B65, 0x9856},
+ {0xE5B69, 0x9944},
+ {0xE5B6B, 0x9A26},
+ {0xE5B6C, 0x9A1F},
+ {0xE5B6D, 0x9A18},
+ {0xE5B6E, 0x9A21},
+ {0xE5B6F, 0x9A17},
+ {0xE5B71, 0x9B09},
+ {0xE5B74, 0x9BC5},
+ {0xE5B75, 0x9BDF},
+ {0xE5B77, 0x9BE3},
+ {0xE5B79, 0x9BE9},
+ {0xE5B7A, 0x9BEE},
+ {0xE5B7D, 0x9D66},
+ {0xE5B7E, 0x9D7A},
+ {0xE5C22, 0x9D6E},
+ {0xE5C23, 0x9D91},
+ {0xE5C24, 0x9D83},
+ {0xE5C25, 0x9D76},
+ {0xE5C26, 0x9D7E},
+ {0xE5C27, 0x9D6D},
+ {0xE5C29, 0x9E95},
+ {0xE5C2A, 0x9EE3},
+ {0xE5C2D, 0x9F03},
+ {0xE5C2E, 0x9F04},
+ {0xE5C30, 0x9F17},
+ {0xE5C32, 0x5136},
+ {0xE5C34, 0x5336},
+ {0xE5C36, 0x5B42},
+ {0xE5C39, 0x5B44},
+ {0xE5C3A, 0x5B46},
+ {0xE5C3B, 0x5B7E},
+ {0xE5C3C, 0x5DCA},
+ {0xE5C3D, 0x5DC8},
+ {0xE5C3E, 0x5DCC},
+ {0xE5C3F, 0x5EF0},
+ {0xE5C41, 0x6585},
+ {0xE5C42, 0x66E5},
+ {0xE5C43, 0x66E7},
+ {0xE5C47, 0x6AF4},
+ {0xE5C49, 0x6AE9},
+ {0xE5C4F, 0x703D},
+ {0xE5C51, 0x7036},
+ {0xE5C53, 0x7216},
+ {0xE5C55, 0x7212},
+ {0xE5C56, 0x720F},
+ {0xE5C57, 0x7217},
+ {0xE5C58, 0x7211},
+ {0xE5C59, 0x720B},
+ {0xE5C5C, 0x74CD},
+ {0xE5C5D, 0x74D0},
+ {0xE5C5E, 0x74CC},
+ {0xE5C5F, 0x74CE},
+ {0xE5C60, 0x74D1},
+ {0xE5C62, 0x7589},
+ {0xE5C64, 0x7A6F},
+ {0xE5C65, 0x7C4B},
+ {0xE5C66, 0x7C44},
+ {0xE5C6C, 0x7E7F},
+ {0xE5C6D, 0x8B71},
+ {0xE5C6F, 0x802F},
+ {0xE5C70, 0x807A},
+ {0xE5C71, 0x807B},
+ {0xE5C72, 0x807C},
+ {0xE5C76, 0x85FC},
+ {0xE5C77, 0x8610},
+ {0xE5C78, 0x8602},
+ {0xE5C7B, 0x85EE},
+ {0xE5C7C, 0x8603},
+ {0xE5C7E, 0x860D},
+ {0xE5D21, 0x8613},
+ {0xE5D22, 0x8608},
+ {0xE5D23, 0x860F},
+ {0xE5D24, 0x8818},
+ {0xE5D25, 0x8812},
+ {0xE5D28, 0x8967},
+ {0xE5D29, 0x8965},
+ {0xE5D2A, 0x89BB},
+ {0xE5D2B, 0x8B69},
+ {0xE5D2C, 0x8B62},
+ {0xE5D2E, 0x8B6E},
+ {0xE5D30, 0x8B61},
+ {0xE5D32, 0x8B64},
+ {0xE5D33, 0x8B4D},
+ {0xE5D34, 0x8C51},
+ {0xE5D37, 0x8E83},
+ {0xE5D38, 0x8EC6},
+ {0xE5D3A, 0x941F},
+ {0xE5D3C, 0x9404},
+ {0xE5D3D, 0x9417},
+ {0xE5D3E, 0x9408},
+ {0xE5D3F, 0x9405},
+ {0xE5D41, 0x93F3},
+ {0xE5D42, 0x941E},
+ {0xE5D43, 0x9402},
+ {0xE5D44, 0x941A},
+ {0xE5D45, 0x941B},
+ {0xE5D46, 0x9427},
+ {0xE5D47, 0x941C},
+ {0xE5D49, 0x96B5},
+ {0xE5D4C, 0x9733},
+ {0xE5D4E, 0x9734},
+ {0xE5D4F, 0x9731},
+ {0xE5D50, 0x97B8},
+ {0xE5D51, 0x97BA},
+ {0xE5D53, 0x97FC},
+ {0xE5D56, 0x98C3},
+ {0xE5D58, 0x994D},
+ {0xE5D5A, 0x9A2F},
+ {0xE5D5E, 0x9AC9},
+ {0xE5D60, 0x9AC8},
+ {0xE5D61, 0x9AC4},
+ {0xE5D62, 0x9B2A},
+ {0xE5D63, 0x9B38},
+ {0xE5D64, 0x9B50},
+ {0xE5D66, 0x9C0A},
+ {0xE5D67, 0x9BFB},
+ {0xE5D68, 0x9C04},
+ {0xE5D69, 0x9BFC},
+ {0xE5D6A, 0x9BFE},
+ {0xE5D6E, 0x9C02},
+ {0xE5D6F, 0x9BF6},
+ {0xE5D70, 0x9C1B},
+ {0xE5D71, 0x9BF9},
+ {0xE5D72, 0x9C15},
+ {0xE5D73, 0x9C10},
+ {0xE5D74, 0x9BFF},
+ {0xE5D75, 0x9C00},
+ {0xE5D76, 0x9C0C},
+ {0xE5D79, 0x9D95},
+ {0xE5D7A, 0x9DA5},
+ {0xE5E21, 0x9E98},
+ {0xE5E22, 0x9EC1},
+ {0xE5E24, 0x9F5A},
+ {0xE5E25, 0x5164},
+ {0xE5E26, 0x56BB},
+ {0xE5E28, 0x58E6},
+ {0xE5E29, 0x5B49},
+ {0xE5E2A, 0x5BF7},
+ {0xE5E2D, 0x5DD0},
+ {0xE5E2F, 0x5FC2},
+ {0xE5E31, 0x6511},
+ {0xE5E33, 0x6AFF},
+ {0xE5E34, 0x6AFE},
+ {0xE5E35, 0x6AFD},
+ {0xE5E37, 0x6B01},
+ {0xE5E3A, 0x704B},
+ {0xE5E3B, 0x704D},
+ {0xE5E3C, 0x7047},
+ {0xE5E3D, 0x74D3},
+ {0xE5E3E, 0x7668},
+ {0xE5E3F, 0x7667},
+ {0xE5E42, 0x77D1},
+ {0xE5E43, 0x7930},
+ {0xE5E44, 0x7932},
+ {0xE5E45, 0x792E},
+ {0xE5E47, 0x9F9D},
+ {0xE5E48, 0x7AC9},
+ {0xE5E49, 0x7AC8},
+ {0xE5E4B, 0x7C56},
+ {0xE5E4C, 0x7C51},
+ {0xE5E50, 0x7E85},
+ {0xE5E51, 0x7E89},
+ {0xE5E52, 0x7E8E},
+ {0xE5E53, 0x7E84},
+ {0xE5E55, 0x826A},
+ {0xE5E56, 0x862B},
+ {0xE5E57, 0x862F},
+ {0xE5E58, 0x8628},
+ {0xE5E5A, 0x8616},
+ {0xE5E5B, 0x8615},
+ {0xE5E5C, 0x861D},
+ {0xE5E5D, 0x881A},
+ {0xE5E61, 0x89BC},
+ {0xE5E62, 0x8B75},
+ {0xE5E63, 0x8B7C},
+ {0xE5E65, 0x8D11},
+ {0xE5E66, 0x8D12},
+ {0xE5E67, 0x8F5C},
+ {0xE5E68, 0x91BB},
+ {0xE5E6A, 0x93F4},
+ {0xE5E6D, 0x942D},
+ {0xE5E70, 0x96E4},
+ {0xE5E71, 0x9737},
+ {0xE5E72, 0x9736},
+ {0xE5E73, 0x9767},
+ {0xE5E74, 0x97BE},
+ {0xE5E75, 0x97BD},
+ {0xE5E76, 0x97E2},
+ {0xE5E77, 0x9868},
+ {0xE5E78, 0x9866},
+ {0xE5E79, 0x98C8},
+ {0xE5E7A, 0x98CA},
+ {0xE5E7B, 0x98C7},
+ {0xE5E7C, 0x98DC},
+ {0xE5E7E, 0x994F},
+ {0xE5F21, 0x99A9},
+ {0xE5F22, 0x9A3C},
+ {0xE5F24, 0x9A3B},
+ {0xE5F25, 0x9ACE},
+ {0xE5F27, 0x9B14},
+ {0xE5F28, 0x9B53},
+ {0xE5F2A, 0x9C2E},
+ {0xE5F2C, 0x9C1F},
+ {0xE5F31, 0x9DB0},
+ {0xE5F32, 0x9DBD},
+ {0xE5F35, 0x9DAE},
+ {0xE5F36, 0x9DC4},
+ {0xE5F37, 0x9E7B},
+ {0xE5F3A, 0x9E9E},
+ {0xE5F3C, 0x9F05},
+ {0xE5F3E, 0x9F69},
+ {0xE5F3F, 0x9FA1},
+ {0xE5F40, 0x56C7},
+ {0xE5F41, 0x571D},
+ {0xE5F42, 0x5B4A},
+ {0xE5F43, 0x5DD3},
+ {0xE5F45, 0x5F72},
+ {0xE5F46, 0x6202},
+ {0xE5F48, 0x6235},
+ {0xE5F49, 0x6527},
+ {0xE5F4A, 0x651E},
+ {0xE5F4B, 0x651F},
+ {0xE5F4E, 0x6B07},
+ {0xE5F4F, 0x6B06},
+ {0xE5F52, 0x7054},
+ {0xE5F53, 0x721C},
+ {0xE5F54, 0x7220},
+ {0xE5F55, 0x7AF8},
+ {0xE5F57, 0x7C5D},
+ {0xE5F58, 0x7C58},
+ {0xE5F5A, 0x7E92},
+ {0xE5F5B, 0x7F4E},
+ {0xE5F5F, 0x8827},
+ {0xE5F61, 0x8B81},
+ {0xE5F62, 0x8B83},
+ {0xE5F64, 0x8C44},
+ {0xE5F69, 0x9442},
+ {0xE5F6A, 0x944D},
+ {0xE5F6B, 0x9454},
+ {0xE5F6C, 0x944E},
+ {0xE5F6E, 0x9443},
+ {0xE5F71, 0x973C},
+ {0xE5F72, 0x9740},
+ {0xE5F73, 0x97C0},
+ {0xE5F78, 0x995A},
+ {0xE5F79, 0x9A51},
+ {0xE5F7B, 0x9ADD},
+ {0xE5F7E, 0x9C38},
+ {0xE6022, 0x9C45},
+ {0xE6023, 0x9C3A},
+ {0xE6025, 0x9C35},
+ {0xE6029, 0x9EF1},
+ {0xE602B, 0x9F93},
+ {0xE602C, 0x529A},
+ {0xE602F, 0x8641},
+ {0xE6030, 0x5DD7},
+ {0xE6032, 0x6528},
+ {0xE6036, 0x7053},
+ {0xE6037, 0x7059},
+ {0xE6039, 0x7221},
+ {0xE603B, 0x766F},
+ {0xE603C, 0x7937},
+ {0xE603D, 0x79B5},
+ {0xE603E, 0x7C62},
+ {0xE603F, 0x7C5E},
+ {0xE6040, 0x7CF5},
+ {0xE6043, 0x863D},
+ {0xE6045, 0x882D},
+ {0xE6046, 0x8989},
+ {0xE6047, 0x8B8D},
+ {0xE6048, 0x8B87},
+ {0xE6049, 0x8B90},
+ {0xE604A, 0x8D1A},
+ {0xE604B, 0x8E99},
+ {0xE604F, 0x945F},
+ {0xE6052, 0x9456},
+ {0xE6053, 0x9461},
+ {0xE6054, 0x945B},
+ {0xE6055, 0x945A},
+ {0xE6056, 0x945C},
+ {0xE6057, 0x9465},
+ {0xE6059, 0x9741},
+ {0xE605C, 0x986E},
+ {0xE605D, 0x986C},
+ {0xE605E, 0x986D},
+ {0xE6060, 0x99AA},
+ {0xE6061, 0x9A5C},
+ {0xE6062, 0x9A58},
+ {0xE6063, 0x9ADE},
+ {0xE6065, 0x9C4F},
+ {0xE6066, 0x9C51},
+ {0xE6068, 0x9C53},
+ {0xE606C, 0x9DFC},
+ {0xE606D, 0x9F39},
+ {0xE606F, 0x513E},
+ {0xE6071, 0x56D2},
+ {0xE6073, 0x5B4F},
+ {0xE6074, 0x6B14},
+ {0xE6076, 0x7A72},
+ {0xE6077, 0x7A73},
+ {0xE607B, 0x8B91},
+ {0xE607E, 0x91BF},
+ {0xE6122, 0x946C},
+ {0xE6125, 0x96E6},
+ {0xE6126, 0x9745},
+ {0xE6128, 0x97C8},
+ {0xE6129, 0x97E4},
+ {0xE612A, 0x995D},
+ {0xE612C, 0x9B21},
+ {0xE612E, 0x9B2C},
+ {0xE612F, 0x9B57},
+ {0xE6132, 0x9C5D},
+ {0xE6133, 0x9C61},
+ {0xE6134, 0x9C65},
+ {0xE6135, 0x9E08},
+ {0xE613B, 0x9F45},
+ {0xE613E, 0x6205},
+ {0xE613F, 0x66EF},
+ {0xE6140, 0x6B1B},
+ {0xE6141, 0x6B1D},
+ {0xE6142, 0x7225},
+ {0xE6143, 0x7224},
+ {0xE6144, 0x7C6D},
+ {0xE6146, 0x8642},
+ {0xE6147, 0x8649},
+ {0xE6149, 0x8978},
+ {0xE614A, 0x898A},
+ {0xE614B, 0x8B97},
+ {0xE614D, 0x8C9B},
+ {0xE614E, 0x8D1C},
+ {0xE6150, 0x8EA2},
+ {0xE6159, 0x9C6C},
+ {0xE615B, 0x9C6F},
+ {0xE615D, 0x9E0E},
+ {0xE615F, 0x9F08},
+ {0xE6160, 0x9F1D},
+ {0xE6161, 0x9FA3},
+ {0xE6164, 0x5F60},
+ {0xE6165, 0x6B1C},
+ {0xE6169, 0x7CF3},
+ {0xE616B, 0x8B9B},
+ {0xE616C, 0x8EA7},
+ {0xE616D, 0x91C4},
+ {0xE616F, 0x947A},
+ {0xE6172, 0x9A61},
+ {0xE6173, 0x9A63},
+ {0xE6174, 0x9AD7},
+ {0xE6175, 0x9C76},
+ {0xE6177, 0x9FA5},
+ {0xE6179, 0x7067},
+ {0xE617B, 0x72AB},
+ {0xE617C, 0x864A},
+ {0xE617D, 0x897D},
+ {0xE617E, 0x8B9D},
+ {0xE6221, 0x8C53},
+ {0xE6222, 0x8F65},
+ {0xE6223, 0x947B},
+ {0xE6225, 0x98CD},
+ {0xE6226, 0x98DD},
+ {0xE6228, 0x9B30},
+ {0xE6229, 0x9E16},
+ {0xE622F, 0x96E7},
+ {0xE6230, 0x9E18},
+ {0xE6231, 0x9EA2},
+ {0xE6233, 0x9F7C},
+ {0xE6235, 0x7E9E},
+ {0xE6236, 0x9484},
+ {0xE6238, 0x9E1C},
+ {0xE623A, 0x7C71},
+ {0xE623B, 0x97CA},
+ {0xE623F, 0x9EA3},
+ {0xE6241, 0x9C7B},
+ {0xE6242, 0x9F97},
+ {0xE6245, 0x9750},
+ {0xE6249, 0x5727},
+ {0xE624A, 0x5C13},
+ {0xE6251, 0x5FC8},
+ {0xE6257, 0x6765},
+ {0xE625A, 0x52BD},
+ {0xE625C, 0x5B66},
+ {0xE625E, 0x65F9},
+ {0xE625F, 0x6788},
+ {0xE6260, 0x6CE6},
+ {0xE6261, 0x6CCB},
+ {0xE6263, 0x4FBD},
+ {0xE6264, 0x5F8D},
+ {0xE6266, 0x6018},
+ {0xE6267, 0x6048},
+ {0xE6269, 0x6B29},
+ {0xE626A, 0x70A6},
+ {0xE626C, 0x7706},
+ {0xE6270, 0x5A10},
+ {0xE6271, 0x5CFC},
+ {0xE6272, 0x5CFE},
+ {0xE6279, 0x70C9},
+ {0xE6323, 0x9579},
+ {0xE6325, 0x96BA},
+ {0xE632D, 0x7B29},
+ {0xE632E, 0x8128},
+ {0xE6330, 0x8A2E},
+ {0xE6334, 0x9AD9},
+ {0xE6336, 0x582B},
+ {0xE6337, 0x5845},
+ {0xE6339, 0x63FA},
+ {0xE633D, 0x6E86},
+ {0xE6343, 0x5867},
+ {0xE6345, 0x5BDD},
+ {0xE6346, 0x656E},
+ {0xE634A, 0x8C87},
+ {0xE634C, 0x50D2},
+ {0xE634D, 0x50DF},
+ {0xE6352, 0x69BA},
+ {0xE6354, 0x6B9D},
+ {0xE6356, 0x8059},
+ {0xE6363, 0x6F8A},
+ {0xE6366, 0x7BC3},
+ {0xE6367, 0x7BC2},
+ {0xE636C, 0x90F6},
+ {0xE636E, 0x9823},
+ {0xE6374, 0x71CD},
+ {0xE6375, 0x7499},
+ {0xE637B, 0x9842},
+ {0xE6422, 0x7F84},
+ {0xE6428, 0x8D0E},
+ {0xE642A, 0x9861},
+ {0xE642D, 0x8B73},
+ {0xE642F, 0x9C27},
+ {0xE6431, 0x9458},
+ {0xE6432, 0x77D6},
+ {0xE6433, 0x9B2D},
+ {0xE6448, 0x4F66},
+ {0xE6449, 0x4F68},
+ {0xE644A, 0x4FE7},
+ {0xE644B, 0x503F},
+ {0xE644D, 0x50A6},
+ {0xE644E, 0x510F},
+ {0xE644F, 0x523E},
+ {0xE6450, 0x5324},
+ {0xE6451, 0x5365},
+ {0xE6452, 0x539B},
+ {0xE6453, 0x517F},
+ {0xE6454, 0x54CB},
+ {0xE6455, 0x5573},
+ {0xE6456, 0x5571},
+ {0xE6457, 0x556B},
+ {0xE6458, 0x55F4},
+ {0xE6459, 0x5622},
+ {0xE645A, 0x5620},
+ {0xE645B, 0x5692},
+ {0xE645C, 0x56BA},
+ {0xE645D, 0x5691},
+ {0xE645E, 0x56B0},
+ {0xE645F, 0x5759},
+ {0xE6460, 0x578A},
+ {0xE6461, 0x580F},
+ {0xE6462, 0x5812},
+ {0xE6463, 0x5813},
+ {0xE6464, 0x5847},
+ {0xE6465, 0x589B},
+ {0xE6466, 0x5900},
+ {0xE6467, 0x594D},
+ {0xE6468, 0x5AD1},
+ {0xE6469, 0x5AD3},
+ {0xE646A, 0x5B67},
+ {0xE646B, 0x5C57},
+ {0xE646C, 0x5C77},
+ {0xE646D, 0x5CD5},
+ {0xE646E, 0x5D75},
+ {0xE646F, 0x5D8E},
+ {0xE6470, 0x5DA5},
+ {0xE6471, 0x5DB6},
+ {0xE6472, 0x5DBF},
+ {0xE6473, 0x5E65},
+ {0xE6474, 0x5ECD},
+ {0xE6475, 0x5EED},
+ {0xE6476, 0x5F94},
+ {0xE6477, 0x5F9A},
+ {0xE6478, 0x5FBA},
+ {0xE6479, 0x6125},
+ {0xE647A, 0x6150},
+ {0xE647B, 0x62A3},
+ {0xE647C, 0x6360},
+ {0xE647D, 0x6364},
+ {0xE647E, 0x63B6},
+ {0xE6521, 0x6403},
+ {0xE6522, 0x64B6},
+ {0xE6523, 0x651A},
+ {0xE6524, 0x7A25},
+ {0xE6525, 0x5C21},
+ {0xE6526, 0x66E2},
+ {0xE6527, 0x6702},
+ {0xE6528, 0x67A4},
+ {0xE6529, 0x67AC},
+ {0xE652A, 0x6810},
+ {0xE652B, 0x6806},
+ {0xE652C, 0x685E},
+ {0xE652D, 0x685A},
+ {0xE652E, 0x692C},
+ {0xE652F, 0x6929},
+ {0xE6530, 0x6A2D},
+ {0xE6531, 0x6A77},
+ {0xE6532, 0x6A7A},
+ {0xE6533, 0x6ACA},
+ {0xE6534, 0x6AE6},
+ {0xE6535, 0x6AF5},
+ {0xE6536, 0x6B0D},
+ {0xE6537, 0x6B0E},
+ {0xE6538, 0x6BDC},
+ {0xE6539, 0x6BDD},
+ {0xE653A, 0x6BF6},
+ {0xE653B, 0x6C1E},
+ {0xE653C, 0x6C63},
+ {0xE653D, 0x6DA5},
+ {0xE653E, 0x6E0F},
+ {0xE653F, 0x6E8A},
+ {0xE6540, 0x6E84},
+ {0xE6541, 0x6E8B},
+ {0xE6542, 0x6E7C},
+ {0xE6543, 0x6F4C},
+ {0xE6544, 0x6F48},
+ {0xE6545, 0x6F49},
+ {0xE6546, 0x6F9D},
+ {0xE6547, 0x6F99},
+ {0xE6548, 0x6FF8},
+ {0xE6549, 0x702E},
+ {0xE654A, 0x702D},
+ {0xE654B, 0x705C},
+ {0xE654C, 0x79CC},
+ {0xE654D, 0x70BF},
+ {0xE654E, 0x70EA},
+ {0xE654F, 0x70E5},
+ {0xE6550, 0x7111},
+ {0xE6551, 0x7112},
+ {0xE6552, 0x713F},
+ {0xE6553, 0x7139},
+ {0xE6554, 0x713B},
+ {0xE6555, 0x713D},
+ {0xE6556, 0x7177},
+ {0xE6557, 0x7175},
+ {0xE6558, 0x7176},
+ {0xE6559, 0x7171},
+ {0xE655A, 0x7196},
+ {0xE655B, 0x7193},
+ {0xE655C, 0x71B4},
+ {0xE655D, 0x71DD},
+ {0xE655E, 0x71DE},
+ {0xE655F, 0x720E},
+ {0xE6560, 0x5911},
+ {0xE6561, 0x7218},
+ {0xE6562, 0x7347},
+ {0xE6563, 0x7348},
+ {0xE6564, 0x73EF},
+ {0xE6565, 0x7412},
+ {0xE6566, 0x743B},
+ {0xE6567, 0x74A4},
+ {0xE6568, 0x748D},
+ {0xE6569, 0x74B4},
+ {0xE656A, 0x7673},
+ {0xE656B, 0x7677},
+ {0xE656C, 0x76BC},
+ {0xE656D, 0x7819},
+ {0xE656E, 0x781B},
+ {0xE656F, 0x783D},
+ {0xE6570, 0x7853},
+ {0xE6571, 0x7854},
+ {0xE6572, 0x7858},
+ {0xE6573, 0x78B7},
+ {0xE6574, 0x78D8},
+ {0xE6575, 0x78EE},
+ {0xE6576, 0x7922},
+ {0xE6577, 0x794D},
+ {0xE6578, 0x7986},
+ {0xE6579, 0x7999},
+ {0xE657A, 0x79A3},
+ {0xE657B, 0x79BC},
+ {0xE657C, 0x7AA7},
+ {0xE657D, 0x7B37},
+ {0xE657E, 0x7B59},
+ {0xE6621, 0x7BD0},
+ {0xE6622, 0x7C2F},
+ {0xE6623, 0x7C32},
+ {0xE6624, 0x7C42},
+ {0xE6625, 0x7C4E},
+ {0xE6626, 0x7C68},
+ {0xE6627, 0x7CA9},
+ {0xE6628, 0x7CED},
+ {0xE6629, 0x7DD0},
+ {0xE662A, 0x7E07},
+ {0xE662B, 0x7DD3},
+ {0xE662C, 0x7E64},
+ {0xE662D, 0x7F40},
+ {0xE662F, 0x8041},
+ {0xE6630, 0x8063},
+ {0xE6631, 0x80BB},
+ {0xE6632, 0x6711},
+ {0xE6633, 0x6725},
+ {0xE6634, 0x8248},
+ {0xE6635, 0x8310},
+ {0xE6636, 0x8362},
+ {0xE6637, 0x8312},
+ {0xE6638, 0x8421},
+ {0xE6639, 0x841E},
+ {0xE663A, 0x84E2},
+ {0xE663B, 0x84DE},
+ {0xE663C, 0x84E1},
+ {0xE663D, 0x8573},
+ {0xE663E, 0x85D4},
+ {0xE663F, 0x85F5},
+ {0xE6640, 0x8637},
+ {0xE6641, 0x8645},
+ {0xE6642, 0x8672},
+ {0xE6643, 0x874A},
+ {0xE6644, 0x87A9},
+ {0xE6645, 0x87A5},
+ {0xE6646, 0x87F5},
+ {0xE6647, 0x8834},
+ {0xE6648, 0x8850},
+ {0xE6649, 0x8887},
+ {0xE664A, 0x8954},
+ {0xE664B, 0x8984},
+ {0xE664C, 0x8B03},
+ {0xE664D, 0x8C52},
+ {0xE664E, 0x8CD8},
+ {0xE664F, 0x8D0C},
+ {0xE6650, 0x8D18},
+ {0xE6651, 0x8DB0},
+ {0xE6652, 0x8EBC},
+ {0xE6653, 0x8ED5},
+ {0xE6654, 0x8FAA},
+ {0xE6655, 0x909C},
+ {0xE6657, 0x915C},
+ {0xE6658, 0x922B},
+ {0xE6659, 0x9221},
+ {0xE665A, 0x9273},
+ {0xE665B, 0x92F4},
+ {0xE665C, 0x92F5},
+ {0xE665D, 0x933F},
+ {0xE665E, 0x9342},
+ {0xE665F, 0x9386},
+ {0xE6660, 0x93BE},
+ {0xE6661, 0x93BC},
+ {0xE6662, 0x93BD},
+ {0xE6663, 0x93F1},
+ {0xE6664, 0x93F2},
+ {0xE6665, 0x93EF},
+ {0xE6666, 0x9422},
+ {0xE6667, 0x9423},
+ {0xE6668, 0x9424},
+ {0xE6669, 0x9467},
+ {0xE666A, 0x9466},
+ {0xE666B, 0x9597},
+ {0xE666C, 0x95CE},
+ {0xE666D, 0x95E7},
+ {0xE666E, 0x973B},
+ {0xE666F, 0x974D},
+ {0xE6670, 0x98E4},
+ {0xE6671, 0x9942},
+ {0xE6672, 0x9B1D},
+ {0xE6673, 0x9B98},
+ {0xE6675, 0x9D49},
+ {0xE6676, 0x6449},
+ {0xE6677, 0x5E71},
+ {0xE6678, 0x5E85},
+ {0xE6679, 0x61D3},
+ {0xE667A, 0x990E},
+ {0xE667B, 0x8002},
+ {0xE667C, 0x781E},
+ {0xE6721, 0x5528},
+ {0xE6722, 0x5572},
+ {0xE6723, 0x55BA},
+ {0xE6724, 0x55F0},
+ {0xE6725, 0x55EE},
+ {0xE6726, 0x56B8},
+ {0xE6727, 0x56B9},
+ {0xE6728, 0x56C4},
+ {0xE6729, 0x8053},
+ {0xE672A, 0x92B0},
diff --git a/vte/src/unitable.CP437 b/vte/src/unitable.CP437
new file mode 100644
index 0000000..81e8883
--- /dev/null
+++ b/vte/src/unitable.CP437
@@ -0,0 +1,129 @@
+ /* generated file -- do not edit */
+ {0x80, 0x00c7},
+ {0x81, 0x00fc},
+ {0x82, 0x00e9},
+ {0x83, 0x00e2},
+ {0x84, 0x00e4},
+ {0x85, 0x00e0},
+ {0x86, 0x00e5},
+ {0x87, 0x00e7},
+ {0x88, 0x00ea},
+ {0x89, 0x00eb},
+ {0x8a, 0x00e8},
+ {0x8b, 0x00ef},
+ {0x8c, 0x00ee},
+ {0x8d, 0x00ec},
+ {0x8e, 0x00c4},
+ {0x8f, 0x00c5},
+ {0x90, 0x00c9},
+ {0x91, 0x00e6},
+ {0x92, 0x00c6},
+ {0x93, 0x00f4},
+ {0x94, 0x00f6},
+ {0x95, 0x00f2},
+ {0x96, 0x00fb},
+ {0x97, 0x00f9},
+ {0x98, 0x00ff},
+ {0x99, 0x00d6},
+ {0x9a, 0x00dc},
+ {0x9b, 0x00a2},
+ {0x9c, 0x00a3},
+ {0x9d, 0x00a5},
+ {0x9e, 0x20a7},
+ {0x9f, 0x0192},
+ {0xa0, 0x00e1},
+ {0xa1, 0x00ed},
+ {0xa2, 0x00f3},
+ {0xa3, 0x00fa},
+ {0xa4, 0x00f1},
+ {0xa5, 0x00d1},
+ {0xa6, 0x00aa},
+ {0xa7, 0x00ba},
+ {0xa8, 0x00bf},
+ {0xa9, 0x2310},
+ {0xaa, 0x00ac},
+ {0xab, 0x00bd},
+ {0xac, 0x00bc},
+ {0xad, 0x00a1},
+ {0xae, 0x00ab},
+ {0xaf, 0x00bb},
+ {0xb0, 0x2591},
+ {0xb1, 0x2592},
+ {0xb2, 0x2593},
+ {0xb3, 0x2502},
+ {0xb4, 0x2524},
+ {0xb5, 0x2561},
+ {0xb6, 0x2562},
+ {0xb7, 0x2556},
+ {0xb8, 0x2555},
+ {0xb9, 0x2563},
+ {0xba, 0x2551},
+ {0xbb, 0x2557},
+ {0xbc, 0x255d},
+ {0xbd, 0x255c},
+ {0xbe, 0x255b},
+ {0xbf, 0x2510},
+ {0xc0, 0x2514},
+ {0xc1, 0x2534},
+ {0xc2, 0x252c},
+ {0xc3, 0x251c},
+ {0xc4, 0x2500},
+ {0xc5, 0x253c},
+ {0xc6, 0x255e},
+ {0xc7, 0x255f},
+ {0xc8, 0x255a},
+ {0xc9, 0x2554},
+ {0xca, 0x2569},
+ {0xcb, 0x2566},
+ {0xcc, 0x2560},
+ {0xcd, 0x2550},
+ {0xce, 0x256c},
+ {0xcf, 0x2567},
+ {0xd0, 0x2568},
+ {0xd1, 0x2564},
+ {0xd2, 0x2565},
+ {0xd3, 0x2559},
+ {0xd4, 0x2558},
+ {0xd5, 0x2552},
+ {0xd6, 0x2553},
+ {0xd7, 0x256b},
+ {0xd8, 0x256a},
+ {0xd9, 0x2518},
+ {0xda, 0x250c},
+ {0xdb, 0x2588},
+ {0xdc, 0x2584},
+ {0xdd, 0x258c},
+ {0xde, 0x2590},
+ {0xdf, 0x2580},
+ {0xe0, 0x03b1},
+ {0xe1, 0x00df},
+ {0xe2, 0x0393},
+ {0xe3, 0x03c0},
+ {0xe4, 0x03a3},
+ {0xe5, 0x03c3},
+ {0xe6, 0x00b5},
+ {0xe7, 0x03c4},
+ {0xe8, 0x03a6},
+ {0xe9, 0x0398},
+ {0xea, 0x03a9},
+ {0xeb, 0x03b4},
+ {0xec, 0x221e},
+ {0xed, 0x03c6},
+ {0xee, 0x03b5},
+ {0xef, 0x2229},
+ {0xf0, 0x2261},
+ {0xf1, 0x00b1},
+ {0xf2, 0x2265},
+ {0xf3, 0x2264},
+ {0xf4, 0x2320},
+ {0xf5, 0x2321},
+ {0xf6, 0x00f7},
+ {0xf7, 0x2248},
+ {0xf8, 0x00b0},
+ {0xf9, 0x2219},
+ {0xfa, 0x00b7},
+ {0xfb, 0x221a},
+ {0xfc, 0x207f},
+ {0xfd, 0x00b2},
+ {0xfe, 0x25a0},
+ {0xff, 0x00a0},
diff --git a/vte/src/unitable.GB12345 b/vte/src/unitable.GB12345
new file mode 100644
index 0000000..662299a
--- /dev/null
+++ b/vte/src/unitable.GB12345
@@ -0,0 +1,7549 @@
+ /* generated file -- do not edit */
+ {0x2121, 0x3000},
+ {0x2122, 0x3001},
+ {0x2123, 0x3002},
+ {0x2124, 0x30FB},
+ {0x2125, 0x02C9},
+ {0x2126, 0x02C7},
+ {0x2127, 0x00A8},
+ {0x2128, 0x3003},
+ {0x2129, 0x3005},
+ {0x212A, 0x2015},
+ {0x212B, 0xFF5E},
+ {0x212C, 0x2225},
+ {0x212D, 0x2026},
+ {0x212E, 0x2018},
+ {0x212F, 0x2019},
+ {0x2130, 0x201C},
+ {0x2131, 0x201D},
+ {0x2132, 0x3014},
+ {0x2133, 0x3015},
+ {0x2134, 0x3008},
+ {0x2135, 0x3009},
+ {0x2136, 0x300A},
+ {0x2137, 0x300B},
+ {0x2138, 0x300C},
+ {0x2139, 0x300D},
+ {0x213A, 0x300E},
+ {0x213B, 0x300F},
+ {0x213C, 0x3016},
+ {0x213D, 0x3017},
+ {0x213E, 0x3010},
+ {0x213F, 0x3011},
+ {0x2140, 0x00B1},
+ {0x2141, 0x00D7},
+ {0x2142, 0x00F7},
+ {0x2143, 0x2236},
+ {0x2144, 0x2227},
+ {0x2145, 0x2228},
+ {0x2146, 0x2211},
+ {0x2147, 0x220F},
+ {0x2148, 0x222A},
+ {0x2149, 0x2229},
+ {0x214A, 0x2208},
+ {0x214B, 0x2237},
+ {0x214C, 0x221A},
+ {0x214D, 0x22A5},
+ {0x214E, 0x2225},
+ {0x214F, 0x2220},
+ {0x2150, 0x2312},
+ {0x2151, 0x2299},
+ {0x2152, 0x222B},
+ {0x2153, 0x222E},
+ {0x2154, 0x2261},
+ {0x2155, 0x224C},
+ {0x2156, 0x2248},
+ {0x2157, 0x223D},
+ {0x2158, 0x221D},
+ {0x2159, 0x2260},
+ {0x215A, 0x226E},
+ {0x215B, 0x226F},
+ {0x215C, 0x2264},
+ {0x215D, 0x2265},
+ {0x215E, 0x221E},
+ {0x215F, 0x2235},
+ {0x2160, 0x2234},
+ {0x2161, 0x2642},
+ {0x2162, 0x2640},
+ {0x2163, 0x00B0},
+ {0x2164, 0x2032},
+ {0x2165, 0x2033},
+ {0x2166, 0x2103},
+ {0x2167, 0xFF04},
+ {0x2168, 0x00A4},
+ {0x2169, 0xFFE0},
+ {0x216A, 0xFFE1},
+ {0x216B, 0x2030},
+ {0x216C, 0x00A7},
+ {0x216D, 0x2116},
+ {0x216E, 0x2606},
+ {0x216F, 0x2605},
+ {0x2170, 0x25CB},
+ {0x2171, 0x25CF},
+ {0x2172, 0x25CE},
+ {0x2173, 0x25C7},
+ {0x2174, 0x25C6},
+ {0x2175, 0x25A1},
+ {0x2176, 0x25A0},
+ {0x2177, 0x25B3},
+ {0x2178, 0x25B2},
+ {0x2179, 0x203B},
+ {0x217A, 0x2192},
+ {0x217B, 0x2190},
+ {0x217C, 0x2191},
+ {0x217D, 0x2193},
+ {0x217E, 0x3013},
+ {0x2231, 0x2488},
+ {0x2232, 0x2489},
+ {0x2233, 0x248A},
+ {0x2234, 0x248B},
+ {0x2235, 0x248C},
+ {0x2236, 0x248D},
+ {0x2237, 0x248E},
+ {0x2238, 0x248F},
+ {0x2239, 0x2490},
+ {0x223A, 0x2491},
+ {0x223B, 0x2492},
+ {0x223C, 0x2493},
+ {0x223D, 0x2494},
+ {0x223E, 0x2495},
+ {0x223F, 0x2496},
+ {0x2240, 0x2497},
+ {0x2241, 0x2498},
+ {0x2242, 0x2499},
+ {0x2243, 0x249A},
+ {0x2244, 0x249B},
+ {0x2245, 0x2474},
+ {0x2246, 0x2475},
+ {0x2247, 0x2476},
+ {0x2248, 0x2477},
+ {0x2249, 0x2478},
+ {0x224A, 0x2479},
+ {0x224B, 0x247A},
+ {0x224C, 0x247B},
+ {0x224D, 0x247C},
+ {0x224E, 0x247D},
+ {0x224F, 0x247E},
+ {0x2250, 0x247F},
+ {0x2251, 0x2480},
+ {0x2252, 0x2481},
+ {0x2253, 0x2482},
+ {0x2254, 0x2483},
+ {0x2255, 0x2484},
+ {0x2256, 0x2485},
+ {0x2257, 0x2486},
+ {0x2258, 0x2487},
+ {0x2259, 0x2460},
+ {0x225A, 0x2461},
+ {0x225B, 0x2462},
+ {0x225C, 0x2463},
+ {0x225D, 0x2464},
+ {0x225E, 0x2465},
+ {0x225F, 0x2466},
+ {0x2260, 0x2467},
+ {0x2261, 0x2468},
+ {0x2262, 0x2469},
+ {0x2265, 0x3220},
+ {0x2266, 0x3221},
+ {0x2267, 0x3222},
+ {0x2268, 0x3223},
+ {0x2269, 0x3224},
+ {0x226A, 0x3225},
+ {0x226B, 0x3226},
+ {0x226C, 0x3227},
+ {0x226D, 0x3228},
+ {0x226E, 0x3229},
+ {0x2271, 0x2160},
+ {0x2272, 0x2161},
+ {0x2273, 0x2162},
+ {0x2274, 0x2163},
+ {0x2275, 0x2164},
+ {0x2276, 0x2165},
+ {0x2277, 0x2166},
+ {0x2278, 0x2167},
+ {0x2279, 0x2168},
+ {0x227A, 0x2169},
+ {0x227B, 0x216A},
+ {0x227C, 0x216B},
+ {0x2321, 0xFF01},
+ {0x2322, 0xFF02},
+ {0x2323, 0xFF03},
+ {0x2324, 0xFFE5},
+ {0x2325, 0xFF05},
+ {0x2326, 0xFF06},
+ {0x2327, 0xFF07},
+ {0x2328, 0xFF08},
+ {0x2329, 0xFF09},
+ {0x232A, 0xFF0A},
+ {0x232B, 0xFF0B},
+ {0x232C, 0xFF0C},
+ {0x232D, 0xFF0D},
+ {0x232E, 0xFF0E},
+ {0x232F, 0xFF0F},
+ {0x2330, 0xFF10},
+ {0x2331, 0xFF11},
+ {0x2332, 0xFF12},
+ {0x2333, 0xFF13},
+ {0x2334, 0xFF14},
+ {0x2335, 0xFF15},
+ {0x2336, 0xFF16},
+ {0x2337, 0xFF17},
+ {0x2338, 0xFF18},
+ {0x2339, 0xFF19},
+ {0x233A, 0xFF1A},
+ {0x233B, 0xFF1B},
+ {0x233C, 0xFF1C},
+ {0x233D, 0xFF1D},
+ {0x233E, 0xFF1E},
+ {0x233F, 0xFF1F},
+ {0x2340, 0xFF20},
+ {0x2341, 0xFF21},
+ {0x2342, 0xFF22},
+ {0x2343, 0xFF23},
+ {0x2344, 0xFF24},
+ {0x2345, 0xFF25},
+ {0x2346, 0xFF26},
+ {0x2347, 0xFF27},
+ {0x2348, 0xFF28},
+ {0x2349, 0xFF29},
+ {0x234A, 0xFF2A},
+ {0x234B, 0xFF2B},
+ {0x234C, 0xFF2C},
+ {0x234D, 0xFF2D},
+ {0x234E, 0xFF2E},
+ {0x234F, 0xFF2F},
+ {0x2350, 0xFF30},
+ {0x2351, 0xFF31},
+ {0x2352, 0xFF32},
+ {0x2353, 0xFF33},
+ {0x2354, 0xFF34},
+ {0x2355, 0xFF35},
+ {0x2356, 0xFF36},
+ {0x2357, 0xFF37},
+ {0x2358, 0xFF38},
+ {0x2359, 0xFF39},
+ {0x235A, 0xFF3A},
+ {0x235B, 0xFF3B},
+ {0x235C, 0xFF3C},
+ {0x235D, 0xFF3D},
+ {0x235E, 0xFF3E},
+ {0x235F, 0xFF3F},
+ {0x2360, 0xFF40},
+ {0x2361, 0xFF41},
+ {0x2362, 0xFF42},
+ {0x2363, 0xFF43},
+ {0x2364, 0xFF44},
+ {0x2365, 0xFF45},
+ {0x2366, 0xFF46},
+ {0x2367, 0xFF47},
+ {0x2368, 0xFF48},
+ {0x2369, 0xFF49},
+ {0x236A, 0xFF4A},
+ {0x236B, 0xFF4B},
+ {0x236C, 0xFF4C},
+ {0x236D, 0xFF4D},
+ {0x236E, 0xFF4E},
+ {0x236F, 0xFF4F},
+ {0x2370, 0xFF50},
+ {0x2371, 0xFF51},
+ {0x2372, 0xFF52},
+ {0x2373, 0xFF53},
+ {0x2374, 0xFF54},
+ {0x2375, 0xFF55},
+ {0x2376, 0xFF56},
+ {0x2377, 0xFF57},
+ {0x2378, 0xFF58},
+ {0x2379, 0xFF59},
+ {0x237A, 0xFF5A},
+ {0x237B, 0xFF5B},
+ {0x237C, 0xFF5C},
+ {0x237D, 0xFF5D},
+ {0x237E, 0xFFE3},
+ {0x2421, 0x3041},
+ {0x2422, 0x3042},
+ {0x2423, 0x3043},
+ {0x2424, 0x3044},
+ {0x2425, 0x3045},
+ {0x2426, 0x3046},
+ {0x2427, 0x3047},
+ {0x2428, 0x3048},
+ {0x2429, 0x3049},
+ {0x242A, 0x304A},
+ {0x242B, 0x304B},
+ {0x242C, 0x304C},
+ {0x242D, 0x304D},
+ {0x242E, 0x304E},
+ {0x242F, 0x304F},
+ {0x2430, 0x3050},
+ {0x2431, 0x3051},
+ {0x2432, 0x3052},
+ {0x2433, 0x3053},
+ {0x2434, 0x3054},
+ {0x2435, 0x3055},
+ {0x2436, 0x3056},
+ {0x2437, 0x3057},
+ {0x2438, 0x3058},
+ {0x2439, 0x3059},
+ {0x243A, 0x305A},
+ {0x243B, 0x305B},
+ {0x243C, 0x305C},
+ {0x243D, 0x305D},
+ {0x243E, 0x305E},
+ {0x243F, 0x305F},
+ {0x2440, 0x3060},
+ {0x2441, 0x3061},
+ {0x2442, 0x3062},
+ {0x2443, 0x3063},
+ {0x2444, 0x3064},
+ {0x2445, 0x3065},
+ {0x2446, 0x3066},
+ {0x2447, 0x3067},
+ {0x2448, 0x3068},
+ {0x2449, 0x3069},
+ {0x244A, 0x306A},
+ {0x244B, 0x306B},
+ {0x244C, 0x306C},
+ {0x244D, 0x306D},
+ {0x244E, 0x306E},
+ {0x244F, 0x306F},
+ {0x2450, 0x3070},
+ {0x2451, 0x3071},
+ {0x2452, 0x3072},
+ {0x2453, 0x3073},
+ {0x2454, 0x3074},
+ {0x2455, 0x3075},
+ {0x2456, 0x3076},
+ {0x2457, 0x3077},
+ {0x2458, 0x3078},
+ {0x2459, 0x3079},
+ {0x245A, 0x307A},
+ {0x245B, 0x307B},
+ {0x245C, 0x307C},
+ {0x245D, 0x307D},
+ {0x245E, 0x307E},
+ {0x245F, 0x307F},
+ {0x2460, 0x3080},
+ {0x2461, 0x3081},
+ {0x2462, 0x3082},
+ {0x2463, 0x3083},
+ {0x2464, 0x3084},
+ {0x2465, 0x3085},
+ {0x2466, 0x3086},
+ {0x2467, 0x3087},
+ {0x2468, 0x3088},
+ {0x2469, 0x3089},
+ {0x246A, 0x308A},
+ {0x246B, 0x308B},
+ {0x246C, 0x308C},
+ {0x246D, 0x308D},
+ {0x246E, 0x308E},
+ {0x246F, 0x308F},
+ {0x2470, 0x3090},
+ {0x2471, 0x3091},
+ {0x2472, 0x3092},
+ {0x2473, 0x3093},
+ {0x2521, 0x30A1},
+ {0x2522, 0x30A2},
+ {0x2523, 0x30A3},
+ {0x2524, 0x30A4},
+ {0x2525, 0x30A5},
+ {0x2526, 0x30A6},
+ {0x2527, 0x30A7},
+ {0x2528, 0x30A8},
+ {0x2529, 0x30A9},
+ {0x252A, 0x30AA},
+ {0x252B, 0x30AB},
+ {0x252C, 0x30AC},
+ {0x252D, 0x30AD},
+ {0x252E, 0x30AE},
+ {0x252F, 0x30AF},
+ {0x2530, 0x30B0},
+ {0x2531, 0x30B1},
+ {0x2532, 0x30B2},
+ {0x2533, 0x30B3},
+ {0x2534, 0x30B4},
+ {0x2535, 0x30B5},
+ {0x2536, 0x30B6},
+ {0x2537, 0x30B7},
+ {0x2538, 0x30B8},
+ {0x2539, 0x30B9},
+ {0x253A, 0x30BA},
+ {0x253B, 0x30BB},
+ {0x253C, 0x30BC},
+ {0x253D, 0x30BD},
+ {0x253E, 0x30BE},
+ {0x253F, 0x30BF},
+ {0x2540, 0x30C0},
+ {0x2541, 0x30C1},
+ {0x2542, 0x30C2},
+ {0x2543, 0x30C3},
+ {0x2544, 0x30C4},
+ {0x2545, 0x30C5},
+ {0x2546, 0x30C6},
+ {0x2547, 0x30C7},
+ {0x2548, 0x30C8},
+ {0x2549, 0x30C9},
+ {0x254A, 0x30CA},
+ {0x254B, 0x30CB},
+ {0x254C, 0x30CC},
+ {0x254D, 0x30CD},
+ {0x254E, 0x30CE},
+ {0x254F, 0x30CF},
+ {0x2550, 0x30D0},
+ {0x2551, 0x30D1},
+ {0x2552, 0x30D2},
+ {0x2553, 0x30D3},
+ {0x2554, 0x30D4},
+ {0x2555, 0x30D5},
+ {0x2556, 0x30D6},
+ {0x2557, 0x30D7},
+ {0x2558, 0x30D8},
+ {0x2559, 0x30D9},
+ {0x255A, 0x30DA},
+ {0x255B, 0x30DB},
+ {0x255C, 0x30DC},
+ {0x255D, 0x30DD},
+ {0x255E, 0x30DE},
+ {0x255F, 0x30DF},
+ {0x2560, 0x30E0},
+ {0x2561, 0x30E1},
+ {0x2562, 0x30E2},
+ {0x2563, 0x30E3},
+ {0x2564, 0x30E4},
+ {0x2565, 0x30E5},
+ {0x2566, 0x30E6},
+ {0x2567, 0x30E7},
+ {0x2568, 0x30E8},
+ {0x2569, 0x30E9},
+ {0x256A, 0x30EA},
+ {0x256B, 0x30EB},
+ {0x256C, 0x30EC},
+ {0x256D, 0x30ED},
+ {0x256E, 0x30EE},
+ {0x256F, 0x30EF},
+ {0x2570, 0x30F0},
+ {0x2571, 0x30F1},
+ {0x2572, 0x30F2},
+ {0x2573, 0x30F3},
+ {0x2574, 0x30F4},
+ {0x2575, 0x30F5},
+ {0x2576, 0x30F6},
+ {0x2621, 0x0391},
+ {0x2622, 0x0392},
+ {0x2623, 0x0393},
+ {0x2624, 0x0394},
+ {0x2625, 0x0395},
+ {0x2626, 0x0396},
+ {0x2627, 0x0397},
+ {0x2628, 0x0398},
+ {0x2629, 0x0399},
+ {0x262A, 0x039A},
+ {0x262B, 0x039B},
+ {0x262C, 0x039C},
+ {0x262D, 0x039D},
+ {0x262E, 0x039E},
+ {0x262F, 0x039F},
+ {0x2630, 0x03A0},
+ {0x2631, 0x03A1},
+ {0x2632, 0x03A3},
+ {0x2633, 0x03A4},
+ {0x2634, 0x03A5},
+ {0x2635, 0x03A6},
+ {0x2636, 0x03A7},
+ {0x2637, 0x03A8},
+ {0x2638, 0x03A9},
+ {0x2641, 0x03B1},
+ {0x2642, 0x03B2},
+ {0x2643, 0x03B3},
+ {0x2644, 0x03B4},
+ {0x2645, 0x03B5},
+ {0x2646, 0x03B6},
+ {0x2647, 0x03B7},
+ {0x2648, 0x03B8},
+ {0x2649, 0x03B9},
+ {0x264A, 0x03BA},
+ {0x264B, 0x03BB},
+ {0x264C, 0x03BC},
+ {0x264D, 0x03BD},
+ {0x264E, 0x03BE},
+ {0x264F, 0x03BF},
+ {0x2650, 0x03C0},
+ {0x2651, 0x03C1},
+ {0x2652, 0x03C3},
+ {0x2653, 0x03C4},
+ {0x2654, 0x03C5},
+ {0x2655, 0x03C6},
+ {0x2656, 0x03C7},
+ {0x2657, 0x03C8},
+ {0x2658, 0x03C9},
+ {0x2721, 0x0410},
+ {0x2722, 0x0411},
+ {0x2723, 0x0412},
+ {0x2724, 0x0413},
+ {0x2725, 0x0414},
+ {0x2726, 0x0415},
+ {0x2727, 0x0401},
+ {0x2728, 0x0416},
+ {0x2729, 0x0417},
+ {0x272A, 0x0418},
+ {0x272B, 0x0419},
+ {0x272C, 0x041A},
+ {0x272D, 0x041B},
+ {0x272E, 0x041C},
+ {0x272F, 0x041D},
+ {0x2730, 0x041E},
+ {0x2731, 0x041F},
+ {0x2732, 0x0420},
+ {0x2733, 0x0421},
+ {0x2734, 0x0422},
+ {0x2735, 0x0423},
+ {0x2736, 0x0424},
+ {0x2737, 0x0425},
+ {0x2738, 0x0426},
+ {0x2739, 0x0427},
+ {0x273A, 0x0428},
+ {0x273B, 0x0429},
+ {0x273C, 0x042A},
+ {0x273D, 0x042B},
+ {0x273E, 0x042C},
+ {0x273F, 0x042D},
+ {0x2740, 0x042E},
+ {0x2741, 0x042F},
+ {0x2751, 0x0430},
+ {0x2752, 0x0431},
+ {0x2753, 0x0432},
+ {0x2754, 0x0433},
+ {0x2755, 0x0434},
+ {0x2756, 0x0435},
+ {0x2757, 0x0451},
+ {0x2758, 0x0436},
+ {0x2759, 0x0437},
+ {0x275A, 0x0438},
+ {0x275B, 0x0439},
+ {0x275C, 0x043A},
+ {0x275D, 0x043B},
+ {0x275E, 0x043C},
+ {0x275F, 0x043D},
+ {0x2760, 0x043E},
+ {0x2761, 0x043F},
+ {0x2762, 0x0440},
+ {0x2763, 0x0441},
+ {0x2764, 0x0442},
+ {0x2765, 0x0443},
+ {0x2766, 0x0444},
+ {0x2767, 0x0445},
+ {0x2768, 0x0446},
+ {0x2769, 0x0447},
+ {0x276A, 0x0448},
+ {0x276B, 0x0449},
+ {0x276C, 0x044A},
+ {0x276D, 0x044B},
+ {0x276E, 0x044C},
+ {0x276F, 0x044D},
+ {0x2770, 0x044E},
+ {0x2771, 0x044F},
+ {0x2821, 0x0101},
+ {0x2822, 0x00E1},
+ {0x2823, 0x01CE},
+ {0x2824, 0x00E0},
+ {0x2825, 0x0113},
+ {0x2826, 0x00E9},
+ {0x2827, 0x011B},
+ {0x2828, 0x00E8},
+ {0x2829, 0x012B},
+ {0x282A, 0x00ED},
+ {0x282B, 0x01D0},
+ {0x282C, 0x00EC},
+ {0x282D, 0x014D},
+ {0x282E, 0x00F3},
+ {0x282F, 0x01D2},
+ {0x2830, 0x00F2},
+ {0x2831, 0x016B},
+ {0x2832, 0x00FA},
+ {0x2833, 0x01D4},
+ {0x2834, 0x00F9},
+ {0x2835, 0x01D6},
+ {0x2836, 0x01D8},
+ {0x2837, 0x01DA},
+ {0x2838, 0x01DC},
+ {0x2839, 0x00FC},
+ {0x283A, 0x00EA},
+ {0x2845, 0x3105},
+ {0x2846, 0x3106},
+ {0x2847, 0x3107},
+ {0x2848, 0x3108},
+ {0x2849, 0x3109},
+ {0x284A, 0x310A},
+ {0x284B, 0x310B},
+ {0x284C, 0x310C},
+ {0x284D, 0x310D},
+ {0x284E, 0x310E},
+ {0x284F, 0x310F},
+ {0x2850, 0x3110},
+ {0x2851, 0x3111},
+ {0x2852, 0x3112},
+ {0x2853, 0x3113},
+ {0x2854, 0x3114},
+ {0x2855, 0x3115},
+ {0x2856, 0x3116},
+ {0x2857, 0x3117},
+ {0x2858, 0x3118},
+ {0x2859, 0x3119},
+ {0x285A, 0x311A},
+ {0x285B, 0x311B},
+ {0x285C, 0x311C},
+ {0x285D, 0x311D},
+ {0x285E, 0x311E},
+ {0x285F, 0x311F},
+ {0x2860, 0x3120},
+ {0x2861, 0x3121},
+ {0x2862, 0x3122},
+ {0x2863, 0x3123},
+ {0x2864, 0x3124},
+ {0x2865, 0x3125},
+ {0x2866, 0x3126},
+ {0x2867, 0x3127},
+ {0x2868, 0x3128},
+ {0x2869, 0x3129},
+ {0x2924, 0x2500},
+ {0x2925, 0x2501},
+ {0x2926, 0x2502},
+ {0x2927, 0x2503},
+ {0x2928, 0x2504},
+ {0x2929, 0x2505},
+ {0x292A, 0x2506},
+ {0x292B, 0x2507},
+ {0x292C, 0x2508},
+ {0x292D, 0x2509},
+ {0x292E, 0x250A},
+ {0x292F, 0x250B},
+ {0x2930, 0x250C},
+ {0x2931, 0x250D},
+ {0x2932, 0x250E},
+ {0x2933, 0x250F},
+ {0x2934, 0x2510},
+ {0x2935, 0x2511},
+ {0x2936, 0x2512},
+ {0x2937, 0x2513},
+ {0x2938, 0x2514},
+ {0x2939, 0x2515},
+ {0x293A, 0x2516},
+ {0x293B, 0x2517},
+ {0x293C, 0x2518},
+ {0x293D, 0x2519},
+ {0x293E, 0x251A},
+ {0x293F, 0x251B},
+ {0x2940, 0x251C},
+ {0x2941, 0x251D},
+ {0x2942, 0x251E},
+ {0x2943, 0x251F},
+ {0x2944, 0x2520},
+ {0x2945, 0x2521},
+ {0x2946, 0x2522},
+ {0x2947, 0x2523},
+ {0x2948, 0x2524},
+ {0x2949, 0x2525},
+ {0x294A, 0x2526},
+ {0x294B, 0x2527},
+ {0x294C, 0x2528},
+ {0x294D, 0x2529},
+ {0x294E, 0x252A},
+ {0x294F, 0x252B},
+ {0x2950, 0x252C},
+ {0x2951, 0x252D},
+ {0x2952, 0x252E},
+ {0x2953, 0x252F},
+ {0x2954, 0x2530},
+ {0x2955, 0x2531},
+ {0x2956, 0x2532},
+ {0x2957, 0x2533},
+ {0x2958, 0x2534},
+ {0x2959, 0x2535},
+ {0x295A, 0x2536},
+ {0x295B, 0x2537},
+ {0x295C, 0x2538},
+ {0x295D, 0x2539},
+ {0x295E, 0x253A},
+ {0x295F, 0x253B},
+ {0x2960, 0x253C},
+ {0x2961, 0x253D},
+ {0x2962, 0x253E},
+ {0x2963, 0x253F},
+ {0x2964, 0x2540},
+ {0x2965, 0x2541},
+ {0x2966, 0x2542},
+ {0x2967, 0x2543},
+ {0x2968, 0x2544},
+ {0x2969, 0x2545},
+ {0x296A, 0x2546},
+ {0x296B, 0x2547},
+ {0x296C, 0x2548},
+ {0x296D, 0x2549},
+ {0x296E, 0x254A},
+ {0x296F, 0x254B},
+ {0x3021, 0x554A},
+ {0x3022, 0x963F},
+ {0x3023, 0x57C3},
+ {0x3024, 0x6328},
+ {0x3025, 0x54CE},
+ {0x3026, 0x5509},
+ {0x3027, 0x54C0},
+ {0x3028, 0x769A},
+ {0x3029, 0x764C},
+ {0x302A, 0x85F9},
+ {0x302B, 0x77EE},
+ {0x302C, 0x827E},
+ {0x302D, 0x7919},
+ {0x302E, 0x611B},
+ {0x302F, 0x9698},
+ {0x3030, 0x978D},
+ {0x3031, 0x6C28},
+ {0x3032, 0x5B89},
+ {0x3033, 0x4FFA},
+ {0x3034, 0x6309},
+ {0x3035, 0x6697},
+ {0x3036, 0x5CB8},
+ {0x3037, 0x80FA},
+ {0x3038, 0x6848},
+ {0x3039, 0x9AAF},
+ {0x303A, 0x6602},
+ {0x303B, 0x76CE},
+ {0x303C, 0x51F9},
+ {0x303D, 0x6556},
+ {0x303E, 0x71AC},
+ {0x303F, 0x7FF1},
+ {0x3040, 0x8956},
+ {0x3041, 0x50B2},
+ {0x3042, 0x5965},
+ {0x3043, 0x61CA},
+ {0x3044, 0x6FB3},
+ {0x3045, 0x82AD},
+ {0x3046, 0x634C},
+ {0x3047, 0x6252},
+ {0x3048, 0x53ED},
+ {0x3049, 0x5427},
+ {0x304A, 0x7B06},
+ {0x304B, 0x516B},
+ {0x304C, 0x75A4},
+ {0x304D, 0x5DF4},
+ {0x304E, 0x62D4},
+ {0x304F, 0x8DCB},
+ {0x3050, 0x9776},
+ {0x3051, 0x628A},
+ {0x3052, 0x8019},
+ {0x3053, 0x58E9},
+ {0x3054, 0x9738},
+ {0x3055, 0x7F77},
+ {0x3056, 0x7238},
+ {0x3057, 0x767D},
+ {0x3058, 0x67CF},
+ {0x3059, 0x767E},
+ {0x305A, 0x64FA},
+ {0x305B, 0x4F70},
+ {0x305C, 0x6557},
+ {0x305D, 0x62DC},
+ {0x305E, 0x7A17},
+ {0x305F, 0x6591},
+ {0x3060, 0x73ED},
+ {0x3061, 0x642C},
+ {0x3062, 0x6273},
+ {0x3063, 0x822C},
+ {0x3064, 0x9812},
+ {0x3065, 0x677F},
+ {0x3066, 0x7248},
+ {0x3067, 0x626E},
+ {0x3068, 0x62CC},
+ {0x3069, 0x4F34},
+ {0x306A, 0x74E3},
+ {0x306B, 0x534A},
+ {0x306C, 0x8FA6},
+ {0x306D, 0x7D46},
+ {0x306E, 0x90A6},
+ {0x306F, 0x5E6B},
+ {0x3070, 0x6886},
+ {0x3071, 0x699C},
+ {0x3072, 0x8180},
+ {0x3073, 0x7D81},
+ {0x3074, 0x68D2},
+ {0x3075, 0x78C5},
+ {0x3076, 0x868C},
+ {0x3077, 0x938A},
+ {0x3078, 0x508D},
+ {0x3079, 0x8B17},
+ {0x307A, 0x82DE},
+ {0x307B, 0x80DE},
+ {0x307C, 0x5305},
+ {0x307D, 0x8912},
+ {0x307E, 0x5265},
+ {0x3121, 0x8584},
+ {0x3122, 0x96F9},
+ {0x3123, 0x4FDD},
+ {0x3124, 0x5821},
+ {0x3125, 0x98FD},
+ {0x3126, 0x5BF6},
+ {0x3127, 0x62B1},
+ {0x3128, 0x5831},
+ {0x3129, 0x66B4},
+ {0x312A, 0x8C79},
+ {0x312B, 0x9B91},
+ {0x312C, 0x7206},
+ {0x312D, 0x676F},
+ {0x312E, 0x7891},
+ {0x312F, 0x60B2},
+ {0x3130, 0x5351},
+ {0x3131, 0x5317},
+ {0x3132, 0x8F29},
+ {0x3133, 0x80CC},
+ {0x3134, 0x8C9D},
+ {0x3135, 0x92C7},
+ {0x3136, 0x500D},
+ {0x3137, 0x72FD},
+ {0x3138, 0x5099},
+ {0x3139, 0x618A},
+ {0x313A, 0x7119},
+ {0x313B, 0x88AB},
+ {0x313C, 0x5954},
+ {0x313D, 0x82EF},
+ {0x313E, 0x672C},
+ {0x313F, 0x7B28},
+ {0x3140, 0x5D29},
+ {0x3141, 0x7DB3},
+ {0x3142, 0x752D},
+ {0x3143, 0x6CF5},
+ {0x3144, 0x8E66},
+ {0x3145, 0x8FF8},
+ {0x3146, 0x903C},
+ {0x3147, 0x9F3B},
+ {0x3148, 0x6BD4},
+ {0x3149, 0x9119},
+ {0x314A, 0x7B46},
+ {0x314B, 0x5F7C},
+ {0x314C, 0x78A7},
+ {0x314D, 0x84D6},
+ {0x314E, 0x853D},
+ {0x314F, 0x7562},
+ {0x3150, 0x6583},
+ {0x3151, 0x6BD6},
+ {0x3152, 0x5E63},
+ {0x3153, 0x5E87},
+ {0x3154, 0x75F9},
+ {0x3155, 0x9589},
+ {0x3156, 0x655D},
+ {0x3157, 0x5F0A},
+ {0x3158, 0x5FC5},
+ {0x3159, 0x8F9F},
+ {0x315A, 0x58C1},
+ {0x315B, 0x81C2},
+ {0x315C, 0x907F},
+ {0x315D, 0x965B},
+ {0x315E, 0x97AD},
+ {0x315F, 0x908A},
+ {0x3160, 0x7DE8},
+ {0x3161, 0x8CB6},
+ {0x3162, 0x6241},
+ {0x3163, 0x4FBF},
+ {0x3164, 0x8B8A},
+ {0x3165, 0x535E},
+ {0x3166, 0x8FA8},
+ {0x3167, 0x8FAF},
+ {0x3168, 0x8FAE},
+ {0x3169, 0x904D},
+ {0x316A, 0x6A19},
+ {0x316B, 0x5F6A},
+ {0x316C, 0x8198},
+ {0x316D, 0x8868},
+ {0x316E, 0x9C49},
+ {0x316F, 0x618B},
+ {0x3170, 0x522B},
+ {0x3171, 0x765F},
+ {0x3172, 0x5F6C},
+ {0x3173, 0x658C},
+ {0x3174, 0x7015},
+ {0x3175, 0x6FF1},
+ {0x3176, 0x8CD3},
+ {0x3177, 0x64EF},
+ {0x3178, 0x5175},
+ {0x3179, 0x51B0},
+ {0x317A, 0x67C4},
+ {0x317B, 0x4E19},
+ {0x317C, 0x79C9},
+ {0x317D, 0x9905},
+ {0x317E, 0x70B3},
+ {0x3221, 0x75C5},
+ {0x3222, 0x5E76},
+ {0x3223, 0x73BB},
+ {0x3224, 0x83E0},
+ {0x3225, 0x64AD},
+ {0x3226, 0x64A5},
+ {0x3227, 0x9262},
+ {0x3228, 0x6CE2},
+ {0x3229, 0x535A},
+ {0x322A, 0x52C3},
+ {0x322B, 0x640F},
+ {0x322C, 0x9251},
+ {0x322D, 0x7B94},
+ {0x322E, 0x4F2F},
+ {0x322F, 0x5E1B},
+ {0x3230, 0x8236},
+ {0x3231, 0x8116},
+ {0x3232, 0x818A},
+ {0x3233, 0x6E24},
+ {0x3234, 0x6CCA},
+ {0x3235, 0x99C1},
+ {0x3236, 0x6355},
+ {0x3237, 0x535C},
+ {0x3238, 0x54FA},
+ {0x3239, 0x88DC},
+ {0x323A, 0x57E0},
+ {0x323B, 0x4E0D},
+ {0x323C, 0x5E03},
+ {0x323D, 0x6B65},
+ {0x323E, 0x7C3F},
+ {0x323F, 0x90E8},
+ {0x3240, 0x6016},
+ {0x3241, 0x64E6},
+ {0x3242, 0x731C},
+ {0x3243, 0x88C1},
+ {0x3244, 0x6750},
+ {0x3245, 0x624D},
+ {0x3246, 0x8CA1},
+ {0x3247, 0x776C},
+ {0x3248, 0x8E29},
+ {0x3249, 0x91C7},
+ {0x324A, 0x5F69},
+ {0x324B, 0x83DC},
+ {0x324C, 0x8521},
+ {0x324D, 0x9910},
+ {0x324E, 0x53C3},
+ {0x324F, 0x8836},
+ {0x3250, 0x6B98},
+ {0x3251, 0x615A},
+ {0x3252, 0x6158},
+ {0x3253, 0x71E6},
+ {0x3254, 0x84BC},
+ {0x3255, 0x8259},
+ {0x3256, 0x5009},
+ {0x3257, 0x6EC4},
+ {0x3258, 0x85CF},
+ {0x3259, 0x64CD},
+ {0x325A, 0x7CD9},
+ {0x325B, 0x69FD},
+ {0x325C, 0x66F9},
+ {0x325D, 0x8349},
+ {0x325E, 0x53A0},
+ {0x325F, 0x7B56},
+ {0x3260, 0x5074},
+ {0x3261, 0x518C},
+ {0x3262, 0x6E2C},
+ {0x3263, 0x5C64},
+ {0x3264, 0x8E6D},
+ {0x3265, 0x63D2},
+ {0x3266, 0x53C9},
+ {0x3267, 0x832C},
+ {0x3268, 0x8336},
+ {0x3269, 0x67E5},
+ {0x326A, 0x78B4},
+ {0x326B, 0x643D},
+ {0x326C, 0x5BDF},
+ {0x326D, 0x5C94},
+ {0x326E, 0x5DEE},
+ {0x326F, 0x8A6B},
+ {0x3270, 0x62C6},
+ {0x3271, 0x67F4},
+ {0x3272, 0x8C7A},
+ {0x3273, 0x6519},
+ {0x3274, 0x647B},
+ {0x3275, 0x87EC},
+ {0x3276, 0x995E},
+ {0x3277, 0x8B92},
+ {0x3278, 0x7E8F},
+ {0x3279, 0x93DF},
+ {0x327A, 0x7523},
+ {0x327B, 0x95E1},
+ {0x327C, 0x986B},
+ {0x327D, 0x660C},
+ {0x327E, 0x7316},
+ {0x3321, 0x5834},
+ {0x3322, 0x5617},
+ {0x3323, 0x5E38},
+ {0x3324, 0x9577},
+ {0x3325, 0x511F},
+ {0x3326, 0x8178},
+ {0x3327, 0x5EE0},
+ {0x3328, 0x655E},
+ {0x3329, 0x66A2},
+ {0x332A, 0x5531},
+ {0x332B, 0x5021},
+ {0x332C, 0x8D85},
+ {0x332D, 0x6284},
+ {0x332E, 0x9214},
+ {0x332F, 0x671D},
+ {0x3330, 0x5632},
+ {0x3331, 0x6F6E},
+ {0x3332, 0x5DE2},
+ {0x3333, 0x5435},
+ {0x3334, 0x7092},
+ {0x3335, 0x8ECA},
+ {0x3336, 0x626F},
+ {0x3337, 0x64A4},
+ {0x3338, 0x63A3},
+ {0x3339, 0x5FB9},
+ {0x333A, 0x6F88},
+ {0x333B, 0x90F4},
+ {0x333C, 0x81E3},
+ {0x333D, 0x8FB0},
+ {0x333E, 0x5875},
+ {0x333F, 0x6668},
+ {0x3340, 0x5FF1},
+ {0x3341, 0x6C89},
+ {0x3342, 0x9673},
+ {0x3343, 0x8D81},
+ {0x3344, 0x896F},
+ {0x3345, 0x6491},
+ {0x3346, 0x7A31},
+ {0x3347, 0x57CE},
+ {0x3348, 0x6A59},
+ {0x3349, 0x6210},
+ {0x334A, 0x5448},
+ {0x334B, 0x4E58},
+ {0x334C, 0x7A0B},
+ {0x334D, 0x61F2},
+ {0x334E, 0x6F84},
+ {0x334F, 0x8AA0},
+ {0x3350, 0x627F},
+ {0x3351, 0x901E},
+ {0x3352, 0x9A01},
+ {0x3353, 0x79E4},
+ {0x3354, 0x5403},
+ {0x3355, 0x75F4},
+ {0x3356, 0x6301},
+ {0x3357, 0x5319},
+ {0x3358, 0x6C60},
+ {0x3359, 0x9072},
+ {0x335A, 0x5F1B},
+ {0x335B, 0x99B3},
+ {0x335C, 0x803B},
+ {0x335D, 0x9F52},
+ {0x335E, 0x4F88},
+ {0x335F, 0x5C3A},
+ {0x3360, 0x8D64},
+ {0x3361, 0x7FC5},
+ {0x3362, 0x65A5},
+ {0x3363, 0x71BE},
+ {0x3364, 0x5145},
+ {0x3365, 0x885D},
+ {0x3366, 0x87F2},
+ {0x3367, 0x5D07},
+ {0x3368, 0x5BF5},
+ {0x3369, 0x62BD},
+ {0x336A, 0x916C},
+ {0x336B, 0x7587},
+ {0x336C, 0x8E8A},
+ {0x336D, 0x7A20},
+ {0x336E, 0x6101},
+ {0x336F, 0x7C4C},
+ {0x3370, 0x4EC7},
+ {0x3371, 0x7DA2},
+ {0x3372, 0x7785},
+ {0x3373, 0x919C},
+ {0x3374, 0x81ED},
+ {0x3375, 0x521D},
+ {0x3376, 0x51FA},
+ {0x3377, 0x6A71},
+ {0x3378, 0x53A8},
+ {0x3379, 0x8E87},
+ {0x337A, 0x92E4},
+ {0x337B, 0x96DB},
+ {0x337C, 0x6EC1},
+ {0x337D, 0x9664},
+ {0x337E, 0x695A},
+ {0x3421, 0x790E},
+ {0x3422, 0x5132},
+ {0x3423, 0x77D7},
+ {0x3424, 0x6410},
+ {0x3425, 0x89F8},
+ {0x3426, 0x8655},
+ {0x3427, 0x63E3},
+ {0x3428, 0x5DDD},
+ {0x3429, 0x7A7F},
+ {0x342A, 0x693D},
+ {0x342B, 0x50B3},
+ {0x342C, 0x8239},
+ {0x342D, 0x5598},
+ {0x342E, 0x4E32},
+ {0x342F, 0x7621},
+ {0x3430, 0x7A97},
+ {0x3431, 0x5E62},
+ {0x3432, 0x5E8A},
+ {0x3433, 0x95D6},
+ {0x3434, 0x5275},
+ {0x3435, 0x5439},
+ {0x3436, 0x708A},
+ {0x3437, 0x6376},
+ {0x3438, 0x9318},
+ {0x3439, 0x5782},
+ {0x343A, 0x6625},
+ {0x343B, 0x693F},
+ {0x343C, 0x9187},
+ {0x343D, 0x5507},
+ {0x343E, 0x6DF3},
+ {0x343F, 0x7D14},
+ {0x3440, 0x8822},
+ {0x3441, 0x6233},
+ {0x3442, 0x7DBD},
+ {0x3443, 0x75B5},
+ {0x3444, 0x8328},
+ {0x3445, 0x78C1},
+ {0x3446, 0x96CC},
+ {0x3447, 0x8FAD},
+ {0x3448, 0x6148},
+ {0x3449, 0x74F7},
+ {0x344A, 0x8A5E},
+ {0x344B, 0x6B64},
+ {0x344C, 0x523A},
+ {0x344D, 0x8CDC},
+ {0x344E, 0x6B21},
+ {0x344F, 0x8070},
+ {0x3450, 0x8471},
+ {0x3451, 0x56F1},
+ {0x3452, 0x5306},
+ {0x3453, 0x5F9E},
+ {0x3454, 0x53E2},
+ {0x3455, 0x51D1},
+ {0x3456, 0x7C97},
+ {0x3457, 0x918B},
+ {0x3458, 0x7C07},
+ {0x3459, 0x4FC3},
+ {0x345A, 0x8EA5},
+ {0x345B, 0x7BE1},
+ {0x345C, 0x7AC4},
+ {0x345D, 0x6467},
+ {0x345E, 0x5D14},
+ {0x345F, 0x50AC},
+ {0x3460, 0x8106},
+ {0x3461, 0x7601},
+ {0x3462, 0x7CB9},
+ {0x3463, 0x6DEC},
+ {0x3464, 0x7FE0},
+ {0x3465, 0x6751},
+ {0x3466, 0x5B58},
+ {0x3467, 0x5BF8},
+ {0x3468, 0x78CB},
+ {0x3469, 0x64AE},
+ {0x346A, 0x6413},
+ {0x346B, 0x63AA},
+ {0x346C, 0x632B},
+ {0x346D, 0x932F},
+ {0x346E, 0x642D},
+ {0x346F, 0x9054},
+ {0x3470, 0x7B54},
+ {0x3471, 0x7629},
+ {0x3472, 0x6253},
+ {0x3473, 0x5927},
+ {0x3474, 0x5446},
+ {0x3475, 0x6B79},
+ {0x3476, 0x50A3},
+ {0x3477, 0x6234},
+ {0x3478, 0x5E36},
+ {0x3479, 0x6B86},
+ {0x347A, 0x4EE3},
+ {0x347B, 0x8CB8},
+ {0x347C, 0x888B},
+ {0x347D, 0x5F85},
+ {0x347E, 0x902E},
+ {0x3521, 0x6020},
+ {0x3522, 0x803D},
+ {0x3523, 0x64D4},
+ {0x3524, 0x4E39},
+ {0x3525, 0x55AE},
+ {0x3526, 0x9132},
+ {0x3527, 0x64A3},
+ {0x3528, 0x81BD},
+ {0x3529, 0x65E6},
+ {0x352A, 0x6C2E},
+ {0x352B, 0x4F46},
+ {0x352C, 0x619A},
+ {0x352D, 0x6DE1},
+ {0x352E, 0x8A95},
+ {0x352F, 0x5F48},
+ {0x3530, 0x86CB},
+ {0x3531, 0x7576},
+ {0x3532, 0x64CB},
+ {0x3533, 0x9EE8},
+ {0x3534, 0x8569},
+ {0x3535, 0x6A94},
+ {0x3536, 0x5200},
+ {0x3537, 0x6417},
+ {0x3538, 0x8E48},
+ {0x3539, 0x5012},
+ {0x353A, 0x5CF6},
+ {0x353B, 0x79B1},
+ {0x353C, 0x5C0E},
+ {0x353D, 0x5230},
+ {0x353E, 0x7A3B},
+ {0x353F, 0x60BC},
+ {0x3540, 0x9053},
+ {0x3541, 0x76D7},
+ {0x3542, 0x5FB7},
+ {0x3543, 0x5F97},
+ {0x3544, 0x7684},
+ {0x3545, 0x8E6C},
+ {0x3546, 0x71C8},
+ {0x3547, 0x767B},
+ {0x3548, 0x7B49},
+ {0x3549, 0x77AA},
+ {0x354A, 0x51F3},
+ {0x354B, 0x9127},
+ {0x354C, 0x5824},
+ {0x354D, 0x4F4E},
+ {0x354E, 0x6EF4},
+ {0x354F, 0x8FEA},
+ {0x3550, 0x6575},
+ {0x3551, 0x7B1B},
+ {0x3552, 0x72C4},
+ {0x3553, 0x6ECC},
+ {0x3554, 0x7FDF},
+ {0x3555, 0x5AE1},
+ {0x3556, 0x62B5},
+ {0x3557, 0x5E95},
+ {0x3558, 0x5730},
+ {0x3559, 0x8482},
+ {0x355A, 0x7B2C},
+ {0x355B, 0x5E1D},
+ {0x355C, 0x5F1F},
+ {0x355D, 0x905E},
+ {0x355E, 0x7DE0},
+ {0x355F, 0x985B},
+ {0x3560, 0x6382},
+ {0x3561, 0x6EC7},
+ {0x3562, 0x7898},
+ {0x3563, 0x9EDE},
+ {0x3564, 0x5178},
+ {0x3565, 0x975B},
+ {0x3566, 0x588A},
+ {0x3567, 0x96FB},
+ {0x3568, 0x4F43},
+ {0x3569, 0x7538},
+ {0x356A, 0x5E97},
+ {0x356B, 0x60E6},
+ {0x356C, 0x5960},
+ {0x356D, 0x6FB1},
+ {0x356E, 0x6BBF},
+ {0x356F, 0x7889},
+ {0x3570, 0x53FC},
+ {0x3571, 0x96D5},
+ {0x3572, 0x51CB},
+ {0x3573, 0x5201},
+ {0x3574, 0x6389},
+ {0x3575, 0x540A},
+ {0x3576, 0x91E3},
+ {0x3577, 0x8ABF},
+ {0x3578, 0x8DCC},
+ {0x3579, 0x7239},
+ {0x357A, 0x789F},
+ {0x357B, 0x8776},
+ {0x357C, 0x8FED},
+ {0x357D, 0x8ADC},
+ {0x357E, 0x758A},
+ {0x3621, 0x4E01},
+ {0x3622, 0x76EF},
+ {0x3623, 0x53EE},
+ {0x3624, 0x91D8},
+ {0x3625, 0x9802},
+ {0x3626, 0x9F0E},
+ {0x3627, 0x9320},
+ {0x3628, 0x5B9A},
+ {0x3629, 0x8A02},
+ {0x362A, 0x4E22},
+ {0x362B, 0x6771},
+ {0x362C, 0x51AC},
+ {0x362D, 0x8463},
+ {0x362E, 0x61C2},
+ {0x362F, 0x52D5},
+ {0x3630, 0x68DF},
+ {0x3631, 0x4F97},
+ {0x3632, 0x606B},
+ {0x3633, 0x51CD},
+ {0x3634, 0x6D1E},
+ {0x3635, 0x515C},
+ {0x3636, 0x6296},
+ {0x3637, 0x9B25},
+ {0x3638, 0x9661},
+ {0x3639, 0x8C46},
+ {0x363A, 0x9017},
+ {0x363B, 0x75D8},
+ {0x363C, 0x90FD},
+ {0x363D, 0x7763},
+ {0x363E, 0x6BD2},
+ {0x363F, 0x72A2},
+ {0x3640, 0x7368},
+ {0x3641, 0x8B80},
+ {0x3642, 0x5835},
+ {0x3643, 0x7779},
+ {0x3644, 0x8CED},
+ {0x3645, 0x675C},
+ {0x3646, 0x934D},
+ {0x3647, 0x809A},
+ {0x3648, 0x5EA6},
+ {0x3649, 0x6E21},
+ {0x364A, 0x5992},
+ {0x364B, 0x7AEF},
+ {0x364C, 0x77ED},
+ {0x364D, 0x935B},
+ {0x364E, 0x6BB5},
+ {0x364F, 0x65B7},
+ {0x3650, 0x7DDE},
+ {0x3651, 0x5806},
+ {0x3652, 0x5151},
+ {0x3653, 0x968A},
+ {0x3654, 0x5C0D},
+ {0x3655, 0x58A9},
+ {0x3656, 0x5678},
+ {0x3657, 0x8E72},
+ {0x3658, 0x6566},
+ {0x3659, 0x9813},
+ {0x365A, 0x56E4},
+ {0x365B, 0x920D},
+ {0x365C, 0x76FE},
+ {0x365D, 0x9041},
+ {0x365E, 0x6387},
+ {0x365F, 0x54C6},
+ {0x3660, 0x591A},
+ {0x3661, 0x596A},
+ {0x3662, 0x579B},
+ {0x3663, 0x8EB2},
+ {0x3664, 0x6735},
+ {0x3665, 0x8DFA},
+ {0x3666, 0x8235},
+ {0x3667, 0x5241},
+ {0x3668, 0x60F0},
+ {0x3669, 0x58AE},
+ {0x366A, 0x86FE},
+ {0x366B, 0x5CE8},
+ {0x366C, 0x9D5D},
+ {0x366D, 0x4FC4},
+ {0x366E, 0x984D},
+ {0x366F, 0x8A1B},
+ {0x3670, 0x5A25},
+ {0x3671, 0x60E1},
+ {0x3672, 0x5384},
+ {0x3673, 0x627C},
+ {0x3674, 0x904F},
+ {0x3675, 0x9102},
+ {0x3676, 0x9913},
+ {0x3677, 0x6069},
+ {0x3678, 0x800C},
+ {0x3679, 0x5152},
+ {0x367A, 0x8033},
+ {0x367B, 0x723E},
+ {0x367C, 0x990C},
+ {0x367D, 0x6D31},
+ {0x367E, 0x4E8C},
+ {0x3721, 0x8CB3},
+ {0x3722, 0x767C},
+ {0x3723, 0x7F70},
+ {0x3724, 0x7B4F},
+ {0x3725, 0x4F10},
+ {0x3726, 0x4E4F},
+ {0x3727, 0x95A5},
+ {0x3728, 0x6CD5},
+ {0x3729, 0x73D0},
+ {0x372A, 0x85E9},
+ {0x372B, 0x5E06},
+ {0x372C, 0x756A},
+ {0x372D, 0x7FFB},
+ {0x372E, 0x6A0A},
+ {0x372F, 0x792C},
+ {0x3730, 0x91E9},
+ {0x3731, 0x7E41},
+ {0x3732, 0x51E1},
+ {0x3733, 0x7169},
+ {0x3734, 0x53CD},
+ {0x3735, 0x8FD4},
+ {0x3736, 0x7BC4},
+ {0x3737, 0x8CA9},
+ {0x3738, 0x72AF},
+ {0x3739, 0x98EF},
+ {0x373A, 0x6CDB},
+ {0x373B, 0x574A},
+ {0x373C, 0x82B3},
+ {0x373D, 0x65B9},
+ {0x373E, 0x80AA},
+ {0x373F, 0x623F},
+ {0x3740, 0x9632},
+ {0x3741, 0x59A8},
+ {0x3742, 0x4EFF},
+ {0x3743, 0x8A2A},
+ {0x3744, 0x7D21},
+ {0x3745, 0x653E},
+ {0x3746, 0x83F2},
+ {0x3747, 0x975E},
+ {0x3748, 0x5561},
+ {0x3749, 0x98DB},
+ {0x374A, 0x80A5},
+ {0x374B, 0x532A},
+ {0x374C, 0x8AB9},
+ {0x374D, 0x5420},
+ {0x374E, 0x80BA},
+ {0x374F, 0x5EE2},
+ {0x3750, 0x6CB8},
+ {0x3751, 0x8CBB},
+ {0x3752, 0x82AC},
+ {0x3753, 0x915A},
+ {0x3754, 0x5429},
+ {0x3755, 0x6C1B},
+ {0x3756, 0x5206},
+ {0x3757, 0x7D1B},
+ {0x3758, 0x58B3},
+ {0x3759, 0x711A},
+ {0x375A, 0x6C7E},
+ {0x375B, 0x7C89},
+ {0x375C, 0x596E},
+ {0x375D, 0x4EFD},
+ {0x375E, 0x5FFF},
+ {0x375F, 0x61A4},
+ {0x3760, 0x7CDE},
+ {0x3761, 0x8C50},
+ {0x3762, 0x5C01},
+ {0x3763, 0x6953},
+ {0x3764, 0x8702},
+ {0x3765, 0x5CF0},
+ {0x3766, 0x92D2},
+ {0x3767, 0x98A8},
+ {0x3768, 0x760B},
+ {0x3769, 0x70FD},
+ {0x376A, 0x9022},
+ {0x376B, 0x99AE},
+ {0x376C, 0x7E2B},
+ {0x376D, 0x8AF7},
+ {0x376E, 0x5949},
+ {0x376F, 0x9CF3},
+ {0x3770, 0x4F5B},
+ {0x3771, 0x5426},
+ {0x3772, 0x592B},
+ {0x3773, 0x6577},
+ {0x3774, 0x819A},
+ {0x3775, 0x5B75},
+ {0x3776, 0x6276},
+ {0x3777, 0x62C2},
+ {0x3778, 0x8F3B},
+ {0x3779, 0x5E45},
+ {0x377A, 0x6C1F},
+ {0x377B, 0x7B26},
+ {0x377C, 0x4F0F},
+ {0x377D, 0x4FD8},
+ {0x377E, 0x670D},
+ {0x3821, 0x6D6E},
+ {0x3822, 0x6DAA},
+ {0x3823, 0x798F},
+ {0x3824, 0x88B1},
+ {0x3825, 0x5F17},
+ {0x3826, 0x752B},
+ {0x3827, 0x64AB},
+ {0x3828, 0x8F14},
+ {0x3829, 0x4FEF},
+ {0x382A, 0x91DC},
+ {0x382B, 0x65A7},
+ {0x382C, 0x812F},
+ {0x382D, 0x8151},
+ {0x382E, 0x5E9C},
+ {0x382F, 0x8150},
+ {0x3830, 0x8D74},
+ {0x3831, 0x526F},
+ {0x3832, 0x8986},
+ {0x3833, 0x8CE6},
+ {0x3834, 0x5FA9},
+ {0x3835, 0x5085},
+ {0x3836, 0x4ED8},
+ {0x3837, 0x961C},
+ {0x3838, 0x7236},
+ {0x3839, 0x8179},
+ {0x383A, 0x8CA0},
+ {0x383B, 0x5BCC},
+ {0x383C, 0x8A03},
+ {0x383D, 0x9644},
+ {0x383E, 0x5A66},
+ {0x383F, 0x7E1B},
+ {0x3840, 0x5490},
+ {0x3841, 0x5676},
+ {0x3842, 0x560E},
+ {0x3843, 0x8A72},
+ {0x3844, 0x6539},
+ {0x3845, 0x6982},
+ {0x3846, 0x9223},
+ {0x3847, 0x84CB},
+ {0x3848, 0x6E89},
+ {0x3849, 0x5E79},
+ {0x384A, 0x7518},
+ {0x384B, 0x6746},
+ {0x384C, 0x67D1},
+ {0x384D, 0x7AFF},
+ {0x384E, 0x809D},
+ {0x384F, 0x8D95},
+ {0x3850, 0x611F},
+ {0x3851, 0x79C6},
+ {0x3852, 0x6562},
+ {0x3853, 0x8D1B},
+ {0x3854, 0x5CA1},
+ {0x3855, 0x525B},
+ {0x3856, 0x92FC},
+ {0x3857, 0x7F38},
+ {0x3858, 0x809B},
+ {0x3859, 0x7DB1},
+ {0x385A, 0x5D17},
+ {0x385B, 0x6E2F},
+ {0x385C, 0x6760},
+ {0x385D, 0x7BD9},
+ {0x385E, 0x768B},
+ {0x385F, 0x9AD8},
+ {0x3860, 0x818F},
+ {0x3861, 0x7F94},
+ {0x3862, 0x7CD5},
+ {0x3863, 0x641E},
+ {0x3864, 0x93AC},
+ {0x3865, 0x7A3F},
+ {0x3866, 0x544A},
+ {0x3867, 0x54E5},
+ {0x3868, 0x6B4C},
+ {0x3869, 0x64F1},
+ {0x386A, 0x6208},
+ {0x386B, 0x9D3F},
+ {0x386C, 0x80F3},
+ {0x386D, 0x7599},
+ {0x386E, 0x5272},
+ {0x386F, 0x9769},
+ {0x3870, 0x845B},
+ {0x3871, 0x683C},
+ {0x3872, 0x86E4},
+ {0x3873, 0x95A3},
+ {0x3874, 0x9694},
+ {0x3875, 0x927B},
+ {0x3876, 0x500B},
+ {0x3877, 0x5404},
+ {0x3878, 0x7D66},
+ {0x3879, 0x6839},
+ {0x387A, 0x8DDF},
+ {0x387B, 0x8015},
+ {0x387C, 0x66F4},
+ {0x387D, 0x5E9A},
+ {0x387E, 0x7FB9},
+ {0x3921, 0x57C2},
+ {0x3922, 0x803F},
+ {0x3923, 0x6897},
+ {0x3924, 0x5DE5},
+ {0x3925, 0x653B},
+ {0x3926, 0x529F},
+ {0x3927, 0x606D},
+ {0x3928, 0x9F94},
+ {0x3929, 0x4F9B},
+ {0x392A, 0x8EAC},
+ {0x392B, 0x516C},
+ {0x392C, 0x5BAB},
+ {0x392D, 0x5F13},
+ {0x392E, 0x978F},
+ {0x392F, 0x6C5E},
+ {0x3930, 0x62F1},
+ {0x3931, 0x8CA2},
+ {0x3932, 0x5171},
+ {0x3933, 0x920E},
+ {0x3934, 0x52FE},
+ {0x3935, 0x6E9D},
+ {0x3936, 0x82DF},
+ {0x3937, 0x72D7},
+ {0x3938, 0x57A2},
+ {0x3939, 0x69CB},
+ {0x393A, 0x8CFC},
+ {0x393B, 0x591F},
+ {0x393C, 0x8F9C},
+ {0x393D, 0x83C7},
+ {0x393E, 0x5495},
+ {0x393F, 0x7B8D},
+ {0x3940, 0x4F30},
+ {0x3941, 0x6CBD},
+ {0x3942, 0x5B64},
+ {0x3943, 0x59D1},
+ {0x3944, 0x9F13},
+ {0x3945, 0x53E4},
+ {0x3946, 0x8831},
+ {0x3947, 0x9AA8},
+ {0x3948, 0x8C37},
+ {0x3949, 0x80A1},
+ {0x394A, 0x6545},
+ {0x394B, 0x9867},
+ {0x394C, 0x56FA},
+ {0x394D, 0x96C7},
+ {0x394E, 0x522E},
+ {0x394F, 0x74DC},
+ {0x3950, 0x526E},
+ {0x3951, 0x5BE1},
+ {0x3952, 0x6302},
+ {0x3953, 0x8902},
+ {0x3954, 0x4E56},
+ {0x3955, 0x62D0},
+ {0x3956, 0x602A},
+ {0x3957, 0x68FA},
+ {0x3958, 0x95DC},
+ {0x3959, 0x5B98},
+ {0x395A, 0x51A0},
+ {0x395B, 0x89C0},
+ {0x395C, 0x7BA1},
+ {0x395D, 0x9928},
+ {0x395E, 0x7F50},
+ {0x395F, 0x6163},
+ {0x3960, 0x704C},
+ {0x3961, 0x8CAB},
+ {0x3962, 0x5149},
+ {0x3963, 0x5EE3},
+ {0x3964, 0x901B},
+ {0x3965, 0x7470},
+ {0x3966, 0x898F},
+ {0x3967, 0x572D},
+ {0x3968, 0x7845},
+ {0x3969, 0x6B78},
+ {0x396A, 0x9F9C},
+ {0x396B, 0x95A8},
+ {0x396C, 0x8ECC},
+ {0x396D, 0x9B3C},
+ {0x396E, 0x8A6D},
+ {0x396F, 0x7678},
+ {0x3970, 0x6842},
+ {0x3971, 0x6AC3},
+ {0x3972, 0x8DEA},
+ {0x3973, 0x8CB4},
+ {0x3974, 0x528A},
+ {0x3975, 0x8F25},
+ {0x3976, 0x6EDA},
+ {0x3977, 0x68CD},
+ {0x3978, 0x934B},
+ {0x3979, 0x90ED},
+ {0x397A, 0x570B},
+ {0x397B, 0x679C},
+ {0x397C, 0x88F9},
+ {0x397D, 0x904E},
+ {0x397E, 0x54C8},
+ {0x3A21, 0x9AB8},
+ {0x3A22, 0x5B69},
+ {0x3A23, 0x6D77},
+ {0x3A24, 0x6C26},
+ {0x3A25, 0x4EA5},
+ {0x3A26, 0x5BB3},
+ {0x3A27, 0x99ED},
+ {0x3A28, 0x9163},
+ {0x3A29, 0x61A8},
+ {0x3A2A, 0x90AF},
+ {0x3A2B, 0x97D3},
+ {0x3A2C, 0x542B},
+ {0x3A2D, 0x6DB5},
+ {0x3A2E, 0x5BD2},
+ {0x3A2F, 0x51FD},
+ {0x3A30, 0x558A},
+ {0x3A31, 0x7F55},
+ {0x3A32, 0x7FF0},
+ {0x3A33, 0x64BC},
+ {0x3A34, 0x634D},
+ {0x3A35, 0x65F1},
+ {0x3A36, 0x61BE},
+ {0x3A37, 0x608D},
+ {0x3A38, 0x710A},
+ {0x3A39, 0x6C57},
+ {0x3A3A, 0x6F22},
+ {0x3A3B, 0x592F},
+ {0x3A3C, 0x676D},
+ {0x3A3D, 0x822A},
+ {0x3A3E, 0x58D5},
+ {0x3A3F, 0x568E},
+ {0x3A40, 0x8C6A},
+ {0x3A41, 0x6BEB},
+ {0x3A42, 0x90DD},
+ {0x3A43, 0x597D},
+ {0x3A44, 0x8017},
+ {0x3A45, 0x865F},
+ {0x3A46, 0x6D69},
+ {0x3A47, 0x5475},
+ {0x3A48, 0x559D},
+ {0x3A49, 0x8377},
+ {0x3A4A, 0x83CF},
+ {0x3A4B, 0x6838},
+ {0x3A4C, 0x79BE},
+ {0x3A4D, 0x548C},
+ {0x3A4E, 0x4F55},
+ {0x3A4F, 0x5408},
+ {0x3A50, 0x76D2},
+ {0x3A51, 0x8C89},
+ {0x3A52, 0x95A1},
+ {0x3A53, 0x6CB3},
+ {0x3A54, 0x6DB8},
+ {0x3A55, 0x8D6B},
+ {0x3A56, 0x8910},
+ {0x3A57, 0x9DB4},
+ {0x3A58, 0x8CC0},
+ {0x3A59, 0x563F},
+ {0x3A5A, 0x9ED1},
+ {0x3A5B, 0x75D5},
+ {0x3A5C, 0x5F88},
+ {0x3A5D, 0x72E0},
+ {0x3A5E, 0x6068},
+ {0x3A5F, 0x54FC},
+ {0x3A60, 0x4EA8},
+ {0x3A61, 0x6A2A},
+ {0x3A62, 0x8861},
+ {0x3A63, 0x6052},
+ {0x3A64, 0x8F5F},
+ {0x3A65, 0x54C4},
+ {0x3A66, 0x70D8},
+ {0x3A67, 0x8679},
+ {0x3A68, 0x9D3B},
+ {0x3A69, 0x6D2A},
+ {0x3A6A, 0x5B8F},
+ {0x3A6B, 0x5F18},
+ {0x3A6C, 0x7D05},
+ {0x3A6D, 0x5589},
+ {0x3A6E, 0x4FAF},
+ {0x3A6F, 0x7334},
+ {0x3A70, 0x543C},
+ {0x3A71, 0x539A},
+ {0x3A72, 0x5019},
+ {0x3A73, 0x5F8C},
+ {0x3A74, 0x547C},
+ {0x3A75, 0x4E4E},
+ {0x3A76, 0x5FFD},
+ {0x3A77, 0x745A},
+ {0x3A78, 0x58FA},
+ {0x3A79, 0x846B},
+ {0x3A7A, 0x80E1},
+ {0x3A7B, 0x8774},
+ {0x3A7C, 0x72D0},
+ {0x3A7D, 0x7CCA},
+ {0x3A7E, 0x6E56},
+ {0x3B21, 0x5F27},
+ {0x3B22, 0x864E},
+ {0x3B23, 0x552C},
+ {0x3B24, 0x8B77},
+ {0x3B25, 0x4E92},
+ {0x3B26, 0x6EEC},
+ {0x3B27, 0x6237},
+ {0x3B28, 0x82B1},
+ {0x3B29, 0x5629},
+ {0x3B2A, 0x83EF},
+ {0x3B2B, 0x733E},
+ {0x3B2C, 0x6ED1},
+ {0x3B2D, 0x756B},
+ {0x3B2E, 0x5283},
+ {0x3B2F, 0x5316},
+ {0x3B30, 0x8A71},
+ {0x3B31, 0x69D0},
+ {0x3B32, 0x5F8A},
+ {0x3B33, 0x61F7},
+ {0x3B34, 0x6DEE},
+ {0x3B35, 0x58DE},
+ {0x3B36, 0x6B61},
+ {0x3B37, 0x74B0},
+ {0x3B38, 0x6853},
+ {0x3B39, 0x9084},
+ {0x3B3A, 0x7DE9},
+ {0x3B3B, 0x63DB},
+ {0x3B3C, 0x60A3},
+ {0x3B3D, 0x559A},
+ {0x3B3E, 0x7613},
+ {0x3B3F, 0x8C62},
+ {0x3B40, 0x7165},
+ {0x3B41, 0x6E19},
+ {0x3B42, 0x5BA6},
+ {0x3B43, 0x5E7B},
+ {0x3B44, 0x8352},
+ {0x3B45, 0x614C},
+ {0x3B46, 0x9EC4},
+ {0x3B47, 0x78FA},
+ {0x3B48, 0x8757},
+ {0x3B49, 0x7C27},
+ {0x3B4A, 0x7687},
+ {0x3B4B, 0x51F0},
+ {0x3B4C, 0x60F6},
+ {0x3B4D, 0x714C},
+ {0x3B4E, 0x6643},
+ {0x3B4F, 0x5E4C},
+ {0x3B50, 0x604D},
+ {0x3B51, 0x8B0A},
+ {0x3B52, 0x7070},
+ {0x3B53, 0x63EE},
+ {0x3B54, 0x8F1D},
+ {0x3B55, 0x5FBD},
+ {0x3B56, 0x6062},
+ {0x3B57, 0x86D4},
+ {0x3B58, 0x56DE},
+ {0x3B59, 0x6BC1},
+ {0x3B5A, 0x6094},
+ {0x3B5B, 0x6167},
+ {0x3B5C, 0x5349},
+ {0x3B5D, 0x60E0},
+ {0x3B5E, 0x6666},
+ {0x3B5F, 0x8CC4},
+ {0x3B60, 0x7A62},
+ {0x3B61, 0x6703},
+ {0x3B62, 0x71F4},
+ {0x3B63, 0x532F},
+ {0x3B64, 0x8AF1},
+ {0x3B65, 0x8AA8},
+ {0x3B66, 0x7E6A},
+ {0x3B67, 0x8477},
+ {0x3B68, 0x660F},
+ {0x3B69, 0x5A5A},
+ {0x3B6A, 0x9B42},
+ {0x3B6B, 0x6E3E},
+ {0x3B6C, 0x6DF7},
+ {0x3B6D, 0x8C41},
+ {0x3B6E, 0x6D3B},
+ {0x3B6F, 0x4F19},
+ {0x3B70, 0x706B},
+ {0x3B71, 0x7372},
+ {0x3B72, 0x6216},
+ {0x3B73, 0x60D1},
+ {0x3B74, 0x970D},
+ {0x3B75, 0x8CA8},
+ {0x3B76, 0x798D},
+ {0x3B77, 0x64CA},
+ {0x3B78, 0x573E},
+ {0x3B79, 0x57FA},
+ {0x3B7A, 0x6A5F},
+ {0x3B7B, 0x7578},
+ {0x3B7C, 0x7A3D},
+ {0x3B7D, 0x7A4D},
+ {0x3B7E, 0x7B95},
+ {0x3C21, 0x808C},
+ {0x3C22, 0x9951},
+ {0x3C23, 0x8FF9},
+ {0x3C24, 0x6FC0},
+ {0x3C25, 0x8B4F},
+ {0x3C26, 0x9DC4},
+ {0x3C27, 0x59EC},
+ {0x3C28, 0x7E3E},
+ {0x3C29, 0x7DDD},
+ {0x3C2A, 0x5409},
+ {0x3C2B, 0x6975},
+ {0x3C2C, 0x68D8},
+ {0x3C2D, 0x8F2F},
+ {0x3C2E, 0x7C4D},
+ {0x3C2F, 0x96C6},
+ {0x3C30, 0x53CA},
+ {0x3C31, 0x6025},
+ {0x3C32, 0x75BE},
+ {0x3C33, 0x6C72},
+ {0x3C34, 0x5373},
+ {0x3C35, 0x5AC9},
+ {0x3C36, 0x7D1A},
+ {0x3C37, 0x64E0},
+ {0x3C38, 0x5E7E},
+ {0x3C39, 0x810A},
+ {0x3C3A, 0x5DF1},
+ {0x3C3B, 0x858A},
+ {0x3C3C, 0x6280},
+ {0x3C3D, 0x5180},
+ {0x3C3E, 0x5B63},
+ {0x3C3F, 0x4F0E},
+ {0x3C40, 0x796D},
+ {0x3C41, 0x5291},
+ {0x3C42, 0x60B8},
+ {0x3C43, 0x6FDF},
+ {0x3C44, 0x5BC4},
+ {0x3C45, 0x5BC2},
+ {0x3C46, 0x8A08},
+ {0x3C47, 0x8A18},
+ {0x3C48, 0x65E2},
+ {0x3C49, 0x5FCC},
+ {0x3C4A, 0x969B},
+ {0x3C4B, 0x5993},
+ {0x3C4C, 0x7E7C},
+ {0x3C4D, 0x7D00},
+ {0x3C4E, 0x5609},
+ {0x3C4F, 0x67B7},
+ {0x3C50, 0x593E},
+ {0x3C51, 0x4F73},
+ {0x3C52, 0x5BB6},
+ {0x3C53, 0x52A0},
+ {0x3C54, 0x83A2},
+ {0x3C55, 0x9830},
+ {0x3C56, 0x8CC8},
+ {0x3C57, 0x7532},
+ {0x3C58, 0x9240},
+ {0x3C59, 0x5047},
+ {0x3C5A, 0x7A3C},
+ {0x3C5B, 0x50F9},
+ {0x3C5C, 0x67B6},
+ {0x3C5D, 0x99D5},
+ {0x3C5E, 0x5AC1},
+ {0x3C5F, 0x6BB2},
+ {0x3C60, 0x76E3},
+ {0x3C61, 0x5805},
+ {0x3C62, 0x5C16},
+ {0x3C63, 0x7B8B},
+ {0x3C64, 0x9593},
+ {0x3C65, 0x714E},
+ {0x3C66, 0x517C},
+ {0x3C67, 0x80A9},
+ {0x3C68, 0x8271},
+ {0x3C69, 0x5978},
+ {0x3C6A, 0x7DD8},
+ {0x3C6B, 0x7E6D},
+ {0x3C6C, 0x6AA2},
+ {0x3C6D, 0x67EC},
+ {0x3C6E, 0x78B1},
+ {0x3C6F, 0x9E7C},
+ {0x3C70, 0x63C0},
+ {0x3C71, 0x64BF},
+ {0x3C72, 0x7C21},
+ {0x3C73, 0x5109},
+ {0x3C74, 0x526A},
+ {0x3C75, 0x51CF},
+ {0x3C76, 0x85A6},
+ {0x3C77, 0x6ABB},
+ {0x3C78, 0x9452},
+ {0x3C79, 0x8E10},
+ {0x3C7A, 0x8CE4},
+ {0x3C7B, 0x898B},
+ {0x3C7C, 0x9375},
+ {0x3C7D, 0x7BAD},
+ {0x3C7E, 0x4EF6},
+ {0x3D21, 0x5065},
+ {0x3D22, 0x8266},
+ {0x3D23, 0x528D},
+ {0x3D24, 0x991E},
+ {0x3D25, 0x6F38},
+ {0x3D26, 0x6FFA},
+ {0x3D27, 0x6F97},
+ {0x3D28, 0x5EFA},
+ {0x3D29, 0x50F5},
+ {0x3D2A, 0x59DC},
+ {0x3D2B, 0x5C07},
+ {0x3D2C, 0x6F3F},
+ {0x3D2D, 0x6C5F},
+ {0x3D2E, 0x7586},
+ {0x3D2F, 0x8523},
+ {0x3D30, 0x69F3},
+ {0x3D31, 0x596C},
+ {0x3D32, 0x8B1B},
+ {0x3D33, 0x5320},
+ {0x3D34, 0x91AC},
+ {0x3D35, 0x964D},
+ {0x3D36, 0x8549},
+ {0x3D37, 0x6912},
+ {0x3D38, 0x7901},
+ {0x3D39, 0x7126},
+ {0x3D3A, 0x81A0},
+ {0x3D3B, 0x4EA4},
+ {0x3D3C, 0x90CA},
+ {0x3D3D, 0x6F86},
+ {0x3D3E, 0x9A55},
+ {0x3D3F, 0x5B0C},
+ {0x3D40, 0x56BC},
+ {0x3D41, 0x652A},
+ {0x3D42, 0x9278},
+ {0x3D43, 0x77EF},
+ {0x3D44, 0x50E5},
+ {0x3D45, 0x811A},
+ {0x3D46, 0x72E1},
+ {0x3D47, 0x89D2},
+ {0x3D48, 0x9903},
+ {0x3D49, 0x7E73},
+ {0x3D4A, 0x7D5E},
+ {0x3D4B, 0x527F},
+ {0x3D4C, 0x6559},
+ {0x3D4D, 0x9175},
+ {0x3D4E, 0x8F4E},
+ {0x3D4F, 0x8F03},
+ {0x3D50, 0x53EB},
+ {0x3D51, 0x7A96},
+ {0x3D52, 0x63ED},
+ {0x3D53, 0x63A5},
+ {0x3D54, 0x7686},
+ {0x3D55, 0x79F8},
+ {0x3D56, 0x8857},
+ {0x3D57, 0x968E},
+ {0x3D58, 0x622A},
+ {0x3D59, 0x52AB},
+ {0x3D5A, 0x7BC0},
+ {0x3D5B, 0x6854},
+ {0x3D5C, 0x6770},
+ {0x3D5D, 0x6377},
+ {0x3D5E, 0x776B},
+ {0x3D5F, 0x7AED},
+ {0x3D60, 0x6F54},
+ {0x3D61, 0x7D50},
+ {0x3D62, 0x89E3},
+ {0x3D63, 0x59D0},
+ {0x3D64, 0x6212},
+ {0x3D65, 0x85C9},
+ {0x3D66, 0x82A5},
+ {0x3D67, 0x754C},
+ {0x3D68, 0x501F},
+ {0x3D69, 0x4ECB},
+ {0x3D6A, 0x75A5},
+ {0x3D6B, 0x8AA1},
+ {0x3D6C, 0x5C4A},
+ {0x3D6D, 0x5DFE},
+ {0x3D6E, 0x7B4B},
+ {0x3D6F, 0x65A4},
+ {0x3D70, 0x91D1},
+ {0x3D71, 0x4ECA},
+ {0x3D72, 0x6D25},
+ {0x3D73, 0x895F},
+ {0x3D74, 0x7DCA},
+ {0x3D75, 0x9326},
+ {0x3D76, 0x50C5},
+ {0x3D77, 0x8B39},
+ {0x3D78, 0x9032},
+ {0x3D79, 0x9773},
+ {0x3D7A, 0x6649},
+ {0x3D7B, 0x7981},
+ {0x3D7C, 0x8FD1},
+ {0x3D7D, 0x71FC},
+ {0x3D7E, 0x6D78},
+ {0x3E21, 0x76E1},
+ {0x3E22, 0x52C1},
+ {0x3E23, 0x8346},
+ {0x3E24, 0x5162},
+ {0x3E25, 0x8396},
+ {0x3E26, 0x775B},
+ {0x3E27, 0x6676},
+ {0x3E28, 0x9BE8},
+ {0x3E29, 0x4EAC},
+ {0x3E2A, 0x9A5A},
+ {0x3E2B, 0x7CBE},
+ {0x3E2C, 0x7CB3},
+ {0x3E2D, 0x7D93},
+ {0x3E2E, 0x4E95},
+ {0x3E2F, 0x8B66},
+ {0x3E30, 0x666F},
+ {0x3E31, 0x9838},
+ {0x3E32, 0x975C},
+ {0x3E33, 0x5883},
+ {0x3E34, 0x656C},
+ {0x3E35, 0x93E1},
+ {0x3E36, 0x5F91},
+ {0x3E37, 0x75D9},
+ {0x3E38, 0x9756},
+ {0x3E39, 0x7ADF},
+ {0x3E3A, 0x7AF6},
+ {0x3E3B, 0x51C8},
+ {0x3E3C, 0x70AF},
+ {0x3E3D, 0x7A98},
+ {0x3E3E, 0x63EA},
+ {0x3E3F, 0x7A76},
+ {0x3E40, 0x7CFE},
+ {0x3E41, 0x7396},
+ {0x3E42, 0x97ED},
+ {0x3E43, 0x4E45},
+ {0x3E44, 0x7078},
+ {0x3E45, 0x4E5D},
+ {0x3E46, 0x9152},
+ {0x3E47, 0x53A9},
+ {0x3E48, 0x6551},
+ {0x3E49, 0x820A},
+ {0x3E4A, 0x81FC},
+ {0x3E4B, 0x8205},
+ {0x3E4C, 0x548E},
+ {0x3E4D, 0x5C31},
+ {0x3E4E, 0x759A},
+ {0x3E4F, 0x97A0},
+ {0x3E50, 0x62D8},
+ {0x3E51, 0x72D9},
+ {0x3E52, 0x75BD},
+ {0x3E53, 0x5C45},
+ {0x3E54, 0x99D2},
+ {0x3E55, 0x83CA},
+ {0x3E56, 0x5C40},
+ {0x3E57, 0x5480},
+ {0x3E58, 0x77E9},
+ {0x3E59, 0x8209},
+ {0x3E5A, 0x6CAE},
+ {0x3E5B, 0x805A},
+ {0x3E5C, 0x62D2},
+ {0x3E5D, 0x64DA},
+ {0x3E5E, 0x5DE8},
+ {0x3E5F, 0x5177},
+ {0x3E60, 0x8DDD},
+ {0x3E61, 0x8E1E},
+ {0x3E62, 0x92F8},
+ {0x3E63, 0x4FF1},
+ {0x3E64, 0x53E5},
+ {0x3E65, 0x61FC},
+ {0x3E66, 0x70AC},
+ {0x3E67, 0x5287},
+ {0x3E68, 0x6350},
+ {0x3E69, 0x9D51},
+ {0x3E6A, 0x5A1F},
+ {0x3E6B, 0x5026},
+ {0x3E6C, 0x7737},
+ {0x3E6D, 0x5377},
+ {0x3E6E, 0x7D79},
+ {0x3E6F, 0x6485},
+ {0x3E70, 0x652B},
+ {0x3E71, 0x6289},
+ {0x3E72, 0x6398},
+ {0x3E73, 0x5014},
+ {0x3E74, 0x7235},
+ {0x3E75, 0x89BA},
+ {0x3E76, 0x51B3},
+ {0x3E77, 0x8A23},
+ {0x3E78, 0x7D76},
+ {0x3E79, 0x5747},
+ {0x3E7A, 0x83CC},
+ {0x3E7B, 0x921E},
+ {0x3E7C, 0x8ECD},
+ {0x3E7D, 0x541B},
+ {0x3E7E, 0x5CFB},
+ {0x3F21, 0x4FCA},
+ {0x3F22, 0x7AE3},
+ {0x3F23, 0x6D5A},
+ {0x3F24, 0x90E1},
+ {0x3F25, 0x99FF},
+ {0x3F26, 0x5580},
+ {0x3F27, 0x5496},
+ {0x3F28, 0x5361},
+ {0x3F29, 0x54AF},
+ {0x3F2A, 0x958B},
+ {0x3F2B, 0x63E9},
+ {0x3F2C, 0x6977},
+ {0x3F2D, 0x51F1},
+ {0x3F2E, 0x6168},
+ {0x3F2F, 0x520A},
+ {0x3F30, 0x582A},
+ {0x3F31, 0x52D8},
+ {0x3F32, 0x574E},
+ {0x3F33, 0x780D},
+ {0x3F34, 0x770B},
+ {0x3F35, 0x5EB7},
+ {0x3F36, 0x6177},
+ {0x3F37, 0x7CE0},
+ {0x3F38, 0x625B},
+ {0x3F39, 0x6297},
+ {0x3F3A, 0x4EA2},
+ {0x3F3B, 0x7095},
+ {0x3F3C, 0x8003},
+ {0x3F3D, 0x62F7},
+ {0x3F3E, 0x70E4},
+ {0x3F3F, 0x9760},
+ {0x3F40, 0x5777},
+ {0x3F41, 0x82DB},
+ {0x3F42, 0x67EF},
+ {0x3F43, 0x68F5},
+ {0x3F44, 0x78D5},
+ {0x3F45, 0x9846},
+ {0x3F46, 0x79D1},
+ {0x3F47, 0x6BBB},
+ {0x3F48, 0x54B3},
+ {0x3F49, 0x53EF},
+ {0x3F4A, 0x6E34},
+ {0x3F4B, 0x514B},
+ {0x3F4C, 0x523B},
+ {0x3F4D, 0x5BA2},
+ {0x3F4E, 0x8AB2},
+ {0x3F4F, 0x80AF},
+ {0x3F50, 0x5543},
+ {0x3F51, 0x58BE},
+ {0x3F52, 0x61C7},
+ {0x3F53, 0x5751},
+ {0x3F54, 0x542D},
+ {0x3F55, 0x7A7A},
+ {0x3F56, 0x6050},
+ {0x3F57, 0x5B54},
+ {0x3F58, 0x63A7},
+ {0x3F59, 0x6473},
+ {0x3F5A, 0x53E3},
+ {0x3F5B, 0x6263},
+ {0x3F5C, 0x5BC7},
+ {0x3F5D, 0x67AF},
+ {0x3F5E, 0x54ED},
+ {0x3F5F, 0x7A9F},
+ {0x3F60, 0x82E6},
+ {0x3F61, 0x9177},
+ {0x3F62, 0x5EAB},
+ {0x3F63, 0x8932},
+ {0x3F64, 0x8A87},
+ {0x3F65, 0x57AE},
+ {0x3F66, 0x630E},
+ {0x3F67, 0x8DE8},
+ {0x3F68, 0x80EF},
+ {0x3F69, 0x584A},
+ {0x3F6A, 0x7B77},
+ {0x3F6B, 0x5108},
+ {0x3F6C, 0x5FEB},
+ {0x3F6D, 0x5BEC},
+ {0x3F6E, 0x6B3E},
+ {0x3F6F, 0x5321},
+ {0x3F70, 0x7B50},
+ {0x3F71, 0x72C2},
+ {0x3F72, 0x6846},
+ {0x3F73, 0x7926},
+ {0x3F74, 0x7736},
+ {0x3F75, 0x66E0},
+ {0x3F76, 0x51B5},
+ {0x3F77, 0x8667},
+ {0x3F78, 0x76D4},
+ {0x3F79, 0x5DCB},
+ {0x3F7A, 0x7ABA},
+ {0x3F7B, 0x8475},
+ {0x3F7C, 0x594E},
+ {0x3F7D, 0x9B41},
+ {0x3F7E, 0x5080},
+ {0x4021, 0x994B},
+ {0x4022, 0x6127},
+ {0x4023, 0x6F70},
+ {0x4024, 0x5764},
+ {0x4025, 0x6606},
+ {0x4026, 0x6346},
+ {0x4027, 0x56F0},
+ {0x4028, 0x62EC},
+ {0x4029, 0x64F4},
+ {0x402A, 0x5ED3},
+ {0x402B, 0x95CA},
+ {0x402C, 0x5783},
+ {0x402D, 0x62C9},
+ {0x402E, 0x5587},
+ {0x402F, 0x881F},
+ {0x4030, 0x81D8},
+ {0x4031, 0x8FA3},
+ {0x4032, 0x5566},
+ {0x4033, 0x840A},
+ {0x4034, 0x4F86},
+ {0x4035, 0x8CF4},
+ {0x4036, 0x85CD},
+ {0x4037, 0x5A6A},
+ {0x4038, 0x6B04},
+ {0x4039, 0x6514},
+ {0x403A, 0x7C43},
+ {0x403B, 0x95CC},
+ {0x403C, 0x862D},
+ {0x403D, 0x703E},
+ {0x403E, 0x8B95},
+ {0x403F, 0x652C},
+ {0x4040, 0x89BD},
+ {0x4041, 0x61F6},
+ {0x4042, 0x7E9C},
+ {0x4043, 0x721B},
+ {0x4044, 0x6FEB},
+ {0x4045, 0x7405},
+ {0x4046, 0x6994},
+ {0x4047, 0x72FC},
+ {0x4048, 0x5ECA},
+ {0x4049, 0x90CE},
+ {0x404A, 0x6717},
+ {0x404B, 0x6D6A},
+ {0x404C, 0x6488},
+ {0x404D, 0x52DE},
+ {0x404E, 0x7262},
+ {0x404F, 0x8001},
+ {0x4050, 0x4F6C},
+ {0x4051, 0x59E5},
+ {0x4052, 0x916A},
+ {0x4053, 0x70D9},
+ {0x4054, 0x6F87},
+ {0x4055, 0x52D2},
+ {0x4056, 0x6A02},
+ {0x4057, 0x96F7},
+ {0x4058, 0x9433},
+ {0x4059, 0x857E},
+ {0x405A, 0x78CA},
+ {0x405B, 0x7D2F},
+ {0x405C, 0x5121},
+ {0x405D, 0x58D8},
+ {0x405E, 0x64C2},
+ {0x405F, 0x808B},
+ {0x4060, 0x985E},
+ {0x4061, 0x6CEA},
+ {0x4062, 0x68F1},
+ {0x4063, 0x695E},
+ {0x4064, 0x51B7},
+ {0x4065, 0x5398},
+ {0x4066, 0x68A8},
+ {0x4067, 0x7281},
+ {0x4068, 0x9ECE},
+ {0x4069, 0x7C6C},
+ {0x406A, 0x72F8},
+ {0x406B, 0x96E2},
+ {0x406C, 0x7055},
+ {0x406D, 0x7406},
+ {0x406E, 0x674E},
+ {0x406F, 0x88CF},
+ {0x4070, 0x9BC9},
+ {0x4071, 0x79AE},
+ {0x4072, 0x8389},
+ {0x4073, 0x8354},
+ {0x4074, 0x540F},
+ {0x4075, 0x6817},
+ {0x4076, 0x9E97},
+ {0x4077, 0x53B2},
+ {0x4078, 0x52F5},
+ {0x4079, 0x792B},
+ {0x407A, 0x6B77},
+ {0x407B, 0x5229},
+ {0x407C, 0x5088},
+ {0x407D, 0x4F8B},
+ {0x407E, 0x4FD0},
+ {0x4121, 0x75E2},
+ {0x4122, 0x7ACB},
+ {0x4123, 0x7C92},
+ {0x4124, 0x701D},
+ {0x4125, 0x96B8},
+ {0x4126, 0x529B},
+ {0x4127, 0x7483},
+ {0x4128, 0x54E9},
+ {0x4129, 0x5006},
+ {0x412A, 0x806F},
+ {0x412B, 0x84EE},
+ {0x412C, 0x9023},
+ {0x412D, 0x942E},
+ {0x412E, 0x5EC9},
+ {0x412F, 0x6190},
+ {0x4130, 0x6F23},
+ {0x4131, 0x7C3E},
+ {0x4132, 0x6582},
+ {0x4133, 0x81C9},
+ {0x4134, 0x93C8},
+ {0x4135, 0x6200},
+ {0x4136, 0x7149},
+ {0x4137, 0x7DF4},
+ {0x4138, 0x7CE7},
+ {0x4139, 0x51C9},
+ {0x413A, 0x6881},
+ {0x413B, 0x7CB1},
+ {0x413C, 0x826F},
+ {0x413D, 0x5169},
+ {0x413E, 0x8F1B},
+ {0x413F, 0x91CF},
+ {0x4140, 0x667E},
+ {0x4141, 0x4EAE},
+ {0x4142, 0x8AD2},
+ {0x4143, 0x64A9},
+ {0x4144, 0x804A},
+ {0x4145, 0x50DA},
+ {0x4146, 0x7642},
+ {0x4147, 0x71CE},
+ {0x4148, 0x5BE5},
+ {0x4149, 0x907C},
+ {0x414A, 0x6F66},
+ {0x414B, 0x4E86},
+ {0x414C, 0x6482},
+ {0x414D, 0x9410},
+ {0x414E, 0x5ED6},
+ {0x414F, 0x6599},
+ {0x4150, 0x5217},
+ {0x4151, 0x88C2},
+ {0x4152, 0x70C8},
+ {0x4153, 0x52A3},
+ {0x4154, 0x7375},
+ {0x4155, 0x7433},
+ {0x4156, 0x6797},
+ {0x4157, 0x78F7},
+ {0x4158, 0x9716},
+ {0x4159, 0x81E8},
+ {0x415A, 0x9130},
+ {0x415B, 0x9C57},
+ {0x415C, 0x6DCB},
+ {0x415D, 0x51DB},
+ {0x415E, 0x8CC3},
+ {0x415F, 0x541D},
+ {0x4160, 0x62CE},
+ {0x4161, 0x73B2},
+ {0x4162, 0x83F1},
+ {0x4163, 0x96F6},
+ {0x4164, 0x9F61},
+ {0x4165, 0x9234},
+ {0x4166, 0x4F36},
+ {0x4167, 0x7F9A},
+ {0x4168, 0x51CC},
+ {0x4169, 0x9748},
+ {0x416A, 0x9675},
+ {0x416B, 0x5DBA},
+ {0x416C, 0x9818},
+ {0x416D, 0x53E6},
+ {0x416E, 0x4EE4},
+ {0x416F, 0x6E9C},
+ {0x4170, 0x7409},
+ {0x4171, 0x69B4},
+ {0x4172, 0x786B},
+ {0x4173, 0x993E},
+ {0x4174, 0x7559},
+ {0x4175, 0x5289},
+ {0x4176, 0x7624},
+ {0x4177, 0x6D41},
+ {0x4178, 0x67F3},
+ {0x4179, 0x516D},
+ {0x417A, 0x9F8D},
+ {0x417B, 0x807E},
+ {0x417C, 0x56A8},
+ {0x417D, 0x7C60},
+ {0x417E, 0x7ABF},
+ {0x4221, 0x9686},
+ {0x4222, 0x58DF},
+ {0x4223, 0x650F},
+ {0x4224, 0x96B4},
+ {0x4225, 0x6A13},
+ {0x4226, 0x5A41},
+ {0x4227, 0x645F},
+ {0x4228, 0x7C0D},
+ {0x4229, 0x6F0F},
+ {0x422A, 0x964B},
+ {0x422B, 0x8606},
+ {0x422C, 0x76E7},
+ {0x422D, 0x9871},
+ {0x422E, 0x5EEC},
+ {0x422F, 0x7210},
+ {0x4230, 0x64C4},
+ {0x4231, 0x6EF7},
+ {0x4232, 0x865C},
+ {0x4233, 0x9B6F},
+ {0x4234, 0x9E93},
+ {0x4235, 0x788C},
+ {0x4236, 0x9732},
+ {0x4237, 0x8DEF},
+ {0x4238, 0x8CC2},
+ {0x4239, 0x9E7F},
+ {0x423A, 0x6F5E},
+ {0x423B, 0x7984},
+ {0x423C, 0x9332},
+ {0x423D, 0x9678},
+ {0x423E, 0x622E},
+ {0x423F, 0x9A62},
+ {0x4240, 0x5415},
+ {0x4241, 0x92C1},
+ {0x4242, 0x4FA3},
+ {0x4243, 0x65C5},
+ {0x4244, 0x5C65},
+ {0x4245, 0x5C62},
+ {0x4246, 0x7E37},
+ {0x4247, 0x616E},
+ {0x4248, 0x6C2F},
+ {0x4249, 0x5F8B},
+ {0x424A, 0x7387},
+ {0x424B, 0x6FFE},
+ {0x424C, 0x7DD1},
+ {0x424D, 0x5DD2},
+ {0x424E, 0x6523},
+ {0x424F, 0x5B7F},
+ {0x4250, 0x7064},
+ {0x4251, 0x5375},
+ {0x4252, 0x4E82},
+ {0x4253, 0x63A0},
+ {0x4254, 0x7565},
+ {0x4255, 0x6384},
+ {0x4256, 0x8F2A},
+ {0x4257, 0x502B},
+ {0x4258, 0x4F96},
+ {0x4259, 0x6DEA},
+ {0x425A, 0x7DB8},
+ {0x425B, 0x8AD6},
+ {0x425C, 0x863F},
+ {0x425D, 0x87BA},
+ {0x425E, 0x7F85},
+ {0x425F, 0x908F},
+ {0x4260, 0x947C},
+ {0x4261, 0x7C6E},
+ {0x4262, 0x9A3E},
+ {0x4263, 0x88F8},
+ {0x4264, 0x843D},
+ {0x4265, 0x6D1B},
+ {0x4266, 0x99F1},
+ {0x4267, 0x7D61},
+ {0x4268, 0x5ABD},
+ {0x4269, 0x9EBB},
+ {0x426A, 0x746A},
+ {0x426B, 0x78BC},
+ {0x426C, 0x879E},
+ {0x426D, 0x99AC},
+ {0x426E, 0x99E1},
+ {0x426F, 0x561B},
+ {0x4270, 0x55CE},
+ {0x4271, 0x57CB},
+ {0x4272, 0x8CB7},
+ {0x4273, 0x9EA5},
+ {0x4274, 0x8CE3},
+ {0x4275, 0x9081},
+ {0x4276, 0x8109},
+ {0x4277, 0x779E},
+ {0x4278, 0x9945},
+ {0x4279, 0x883B},
+ {0x427A, 0x6EFF},
+ {0x427B, 0x8513},
+ {0x427C, 0x66FC},
+ {0x427D, 0x6162},
+ {0x427E, 0x6F2B},
+ {0x4321, 0x8B3E},
+ {0x4322, 0x8292},
+ {0x4323, 0x832B},
+ {0x4324, 0x76F2},
+ {0x4325, 0x6C13},
+ {0x4326, 0x5FD9},
+ {0x4327, 0x83BD},
+ {0x4328, 0x732B},
+ {0x4329, 0x8305},
+ {0x432A, 0x9328},
+ {0x432B, 0x6BDB},
+ {0x432C, 0x77DB},
+ {0x432D, 0x925A},
+ {0x432E, 0x536F},
+ {0x432F, 0x8302},
+ {0x4330, 0x5192},
+ {0x4331, 0x5E3D},
+ {0x4332, 0x8C8C},
+ {0x4333, 0x8CBF},
+ {0x4334, 0x9EBD},
+ {0x4335, 0x73AB},
+ {0x4336, 0x679A},
+ {0x4337, 0x6885},
+ {0x4338, 0x9176},
+ {0x4339, 0x9709},
+ {0x433A, 0x7164},
+ {0x433B, 0x6CA1},
+ {0x433C, 0x7709},
+ {0x433D, 0x5A92},
+ {0x433E, 0x9382},
+ {0x433F, 0x6BCF},
+ {0x4340, 0x7F8E},
+ {0x4341, 0x6627},
+ {0x4342, 0x5BD0},
+ {0x4343, 0x59B9},
+ {0x4344, 0x5A9A},
+ {0x4345, 0x9580},
+ {0x4346, 0x60B6},
+ {0x4347, 0x5011},
+ {0x4348, 0x840C},
+ {0x4349, 0x8499},
+ {0x434A, 0x6AAC},
+ {0x434B, 0x76DF},
+ {0x434C, 0x9333},
+ {0x434D, 0x731B},
+ {0x434E, 0x5922},
+ {0x434F, 0x5B5F},
+ {0x4350, 0x772F},
+ {0x4351, 0x919A},
+ {0x4352, 0x9761},
+ {0x4353, 0x7CDC},
+ {0x4354, 0x8FF7},
+ {0x4355, 0x8B0E},
+ {0x4356, 0x5F4C},
+ {0x4357, 0x7C73},
+ {0x4358, 0x79D8},
+ {0x4359, 0x8993},
+ {0x435A, 0x6CCC},
+ {0x435B, 0x871C},
+ {0x435C, 0x5BC6},
+ {0x435D, 0x5E42},
+ {0x435E, 0x68C9},
+ {0x435F, 0x7720},
+ {0x4360, 0x7DBF},
+ {0x4361, 0x5195},
+ {0x4362, 0x514D},
+ {0x4363, 0x52C9},
+ {0x4364, 0x5A29},
+ {0x4365, 0x7DEC},
+ {0x4366, 0x9762},
+ {0x4367, 0x82D7},
+ {0x4368, 0x63CF},
+ {0x4369, 0x7784},
+ {0x436A, 0x85D0},
+ {0x436B, 0x79D2},
+ {0x436C, 0x6E3A},
+ {0x436D, 0x5EDF},
+ {0x436E, 0x5999},
+ {0x436F, 0x8511},
+ {0x4370, 0x6EC5},
+ {0x4371, 0x6C11},
+ {0x4372, 0x62BF},
+ {0x4373, 0x76BF},
+ {0x4374, 0x654F},
+ {0x4375, 0x61AB},
+ {0x4376, 0x95A9},
+ {0x4377, 0x660E},
+ {0x4378, 0x879F},
+ {0x4379, 0x9CF4},
+ {0x437A, 0x9298},
+ {0x437B, 0x540D},
+ {0x437C, 0x547D},
+ {0x437D, 0x8B2C},
+ {0x437E, 0x6478},
+ {0x4421, 0x6479},
+ {0x4422, 0x8611},
+ {0x4423, 0x6A21},
+ {0x4424, 0x819C},
+ {0x4425, 0x78E8},
+ {0x4426, 0x6469},
+ {0x4427, 0x9B54},
+ {0x4428, 0x62B9},
+ {0x4429, 0x672B},
+ {0x442A, 0x83AB},
+ {0x442B, 0x58A8},
+ {0x442C, 0x9ED8},
+ {0x442D, 0x6CAB},
+ {0x442E, 0x6F20},
+ {0x442F, 0x5BDE},
+ {0x4430, 0x964C},
+ {0x4431, 0x8B00},
+ {0x4432, 0x725F},
+ {0x4433, 0x67D0},
+ {0x4434, 0x62C7},
+ {0x4435, 0x7261},
+ {0x4436, 0x755D},
+ {0x4437, 0x59C6},
+ {0x4438, 0x6BCD},
+ {0x4439, 0x5893},
+ {0x443A, 0x66AE},
+ {0x443B, 0x5E55},
+ {0x443C, 0x52DF},
+ {0x443D, 0x6155},
+ {0x443E, 0x6728},
+ {0x443F, 0x76EE},
+ {0x4440, 0x7766},
+ {0x4441, 0x7267},
+ {0x4442, 0x7A46},
+ {0x4443, 0x62FF},
+ {0x4444, 0x54EA},
+ {0x4445, 0x5450},
+ {0x4446, 0x9209},
+ {0x4447, 0x90A3},
+ {0x4448, 0x5A1C},
+ {0x4449, 0x7D0D},
+ {0x444A, 0x6C16},
+ {0x444B, 0x4E43},
+ {0x444C, 0x5976},
+ {0x444D, 0x8010},
+ {0x444E, 0x5948},
+ {0x444F, 0x5357},
+ {0x4450, 0x7537},
+ {0x4451, 0x96E3},
+ {0x4452, 0x56CA},
+ {0x4453, 0x6493},
+ {0x4454, 0x8166},
+ {0x4455, 0x60F1},
+ {0x4456, 0x9B27},
+ {0x4457, 0x6DD6},
+ {0x4458, 0x5462},
+ {0x4459, 0x9912},
+ {0x445A, 0x5185},
+ {0x445B, 0x5AE9},
+ {0x445C, 0x80FD},
+ {0x445D, 0x59AE},
+ {0x445E, 0x9713},
+ {0x445F, 0x502A},
+ {0x4460, 0x6CE5},
+ {0x4461, 0x5C3C},
+ {0x4462, 0x64EC},
+ {0x4463, 0x4F60},
+ {0x4464, 0x533F},
+ {0x4465, 0x81A9},
+ {0x4466, 0x9006},
+ {0x4467, 0x6EBA},
+ {0x4468, 0x852B},
+ {0x4469, 0x62C8},
+ {0x446A, 0x5E74},
+ {0x446B, 0x78BE},
+ {0x446C, 0x6506},
+ {0x446D, 0x637B},
+ {0x446E, 0x5FF5},
+ {0x446F, 0x5A18},
+ {0x4470, 0x91C0},
+ {0x4471, 0x9CE5},
+ {0x4472, 0x5C3F},
+ {0x4473, 0x634F},
+ {0x4474, 0x8076},
+ {0x4475, 0x5B7D},
+ {0x4476, 0x5699},
+ {0x4477, 0x9477},
+ {0x4478, 0x93B3},
+ {0x4479, 0x6D85},
+ {0x447A, 0x60A8},
+ {0x447B, 0x6AB8},
+ {0x447C, 0x7370},
+ {0x447D, 0x51DD},
+ {0x447E, 0x5BE7},
+ {0x4521, 0x64F0},
+ {0x4522, 0x6FD8},
+ {0x4523, 0x725B},
+ {0x4524, 0x626D},
+ {0x4525, 0x9215},
+ {0x4526, 0x7D10},
+ {0x4527, 0x81BF},
+ {0x4528, 0x6FC3},
+ {0x4529, 0x8FB2},
+ {0x452A, 0x5F04},
+ {0x452B, 0x5974},
+ {0x452C, 0x52AA},
+ {0x452D, 0x6012},
+ {0x452E, 0x5973},
+ {0x452F, 0x6696},
+ {0x4530, 0x8650},
+ {0x4531, 0x7627},
+ {0x4532, 0x632A},
+ {0x4533, 0x61E6},
+ {0x4534, 0x7CEF},
+ {0x4535, 0x8AFE},
+ {0x4536, 0x54E6},
+ {0x4537, 0x6B50},
+ {0x4538, 0x9DD7},
+ {0x4539, 0x6BC6},
+ {0x453A, 0x85D5},
+ {0x453B, 0x5614},
+ {0x453C, 0x5076},
+ {0x453D, 0x6F1A},
+ {0x453E, 0x556A},
+ {0x453F, 0x8DB4},
+ {0x4540, 0x722C},
+ {0x4541, 0x5E15},
+ {0x4542, 0x6015},
+ {0x4543, 0x7436},
+ {0x4544, 0x62CD},
+ {0x4545, 0x6392},
+ {0x4546, 0x724C},
+ {0x4547, 0x5F98},
+ {0x4548, 0x6E43},
+ {0x4549, 0x6D3E},
+ {0x454A, 0x6500},
+ {0x454B, 0x6F58},
+ {0x454C, 0x76E4},
+ {0x454D, 0x78D0},
+ {0x454E, 0x76FC},
+ {0x454F, 0x7554},
+ {0x4550, 0x5224},
+ {0x4551, 0x53DB},
+ {0x4552, 0x4E53},
+ {0x4553, 0x9F90},
+ {0x4554, 0x65C1},
+ {0x4555, 0x802A},
+ {0x4556, 0x80D6},
+ {0x4557, 0x629B},
+ {0x4558, 0x5486},
+ {0x4559, 0x5228},
+ {0x455A, 0x70AE},
+ {0x455B, 0x888D},
+ {0x455C, 0x8DD1},
+ {0x455D, 0x6CE1},
+ {0x455E, 0x5478},
+ {0x455F, 0x80DA},
+ {0x4560, 0x57F9},
+ {0x4561, 0x88F4},
+ {0x4562, 0x8CE0},
+ {0x4563, 0x966A},
+ {0x4564, 0x914D},
+ {0x4565, 0x4F69},
+ {0x4566, 0x6C9B},
+ {0x4567, 0x5674},
+ {0x4568, 0x76C6},
+ {0x4569, 0x7830},
+ {0x456A, 0x62A8},
+ {0x456B, 0x70F9},
+ {0x456C, 0x6F8E},
+ {0x456D, 0x5F6D},
+ {0x456E, 0x84EC},
+ {0x456F, 0x68DA},
+ {0x4570, 0x787C},
+ {0x4571, 0x7BF7},
+ {0x4572, 0x81A8},
+ {0x4573, 0x670B},
+ {0x4574, 0x9D6C},
+ {0x4575, 0x6367},
+ {0x4576, 0x78B0},
+ {0x4577, 0x576F},
+ {0x4578, 0x7812},
+ {0x4579, 0x9739},
+ {0x457A, 0x6279},
+ {0x457B, 0x62AB},
+ {0x457C, 0x5288},
+ {0x457D, 0x7435},
+ {0x457E, 0x6BD7},
+ {0x4621, 0x5564},
+ {0x4622, 0x813E},
+ {0x4623, 0x75B2},
+ {0x4624, 0x76AE},
+ {0x4625, 0x5339},
+ {0x4626, 0x75DE},
+ {0x4627, 0x50FB},
+ {0x4628, 0x5C41},
+ {0x4629, 0x8B6C},
+ {0x462A, 0x7BC7},
+ {0x462B, 0x504F},
+ {0x462C, 0x7247},
+ {0x462D, 0x9A19},
+ {0x462E, 0x98C4},
+ {0x462F, 0x6F02},
+ {0x4630, 0x74E2},
+ {0x4631, 0x7968},
+ {0x4632, 0x6487},
+ {0x4633, 0x77A5},
+ {0x4634, 0x62FC},
+ {0x4635, 0x983B},
+ {0x4636, 0x8CA7},
+ {0x4637, 0x54C1},
+ {0x4638, 0x8058},
+ {0x4639, 0x4E52},
+ {0x463A, 0x576A},
+ {0x463B, 0x860B},
+ {0x463C, 0x840D},
+ {0x463D, 0x5E73},
+ {0x463E, 0x6191},
+ {0x463F, 0x74F6},
+ {0x4640, 0x8A55},
+ {0x4641, 0x5C4F},
+ {0x4642, 0x5761},
+ {0x4643, 0x6F51},
+ {0x4644, 0x9817},
+ {0x4645, 0x5A46},
+ {0x4646, 0x7834},
+ {0x4647, 0x9B44},
+ {0x4648, 0x8FEB},
+ {0x4649, 0x7C95},
+ {0x464A, 0x5256},
+ {0x464B, 0x64B2},
+ {0x464C, 0x92EA},
+ {0x464D, 0x50D5},
+ {0x464E, 0x8386},
+ {0x464F, 0x8461},
+ {0x4650, 0x83E9},
+ {0x4651, 0x84B2},
+ {0x4652, 0x57D4},
+ {0x4653, 0x6A38},
+ {0x4654, 0x5703},
+ {0x4655, 0x666E},
+ {0x4656, 0x6D66},
+ {0x4657, 0x8B5C},
+ {0x4658, 0x66DD},
+ {0x4659, 0x7011},
+ {0x465A, 0x671F},
+ {0x465B, 0x6B3A},
+ {0x465C, 0x68F2},
+ {0x465D, 0x621A},
+ {0x465E, 0x59BB},
+ {0x465F, 0x4E03},
+ {0x4660, 0x51C4},
+ {0x4661, 0x6F06},
+ {0x4662, 0x67D2},
+ {0x4663, 0x6C8F},
+ {0x4664, 0x5176},
+ {0x4665, 0x68CB},
+ {0x4666, 0x5947},
+ {0x4667, 0x6B67},
+ {0x4668, 0x7566},
+ {0x4669, 0x5D0E},
+ {0x466A, 0x81CD},
+ {0x466B, 0x9F4A},
+ {0x466C, 0x65D7},
+ {0x466D, 0x7948},
+ {0x466E, 0x7941},
+ {0x466F, 0x9A0E},
+ {0x4670, 0x8D77},
+ {0x4671, 0x8C48},
+ {0x4672, 0x4E5E},
+ {0x4673, 0x4F01},
+ {0x4674, 0x5553},
+ {0x4675, 0x5951},
+ {0x4676, 0x780C},
+ {0x4677, 0x5668},
+ {0x4678, 0x6C23},
+ {0x4679, 0x8FC4},
+ {0x467A, 0x68C4},
+ {0x467B, 0x6C7D},
+ {0x467C, 0x6CE3},
+ {0x467D, 0x8A16},
+ {0x467E, 0x6390},
+ {0x4721, 0x6070},
+ {0x4722, 0x6D3D},
+ {0x4723, 0x727D},
+ {0x4724, 0x6266},
+ {0x4725, 0x91FA},
+ {0x4726, 0x925B},
+ {0x4727, 0x5343},
+ {0x4728, 0x9077},
+ {0x4729, 0x7C3D},
+ {0x472A, 0x4EDF},
+ {0x472B, 0x8B19},
+ {0x472C, 0x4E7E},
+ {0x472D, 0x9ED4},
+ {0x472E, 0x9322},
+ {0x472F, 0x9257},
+ {0x4730, 0x524D},
+ {0x4731, 0x6F5B},
+ {0x4732, 0x9063},
+ {0x4733, 0x6DFA},
+ {0x4734, 0x8B74},
+ {0x4735, 0x5879},
+ {0x4736, 0x5D4C},
+ {0x4737, 0x6B20},
+ {0x4738, 0x6B49},
+ {0x4739, 0x69CD},
+ {0x473A, 0x55C6},
+ {0x473B, 0x8154},
+ {0x473C, 0x7F8C},
+ {0x473D, 0x58BB},
+ {0x473E, 0x8594},
+ {0x473F, 0x5F3A},
+ {0x4740, 0x6436},
+ {0x4741, 0x6A47},
+ {0x4742, 0x936C},
+ {0x4743, 0x6572},
+ {0x4744, 0x6084},
+ {0x4745, 0x6A4B},
+ {0x4746, 0x77A7},
+ {0x4747, 0x55AC},
+ {0x4748, 0x50D1},
+ {0x4749, 0x5DE7},
+ {0x474A, 0x9798},
+ {0x474B, 0x64AC},
+ {0x474C, 0x7FF9},
+ {0x474D, 0x5CED},
+ {0x474E, 0x4FCF},
+ {0x474F, 0x7AC5},
+ {0x4750, 0x5207},
+ {0x4751, 0x8304},
+ {0x4752, 0x4E14},
+ {0x4753, 0x602F},
+ {0x4754, 0x7ACA},
+ {0x4755, 0x6B3D},
+ {0x4756, 0x4FB5},
+ {0x4757, 0x89AA},
+ {0x4758, 0x79E6},
+ {0x4759, 0x7434},
+ {0x475A, 0x52E4},
+ {0x475B, 0x82B9},
+ {0x475C, 0x64D2},
+ {0x475D, 0x79BD},
+ {0x475E, 0x5BE2},
+ {0x475F, 0x6C81},
+ {0x4760, 0x9752},
+ {0x4761, 0x8F15},
+ {0x4762, 0x6C2B},
+ {0x4763, 0x50BE},
+ {0x4764, 0x537F},
+ {0x4765, 0x6E05},
+ {0x4766, 0x64CE},
+ {0x4767, 0x6674},
+ {0x4768, 0x6C30},
+ {0x4769, 0x60C5},
+ {0x476A, 0x9803},
+ {0x476B, 0x8ACB},
+ {0x476C, 0x6176},
+ {0x476D, 0x74CA},
+ {0x476E, 0x7AAE},
+ {0x476F, 0x79CB},
+ {0x4770, 0x4E18},
+ {0x4771, 0x90B1},
+ {0x4772, 0x7403},
+ {0x4773, 0x6C42},
+ {0x4774, 0x56DA},
+ {0x4775, 0x914B},
+ {0x4776, 0x6CC5},
+ {0x4777, 0x8DA8},
+ {0x4778, 0x5340},
+ {0x4779, 0x86C6},
+ {0x477A, 0x66F2},
+ {0x477B, 0x8EC0},
+ {0x477C, 0x5C48},
+ {0x477D, 0x9A45},
+ {0x477E, 0x6E20},
+ {0x4821, 0x53D6},
+ {0x4822, 0x5A36},
+ {0x4823, 0x9F72},
+ {0x4824, 0x8DA3},
+ {0x4825, 0x53BB},
+ {0x4826, 0x5708},
+ {0x4827, 0x9874},
+ {0x4828, 0x6B0A},
+ {0x4829, 0x919B},
+ {0x482A, 0x6CC9},
+ {0x482B, 0x5168},
+ {0x482C, 0x75CA},
+ {0x482D, 0x62F3},
+ {0x482E, 0x72AC},
+ {0x482F, 0x5238},
+ {0x4830, 0x52F8},
+ {0x4831, 0x7F3A},
+ {0x4832, 0x7094},
+ {0x4833, 0x7638},
+ {0x4834, 0x5374},
+ {0x4835, 0x9D72},
+ {0x4836, 0x69B7},
+ {0x4837, 0x78BA},
+ {0x4838, 0x96C0},
+ {0x4839, 0x88D9},
+ {0x483A, 0x7FA4},
+ {0x483B, 0x7136},
+ {0x483C, 0x71C3},
+ {0x483D, 0x5189},
+ {0x483E, 0x67D3},
+ {0x483F, 0x74E4},
+ {0x4840, 0x58E4},
+ {0x4841, 0x6518},
+ {0x4842, 0x56B7},
+ {0x4843, 0x8B93},
+ {0x4844, 0x9952},
+ {0x4845, 0x64FE},
+ {0x4846, 0x7E5E},
+ {0x4847, 0x60F9},
+ {0x4848, 0x71B1},
+ {0x4849, 0x58EC},
+ {0x484A, 0x4EC1},
+ {0x484B, 0x4EBA},
+ {0x484C, 0x5FCD},
+ {0x484D, 0x97CC},
+ {0x484E, 0x4EFB},
+ {0x484F, 0x8A8D},
+ {0x4850, 0x5203},
+ {0x4851, 0x598A},
+ {0x4852, 0x7D09},
+ {0x4853, 0x6254},
+ {0x4854, 0x4ECD},
+ {0x4855, 0x65E5},
+ {0x4856, 0x620E},
+ {0x4857, 0x8338},
+ {0x4858, 0x84C9},
+ {0x4859, 0x69AE},
+ {0x485A, 0x878D},
+ {0x485B, 0x7194},
+ {0x485C, 0x6EB6},
+ {0x485D, 0x5BB9},
+ {0x485E, 0x7D68},
+ {0x485F, 0x5197},
+ {0x4860, 0x63C9},
+ {0x4861, 0x67D4},
+ {0x4862, 0x8089},
+ {0x4863, 0x8339},
+ {0x4864, 0x8815},
+ {0x4865, 0x5112},
+ {0x4866, 0x5B7A},
+ {0x4867, 0x5982},
+ {0x4868, 0x8FB1},
+ {0x4869, 0x4E73},
+ {0x486A, 0x6C5D},
+ {0x486B, 0x5165},
+ {0x486C, 0x8925},
+ {0x486D, 0x8EDF},
+ {0x486E, 0x962E},
+ {0x486F, 0x854A},
+ {0x4870, 0x745E},
+ {0x4871, 0x92ED},
+ {0x4872, 0x958F},
+ {0x4873, 0x6F64},
+ {0x4874, 0x82E5},
+ {0x4875, 0x5F31},
+ {0x4876, 0x6492},
+ {0x4877, 0x7051},
+ {0x4878, 0x85A9},
+ {0x4879, 0x816E},
+ {0x487A, 0x9C13},
+ {0x487B, 0x585E},
+ {0x487C, 0x8CFD},
+ {0x487D, 0x4E09},
+ {0x487E, 0x53C1},
+ {0x4921, 0x5098},
+ {0x4922, 0x6563},
+ {0x4923, 0x6851},
+ {0x4924, 0x55D3},
+ {0x4925, 0x55AA},
+ {0x4926, 0x6414},
+ {0x4927, 0x9A37},
+ {0x4928, 0x6383},
+ {0x4929, 0x5AC2},
+ {0x492A, 0x745F},
+ {0x492B, 0x8272},
+ {0x492C, 0x6F80},
+ {0x492D, 0x68EE},
+ {0x492E, 0x50E7},
+ {0x492F, 0x838E},
+ {0x4930, 0x7802},
+ {0x4931, 0x6BBA},
+ {0x4932, 0x5239},
+ {0x4933, 0x6C99},
+ {0x4934, 0x7D17},
+ {0x4935, 0x50BB},
+ {0x4936, 0x5565},
+ {0x4937, 0x715E},
+ {0x4938, 0x7BE9},
+ {0x4939, 0x66EC},
+ {0x493A, 0x73CA},
+ {0x493B, 0x82EB},
+ {0x493C, 0x6749},
+ {0x493D, 0x5C71},
+ {0x493E, 0x5220},
+ {0x493F, 0x717D},
+ {0x4940, 0x886B},
+ {0x4941, 0x9583},
+ {0x4942, 0x965D},
+ {0x4943, 0x64C5},
+ {0x4944, 0x8D0D},
+ {0x4945, 0x81B3},
+ {0x4946, 0x5584},
+ {0x4947, 0x6C55},
+ {0x4948, 0x6247},
+ {0x4949, 0x7E55},
+ {0x494A, 0x5892},
+ {0x494B, 0x50B7},
+ {0x494C, 0x5546},
+ {0x494D, 0x8CDE},
+ {0x494E, 0x664C},
+ {0x494F, 0x4E0A},
+ {0x4950, 0x5C1A},
+ {0x4951, 0x88F3},
+ {0x4952, 0x68A2},
+ {0x4953, 0x634E},
+ {0x4954, 0x7A0D},
+ {0x4955, 0x71D2},
+ {0x4956, 0x828D},
+ {0x4957, 0x52FA},
+ {0x4958, 0x97F6},
+ {0x4959, 0x5C11},
+ {0x495A, 0x54E8},
+ {0x495B, 0x90B5},
+ {0x495C, 0x7D39},
+ {0x495D, 0x5962},
+ {0x495E, 0x8CD2},
+ {0x495F, 0x86C7},
+ {0x4960, 0x820C},
+ {0x4961, 0x6368},
+ {0x4962, 0x8D66},
+ {0x4963, 0x651D},
+ {0x4964, 0x5C04},
+ {0x4965, 0x61FE},
+ {0x4966, 0x6D89},
+ {0x4967, 0x793E},
+ {0x4968, 0x8A2D},
+ {0x4969, 0x7837},
+ {0x496A, 0x7533},
+ {0x496B, 0x547B},
+ {0x496C, 0x4F38},
+ {0x496D, 0x8EAB},
+ {0x496E, 0x6DF1},
+ {0x496F, 0x5A20},
+ {0x4970, 0x7D33},
+ {0x4971, 0x795E},
+ {0x4972, 0x6C88},
+ {0x4973, 0x5BE9},
+ {0x4974, 0x5B38},
+ {0x4975, 0x751A},
+ {0x4976, 0x814E},
+ {0x4977, 0x614E},
+ {0x4978, 0x6EF2},
+ {0x4979, 0x8072},
+ {0x497A, 0x751F},
+ {0x497B, 0x7525},
+ {0x497C, 0x7272},
+ {0x497D, 0x5347},
+ {0x497E, 0x7E69},
+ {0x4A21, 0x7701},
+ {0x4A22, 0x76DB},
+ {0x4A23, 0x5269},
+ {0x4A24, 0x52DD},
+ {0x4A25, 0x8056},
+ {0x4A26, 0x5E2B},
+ {0x4A27, 0x5931},
+ {0x4A28, 0x7345},
+ {0x4A29, 0x65BD},
+ {0x4A2A, 0x6FD5},
+ {0x4A2B, 0x8A69},
+ {0x4A2C, 0x5C38},
+ {0x4A2D, 0x8671},
+ {0x4A2E, 0x5341},
+ {0x4A2F, 0x77F3},
+ {0x4A30, 0x62FE},
+ {0x4A31, 0x6642},
+ {0x4A32, 0x4EC0},
+ {0x4A33, 0x98DF},
+ {0x4A34, 0x8755},
+ {0x4A35, 0x5BE6},
+ {0x4A36, 0x8B58},
+ {0x4A37, 0x53F2},
+ {0x4A38, 0x77E2},
+ {0x4A39, 0x4F7F},
+ {0x4A3A, 0x5C4E},
+ {0x4A3B, 0x99DB},
+ {0x4A3C, 0x59CB},
+ {0x4A3D, 0x5F0F},
+ {0x4A3E, 0x793A},
+ {0x4A3F, 0x58EB},
+ {0x4A40, 0x4E16},
+ {0x4A41, 0x67FF},
+ {0x4A42, 0x4E8B},
+ {0x4A43, 0x62ED},
+ {0x4A44, 0x8A93},
+ {0x4A45, 0x901D},
+ {0x4A46, 0x52E2},
+ {0x4A47, 0x662F},
+ {0x4A48, 0x55DC},
+ {0x4A49, 0x566C},
+ {0x4A4A, 0x9069},
+ {0x4A4B, 0x4ED5},
+ {0x4A4C, 0x4F8D},
+ {0x4A4D, 0x91CB},
+ {0x4A4E, 0x98FE},
+ {0x4A4F, 0x6C0F},
+ {0x4A50, 0x5E02},
+ {0x4A51, 0x6043},
+ {0x4A52, 0x5BA4},
+ {0x4A53, 0x8996},
+ {0x4A54, 0x8A66},
+ {0x4A55, 0x6536},
+ {0x4A56, 0x624B},
+ {0x4A57, 0x9996},
+ {0x4A58, 0x5B88},
+ {0x4A59, 0x58FD},
+ {0x4A5A, 0x6388},
+ {0x4A5B, 0x552E},
+ {0x4A5C, 0x53D7},
+ {0x4A5D, 0x7626},
+ {0x4A5E, 0x7378},
+ {0x4A5F, 0x852C},
+ {0x4A60, 0x6A1E},
+ {0x4A61, 0x68B3},
+ {0x4A62, 0x6B8A},
+ {0x4A63, 0x6292},
+ {0x4A64, 0x8F38},
+ {0x4A65, 0x53D4},
+ {0x4A66, 0x8212},
+ {0x4A67, 0x6DD1},
+ {0x4A68, 0x758F},
+ {0x4A69, 0x66F8},
+ {0x4A6A, 0x8D16},
+ {0x4A6B, 0x5B70},
+ {0x4A6C, 0x719F},
+ {0x4A6D, 0x85AF},
+ {0x4A6E, 0x6691},
+ {0x4A6F, 0x66D9},
+ {0x4A70, 0x7F72},
+ {0x4A71, 0x8700},
+ {0x4A72, 0x9ECD},
+ {0x4A73, 0x9F20},
+ {0x4A74, 0x5C6C},
+ {0x4A75, 0x8853},
+ {0x4A76, 0x8FF0},
+ {0x4A77, 0x6A39},
+ {0x4A78, 0x675F},
+ {0x4A79, 0x620D},
+ {0x4A7A, 0x7AEA},
+ {0x4A7B, 0x5885},
+ {0x4A7C, 0x5EB6},
+ {0x4A7D, 0x6578},
+ {0x4A7E, 0x6F31},
+ {0x4B21, 0x6055},
+ {0x4B22, 0x5237},
+ {0x4B23, 0x800D},
+ {0x4B24, 0x6454},
+ {0x4B25, 0x8870},
+ {0x4B26, 0x7529},
+ {0x4B27, 0x5E25},
+ {0x4B28, 0x6813},
+ {0x4B29, 0x62F4},
+ {0x4B2A, 0x971C},
+ {0x4B2B, 0x96D9},
+ {0x4B2C, 0x723D},
+ {0x4B2D, 0x8AB0},
+ {0x4B2E, 0x6C34},
+ {0x4B2F, 0x7761},
+ {0x4B30, 0x7A0E},
+ {0x4B31, 0x542E},
+ {0x4B32, 0x77AC},
+ {0x4B33, 0x9806},
+ {0x4B34, 0x821C},
+ {0x4B35, 0x8AAC},
+ {0x4B36, 0x78A9},
+ {0x4B37, 0x6714},
+ {0x4B38, 0x720D},
+ {0x4B39, 0x65AF},
+ {0x4B3A, 0x6495},
+ {0x4B3B, 0x5636},
+ {0x4B3C, 0x601D},
+ {0x4B3D, 0x79C1},
+ {0x4B3E, 0x53F8},
+ {0x4B3F, 0x7D72},
+ {0x4B40, 0x6B7B},
+ {0x4B41, 0x8086},
+ {0x4B42, 0x5BFA},
+ {0x4B43, 0x55E3},
+ {0x4B44, 0x56DB},
+ {0x4B45, 0x4F3A},
+ {0x4B46, 0x4F3C},
+ {0x4B47, 0x98FC},
+ {0x4B48, 0x5DF3},
+ {0x4B49, 0x9B06},
+ {0x4B4A, 0x8073},
+ {0x4B4B, 0x616B},
+ {0x4B4C, 0x980C},
+ {0x4B4D, 0x9001},
+ {0x4B4E, 0x5B8B},
+ {0x4B4F, 0x8A1F},
+ {0x4B50, 0x8AA6},
+ {0x4B51, 0x641C},
+ {0x4B52, 0x8258},
+ {0x4B53, 0x64FB},
+ {0x4B54, 0x55FD},
+ {0x4B55, 0x8607},
+ {0x4B56, 0x9165},
+ {0x4B57, 0x4FD7},
+ {0x4B58, 0x7D20},
+ {0x4B59, 0x901F},
+ {0x4B5A, 0x7C9F},
+ {0x4B5B, 0x50F3},
+ {0x4B5C, 0x5851},
+ {0x4B5D, 0x6EAF},
+ {0x4B5E, 0x5BBF},
+ {0x4B5F, 0x8A34},
+ {0x4B60, 0x8085},
+ {0x4B61, 0x9178},
+ {0x4B62, 0x849C},
+ {0x4B63, 0x7B97},
+ {0x4B64, 0x96D6},
+ {0x4B65, 0x968B},
+ {0x4B66, 0x96A8},
+ {0x4B67, 0x7D8F},
+ {0x4B68, 0x9AD3},
+ {0x4B69, 0x788E},
+ {0x4B6A, 0x6B72},
+ {0x4B6B, 0x7A57},
+ {0x4B6C, 0x9042},
+ {0x4B6D, 0x96A7},
+ {0x4B6E, 0x795F},
+ {0x4B6F, 0x5B6B},
+ {0x4B70, 0x640D},
+ {0x4B71, 0x7B0B},
+ {0x4B72, 0x84D1},
+ {0x4B73, 0x68AD},
+ {0x4B74, 0x5506},
+ {0x4B75, 0x7E2E},
+ {0x4B76, 0x7463},
+ {0x4B77, 0x7D22},
+ {0x4B78, 0x9396},
+ {0x4B79, 0x6240},
+ {0x4B7A, 0x584C},
+ {0x4B7B, 0x4ED6},
+ {0x4B7C, 0x5B83},
+ {0x4B7D, 0x5979},
+ {0x4B7E, 0x5854},
+ {0x4C21, 0x737A},
+ {0x4C22, 0x64BB},
+ {0x4C23, 0x8E4B},
+ {0x4C24, 0x8E0F},
+ {0x4C25, 0x80CE},
+ {0x4C26, 0x82D4},
+ {0x4C27, 0x62AC},
+ {0x4C28, 0x81FA},
+ {0x4C29, 0x6CF0},
+ {0x4C2A, 0x915E},
+ {0x4C2B, 0x592A},
+ {0x4C2C, 0x614B},
+ {0x4C2D, 0x6C70},
+ {0x4C2E, 0x574D},
+ {0x4C2F, 0x6524},
+ {0x4C30, 0x8CAA},
+ {0x4C31, 0x7671},
+ {0x4C32, 0x7058},
+ {0x4C33, 0x58C7},
+ {0x4C34, 0x6A80},
+ {0x4C35, 0x75F0},
+ {0x4C36, 0x6F6D},
+ {0x4C37, 0x8B5A},
+ {0x4C38, 0x8AC7},
+ {0x4C39, 0x5766},
+ {0x4C3A, 0x6BEF},
+ {0x4C3B, 0x8892},
+ {0x4C3C, 0x78B3},
+ {0x4C3D, 0x63A2},
+ {0x4C3E, 0x5606},
+ {0x4C3F, 0x70AD},
+ {0x4C40, 0x6E6F},
+ {0x4C41, 0x5858},
+ {0x4C42, 0x642A},
+ {0x4C43, 0x5802},
+ {0x4C44, 0x68E0},
+ {0x4C45, 0x819B},
+ {0x4C46, 0x5510},
+ {0x4C47, 0x7CD6},
+ {0x4C48, 0x5018},
+ {0x4C49, 0x8EBA},
+ {0x4C4A, 0x6DCC},
+ {0x4C4B, 0x8D9F},
+ {0x4C4C, 0x71D9},
+ {0x4C4D, 0x638F},
+ {0x4C4E, 0x6FE4},
+ {0x4C4F, 0x6ED4},
+ {0x4C50, 0x7E27},
+ {0x4C51, 0x8404},
+ {0x4C52, 0x6843},
+ {0x4C53, 0x9003},
+ {0x4C54, 0x6DD8},
+ {0x4C55, 0x9676},
+ {0x4C56, 0x8A0E},
+ {0x4C57, 0x5957},
+ {0x4C58, 0x7279},
+ {0x4C59, 0x85E4},
+ {0x4C5A, 0x9A30},
+ {0x4C5B, 0x75BC},
+ {0x4C5C, 0x8B04},
+ {0x4C5D, 0x68AF},
+ {0x4C5E, 0x5254},
+ {0x4C5F, 0x8E22},
+ {0x4C60, 0x92BB},
+ {0x4C61, 0x63D0},
+ {0x4C62, 0x984C},
+ {0x4C63, 0x8E44},
+ {0x4C64, 0x557C},
+ {0x4C65, 0x9AD4},
+ {0x4C66, 0x66FF},
+ {0x4C67, 0x568F},
+ {0x4C68, 0x60D5},
+ {0x4C69, 0x6D95},
+ {0x4C6A, 0x5243},
+ {0x4C6B, 0x5C49},
+ {0x4C6C, 0x5929},
+ {0x4C6D, 0x6DFB},
+ {0x4C6E, 0x586B},
+ {0x4C6F, 0x7530},
+ {0x4C70, 0x751C},
+ {0x4C71, 0x606C},
+ {0x4C72, 0x8214},
+ {0x4C73, 0x8146},
+ {0x4C74, 0x6311},
+ {0x4C75, 0x689D},
+ {0x4C76, 0x8FE2},
+ {0x4C77, 0x773A},
+ {0x4C78, 0x8DF3},
+ {0x4C79, 0x8CBC},
+ {0x4C7A, 0x9435},
+ {0x4C7B, 0x5E16},
+ {0x4C7C, 0x5EF3},
+ {0x4C7D, 0x807D},
+ {0x4C7E, 0x70F4},
+ {0x4D21, 0x6C40},
+ {0x4D22, 0x5EF7},
+ {0x4D23, 0x505C},
+ {0x4D24, 0x4EAD},
+ {0x4D25, 0x5EAD},
+ {0x4D26, 0x633A},
+ {0x4D27, 0x8247},
+ {0x4D28, 0x901A},
+ {0x4D29, 0x6850},
+ {0x4D2A, 0x916E},
+ {0x4D2B, 0x77B3},
+ {0x4D2C, 0x540C},
+ {0x4D2D, 0x9285},
+ {0x4D2E, 0x5F64},
+ {0x4D2F, 0x7AE5},
+ {0x4D30, 0x6876},
+ {0x4D31, 0x6345},
+ {0x4D32, 0x7B52},
+ {0x4D33, 0x7D71},
+ {0x4D34, 0x75DB},
+ {0x4D35, 0x5077},
+ {0x4D36, 0x6295},
+ {0x4D37, 0x982D},
+ {0x4D38, 0x900F},
+ {0x4D39, 0x51F8},
+ {0x4D3A, 0x79C3},
+ {0x4D3B, 0x7A81},
+ {0x4D3C, 0x5716},
+ {0x4D3D, 0x5F92},
+ {0x4D3E, 0x9014},
+ {0x4D3F, 0x5857},
+ {0x4D40, 0x5C60},
+ {0x4D41, 0x571F},
+ {0x4D42, 0x5410},
+ {0x4D43, 0x5154},
+ {0x4D44, 0x6E4D},
+ {0x4D45, 0x5718},
+ {0x4D46, 0x63A8},
+ {0x4D47, 0x983D},
+ {0x4D48, 0x817F},
+ {0x4D49, 0x8715},
+ {0x4D4A, 0x892A},
+ {0x4D4B, 0x9000},
+ {0x4D4C, 0x541E},
+ {0x4D4D, 0x5C6F},
+ {0x4D4E, 0x81C0},
+ {0x4D4F, 0x62D6},
+ {0x4D50, 0x6258},
+ {0x4D51, 0x8131},
+ {0x4D52, 0x9D15},
+ {0x4D53, 0x9640},
+ {0x4D54, 0x99B1},
+ {0x4D55, 0x99DD},
+ {0x4D56, 0x6A62},
+ {0x4D57, 0x59A5},
+ {0x4D58, 0x62D3},
+ {0x4D59, 0x553E},
+ {0x4D5A, 0x6316},
+ {0x4D5B, 0x54C7},
+ {0x4D5C, 0x86D9},
+ {0x4D5D, 0x7AAA},
+ {0x4D5E, 0x5A03},
+ {0x4D5F, 0x74E6},
+ {0x4D60, 0x896A},
+ {0x4D61, 0x6B6A},
+ {0x4D62, 0x5916},
+ {0x4D63, 0x8C4C},
+ {0x4D64, 0x5F4E},
+ {0x4D65, 0x7063},
+ {0x4D66, 0x73A9},
+ {0x4D67, 0x9811},
+ {0x4D68, 0x4E38},
+ {0x4D69, 0x70F7},
+ {0x4D6A, 0x5B8C},
+ {0x4D6B, 0x7897},
+ {0x4D6C, 0x633D},
+ {0x4D6D, 0x665A},
+ {0x4D6E, 0x7696},
+ {0x4D6F, 0x60CB},
+ {0x4D70, 0x5B9B},
+ {0x4D71, 0x5A49},
+ {0x4D72, 0x842C},
+ {0x4D73, 0x8155},
+ {0x4D74, 0x6C6A},
+ {0x4D75, 0x738B},
+ {0x4D76, 0x4EA1},
+ {0x4D77, 0x6789},
+ {0x4D78, 0x7DB2},
+ {0x4D79, 0x5F80},
+ {0x4D7A, 0x65FA},
+ {0x4D7B, 0x671B},
+ {0x4D7C, 0x5FD8},
+ {0x4D7D, 0x5984},
+ {0x4D7E, 0x5A01},
+ {0x4E21, 0x5DCD},
+ {0x4E22, 0x5FAE},
+ {0x4E23, 0x5371},
+ {0x4E24, 0x97CB},
+ {0x4E25, 0x9055},
+ {0x4E26, 0x6845},
+ {0x4E27, 0x570D},
+ {0x4E28, 0x552F},
+ {0x4E29, 0x60DF},
+ {0x4E2A, 0x7232},
+ {0x4E2B, 0x6FF0},
+ {0x4E2C, 0x7DAD},
+ {0x4E2D, 0x8466},
+ {0x4E2E, 0x840E},
+ {0x4E2F, 0x59D4},
+ {0x4E30, 0x5049},
+ {0x4E31, 0x50DE},
+ {0x4E32, 0x5C3E},
+ {0x4E33, 0x7DEF},
+ {0x4E34, 0x672A},
+ {0x4E35, 0x851A},
+ {0x4E36, 0x5473},
+ {0x4E37, 0x754F},
+ {0x4E38, 0x80C3},
+ {0x4E39, 0x5582},
+ {0x4E3A, 0x9B4F},
+ {0x4E3B, 0x4F4D},
+ {0x4E3C, 0x6E2D},
+ {0x4E3D, 0x8B02},
+ {0x4E3E, 0x5C09},
+ {0x4E3F, 0x6170},
+ {0x4E40, 0x885B},
+ {0x4E41, 0x761F},
+ {0x4E42, 0x6E29},
+ {0x4E43, 0x868A},
+ {0x4E44, 0x6587},
+ {0x4E45, 0x805E},
+ {0x4E46, 0x7D0B},
+ {0x4E47, 0x543B},
+ {0x4E48, 0x7A69},
+ {0x4E49, 0x7D0A},
+ {0x4E4A, 0x554F},
+ {0x4E4B, 0x55E1},
+ {0x4E4C, 0x7FC1},
+ {0x4E4D, 0x74EE},
+ {0x4E4E, 0x64BE},
+ {0x4E4F, 0x8778},
+ {0x4E50, 0x6E26},
+ {0x4E51, 0x7AA9},
+ {0x4E52, 0x6211},
+ {0x4E53, 0x65A1},
+ {0x4E54, 0x5367},
+ {0x4E55, 0x63E1},
+ {0x4E56, 0x6C83},
+ {0x4E57, 0x5DEB},
+ {0x4E58, 0x55DA},
+ {0x4E59, 0x93A2},
+ {0x4E5A, 0x70CF},
+ {0x4E5B, 0x6C61},
+ {0x4E5C, 0x8AA3},
+ {0x4E5D, 0x5C4B},
+ {0x4E5E, 0x7121},
+ {0x4E5F, 0x856A},
+ {0x4E60, 0x68A7},
+ {0x4E61, 0x543E},
+ {0x4E62, 0x5434},
+ {0x4E63, 0x6BCB},
+ {0x4E64, 0x6B66},
+ {0x4E65, 0x4E94},
+ {0x4E66, 0x6342},
+ {0x4E67, 0x5348},
+ {0x4E68, 0x821E},
+ {0x4E69, 0x4F0D},
+ {0x4E6A, 0x4FAE},
+ {0x4E6B, 0x5862},
+ {0x4E6C, 0x620A},
+ {0x4E6D, 0x9727},
+ {0x4E6E, 0x6664},
+ {0x4E6F, 0x7269},
+ {0x4E70, 0x52FF},
+ {0x4E71, 0x52D9},
+ {0x4E72, 0x609F},
+ {0x4E73, 0x8AA4},
+ {0x4E74, 0x6614},
+ {0x4E75, 0x7199},
+ {0x4E76, 0x6790},
+ {0x4E77, 0x897F},
+ {0x4E78, 0x7852},
+ {0x4E79, 0x77FD},
+ {0x4E7A, 0x6670},
+ {0x4E7B, 0x563B},
+ {0x4E7C, 0x5438},
+ {0x4E7D, 0x932B},
+ {0x4E7E, 0x72A7},
+ {0x4F21, 0x7A00},
+ {0x4F22, 0x606F},
+ {0x4F23, 0x5E0C},
+ {0x4F24, 0x6089},
+ {0x4F25, 0x819D},
+ {0x4F26, 0x5915},
+ {0x4F27, 0x60DC},
+ {0x4F28, 0x7184},
+ {0x4F29, 0x70EF},
+ {0x4F2A, 0x6EAA},
+ {0x4F2B, 0x6C50},
+ {0x4F2C, 0x7280},
+ {0x4F2D, 0x6A84},
+ {0x4F2E, 0x8972},
+ {0x4F2F, 0x5E2D},
+ {0x4F30, 0x7FD2},
+ {0x4F31, 0x5AB3},
+ {0x4F32, 0x559C},
+ {0x4F33, 0x9291},
+ {0x4F34, 0x6D17},
+ {0x4F35, 0x7CFB},
+ {0x4F36, 0x9699},
+ {0x4F37, 0x6232},
+ {0x4F38, 0x7D30},
+ {0x4F39, 0x778E},
+ {0x4F3A, 0x8766},
+ {0x4F3B, 0x5323},
+ {0x4F3C, 0x971E},
+ {0x4F3D, 0x8F44},
+ {0x4F3E, 0x6687},
+ {0x4F3F, 0x5CFD},
+ {0x4F40, 0x4FE0},
+ {0x4F41, 0x72F9},
+ {0x4F42, 0x4E0B},
+ {0x4F43, 0x53A6},
+ {0x4F44, 0x590F},
+ {0x4F45, 0x5687},
+ {0x4F46, 0x6380},
+ {0x4F47, 0x9341},
+ {0x4F48, 0x5148},
+ {0x4F49, 0x4ED9},
+ {0x4F4A, 0x9BAE},
+ {0x4F4B, 0x7E96},
+ {0x4F4C, 0x54B8},
+ {0x4F4D, 0x8CE2},
+ {0x4F4E, 0x929C},
+ {0x4F4F, 0x8237},
+ {0x4F50, 0x9591},
+ {0x4F51, 0x6D8E},
+ {0x4F52, 0x5F26},
+ {0x4F53, 0x5ACC},
+ {0x4F54, 0x986F},
+ {0x4F55, 0x96AA},
+ {0x4F56, 0x73FE},
+ {0x4F57, 0x737B},
+ {0x4F58, 0x7E23},
+ {0x4F59, 0x817A},
+ {0x4F5A, 0x9921},
+ {0x4F5B, 0x7FA1},
+ {0x4F5C, 0x61B2},
+ {0x4F5D, 0x9677},
+ {0x4F5E, 0x9650},
+ {0x4F5F, 0x7DAB},
+ {0x4F60, 0x76F8},
+ {0x4F61, 0x53A2},
+ {0x4F62, 0x9472},
+ {0x4F63, 0x9999},
+ {0x4F64, 0x7BB1},
+ {0x4F65, 0x8944},
+ {0x4F66, 0x6E58},
+ {0x4F67, 0x9109},
+ {0x4F68, 0x7FD4},
+ {0x4F69, 0x7965},
+ {0x4F6A, 0x8A73},
+ {0x4F6B, 0x60F3},
+ {0x4F6C, 0x97FF},
+ {0x4F6D, 0x4EAB},
+ {0x4F6E, 0x9805},
+ {0x4F6F, 0x5DF7},
+ {0x4F70, 0x6A61},
+ {0x4F71, 0x50CF},
+ {0x4F72, 0x5411},
+ {0x4F73, 0x8C61},
+ {0x4F74, 0x856D},
+ {0x4F75, 0x785D},
+ {0x4F76, 0x9704},
+ {0x4F77, 0x524A},
+ {0x4F78, 0x54EE},
+ {0x4F79, 0x56C2},
+ {0x4F7A, 0x92B7},
+ {0x4F7B, 0x6D88},
+ {0x4F7C, 0x5BB5},
+ {0x4F7D, 0x6DC6},
+ {0x4F7E, 0x66C9},
+ {0x5021, 0x5C0F},
+ {0x5022, 0x5B5D},
+ {0x5023, 0x6821},
+ {0x5024, 0x8096},
+ {0x5025, 0x562F},
+ {0x5026, 0x7B11},
+ {0x5027, 0x6548},
+ {0x5028, 0x6954},
+ {0x5029, 0x4E9B},
+ {0x502A, 0x6B47},
+ {0x502B, 0x874E},
+ {0x502C, 0x978B},
+ {0x502D, 0x5354},
+ {0x502E, 0x633E},
+ {0x502F, 0x643A},
+ {0x5030, 0x90AA},
+ {0x5031, 0x659C},
+ {0x5032, 0x8105},
+ {0x5033, 0x8AE7},
+ {0x5034, 0x5BEB},
+ {0x5035, 0x68B0},
+ {0x5036, 0x5378},
+ {0x5037, 0x87F9},
+ {0x5038, 0x61C8},
+ {0x5039, 0x6CC4},
+ {0x503A, 0x7009},
+ {0x503B, 0x8B1D},
+ {0x503C, 0x5C51},
+ {0x503D, 0x85AA},
+ {0x503E, 0x82AF},
+ {0x503F, 0x92C5},
+ {0x5040, 0x6B23},
+ {0x5041, 0x8F9B},
+ {0x5042, 0x65B0},
+ {0x5043, 0x5FFB},
+ {0x5044, 0x5FC3},
+ {0x5045, 0x4FE1},
+ {0x5046, 0x91C1},
+ {0x5047, 0x661F},
+ {0x5048, 0x8165},
+ {0x5049, 0x7329},
+ {0x504A, 0x60FA},
+ {0x504B, 0x8208},
+ {0x504C, 0x5211},
+ {0x504D, 0x578B},
+ {0x504E, 0x5F62},
+ {0x504F, 0x90A2},
+ {0x5050, 0x884C},
+ {0x5051, 0x9192},
+ {0x5052, 0x5E78},
+ {0x5053, 0x674F},
+ {0x5054, 0x6027},
+ {0x5055, 0x59D3},
+ {0x5056, 0x5144},
+ {0x5057, 0x51F6},
+ {0x5058, 0x80F8},
+ {0x5059, 0x5308},
+ {0x505A, 0x6C79},
+ {0x505B, 0x96C4},
+ {0x505C, 0x718A},
+ {0x505D, 0x4F11},
+ {0x505E, 0x4FEE},
+ {0x505F, 0x7F9E},
+ {0x5060, 0x673D},
+ {0x5061, 0x55C5},
+ {0x5062, 0x92B9},
+ {0x5063, 0x79C0},
+ {0x5064, 0x8896},
+ {0x5065, 0x7D89},
+ {0x5066, 0x589F},
+ {0x5067, 0x620C},
+ {0x5068, 0x9700},
+ {0x5069, 0x865A},
+ {0x506A, 0x5618},
+ {0x506B, 0x9808},
+ {0x506C, 0x5F90},
+ {0x506D, 0x8A31},
+ {0x506E, 0x84C4},
+ {0x506F, 0x9157},
+ {0x5070, 0x53D9},
+ {0x5071, 0x65ED},
+ {0x5072, 0x5E8F},
+ {0x5073, 0x755C},
+ {0x5074, 0x6064},
+ {0x5075, 0x7D6E},
+ {0x5076, 0x5A7F},
+ {0x5077, 0x7DD2},
+ {0x5078, 0x7E8C},
+ {0x5079, 0x8ED2},
+ {0x507A, 0x55A7},
+ {0x507B, 0x5BA3},
+ {0x507C, 0x61F8},
+ {0x507D, 0x65CB},
+ {0x507E, 0x7384},
+ {0x5121, 0x9078},
+ {0x5122, 0x766C},
+ {0x5123, 0x7729},
+ {0x5124, 0x7D62},
+ {0x5125, 0x9774},
+ {0x5126, 0x859B},
+ {0x5127, 0x5B78},
+ {0x5128, 0x7A74},
+ {0x5129, 0x96EA},
+ {0x512A, 0x8840},
+ {0x512B, 0x52DB},
+ {0x512C, 0x718F},
+ {0x512D, 0x5FAA},
+ {0x512E, 0x65EC},
+ {0x512F, 0x8A62},
+ {0x5130, 0x5C0B},
+ {0x5131, 0x99B4},
+ {0x5132, 0x5DE1},
+ {0x5133, 0x6B89},
+ {0x5134, 0x6C5B},
+ {0x5135, 0x8A13},
+ {0x5136, 0x8A0A},
+ {0x5137, 0x905C},
+ {0x5138, 0x8FC5},
+ {0x5139, 0x58D3},
+ {0x513A, 0x62BC},
+ {0x513B, 0x9D09},
+ {0x513C, 0x9D28},
+ {0x513D, 0x5440},
+ {0x513E, 0x4E2B},
+ {0x513F, 0x82BD},
+ {0x5140, 0x7259},
+ {0x5141, 0x869C},
+ {0x5142, 0x5D16},
+ {0x5143, 0x8859},
+ {0x5144, 0x6DAF},
+ {0x5145, 0x96C5},
+ {0x5146, 0x555E},
+ {0x5147, 0x4E9E},
+ {0x5148, 0x8A1D},
+ {0x5149, 0x7109},
+ {0x514A, 0x54BD},
+ {0x514B, 0x95B9},
+ {0x514C, 0x70DF},
+ {0x514D, 0x6DF9},
+ {0x514E, 0x9E7D},
+ {0x514F, 0x56B4},
+ {0x5150, 0x7814},
+ {0x5151, 0x8712},
+ {0x5152, 0x5CA9},
+ {0x5153, 0x5EF6},
+ {0x5154, 0x8A00},
+ {0x5155, 0x9854},
+ {0x5156, 0x95BB},
+ {0x5157, 0x708E},
+ {0x5158, 0x6CBF},
+ {0x5159, 0x5944},
+ {0x515A, 0x63A9},
+ {0x515B, 0x773C},
+ {0x515C, 0x884D},
+ {0x515D, 0x6F14},
+ {0x515E, 0x8277},
+ {0x515F, 0x5830},
+ {0x5160, 0x71D5},
+ {0x5161, 0x53AD},
+ {0x5162, 0x786F},
+ {0x5163, 0x96C1},
+ {0x5164, 0x5501},
+ {0x5165, 0x5F66},
+ {0x5166, 0x7130},
+ {0x5167, 0x5BB4},
+ {0x5168, 0x8AFA},
+ {0x5169, 0x9A57},
+ {0x516A, 0x6B83},
+ {0x516B, 0x592E},
+ {0x516C, 0x9D26},
+ {0x516D, 0x79E7},
+ {0x516E, 0x694A},
+ {0x516F, 0x63DA},
+ {0x5170, 0x4F6F},
+ {0x5171, 0x760D},
+ {0x5172, 0x7F8A},
+ {0x5173, 0x6D0B},
+ {0x5174, 0x967D},
+ {0x5175, 0x6C27},
+ {0x5176, 0x4EF0},
+ {0x5177, 0x7662},
+ {0x5178, 0x990A},
+ {0x5179, 0x6A23},
+ {0x517A, 0x6F3E},
+ {0x517B, 0x9080},
+ {0x517C, 0x8170},
+ {0x517D, 0x5996},
+ {0x517E, 0x7476},
+ {0x5221, 0x6447},
+ {0x5222, 0x582F},
+ {0x5223, 0x9065},
+ {0x5224, 0x7A91},
+ {0x5225, 0x8B21},
+ {0x5226, 0x59DA},
+ {0x5227, 0x54AC},
+ {0x5228, 0x8200},
+ {0x5229, 0x85E5},
+ {0x522A, 0x8981},
+ {0x522B, 0x8000},
+ {0x522C, 0x6930},
+ {0x522D, 0x564E},
+ {0x522E, 0x8036},
+ {0x522F, 0x723A},
+ {0x5230, 0x91CE},
+ {0x5231, 0x51B6},
+ {0x5232, 0x4E5F},
+ {0x5233, 0x9801},
+ {0x5234, 0x6396},
+ {0x5235, 0x696D},
+ {0x5236, 0x8449},
+ {0x5237, 0x66F3},
+ {0x5238, 0x814B},
+ {0x5239, 0x591C},
+ {0x523A, 0x6DB2},
+ {0x523B, 0x4E00},
+ {0x523C, 0x58F9},
+ {0x523D, 0x91AB},
+ {0x523E, 0x63D6},
+ {0x523F, 0x92A5},
+ {0x5240, 0x4F9D},
+ {0x5241, 0x4F0A},
+ {0x5242, 0x8863},
+ {0x5243, 0x9824},
+ {0x5244, 0x5937},
+ {0x5245, 0x907A},
+ {0x5246, 0x79FB},
+ {0x5247, 0x5100},
+ {0x5248, 0x80F0},
+ {0x5249, 0x7591},
+ {0x524A, 0x6C82},
+ {0x524B, 0x5B9C},
+ {0x524C, 0x59E8},
+ {0x524D, 0x5F5D},
+ {0x524E, 0x6905},
+ {0x524F, 0x87FB},
+ {0x5250, 0x501A},
+ {0x5251, 0x5DF2},
+ {0x5252, 0x4E59},
+ {0x5253, 0x77E3},
+ {0x5254, 0x4EE5},
+ {0x5255, 0x85DD},
+ {0x5256, 0x6291},
+ {0x5257, 0x6613},
+ {0x5258, 0x9091},
+ {0x5259, 0x5C79},
+ {0x525A, 0x5104},
+ {0x525B, 0x5F79},
+ {0x525C, 0x81C6},
+ {0x525D, 0x9038},
+ {0x525E, 0x8084},
+ {0x525F, 0x75AB},
+ {0x5260, 0x4EA6},
+ {0x5261, 0x88D4},
+ {0x5262, 0x610F},
+ {0x5263, 0x6BC5},
+ {0x5264, 0x61B6},
+ {0x5265, 0x7FA9},
+ {0x5266, 0x76CA},
+ {0x5267, 0x6EA2},
+ {0x5268, 0x8A63},
+ {0x5269, 0x8B70},
+ {0x526A, 0x8ABC},
+ {0x526B, 0x8B6F},
+ {0x526C, 0x5F02},
+ {0x526D, 0x7FFC},
+ {0x526E, 0x7FCC},
+ {0x526F, 0x7E79},
+ {0x5270, 0x8335},
+ {0x5271, 0x852D},
+ {0x5272, 0x56E0},
+ {0x5273, 0x6BB7},
+ {0x5274, 0x97F3},
+ {0x5275, 0x9670},
+ {0x5276, 0x59FB},
+ {0x5277, 0x541F},
+ {0x5278, 0x9280},
+ {0x5279, 0x6DEB},
+ {0x527A, 0x5BC5},
+ {0x527B, 0x98F2},
+ {0x527C, 0x5C39},
+ {0x527D, 0x5F15},
+ {0x527E, 0x96B1},
+ {0x5321, 0x5370},
+ {0x5322, 0x82F1},
+ {0x5323, 0x6AFB},
+ {0x5324, 0x5B30},
+ {0x5325, 0x9DF9},
+ {0x5326, 0x61C9},
+ {0x5327, 0x7E93},
+ {0x5328, 0x7469},
+ {0x5329, 0x87A2},
+ {0x532A, 0x71DF},
+ {0x532B, 0x7192},
+ {0x532C, 0x8805},
+ {0x532D, 0x8FCE},
+ {0x532E, 0x8D0F},
+ {0x532F, 0x76C8},
+ {0x5330, 0x5F71},
+ {0x5331, 0x7A4E},
+ {0x5332, 0x786C},
+ {0x5333, 0x6620},
+ {0x5334, 0x55B2},
+ {0x5335, 0x64C1},
+ {0x5336, 0x50AD},
+ {0x5337, 0x81C3},
+ {0x5338, 0x7670},
+ {0x5339, 0x5EB8},
+ {0x533A, 0x96CD},
+ {0x533B, 0x8E34},
+ {0x533C, 0x86F9},
+ {0x533D, 0x548F},
+ {0x533E, 0x6CF3},
+ {0x533F, 0x6D8C},
+ {0x5340, 0x6C38},
+ {0x5341, 0x607F},
+ {0x5342, 0x52C7},
+ {0x5343, 0x7528},
+ {0x5344, 0x5E7D},
+ {0x5345, 0x512A},
+ {0x5346, 0x60A0},
+ {0x5347, 0x6182},
+ {0x5348, 0x5C24},
+ {0x5349, 0x7531},
+ {0x534A, 0x90F5},
+ {0x534B, 0x923E},
+ {0x534C, 0x7336},
+ {0x534D, 0x6CB9},
+ {0x534E, 0x6E38},
+ {0x534F, 0x9149},
+ {0x5350, 0x6709},
+ {0x5351, 0x53CB},
+ {0x5352, 0x53F3},
+ {0x5353, 0x4F51},
+ {0x5354, 0x91C9},
+ {0x5355, 0x8A98},
+ {0x5356, 0x53C8},
+ {0x5357, 0x5E7C},
+ {0x5358, 0x8FC2},
+ {0x5359, 0x6DE4},
+ {0x535A, 0x4E8E},
+ {0x535B, 0x76C2},
+ {0x535C, 0x6986},
+ {0x535D, 0x865E},
+ {0x535E, 0x611A},
+ {0x535F, 0x8F3F},
+ {0x5360, 0x9918},
+ {0x5361, 0x4FDE},
+ {0x5362, 0x903E},
+ {0x5363, 0x9B5A},
+ {0x5364, 0x6109},
+ {0x5365, 0x6E1D},
+ {0x5366, 0x6F01},
+ {0x5367, 0x9685},
+ {0x5368, 0x4E88},
+ {0x5369, 0x5A31},
+ {0x536A, 0x96E8},
+ {0x536B, 0x8207},
+ {0x536C, 0x5DBC},
+ {0x536D, 0x79B9},
+ {0x536E, 0x5B87},
+ {0x536F, 0x8A9E},
+ {0x5370, 0x7FBD},
+ {0x5371, 0x7389},
+ {0x5372, 0x57DF},
+ {0x5373, 0x828B},
+ {0x5374, 0x9B31},
+ {0x5375, 0x5401},
+ {0x5376, 0x9047},
+ {0x5377, 0x55BB},
+ {0x5378, 0x5CEA},
+ {0x5379, 0x5FA1},
+ {0x537A, 0x6108},
+ {0x537B, 0x6B32},
+ {0x537C, 0x7344},
+ {0x537D, 0x80B2},
+ {0x537E, 0x8B7D},
+ {0x5421, 0x6D74},
+ {0x5422, 0x5BD3},
+ {0x5423, 0x88D5},
+ {0x5424, 0x9810},
+ {0x5425, 0x8C6B},
+ {0x5426, 0x99AD},
+ {0x5427, 0x9D1B},
+ {0x5428, 0x6DF5},
+ {0x5429, 0x51A4},
+ {0x542A, 0x5143},
+ {0x542B, 0x57A3},
+ {0x542C, 0x8881},
+ {0x542D, 0x539F},
+ {0x542E, 0x63F4},
+ {0x542F, 0x8F45},
+ {0x5430, 0x5712},
+ {0x5431, 0x54E1},
+ {0x5432, 0x5713},
+ {0x5433, 0x733F},
+ {0x5434, 0x6E90},
+ {0x5435, 0x7DE3},
+ {0x5436, 0x9060},
+ {0x5437, 0x82D1},
+ {0x5438, 0x9858},
+ {0x5439, 0x6028},
+ {0x543A, 0x9662},
+ {0x543B, 0x66F0},
+ {0x543C, 0x7D04},
+ {0x543D, 0x8D8A},
+ {0x543E, 0x8E8D},
+ {0x543F, 0x9470},
+ {0x5440, 0x5CB3},
+ {0x5441, 0x7CA4},
+ {0x5442, 0x6708},
+ {0x5443, 0x60A6},
+ {0x5444, 0x95B2},
+ {0x5445, 0x8018},
+ {0x5446, 0x96F2},
+ {0x5447, 0x9116},
+ {0x5448, 0x5300},
+ {0x5449, 0x9695},
+ {0x544A, 0x5141},
+ {0x544B, 0x904B},
+ {0x544C, 0x85F4},
+ {0x544D, 0x9196},
+ {0x544E, 0x6688},
+ {0x544F, 0x97F5},
+ {0x5450, 0x5B55},
+ {0x5451, 0x531D},
+ {0x5452, 0x7838},
+ {0x5453, 0x96DC},
+ {0x5454, 0x683D},
+ {0x5455, 0x54C9},
+ {0x5456, 0x707E},
+ {0x5457, 0x5BB0},
+ {0x5458, 0x8F09},
+ {0x5459, 0x518D},
+ {0x545A, 0x5728},
+ {0x545B, 0x54B1},
+ {0x545C, 0x6522},
+ {0x545D, 0x66AB},
+ {0x545E, 0x8D0A},
+ {0x545F, 0x8D1C},
+ {0x5460, 0x81DF},
+ {0x5461, 0x846C},
+ {0x5462, 0x906D},
+ {0x5463, 0x7CDF},
+ {0x5464, 0x947F},
+ {0x5465, 0x85FB},
+ {0x5466, 0x68D7},
+ {0x5467, 0x65E9},
+ {0x5468, 0x6FA1},
+ {0x5469, 0x86A4},
+ {0x546A, 0x8E81},
+ {0x546B, 0x566A},
+ {0x546C, 0x9020},
+ {0x546D, 0x7682},
+ {0x546E, 0x7AC8},
+ {0x546F, 0x71E5},
+ {0x5470, 0x8CAC},
+ {0x5471, 0x64C7},
+ {0x5472, 0x5247},
+ {0x5473, 0x6FA4},
+ {0x5474, 0x8CCA},
+ {0x5475, 0x600E},
+ {0x5476, 0x589E},
+ {0x5477, 0x618E},
+ {0x5478, 0x66FE},
+ {0x5479, 0x8D08},
+ {0x547A, 0x624E},
+ {0x547B, 0x55B3},
+ {0x547C, 0x6E23},
+ {0x547D, 0x672D},
+ {0x547E, 0x8ECB},
+ {0x5521, 0x9358},
+ {0x5522, 0x9598},
+ {0x5523, 0x7728},
+ {0x5524, 0x6805},
+ {0x5525, 0x69A8},
+ {0x5526, 0x548B},
+ {0x5527, 0x4E4D},
+ {0x5528, 0x70B8},
+ {0x5529, 0x8A50},
+ {0x552A, 0x6458},
+ {0x552B, 0x9F4B},
+ {0x552C, 0x5B85},
+ {0x552D, 0x7A84},
+ {0x552E, 0x50B5},
+ {0x552F, 0x5BE8},
+ {0x5530, 0x77BB},
+ {0x5531, 0x6C08},
+ {0x5532, 0x8A79},
+ {0x5533, 0x7C98},
+ {0x5534, 0x6CBE},
+ {0x5535, 0x76DE},
+ {0x5536, 0x65AC},
+ {0x5537, 0x8F3E},
+ {0x5538, 0x5D84},
+ {0x5539, 0x5C55},
+ {0x553A, 0x8638},
+ {0x553B, 0x68E7},
+ {0x553C, 0x5360},
+ {0x553D, 0x6230},
+ {0x553E, 0x7AD9},
+ {0x553F, 0x6E5B},
+ {0x5540, 0x7DBB},
+ {0x5541, 0x6A1F},
+ {0x5542, 0x7AE0},
+ {0x5543, 0x5F70},
+ {0x5544, 0x6F33},
+ {0x5545, 0x5F35},
+ {0x5546, 0x638C},
+ {0x5547, 0x6F32},
+ {0x5548, 0x6756},
+ {0x5549, 0x4E08},
+ {0x554A, 0x5E33},
+ {0x554B, 0x8CEC},
+ {0x554C, 0x4ED7},
+ {0x554D, 0x8139},
+ {0x554E, 0x7634},
+ {0x554F, 0x969C},
+ {0x5550, 0x62DB},
+ {0x5551, 0x662D},
+ {0x5552, 0x627E},
+ {0x5553, 0x6CBC},
+ {0x5554, 0x8D99},
+ {0x5555, 0x7167},
+ {0x5556, 0x7F69},
+ {0x5557, 0x5146},
+ {0x5558, 0x8087},
+ {0x5559, 0x53EC},
+ {0x555A, 0x906E},
+ {0x555B, 0x6298},
+ {0x555C, 0x54F2},
+ {0x555D, 0x87C4},
+ {0x555E, 0x8F4D},
+ {0x555F, 0x8005},
+ {0x5560, 0x937A},
+ {0x5561, 0x8517},
+ {0x5562, 0x9019},
+ {0x5563, 0x6D59},
+ {0x5564, 0x73CD},
+ {0x5565, 0x659F},
+ {0x5566, 0x771F},
+ {0x5567, 0x7504},
+ {0x5568, 0x7827},
+ {0x5569, 0x81FB},
+ {0x556A, 0x8C9E},
+ {0x556B, 0x91DD},
+ {0x556C, 0x5075},
+ {0x556D, 0x6795},
+ {0x556E, 0x75B9},
+ {0x556F, 0x8A3A},
+ {0x5570, 0x9707},
+ {0x5571, 0x632F},
+ {0x5572, 0x93AE},
+ {0x5573, 0x9663},
+ {0x5574, 0x84B8},
+ {0x5575, 0x6399},
+ {0x5576, 0x775C},
+ {0x5577, 0x5F81},
+ {0x5578, 0x7319},
+ {0x5579, 0x722D},
+ {0x557A, 0x6014},
+ {0x557B, 0x6574},
+ {0x557C, 0x62EF},
+ {0x557D, 0x6B63},
+ {0x557E, 0x653F},
+ {0x5621, 0x5E40},
+ {0x5622, 0x7665},
+ {0x5623, 0x912D},
+ {0x5624, 0x8B49},
+ {0x5625, 0x829D},
+ {0x5626, 0x679D},
+ {0x5627, 0x652F},
+ {0x5628, 0x5431},
+ {0x5629, 0x8718},
+ {0x562A, 0x77E5},
+ {0x562B, 0x80A2},
+ {0x562C, 0x8102},
+ {0x562D, 0x6C41},
+ {0x562E, 0x4E4B},
+ {0x562F, 0x7E54},
+ {0x5630, 0x8077},
+ {0x5631, 0x76F4},
+ {0x5632, 0x690D},
+ {0x5633, 0x6B96},
+ {0x5634, 0x57F7},
+ {0x5635, 0x503C},
+ {0x5636, 0x4F84},
+ {0x5637, 0x5740},
+ {0x5638, 0x6307},
+ {0x5639, 0x6B62},
+ {0x563A, 0x8DBE},
+ {0x563B, 0x8879},
+ {0x563C, 0x65E8},
+ {0x563D, 0x7D19},
+ {0x563E, 0x5FD7},
+ {0x563F, 0x646F},
+ {0x5640, 0x64F2},
+ {0x5641, 0x81F3},
+ {0x5642, 0x81F4},
+ {0x5643, 0x7F6E},
+ {0x5644, 0x5E5F},
+ {0x5645, 0x5CD9},
+ {0x5646, 0x5236},
+ {0x5647, 0x667A},
+ {0x5648, 0x79E9},
+ {0x5649, 0x7A1A},
+ {0x564A, 0x8CEA},
+ {0x564B, 0x7099},
+ {0x564C, 0x75D4},
+ {0x564D, 0x6EEF},
+ {0x564E, 0x6CBB},
+ {0x564F, 0x7A92},
+ {0x5650, 0x4E2D},
+ {0x5651, 0x76C5},
+ {0x5652, 0x5FE0},
+ {0x5653, 0x9418},
+ {0x5654, 0x8877},
+ {0x5655, 0x7D42},
+ {0x5656, 0x7A2E},
+ {0x5657, 0x816B},
+ {0x5658, 0x91CD},
+ {0x5659, 0x4EF2},
+ {0x565A, 0x8846},
+ {0x565B, 0x821F},
+ {0x565C, 0x5468},
+ {0x565D, 0x5DDE},
+ {0x565E, 0x6D32},
+ {0x565F, 0x8B05},
+ {0x5660, 0x7CA5},
+ {0x5661, 0x8EF8},
+ {0x5662, 0x8098},
+ {0x5663, 0x5E1A},
+ {0x5664, 0x5492},
+ {0x5665, 0x76BA},
+ {0x5666, 0x5B99},
+ {0x5667, 0x665D},
+ {0x5668, 0x9A5F},
+ {0x5669, 0x73E0},
+ {0x566A, 0x682A},
+ {0x566B, 0x86DB},
+ {0x566C, 0x6731},
+ {0x566D, 0x732A},
+ {0x566E, 0x8AF8},
+ {0x566F, 0x8A85},
+ {0x5670, 0x9010},
+ {0x5671, 0x7AF9},
+ {0x5672, 0x71ED},
+ {0x5673, 0x716E},
+ {0x5674, 0x62C4},
+ {0x5675, 0x77DA},
+ {0x5676, 0x56D1},
+ {0x5677, 0x4E3B},
+ {0x5678, 0x8457},
+ {0x5679, 0x67F1},
+ {0x567A, 0x52A9},
+ {0x567B, 0x86C0},
+ {0x567C, 0x8CAF},
+ {0x567D, 0x9444},
+ {0x567E, 0x7BC9},
+ {0x5721, 0x4F4F},
+ {0x5722, 0x6CE8},
+ {0x5723, 0x795D},
+ {0x5724, 0x99D0},
+ {0x5725, 0x6293},
+ {0x5726, 0x722A},
+ {0x5727, 0x62FD},
+ {0x5728, 0x5C08},
+ {0x5729, 0x78DA},
+ {0x572A, 0x8F49},
+ {0x572B, 0x64B0},
+ {0x572C, 0x8CFA},
+ {0x572D, 0x7BC6},
+ {0x572E, 0x6A01},
+ {0x572F, 0x838A},
+ {0x5730, 0x88DD},
+ {0x5731, 0x599D},
+ {0x5732, 0x649E},
+ {0x5733, 0x58EF},
+ {0x5734, 0x72C0},
+ {0x5735, 0x690E},
+ {0x5736, 0x9310},
+ {0x5737, 0x8FFD},
+ {0x5738, 0x8D05},
+ {0x5739, 0x589C},
+ {0x573A, 0x7DB4},
+ {0x573B, 0x8AC4},
+ {0x573C, 0x6E96},
+ {0x573D, 0x6349},
+ {0x573E, 0x62D9},
+ {0x573F, 0x5353},
+ {0x5740, 0x684C},
+ {0x5741, 0x7422},
+ {0x5742, 0x8301},
+ {0x5743, 0x914C},
+ {0x5744, 0x5544},
+ {0x5745, 0x7740},
+ {0x5746, 0x707C},
+ {0x5747, 0x6FC1},
+ {0x5748, 0x5179},
+ {0x5749, 0x54A8},
+ {0x574A, 0x8CC7},
+ {0x574B, 0x59FF},
+ {0x574C, 0x6ECB},
+ {0x574D, 0x6DC4},
+ {0x574E, 0x5B5C},
+ {0x574F, 0x7D2B},
+ {0x5750, 0x4ED4},
+ {0x5751, 0x7C7D},
+ {0x5752, 0x6ED3},
+ {0x5753, 0x5B50},
+ {0x5754, 0x81EA},
+ {0x5755, 0x6F2C},
+ {0x5756, 0x5B57},
+ {0x5757, 0x9B03},
+ {0x5758, 0x68D5},
+ {0x5759, 0x8E2A},
+ {0x575A, 0x5B97},
+ {0x575B, 0x7D9C},
+ {0x575C, 0x7E3D},
+ {0x575D, 0x7E31},
+ {0x575E, 0x9112},
+ {0x575F, 0x8D70},
+ {0x5760, 0x594F},
+ {0x5761, 0x63CD},
+ {0x5762, 0x79DF},
+ {0x5763, 0x8DB3},
+ {0x5764, 0x5352},
+ {0x5765, 0x65CF},
+ {0x5766, 0x7956},
+ {0x5767, 0x8A5B},
+ {0x5768, 0x963B},
+ {0x5769, 0x7D44},
+ {0x576A, 0x947D},
+ {0x576B, 0x7E82},
+ {0x576C, 0x5634},
+ {0x576D, 0x9189},
+ {0x576E, 0x6700},
+ {0x576F, 0x7F6A},
+ {0x5770, 0x5C0A},
+ {0x5771, 0x9075},
+ {0x5772, 0x6628},
+ {0x5773, 0x5DE6},
+ {0x5774, 0x4F50},
+ {0x5775, 0x67DE},
+ {0x5776, 0x505A},
+ {0x5777, 0x4F5C},
+ {0x5778, 0x5750},
+ {0x5779, 0x5EA7},
+ {0x5821, 0x4E8D},
+ {0x5822, 0x4E0C},
+ {0x5823, 0x5140},
+ {0x5824, 0x4E10},
+ {0x5825, 0x5EFF},
+ {0x5826, 0x5345},
+ {0x5827, 0x4E15},
+ {0x5828, 0x4E98},
+ {0x5829, 0x4E1E},
+ {0x582A, 0x9B32},
+ {0x582B, 0x5B6C},
+ {0x582C, 0x5669},
+ {0x582D, 0x4E28},
+ {0x582E, 0x79BA},
+ {0x582F, 0x4E3F},
+ {0x5830, 0x5315},
+ {0x5831, 0x4E47},
+ {0x5832, 0x592D},
+ {0x5833, 0x723B},
+ {0x5834, 0x536E},
+ {0x5835, 0x6C10},
+ {0x5836, 0x56DF},
+ {0x5837, 0x80E4},
+ {0x5838, 0x9997},
+ {0x5839, 0x6BD3},
+ {0x583A, 0x777E},
+ {0x583B, 0x9F17},
+ {0x583C, 0x4E36},
+ {0x583D, 0x4E9F},
+ {0x583E, 0x9F10},
+ {0x583F, 0x4E5C},
+ {0x5840, 0x4E69},
+ {0x5841, 0x4E93},
+ {0x5842, 0x8288},
+ {0x5843, 0x5B5B},
+ {0x5844, 0x55C7},
+ {0x5845, 0x560F},
+ {0x5846, 0x4EC4},
+ {0x5847, 0x5399},
+ {0x5848, 0x539D},
+ {0x5849, 0x53B4},
+ {0x584A, 0x53A5},
+ {0x584B, 0x53AE},
+ {0x584C, 0x9768},
+ {0x584D, 0x8D0B},
+ {0x584E, 0x531A},
+ {0x584F, 0x53F5},
+ {0x5850, 0x532D},
+ {0x5851, 0x5331},
+ {0x5852, 0x533E},
+ {0x5853, 0x8CFE},
+ {0x5854, 0x5366},
+ {0x5855, 0x5363},
+ {0x5856, 0x5202},
+ {0x5857, 0x5208},
+ {0x5858, 0x520E},
+ {0x5859, 0x5244},
+ {0x585A, 0x5233},
+ {0x585B, 0x528C},
+ {0x585C, 0x5274},
+ {0x585D, 0x524C},
+ {0x585E, 0x525E},
+ {0x585F, 0x5261},
+ {0x5860, 0x525C},
+ {0x5861, 0x84AF},
+ {0x5862, 0x527D},
+ {0x5863, 0x5282},
+ {0x5864, 0x5281},
+ {0x5865, 0x5290},
+ {0x5866, 0x5293},
+ {0x5867, 0x5182},
+ {0x5868, 0x7F54},
+ {0x5869, 0x4EBB},
+ {0x586A, 0x4EC3},
+ {0x586B, 0x4EC9},
+ {0x586C, 0x4EC2},
+ {0x586D, 0x4EE8},
+ {0x586E, 0x4EE1},
+ {0x586F, 0x4EEB},
+ {0x5870, 0x4EDE},
+ {0x5871, 0x50B4},
+ {0x5872, 0x4EF3},
+ {0x5873, 0x4F22},
+ {0x5874, 0x4F64},
+ {0x5875, 0x4EF5},
+ {0x5876, 0x5000},
+ {0x5877, 0x5096},
+ {0x5878, 0x4F09},
+ {0x5879, 0x4F47},
+ {0x587A, 0x4F5E},
+ {0x587B, 0x4F67},
+ {0x587C, 0x6538},
+ {0x587D, 0x4F5A},
+ {0x587E, 0x4F5D},
+ {0x5921, 0x4F5F},
+ {0x5922, 0x4F57},
+ {0x5923, 0x4F32},
+ {0x5924, 0x4F3D},
+ {0x5925, 0x4F76},
+ {0x5926, 0x4F74},
+ {0x5927, 0x4F91},
+ {0x5928, 0x4F89},
+ {0x5929, 0x4F83},
+ {0x592A, 0x4F8F},
+ {0x592B, 0x4F7E},
+ {0x592C, 0x4F7B},
+ {0x592D, 0x5115},
+ {0x592E, 0x4F7C},
+ {0x592F, 0x5102},
+ {0x5930, 0x4F94},
+ {0x5931, 0x5114},
+ {0x5932, 0x513C},
+ {0x5933, 0x5137},
+ {0x5934, 0x4FC5},
+ {0x5935, 0x4FDA},
+ {0x5936, 0x4FE3},
+ {0x5937, 0x4FDC},
+ {0x5938, 0x4FD1},
+ {0x5939, 0x4FDF},
+ {0x593A, 0x4FF8},
+ {0x593B, 0x5029},
+ {0x593C, 0x504C},
+ {0x593D, 0x4FF3},
+ {0x593E, 0x502C},
+ {0x593F, 0x500F},
+ {0x5940, 0x502E},
+ {0x5941, 0x502D},
+ {0x5942, 0x4FFE},
+ {0x5943, 0x501C},
+ {0x5944, 0x500C},
+ {0x5945, 0x5025},
+ {0x5946, 0x5028},
+ {0x5947, 0x50E8},
+ {0x5948, 0x5043},
+ {0x5949, 0x5055},
+ {0x594A, 0x5048},
+ {0x594B, 0x504E},
+ {0x594C, 0x506C},
+ {0x594D, 0x50C2},
+ {0x594E, 0x513B},
+ {0x594F, 0x5110},
+ {0x5950, 0x513A},
+ {0x5951, 0x50BA},
+ {0x5952, 0x50D6},
+ {0x5953, 0x5106},
+ {0x5954, 0x50ED},
+ {0x5955, 0x50EC},
+ {0x5956, 0x50E6},
+ {0x5957, 0x50EE},
+ {0x5958, 0x5107},
+ {0x5959, 0x510B},
+ {0x595A, 0x4EDD},
+ {0x595B, 0x6C3D},
+ {0x595C, 0x4F58},
+ {0x595D, 0x50C9},
+ {0x595E, 0x4FCE},
+ {0x595F, 0x9FA0},
+ {0x5960, 0x6C46},
+ {0x5961, 0x7CF4},
+ {0x5962, 0x516E},
+ {0x5963, 0x5DFD},
+ {0x5964, 0x9ECC},
+ {0x5965, 0x9998},
+ {0x5966, 0x56C5},
+ {0x5967, 0x5914},
+ {0x5968, 0x52F9},
+ {0x5969, 0x530D},
+ {0x596A, 0x8A07},
+ {0x596B, 0x5310},
+ {0x596C, 0x9CEC},
+ {0x596D, 0x5919},
+ {0x596E, 0x5155},
+ {0x596F, 0x4EA0},
+ {0x5970, 0x5156},
+ {0x5971, 0x4EB3},
+ {0x5972, 0x886E},
+ {0x5973, 0x88A4},
+ {0x5974, 0x893B},
+ {0x5975, 0x81E0},
+ {0x5976, 0x88D2},
+ {0x5977, 0x7980},
+ {0x5978, 0x5B34},
+ {0x5979, 0x8803},
+ {0x597A, 0x7FB8},
+ {0x597B, 0x51AB},
+ {0x597C, 0x51B1},
+ {0x597D, 0x51BD},
+ {0x597E, 0x51BC},
+ {0x5A21, 0x51C7},
+ {0x5A22, 0x5196},
+ {0x5A23, 0x51A2},
+ {0x5A24, 0x51A5},
+ {0x5A25, 0x8A01},
+ {0x5A26, 0x8A10},
+ {0x5A27, 0x8A0C},
+ {0x5A28, 0x8A15},
+ {0x5A29, 0x8B33},
+ {0x5A2A, 0x8A4E},
+ {0x5A2B, 0x8A25},
+ {0x5A2C, 0x8A41},
+ {0x5A2D, 0x8A36},
+ {0x5A2E, 0x8A46},
+ {0x5A2F, 0x8A54},
+ {0x5A30, 0x8A58},
+ {0x5A31, 0x8A52},
+ {0x5A32, 0x8A86},
+ {0x5A33, 0x8A84},
+ {0x5A34, 0x8A7F},
+ {0x5A35, 0x8A70},
+ {0x5A36, 0x8A7C},
+ {0x5A37, 0x8A75},
+ {0x5A38, 0x8A6C},
+ {0x5A39, 0x8A6E},
+ {0x5A3A, 0x8ACD},
+ {0x5A3B, 0x8AE2},
+ {0x5A3C, 0x8A61},
+ {0x5A3D, 0x8A9A},
+ {0x5A3E, 0x8AA5},
+ {0x5A3F, 0x8A91},
+ {0x5A40, 0x8A92},
+ {0x5A41, 0x8ACF},
+ {0x5A42, 0x8AD1},
+ {0x5A43, 0x8AC9},
+ {0x5A44, 0x8ADB},
+ {0x5A45, 0x8AD7},
+ {0x5A46, 0x8AC2},
+ {0x5A47, 0x8AB6},
+ {0x5A48, 0x8AF6},
+ {0x5A49, 0x8AEB},
+ {0x5A4A, 0x8B14},
+ {0x5A4B, 0x8B01},
+ {0x5A4C, 0x8AE4},
+ {0x5A4D, 0x8AED},
+ {0x5A4E, 0x8AFC},
+ {0x5A4F, 0x8AF3},
+ {0x5A50, 0x8AE6},
+ {0x5A51, 0x8AEE},
+ {0x5A52, 0x8ADE},
+ {0x5A53, 0x8B28},
+ {0x5A54, 0x8B9C},
+ {0x5A55, 0x8B16},
+ {0x5A56, 0x8B1A},
+ {0x5A57, 0x8B10},
+ {0x5A58, 0x8B2B},
+ {0x5A59, 0x8B2D},
+ {0x5A5A, 0x8B56},
+ {0x5A5B, 0x8B59},
+ {0x5A5C, 0x8B4E},
+ {0x5A5D, 0x8B9E},
+ {0x5A5E, 0x8B6B},
+ {0x5A5F, 0x8B96},
+ {0x5A60, 0x5369},
+ {0x5A61, 0x537A},
+ {0x5A62, 0x961D},
+ {0x5A63, 0x9622},
+ {0x5A64, 0x9621},
+ {0x5A65, 0x9631},
+ {0x5A66, 0x962A},
+ {0x5A67, 0x963D},
+ {0x5A68, 0x963C},
+ {0x5A69, 0x9642},
+ {0x5A6A, 0x9658},
+ {0x5A6B, 0x9654},
+ {0x5A6C, 0x965F},
+ {0x5A6D, 0x9689},
+ {0x5A6E, 0x966C},
+ {0x5A6F, 0x9672},
+ {0x5A70, 0x9674},
+ {0x5A71, 0x9688},
+ {0x5A72, 0x968D},
+ {0x5A73, 0x9697},
+ {0x5A74, 0x96B0},
+ {0x5A75, 0x9097},
+ {0x5A76, 0x909B},
+ {0x5A77, 0x913A},
+ {0x5A78, 0x9099},
+ {0x5A79, 0x9114},
+ {0x5A7A, 0x90A1},
+ {0x5A7B, 0x90B4},
+ {0x5A7C, 0x90B3},
+ {0x5A7D, 0x90B6},
+ {0x5A7E, 0x9134},
+ {0x5B21, 0x90B8},
+ {0x5B22, 0x90B0},
+ {0x5B23, 0x90DF},
+ {0x5B24, 0x90C5},
+ {0x5B25, 0x90BE},
+ {0x5B26, 0x9136},
+ {0x5B27, 0x90C4},
+ {0x5B28, 0x90C7},
+ {0x5B29, 0x9106},
+ {0x5B2A, 0x9148},
+ {0x5B2B, 0x90E2},
+ {0x5B2C, 0x90DC},
+ {0x5B2D, 0x90D7},
+ {0x5B2E, 0x90DB},
+ {0x5B2F, 0x90EB},
+ {0x5B30, 0x90EF},
+ {0x5B31, 0x90FE},
+ {0x5B32, 0x9104},
+ {0x5B33, 0x9122},
+ {0x5B34, 0x911E},
+ {0x5B35, 0x9123},
+ {0x5B36, 0x9131},
+ {0x5B37, 0x912F},
+ {0x5B38, 0x9139},
+ {0x5B39, 0x9143},
+ {0x5B3A, 0x9146},
+ {0x5B3B, 0x82BB},
+ {0x5B3C, 0x5950},
+ {0x5B3D, 0x52F1},
+ {0x5B3E, 0x52AC},
+ {0x5B3F, 0x52AD},
+ {0x5B40, 0x52BE},
+ {0x5B41, 0x54FF},
+ {0x5B42, 0x52D0},
+ {0x5B43, 0x52D6},
+ {0x5B44, 0x52F0},
+ {0x5B45, 0x53DF},
+ {0x5B46, 0x71EE},
+ {0x5B47, 0x77CD},
+ {0x5B48, 0x5EF4},
+ {0x5B49, 0x51F5},
+ {0x5B4A, 0x51FC},
+ {0x5B4B, 0x9B2F},
+ {0x5B4C, 0x53B6},
+ {0x5B4D, 0x5F01},
+ {0x5B4E, 0x755A},
+ {0x5B4F, 0x5DF0},
+ {0x5B50, 0x574C},
+ {0x5B51, 0x580A},
+ {0x5B52, 0x57A1},
+ {0x5B53, 0x587E},
+ {0x5B54, 0x58BC},
+ {0x5B55, 0x58C5},
+ {0x5B56, 0x58D1},
+ {0x5B57, 0x5729},
+ {0x5B58, 0x572C},
+ {0x5B59, 0x572A},
+ {0x5B5A, 0x5733},
+ {0x5B5B, 0x58D9},
+ {0x5B5C, 0x572E},
+ {0x5B5D, 0x572F},
+ {0x5B5E, 0x58E2},
+ {0x5B5F, 0x573B},
+ {0x5B60, 0x5742},
+ {0x5B61, 0x5769},
+ {0x5B62, 0x58E0},
+ {0x5B63, 0x576B},
+ {0x5B64, 0x58DA},
+ {0x5B65, 0x577C},
+ {0x5B66, 0x577B},
+ {0x5B67, 0x5768},
+ {0x5B68, 0x576D},
+ {0x5B69, 0x5776},
+ {0x5B6A, 0x5773},
+ {0x5B6B, 0x57E1},
+ {0x5B6C, 0x57A4},
+ {0x5B6D, 0x578C},
+ {0x5B6E, 0x584F},
+ {0x5B6F, 0x57CF},
+ {0x5B70, 0x57A7},
+ {0x5B71, 0x5816},
+ {0x5B72, 0x5793},
+ {0x5B73, 0x57A0},
+ {0x5B74, 0x57D5},
+ {0x5B75, 0x5852},
+ {0x5B76, 0x581D},
+ {0x5B77, 0x5864},
+ {0x5B78, 0x57D2},
+ {0x5B79, 0x57B8},
+ {0x5B7A, 0x57F4},
+ {0x5B7B, 0x57EF},
+ {0x5B7C, 0x57F8},
+ {0x5B7D, 0x57E4},
+ {0x5B7E, 0x57DD},
+ {0x5C21, 0x580B},
+ {0x5C22, 0x580D},
+ {0x5C23, 0x57FD},
+ {0x5C24, 0x57ED},
+ {0x5C25, 0x5800},
+ {0x5C26, 0x581E},
+ {0x5C27, 0x5819},
+ {0x5C28, 0x5844},
+ {0x5C29, 0x5820},
+ {0x5C2A, 0x5865},
+ {0x5C2B, 0x586C},
+ {0x5C2C, 0x5881},
+ {0x5C2D, 0x5889},
+ {0x5C2E, 0x589A},
+ {0x5C2F, 0x5880},
+ {0x5C30, 0x99A8},
+ {0x5C31, 0x9F19},
+ {0x5C32, 0x61FF},
+ {0x5C33, 0x8279},
+ {0x5C34, 0x827D},
+ {0x5C35, 0x827F},
+ {0x5C36, 0x828F},
+ {0x5C37, 0x828A},
+ {0x5C38, 0x82A8},
+ {0x5C39, 0x8284},
+ {0x5C3A, 0x828E},
+ {0x5C3B, 0x8291},
+ {0x5C3C, 0x858C},
+ {0x5C3D, 0x8299},
+ {0x5C3E, 0x82AB},
+ {0x5C3F, 0x8553},
+ {0x5C40, 0x82BE},
+ {0x5C41, 0x82B0},
+ {0x5C42, 0x85F6},
+ {0x5C43, 0x82CA},
+ {0x5C44, 0x82E3},
+ {0x5C45, 0x8298},
+ {0x5C46, 0x82B7},
+ {0x5C47, 0x82AE},
+ {0x5C48, 0x83A7},
+ {0x5C49, 0x8407},
+ {0x5C4A, 0x84EF},
+ {0x5C4B, 0x82A9},
+ {0x5C4C, 0x82B4},
+ {0x5C4D, 0x82A1},
+ {0x5C4E, 0x82AA},
+ {0x5C4F, 0x829F},
+ {0x5C50, 0x82C4},
+ {0x5C51, 0x82E7},
+ {0x5C52, 0x82A4},
+ {0x5C53, 0x82E1},
+ {0x5C54, 0x8309},
+ {0x5C55, 0x82F7},
+ {0x5C56, 0x82E4},
+ {0x5C57, 0x8622},
+ {0x5C58, 0x8307},
+ {0x5C59, 0x82DC},
+ {0x5C5A, 0x82F4},
+ {0x5C5B, 0x82D2},
+ {0x5C5C, 0x82D8},
+ {0x5C5D, 0x830C},
+ {0x5C5E, 0x82FB},
+ {0x5C5F, 0x82D3},
+ {0x5C60, 0x8526},
+ {0x5C61, 0x831A},
+ {0x5C62, 0x8306},
+ {0x5C63, 0x584B},
+ {0x5C64, 0x7162},
+ {0x5C65, 0x82E0},
+ {0x5C66, 0x82D5},
+ {0x5C67, 0x831C},
+ {0x5C68, 0x8351},
+ {0x5C69, 0x8558},
+ {0x5C6A, 0x84FD},
+ {0x5C6B, 0x8308},
+ {0x5C6C, 0x8392},
+ {0x5C6D, 0x833C},
+ {0x5C6E, 0x8334},
+ {0x5C6F, 0x8331},
+ {0x5C70, 0x839B},
+ {0x5C71, 0x854E},
+ {0x5C72, 0x832F},
+ {0x5C73, 0x834F},
+ {0x5C74, 0x8347},
+ {0x5C75, 0x8343},
+ {0x5C76, 0x8588},
+ {0x5C77, 0x8340},
+ {0x5C78, 0x8317},
+ {0x5C79, 0x85BA},
+ {0x5C7A, 0x832D},
+ {0x5C7B, 0x833A},
+ {0x5C7C, 0x8333},
+ {0x5C7D, 0x7296},
+ {0x5C7E, 0x6ECE},
+ {0x5D21, 0x8541},
+ {0x5D22, 0x831B},
+ {0x5D23, 0x85CE},
+ {0x5D24, 0x8552},
+ {0x5D25, 0x84C0},
+ {0x5D26, 0x8452},
+ {0x5D27, 0x8464},
+ {0x5D28, 0x83B0},
+ {0x5D29, 0x8378},
+ {0x5D2A, 0x8494},
+ {0x5D2B, 0x8435},
+ {0x5D2C, 0x83A0},
+ {0x5D2D, 0x83AA},
+ {0x5D2E, 0x8393},
+ {0x5D2F, 0x839C},
+ {0x5D30, 0x8385},
+ {0x5D31, 0x837C},
+ {0x5D32, 0x859F},
+ {0x5D33, 0x83A9},
+ {0x5D34, 0x837D},
+ {0x5D35, 0x8555},
+ {0x5D36, 0x837B},
+ {0x5D37, 0x8398},
+ {0x5D38, 0x839E},
+ {0x5D39, 0x83A8},
+ {0x5D3A, 0x9DAF},
+ {0x5D3B, 0x8493},
+ {0x5D3C, 0x83C1},
+ {0x5D3D, 0x8401},
+ {0x5D3E, 0x83E5},
+ {0x5D3F, 0x83D8},
+ {0x5D40, 0x5807},
+ {0x5D41, 0x8418},
+ {0x5D42, 0x840B},
+ {0x5D43, 0x83DD},
+ {0x5D44, 0x83FD},
+ {0x5D45, 0x83D6},
+ {0x5D46, 0x841C},
+ {0x5D47, 0x8438},
+ {0x5D48, 0x8411},
+ {0x5D49, 0x8406},
+ {0x5D4A, 0x83D4},
+ {0x5D4B, 0x83DF},
+ {0x5D4C, 0x840F},
+ {0x5D4D, 0x8403},
+ {0x5D4E, 0x83F8},
+ {0x5D4F, 0x83F9},
+ {0x5D50, 0x83EA},
+ {0x5D51, 0x83C5},
+ {0x5D52, 0x83C0},
+ {0x5D53, 0x7E08},
+ {0x5D54, 0x83F0},
+ {0x5D55, 0x83E1},
+ {0x5D56, 0x845C},
+ {0x5D57, 0x8451},
+ {0x5D58, 0x845A},
+ {0x5D59, 0x8459},
+ {0x5D5A, 0x8473},
+ {0x5D5B, 0x8546},
+ {0x5D5C, 0x8488},
+ {0x5D5D, 0x847A},
+ {0x5D5E, 0x8562},
+ {0x5D5F, 0x8478},
+ {0x5D60, 0x843C},
+ {0x5D61, 0x8446},
+ {0x5D62, 0x8469},
+ {0x5D63, 0x8476},
+ {0x5D64, 0x851E},
+ {0x5D65, 0x848E},
+ {0x5D66, 0x8431},
+ {0x5D67, 0x846D},
+ {0x5D68, 0x84C1},
+ {0x5D69, 0x84CD},
+ {0x5D6A, 0x84D0},
+ {0x5D6B, 0x9A40},
+ {0x5D6C, 0x84BD},
+ {0x5D6D, 0x84D3},
+ {0x5D6E, 0x84CA},
+ {0x5D6F, 0x84BF},
+ {0x5D70, 0x84BA},
+ {0x5D71, 0x863A},
+ {0x5D72, 0x84A1},
+ {0x5D73, 0x84B9},
+ {0x5D74, 0x84B4},
+ {0x5D75, 0x8497},
+ {0x5D76, 0x93A3},
+ {0x5D77, 0x8577},
+ {0x5D78, 0x850C},
+ {0x5D79, 0x750D},
+ {0x5D7A, 0x8538},
+ {0x5D7B, 0x84F0},
+ {0x5D7C, 0x861E},
+ {0x5D7D, 0x851F},
+ {0x5D7E, 0x85FA},
+ {0x5E21, 0x8556},
+ {0x5E22, 0x853B},
+ {0x5E23, 0x84FF},
+ {0x5E24, 0x84FC},
+ {0x5E25, 0x8559},
+ {0x5E26, 0x8548},
+ {0x5E27, 0x8568},
+ {0x5E28, 0x8564},
+ {0x5E29, 0x855E},
+ {0x5E2A, 0x857A},
+ {0x5E2B, 0x77A2},
+ {0x5E2C, 0x8543},
+ {0x5E2D, 0x8604},
+ {0x5E2E, 0x857B},
+ {0x5E2F, 0x85A4},
+ {0x5E30, 0x85A8},
+ {0x5E31, 0x8587},
+ {0x5E32, 0x858F},
+ {0x5E33, 0x8579},
+ {0x5E34, 0x85EA},
+ {0x5E35, 0x859C},
+ {0x5E36, 0x8585},
+ {0x5E37, 0x85B9},
+ {0x5E38, 0x85B7},
+ {0x5E39, 0x85B0},
+ {0x5E3A, 0x861A},
+ {0x5E3B, 0x85C1},
+ {0x5E3C, 0x85DC},
+ {0x5E3D, 0x85FF},
+ {0x5E3E, 0x8627},
+ {0x5E3F, 0x8605},
+ {0x5E40, 0x8629},
+ {0x5E41, 0x8616},
+ {0x5E42, 0x863C},
+ {0x5E43, 0x5EFE},
+ {0x5E44, 0x5F08},
+ {0x5E45, 0x593C},
+ {0x5E46, 0x5969},
+ {0x5E47, 0x8037},
+ {0x5E48, 0x5955},
+ {0x5E49, 0x595A},
+ {0x5E4A, 0x5958},
+ {0x5E4B, 0x530F},
+ {0x5E4C, 0x5C22},
+ {0x5E4D, 0x5C25},
+ {0x5E4E, 0x5C2C},
+ {0x5E4F, 0x5C37},
+ {0x5E50, 0x624C},
+ {0x5E51, 0x636B},
+ {0x5E52, 0x6476},
+ {0x5E53, 0x62BB},
+ {0x5E54, 0x62CA},
+ {0x5E55, 0x62DA},
+ {0x5E56, 0x62D7},
+ {0x5E57, 0x62EE},
+ {0x5E58, 0x649F},
+ {0x5E59, 0x62F6},
+ {0x5E5A, 0x6339},
+ {0x5E5B, 0x634B},
+ {0x5E5C, 0x6343},
+ {0x5E5D, 0x63AD},
+ {0x5E5E, 0x63F6},
+ {0x5E5F, 0x6371},
+ {0x5E60, 0x637A},
+ {0x5E61, 0x638E},
+ {0x5E62, 0x6451},
+ {0x5E63, 0x636D},
+ {0x5E64, 0x63AC},
+ {0x5E65, 0x638A},
+ {0x5E66, 0x6369},
+ {0x5E67, 0x63AE},
+ {0x5E68, 0x645C},
+ {0x5E69, 0x63F2},
+ {0x5E6A, 0x63F8},
+ {0x5E6B, 0x63E0},
+ {0x5E6C, 0x64B3},
+ {0x5E6D, 0x63C4},
+ {0x5E6E, 0x63DE},
+ {0x5E6F, 0x63CE},
+ {0x5E70, 0x6452},
+ {0x5E71, 0x63C6},
+ {0x5E72, 0x63BE},
+ {0x5E73, 0x6504},
+ {0x5E74, 0x6441},
+ {0x5E75, 0x640B},
+ {0x5E76, 0x641B},
+ {0x5E77, 0x6420},
+ {0x5E78, 0x640C},
+ {0x5E79, 0x6426},
+ {0x5E7A, 0x6421},
+ {0x5E7B, 0x645E},
+ {0x5E7C, 0x6516},
+ {0x5E7D, 0x646D},
+ {0x5E7E, 0x6496},
+ {0x5F21, 0x647A},
+ {0x5F22, 0x64F7},
+ {0x5F23, 0x64FC},
+ {0x5F24, 0x6499},
+ {0x5F25, 0x651B},
+ {0x5F26, 0x64C0},
+ {0x5F27, 0x64D0},
+ {0x5F28, 0x64D7},
+ {0x5F29, 0x64E4},
+ {0x5F2A, 0x64E2},
+ {0x5F2B, 0x6509},
+ {0x5F2C, 0x6525},
+ {0x5F2D, 0x652E},
+ {0x5F2E, 0x5F0B},
+ {0x5F2F, 0x5FD2},
+ {0x5F30, 0x7519},
+ {0x5F31, 0x5F11},
+ {0x5F32, 0x535F},
+ {0x5F33, 0x53F1},
+ {0x5F34, 0x5630},
+ {0x5F35, 0x53E9},
+ {0x5F36, 0x53E8},
+ {0x5F37, 0x53FB},
+ {0x5F38, 0x5412},
+ {0x5F39, 0x5416},
+ {0x5F3A, 0x5406},
+ {0x5F3B, 0x544B},
+ {0x5F3C, 0x5638},
+ {0x5F3D, 0x56C8},
+ {0x5F3E, 0x5454},
+ {0x5F3F, 0x56A6},
+ {0x5F40, 0x5443},
+ {0x5F41, 0x5421},
+ {0x5F42, 0x5504},
+ {0x5F43, 0x54BC},
+ {0x5F44, 0x5423},
+ {0x5F45, 0x5432},
+ {0x5F46, 0x5482},
+ {0x5F47, 0x5494},
+ {0x5F48, 0x5477},
+ {0x5F49, 0x5471},
+ {0x5F4A, 0x5464},
+ {0x5F4B, 0x549A},
+ {0x5F4C, 0x5680},
+ {0x5F4D, 0x5484},
+ {0x5F4E, 0x5476},
+ {0x5F4F, 0x5466},
+ {0x5F50, 0x565D},
+ {0x5F51, 0x54D0},
+ {0x5F52, 0x54AD},
+ {0x5F53, 0x54C2},
+ {0x5F54, 0x54B4},
+ {0x5F55, 0x5660},
+ {0x5F56, 0x54A7},
+ {0x5F57, 0x54A6},
+ {0x5F58, 0x5635},
+ {0x5F59, 0x55F6},
+ {0x5F5A, 0x5472},
+ {0x5F5B, 0x54A3},
+ {0x5F5C, 0x5666},
+ {0x5F5D, 0x54BB},
+ {0x5F5E, 0x54BF},
+ {0x5F5F, 0x54CC},
+ {0x5F60, 0x5672},
+ {0x5F61, 0x54DA},
+ {0x5F62, 0x568C},
+ {0x5F63, 0x54A9},
+ {0x5F64, 0x54AA},
+ {0x5F65, 0x54A4},
+ {0x5F66, 0x5665},
+ {0x5F67, 0x54CF},
+ {0x5F68, 0x54DE},
+ {0x5F69, 0x561C},
+ {0x5F6A, 0x54E7},
+ {0x5F6B, 0x562E},
+ {0x5F6C, 0x54FD},
+ {0x5F6D, 0x5514},
+ {0x5F6E, 0x54F3},
+ {0x5F6F, 0x55E9},
+ {0x5F70, 0x5523},
+ {0x5F71, 0x550F},
+ {0x5F72, 0x5511},
+ {0x5F73, 0x5527},
+ {0x5F74, 0x552A},
+ {0x5F75, 0x5616},
+ {0x5F76, 0x558F},
+ {0x5F77, 0x55B5},
+ {0x5F78, 0x5549},
+ {0x5F79, 0x56C0},
+ {0x5F7A, 0x5541},
+ {0x5F7B, 0x5555},
+ {0x5F7C, 0x553F},
+ {0x5F7D, 0x5550},
+ {0x5F7E, 0x553C},
+ {0x6021, 0x5537},
+ {0x6022, 0x5556},
+ {0x6023, 0x5575},
+ {0x6024, 0x5576},
+ {0x6025, 0x5577},
+ {0x6026, 0x5533},
+ {0x6027, 0x5530},
+ {0x6028, 0x555C},
+ {0x6029, 0x558B},
+ {0x602A, 0x55D2},
+ {0x602B, 0x5583},
+ {0x602C, 0x55B1},
+ {0x602D, 0x55B9},
+ {0x602E, 0x5588},
+ {0x602F, 0x5581},
+ {0x6030, 0x559F},
+ {0x6031, 0x557E},
+ {0x6032, 0x55D6},
+ {0x6033, 0x5591},
+ {0x6034, 0x557B},
+ {0x6035, 0x55DF},
+ {0x6036, 0x560D},
+ {0x6037, 0x56B3},
+ {0x6038, 0x5594},
+ {0x6039, 0x5599},
+ {0x603A, 0x55EA},
+ {0x603B, 0x55F7},
+ {0x603C, 0x55C9},
+ {0x603D, 0x561F},
+ {0x603E, 0x55D1},
+ {0x603F, 0x56C1},
+ {0x6040, 0x55EC},
+ {0x6041, 0x55D4},
+ {0x6042, 0x55E6},
+ {0x6043, 0x55DD},
+ {0x6044, 0x55C4},
+ {0x6045, 0x55EF},
+ {0x6046, 0x55E5},
+ {0x6047, 0x55F2},
+ {0x6048, 0x566F},
+ {0x6049, 0x55CC},
+ {0x604A, 0x55CD},
+ {0x604B, 0x55E8},
+ {0x604C, 0x55F5},
+ {0x604D, 0x55E4},
+ {0x604E, 0x8F61},
+ {0x604F, 0x561E},
+ {0x6050, 0x5608},
+ {0x6051, 0x560C},
+ {0x6052, 0x5601},
+ {0x6053, 0x56B6},
+ {0x6054, 0x5623},
+ {0x6055, 0x55FE},
+ {0x6056, 0x5600},
+ {0x6057, 0x5627},
+ {0x6058, 0x562D},
+ {0x6059, 0x5658},
+ {0x605A, 0x5639},
+ {0x605B, 0x5657},
+ {0x605C, 0x562C},
+ {0x605D, 0x564D},
+ {0x605E, 0x5662},
+ {0x605F, 0x5659},
+ {0x6060, 0x5695},
+ {0x6061, 0x564C},
+ {0x6062, 0x5654},
+ {0x6063, 0x5686},
+ {0x6064, 0x5664},
+ {0x6065, 0x5671},
+ {0x6066, 0x566B},
+ {0x6067, 0x567B},
+ {0x6068, 0x567C},
+ {0x6069, 0x5685},
+ {0x606A, 0x5693},
+ {0x606B, 0x56AF},
+ {0x606C, 0x56D4},
+ {0x606D, 0x56D7},
+ {0x606E, 0x56DD},
+ {0x606F, 0x56E1},
+ {0x6070, 0x5707},
+ {0x6071, 0x56EB},
+ {0x6072, 0x56F9},
+ {0x6073, 0x56FF},
+ {0x6074, 0x5704},
+ {0x6075, 0x570A},
+ {0x6076, 0x5709},
+ {0x6077, 0x571C},
+ {0x6078, 0x5E43},
+ {0x6079, 0x5E19},
+ {0x607A, 0x5E14},
+ {0x607B, 0x5E11},
+ {0x607C, 0x5E6C},
+ {0x607D, 0x5E58},
+ {0x607E, 0x5E57},
+ {0x6121, 0x5E37},
+ {0x6122, 0x5E44},
+ {0x6123, 0x5E54},
+ {0x6124, 0x5E5B},
+ {0x6125, 0x5E5E},
+ {0x6126, 0x5E61},
+ {0x6127, 0x5C8C},
+ {0x6128, 0x5C7A},
+ {0x6129, 0x5C8D},
+ {0x612A, 0x5C90},
+ {0x612B, 0x5D87},
+ {0x612C, 0x5C88},
+ {0x612D, 0x5CF4},
+ {0x612E, 0x5C99},
+ {0x612F, 0x5C91},
+ {0x6130, 0x5D50},
+ {0x6131, 0x5C9C},
+ {0x6132, 0x5CB5},
+ {0x6133, 0x5CA2},
+ {0x6134, 0x5D2C},
+ {0x6135, 0x5CAC},
+ {0x6136, 0x5CAB},
+ {0x6137, 0x5CB1},
+ {0x6138, 0x5CA3},
+ {0x6139, 0x5CC1},
+ {0x613A, 0x5CB7},
+ {0x613B, 0x5DA7},
+ {0x613C, 0x5CD2},
+ {0x613D, 0x5DA0},
+ {0x613E, 0x5CCB},
+ {0x613F, 0x5D22},
+ {0x6140, 0x5D97},
+ {0x6141, 0x5D0D},
+ {0x6142, 0x5D27},
+ {0x6143, 0x5D26},
+ {0x6144, 0x5D2E},
+ {0x6145, 0x5D24},
+ {0x6146, 0x5D1E},
+ {0x6147, 0x5D06},
+ {0x6148, 0x5D1B},
+ {0x6149, 0x5DB8},
+ {0x614A, 0x5D3E},
+ {0x614B, 0x5D34},
+ {0x614C, 0x5D3D},
+ {0x614D, 0x5D6C},
+ {0x614E, 0x5D5B},
+ {0x614F, 0x5D6F},
+ {0x6150, 0x5D81},
+ {0x6151, 0x5D6B},
+ {0x6152, 0x5D4B},
+ {0x6153, 0x5D4A},
+ {0x6154, 0x5D69},
+ {0x6155, 0x5D74},
+ {0x6156, 0x5D82},
+ {0x6157, 0x5D99},
+ {0x6158, 0x5D9D},
+ {0x6159, 0x8C73},
+ {0x615A, 0x5DB7},
+ {0x615B, 0x5DD4},
+ {0x615C, 0x5F73},
+ {0x615D, 0x5F77},
+ {0x615E, 0x5F82},
+ {0x615F, 0x5F87},
+ {0x6160, 0x5F89},
+ {0x6161, 0x540E},
+ {0x6162, 0x5FA0},
+ {0x6163, 0x5F99},
+ {0x6164, 0x5F9C},
+ {0x6165, 0x5FA8},
+ {0x6166, 0x5FAD},
+ {0x6167, 0x5FB5},
+ {0x6168, 0x5FBC},
+ {0x6169, 0x8862},
+ {0x616A, 0x5F61},
+ {0x616B, 0x72AD},
+ {0x616C, 0x72B0},
+ {0x616D, 0x72B4},
+ {0x616E, 0x7377},
+ {0x616F, 0x7341},
+ {0x6170, 0x72C3},
+ {0x6171, 0x72C1},
+ {0x6172, 0x72CE},
+ {0x6173, 0x72CD},
+ {0x6174, 0x72D2},
+ {0x6175, 0x72E8},
+ {0x6176, 0x736A},
+ {0x6177, 0x72E9},
+ {0x6178, 0x733B},
+ {0x6179, 0x72F4},
+ {0x617A, 0x72F7},
+ {0x617B, 0x7301},
+ {0x617C, 0x72F3},
+ {0x617D, 0x736B},
+ {0x617E, 0x72FA},
+ {0x6221, 0x72FB},
+ {0x6222, 0x7317},
+ {0x6223, 0x7313},
+ {0x6224, 0x7380},
+ {0x6225, 0x730A},
+ {0x6226, 0x731E},
+ {0x6227, 0x731D},
+ {0x6228, 0x737C},
+ {0x6229, 0x7322},
+ {0x622A, 0x7339},
+ {0x622B, 0x7325},
+ {0x622C, 0x732C},
+ {0x622D, 0x7338},
+ {0x622E, 0x7331},
+ {0x622F, 0x7350},
+ {0x6230, 0x734D},
+ {0x6231, 0x7357},
+ {0x6232, 0x7360},
+ {0x6233, 0x736C},
+ {0x6234, 0x736F},
+ {0x6235, 0x737E},
+ {0x6236, 0x821B},
+ {0x6237, 0x5925},
+ {0x6238, 0x98E7},
+ {0x6239, 0x5924},
+ {0x623A, 0x5902},
+ {0x623B, 0x98E0},
+ {0x623C, 0x9933},
+ {0x623D, 0x98E9},
+ {0x623E, 0x993C},
+ {0x623F, 0x98EA},
+ {0x6240, 0x98EB},
+ {0x6241, 0x98ED},
+ {0x6242, 0x98F4},
+ {0x6243, 0x9909},
+ {0x6244, 0x9911},
+ {0x6245, 0x4F59},
+ {0x6246, 0x991B},
+ {0x6247, 0x9937},
+ {0x6248, 0x993F},
+ {0x6249, 0x9943},
+ {0x624A, 0x9948},
+ {0x624B, 0x9949},
+ {0x624C, 0x994A},
+ {0x624D, 0x994C},
+ {0x624E, 0x9962},
+ {0x624F, 0x5E80},
+ {0x6250, 0x5EE1},
+ {0x6251, 0x5E8B},
+ {0x6252, 0x5E96},
+ {0x6253, 0x5EA5},
+ {0x6254, 0x5EA0},
+ {0x6255, 0x5EB9},
+ {0x6256, 0x5EB5},
+ {0x6257, 0x5EBE},
+ {0x6258, 0x5EB3},
+ {0x6259, 0x8CE1},
+ {0x625A, 0x5ED2},
+ {0x625B, 0x5ED1},
+ {0x625C, 0x5EDB},
+ {0x625D, 0x5EE8},
+ {0x625E, 0x5EEA},
+ {0x625F, 0x81BA},
+ {0x6260, 0x5FC4},
+ {0x6261, 0x5FC9},
+ {0x6262, 0x5FD6},
+ {0x6263, 0x61FA},
+ {0x6264, 0x61AE},
+ {0x6265, 0x5FEE},
+ {0x6266, 0x616A},
+ {0x6267, 0x5FE1},
+ {0x6268, 0x5FE4},
+ {0x6269, 0x613E},
+ {0x626A, 0x60B5},
+ {0x626B, 0x6134},
+ {0x626C, 0x5FEA},
+ {0x626D, 0x5FED},
+ {0x626E, 0x5FF8},
+ {0x626F, 0x6019},
+ {0x6270, 0x6035},
+ {0x6271, 0x6026},
+ {0x6272, 0x601B},
+ {0x6273, 0x600F},
+ {0x6274, 0x600D},
+ {0x6275, 0x6029},
+ {0x6276, 0x602B},
+ {0x6277, 0x600A},
+ {0x6278, 0x61CC},
+ {0x6279, 0x6021},
+ {0x627A, 0x615F},
+ {0x627B, 0x61E8},
+ {0x627C, 0x60FB},
+ {0x627D, 0x6137},
+ {0x627E, 0x6042},
+ {0x6321, 0x606A},
+ {0x6322, 0x60F2},
+ {0x6323, 0x6096},
+ {0x6324, 0x609A},
+ {0x6325, 0x6173},
+ {0x6326, 0x609D},
+ {0x6327, 0x6083},
+ {0x6328, 0x6092},
+ {0x6329, 0x608C},
+ {0x632A, 0x609B},
+ {0x632B, 0x611C},
+ {0x632C, 0x60BB},
+ {0x632D, 0x60B1},
+ {0x632E, 0x60DD},
+ {0x632F, 0x60D8},
+ {0x6330, 0x60C6},
+ {0x6331, 0x60DA},
+ {0x6332, 0x60B4},
+ {0x6333, 0x6120},
+ {0x6334, 0x6192},
+ {0x6335, 0x6115},
+ {0x6336, 0x6123},
+ {0x6337, 0x60F4},
+ {0x6338, 0x6100},
+ {0x6339, 0x610E},
+ {0x633A, 0x612B},
+ {0x633B, 0x614A},
+ {0x633C, 0x6175},
+ {0x633D, 0x61AC},
+ {0x633E, 0x6194},
+ {0x633F, 0x61A7},
+ {0x6340, 0x61B7},
+ {0x6341, 0x61D4},
+ {0x6342, 0x61F5},
+ {0x6343, 0x5FDD},
+ {0x6344, 0x96B3},
+ {0x6345, 0x9582},
+ {0x6346, 0x9586},
+ {0x6347, 0x95C8},
+ {0x6348, 0x958E},
+ {0x6349, 0x9594},
+ {0x634A, 0x958C},
+ {0x634B, 0x95E5},
+ {0x634C, 0x95AD},
+ {0x634D, 0x95AB},
+ {0x634E, 0x9B2E},
+ {0x634F, 0x95AC},
+ {0x6350, 0x95BE},
+ {0x6351, 0x95B6},
+ {0x6352, 0x9B29},
+ {0x6353, 0x95BF},
+ {0x6354, 0x95BD},
+ {0x6355, 0x95BC},
+ {0x6356, 0x95C3},
+ {0x6357, 0x95CB},
+ {0x6358, 0x95D4},
+ {0x6359, 0x95D0},
+ {0x635A, 0x95D5},
+ {0x635B, 0x95DE},
+ {0x635C, 0x4E2C},
+ {0x635D, 0x723F},
+ {0x635E, 0x6215},
+ {0x635F, 0x6C35},
+ {0x6360, 0x6C54},
+ {0x6361, 0x6C5C},
+ {0x6362, 0x6C4A},
+ {0x6363, 0x7043},
+ {0x6364, 0x6C85},
+ {0x6365, 0x6C90},
+ {0x6366, 0x6C94},
+ {0x6367, 0x6C8C},
+ {0x6368, 0x6C68},
+ {0x6369, 0x6C69},
+ {0x636A, 0x6C74},
+ {0x636B, 0x6C76},
+ {0x636C, 0x6C86},
+ {0x636D, 0x6F59},
+ {0x636E, 0x6CD0},
+ {0x636F, 0x6CD4},
+ {0x6370, 0x6CAD},
+ {0x6371, 0x7027},
+ {0x6372, 0x7018},
+ {0x6373, 0x6CF1},
+ {0x6374, 0x6CD7},
+ {0x6375, 0x6CB2},
+ {0x6376, 0x6CE0},
+ {0x6377, 0x6CD6},
+ {0x6378, 0x6FFC},
+ {0x6379, 0x6CEB},
+ {0x637A, 0x6CEE},
+ {0x637B, 0x6CB1},
+ {0x637C, 0x6CD3},
+ {0x637D, 0x6CEF},
+ {0x637E, 0x6D87},
+ {0x6421, 0x6D39},
+ {0x6422, 0x6D27},
+ {0x6423, 0x6D0C},
+ {0x6424, 0x6D79},
+ {0x6425, 0x6E5E},
+ {0x6426, 0x6D07},
+ {0x6427, 0x6D04},
+ {0x6428, 0x6D19},
+ {0x6429, 0x6D0E},
+ {0x642A, 0x6D2B},
+ {0x642B, 0x6FAE},
+ {0x642C, 0x6D2E},
+ {0x642D, 0x6D35},
+ {0x642E, 0x6D1A},
+ {0x642F, 0x700F},
+ {0x6430, 0x6EF8},
+ {0x6431, 0x6F6F},
+ {0x6432, 0x6D33},
+ {0x6433, 0x6D91},
+ {0x6434, 0x6D6F},
+ {0x6435, 0x6DF6},
+ {0x6436, 0x6F7F},
+ {0x6437, 0x6D5E},
+ {0x6438, 0x6D93},
+ {0x6439, 0x6D94},
+ {0x643A, 0x6D5C},
+ {0x643B, 0x6D60},
+ {0x643C, 0x6D7C},
+ {0x643D, 0x6D63},
+ {0x643E, 0x6E1A},
+ {0x643F, 0x6DC7},
+ {0x6440, 0x6DC5},
+ {0x6441, 0x6DDE},
+ {0x6442, 0x7006},
+ {0x6443, 0x6DBF},
+ {0x6444, 0x6DE0},
+ {0x6445, 0x6FA0},
+ {0x6446, 0x6DE6},
+ {0x6447, 0x6DDD},
+ {0x6448, 0x6DD9},
+ {0x6449, 0x700B},
+ {0x644A, 0x6DAB},
+ {0x644B, 0x6E0C},
+ {0x644C, 0x6DAE},
+ {0x644D, 0x6E2B},
+ {0x644E, 0x6E6E},
+ {0x644F, 0x6E4E},
+ {0x6450, 0x6E6B},
+ {0x6451, 0x6EB2},
+ {0x6452, 0x6E5F},
+ {0x6453, 0x6E86},
+ {0x6454, 0x6E53},
+ {0x6455, 0x6E54},
+ {0x6456, 0x6E32},
+ {0x6457, 0x6E25},
+ {0x6458, 0x6E44},
+ {0x6459, 0x7067},
+ {0x645A, 0x6EB1},
+ {0x645B, 0x6E98},
+ {0x645C, 0x7044},
+ {0x645D, 0x6F2D},
+ {0x645E, 0x7005},
+ {0x645F, 0x6EA5},
+ {0x6460, 0x6EA7},
+ {0x6461, 0x6EBD},
+ {0x6462, 0x6EBB},
+ {0x6463, 0x6EB7},
+ {0x6464, 0x6F77},
+ {0x6465, 0x6EB4},
+ {0x6466, 0x6ECF},
+ {0x6467, 0x6E8F},
+ {0x6468, 0x6EC2},
+ {0x6469, 0x6E9F},
+ {0x646A, 0x6F62},
+ {0x646B, 0x7020},
+ {0x646C, 0x701F},
+ {0x646D, 0x6F24},
+ {0x646E, 0x6F15},
+ {0x646F, 0x6EF9},
+ {0x6470, 0x6F2F},
+ {0x6471, 0x6F36},
+ {0x6472, 0x7032},
+ {0x6473, 0x6F74},
+ {0x6474, 0x6F2A},
+ {0x6475, 0x6F09},
+ {0x6476, 0x6F29},
+ {0x6477, 0x6F89},
+ {0x6478, 0x6F8D},
+ {0x6479, 0x6F8C},
+ {0x647A, 0x6F78},
+ {0x647B, 0x6F72},
+ {0x647C, 0x6F7C},
+ {0x647D, 0x6F7A},
+ {0x647E, 0x7028},
+ {0x6521, 0x6FC9},
+ {0x6522, 0x6FA7},
+ {0x6523, 0x6FB9},
+ {0x6524, 0x6FB6},
+ {0x6525, 0x6FC2},
+ {0x6526, 0x6FE1},
+ {0x6527, 0x6FEE},
+ {0x6528, 0x6FDE},
+ {0x6529, 0x6FE0},
+ {0x652A, 0x6FEF},
+ {0x652B, 0x701A},
+ {0x652C, 0x7023},
+ {0x652D, 0x701B},
+ {0x652E, 0x7039},
+ {0x652F, 0x7035},
+ {0x6530, 0x705D},
+ {0x6531, 0x705E},
+ {0x6532, 0x5B80},
+ {0x6533, 0x5B84},
+ {0x6534, 0x5B95},
+ {0x6535, 0x5B93},
+ {0x6536, 0x5BA5},
+ {0x6537, 0x5BB8},
+ {0x6538, 0x752F},
+ {0x6539, 0x9A2B},
+ {0x653A, 0x6434},
+ {0x653B, 0x5BE4},
+ {0x653C, 0x5BEE},
+ {0x653D, 0x8930},
+ {0x653E, 0x5BF0},
+ {0x653F, 0x8E47},
+ {0x6540, 0x8B07},
+ {0x6541, 0x8FB6},
+ {0x6542, 0x8FD3},
+ {0x6543, 0x8FD5},
+ {0x6544, 0x8FE5},
+ {0x6545, 0x8FEE},
+ {0x6546, 0x8FE4},
+ {0x6547, 0x9087},
+ {0x6548, 0x8FE6},
+ {0x6549, 0x9015},
+ {0x654A, 0x8FE8},
+ {0x654B, 0x9005},
+ {0x654C, 0x9004},
+ {0x654D, 0x900B},
+ {0x654E, 0x9090},
+ {0x654F, 0x9011},
+ {0x6550, 0x900D},
+ {0x6551, 0x9016},
+ {0x6552, 0x9021},
+ {0x6553, 0x9035},
+ {0x6554, 0x9036},
+ {0x6555, 0x902D},
+ {0x6556, 0x902F},
+ {0x6557, 0x9044},
+ {0x6558, 0x9051},
+ {0x6559, 0x9052},
+ {0x655A, 0x9050},
+ {0x655B, 0x9068},
+ {0x655C, 0x9058},
+ {0x655D, 0x9062},
+ {0x655E, 0x905B},
+ {0x655F, 0x66B9},
+ {0x6560, 0x9074},
+ {0x6561, 0x907D},
+ {0x6562, 0x9082},
+ {0x6563, 0x9088},
+ {0x6564, 0x9083},
+ {0x6565, 0x908B},
+ {0x6566, 0x5F50},
+ {0x6567, 0x5F57},
+ {0x6568, 0x5F56},
+ {0x6569, 0x5F58},
+ {0x656A, 0x5C3B},
+ {0x656B, 0x54AB},
+ {0x656C, 0x5C50},
+ {0x656D, 0x5C59},
+ {0x656E, 0x5B71},
+ {0x656F, 0x5C63},
+ {0x6570, 0x5C68},
+ {0x6571, 0x7FBC},
+ {0x6572, 0x5F33},
+ {0x6573, 0x5F29},
+ {0x6574, 0x5F2D},
+ {0x6575, 0x8274},
+ {0x6576, 0x5F3C},
+ {0x6577, 0x9B3B},
+ {0x6578, 0x5C6E},
+ {0x6579, 0x5981},
+ {0x657A, 0x5983},
+ {0x657B, 0x598D},
+ {0x657C, 0x5AF5},
+ {0x657D, 0x5AD7},
+ {0x657E, 0x59A3},
+ {0x6621, 0x5997},
+ {0x6622, 0x59CA},
+ {0x6623, 0x5B00},
+ {0x6624, 0x599E},
+ {0x6625, 0x59A4},
+ {0x6626, 0x59D2},
+ {0x6627, 0x59B2},
+ {0x6628, 0x59AF},
+ {0x6629, 0x59D7},
+ {0x662A, 0x59BE},
+ {0x662B, 0x5A6D},
+ {0x662C, 0x5B08},
+ {0x662D, 0x59DD},
+ {0x662E, 0x5B4C},
+ {0x662F, 0x59E3},
+ {0x6630, 0x59D8},
+ {0x6631, 0x59F9},
+ {0x6632, 0x5A0C},
+ {0x6633, 0x5A09},
+ {0x6634, 0x5AA7},
+ {0x6635, 0x5AFB},
+ {0x6636, 0x5A11},
+ {0x6637, 0x5A23},
+ {0x6638, 0x5A13},
+ {0x6639, 0x5A40},
+ {0x663A, 0x5A67},
+ {0x663B, 0x5A4A},
+ {0x663C, 0x5A55},
+ {0x663D, 0x5A3C},
+ {0x663E, 0x5A62},
+ {0x663F, 0x5B0B},
+ {0x6640, 0x80EC},
+ {0x6641, 0x5AAA},
+ {0x6642, 0x5A9B},
+ {0x6643, 0x5A77},
+ {0x6644, 0x5A7A},
+ {0x6645, 0x5ABE},
+ {0x6646, 0x5AEB},
+ {0x6647, 0x5AB2},
+ {0x6648, 0x5B21},
+ {0x6649, 0x5B2A},
+ {0x664A, 0x5AB8},
+ {0x664B, 0x5AE0},
+ {0x664C, 0x5AE3},
+ {0x664D, 0x5B19},
+ {0x664E, 0x5AD6},
+ {0x664F, 0x5AE6},
+ {0x6650, 0x5AD8},
+ {0x6651, 0x5ADC},
+ {0x6652, 0x5B09},
+ {0x6653, 0x5B17},
+ {0x6654, 0x5B16},
+ {0x6655, 0x5B32},
+ {0x6656, 0x5B37},
+ {0x6657, 0x5B40},
+ {0x6658, 0x5C15},
+ {0x6659, 0x5C1C},
+ {0x665A, 0x5B5A},
+ {0x665B, 0x5B65},
+ {0x665C, 0x5B73},
+ {0x665D, 0x5B51},
+ {0x665E, 0x5B53},
+ {0x665F, 0x5B62},
+ {0x6660, 0x99D4},
+ {0x6661, 0x99DF},
+ {0x6662, 0x99D9},
+ {0x6663, 0x9A36},
+ {0x6664, 0x9A5B},
+ {0x6665, 0x99D1},
+ {0x6666, 0x99D8},
+ {0x6667, 0x9A4D},
+ {0x6668, 0x9A4A},
+ {0x6669, 0x99E2},
+ {0x666A, 0x9A6A},
+ {0x666B, 0x9A0F},
+ {0x666C, 0x9A0D},
+ {0x666D, 0x9A05},
+ {0x666E, 0x9A42},
+ {0x666F, 0x9A2D},
+ {0x6670, 0x9A16},
+ {0x6671, 0x9A41},
+ {0x6672, 0x9A2E},
+ {0x6673, 0x9A38},
+ {0x6674, 0x9A43},
+ {0x6675, 0x9A44},
+ {0x6676, 0x9A4F},
+ {0x6677, 0x9A65},
+ {0x6678, 0x9A64},
+ {0x6679, 0x7CF9},
+ {0x667A, 0x7D06},
+ {0x667B, 0x7D02},
+ {0x667C, 0x7D07},
+ {0x667D, 0x7D08},
+ {0x667E, 0x7E8A},
+ {0x6721, 0x7D1C},
+ {0x6722, 0x7D15},
+ {0x6723, 0x7D13},
+ {0x6724, 0x7D3A},
+ {0x6725, 0x7D32},
+ {0x6726, 0x7D31},
+ {0x6727, 0x7E10},
+ {0x6728, 0x7D3C},
+ {0x6729, 0x7D40},
+ {0x672A, 0x7D3F},
+ {0x672B, 0x7D5D},
+ {0x672C, 0x7D4E},
+ {0x672D, 0x7D73},
+ {0x672E, 0x7D86},
+ {0x672F, 0x7D83},
+ {0x6730, 0x7D88},
+ {0x6731, 0x7DBE},
+ {0x6732, 0x7DBA},
+ {0x6733, 0x7DCB},
+ {0x6734, 0x7DD4},
+ {0x6735, 0x7DC4},
+ {0x6736, 0x7D9E},
+ {0x6737, 0x7DAC},
+ {0x6738, 0x7DB9},
+ {0x6739, 0x7DA3},
+ {0x673A, 0x7DB0},
+ {0x673B, 0x7DC7},
+ {0x673C, 0x7DD9},
+ {0x673D, 0x7DD7},
+ {0x673E, 0x7DF9},
+ {0x673F, 0x7DF2},
+ {0x6740, 0x7E62},
+ {0x6741, 0x7DE6},
+ {0x6742, 0x7DF6},
+ {0x6743, 0x7DF1},
+ {0x6744, 0x7E0B},
+ {0x6745, 0x7DE1},
+ {0x6746, 0x7E09},
+ {0x6747, 0x7E1D},
+ {0x6748, 0x7E1F},
+ {0x6749, 0x7E1E},
+ {0x674A, 0x7E2D},
+ {0x674B, 0x7E0A},
+ {0x674C, 0x7E11},
+ {0x674D, 0x7E7D},
+ {0x674E, 0x7E39},
+ {0x674F, 0x7E35},
+ {0x6750, 0x7E32},
+ {0x6751, 0x7E46},
+ {0x6752, 0x7E45},
+ {0x6753, 0x7E88},
+ {0x6754, 0x7E5A},
+ {0x6755, 0x7E52},
+ {0x6756, 0x7E6E},
+ {0x6757, 0x7E7E},
+ {0x6758, 0x7E70},
+ {0x6759, 0x7E6F},
+ {0x675A, 0x7E98},
+ {0x675B, 0x5E7A},
+ {0x675C, 0x757F},
+ {0x675D, 0x5DDB},
+ {0x675E, 0x753E},
+ {0x675F, 0x9095},
+ {0x6760, 0x738E},
+ {0x6761, 0x74A3},
+ {0x6762, 0x744B},
+ {0x6763, 0x73A2},
+ {0x6764, 0x739F},
+ {0x6765, 0x73CF},
+ {0x6766, 0x73C2},
+ {0x6767, 0x74CF},
+ {0x6768, 0x73B7},
+ {0x6769, 0x73B3},
+ {0x676A, 0x73C0},
+ {0x676B, 0x73C9},
+ {0x676C, 0x73C8},
+ {0x676D, 0x73E5},
+ {0x676E, 0x73D9},
+ {0x676F, 0x980A},
+ {0x6770, 0x740A},
+ {0x6771, 0x73E9},
+ {0x6772, 0x73E7},
+ {0x6773, 0x73DE},
+ {0x6774, 0x74BD},
+ {0x6775, 0x743F},
+ {0x6776, 0x7489},
+ {0x6777, 0x742A},
+ {0x6778, 0x745B},
+ {0x6779, 0x7426},
+ {0x677A, 0x7425},
+ {0x677B, 0x7428},
+ {0x677C, 0x7430},
+ {0x677D, 0x742E},
+ {0x677E, 0x742C},
+ {0x6821, 0x741B},
+ {0x6822, 0x741A},
+ {0x6823, 0x7441},
+ {0x6824, 0x745C},
+ {0x6825, 0x7457},
+ {0x6826, 0x7455},
+ {0x6827, 0x7459},
+ {0x6828, 0x74A6},
+ {0x6829, 0x746D},
+ {0x682A, 0x747E},
+ {0x682B, 0x749C},
+ {0x682C, 0x74D4},
+ {0x682D, 0x7480},
+ {0x682E, 0x7481},
+ {0x682F, 0x7487},
+ {0x6830, 0x748B},
+ {0x6831, 0x749E},
+ {0x6832, 0x74A8},
+ {0x6833, 0x74A9},
+ {0x6834, 0x7490},
+ {0x6835, 0x74A7},
+ {0x6836, 0x74DA},
+ {0x6837, 0x74BA},
+ {0x6838, 0x97D9},
+ {0x6839, 0x97DE},
+ {0x683A, 0x97DC},
+ {0x683B, 0x674C},
+ {0x683C, 0x6753},
+ {0x683D, 0x675E},
+ {0x683E, 0x6748},
+ {0x683F, 0x69AA},
+ {0x6840, 0x6AEA},
+ {0x6841, 0x6787},
+ {0x6842, 0x676A},
+ {0x6843, 0x6773},
+ {0x6844, 0x6798},
+ {0x6845, 0x6898},
+ {0x6846, 0x6775},
+ {0x6847, 0x68D6},
+ {0x6848, 0x6A05},
+ {0x6849, 0x689F},
+ {0x684A, 0x678B},
+ {0x684B, 0x6777},
+ {0x684C, 0x677C},
+ {0x684D, 0x67F0},
+ {0x684E, 0x6ADB},
+ {0x684F, 0x67D8},
+ {0x6850, 0x6AF3},
+ {0x6851, 0x67E9},
+ {0x6852, 0x67B0},
+ {0x6853, 0x6AE8},
+ {0x6854, 0x67D9},
+ {0x6855, 0x67B5},
+ {0x6856, 0x67DA},
+ {0x6857, 0x67B3},
+ {0x6858, 0x67DD},
+ {0x6859, 0x6800},
+ {0x685A, 0x67C3},
+ {0x685B, 0x67B8},
+ {0x685C, 0x67E2},
+ {0x685D, 0x6ADF},
+ {0x685E, 0x67C1},
+ {0x685F, 0x6A89},
+ {0x6860, 0x6832},
+ {0x6861, 0x6833},
+ {0x6862, 0x690F},
+ {0x6863, 0x6A48},
+ {0x6864, 0x684E},
+ {0x6865, 0x6968},
+ {0x6866, 0x6844},
+ {0x6867, 0x69BF},
+ {0x6868, 0x6883},
+ {0x6869, 0x681D},
+ {0x686A, 0x6855},
+ {0x686B, 0x6A3A},
+ {0x686C, 0x6841},
+ {0x686D, 0x6A9C},
+ {0x686E, 0x6840},
+ {0x686F, 0x6B12},
+ {0x6870, 0x684A},
+ {0x6871, 0x6849},
+ {0x6872, 0x6829},
+ {0x6873, 0x68B5},
+ {0x6874, 0x688F},
+ {0x6875, 0x6874},
+ {0x6876, 0x6877},
+ {0x6877, 0x6893},
+ {0x6878, 0x686B},
+ {0x6879, 0x6B1E},
+ {0x687A, 0x696E},
+ {0x687B, 0x68FC},
+ {0x687C, 0x6ADD},
+ {0x687D, 0x69E7},
+ {0x687E, 0x68F9},
+ {0x6921, 0x6B0F},
+ {0x6922, 0x68F0},
+ {0x6923, 0x690B},
+ {0x6924, 0x6901},
+ {0x6925, 0x6957},
+ {0x6926, 0x68E3},
+ {0x6927, 0x6910},
+ {0x6928, 0x6971},
+ {0x6929, 0x6939},
+ {0x692A, 0x6960},
+ {0x692B, 0x6942},
+ {0x692C, 0x695D},
+ {0x692D, 0x6B16},
+ {0x692E, 0x696B},
+ {0x692F, 0x6980},
+ {0x6930, 0x6998},
+ {0x6931, 0x6978},
+ {0x6932, 0x6934},
+ {0x6933, 0x69CC},
+ {0x6934, 0x6AEC},
+ {0x6935, 0x6ADA},
+ {0x6936, 0x69CE},
+ {0x6937, 0x6AF8},
+ {0x6938, 0x6966},
+ {0x6939, 0x6963},
+ {0x693A, 0x6979},
+ {0x693B, 0x699B},
+ {0x693C, 0x69A7},
+ {0x693D, 0x69BB},
+ {0x693E, 0x69AB},
+ {0x693F, 0x69AD},
+ {0x6940, 0x69D4},
+ {0x6941, 0x69B1},
+ {0x6942, 0x69C1},
+ {0x6943, 0x69CA},
+ {0x6944, 0x6AB3},
+ {0x6945, 0x6995},
+ {0x6946, 0x6AE7},
+ {0x6947, 0x698D},
+ {0x6948, 0x69FF},
+ {0x6949, 0x6AA3},
+ {0x694A, 0x69ED},
+ {0x694B, 0x6A17},
+ {0x694C, 0x6A18},
+ {0x694D, 0x6A65},
+ {0x694E, 0x69F2},
+ {0x694F, 0x6A44},
+ {0x6950, 0x6A3E},
+ {0x6951, 0x6AA0},
+ {0x6952, 0x6A50},
+ {0x6953, 0x6A5B},
+ {0x6954, 0x6A35},
+ {0x6955, 0x6A8E},
+ {0x6956, 0x6AD3},
+ {0x6957, 0x6A3D},
+ {0x6958, 0x6A28},
+ {0x6959, 0x6A58},
+ {0x695A, 0x6ADE},
+ {0x695B, 0x6A91},
+ {0x695C, 0x6A90},
+ {0x695D, 0x6AA9},
+ {0x695E, 0x6A97},
+ {0x695F, 0x6AAB},
+ {0x6960, 0x7337},
+ {0x6961, 0x7352},
+ {0x6962, 0x6B81},
+ {0x6963, 0x6B82},
+ {0x6964, 0x6BA4},
+ {0x6965, 0x6B84},
+ {0x6966, 0x6B9E},
+ {0x6967, 0x6BAE},
+ {0x6968, 0x6B8D},
+ {0x6969, 0x6BAB},
+ {0x696A, 0x6B9B},
+ {0x696B, 0x6BAF},
+ {0x696C, 0x6BAA},
+ {0x696D, 0x8ED4},
+ {0x696E, 0x8EDB},
+ {0x696F, 0x8EF2},
+ {0x6970, 0x8EFB},
+ {0x6971, 0x8F64},
+ {0x6972, 0x8EF9},
+ {0x6973, 0x8EFC},
+ {0x6974, 0x8EEB},
+ {0x6975, 0x8EE4},
+ {0x6976, 0x8F62},
+ {0x6977, 0x8EFA},
+ {0x6978, 0x8EFE},
+ {0x6979, 0x8F0A},
+ {0x697A, 0x8F07},
+ {0x697B, 0x8F05},
+ {0x697C, 0x8F12},
+ {0x697D, 0x8F26},
+ {0x697E, 0x8F1E},
+ {0x6A21, 0x8F1F},
+ {0x6A22, 0x8F1C},
+ {0x6A23, 0x8F33},
+ {0x6A24, 0x8F46},
+ {0x6A25, 0x8F54},
+ {0x6A26, 0x8ECE},
+ {0x6A27, 0x6214},
+ {0x6A28, 0x6227},
+ {0x6A29, 0x621B},
+ {0x6A2A, 0x621F},
+ {0x6A2B, 0x6222},
+ {0x6A2C, 0x6221},
+ {0x6A2D, 0x6225},
+ {0x6A2E, 0x6224},
+ {0x6A2F, 0x6229},
+ {0x6A30, 0x81E7},
+ {0x6A31, 0x750C},
+ {0x6A32, 0x74F4},
+ {0x6A33, 0x74FF},
+ {0x6A34, 0x750F},
+ {0x6A35, 0x7511},
+ {0x6A36, 0x7513},
+ {0x6A37, 0x6534},
+ {0x6A38, 0x65EE},
+ {0x6A39, 0x65EF},
+ {0x6A3A, 0x65F0},
+ {0x6A3B, 0x660A},
+ {0x6A3C, 0x66C7},
+ {0x6A3D, 0x6772},
+ {0x6A3E, 0x6603},
+ {0x6A3F, 0x6615},
+ {0x6A40, 0x6600},
+ {0x6A41, 0x7085},
+ {0x6A42, 0x66F7},
+ {0x6A43, 0x661D},
+ {0x6A44, 0x6634},
+ {0x6A45, 0x6631},
+ {0x6A46, 0x6636},
+ {0x6A47, 0x6635},
+ {0x6A48, 0x8006},
+ {0x6A49, 0x665F},
+ {0x6A4A, 0x66C4},
+ {0x6A4B, 0x6641},
+ {0x6A4C, 0x664F},
+ {0x6A4D, 0x6689},
+ {0x6A4E, 0x6661},
+ {0x6A4F, 0x6657},
+ {0x6A50, 0x6677},
+ {0x6A51, 0x6684},
+ {0x6A52, 0x668C},
+ {0x6A53, 0x66D6},
+ {0x6A54, 0x669D},
+ {0x6A55, 0x66BE},
+ {0x6A56, 0x66DB},
+ {0x6A57, 0x66DC},
+ {0x6A58, 0x66E6},
+ {0x6A59, 0x66E9},
+ {0x6A5A, 0x8CC1},
+ {0x6A5B, 0x8CB0},
+ {0x6A5C, 0x8CBA},
+ {0x6A5D, 0x8CBD},
+ {0x6A5E, 0x8D04},
+ {0x6A5F, 0x8CB2},
+ {0x6A60, 0x8CC5},
+ {0x6A61, 0x8D10},
+ {0x6A62, 0x8CD1},
+ {0x6A63, 0x8CDA},
+ {0x6A64, 0x8CD5},
+ {0x6A65, 0x8CEB},
+ {0x6A66, 0x8CE7},
+ {0x6A67, 0x8CFB},
+ {0x6A68, 0x8998},
+ {0x6A69, 0x89AC},
+ {0x6A6A, 0x89A1},
+ {0x6A6B, 0x89BF},
+ {0x6A6C, 0x89A6},
+ {0x6A6D, 0x89AF},
+ {0x6A6E, 0x89B2},
+ {0x6A6F, 0x89B7},
+ {0x6A70, 0x726E},
+ {0x6A71, 0x729F},
+ {0x6A72, 0x725D},
+ {0x6A73, 0x7266},
+ {0x6A74, 0x726F},
+ {0x6A75, 0x727E},
+ {0x6A76, 0x727F},
+ {0x6A77, 0x7284},
+ {0x6A78, 0x728B},
+ {0x6A79, 0x728D},
+ {0x6A7A, 0x728F},
+ {0x6A7B, 0x7292},
+ {0x6A7C, 0x6308},
+ {0x6A7D, 0x6332},
+ {0x6A7E, 0x63B0},
+ {0x6B21, 0x643F},
+ {0x6B22, 0x64D8},
+ {0x6B23, 0x8004},
+ {0x6B24, 0x6BEA},
+ {0x6B25, 0x6BF3},
+ {0x6B26, 0x6BFD},
+ {0x6B27, 0x6BFF},
+ {0x6B28, 0x6BF9},
+ {0x6B29, 0x6C05},
+ {0x6B2A, 0x6C0C},
+ {0x6B2B, 0x6C06},
+ {0x6B2C, 0x6C0D},
+ {0x6B2D, 0x6C15},
+ {0x6B2E, 0x6C18},
+ {0x6B2F, 0x6C19},
+ {0x6B30, 0x6C1A},
+ {0x6B31, 0x6C21},
+ {0x6B32, 0x6C2C},
+ {0x6B33, 0x6C24},
+ {0x6B34, 0x6C2A},
+ {0x6B35, 0x6C32},
+ {0x6B36, 0x6535},
+ {0x6B37, 0x6555},
+ {0x6B38, 0x656B},
+ {0x6B39, 0x7258},
+ {0x6B3A, 0x7252},
+ {0x6B3B, 0x7256},
+ {0x6B3C, 0x7230},
+ {0x6B3D, 0x8662},
+ {0x6B3E, 0x5216},
+ {0x6B3F, 0x809F},
+ {0x6B40, 0x809C},
+ {0x6B41, 0x8093},
+ {0x6B42, 0x80BC},
+ {0x6B43, 0x670A},
+ {0x6B44, 0x80BD},
+ {0x6B45, 0x80B1},
+ {0x6B46, 0x80AB},
+ {0x6B47, 0x80AD},
+ {0x6B48, 0x80B4},
+ {0x6B49, 0x80B7},
+ {0x6B4A, 0x6727},
+ {0x6B4B, 0x8156},
+ {0x6B4C, 0x80E9},
+ {0x6B4D, 0x81DA},
+ {0x6B4E, 0x80DB},
+ {0x6B4F, 0x80C2},
+ {0x6B50, 0x80C4},
+ {0x6B51, 0x80D9},
+ {0x6B52, 0x80CD},
+ {0x6B53, 0x80D7},
+ {0x6B54, 0x6710},
+ {0x6B55, 0x80DD},
+ {0x6B56, 0x811B},
+ {0x6B57, 0x80F1},
+ {0x6B58, 0x80F4},
+ {0x6B59, 0x80ED},
+ {0x6B5A, 0x81BE},
+ {0x6B5B, 0x810E},
+ {0x6B5C, 0x80F2},
+ {0x6B5D, 0x80FC},
+ {0x6B5E, 0x6715},
+ {0x6B5F, 0x8112},
+ {0x6B60, 0x8C5A},
+ {0x6B61, 0x8161},
+ {0x6B62, 0x811E},
+ {0x6B63, 0x812C},
+ {0x6B64, 0x8118},
+ {0x6B65, 0x8132},
+ {0x6B66, 0x8148},
+ {0x6B67, 0x814C},
+ {0x6B68, 0x8153},
+ {0x6B69, 0x8174},
+ {0x6B6A, 0x8159},
+ {0x6B6B, 0x815A},
+ {0x6B6C, 0x8171},
+ {0x6B6D, 0x8160},
+ {0x6B6E, 0x8169},
+ {0x6B6F, 0x817C},
+ {0x6B70, 0x817D},
+ {0x6B71, 0x816D},
+ {0x6B72, 0x8167},
+ {0x6B73, 0x584D},
+ {0x6B74, 0x5AB5},
+ {0x6B75, 0x8188},
+ {0x6B76, 0x8182},
+ {0x6B77, 0x81CF},
+ {0x6B78, 0x6ED5},
+ {0x6B79, 0x81A3},
+ {0x6B7A, 0x81AA},
+ {0x6B7B, 0x81CC},
+ {0x6B7C, 0x6726},
+ {0x6B7D, 0x81CA},
+ {0x6B7E, 0x81BB},
+ {0x6C21, 0x81C1},
+ {0x6C22, 0x81A6},
+ {0x6C23, 0x6B5F},
+ {0x6C24, 0x6B37},
+ {0x6C25, 0x6B39},
+ {0x6C26, 0x6B43},
+ {0x6C27, 0x6B46},
+ {0x6C28, 0x6B59},
+ {0x6C29, 0x98AE},
+ {0x6C2A, 0x98AF},
+ {0x6C2B, 0x98B6},
+ {0x6C2C, 0x98BC},
+ {0x6C2D, 0x98C6},
+ {0x6C2E, 0x98C8},
+ {0x6C2F, 0x6BB3},
+ {0x6C30, 0x5F40},
+ {0x6C31, 0x8F42},
+ {0x6C32, 0x89F3},
+ {0x6C33, 0x6590},
+ {0x6C34, 0x9F4F},
+ {0x6C35, 0x6595},
+ {0x6C36, 0x65BC},
+ {0x6C37, 0x65C6},
+ {0x6C38, 0x65C4},
+ {0x6C39, 0x65C3},
+ {0x6C3A, 0x65CC},
+ {0x6C3B, 0x65CE},
+ {0x6C3C, 0x65D2},
+ {0x6C3D, 0x65D6},
+ {0x6C3E, 0x716C},
+ {0x6C3F, 0x7152},
+ {0x6C40, 0x7096},
+ {0x6C41, 0x7197},
+ {0x6C42, 0x70BB},
+ {0x6C43, 0x70C0},
+ {0x6C44, 0x70B7},
+ {0x6C45, 0x70AB},
+ {0x6C46, 0x70B1},
+ {0x6C47, 0x71C1},
+ {0x6C48, 0x70CA},
+ {0x6C49, 0x7110},
+ {0x6C4A, 0x7113},
+ {0x6C4B, 0x71DC},
+ {0x6C4C, 0x712F},
+ {0x6C4D, 0x7131},
+ {0x6C4E, 0x7173},
+ {0x6C4F, 0x715C},
+ {0x6C50, 0x7168},
+ {0x6C51, 0x7145},
+ {0x6C52, 0x7172},
+ {0x6C53, 0x714A},
+ {0x6C54, 0x7178},
+ {0x6C55, 0x717A},
+ {0x6C56, 0x7198},
+ {0x6C57, 0x71B3},
+ {0x6C58, 0x71B5},
+ {0x6C59, 0x71A8},
+ {0x6C5A, 0x71A0},
+ {0x6C5B, 0x71E0},
+ {0x6C5C, 0x71D4},
+ {0x6C5D, 0x71E7},
+ {0x6C5E, 0x71F9},
+ {0x6C5F, 0x721D},
+ {0x6C60, 0x7228},
+ {0x6C61, 0x706C},
+ {0x6C62, 0x71FE},
+ {0x6C63, 0x7166},
+ {0x6C64, 0x71B9},
+ {0x6C65, 0x623E},
+ {0x6C66, 0x623D},
+ {0x6C67, 0x6243},
+ {0x6C68, 0x6248},
+ {0x6C69, 0x6249},
+ {0x6C6A, 0x793B},
+ {0x6C6B, 0x7940},
+ {0x6C6C, 0x7946},
+ {0x6C6D, 0x7949},
+ {0x6C6E, 0x795B},
+ {0x6C6F, 0x795C},
+ {0x6C70, 0x7953},
+ {0x6C71, 0x795A},
+ {0x6C72, 0x79B0},
+ {0x6C73, 0x7957},
+ {0x6C74, 0x7960},
+ {0x6C75, 0x798E},
+ {0x6C76, 0x7967},
+ {0x6C77, 0x797A},
+ {0x6C78, 0x79AA},
+ {0x6C79, 0x798A},
+ {0x6C7A, 0x799A},
+ {0x6C7B, 0x79A7},
+ {0x6C7C, 0x79B3},
+ {0x6C7D, 0x5FD1},
+ {0x6C7E, 0x5FD0},
+ {0x6D21, 0x61DF},
+ {0x6D22, 0x605D},
+ {0x6D23, 0x605A},
+ {0x6D24, 0x6067},
+ {0x6D25, 0x6041},
+ {0x6D26, 0x6059},
+ {0x6D27, 0x6063},
+ {0x6D28, 0x6164},
+ {0x6D29, 0x6106},
+ {0x6D2A, 0x610D},
+ {0x6D2B, 0x615D},
+ {0x6D2C, 0x61A9},
+ {0x6D2D, 0x619D},
+ {0x6D2E, 0x61CB},
+ {0x6D2F, 0x61E3},
+ {0x6D30, 0x6207},
+ {0x6D31, 0x8080},
+ {0x6D32, 0x807F},
+ {0x6D33, 0x6C93},
+ {0x6D34, 0x6FA9},
+ {0x6D35, 0x6DFC},
+ {0x6D36, 0x78EF},
+ {0x6D37, 0x77F8},
+ {0x6D38, 0x78AD},
+ {0x6D39, 0x7809},
+ {0x6D3A, 0x7868},
+ {0x6D3B, 0x7818},
+ {0x6D3C, 0x7811},
+ {0x6D3D, 0x65AB},
+ {0x6D3E, 0x782D},
+ {0x6D3F, 0x78B8},
+ {0x6D40, 0x781D},
+ {0x6D41, 0x7839},
+ {0x6D42, 0x792A},
+ {0x6D43, 0x7931},
+ {0x6D44, 0x781F},
+ {0x6D45, 0x783C},
+ {0x6D46, 0x7825},
+ {0x6D47, 0x782C},
+ {0x6D48, 0x7823},
+ {0x6D49, 0x7829},
+ {0x6D4A, 0x784E},
+ {0x6D4B, 0x786D},
+ {0x6D4C, 0x7864},
+ {0x6D4D, 0x78FD},
+ {0x6D4E, 0x7826},
+ {0x6D4F, 0x7850},
+ {0x6D50, 0x7847},
+ {0x6D51, 0x784C},
+ {0x6D52, 0x786A},
+ {0x6D53, 0x78E7},
+ {0x6D54, 0x7893},
+ {0x6D55, 0x789A},
+ {0x6D56, 0x7887},
+ {0x6D57, 0x78E3},
+ {0x6D58, 0x78A1},
+ {0x6D59, 0x78A3},
+ {0x6D5A, 0x78B2},
+ {0x6D5B, 0x78B9},
+ {0x6D5C, 0x78A5},
+ {0x6D5D, 0x78D4},
+ {0x6D5E, 0x78D9},
+ {0x6D5F, 0x78C9},
+ {0x6D60, 0x78EC},
+ {0x6D61, 0x78F2},
+ {0x6D62, 0x7905},
+ {0x6D63, 0x78F4},
+ {0x6D64, 0x7913},
+ {0x6D65, 0x7924},
+ {0x6D66, 0x791E},
+ {0x6D67, 0x7934},
+ {0x6D68, 0x9F95},
+ {0x6D69, 0x9EF9},
+ {0x6D6A, 0x9EFB},
+ {0x6D6B, 0x9EFC},
+ {0x6D6C, 0x76F1},
+ {0x6D6D, 0x7704},
+ {0x6D6E, 0x7798},
+ {0x6D6F, 0x76F9},
+ {0x6D70, 0x7707},
+ {0x6D71, 0x7708},
+ {0x6D72, 0x771A},
+ {0x6D73, 0x7722},
+ {0x6D74, 0x7719},
+ {0x6D75, 0x772D},
+ {0x6D76, 0x7726},
+ {0x6D77, 0x7735},
+ {0x6D78, 0x7738},
+ {0x6D79, 0x775E},
+ {0x6D7A, 0x77BC},
+ {0x6D7B, 0x7747},
+ {0x6D7C, 0x7743},
+ {0x6D7D, 0x775A},
+ {0x6D7E, 0x7768},
+ {0x6E21, 0x7762},
+ {0x6E22, 0x7765},
+ {0x6E23, 0x777F},
+ {0x6E24, 0x778D},
+ {0x6E25, 0x777D},
+ {0x6E26, 0x7780},
+ {0x6E27, 0x778C},
+ {0x6E28, 0x7791},
+ {0x6E29, 0x779F},
+ {0x6E2A, 0x77A0},
+ {0x6E2B, 0x77B0},
+ {0x6E2C, 0x77B5},
+ {0x6E2D, 0x77BD},
+ {0x6E2E, 0x753A},
+ {0x6E2F, 0x7540},
+ {0x6E30, 0x754E},
+ {0x6E31, 0x754B},
+ {0x6E32, 0x7548},
+ {0x6E33, 0x755B},
+ {0x6E34, 0x7572},
+ {0x6E35, 0x7579},
+ {0x6E36, 0x7583},
+ {0x6E37, 0x7F58},
+ {0x6E38, 0x7F61},
+ {0x6E39, 0x7F5F},
+ {0x6E3A, 0x8A48},
+ {0x6E3B, 0x7F68},
+ {0x6E3C, 0x7F86},
+ {0x6E3D, 0x7F71},
+ {0x6E3E, 0x7F79},
+ {0x6E3F, 0x7F88},
+ {0x6E40, 0x7F7E},
+ {0x6E41, 0x76CD},
+ {0x6E42, 0x76E5},
+ {0x6E43, 0x8832},
+ {0x6E44, 0x91D2},
+ {0x6E45, 0x91D3},
+ {0x6E46, 0x91D4},
+ {0x6E47, 0x91D9},
+ {0x6E48, 0x91D7},
+ {0x6E49, 0x91D5},
+ {0x6E4A, 0x91F7},
+ {0x6E4B, 0x91E7},
+ {0x6E4C, 0x91E4},
+ {0x6E4D, 0x9346},
+ {0x6E4E, 0x91F5},
+ {0x6E4F, 0x91F9},
+ {0x6E50, 0x9208},
+ {0x6E51, 0x9226},
+ {0x6E52, 0x9245},
+ {0x6E53, 0x9211},
+ {0x6E54, 0x9210},
+ {0x6E55, 0x9201},
+ {0x6E56, 0x9227},
+ {0x6E57, 0x9204},
+ {0x6E58, 0x9225},
+ {0x6E59, 0x9200},
+ {0x6E5A, 0x923A},
+ {0x6E5B, 0x9266},
+ {0x6E5C, 0x9237},
+ {0x6E5D, 0x9233},
+ {0x6E5E, 0x9255},
+ {0x6E5F, 0x923D},
+ {0x6E60, 0x9238},
+ {0x6E61, 0x925E},
+ {0x6E62, 0x926C},
+ {0x6E63, 0x926D},
+ {0x6E64, 0x923F},
+ {0x6E65, 0x9460},
+ {0x6E66, 0x9230},
+ {0x6E67, 0x9249},
+ {0x6E68, 0x9248},
+ {0x6E69, 0x924D},
+ {0x6E6A, 0x922E},
+ {0x6E6B, 0x9239},
+ {0x6E6C, 0x9438},
+ {0x6E6D, 0x92AC},
+ {0x6E6E, 0x92A0},
+ {0x6E6F, 0x927A},
+ {0x6E70, 0x92AA},
+ {0x6E71, 0x92EE},
+ {0x6E72, 0x92CF},
+ {0x6E73, 0x9403},
+ {0x6E74, 0x92E3},
+ {0x6E75, 0x943A},
+ {0x6E76, 0x92B1},
+ {0x6E77, 0x92A6},
+ {0x6E78, 0x93A7},
+ {0x6E79, 0x9296},
+ {0x6E7A, 0x92CC},
+ {0x6E7B, 0x92A9},
+ {0x6E7C, 0x93F5},
+ {0x6E7D, 0x9293},
+ {0x6E7E, 0x927F},
+ {0x6F21, 0x93A9},
+ {0x6F22, 0x929A},
+ {0x6F23, 0x931A},
+ {0x6F24, 0x92AB},
+ {0x6F25, 0x9283},
+ {0x6F26, 0x940B},
+ {0x6F27, 0x92A8},
+ {0x6F28, 0x92A3},
+ {0x6F29, 0x9412},
+ {0x6F2A, 0x9338},
+ {0x6F2B, 0x92F1},
+ {0x6F2C, 0x93D7},
+ {0x6F2D, 0x92E5},
+ {0x6F2E, 0x92F0},
+ {0x6F2F, 0x92EF},
+ {0x6F30, 0x92E8},
+ {0x6F31, 0x92BC},
+ {0x6F32, 0x92DD},
+ {0x6F33, 0x92F6},
+ {0x6F34, 0x9426},
+ {0x6F35, 0x9427},
+ {0x6F36, 0x92C3},
+ {0x6F37, 0x92DF},
+ {0x6F38, 0x92E6},
+ {0x6F39, 0x9312},
+ {0x6F3A, 0x9306},
+ {0x6F3B, 0x9369},
+ {0x6F3C, 0x931B},
+ {0x6F3D, 0x9340},
+ {0x6F3E, 0x9301},
+ {0x6F3F, 0x9315},
+ {0x6F40, 0x932E},
+ {0x6F41, 0x9343},
+ {0x6F42, 0x9307},
+ {0x6F43, 0x9308},
+ {0x6F44, 0x931F},
+ {0x6F45, 0x9319},
+ {0x6F46, 0x9365},
+ {0x6F47, 0x9347},
+ {0x6F48, 0x9376},
+ {0x6F49, 0x9354},
+ {0x6F4A, 0x9364},
+ {0x6F4B, 0x93AA},
+ {0x6F4C, 0x9370},
+ {0x6F4D, 0x9384},
+ {0x6F4E, 0x93E4},
+ {0x6F4F, 0x93D8},
+ {0x6F50, 0x9428},
+ {0x6F51, 0x9387},
+ {0x6F52, 0x93CC},
+ {0x6F53, 0x9398},
+ {0x6F54, 0x93B8},
+ {0x6F55, 0x93BF},
+ {0x6F56, 0x93A6},
+ {0x6F57, 0x93B0},
+ {0x6F58, 0x93B5},
+ {0x6F59, 0x944C},
+ {0x6F5A, 0x93E2},
+ {0x6F5B, 0x93DC},
+ {0x6F5C, 0x93DD},
+ {0x6F5D, 0x93CD},
+ {0x6F5E, 0x93DE},
+ {0x6F5F, 0x93C3},
+ {0x6F60, 0x93C7},
+ {0x6F61, 0x93D1},
+ {0x6F62, 0x9414},
+ {0x6F63, 0x941D},
+ {0x6F64, 0x93F7},
+ {0x6F65, 0x9465},
+ {0x6F66, 0x9413},
+ {0x6F67, 0x946D},
+ {0x6F68, 0x9420},
+ {0x6F69, 0x9479},
+ {0x6F6A, 0x93F9},
+ {0x6F6B, 0x9419},
+ {0x6F6C, 0x944A},
+ {0x6F6D, 0x9432},
+ {0x6F6E, 0x943F},
+ {0x6F6F, 0x9454},
+ {0x6F70, 0x9463},
+ {0x6F71, 0x937E},
+ {0x6F72, 0x77E7},
+ {0x6F73, 0x77EC},
+ {0x6F74, 0x96C9},
+ {0x6F75, 0x79D5},
+ {0x6F76, 0x79ED},
+ {0x6F77, 0x79E3},
+ {0x6F78, 0x79EB},
+ {0x6F79, 0x7A06},
+ {0x6F7A, 0x5D47},
+ {0x6F7B, 0x7A03},
+ {0x6F7C, 0x7A02},
+ {0x6F7D, 0x7A1E},
+ {0x6F7E, 0x7A14},
+ {0x7021, 0x7A39},
+ {0x7022, 0x7A37},
+ {0x7023, 0x7A61},
+ {0x7024, 0x9ECF},
+ {0x7025, 0x99A5},
+ {0x7026, 0x7A70},
+ {0x7027, 0x7688},
+ {0x7028, 0x768E},
+ {0x7029, 0x7693},
+ {0x702A, 0x7699},
+ {0x702B, 0x76A4},
+ {0x702C, 0x74DE},
+ {0x702D, 0x74E0},
+ {0x702E, 0x752C},
+ {0x702F, 0x9CE9},
+ {0x7030, 0x9CF6},
+ {0x7031, 0x9D07},
+ {0x7032, 0x9D06},
+ {0x7033, 0x9D23},
+ {0x7034, 0x9D87},
+ {0x7035, 0x9E15},
+ {0x7036, 0x9D1D},
+ {0x7037, 0x9D1F},
+ {0x7038, 0x9DE5},
+ {0x7039, 0x9D2F},
+ {0x703A, 0x9DD9},
+ {0x703B, 0x9D30},
+ {0x703C, 0x9D42},
+ {0x703D, 0x9E1E},
+ {0x703E, 0x9D53},
+ {0x703F, 0x9E1D},
+ {0x7040, 0x9D60},
+ {0x7041, 0x9D52},
+ {0x7042, 0x9DF3},
+ {0x7043, 0x9D5C},
+ {0x7044, 0x9D61},
+ {0x7045, 0x9D93},
+ {0x7046, 0x9D6A},
+ {0x7047, 0x9D6F},
+ {0x7048, 0x9D89},
+ {0x7049, 0x9D98},
+ {0x704A, 0x9D9A},
+ {0x704B, 0x9DC0},
+ {0x704C, 0x9DA5},
+ {0x704D, 0x9DA9},
+ {0x704E, 0x9DC2},
+ {0x704F, 0x9DBC},
+ {0x7050, 0x9E1A},
+ {0x7051, 0x9DD3},
+ {0x7052, 0x9DDA},
+ {0x7053, 0x9DEF},
+ {0x7054, 0x9DE6},
+ {0x7055, 0x9DF2},
+ {0x7056, 0x9DF8},
+ {0x7057, 0x9E0C},
+ {0x7058, 0x9DFA},
+ {0x7059, 0x9E1B},
+ {0x705A, 0x7592},
+ {0x705B, 0x7594},
+ {0x705C, 0x7664},
+ {0x705D, 0x7658},
+ {0x705E, 0x759D},
+ {0x705F, 0x7667},
+ {0x7060, 0x75A3},
+ {0x7061, 0x75B3},
+ {0x7062, 0x75B4},
+ {0x7063, 0x75B8},
+ {0x7064, 0x75C4},
+ {0x7065, 0x75B1},
+ {0x7066, 0x75B0},
+ {0x7067, 0x75C3},
+ {0x7068, 0x75C2},
+ {0x7069, 0x7602},
+ {0x706A, 0x75CD},
+ {0x706B, 0x75E3},
+ {0x706C, 0x7646},
+ {0x706D, 0x75E6},
+ {0x706E, 0x75E4},
+ {0x706F, 0x7647},
+ {0x7070, 0x75E7},
+ {0x7071, 0x7603},
+ {0x7072, 0x75F1},
+ {0x7073, 0x75FC},
+ {0x7074, 0x75FF},
+ {0x7075, 0x7610},
+ {0x7076, 0x7600},
+ {0x7077, 0x7649},
+ {0x7078, 0x760C},
+ {0x7079, 0x761E},
+ {0x707A, 0x760A},
+ {0x707B, 0x7625},
+ {0x707C, 0x763B},
+ {0x707D, 0x7615},
+ {0x707E, 0x7619},
+ {0x7121, 0x761B},
+ {0x7122, 0x763C},
+ {0x7123, 0x7622},
+ {0x7124, 0x7620},
+ {0x7125, 0x7640},
+ {0x7126, 0x762D},
+ {0x7127, 0x7630},
+ {0x7128, 0x766D},
+ {0x7129, 0x7635},
+ {0x712A, 0x7643},
+ {0x712B, 0x766E},
+ {0x712C, 0x7633},
+ {0x712D, 0x764D},
+ {0x712E, 0x7669},
+ {0x712F, 0x7654},
+ {0x7130, 0x765C},
+ {0x7131, 0x7656},
+ {0x7132, 0x7672},
+ {0x7133, 0x766F},
+ {0x7134, 0x7FCA},
+ {0x7135, 0x7AE6},
+ {0x7136, 0x7A78},
+ {0x7137, 0x7A79},
+ {0x7138, 0x7A80},
+ {0x7139, 0x7A86},
+ {0x713A, 0x7A88},
+ {0x713B, 0x7A95},
+ {0x713C, 0x7AC7},
+ {0x713D, 0x7AA0},
+ {0x713E, 0x7AAC},
+ {0x713F, 0x7AA8},
+ {0x7140, 0x7AB6},
+ {0x7141, 0x7AB3},
+ {0x7142, 0x8864},
+ {0x7143, 0x8869},
+ {0x7144, 0x8872},
+ {0x7145, 0x887D},
+ {0x7146, 0x887F},
+ {0x7147, 0x8882},
+ {0x7148, 0x88A2},
+ {0x7149, 0x8960},
+ {0x714A, 0x88B7},
+ {0x714B, 0x88BC},
+ {0x714C, 0x88C9},
+ {0x714D, 0x8933},
+ {0x714E, 0x88CE},
+ {0x714F, 0x895D},
+ {0x7150, 0x8947},
+ {0x7151, 0x88F1},
+ {0x7152, 0x891A},
+ {0x7153, 0x88FC},
+ {0x7154, 0x88E8},
+ {0x7155, 0x88FE},
+ {0x7156, 0x88F0},
+ {0x7157, 0x8921},
+ {0x7158, 0x8919},
+ {0x7159, 0x8913},
+ {0x715A, 0x8938},
+ {0x715B, 0x890A},
+ {0x715C, 0x8964},
+ {0x715D, 0x892B},
+ {0x715E, 0x8936},
+ {0x715F, 0x8941},
+ {0x7160, 0x8966},
+ {0x7161, 0x897B},
+ {0x7162, 0x758B},
+ {0x7163, 0x80E5},
+ {0x7164, 0x76B8},
+ {0x7165, 0x76B4},
+ {0x7166, 0x77DC},
+ {0x7167, 0x8012},
+ {0x7168, 0x8014},
+ {0x7169, 0x8016},
+ {0x716A, 0x801C},
+ {0x716B, 0x8020},
+ {0x716C, 0x802E},
+ {0x716D, 0x8025},
+ {0x716E, 0x8026},
+ {0x716F, 0x802C},
+ {0x7170, 0x8029},
+ {0x7171, 0x8028},
+ {0x7172, 0x8031},
+ {0x7173, 0x800B},
+ {0x7174, 0x8035},
+ {0x7175, 0x8043},
+ {0x7176, 0x8046},
+ {0x7177, 0x8079},
+ {0x7178, 0x8052},
+ {0x7179, 0x8075},
+ {0x717A, 0x8071},
+ {0x717B, 0x8983},
+ {0x717C, 0x9807},
+ {0x717D, 0x980E},
+ {0x717E, 0x980F},
+ {0x7221, 0x9821},
+ {0x7222, 0x981C},
+ {0x7223, 0x6F41},
+ {0x7224, 0x9826},
+ {0x7225, 0x9837},
+ {0x7226, 0x984E},
+ {0x7227, 0x9853},
+ {0x7228, 0x9873},
+ {0x7229, 0x9862},
+ {0x722A, 0x9859},
+ {0x722B, 0x9865},
+ {0x722C, 0x986C},
+ {0x722D, 0x9870},
+ {0x722E, 0x864D},
+ {0x722F, 0x8654},
+ {0x7230, 0x866C},
+ {0x7231, 0x87E3},
+ {0x7232, 0x8806},
+ {0x7233, 0x867A},
+ {0x7234, 0x867C},
+ {0x7235, 0x867B},
+ {0x7236, 0x86A8},
+ {0x7237, 0x868D},
+ {0x7238, 0x868B},
+ {0x7239, 0x8706},
+ {0x723A, 0x869D},
+ {0x723B, 0x86A7},
+ {0x723C, 0x86A3},
+ {0x723D, 0x86AA},
+ {0x723E, 0x8693},
+ {0x723F, 0x86A9},
+ {0x7240, 0x86B6},
+ {0x7241, 0x86C4},
+ {0x7242, 0x86B5},
+ {0x7243, 0x8823},
+ {0x7244, 0x86B0},
+ {0x7245, 0x86BA},
+ {0x7246, 0x86B1},
+ {0x7247, 0x86AF},
+ {0x7248, 0x86C9},
+ {0x7249, 0x87F6},
+ {0x724A, 0x86B4},
+ {0x724B, 0x86E9},
+ {0x724C, 0x86FA},
+ {0x724D, 0x87EF},
+ {0x724E, 0x86ED},
+ {0x724F, 0x8784},
+ {0x7250, 0x86D0},
+ {0x7251, 0x8713},
+ {0x7252, 0x86DE},
+ {0x7253, 0x8810},
+ {0x7254, 0x86DF},
+ {0x7255, 0x86D8},
+ {0x7256, 0x86D1},
+ {0x7257, 0x8703},
+ {0x7258, 0x8707},
+ {0x7259, 0x86F8},
+ {0x725A, 0x8708},
+ {0x725B, 0x870A},
+ {0x725C, 0x870D},
+ {0x725D, 0x8709},
+ {0x725E, 0x8723},
+ {0x725F, 0x873B},
+ {0x7260, 0x871E},
+ {0x7261, 0x8725},
+ {0x7262, 0x872E},
+ {0x7263, 0x871A},
+ {0x7264, 0x873E},
+ {0x7265, 0x87C8},
+ {0x7266, 0x8734},
+ {0x7267, 0x8731},
+ {0x7268, 0x8729},
+ {0x7269, 0x8737},
+ {0x726A, 0x873F},
+ {0x726B, 0x8782},
+ {0x726C, 0x8722},
+ {0x726D, 0x877D},
+ {0x726E, 0x8811},
+ {0x726F, 0x877B},
+ {0x7270, 0x8760},
+ {0x7271, 0x8770},
+ {0x7272, 0x874C},
+ {0x7273, 0x876E},
+ {0x7274, 0x878B},
+ {0x7275, 0x8753},
+ {0x7276, 0x8763},
+ {0x7277, 0x87BB},
+ {0x7278, 0x8764},
+ {0x7279, 0x8759},
+ {0x727A, 0x8765},
+ {0x727B, 0x8793},
+ {0x727C, 0x87AF},
+ {0x727D, 0x87CE},
+ {0x727E, 0x87D2},
+ {0x7321, 0x87C6},
+ {0x7322, 0x8788},
+ {0x7323, 0x8785},
+ {0x7324, 0x87AD},
+ {0x7325, 0x8797},
+ {0x7326, 0x8783},
+ {0x7327, 0x87AB},
+ {0x7328, 0x87E5},
+ {0x7329, 0x87AC},
+ {0x732A, 0x87B5},
+ {0x732B, 0x87B3},
+ {0x732C, 0x87CB},
+ {0x732D, 0x87D3},
+ {0x732E, 0x87BD},
+ {0x732F, 0x87D1},
+ {0x7330, 0x87C0},
+ {0x7331, 0x87CA},
+ {0x7332, 0x87DB},
+ {0x7333, 0x87EA},
+ {0x7334, 0x87E0},
+ {0x7335, 0x87EE},
+ {0x7336, 0x8816},
+ {0x7337, 0x8813},
+ {0x7338, 0x87FE},
+ {0x7339, 0x880A},
+ {0x733A, 0x881B},
+ {0x733B, 0x8821},
+ {0x733C, 0x8839},
+ {0x733D, 0x883C},
+ {0x733E, 0x7F36},
+ {0x733F, 0x7F4C},
+ {0x7340, 0x7F44},
+ {0x7341, 0x7F45},
+ {0x7342, 0x8210},
+ {0x7343, 0x7AFA},
+ {0x7344, 0x7AFD},
+ {0x7345, 0x7B08},
+ {0x7346, 0x7BE4},
+ {0x7347, 0x7B04},
+ {0x7348, 0x7B67},
+ {0x7349, 0x7B0A},
+ {0x734A, 0x7B2B},
+ {0x734B, 0x7B0F},
+ {0x734C, 0x7B47},
+ {0x734D, 0x7B38},
+ {0x734E, 0x7B2A},
+ {0x734F, 0x7B19},
+ {0x7350, 0x7B2E},
+ {0x7351, 0x7B31},
+ {0x7352, 0x7B20},
+ {0x7353, 0x7B25},
+ {0x7354, 0x7B24},
+ {0x7355, 0x7B33},
+ {0x7356, 0x7C69},
+ {0x7357, 0x7B1E},
+ {0x7358, 0x7B58},
+ {0x7359, 0x7BF3},
+ {0x735A, 0x7B45},
+ {0x735B, 0x7B75},
+ {0x735C, 0x7B4C},
+ {0x735D, 0x7B8F},
+ {0x735E, 0x7B60},
+ {0x735F, 0x7B6E},
+ {0x7360, 0x7B7B},
+ {0x7361, 0x7B62},
+ {0x7362, 0x7B72},
+ {0x7363, 0x7B71},
+ {0x7364, 0x7B90},
+ {0x7365, 0x7C00},
+ {0x7366, 0x7BCB},
+ {0x7367, 0x7BB8},
+ {0x7368, 0x7BAC},
+ {0x7369, 0x7B9D},
+ {0x736A, 0x7C5C},
+ {0x736B, 0x7B85},
+ {0x736C, 0x7C1E},
+ {0x736D, 0x7B9C},
+ {0x736E, 0x7BA2},
+ {0x736F, 0x7C2B},
+ {0x7370, 0x7BB4},
+ {0x7371, 0x7C23},
+ {0x7372, 0x7BC1},
+ {0x7373, 0x7BCC},
+ {0x7374, 0x7BDD},
+ {0x7375, 0x7BDA},
+ {0x7376, 0x7BE5},
+ {0x7377, 0x7BE6},
+ {0x7378, 0x7BEA},
+ {0x7379, 0x7C0C},
+ {0x737A, 0x7BFE},
+ {0x737B, 0x7BFC},
+ {0x737C, 0x7C0F},
+ {0x737D, 0x7C6A},
+ {0x737E, 0x7C0B},
+ {0x7421, 0x7C1F},
+ {0x7422, 0x7C2A},
+ {0x7423, 0x7C26},
+ {0x7424, 0x7C38},
+ {0x7425, 0x7C5F},
+ {0x7426, 0x7C40},
+ {0x7427, 0x81FE},
+ {0x7428, 0x8201},
+ {0x7429, 0x8202},
+ {0x742A, 0x8204},
+ {0x742B, 0x81EC},
+ {0x742C, 0x8844},
+ {0x742D, 0x8221},
+ {0x742E, 0x8222},
+ {0x742F, 0x8264},
+ {0x7430, 0x822D},
+ {0x7431, 0x822F},
+ {0x7432, 0x8228},
+ {0x7433, 0x822B},
+ {0x7434, 0x8238},
+ {0x7435, 0x826B},
+ {0x7436, 0x8233},
+ {0x7437, 0x8234},
+ {0x7438, 0x823E},
+ {0x7439, 0x8244},
+ {0x743A, 0x8249},
+ {0x743B, 0x824B},
+ {0x743C, 0x824F},
+ {0x743D, 0x825A},
+ {0x743E, 0x825F},
+ {0x743F, 0x8268},
+ {0x7440, 0x887E},
+ {0x7441, 0x88CA},
+ {0x7442, 0x8888},
+ {0x7443, 0x88D8},
+ {0x7444, 0x88DF},
+ {0x7445, 0x895E},
+ {0x7446, 0x7F9D},
+ {0x7447, 0x7FA5},
+ {0x7448, 0x7FA7},
+ {0x7449, 0x7FAF},
+ {0x744A, 0x7FB0},
+ {0x744B, 0x7FB2},
+ {0x744C, 0x7C7C},
+ {0x744D, 0x6549},
+ {0x744E, 0x7C91},
+ {0x744F, 0x7CF2},
+ {0x7450, 0x7CF6},
+ {0x7451, 0x7C9E},
+ {0x7452, 0x7CA2},
+ {0x7453, 0x7CB2},
+ {0x7454, 0x7CBC},
+ {0x7455, 0x7CBD},
+ {0x7456, 0x7CDD},
+ {0x7457, 0x7CC7},
+ {0x7458, 0x7CCC},
+ {0x7459, 0x7CCD},
+ {0x745A, 0x7CC8},
+ {0x745B, 0x7CC5},
+ {0x745C, 0x7CD7},
+ {0x745D, 0x7CE8},
+ {0x745E, 0x826E},
+ {0x745F, 0x66A8},
+ {0x7460, 0x7FBF},
+ {0x7461, 0x7FCE},
+ {0x7462, 0x7FD5},
+ {0x7463, 0x7FE5},
+ {0x7464, 0x7FE1},
+ {0x7465, 0x7FE6},
+ {0x7466, 0x7FE9},
+ {0x7467, 0x7FEE},
+ {0x7468, 0x7FF3},
+ {0x7469, 0x7CF8},
+ {0x746A, 0x7E36},
+ {0x746B, 0x7DA6},
+ {0x746C, 0x7DAE},
+ {0x746D, 0x7E47},
+ {0x746E, 0x7E9B},
+ {0x746F, 0x9EA9},
+ {0x7470, 0x9EB4},
+ {0x7471, 0x8D73},
+ {0x7472, 0x8D84},
+ {0x7473, 0x8D94},
+ {0x7474, 0x8D91},
+ {0x7475, 0x8DB2},
+ {0x7476, 0x8D67},
+ {0x7477, 0x8D6D},
+ {0x7478, 0x8C47},
+ {0x7479, 0x8C49},
+ {0x747A, 0x914A},
+ {0x747B, 0x9150},
+ {0x747C, 0x914E},
+ {0x747D, 0x914F},
+ {0x747E, 0x9164},
+ {0x7521, 0x9162},
+ {0x7522, 0x9161},
+ {0x7523, 0x9170},
+ {0x7524, 0x9169},
+ {0x7525, 0x916F},
+ {0x7526, 0x91C5},
+ {0x7527, 0x91C3},
+ {0x7528, 0x9172},
+ {0x7529, 0x9174},
+ {0x752A, 0x9179},
+ {0x752B, 0x918C},
+ {0x752C, 0x9185},
+ {0x752D, 0x9190},
+ {0x752E, 0x918D},
+ {0x752F, 0x9191},
+ {0x7530, 0x91A2},
+ {0x7531, 0x91A3},
+ {0x7532, 0x91AA},
+ {0x7533, 0x91AD},
+ {0x7534, 0x91AE},
+ {0x7535, 0x91AF},
+ {0x7536, 0x91B5},
+ {0x7537, 0x91B4},
+ {0x7538, 0x91BA},
+ {0x7539, 0x8C55},
+ {0x753A, 0x9E7A},
+ {0x753B, 0x8E89},
+ {0x753C, 0x8DEB},
+ {0x753D, 0x8E05},
+ {0x753E, 0x8E59},
+ {0x753F, 0x8E69},
+ {0x7540, 0x8DB5},
+ {0x7541, 0x8DBF},
+ {0x7542, 0x8DBC},
+ {0x7543, 0x8DBA},
+ {0x7544, 0x8E4C},
+ {0x7545, 0x8DD6},
+ {0x7546, 0x8DD7},
+ {0x7547, 0x8DDA},
+ {0x7548, 0x8E92},
+ {0x7549, 0x8DCE},
+ {0x754A, 0x8DCF},
+ {0x754B, 0x8DDB},
+ {0x754C, 0x8DC6},
+ {0x754D, 0x8DEC},
+ {0x754E, 0x8E7A},
+ {0x754F, 0x8E55},
+ {0x7550, 0x8DE3},
+ {0x7551, 0x8E9A},
+ {0x7552, 0x8E8B},
+ {0x7553, 0x8DE4},
+ {0x7554, 0x8E09},
+ {0x7555, 0x8DFD},
+ {0x7556, 0x8E14},
+ {0x7557, 0x8E1D},
+ {0x7558, 0x8E1F},
+ {0x7559, 0x8E93},
+ {0x755A, 0x8E2E},
+ {0x755B, 0x8E23},
+ {0x755C, 0x8E91},
+ {0x755D, 0x8E3A},
+ {0x755E, 0x8E40},
+ {0x755F, 0x8E39},
+ {0x7560, 0x8E35},
+ {0x7561, 0x8E3D},
+ {0x7562, 0x8E31},
+ {0x7563, 0x8E49},
+ {0x7564, 0x8E41},
+ {0x7565, 0x8E42},
+ {0x7566, 0x8EA1},
+ {0x7567, 0x8E63},
+ {0x7568, 0x8E4A},
+ {0x7569, 0x8E70},
+ {0x756A, 0x8E76},
+ {0x756B, 0x8E7C},
+ {0x756C, 0x8E6F},
+ {0x756D, 0x8E74},
+ {0x756E, 0x8E85},
+ {0x756F, 0x8EAA},
+ {0x7570, 0x8E94},
+ {0x7571, 0x8E90},
+ {0x7572, 0x8EA6},
+ {0x7573, 0x8E9E},
+ {0x7574, 0x8C78},
+ {0x7575, 0x8C82},
+ {0x7576, 0x8C8A},
+ {0x7577, 0x8C85},
+ {0x7578, 0x8C98},
+ {0x7579, 0x8C94},
+ {0x757A, 0x659B},
+ {0x757B, 0x89D6},
+ {0x757C, 0x89F4},
+ {0x757D, 0x89DA},
+ {0x757E, 0x89DC},
+ {0x7621, 0x89E5},
+ {0x7622, 0x89EB},
+ {0x7623, 0x89F6},
+ {0x7624, 0x8A3E},
+ {0x7625, 0x8B26},
+ {0x7626, 0x975A},
+ {0x7627, 0x96E9},
+ {0x7628, 0x9742},
+ {0x7629, 0x96EF},
+ {0x762A, 0x9706},
+ {0x762B, 0x973D},
+ {0x762C, 0x9708},
+ {0x762D, 0x970F},
+ {0x762E, 0x970E},
+ {0x762F, 0x972A},
+ {0x7630, 0x9744},
+ {0x7631, 0x9730},
+ {0x7632, 0x973E},
+ {0x7633, 0x9F54},
+ {0x7634, 0x9F5F},
+ {0x7635, 0x9F59},
+ {0x7636, 0x9F60},
+ {0x7637, 0x9F5C},
+ {0x7638, 0x9F66},
+ {0x7639, 0x9F6C},
+ {0x763A, 0x9F6A},
+ {0x763B, 0x9F77},
+ {0x763C, 0x9EFD},
+ {0x763D, 0x9EFF},
+ {0x763E, 0x9F09},
+ {0x763F, 0x96B9},
+ {0x7640, 0x96BC},
+ {0x7641, 0x96BD},
+ {0x7642, 0x96CE},
+ {0x7643, 0x96D2},
+ {0x7644, 0x77BF},
+ {0x7645, 0x8B8E},
+ {0x7646, 0x928E},
+ {0x7647, 0x947E},
+ {0x7648, 0x92C8},
+ {0x7649, 0x93E8},
+ {0x764A, 0x936A},
+ {0x764B, 0x93CA},
+ {0x764C, 0x938F},
+ {0x764D, 0x943E},
+ {0x764E, 0x946B},
+ {0x764F, 0x9B77},
+ {0x7650, 0x9B74},
+ {0x7651, 0x9B81},
+ {0x7652, 0x9B83},
+ {0x7653, 0x9B8E},
+ {0x7654, 0x9C78},
+ {0x7655, 0x7A4C},
+ {0x7656, 0x9B92},
+ {0x7657, 0x9C5F},
+ {0x7658, 0x9B90},
+ {0x7659, 0x9BAD},
+ {0x765A, 0x9B9A},
+ {0x765B, 0x9BAA},
+ {0x765C, 0x9B9E},
+ {0x765D, 0x9C6D},
+ {0x765E, 0x9BAB},
+ {0x765F, 0x9B9D},
+ {0x7660, 0x9C58},
+ {0x7661, 0x9BC1},
+ {0x7662, 0x9C7A},
+ {0x7663, 0x9C31},
+ {0x7664, 0x9C39},
+ {0x7665, 0x9C23},
+ {0x7666, 0x9C37},
+ {0x7667, 0x9BC0},
+ {0x7668, 0x9BCA},
+ {0x7669, 0x9BC7},
+ {0x766A, 0x9BFD},
+ {0x766B, 0x9BD6},
+ {0x766C, 0x9BEA},
+ {0x766D, 0x9BEB},
+ {0x766E, 0x9BE1},
+ {0x766F, 0x9BE4},
+ {0x7670, 0x9BE7},
+ {0x7671, 0x9BDD},
+ {0x7672, 0x9BE2},
+ {0x7673, 0x9BF0},
+ {0x7674, 0x9BDB},
+ {0x7675, 0x9BF4},
+ {0x7676, 0x9BD4},
+ {0x7677, 0x9C5D},
+ {0x7678, 0x9C08},
+ {0x7679, 0x9C10},
+ {0x767A, 0x9C0D},
+ {0x767B, 0x9C12},
+ {0x767C, 0x9C09},
+ {0x767D, 0x9BFF},
+ {0x767E, 0x9C20},
+ {0x7721, 0x9C32},
+ {0x7722, 0x9C2D},
+ {0x7723, 0x9C28},
+ {0x7724, 0x9C25},
+ {0x7725, 0x9C29},
+ {0x7726, 0x9C33},
+ {0x7727, 0x9C3E},
+ {0x7728, 0x9C48},
+ {0x7729, 0x9C3B},
+ {0x772A, 0x9C35},
+ {0x772B, 0x9C45},
+ {0x772C, 0x9C56},
+ {0x772D, 0x9C54},
+ {0x772E, 0x9C52},
+ {0x772F, 0x9C67},
+ {0x7730, 0x977C},
+ {0x7731, 0x9785},
+ {0x7732, 0x97C3},
+ {0x7733, 0x97BD},
+ {0x7734, 0x9794},
+ {0x7735, 0x97C9},
+ {0x7736, 0x97AB},
+ {0x7737, 0x97A3},
+ {0x7738, 0x97B2},
+ {0x7739, 0x97B4},
+ {0x773A, 0x9AB1},
+ {0x773B, 0x9AB0},
+ {0x773C, 0x9AB7},
+ {0x773D, 0x9DBB},
+ {0x773E, 0x9AB6},
+ {0x773F, 0x9ABA},
+ {0x7740, 0x9ABC},
+ {0x7741, 0x9AC1},
+ {0x7742, 0x9AC0},
+ {0x7743, 0x9ACF},
+ {0x7744, 0x9AC2},
+ {0x7745, 0x9AD6},
+ {0x7746, 0x9AD5},
+ {0x7747, 0x9AD1},
+ {0x7748, 0x9B45},
+ {0x7749, 0x9B43},
+ {0x774A, 0x9B58},
+ {0x774B, 0x9B4E},
+ {0x774C, 0x9B48},
+ {0x774D, 0x9B4D},
+ {0x774E, 0x9B51},
+ {0x774F, 0x9957},
+ {0x7750, 0x995C},
+ {0x7751, 0x992E},
+ {0x7752, 0x9955},
+ {0x7753, 0x9954},
+ {0x7754, 0x9ADF},
+ {0x7755, 0x9AE1},
+ {0x7756, 0x9AE6},
+ {0x7757, 0x9AEF},
+ {0x7758, 0x9AEB},
+ {0x7759, 0x9AFB},
+ {0x775A, 0x9AED},
+ {0x775B, 0x9AF9},
+ {0x775C, 0x9B08},
+ {0x775D, 0x9B0F},
+ {0x775E, 0x9B22},
+ {0x775F, 0x9B1F},
+ {0x7760, 0x9B23},
+ {0x7761, 0x4E48},
+ {0x7762, 0x9EBE},
+ {0x7763, 0x7E3B},
+ {0x7764, 0x9E82},
+ {0x7765, 0x9E87},
+ {0x7766, 0x9E88},
+ {0x7767, 0x9E8B},
+ {0x7768, 0x9E92},
+ {0x7769, 0x93D6},
+ {0x776A, 0x9E9D},
+ {0x776B, 0x9E9F},
+ {0x776C, 0x9EDB},
+ {0x776D, 0x9EDC},
+ {0x776E, 0x9EDD},
+ {0x776F, 0x9EE0},
+ {0x7770, 0x9EDF},
+ {0x7771, 0x9EE2},
+ {0x7772, 0x9EF7},
+ {0x7773, 0x9EE7},
+ {0x7774, 0x9EE5},
+ {0x7775, 0x9EF2},
+ {0x7776, 0x9EEF},
+ {0x7777, 0x9F22},
+ {0x7778, 0x9F2C},
+ {0x7779, 0x9F2F},
+ {0x777A, 0x9F39},
+ {0x777B, 0x9F37},
+ {0x777C, 0x9F3D},
+ {0x777D, 0x9F3E},
+ {0x777E, 0x9F44},
+ {0x7821, 0x896C},
+ {0x7822, 0x95C6},
+ {0x7823, 0x9336},
+ {0x7824, 0x5F46},
+ {0x7825, 0x8514},
+ {0x7826, 0x7E94},
+ {0x7827, 0x5382},
+ {0x7828, 0x51B2},
+ {0x7829, 0x4E11},
+ {0x782A, 0x9F63},
+ {0x782B, 0x5679},
+ {0x782C, 0x515A},
+ {0x782D, 0x6DC0},
+ {0x782E, 0x9F15},
+ {0x782F, 0x6597},
+ {0x7830, 0x5641},
+ {0x7831, 0x9AEE},
+ {0x7832, 0x8303},
+ {0x7833, 0x4E30},
+ {0x7834, 0x8907},
+ {0x7835, 0x5E72},
+ {0x7836, 0x7A40},
+ {0x7837, 0x98B3},
+ {0x7838, 0x5E7F},
+ {0x7839, 0x95A4},
+ {0x783A, 0x9B0D},
+ {0x783B, 0x5212},
+ {0x783C, 0x8FF4},
+ {0x783D, 0x5F59},
+ {0x783E, 0x7A6B},
+ {0x783F, 0x98E2},
+ {0x7840, 0x51E0},
+ {0x7841, 0x50A2},
+ {0x7842, 0x4EF7},
+ {0x7843, 0x8350},
+ {0x7844, 0x8591},
+ {0x7845, 0x5118},
+ {0x7846, 0x636E},
+ {0x7847, 0x6372},
+ {0x7848, 0x524B},
+ {0x7849, 0x5938},
+ {0x784A, 0x774F},
+ {0x784B, 0x8721},
+ {0x784C, 0x814A},
+ {0x784D, 0x7E8D},
+ {0x784E, 0x91CC},
+ {0x784F, 0x66C6},
+ {0x7850, 0x5E18},
+ {0x7851, 0x77AD},
+ {0x7852, 0x9E75},
+ {0x7853, 0x56C9},
+ {0x7854, 0x9EF4},
+ {0x7855, 0x6FDB},
+ {0x7856, 0x61DE},
+ {0x7857, 0x77C7},
+ {0x7858, 0x7030},
+ {0x7859, 0x9EB5},
+ {0x785A, 0x884A},
+ {0x785B, 0x95E2},
+ {0x785C, 0x82F9},
+ {0x785D, 0x51ED},
+ {0x785E, 0x6251},
+ {0x785F, 0x4EC6},
+ {0x7860, 0x6734},
+ {0x7861, 0x97C6},
+ {0x7862, 0x7C64},
+ {0x7863, 0x7E34},
+ {0x7864, 0x97A6},
+ {0x7865, 0x9EAF},
+ {0x7866, 0x786E},
+ {0x7867, 0x820D},
+ {0x7868, 0x672F},
+ {0x7869, 0x677E},
+ {0x786A, 0x56CC},
+ {0x786B, 0x53F0},
+ {0x786C, 0x98B1},
+ {0x786D, 0x6AAF},
+ {0x786E, 0x7F4E},
+ {0x786F, 0x6D82},
+ {0x7870, 0x7CF0},
+ {0x7871, 0x4E07},
+ {0x7872, 0x4FC2},
+ {0x7873, 0x7E6B},
+ {0x7874, 0x9E79},
+ {0x7875, 0x56AE},
+ {0x7876, 0x9B1A},
+ {0x7877, 0x846F},
+ {0x7878, 0x53F6},
+ {0x7879, 0x90C1},
+ {0x787A, 0x79A6},
+ {0x787B, 0x7C72},
+ {0x787C, 0x613F},
+ {0x787D, 0x4E91},
+ {0x787E, 0x9AD2},
+ {0x7921, 0x75C7},
+ {0x7922, 0x96BB},
+ {0x7923, 0x53EA},
+ {0x7924, 0x7DFB},
+ {0x7925, 0x88FD},
+ {0x7926, 0x79CD},
+ {0x7927, 0x7843},
+ {0x7928, 0x7B51},
+ {0x7929, 0x51C6},
diff --git a/vte/src/unitable.GB2312 b/vte/src/unitable.GB2312
new file mode 100644
index 0000000..2a18d39
--- /dev/null
+++ b/vte/src/unitable.GB2312
@@ -0,0 +1,7446 @@
+ /* generated file -- do not edit */
+ {0x2121, 0x3000},
+ {0x2122, 0x3001},
+ {0x2123, 0x3002},
+ {0x2124, 0x30FB},
+ {0x2125, 0x02C9},
+ {0x2126, 0x02C7},
+ {0x2127, 0x00A8},
+ {0x2128, 0x3003},
+ {0x2129, 0x3005},
+ {0x212A, 0x2015},
+ {0x212B, 0xFF5E},
+ {0x212C, 0x2016},
+ {0x212D, 0x2026},
+ {0x212E, 0x2018},
+ {0x212F, 0x2019},
+ {0x2130, 0x201C},
+ {0x2131, 0x201D},
+ {0x2132, 0x3014},
+ {0x2133, 0x3015},
+ {0x2134, 0x3008},
+ {0x2135, 0x3009},
+ {0x2136, 0x300A},
+ {0x2137, 0x300B},
+ {0x2138, 0x300C},
+ {0x2139, 0x300D},
+ {0x213A, 0x300E},
+ {0x213B, 0x300F},
+ {0x213C, 0x3016},
+ {0x213D, 0x3017},
+ {0x213E, 0x3010},
+ {0x213F, 0x3011},
+ {0x2140, 0x00B1},
+ {0x2141, 0x00D7},
+ {0x2142, 0x00F7},
+ {0x2143, 0x2236},
+ {0x2144, 0x2227},
+ {0x2145, 0x2228},
+ {0x2146, 0x2211},
+ {0x2147, 0x220F},
+ {0x2148, 0x222A},
+ {0x2149, 0x2229},
+ {0x214A, 0x2208},
+ {0x214B, 0x2237},
+ {0x214C, 0x221A},
+ {0x214D, 0x22A5},
+ {0x214E, 0x2225},
+ {0x214F, 0x2220},
+ {0x2150, 0x2312},
+ {0x2151, 0x2299},
+ {0x2152, 0x222B},
+ {0x2153, 0x222E},
+ {0x2154, 0x2261},
+ {0x2155, 0x224C},
+ {0x2156, 0x2248},
+ {0x2157, 0x223D},
+ {0x2158, 0x221D},
+ {0x2159, 0x2260},
+ {0x215A, 0x226E},
+ {0x215B, 0x226F},
+ {0x215C, 0x2264},
+ {0x215D, 0x2265},
+ {0x215E, 0x221E},
+ {0x215F, 0x2235},
+ {0x2160, 0x2234},
+ {0x2161, 0x2642},
+ {0x2162, 0x2640},
+ {0x2163, 0x00B0},
+ {0x2164, 0x2032},
+ {0x2165, 0x2033},
+ {0x2166, 0x2103},
+ {0x2167, 0xFF04},
+ {0x2168, 0x00A4},
+ {0x2169, 0xFFE0},
+ {0x216A, 0xFFE1},
+ {0x216B, 0x2030},
+ {0x216C, 0x00A7},
+ {0x216D, 0x2116},
+ {0x216E, 0x2606},
+ {0x216F, 0x2605},
+ {0x2170, 0x25CB},
+ {0x2171, 0x25CF},
+ {0x2172, 0x25CE},
+ {0x2173, 0x25C7},
+ {0x2174, 0x25C6},
+ {0x2175, 0x25A1},
+ {0x2176, 0x25A0},
+ {0x2177, 0x25B3},
+ {0x2178, 0x25B2},
+ {0x2179, 0x203B},
+ {0x217A, 0x2192},
+ {0x217B, 0x2190},
+ {0x217C, 0x2191},
+ {0x217D, 0x2193},
+ {0x217E, 0x3013},
+ {0x2231, 0x2488},
+ {0x2232, 0x2489},
+ {0x2233, 0x248A},
+ {0x2234, 0x248B},
+ {0x2235, 0x248C},
+ {0x2236, 0x248D},
+ {0x2237, 0x248E},
+ {0x2238, 0x248F},
+ {0x2239, 0x2490},
+ {0x223A, 0x2491},
+ {0x223B, 0x2492},
+ {0x223C, 0x2493},
+ {0x223D, 0x2494},
+ {0x223E, 0x2495},
+ {0x223F, 0x2496},
+ {0x2240, 0x2497},
+ {0x2241, 0x2498},
+ {0x2242, 0x2499},
+ {0x2243, 0x249A},
+ {0x2244, 0x249B},
+ {0x2245, 0x2474},
+ {0x2246, 0x2475},
+ {0x2247, 0x2476},
+ {0x2248, 0x2477},
+ {0x2249, 0x2478},
+ {0x224A, 0x2479},
+ {0x224B, 0x247A},
+ {0x224C, 0x247B},
+ {0x224D, 0x247C},
+ {0x224E, 0x247D},
+ {0x224F, 0x247E},
+ {0x2250, 0x247F},
+ {0x2251, 0x2480},
+ {0x2252, 0x2481},
+ {0x2253, 0x2482},
+ {0x2254, 0x2483},
+ {0x2255, 0x2484},
+ {0x2256, 0x2485},
+ {0x2257, 0x2486},
+ {0x2258, 0x2487},
+ {0x2259, 0x2460},
+ {0x225A, 0x2461},
+ {0x225B, 0x2462},
+ {0x225C, 0x2463},
+ {0x225D, 0x2464},
+ {0x225E, 0x2465},
+ {0x225F, 0x2466},
+ {0x2260, 0x2467},
+ {0x2261, 0x2468},
+ {0x2262, 0x2469},
+ {0x2265, 0x3220},
+ {0x2266, 0x3221},
+ {0x2267, 0x3222},
+ {0x2268, 0x3223},
+ {0x2269, 0x3224},
+ {0x226A, 0x3225},
+ {0x226B, 0x3226},
+ {0x226C, 0x3227},
+ {0x226D, 0x3228},
+ {0x226E, 0x3229},
+ {0x2271, 0x2160},
+ {0x2272, 0x2161},
+ {0x2273, 0x2162},
+ {0x2274, 0x2163},
+ {0x2275, 0x2164},
+ {0x2276, 0x2165},
+ {0x2277, 0x2166},
+ {0x2278, 0x2167},
+ {0x2279, 0x2168},
+ {0x227A, 0x2169},
+ {0x227B, 0x216A},
+ {0x227C, 0x216B},
+ {0x2321, 0xFF01},
+ {0x2322, 0xFF02},
+ {0x2323, 0xFF03},
+ {0x2324, 0xFFE5},
+ {0x2325, 0xFF05},
+ {0x2326, 0xFF06},
+ {0x2327, 0xFF07},
+ {0x2328, 0xFF08},
+ {0x2329, 0xFF09},
+ {0x232A, 0xFF0A},
+ {0x232B, 0xFF0B},
+ {0x232C, 0xFF0C},
+ {0x232D, 0xFF0D},
+ {0x232E, 0xFF0E},
+ {0x232F, 0xFF0F},
+ {0x2330, 0xFF10},
+ {0x2331, 0xFF11},
+ {0x2332, 0xFF12},
+ {0x2333, 0xFF13},
+ {0x2334, 0xFF14},
+ {0x2335, 0xFF15},
+ {0x2336, 0xFF16},
+ {0x2337, 0xFF17},
+ {0x2338, 0xFF18},
+ {0x2339, 0xFF19},
+ {0x233A, 0xFF1A},
+ {0x233B, 0xFF1B},
+ {0x233C, 0xFF1C},
+ {0x233D, 0xFF1D},
+ {0x233E, 0xFF1E},
+ {0x233F, 0xFF1F},
+ {0x2340, 0xFF20},
+ {0x2341, 0xFF21},
+ {0x2342, 0xFF22},
+ {0x2343, 0xFF23},
+ {0x2344, 0xFF24},
+ {0x2345, 0xFF25},
+ {0x2346, 0xFF26},
+ {0x2347, 0xFF27},
+ {0x2348, 0xFF28},
+ {0x2349, 0xFF29},
+ {0x234A, 0xFF2A},
+ {0x234B, 0xFF2B},
+ {0x234C, 0xFF2C},
+ {0x234D, 0xFF2D},
+ {0x234E, 0xFF2E},
+ {0x234F, 0xFF2F},
+ {0x2350, 0xFF30},
+ {0x2351, 0xFF31},
+ {0x2352, 0xFF32},
+ {0x2353, 0xFF33},
+ {0x2354, 0xFF34},
+ {0x2355, 0xFF35},
+ {0x2356, 0xFF36},
+ {0x2357, 0xFF37},
+ {0x2358, 0xFF38},
+ {0x2359, 0xFF39},
+ {0x235A, 0xFF3A},
+ {0x235B, 0xFF3B},
+ {0x235C, 0xFF3C},
+ {0x235D, 0xFF3D},
+ {0x235E, 0xFF3E},
+ {0x235F, 0xFF3F},
+ {0x2360, 0xFF40},
+ {0x2361, 0xFF41},
+ {0x2362, 0xFF42},
+ {0x2363, 0xFF43},
+ {0x2364, 0xFF44},
+ {0x2365, 0xFF45},
+ {0x2366, 0xFF46},
+ {0x2367, 0xFF47},
+ {0x2368, 0xFF48},
+ {0x2369, 0xFF49},
+ {0x236A, 0xFF4A},
+ {0x236B, 0xFF4B},
+ {0x236C, 0xFF4C},
+ {0x236D, 0xFF4D},
+ {0x236E, 0xFF4E},
+ {0x236F, 0xFF4F},
+ {0x2370, 0xFF50},
+ {0x2371, 0xFF51},
+ {0x2372, 0xFF52},
+ {0x2373, 0xFF53},
+ {0x2374, 0xFF54},
+ {0x2375, 0xFF55},
+ {0x2376, 0xFF56},
+ {0x2377, 0xFF57},
+ {0x2378, 0xFF58},
+ {0x2379, 0xFF59},
+ {0x237A, 0xFF5A},
+ {0x237B, 0xFF5B},
+ {0x237C, 0xFF5C},
+ {0x237D, 0xFF5D},
+ {0x237E, 0xFFE3},
+ {0x2421, 0x3041},
+ {0x2422, 0x3042},
+ {0x2423, 0x3043},
+ {0x2424, 0x3044},
+ {0x2425, 0x3045},
+ {0x2426, 0x3046},
+ {0x2427, 0x3047},
+ {0x2428, 0x3048},
+ {0x2429, 0x3049},
+ {0x242A, 0x304A},
+ {0x242B, 0x304B},
+ {0x242C, 0x304C},
+ {0x242D, 0x304D},
+ {0x242E, 0x304E},
+ {0x242F, 0x304F},
+ {0x2430, 0x3050},
+ {0x2431, 0x3051},
+ {0x2432, 0x3052},
+ {0x2433, 0x3053},
+ {0x2434, 0x3054},
+ {0x2435, 0x3055},
+ {0x2436, 0x3056},
+ {0x2437, 0x3057},
+ {0x2438, 0x3058},
+ {0x2439, 0x3059},
+ {0x243A, 0x305A},
+ {0x243B, 0x305B},
+ {0x243C, 0x305C},
+ {0x243D, 0x305D},
+ {0x243E, 0x305E},
+ {0x243F, 0x305F},
+ {0x2440, 0x3060},
+ {0x2441, 0x3061},
+ {0x2442, 0x3062},
+ {0x2443, 0x3063},
+ {0x2444, 0x3064},
+ {0x2445, 0x3065},
+ {0x2446, 0x3066},
+ {0x2447, 0x3067},
+ {0x2448, 0x3068},
+ {0x2449, 0x3069},
+ {0x244A, 0x306A},
+ {0x244B, 0x306B},
+ {0x244C, 0x306C},
+ {0x244D, 0x306D},
+ {0x244E, 0x306E},
+ {0x244F, 0x306F},
+ {0x2450, 0x3070},
+ {0x2451, 0x3071},
+ {0x2452, 0x3072},
+ {0x2453, 0x3073},
+ {0x2454, 0x3074},
+ {0x2455, 0x3075},
+ {0x2456, 0x3076},
+ {0x2457, 0x3077},
+ {0x2458, 0x3078},
+ {0x2459, 0x3079},
+ {0x245A, 0x307A},
+ {0x245B, 0x307B},
+ {0x245C, 0x307C},
+ {0x245D, 0x307D},
+ {0x245E, 0x307E},
+ {0x245F, 0x307F},
+ {0x2460, 0x3080},
+ {0x2461, 0x3081},
+ {0x2462, 0x3082},
+ {0x2463, 0x3083},
+ {0x2464, 0x3084},
+ {0x2465, 0x3085},
+ {0x2466, 0x3086},
+ {0x2467, 0x3087},
+ {0x2468, 0x3088},
+ {0x2469, 0x3089},
+ {0x246A, 0x308A},
+ {0x246B, 0x308B},
+ {0x246C, 0x308C},
+ {0x246D, 0x308D},
+ {0x246E, 0x308E},
+ {0x246F, 0x308F},
+ {0x2470, 0x3090},
+ {0x2471, 0x3091},
+ {0x2472, 0x3092},
+ {0x2473, 0x3093},
+ {0x2521, 0x30A1},
+ {0x2522, 0x30A2},
+ {0x2523, 0x30A3},
+ {0x2524, 0x30A4},
+ {0x2525, 0x30A5},
+ {0x2526, 0x30A6},
+ {0x2527, 0x30A7},
+ {0x2528, 0x30A8},
+ {0x2529, 0x30A9},
+ {0x252A, 0x30AA},
+ {0x252B, 0x30AB},
+ {0x252C, 0x30AC},
+ {0x252D, 0x30AD},
+ {0x252E, 0x30AE},
+ {0x252F, 0x30AF},
+ {0x2530, 0x30B0},
+ {0x2531, 0x30B1},
+ {0x2532, 0x30B2},
+ {0x2533, 0x30B3},
+ {0x2534, 0x30B4},
+ {0x2535, 0x30B5},
+ {0x2536, 0x30B6},
+ {0x2537, 0x30B7},
+ {0x2538, 0x30B8},
+ {0x2539, 0x30B9},
+ {0x253A, 0x30BA},
+ {0x253B, 0x30BB},
+ {0x253C, 0x30BC},
+ {0x253D, 0x30BD},
+ {0x253E, 0x30BE},
+ {0x253F, 0x30BF},
+ {0x2540, 0x30C0},
+ {0x2541, 0x30C1},
+ {0x2542, 0x30C2},
+ {0x2543, 0x30C3},
+ {0x2544, 0x30C4},
+ {0x2545, 0x30C5},
+ {0x2546, 0x30C6},
+ {0x2547, 0x30C7},
+ {0x2548, 0x30C8},
+ {0x2549, 0x30C9},
+ {0x254A, 0x30CA},
+ {0x254B, 0x30CB},
+ {0x254C, 0x30CC},
+ {0x254D, 0x30CD},
+ {0x254E, 0x30CE},
+ {0x254F, 0x30CF},
+ {0x2550, 0x30D0},
+ {0x2551, 0x30D1},
+ {0x2552, 0x30D2},
+ {0x2553, 0x30D3},
+ {0x2554, 0x30D4},
+ {0x2555, 0x30D5},
+ {0x2556, 0x30D6},
+ {0x2557, 0x30D7},
+ {0x2558, 0x30D8},
+ {0x2559, 0x30D9},
+ {0x255A, 0x30DA},
+ {0x255B, 0x30DB},
+ {0x255C, 0x30DC},
+ {0x255D, 0x30DD},
+ {0x255E, 0x30DE},
+ {0x255F, 0x30DF},
+ {0x2560, 0x30E0},
+ {0x2561, 0x30E1},
+ {0x2562, 0x30E2},
+ {0x2563, 0x30E3},
+ {0x2564, 0x30E4},
+ {0x2565, 0x30E5},
+ {0x2566, 0x30E6},
+ {0x2567, 0x30E7},
+ {0x2568, 0x30E8},
+ {0x2569, 0x30E9},
+ {0x256A, 0x30EA},
+ {0x256B, 0x30EB},
+ {0x256C, 0x30EC},
+ {0x256D, 0x30ED},
+ {0x256E, 0x30EE},
+ {0x256F, 0x30EF},
+ {0x2570, 0x30F0},
+ {0x2571, 0x30F1},
+ {0x2572, 0x30F2},
+ {0x2573, 0x30F3},
+ {0x2574, 0x30F4},
+ {0x2575, 0x30F5},
+ {0x2576, 0x30F6},
+ {0x2621, 0x0391},
+ {0x2622, 0x0392},
+ {0x2623, 0x0393},
+ {0x2624, 0x0394},
+ {0x2625, 0x0395},
+ {0x2626, 0x0396},
+ {0x2627, 0x0397},
+ {0x2628, 0x0398},
+ {0x2629, 0x0399},
+ {0x262A, 0x039A},
+ {0x262B, 0x039B},
+ {0x262C, 0x039C},
+ {0x262D, 0x039D},
+ {0x262E, 0x039E},
+ {0x262F, 0x039F},
+ {0x2630, 0x03A0},
+ {0x2631, 0x03A1},
+ {0x2632, 0x03A3},
+ {0x2633, 0x03A4},
+ {0x2634, 0x03A5},
+ {0x2635, 0x03A6},
+ {0x2636, 0x03A7},
+ {0x2637, 0x03A8},
+ {0x2638, 0x03A9},
+ {0x2641, 0x03B1},
+ {0x2642, 0x03B2},
+ {0x2643, 0x03B3},
+ {0x2644, 0x03B4},
+ {0x2645, 0x03B5},
+ {0x2646, 0x03B6},
+ {0x2647, 0x03B7},
+ {0x2648, 0x03B8},
+ {0x2649, 0x03B9},
+ {0x264A, 0x03BA},
+ {0x264B, 0x03BB},
+ {0x264C, 0x03BC},
+ {0x264D, 0x03BD},
+ {0x264E, 0x03BE},
+ {0x264F, 0x03BF},
+ {0x2650, 0x03C0},
+ {0x2651, 0x03C1},
+ {0x2652, 0x03C3},
+ {0x2653, 0x03C4},
+ {0x2654, 0x03C5},
+ {0x2655, 0x03C6},
+ {0x2656, 0x03C7},
+ {0x2657, 0x03C8},
+ {0x2658, 0x03C9},
+ {0x2721, 0x0410},
+ {0x2722, 0x0411},
+ {0x2723, 0x0412},
+ {0x2724, 0x0413},
+ {0x2725, 0x0414},
+ {0x2726, 0x0415},
+ {0x2727, 0x0401},
+ {0x2728, 0x0416},
+ {0x2729, 0x0417},
+ {0x272A, 0x0418},
+ {0x272B, 0x0419},
+ {0x272C, 0x041A},
+ {0x272D, 0x041B},
+ {0x272E, 0x041C},
+ {0x272F, 0x041D},
+ {0x2730, 0x041E},
+ {0x2731, 0x041F},
+ {0x2732, 0x0420},
+ {0x2733, 0x0421},
+ {0x2734, 0x0422},
+ {0x2735, 0x0423},
+ {0x2736, 0x0424},
+ {0x2737, 0x0425},
+ {0x2738, 0x0426},
+ {0x2739, 0x0427},
+ {0x273A, 0x0428},
+ {0x273B, 0x0429},
+ {0x273C, 0x042A},
+ {0x273D, 0x042B},
+ {0x273E, 0x042C},
+ {0x273F, 0x042D},
+ {0x2740, 0x042E},
+ {0x2741, 0x042F},
+ {0x2751, 0x0430},
+ {0x2752, 0x0431},
+ {0x2753, 0x0432},
+ {0x2754, 0x0433},
+ {0x2755, 0x0434},
+ {0x2756, 0x0435},
+ {0x2757, 0x0451},
+ {0x2758, 0x0436},
+ {0x2759, 0x0437},
+ {0x275A, 0x0438},
+ {0x275B, 0x0439},
+ {0x275C, 0x043A},
+ {0x275D, 0x043B},
+ {0x275E, 0x043C},
+ {0x275F, 0x043D},
+ {0x2760, 0x043E},
+ {0x2761, 0x043F},
+ {0x2762, 0x0440},
+ {0x2763, 0x0441},
+ {0x2764, 0x0442},
+ {0x2765, 0x0443},
+ {0x2766, 0x0444},
+ {0x2767, 0x0445},
+ {0x2768, 0x0446},
+ {0x2769, 0x0447},
+ {0x276A, 0x0448},
+ {0x276B, 0x0449},
+ {0x276C, 0x044A},
+ {0x276D, 0x044B},
+ {0x276E, 0x044C},
+ {0x276F, 0x044D},
+ {0x2770, 0x044E},
+ {0x2771, 0x044F},
+ {0x2821, 0x0101},
+ {0x2822, 0x00E1},
+ {0x2823, 0x01CE},
+ {0x2824, 0x00E0},
+ {0x2825, 0x0113},
+ {0x2826, 0x00E9},
+ {0x2827, 0x011B},
+ {0x2828, 0x00E8},
+ {0x2829, 0x012B},
+ {0x282A, 0x00ED},
+ {0x282B, 0x01D0},
+ {0x282C, 0x00EC},
+ {0x282D, 0x014D},
+ {0x282E, 0x00F3},
+ {0x282F, 0x01D2},
+ {0x2830, 0x00F2},
+ {0x2831, 0x016B},
+ {0x2832, 0x00FA},
+ {0x2833, 0x01D4},
+ {0x2834, 0x00F9},
+ {0x2835, 0x01D6},
+ {0x2836, 0x01D8},
+ {0x2837, 0x01DA},
+ {0x2838, 0x01DC},
+ {0x2839, 0x00FC},
+ {0x283A, 0x00EA},
+ {0x2845, 0x3105},
+ {0x2846, 0x3106},
+ {0x2847, 0x3107},
+ {0x2848, 0x3108},
+ {0x2849, 0x3109},
+ {0x284A, 0x310A},
+ {0x284B, 0x310B},
+ {0x284C, 0x310C},
+ {0x284D, 0x310D},
+ {0x284E, 0x310E},
+ {0x284F, 0x310F},
+ {0x2850, 0x3110},
+ {0x2851, 0x3111},
+ {0x2852, 0x3112},
+ {0x2853, 0x3113},
+ {0x2854, 0x3114},
+ {0x2855, 0x3115},
+ {0x2856, 0x3116},
+ {0x2857, 0x3117},
+ {0x2858, 0x3118},
+ {0x2859, 0x3119},
+ {0x285A, 0x311A},
+ {0x285B, 0x311B},
+ {0x285C, 0x311C},
+ {0x285D, 0x311D},
+ {0x285E, 0x311E},
+ {0x285F, 0x311F},
+ {0x2860, 0x3120},
+ {0x2861, 0x3121},
+ {0x2862, 0x3122},
+ {0x2863, 0x3123},
+ {0x2864, 0x3124},
+ {0x2865, 0x3125},
+ {0x2866, 0x3126},
+ {0x2867, 0x3127},
+ {0x2868, 0x3128},
+ {0x2869, 0x3129},
+ {0x2924, 0x2500},
+ {0x2925, 0x2501},
+ {0x2926, 0x2502},
+ {0x2927, 0x2503},
+ {0x2928, 0x2504},
+ {0x2929, 0x2505},
+ {0x292A, 0x2506},
+ {0x292B, 0x2507},
+ {0x292C, 0x2508},
+ {0x292D, 0x2509},
+ {0x292E, 0x250A},
+ {0x292F, 0x250B},
+ {0x2930, 0x250C},
+ {0x2931, 0x250D},
+ {0x2932, 0x250E},
+ {0x2933, 0x250F},
+ {0x2934, 0x2510},
+ {0x2935, 0x2511},
+ {0x2936, 0x2512},
+ {0x2937, 0x2513},
+ {0x2938, 0x2514},
+ {0x2939, 0x2515},
+ {0x293A, 0x2516},
+ {0x293B, 0x2517},
+ {0x293C, 0x2518},
+ {0x293D, 0x2519},
+ {0x293E, 0x251A},
+ {0x293F, 0x251B},
+ {0x2940, 0x251C},
+ {0x2941, 0x251D},
+ {0x2942, 0x251E},
+ {0x2943, 0x251F},
+ {0x2944, 0x2520},
+ {0x2945, 0x2521},
+ {0x2946, 0x2522},
+ {0x2947, 0x2523},
+ {0x2948, 0x2524},
+ {0x2949, 0x2525},
+ {0x294A, 0x2526},
+ {0x294B, 0x2527},
+ {0x294C, 0x2528},
+ {0x294D, 0x2529},
+ {0x294E, 0x252A},
+ {0x294F, 0x252B},
+ {0x2950, 0x252C},
+ {0x2951, 0x252D},
+ {0x2952, 0x252E},
+ {0x2953, 0x252F},
+ {0x2954, 0x2530},
+ {0x2955, 0x2531},
+ {0x2956, 0x2532},
+ {0x2957, 0x2533},
+ {0x2958, 0x2534},
+ {0x2959, 0x2535},
+ {0x295A, 0x2536},
+ {0x295B, 0x2537},
+ {0x295C, 0x2538},
+ {0x295D, 0x2539},
+ {0x295E, 0x253A},
+ {0x295F, 0x253B},
+ {0x2960, 0x253C},
+ {0x2961, 0x253D},
+ {0x2962, 0x253E},
+ {0x2963, 0x253F},
+ {0x2964, 0x2540},
+ {0x2965, 0x2541},
+ {0x2966, 0x2542},
+ {0x2967, 0x2543},
+ {0x2968, 0x2544},
+ {0x2969, 0x2545},
+ {0x296A, 0x2546},
+ {0x296B, 0x2547},
+ {0x296C, 0x2548},
+ {0x296D, 0x2549},
+ {0x296E, 0x254A},
+ {0x296F, 0x254B},
+ {0x3021, 0x554A},
+ {0x3022, 0x963F},
+ {0x3023, 0x57C3},
+ {0x3024, 0x6328},
+ {0x3025, 0x54CE},
+ {0x3026, 0x5509},
+ {0x3027, 0x54C0},
+ {0x3028, 0x7691},
+ {0x3029, 0x764C},
+ {0x302A, 0x853C},
+ {0x302B, 0x77EE},
+ {0x302C, 0x827E},
+ {0x302D, 0x788D},
+ {0x302E, 0x7231},
+ {0x302F, 0x9698},
+ {0x3030, 0x978D},
+ {0x3031, 0x6C28},
+ {0x3032, 0x5B89},
+ {0x3033, 0x4FFA},
+ {0x3034, 0x6309},
+ {0x3035, 0x6697},
+ {0x3036, 0x5CB8},
+ {0x3037, 0x80FA},
+ {0x3038, 0x6848},
+ {0x3039, 0x80AE},
+ {0x303A, 0x6602},
+ {0x303B, 0x76CE},
+ {0x303C, 0x51F9},
+ {0x303D, 0x6556},
+ {0x303E, 0x71AC},
+ {0x303F, 0x7FF1},
+ {0x3040, 0x8884},
+ {0x3041, 0x50B2},
+ {0x3042, 0x5965},
+ {0x3043, 0x61CA},
+ {0x3044, 0x6FB3},
+ {0x3045, 0x82AD},
+ {0x3046, 0x634C},
+ {0x3047, 0x6252},
+ {0x3048, 0x53ED},
+ {0x3049, 0x5427},
+ {0x304A, 0x7B06},
+ {0x304B, 0x516B},
+ {0x304C, 0x75A4},
+ {0x304D, 0x5DF4},
+ {0x304E, 0x62D4},
+ {0x304F, 0x8DCB},
+ {0x3050, 0x9776},
+ {0x3051, 0x628A},
+ {0x3052, 0x8019},
+ {0x3053, 0x575D},
+ {0x3054, 0x9738},
+ {0x3055, 0x7F62},
+ {0x3056, 0x7238},
+ {0x3057, 0x767D},
+ {0x3058, 0x67CF},
+ {0x3059, 0x767E},
+ {0x305A, 0x6446},
+ {0x305B, 0x4F70},
+ {0x305C, 0x8D25},
+ {0x305D, 0x62DC},
+ {0x305E, 0x7A17},
+ {0x305F, 0x6591},
+ {0x3060, 0x73ED},
+ {0x3061, 0x642C},
+ {0x3062, 0x6273},
+ {0x3063, 0x822C},
+ {0x3064, 0x9881},
+ {0x3065, 0x677F},
+ {0x3066, 0x7248},
+ {0x3067, 0x626E},
+ {0x3068, 0x62CC},
+ {0x3069, 0x4F34},
+ {0x306A, 0x74E3},
+ {0x306B, 0x534A},
+ {0x306C, 0x529E},
+ {0x306D, 0x7ECA},
+ {0x306E, 0x90A6},
+ {0x306F, 0x5E2E},
+ {0x3070, 0x6886},
+ {0x3071, 0x699C},
+ {0x3072, 0x8180},
+ {0x3073, 0x7ED1},
+ {0x3074, 0x68D2},
+ {0x3075, 0x78C5},
+ {0x3076, 0x868C},
+ {0x3077, 0x9551},
+ {0x3078, 0x508D},
+ {0x3079, 0x8C24},
+ {0x307A, 0x82DE},
+ {0x307B, 0x80DE},
+ {0x307C, 0x5305},
+ {0x307D, 0x8912},
+ {0x307E, 0x5265},
+ {0x3121, 0x8584},
+ {0x3122, 0x96F9},
+ {0x3123, 0x4FDD},
+ {0x3124, 0x5821},
+ {0x3125, 0x9971},
+ {0x3126, 0x5B9D},
+ {0x3127, 0x62B1},
+ {0x3128, 0x62A5},
+ {0x3129, 0x66B4},
+ {0x312A, 0x8C79},
+ {0x312B, 0x9C8D},
+ {0x312C, 0x7206},
+ {0x312D, 0x676F},
+ {0x312E, 0x7891},
+ {0x312F, 0x60B2},
+ {0x3130, 0x5351},
+ {0x3131, 0x5317},
+ {0x3132, 0x8F88},
+ {0x3133, 0x80CC},
+ {0x3134, 0x8D1D},
+ {0x3135, 0x94A1},
+ {0x3136, 0x500D},
+ {0x3137, 0x72C8},
+ {0x3138, 0x5907},
+ {0x3139, 0x60EB},
+ {0x313A, 0x7119},
+ {0x313B, 0x88AB},
+ {0x313C, 0x5954},
+ {0x313D, 0x82EF},
+ {0x313E, 0x672C},
+ {0x313F, 0x7B28},
+ {0x3140, 0x5D29},
+ {0x3141, 0x7EF7},
+ {0x3142, 0x752D},
+ {0x3143, 0x6CF5},
+ {0x3144, 0x8E66},
+ {0x3145, 0x8FF8},
+ {0x3146, 0x903C},
+ {0x3147, 0x9F3B},
+ {0x3148, 0x6BD4},
+ {0x3149, 0x9119},
+ {0x314A, 0x7B14},
+ {0x314B, 0x5F7C},
+ {0x314C, 0x78A7},
+ {0x314D, 0x84D6},
+ {0x314E, 0x853D},
+ {0x314F, 0x6BD5},
+ {0x3150, 0x6BD9},
+ {0x3151, 0x6BD6},
+ {0x3152, 0x5E01},
+ {0x3153, 0x5E87},
+ {0x3154, 0x75F9},
+ {0x3155, 0x95ED},
+ {0x3156, 0x655D},
+ {0x3157, 0x5F0A},
+ {0x3158, 0x5FC5},
+ {0x3159, 0x8F9F},
+ {0x315A, 0x58C1},
+ {0x315B, 0x81C2},
+ {0x315C, 0x907F},
+ {0x315D, 0x965B},
+ {0x315E, 0x97AD},
+ {0x315F, 0x8FB9},
+ {0x3160, 0x7F16},
+ {0x3161, 0x8D2C},
+ {0x3162, 0x6241},
+ {0x3163, 0x4FBF},
+ {0x3164, 0x53D8},
+ {0x3165, 0x535E},
+ {0x3166, 0x8FA8},
+ {0x3167, 0x8FA9},
+ {0x3168, 0x8FAB},
+ {0x3169, 0x904D},
+ {0x316A, 0x6807},
+ {0x316B, 0x5F6A},
+ {0x316C, 0x8198},
+ {0x316D, 0x8868},
+ {0x316E, 0x9CD6},
+ {0x316F, 0x618B},
+ {0x3170, 0x522B},
+ {0x3171, 0x762A},
+ {0x3172, 0x5F6C},
+ {0x3173, 0x658C},
+ {0x3174, 0x6FD2},
+ {0x3175, 0x6EE8},
+ {0x3176, 0x5BBE},
+ {0x3177, 0x6448},
+ {0x3178, 0x5175},
+ {0x3179, 0x51B0},
+ {0x317A, 0x67C4},
+ {0x317B, 0x4E19},
+ {0x317C, 0x79C9},
+ {0x317D, 0x997C},
+ {0x317E, 0x70B3},
+ {0x3221, 0x75C5},
+ {0x3222, 0x5E76},
+ {0x3223, 0x73BB},
+ {0x3224, 0x83E0},
+ {0x3225, 0x64AD},
+ {0x3226, 0x62E8},
+ {0x3227, 0x94B5},
+ {0x3228, 0x6CE2},
+ {0x3229, 0x535A},
+ {0x322A, 0x52C3},
+ {0x322B, 0x640F},
+ {0x322C, 0x94C2},
+ {0x322D, 0x7B94},
+ {0x322E, 0x4F2F},
+ {0x322F, 0x5E1B},
+ {0x3230, 0x8236},
+ {0x3231, 0x8116},
+ {0x3232, 0x818A},
+ {0x3233, 0x6E24},
+ {0x3234, 0x6CCA},
+ {0x3235, 0x9A73},
+ {0x3236, 0x6355},
+ {0x3237, 0x535C},
+ {0x3238, 0x54FA},
+ {0x3239, 0x8865},
+ {0x323A, 0x57E0},
+ {0x323B, 0x4E0D},
+ {0x323C, 0x5E03},
+ {0x323D, 0x6B65},
+ {0x323E, 0x7C3F},
+ {0x323F, 0x90E8},
+ {0x3240, 0x6016},
+ {0x3241, 0x64E6},
+ {0x3242, 0x731C},
+ {0x3243, 0x88C1},
+ {0x3244, 0x6750},
+ {0x3245, 0x624D},
+ {0x3246, 0x8D22},
+ {0x3247, 0x776C},
+ {0x3248, 0x8E29},
+ {0x3249, 0x91C7},
+ {0x324A, 0x5F69},
+ {0x324B, 0x83DC},
+ {0x324C, 0x8521},
+ {0x324D, 0x9910},
+ {0x324E, 0x53C2},
+ {0x324F, 0x8695},
+ {0x3250, 0x6B8B},
+ {0x3251, 0x60ED},
+ {0x3252, 0x60E8},
+ {0x3253, 0x707F},
+ {0x3254, 0x82CD},
+ {0x3255, 0x8231},
+ {0x3256, 0x4ED3},
+ {0x3257, 0x6CA7},
+ {0x3258, 0x85CF},
+ {0x3259, 0x64CD},
+ {0x325A, 0x7CD9},
+ {0x325B, 0x69FD},
+ {0x325C, 0x66F9},
+ {0x325D, 0x8349},
+ {0x325E, 0x5395},
+ {0x325F, 0x7B56},
+ {0x3260, 0x4FA7},
+ {0x3261, 0x518C},
+ {0x3262, 0x6D4B},
+ {0x3263, 0x5C42},
+ {0x3264, 0x8E6D},
+ {0x3265, 0x63D2},
+ {0x3266, 0x53C9},
+ {0x3267, 0x832C},
+ {0x3268, 0x8336},
+ {0x3269, 0x67E5},
+ {0x326A, 0x78B4},
+ {0x326B, 0x643D},
+ {0x326C, 0x5BDF},
+ {0x326D, 0x5C94},
+ {0x326E, 0x5DEE},
+ {0x326F, 0x8BE7},
+ {0x3270, 0x62C6},
+ {0x3271, 0x67F4},
+ {0x3272, 0x8C7A},
+ {0x3273, 0x6400},
+ {0x3274, 0x63BA},
+ {0x3275, 0x8749},
+ {0x3276, 0x998B},
+ {0x3277, 0x8C17},
+ {0x3278, 0x7F20},
+ {0x3279, 0x94F2},
+ {0x327A, 0x4EA7},
+ {0x327B, 0x9610},
+ {0x327C, 0x98A4},
+ {0x327D, 0x660C},
+ {0x327E, 0x7316},
+ {0x3321, 0x573A},
+ {0x3322, 0x5C1D},
+ {0x3323, 0x5E38},
+ {0x3324, 0x957F},
+ {0x3325, 0x507F},
+ {0x3326, 0x80A0},
+ {0x3327, 0x5382},
+ {0x3328, 0x655E},
+ {0x3329, 0x7545},
+ {0x332A, 0x5531},
+ {0x332B, 0x5021},
+ {0x332C, 0x8D85},
+ {0x332D, 0x6284},
+ {0x332E, 0x949E},
+ {0x332F, 0x671D},
+ {0x3330, 0x5632},
+ {0x3331, 0x6F6E},
+ {0x3332, 0x5DE2},
+ {0x3333, 0x5435},
+ {0x3334, 0x7092},
+ {0x3335, 0x8F66},
+ {0x3336, 0x626F},
+ {0x3337, 0x64A4},
+ {0x3338, 0x63A3},
+ {0x3339, 0x5F7B},
+ {0x333A, 0x6F88},
+ {0x333B, 0x90F4},
+ {0x333C, 0x81E3},
+ {0x333D, 0x8FB0},
+ {0x333E, 0x5C18},
+ {0x333F, 0x6668},
+ {0x3340, 0x5FF1},
+ {0x3341, 0x6C89},
+ {0x3342, 0x9648},
+ {0x3343, 0x8D81},
+ {0x3344, 0x886C},
+ {0x3345, 0x6491},
+ {0x3346, 0x79F0},
+ {0x3347, 0x57CE},
+ {0x3348, 0x6A59},
+ {0x3349, 0x6210},
+ {0x334A, 0x5448},
+ {0x334B, 0x4E58},
+ {0x334C, 0x7A0B},
+ {0x334D, 0x60E9},
+ {0x334E, 0x6F84},
+ {0x334F, 0x8BDA},
+ {0x3350, 0x627F},
+ {0x3351, 0x901E},
+ {0x3352, 0x9A8B},
+ {0x3353, 0x79E4},
+ {0x3354, 0x5403},
+ {0x3355, 0x75F4},
+ {0x3356, 0x6301},
+ {0x3357, 0x5319},
+ {0x3358, 0x6C60},
+ {0x3359, 0x8FDF},
+ {0x335A, 0x5F1B},
+ {0x335B, 0x9A70},
+ {0x335C, 0x803B},
+ {0x335D, 0x9F7F},
+ {0x335E, 0x4F88},
+ {0x335F, 0x5C3A},
+ {0x3360, 0x8D64},
+ {0x3361, 0x7FC5},
+ {0x3362, 0x65A5},
+ {0x3363, 0x70BD},
+ {0x3364, 0x5145},
+ {0x3365, 0x51B2},
+ {0x3366, 0x866B},
+ {0x3367, 0x5D07},
+ {0x3368, 0x5BA0},
+ {0x3369, 0x62BD},
+ {0x336A, 0x916C},
+ {0x336B, 0x7574},
+ {0x336C, 0x8E0C},
+ {0x336D, 0x7A20},
+ {0x336E, 0x6101},
+ {0x336F, 0x7B79},
+ {0x3370, 0x4EC7},
+ {0x3371, 0x7EF8},
+ {0x3372, 0x7785},
+ {0x3373, 0x4E11},
+ {0x3374, 0x81ED},
+ {0x3375, 0x521D},
+ {0x3376, 0x51FA},
+ {0x3377, 0x6A71},
+ {0x3378, 0x53A8},
+ {0x3379, 0x8E87},
+ {0x337A, 0x9504},
+ {0x337B, 0x96CF},
+ {0x337C, 0x6EC1},
+ {0x337D, 0x9664},
+ {0x337E, 0x695A},
+ {0x3421, 0x7840},
+ {0x3422, 0x50A8},
+ {0x3423, 0x77D7},
+ {0x3424, 0x6410},
+ {0x3425, 0x89E6},
+ {0x3426, 0x5904},
+ {0x3427, 0x63E3},
+ {0x3428, 0x5DDD},
+ {0x3429, 0x7A7F},
+ {0x342A, 0x693D},
+ {0x342B, 0x4F20},
+ {0x342C, 0x8239},
+ {0x342D, 0x5598},
+ {0x342E, 0x4E32},
+ {0x342F, 0x75AE},
+ {0x3430, 0x7A97},
+ {0x3431, 0x5E62},
+ {0x3432, 0x5E8A},
+ {0x3433, 0x95EF},
+ {0x3434, 0x521B},
+ {0x3435, 0x5439},
+ {0x3436, 0x708A},
+ {0x3437, 0x6376},
+ {0x3438, 0x9524},
+ {0x3439, 0x5782},
+ {0x343A, 0x6625},
+ {0x343B, 0x693F},
+ {0x343C, 0x9187},
+ {0x343D, 0x5507},
+ {0x343E, 0x6DF3},
+ {0x343F, 0x7EAF},
+ {0x3440, 0x8822},
+ {0x3441, 0x6233},
+ {0x3442, 0x7EF0},
+ {0x3443, 0x75B5},
+ {0x3444, 0x8328},
+ {0x3445, 0x78C1},
+ {0x3446, 0x96CC},
+ {0x3447, 0x8F9E},
+ {0x3448, 0x6148},
+ {0x3449, 0x74F7},
+ {0x344A, 0x8BCD},
+ {0x344B, 0x6B64},
+ {0x344C, 0x523A},
+ {0x344D, 0x8D50},
+ {0x344E, 0x6B21},
+ {0x344F, 0x806A},
+ {0x3450, 0x8471},
+ {0x3451, 0x56F1},
+ {0x3452, 0x5306},
+ {0x3453, 0x4ECE},
+ {0x3454, 0x4E1B},
+ {0x3455, 0x51D1},
+ {0x3456, 0x7C97},
+ {0x3457, 0x918B},
+ {0x3458, 0x7C07},
+ {0x3459, 0x4FC3},
+ {0x345A, 0x8E7F},
+ {0x345B, 0x7BE1},
+ {0x345C, 0x7A9C},
+ {0x345D, 0x6467},
+ {0x345E, 0x5D14},
+ {0x345F, 0x50AC},
+ {0x3460, 0x8106},
+ {0x3461, 0x7601},
+ {0x3462, 0x7CB9},
+ {0x3463, 0x6DEC},
+ {0x3464, 0x7FE0},
+ {0x3465, 0x6751},
+ {0x3466, 0x5B58},
+ {0x3467, 0x5BF8},
+ {0x3468, 0x78CB},
+ {0x3469, 0x64AE},
+ {0x346A, 0x6413},
+ {0x346B, 0x63AA},
+ {0x346C, 0x632B},
+ {0x346D, 0x9519},
+ {0x346E, 0x642D},
+ {0x346F, 0x8FBE},
+ {0x3470, 0x7B54},
+ {0x3471, 0x7629},
+ {0x3472, 0x6253},
+ {0x3473, 0x5927},
+ {0x3474, 0x5446},
+ {0x3475, 0x6B79},
+ {0x3476, 0x50A3},
+ {0x3477, 0x6234},
+ {0x3478, 0x5E26},
+ {0x3479, 0x6B86},
+ {0x347A, 0x4EE3},
+ {0x347B, 0x8D37},
+ {0x347C, 0x888B},
+ {0x347D, 0x5F85},
+ {0x347E, 0x902E},
+ {0x3521, 0x6020},
+ {0x3522, 0x803D},
+ {0x3523, 0x62C5},
+ {0x3524, 0x4E39},
+ {0x3525, 0x5355},
+ {0x3526, 0x90F8},
+ {0x3527, 0x63B8},
+ {0x3528, 0x80C6},
+ {0x3529, 0x65E6},
+ {0x352A, 0x6C2E},
+ {0x352B, 0x4F46},
+ {0x352C, 0x60EE},
+ {0x352D, 0x6DE1},
+ {0x352E, 0x8BDE},
+ {0x352F, 0x5F39},
+ {0x3530, 0x86CB},
+ {0x3531, 0x5F53},
+ {0x3532, 0x6321},
+ {0x3533, 0x515A},
+ {0x3534, 0x8361},
+ {0x3535, 0x6863},
+ {0x3536, 0x5200},
+ {0x3537, 0x6363},
+ {0x3538, 0x8E48},
+ {0x3539, 0x5012},
+ {0x353A, 0x5C9B},
+ {0x353B, 0x7977},
+ {0x353C, 0x5BFC},
+ {0x353D, 0x5230},
+ {0x353E, 0x7A3B},
+ {0x353F, 0x60BC},
+ {0x3540, 0x9053},
+ {0x3541, 0x76D7},
+ {0x3542, 0x5FB7},
+ {0x3543, 0x5F97},
+ {0x3544, 0x7684},
+ {0x3545, 0x8E6C},
+ {0x3546, 0x706F},
+ {0x3547, 0x767B},
+ {0x3548, 0x7B49},
+ {0x3549, 0x77AA},
+ {0x354A, 0x51F3},
+ {0x354B, 0x9093},
+ {0x354C, 0x5824},
+ {0x354D, 0x4F4E},
+ {0x354E, 0x6EF4},
+ {0x354F, 0x8FEA},
+ {0x3550, 0x654C},
+ {0x3551, 0x7B1B},
+ {0x3552, 0x72C4},
+ {0x3553, 0x6DA4},
+ {0x3554, 0x7FDF},
+ {0x3555, 0x5AE1},
+ {0x3556, 0x62B5},
+ {0x3557, 0x5E95},
+ {0x3558, 0x5730},
+ {0x3559, 0x8482},
+ {0x355A, 0x7B2C},
+ {0x355B, 0x5E1D},
+ {0x355C, 0x5F1F},
+ {0x355D, 0x9012},
+ {0x355E, 0x7F14},
+ {0x355F, 0x98A0},
+ {0x3560, 0x6382},
+ {0x3561, 0x6EC7},
+ {0x3562, 0x7898},
+ {0x3563, 0x70B9},
+ {0x3564, 0x5178},
+ {0x3565, 0x975B},
+ {0x3566, 0x57AB},
+ {0x3567, 0x7535},
+ {0x3568, 0x4F43},
+ {0x3569, 0x7538},
+ {0x356A, 0x5E97},
+ {0x356B, 0x60E6},
+ {0x356C, 0x5960},
+ {0x356D, 0x6DC0},
+ {0x356E, 0x6BBF},
+ {0x356F, 0x7889},
+ {0x3570, 0x53FC},
+ {0x3571, 0x96D5},
+ {0x3572, 0x51CB},
+ {0x3573, 0x5201},
+ {0x3574, 0x6389},
+ {0x3575, 0x540A},
+ {0x3576, 0x9493},
+ {0x3577, 0x8C03},
+ {0x3578, 0x8DCC},
+ {0x3579, 0x7239},
+ {0x357A, 0x789F},
+ {0x357B, 0x8776},
+ {0x357C, 0x8FED},
+ {0x357D, 0x8C0D},
+ {0x357E, 0x53E0},
+ {0x3621, 0x4E01},
+ {0x3622, 0x76EF},
+ {0x3623, 0x53EE},
+ {0x3624, 0x9489},
+ {0x3625, 0x9876},
+ {0x3626, 0x9F0E},
+ {0x3627, 0x952D},
+ {0x3628, 0x5B9A},
+ {0x3629, 0x8BA2},
+ {0x362A, 0x4E22},
+ {0x362B, 0x4E1C},
+ {0x362C, 0x51AC},
+ {0x362D, 0x8463},
+ {0x362E, 0x61C2},
+ {0x362F, 0x52A8},
+ {0x3630, 0x680B},
+ {0x3631, 0x4F97},
+ {0x3632, 0x606B},
+ {0x3633, 0x51BB},
+ {0x3634, 0x6D1E},
+ {0x3635, 0x515C},
+ {0x3636, 0x6296},
+ {0x3637, 0x6597},
+ {0x3638, 0x9661},
+ {0x3639, 0x8C46},
+ {0x363A, 0x9017},
+ {0x363B, 0x75D8},
+ {0x363C, 0x90FD},
+ {0x363D, 0x7763},
+ {0x363E, 0x6BD2},
+ {0x363F, 0x728A},
+ {0x3640, 0x72EC},
+ {0x3641, 0x8BFB},
+ {0x3642, 0x5835},
+ {0x3643, 0x7779},
+ {0x3644, 0x8D4C},
+ {0x3645, 0x675C},
+ {0x3646, 0x9540},
+ {0x3647, 0x809A},
+ {0x3648, 0x5EA6},
+ {0x3649, 0x6E21},
+ {0x364A, 0x5992},
+ {0x364B, 0x7AEF},
+ {0x364C, 0x77ED},
+ {0x364D, 0x953B},
+ {0x364E, 0x6BB5},
+ {0x364F, 0x65AD},
+ {0x3650, 0x7F0E},
+ {0x3651, 0x5806},
+ {0x3652, 0x5151},
+ {0x3653, 0x961F},
+ {0x3654, 0x5BF9},
+ {0x3655, 0x58A9},
+ {0x3656, 0x5428},
+ {0x3657, 0x8E72},
+ {0x3658, 0x6566},
+ {0x3659, 0x987F},
+ {0x365A, 0x56E4},
+ {0x365B, 0x949D},
+ {0x365C, 0x76FE},
+ {0x365D, 0x9041},
+ {0x365E, 0x6387},
+ {0x365F, 0x54C6},
+ {0x3660, 0x591A},
+ {0x3661, 0x593A},
+ {0x3662, 0x579B},
+ {0x3663, 0x8EB2},
+ {0x3664, 0x6735},
+ {0x3665, 0x8DFA},
+ {0x3666, 0x8235},
+ {0x3667, 0x5241},
+ {0x3668, 0x60F0},
+ {0x3669, 0x5815},
+ {0x366A, 0x86FE},
+ {0x366B, 0x5CE8},
+ {0x366C, 0x9E45},
+ {0x366D, 0x4FC4},
+ {0x366E, 0x989D},
+ {0x366F, 0x8BB9},
+ {0x3670, 0x5A25},
+ {0x3671, 0x6076},
+ {0x3672, 0x5384},
+ {0x3673, 0x627C},
+ {0x3674, 0x904F},
+ {0x3675, 0x9102},
+ {0x3676, 0x997F},
+ {0x3677, 0x6069},
+ {0x3678, 0x800C},
+ {0x3679, 0x513F},
+ {0x367A, 0x8033},
+ {0x367B, 0x5C14},
+ {0x367C, 0x9975},
+ {0x367D, 0x6D31},
+ {0x367E, 0x4E8C},
+ {0x3721, 0x8D30},
+ {0x3722, 0x53D1},
+ {0x3723, 0x7F5A},
+ {0x3724, 0x7B4F},
+ {0x3725, 0x4F10},
+ {0x3726, 0x4E4F},
+ {0x3727, 0x9600},
+ {0x3728, 0x6CD5},
+ {0x3729, 0x73D0},
+ {0x372A, 0x85E9},
+ {0x372B, 0x5E06},
+ {0x372C, 0x756A},
+ {0x372D, 0x7FFB},
+ {0x372E, 0x6A0A},
+ {0x372F, 0x77FE},
+ {0x3730, 0x9492},
+ {0x3731, 0x7E41},
+ {0x3732, 0x51E1},
+ {0x3733, 0x70E6},
+ {0x3734, 0x53CD},
+ {0x3735, 0x8FD4},
+ {0x3736, 0x8303},
+ {0x3737, 0x8D29},
+ {0x3738, 0x72AF},
+ {0x3739, 0x996D},
+ {0x373A, 0x6CDB},
+ {0x373B, 0x574A},
+ {0x373C, 0x82B3},
+ {0x373D, 0x65B9},
+ {0x373E, 0x80AA},
+ {0x373F, 0x623F},
+ {0x3740, 0x9632},
+ {0x3741, 0x59A8},
+ {0x3742, 0x4EFF},
+ {0x3743, 0x8BBF},
+ {0x3744, 0x7EBA},
+ {0x3745, 0x653E},
+ {0x3746, 0x83F2},
+ {0x3747, 0x975E},
+ {0x3748, 0x5561},
+ {0x3749, 0x98DE},
+ {0x374A, 0x80A5},
+ {0x374B, 0x532A},
+ {0x374C, 0x8BFD},
+ {0x374D, 0x5420},
+ {0x374E, 0x80BA},
+ {0x374F, 0x5E9F},
+ {0x3750, 0x6CB8},
+ {0x3751, 0x8D39},
+ {0x3752, 0x82AC},
+ {0x3753, 0x915A},
+ {0x3754, 0x5429},
+ {0x3755, 0x6C1B},
+ {0x3756, 0x5206},
+ {0x3757, 0x7EB7},
+ {0x3758, 0x575F},
+ {0x3759, 0x711A},
+ {0x375A, 0x6C7E},
+ {0x375B, 0x7C89},
+ {0x375C, 0x594B},
+ {0x375D, 0x4EFD},
+ {0x375E, 0x5FFF},
+ {0x375F, 0x6124},
+ {0x3760, 0x7CAA},
+ {0x3761, 0x4E30},
+ {0x3762, 0x5C01},
+ {0x3763, 0x67AB},
+ {0x3764, 0x8702},
+ {0x3765, 0x5CF0},
+ {0x3766, 0x950B},
+ {0x3767, 0x98CE},
+ {0x3768, 0x75AF},
+ {0x3769, 0x70FD},
+ {0x376A, 0x9022},
+ {0x376B, 0x51AF},
+ {0x376C, 0x7F1D},
+ {0x376D, 0x8BBD},
+ {0x376E, 0x5949},
+ {0x376F, 0x51E4},
+ {0x3770, 0x4F5B},
+ {0x3771, 0x5426},
+ {0x3772, 0x592B},
+ {0x3773, 0x6577},
+ {0x3774, 0x80A4},
+ {0x3775, 0x5B75},
+ {0x3776, 0x6276},
+ {0x3777, 0x62C2},
+ {0x3778, 0x8F90},
+ {0x3779, 0x5E45},
+ {0x377A, 0x6C1F},
+ {0x377B, 0x7B26},
+ {0x377C, 0x4F0F},
+ {0x377D, 0x4FD8},
+ {0x377E, 0x670D},
+ {0x3821, 0x6D6E},
+ {0x3822, 0x6DAA},
+ {0x3823, 0x798F},
+ {0x3824, 0x88B1},
+ {0x3825, 0x5F17},
+ {0x3826, 0x752B},
+ {0x3827, 0x629A},
+ {0x3828, 0x8F85},
+ {0x3829, 0x4FEF},
+ {0x382A, 0x91DC},
+ {0x382B, 0x65A7},
+ {0x382C, 0x812F},
+ {0x382D, 0x8151},
+ {0x382E, 0x5E9C},
+ {0x382F, 0x8150},
+ {0x3830, 0x8D74},
+ {0x3831, 0x526F},
+ {0x3832, 0x8986},
+ {0x3833, 0x8D4B},
+ {0x3834, 0x590D},
+ {0x3835, 0x5085},
+ {0x3836, 0x4ED8},
+ {0x3837, 0x961C},
+ {0x3838, 0x7236},
+ {0x3839, 0x8179},
+ {0x383A, 0x8D1F},
+ {0x383B, 0x5BCC},
+ {0x383C, 0x8BA3},
+ {0x383D, 0x9644},
+ {0x383E, 0x5987},
+ {0x383F, 0x7F1A},
+ {0x3840, 0x5490},
+ {0x3841, 0x5676},
+ {0x3842, 0x560E},
+ {0x3843, 0x8BE5},
+ {0x3844, 0x6539},
+ {0x3845, 0x6982},
+ {0x3846, 0x9499},
+ {0x3847, 0x76D6},
+ {0x3848, 0x6E89},
+ {0x3849, 0x5E72},
+ {0x384A, 0x7518},
+ {0x384B, 0x6746},
+ {0x384C, 0x67D1},
+ {0x384D, 0x7AFF},
+ {0x384E, 0x809D},
+ {0x384F, 0x8D76},
+ {0x3850, 0x611F},
+ {0x3851, 0x79C6},
+ {0x3852, 0x6562},
+ {0x3853, 0x8D63},
+ {0x3854, 0x5188},
+ {0x3855, 0x521A},
+ {0x3856, 0x94A2},
+ {0x3857, 0x7F38},
+ {0x3858, 0x809B},
+ {0x3859, 0x7EB2},
+ {0x385A, 0x5C97},
+ {0x385B, 0x6E2F},
+ {0x385C, 0x6760},
+ {0x385D, 0x7BD9},
+ {0x385E, 0x768B},
+ {0x385F, 0x9AD8},
+ {0x3860, 0x818F},
+ {0x3861, 0x7F94},
+ {0x3862, 0x7CD5},
+ {0x3863, 0x641E},
+ {0x3864, 0x9550},
+ {0x3865, 0x7A3F},
+ {0x3866, 0x544A},
+ {0x3867, 0x54E5},
+ {0x3868, 0x6B4C},
+ {0x3869, 0x6401},
+ {0x386A, 0x6208},
+ {0x386B, 0x9E3D},
+ {0x386C, 0x80F3},
+ {0x386D, 0x7599},
+ {0x386E, 0x5272},
+ {0x386F, 0x9769},
+ {0x3870, 0x845B},
+ {0x3871, 0x683C},
+ {0x3872, 0x86E4},
+ {0x3873, 0x9601},
+ {0x3874, 0x9694},
+ {0x3875, 0x94EC},
+ {0x3876, 0x4E2A},
+ {0x3877, 0x5404},
+ {0x3878, 0x7ED9},
+ {0x3879, 0x6839},
+ {0x387A, 0x8DDF},
+ {0x387B, 0x8015},
+ {0x387C, 0x66F4},
+ {0x387D, 0x5E9A},
+ {0x387E, 0x7FB9},
+ {0x3921, 0x57C2},
+ {0x3922, 0x803F},
+ {0x3923, 0x6897},
+ {0x3924, 0x5DE5},
+ {0x3925, 0x653B},
+ {0x3926, 0x529F},
+ {0x3927, 0x606D},
+ {0x3928, 0x9F9A},
+ {0x3929, 0x4F9B},
+ {0x392A, 0x8EAC},
+ {0x392B, 0x516C},
+ {0x392C, 0x5BAB},
+ {0x392D, 0x5F13},
+ {0x392E, 0x5DE9},
+ {0x392F, 0x6C5E},
+ {0x3930, 0x62F1},
+ {0x3931, 0x8D21},
+ {0x3932, 0x5171},
+ {0x3933, 0x94A9},
+ {0x3934, 0x52FE},
+ {0x3935, 0x6C9F},
+ {0x3936, 0x82DF},
+ {0x3937, 0x72D7},
+ {0x3938, 0x57A2},
+ {0x3939, 0x6784},
+ {0x393A, 0x8D2D},
+ {0x393B, 0x591F},
+ {0x393C, 0x8F9C},
+ {0x393D, 0x83C7},
+ {0x393E, 0x5495},
+ {0x393F, 0x7B8D},
+ {0x3940, 0x4F30},
+ {0x3941, 0x6CBD},
+ {0x3942, 0x5B64},
+ {0x3943, 0x59D1},
+ {0x3944, 0x9F13},
+ {0x3945, 0x53E4},
+ {0x3946, 0x86CA},
+ {0x3947, 0x9AA8},
+ {0x3948, 0x8C37},
+ {0x3949, 0x80A1},
+ {0x394A, 0x6545},
+ {0x394B, 0x987E},
+ {0x394C, 0x56FA},
+ {0x394D, 0x96C7},
+ {0x394E, 0x522E},
+ {0x394F, 0x74DC},
+ {0x3950, 0x5250},
+ {0x3951, 0x5BE1},
+ {0x3952, 0x6302},
+ {0x3953, 0x8902},
+ {0x3954, 0x4E56},
+ {0x3955, 0x62D0},
+ {0x3956, 0x602A},
+ {0x3957, 0x68FA},
+ {0x3958, 0x5173},
+ {0x3959, 0x5B98},
+ {0x395A, 0x51A0},
+ {0x395B, 0x89C2},
+ {0x395C, 0x7BA1},
+ {0x395D, 0x9986},
+ {0x395E, 0x7F50},
+ {0x395F, 0x60EF},
+ {0x3960, 0x704C},
+ {0x3961, 0x8D2F},
+ {0x3962, 0x5149},
+ {0x3963, 0x5E7F},
+ {0x3964, 0x901B},
+ {0x3965, 0x7470},
+ {0x3966, 0x89C4},
+ {0x3967, 0x572D},
+ {0x3968, 0x7845},
+ {0x3969, 0x5F52},
+ {0x396A, 0x9F9F},
+ {0x396B, 0x95FA},
+ {0x396C, 0x8F68},
+ {0x396D, 0x9B3C},
+ {0x396E, 0x8BE1},
+ {0x396F, 0x7678},
+ {0x3970, 0x6842},
+ {0x3971, 0x67DC},
+ {0x3972, 0x8DEA},
+ {0x3973, 0x8D35},
+ {0x3974, 0x523D},
+ {0x3975, 0x8F8A},
+ {0x3976, 0x6EDA},
+ {0x3977, 0x68CD},
+ {0x3978, 0x9505},
+ {0x3979, 0x90ED},
+ {0x397A, 0x56FD},
+ {0x397B, 0x679C},
+ {0x397C, 0x88F9},
+ {0x397D, 0x8FC7},
+ {0x397E, 0x54C8},
+ {0x3A21, 0x9AB8},
+ {0x3A22, 0x5B69},
+ {0x3A23, 0x6D77},
+ {0x3A24, 0x6C26},
+ {0x3A25, 0x4EA5},
+ {0x3A26, 0x5BB3},
+ {0x3A27, 0x9A87},
+ {0x3A28, 0x9163},
+ {0x3A29, 0x61A8},
+ {0x3A2A, 0x90AF},
+ {0x3A2B, 0x97E9},
+ {0x3A2C, 0x542B},
+ {0x3A2D, 0x6DB5},
+ {0x3A2E, 0x5BD2},
+ {0x3A2F, 0x51FD},
+ {0x3A30, 0x558A},
+ {0x3A31, 0x7F55},
+ {0x3A32, 0x7FF0},
+ {0x3A33, 0x64BC},
+ {0x3A34, 0x634D},
+ {0x3A35, 0x65F1},
+ {0x3A36, 0x61BE},
+ {0x3A37, 0x608D},
+ {0x3A38, 0x710A},
+ {0x3A39, 0x6C57},
+ {0x3A3A, 0x6C49},
+ {0x3A3B, 0x592F},
+ {0x3A3C, 0x676D},
+ {0x3A3D, 0x822A},
+ {0x3A3E, 0x58D5},
+ {0x3A3F, 0x568E},
+ {0x3A40, 0x8C6A},
+ {0x3A41, 0x6BEB},
+ {0x3A42, 0x90DD},
+ {0x3A43, 0x597D},
+ {0x3A44, 0x8017},
+ {0x3A45, 0x53F7},
+ {0x3A46, 0x6D69},
+ {0x3A47, 0x5475},
+ {0x3A48, 0x559D},
+ {0x3A49, 0x8377},
+ {0x3A4A, 0x83CF},
+ {0x3A4B, 0x6838},
+ {0x3A4C, 0x79BE},
+ {0x3A4D, 0x548C},
+ {0x3A4E, 0x4F55},
+ {0x3A4F, 0x5408},
+ {0x3A50, 0x76D2},
+ {0x3A51, 0x8C89},
+ {0x3A52, 0x9602},
+ {0x3A53, 0x6CB3},
+ {0x3A54, 0x6DB8},
+ {0x3A55, 0x8D6B},
+ {0x3A56, 0x8910},
+ {0x3A57, 0x9E64},
+ {0x3A58, 0x8D3A},
+ {0x3A59, 0x563F},
+ {0x3A5A, 0x9ED1},
+ {0x3A5B, 0x75D5},
+ {0x3A5C, 0x5F88},
+ {0x3A5D, 0x72E0},
+ {0x3A5E, 0x6068},
+ {0x3A5F, 0x54FC},
+ {0x3A60, 0x4EA8},
+ {0x3A61, 0x6A2A},
+ {0x3A62, 0x8861},
+ {0x3A63, 0x6052},
+ {0x3A64, 0x8F70},
+ {0x3A65, 0x54C4},
+ {0x3A66, 0x70D8},
+ {0x3A67, 0x8679},
+ {0x3A68, 0x9E3F},
+ {0x3A69, 0x6D2A},
+ {0x3A6A, 0x5B8F},
+ {0x3A6B, 0x5F18},
+ {0x3A6C, 0x7EA2},
+ {0x3A6D, 0x5589},
+ {0x3A6E, 0x4FAF},
+ {0x3A6F, 0x7334},
+ {0x3A70, 0x543C},
+ {0x3A71, 0x539A},
+ {0x3A72, 0x5019},
+ {0x3A73, 0x540E},
+ {0x3A74, 0x547C},
+ {0x3A75, 0x4E4E},
+ {0x3A76, 0x5FFD},
+ {0x3A77, 0x745A},
+ {0x3A78, 0x58F6},
+ {0x3A79, 0x846B},
+ {0x3A7A, 0x80E1},
+ {0x3A7B, 0x8774},
+ {0x3A7C, 0x72D0},
+ {0x3A7D, 0x7CCA},
+ {0x3A7E, 0x6E56},
+ {0x3B21, 0x5F27},
+ {0x3B22, 0x864E},
+ {0x3B23, 0x552C},
+ {0x3B24, 0x62A4},
+ {0x3B25, 0x4E92},
+ {0x3B26, 0x6CAA},
+ {0x3B27, 0x6237},
+ {0x3B28, 0x82B1},
+ {0x3B29, 0x54D7},
+ {0x3B2A, 0x534E},
+ {0x3B2B, 0x733E},
+ {0x3B2C, 0x6ED1},
+ {0x3B2D, 0x753B},
+ {0x3B2E, 0x5212},
+ {0x3B2F, 0x5316},
+ {0x3B30, 0x8BDD},
+ {0x3B31, 0x69D0},
+ {0x3B32, 0x5F8A},
+ {0x3B33, 0x6000},
+ {0x3B34, 0x6DEE},
+ {0x3B35, 0x574F},
+ {0x3B36, 0x6B22},
+ {0x3B37, 0x73AF},
+ {0x3B38, 0x6853},
+ {0x3B39, 0x8FD8},
+ {0x3B3A, 0x7F13},
+ {0x3B3B, 0x6362},
+ {0x3B3C, 0x60A3},
+ {0x3B3D, 0x5524},
+ {0x3B3E, 0x75EA},
+ {0x3B3F, 0x8C62},
+ {0x3B40, 0x7115},
+ {0x3B41, 0x6DA3},
+ {0x3B42, 0x5BA6},
+ {0x3B43, 0x5E7B},
+ {0x3B44, 0x8352},
+ {0x3B45, 0x614C},
+ {0x3B46, 0x9EC4},
+ {0x3B47, 0x78FA},
+ {0x3B48, 0x8757},
+ {0x3B49, 0x7C27},
+ {0x3B4A, 0x7687},
+ {0x3B4B, 0x51F0},
+ {0x3B4C, 0x60F6},
+ {0x3B4D, 0x714C},
+ {0x3B4E, 0x6643},
+ {0x3B4F, 0x5E4C},
+ {0x3B50, 0x604D},
+ {0x3B51, 0x8C0E},
+ {0x3B52, 0x7070},
+ {0x3B53, 0x6325},
+ {0x3B54, 0x8F89},
+ {0x3B55, 0x5FBD},
+ {0x3B56, 0x6062},
+ {0x3B57, 0x86D4},
+ {0x3B58, 0x56DE},
+ {0x3B59, 0x6BC1},
+ {0x3B5A, 0x6094},
+ {0x3B5B, 0x6167},
+ {0x3B5C, 0x5349},
+ {0x3B5D, 0x60E0},
+ {0x3B5E, 0x6666},
+ {0x3B5F, 0x8D3F},
+ {0x3B60, 0x79FD},
+ {0x3B61, 0x4F1A},
+ {0x3B62, 0x70E9},
+ {0x3B63, 0x6C47},
+ {0x3B64, 0x8BB3},
+ {0x3B65, 0x8BF2},
+ {0x3B66, 0x7ED8},
+ {0x3B67, 0x8364},
+ {0x3B68, 0x660F},
+ {0x3B69, 0x5A5A},
+ {0x3B6A, 0x9B42},
+ {0x3B6B, 0x6D51},
+ {0x3B6C, 0x6DF7},
+ {0x3B6D, 0x8C41},
+ {0x3B6E, 0x6D3B},
+ {0x3B6F, 0x4F19},
+ {0x3B70, 0x706B},
+ {0x3B71, 0x83B7},
+ {0x3B72, 0x6216},
+ {0x3B73, 0x60D1},
+ {0x3B74, 0x970D},
+ {0x3B75, 0x8D27},
+ {0x3B76, 0x7978},
+ {0x3B77, 0x51FB},
+ {0x3B78, 0x573E},
+ {0x3B79, 0x57FA},
+ {0x3B7A, 0x673A},
+ {0x3B7B, 0x7578},
+ {0x3B7C, 0x7A3D},
+ {0x3B7D, 0x79EF},
+ {0x3B7E, 0x7B95},
+ {0x3C21, 0x808C},
+ {0x3C22, 0x9965},
+ {0x3C23, 0x8FF9},
+ {0x3C24, 0x6FC0},
+ {0x3C25, 0x8BA5},
+ {0x3C26, 0x9E21},
+ {0x3C27, 0x59EC},
+ {0x3C28, 0x7EE9},
+ {0x3C29, 0x7F09},
+ {0x3C2A, 0x5409},
+ {0x3C2B, 0x6781},
+ {0x3C2C, 0x68D8},
+ {0x3C2D, 0x8F91},
+ {0x3C2E, 0x7C4D},
+ {0x3C2F, 0x96C6},
+ {0x3C30, 0x53CA},
+ {0x3C31, 0x6025},
+ {0x3C32, 0x75BE},
+ {0x3C33, 0x6C72},
+ {0x3C34, 0x5373},
+ {0x3C35, 0x5AC9},
+ {0x3C36, 0x7EA7},
+ {0x3C37, 0x6324},
+ {0x3C38, 0x51E0},
+ {0x3C39, 0x810A},
+ {0x3C3A, 0x5DF1},
+ {0x3C3B, 0x84DF},
+ {0x3C3C, 0x6280},
+ {0x3C3D, 0x5180},
+ {0x3C3E, 0x5B63},
+ {0x3C3F, 0x4F0E},
+ {0x3C40, 0x796D},
+ {0x3C41, 0x5242},
+ {0x3C42, 0x60B8},
+ {0x3C43, 0x6D4E},
+ {0x3C44, 0x5BC4},
+ {0x3C45, 0x5BC2},
+ {0x3C46, 0x8BA1},
+ {0x3C47, 0x8BB0},
+ {0x3C48, 0x65E2},
+ {0x3C49, 0x5FCC},
+ {0x3C4A, 0x9645},
+ {0x3C4B, 0x5993},
+ {0x3C4C, 0x7EE7},
+ {0x3C4D, 0x7EAA},
+ {0x3C4E, 0x5609},
+ {0x3C4F, 0x67B7},
+ {0x3C50, 0x5939},
+ {0x3C51, 0x4F73},
+ {0x3C52, 0x5BB6},
+ {0x3C53, 0x52A0},
+ {0x3C54, 0x835A},
+ {0x3C55, 0x988A},
+ {0x3C56, 0x8D3E},
+ {0x3C57, 0x7532},
+ {0x3C58, 0x94BE},
+ {0x3C59, 0x5047},
+ {0x3C5A, 0x7A3C},
+ {0x3C5B, 0x4EF7},
+ {0x3C5C, 0x67B6},
+ {0x3C5D, 0x9A7E},
+ {0x3C5E, 0x5AC1},
+ {0x3C5F, 0x6B7C},
+ {0x3C60, 0x76D1},
+ {0x3C61, 0x575A},
+ {0x3C62, 0x5C16},
+ {0x3C63, 0x7B3A},
+ {0x3C64, 0x95F4},
+ {0x3C65, 0x714E},
+ {0x3C66, 0x517C},
+ {0x3C67, 0x80A9},
+ {0x3C68, 0x8270},
+ {0x3C69, 0x5978},
+ {0x3C6A, 0x7F04},
+ {0x3C6B, 0x8327},
+ {0x3C6C, 0x68C0},
+ {0x3C6D, 0x67EC},
+ {0x3C6E, 0x78B1},
+ {0x3C6F, 0x7877},
+ {0x3C70, 0x62E3},
+ {0x3C71, 0x6361},
+ {0x3C72, 0x7B80},
+ {0x3C73, 0x4FED},
+ {0x3C74, 0x526A},
+ {0x3C75, 0x51CF},
+ {0x3C76, 0x8350},
+ {0x3C77, 0x69DB},
+ {0x3C78, 0x9274},
+ {0x3C79, 0x8DF5},
+ {0x3C7A, 0x8D31},
+ {0x3C7B, 0x89C1},
+ {0x3C7C, 0x952E},
+ {0x3C7D, 0x7BAD},
+ {0x3C7E, 0x4EF6},
+ {0x3D21, 0x5065},
+ {0x3D22, 0x8230},
+ {0x3D23, 0x5251},
+ {0x3D24, 0x996F},
+ {0x3D25, 0x6E10},
+ {0x3D26, 0x6E85},
+ {0x3D27, 0x6DA7},
+ {0x3D28, 0x5EFA},
+ {0x3D29, 0x50F5},
+ {0x3D2A, 0x59DC},
+ {0x3D2B, 0x5C06},
+ {0x3D2C, 0x6D46},
+ {0x3D2D, 0x6C5F},
+ {0x3D2E, 0x7586},
+ {0x3D2F, 0x848B},
+ {0x3D30, 0x6868},
+ {0x3D31, 0x5956},
+ {0x3D32, 0x8BB2},
+ {0x3D33, 0x5320},
+ {0x3D34, 0x9171},
+ {0x3D35, 0x964D},
+ {0x3D36, 0x8549},
+ {0x3D37, 0x6912},
+ {0x3D38, 0x7901},
+ {0x3D39, 0x7126},
+ {0x3D3A, 0x80F6},
+ {0x3D3B, 0x4EA4},
+ {0x3D3C, 0x90CA},
+ {0x3D3D, 0x6D47},
+ {0x3D3E, 0x9A84},
+ {0x3D3F, 0x5A07},
+ {0x3D40, 0x56BC},
+ {0x3D41, 0x6405},
+ {0x3D42, 0x94F0},
+ {0x3D43, 0x77EB},
+ {0x3D44, 0x4FA5},
+ {0x3D45, 0x811A},
+ {0x3D46, 0x72E1},
+ {0x3D47, 0x89D2},
+ {0x3D48, 0x997A},
+ {0x3D49, 0x7F34},
+ {0x3D4A, 0x7EDE},
+ {0x3D4B, 0x527F},
+ {0x3D4C, 0x6559},
+ {0x3D4D, 0x9175},
+ {0x3D4E, 0x8F7F},
+ {0x3D4F, 0x8F83},
+ {0x3D50, 0x53EB},
+ {0x3D51, 0x7A96},
+ {0x3D52, 0x63ED},
+ {0x3D53, 0x63A5},
+ {0x3D54, 0x7686},
+ {0x3D55, 0x79F8},
+ {0x3D56, 0x8857},
+ {0x3D57, 0x9636},
+ {0x3D58, 0x622A},
+ {0x3D59, 0x52AB},
+ {0x3D5A, 0x8282},
+ {0x3D5B, 0x6854},
+ {0x3D5C, 0x6770},
+ {0x3D5D, 0x6377},
+ {0x3D5E, 0x776B},
+ {0x3D5F, 0x7AED},
+ {0x3D60, 0x6D01},
+ {0x3D61, 0x7ED3},
+ {0x3D62, 0x89E3},
+ {0x3D63, 0x59D0},
+ {0x3D64, 0x6212},
+ {0x3D65, 0x85C9},
+ {0x3D66, 0x82A5},
+ {0x3D67, 0x754C},
+ {0x3D68, 0x501F},
+ {0x3D69, 0x4ECB},
+ {0x3D6A, 0x75A5},
+ {0x3D6B, 0x8BEB},
+ {0x3D6C, 0x5C4A},
+ {0x3D6D, 0x5DFE},
+ {0x3D6E, 0x7B4B},
+ {0x3D6F, 0x65A4},
+ {0x3D70, 0x91D1},
+ {0x3D71, 0x4ECA},
+ {0x3D72, 0x6D25},
+ {0x3D73, 0x895F},
+ {0x3D74, 0x7D27},
+ {0x3D75, 0x9526},
+ {0x3D76, 0x4EC5},
+ {0x3D77, 0x8C28},
+ {0x3D78, 0x8FDB},
+ {0x3D79, 0x9773},
+ {0x3D7A, 0x664B},
+ {0x3D7B, 0x7981},
+ {0x3D7C, 0x8FD1},
+ {0x3D7D, 0x70EC},
+ {0x3D7E, 0x6D78},
+ {0x3E21, 0x5C3D},
+ {0x3E22, 0x52B2},
+ {0x3E23, 0x8346},
+ {0x3E24, 0x5162},
+ {0x3E25, 0x830E},
+ {0x3E26, 0x775B},
+ {0x3E27, 0x6676},
+ {0x3E28, 0x9CB8},
+ {0x3E29, 0x4EAC},
+ {0x3E2A, 0x60CA},
+ {0x3E2B, 0x7CBE},
+ {0x3E2C, 0x7CB3},
+ {0x3E2D, 0x7ECF},
+ {0x3E2E, 0x4E95},
+ {0x3E2F, 0x8B66},
+ {0x3E30, 0x666F},
+ {0x3E31, 0x9888},
+ {0x3E32, 0x9759},
+ {0x3E33, 0x5883},
+ {0x3E34, 0x656C},
+ {0x3E35, 0x955C},
+ {0x3E36, 0x5F84},
+ {0x3E37, 0x75C9},
+ {0x3E38, 0x9756},
+ {0x3E39, 0x7ADF},
+ {0x3E3A, 0x7ADE},
+ {0x3E3B, 0x51C0},
+ {0x3E3C, 0x70AF},
+ {0x3E3D, 0x7A98},
+ {0x3E3E, 0x63EA},
+ {0x3E3F, 0x7A76},
+ {0x3E40, 0x7EA0},
+ {0x3E41, 0x7396},
+ {0x3E42, 0x97ED},
+ {0x3E43, 0x4E45},
+ {0x3E44, 0x7078},
+ {0x3E45, 0x4E5D},
+ {0x3E46, 0x9152},
+ {0x3E47, 0x53A9},
+ {0x3E48, 0x6551},
+ {0x3E49, 0x65E7},
+ {0x3E4A, 0x81FC},
+ {0x3E4B, 0x8205},
+ {0x3E4C, 0x548E},
+ {0x3E4D, 0x5C31},
+ {0x3E4E, 0x759A},
+ {0x3E4F, 0x97A0},
+ {0x3E50, 0x62D8},
+ {0x3E51, 0x72D9},
+ {0x3E52, 0x75BD},
+ {0x3E53, 0x5C45},
+ {0x3E54, 0x9A79},
+ {0x3E55, 0x83CA},
+ {0x3E56, 0x5C40},
+ {0x3E57, 0x5480},
+ {0x3E58, 0x77E9},
+ {0x3E59, 0x4E3E},
+ {0x3E5A, 0x6CAE},
+ {0x3E5B, 0x805A},
+ {0x3E5C, 0x62D2},
+ {0x3E5D, 0x636E},
+ {0x3E5E, 0x5DE8},
+ {0x3E5F, 0x5177},
+ {0x3E60, 0x8DDD},
+ {0x3E61, 0x8E1E},
+ {0x3E62, 0x952F},
+ {0x3E63, 0x4FF1},
+ {0x3E64, 0x53E5},
+ {0x3E65, 0x60E7},
+ {0x3E66, 0x70AC},
+ {0x3E67, 0x5267},
+ {0x3E68, 0x6350},
+ {0x3E69, 0x9E43},
+ {0x3E6A, 0x5A1F},
+ {0x3E6B, 0x5026},
+ {0x3E6C, 0x7737},
+ {0x3E6D, 0x5377},
+ {0x3E6E, 0x7EE2},
+ {0x3E6F, 0x6485},
+ {0x3E70, 0x652B},
+ {0x3E71, 0x6289},
+ {0x3E72, 0x6398},
+ {0x3E73, 0x5014},
+ {0x3E74, 0x7235},
+ {0x3E75, 0x89C9},
+ {0x3E76, 0x51B3},
+ {0x3E77, 0x8BC0},
+ {0x3E78, 0x7EDD},
+ {0x3E79, 0x5747},
+ {0x3E7A, 0x83CC},
+ {0x3E7B, 0x94A7},
+ {0x3E7C, 0x519B},
+ {0x3E7D, 0x541B},
+ {0x3E7E, 0x5CFB},
+ {0x3F21, 0x4FCA},
+ {0x3F22, 0x7AE3},
+ {0x3F23, 0x6D5A},
+ {0x3F24, 0x90E1},
+ {0x3F25, 0x9A8F},
+ {0x3F26, 0x5580},
+ {0x3F27, 0x5496},
+ {0x3F28, 0x5361},
+ {0x3F29, 0x54AF},
+ {0x3F2A, 0x5F00},
+ {0x3F2B, 0x63E9},
+ {0x3F2C, 0x6977},
+ {0x3F2D, 0x51EF},
+ {0x3F2E, 0x6168},
+ {0x3F2F, 0x520A},
+ {0x3F30, 0x582A},
+ {0x3F31, 0x52D8},
+ {0x3F32, 0x574E},
+ {0x3F33, 0x780D},
+ {0x3F34, 0x770B},
+ {0x3F35, 0x5EB7},
+ {0x3F36, 0x6177},
+ {0x3F37, 0x7CE0},
+ {0x3F38, 0x625B},
+ {0x3F39, 0x6297},
+ {0x3F3A, 0x4EA2},
+ {0x3F3B, 0x7095},
+ {0x3F3C, 0x8003},
+ {0x3F3D, 0x62F7},
+ {0x3F3E, 0x70E4},
+ {0x3F3F, 0x9760},
+ {0x3F40, 0x5777},
+ {0x3F41, 0x82DB},
+ {0x3F42, 0x67EF},
+ {0x3F43, 0x68F5},
+ {0x3F44, 0x78D5},
+ {0x3F45, 0x9897},
+ {0x3F46, 0x79D1},
+ {0x3F47, 0x58F3},
+ {0x3F48, 0x54B3},
+ {0x3F49, 0x53EF},
+ {0x3F4A, 0x6E34},
+ {0x3F4B, 0x514B},
+ {0x3F4C, 0x523B},
+ {0x3F4D, 0x5BA2},
+ {0x3F4E, 0x8BFE},
+ {0x3F4F, 0x80AF},
+ {0x3F50, 0x5543},
+ {0x3F51, 0x57A6},
+ {0x3F52, 0x6073},
+ {0x3F53, 0x5751},
+ {0x3F54, 0x542D},
+ {0x3F55, 0x7A7A},
+ {0x3F56, 0x6050},
+ {0x3F57, 0x5B54},
+ {0x3F58, 0x63A7},
+ {0x3F59, 0x62A0},
+ {0x3F5A, 0x53E3},
+ {0x3F5B, 0x6263},
+ {0x3F5C, 0x5BC7},
+ {0x3F5D, 0x67AF},
+ {0x3F5E, 0x54ED},
+ {0x3F5F, 0x7A9F},
+ {0x3F60, 0x82E6},
+ {0x3F61, 0x9177},
+ {0x3F62, 0x5E93},
+ {0x3F63, 0x88E4},
+ {0x3F64, 0x5938},
+ {0x3F65, 0x57AE},
+ {0x3F66, 0x630E},
+ {0x3F67, 0x8DE8},
+ {0x3F68, 0x80EF},
+ {0x3F69, 0x5757},
+ {0x3F6A, 0x7B77},
+ {0x3F6B, 0x4FA9},
+ {0x3F6C, 0x5FEB},
+ {0x3F6D, 0x5BBD},
+ {0x3F6E, 0x6B3E},
+ {0x3F6F, 0x5321},
+ {0x3F70, 0x7B50},
+ {0x3F71, 0x72C2},
+ {0x3F72, 0x6846},
+ {0x3F73, 0x77FF},
+ {0x3F74, 0x7736},
+ {0x3F75, 0x65F7},
+ {0x3F76, 0x51B5},
+ {0x3F77, 0x4E8F},
+ {0x3F78, 0x76D4},
+ {0x3F79, 0x5CBF},
+ {0x3F7A, 0x7AA5},
+ {0x3F7B, 0x8475},
+ {0x3F7C, 0x594E},
+ {0x3F7D, 0x9B41},
+ {0x3F7E, 0x5080},
+ {0x4021, 0x9988},
+ {0x4022, 0x6127},
+ {0x4023, 0x6E83},
+ {0x4024, 0x5764},
+ {0x4025, 0x6606},
+ {0x4026, 0x6346},
+ {0x4027, 0x56F0},
+ {0x4028, 0x62EC},
+ {0x4029, 0x6269},
+ {0x402A, 0x5ED3},
+ {0x402B, 0x9614},
+ {0x402C, 0x5783},
+ {0x402D, 0x62C9},
+ {0x402E, 0x5587},
+ {0x402F, 0x8721},
+ {0x4030, 0x814A},
+ {0x4031, 0x8FA3},
+ {0x4032, 0x5566},
+ {0x4033, 0x83B1},
+ {0x4034, 0x6765},
+ {0x4035, 0x8D56},
+ {0x4036, 0x84DD},
+ {0x4037, 0x5A6A},
+ {0x4038, 0x680F},
+ {0x4039, 0x62E6},
+ {0x403A, 0x7BEE},
+ {0x403B, 0x9611},
+ {0x403C, 0x5170},
+ {0x403D, 0x6F9C},
+ {0x403E, 0x8C30},
+ {0x403F, 0x63FD},
+ {0x4040, 0x89C8},
+ {0x4041, 0x61D2},
+ {0x4042, 0x7F06},
+ {0x4043, 0x70C2},
+ {0x4044, 0x6EE5},
+ {0x4045, 0x7405},
+ {0x4046, 0x6994},
+ {0x4047, 0x72FC},
+ {0x4048, 0x5ECA},
+ {0x4049, 0x90CE},
+ {0x404A, 0x6717},
+ {0x404B, 0x6D6A},
+ {0x404C, 0x635E},
+ {0x404D, 0x52B3},
+ {0x404E, 0x7262},
+ {0x404F, 0x8001},
+ {0x4050, 0x4F6C},
+ {0x4051, 0x59E5},
+ {0x4052, 0x916A},
+ {0x4053, 0x70D9},
+ {0x4054, 0x6D9D},
+ {0x4055, 0x52D2},
+ {0x4056, 0x4E50},
+ {0x4057, 0x96F7},
+ {0x4058, 0x956D},
+ {0x4059, 0x857E},
+ {0x405A, 0x78CA},
+ {0x405B, 0x7D2F},
+ {0x405C, 0x5121},
+ {0x405D, 0x5792},
+ {0x405E, 0x64C2},
+ {0x405F, 0x808B},
+ {0x4060, 0x7C7B},
+ {0x4061, 0x6CEA},
+ {0x4062, 0x68F1},
+ {0x4063, 0x695E},
+ {0x4064, 0x51B7},
+ {0x4065, 0x5398},
+ {0x4066, 0x68A8},
+ {0x4067, 0x7281},
+ {0x4068, 0x9ECE},
+ {0x4069, 0x7BF1},
+ {0x406A, 0x72F8},
+ {0x406B, 0x79BB},
+ {0x406C, 0x6F13},
+ {0x406D, 0x7406},
+ {0x406E, 0x674E},
+ {0x406F, 0x91CC},
+ {0x4070, 0x9CA4},
+ {0x4071, 0x793C},
+ {0x4072, 0x8389},
+ {0x4073, 0x8354},
+ {0x4074, 0x540F},
+ {0x4075, 0x6817},
+ {0x4076, 0x4E3D},
+ {0x4077, 0x5389},
+ {0x4078, 0x52B1},
+ {0x4079, 0x783E},
+ {0x407A, 0x5386},
+ {0x407B, 0x5229},
+ {0x407C, 0x5088},
+ {0x407D, 0x4F8B},
+ {0x407E, 0x4FD0},
+ {0x4121, 0x75E2},
+ {0x4122, 0x7ACB},
+ {0x4123, 0x7C92},
+ {0x4124, 0x6CA5},
+ {0x4125, 0x96B6},
+ {0x4126, 0x529B},
+ {0x4127, 0x7483},
+ {0x4128, 0x54E9},
+ {0x4129, 0x4FE9},
+ {0x412A, 0x8054},
+ {0x412B, 0x83B2},
+ {0x412C, 0x8FDE},
+ {0x412D, 0x9570},
+ {0x412E, 0x5EC9},
+ {0x412F, 0x601C},
+ {0x4130, 0x6D9F},
+ {0x4131, 0x5E18},
+ {0x4132, 0x655B},
+ {0x4133, 0x8138},
+ {0x4134, 0x94FE},
+ {0x4135, 0x604B},
+ {0x4136, 0x70BC},
+ {0x4137, 0x7EC3},
+ {0x4138, 0x7CAE},
+ {0x4139, 0x51C9},
+ {0x413A, 0x6881},
+ {0x413B, 0x7CB1},
+ {0x413C, 0x826F},
+ {0x413D, 0x4E24},
+ {0x413E, 0x8F86},
+ {0x413F, 0x91CF},
+ {0x4140, 0x667E},
+ {0x4141, 0x4EAE},
+ {0x4142, 0x8C05},
+ {0x4143, 0x64A9},
+ {0x4144, 0x804A},
+ {0x4145, 0x50DA},
+ {0x4146, 0x7597},
+ {0x4147, 0x71CE},
+ {0x4148, 0x5BE5},
+ {0x4149, 0x8FBD},
+ {0x414A, 0x6F66},
+ {0x414B, 0x4E86},
+ {0x414C, 0x6482},
+ {0x414D, 0x9563},
+ {0x414E, 0x5ED6},
+ {0x414F, 0x6599},
+ {0x4150, 0x5217},
+ {0x4151, 0x88C2},
+ {0x4152, 0x70C8},
+ {0x4153, 0x52A3},
+ {0x4154, 0x730E},
+ {0x4155, 0x7433},
+ {0x4156, 0x6797},
+ {0x4157, 0x78F7},
+ {0x4158, 0x9716},
+ {0x4159, 0x4E34},
+ {0x415A, 0x90BB},
+ {0x415B, 0x9CDE},
+ {0x415C, 0x6DCB},
+ {0x415D, 0x51DB},
+ {0x415E, 0x8D41},
+ {0x415F, 0x541D},
+ {0x4160, 0x62CE},
+ {0x4161, 0x73B2},
+ {0x4162, 0x83F1},
+ {0x4163, 0x96F6},
+ {0x4164, 0x9F84},
+ {0x4165, 0x94C3},
+ {0x4166, 0x4F36},
+ {0x4167, 0x7F9A},
+ {0x4168, 0x51CC},
+ {0x4169, 0x7075},
+ {0x416A, 0x9675},
+ {0x416B, 0x5CAD},
+ {0x416C, 0x9886},
+ {0x416D, 0x53E6},
+ {0x416E, 0x4EE4},
+ {0x416F, 0x6E9C},
+ {0x4170, 0x7409},
+ {0x4171, 0x69B4},
+ {0x4172, 0x786B},
+ {0x4173, 0x998F},
+ {0x4174, 0x7559},
+ {0x4175, 0x5218},
+ {0x4176, 0x7624},
+ {0x4177, 0x6D41},
+ {0x4178, 0x67F3},
+ {0x4179, 0x516D},
+ {0x417A, 0x9F99},
+ {0x417B, 0x804B},
+ {0x417C, 0x5499},
+ {0x417D, 0x7B3C},
+ {0x417E, 0x7ABF},
+ {0x4221, 0x9686},
+ {0x4222, 0x5784},
+ {0x4223, 0x62E2},
+ {0x4224, 0x9647},
+ {0x4225, 0x697C},
+ {0x4226, 0x5A04},
+ {0x4227, 0x6402},
+ {0x4228, 0x7BD3},
+ {0x4229, 0x6F0F},
+ {0x422A, 0x964B},
+ {0x422B, 0x82A6},
+ {0x422C, 0x5362},
+ {0x422D, 0x9885},
+ {0x422E, 0x5E90},
+ {0x422F, 0x7089},
+ {0x4230, 0x63B3},
+ {0x4231, 0x5364},
+ {0x4232, 0x864F},
+ {0x4233, 0x9C81},
+ {0x4234, 0x9E93},
+ {0x4235, 0x788C},
+ {0x4236, 0x9732},
+ {0x4237, 0x8DEF},
+ {0x4238, 0x8D42},
+ {0x4239, 0x9E7F},
+ {0x423A, 0x6F5E},
+ {0x423B, 0x7984},
+ {0x423C, 0x5F55},
+ {0x423D, 0x9646},
+ {0x423E, 0x622E},
+ {0x423F, 0x9A74},
+ {0x4240, 0x5415},
+ {0x4241, 0x94DD},
+ {0x4242, 0x4FA3},
+ {0x4243, 0x65C5},
+ {0x4244, 0x5C65},
+ {0x4245, 0x5C61},
+ {0x4246, 0x7F15},
+ {0x4247, 0x8651},
+ {0x4248, 0x6C2F},
+ {0x4249, 0x5F8B},
+ {0x424A, 0x7387},
+ {0x424B, 0x6EE4},
+ {0x424C, 0x7EFF},
+ {0x424D, 0x5CE6},
+ {0x424E, 0x631B},
+ {0x424F, 0x5B6A},
+ {0x4250, 0x6EE6},
+ {0x4251, 0x5375},
+ {0x4252, 0x4E71},
+ {0x4253, 0x63A0},
+ {0x4254, 0x7565},
+ {0x4255, 0x62A1},
+ {0x4256, 0x8F6E},
+ {0x4257, 0x4F26},
+ {0x4258, 0x4ED1},
+ {0x4259, 0x6CA6},
+ {0x425A, 0x7EB6},
+ {0x425B, 0x8BBA},
+ {0x425C, 0x841D},
+ {0x425D, 0x87BA},
+ {0x425E, 0x7F57},
+ {0x425F, 0x903B},
+ {0x4260, 0x9523},
+ {0x4261, 0x7BA9},
+ {0x4262, 0x9AA1},
+ {0x4263, 0x88F8},
+ {0x4264, 0x843D},
+ {0x4265, 0x6D1B},
+ {0x4266, 0x9A86},
+ {0x4267, 0x7EDC},
+ {0x4268, 0x5988},
+ {0x4269, 0x9EBB},
+ {0x426A, 0x739B},
+ {0x426B, 0x7801},
+ {0x426C, 0x8682},
+ {0x426D, 0x9A6C},
+ {0x426E, 0x9A82},
+ {0x426F, 0x561B},
+ {0x4270, 0x5417},
+ {0x4271, 0x57CB},
+ {0x4272, 0x4E70},
+ {0x4273, 0x9EA6},
+ {0x4274, 0x5356},
+ {0x4275, 0x8FC8},
+ {0x4276, 0x8109},
+ {0x4277, 0x7792},
+ {0x4278, 0x9992},
+ {0x4279, 0x86EE},
+ {0x427A, 0x6EE1},
+ {0x427B, 0x8513},
+ {0x427C, 0x66FC},
+ {0x427D, 0x6162},
+ {0x427E, 0x6F2B},
+ {0x4321, 0x8C29},
+ {0x4322, 0x8292},
+ {0x4323, 0x832B},
+ {0x4324, 0x76F2},
+ {0x4325, 0x6C13},
+ {0x4326, 0x5FD9},
+ {0x4327, 0x83BD},
+ {0x4328, 0x732B},
+ {0x4329, 0x8305},
+ {0x432A, 0x951A},
+ {0x432B, 0x6BDB},
+ {0x432C, 0x77DB},
+ {0x432D, 0x94C6},
+ {0x432E, 0x536F},
+ {0x432F, 0x8302},
+ {0x4330, 0x5192},
+ {0x4331, 0x5E3D},
+ {0x4332, 0x8C8C},
+ {0x4333, 0x8D38},
+ {0x4334, 0x4E48},
+ {0x4335, 0x73AB},
+ {0x4336, 0x679A},
+ {0x4337, 0x6885},
+ {0x4338, 0x9176},
+ {0x4339, 0x9709},
+ {0x433A, 0x7164},
+ {0x433B, 0x6CA1},
+ {0x433C, 0x7709},
+ {0x433D, 0x5A92},
+ {0x433E, 0x9541},
+ {0x433F, 0x6BCF},
+ {0x4340, 0x7F8E},
+ {0x4341, 0x6627},
+ {0x4342, 0x5BD0},
+ {0x4343, 0x59B9},
+ {0x4344, 0x5A9A},
+ {0x4345, 0x95E8},
+ {0x4346, 0x95F7},
+ {0x4347, 0x4EEC},
+ {0x4348, 0x840C},
+ {0x4349, 0x8499},
+ {0x434A, 0x6AAC},
+ {0x434B, 0x76DF},
+ {0x434C, 0x9530},
+ {0x434D, 0x731B},
+ {0x434E, 0x68A6},
+ {0x434F, 0x5B5F},
+ {0x4350, 0x772F},
+ {0x4351, 0x919A},
+ {0x4352, 0x9761},
+ {0x4353, 0x7CDC},
+ {0x4354, 0x8FF7},
+ {0x4355, 0x8C1C},
+ {0x4356, 0x5F25},
+ {0x4357, 0x7C73},
+ {0x4358, 0x79D8},
+ {0x4359, 0x89C5},
+ {0x435A, 0x6CCC},
+ {0x435B, 0x871C},
+ {0x435C, 0x5BC6},
+ {0x435D, 0x5E42},
+ {0x435E, 0x68C9},
+ {0x435F, 0x7720},
+ {0x4360, 0x7EF5},
+ {0x4361, 0x5195},
+ {0x4362, 0x514D},
+ {0x4363, 0x52C9},
+ {0x4364, 0x5A29},
+ {0x4365, 0x7F05},
+ {0x4366, 0x9762},
+ {0x4367, 0x82D7},
+ {0x4368, 0x63CF},
+ {0x4369, 0x7784},
+ {0x436A, 0x85D0},
+ {0x436B, 0x79D2},
+ {0x436C, 0x6E3A},
+ {0x436D, 0x5E99},
+ {0x436E, 0x5999},
+ {0x436F, 0x8511},
+ {0x4370, 0x706D},
+ {0x4371, 0x6C11},
+ {0x4372, 0x62BF},
+ {0x4373, 0x76BF},
+ {0x4374, 0x654F},
+ {0x4375, 0x60AF},
+ {0x4376, 0x95FD},
+ {0x4377, 0x660E},
+ {0x4378, 0x879F},
+ {0x4379, 0x9E23},
+ {0x437A, 0x94ED},
+ {0x437B, 0x540D},
+ {0x437C, 0x547D},
+ {0x437D, 0x8C2C},
+ {0x437E, 0x6478},
+ {0x4421, 0x6479},
+ {0x4422, 0x8611},
+ {0x4423, 0x6A21},
+ {0x4424, 0x819C},
+ {0x4425, 0x78E8},
+ {0x4426, 0x6469},
+ {0x4427, 0x9B54},
+ {0x4428, 0x62B9},
+ {0x4429, 0x672B},
+ {0x442A, 0x83AB},
+ {0x442B, 0x58A8},
+ {0x442C, 0x9ED8},
+ {0x442D, 0x6CAB},
+ {0x442E, 0x6F20},
+ {0x442F, 0x5BDE},
+ {0x4430, 0x964C},
+ {0x4431, 0x8C0B},
+ {0x4432, 0x725F},
+ {0x4433, 0x67D0},
+ {0x4434, 0x62C7},
+ {0x4435, 0x7261},
+ {0x4436, 0x4EA9},
+ {0x4437, 0x59C6},
+ {0x4438, 0x6BCD},
+ {0x4439, 0x5893},
+ {0x443A, 0x66AE},
+ {0x443B, 0x5E55},
+ {0x443C, 0x52DF},
+ {0x443D, 0x6155},
+ {0x443E, 0x6728},
+ {0x443F, 0x76EE},
+ {0x4440, 0x7766},
+ {0x4441, 0x7267},
+ {0x4442, 0x7A46},
+ {0x4443, 0x62FF},
+ {0x4444, 0x54EA},
+ {0x4445, 0x5450},
+ {0x4446, 0x94A0},
+ {0x4447, 0x90A3},
+ {0x4448, 0x5A1C},
+ {0x4449, 0x7EB3},
+ {0x444A, 0x6C16},
+ {0x444B, 0x4E43},
+ {0x444C, 0x5976},
+ {0x444D, 0x8010},
+ {0x444E, 0x5948},
+ {0x444F, 0x5357},
+ {0x4450, 0x7537},
+ {0x4451, 0x96BE},
+ {0x4452, 0x56CA},
+ {0x4453, 0x6320},
+ {0x4454, 0x8111},
+ {0x4455, 0x607C},
+ {0x4456, 0x95F9},
+ {0x4457, 0x6DD6},
+ {0x4458, 0x5462},
+ {0x4459, 0x9981},
+ {0x445A, 0x5185},
+ {0x445B, 0x5AE9},
+ {0x445C, 0x80FD},
+ {0x445D, 0x59AE},
+ {0x445E, 0x9713},
+ {0x445F, 0x502A},
+ {0x4460, 0x6CE5},
+ {0x4461, 0x5C3C},
+ {0x4462, 0x62DF},
+ {0x4463, 0x4F60},
+ {0x4464, 0x533F},
+ {0x4465, 0x817B},
+ {0x4466, 0x9006},
+ {0x4467, 0x6EBA},
+ {0x4468, 0x852B},
+ {0x4469, 0x62C8},
+ {0x446A, 0x5E74},
+ {0x446B, 0x78BE},
+ {0x446C, 0x64B5},
+ {0x446D, 0x637B},
+ {0x446E, 0x5FF5},
+ {0x446F, 0x5A18},
+ {0x4470, 0x917F},
+ {0x4471, 0x9E1F},
+ {0x4472, 0x5C3F},
+ {0x4473, 0x634F},
+ {0x4474, 0x8042},
+ {0x4475, 0x5B7D},
+ {0x4476, 0x556E},
+ {0x4477, 0x954A},
+ {0x4478, 0x954D},
+ {0x4479, 0x6D85},
+ {0x447A, 0x60A8},
+ {0x447B, 0x67E0},
+ {0x447C, 0x72DE},
+ {0x447D, 0x51DD},
+ {0x447E, 0x5B81},
+ {0x4521, 0x62E7},
+ {0x4522, 0x6CDE},
+ {0x4523, 0x725B},
+ {0x4524, 0x626D},
+ {0x4525, 0x94AE},
+ {0x4526, 0x7EBD},
+ {0x4527, 0x8113},
+ {0x4528, 0x6D53},
+ {0x4529, 0x519C},
+ {0x452A, 0x5F04},
+ {0x452B, 0x5974},
+ {0x452C, 0x52AA},
+ {0x452D, 0x6012},
+ {0x452E, 0x5973},
+ {0x452F, 0x6696},
+ {0x4530, 0x8650},
+ {0x4531, 0x759F},
+ {0x4532, 0x632A},
+ {0x4533, 0x61E6},
+ {0x4534, 0x7CEF},
+ {0x4535, 0x8BFA},
+ {0x4536, 0x54E6},
+ {0x4537, 0x6B27},
+ {0x4538, 0x9E25},
+ {0x4539, 0x6BB4},
+ {0x453A, 0x85D5},
+ {0x453B, 0x5455},
+ {0x453C, 0x5076},
+ {0x453D, 0x6CA4},
+ {0x453E, 0x556A},
+ {0x453F, 0x8DB4},
+ {0x4540, 0x722C},
+ {0x4541, 0x5E15},
+ {0x4542, 0x6015},
+ {0x4543, 0x7436},
+ {0x4544, 0x62CD},
+ {0x4545, 0x6392},
+ {0x4546, 0x724C},
+ {0x4547, 0x5F98},
+ {0x4548, 0x6E43},
+ {0x4549, 0x6D3E},
+ {0x454A, 0x6500},
+ {0x454B, 0x6F58},
+ {0x454C, 0x76D8},
+ {0x454D, 0x78D0},
+ {0x454E, 0x76FC},
+ {0x454F, 0x7554},
+ {0x4550, 0x5224},
+ {0x4551, 0x53DB},
+ {0x4552, 0x4E53},
+ {0x4553, 0x5E9E},
+ {0x4554, 0x65C1},
+ {0x4555, 0x802A},
+ {0x4556, 0x80D6},
+ {0x4557, 0x629B},
+ {0x4558, 0x5486},
+ {0x4559, 0x5228},
+ {0x455A, 0x70AE},
+ {0x455B, 0x888D},
+ {0x455C, 0x8DD1},
+ {0x455D, 0x6CE1},
+ {0x455E, 0x5478},
+ {0x455F, 0x80DA},
+ {0x4560, 0x57F9},
+ {0x4561, 0x88F4},
+ {0x4562, 0x8D54},
+ {0x4563, 0x966A},
+ {0x4564, 0x914D},
+ {0x4565, 0x4F69},
+ {0x4566, 0x6C9B},
+ {0x4567, 0x55B7},
+ {0x4568, 0x76C6},
+ {0x4569, 0x7830},
+ {0x456A, 0x62A8},
+ {0x456B, 0x70F9},
+ {0x456C, 0x6F8E},
+ {0x456D, 0x5F6D},
+ {0x456E, 0x84EC},
+ {0x456F, 0x68DA},
+ {0x4570, 0x787C},
+ {0x4571, 0x7BF7},
+ {0x4572, 0x81A8},
+ {0x4573, 0x670B},
+ {0x4574, 0x9E4F},
+ {0x4575, 0x6367},
+ {0x4576, 0x78B0},
+ {0x4577, 0x576F},
+ {0x4578, 0x7812},
+ {0x4579, 0x9739},
+ {0x457A, 0x6279},
+ {0x457B, 0x62AB},
+ {0x457C, 0x5288},
+ {0x457D, 0x7435},
+ {0x457E, 0x6BD7},
+ {0x4621, 0x5564},
+ {0x4622, 0x813E},
+ {0x4623, 0x75B2},
+ {0x4624, 0x76AE},
+ {0x4625, 0x5339},
+ {0x4626, 0x75DE},
+ {0x4627, 0x50FB},
+ {0x4628, 0x5C41},
+ {0x4629, 0x8B6C},
+ {0x462A, 0x7BC7},
+ {0x462B, 0x504F},
+ {0x462C, 0x7247},
+ {0x462D, 0x9A97},
+ {0x462E, 0x98D8},
+ {0x462F, 0x6F02},
+ {0x4630, 0x74E2},
+ {0x4631, 0x7968},
+ {0x4632, 0x6487},
+ {0x4633, 0x77A5},
+ {0x4634, 0x62FC},
+ {0x4635, 0x9891},
+ {0x4636, 0x8D2B},
+ {0x4637, 0x54C1},
+ {0x4638, 0x8058},
+ {0x4639, 0x4E52},
+ {0x463A, 0x576A},
+ {0x463B, 0x82F9},
+ {0x463C, 0x840D},
+ {0x463D, 0x5E73},
+ {0x463E, 0x51ED},
+ {0x463F, 0x74F6},
+ {0x4640, 0x8BC4},
+ {0x4641, 0x5C4F},
+ {0x4642, 0x5761},
+ {0x4643, 0x6CFC},
+ {0x4644, 0x9887},
+ {0x4645, 0x5A46},
+ {0x4646, 0x7834},
+ {0x4647, 0x9B44},
+ {0x4648, 0x8FEB},
+ {0x4649, 0x7C95},
+ {0x464A, 0x5256},
+ {0x464B, 0x6251},
+ {0x464C, 0x94FA},
+ {0x464D, 0x4EC6},
+ {0x464E, 0x8386},
+ {0x464F, 0x8461},
+ {0x4650, 0x83E9},
+ {0x4651, 0x84B2},
+ {0x4652, 0x57D4},
+ {0x4653, 0x6734},
+ {0x4654, 0x5703},
+ {0x4655, 0x666E},
+ {0x4656, 0x6D66},
+ {0x4657, 0x8C31},
+ {0x4658, 0x66DD},
+ {0x4659, 0x7011},
+ {0x465A, 0x671F},
+ {0x465B, 0x6B3A},
+ {0x465C, 0x6816},
+ {0x465D, 0x621A},
+ {0x465E, 0x59BB},
+ {0x465F, 0x4E03},
+ {0x4660, 0x51C4},
+ {0x4661, 0x6F06},
+ {0x4662, 0x67D2},
+ {0x4663, 0x6C8F},
+ {0x4664, 0x5176},
+ {0x4665, 0x68CB},
+ {0x4666, 0x5947},
+ {0x4667, 0x6B67},
+ {0x4668, 0x7566},
+ {0x4669, 0x5D0E},
+ {0x466A, 0x8110},
+ {0x466B, 0x9F50},
+ {0x466C, 0x65D7},
+ {0x466D, 0x7948},
+ {0x466E, 0x7941},
+ {0x466F, 0x9A91},
+ {0x4670, 0x8D77},
+ {0x4671, 0x5C82},
+ {0x4672, 0x4E5E},
+ {0x4673, 0x4F01},
+ {0x4674, 0x542F},
+ {0x4675, 0x5951},
+ {0x4676, 0x780C},
+ {0x4677, 0x5668},
+ {0x4678, 0x6C14},
+ {0x4679, 0x8FC4},
+ {0x467A, 0x5F03},
+ {0x467B, 0x6C7D},
+ {0x467C, 0x6CE3},
+ {0x467D, 0x8BAB},
+ {0x467E, 0x6390},
+ {0x4721, 0x6070},
+ {0x4722, 0x6D3D},
+ {0x4723, 0x7275},
+ {0x4724, 0x6266},
+ {0x4725, 0x948E},
+ {0x4726, 0x94C5},
+ {0x4727, 0x5343},
+ {0x4728, 0x8FC1},
+ {0x4729, 0x7B7E},
+ {0x472A, 0x4EDF},
+ {0x472B, 0x8C26},
+ {0x472C, 0x4E7E},
+ {0x472D, 0x9ED4},
+ {0x472E, 0x94B1},
+ {0x472F, 0x94B3},
+ {0x4730, 0x524D},
+ {0x4731, 0x6F5C},
+ {0x4732, 0x9063},
+ {0x4733, 0x6D45},
+ {0x4734, 0x8C34},
+ {0x4735, 0x5811},
+ {0x4736, 0x5D4C},
+ {0x4737, 0x6B20},
+ {0x4738, 0x6B49},
+ {0x4739, 0x67AA},
+ {0x473A, 0x545B},
+ {0x473B, 0x8154},
+ {0x473C, 0x7F8C},
+ {0x473D, 0x5899},
+ {0x473E, 0x8537},
+ {0x473F, 0x5F3A},
+ {0x4740, 0x62A2},
+ {0x4741, 0x6A47},
+ {0x4742, 0x9539},
+ {0x4743, 0x6572},
+ {0x4744, 0x6084},
+ {0x4745, 0x6865},
+ {0x4746, 0x77A7},
+ {0x4747, 0x4E54},
+ {0x4748, 0x4FA8},
+ {0x4749, 0x5DE7},
+ {0x474A, 0x9798},
+ {0x474B, 0x64AC},
+ {0x474C, 0x7FD8},
+ {0x474D, 0x5CED},
+ {0x474E, 0x4FCF},
+ {0x474F, 0x7A8D},
+ {0x4750, 0x5207},
+ {0x4751, 0x8304},
+ {0x4752, 0x4E14},
+ {0x4753, 0x602F},
+ {0x4754, 0x7A83},
+ {0x4755, 0x94A6},
+ {0x4756, 0x4FB5},
+ {0x4757, 0x4EB2},
+ {0x4758, 0x79E6},
+ {0x4759, 0x7434},
+ {0x475A, 0x52E4},
+ {0x475B, 0x82B9},
+ {0x475C, 0x64D2},
+ {0x475D, 0x79BD},
+ {0x475E, 0x5BDD},
+ {0x475F, 0x6C81},
+ {0x4760, 0x9752},
+ {0x4761, 0x8F7B},
+ {0x4762, 0x6C22},
+ {0x4763, 0x503E},
+ {0x4764, 0x537F},
+ {0x4765, 0x6E05},
+ {0x4766, 0x64CE},
+ {0x4767, 0x6674},
+ {0x4768, 0x6C30},
+ {0x4769, 0x60C5},
+ {0x476A, 0x9877},
+ {0x476B, 0x8BF7},
+ {0x476C, 0x5E86},
+ {0x476D, 0x743C},
+ {0x476E, 0x7A77},
+ {0x476F, 0x79CB},
+ {0x4770, 0x4E18},
+ {0x4771, 0x90B1},
+ {0x4772, 0x7403},
+ {0x4773, 0x6C42},
+ {0x4774, 0x56DA},
+ {0x4775, 0x914B},
+ {0x4776, 0x6CC5},
+ {0x4777, 0x8D8B},
+ {0x4778, 0x533A},
+ {0x4779, 0x86C6},
+ {0x477A, 0x66F2},
+ {0x477B, 0x8EAF},
+ {0x477C, 0x5C48},
+ {0x477D, 0x9A71},
+ {0x477E, 0x6E20},
+ {0x4821, 0x53D6},
+ {0x4822, 0x5A36},
+ {0x4823, 0x9F8B},
+ {0x4824, 0x8DA3},
+ {0x4825, 0x53BB},
+ {0x4826, 0x5708},
+ {0x4827, 0x98A7},
+ {0x4828, 0x6743},
+ {0x4829, 0x919B},
+ {0x482A, 0x6CC9},
+ {0x482B, 0x5168},
+ {0x482C, 0x75CA},
+ {0x482D, 0x62F3},
+ {0x482E, 0x72AC},
+ {0x482F, 0x5238},
+ {0x4830, 0x529D},
+ {0x4831, 0x7F3A},
+ {0x4832, 0x7094},
+ {0x4833, 0x7638},
+ {0x4834, 0x5374},
+ {0x4835, 0x9E4A},
+ {0x4836, 0x69B7},
+ {0x4837, 0x786E},
+ {0x4838, 0x96C0},
+ {0x4839, 0x88D9},
+ {0x483A, 0x7FA4},
+ {0x483B, 0x7136},
+ {0x483C, 0x71C3},
+ {0x483D, 0x5189},
+ {0x483E, 0x67D3},
+ {0x483F, 0x74E4},
+ {0x4840, 0x58E4},
+ {0x4841, 0x6518},
+ {0x4842, 0x56B7},
+ {0x4843, 0x8BA9},
+ {0x4844, 0x9976},
+ {0x4845, 0x6270},
+ {0x4846, 0x7ED5},
+ {0x4847, 0x60F9},
+ {0x4848, 0x70ED},
+ {0x4849, 0x58EC},
+ {0x484A, 0x4EC1},
+ {0x484B, 0x4EBA},
+ {0x484C, 0x5FCD},
+ {0x484D, 0x97E7},
+ {0x484E, 0x4EFB},
+ {0x484F, 0x8BA4},
+ {0x4850, 0x5203},
+ {0x4851, 0x598A},
+ {0x4852, 0x7EAB},
+ {0x4853, 0x6254},
+ {0x4854, 0x4ECD},
+ {0x4855, 0x65E5},
+ {0x4856, 0x620E},
+ {0x4857, 0x8338},
+ {0x4858, 0x84C9},
+ {0x4859, 0x8363},
+ {0x485A, 0x878D},
+ {0x485B, 0x7194},
+ {0x485C, 0x6EB6},
+ {0x485D, 0x5BB9},
+ {0x485E, 0x7ED2},
+ {0x485F, 0x5197},
+ {0x4860, 0x63C9},
+ {0x4861, 0x67D4},
+ {0x4862, 0x8089},
+ {0x4863, 0x8339},
+ {0x4864, 0x8815},
+ {0x4865, 0x5112},
+ {0x4866, 0x5B7A},
+ {0x4867, 0x5982},
+ {0x4868, 0x8FB1},
+ {0x4869, 0x4E73},
+ {0x486A, 0x6C5D},
+ {0x486B, 0x5165},
+ {0x486C, 0x8925},
+ {0x486D, 0x8F6F},
+ {0x486E, 0x962E},
+ {0x486F, 0x854A},
+ {0x4870, 0x745E},
+ {0x4871, 0x9510},
+ {0x4872, 0x95F0},
+ {0x4873, 0x6DA6},
+ {0x4874, 0x82E5},
+ {0x4875, 0x5F31},
+ {0x4876, 0x6492},
+ {0x4877, 0x6D12},
+ {0x4878, 0x8428},
+ {0x4879, 0x816E},
+ {0x487A, 0x9CC3},
+ {0x487B, 0x585E},
+ {0x487C, 0x8D5B},
+ {0x487D, 0x4E09},
+ {0x487E, 0x53C1},
+ {0x4921, 0x4F1E},
+ {0x4922, 0x6563},
+ {0x4923, 0x6851},
+ {0x4924, 0x55D3},
+ {0x4925, 0x4E27},
+ {0x4926, 0x6414},
+ {0x4927, 0x9A9A},
+ {0x4928, 0x626B},
+ {0x4929, 0x5AC2},
+ {0x492A, 0x745F},
+ {0x492B, 0x8272},
+ {0x492C, 0x6DA9},
+ {0x492D, 0x68EE},
+ {0x492E, 0x50E7},
+ {0x492F, 0x838E},
+ {0x4930, 0x7802},
+ {0x4931, 0x6740},
+ {0x4932, 0x5239},
+ {0x4933, 0x6C99},
+ {0x4934, 0x7EB1},
+ {0x4935, 0x50BB},
+ {0x4936, 0x5565},
+ {0x4937, 0x715E},
+ {0x4938, 0x7B5B},
+ {0x4939, 0x6652},
+ {0x493A, 0x73CA},
+ {0x493B, 0x82EB},
+ {0x493C, 0x6749},
+ {0x493D, 0x5C71},
+ {0x493E, 0x5220},
+ {0x493F, 0x717D},
+ {0x4940, 0x886B},
+ {0x4941, 0x95EA},
+ {0x4942, 0x9655},
+ {0x4943, 0x64C5},
+ {0x4944, 0x8D61},
+ {0x4945, 0x81B3},
+ {0x4946, 0x5584},
+ {0x4947, 0x6C55},
+ {0x4948, 0x6247},
+ {0x4949, 0x7F2E},
+ {0x494A, 0x5892},
+ {0x494B, 0x4F24},
+ {0x494C, 0x5546},
+ {0x494D, 0x8D4F},
+ {0x494E, 0x664C},
+ {0x494F, 0x4E0A},
+ {0x4950, 0x5C1A},
+ {0x4951, 0x88F3},
+ {0x4952, 0x68A2},
+ {0x4953, 0x634E},
+ {0x4954, 0x7A0D},
+ {0x4955, 0x70E7},
+ {0x4956, 0x828D},
+ {0x4957, 0x52FA},
+ {0x4958, 0x97F6},
+ {0x4959, 0x5C11},
+ {0x495A, 0x54E8},
+ {0x495B, 0x90B5},
+ {0x495C, 0x7ECD},
+ {0x495D, 0x5962},
+ {0x495E, 0x8D4A},
+ {0x495F, 0x86C7},
+ {0x4960, 0x820C},
+ {0x4961, 0x820D},
+ {0x4962, 0x8D66},
+ {0x4963, 0x6444},
+ {0x4964, 0x5C04},
+ {0x4965, 0x6151},
+ {0x4966, 0x6D89},
+ {0x4967, 0x793E},
+ {0x4968, 0x8BBE},
+ {0x4969, 0x7837},
+ {0x496A, 0x7533},
+ {0x496B, 0x547B},
+ {0x496C, 0x4F38},
+ {0x496D, 0x8EAB},
+ {0x496E, 0x6DF1},
+ {0x496F, 0x5A20},
+ {0x4970, 0x7EC5},
+ {0x4971, 0x795E},
+ {0x4972, 0x6C88},
+ {0x4973, 0x5BA1},
+ {0x4974, 0x5A76},
+ {0x4975, 0x751A},
+ {0x4976, 0x80BE},
+ {0x4977, 0x614E},
+ {0x4978, 0x6E17},
+ {0x4979, 0x58F0},
+ {0x497A, 0x751F},
+ {0x497B, 0x7525},
+ {0x497C, 0x7272},
+ {0x497D, 0x5347},
+ {0x497E, 0x7EF3},
+ {0x4A21, 0x7701},
+ {0x4A22, 0x76DB},
+ {0x4A23, 0x5269},
+ {0x4A24, 0x80DC},
+ {0x4A25, 0x5723},
+ {0x4A26, 0x5E08},
+ {0x4A27, 0x5931},
+ {0x4A28, 0x72EE},
+ {0x4A29, 0x65BD},
+ {0x4A2A, 0x6E7F},
+ {0x4A2B, 0x8BD7},
+ {0x4A2C, 0x5C38},
+ {0x4A2D, 0x8671},
+ {0x4A2E, 0x5341},
+ {0x4A2F, 0x77F3},
+ {0x4A30, 0x62FE},
+ {0x4A31, 0x65F6},
+ {0x4A32, 0x4EC0},
+ {0x4A33, 0x98DF},
+ {0x4A34, 0x8680},
+ {0x4A35, 0x5B9E},
+ {0x4A36, 0x8BC6},
+ {0x4A37, 0x53F2},
+ {0x4A38, 0x77E2},
+ {0x4A39, 0x4F7F},
+ {0x4A3A, 0x5C4E},
+ {0x4A3B, 0x9A76},
+ {0x4A3C, 0x59CB},
+ {0x4A3D, 0x5F0F},
+ {0x4A3E, 0x793A},
+ {0x4A3F, 0x58EB},
+ {0x4A40, 0x4E16},
+ {0x4A41, 0x67FF},
+ {0x4A42, 0x4E8B},
+ {0x4A43, 0x62ED},
+ {0x4A44, 0x8A93},
+ {0x4A45, 0x901D},
+ {0x4A46, 0x52BF},
+ {0x4A47, 0x662F},
+ {0x4A48, 0x55DC},
+ {0x4A49, 0x566C},
+ {0x4A4A, 0x9002},
+ {0x4A4B, 0x4ED5},
+ {0x4A4C, 0x4F8D},
+ {0x4A4D, 0x91CA},
+ {0x4A4E, 0x9970},
+ {0x4A4F, 0x6C0F},
+ {0x4A50, 0x5E02},
+ {0x4A51, 0x6043},
+ {0x4A52, 0x5BA4},
+ {0x4A53, 0x89C6},
+ {0x4A54, 0x8BD5},
+ {0x4A55, 0x6536},
+ {0x4A56, 0x624B},
+ {0x4A57, 0x9996},
+ {0x4A58, 0x5B88},
+ {0x4A59, 0x5BFF},
+ {0x4A5A, 0x6388},
+ {0x4A5B, 0x552E},
+ {0x4A5C, 0x53D7},
+ {0x4A5D, 0x7626},
+ {0x4A5E, 0x517D},
+ {0x4A5F, 0x852C},
+ {0x4A60, 0x67A2},
+ {0x4A61, 0x68B3},
+ {0x4A62, 0x6B8A},
+ {0x4A63, 0x6292},
+ {0x4A64, 0x8F93},
+ {0x4A65, 0x53D4},
+ {0x4A66, 0x8212},
+ {0x4A67, 0x6DD1},
+ {0x4A68, 0x758F},
+ {0x4A69, 0x4E66},
+ {0x4A6A, 0x8D4E},
+ {0x4A6B, 0x5B70},
+ {0x4A6C, 0x719F},
+ {0x4A6D, 0x85AF},
+ {0x4A6E, 0x6691},
+ {0x4A6F, 0x66D9},
+ {0x4A70, 0x7F72},
+ {0x4A71, 0x8700},
+ {0x4A72, 0x9ECD},
+ {0x4A73, 0x9F20},
+ {0x4A74, 0x5C5E},
+ {0x4A75, 0x672F},
+ {0x4A76, 0x8FF0},
+ {0x4A77, 0x6811},
+ {0x4A78, 0x675F},
+ {0x4A79, 0x620D},
+ {0x4A7A, 0x7AD6},
+ {0x4A7B, 0x5885},
+ {0x4A7C, 0x5EB6},
+ {0x4A7D, 0x6570},
+ {0x4A7E, 0x6F31},
+ {0x4B21, 0x6055},
+ {0x4B22, 0x5237},
+ {0x4B23, 0x800D},
+ {0x4B24, 0x6454},
+ {0x4B25, 0x8870},
+ {0x4B26, 0x7529},
+ {0x4B27, 0x5E05},
+ {0x4B28, 0x6813},
+ {0x4B29, 0x62F4},
+ {0x4B2A, 0x971C},
+ {0x4B2B, 0x53CC},
+ {0x4B2C, 0x723D},
+ {0x4B2D, 0x8C01},
+ {0x4B2E, 0x6C34},
+ {0x4B2F, 0x7761},
+ {0x4B30, 0x7A0E},
+ {0x4B31, 0x542E},
+ {0x4B32, 0x77AC},
+ {0x4B33, 0x987A},
+ {0x4B34, 0x821C},
+ {0x4B35, 0x8BF4},
+ {0x4B36, 0x7855},
+ {0x4B37, 0x6714},
+ {0x4B38, 0x70C1},
+ {0x4B39, 0x65AF},
+ {0x4B3A, 0x6495},
+ {0x4B3B, 0x5636},
+ {0x4B3C, 0x601D},
+ {0x4B3D, 0x79C1},
+ {0x4B3E, 0x53F8},
+ {0x4B3F, 0x4E1D},
+ {0x4B40, 0x6B7B},
+ {0x4B41, 0x8086},
+ {0x4B42, 0x5BFA},
+ {0x4B43, 0x55E3},
+ {0x4B44, 0x56DB},
+ {0x4B45, 0x4F3A},
+ {0x4B46, 0x4F3C},
+ {0x4B47, 0x9972},
+ {0x4B48, 0x5DF3},
+ {0x4B49, 0x677E},
+ {0x4B4A, 0x8038},
+ {0x4B4B, 0x6002},
+ {0x4B4C, 0x9882},
+ {0x4B4D, 0x9001},
+ {0x4B4E, 0x5B8B},
+ {0x4B4F, 0x8BBC},
+ {0x4B50, 0x8BF5},
+ {0x4B51, 0x641C},
+ {0x4B52, 0x8258},
+ {0x4B53, 0x64DE},
+ {0x4B54, 0x55FD},
+ {0x4B55, 0x82CF},
+ {0x4B56, 0x9165},
+ {0x4B57, 0x4FD7},
+ {0x4B58, 0x7D20},
+ {0x4B59, 0x901F},
+ {0x4B5A, 0x7C9F},
+ {0x4B5B, 0x50F3},
+ {0x4B5C, 0x5851},
+ {0x4B5D, 0x6EAF},
+ {0x4B5E, 0x5BBF},
+ {0x4B5F, 0x8BC9},
+ {0x4B60, 0x8083},
+ {0x4B61, 0x9178},
+ {0x4B62, 0x849C},
+ {0x4B63, 0x7B97},
+ {0x4B64, 0x867D},
+ {0x4B65, 0x968B},
+ {0x4B66, 0x968F},
+ {0x4B67, 0x7EE5},
+ {0x4B68, 0x9AD3},
+ {0x4B69, 0x788E},
+ {0x4B6A, 0x5C81},
+ {0x4B6B, 0x7A57},
+ {0x4B6C, 0x9042},
+ {0x4B6D, 0x96A7},
+ {0x4B6E, 0x795F},
+ {0x4B6F, 0x5B59},
+ {0x4B70, 0x635F},
+ {0x4B71, 0x7B0B},
+ {0x4B72, 0x84D1},
+ {0x4B73, 0x68AD},
+ {0x4B74, 0x5506},
+ {0x4B75, 0x7F29},
+ {0x4B76, 0x7410},
+ {0x4B77, 0x7D22},
+ {0x4B78, 0x9501},
+ {0x4B79, 0x6240},
+ {0x4B7A, 0x584C},
+ {0x4B7B, 0x4ED6},
+ {0x4B7C, 0x5B83},
+ {0x4B7D, 0x5979},
+ {0x4B7E, 0x5854},
+ {0x4C21, 0x736D},
+ {0x4C22, 0x631E},
+ {0x4C23, 0x8E4B},
+ {0x4C24, 0x8E0F},
+ {0x4C25, 0x80CE},
+ {0x4C26, 0x82D4},
+ {0x4C27, 0x62AC},
+ {0x4C28, 0x53F0},
+ {0x4C29, 0x6CF0},
+ {0x4C2A, 0x915E},
+ {0x4C2B, 0x592A},
+ {0x4C2C, 0x6001},
+ {0x4C2D, 0x6C70},
+ {0x4C2E, 0x574D},
+ {0x4C2F, 0x644A},
+ {0x4C30, 0x8D2A},
+ {0x4C31, 0x762B},
+ {0x4C32, 0x6EE9},
+ {0x4C33, 0x575B},
+ {0x4C34, 0x6A80},
+ {0x4C35, 0x75F0},
+ {0x4C36, 0x6F6D},
+ {0x4C37, 0x8C2D},
+ {0x4C38, 0x8C08},
+ {0x4C39, 0x5766},
+ {0x4C3A, 0x6BEF},
+ {0x4C3B, 0x8892},
+ {0x4C3C, 0x78B3},
+ {0x4C3D, 0x63A2},
+ {0x4C3E, 0x53F9},
+ {0x4C3F, 0x70AD},
+ {0x4C40, 0x6C64},
+ {0x4C41, 0x5858},
+ {0x4C42, 0x642A},
+ {0x4C43, 0x5802},
+ {0x4C44, 0x68E0},
+ {0x4C45, 0x819B},
+ {0x4C46, 0x5510},
+ {0x4C47, 0x7CD6},
+ {0x4C48, 0x5018},
+ {0x4C49, 0x8EBA},
+ {0x4C4A, 0x6DCC},
+ {0x4C4B, 0x8D9F},
+ {0x4C4C, 0x70EB},
+ {0x4C4D, 0x638F},
+ {0x4C4E, 0x6D9B},
+ {0x4C4F, 0x6ED4},
+ {0x4C50, 0x7EE6},
+ {0x4C51, 0x8404},
+ {0x4C52, 0x6843},
+ {0x4C53, 0x9003},
+ {0x4C54, 0x6DD8},
+ {0x4C55, 0x9676},
+ {0x4C56, 0x8BA8},
+ {0x4C57, 0x5957},
+ {0x4C58, 0x7279},
+ {0x4C59, 0x85E4},
+ {0x4C5A, 0x817E},
+ {0x4C5B, 0x75BC},
+ {0x4C5C, 0x8A8A},
+ {0x4C5D, 0x68AF},
+ {0x4C5E, 0x5254},
+ {0x4C5F, 0x8E22},
+ {0x4C60, 0x9511},
+ {0x4C61, 0x63D0},
+ {0x4C62, 0x9898},
+ {0x4C63, 0x8E44},
+ {0x4C64, 0x557C},
+ {0x4C65, 0x4F53},
+ {0x4C66, 0x66FF},
+ {0x4C67, 0x568F},
+ {0x4C68, 0x60D5},
+ {0x4C69, 0x6D95},
+ {0x4C6A, 0x5243},
+ {0x4C6B, 0x5C49},
+ {0x4C6C, 0x5929},
+ {0x4C6D, 0x6DFB},
+ {0x4C6E, 0x586B},
+ {0x4C6F, 0x7530},
+ {0x4C70, 0x751C},
+ {0x4C71, 0x606C},
+ {0x4C72, 0x8214},
+ {0x4C73, 0x8146},
+ {0x4C74, 0x6311},
+ {0x4C75, 0x6761},
+ {0x4C76, 0x8FE2},
+ {0x4C77, 0x773A},
+ {0x4C78, 0x8DF3},
+ {0x4C79, 0x8D34},
+ {0x4C7A, 0x94C1},
+ {0x4C7B, 0x5E16},
+ {0x4C7C, 0x5385},
+ {0x4C7D, 0x542C},
+ {0x4C7E, 0x70C3},
+ {0x4D21, 0x6C40},
+ {0x4D22, 0x5EF7},
+ {0x4D23, 0x505C},
+ {0x4D24, 0x4EAD},
+ {0x4D25, 0x5EAD},
+ {0x4D26, 0x633A},
+ {0x4D27, 0x8247},
+ {0x4D28, 0x901A},
+ {0x4D29, 0x6850},
+ {0x4D2A, 0x916E},
+ {0x4D2B, 0x77B3},
+ {0x4D2C, 0x540C},
+ {0x4D2D, 0x94DC},
+ {0x4D2E, 0x5F64},
+ {0x4D2F, 0x7AE5},
+ {0x4D30, 0x6876},
+ {0x4D31, 0x6345},
+ {0x4D32, 0x7B52},
+ {0x4D33, 0x7EDF},
+ {0x4D34, 0x75DB},
+ {0x4D35, 0x5077},
+ {0x4D36, 0x6295},
+ {0x4D37, 0x5934},
+ {0x4D38, 0x900F},
+ {0x4D39, 0x51F8},
+ {0x4D3A, 0x79C3},
+ {0x4D3B, 0x7A81},
+ {0x4D3C, 0x56FE},
+ {0x4D3D, 0x5F92},
+ {0x4D3E, 0x9014},
+ {0x4D3F, 0x6D82},
+ {0x4D40, 0x5C60},
+ {0x4D41, 0x571F},
+ {0x4D42, 0x5410},
+ {0x4D43, 0x5154},
+ {0x4D44, 0x6E4D},
+ {0x4D45, 0x56E2},
+ {0x4D46, 0x63A8},
+ {0x4D47, 0x9893},
+ {0x4D48, 0x817F},
+ {0x4D49, 0x8715},
+ {0x4D4A, 0x892A},
+ {0x4D4B, 0x9000},
+ {0x4D4C, 0x541E},
+ {0x4D4D, 0x5C6F},
+ {0x4D4E, 0x81C0},
+ {0x4D4F, 0x62D6},
+ {0x4D50, 0x6258},
+ {0x4D51, 0x8131},
+ {0x4D52, 0x9E35},
+ {0x4D53, 0x9640},
+ {0x4D54, 0x9A6E},
+ {0x4D55, 0x9A7C},
+ {0x4D56, 0x692D},
+ {0x4D57, 0x59A5},
+ {0x4D58, 0x62D3},
+ {0x4D59, 0x553E},
+ {0x4D5A, 0x6316},
+ {0x4D5B, 0x54C7},
+ {0x4D5C, 0x86D9},
+ {0x4D5D, 0x6D3C},
+ {0x4D5E, 0x5A03},
+ {0x4D5F, 0x74E6},
+ {0x4D60, 0x889C},
+ {0x4D61, 0x6B6A},
+ {0x4D62, 0x5916},
+ {0x4D63, 0x8C4C},
+ {0x4D64, 0x5F2F},
+ {0x4D65, 0x6E7E},
+ {0x4D66, 0x73A9},
+ {0x4D67, 0x987D},
+ {0x4D68, 0x4E38},
+ {0x4D69, 0x70F7},
+ {0x4D6A, 0x5B8C},
+ {0x4D6B, 0x7897},
+ {0x4D6C, 0x633D},
+ {0x4D6D, 0x665A},
+ {0x4D6E, 0x7696},
+ {0x4D6F, 0x60CB},
+ {0x4D70, 0x5B9B},
+ {0x4D71, 0x5A49},
+ {0x4D72, 0x4E07},
+ {0x4D73, 0x8155},
+ {0x4D74, 0x6C6A},
+ {0x4D75, 0x738B},
+ {0x4D76, 0x4EA1},
+ {0x4D77, 0x6789},
+ {0x4D78, 0x7F51},
+ {0x4D79, 0x5F80},
+ {0x4D7A, 0x65FA},
+ {0x4D7B, 0x671B},
+ {0x4D7C, 0x5FD8},
+ {0x4D7D, 0x5984},
+ {0x4D7E, 0x5A01},
+ {0x4E21, 0x5DCD},
+ {0x4E22, 0x5FAE},
+ {0x4E23, 0x5371},
+ {0x4E24, 0x97E6},
+ {0x4E25, 0x8FDD},
+ {0x4E26, 0x6845},
+ {0x4E27, 0x56F4},
+ {0x4E28, 0x552F},
+ {0x4E29, 0x60DF},
+ {0x4E2A, 0x4E3A},
+ {0x4E2B, 0x6F4D},
+ {0x4E2C, 0x7EF4},
+ {0x4E2D, 0x82C7},
+ {0x4E2E, 0x840E},
+ {0x4E2F, 0x59D4},
+ {0x4E30, 0x4F1F},
+ {0x4E31, 0x4F2A},
+ {0x4E32, 0x5C3E},
+ {0x4E33, 0x7EAC},
+ {0x4E34, 0x672A},
+ {0x4E35, 0x851A},
+ {0x4E36, 0x5473},
+ {0x4E37, 0x754F},
+ {0x4E38, 0x80C3},
+ {0x4E39, 0x5582},
+ {0x4E3A, 0x9B4F},
+ {0x4E3B, 0x4F4D},
+ {0x4E3C, 0x6E2D},
+ {0x4E3D, 0x8C13},
+ {0x4E3E, 0x5C09},
+ {0x4E3F, 0x6170},
+ {0x4E40, 0x536B},
+ {0x4E41, 0x761F},
+ {0x4E42, 0x6E29},
+ {0x4E43, 0x868A},
+ {0x4E44, 0x6587},
+ {0x4E45, 0x95FB},
+ {0x4E46, 0x7EB9},
+ {0x4E47, 0x543B},
+ {0x4E48, 0x7A33},
+ {0x4E49, 0x7D0A},
+ {0x4E4A, 0x95EE},
+ {0x4E4B, 0x55E1},
+ {0x4E4C, 0x7FC1},
+ {0x4E4D, 0x74EE},
+ {0x4E4E, 0x631D},
+ {0x4E4F, 0x8717},
+ {0x4E50, 0x6DA1},
+ {0x4E51, 0x7A9D},
+ {0x4E52, 0x6211},
+ {0x4E53, 0x65A1},
+ {0x4E54, 0x5367},
+ {0x4E55, 0x63E1},
+ {0x4E56, 0x6C83},
+ {0x4E57, 0x5DEB},
+ {0x4E58, 0x545C},
+ {0x4E59, 0x94A8},
+ {0x4E5A, 0x4E4C},
+ {0x4E5B, 0x6C61},
+ {0x4E5C, 0x8BEC},
+ {0x4E5D, 0x5C4B},
+ {0x4E5E, 0x65E0},
+ {0x4E5F, 0x829C},
+ {0x4E60, 0x68A7},
+ {0x4E61, 0x543E},
+ {0x4E62, 0x5434},
+ {0x4E63, 0x6BCB},
+ {0x4E64, 0x6B66},
+ {0x4E65, 0x4E94},
+ {0x4E66, 0x6342},
+ {0x4E67, 0x5348},
+ {0x4E68, 0x821E},
+ {0x4E69, 0x4F0D},
+ {0x4E6A, 0x4FAE},
+ {0x4E6B, 0x575E},
+ {0x4E6C, 0x620A},
+ {0x4E6D, 0x96FE},
+ {0x4E6E, 0x6664},
+ {0x4E6F, 0x7269},
+ {0x4E70, 0x52FF},
+ {0x4E71, 0x52A1},
+ {0x4E72, 0x609F},
+ {0x4E73, 0x8BEF},
+ {0x4E74, 0x6614},
+ {0x4E75, 0x7199},
+ {0x4E76, 0x6790},
+ {0x4E77, 0x897F},
+ {0x4E78, 0x7852},
+ {0x4E79, 0x77FD},
+ {0x4E7A, 0x6670},
+ {0x4E7B, 0x563B},
+ {0x4E7C, 0x5438},
+ {0x4E7D, 0x9521},
+ {0x4E7E, 0x727A},
+ {0x4F21, 0x7A00},
+ {0x4F22, 0x606F},
+ {0x4F23, 0x5E0C},
+ {0x4F24, 0x6089},
+ {0x4F25, 0x819D},
+ {0x4F26, 0x5915},
+ {0x4F27, 0x60DC},
+ {0x4F28, 0x7184},
+ {0x4F29, 0x70EF},
+ {0x4F2A, 0x6EAA},
+ {0x4F2B, 0x6C50},
+ {0x4F2C, 0x7280},
+ {0x4F2D, 0x6A84},
+ {0x4F2E, 0x88AD},
+ {0x4F2F, 0x5E2D},
+ {0x4F30, 0x4E60},
+ {0x4F31, 0x5AB3},
+ {0x4F32, 0x559C},
+ {0x4F33, 0x94E3},
+ {0x4F34, 0x6D17},
+ {0x4F35, 0x7CFB},
+ {0x4F36, 0x9699},
+ {0x4F37, 0x620F},
+ {0x4F38, 0x7EC6},
+ {0x4F39, 0x778E},
+ {0x4F3A, 0x867E},
+ {0x4F3B, 0x5323},
+ {0x4F3C, 0x971E},
+ {0x4F3D, 0x8F96},
+ {0x4F3E, 0x6687},
+ {0x4F3F, 0x5CE1},
+ {0x4F40, 0x4FA0},
+ {0x4F41, 0x72ED},
+ {0x4F42, 0x4E0B},
+ {0x4F43, 0x53A6},
+ {0x4F44, 0x590F},
+ {0x4F45, 0x5413},
+ {0x4F46, 0x6380},
+ {0x4F47, 0x9528},
+ {0x4F48, 0x5148},
+ {0x4F49, 0x4ED9},
+ {0x4F4A, 0x9C9C},
+ {0x4F4B, 0x7EA4},
+ {0x4F4C, 0x54B8},
+ {0x4F4D, 0x8D24},
+ {0x4F4E, 0x8854},
+ {0x4F4F, 0x8237},
+ {0x4F50, 0x95F2},
+ {0x4F51, 0x6D8E},
+ {0x4F52, 0x5F26},
+ {0x4F53, 0x5ACC},
+ {0x4F54, 0x663E},
+ {0x4F55, 0x9669},
+ {0x4F56, 0x73B0},
+ {0x4F57, 0x732E},
+ {0x4F58, 0x53BF},
+ {0x4F59, 0x817A},
+ {0x4F5A, 0x9985},
+ {0x4F5B, 0x7FA1},
+ {0x4F5C, 0x5BAA},
+ {0x4F5D, 0x9677},
+ {0x4F5E, 0x9650},
+ {0x4F5F, 0x7EBF},
+ {0x4F60, 0x76F8},
+ {0x4F61, 0x53A2},
+ {0x4F62, 0x9576},
+ {0x4F63, 0x9999},
+ {0x4F64, 0x7BB1},
+ {0x4F65, 0x8944},
+ {0x4F66, 0x6E58},
+ {0x4F67, 0x4E61},
+ {0x4F68, 0x7FD4},
+ {0x4F69, 0x7965},
+ {0x4F6A, 0x8BE6},
+ {0x4F6B, 0x60F3},
+ {0x4F6C, 0x54CD},
+ {0x4F6D, 0x4EAB},
+ {0x4F6E, 0x9879},
+ {0x4F6F, 0x5DF7},
+ {0x4F70, 0x6A61},
+ {0x4F71, 0x50CF},
+ {0x4F72, 0x5411},
+ {0x4F73, 0x8C61},
+ {0x4F74, 0x8427},
+ {0x4F75, 0x785D},
+ {0x4F76, 0x9704},
+ {0x4F77, 0x524A},
+ {0x4F78, 0x54EE},
+ {0x4F79, 0x56A3},
+ {0x4F7A, 0x9500},
+ {0x4F7B, 0x6D88},
+ {0x4F7C, 0x5BB5},
+ {0x4F7D, 0x6DC6},
+ {0x4F7E, 0x6653},
+ {0x5021, 0x5C0F},
+ {0x5022, 0x5B5D},
+ {0x5023, 0x6821},
+ {0x5024, 0x8096},
+ {0x5025, 0x5578},
+ {0x5026, 0x7B11},
+ {0x5027, 0x6548},
+ {0x5028, 0x6954},
+ {0x5029, 0x4E9B},
+ {0x502A, 0x6B47},
+ {0x502B, 0x874E},
+ {0x502C, 0x978B},
+ {0x502D, 0x534F},
+ {0x502E, 0x631F},
+ {0x502F, 0x643A},
+ {0x5030, 0x90AA},
+ {0x5031, 0x659C},
+ {0x5032, 0x80C1},
+ {0x5033, 0x8C10},
+ {0x5034, 0x5199},
+ {0x5035, 0x68B0},
+ {0x5036, 0x5378},
+ {0x5037, 0x87F9},
+ {0x5038, 0x61C8},
+ {0x5039, 0x6CC4},
+ {0x503A, 0x6CFB},
+ {0x503B, 0x8C22},
+ {0x503C, 0x5C51},
+ {0x503D, 0x85AA},
+ {0x503E, 0x82AF},
+ {0x503F, 0x950C},
+ {0x5040, 0x6B23},
+ {0x5041, 0x8F9B},
+ {0x5042, 0x65B0},
+ {0x5043, 0x5FFB},
+ {0x5044, 0x5FC3},
+ {0x5045, 0x4FE1},
+ {0x5046, 0x8845},
+ {0x5047, 0x661F},
+ {0x5048, 0x8165},
+ {0x5049, 0x7329},
+ {0x504A, 0x60FA},
+ {0x504B, 0x5174},
+ {0x504C, 0x5211},
+ {0x504D, 0x578B},
+ {0x504E, 0x5F62},
+ {0x504F, 0x90A2},
+ {0x5050, 0x884C},
+ {0x5051, 0x9192},
+ {0x5052, 0x5E78},
+ {0x5053, 0x674F},
+ {0x5054, 0x6027},
+ {0x5055, 0x59D3},
+ {0x5056, 0x5144},
+ {0x5057, 0x51F6},
+ {0x5058, 0x80F8},
+ {0x5059, 0x5308},
+ {0x505A, 0x6C79},
+ {0x505B, 0x96C4},
+ {0x505C, 0x718A},
+ {0x505D, 0x4F11},
+ {0x505E, 0x4FEE},
+ {0x505F, 0x7F9E},
+ {0x5060, 0x673D},
+ {0x5061, 0x55C5},
+ {0x5062, 0x9508},
+ {0x5063, 0x79C0},
+ {0x5064, 0x8896},
+ {0x5065, 0x7EE3},
+ {0x5066, 0x589F},
+ {0x5067, 0x620C},
+ {0x5068, 0x9700},
+ {0x5069, 0x865A},
+ {0x506A, 0x5618},
+ {0x506B, 0x987B},
+ {0x506C, 0x5F90},
+ {0x506D, 0x8BB8},
+ {0x506E, 0x84C4},
+ {0x506F, 0x9157},
+ {0x5070, 0x53D9},
+ {0x5071, 0x65ED},
+ {0x5072, 0x5E8F},
+ {0x5073, 0x755C},
+ {0x5074, 0x6064},
+ {0x5075, 0x7D6E},
+ {0x5076, 0x5A7F},
+ {0x5077, 0x7EEA},
+ {0x5078, 0x7EED},
+ {0x5079, 0x8F69},
+ {0x507A, 0x55A7},
+ {0x507B, 0x5BA3},
+ {0x507C, 0x60AC},
+ {0x507D, 0x65CB},
+ {0x507E, 0x7384},
+ {0x5121, 0x9009},
+ {0x5122, 0x7663},
+ {0x5123, 0x7729},
+ {0x5124, 0x7EDA},
+ {0x5125, 0x9774},
+ {0x5126, 0x859B},
+ {0x5127, 0x5B66},
+ {0x5128, 0x7A74},
+ {0x5129, 0x96EA},
+ {0x512A, 0x8840},
+ {0x512B, 0x52CB},
+ {0x512C, 0x718F},
+ {0x512D, 0x5FAA},
+ {0x512E, 0x65EC},
+ {0x512F, 0x8BE2},
+ {0x5130, 0x5BFB},
+ {0x5131, 0x9A6F},
+ {0x5132, 0x5DE1},
+ {0x5133, 0x6B89},
+ {0x5134, 0x6C5B},
+ {0x5135, 0x8BAD},
+ {0x5136, 0x8BAF},
+ {0x5137, 0x900A},
+ {0x5138, 0x8FC5},
+ {0x5139, 0x538B},
+ {0x513A, 0x62BC},
+ {0x513B, 0x9E26},
+ {0x513C, 0x9E2D},
+ {0x513D, 0x5440},
+ {0x513E, 0x4E2B},
+ {0x513F, 0x82BD},
+ {0x5140, 0x7259},
+ {0x5141, 0x869C},
+ {0x5142, 0x5D16},
+ {0x5143, 0x8859},
+ {0x5144, 0x6DAF},
+ {0x5145, 0x96C5},
+ {0x5146, 0x54D1},
+ {0x5147, 0x4E9A},
+ {0x5148, 0x8BB6},
+ {0x5149, 0x7109},
+ {0x514A, 0x54BD},
+ {0x514B, 0x9609},
+ {0x514C, 0x70DF},
+ {0x514D, 0x6DF9},
+ {0x514E, 0x76D0},
+ {0x514F, 0x4E25},
+ {0x5150, 0x7814},
+ {0x5151, 0x8712},
+ {0x5152, 0x5CA9},
+ {0x5153, 0x5EF6},
+ {0x5154, 0x8A00},
+ {0x5155, 0x989C},
+ {0x5156, 0x960E},
+ {0x5157, 0x708E},
+ {0x5158, 0x6CBF},
+ {0x5159, 0x5944},
+ {0x515A, 0x63A9},
+ {0x515B, 0x773C},
+ {0x515C, 0x884D},
+ {0x515D, 0x6F14},
+ {0x515E, 0x8273},
+ {0x515F, 0x5830},
+ {0x5160, 0x71D5},
+ {0x5161, 0x538C},
+ {0x5162, 0x781A},
+ {0x5163, 0x96C1},
+ {0x5164, 0x5501},
+ {0x5165, 0x5F66},
+ {0x5166, 0x7130},
+ {0x5167, 0x5BB4},
+ {0x5168, 0x8C1A},
+ {0x5169, 0x9A8C},
+ {0x516A, 0x6B83},
+ {0x516B, 0x592E},
+ {0x516C, 0x9E2F},
+ {0x516D, 0x79E7},
+ {0x516E, 0x6768},
+ {0x516F, 0x626C},
+ {0x5170, 0x4F6F},
+ {0x5171, 0x75A1},
+ {0x5172, 0x7F8A},
+ {0x5173, 0x6D0B},
+ {0x5174, 0x9633},
+ {0x5175, 0x6C27},
+ {0x5176, 0x4EF0},
+ {0x5177, 0x75D2},
+ {0x5178, 0x517B},
+ {0x5179, 0x6837},
+ {0x517A, 0x6F3E},
+ {0x517B, 0x9080},
+ {0x517C, 0x8170},
+ {0x517D, 0x5996},
+ {0x517E, 0x7476},
+ {0x5221, 0x6447},
+ {0x5222, 0x5C27},
+ {0x5223, 0x9065},
+ {0x5224, 0x7A91},
+ {0x5225, 0x8C23},
+ {0x5226, 0x59DA},
+ {0x5227, 0x54AC},
+ {0x5228, 0x8200},
+ {0x5229, 0x836F},
+ {0x522A, 0x8981},
+ {0x522B, 0x8000},
+ {0x522C, 0x6930},
+ {0x522D, 0x564E},
+ {0x522E, 0x8036},
+ {0x522F, 0x7237},
+ {0x5230, 0x91CE},
+ {0x5231, 0x51B6},
+ {0x5232, 0x4E5F},
+ {0x5233, 0x9875},
+ {0x5234, 0x6396},
+ {0x5235, 0x4E1A},
+ {0x5236, 0x53F6},
+ {0x5237, 0x66F3},
+ {0x5238, 0x814B},
+ {0x5239, 0x591C},
+ {0x523A, 0x6DB2},
+ {0x523B, 0x4E00},
+ {0x523C, 0x58F9},
+ {0x523D, 0x533B},
+ {0x523E, 0x63D6},
+ {0x523F, 0x94F1},
+ {0x5240, 0x4F9D},
+ {0x5241, 0x4F0A},
+ {0x5242, 0x8863},
+ {0x5243, 0x9890},
+ {0x5244, 0x5937},
+ {0x5245, 0x9057},
+ {0x5246, 0x79FB},
+ {0x5247, 0x4EEA},
+ {0x5248, 0x80F0},
+ {0x5249, 0x7591},
+ {0x524A, 0x6C82},
+ {0x524B, 0x5B9C},
+ {0x524C, 0x59E8},
+ {0x524D, 0x5F5D},
+ {0x524E, 0x6905},
+ {0x524F, 0x8681},
+ {0x5250, 0x501A},
+ {0x5251, 0x5DF2},
+ {0x5252, 0x4E59},
+ {0x5253, 0x77E3},
+ {0x5254, 0x4EE5},
+ {0x5255, 0x827A},
+ {0x5256, 0x6291},
+ {0x5257, 0x6613},
+ {0x5258, 0x9091},
+ {0x5259, 0x5C79},
+ {0x525A, 0x4EBF},
+ {0x525B, 0x5F79},
+ {0x525C, 0x81C6},
+ {0x525D, 0x9038},
+ {0x525E, 0x8084},
+ {0x525F, 0x75AB},
+ {0x5260, 0x4EA6},
+ {0x5261, 0x88D4},
+ {0x5262, 0x610F},
+ {0x5263, 0x6BC5},
+ {0x5264, 0x5FC6},
+ {0x5265, 0x4E49},
+ {0x5266, 0x76CA},
+ {0x5267, 0x6EA2},
+ {0x5268, 0x8BE3},
+ {0x5269, 0x8BAE},
+ {0x526A, 0x8C0A},
+ {0x526B, 0x8BD1},
+ {0x526C, 0x5F02},
+ {0x526D, 0x7FFC},
+ {0x526E, 0x7FCC},
+ {0x526F, 0x7ECE},
+ {0x5270, 0x8335},
+ {0x5271, 0x836B},
+ {0x5272, 0x56E0},
+ {0x5273, 0x6BB7},
+ {0x5274, 0x97F3},
+ {0x5275, 0x9634},
+ {0x5276, 0x59FB},
+ {0x5277, 0x541F},
+ {0x5278, 0x94F6},
+ {0x5279, 0x6DEB},
+ {0x527A, 0x5BC5},
+ {0x527B, 0x996E},
+ {0x527C, 0x5C39},
+ {0x527D, 0x5F15},
+ {0x527E, 0x9690},
+ {0x5321, 0x5370},
+ {0x5322, 0x82F1},
+ {0x5323, 0x6A31},
+ {0x5324, 0x5A74},
+ {0x5325, 0x9E70},
+ {0x5326, 0x5E94},
+ {0x5327, 0x7F28},
+ {0x5328, 0x83B9},
+ {0x5329, 0x8424},
+ {0x532A, 0x8425},
+ {0x532B, 0x8367},
+ {0x532C, 0x8747},
+ {0x532D, 0x8FCE},
+ {0x532E, 0x8D62},
+ {0x532F, 0x76C8},
+ {0x5330, 0x5F71},
+ {0x5331, 0x9896},
+ {0x5332, 0x786C},
+ {0x5333, 0x6620},
+ {0x5334, 0x54DF},
+ {0x5335, 0x62E5},
+ {0x5336, 0x4F63},
+ {0x5337, 0x81C3},
+ {0x5338, 0x75C8},
+ {0x5339, 0x5EB8},
+ {0x533A, 0x96CD},
+ {0x533B, 0x8E0A},
+ {0x533C, 0x86F9},
+ {0x533D, 0x548F},
+ {0x533E, 0x6CF3},
+ {0x533F, 0x6D8C},
+ {0x5340, 0x6C38},
+ {0x5341, 0x607F},
+ {0x5342, 0x52C7},
+ {0x5343, 0x7528},
+ {0x5344, 0x5E7D},
+ {0x5345, 0x4F18},
+ {0x5346, 0x60A0},
+ {0x5347, 0x5FE7},
+ {0x5348, 0x5C24},
+ {0x5349, 0x7531},
+ {0x534A, 0x90AE},
+ {0x534B, 0x94C0},
+ {0x534C, 0x72B9},
+ {0x534D, 0x6CB9},
+ {0x534E, 0x6E38},
+ {0x534F, 0x9149},
+ {0x5350, 0x6709},
+ {0x5351, 0x53CB},
+ {0x5352, 0x53F3},
+ {0x5353, 0x4F51},
+ {0x5354, 0x91C9},
+ {0x5355, 0x8BF1},
+ {0x5356, 0x53C8},
+ {0x5357, 0x5E7C},
+ {0x5358, 0x8FC2},
+ {0x5359, 0x6DE4},
+ {0x535A, 0x4E8E},
+ {0x535B, 0x76C2},
+ {0x535C, 0x6986},
+ {0x535D, 0x865E},
+ {0x535E, 0x611A},
+ {0x535F, 0x8206},
+ {0x5360, 0x4F59},
+ {0x5361, 0x4FDE},
+ {0x5362, 0x903E},
+ {0x5363, 0x9C7C},
+ {0x5364, 0x6109},
+ {0x5365, 0x6E1D},
+ {0x5366, 0x6E14},
+ {0x5367, 0x9685},
+ {0x5368, 0x4E88},
+ {0x5369, 0x5A31},
+ {0x536A, 0x96E8},
+ {0x536B, 0x4E0E},
+ {0x536C, 0x5C7F},
+ {0x536D, 0x79B9},
+ {0x536E, 0x5B87},
+ {0x536F, 0x8BED},
+ {0x5370, 0x7FBD},
+ {0x5371, 0x7389},
+ {0x5372, 0x57DF},
+ {0x5373, 0x828B},
+ {0x5374, 0x90C1},
+ {0x5375, 0x5401},
+ {0x5376, 0x9047},
+ {0x5377, 0x55BB},
+ {0x5378, 0x5CEA},
+ {0x5379, 0x5FA1},
+ {0x537A, 0x6108},
+ {0x537B, 0x6B32},
+ {0x537C, 0x72F1},
+ {0x537D, 0x80B2},
+ {0x537E, 0x8A89},
+ {0x5421, 0x6D74},
+ {0x5422, 0x5BD3},
+ {0x5423, 0x88D5},
+ {0x5424, 0x9884},
+ {0x5425, 0x8C6B},
+ {0x5426, 0x9A6D},
+ {0x5427, 0x9E33},
+ {0x5428, 0x6E0A},
+ {0x5429, 0x51A4},
+ {0x542A, 0x5143},
+ {0x542B, 0x57A3},
+ {0x542C, 0x8881},
+ {0x542D, 0x539F},
+ {0x542E, 0x63F4},
+ {0x542F, 0x8F95},
+ {0x5430, 0x56ED},
+ {0x5431, 0x5458},
+ {0x5432, 0x5706},
+ {0x5433, 0x733F},
+ {0x5434, 0x6E90},
+ {0x5435, 0x7F18},
+ {0x5436, 0x8FDC},
+ {0x5437, 0x82D1},
+ {0x5438, 0x613F},
+ {0x5439, 0x6028},
+ {0x543A, 0x9662},
+ {0x543B, 0x66F0},
+ {0x543C, 0x7EA6},
+ {0x543D, 0x8D8A},
+ {0x543E, 0x8DC3},
+ {0x543F, 0x94A5},
+ {0x5440, 0x5CB3},
+ {0x5441, 0x7CA4},
+ {0x5442, 0x6708},
+ {0x5443, 0x60A6},
+ {0x5444, 0x9605},
+ {0x5445, 0x8018},
+ {0x5446, 0x4E91},
+ {0x5447, 0x90E7},
+ {0x5448, 0x5300},
+ {0x5449, 0x9668},
+ {0x544A, 0x5141},
+ {0x544B, 0x8FD0},
+ {0x544C, 0x8574},
+ {0x544D, 0x915D},
+ {0x544E, 0x6655},
+ {0x544F, 0x97F5},
+ {0x5450, 0x5B55},
+ {0x5451, 0x531D},
+ {0x5452, 0x7838},
+ {0x5453, 0x6742},
+ {0x5454, 0x683D},
+ {0x5455, 0x54C9},
+ {0x5456, 0x707E},
+ {0x5457, 0x5BB0},
+ {0x5458, 0x8F7D},
+ {0x5459, 0x518D},
+ {0x545A, 0x5728},
+ {0x545B, 0x54B1},
+ {0x545C, 0x6512},
+ {0x545D, 0x6682},
+ {0x545E, 0x8D5E},
+ {0x545F, 0x8D43},
+ {0x5460, 0x810F},
+ {0x5461, 0x846C},
+ {0x5462, 0x906D},
+ {0x5463, 0x7CDF},
+ {0x5464, 0x51FF},
+ {0x5465, 0x85FB},
+ {0x5466, 0x67A3},
+ {0x5467, 0x65E9},
+ {0x5468, 0x6FA1},
+ {0x5469, 0x86A4},
+ {0x546A, 0x8E81},
+ {0x546B, 0x566A},
+ {0x546C, 0x9020},
+ {0x546D, 0x7682},
+ {0x546E, 0x7076},
+ {0x546F, 0x71E5},
+ {0x5470, 0x8D23},
+ {0x5471, 0x62E9},
+ {0x5472, 0x5219},
+ {0x5473, 0x6CFD},
+ {0x5474, 0x8D3C},
+ {0x5475, 0x600E},
+ {0x5476, 0x589E},
+ {0x5477, 0x618E},
+ {0x5478, 0x66FE},
+ {0x5479, 0x8D60},
+ {0x547A, 0x624E},
+ {0x547B, 0x55B3},
+ {0x547C, 0x6E23},
+ {0x547D, 0x672D},
+ {0x547E, 0x8F67},
+ {0x5521, 0x94E1},
+ {0x5522, 0x95F8},
+ {0x5523, 0x7728},
+ {0x5524, 0x6805},
+ {0x5525, 0x69A8},
+ {0x5526, 0x548B},
+ {0x5527, 0x4E4D},
+ {0x5528, 0x70B8},
+ {0x5529, 0x8BC8},
+ {0x552A, 0x6458},
+ {0x552B, 0x658B},
+ {0x552C, 0x5B85},
+ {0x552D, 0x7A84},
+ {0x552E, 0x503A},
+ {0x552F, 0x5BE8},
+ {0x5530, 0x77BB},
+ {0x5531, 0x6BE1},
+ {0x5532, 0x8A79},
+ {0x5533, 0x7C98},
+ {0x5534, 0x6CBE},
+ {0x5535, 0x76CF},
+ {0x5536, 0x65A9},
+ {0x5537, 0x8F97},
+ {0x5538, 0x5D2D},
+ {0x5539, 0x5C55},
+ {0x553A, 0x8638},
+ {0x553B, 0x6808},
+ {0x553C, 0x5360},
+ {0x553D, 0x6218},
+ {0x553E, 0x7AD9},
+ {0x553F, 0x6E5B},
+ {0x5540, 0x7EFD},
+ {0x5541, 0x6A1F},
+ {0x5542, 0x7AE0},
+ {0x5543, 0x5F70},
+ {0x5544, 0x6F33},
+ {0x5545, 0x5F20},
+ {0x5546, 0x638C},
+ {0x5547, 0x6DA8},
+ {0x5548, 0x6756},
+ {0x5549, 0x4E08},
+ {0x554A, 0x5E10},
+ {0x554B, 0x8D26},
+ {0x554C, 0x4ED7},
+ {0x554D, 0x80C0},
+ {0x554E, 0x7634},
+ {0x554F, 0x969C},
+ {0x5550, 0x62DB},
+ {0x5551, 0x662D},
+ {0x5552, 0x627E},
+ {0x5553, 0x6CBC},
+ {0x5554, 0x8D75},
+ {0x5555, 0x7167},
+ {0x5556, 0x7F69},
+ {0x5557, 0x5146},
+ {0x5558, 0x8087},
+ {0x5559, 0x53EC},
+ {0x555A, 0x906E},
+ {0x555B, 0x6298},
+ {0x555C, 0x54F2},
+ {0x555D, 0x86F0},
+ {0x555E, 0x8F99},
+ {0x555F, 0x8005},
+ {0x5560, 0x9517},
+ {0x5561, 0x8517},
+ {0x5562, 0x8FD9},
+ {0x5563, 0x6D59},
+ {0x5564, 0x73CD},
+ {0x5565, 0x659F},
+ {0x5566, 0x771F},
+ {0x5567, 0x7504},
+ {0x5568, 0x7827},
+ {0x5569, 0x81FB},
+ {0x556A, 0x8D1E},
+ {0x556B, 0x9488},
+ {0x556C, 0x4FA6},
+ {0x556D, 0x6795},
+ {0x556E, 0x75B9},
+ {0x556F, 0x8BCA},
+ {0x5570, 0x9707},
+ {0x5571, 0x632F},
+ {0x5572, 0x9547},
+ {0x5573, 0x9635},
+ {0x5574, 0x84B8},
+ {0x5575, 0x6323},
+ {0x5576, 0x7741},
+ {0x5577, 0x5F81},
+ {0x5578, 0x72F0},
+ {0x5579, 0x4E89},
+ {0x557A, 0x6014},
+ {0x557B, 0x6574},
+ {0x557C, 0x62EF},
+ {0x557D, 0x6B63},
+ {0x557E, 0x653F},
+ {0x5621, 0x5E27},
+ {0x5622, 0x75C7},
+ {0x5623, 0x90D1},
+ {0x5624, 0x8BC1},
+ {0x5625, 0x829D},
+ {0x5626, 0x679D},
+ {0x5627, 0x652F},
+ {0x5628, 0x5431},
+ {0x5629, 0x8718},
+ {0x562A, 0x77E5},
+ {0x562B, 0x80A2},
+ {0x562C, 0x8102},
+ {0x562D, 0x6C41},
+ {0x562E, 0x4E4B},
+ {0x562F, 0x7EC7},
+ {0x5630, 0x804C},
+ {0x5631, 0x76F4},
+ {0x5632, 0x690D},
+ {0x5633, 0x6B96},
+ {0x5634, 0x6267},
+ {0x5635, 0x503C},
+ {0x5636, 0x4F84},
+ {0x5637, 0x5740},
+ {0x5638, 0x6307},
+ {0x5639, 0x6B62},
+ {0x563A, 0x8DBE},
+ {0x563B, 0x53EA},
+ {0x563C, 0x65E8},
+ {0x563D, 0x7EB8},
+ {0x563E, 0x5FD7},
+ {0x563F, 0x631A},
+ {0x5640, 0x63B7},
+ {0x5641, 0x81F3},
+ {0x5642, 0x81F4},
+ {0x5643, 0x7F6E},
+ {0x5644, 0x5E1C},
+ {0x5645, 0x5CD9},
+ {0x5646, 0x5236},
+ {0x5647, 0x667A},
+ {0x5648, 0x79E9},
+ {0x5649, 0x7A1A},
+ {0x564A, 0x8D28},
+ {0x564B, 0x7099},
+ {0x564C, 0x75D4},
+ {0x564D, 0x6EDE},
+ {0x564E, 0x6CBB},
+ {0x564F, 0x7A92},
+ {0x5650, 0x4E2D},
+ {0x5651, 0x76C5},
+ {0x5652, 0x5FE0},
+ {0x5653, 0x949F},
+ {0x5654, 0x8877},
+ {0x5655, 0x7EC8},
+ {0x5656, 0x79CD},
+ {0x5657, 0x80BF},
+ {0x5658, 0x91CD},
+ {0x5659, 0x4EF2},
+ {0x565A, 0x4F17},
+ {0x565B, 0x821F},
+ {0x565C, 0x5468},
+ {0x565D, 0x5DDE},
+ {0x565E, 0x6D32},
+ {0x565F, 0x8BCC},
+ {0x5660, 0x7CA5},
+ {0x5661, 0x8F74},
+ {0x5662, 0x8098},
+ {0x5663, 0x5E1A},
+ {0x5664, 0x5492},
+ {0x5665, 0x76B1},
+ {0x5666, 0x5B99},
+ {0x5667, 0x663C},
+ {0x5668, 0x9AA4},
+ {0x5669, 0x73E0},
+ {0x566A, 0x682A},
+ {0x566B, 0x86DB},
+ {0x566C, 0x6731},
+ {0x566D, 0x732A},
+ {0x566E, 0x8BF8},
+ {0x566F, 0x8BDB},
+ {0x5670, 0x9010},
+ {0x5671, 0x7AF9},
+ {0x5672, 0x70DB},
+ {0x5673, 0x716E},
+ {0x5674, 0x62C4},
+ {0x5675, 0x77A9},
+ {0x5676, 0x5631},
+ {0x5677, 0x4E3B},
+ {0x5678, 0x8457},
+ {0x5679, 0x67F1},
+ {0x567A, 0x52A9},
+ {0x567B, 0x86C0},
+ {0x567C, 0x8D2E},
+ {0x567D, 0x94F8},
+ {0x567E, 0x7B51},
+ {0x5721, 0x4F4F},
+ {0x5722, 0x6CE8},
+ {0x5723, 0x795D},
+ {0x5724, 0x9A7B},
+ {0x5725, 0x6293},
+ {0x5726, 0x722A},
+ {0x5727, 0x62FD},
+ {0x5728, 0x4E13},
+ {0x5729, 0x7816},
+ {0x572A, 0x8F6C},
+ {0x572B, 0x64B0},
+ {0x572C, 0x8D5A},
+ {0x572D, 0x7BC6},
+ {0x572E, 0x6869},
+ {0x572F, 0x5E84},
+ {0x5730, 0x88C5},
+ {0x5731, 0x5986},
+ {0x5732, 0x649E},
+ {0x5733, 0x58EE},
+ {0x5734, 0x72B6},
+ {0x5735, 0x690E},
+ {0x5736, 0x9525},
+ {0x5737, 0x8FFD},
+ {0x5738, 0x8D58},
+ {0x5739, 0x5760},
+ {0x573A, 0x7F00},
+ {0x573B, 0x8C06},
+ {0x573C, 0x51C6},
+ {0x573D, 0x6349},
+ {0x573E, 0x62D9},
+ {0x573F, 0x5353},
+ {0x5740, 0x684C},
+ {0x5741, 0x7422},
+ {0x5742, 0x8301},
+ {0x5743, 0x914C},
+ {0x5744, 0x5544},
+ {0x5745, 0x7740},
+ {0x5746, 0x707C},
+ {0x5747, 0x6D4A},
+ {0x5748, 0x5179},
+ {0x5749, 0x54A8},
+ {0x574A, 0x8D44},
+ {0x574B, 0x59FF},
+ {0x574C, 0x6ECB},
+ {0x574D, 0x6DC4},
+ {0x574E, 0x5B5C},
+ {0x574F, 0x7D2B},
+ {0x5750, 0x4ED4},
+ {0x5751, 0x7C7D},
+ {0x5752, 0x6ED3},
+ {0x5753, 0x5B50},
+ {0x5754, 0x81EA},
+ {0x5755, 0x6E0D},
+ {0x5756, 0x5B57},
+ {0x5757, 0x9B03},
+ {0x5758, 0x68D5},
+ {0x5759, 0x8E2A},
+ {0x575A, 0x5B97},
+ {0x575B, 0x7EFC},
+ {0x575C, 0x603B},
+ {0x575D, 0x7EB5},
+ {0x575E, 0x90B9},
+ {0x575F, 0x8D70},
+ {0x5760, 0x594F},
+ {0x5761, 0x63CD},
+ {0x5762, 0x79DF},
+ {0x5763, 0x8DB3},
+ {0x5764, 0x5352},
+ {0x5765, 0x65CF},
+ {0x5766, 0x7956},
+ {0x5767, 0x8BC5},
+ {0x5768, 0x963B},
+ {0x5769, 0x7EC4},
+ {0x576A, 0x94BB},
+ {0x576B, 0x7E82},
+ {0x576C, 0x5634},
+ {0x576D, 0x9189},
+ {0x576E, 0x6700},
+ {0x576F, 0x7F6A},
+ {0x5770, 0x5C0A},
+ {0x5771, 0x9075},
+ {0x5772, 0x6628},
+ {0x5773, 0x5DE6},
+ {0x5774, 0x4F50},
+ {0x5775, 0x67DE},
+ {0x5776, 0x505A},
+ {0x5777, 0x4F5C},
+ {0x5778, 0x5750},
+ {0x5779, 0x5EA7},
+ {0x5821, 0x4E8D},
+ {0x5822, 0x4E0C},
+ {0x5823, 0x5140},
+ {0x5824, 0x4E10},
+ {0x5825, 0x5EFF},
+ {0x5826, 0x5345},
+ {0x5827, 0x4E15},
+ {0x5828, 0x4E98},
+ {0x5829, 0x4E1E},
+ {0x582A, 0x9B32},
+ {0x582B, 0x5B6C},
+ {0x582C, 0x5669},
+ {0x582D, 0x4E28},
+ {0x582E, 0x79BA},
+ {0x582F, 0x4E3F},
+ {0x5830, 0x5315},
+ {0x5831, 0x4E47},
+ {0x5832, 0x592D},
+ {0x5833, 0x723B},
+ {0x5834, 0x536E},
+ {0x5835, 0x6C10},
+ {0x5836, 0x56DF},
+ {0x5837, 0x80E4},
+ {0x5838, 0x9997},
+ {0x5839, 0x6BD3},
+ {0x583A, 0x777E},
+ {0x583B, 0x9F17},
+ {0x583C, 0x4E36},
+ {0x583D, 0x4E9F},
+ {0x583E, 0x9F10},
+ {0x583F, 0x4E5C},
+ {0x5840, 0x4E69},
+ {0x5841, 0x4E93},
+ {0x5842, 0x8288},
+ {0x5843, 0x5B5B},
+ {0x5844, 0x556C},
+ {0x5845, 0x560F},
+ {0x5846, 0x4EC4},
+ {0x5847, 0x538D},
+ {0x5848, 0x539D},
+ {0x5849, 0x53A3},
+ {0x584A, 0x53A5},
+ {0x584B, 0x53AE},
+ {0x584C, 0x9765},
+ {0x584D, 0x8D5D},
+ {0x584E, 0x531A},
+ {0x584F, 0x53F5},
+ {0x5850, 0x5326},
+ {0x5851, 0x532E},
+ {0x5852, 0x533E},
+ {0x5853, 0x8D5C},
+ {0x5854, 0x5366},
+ {0x5855, 0x5363},
+ {0x5856, 0x5202},
+ {0x5857, 0x5208},
+ {0x5858, 0x520E},
+ {0x5859, 0x522D},
+ {0x585A, 0x5233},
+ {0x585B, 0x523F},
+ {0x585C, 0x5240},
+ {0x585D, 0x524C},
+ {0x585E, 0x525E},
+ {0x585F, 0x5261},
+ {0x5860, 0x525C},
+ {0x5861, 0x84AF},
+ {0x5862, 0x527D},
+ {0x5863, 0x5282},
+ {0x5864, 0x5281},
+ {0x5865, 0x5290},
+ {0x5866, 0x5293},
+ {0x5867, 0x5182},
+ {0x5868, 0x7F54},
+ {0x5869, 0x4EBB},
+ {0x586A, 0x4EC3},
+ {0x586B, 0x4EC9},
+ {0x586C, 0x4EC2},
+ {0x586D, 0x4EE8},
+ {0x586E, 0x4EE1},
+ {0x586F, 0x4EEB},
+ {0x5870, 0x4EDE},
+ {0x5871, 0x4F1B},
+ {0x5872, 0x4EF3},
+ {0x5873, 0x4F22},
+ {0x5874, 0x4F64},
+ {0x5875, 0x4EF5},
+ {0x5876, 0x4F25},
+ {0x5877, 0x4F27},
+ {0x5878, 0x4F09},
+ {0x5879, 0x4F2B},
+ {0x587A, 0x4F5E},
+ {0x587B, 0x4F67},
+ {0x587C, 0x6538},
+ {0x587D, 0x4F5A},
+ {0x587E, 0x4F5D},
+ {0x5921, 0x4F5F},
+ {0x5922, 0x4F57},
+ {0x5923, 0x4F32},
+ {0x5924, 0x4F3D},
+ {0x5925, 0x4F76},
+ {0x5926, 0x4F74},
+ {0x5927, 0x4F91},
+ {0x5928, 0x4F89},
+ {0x5929, 0x4F83},
+ {0x592A, 0x4F8F},
+ {0x592B, 0x4F7E},
+ {0x592C, 0x4F7B},
+ {0x592D, 0x4FAA},
+ {0x592E, 0x4F7C},
+ {0x592F, 0x4FAC},
+ {0x5930, 0x4F94},
+ {0x5931, 0x4FE6},
+ {0x5932, 0x4FE8},
+ {0x5933, 0x4FEA},
+ {0x5934, 0x4FC5},
+ {0x5935, 0x4FDA},
+ {0x5936, 0x4FE3},
+ {0x5937, 0x4FDC},
+ {0x5938, 0x4FD1},
+ {0x5939, 0x4FDF},
+ {0x593A, 0x4FF8},
+ {0x593B, 0x5029},
+ {0x593C, 0x504C},
+ {0x593D, 0x4FF3},
+ {0x593E, 0x502C},
+ {0x593F, 0x500F},
+ {0x5940, 0x502E},
+ {0x5941, 0x502D},
+ {0x5942, 0x4FFE},
+ {0x5943, 0x501C},
+ {0x5944, 0x500C},
+ {0x5945, 0x5025},
+ {0x5946, 0x5028},
+ {0x5947, 0x507E},
+ {0x5948, 0x5043},
+ {0x5949, 0x5055},
+ {0x594A, 0x5048},
+ {0x594B, 0x504E},
+ {0x594C, 0x506C},
+ {0x594D, 0x507B},
+ {0x594E, 0x50A5},
+ {0x594F, 0x50A7},
+ {0x5950, 0x50A9},
+ {0x5951, 0x50BA},
+ {0x5952, 0x50D6},
+ {0x5953, 0x5106},
+ {0x5954, 0x50ED},
+ {0x5955, 0x50EC},
+ {0x5956, 0x50E6},
+ {0x5957, 0x50EE},
+ {0x5958, 0x5107},
+ {0x5959, 0x510B},
+ {0x595A, 0x4EDD},
+ {0x595B, 0x6C3D},
+ {0x595C, 0x4F58},
+ {0x595D, 0x4F65},
+ {0x595E, 0x4FCE},
+ {0x595F, 0x9FA0},
+ {0x5960, 0x6C46},
+ {0x5961, 0x7C74},
+ {0x5962, 0x516E},
+ {0x5963, 0x5DFD},
+ {0x5964, 0x9EC9},
+ {0x5965, 0x9998},
+ {0x5966, 0x5181},
+ {0x5967, 0x5914},
+ {0x5968, 0x52F9},
+ {0x5969, 0x530D},
+ {0x596A, 0x8A07},
+ {0x596B, 0x5310},
+ {0x596C, 0x51EB},
+ {0x596D, 0x5919},
+ {0x596E, 0x5155},
+ {0x596F, 0x4EA0},
+ {0x5970, 0x5156},
+ {0x5971, 0x4EB3},
+ {0x5972, 0x886E},
+ {0x5973, 0x88A4},
+ {0x5974, 0x4EB5},
+ {0x5975, 0x8114},
+ {0x5976, 0x88D2},
+ {0x5977, 0x7980},
+ {0x5978, 0x5B34},
+ {0x5979, 0x8803},
+ {0x597A, 0x7FB8},
+ {0x597B, 0x51AB},
+ {0x597C, 0x51B1},
+ {0x597D, 0x51BD},
+ {0x597E, 0x51BC},
+ {0x5A21, 0x51C7},
+ {0x5A22, 0x5196},
+ {0x5A23, 0x51A2},
+ {0x5A24, 0x51A5},
+ {0x5A25, 0x8BA0},
+ {0x5A26, 0x8BA6},
+ {0x5A27, 0x8BA7},
+ {0x5A28, 0x8BAA},
+ {0x5A29, 0x8BB4},
+ {0x5A2A, 0x8BB5},
+ {0x5A2B, 0x8BB7},
+ {0x5A2C, 0x8BC2},
+ {0x5A2D, 0x8BC3},
+ {0x5A2E, 0x8BCB},
+ {0x5A2F, 0x8BCF},
+ {0x5A30, 0x8BCE},
+ {0x5A31, 0x8BD2},
+ {0x5A32, 0x8BD3},
+ {0x5A33, 0x8BD4},
+ {0x5A34, 0x8BD6},
+ {0x5A35, 0x8BD8},
+ {0x5A36, 0x8BD9},
+ {0x5A37, 0x8BDC},
+ {0x5A38, 0x8BDF},
+ {0x5A39, 0x8BE0},
+ {0x5A3A, 0x8BE4},
+ {0x5A3B, 0x8BE8},
+ {0x5A3C, 0x8BE9},
+ {0x5A3D, 0x8BEE},
+ {0x5A3E, 0x8BF0},
+ {0x5A3F, 0x8BF3},
+ {0x5A40, 0x8BF6},
+ {0x5A41, 0x8BF9},
+ {0x5A42, 0x8BFC},
+ {0x5A43, 0x8BFF},
+ {0x5A44, 0x8C00},
+ {0x5A45, 0x8C02},
+ {0x5A46, 0x8C04},
+ {0x5A47, 0x8C07},
+ {0x5A48, 0x8C0C},
+ {0x5A49, 0x8C0F},
+ {0x5A4A, 0x8C11},
+ {0x5A4B, 0x8C12},
+ {0x5A4C, 0x8C14},
+ {0x5A4D, 0x8C15},
+ {0x5A4E, 0x8C16},
+ {0x5A4F, 0x8C19},
+ {0x5A50, 0x8C1B},
+ {0x5A51, 0x8C18},
+ {0x5A52, 0x8C1D},
+ {0x5A53, 0x8C1F},
+ {0x5A54, 0x8C20},
+ {0x5A55, 0x8C21},
+ {0x5A56, 0x8C25},
+ {0x5A57, 0x8C27},
+ {0x5A58, 0x8C2A},
+ {0x5A59, 0x8C2B},
+ {0x5A5A, 0x8C2E},
+ {0x5A5B, 0x8C2F},
+ {0x5A5C, 0x8C32},
+ {0x5A5D, 0x8C33},
+ {0x5A5E, 0x8C35},
+ {0x5A5F, 0x8C36},
+ {0x5A60, 0x5369},
+ {0x5A61, 0x537A},
+ {0x5A62, 0x961D},
+ {0x5A63, 0x9622},
+ {0x5A64, 0x9621},
+ {0x5A65, 0x9631},
+ {0x5A66, 0x962A},
+ {0x5A67, 0x963D},
+ {0x5A68, 0x963C},
+ {0x5A69, 0x9642},
+ {0x5A6A, 0x9649},
+ {0x5A6B, 0x9654},
+ {0x5A6C, 0x965F},
+ {0x5A6D, 0x9667},
+ {0x5A6E, 0x966C},
+ {0x5A6F, 0x9672},
+ {0x5A70, 0x9674},
+ {0x5A71, 0x9688},
+ {0x5A72, 0x968D},
+ {0x5A73, 0x9697},
+ {0x5A74, 0x96B0},
+ {0x5A75, 0x9097},
+ {0x5A76, 0x909B},
+ {0x5A77, 0x909D},
+ {0x5A78, 0x9099},
+ {0x5A79, 0x90AC},
+ {0x5A7A, 0x90A1},
+ {0x5A7B, 0x90B4},
+ {0x5A7C, 0x90B3},
+ {0x5A7D, 0x90B6},
+ {0x5A7E, 0x90BA},
+ {0x5B21, 0x90B8},
+ {0x5B22, 0x90B0},
+ {0x5B23, 0x90CF},
+ {0x5B24, 0x90C5},
+ {0x5B25, 0x90BE},
+ {0x5B26, 0x90D0},
+ {0x5B27, 0x90C4},
+ {0x5B28, 0x90C7},
+ {0x5B29, 0x90D3},
+ {0x5B2A, 0x90E6},
+ {0x5B2B, 0x90E2},
+ {0x5B2C, 0x90DC},
+ {0x5B2D, 0x90D7},
+ {0x5B2E, 0x90DB},
+ {0x5B2F, 0x90EB},
+ {0x5B30, 0x90EF},
+ {0x5B31, 0x90FE},
+ {0x5B32, 0x9104},
+ {0x5B33, 0x9122},
+ {0x5B34, 0x911E},
+ {0x5B35, 0x9123},
+ {0x5B36, 0x9131},
+ {0x5B37, 0x912F},
+ {0x5B38, 0x9139},
+ {0x5B39, 0x9143},
+ {0x5B3A, 0x9146},
+ {0x5B3B, 0x520D},
+ {0x5B3C, 0x5942},
+ {0x5B3D, 0x52A2},
+ {0x5B3E, 0x52AC},
+ {0x5B3F, 0x52AD},
+ {0x5B40, 0x52BE},
+ {0x5B41, 0x54FF},
+ {0x5B42, 0x52D0},
+ {0x5B43, 0x52D6},
+ {0x5B44, 0x52F0},
+ {0x5B45, 0x53DF},
+ {0x5B46, 0x71EE},
+ {0x5B47, 0x77CD},
+ {0x5B48, 0x5EF4},
+ {0x5B49, 0x51F5},
+ {0x5B4A, 0x51FC},
+ {0x5B4B, 0x9B2F},
+ {0x5B4C, 0x53B6},
+ {0x5B4D, 0x5F01},
+ {0x5B4E, 0x755A},
+ {0x5B4F, 0x5DEF},
+ {0x5B50, 0x574C},
+ {0x5B51, 0x57A9},
+ {0x5B52, 0x57A1},
+ {0x5B53, 0x587E},
+ {0x5B54, 0x58BC},
+ {0x5B55, 0x58C5},
+ {0x5B56, 0x58D1},
+ {0x5B57, 0x5729},
+ {0x5B58, 0x572C},
+ {0x5B59, 0x572A},
+ {0x5B5A, 0x5733},
+ {0x5B5B, 0x5739},
+ {0x5B5C, 0x572E},
+ {0x5B5D, 0x572F},
+ {0x5B5E, 0x575C},
+ {0x5B5F, 0x573B},
+ {0x5B60, 0x5742},
+ {0x5B61, 0x5769},
+ {0x5B62, 0x5785},
+ {0x5B63, 0x576B},
+ {0x5B64, 0x5786},
+ {0x5B65, 0x577C},
+ {0x5B66, 0x577B},
+ {0x5B67, 0x5768},
+ {0x5B68, 0x576D},
+ {0x5B69, 0x5776},
+ {0x5B6A, 0x5773},
+ {0x5B6B, 0x57AD},
+ {0x5B6C, 0x57A4},
+ {0x5B6D, 0x578C},
+ {0x5B6E, 0x57B2},
+ {0x5B6F, 0x57CF},
+ {0x5B70, 0x57A7},
+ {0x5B71, 0x57B4},
+ {0x5B72, 0x5793},
+ {0x5B73, 0x57A0},
+ {0x5B74, 0x57D5},
+ {0x5B75, 0x57D8},
+ {0x5B76, 0x57DA},
+ {0x5B77, 0x57D9},
+ {0x5B78, 0x57D2},
+ {0x5B79, 0x57B8},
+ {0x5B7A, 0x57F4},
+ {0x5B7B, 0x57EF},
+ {0x5B7C, 0x57F8},
+ {0x5B7D, 0x57E4},
+ {0x5B7E, 0x57DD},
+ {0x5C21, 0x580B},
+ {0x5C22, 0x580D},
+ {0x5C23, 0x57FD},
+ {0x5C24, 0x57ED},
+ {0x5C25, 0x5800},
+ {0x5C26, 0x581E},
+ {0x5C27, 0x5819},
+ {0x5C28, 0x5844},
+ {0x5C29, 0x5820},
+ {0x5C2A, 0x5865},
+ {0x5C2B, 0x586C},
+ {0x5C2C, 0x5881},
+ {0x5C2D, 0x5889},
+ {0x5C2E, 0x589A},
+ {0x5C2F, 0x5880},
+ {0x5C30, 0x99A8},
+ {0x5C31, 0x9F19},
+ {0x5C32, 0x61FF},
+ {0x5C33, 0x8279},
+ {0x5C34, 0x827D},
+ {0x5C35, 0x827F},
+ {0x5C36, 0x828F},
+ {0x5C37, 0x828A},
+ {0x5C38, 0x82A8},
+ {0x5C39, 0x8284},
+ {0x5C3A, 0x828E},
+ {0x5C3B, 0x8291},
+ {0x5C3C, 0x8297},
+ {0x5C3D, 0x8299},
+ {0x5C3E, 0x82AB},
+ {0x5C3F, 0x82B8},
+ {0x5C40, 0x82BE},
+ {0x5C41, 0x82B0},
+ {0x5C42, 0x82C8},
+ {0x5C43, 0x82CA},
+ {0x5C44, 0x82E3},
+ {0x5C45, 0x8298},
+ {0x5C46, 0x82B7},
+ {0x5C47, 0x82AE},
+ {0x5C48, 0x82CB},
+ {0x5C49, 0x82CC},
+ {0x5C4A, 0x82C1},
+ {0x5C4B, 0x82A9},
+ {0x5C4C, 0x82B4},
+ {0x5C4D, 0x82A1},
+ {0x5C4E, 0x82AA},
+ {0x5C4F, 0x829F},
+ {0x5C50, 0x82C4},
+ {0x5C51, 0x82CE},
+ {0x5C52, 0x82A4},
+ {0x5C53, 0x82E1},
+ {0x5C54, 0x8309},
+ {0x5C55, 0x82F7},
+ {0x5C56, 0x82E4},
+ {0x5C57, 0x830F},
+ {0x5C58, 0x8307},
+ {0x5C59, 0x82DC},
+ {0x5C5A, 0x82F4},
+ {0x5C5B, 0x82D2},
+ {0x5C5C, 0x82D8},
+ {0x5C5D, 0x830C},
+ {0x5C5E, 0x82FB},
+ {0x5C5F, 0x82D3},
+ {0x5C60, 0x8311},
+ {0x5C61, 0x831A},
+ {0x5C62, 0x8306},
+ {0x5C63, 0x8314},
+ {0x5C64, 0x8315},
+ {0x5C65, 0x82E0},
+ {0x5C66, 0x82D5},
+ {0x5C67, 0x831C},
+ {0x5C68, 0x8351},
+ {0x5C69, 0x835B},
+ {0x5C6A, 0x835C},
+ {0x5C6B, 0x8308},
+ {0x5C6C, 0x8392},
+ {0x5C6D, 0x833C},
+ {0x5C6E, 0x8334},
+ {0x5C6F, 0x8331},
+ {0x5C70, 0x839B},
+ {0x5C71, 0x835E},
+ {0x5C72, 0x832F},
+ {0x5C73, 0x834F},
+ {0x5C74, 0x8347},
+ {0x5C75, 0x8343},
+ {0x5C76, 0x835F},
+ {0x5C77, 0x8340},
+ {0x5C78, 0x8317},
+ {0x5C79, 0x8360},
+ {0x5C7A, 0x832D},
+ {0x5C7B, 0x833A},
+ {0x5C7C, 0x8333},
+ {0x5C7D, 0x8366},
+ {0x5C7E, 0x8365},
+ {0x5D21, 0x8368},
+ {0x5D22, 0x831B},
+ {0x5D23, 0x8369},
+ {0x5D24, 0x836C},
+ {0x5D25, 0x836A},
+ {0x5D26, 0x836D},
+ {0x5D27, 0x836E},
+ {0x5D28, 0x83B0},
+ {0x5D29, 0x8378},
+ {0x5D2A, 0x83B3},
+ {0x5D2B, 0x83B4},
+ {0x5D2C, 0x83A0},
+ {0x5D2D, 0x83AA},
+ {0x5D2E, 0x8393},
+ {0x5D2F, 0x839C},
+ {0x5D30, 0x8385},
+ {0x5D31, 0x837C},
+ {0x5D32, 0x83B6},
+ {0x5D33, 0x83A9},
+ {0x5D34, 0x837D},
+ {0x5D35, 0x83B8},
+ {0x5D36, 0x837B},
+ {0x5D37, 0x8398},
+ {0x5D38, 0x839E},
+ {0x5D39, 0x83A8},
+ {0x5D3A, 0x83BA},
+ {0x5D3B, 0x83BC},
+ {0x5D3C, 0x83C1},
+ {0x5D3D, 0x8401},
+ {0x5D3E, 0x83E5},
+ {0x5D3F, 0x83D8},
+ {0x5D40, 0x5807},
+ {0x5D41, 0x8418},
+ {0x5D42, 0x840B},
+ {0x5D43, 0x83DD},
+ {0x5D44, 0x83FD},
+ {0x5D45, 0x83D6},
+ {0x5D46, 0x841C},
+ {0x5D47, 0x8438},
+ {0x5D48, 0x8411},
+ {0x5D49, 0x8406},
+ {0x5D4A, 0x83D4},
+ {0x5D4B, 0x83DF},
+ {0x5D4C, 0x840F},
+ {0x5D4D, 0x8403},
+ {0x5D4E, 0x83F8},
+ {0x5D4F, 0x83F9},
+ {0x5D50, 0x83EA},
+ {0x5D51, 0x83C5},
+ {0x5D52, 0x83C0},
+ {0x5D53, 0x8426},
+ {0x5D54, 0x83F0},
+ {0x5D55, 0x83E1},
+ {0x5D56, 0x845C},
+ {0x5D57, 0x8451},
+ {0x5D58, 0x845A},
+ {0x5D59, 0x8459},
+ {0x5D5A, 0x8473},
+ {0x5D5B, 0x8487},
+ {0x5D5C, 0x8488},
+ {0x5D5D, 0x847A},
+ {0x5D5E, 0x8489},
+ {0x5D5F, 0x8478},
+ {0x5D60, 0x843C},
+ {0x5D61, 0x8446},
+ {0x5D62, 0x8469},
+ {0x5D63, 0x8476},
+ {0x5D64, 0x848C},
+ {0x5D65, 0x848E},
+ {0x5D66, 0x8431},
+ {0x5D67, 0x846D},
+ {0x5D68, 0x84C1},
+ {0x5D69, 0x84CD},
+ {0x5D6A, 0x84D0},
+ {0x5D6B, 0x84E6},
+ {0x5D6C, 0x84BD},
+ {0x5D6D, 0x84D3},
+ {0x5D6E, 0x84CA},
+ {0x5D6F, 0x84BF},
+ {0x5D70, 0x84BA},
+ {0x5D71, 0x84E0},
+ {0x5D72, 0x84A1},
+ {0x5D73, 0x84B9},
+ {0x5D74, 0x84B4},
+ {0x5D75, 0x8497},
+ {0x5D76, 0x84E5},
+ {0x5D77, 0x84E3},
+ {0x5D78, 0x850C},
+ {0x5D79, 0x750D},
+ {0x5D7A, 0x8538},
+ {0x5D7B, 0x84F0},
+ {0x5D7C, 0x8539},
+ {0x5D7D, 0x851F},
+ {0x5D7E, 0x853A},
+ {0x5E21, 0x8556},
+ {0x5E22, 0x853B},
+ {0x5E23, 0x84FF},
+ {0x5E24, 0x84FC},
+ {0x5E25, 0x8559},
+ {0x5E26, 0x8548},
+ {0x5E27, 0x8568},
+ {0x5E28, 0x8564},
+ {0x5E29, 0x855E},
+ {0x5E2A, 0x857A},
+ {0x5E2B, 0x77A2},
+ {0x5E2C, 0x8543},
+ {0x5E2D, 0x8572},
+ {0x5E2E, 0x857B},
+ {0x5E2F, 0x85A4},
+ {0x5E30, 0x85A8},
+ {0x5E31, 0x8587},
+ {0x5E32, 0x858F},
+ {0x5E33, 0x8579},
+ {0x5E34, 0x85AE},
+ {0x5E35, 0x859C},
+ {0x5E36, 0x8585},
+ {0x5E37, 0x85B9},
+ {0x5E38, 0x85B7},
+ {0x5E39, 0x85B0},
+ {0x5E3A, 0x85D3},
+ {0x5E3B, 0x85C1},
+ {0x5E3C, 0x85DC},
+ {0x5E3D, 0x85FF},
+ {0x5E3E, 0x8627},
+ {0x5E3F, 0x8605},
+ {0x5E40, 0x8629},
+ {0x5E41, 0x8616},
+ {0x5E42, 0x863C},
+ {0x5E43, 0x5EFE},
+ {0x5E44, 0x5F08},
+ {0x5E45, 0x593C},
+ {0x5E46, 0x5941},
+ {0x5E47, 0x8037},
+ {0x5E48, 0x5955},
+ {0x5E49, 0x595A},
+ {0x5E4A, 0x5958},
+ {0x5E4B, 0x530F},
+ {0x5E4C, 0x5C22},
+ {0x5E4D, 0x5C25},
+ {0x5E4E, 0x5C2C},
+ {0x5E4F, 0x5C34},
+ {0x5E50, 0x624C},
+ {0x5E51, 0x626A},
+ {0x5E52, 0x629F},
+ {0x5E53, 0x62BB},
+ {0x5E54, 0x62CA},
+ {0x5E55, 0x62DA},
+ {0x5E56, 0x62D7},
+ {0x5E57, 0x62EE},
+ {0x5E58, 0x6322},
+ {0x5E59, 0x62F6},
+ {0x5E5A, 0x6339},
+ {0x5E5B, 0x634B},
+ {0x5E5C, 0x6343},
+ {0x5E5D, 0x63AD},
+ {0x5E5E, 0x63F6},
+ {0x5E5F, 0x6371},
+ {0x5E60, 0x637A},
+ {0x5E61, 0x638E},
+ {0x5E62, 0x63B4},
+ {0x5E63, 0x636D},
+ {0x5E64, 0x63AC},
+ {0x5E65, 0x638A},
+ {0x5E66, 0x6369},
+ {0x5E67, 0x63AE},
+ {0x5E68, 0x63BC},
+ {0x5E69, 0x63F2},
+ {0x5E6A, 0x63F8},
+ {0x5E6B, 0x63E0},
+ {0x5E6C, 0x63FF},
+ {0x5E6D, 0x63C4},
+ {0x5E6E, 0x63DE},
+ {0x5E6F, 0x63CE},
+ {0x5E70, 0x6452},
+ {0x5E71, 0x63C6},
+ {0x5E72, 0x63BE},
+ {0x5E73, 0x6445},
+ {0x5E74, 0x6441},
+ {0x5E75, 0x640B},
+ {0x5E76, 0x641B},
+ {0x5E77, 0x6420},
+ {0x5E78, 0x640C},
+ {0x5E79, 0x6426},
+ {0x5E7A, 0x6421},
+ {0x5E7B, 0x645E},
+ {0x5E7C, 0x6484},
+ {0x5E7D, 0x646D},
+ {0x5E7E, 0x6496},
+ {0x5F21, 0x647A},
+ {0x5F22, 0x64B7},
+ {0x5F23, 0x64B8},
+ {0x5F24, 0x6499},
+ {0x5F25, 0x64BA},
+ {0x5F26, 0x64C0},
+ {0x5F27, 0x64D0},
+ {0x5F28, 0x64D7},
+ {0x5F29, 0x64E4},
+ {0x5F2A, 0x64E2},
+ {0x5F2B, 0x6509},
+ {0x5F2C, 0x6525},
+ {0x5F2D, 0x652E},
+ {0x5F2E, 0x5F0B},
+ {0x5F2F, 0x5FD2},
+ {0x5F30, 0x7519},
+ {0x5F31, 0x5F11},
+ {0x5F32, 0x535F},
+ {0x5F33, 0x53F1},
+ {0x5F34, 0x53FD},
+ {0x5F35, 0x53E9},
+ {0x5F36, 0x53E8},
+ {0x5F37, 0x53FB},
+ {0x5F38, 0x5412},
+ {0x5F39, 0x5416},
+ {0x5F3A, 0x5406},
+ {0x5F3B, 0x544B},
+ {0x5F3C, 0x5452},
+ {0x5F3D, 0x5453},
+ {0x5F3E, 0x5454},
+ {0x5F3F, 0x5456},
+ {0x5F40, 0x5443},
+ {0x5F41, 0x5421},
+ {0x5F42, 0x5457},
+ {0x5F43, 0x5459},
+ {0x5F44, 0x5423},
+ {0x5F45, 0x5432},
+ {0x5F46, 0x5482},
+ {0x5F47, 0x5494},
+ {0x5F48, 0x5477},
+ {0x5F49, 0x5471},
+ {0x5F4A, 0x5464},
+ {0x5F4B, 0x549A},
+ {0x5F4C, 0x549B},
+ {0x5F4D, 0x5484},
+ {0x5F4E, 0x5476},
+ {0x5F4F, 0x5466},
+ {0x5F50, 0x549D},
+ {0x5F51, 0x54D0},
+ {0x5F52, 0x54AD},
+ {0x5F53, 0x54C2},
+ {0x5F54, 0x54B4},
+ {0x5F55, 0x54D2},
+ {0x5F56, 0x54A7},
+ {0x5F57, 0x54A6},
+ {0x5F58, 0x54D3},
+ {0x5F59, 0x54D4},
+ {0x5F5A, 0x5472},
+ {0x5F5B, 0x54A3},
+ {0x5F5C, 0x54D5},
+ {0x5F5D, 0x54BB},
+ {0x5F5E, 0x54BF},
+ {0x5F5F, 0x54CC},
+ {0x5F60, 0x54D9},
+ {0x5F61, 0x54DA},
+ {0x5F62, 0x54DC},
+ {0x5F63, 0x54A9},
+ {0x5F64, 0x54AA},
+ {0x5F65, 0x54A4},
+ {0x5F66, 0x54DD},
+ {0x5F67, 0x54CF},
+ {0x5F68, 0x54DE},
+ {0x5F69, 0x551B},
+ {0x5F6A, 0x54E7},
+ {0x5F6B, 0x5520},
+ {0x5F6C, 0x54FD},
+ {0x5F6D, 0x5514},
+ {0x5F6E, 0x54F3},
+ {0x5F6F, 0x5522},
+ {0x5F70, 0x5523},
+ {0x5F71, 0x550F},
+ {0x5F72, 0x5511},
+ {0x5F73, 0x5527},
+ {0x5F74, 0x552A},
+ {0x5F75, 0x5567},
+ {0x5F76, 0x558F},
+ {0x5F77, 0x55B5},
+ {0x5F78, 0x5549},
+ {0x5F79, 0x556D},
+ {0x5F7A, 0x5541},
+ {0x5F7B, 0x5555},
+ {0x5F7C, 0x553F},
+ {0x5F7D, 0x5550},
+ {0x5F7E, 0x553C},
+ {0x6021, 0x5537},
+ {0x6022, 0x5556},
+ {0x6023, 0x5575},
+ {0x6024, 0x5576},
+ {0x6025, 0x5577},
+ {0x6026, 0x5533},
+ {0x6027, 0x5530},
+ {0x6028, 0x555C},
+ {0x6029, 0x558B},
+ {0x602A, 0x55D2},
+ {0x602B, 0x5583},
+ {0x602C, 0x55B1},
+ {0x602D, 0x55B9},
+ {0x602E, 0x5588},
+ {0x602F, 0x5581},
+ {0x6030, 0x559F},
+ {0x6031, 0x557E},
+ {0x6032, 0x55D6},
+ {0x6033, 0x5591},
+ {0x6034, 0x557B},
+ {0x6035, 0x55DF},
+ {0x6036, 0x55BD},
+ {0x6037, 0x55BE},
+ {0x6038, 0x5594},
+ {0x6039, 0x5599},
+ {0x603A, 0x55EA},
+ {0x603B, 0x55F7},
+ {0x603C, 0x55C9},
+ {0x603D, 0x561F},
+ {0x603E, 0x55D1},
+ {0x603F, 0x55EB},
+ {0x6040, 0x55EC},
+ {0x6041, 0x55D4},
+ {0x6042, 0x55E6},
+ {0x6043, 0x55DD},
+ {0x6044, 0x55C4},
+ {0x6045, 0x55EF},
+ {0x6046, 0x55E5},
+ {0x6047, 0x55F2},
+ {0x6048, 0x55F3},
+ {0x6049, 0x55CC},
+ {0x604A, 0x55CD},
+ {0x604B, 0x55E8},
+ {0x604C, 0x55F5},
+ {0x604D, 0x55E4},
+ {0x604E, 0x8F94},
+ {0x604F, 0x561E},
+ {0x6050, 0x5608},
+ {0x6051, 0x560C},
+ {0x6052, 0x5601},
+ {0x6053, 0x5624},
+ {0x6054, 0x5623},
+ {0x6055, 0x55FE},
+ {0x6056, 0x5600},
+ {0x6057, 0x5627},
+ {0x6058, 0x562D},
+ {0x6059, 0x5658},
+ {0x605A, 0x5639},
+ {0x605B, 0x5657},
+ {0x605C, 0x562C},
+ {0x605D, 0x564D},
+ {0x605E, 0x5662},
+ {0x605F, 0x5659},
+ {0x6060, 0x565C},
+ {0x6061, 0x564C},
+ {0x6062, 0x5654},
+ {0x6063, 0x5686},
+ {0x6064, 0x5664},
+ {0x6065, 0x5671},
+ {0x6066, 0x566B},
+ {0x6067, 0x567B},
+ {0x6068, 0x567C},
+ {0x6069, 0x5685},
+ {0x606A, 0x5693},
+ {0x606B, 0x56AF},
+ {0x606C, 0x56D4},
+ {0x606D, 0x56D7},
+ {0x606E, 0x56DD},
+ {0x606F, 0x56E1},
+ {0x6070, 0x56F5},
+ {0x6071, 0x56EB},
+ {0x6072, 0x56F9},
+ {0x6073, 0x56FF},
+ {0x6074, 0x5704},
+ {0x6075, 0x570A},
+ {0x6076, 0x5709},
+ {0x6077, 0x571C},
+ {0x6078, 0x5E0F},
+ {0x6079, 0x5E19},
+ {0x607A, 0x5E14},
+ {0x607B, 0x5E11},
+ {0x607C, 0x5E31},
+ {0x607D, 0x5E3B},
+ {0x607E, 0x5E3C},
+ {0x6121, 0x5E37},
+ {0x6122, 0x5E44},
+ {0x6123, 0x5E54},
+ {0x6124, 0x5E5B},
+ {0x6125, 0x5E5E},
+ {0x6126, 0x5E61},
+ {0x6127, 0x5C8C},
+ {0x6128, 0x5C7A},
+ {0x6129, 0x5C8D},
+ {0x612A, 0x5C90},
+ {0x612B, 0x5C96},
+ {0x612C, 0x5C88},
+ {0x612D, 0x5C98},
+ {0x612E, 0x5C99},
+ {0x612F, 0x5C91},
+ {0x6130, 0x5C9A},
+ {0x6131, 0x5C9C},
+ {0x6132, 0x5CB5},
+ {0x6133, 0x5CA2},
+ {0x6134, 0x5CBD},
+ {0x6135, 0x5CAC},
+ {0x6136, 0x5CAB},
+ {0x6137, 0x5CB1},
+ {0x6138, 0x5CA3},
+ {0x6139, 0x5CC1},
+ {0x613A, 0x5CB7},
+ {0x613B, 0x5CC4},
+ {0x613C, 0x5CD2},
+ {0x613D, 0x5CE4},
+ {0x613E, 0x5CCB},
+ {0x613F, 0x5CE5},
+ {0x6140, 0x5D02},
+ {0x6141, 0x5D03},
+ {0x6142, 0x5D27},
+ {0x6143, 0x5D26},
+ {0x6144, 0x5D2E},
+ {0x6145, 0x5D24},
+ {0x6146, 0x5D1E},
+ {0x6147, 0x5D06},
+ {0x6148, 0x5D1B},
+ {0x6149, 0x5D58},
+ {0x614A, 0x5D3E},
+ {0x614B, 0x5D34},
+ {0x614C, 0x5D3D},
+ {0x614D, 0x5D6C},
+ {0x614E, 0x5D5B},
+ {0x614F, 0x5D6F},
+ {0x6150, 0x5D5D},
+ {0x6151, 0x5D6B},
+ {0x6152, 0x5D4B},
+ {0x6153, 0x5D4A},
+ {0x6154, 0x5D69},
+ {0x6155, 0x5D74},
+ {0x6156, 0x5D82},
+ {0x6157, 0x5D99},
+ {0x6158, 0x5D9D},
+ {0x6159, 0x8C73},
+ {0x615A, 0x5DB7},
+ {0x615B, 0x5DC5},
+ {0x615C, 0x5F73},
+ {0x615D, 0x5F77},
+ {0x615E, 0x5F82},
+ {0x615F, 0x5F87},
+ {0x6160, 0x5F89},
+ {0x6161, 0x5F8C},
+ {0x6162, 0x5F95},
+ {0x6163, 0x5F99},
+ {0x6164, 0x5F9C},
+ {0x6165, 0x5FA8},
+ {0x6166, 0x5FAD},
+ {0x6167, 0x5FB5},
+ {0x6168, 0x5FBC},
+ {0x6169, 0x8862},
+ {0x616A, 0x5F61},
+ {0x616B, 0x72AD},
+ {0x616C, 0x72B0},
+ {0x616D, 0x72B4},
+ {0x616E, 0x72B7},
+ {0x616F, 0x72B8},
+ {0x6170, 0x72C3},
+ {0x6171, 0x72C1},
+ {0x6172, 0x72CE},
+ {0x6173, 0x72CD},
+ {0x6174, 0x72D2},
+ {0x6175, 0x72E8},
+ {0x6176, 0x72EF},
+ {0x6177, 0x72E9},
+ {0x6178, 0x72F2},
+ {0x6179, 0x72F4},
+ {0x617A, 0x72F7},
+ {0x617B, 0x7301},
+ {0x617C, 0x72F3},
+ {0x617D, 0x7303},
+ {0x617E, 0x72FA},
+ {0x6221, 0x72FB},
+ {0x6222, 0x7317},
+ {0x6223, 0x7313},
+ {0x6224, 0x7321},
+ {0x6225, 0x730A},
+ {0x6226, 0x731E},
+ {0x6227, 0x731D},
+ {0x6228, 0x7315},
+ {0x6229, 0x7322},
+ {0x622A, 0x7339},
+ {0x622B, 0x7325},
+ {0x622C, 0x732C},
+ {0x622D, 0x7338},
+ {0x622E, 0x7331},
+ {0x622F, 0x7350},
+ {0x6230, 0x734D},
+ {0x6231, 0x7357},
+ {0x6232, 0x7360},
+ {0x6233, 0x736C},
+ {0x6234, 0x736F},
+ {0x6235, 0x737E},
+ {0x6236, 0x821B},
+ {0x6237, 0x5925},
+ {0x6238, 0x98E7},
+ {0x6239, 0x5924},
+ {0x623A, 0x5902},
+ {0x623B, 0x9963},
+ {0x623C, 0x9967},
+ {0x623D, 0x9968},
+ {0x623E, 0x9969},
+ {0x623F, 0x996A},
+ {0x6240, 0x996B},
+ {0x6241, 0x996C},
+ {0x6242, 0x9974},
+ {0x6243, 0x9977},
+ {0x6244, 0x997D},
+ {0x6245, 0x9980},
+ {0x6246, 0x9984},
+ {0x6247, 0x9987},
+ {0x6248, 0x998A},
+ {0x6249, 0x998D},
+ {0x624A, 0x9990},
+ {0x624B, 0x9991},
+ {0x624C, 0x9993},
+ {0x624D, 0x9994},
+ {0x624E, 0x9995},
+ {0x624F, 0x5E80},
+ {0x6250, 0x5E91},
+ {0x6251, 0x5E8B},
+ {0x6252, 0x5E96},
+ {0x6253, 0x5EA5},
+ {0x6254, 0x5EA0},
+ {0x6255, 0x5EB9},
+ {0x6256, 0x5EB5},
+ {0x6257, 0x5EBE},
+ {0x6258, 0x5EB3},
+ {0x6259, 0x8D53},
+ {0x625A, 0x5ED2},
+ {0x625B, 0x5ED1},
+ {0x625C, 0x5EDB},
+ {0x625D, 0x5EE8},
+ {0x625E, 0x5EEA},
+ {0x625F, 0x81BA},
+ {0x6260, 0x5FC4},
+ {0x6261, 0x5FC9},
+ {0x6262, 0x5FD6},
+ {0x6263, 0x5FCF},
+ {0x6264, 0x6003},
+ {0x6265, 0x5FEE},
+ {0x6266, 0x6004},
+ {0x6267, 0x5FE1},
+ {0x6268, 0x5FE4},
+ {0x6269, 0x5FFE},
+ {0x626A, 0x6005},
+ {0x626B, 0x6006},
+ {0x626C, 0x5FEA},
+ {0x626D, 0x5FED},
+ {0x626E, 0x5FF8},
+ {0x626F, 0x6019},
+ {0x6270, 0x6035},
+ {0x6271, 0x6026},
+ {0x6272, 0x601B},
+ {0x6273, 0x600F},
+ {0x6274, 0x600D},
+ {0x6275, 0x6029},
+ {0x6276, 0x602B},
+ {0x6277, 0x600A},
+ {0x6278, 0x603F},
+ {0x6279, 0x6021},
+ {0x627A, 0x6078},
+ {0x627B, 0x6079},
+ {0x627C, 0x607B},
+ {0x627D, 0x607A},
+ {0x627E, 0x6042},
+ {0x6321, 0x606A},
+ {0x6322, 0x607D},
+ {0x6323, 0x6096},
+ {0x6324, 0x609A},
+ {0x6325, 0x60AD},
+ {0x6326, 0x609D},
+ {0x6327, 0x6083},
+ {0x6328, 0x6092},
+ {0x6329, 0x608C},
+ {0x632A, 0x609B},
+ {0x632B, 0x60EC},
+ {0x632C, 0x60BB},
+ {0x632D, 0x60B1},
+ {0x632E, 0x60DD},
+ {0x632F, 0x60D8},
+ {0x6330, 0x60C6},
+ {0x6331, 0x60DA},
+ {0x6332, 0x60B4},
+ {0x6333, 0x6120},
+ {0x6334, 0x6126},
+ {0x6335, 0x6115},
+ {0x6336, 0x6123},
+ {0x6337, 0x60F4},
+ {0x6338, 0x6100},
+ {0x6339, 0x610E},
+ {0x633A, 0x612B},
+ {0x633B, 0x614A},
+ {0x633C, 0x6175},
+ {0x633D, 0x61AC},
+ {0x633E, 0x6194},
+ {0x633F, 0x61A7},
+ {0x6340, 0x61B7},
+ {0x6341, 0x61D4},
+ {0x6342, 0x61F5},
+ {0x6343, 0x5FDD},
+ {0x6344, 0x96B3},
+ {0x6345, 0x95E9},
+ {0x6346, 0x95EB},
+ {0x6347, 0x95F1},
+ {0x6348, 0x95F3},
+ {0x6349, 0x95F5},
+ {0x634A, 0x95F6},
+ {0x634B, 0x95FC},
+ {0x634C, 0x95FE},
+ {0x634D, 0x9603},
+ {0x634E, 0x9604},
+ {0x634F, 0x9606},
+ {0x6350, 0x9608},
+ {0x6351, 0x960A},
+ {0x6352, 0x960B},
+ {0x6353, 0x960C},
+ {0x6354, 0x960D},
+ {0x6355, 0x960F},
+ {0x6356, 0x9612},
+ {0x6357, 0x9615},
+ {0x6358, 0x9616},
+ {0x6359, 0x9617},
+ {0x635A, 0x9619},
+ {0x635B, 0x961A},
+ {0x635C, 0x4E2C},
+ {0x635D, 0x723F},
+ {0x635E, 0x6215},
+ {0x635F, 0x6C35},
+ {0x6360, 0x6C54},
+ {0x6361, 0x6C5C},
+ {0x6362, 0x6C4A},
+ {0x6363, 0x6CA3},
+ {0x6364, 0x6C85},
+ {0x6365, 0x6C90},
+ {0x6366, 0x6C94},
+ {0x6367, 0x6C8C},
+ {0x6368, 0x6C68},
+ {0x6369, 0x6C69},
+ {0x636A, 0x6C74},
+ {0x636B, 0x6C76},
+ {0x636C, 0x6C86},
+ {0x636D, 0x6CA9},
+ {0x636E, 0x6CD0},
+ {0x636F, 0x6CD4},
+ {0x6370, 0x6CAD},
+ {0x6371, 0x6CF7},
+ {0x6372, 0x6CF8},
+ {0x6373, 0x6CF1},
+ {0x6374, 0x6CD7},
+ {0x6375, 0x6CB2},
+ {0x6376, 0x6CE0},
+ {0x6377, 0x6CD6},
+ {0x6378, 0x6CFA},
+ {0x6379, 0x6CEB},
+ {0x637A, 0x6CEE},
+ {0x637B, 0x6CB1},
+ {0x637C, 0x6CD3},
+ {0x637D, 0x6CEF},
+ {0x637E, 0x6CFE},
+ {0x6421, 0x6D39},
+ {0x6422, 0x6D27},
+ {0x6423, 0x6D0C},
+ {0x6424, 0x6D43},
+ {0x6425, 0x6D48},
+ {0x6426, 0x6D07},
+ {0x6427, 0x6D04},
+ {0x6428, 0x6D19},
+ {0x6429, 0x6D0E},
+ {0x642A, 0x6D2B},
+ {0x642B, 0x6D4D},
+ {0x642C, 0x6D2E},
+ {0x642D, 0x6D35},
+ {0x642E, 0x6D1A},
+ {0x642F, 0x6D4F},
+ {0x6430, 0x6D52},
+ {0x6431, 0x6D54},
+ {0x6432, 0x6D33},
+ {0x6433, 0x6D91},
+ {0x6434, 0x6D6F},
+ {0x6435, 0x6D9E},
+ {0x6436, 0x6DA0},
+ {0x6437, 0x6D5E},
+ {0x6438, 0x6D93},
+ {0x6439, 0x6D94},
+ {0x643A, 0x6D5C},
+ {0x643B, 0x6D60},
+ {0x643C, 0x6D7C},
+ {0x643D, 0x6D63},
+ {0x643E, 0x6E1A},
+ {0x643F, 0x6DC7},
+ {0x6440, 0x6DC5},
+ {0x6441, 0x6DDE},
+ {0x6442, 0x6E0E},
+ {0x6443, 0x6DBF},
+ {0x6444, 0x6DE0},
+ {0x6445, 0x6E11},
+ {0x6446, 0x6DE6},
+ {0x6447, 0x6DDD},
+ {0x6448, 0x6DD9},
+ {0x6449, 0x6E16},
+ {0x644A, 0x6DAB},
+ {0x644B, 0x6E0C},
+ {0x644C, 0x6DAE},
+ {0x644D, 0x6E2B},
+ {0x644E, 0x6E6E},
+ {0x644F, 0x6E4E},
+ {0x6450, 0x6E6B},
+ {0x6451, 0x6EB2},
+ {0x6452, 0x6E5F},
+ {0x6453, 0x6E86},
+ {0x6454, 0x6E53},
+ {0x6455, 0x6E54},
+ {0x6456, 0x6E32},
+ {0x6457, 0x6E25},
+ {0x6458, 0x6E44},
+ {0x6459, 0x6EDF},
+ {0x645A, 0x6EB1},
+ {0x645B, 0x6E98},
+ {0x645C, 0x6EE0},
+ {0x645D, 0x6F2D},
+ {0x645E, 0x6EE2},
+ {0x645F, 0x6EA5},
+ {0x6460, 0x6EA7},
+ {0x6461, 0x6EBD},
+ {0x6462, 0x6EBB},
+ {0x6463, 0x6EB7},
+ {0x6464, 0x6ED7},
+ {0x6465, 0x6EB4},
+ {0x6466, 0x6ECF},
+ {0x6467, 0x6E8F},
+ {0x6468, 0x6EC2},
+ {0x6469, 0x6E9F},
+ {0x646A, 0x6F62},
+ {0x646B, 0x6F46},
+ {0x646C, 0x6F47},
+ {0x646D, 0x6F24},
+ {0x646E, 0x6F15},
+ {0x646F, 0x6EF9},
+ {0x6470, 0x6F2F},
+ {0x6471, 0x6F36},
+ {0x6472, 0x6F4B},
+ {0x6473, 0x6F74},
+ {0x6474, 0x6F2A},
+ {0x6475, 0x6F09},
+ {0x6476, 0x6F29},
+ {0x6477, 0x6F89},
+ {0x6478, 0x6F8D},
+ {0x6479, 0x6F8C},
+ {0x647A, 0x6F78},
+ {0x647B, 0x6F72},
+ {0x647C, 0x6F7C},
+ {0x647D, 0x6F7A},
+ {0x647E, 0x6FD1},
+ {0x6521, 0x6FC9},
+ {0x6522, 0x6FA7},
+ {0x6523, 0x6FB9},
+ {0x6524, 0x6FB6},
+ {0x6525, 0x6FC2},
+ {0x6526, 0x6FE1},
+ {0x6527, 0x6FEE},
+ {0x6528, 0x6FDE},
+ {0x6529, 0x6FE0},
+ {0x652A, 0x6FEF},
+ {0x652B, 0x701A},
+ {0x652C, 0x7023},
+ {0x652D, 0x701B},
+ {0x652E, 0x7039},
+ {0x652F, 0x7035},
+ {0x6530, 0x704F},
+ {0x6531, 0x705E},
+ {0x6532, 0x5B80},
+ {0x6533, 0x5B84},
+ {0x6534, 0x5B95},
+ {0x6535, 0x5B93},
+ {0x6536, 0x5BA5},
+ {0x6537, 0x5BB8},
+ {0x6538, 0x752F},
+ {0x6539, 0x9A9E},
+ {0x653A, 0x6434},
+ {0x653B, 0x5BE4},
+ {0x653C, 0x5BEE},
+ {0x653D, 0x8930},
+ {0x653E, 0x5BF0},
+ {0x653F, 0x8E47},
+ {0x6540, 0x8B07},
+ {0x6541, 0x8FB6},
+ {0x6542, 0x8FD3},
+ {0x6543, 0x8FD5},
+ {0x6544, 0x8FE5},
+ {0x6545, 0x8FEE},
+ {0x6546, 0x8FE4},
+ {0x6547, 0x8FE9},
+ {0x6548, 0x8FE6},
+ {0x6549, 0x8FF3},
+ {0x654A, 0x8FE8},
+ {0x654B, 0x9005},
+ {0x654C, 0x9004},
+ {0x654D, 0x900B},
+ {0x654E, 0x9026},
+ {0x654F, 0x9011},
+ {0x6550, 0x900D},
+ {0x6551, 0x9016},
+ {0x6552, 0x9021},
+ {0x6553, 0x9035},
+ {0x6554, 0x9036},
+ {0x6555, 0x902D},
+ {0x6556, 0x902F},
+ {0x6557, 0x9044},
+ {0x6558, 0x9051},
+ {0x6559, 0x9052},
+ {0x655A, 0x9050},
+ {0x655B, 0x9068},
+ {0x655C, 0x9058},
+ {0x655D, 0x9062},
+ {0x655E, 0x905B},
+ {0x655F, 0x66B9},
+ {0x6560, 0x9074},
+ {0x6561, 0x907D},
+ {0x6562, 0x9082},
+ {0x6563, 0x9088},
+ {0x6564, 0x9083},
+ {0x6565, 0x908B},
+ {0x6566, 0x5F50},
+ {0x6567, 0x5F57},
+ {0x6568, 0x5F56},
+ {0x6569, 0x5F58},
+ {0x656A, 0x5C3B},
+ {0x656B, 0x54AB},
+ {0x656C, 0x5C50},
+ {0x656D, 0x5C59},
+ {0x656E, 0x5B71},
+ {0x656F, 0x5C63},
+ {0x6570, 0x5C66},
+ {0x6571, 0x7FBC},
+ {0x6572, 0x5F2A},
+ {0x6573, 0x5F29},
+ {0x6574, 0x5F2D},
+ {0x6575, 0x8274},
+ {0x6576, 0x5F3C},
+ {0x6577, 0x9B3B},
+ {0x6578, 0x5C6E},
+ {0x6579, 0x5981},
+ {0x657A, 0x5983},
+ {0x657B, 0x598D},
+ {0x657C, 0x59A9},
+ {0x657D, 0x59AA},
+ {0x657E, 0x59A3},
+ {0x6621, 0x5997},
+ {0x6622, 0x59CA},
+ {0x6623, 0x59AB},
+ {0x6624, 0x599E},
+ {0x6625, 0x59A4},
+ {0x6626, 0x59D2},
+ {0x6627, 0x59B2},
+ {0x6628, 0x59AF},
+ {0x6629, 0x59D7},
+ {0x662A, 0x59BE},
+ {0x662B, 0x5A05},
+ {0x662C, 0x5A06},
+ {0x662D, 0x59DD},
+ {0x662E, 0x5A08},
+ {0x662F, 0x59E3},
+ {0x6630, 0x59D8},
+ {0x6631, 0x59F9},
+ {0x6632, 0x5A0C},
+ {0x6633, 0x5A09},
+ {0x6634, 0x5A32},
+ {0x6635, 0x5A34},
+ {0x6636, 0x5A11},
+ {0x6637, 0x5A23},
+ {0x6638, 0x5A13},
+ {0x6639, 0x5A40},
+ {0x663A, 0x5A67},
+ {0x663B, 0x5A4A},
+ {0x663C, 0x5A55},
+ {0x663D, 0x5A3C},
+ {0x663E, 0x5A62},
+ {0x663F, 0x5A75},
+ {0x6640, 0x80EC},
+ {0x6641, 0x5AAA},
+ {0x6642, 0x5A9B},
+ {0x6643, 0x5A77},
+ {0x6644, 0x5A7A},
+ {0x6645, 0x5ABE},
+ {0x6646, 0x5AEB},
+ {0x6647, 0x5AB2},
+ {0x6648, 0x5AD2},
+ {0x6649, 0x5AD4},
+ {0x664A, 0x5AB8},
+ {0x664B, 0x5AE0},
+ {0x664C, 0x5AE3},
+ {0x664D, 0x5AF1},
+ {0x664E, 0x5AD6},
+ {0x664F, 0x5AE6},
+ {0x6650, 0x5AD8},
+ {0x6651, 0x5ADC},
+ {0x6652, 0x5B09},
+ {0x6653, 0x5B17},
+ {0x6654, 0x5B16},
+ {0x6655, 0x5B32},
+ {0x6656, 0x5B37},
+ {0x6657, 0x5B40},
+ {0x6658, 0x5C15},
+ {0x6659, 0x5C1C},
+ {0x665A, 0x5B5A},
+ {0x665B, 0x5B65},
+ {0x665C, 0x5B73},
+ {0x665D, 0x5B51},
+ {0x665E, 0x5B53},
+ {0x665F, 0x5B62},
+ {0x6660, 0x9A75},
+ {0x6661, 0x9A77},
+ {0x6662, 0x9A78},
+ {0x6663, 0x9A7A},
+ {0x6664, 0x9A7F},
+ {0x6665, 0x9A7D},
+ {0x6666, 0x9A80},
+ {0x6667, 0x9A81},
+ {0x6668, 0x9A85},
+ {0x6669, 0x9A88},
+ {0x666A, 0x9A8A},
+ {0x666B, 0x9A90},
+ {0x666C, 0x9A92},
+ {0x666D, 0x9A93},
+ {0x666E, 0x9A96},
+ {0x666F, 0x9A98},
+ {0x6670, 0x9A9B},
+ {0x6671, 0x9A9C},
+ {0x6672, 0x9A9D},
+ {0x6673, 0x9A9F},
+ {0x6674, 0x9AA0},
+ {0x6675, 0x9AA2},
+ {0x6676, 0x9AA3},
+ {0x6677, 0x9AA5},
+ {0x6678, 0x9AA7},
+ {0x6679, 0x7E9F},
+ {0x667A, 0x7EA1},
+ {0x667B, 0x7EA3},
+ {0x667C, 0x7EA5},
+ {0x667D, 0x7EA8},
+ {0x667E, 0x7EA9},
+ {0x6721, 0x7EAD},
+ {0x6722, 0x7EB0},
+ {0x6723, 0x7EBE},
+ {0x6724, 0x7EC0},
+ {0x6725, 0x7EC1},
+ {0x6726, 0x7EC2},
+ {0x6727, 0x7EC9},
+ {0x6728, 0x7ECB},
+ {0x6729, 0x7ECC},
+ {0x672A, 0x7ED0},
+ {0x672B, 0x7ED4},
+ {0x672C, 0x7ED7},
+ {0x672D, 0x7EDB},
+ {0x672E, 0x7EE0},
+ {0x672F, 0x7EE1},
+ {0x6730, 0x7EE8},
+ {0x6731, 0x7EEB},
+ {0x6732, 0x7EEE},
+ {0x6733, 0x7EEF},
+ {0x6734, 0x7EF1},
+ {0x6735, 0x7EF2},
+ {0x6736, 0x7F0D},
+ {0x6737, 0x7EF6},
+ {0x6738, 0x7EFA},
+ {0x6739, 0x7EFB},
+ {0x673A, 0x7EFE},
+ {0x673B, 0x7F01},
+ {0x673C, 0x7F02},
+ {0x673D, 0x7F03},
+ {0x673E, 0x7F07},
+ {0x673F, 0x7F08},
+ {0x6740, 0x7F0B},
+ {0x6741, 0x7F0C},
+ {0x6742, 0x7F0F},
+ {0x6743, 0x7F11},
+ {0x6744, 0x7F12},
+ {0x6745, 0x7F17},
+ {0x6746, 0x7F19},
+ {0x6747, 0x7F1C},
+ {0x6748, 0x7F1B},
+ {0x6749, 0x7F1F},
+ {0x674A, 0x7F21},
+ {0x674B, 0x7F22},
+ {0x674C, 0x7F23},
+ {0x674D, 0x7F24},
+ {0x674E, 0x7F25},
+ {0x674F, 0x7F26},
+ {0x6750, 0x7F27},
+ {0x6751, 0x7F2A},
+ {0x6752, 0x7F2B},
+ {0x6753, 0x7F2C},
+ {0x6754, 0x7F2D},
+ {0x6755, 0x7F2F},
+ {0x6756, 0x7F30},
+ {0x6757, 0x7F31},
+ {0x6758, 0x7F32},
+ {0x6759, 0x7F33},
+ {0x675A, 0x7F35},
+ {0x675B, 0x5E7A},
+ {0x675C, 0x757F},
+ {0x675D, 0x5DDB},
+ {0x675E, 0x753E},
+ {0x675F, 0x9095},
+ {0x6760, 0x738E},
+ {0x6761, 0x7391},
+ {0x6762, 0x73AE},
+ {0x6763, 0x73A2},
+ {0x6764, 0x739F},
+ {0x6765, 0x73CF},
+ {0x6766, 0x73C2},
+ {0x6767, 0x73D1},
+ {0x6768, 0x73B7},
+ {0x6769, 0x73B3},
+ {0x676A, 0x73C0},
+ {0x676B, 0x73C9},
+ {0x676C, 0x73C8},
+ {0x676D, 0x73E5},
+ {0x676E, 0x73D9},
+ {0x676F, 0x987C},
+ {0x6770, 0x740A},
+ {0x6771, 0x73E9},
+ {0x6772, 0x73E7},
+ {0x6773, 0x73DE},
+ {0x6774, 0x73BA},
+ {0x6775, 0x73F2},
+ {0x6776, 0x740F},
+ {0x6777, 0x742A},
+ {0x6778, 0x745B},
+ {0x6779, 0x7426},
+ {0x677A, 0x7425},
+ {0x677B, 0x7428},
+ {0x677C, 0x7430},
+ {0x677D, 0x742E},
+ {0x677E, 0x742C},
+ {0x6821, 0x741B},
+ {0x6822, 0x741A},
+ {0x6823, 0x7441},
+ {0x6824, 0x745C},
+ {0x6825, 0x7457},
+ {0x6826, 0x7455},
+ {0x6827, 0x7459},
+ {0x6828, 0x7477},
+ {0x6829, 0x746D},
+ {0x682A, 0x747E},
+ {0x682B, 0x749C},
+ {0x682C, 0x748E},
+ {0x682D, 0x7480},
+ {0x682E, 0x7481},
+ {0x682F, 0x7487},
+ {0x6830, 0x748B},
+ {0x6831, 0x749E},
+ {0x6832, 0x74A8},
+ {0x6833, 0x74A9},
+ {0x6834, 0x7490},
+ {0x6835, 0x74A7},
+ {0x6836, 0x74D2},
+ {0x6837, 0x74BA},
+ {0x6838, 0x97EA},
+ {0x6839, 0x97EB},
+ {0x683A, 0x97EC},
+ {0x683B, 0x674C},
+ {0x683C, 0x6753},
+ {0x683D, 0x675E},
+ {0x683E, 0x6748},
+ {0x683F, 0x6769},
+ {0x6840, 0x67A5},
+ {0x6841, 0x6787},
+ {0x6842, 0x676A},
+ {0x6843, 0x6773},
+ {0x6844, 0x6798},
+ {0x6845, 0x67A7},
+ {0x6846, 0x6775},
+ {0x6847, 0x67A8},
+ {0x6848, 0x679E},
+ {0x6849, 0x67AD},
+ {0x684A, 0x678B},
+ {0x684B, 0x6777},
+ {0x684C, 0x677C},
+ {0x684D, 0x67F0},
+ {0x684E, 0x6809},
+ {0x684F, 0x67D8},
+ {0x6850, 0x680A},
+ {0x6851, 0x67E9},
+ {0x6852, 0x67B0},
+ {0x6853, 0x680C},
+ {0x6854, 0x67D9},
+ {0x6855, 0x67B5},
+ {0x6856, 0x67DA},
+ {0x6857, 0x67B3},
+ {0x6858, 0x67DD},
+ {0x6859, 0x6800},
+ {0x685A, 0x67C3},
+ {0x685B, 0x67B8},
+ {0x685C, 0x67E2},
+ {0x685D, 0x680E},
+ {0x685E, 0x67C1},
+ {0x685F, 0x67FD},
+ {0x6860, 0x6832},
+ {0x6861, 0x6833},
+ {0x6862, 0x6860},
+ {0x6863, 0x6861},
+ {0x6864, 0x684E},
+ {0x6865, 0x6862},
+ {0x6866, 0x6844},
+ {0x6867, 0x6864},
+ {0x6868, 0x6883},
+ {0x6869, 0x681D},
+ {0x686A, 0x6855},
+ {0x686B, 0x6866},
+ {0x686C, 0x6841},
+ {0x686D, 0x6867},
+ {0x686E, 0x6840},
+ {0x686F, 0x683E},
+ {0x6870, 0x684A},
+ {0x6871, 0x6849},
+ {0x6872, 0x6829},
+ {0x6873, 0x68B5},
+ {0x6874, 0x688F},
+ {0x6875, 0x6874},
+ {0x6876, 0x6877},
+ {0x6877, 0x6893},
+ {0x6878, 0x686B},
+ {0x6879, 0x68C2},
+ {0x687A, 0x696E},
+ {0x687B, 0x68FC},
+ {0x687C, 0x691F},
+ {0x687D, 0x6920},
+ {0x687E, 0x68F9},
+ {0x6921, 0x6924},
+ {0x6922, 0x68F0},
+ {0x6923, 0x690B},
+ {0x6924, 0x6901},
+ {0x6925, 0x6957},
+ {0x6926, 0x68E3},
+ {0x6927, 0x6910},
+ {0x6928, 0x6971},
+ {0x6929, 0x6939},
+ {0x692A, 0x6960},
+ {0x692B, 0x6942},
+ {0x692C, 0x695D},
+ {0x692D, 0x6984},
+ {0x692E, 0x696B},
+ {0x692F, 0x6980},
+ {0x6930, 0x6998},
+ {0x6931, 0x6978},
+ {0x6932, 0x6934},
+ {0x6933, 0x69CC},
+ {0x6934, 0x6987},
+ {0x6935, 0x6988},
+ {0x6936, 0x69CE},
+ {0x6937, 0x6989},
+ {0x6938, 0x6966},
+ {0x6939, 0x6963},
+ {0x693A, 0x6979},
+ {0x693B, 0x699B},
+ {0x693C, 0x69A7},
+ {0x693D, 0x69BB},
+ {0x693E, 0x69AB},
+ {0x693F, 0x69AD},
+ {0x6940, 0x69D4},
+ {0x6941, 0x69B1},
+ {0x6942, 0x69C1},
+ {0x6943, 0x69CA},
+ {0x6944, 0x69DF},
+ {0x6945, 0x6995},
+ {0x6946, 0x69E0},
+ {0x6947, 0x698D},
+ {0x6948, 0x69FF},
+ {0x6949, 0x6A2F},
+ {0x694A, 0x69ED},
+ {0x694B, 0x6A17},
+ {0x694C, 0x6A18},
+ {0x694D, 0x6A65},
+ {0x694E, 0x69F2},
+ {0x694F, 0x6A44},
+ {0x6950, 0x6A3E},
+ {0x6951, 0x6AA0},
+ {0x6952, 0x6A50},
+ {0x6953, 0x6A5B},
+ {0x6954, 0x6A35},
+ {0x6955, 0x6A8E},
+ {0x6956, 0x6A79},
+ {0x6957, 0x6A3D},
+ {0x6958, 0x6A28},
+ {0x6959, 0x6A58},
+ {0x695A, 0x6A7C},
+ {0x695B, 0x6A91},
+ {0x695C, 0x6A90},
+ {0x695D, 0x6AA9},
+ {0x695E, 0x6A97},
+ {0x695F, 0x6AAB},
+ {0x6960, 0x7337},
+ {0x6961, 0x7352},
+ {0x6962, 0x6B81},
+ {0x6963, 0x6B82},
+ {0x6964, 0x6B87},
+ {0x6965, 0x6B84},
+ {0x6966, 0x6B92},
+ {0x6967, 0x6B93},
+ {0x6968, 0x6B8D},
+ {0x6969, 0x6B9A},
+ {0x696A, 0x6B9B},
+ {0x696B, 0x6BA1},
+ {0x696C, 0x6BAA},
+ {0x696D, 0x8F6B},
+ {0x696E, 0x8F6D},
+ {0x696F, 0x8F71},
+ {0x6970, 0x8F72},
+ {0x6971, 0x8F73},
+ {0x6972, 0x8F75},
+ {0x6973, 0x8F76},
+ {0x6974, 0x8F78},
+ {0x6975, 0x8F77},
+ {0x6976, 0x8F79},
+ {0x6977, 0x8F7A},
+ {0x6978, 0x8F7C},
+ {0x6979, 0x8F7E},
+ {0x697A, 0x8F81},
+ {0x697B, 0x8F82},
+ {0x697C, 0x8F84},
+ {0x697D, 0x8F87},
+ {0x697E, 0x8F8B},
+ {0x6A21, 0x8F8D},
+ {0x6A22, 0x8F8E},
+ {0x6A23, 0x8F8F},
+ {0x6A24, 0x8F98},
+ {0x6A25, 0x8F9A},
+ {0x6A26, 0x8ECE},
+ {0x6A27, 0x620B},
+ {0x6A28, 0x6217},
+ {0x6A29, 0x621B},
+ {0x6A2A, 0x621F},
+ {0x6A2B, 0x6222},
+ {0x6A2C, 0x6221},
+ {0x6A2D, 0x6225},
+ {0x6A2E, 0x6224},
+ {0x6A2F, 0x622C},
+ {0x6A30, 0x81E7},
+ {0x6A31, 0x74EF},
+ {0x6A32, 0x74F4},
+ {0x6A33, 0x74FF},
+ {0x6A34, 0x750F},
+ {0x6A35, 0x7511},
+ {0x6A36, 0x7513},
+ {0x6A37, 0x6534},
+ {0x6A38, 0x65EE},
+ {0x6A39, 0x65EF},
+ {0x6A3A, 0x65F0},
+ {0x6A3B, 0x660A},
+ {0x6A3C, 0x6619},
+ {0x6A3D, 0x6772},
+ {0x6A3E, 0x6603},
+ {0x6A3F, 0x6615},
+ {0x6A40, 0x6600},
+ {0x6A41, 0x7085},
+ {0x6A42, 0x66F7},
+ {0x6A43, 0x661D},
+ {0x6A44, 0x6634},
+ {0x6A45, 0x6631},
+ {0x6A46, 0x6636},
+ {0x6A47, 0x6635},
+ {0x6A48, 0x8006},
+ {0x6A49, 0x665F},
+ {0x6A4A, 0x6654},
+ {0x6A4B, 0x6641},
+ {0x6A4C, 0x664F},
+ {0x6A4D, 0x6656},
+ {0x6A4E, 0x6661},
+ {0x6A4F, 0x6657},
+ {0x6A50, 0x6677},
+ {0x6A51, 0x6684},
+ {0x6A52, 0x668C},
+ {0x6A53, 0x66A7},
+ {0x6A54, 0x669D},
+ {0x6A55, 0x66BE},
+ {0x6A56, 0x66DB},
+ {0x6A57, 0x66DC},
+ {0x6A58, 0x66E6},
+ {0x6A59, 0x66E9},
+ {0x6A5A, 0x8D32},
+ {0x6A5B, 0x8D33},
+ {0x6A5C, 0x8D36},
+ {0x6A5D, 0x8D3B},
+ {0x6A5E, 0x8D3D},
+ {0x6A5F, 0x8D40},
+ {0x6A60, 0x8D45},
+ {0x6A61, 0x8D46},
+ {0x6A62, 0x8D48},
+ {0x6A63, 0x8D49},
+ {0x6A64, 0x8D47},
+ {0x6A65, 0x8D4D},
+ {0x6A66, 0x8D55},
+ {0x6A67, 0x8D59},
+ {0x6A68, 0x89C7},
+ {0x6A69, 0x89CA},
+ {0x6A6A, 0x89CB},
+ {0x6A6B, 0x89CC},
+ {0x6A6C, 0x89CE},
+ {0x6A6D, 0x89CF},
+ {0x6A6E, 0x89D0},
+ {0x6A6F, 0x89D1},
+ {0x6A70, 0x726E},
+ {0x6A71, 0x729F},
+ {0x6A72, 0x725D},
+ {0x6A73, 0x7266},
+ {0x6A74, 0x726F},
+ {0x6A75, 0x727E},
+ {0x6A76, 0x727F},
+ {0x6A77, 0x7284},
+ {0x6A78, 0x728B},
+ {0x6A79, 0x728D},
+ {0x6A7A, 0x728F},
+ {0x6A7B, 0x7292},
+ {0x6A7C, 0x6308},
+ {0x6A7D, 0x6332},
+ {0x6A7E, 0x63B0},
+ {0x6B21, 0x643F},
+ {0x6B22, 0x64D8},
+ {0x6B23, 0x8004},
+ {0x6B24, 0x6BEA},
+ {0x6B25, 0x6BF3},
+ {0x6B26, 0x6BFD},
+ {0x6B27, 0x6BF5},
+ {0x6B28, 0x6BF9},
+ {0x6B29, 0x6C05},
+ {0x6B2A, 0x6C07},
+ {0x6B2B, 0x6C06},
+ {0x6B2C, 0x6C0D},
+ {0x6B2D, 0x6C15},
+ {0x6B2E, 0x6C18},
+ {0x6B2F, 0x6C19},
+ {0x6B30, 0x6C1A},
+ {0x6B31, 0x6C21},
+ {0x6B32, 0x6C29},
+ {0x6B33, 0x6C24},
+ {0x6B34, 0x6C2A},
+ {0x6B35, 0x6C32},
+ {0x6B36, 0x6535},
+ {0x6B37, 0x6555},
+ {0x6B38, 0x656B},
+ {0x6B39, 0x724D},
+ {0x6B3A, 0x7252},
+ {0x6B3B, 0x7256},
+ {0x6B3C, 0x7230},
+ {0x6B3D, 0x8662},
+ {0x6B3E, 0x5216},
+ {0x6B3F, 0x809F},
+ {0x6B40, 0x809C},
+ {0x6B41, 0x8093},
+ {0x6B42, 0x80BC},
+ {0x6B43, 0x670A},
+ {0x6B44, 0x80BD},
+ {0x6B45, 0x80B1},
+ {0x6B46, 0x80AB},
+ {0x6B47, 0x80AD},
+ {0x6B48, 0x80B4},
+ {0x6B49, 0x80B7},
+ {0x6B4A, 0x80E7},
+ {0x6B4B, 0x80E8},
+ {0x6B4C, 0x80E9},
+ {0x6B4D, 0x80EA},
+ {0x6B4E, 0x80DB},
+ {0x6B4F, 0x80C2},
+ {0x6B50, 0x80C4},
+ {0x6B51, 0x80D9},
+ {0x6B52, 0x80CD},
+ {0x6B53, 0x80D7},
+ {0x6B54, 0x6710},
+ {0x6B55, 0x80DD},
+ {0x6B56, 0x80EB},
+ {0x6B57, 0x80F1},
+ {0x6B58, 0x80F4},
+ {0x6B59, 0x80ED},
+ {0x6B5A, 0x810D},
+ {0x6B5B, 0x810E},
+ {0x6B5C, 0x80F2},
+ {0x6B5D, 0x80FC},
+ {0x6B5E, 0x6715},
+ {0x6B5F, 0x8112},
+ {0x6B60, 0x8C5A},
+ {0x6B61, 0x8136},
+ {0x6B62, 0x811E},
+ {0x6B63, 0x812C},
+ {0x6B64, 0x8118},
+ {0x6B65, 0x8132},
+ {0x6B66, 0x8148},
+ {0x6B67, 0x814C},
+ {0x6B68, 0x8153},
+ {0x6B69, 0x8174},
+ {0x6B6A, 0x8159},
+ {0x6B6B, 0x815A},
+ {0x6B6C, 0x8171},
+ {0x6B6D, 0x8160},
+ {0x6B6E, 0x8169},
+ {0x6B6F, 0x817C},
+ {0x6B70, 0x817D},
+ {0x6B71, 0x816D},
+ {0x6B72, 0x8167},
+ {0x6B73, 0x584D},
+ {0x6B74, 0x5AB5},
+ {0x6B75, 0x8188},
+ {0x6B76, 0x8182},
+ {0x6B77, 0x8191},
+ {0x6B78, 0x6ED5},
+ {0x6B79, 0x81A3},
+ {0x6B7A, 0x81AA},
+ {0x6B7B, 0x81CC},
+ {0x6B7C, 0x6726},
+ {0x6B7D, 0x81CA},
+ {0x6B7E, 0x81BB},
+ {0x6C21, 0x81C1},
+ {0x6C22, 0x81A6},
+ {0x6C23, 0x6B24},
+ {0x6C24, 0x6B37},
+ {0x6C25, 0x6B39},
+ {0x6C26, 0x6B43},
+ {0x6C27, 0x6B46},
+ {0x6C28, 0x6B59},
+ {0x6C29, 0x98D1},
+ {0x6C2A, 0x98D2},
+ {0x6C2B, 0x98D3},
+ {0x6C2C, 0x98D5},
+ {0x6C2D, 0x98D9},
+ {0x6C2E, 0x98DA},
+ {0x6C2F, 0x6BB3},
+ {0x6C30, 0x5F40},
+ {0x6C31, 0x6BC2},
+ {0x6C32, 0x89F3},
+ {0x6C33, 0x6590},
+ {0x6C34, 0x9F51},
+ {0x6C35, 0x6593},
+ {0x6C36, 0x65BC},
+ {0x6C37, 0x65C6},
+ {0x6C38, 0x65C4},
+ {0x6C39, 0x65C3},
+ {0x6C3A, 0x65CC},
+ {0x6C3B, 0x65CE},
+ {0x6C3C, 0x65D2},
+ {0x6C3D, 0x65D6},
+ {0x6C3E, 0x7080},
+ {0x6C3F, 0x709C},
+ {0x6C40, 0x7096},
+ {0x6C41, 0x709D},
+ {0x6C42, 0x70BB},
+ {0x6C43, 0x70C0},
+ {0x6C44, 0x70B7},
+ {0x6C45, 0x70AB},
+ {0x6C46, 0x70B1},
+ {0x6C47, 0x70E8},
+ {0x6C48, 0x70CA},
+ {0x6C49, 0x7110},
+ {0x6C4A, 0x7113},
+ {0x6C4B, 0x7116},
+ {0x6C4C, 0x712F},
+ {0x6C4D, 0x7131},
+ {0x6C4E, 0x7173},
+ {0x6C4F, 0x715C},
+ {0x6C50, 0x7168},
+ {0x6C51, 0x7145},
+ {0x6C52, 0x7172},
+ {0x6C53, 0x714A},
+ {0x6C54, 0x7178},
+ {0x6C55, 0x717A},
+ {0x6C56, 0x7198},
+ {0x6C57, 0x71B3},
+ {0x6C58, 0x71B5},
+ {0x6C59, 0x71A8},
+ {0x6C5A, 0x71A0},
+ {0x6C5B, 0x71E0},
+ {0x6C5C, 0x71D4},
+ {0x6C5D, 0x71E7},
+ {0x6C5E, 0x71F9},
+ {0x6C5F, 0x721D},
+ {0x6C60, 0x7228},
+ {0x6C61, 0x706C},
+ {0x6C62, 0x7118},
+ {0x6C63, 0x7166},
+ {0x6C64, 0x71B9},
+ {0x6C65, 0x623E},
+ {0x6C66, 0x623D},
+ {0x6C67, 0x6243},
+ {0x6C68, 0x6248},
+ {0x6C69, 0x6249},
+ {0x6C6A, 0x793B},
+ {0x6C6B, 0x7940},
+ {0x6C6C, 0x7946},
+ {0x6C6D, 0x7949},
+ {0x6C6E, 0x795B},
+ {0x6C6F, 0x795C},
+ {0x6C70, 0x7953},
+ {0x6C71, 0x795A},
+ {0x6C72, 0x7962},
+ {0x6C73, 0x7957},
+ {0x6C74, 0x7960},
+ {0x6C75, 0x796F},
+ {0x6C76, 0x7967},
+ {0x6C77, 0x797A},
+ {0x6C78, 0x7985},
+ {0x6C79, 0x798A},
+ {0x6C7A, 0x799A},
+ {0x6C7B, 0x79A7},
+ {0x6C7C, 0x79B3},
+ {0x6C7D, 0x5FD1},
+ {0x6C7E, 0x5FD0},
+ {0x6D21, 0x603C},
+ {0x6D22, 0x605D},
+ {0x6D23, 0x605A},
+ {0x6D24, 0x6067},
+ {0x6D25, 0x6041},
+ {0x6D26, 0x6059},
+ {0x6D27, 0x6063},
+ {0x6D28, 0x60AB},
+ {0x6D29, 0x6106},
+ {0x6D2A, 0x610D},
+ {0x6D2B, 0x615D},
+ {0x6D2C, 0x61A9},
+ {0x6D2D, 0x619D},
+ {0x6D2E, 0x61CB},
+ {0x6D2F, 0x61D1},
+ {0x6D30, 0x6206},
+ {0x6D31, 0x8080},
+ {0x6D32, 0x807F},
+ {0x6D33, 0x6C93},
+ {0x6D34, 0x6CF6},
+ {0x6D35, 0x6DFC},
+ {0x6D36, 0x77F6},
+ {0x6D37, 0x77F8},
+ {0x6D38, 0x7800},
+ {0x6D39, 0x7809},
+ {0x6D3A, 0x7817},
+ {0x6D3B, 0x7818},
+ {0x6D3C, 0x7811},
+ {0x6D3D, 0x65AB},
+ {0x6D3E, 0x782D},
+ {0x6D3F, 0x781C},
+ {0x6D40, 0x781D},
+ {0x6D41, 0x7839},
+ {0x6D42, 0x783A},
+ {0x6D43, 0x783B},
+ {0x6D44, 0x781F},
+ {0x6D45, 0x783C},
+ {0x6D46, 0x7825},
+ {0x6D47, 0x782C},
+ {0x6D48, 0x7823},
+ {0x6D49, 0x7829},
+ {0x6D4A, 0x784E},
+ {0x6D4B, 0x786D},
+ {0x6D4C, 0x7856},
+ {0x6D4D, 0x7857},
+ {0x6D4E, 0x7826},
+ {0x6D4F, 0x7850},
+ {0x6D50, 0x7847},
+ {0x6D51, 0x784C},
+ {0x6D52, 0x786A},
+ {0x6D53, 0x789B},
+ {0x6D54, 0x7893},
+ {0x6D55, 0x789A},
+ {0x6D56, 0x7887},
+ {0x6D57, 0x789C},
+ {0x6D58, 0x78A1},
+ {0x6D59, 0x78A3},
+ {0x6D5A, 0x78B2},
+ {0x6D5B, 0x78B9},
+ {0x6D5C, 0x78A5},
+ {0x6D5D, 0x78D4},
+ {0x6D5E, 0x78D9},
+ {0x6D5F, 0x78C9},
+ {0x6D60, 0x78EC},
+ {0x6D61, 0x78F2},
+ {0x6D62, 0x7905},
+ {0x6D63, 0x78F4},
+ {0x6D64, 0x7913},
+ {0x6D65, 0x7924},
+ {0x6D66, 0x791E},
+ {0x6D67, 0x7934},
+ {0x6D68, 0x9F9B},
+ {0x6D69, 0x9EF9},
+ {0x6D6A, 0x9EFB},
+ {0x6D6B, 0x9EFC},
+ {0x6D6C, 0x76F1},
+ {0x6D6D, 0x7704},
+ {0x6D6E, 0x770D},
+ {0x6D6F, 0x76F9},
+ {0x6D70, 0x7707},
+ {0x6D71, 0x7708},
+ {0x6D72, 0x771A},
+ {0x6D73, 0x7722},
+ {0x6D74, 0x7719},
+ {0x6D75, 0x772D},
+ {0x6D76, 0x7726},
+ {0x6D77, 0x7735},
+ {0x6D78, 0x7738},
+ {0x6D79, 0x7750},
+ {0x6D7A, 0x7751},
+ {0x6D7B, 0x7747},
+ {0x6D7C, 0x7743},
+ {0x6D7D, 0x775A},
+ {0x6D7E, 0x7768},
+ {0x6E21, 0x7762},
+ {0x6E22, 0x7765},
+ {0x6E23, 0x777F},
+ {0x6E24, 0x778D},
+ {0x6E25, 0x777D},
+ {0x6E26, 0x7780},
+ {0x6E27, 0x778C},
+ {0x6E28, 0x7791},
+ {0x6E29, 0x779F},
+ {0x6E2A, 0x77A0},
+ {0x6E2B, 0x77B0},
+ {0x6E2C, 0x77B5},
+ {0x6E2D, 0x77BD},
+ {0x6E2E, 0x753A},
+ {0x6E2F, 0x7540},
+ {0x6E30, 0x754E},
+ {0x6E31, 0x754B},
+ {0x6E32, 0x7548},
+ {0x6E33, 0x755B},
+ {0x6E34, 0x7572},
+ {0x6E35, 0x7579},
+ {0x6E36, 0x7583},
+ {0x6E37, 0x7F58},
+ {0x6E38, 0x7F61},
+ {0x6E39, 0x7F5F},
+ {0x6E3A, 0x8A48},
+ {0x6E3B, 0x7F68},
+ {0x6E3C, 0x7F74},
+ {0x6E3D, 0x7F71},
+ {0x6E3E, 0x7F79},
+ {0x6E3F, 0x7F81},
+ {0x6E40, 0x7F7E},
+ {0x6E41, 0x76CD},
+ {0x6E42, 0x76E5},
+ {0x6E43, 0x8832},
+ {0x6E44, 0x9485},
+ {0x6E45, 0x9486},
+ {0x6E46, 0x9487},
+ {0x6E47, 0x948B},
+ {0x6E48, 0x948A},
+ {0x6E49, 0x948C},
+ {0x6E4A, 0x948D},
+ {0x6E4B, 0x948F},
+ {0x6E4C, 0x9490},
+ {0x6E4D, 0x9494},
+ {0x6E4E, 0x9497},
+ {0x6E4F, 0x9495},
+ {0x6E50, 0x949A},
+ {0x6E51, 0x949B},
+ {0x6E52, 0x949C},
+ {0x6E53, 0x94A3},
+ {0x6E54, 0x94A4},
+ {0x6E55, 0x94AB},
+ {0x6E56, 0x94AA},
+ {0x6E57, 0x94AD},
+ {0x6E58, 0x94AC},
+ {0x6E59, 0x94AF},
+ {0x6E5A, 0x94B0},
+ {0x6E5B, 0x94B2},
+ {0x6E5C, 0x94B4},
+ {0x6E5D, 0x94B6},
+ {0x6E5E, 0x94B7},
+ {0x6E5F, 0x94B8},
+ {0x6E60, 0x94B9},
+ {0x6E61, 0x94BA},
+ {0x6E62, 0x94BC},
+ {0x6E63, 0x94BD},
+ {0x6E64, 0x94BF},
+ {0x6E65, 0x94C4},
+ {0x6E66, 0x94C8},
+ {0x6E67, 0x94C9},
+ {0x6E68, 0x94CA},
+ {0x6E69, 0x94CB},
+ {0x6E6A, 0x94CC},
+ {0x6E6B, 0x94CD},
+ {0x6E6C, 0x94CE},
+ {0x6E6D, 0x94D0},
+ {0x6E6E, 0x94D1},
+ {0x6E6F, 0x94D2},
+ {0x6E70, 0x94D5},
+ {0x6E71, 0x94D6},
+ {0x6E72, 0x94D7},
+ {0x6E73, 0x94D9},
+ {0x6E74, 0x94D8},
+ {0x6E75, 0x94DB},
+ {0x6E76, 0x94DE},
+ {0x6E77, 0x94DF},
+ {0x6E78, 0x94E0},
+ {0x6E79, 0x94E2},
+ {0x6E7A, 0x94E4},
+ {0x6E7B, 0x94E5},
+ {0x6E7C, 0x94E7},
+ {0x6E7D, 0x94E8},
+ {0x6E7E, 0x94EA},
+ {0x6F21, 0x94E9},
+ {0x6F22, 0x94EB},
+ {0x6F23, 0x94EE},
+ {0x6F24, 0x94EF},
+ {0x6F25, 0x94F3},
+ {0x6F26, 0x94F4},
+ {0x6F27, 0x94F5},
+ {0x6F28, 0x94F7},
+ {0x6F29, 0x94F9},
+ {0x6F2A, 0x94FC},
+ {0x6F2B, 0x94FD},
+ {0x6F2C, 0x94FF},
+ {0x6F2D, 0x9503},
+ {0x6F2E, 0x9502},
+ {0x6F2F, 0x9506},
+ {0x6F30, 0x9507},
+ {0x6F31, 0x9509},
+ {0x6F32, 0x950A},
+ {0x6F33, 0x950D},
+ {0x6F34, 0x950E},
+ {0x6F35, 0x950F},
+ {0x6F36, 0x9512},
+ {0x6F37, 0x9513},
+ {0x6F38, 0x9514},
+ {0x6F39, 0x9515},
+ {0x6F3A, 0x9516},
+ {0x6F3B, 0x9518},
+ {0x6F3C, 0x951B},
+ {0x6F3D, 0x951D},
+ {0x6F3E, 0x951E},
+ {0x6F3F, 0x951F},
+ {0x6F40, 0x9522},
+ {0x6F41, 0x952A},
+ {0x6F42, 0x952B},
+ {0x6F43, 0x9529},
+ {0x6F44, 0x952C},
+ {0x6F45, 0x9531},
+ {0x6F46, 0x9532},
+ {0x6F47, 0x9534},
+ {0x6F48, 0x9536},
+ {0x6F49, 0x9537},
+ {0x6F4A, 0x9538},
+ {0x6F4B, 0x953C},
+ {0x6F4C, 0x953E},
+ {0x6F4D, 0x953F},
+ {0x6F4E, 0x9542},
+ {0x6F4F, 0x9535},
+ {0x6F50, 0x9544},
+ {0x6F51, 0x9545},
+ {0x6F52, 0x9546},
+ {0x6F53, 0x9549},
+ {0x6F54, 0x954C},
+ {0x6F55, 0x954E},
+ {0x6F56, 0x954F},
+ {0x6F57, 0x9552},
+ {0x6F58, 0x9553},
+ {0x6F59, 0x9554},
+ {0x6F5A, 0x9556},
+ {0x6F5B, 0x9557},
+ {0x6F5C, 0x9558},
+ {0x6F5D, 0x9559},
+ {0x6F5E, 0x955B},
+ {0x6F5F, 0x955E},
+ {0x6F60, 0x955F},
+ {0x6F61, 0x955D},
+ {0x6F62, 0x9561},
+ {0x6F63, 0x9562},
+ {0x6F64, 0x9564},
+ {0x6F65, 0x9565},
+ {0x6F66, 0x9566},
+ {0x6F67, 0x9567},
+ {0x6F68, 0x9568},
+ {0x6F69, 0x9569},
+ {0x6F6A, 0x956A},
+ {0x6F6B, 0x956B},
+ {0x6F6C, 0x956C},
+ {0x6F6D, 0x956F},
+ {0x6F6E, 0x9571},
+ {0x6F6F, 0x9572},
+ {0x6F70, 0x9573},
+ {0x6F71, 0x953A},
+ {0x6F72, 0x77E7},
+ {0x6F73, 0x77EC},
+ {0x6F74, 0x96C9},
+ {0x6F75, 0x79D5},
+ {0x6F76, 0x79ED},
+ {0x6F77, 0x79E3},
+ {0x6F78, 0x79EB},
+ {0x6F79, 0x7A06},
+ {0x6F7A, 0x5D47},
+ {0x6F7B, 0x7A03},
+ {0x6F7C, 0x7A02},
+ {0x6F7D, 0x7A1E},
+ {0x6F7E, 0x7A14},
+ {0x7021, 0x7A39},
+ {0x7022, 0x7A37},
+ {0x7023, 0x7A51},
+ {0x7024, 0x9ECF},
+ {0x7025, 0x99A5},
+ {0x7026, 0x7A70},
+ {0x7027, 0x7688},
+ {0x7028, 0x768E},
+ {0x7029, 0x7693},
+ {0x702A, 0x7699},
+ {0x702B, 0x76A4},
+ {0x702C, 0x74DE},
+ {0x702D, 0x74E0},
+ {0x702E, 0x752C},
+ {0x702F, 0x9E20},
+ {0x7030, 0x9E22},
+ {0x7031, 0x9E28},
+ {0x7032, 0x9E29},
+ {0x7033, 0x9E2A},
+ {0x7034, 0x9E2B},
+ {0x7035, 0x9E2C},
+ {0x7036, 0x9E32},
+ {0x7037, 0x9E31},
+ {0x7038, 0x9E36},
+ {0x7039, 0x9E38},
+ {0x703A, 0x9E37},
+ {0x703B, 0x9E39},
+ {0x703C, 0x9E3A},
+ {0x703D, 0x9E3E},
+ {0x703E, 0x9E41},
+ {0x703F, 0x9E42},
+ {0x7040, 0x9E44},
+ {0x7041, 0x9E46},
+ {0x7042, 0x9E47},
+ {0x7043, 0x9E48},
+ {0x7044, 0x9E49},
+ {0x7045, 0x9E4B},
+ {0x7046, 0x9E4C},
+ {0x7047, 0x9E4E},
+ {0x7048, 0x9E51},
+ {0x7049, 0x9E55},
+ {0x704A, 0x9E57},
+ {0x704B, 0x9E5A},
+ {0x704C, 0x9E5B},
+ {0x704D, 0x9E5C},
+ {0x704E, 0x9E5E},
+ {0x704F, 0x9E63},
+ {0x7050, 0x9E66},
+ {0x7051, 0x9E67},
+ {0x7052, 0x9E68},
+ {0x7053, 0x9E69},
+ {0x7054, 0x9E6A},
+ {0x7055, 0x9E6B},
+ {0x7056, 0x9E6C},
+ {0x7057, 0x9E71},
+ {0x7058, 0x9E6D},
+ {0x7059, 0x9E73},
+ {0x705A, 0x7592},
+ {0x705B, 0x7594},
+ {0x705C, 0x7596},
+ {0x705D, 0x75A0},
+ {0x705E, 0x759D},
+ {0x705F, 0x75AC},
+ {0x7060, 0x75A3},
+ {0x7061, 0x75B3},
+ {0x7062, 0x75B4},
+ {0x7063, 0x75B8},
+ {0x7064, 0x75C4},
+ {0x7065, 0x75B1},
+ {0x7066, 0x75B0},
+ {0x7067, 0x75C3},
+ {0x7068, 0x75C2},
+ {0x7069, 0x75D6},
+ {0x706A, 0x75CD},
+ {0x706B, 0x75E3},
+ {0x706C, 0x75E8},
+ {0x706D, 0x75E6},
+ {0x706E, 0x75E4},
+ {0x706F, 0x75EB},
+ {0x7070, 0x75E7},
+ {0x7071, 0x7603},
+ {0x7072, 0x75F1},
+ {0x7073, 0x75FC},
+ {0x7074, 0x75FF},
+ {0x7075, 0x7610},
+ {0x7076, 0x7600},
+ {0x7077, 0x7605},
+ {0x7078, 0x760C},
+ {0x7079, 0x7617},
+ {0x707A, 0x760A},
+ {0x707B, 0x7625},
+ {0x707C, 0x7618},
+ {0x707D, 0x7615},
+ {0x707E, 0x7619},
+ {0x7121, 0x761B},
+ {0x7122, 0x763C},
+ {0x7123, 0x7622},
+ {0x7124, 0x7620},
+ {0x7125, 0x7640},
+ {0x7126, 0x762D},
+ {0x7127, 0x7630},
+ {0x7128, 0x763F},
+ {0x7129, 0x7635},
+ {0x712A, 0x7643},
+ {0x712B, 0x763E},
+ {0x712C, 0x7633},
+ {0x712D, 0x764D},
+ {0x712E, 0x765E},
+ {0x712F, 0x7654},
+ {0x7130, 0x765C},
+ {0x7131, 0x7656},
+ {0x7132, 0x766B},
+ {0x7133, 0x766F},
+ {0x7134, 0x7FCA},
+ {0x7135, 0x7AE6},
+ {0x7136, 0x7A78},
+ {0x7137, 0x7A79},
+ {0x7138, 0x7A80},
+ {0x7139, 0x7A86},
+ {0x713A, 0x7A88},
+ {0x713B, 0x7A95},
+ {0x713C, 0x7AA6},
+ {0x713D, 0x7AA0},
+ {0x713E, 0x7AAC},
+ {0x713F, 0x7AA8},
+ {0x7140, 0x7AAD},
+ {0x7141, 0x7AB3},
+ {0x7142, 0x8864},
+ {0x7143, 0x8869},
+ {0x7144, 0x8872},
+ {0x7145, 0x887D},
+ {0x7146, 0x887F},
+ {0x7147, 0x8882},
+ {0x7148, 0x88A2},
+ {0x7149, 0x88C6},
+ {0x714A, 0x88B7},
+ {0x714B, 0x88BC},
+ {0x714C, 0x88C9},
+ {0x714D, 0x88E2},
+ {0x714E, 0x88CE},
+ {0x714F, 0x88E3},
+ {0x7150, 0x88E5},
+ {0x7151, 0x88F1},
+ {0x7152, 0x891A},
+ {0x7153, 0x88FC},
+ {0x7154, 0x88E8},
+ {0x7155, 0x88FE},
+ {0x7156, 0x88F0},
+ {0x7157, 0x8921},
+ {0x7158, 0x8919},
+ {0x7159, 0x8913},
+ {0x715A, 0x891B},
+ {0x715B, 0x890A},
+ {0x715C, 0x8934},
+ {0x715D, 0x892B},
+ {0x715E, 0x8936},
+ {0x715F, 0x8941},
+ {0x7160, 0x8966},
+ {0x7161, 0x897B},
+ {0x7162, 0x758B},
+ {0x7163, 0x80E5},
+ {0x7164, 0x76B2},
+ {0x7165, 0x76B4},
+ {0x7166, 0x77DC},
+ {0x7167, 0x8012},
+ {0x7168, 0x8014},
+ {0x7169, 0x8016},
+ {0x716A, 0x801C},
+ {0x716B, 0x8020},
+ {0x716C, 0x8022},
+ {0x716D, 0x8025},
+ {0x716E, 0x8026},
+ {0x716F, 0x8027},
+ {0x7170, 0x8029},
+ {0x7171, 0x8028},
+ {0x7172, 0x8031},
+ {0x7173, 0x800B},
+ {0x7174, 0x8035},
+ {0x7175, 0x8043},
+ {0x7176, 0x8046},
+ {0x7177, 0x804D},
+ {0x7178, 0x8052},
+ {0x7179, 0x8069},
+ {0x717A, 0x8071},
+ {0x717B, 0x8983},
+ {0x717C, 0x9878},
+ {0x717D, 0x9880},
+ {0x717E, 0x9883},
+ {0x7221, 0x9889},
+ {0x7222, 0x988C},
+ {0x7223, 0x988D},
+ {0x7224, 0x988F},
+ {0x7225, 0x9894},
+ {0x7226, 0x989A},
+ {0x7227, 0x989B},
+ {0x7228, 0x989E},
+ {0x7229, 0x989F},
+ {0x722A, 0x98A1},
+ {0x722B, 0x98A2},
+ {0x722C, 0x98A5},
+ {0x722D, 0x98A6},
+ {0x722E, 0x864D},
+ {0x722F, 0x8654},
+ {0x7230, 0x866C},
+ {0x7231, 0x866E},
+ {0x7232, 0x867F},
+ {0x7233, 0x867A},
+ {0x7234, 0x867C},
+ {0x7235, 0x867B},
+ {0x7236, 0x86A8},
+ {0x7237, 0x868D},
+ {0x7238, 0x868B},
+ {0x7239, 0x86AC},
+ {0x723A, 0x869D},
+ {0x723B, 0x86A7},
+ {0x723C, 0x86A3},
+ {0x723D, 0x86AA},
+ {0x723E, 0x8693},
+ {0x723F, 0x86A9},
+ {0x7240, 0x86B6},
+ {0x7241, 0x86C4},
+ {0x7242, 0x86B5},
+ {0x7243, 0x86CE},
+ {0x7244, 0x86B0},
+ {0x7245, 0x86BA},
+ {0x7246, 0x86B1},
+ {0x7247, 0x86AF},
+ {0x7248, 0x86C9},
+ {0x7249, 0x86CF},
+ {0x724A, 0x86B4},
+ {0x724B, 0x86E9},
+ {0x724C, 0x86F1},
+ {0x724D, 0x86F2},
+ {0x724E, 0x86ED},
+ {0x724F, 0x86F3},
+ {0x7250, 0x86D0},
+ {0x7251, 0x8713},
+ {0x7252, 0x86DE},
+ {0x7253, 0x86F4},
+ {0x7254, 0x86DF},
+ {0x7255, 0x86D8},
+ {0x7256, 0x86D1},
+ {0x7257, 0x8703},
+ {0x7258, 0x8707},
+ {0x7259, 0x86F8},
+ {0x725A, 0x8708},
+ {0x725B, 0x870A},
+ {0x725C, 0x870D},
+ {0x725D, 0x8709},
+ {0x725E, 0x8723},
+ {0x725F, 0x873B},
+ {0x7260, 0x871E},
+ {0x7261, 0x8725},
+ {0x7262, 0x872E},
+ {0x7263, 0x871A},
+ {0x7264, 0x873E},
+ {0x7265, 0x8748},
+ {0x7266, 0x8734},
+ {0x7267, 0x8731},
+ {0x7268, 0x8729},
+ {0x7269, 0x8737},
+ {0x726A, 0x873F},
+ {0x726B, 0x8782},
+ {0x726C, 0x8722},
+ {0x726D, 0x877D},
+ {0x726E, 0x877E},
+ {0x726F, 0x877B},
+ {0x7270, 0x8760},
+ {0x7271, 0x8770},
+ {0x7272, 0x874C},
+ {0x7273, 0x876E},
+ {0x7274, 0x878B},
+ {0x7275, 0x8753},
+ {0x7276, 0x8763},
+ {0x7277, 0x877C},
+ {0x7278, 0x8764},
+ {0x7279, 0x8759},
+ {0x727A, 0x8765},
+ {0x727B, 0x8793},
+ {0x727C, 0x87AF},
+ {0x727D, 0x87A8},
+ {0x727E, 0x87D2},
+ {0x7321, 0x87C6},
+ {0x7322, 0x8788},
+ {0x7323, 0x8785},
+ {0x7324, 0x87AD},
+ {0x7325, 0x8797},
+ {0x7326, 0x8783},
+ {0x7327, 0x87AB},
+ {0x7328, 0x87E5},
+ {0x7329, 0x87AC},
+ {0x732A, 0x87B5},
+ {0x732B, 0x87B3},
+ {0x732C, 0x87CB},
+ {0x732D, 0x87D3},
+ {0x732E, 0x87BD},
+ {0x732F, 0x87D1},
+ {0x7330, 0x87C0},
+ {0x7331, 0x87CA},
+ {0x7332, 0x87DB},
+ {0x7333, 0x87EA},
+ {0x7334, 0x87E0},
+ {0x7335, 0x87EE},
+ {0x7336, 0x8816},
+ {0x7337, 0x8813},
+ {0x7338, 0x87FE},
+ {0x7339, 0x880A},
+ {0x733A, 0x881B},
+ {0x733B, 0x8821},
+ {0x733C, 0x8839},
+ {0x733D, 0x883C},
+ {0x733E, 0x7F36},
+ {0x733F, 0x7F42},
+ {0x7340, 0x7F44},
+ {0x7341, 0x7F45},
+ {0x7342, 0x8210},
+ {0x7343, 0x7AFA},
+ {0x7344, 0x7AFD},
+ {0x7345, 0x7B08},
+ {0x7346, 0x7B03},
+ {0x7347, 0x7B04},
+ {0x7348, 0x7B15},
+ {0x7349, 0x7B0A},
+ {0x734A, 0x7B2B},
+ {0x734B, 0x7B0F},
+ {0x734C, 0x7B47},
+ {0x734D, 0x7B38},
+ {0x734E, 0x7B2A},
+ {0x734F, 0x7B19},
+ {0x7350, 0x7B2E},
+ {0x7351, 0x7B31},
+ {0x7352, 0x7B20},
+ {0x7353, 0x7B25},
+ {0x7354, 0x7B24},
+ {0x7355, 0x7B33},
+ {0x7356, 0x7B3E},
+ {0x7357, 0x7B1E},
+ {0x7358, 0x7B58},
+ {0x7359, 0x7B5A},
+ {0x735A, 0x7B45},
+ {0x735B, 0x7B75},
+ {0x735C, 0x7B4C},
+ {0x735D, 0x7B5D},
+ {0x735E, 0x7B60},
+ {0x735F, 0x7B6E},
+ {0x7360, 0x7B7B},
+ {0x7361, 0x7B62},
+ {0x7362, 0x7B72},
+ {0x7363, 0x7B71},
+ {0x7364, 0x7B90},
+ {0x7365, 0x7BA6},
+ {0x7366, 0x7BA7},
+ {0x7367, 0x7BB8},
+ {0x7368, 0x7BAC},
+ {0x7369, 0x7B9D},
+ {0x736A, 0x7BA8},
+ {0x736B, 0x7B85},
+ {0x736C, 0x7BAA},
+ {0x736D, 0x7B9C},
+ {0x736E, 0x7BA2},
+ {0x736F, 0x7BAB},
+ {0x7370, 0x7BB4},
+ {0x7371, 0x7BD1},
+ {0x7372, 0x7BC1},
+ {0x7373, 0x7BCC},
+ {0x7374, 0x7BDD},
+ {0x7375, 0x7BDA},
+ {0x7376, 0x7BE5},
+ {0x7377, 0x7BE6},
+ {0x7378, 0x7BEA},
+ {0x7379, 0x7C0C},
+ {0x737A, 0x7BFE},
+ {0x737B, 0x7BFC},
+ {0x737C, 0x7C0F},
+ {0x737D, 0x7C16},
+ {0x737E, 0x7C0B},
+ {0x7421, 0x7C1F},
+ {0x7422, 0x7C2A},
+ {0x7423, 0x7C26},
+ {0x7424, 0x7C38},
+ {0x7425, 0x7C41},
+ {0x7426, 0x7C40},
+ {0x7427, 0x81FE},
+ {0x7428, 0x8201},
+ {0x7429, 0x8202},
+ {0x742A, 0x8204},
+ {0x742B, 0x81EC},
+ {0x742C, 0x8844},
+ {0x742D, 0x8221},
+ {0x742E, 0x8222},
+ {0x742F, 0x8223},
+ {0x7430, 0x822D},
+ {0x7431, 0x822F},
+ {0x7432, 0x8228},
+ {0x7433, 0x822B},
+ {0x7434, 0x8238},
+ {0x7435, 0x823B},
+ {0x7436, 0x8233},
+ {0x7437, 0x8234},
+ {0x7438, 0x823E},
+ {0x7439, 0x8244},
+ {0x743A, 0x8249},
+ {0x743B, 0x824B},
+ {0x743C, 0x824F},
+ {0x743D, 0x825A},
+ {0x743E, 0x825F},
+ {0x743F, 0x8268},
+ {0x7440, 0x887E},
+ {0x7441, 0x8885},
+ {0x7442, 0x8888},
+ {0x7443, 0x88D8},
+ {0x7444, 0x88DF},
+ {0x7445, 0x895E},
+ {0x7446, 0x7F9D},
+ {0x7447, 0x7F9F},
+ {0x7448, 0x7FA7},
+ {0x7449, 0x7FAF},
+ {0x744A, 0x7FB0},
+ {0x744B, 0x7FB2},
+ {0x744C, 0x7C7C},
+ {0x744D, 0x6549},
+ {0x744E, 0x7C91},
+ {0x744F, 0x7C9D},
+ {0x7450, 0x7C9C},
+ {0x7451, 0x7C9E},
+ {0x7452, 0x7CA2},
+ {0x7453, 0x7CB2},
+ {0x7454, 0x7CBC},
+ {0x7455, 0x7CBD},
+ {0x7456, 0x7CC1},
+ {0x7457, 0x7CC7},
+ {0x7458, 0x7CCC},
+ {0x7459, 0x7CCD},
+ {0x745A, 0x7CC8},
+ {0x745B, 0x7CC5},
+ {0x745C, 0x7CD7},
+ {0x745D, 0x7CE8},
+ {0x745E, 0x826E},
+ {0x745F, 0x66A8},
+ {0x7460, 0x7FBF},
+ {0x7461, 0x7FCE},
+ {0x7462, 0x7FD5},
+ {0x7463, 0x7FE5},
+ {0x7464, 0x7FE1},
+ {0x7465, 0x7FE6},
+ {0x7466, 0x7FE9},
+ {0x7467, 0x7FEE},
+ {0x7468, 0x7FF3},
+ {0x7469, 0x7CF8},
+ {0x746A, 0x7D77},
+ {0x746B, 0x7DA6},
+ {0x746C, 0x7DAE},
+ {0x746D, 0x7E47},
+ {0x746E, 0x7E9B},
+ {0x746F, 0x9EB8},
+ {0x7470, 0x9EB4},
+ {0x7471, 0x8D73},
+ {0x7472, 0x8D84},
+ {0x7473, 0x8D94},
+ {0x7474, 0x8D91},
+ {0x7475, 0x8DB1},
+ {0x7476, 0x8D67},
+ {0x7477, 0x8D6D},
+ {0x7478, 0x8C47},
+ {0x7479, 0x8C49},
+ {0x747A, 0x914A},
+ {0x747B, 0x9150},
+ {0x747C, 0x914E},
+ {0x747D, 0x914F},
+ {0x747E, 0x9164},
+ {0x7521, 0x9162},
+ {0x7522, 0x9161},
+ {0x7523, 0x9170},
+ {0x7524, 0x9169},
+ {0x7525, 0x916F},
+ {0x7526, 0x917D},
+ {0x7527, 0x917E},
+ {0x7528, 0x9172},
+ {0x7529, 0x9174},
+ {0x752A, 0x9179},
+ {0x752B, 0x918C},
+ {0x752C, 0x9185},
+ {0x752D, 0x9190},
+ {0x752E, 0x918D},
+ {0x752F, 0x9191},
+ {0x7530, 0x91A2},
+ {0x7531, 0x91A3},
+ {0x7532, 0x91AA},
+ {0x7533, 0x91AD},
+ {0x7534, 0x91AE},
+ {0x7535, 0x91AF},
+ {0x7536, 0x91B5},
+ {0x7537, 0x91B4},
+ {0x7538, 0x91BA},
+ {0x7539, 0x8C55},
+ {0x753A, 0x9E7E},
+ {0x753B, 0x8DB8},
+ {0x753C, 0x8DEB},
+ {0x753D, 0x8E05},
+ {0x753E, 0x8E59},
+ {0x753F, 0x8E69},
+ {0x7540, 0x8DB5},
+ {0x7541, 0x8DBF},
+ {0x7542, 0x8DBC},
+ {0x7543, 0x8DBA},
+ {0x7544, 0x8DC4},
+ {0x7545, 0x8DD6},
+ {0x7546, 0x8DD7},
+ {0x7547, 0x8DDA},
+ {0x7548, 0x8DDE},
+ {0x7549, 0x8DCE},
+ {0x754A, 0x8DCF},
+ {0x754B, 0x8DDB},
+ {0x754C, 0x8DC6},
+ {0x754D, 0x8DEC},
+ {0x754E, 0x8DF7},
+ {0x754F, 0x8DF8},
+ {0x7550, 0x8DE3},
+ {0x7551, 0x8DF9},
+ {0x7552, 0x8DFB},
+ {0x7553, 0x8DE4},
+ {0x7554, 0x8E09},
+ {0x7555, 0x8DFD},
+ {0x7556, 0x8E14},
+ {0x7557, 0x8E1D},
+ {0x7558, 0x8E1F},
+ {0x7559, 0x8E2C},
+ {0x755A, 0x8E2E},
+ {0x755B, 0x8E23},
+ {0x755C, 0x8E2F},
+ {0x755D, 0x8E3A},
+ {0x755E, 0x8E40},
+ {0x755F, 0x8E39},
+ {0x7560, 0x8E35},
+ {0x7561, 0x8E3D},
+ {0x7562, 0x8E31},
+ {0x7563, 0x8E49},
+ {0x7564, 0x8E41},
+ {0x7565, 0x8E42},
+ {0x7566, 0x8E51},
+ {0x7567, 0x8E52},
+ {0x7568, 0x8E4A},
+ {0x7569, 0x8E70},
+ {0x756A, 0x8E76},
+ {0x756B, 0x8E7C},
+ {0x756C, 0x8E6F},
+ {0x756D, 0x8E74},
+ {0x756E, 0x8E85},
+ {0x756F, 0x8E8F},
+ {0x7570, 0x8E94},
+ {0x7571, 0x8E90},
+ {0x7572, 0x8E9C},
+ {0x7573, 0x8E9E},
+ {0x7574, 0x8C78},
+ {0x7575, 0x8C82},
+ {0x7576, 0x8C8A},
+ {0x7577, 0x8C85},
+ {0x7578, 0x8C98},
+ {0x7579, 0x8C94},
+ {0x757A, 0x659B},
+ {0x757B, 0x89D6},
+ {0x757C, 0x89DE},
+ {0x757D, 0x89DA},
+ {0x757E, 0x89DC},
+ {0x7621, 0x89E5},
+ {0x7622, 0x89EB},
+ {0x7623, 0x89EF},
+ {0x7624, 0x8A3E},
+ {0x7625, 0x8B26},
+ {0x7626, 0x9753},
+ {0x7627, 0x96E9},
+ {0x7628, 0x96F3},
+ {0x7629, 0x96EF},
+ {0x762A, 0x9706},
+ {0x762B, 0x9701},
+ {0x762C, 0x9708},
+ {0x762D, 0x970F},
+ {0x762E, 0x970E},
+ {0x762F, 0x972A},
+ {0x7630, 0x972D},
+ {0x7631, 0x9730},
+ {0x7632, 0x973E},
+ {0x7633, 0x9F80},
+ {0x7634, 0x9F83},
+ {0x7635, 0x9F85},
+ {0x7636, 0x9F86},
+ {0x7637, 0x9F87},
+ {0x7638, 0x9F88},
+ {0x7639, 0x9F89},
+ {0x763A, 0x9F8A},
+ {0x763B, 0x9F8C},
+ {0x763C, 0x9EFE},
+ {0x763D, 0x9F0B},
+ {0x763E, 0x9F0D},
+ {0x763F, 0x96B9},
+ {0x7640, 0x96BC},
+ {0x7641, 0x96BD},
+ {0x7642, 0x96CE},
+ {0x7643, 0x96D2},
+ {0x7644, 0x77BF},
+ {0x7645, 0x96E0},
+ {0x7646, 0x928E},
+ {0x7647, 0x92AE},
+ {0x7648, 0x92C8},
+ {0x7649, 0x933E},
+ {0x764A, 0x936A},
+ {0x764B, 0x93CA},
+ {0x764C, 0x938F},
+ {0x764D, 0x943E},
+ {0x764E, 0x946B},
+ {0x764F, 0x9C7F},
+ {0x7650, 0x9C82},
+ {0x7651, 0x9C85},
+ {0x7652, 0x9C86},
+ {0x7653, 0x9C87},
+ {0x7654, 0x9C88},
+ {0x7655, 0x7A23},
+ {0x7656, 0x9C8B},
+ {0x7657, 0x9C8E},
+ {0x7658, 0x9C90},
+ {0x7659, 0x9C91},
+ {0x765A, 0x9C92},
+ {0x765B, 0x9C94},
+ {0x765C, 0x9C95},
+ {0x765D, 0x9C9A},
+ {0x765E, 0x9C9B},
+ {0x765F, 0x9C9E},
+ {0x7660, 0x9C9F},
+ {0x7661, 0x9CA0},
+ {0x7662, 0x9CA1},
+ {0x7663, 0x9CA2},
+ {0x7664, 0x9CA3},
+ {0x7665, 0x9CA5},
+ {0x7666, 0x9CA6},
+ {0x7667, 0x9CA7},
+ {0x7668, 0x9CA8},
+ {0x7669, 0x9CA9},
+ {0x766A, 0x9CAB},
+ {0x766B, 0x9CAD},
+ {0x766C, 0x9CAE},
+ {0x766D, 0x9CB0},
+ {0x766E, 0x9CB1},
+ {0x766F, 0x9CB2},
+ {0x7670, 0x9CB3},
+ {0x7671, 0x9CB4},
+ {0x7672, 0x9CB5},
+ {0x7673, 0x9CB6},
+ {0x7674, 0x9CB7},
+ {0x7675, 0x9CBA},
+ {0x7676, 0x9CBB},
+ {0x7677, 0x9CBC},
+ {0x7678, 0x9CBD},
+ {0x7679, 0x9CC4},
+ {0x767A, 0x9CC5},
+ {0x767B, 0x9CC6},
+ {0x767C, 0x9CC7},
+ {0x767D, 0x9CCA},
+ {0x767E, 0x9CCB},
+ {0x7721, 0x9CCC},
+ {0x7722, 0x9CCD},
+ {0x7723, 0x9CCE},
+ {0x7724, 0x9CCF},
+ {0x7725, 0x9CD0},
+ {0x7726, 0x9CD3},
+ {0x7727, 0x9CD4},
+ {0x7728, 0x9CD5},
+ {0x7729, 0x9CD7},
+ {0x772A, 0x9CD8},
+ {0x772B, 0x9CD9},
+ {0x772C, 0x9CDC},
+ {0x772D, 0x9CDD},
+ {0x772E, 0x9CDF},
+ {0x772F, 0x9CE2},
+ {0x7730, 0x977C},
+ {0x7731, 0x9785},
+ {0x7732, 0x9791},
+ {0x7733, 0x9792},
+ {0x7734, 0x9794},
+ {0x7735, 0x97AF},
+ {0x7736, 0x97AB},
+ {0x7737, 0x97A3},
+ {0x7738, 0x97B2},
+ {0x7739, 0x97B4},
+ {0x773A, 0x9AB1},
+ {0x773B, 0x9AB0},
+ {0x773C, 0x9AB7},
+ {0x773D, 0x9E58},
+ {0x773E, 0x9AB6},
+ {0x773F, 0x9ABA},
+ {0x7740, 0x9ABC},
+ {0x7741, 0x9AC1},
+ {0x7742, 0x9AC0},
+ {0x7743, 0x9AC5},
+ {0x7744, 0x9AC2},
+ {0x7745, 0x9ACB},
+ {0x7746, 0x9ACC},
+ {0x7747, 0x9AD1},
+ {0x7748, 0x9B45},
+ {0x7749, 0x9B43},
+ {0x774A, 0x9B47},
+ {0x774B, 0x9B49},
+ {0x774C, 0x9B48},
+ {0x774D, 0x9B4D},
+ {0x774E, 0x9B51},
+ {0x774F, 0x98E8},
+ {0x7750, 0x990D},
+ {0x7751, 0x992E},
+ {0x7752, 0x9955},
+ {0x7753, 0x9954},
+ {0x7754, 0x9ADF},
+ {0x7755, 0x9AE1},
+ {0x7756, 0x9AE6},
+ {0x7757, 0x9AEF},
+ {0x7758, 0x9AEB},
+ {0x7759, 0x9AFB},
+ {0x775A, 0x9AED},
+ {0x775B, 0x9AF9},
+ {0x775C, 0x9B08},
+ {0x775D, 0x9B0F},
+ {0x775E, 0x9B13},
+ {0x775F, 0x9B1F},
+ {0x7760, 0x9B23},
+ {0x7761, 0x9EBD},
+ {0x7762, 0x9EBE},
+ {0x7763, 0x7E3B},
+ {0x7764, 0x9E82},
+ {0x7765, 0x9E87},
+ {0x7766, 0x9E88},
+ {0x7767, 0x9E8B},
+ {0x7768, 0x9E92},
+ {0x7769, 0x93D6},
+ {0x776A, 0x9E9D},
+ {0x776B, 0x9E9F},
+ {0x776C, 0x9EDB},
+ {0x776D, 0x9EDC},
+ {0x776E, 0x9EDD},
+ {0x776F, 0x9EE0},
+ {0x7770, 0x9EDF},
+ {0x7771, 0x9EE2},
+ {0x7772, 0x9EE9},
+ {0x7773, 0x9EE7},
+ {0x7774, 0x9EE5},
+ {0x7775, 0x9EEA},
+ {0x7776, 0x9EEF},
+ {0x7777, 0x9F22},
+ {0x7778, 0x9F2C},
+ {0x7779, 0x9F2F},
+ {0x777A, 0x9F39},
+ {0x777B, 0x9F37},
+ {0x777C, 0x9F3D},
+ {0x777D, 0x9F3E},
+ {0x777E, 0x9F44},
diff --git a/vte/src/unitable.JIS0201 b/vte/src/unitable.JIS0201
new file mode 100644
index 0000000..48c9b3a
--- /dev/null
+++ b/vte/src/unitable.JIS0201
@@ -0,0 +1,66 @@
+ /* generated file -- do not edit */
+ {0x5C, 0x00A5},
+ {0x7E, 0x203E},
+ {0xA1, 0xFF61},
+ {0xA2, 0xFF62},
+ {0xA3, 0xFF63},
+ {0xA4, 0xFF64},
+ {0xA5, 0xFF65},
+ {0xA6, 0xFF66},
+ {0xA7, 0xFF67},
+ {0xA8, 0xFF68},
+ {0xA9, 0xFF69},
+ {0xAA, 0xFF6A},
+ {0xAB, 0xFF6B},
+ {0xAC, 0xFF6C},
+ {0xAD, 0xFF6D},
+ {0xAE, 0xFF6E},
+ {0xAF, 0xFF6F},
+ {0xB0, 0xFF70},
+ {0xB1, 0xFF71},
+ {0xB2, 0xFF72},
+ {0xB3, 0xFF73},
+ {0xB4, 0xFF74},
+ {0xB5, 0xFF75},
+ {0xB6, 0xFF76},
+ {0xB7, 0xFF77},
+ {0xB8, 0xFF78},
+ {0xB9, 0xFF79},
+ {0xBA, 0xFF7A},
+ {0xBB, 0xFF7B},
+ {0xBC, 0xFF7C},
+ {0xBD, 0xFF7D},
+ {0xBE, 0xFF7E},
+ {0xBF, 0xFF7F},
+ {0xC0, 0xFF80},
+ {0xC1, 0xFF81},
+ {0xC2, 0xFF82},
+ {0xC3, 0xFF83},
+ {0xC4, 0xFF84},
+ {0xC5, 0xFF85},
+ {0xC6, 0xFF86},
+ {0xC7, 0xFF87},
+ {0xC8, 0xFF88},
+ {0xC9, 0xFF89},
+ {0xCA, 0xFF8A},
+ {0xCB, 0xFF8B},
+ {0xCC, 0xFF8C},
+ {0xCD, 0xFF8D},
+ {0xCE, 0xFF8E},
+ {0xCF, 0xFF8F},
+ {0xD0, 0xFF90},
+ {0xD1, 0xFF91},
+ {0xD2, 0xFF92},
+ {0xD3, 0xFF93},
+ {0xD4, 0xFF94},
+ {0xD5, 0xFF95},
+ {0xD6, 0xFF96},
+ {0xD7, 0xFF97},
+ {0xD8, 0xFF98},
+ {0xD9, 0xFF99},
+ {0xDA, 0xFF9A},
+ {0xDB, 0xFF9B},
+ {0xDC, 0xFF9C},
+ {0xDD, 0xFF9D},
+ {0xDE, 0xFF9E},
+ {0xDF, 0xFF9F},
diff --git a/vte/src/unitable.JIS0208 b/vte/src/unitable.JIS0208
new file mode 100644
index 0000000..80dbdd0
--- /dev/null
+++ b/vte/src/unitable.JIS0208
@@ -0,0 +1,6879 @@
+ /* generated file -- do not edit */
+ {0x2121, 0x3000},
+ {0x2122, 0x3001},
+ {0x2123, 0x3002},
+ {0x2124, 0xFF0C},
+ {0x2125, 0xFF0E},
+ {0x2126, 0x30FB},
+ {0x2127, 0xFF1A},
+ {0x2128, 0xFF1B},
+ {0x2129, 0xFF1F},
+ {0x212A, 0xFF01},
+ {0x212B, 0x309B},
+ {0x212C, 0x309C},
+ {0x212D, 0x00B4},
+ {0x212E, 0xFF40},
+ {0x212F, 0x00A8},
+ {0x2130, 0xFF3E},
+ {0x2131, 0xFFE3},
+ {0x2132, 0xFF3F},
+ {0x2133, 0x30FD},
+ {0x2134, 0x30FE},
+ {0x2135, 0x309D},
+ {0x2136, 0x309E},
+ {0x2137, 0x3003},
+ {0x2138, 0x4EDD},
+ {0x2139, 0x3005},
+ {0x213A, 0x3006},
+ {0x213B, 0x3007},
+ {0x213C, 0x30FC},
+ {0x213D, 0x2015},
+ {0x213E, 0x2010},
+ {0x213F, 0xFF0F},
+ {0x2140, 0x005C},
+ {0x2141, 0x301C},
+ {0x2142, 0x2016},
+ {0x2143, 0xFF5C},
+ {0x2144, 0x2026},
+ {0x2145, 0x2025},
+ {0x2146, 0x2018},
+ {0x2147, 0x2019},
+ {0x2148, 0x201C},
+ {0x2149, 0x201D},
+ {0x214A, 0xFF08},
+ {0x214B, 0xFF09},
+ {0x214C, 0x3014},
+ {0x214D, 0x3015},
+ {0x214E, 0xFF3B},
+ {0x214F, 0xFF3D},
+ {0x2150, 0xFF5B},
+ {0x2151, 0xFF5D},
+ {0x2152, 0x3008},
+ {0x2153, 0x3009},
+ {0x2154, 0x300A},
+ {0x2155, 0x300B},
+ {0x2156, 0x300C},
+ {0x2157, 0x300D},
+ {0x2158, 0x300E},
+ {0x2159, 0x300F},
+ {0x215A, 0x3010},
+ {0x215B, 0x3011},
+ {0x215C, 0xFF0B},
+ {0x215D, 0x2212},
+ {0x215E, 0x00B1},
+ {0x215F, 0x00D7},
+ {0x2160, 0x00F7},
+ {0x2161, 0xFF1D},
+ {0x2162, 0x2260},
+ {0x2163, 0xFF1C},
+ {0x2164, 0xFF1E},
+ {0x2165, 0x2266},
+ {0x2166, 0x2267},
+ {0x2167, 0x221E},
+ {0x2168, 0x2234},
+ {0x2169, 0x2642},
+ {0x216A, 0x2640},
+ {0x216B, 0x00B0},
+ {0x216C, 0x2032},
+ {0x216D, 0x2033},
+ {0x216E, 0x2103},
+ {0x216F, 0xFFE5},
+ {0x2170, 0xFF04},
+ {0x2171, 0x00A2},
+ {0x2172, 0x00A3},
+ {0x2173, 0xFF05},
+ {0x2174, 0xFF03},
+ {0x2175, 0xFF06},
+ {0x2176, 0xFF0A},
+ {0x2177, 0xFF20},
+ {0x2178, 0x00A7},
+ {0x2179, 0x2606},
+ {0x217A, 0x2605},
+ {0x217B, 0x25CB},
+ {0x217C, 0x25CF},
+ {0x217D, 0x25CE},
+ {0x217E, 0x25C7},
+ {0x2221, 0x25C6},
+ {0x2222, 0x25A1},
+ {0x2223, 0x25A0},
+ {0x2224, 0x25B3},
+ {0x2225, 0x25B2},
+ {0x2226, 0x25BD},
+ {0x2227, 0x25BC},
+ {0x2228, 0x203B},
+ {0x2229, 0x3012},
+ {0x222A, 0x2192},
+ {0x222B, 0x2190},
+ {0x222C, 0x2191},
+ {0x222D, 0x2193},
+ {0x222E, 0x3013},
+ {0x223A, 0x2208},
+ {0x223B, 0x220B},
+ {0x223C, 0x2286},
+ {0x223D, 0x2287},
+ {0x223E, 0x2282},
+ {0x223F, 0x2283},
+ {0x2240, 0x222A},
+ {0x2241, 0x2229},
+ {0x224A, 0x2227},
+ {0x224B, 0x2228},
+ {0x224C, 0x00AC},
+ {0x224D, 0x21D2},
+ {0x224E, 0x21D4},
+ {0x224F, 0x2200},
+ {0x2250, 0x2203},
+ {0x225C, 0x2220},
+ {0x225D, 0x22A5},
+ {0x225E, 0x2312},
+ {0x225F, 0x2202},
+ {0x2260, 0x2207},
+ {0x2262, 0x2252},
+ {0x2263, 0x226A},
+ {0x2264, 0x226B},
+ {0x2265, 0x221A},
+ {0x2266, 0x223D},
+ {0x2267, 0x221D},
+ {0x2268, 0x2235},
+ {0x2269, 0x222B},
+ {0x226A, 0x222C},
+ {0x2272, 0x212B},
+ {0x2273, 0x2030},
+ {0x2274, 0x266F},
+ {0x2275, 0x266D},
+ {0x2276, 0x266A},
+ {0x2277, 0x2020},
+ {0x2278, 0x2021},
+ {0x2279, 0x00B6},
+ {0x227E, 0x25EF},
+ {0x2330, 0xFF10},
+ {0x2331, 0xFF11},
+ {0x2332, 0xFF12},
+ {0x2333, 0xFF13},
+ {0x2334, 0xFF14},
+ {0x2335, 0xFF15},
+ {0x2336, 0xFF16},
+ {0x2337, 0xFF17},
+ {0x2338, 0xFF18},
+ {0x2339, 0xFF19},
+ {0x2341, 0xFF21},
+ {0x2342, 0xFF22},
+ {0x2343, 0xFF23},
+ {0x2344, 0xFF24},
+ {0x2345, 0xFF25},
+ {0x2346, 0xFF26},
+ {0x2347, 0xFF27},
+ {0x2348, 0xFF28},
+ {0x2349, 0xFF29},
+ {0x234A, 0xFF2A},
+ {0x234B, 0xFF2B},
+ {0x234C, 0xFF2C},
+ {0x234D, 0xFF2D},
+ {0x234E, 0xFF2E},
+ {0x234F, 0xFF2F},
+ {0x2350, 0xFF30},
+ {0x2351, 0xFF31},
+ {0x2352, 0xFF32},
+ {0x2353, 0xFF33},
+ {0x2354, 0xFF34},
+ {0x2355, 0xFF35},
+ {0x2356, 0xFF36},
+ {0x2357, 0xFF37},
+ {0x2358, 0xFF38},
+ {0x2359, 0xFF39},
+ {0x235A, 0xFF3A},
+ {0x2361, 0xFF41},
+ {0x2362, 0xFF42},
+ {0x2363, 0xFF43},
+ {0x2364, 0xFF44},
+ {0x2365, 0xFF45},
+ {0x2366, 0xFF46},
+ {0x2367, 0xFF47},
+ {0x2368, 0xFF48},
+ {0x2369, 0xFF49},
+ {0x236A, 0xFF4A},
+ {0x236B, 0xFF4B},
+ {0x236C, 0xFF4C},
+ {0x236D, 0xFF4D},
+ {0x236E, 0xFF4E},
+ {0x236F, 0xFF4F},
+ {0x2370, 0xFF50},
+ {0x2371, 0xFF51},
+ {0x2372, 0xFF52},
+ {0x2373, 0xFF53},
+ {0x2374, 0xFF54},
+ {0x2375, 0xFF55},
+ {0x2376, 0xFF56},
+ {0x2377, 0xFF57},
+ {0x2378, 0xFF58},
+ {0x2379, 0xFF59},
+ {0x237A, 0xFF5A},
+ {0x2421, 0x3041},
+ {0x2422, 0x3042},
+ {0x2423, 0x3043},
+ {0x2424, 0x3044},
+ {0x2425, 0x3045},
+ {0x2426, 0x3046},
+ {0x2427, 0x3047},
+ {0x2428, 0x3048},
+ {0x2429, 0x3049},
+ {0x242A, 0x304A},
+ {0x242B, 0x304B},
+ {0x242C, 0x304C},
+ {0x242D, 0x304D},
+ {0x242E, 0x304E},
+ {0x242F, 0x304F},
+ {0x2430, 0x3050},
+ {0x2431, 0x3051},
+ {0x2432, 0x3052},
+ {0x2433, 0x3053},
+ {0x2434, 0x3054},
+ {0x2435, 0x3055},
+ {0x2436, 0x3056},
+ {0x2437, 0x3057},
+ {0x2438, 0x3058},
+ {0x2439, 0x3059},
+ {0x243A, 0x305A},
+ {0x243B, 0x305B},
+ {0x243C, 0x305C},
+ {0x243D, 0x305D},
+ {0x243E, 0x305E},
+ {0x243F, 0x305F},
+ {0x2440, 0x3060},
+ {0x2441, 0x3061},
+ {0x2442, 0x3062},
+ {0x2443, 0x3063},
+ {0x2444, 0x3064},
+ {0x2445, 0x3065},
+ {0x2446, 0x3066},
+ {0x2447, 0x3067},
+ {0x2448, 0x3068},
+ {0x2449, 0x3069},
+ {0x244A, 0x306A},
+ {0x244B, 0x306B},
+ {0x244C, 0x306C},
+ {0x244D, 0x306D},
+ {0x244E, 0x306E},
+ {0x244F, 0x306F},
+ {0x2450, 0x3070},
+ {0x2451, 0x3071},
+ {0x2452, 0x3072},
+ {0x2453, 0x3073},
+ {0x2454, 0x3074},
+ {0x2455, 0x3075},
+ {0x2456, 0x3076},
+ {0x2457, 0x3077},
+ {0x2458, 0x3078},
+ {0x2459, 0x3079},
+ {0x245A, 0x307A},
+ {0x245B, 0x307B},
+ {0x245C, 0x307C},
+ {0x245D, 0x307D},
+ {0x245E, 0x307E},
+ {0x245F, 0x307F},
+ {0x2460, 0x3080},
+ {0x2461, 0x3081},
+ {0x2462, 0x3082},
+ {0x2463, 0x3083},
+ {0x2464, 0x3084},
+ {0x2465, 0x3085},
+ {0x2466, 0x3086},
+ {0x2467, 0x3087},
+ {0x2468, 0x3088},
+ {0x2469, 0x3089},
+ {0x246A, 0x308A},
+ {0x246B, 0x308B},
+ {0x246C, 0x308C},
+ {0x246D, 0x308D},
+ {0x246E, 0x308E},
+ {0x246F, 0x308F},
+ {0x2470, 0x3090},
+ {0x2471, 0x3091},
+ {0x2472, 0x3092},
+ {0x2473, 0x3093},
+ {0x2521, 0x30A1},
+ {0x2522, 0x30A2},
+ {0x2523, 0x30A3},
+ {0x2524, 0x30A4},
+ {0x2525, 0x30A5},
+ {0x2526, 0x30A6},
+ {0x2527, 0x30A7},
+ {0x2528, 0x30A8},
+ {0x2529, 0x30A9},
+ {0x252A, 0x30AA},
+ {0x252B, 0x30AB},
+ {0x252C, 0x30AC},
+ {0x252D, 0x30AD},
+ {0x252E, 0x30AE},
+ {0x252F, 0x30AF},
+ {0x2530, 0x30B0},
+ {0x2531, 0x30B1},
+ {0x2532, 0x30B2},
+ {0x2533, 0x30B3},
+ {0x2534, 0x30B4},
+ {0x2535, 0x30B5},
+ {0x2536, 0x30B6},
+ {0x2537, 0x30B7},
+ {0x2538, 0x30B8},
+ {0x2539, 0x30B9},
+ {0x253A, 0x30BA},
+ {0x253B, 0x30BB},
+ {0x253C, 0x30BC},
+ {0x253D, 0x30BD},
+ {0x253E, 0x30BE},
+ {0x253F, 0x30BF},
+ {0x2540, 0x30C0},
+ {0x2541, 0x30C1},
+ {0x2542, 0x30C2},
+ {0x2543, 0x30C3},
+ {0x2544, 0x30C4},
+ {0x2545, 0x30C5},
+ {0x2546, 0x30C6},
+ {0x2547, 0x30C7},
+ {0x2548, 0x30C8},
+ {0x2549, 0x30C9},
+ {0x254A, 0x30CA},
+ {0x254B, 0x30CB},
+ {0x254C, 0x30CC},
+ {0x254D, 0x30CD},
+ {0x254E, 0x30CE},
+ {0x254F, 0x30CF},
+ {0x2550, 0x30D0},
+ {0x2551, 0x30D1},
+ {0x2552, 0x30D2},
+ {0x2553, 0x30D3},
+ {0x2554, 0x30D4},
+ {0x2555, 0x30D5},
+ {0x2556, 0x30D6},
+ {0x2557, 0x30D7},
+ {0x2558, 0x30D8},
+ {0x2559, 0x30D9},
+ {0x255A, 0x30DA},
+ {0x255B, 0x30DB},
+ {0x255C, 0x30DC},
+ {0x255D, 0x30DD},
+ {0x255E, 0x30DE},
+ {0x255F, 0x30DF},
+ {0x2560, 0x30E0},
+ {0x2561, 0x30E1},
+ {0x2562, 0x30E2},
+ {0x2563, 0x30E3},
+ {0x2564, 0x30E4},
+ {0x2565, 0x30E5},
+ {0x2566, 0x30E6},
+ {0x2567, 0x30E7},
+ {0x2568, 0x30E8},
+ {0x2569, 0x30E9},
+ {0x256A, 0x30EA},
+ {0x256B, 0x30EB},
+ {0x256C, 0x30EC},
+ {0x256D, 0x30ED},
+ {0x256E, 0x30EE},
+ {0x256F, 0x30EF},
+ {0x2570, 0x30F0},
+ {0x2571, 0x30F1},
+ {0x2572, 0x30F2},
+ {0x2573, 0x30F3},
+ {0x2574, 0x30F4},
+ {0x2575, 0x30F5},
+ {0x2576, 0x30F6},
+ {0x2621, 0x0391},
+ {0x2622, 0x0392},
+ {0x2623, 0x0393},
+ {0x2624, 0x0394},
+ {0x2625, 0x0395},
+ {0x2626, 0x0396},
+ {0x2627, 0x0397},
+ {0x2628, 0x0398},
+ {0x2629, 0x0399},
+ {0x262A, 0x039A},
+ {0x262B, 0x039B},
+ {0x262C, 0x039C},
+ {0x262D, 0x039D},
+ {0x262E, 0x039E},
+ {0x262F, 0x039F},
+ {0x2630, 0x03A0},
+ {0x2631, 0x03A1},
+ {0x2632, 0x03A3},
+ {0x2633, 0x03A4},
+ {0x2634, 0x03A5},
+ {0x2635, 0x03A6},
+ {0x2636, 0x03A7},
+ {0x2637, 0x03A8},
+ {0x2638, 0x03A9},
+ {0x2641, 0x03B1},
+ {0x2642, 0x03B2},
+ {0x2643, 0x03B3},
+ {0x2644, 0x03B4},
+ {0x2645, 0x03B5},
+ {0x2646, 0x03B6},
+ {0x2647, 0x03B7},
+ {0x2648, 0x03B8},
+ {0x2649, 0x03B9},
+ {0x264A, 0x03BA},
+ {0x264B, 0x03BB},
+ {0x264C, 0x03BC},
+ {0x264D, 0x03BD},
+ {0x264E, 0x03BE},
+ {0x264F, 0x03BF},
+ {0x2650, 0x03C0},
+ {0x2651, 0x03C1},
+ {0x2652, 0x03C3},
+ {0x2653, 0x03C4},
+ {0x2654, 0x03C5},
+ {0x2655, 0x03C6},
+ {0x2656, 0x03C7},
+ {0x2657, 0x03C8},
+ {0x2658, 0x03C9},
+ {0x2721, 0x0410},
+ {0x2722, 0x0411},
+ {0x2723, 0x0412},
+ {0x2724, 0x0413},
+ {0x2725, 0x0414},
+ {0x2726, 0x0415},
+ {0x2727, 0x0401},
+ {0x2728, 0x0416},
+ {0x2729, 0x0417},
+ {0x272A, 0x0418},
+ {0x272B, 0x0419},
+ {0x272C, 0x041A},
+ {0x272D, 0x041B},
+ {0x272E, 0x041C},
+ {0x272F, 0x041D},
+ {0x2730, 0x041E},
+ {0x2731, 0x041F},
+ {0x2732, 0x0420},
+ {0x2733, 0x0421},
+ {0x2734, 0x0422},
+ {0x2735, 0x0423},
+ {0x2736, 0x0424},
+ {0x2737, 0x0425},
+ {0x2738, 0x0426},
+ {0x2739, 0x0427},
+ {0x273A, 0x0428},
+ {0x273B, 0x0429},
+ {0x273C, 0x042A},
+ {0x273D, 0x042B},
+ {0x273E, 0x042C},
+ {0x273F, 0x042D},
+ {0x2740, 0x042E},
+ {0x2741, 0x042F},
+ {0x2751, 0x0430},
+ {0x2752, 0x0431},
+ {0x2753, 0x0432},
+ {0x2754, 0x0433},
+ {0x2755, 0x0434},
+ {0x2756, 0x0435},
+ {0x2757, 0x0451},
+ {0x2758, 0x0436},
+ {0x2759, 0x0437},
+ {0x275A, 0x0438},
+ {0x275B, 0x0439},
+ {0x275C, 0x043A},
+ {0x275D, 0x043B},
+ {0x275E, 0x043C},
+ {0x275F, 0x043D},
+ {0x2760, 0x043E},
+ {0x2761, 0x043F},
+ {0x2762, 0x0440},
+ {0x2763, 0x0441},
+ {0x2764, 0x0442},
+ {0x2765, 0x0443},
+ {0x2766, 0x0444},
+ {0x2767, 0x0445},
+ {0x2768, 0x0446},
+ {0x2769, 0x0447},
+ {0x276A, 0x0448},
+ {0x276B, 0x0449},
+ {0x276C, 0x044A},
+ {0x276D, 0x044B},
+ {0x276E, 0x044C},
+ {0x276F, 0x044D},
+ {0x2770, 0x044E},
+ {0x2771, 0x044F},
+ {0x2821, 0x2500},
+ {0x2822, 0x2502},
+ {0x2823, 0x250C},
+ {0x2824, 0x2510},
+ {0x2825, 0x2518},
+ {0x2826, 0x2514},
+ {0x2827, 0x251C},
+ {0x2828, 0x252C},
+ {0x2829, 0x2524},
+ {0x282A, 0x2534},
+ {0x282B, 0x253C},
+ {0x282C, 0x2501},
+ {0x282D, 0x2503},
+ {0x282E, 0x250F},
+ {0x282F, 0x2513},
+ {0x2830, 0x251B},
+ {0x2831, 0x2517},
+ {0x2832, 0x2523},
+ {0x2833, 0x2533},
+ {0x2834, 0x252B},
+ {0x2835, 0x253B},
+ {0x2836, 0x254B},
+ {0x2837, 0x2520},
+ {0x2838, 0x252F},
+ {0x2839, 0x2528},
+ {0x283A, 0x2537},
+ {0x283B, 0x253F},
+ {0x283C, 0x251D},
+ {0x283D, 0x2530},
+ {0x283E, 0x2525},
+ {0x283F, 0x2538},
+ {0x2840, 0x2542},
+ {0x3021, 0x4E9C},
+ {0x3022, 0x5516},
+ {0x3023, 0x5A03},
+ {0x3024, 0x963F},
+ {0x3025, 0x54C0},
+ {0x3026, 0x611B},
+ {0x3027, 0x6328},
+ {0x3028, 0x59F6},
+ {0x3029, 0x9022},
+ {0x302A, 0x8475},
+ {0x302B, 0x831C},
+ {0x302C, 0x7A50},
+ {0x302D, 0x60AA},
+ {0x302E, 0x63E1},
+ {0x302F, 0x6E25},
+ {0x3030, 0x65ED},
+ {0x3031, 0x8466},
+ {0x3032, 0x82A6},
+ {0x3033, 0x9BF5},
+ {0x3034, 0x6893},
+ {0x3035, 0x5727},
+ {0x3036, 0x65A1},
+ {0x3037, 0x6271},
+ {0x3038, 0x5B9B},
+ {0x3039, 0x59D0},
+ {0x303A, 0x867B},
+ {0x303B, 0x98F4},
+ {0x303C, 0x7D62},
+ {0x303D, 0x7DBE},
+ {0x303E, 0x9B8E},
+ {0x303F, 0x6216},
+ {0x3040, 0x7C9F},
+ {0x3041, 0x88B7},
+ {0x3042, 0x5B89},
+ {0x3043, 0x5EB5},
+ {0x3044, 0x6309},
+ {0x3045, 0x6697},
+ {0x3046, 0x6848},
+ {0x3047, 0x95C7},
+ {0x3048, 0x978D},
+ {0x3049, 0x674F},
+ {0x304A, 0x4EE5},
+ {0x304B, 0x4F0A},
+ {0x304C, 0x4F4D},
+ {0x304D, 0x4F9D},
+ {0x304E, 0x5049},
+ {0x304F, 0x56F2},
+ {0x3050, 0x5937},
+ {0x3051, 0x59D4},
+ {0x3052, 0x5A01},
+ {0x3053, 0x5C09},
+ {0x3054, 0x60DF},
+ {0x3055, 0x610F},
+ {0x3056, 0x6170},
+ {0x3057, 0x6613},
+ {0x3058, 0x6905},
+ {0x3059, 0x70BA},
+ {0x305A, 0x754F},
+ {0x305B, 0x7570},
+ {0x305C, 0x79FB},
+ {0x305D, 0x7DAD},
+ {0x305E, 0x7DEF},
+ {0x305F, 0x80C3},
+ {0x3060, 0x840E},
+ {0x3061, 0x8863},
+ {0x3062, 0x8B02},
+ {0x3063, 0x9055},
+ {0x3064, 0x907A},
+ {0x3065, 0x533B},
+ {0x3066, 0x4E95},
+ {0x3067, 0x4EA5},
+ {0x3068, 0x57DF},
+ {0x3069, 0x80B2},
+ {0x306A, 0x90C1},
+ {0x306B, 0x78EF},
+ {0x306C, 0x4E00},
+ {0x306D, 0x58F1},
+ {0x306E, 0x6EA2},
+ {0x306F, 0x9038},
+ {0x3070, 0x7A32},
+ {0x3071, 0x8328},
+ {0x3072, 0x828B},
+ {0x3073, 0x9C2F},
+ {0x3074, 0x5141},
+ {0x3075, 0x5370},
+ {0x3076, 0x54BD},
+ {0x3077, 0x54E1},
+ {0x3078, 0x56E0},
+ {0x3079, 0x59FB},
+ {0x307A, 0x5F15},
+ {0x307B, 0x98F2},
+ {0x307C, 0x6DEB},
+ {0x307D, 0x80E4},
+ {0x307E, 0x852D},
+ {0x3121, 0x9662},
+ {0x3122, 0x9670},
+ {0x3123, 0x96A0},
+ {0x3124, 0x97FB},
+ {0x3125, 0x540B},
+ {0x3126, 0x53F3},
+ {0x3127, 0x5B87},
+ {0x3128, 0x70CF},
+ {0x3129, 0x7FBD},
+ {0x312A, 0x8FC2},
+ {0x312B, 0x96E8},
+ {0x312C, 0x536F},
+ {0x312D, 0x9D5C},
+ {0x312E, 0x7ABA},
+ {0x312F, 0x4E11},
+ {0x3130, 0x7893},
+ {0x3131, 0x81FC},
+ {0x3132, 0x6E26},
+ {0x3133, 0x5618},
+ {0x3134, 0x5504},
+ {0x3135, 0x6B1D},
+ {0x3136, 0x851A},
+ {0x3137, 0x9C3B},
+ {0x3138, 0x59E5},
+ {0x3139, 0x53A9},
+ {0x313A, 0x6D66},
+ {0x313B, 0x74DC},
+ {0x313C, 0x958F},
+ {0x313D, 0x5642},
+ {0x313E, 0x4E91},
+ {0x313F, 0x904B},
+ {0x3140, 0x96F2},
+ {0x3141, 0x834F},
+ {0x3142, 0x990C},
+ {0x3143, 0x53E1},
+ {0x3144, 0x55B6},
+ {0x3145, 0x5B30},
+ {0x3146, 0x5F71},
+ {0x3147, 0x6620},
+ {0x3148, 0x66F3},
+ {0x3149, 0x6804},
+ {0x314A, 0x6C38},
+ {0x314B, 0x6CF3},
+ {0x314C, 0x6D29},
+ {0x314D, 0x745B},
+ {0x314E, 0x76C8},
+ {0x314F, 0x7A4E},
+ {0x3150, 0x9834},
+ {0x3151, 0x82F1},
+ {0x3152, 0x885B},
+ {0x3153, 0x8A60},
+ {0x3154, 0x92ED},
+ {0x3155, 0x6DB2},
+ {0x3156, 0x75AB},
+ {0x3157, 0x76CA},
+ {0x3158, 0x99C5},
+ {0x3159, 0x60A6},
+ {0x315A, 0x8B01},
+ {0x315B, 0x8D8A},
+ {0x315C, 0x95B2},
+ {0x315D, 0x698E},
+ {0x315E, 0x53AD},
+ {0x315F, 0x5186},
+ {0x3160, 0x5712},
+ {0x3161, 0x5830},
+ {0x3162, 0x5944},
+ {0x3163, 0x5BB4},
+ {0x3164, 0x5EF6},
+ {0x3165, 0x6028},
+ {0x3166, 0x63A9},
+ {0x3167, 0x63F4},
+ {0x3168, 0x6CBF},
+ {0x3169, 0x6F14},
+ {0x316A, 0x708E},
+ {0x316B, 0x7114},
+ {0x316C, 0x7159},
+ {0x316D, 0x71D5},
+ {0x316E, 0x733F},
+ {0x316F, 0x7E01},
+ {0x3170, 0x8276},
+ {0x3171, 0x82D1},
+ {0x3172, 0x8597},
+ {0x3173, 0x9060},
+ {0x3174, 0x925B},
+ {0x3175, 0x9D1B},
+ {0x3176, 0x5869},
+ {0x3177, 0x65BC},
+ {0x3178, 0x6C5A},
+ {0x3179, 0x7525},
+ {0x317A, 0x51F9},
+ {0x317B, 0x592E},
+ {0x317C, 0x5965},
+ {0x317D, 0x5F80},
+ {0x317E, 0x5FDC},
+ {0x3221, 0x62BC},
+ {0x3222, 0x65FA},
+ {0x3223, 0x6A2A},
+ {0x3224, 0x6B27},
+ {0x3225, 0x6BB4},
+ {0x3226, 0x738B},
+ {0x3227, 0x7FC1},
+ {0x3228, 0x8956},
+ {0x3229, 0x9D2C},
+ {0x322A, 0x9D0E},
+ {0x322B, 0x9EC4},
+ {0x322C, 0x5CA1},
+ {0x322D, 0x6C96},
+ {0x322E, 0x837B},
+ {0x322F, 0x5104},
+ {0x3230, 0x5C4B},
+ {0x3231, 0x61B6},
+ {0x3232, 0x81C6},
+ {0x3233, 0x6876},
+ {0x3234, 0x7261},
+ {0x3235, 0x4E59},
+ {0x3236, 0x4FFA},
+ {0x3237, 0x5378},
+ {0x3238, 0x6069},
+ {0x3239, 0x6E29},
+ {0x323A, 0x7A4F},
+ {0x323B, 0x97F3},
+ {0x323C, 0x4E0B},
+ {0x323D, 0x5316},
+ {0x323E, 0x4EEE},
+ {0x323F, 0x4F55},
+ {0x3240, 0x4F3D},
+ {0x3241, 0x4FA1},
+ {0x3242, 0x4F73},
+ {0x3243, 0x52A0},
+ {0x3244, 0x53EF},
+ {0x3245, 0x5609},
+ {0x3246, 0x590F},
+ {0x3247, 0x5AC1},
+ {0x3248, 0x5BB6},
+ {0x3249, 0x5BE1},
+ {0x324A, 0x79D1},
+ {0x324B, 0x6687},
+ {0x324C, 0x679C},
+ {0x324D, 0x67B6},
+ {0x324E, 0x6B4C},
+ {0x324F, 0x6CB3},
+ {0x3250, 0x706B},
+ {0x3251, 0x73C2},
+ {0x3252, 0x798D},
+ {0x3253, 0x79BE},
+ {0x3254, 0x7A3C},
+ {0x3255, 0x7B87},
+ {0x3256, 0x82B1},
+ {0x3257, 0x82DB},
+ {0x3258, 0x8304},
+ {0x3259, 0x8377},
+ {0x325A, 0x83EF},
+ {0x325B, 0x83D3},
+ {0x325C, 0x8766},
+ {0x325D, 0x8AB2},
+ {0x325E, 0x5629},
+ {0x325F, 0x8CA8},
+ {0x3260, 0x8FE6},
+ {0x3261, 0x904E},
+ {0x3262, 0x971E},
+ {0x3263, 0x868A},
+ {0x3264, 0x4FC4},
+ {0x3265, 0x5CE8},
+ {0x3266, 0x6211},
+ {0x3267, 0x7259},
+ {0x3268, 0x753B},
+ {0x3269, 0x81E5},
+ {0x326A, 0x82BD},
+ {0x326B, 0x86FE},
+ {0x326C, 0x8CC0},
+ {0x326D, 0x96C5},
+ {0x326E, 0x9913},
+ {0x326F, 0x99D5},
+ {0x3270, 0x4ECB},
+ {0x3271, 0x4F1A},
+ {0x3272, 0x89E3},
+ {0x3273, 0x56DE},
+ {0x3274, 0x584A},
+ {0x3275, 0x58CA},
+ {0x3276, 0x5EFB},
+ {0x3277, 0x5FEB},
+ {0x3278, 0x602A},
+ {0x3279, 0x6094},
+ {0x327A, 0x6062},
+ {0x327B, 0x61D0},
+ {0x327C, 0x6212},
+ {0x327D, 0x62D0},
+ {0x327E, 0x6539},
+ {0x3321, 0x9B41},
+ {0x3322, 0x6666},
+ {0x3323, 0x68B0},
+ {0x3324, 0x6D77},
+ {0x3325, 0x7070},
+ {0x3326, 0x754C},
+ {0x3327, 0x7686},
+ {0x3328, 0x7D75},
+ {0x3329, 0x82A5},
+ {0x332A, 0x87F9},
+ {0x332B, 0x958B},
+ {0x332C, 0x968E},
+ {0x332D, 0x8C9D},
+ {0x332E, 0x51F1},
+ {0x332F, 0x52BE},
+ {0x3330, 0x5916},
+ {0x3331, 0x54B3},
+ {0x3332, 0x5BB3},
+ {0x3333, 0x5D16},
+ {0x3334, 0x6168},
+ {0x3335, 0x6982},
+ {0x3336, 0x6DAF},
+ {0x3337, 0x788D},
+ {0x3338, 0x84CB},
+ {0x3339, 0x8857},
+ {0x333A, 0x8A72},
+ {0x333B, 0x93A7},
+ {0x333C, 0x9AB8},
+ {0x333D, 0x6D6C},
+ {0x333E, 0x99A8},
+ {0x333F, 0x86D9},
+ {0x3340, 0x57A3},
+ {0x3341, 0x67FF},
+ {0x3342, 0x86CE},
+ {0x3343, 0x920E},
+ {0x3344, 0x5283},
+ {0x3345, 0x5687},
+ {0x3346, 0x5404},
+ {0x3347, 0x5ED3},
+ {0x3348, 0x62E1},
+ {0x3349, 0x64B9},
+ {0x334A, 0x683C},
+ {0x334B, 0x6838},
+ {0x334C, 0x6BBB},
+ {0x334D, 0x7372},
+ {0x334E, 0x78BA},
+ {0x334F, 0x7A6B},
+ {0x3350, 0x899A},
+ {0x3351, 0x89D2},
+ {0x3352, 0x8D6B},
+ {0x3353, 0x8F03},
+ {0x3354, 0x90ED},
+ {0x3355, 0x95A3},
+ {0x3356, 0x9694},
+ {0x3357, 0x9769},
+ {0x3358, 0x5B66},
+ {0x3359, 0x5CB3},
+ {0x335A, 0x697D},
+ {0x335B, 0x984D},
+ {0x335C, 0x984E},
+ {0x335D, 0x639B},
+ {0x335E, 0x7B20},
+ {0x335F, 0x6A2B},
+ {0x3360, 0x6A7F},
+ {0x3361, 0x68B6},
+ {0x3362, 0x9C0D},
+ {0x3363, 0x6F5F},
+ {0x3364, 0x5272},
+ {0x3365, 0x559D},
+ {0x3366, 0x6070},
+ {0x3367, 0x62EC},
+ {0x3368, 0x6D3B},
+ {0x3369, 0x6E07},
+ {0x336A, 0x6ED1},
+ {0x336B, 0x845B},
+ {0x336C, 0x8910},
+ {0x336D, 0x8F44},
+ {0x336E, 0x4E14},
+ {0x336F, 0x9C39},
+ {0x3370, 0x53F6},
+ {0x3371, 0x691B},
+ {0x3372, 0x6A3A},
+ {0x3373, 0x9784},
+ {0x3374, 0x682A},
+ {0x3375, 0x515C},
+ {0x3376, 0x7AC3},
+ {0x3377, 0x84B2},
+ {0x3378, 0x91DC},
+ {0x3379, 0x938C},
+ {0x337A, 0x565B},
+ {0x337B, 0x9D28},
+ {0x337C, 0x6822},
+ {0x337D, 0x8305},
+ {0x337E, 0x8431},
+ {0x3421, 0x7CA5},
+ {0x3422, 0x5208},
+ {0x3423, 0x82C5},
+ {0x3424, 0x74E6},
+ {0x3425, 0x4E7E},
+ {0x3426, 0x4F83},
+ {0x3427, 0x51A0},
+ {0x3428, 0x5BD2},
+ {0x3429, 0x520A},
+ {0x342A, 0x52D8},
+ {0x342B, 0x52E7},
+ {0x342C, 0x5DFB},
+ {0x342D, 0x559A},
+ {0x342E, 0x582A},
+ {0x342F, 0x59E6},
+ {0x3430, 0x5B8C},
+ {0x3431, 0x5B98},
+ {0x3432, 0x5BDB},
+ {0x3433, 0x5E72},
+ {0x3434, 0x5E79},
+ {0x3435, 0x60A3},
+ {0x3436, 0x611F},
+ {0x3437, 0x6163},
+ {0x3438, 0x61BE},
+ {0x3439, 0x63DB},
+ {0x343A, 0x6562},
+ {0x343B, 0x67D1},
+ {0x343C, 0x6853},
+ {0x343D, 0x68FA},
+ {0x343E, 0x6B3E},
+ {0x343F, 0x6B53},
+ {0x3440, 0x6C57},
+ {0x3441, 0x6F22},
+ {0x3442, 0x6F97},
+ {0x3443, 0x6F45},
+ {0x3444, 0x74B0},
+ {0x3445, 0x7518},
+ {0x3446, 0x76E3},
+ {0x3447, 0x770B},
+ {0x3448, 0x7AFF},
+ {0x3449, 0x7BA1},
+ {0x344A, 0x7C21},
+ {0x344B, 0x7DE9},
+ {0x344C, 0x7F36},
+ {0x344D, 0x7FF0},
+ {0x344E, 0x809D},
+ {0x344F, 0x8266},
+ {0x3450, 0x839E},
+ {0x3451, 0x89B3},
+ {0x3452, 0x8ACC},
+ {0x3453, 0x8CAB},
+ {0x3454, 0x9084},
+ {0x3455, 0x9451},
+ {0x3456, 0x9593},
+ {0x3457, 0x9591},
+ {0x3458, 0x95A2},
+ {0x3459, 0x9665},
+ {0x345A, 0x97D3},
+ {0x345B, 0x9928},
+ {0x345C, 0x8218},
+ {0x345D, 0x4E38},
+ {0x345E, 0x542B},
+ {0x345F, 0x5CB8},
+ {0x3460, 0x5DCC},
+ {0x3461, 0x73A9},
+ {0x3462, 0x764C},
+ {0x3463, 0x773C},
+ {0x3464, 0x5CA9},
+ {0x3465, 0x7FEB},
+ {0x3466, 0x8D0B},
+ {0x3467, 0x96C1},
+ {0x3468, 0x9811},
+ {0x3469, 0x9854},
+ {0x346A, 0x9858},
+ {0x346B, 0x4F01},
+ {0x346C, 0x4F0E},
+ {0x346D, 0x5371},
+ {0x346E, 0x559C},
+ {0x346F, 0x5668},
+ {0x3470, 0x57FA},
+ {0x3471, 0x5947},
+ {0x3472, 0x5B09},
+ {0x3473, 0x5BC4},
+ {0x3474, 0x5C90},
+ {0x3475, 0x5E0C},
+ {0x3476, 0x5E7E},
+ {0x3477, 0x5FCC},
+ {0x3478, 0x63EE},
+ {0x3479, 0x673A},
+ {0x347A, 0x65D7},
+ {0x347B, 0x65E2},
+ {0x347C, 0x671F},
+ {0x347D, 0x68CB},
+ {0x347E, 0x68C4},
+ {0x3521, 0x6A5F},
+ {0x3522, 0x5E30},
+ {0x3523, 0x6BC5},
+ {0x3524, 0x6C17},
+ {0x3525, 0x6C7D},
+ {0x3526, 0x757F},
+ {0x3527, 0x7948},
+ {0x3528, 0x5B63},
+ {0x3529, 0x7A00},
+ {0x352A, 0x7D00},
+ {0x352B, 0x5FBD},
+ {0x352C, 0x898F},
+ {0x352D, 0x8A18},
+ {0x352E, 0x8CB4},
+ {0x352F, 0x8D77},
+ {0x3530, 0x8ECC},
+ {0x3531, 0x8F1D},
+ {0x3532, 0x98E2},
+ {0x3533, 0x9A0E},
+ {0x3534, 0x9B3C},
+ {0x3535, 0x4E80},
+ {0x3536, 0x507D},
+ {0x3537, 0x5100},
+ {0x3538, 0x5993},
+ {0x3539, 0x5B9C},
+ {0x353A, 0x622F},
+ {0x353B, 0x6280},
+ {0x353C, 0x64EC},
+ {0x353D, 0x6B3A},
+ {0x353E, 0x72A0},
+ {0x353F, 0x7591},
+ {0x3540, 0x7947},
+ {0x3541, 0x7FA9},
+ {0x3542, 0x87FB},
+ {0x3543, 0x8ABC},
+ {0x3544, 0x8B70},
+ {0x3545, 0x63AC},
+ {0x3546, 0x83CA},
+ {0x3547, 0x97A0},
+ {0x3548, 0x5409},
+ {0x3549, 0x5403},
+ {0x354A, 0x55AB},
+ {0x354B, 0x6854},
+ {0x354C, 0x6A58},
+ {0x354D, 0x8A70},
+ {0x354E, 0x7827},
+ {0x354F, 0x6775},
+ {0x3550, 0x9ECD},
+ {0x3551, 0x5374},
+ {0x3552, 0x5BA2},
+ {0x3553, 0x811A},
+ {0x3554, 0x8650},
+ {0x3555, 0x9006},
+ {0x3556, 0x4E18},
+ {0x3557, 0x4E45},
+ {0x3558, 0x4EC7},
+ {0x3559, 0x4F11},
+ {0x355A, 0x53CA},
+ {0x355B, 0x5438},
+ {0x355C, 0x5BAE},
+ {0x355D, 0x5F13},
+ {0x355E, 0x6025},
+ {0x355F, 0x6551},
+ {0x3560, 0x673D},
+ {0x3561, 0x6C42},
+ {0x3562, 0x6C72},
+ {0x3563, 0x6CE3},
+ {0x3564, 0x7078},
+ {0x3565, 0x7403},
+ {0x3566, 0x7A76},
+ {0x3567, 0x7AAE},
+ {0x3568, 0x7B08},
+ {0x3569, 0x7D1A},
+ {0x356A, 0x7CFE},
+ {0x356B, 0x7D66},
+ {0x356C, 0x65E7},
+ {0x356D, 0x725B},
+ {0x356E, 0x53BB},
+ {0x356F, 0x5C45},
+ {0x3570, 0x5DE8},
+ {0x3571, 0x62D2},
+ {0x3572, 0x62E0},
+ {0x3573, 0x6319},
+ {0x3574, 0x6E20},
+ {0x3575, 0x865A},
+ {0x3576, 0x8A31},
+ {0x3577, 0x8DDD},
+ {0x3578, 0x92F8},
+ {0x3579, 0x6F01},
+ {0x357A, 0x79A6},
+ {0x357B, 0x9B5A},
+ {0x357C, 0x4EA8},
+ {0x357D, 0x4EAB},
+ {0x357E, 0x4EAC},
+ {0x3621, 0x4F9B},
+ {0x3622, 0x4FA0},
+ {0x3623, 0x50D1},
+ {0x3624, 0x5147},
+ {0x3625, 0x7AF6},
+ {0x3626, 0x5171},
+ {0x3627, 0x51F6},
+ {0x3628, 0x5354},
+ {0x3629, 0x5321},
+ {0x362A, 0x537F},
+ {0x362B, 0x53EB},
+ {0x362C, 0x55AC},
+ {0x362D, 0x5883},
+ {0x362E, 0x5CE1},
+ {0x362F, 0x5F37},
+ {0x3630, 0x5F4A},
+ {0x3631, 0x602F},
+ {0x3632, 0x6050},
+ {0x3633, 0x606D},
+ {0x3634, 0x631F},
+ {0x3635, 0x6559},
+ {0x3636, 0x6A4B},
+ {0x3637, 0x6CC1},
+ {0x3638, 0x72C2},
+ {0x3639, 0x72ED},
+ {0x363A, 0x77EF},
+ {0x363B, 0x80F8},
+ {0x363C, 0x8105},
+ {0x363D, 0x8208},
+ {0x363E, 0x854E},
+ {0x363F, 0x90F7},
+ {0x3640, 0x93E1},
+ {0x3641, 0x97FF},
+ {0x3642, 0x9957},
+ {0x3643, 0x9A5A},
+ {0x3644, 0x4EF0},
+ {0x3645, 0x51DD},
+ {0x3646, 0x5C2D},
+ {0x3647, 0x6681},
+ {0x3648, 0x696D},
+ {0x3649, 0x5C40},
+ {0x364A, 0x66F2},
+ {0x364B, 0x6975},
+ {0x364C, 0x7389},
+ {0x364D, 0x6850},
+ {0x364E, 0x7C81},
+ {0x364F, 0x50C5},
+ {0x3650, 0x52E4},
+ {0x3651, 0x5747},
+ {0x3652, 0x5DFE},
+ {0x3653, 0x9326},
+ {0x3654, 0x65A4},
+ {0x3655, 0x6B23},
+ {0x3656, 0x6B3D},
+ {0x3657, 0x7434},
+ {0x3658, 0x7981},
+ {0x3659, 0x79BD},
+ {0x365A, 0x7B4B},
+ {0x365B, 0x7DCA},
+ {0x365C, 0x82B9},
+ {0x365D, 0x83CC},
+ {0x365E, 0x887F},
+ {0x365F, 0x895F},
+ {0x3660, 0x8B39},
+ {0x3661, 0x8FD1},
+ {0x3662, 0x91D1},
+ {0x3663, 0x541F},
+ {0x3664, 0x9280},
+ {0x3665, 0x4E5D},
+ {0x3666, 0x5036},
+ {0x3667, 0x53E5},
+ {0x3668, 0x533A},
+ {0x3669, 0x72D7},
+ {0x366A, 0x7396},
+ {0x366B, 0x77E9},
+ {0x366C, 0x82E6},
+ {0x366D, 0x8EAF},
+ {0x366E, 0x99C6},
+ {0x366F, 0x99C8},
+ {0x3670, 0x99D2},
+ {0x3671, 0x5177},
+ {0x3672, 0x611A},
+ {0x3673, 0x865E},
+ {0x3674, 0x55B0},
+ {0x3675, 0x7A7A},
+ {0x3676, 0x5076},
+ {0x3677, 0x5BD3},
+ {0x3678, 0x9047},
+ {0x3679, 0x9685},
+ {0x367A, 0x4E32},
+ {0x367B, 0x6ADB},
+ {0x367C, 0x91E7},
+ {0x367D, 0x5C51},
+ {0x367E, 0x5C48},
+ {0x3721, 0x6398},
+ {0x3722, 0x7A9F},
+ {0x3723, 0x6C93},
+ {0x3724, 0x9774},
+ {0x3725, 0x8F61},
+ {0x3726, 0x7AAA},
+ {0x3727, 0x718A},
+ {0x3728, 0x9688},
+ {0x3729, 0x7C82},
+ {0x372A, 0x6817},
+ {0x372B, 0x7E70},
+ {0x372C, 0x6851},
+ {0x372D, 0x936C},
+ {0x372E, 0x52F2},
+ {0x372F, 0x541B},
+ {0x3730, 0x85AB},
+ {0x3731, 0x8A13},
+ {0x3732, 0x7FA4},
+ {0x3733, 0x8ECD},
+ {0x3734, 0x90E1},
+ {0x3735, 0x5366},
+ {0x3736, 0x8888},
+ {0x3737, 0x7941},
+ {0x3738, 0x4FC2},
+ {0x3739, 0x50BE},
+ {0x373A, 0x5211},
+ {0x373B, 0x5144},
+ {0x373C, 0x5553},
+ {0x373D, 0x572D},
+ {0x373E, 0x73EA},
+ {0x373F, 0x578B},
+ {0x3740, 0x5951},
+ {0x3741, 0x5F62},
+ {0x3742, 0x5F84},
+ {0x3743, 0x6075},
+ {0x3744, 0x6176},
+ {0x3745, 0x6167},
+ {0x3746, 0x61A9},
+ {0x3747, 0x63B2},
+ {0x3748, 0x643A},
+ {0x3749, 0x656C},
+ {0x374A, 0x666F},
+ {0x374B, 0x6842},
+ {0x374C, 0x6E13},
+ {0x374D, 0x7566},
+ {0x374E, 0x7A3D},
+ {0x374F, 0x7CFB},
+ {0x3750, 0x7D4C},
+ {0x3751, 0x7D99},
+ {0x3752, 0x7E4B},
+ {0x3753, 0x7F6B},
+ {0x3754, 0x830E},
+ {0x3755, 0x834A},
+ {0x3756, 0x86CD},
+ {0x3757, 0x8A08},
+ {0x3758, 0x8A63},
+ {0x3759, 0x8B66},
+ {0x375A, 0x8EFD},
+ {0x375B, 0x981A},
+ {0x375C, 0x9D8F},
+ {0x375D, 0x82B8},
+ {0x375E, 0x8FCE},
+ {0x375F, 0x9BE8},
+ {0x3760, 0x5287},
+ {0x3761, 0x621F},
+ {0x3762, 0x6483},
+ {0x3763, 0x6FC0},
+ {0x3764, 0x9699},
+ {0x3765, 0x6841},
+ {0x3766, 0x5091},
+ {0x3767, 0x6B20},
+ {0x3768, 0x6C7A},
+ {0x3769, 0x6F54},
+ {0x376A, 0x7A74},
+ {0x376B, 0x7D50},
+ {0x376C, 0x8840},
+ {0x376D, 0x8A23},
+ {0x376E, 0x6708},
+ {0x376F, 0x4EF6},
+ {0x3770, 0x5039},
+ {0x3771, 0x5026},
+ {0x3772, 0x5065},
+ {0x3773, 0x517C},
+ {0x3774, 0x5238},
+ {0x3775, 0x5263},
+ {0x3776, 0x55A7},
+ {0x3777, 0x570F},
+ {0x3778, 0x5805},
+ {0x3779, 0x5ACC},
+ {0x377A, 0x5EFA},
+ {0x377B, 0x61B2},
+ {0x377C, 0x61F8},
+ {0x377D, 0x62F3},
+ {0x377E, 0x6372},
+ {0x3821, 0x691C},
+ {0x3822, 0x6A29},
+ {0x3823, 0x727D},
+ {0x3824, 0x72AC},
+ {0x3825, 0x732E},
+ {0x3826, 0x7814},
+ {0x3827, 0x786F},
+ {0x3828, 0x7D79},
+ {0x3829, 0x770C},
+ {0x382A, 0x80A9},
+ {0x382B, 0x898B},
+ {0x382C, 0x8B19},
+ {0x382D, 0x8CE2},
+ {0x382E, 0x8ED2},
+ {0x382F, 0x9063},
+ {0x3830, 0x9375},
+ {0x3831, 0x967A},
+ {0x3832, 0x9855},
+ {0x3833, 0x9A13},
+ {0x3834, 0x9E78},
+ {0x3835, 0x5143},
+ {0x3836, 0x539F},
+ {0x3837, 0x53B3},
+ {0x3838, 0x5E7B},
+ {0x3839, 0x5F26},
+ {0x383A, 0x6E1B},
+ {0x383B, 0x6E90},
+ {0x383C, 0x7384},
+ {0x383D, 0x73FE},
+ {0x383E, 0x7D43},
+ {0x383F, 0x8237},
+ {0x3840, 0x8A00},
+ {0x3841, 0x8AFA},
+ {0x3842, 0x9650},
+ {0x3843, 0x4E4E},
+ {0x3844, 0x500B},
+ {0x3845, 0x53E4},
+ {0x3846, 0x547C},
+ {0x3847, 0x56FA},
+ {0x3848, 0x59D1},
+ {0x3849, 0x5B64},
+ {0x384A, 0x5DF1},
+ {0x384B, 0x5EAB},
+ {0x384C, 0x5F27},
+ {0x384D, 0x6238},
+ {0x384E, 0x6545},
+ {0x384F, 0x67AF},
+ {0x3850, 0x6E56},
+ {0x3851, 0x72D0},
+ {0x3852, 0x7CCA},
+ {0x3853, 0x88B4},
+ {0x3854, 0x80A1},
+ {0x3855, 0x80E1},
+ {0x3856, 0x83F0},
+ {0x3857, 0x864E},
+ {0x3858, 0x8A87},
+ {0x3859, 0x8DE8},
+ {0x385A, 0x9237},
+ {0x385B, 0x96C7},
+ {0x385C, 0x9867},
+ {0x385D, 0x9F13},
+ {0x385E, 0x4E94},
+ {0x385F, 0x4E92},
+ {0x3860, 0x4F0D},
+ {0x3861, 0x5348},
+ {0x3862, 0x5449},
+ {0x3863, 0x543E},
+ {0x3864, 0x5A2F},
+ {0x3865, 0x5F8C},
+ {0x3866, 0x5FA1},
+ {0x3867, 0x609F},
+ {0x3868, 0x68A7},
+ {0x3869, 0x6A8E},
+ {0x386A, 0x745A},
+ {0x386B, 0x7881},
+ {0x386C, 0x8A9E},
+ {0x386D, 0x8AA4},
+ {0x386E, 0x8B77},
+ {0x386F, 0x9190},
+ {0x3870, 0x4E5E},
+ {0x3871, 0x9BC9},
+ {0x3872, 0x4EA4},
+ {0x3873, 0x4F7C},
+ {0x3874, 0x4FAF},
+ {0x3875, 0x5019},
+ {0x3876, 0x5016},
+ {0x3877, 0x5149},
+ {0x3878, 0x516C},
+ {0x3879, 0x529F},
+ {0x387A, 0x52B9},
+ {0x387B, 0x52FE},
+ {0x387C, 0x539A},
+ {0x387D, 0x53E3},
+ {0x387E, 0x5411},
+ {0x3921, 0x540E},
+ {0x3922, 0x5589},
+ {0x3923, 0x5751},
+ {0x3924, 0x57A2},
+ {0x3925, 0x597D},
+ {0x3926, 0x5B54},
+ {0x3927, 0x5B5D},
+ {0x3928, 0x5B8F},
+ {0x3929, 0x5DE5},
+ {0x392A, 0x5DE7},
+ {0x392B, 0x5DF7},
+ {0x392C, 0x5E78},
+ {0x392D, 0x5E83},
+ {0x392E, 0x5E9A},
+ {0x392F, 0x5EB7},
+ {0x3930, 0x5F18},
+ {0x3931, 0x6052},
+ {0x3932, 0x614C},
+ {0x3933, 0x6297},
+ {0x3934, 0x62D8},
+ {0x3935, 0x63A7},
+ {0x3936, 0x653B},
+ {0x3937, 0x6602},
+ {0x3938, 0x6643},
+ {0x3939, 0x66F4},
+ {0x393A, 0x676D},
+ {0x393B, 0x6821},
+ {0x393C, 0x6897},
+ {0x393D, 0x69CB},
+ {0x393E, 0x6C5F},
+ {0x393F, 0x6D2A},
+ {0x3940, 0x6D69},
+ {0x3941, 0x6E2F},
+ {0x3942, 0x6E9D},
+ {0x3943, 0x7532},
+ {0x3944, 0x7687},
+ {0x3945, 0x786C},
+ {0x3946, 0x7A3F},
+ {0x3947, 0x7CE0},
+ {0x3948, 0x7D05},
+ {0x3949, 0x7D18},
+ {0x394A, 0x7D5E},
+ {0x394B, 0x7DB1},
+ {0x394C, 0x8015},
+ {0x394D, 0x8003},
+ {0x394E, 0x80AF},
+ {0x394F, 0x80B1},
+ {0x3950, 0x8154},
+ {0x3951, 0x818F},
+ {0x3952, 0x822A},
+ {0x3953, 0x8352},
+ {0x3954, 0x884C},
+ {0x3955, 0x8861},
+ {0x3956, 0x8B1B},
+ {0x3957, 0x8CA2},
+ {0x3958, 0x8CFC},
+ {0x3959, 0x90CA},
+ {0x395A, 0x9175},
+ {0x395B, 0x9271},
+ {0x395C, 0x783F},
+ {0x395D, 0x92FC},
+ {0x395E, 0x95A4},
+ {0x395F, 0x964D},
+ {0x3960, 0x9805},
+ {0x3961, 0x9999},
+ {0x3962, 0x9AD8},
+ {0x3963, 0x9D3B},
+ {0x3964, 0x525B},
+ {0x3965, 0x52AB},
+ {0x3966, 0x53F7},
+ {0x3967, 0x5408},
+ {0x3968, 0x58D5},
+ {0x3969, 0x62F7},
+ {0x396A, 0x6FE0},
+ {0x396B, 0x8C6A},
+ {0x396C, 0x8F5F},
+ {0x396D, 0x9EB9},
+ {0x396E, 0x514B},
+ {0x396F, 0x523B},
+ {0x3970, 0x544A},
+ {0x3971, 0x56FD},
+ {0x3972, 0x7A40},
+ {0x3973, 0x9177},
+ {0x3974, 0x9D60},
+ {0x3975, 0x9ED2},
+ {0x3976, 0x7344},
+ {0x3977, 0x6F09},
+ {0x3978, 0x8170},
+ {0x3979, 0x7511},
+ {0x397A, 0x5FFD},
+ {0x397B, 0x60DA},
+ {0x397C, 0x9AA8},
+ {0x397D, 0x72DB},
+ {0x397E, 0x8FBC},
+ {0x3A21, 0x6B64},
+ {0x3A22, 0x9803},
+ {0x3A23, 0x4ECA},
+ {0x3A24, 0x56F0},
+ {0x3A25, 0x5764},
+ {0x3A26, 0x58BE},
+ {0x3A27, 0x5A5A},
+ {0x3A28, 0x6068},
+ {0x3A29, 0x61C7},
+ {0x3A2A, 0x660F},
+ {0x3A2B, 0x6606},
+ {0x3A2C, 0x6839},
+ {0x3A2D, 0x68B1},
+ {0x3A2E, 0x6DF7},
+ {0x3A2F, 0x75D5},
+ {0x3A30, 0x7D3A},
+ {0x3A31, 0x826E},
+ {0x3A32, 0x9B42},
+ {0x3A33, 0x4E9B},
+ {0x3A34, 0x4F50},
+ {0x3A35, 0x53C9},
+ {0x3A36, 0x5506},
+ {0x3A37, 0x5D6F},
+ {0x3A38, 0x5DE6},
+ {0x3A39, 0x5DEE},
+ {0x3A3A, 0x67FB},
+ {0x3A3B, 0x6C99},
+ {0x3A3C, 0x7473},
+ {0x3A3D, 0x7802},
+ {0x3A3E, 0x8A50},
+ {0x3A3F, 0x9396},
+ {0x3A40, 0x88DF},
+ {0x3A41, 0x5750},
+ {0x3A42, 0x5EA7},
+ {0x3A43, 0x632B},
+ {0x3A44, 0x50B5},
+ {0x3A45, 0x50AC},
+ {0x3A46, 0x518D},
+ {0x3A47, 0x6700},
+ {0x3A48, 0x54C9},
+ {0x3A49, 0x585E},
+ {0x3A4A, 0x59BB},
+ {0x3A4B, 0x5BB0},
+ {0x3A4C, 0x5F69},
+ {0x3A4D, 0x624D},
+ {0x3A4E, 0x63A1},
+ {0x3A4F, 0x683D},
+ {0x3A50, 0x6B73},
+ {0x3A51, 0x6E08},
+ {0x3A52, 0x707D},
+ {0x3A53, 0x91C7},
+ {0x3A54, 0x7280},
+ {0x3A55, 0x7815},
+ {0x3A56, 0x7826},
+ {0x3A57, 0x796D},
+ {0x3A58, 0x658E},
+ {0x3A59, 0x7D30},
+ {0x3A5A, 0x83DC},
+ {0x3A5B, 0x88C1},
+ {0x3A5C, 0x8F09},
+ {0x3A5D, 0x969B},
+ {0x3A5E, 0x5264},
+ {0x3A5F, 0x5728},
+ {0x3A60, 0x6750},
+ {0x3A61, 0x7F6A},
+ {0x3A62, 0x8CA1},
+ {0x3A63, 0x51B4},
+ {0x3A64, 0x5742},
+ {0x3A65, 0x962A},
+ {0x3A66, 0x583A},
+ {0x3A67, 0x698A},
+ {0x3A68, 0x80B4},
+ {0x3A69, 0x54B2},
+ {0x3A6A, 0x5D0E},
+ {0x3A6B, 0x57FC},
+ {0x3A6C, 0x7895},
+ {0x3A6D, 0x9DFA},
+ {0x3A6E, 0x4F5C},
+ {0x3A6F, 0x524A},
+ {0x3A70, 0x548B},
+ {0x3A71, 0x643E},
+ {0x3A72, 0x6628},
+ {0x3A73, 0x6714},
+ {0x3A74, 0x67F5},
+ {0x3A75, 0x7A84},
+ {0x3A76, 0x7B56},
+ {0x3A77, 0x7D22},
+ {0x3A78, 0x932F},
+ {0x3A79, 0x685C},
+ {0x3A7A, 0x9BAD},
+ {0x3A7B, 0x7B39},
+ {0x3A7C, 0x5319},
+ {0x3A7D, 0x518A},
+ {0x3A7E, 0x5237},
+ {0x3B21, 0x5BDF},
+ {0x3B22, 0x62F6},
+ {0x3B23, 0x64AE},
+ {0x3B24, 0x64E6},
+ {0x3B25, 0x672D},
+ {0x3B26, 0x6BBA},
+ {0x3B27, 0x85A9},
+ {0x3B28, 0x96D1},
+ {0x3B29, 0x7690},
+ {0x3B2A, 0x9BD6},
+ {0x3B2B, 0x634C},
+ {0x3B2C, 0x9306},
+ {0x3B2D, 0x9BAB},
+ {0x3B2E, 0x76BF},
+ {0x3B2F, 0x6652},
+ {0x3B30, 0x4E09},
+ {0x3B31, 0x5098},
+ {0x3B32, 0x53C2},
+ {0x3B33, 0x5C71},
+ {0x3B34, 0x60E8},
+ {0x3B35, 0x6492},
+ {0x3B36, 0x6563},
+ {0x3B37, 0x685F},
+ {0x3B38, 0x71E6},
+ {0x3B39, 0x73CA},
+ {0x3B3A, 0x7523},
+ {0x3B3B, 0x7B97},
+ {0x3B3C, 0x7E82},
+ {0x3B3D, 0x8695},
+ {0x3B3E, 0x8B83},
+ {0x3B3F, 0x8CDB},
+ {0x3B40, 0x9178},
+ {0x3B41, 0x9910},
+ {0x3B42, 0x65AC},
+ {0x3B43, 0x66AB},
+ {0x3B44, 0x6B8B},
+ {0x3B45, 0x4ED5},
+ {0x3B46, 0x4ED4},
+ {0x3B47, 0x4F3A},
+ {0x3B48, 0x4F7F},
+ {0x3B49, 0x523A},
+ {0x3B4A, 0x53F8},
+ {0x3B4B, 0x53F2},
+ {0x3B4C, 0x55E3},
+ {0x3B4D, 0x56DB},
+ {0x3B4E, 0x58EB},
+ {0x3B4F, 0x59CB},
+ {0x3B50, 0x59C9},
+ {0x3B51, 0x59FF},
+ {0x3B52, 0x5B50},
+ {0x3B53, 0x5C4D},
+ {0x3B54, 0x5E02},
+ {0x3B55, 0x5E2B},
+ {0x3B56, 0x5FD7},
+ {0x3B57, 0x601D},
+ {0x3B58, 0x6307},
+ {0x3B59, 0x652F},
+ {0x3B5A, 0x5B5C},
+ {0x3B5B, 0x65AF},
+ {0x3B5C, 0x65BD},
+ {0x3B5D, 0x65E8},
+ {0x3B5E, 0x679D},
+ {0x3B5F, 0x6B62},
+ {0x3B60, 0x6B7B},
+ {0x3B61, 0x6C0F},
+ {0x3B62, 0x7345},
+ {0x3B63, 0x7949},
+ {0x3B64, 0x79C1},
+ {0x3B65, 0x7CF8},
+ {0x3B66, 0x7D19},
+ {0x3B67, 0x7D2B},
+ {0x3B68, 0x80A2},
+ {0x3B69, 0x8102},
+ {0x3B6A, 0x81F3},
+ {0x3B6B, 0x8996},
+ {0x3B6C, 0x8A5E},
+ {0x3B6D, 0x8A69},
+ {0x3B6E, 0x8A66},
+ {0x3B6F, 0x8A8C},
+ {0x3B70, 0x8AEE},
+ {0x3B71, 0x8CC7},
+ {0x3B72, 0x8CDC},
+ {0x3B73, 0x96CC},
+ {0x3B74, 0x98FC},
+ {0x3B75, 0x6B6F},
+ {0x3B76, 0x4E8B},
+ {0x3B77, 0x4F3C},
+ {0x3B78, 0x4F8D},
+ {0x3B79, 0x5150},
+ {0x3B7A, 0x5B57},
+ {0x3B7B, 0x5BFA},
+ {0x3B7C, 0x6148},
+ {0x3B7D, 0x6301},
+ {0x3B7E, 0x6642},
+ {0x3C21, 0x6B21},
+ {0x3C22, 0x6ECB},
+ {0x3C23, 0x6CBB},
+ {0x3C24, 0x723E},
+ {0x3C25, 0x74BD},
+ {0x3C26, 0x75D4},
+ {0x3C27, 0x78C1},
+ {0x3C28, 0x793A},
+ {0x3C29, 0x800C},
+ {0x3C2A, 0x8033},
+ {0x3C2B, 0x81EA},
+ {0x3C2C, 0x8494},
+ {0x3C2D, 0x8F9E},
+ {0x3C2E, 0x6C50},
+ {0x3C2F, 0x9E7F},
+ {0x3C30, 0x5F0F},
+ {0x3C31, 0x8B58},
+ {0x3C32, 0x9D2B},
+ {0x3C33, 0x7AFA},
+ {0x3C34, 0x8EF8},
+ {0x3C35, 0x5B8D},
+ {0x3C36, 0x96EB},
+ {0x3C37, 0x4E03},
+ {0x3C38, 0x53F1},
+ {0x3C39, 0x57F7},
+ {0x3C3A, 0x5931},
+ {0x3C3B, 0x5AC9},
+ {0x3C3C, 0x5BA4},
+ {0x3C3D, 0x6089},
+ {0x3C3E, 0x6E7F},
+ {0x3C3F, 0x6F06},
+ {0x3C40, 0x75BE},
+ {0x3C41, 0x8CEA},
+ {0x3C42, 0x5B9F},
+ {0x3C43, 0x8500},
+ {0x3C44, 0x7BE0},
+ {0x3C45, 0x5072},
+ {0x3C46, 0x67F4},
+ {0x3C47, 0x829D},
+ {0x3C48, 0x5C61},
+ {0x3C49, 0x854A},
+ {0x3C4A, 0x7E1E},
+ {0x3C4B, 0x820E},
+ {0x3C4C, 0x5199},
+ {0x3C4D, 0x5C04},
+ {0x3C4E, 0x6368},
+ {0x3C4F, 0x8D66},
+ {0x3C50, 0x659C},
+ {0x3C51, 0x716E},
+ {0x3C52, 0x793E},
+ {0x3C53, 0x7D17},
+ {0x3C54, 0x8005},
+ {0x3C55, 0x8B1D},
+ {0x3C56, 0x8ECA},
+ {0x3C57, 0x906E},
+ {0x3C58, 0x86C7},
+ {0x3C59, 0x90AA},
+ {0x3C5A, 0x501F},
+ {0x3C5B, 0x52FA},
+ {0x3C5C, 0x5C3A},
+ {0x3C5D, 0x6753},
+ {0x3C5E, 0x707C},
+ {0x3C5F, 0x7235},
+ {0x3C60, 0x914C},
+ {0x3C61, 0x91C8},
+ {0x3C62, 0x932B},
+ {0x3C63, 0x82E5},
+ {0x3C64, 0x5BC2},
+ {0x3C65, 0x5F31},
+ {0x3C66, 0x60F9},
+ {0x3C67, 0x4E3B},
+ {0x3C68, 0x53D6},
+ {0x3C69, 0x5B88},
+ {0x3C6A, 0x624B},
+ {0x3C6B, 0x6731},
+ {0x3C6C, 0x6B8A},
+ {0x3C6D, 0x72E9},
+ {0x3C6E, 0x73E0},
+ {0x3C6F, 0x7A2E},
+ {0x3C70, 0x816B},
+ {0x3C71, 0x8DA3},
+ {0x3C72, 0x9152},
+ {0x3C73, 0x9996},
+ {0x3C74, 0x5112},
+ {0x3C75, 0x53D7},
+ {0x3C76, 0x546A},
+ {0x3C77, 0x5BFF},
+ {0x3C78, 0x6388},
+ {0x3C79, 0x6A39},
+ {0x3C7A, 0x7DAC},
+ {0x3C7B, 0x9700},
+ {0x3C7C, 0x56DA},
+ {0x3C7D, 0x53CE},
+ {0x3C7E, 0x5468},
+ {0x3D21, 0x5B97},
+ {0x3D22, 0x5C31},
+ {0x3D23, 0x5DDE},
+ {0x3D24, 0x4FEE},
+ {0x3D25, 0x6101},
+ {0x3D26, 0x62FE},
+ {0x3D27, 0x6D32},
+ {0x3D28, 0x79C0},
+ {0x3D29, 0x79CB},
+ {0x3D2A, 0x7D42},
+ {0x3D2B, 0x7E4D},
+ {0x3D2C, 0x7FD2},
+ {0x3D2D, 0x81ED},
+ {0x3D2E, 0x821F},
+ {0x3D2F, 0x8490},
+ {0x3D30, 0x8846},
+ {0x3D31, 0x8972},
+ {0x3D32, 0x8B90},
+ {0x3D33, 0x8E74},
+ {0x3D34, 0x8F2F},
+ {0x3D35, 0x9031},
+ {0x3D36, 0x914B},
+ {0x3D37, 0x916C},
+ {0x3D38, 0x96C6},
+ {0x3D39, 0x919C},
+ {0x3D3A, 0x4EC0},
+ {0x3D3B, 0x4F4F},
+ {0x3D3C, 0x5145},
+ {0x3D3D, 0x5341},
+ {0x3D3E, 0x5F93},
+ {0x3D3F, 0x620E},
+ {0x3D40, 0x67D4},
+ {0x3D41, 0x6C41},
+ {0x3D42, 0x6E0B},
+ {0x3D43, 0x7363},
+ {0x3D44, 0x7E26},
+ {0x3D45, 0x91CD},
+ {0x3D46, 0x9283},
+ {0x3D47, 0x53D4},
+ {0x3D48, 0x5919},
+ {0x3D49, 0x5BBF},
+ {0x3D4A, 0x6DD1},
+ {0x3D4B, 0x795D},
+ {0x3D4C, 0x7E2E},
+ {0x3D4D, 0x7C9B},
+ {0x3D4E, 0x587E},
+ {0x3D4F, 0x719F},
+ {0x3D50, 0x51FA},
+ {0x3D51, 0x8853},
+ {0x3D52, 0x8FF0},
+ {0x3D53, 0x4FCA},
+ {0x3D54, 0x5CFB},
+ {0x3D55, 0x6625},
+ {0x3D56, 0x77AC},
+ {0x3D57, 0x7AE3},
+ {0x3D58, 0x821C},
+ {0x3D59, 0x99FF},
+ {0x3D5A, 0x51C6},
+ {0x3D5B, 0x5FAA},
+ {0x3D5C, 0x65EC},
+ {0x3D5D, 0x696F},
+ {0x3D5E, 0x6B89},
+ {0x3D5F, 0x6DF3},
+ {0x3D60, 0x6E96},
+ {0x3D61, 0x6F64},
+ {0x3D62, 0x76FE},
+ {0x3D63, 0x7D14},
+ {0x3D64, 0x5DE1},
+ {0x3D65, 0x9075},
+ {0x3D66, 0x9187},
+ {0x3D67, 0x9806},
+ {0x3D68, 0x51E6},
+ {0x3D69, 0x521D},
+ {0x3D6A, 0x6240},
+ {0x3D6B, 0x6691},
+ {0x3D6C, 0x66D9},
+ {0x3D6D, 0x6E1A},
+ {0x3D6E, 0x5EB6},
+ {0x3D6F, 0x7DD2},
+ {0x3D70, 0x7F72},
+ {0x3D71, 0x66F8},
+ {0x3D72, 0x85AF},
+ {0x3D73, 0x85F7},
+ {0x3D74, 0x8AF8},
+ {0x3D75, 0x52A9},
+ {0x3D76, 0x53D9},
+ {0x3D77, 0x5973},
+ {0x3D78, 0x5E8F},
+ {0x3D79, 0x5F90},
+ {0x3D7A, 0x6055},
+ {0x3D7B, 0x92E4},
+ {0x3D7C, 0x9664},
+ {0x3D7D, 0x50B7},
+ {0x3D7E, 0x511F},
+ {0x3E21, 0x52DD},
+ {0x3E22, 0x5320},
+ {0x3E23, 0x5347},
+ {0x3E24, 0x53EC},
+ {0x3E25, 0x54E8},
+ {0x3E26, 0x5546},
+ {0x3E27, 0x5531},
+ {0x3E28, 0x5617},
+ {0x3E29, 0x5968},
+ {0x3E2A, 0x59BE},
+ {0x3E2B, 0x5A3C},
+ {0x3E2C, 0x5BB5},
+ {0x3E2D, 0x5C06},
+ {0x3E2E, 0x5C0F},
+ {0x3E2F, 0x5C11},
+ {0x3E30, 0x5C1A},
+ {0x3E31, 0x5E84},
+ {0x3E32, 0x5E8A},
+ {0x3E33, 0x5EE0},
+ {0x3E34, 0x5F70},
+ {0x3E35, 0x627F},
+ {0x3E36, 0x6284},
+ {0x3E37, 0x62DB},
+ {0x3E38, 0x638C},
+ {0x3E39, 0x6377},
+ {0x3E3A, 0x6607},
+ {0x3E3B, 0x660C},
+ {0x3E3C, 0x662D},
+ {0x3E3D, 0x6676},
+ {0x3E3E, 0x677E},
+ {0x3E3F, 0x68A2},
+ {0x3E40, 0x6A1F},
+ {0x3E41, 0x6A35},
+ {0x3E42, 0x6CBC},
+ {0x3E43, 0x6D88},
+ {0x3E44, 0x6E09},
+ {0x3E45, 0x6E58},
+ {0x3E46, 0x713C},
+ {0x3E47, 0x7126},
+ {0x3E48, 0x7167},
+ {0x3E49, 0x75C7},
+ {0x3E4A, 0x7701},
+ {0x3E4B, 0x785D},
+ {0x3E4C, 0x7901},
+ {0x3E4D, 0x7965},
+ {0x3E4E, 0x79F0},
+ {0x3E4F, 0x7AE0},
+ {0x3E50, 0x7B11},
+ {0x3E51, 0x7CA7},
+ {0x3E52, 0x7D39},
+ {0x3E53, 0x8096},
+ {0x3E54, 0x83D6},
+ {0x3E55, 0x848B},
+ {0x3E56, 0x8549},
+ {0x3E57, 0x885D},
+ {0x3E58, 0x88F3},
+ {0x3E59, 0x8A1F},
+ {0x3E5A, 0x8A3C},
+ {0x3E5B, 0x8A54},
+ {0x3E5C, 0x8A73},
+ {0x3E5D, 0x8C61},
+ {0x3E5E, 0x8CDE},
+ {0x3E5F, 0x91A4},
+ {0x3E60, 0x9266},
+ {0x3E61, 0x937E},
+ {0x3E62, 0x9418},
+ {0x3E63, 0x969C},
+ {0x3E64, 0x9798},
+ {0x3E65, 0x4E0A},
+ {0x3E66, 0x4E08},
+ {0x3E67, 0x4E1E},
+ {0x3E68, 0x4E57},
+ {0x3E69, 0x5197},
+ {0x3E6A, 0x5270},
+ {0x3E6B, 0x57CE},
+ {0x3E6C, 0x5834},
+ {0x3E6D, 0x58CC},
+ {0x3E6E, 0x5B22},
+ {0x3E6F, 0x5E38},
+ {0x3E70, 0x60C5},
+ {0x3E71, 0x64FE},
+ {0x3E72, 0x6761},
+ {0x3E73, 0x6756},
+ {0x3E74, 0x6D44},
+ {0x3E75, 0x72B6},
+ {0x3E76, 0x7573},
+ {0x3E77, 0x7A63},
+ {0x3E78, 0x84B8},
+ {0x3E79, 0x8B72},
+ {0x3E7A, 0x91B8},
+ {0x3E7B, 0x9320},
+ {0x3E7C, 0x5631},
+ {0x3E7D, 0x57F4},
+ {0x3E7E, 0x98FE},
+ {0x3F21, 0x62ED},
+ {0x3F22, 0x690D},
+ {0x3F23, 0x6B96},
+ {0x3F24, 0x71ED},
+ {0x3F25, 0x7E54},
+ {0x3F26, 0x8077},
+ {0x3F27, 0x8272},
+ {0x3F28, 0x89E6},
+ {0x3F29, 0x98DF},
+ {0x3F2A, 0x8755},
+ {0x3F2B, 0x8FB1},
+ {0x3F2C, 0x5C3B},
+ {0x3F2D, 0x4F38},
+ {0x3F2E, 0x4FE1},
+ {0x3F2F, 0x4FB5},
+ {0x3F30, 0x5507},
+ {0x3F31, 0x5A20},
+ {0x3F32, 0x5BDD},
+ {0x3F33, 0x5BE9},
+ {0x3F34, 0x5FC3},
+ {0x3F35, 0x614E},
+ {0x3F36, 0x632F},
+ {0x3F37, 0x65B0},
+ {0x3F38, 0x664B},
+ {0x3F39, 0x68EE},
+ {0x3F3A, 0x699B},
+ {0x3F3B, 0x6D78},
+ {0x3F3C, 0x6DF1},
+ {0x3F3D, 0x7533},
+ {0x3F3E, 0x75B9},
+ {0x3F3F, 0x771F},
+ {0x3F40, 0x795E},
+ {0x3F41, 0x79E6},
+ {0x3F42, 0x7D33},
+ {0x3F43, 0x81E3},
+ {0x3F44, 0x82AF},
+ {0x3F45, 0x85AA},
+ {0x3F46, 0x89AA},
+ {0x3F47, 0x8A3A},
+ {0x3F48, 0x8EAB},
+ {0x3F49, 0x8F9B},
+ {0x3F4A, 0x9032},
+ {0x3F4B, 0x91DD},
+ {0x3F4C, 0x9707},
+ {0x3F4D, 0x4EBA},
+ {0x3F4E, 0x4EC1},
+ {0x3F4F, 0x5203},
+ {0x3F50, 0x5875},
+ {0x3F51, 0x58EC},
+ {0x3F52, 0x5C0B},
+ {0x3F53, 0x751A},
+ {0x3F54, 0x5C3D},
+ {0x3F55, 0x814E},
+ {0x3F56, 0x8A0A},
+ {0x3F57, 0x8FC5},
+ {0x3F58, 0x9663},
+ {0x3F59, 0x976D},
+ {0x3F5A, 0x7B25},
+ {0x3F5B, 0x8ACF},
+ {0x3F5C, 0x9808},
+ {0x3F5D, 0x9162},
+ {0x3F5E, 0x56F3},
+ {0x3F5F, 0x53A8},
+ {0x3F60, 0x9017},
+ {0x3F61, 0x5439},
+ {0x3F62, 0x5782},
+ {0x3F63, 0x5E25},
+ {0x3F64, 0x63A8},
+ {0x3F65, 0x6C34},
+ {0x3F66, 0x708A},
+ {0x3F67, 0x7761},
+ {0x3F68, 0x7C8B},
+ {0x3F69, 0x7FE0},
+ {0x3F6A, 0x8870},
+ {0x3F6B, 0x9042},
+ {0x3F6C, 0x9154},
+ {0x3F6D, 0x9310},
+ {0x3F6E, 0x9318},
+ {0x3F6F, 0x968F},
+ {0x3F70, 0x745E},
+ {0x3F71, 0x9AC4},
+ {0x3F72, 0x5D07},
+ {0x3F73, 0x5D69},
+ {0x3F74, 0x6570},
+ {0x3F75, 0x67A2},
+ {0x3F76, 0x8DA8},
+ {0x3F77, 0x96DB},
+ {0x3F78, 0x636E},
+ {0x3F79, 0x6749},
+ {0x3F7A, 0x6919},
+ {0x3F7B, 0x83C5},
+ {0x3F7C, 0x9817},
+ {0x3F7D, 0x96C0},
+ {0x3F7E, 0x88FE},
+ {0x4021, 0x6F84},
+ {0x4022, 0x647A},
+ {0x4023, 0x5BF8},
+ {0x4024, 0x4E16},
+ {0x4025, 0x702C},
+ {0x4026, 0x755D},
+ {0x4027, 0x662F},
+ {0x4028, 0x51C4},
+ {0x4029, 0x5236},
+ {0x402A, 0x52E2},
+ {0x402B, 0x59D3},
+ {0x402C, 0x5F81},
+ {0x402D, 0x6027},
+ {0x402E, 0x6210},
+ {0x402F, 0x653F},
+ {0x4030, 0x6574},
+ {0x4031, 0x661F},
+ {0x4032, 0x6674},
+ {0x4033, 0x68F2},
+ {0x4034, 0x6816},
+ {0x4035, 0x6B63},
+ {0x4036, 0x6E05},
+ {0x4037, 0x7272},
+ {0x4038, 0x751F},
+ {0x4039, 0x76DB},
+ {0x403A, 0x7CBE},
+ {0x403B, 0x8056},
+ {0x403C, 0x58F0},
+ {0x403D, 0x88FD},
+ {0x403E, 0x897F},
+ {0x403F, 0x8AA0},
+ {0x4040, 0x8A93},
+ {0x4041, 0x8ACB},
+ {0x4042, 0x901D},
+ {0x4043, 0x9192},
+ {0x4044, 0x9752},
+ {0x4045, 0x9759},
+ {0x4046, 0x6589},
+ {0x4047, 0x7A0E},
+ {0x4048, 0x8106},
+ {0x4049, 0x96BB},
+ {0x404A, 0x5E2D},
+ {0x404B, 0x60DC},
+ {0x404C, 0x621A},
+ {0x404D, 0x65A5},
+ {0x404E, 0x6614},
+ {0x404F, 0x6790},
+ {0x4050, 0x77F3},
+ {0x4051, 0x7A4D},
+ {0x4052, 0x7C4D},
+ {0x4053, 0x7E3E},
+ {0x4054, 0x810A},
+ {0x4055, 0x8CAC},
+ {0x4056, 0x8D64},
+ {0x4057, 0x8DE1},
+ {0x4058, 0x8E5F},
+ {0x4059, 0x78A9},
+ {0x405A, 0x5207},
+ {0x405B, 0x62D9},
+ {0x405C, 0x63A5},
+ {0x405D, 0x6442},
+ {0x405E, 0x6298},
+ {0x405F, 0x8A2D},
+ {0x4060, 0x7A83},
+ {0x4061, 0x7BC0},
+ {0x4062, 0x8AAC},
+ {0x4063, 0x96EA},
+ {0x4064, 0x7D76},
+ {0x4065, 0x820C},
+ {0x4066, 0x8749},
+ {0x4067, 0x4ED9},
+ {0x4068, 0x5148},
+ {0x4069, 0x5343},
+ {0x406A, 0x5360},
+ {0x406B, 0x5BA3},
+ {0x406C, 0x5C02},
+ {0x406D, 0x5C16},
+ {0x406E, 0x5DDD},
+ {0x406F, 0x6226},
+ {0x4070, 0x6247},
+ {0x4071, 0x64B0},
+ {0x4072, 0x6813},
+ {0x4073, 0x6834},
+ {0x4074, 0x6CC9},
+ {0x4075, 0x6D45},
+ {0x4076, 0x6D17},
+ {0x4077, 0x67D3},
+ {0x4078, 0x6F5C},
+ {0x4079, 0x714E},
+ {0x407A, 0x717D},
+ {0x407B, 0x65CB},
+ {0x407C, 0x7A7F},
+ {0x407D, 0x7BAD},
+ {0x407E, 0x7DDA},
+ {0x4121, 0x7E4A},
+ {0x4122, 0x7FA8},
+ {0x4123, 0x817A},
+ {0x4124, 0x821B},
+ {0x4125, 0x8239},
+ {0x4126, 0x85A6},
+ {0x4127, 0x8A6E},
+ {0x4128, 0x8CCE},
+ {0x4129, 0x8DF5},
+ {0x412A, 0x9078},
+ {0x412B, 0x9077},
+ {0x412C, 0x92AD},
+ {0x412D, 0x9291},
+ {0x412E, 0x9583},
+ {0x412F, 0x9BAE},
+ {0x4130, 0x524D},
+ {0x4131, 0x5584},
+ {0x4132, 0x6F38},
+ {0x4133, 0x7136},
+ {0x4134, 0x5168},
+ {0x4135, 0x7985},
+ {0x4136, 0x7E55},
+ {0x4137, 0x81B3},
+ {0x4138, 0x7CCE},
+ {0x4139, 0x564C},
+ {0x413A, 0x5851},
+ {0x413B, 0x5CA8},
+ {0x413C, 0x63AA},
+ {0x413D, 0x66FE},
+ {0x413E, 0x66FD},
+ {0x413F, 0x695A},
+ {0x4140, 0x72D9},
+ {0x4141, 0x758F},
+ {0x4142, 0x758E},
+ {0x4143, 0x790E},
+ {0x4144, 0x7956},
+ {0x4145, 0x79DF},
+ {0x4146, 0x7C97},
+ {0x4147, 0x7D20},
+ {0x4148, 0x7D44},
+ {0x4149, 0x8607},
+ {0x414A, 0x8A34},
+ {0x414B, 0x963B},
+ {0x414C, 0x9061},
+ {0x414D, 0x9F20},
+ {0x414E, 0x50E7},
+ {0x414F, 0x5275},
+ {0x4150, 0x53CC},
+ {0x4151, 0x53E2},
+ {0x4152, 0x5009},
+ {0x4153, 0x55AA},
+ {0x4154, 0x58EE},
+ {0x4155, 0x594F},
+ {0x4156, 0x723D},
+ {0x4157, 0x5B8B},
+ {0x4158, 0x5C64},
+ {0x4159, 0x531D},
+ {0x415A, 0x60E3},
+ {0x415B, 0x60F3},
+ {0x415C, 0x635C},
+ {0x415D, 0x6383},
+ {0x415E, 0x633F},
+ {0x415F, 0x63BB},
+ {0x4160, 0x64CD},
+ {0x4161, 0x65E9},
+ {0x4162, 0x66F9},
+ {0x4163, 0x5DE3},
+ {0x4164, 0x69CD},
+ {0x4165, 0x69FD},
+ {0x4166, 0x6F15},
+ {0x4167, 0x71E5},
+ {0x4168, 0x4E89},
+ {0x4169, 0x75E9},
+ {0x416A, 0x76F8},
+ {0x416B, 0x7A93},
+ {0x416C, 0x7CDF},
+ {0x416D, 0x7DCF},
+ {0x416E, 0x7D9C},
+ {0x416F, 0x8061},
+ {0x4170, 0x8349},
+ {0x4171, 0x8358},
+ {0x4172, 0x846C},
+ {0x4173, 0x84BC},
+ {0x4174, 0x85FB},
+ {0x4175, 0x88C5},
+ {0x4176, 0x8D70},
+ {0x4177, 0x9001},
+ {0x4178, 0x906D},
+ {0x4179, 0x9397},
+ {0x417A, 0x971C},
+ {0x417B, 0x9A12},
+ {0x417C, 0x50CF},
+ {0x417D, 0x5897},
+ {0x417E, 0x618E},
+ {0x4221, 0x81D3},
+ {0x4222, 0x8535},
+ {0x4223, 0x8D08},
+ {0x4224, 0x9020},
+ {0x4225, 0x4FC3},
+ {0x4226, 0x5074},
+ {0x4227, 0x5247},
+ {0x4228, 0x5373},
+ {0x4229, 0x606F},
+ {0x422A, 0x6349},
+ {0x422B, 0x675F},
+ {0x422C, 0x6E2C},
+ {0x422D, 0x8DB3},
+ {0x422E, 0x901F},
+ {0x422F, 0x4FD7},
+ {0x4230, 0x5C5E},
+ {0x4231, 0x8CCA},
+ {0x4232, 0x65CF},
+ {0x4233, 0x7D9A},
+ {0x4234, 0x5352},
+ {0x4235, 0x8896},
+ {0x4236, 0x5176},
+ {0x4237, 0x63C3},
+ {0x4238, 0x5B58},
+ {0x4239, 0x5B6B},
+ {0x423A, 0x5C0A},
+ {0x423B, 0x640D},
+ {0x423C, 0x6751},
+ {0x423D, 0x905C},
+ {0x423E, 0x4ED6},
+ {0x423F, 0x591A},
+ {0x4240, 0x592A},
+ {0x4241, 0x6C70},
+ {0x4242, 0x8A51},
+ {0x4243, 0x553E},
+ {0x4244, 0x5815},
+ {0x4245, 0x59A5},
+ {0x4246, 0x60F0},
+ {0x4247, 0x6253},
+ {0x4248, 0x67C1},
+ {0x4249, 0x8235},
+ {0x424A, 0x6955},
+ {0x424B, 0x9640},
+ {0x424C, 0x99C4},
+ {0x424D, 0x9A28},
+ {0x424E, 0x4F53},
+ {0x424F, 0x5806},
+ {0x4250, 0x5BFE},
+ {0x4251, 0x8010},
+ {0x4252, 0x5CB1},
+ {0x4253, 0x5E2F},
+ {0x4254, 0x5F85},
+ {0x4255, 0x6020},
+ {0x4256, 0x614B},
+ {0x4257, 0x6234},
+ {0x4258, 0x66FF},
+ {0x4259, 0x6CF0},
+ {0x425A, 0x6EDE},
+ {0x425B, 0x80CE},
+ {0x425C, 0x817F},
+ {0x425D, 0x82D4},
+ {0x425E, 0x888B},
+ {0x425F, 0x8CB8},
+ {0x4260, 0x9000},
+ {0x4261, 0x902E},
+ {0x4262, 0x968A},
+ {0x4263, 0x9EDB},
+ {0x4264, 0x9BDB},
+ {0x4265, 0x4EE3},
+ {0x4266, 0x53F0},
+ {0x4267, 0x5927},
+ {0x4268, 0x7B2C},
+ {0x4269, 0x918D},
+ {0x426A, 0x984C},
+ {0x426B, 0x9DF9},
+ {0x426C, 0x6EDD},
+ {0x426D, 0x7027},
+ {0x426E, 0x5353},
+ {0x426F, 0x5544},
+ {0x4270, 0x5B85},
+ {0x4271, 0x6258},
+ {0x4272, 0x629E},
+ {0x4273, 0x62D3},
+ {0x4274, 0x6CA2},
+ {0x4275, 0x6FEF},
+ {0x4276, 0x7422},
+ {0x4277, 0x8A17},
+ {0x4278, 0x9438},
+ {0x4279, 0x6FC1},
+ {0x427A, 0x8AFE},
+ {0x427B, 0x8338},
+ {0x427C, 0x51E7},
+ {0x427D, 0x86F8},
+ {0x427E, 0x53EA},
+ {0x4321, 0x53E9},
+ {0x4322, 0x4F46},
+ {0x4323, 0x9054},
+ {0x4324, 0x8FB0},
+ {0x4325, 0x596A},
+ {0x4326, 0x8131},
+ {0x4327, 0x5DFD},
+ {0x4328, 0x7AEA},
+ {0x4329, 0x8FBF},
+ {0x432A, 0x68DA},
+ {0x432B, 0x8C37},
+ {0x432C, 0x72F8},
+ {0x432D, 0x9C48},
+ {0x432E, 0x6A3D},
+ {0x432F, 0x8AB0},
+ {0x4330, 0x4E39},
+ {0x4331, 0x5358},
+ {0x4332, 0x5606},
+ {0x4333, 0x5766},
+ {0x4334, 0x62C5},
+ {0x4335, 0x63A2},
+ {0x4336, 0x65E6},
+ {0x4337, 0x6B4E},
+ {0x4338, 0x6DE1},
+ {0x4339, 0x6E5B},
+ {0x433A, 0x70AD},
+ {0x433B, 0x77ED},
+ {0x433C, 0x7AEF},
+ {0x433D, 0x7BAA},
+ {0x433E, 0x7DBB},
+ {0x433F, 0x803D},
+ {0x4340, 0x80C6},
+ {0x4341, 0x86CB},
+ {0x4342, 0x8A95},
+ {0x4343, 0x935B},
+ {0x4344, 0x56E3},
+ {0x4345, 0x58C7},
+ {0x4346, 0x5F3E},
+ {0x4347, 0x65AD},
+ {0x4348, 0x6696},
+ {0x4349, 0x6A80},
+ {0x434A, 0x6BB5},
+ {0x434B, 0x7537},
+ {0x434C, 0x8AC7},
+ {0x434D, 0x5024},
+ {0x434E, 0x77E5},
+ {0x434F, 0x5730},
+ {0x4350, 0x5F1B},
+ {0x4351, 0x6065},
+ {0x4352, 0x667A},
+ {0x4353, 0x6C60},
+ {0x4354, 0x75F4},
+ {0x4355, 0x7A1A},
+ {0x4356, 0x7F6E},
+ {0x4357, 0x81F4},
+ {0x4358, 0x8718},
+ {0x4359, 0x9045},
+ {0x435A, 0x99B3},
+ {0x435B, 0x7BC9},
+ {0x435C, 0x755C},
+ {0x435D, 0x7AF9},
+ {0x435E, 0x7B51},
+ {0x435F, 0x84C4},
+ {0x4360, 0x9010},
+ {0x4361, 0x79E9},
+ {0x4362, 0x7A92},
+ {0x4363, 0x8336},
+ {0x4364, 0x5AE1},
+ {0x4365, 0x7740},
+ {0x4366, 0x4E2D},
+ {0x4367, 0x4EF2},
+ {0x4368, 0x5B99},
+ {0x4369, 0x5FE0},
+ {0x436A, 0x62BD},
+ {0x436B, 0x663C},
+ {0x436C, 0x67F1},
+ {0x436D, 0x6CE8},
+ {0x436E, 0x866B},
+ {0x436F, 0x8877},
+ {0x4370, 0x8A3B},
+ {0x4371, 0x914E},
+ {0x4372, 0x92F3},
+ {0x4373, 0x99D0},
+ {0x4374, 0x6A17},
+ {0x4375, 0x7026},
+ {0x4376, 0x732A},
+ {0x4377, 0x82E7},
+ {0x4378, 0x8457},
+ {0x4379, 0x8CAF},
+ {0x437A, 0x4E01},
+ {0x437B, 0x5146},
+ {0x437C, 0x51CB},
+ {0x437D, 0x558B},
+ {0x437E, 0x5BF5},
+ {0x4421, 0x5E16},
+ {0x4422, 0x5E33},
+ {0x4423, 0x5E81},
+ {0x4424, 0x5F14},
+ {0x4425, 0x5F35},
+ {0x4426, 0x5F6B},
+ {0x4427, 0x5FB4},
+ {0x4428, 0x61F2},
+ {0x4429, 0x6311},
+ {0x442A, 0x66A2},
+ {0x442B, 0x671D},
+ {0x442C, 0x6F6E},
+ {0x442D, 0x7252},
+ {0x442E, 0x753A},
+ {0x442F, 0x773A},
+ {0x4430, 0x8074},
+ {0x4431, 0x8139},
+ {0x4432, 0x8178},
+ {0x4433, 0x8776},
+ {0x4434, 0x8ABF},
+ {0x4435, 0x8ADC},
+ {0x4436, 0x8D85},
+ {0x4437, 0x8DF3},
+ {0x4438, 0x929A},
+ {0x4439, 0x9577},
+ {0x443A, 0x9802},
+ {0x443B, 0x9CE5},
+ {0x443C, 0x52C5},
+ {0x443D, 0x6357},
+ {0x443E, 0x76F4},
+ {0x443F, 0x6715},
+ {0x4440, 0x6C88},
+ {0x4441, 0x73CD},
+ {0x4442, 0x8CC3},
+ {0x4443, 0x93AE},
+ {0x4444, 0x9673},
+ {0x4445, 0x6D25},
+ {0x4446, 0x589C},
+ {0x4447, 0x690E},
+ {0x4448, 0x69CC},
+ {0x4449, 0x8FFD},
+ {0x444A, 0x939A},
+ {0x444B, 0x75DB},
+ {0x444C, 0x901A},
+ {0x444D, 0x585A},
+ {0x444E, 0x6802},
+ {0x444F, 0x63B4},
+ {0x4450, 0x69FB},
+ {0x4451, 0x4F43},
+ {0x4452, 0x6F2C},
+ {0x4453, 0x67D8},
+ {0x4454, 0x8FBB},
+ {0x4455, 0x8526},
+ {0x4456, 0x7DB4},
+ {0x4457, 0x9354},
+ {0x4458, 0x693F},
+ {0x4459, 0x6F70},
+ {0x445A, 0x576A},
+ {0x445B, 0x58F7},
+ {0x445C, 0x5B2C},
+ {0x445D, 0x7D2C},
+ {0x445E, 0x722A},
+ {0x445F, 0x540A},
+ {0x4460, 0x91E3},
+ {0x4461, 0x9DB4},
+ {0x4462, 0x4EAD},
+ {0x4463, 0x4F4E},
+ {0x4464, 0x505C},
+ {0x4465, 0x5075},
+ {0x4466, 0x5243},
+ {0x4467, 0x8C9E},
+ {0x4468, 0x5448},
+ {0x4469, 0x5824},
+ {0x446A, 0x5B9A},
+ {0x446B, 0x5E1D},
+ {0x446C, 0x5E95},
+ {0x446D, 0x5EAD},
+ {0x446E, 0x5EF7},
+ {0x446F, 0x5F1F},
+ {0x4470, 0x608C},
+ {0x4471, 0x62B5},
+ {0x4472, 0x633A},
+ {0x4473, 0x63D0},
+ {0x4474, 0x68AF},
+ {0x4475, 0x6C40},
+ {0x4476, 0x7887},
+ {0x4477, 0x798E},
+ {0x4478, 0x7A0B},
+ {0x4479, 0x7DE0},
+ {0x447A, 0x8247},
+ {0x447B, 0x8A02},
+ {0x447C, 0x8AE6},
+ {0x447D, 0x8E44},
+ {0x447E, 0x9013},
+ {0x4521, 0x90B8},
+ {0x4522, 0x912D},
+ {0x4523, 0x91D8},
+ {0x4524, 0x9F0E},
+ {0x4525, 0x6CE5},
+ {0x4526, 0x6458},
+ {0x4527, 0x64E2},
+ {0x4528, 0x6575},
+ {0x4529, 0x6EF4},
+ {0x452A, 0x7684},
+ {0x452B, 0x7B1B},
+ {0x452C, 0x9069},
+ {0x452D, 0x93D1},
+ {0x452E, 0x6EBA},
+ {0x452F, 0x54F2},
+ {0x4530, 0x5FB9},
+ {0x4531, 0x64A4},
+ {0x4532, 0x8F4D},
+ {0x4533, 0x8FED},
+ {0x4534, 0x9244},
+ {0x4535, 0x5178},
+ {0x4536, 0x586B},
+ {0x4537, 0x5929},
+ {0x4538, 0x5C55},
+ {0x4539, 0x5E97},
+ {0x453A, 0x6DFB},
+ {0x453B, 0x7E8F},
+ {0x453C, 0x751C},
+ {0x453D, 0x8CBC},
+ {0x453E, 0x8EE2},
+ {0x453F, 0x985B},
+ {0x4540, 0x70B9},
+ {0x4541, 0x4F1D},
+ {0x4542, 0x6BBF},
+ {0x4543, 0x6FB1},
+ {0x4544, 0x7530},
+ {0x4545, 0x96FB},
+ {0x4546, 0x514E},
+ {0x4547, 0x5410},
+ {0x4548, 0x5835},
+ {0x4549, 0x5857},
+ {0x454A, 0x59AC},
+ {0x454B, 0x5C60},
+ {0x454C, 0x5F92},
+ {0x454D, 0x6597},
+ {0x454E, 0x675C},
+ {0x454F, 0x6E21},
+ {0x4550, 0x767B},
+ {0x4551, 0x83DF},
+ {0x4552, 0x8CED},
+ {0x4553, 0x9014},
+ {0x4554, 0x90FD},
+ {0x4555, 0x934D},
+ {0x4556, 0x7825},
+ {0x4557, 0x783A},
+ {0x4558, 0x52AA},
+ {0x4559, 0x5EA6},
+ {0x455A, 0x571F},
+ {0x455B, 0x5974},
+ {0x455C, 0x6012},
+ {0x455D, 0x5012},
+ {0x455E, 0x515A},
+ {0x455F, 0x51AC},
+ {0x4560, 0x51CD},
+ {0x4561, 0x5200},
+ {0x4562, 0x5510},
+ {0x4563, 0x5854},
+ {0x4564, 0x5858},
+ {0x4565, 0x5957},
+ {0x4566, 0x5B95},
+ {0x4567, 0x5CF6},
+ {0x4568, 0x5D8B},
+ {0x4569, 0x60BC},
+ {0x456A, 0x6295},
+ {0x456B, 0x642D},
+ {0x456C, 0x6771},
+ {0x456D, 0x6843},
+ {0x456E, 0x68BC},
+ {0x456F, 0x68DF},
+ {0x4570, 0x76D7},
+ {0x4571, 0x6DD8},
+ {0x4572, 0x6E6F},
+ {0x4573, 0x6D9B},
+ {0x4574, 0x706F},
+ {0x4575, 0x71C8},
+ {0x4576, 0x5F53},
+ {0x4577, 0x75D8},
+ {0x4578, 0x7977},
+ {0x4579, 0x7B49},
+ {0x457A, 0x7B54},
+ {0x457B, 0x7B52},
+ {0x457C, 0x7CD6},
+ {0x457D, 0x7D71},
+ {0x457E, 0x5230},
+ {0x4621, 0x8463},
+ {0x4622, 0x8569},
+ {0x4623, 0x85E4},
+ {0x4624, 0x8A0E},
+ {0x4625, 0x8B04},
+ {0x4626, 0x8C46},
+ {0x4627, 0x8E0F},
+ {0x4628, 0x9003},
+ {0x4629, 0x900F},
+ {0x462A, 0x9419},
+ {0x462B, 0x9676},
+ {0x462C, 0x982D},
+ {0x462D, 0x9A30},
+ {0x462E, 0x95D8},
+ {0x462F, 0x50CD},
+ {0x4630, 0x52D5},
+ {0x4631, 0x540C},
+ {0x4632, 0x5802},
+ {0x4633, 0x5C0E},
+ {0x4634, 0x61A7},
+ {0x4635, 0x649E},
+ {0x4636, 0x6D1E},
+ {0x4637, 0x77B3},
+ {0x4638, 0x7AE5},
+ {0x4639, 0x80F4},
+ {0x463A, 0x8404},
+ {0x463B, 0x9053},
+ {0x463C, 0x9285},
+ {0x463D, 0x5CE0},
+ {0x463E, 0x9D07},
+ {0x463F, 0x533F},
+ {0x4640, 0x5F97},
+ {0x4641, 0x5FB3},
+ {0x4642, 0x6D9C},
+ {0x4643, 0x7279},
+ {0x4644, 0x7763},
+ {0x4645, 0x79BF},
+ {0x4646, 0x7BE4},
+ {0x4647, 0x6BD2},
+ {0x4648, 0x72EC},
+ {0x4649, 0x8AAD},
+ {0x464A, 0x6803},
+ {0x464B, 0x6A61},
+ {0x464C, 0x51F8},
+ {0x464D, 0x7A81},
+ {0x464E, 0x6934},
+ {0x464F, 0x5C4A},
+ {0x4650, 0x9CF6},
+ {0x4651, 0x82EB},
+ {0x4652, 0x5BC5},
+ {0x4653, 0x9149},
+ {0x4654, 0x701E},
+ {0x4655, 0x5678},
+ {0x4656, 0x5C6F},
+ {0x4657, 0x60C7},
+ {0x4658, 0x6566},
+ {0x4659, 0x6C8C},
+ {0x465A, 0x8C5A},
+ {0x465B, 0x9041},
+ {0x465C, 0x9813},
+ {0x465D, 0x5451},
+ {0x465E, 0x66C7},
+ {0x465F, 0x920D},
+ {0x4660, 0x5948},
+ {0x4661, 0x90A3},
+ {0x4662, 0x5185},
+ {0x4663, 0x4E4D},
+ {0x4664, 0x51EA},
+ {0x4665, 0x8599},
+ {0x4666, 0x8B0E},
+ {0x4667, 0x7058},
+ {0x4668, 0x637A},
+ {0x4669, 0x934B},
+ {0x466A, 0x6962},
+ {0x466B, 0x99B4},
+ {0x466C, 0x7E04},
+ {0x466D, 0x7577},
+ {0x466E, 0x5357},
+ {0x466F, 0x6960},
+ {0x4670, 0x8EDF},
+ {0x4671, 0x96E3},
+ {0x4672, 0x6C5D},
+ {0x4673, 0x4E8C},
+ {0x4674, 0x5C3C},
+ {0x4675, 0x5F10},
+ {0x4676, 0x8FE9},
+ {0x4677, 0x5302},
+ {0x4678, 0x8CD1},
+ {0x4679, 0x8089},
+ {0x467A, 0x8679},
+ {0x467B, 0x5EFF},
+ {0x467C, 0x65E5},
+ {0x467D, 0x4E73},
+ {0x467E, 0x5165},
+ {0x4721, 0x5982},
+ {0x4722, 0x5C3F},
+ {0x4723, 0x97EE},
+ {0x4724, 0x4EFB},
+ {0x4725, 0x598A},
+ {0x4726, 0x5FCD},
+ {0x4727, 0x8A8D},
+ {0x4728, 0x6FE1},
+ {0x4729, 0x79B0},
+ {0x472A, 0x7962},
+ {0x472B, 0x5BE7},
+ {0x472C, 0x8471},
+ {0x472D, 0x732B},
+ {0x472E, 0x71B1},
+ {0x472F, 0x5E74},
+ {0x4730, 0x5FF5},
+ {0x4731, 0x637B},
+ {0x4732, 0x649A},
+ {0x4733, 0x71C3},
+ {0x4734, 0x7C98},
+ {0x4735, 0x4E43},
+ {0x4736, 0x5EFC},
+ {0x4737, 0x4E4B},
+ {0x4738, 0x57DC},
+ {0x4739, 0x56A2},
+ {0x473A, 0x60A9},
+ {0x473B, 0x6FC3},
+ {0x473C, 0x7D0D},
+ {0x473D, 0x80FD},
+ {0x473E, 0x8133},
+ {0x473F, 0x81BF},
+ {0x4740, 0x8FB2},
+ {0x4741, 0x8997},
+ {0x4742, 0x86A4},
+ {0x4743, 0x5DF4},
+ {0x4744, 0x628A},
+ {0x4745, 0x64AD},
+ {0x4746, 0x8987},
+ {0x4747, 0x6777},
+ {0x4748, 0x6CE2},
+ {0x4749, 0x6D3E},
+ {0x474A, 0x7436},
+ {0x474B, 0x7834},
+ {0x474C, 0x5A46},
+ {0x474D, 0x7F75},
+ {0x474E, 0x82AD},
+ {0x474F, 0x99AC},
+ {0x4750, 0x4FF3},
+ {0x4751, 0x5EC3},
+ {0x4752, 0x62DD},
+ {0x4753, 0x6392},
+ {0x4754, 0x6557},
+ {0x4755, 0x676F},
+ {0x4756, 0x76C3},
+ {0x4757, 0x724C},
+ {0x4758, 0x80CC},
+ {0x4759, 0x80BA},
+ {0x475A, 0x8F29},
+ {0x475B, 0x914D},
+ {0x475C, 0x500D},
+ {0x475D, 0x57F9},
+ {0x475E, 0x5A92},
+ {0x475F, 0x6885},
+ {0x4760, 0x6973},
+ {0x4761, 0x7164},
+ {0x4762, 0x72FD},
+ {0x4763, 0x8CB7},
+ {0x4764, 0x58F2},
+ {0x4765, 0x8CE0},
+ {0x4766, 0x966A},
+ {0x4767, 0x9019},
+ {0x4768, 0x877F},
+ {0x4769, 0x79E4},
+ {0x476A, 0x77E7},
+ {0x476B, 0x8429},
+ {0x476C, 0x4F2F},
+ {0x476D, 0x5265},
+ {0x476E, 0x535A},
+ {0x476F, 0x62CD},
+ {0x4770, 0x67CF},
+ {0x4771, 0x6CCA},
+ {0x4772, 0x767D},
+ {0x4773, 0x7B94},
+ {0x4774, 0x7C95},
+ {0x4775, 0x8236},
+ {0x4776, 0x8584},
+ {0x4777, 0x8FEB},
+ {0x4778, 0x66DD},
+ {0x4779, 0x6F20},
+ {0x477A, 0x7206},
+ {0x477B, 0x7E1B},
+ {0x477C, 0x83AB},
+ {0x477D, 0x99C1},
+ {0x477E, 0x9EA6},
+ {0x4821, 0x51FD},
+ {0x4822, 0x7BB1},
+ {0x4823, 0x7872},
+ {0x4824, 0x7BB8},
+ {0x4825, 0x8087},
+ {0x4826, 0x7B48},
+ {0x4827, 0x6AE8},
+ {0x4828, 0x5E61},
+ {0x4829, 0x808C},
+ {0x482A, 0x7551},
+ {0x482B, 0x7560},
+ {0x482C, 0x516B},
+ {0x482D, 0x9262},
+ {0x482E, 0x6E8C},
+ {0x482F, 0x767A},
+ {0x4830, 0x9197},
+ {0x4831, 0x9AEA},
+ {0x4832, 0x4F10},
+ {0x4833, 0x7F70},
+ {0x4834, 0x629C},
+ {0x4835, 0x7B4F},
+ {0x4836, 0x95A5},
+ {0x4837, 0x9CE9},
+ {0x4838, 0x567A},
+ {0x4839, 0x5859},
+ {0x483A, 0x86E4},
+ {0x483B, 0x96BC},
+ {0x483C, 0x4F34},
+ {0x483D, 0x5224},
+ {0x483E, 0x534A},
+ {0x483F, 0x53CD},
+ {0x4840, 0x53DB},
+ {0x4841, 0x5E06},
+ {0x4842, 0x642C},
+ {0x4843, 0x6591},
+ {0x4844, 0x677F},
+ {0x4845, 0x6C3E},
+ {0x4846, 0x6C4E},
+ {0x4847, 0x7248},
+ {0x4848, 0x72AF},
+ {0x4849, 0x73ED},
+ {0x484A, 0x7554},
+ {0x484B, 0x7E41},
+ {0x484C, 0x822C},
+ {0x484D, 0x85E9},
+ {0x484E, 0x8CA9},
+ {0x484F, 0x7BC4},
+ {0x4850, 0x91C6},
+ {0x4851, 0x7169},
+ {0x4852, 0x9812},
+ {0x4853, 0x98EF},
+ {0x4854, 0x633D},
+ {0x4855, 0x6669},
+ {0x4856, 0x756A},
+ {0x4857, 0x76E4},
+ {0x4858, 0x78D0},
+ {0x4859, 0x8543},
+ {0x485A, 0x86EE},
+ {0x485B, 0x532A},
+ {0x485C, 0x5351},
+ {0x485D, 0x5426},
+ {0x485E, 0x5983},
+ {0x485F, 0x5E87},
+ {0x4860, 0x5F7C},
+ {0x4861, 0x60B2},
+ {0x4862, 0x6249},
+ {0x4863, 0x6279},
+ {0x4864, 0x62AB},
+ {0x4865, 0x6590},
+ {0x4866, 0x6BD4},
+ {0x4867, 0x6CCC},
+ {0x4868, 0x75B2},
+ {0x4869, 0x76AE},
+ {0x486A, 0x7891},
+ {0x486B, 0x79D8},
+ {0x486C, 0x7DCB},
+ {0x486D, 0x7F77},
+ {0x486E, 0x80A5},
+ {0x486F, 0x88AB},
+ {0x4870, 0x8AB9},
+ {0x4871, 0x8CBB},
+ {0x4872, 0x907F},
+ {0x4873, 0x975E},
+ {0x4874, 0x98DB},
+ {0x4875, 0x6A0B},
+ {0x4876, 0x7C38},
+ {0x4877, 0x5099},
+ {0x4878, 0x5C3E},
+ {0x4879, 0x5FAE},
+ {0x487A, 0x6787},
+ {0x487B, 0x6BD8},
+ {0x487C, 0x7435},
+ {0x487D, 0x7709},
+ {0x487E, 0x7F8E},
+ {0x4921, 0x9F3B},
+ {0x4922, 0x67CA},
+ {0x4923, 0x7A17},
+ {0x4924, 0x5339},
+ {0x4925, 0x758B},
+ {0x4926, 0x9AED},
+ {0x4927, 0x5F66},
+ {0x4928, 0x819D},
+ {0x4929, 0x83F1},
+ {0x492A, 0x8098},
+ {0x492B, 0x5F3C},
+ {0x492C, 0x5FC5},
+ {0x492D, 0x7562},
+ {0x492E, 0x7B46},
+ {0x492F, 0x903C},
+ {0x4930, 0x6867},
+ {0x4931, 0x59EB},
+ {0x4932, 0x5A9B},
+ {0x4933, 0x7D10},
+ {0x4934, 0x767E},
+ {0x4935, 0x8B2C},
+ {0x4936, 0x4FF5},
+ {0x4937, 0x5F6A},
+ {0x4938, 0x6A19},
+ {0x4939, 0x6C37},
+ {0x493A, 0x6F02},
+ {0x493B, 0x74E2},
+ {0x493C, 0x7968},
+ {0x493D, 0x8868},
+ {0x493E, 0x8A55},
+ {0x493F, 0x8C79},
+ {0x4940, 0x5EDF},
+ {0x4941, 0x63CF},
+ {0x4942, 0x75C5},
+ {0x4943, 0x79D2},
+ {0x4944, 0x82D7},
+ {0x4945, 0x9328},
+ {0x4946, 0x92F2},
+ {0x4947, 0x849C},
+ {0x4948, 0x86ED},
+ {0x4949, 0x9C2D},
+ {0x494A, 0x54C1},
+ {0x494B, 0x5F6C},
+ {0x494C, 0x658C},
+ {0x494D, 0x6D5C},
+ {0x494E, 0x7015},
+ {0x494F, 0x8CA7},
+ {0x4950, 0x8CD3},
+ {0x4951, 0x983B},
+ {0x4952, 0x654F},
+ {0x4953, 0x74F6},
+ {0x4954, 0x4E0D},
+ {0x4955, 0x4ED8},
+ {0x4956, 0x57E0},
+ {0x4957, 0x592B},
+ {0x4958, 0x5A66},
+ {0x4959, 0x5BCC},
+ {0x495A, 0x51A8},
+ {0x495B, 0x5E03},
+ {0x495C, 0x5E9C},
+ {0x495D, 0x6016},
+ {0x495E, 0x6276},
+ {0x495F, 0x6577},
+ {0x4960, 0x65A7},
+ {0x4961, 0x666E},
+ {0x4962, 0x6D6E},
+ {0x4963, 0x7236},
+ {0x4964, 0x7B26},
+ {0x4965, 0x8150},
+ {0x4966, 0x819A},
+ {0x4967, 0x8299},
+ {0x4968, 0x8B5C},
+ {0x4969, 0x8CA0},
+ {0x496A, 0x8CE6},
+ {0x496B, 0x8D74},
+ {0x496C, 0x961C},
+ {0x496D, 0x9644},
+ {0x496E, 0x4FAE},
+ {0x496F, 0x64AB},
+ {0x4970, 0x6B66},
+ {0x4971, 0x821E},
+ {0x4972, 0x8461},
+ {0x4973, 0x856A},
+ {0x4974, 0x90E8},
+ {0x4975, 0x5C01},
+ {0x4976, 0x6953},
+ {0x4977, 0x98A8},
+ {0x4978, 0x847A},
+ {0x4979, 0x8557},
+ {0x497A, 0x4F0F},
+ {0x497B, 0x526F},
+ {0x497C, 0x5FA9},
+ {0x497D, 0x5E45},
+ {0x497E, 0x670D},
+ {0x4A21, 0x798F},
+ {0x4A22, 0x8179},
+ {0x4A23, 0x8907},
+ {0x4A24, 0x8986},
+ {0x4A25, 0x6DF5},
+ {0x4A26, 0x5F17},
+ {0x4A27, 0x6255},
+ {0x4A28, 0x6CB8},
+ {0x4A29, 0x4ECF},
+ {0x4A2A, 0x7269},
+ {0x4A2B, 0x9B92},
+ {0x4A2C, 0x5206},
+ {0x4A2D, 0x543B},
+ {0x4A2E, 0x5674},
+ {0x4A2F, 0x58B3},
+ {0x4A30, 0x61A4},
+ {0x4A31, 0x626E},
+ {0x4A32, 0x711A},
+ {0x4A33, 0x596E},
+ {0x4A34, 0x7C89},
+ {0x4A35, 0x7CDE},
+ {0x4A36, 0x7D1B},
+ {0x4A37, 0x96F0},
+ {0x4A38, 0x6587},
+ {0x4A39, 0x805E},
+ {0x4A3A, 0x4E19},
+ {0x4A3B, 0x4F75},
+ {0x4A3C, 0x5175},
+ {0x4A3D, 0x5840},
+ {0x4A3E, 0x5E63},
+ {0x4A3F, 0x5E73},
+ {0x4A40, 0x5F0A},
+ {0x4A41, 0x67C4},
+ {0x4A42, 0x4E26},
+ {0x4A43, 0x853D},
+ {0x4A44, 0x9589},
+ {0x4A45, 0x965B},
+ {0x4A46, 0x7C73},
+ {0x4A47, 0x9801},
+ {0x4A48, 0x50FB},
+ {0x4A49, 0x58C1},
+ {0x4A4A, 0x7656},
+ {0x4A4B, 0x78A7},
+ {0x4A4C, 0x5225},
+ {0x4A4D, 0x77A5},
+ {0x4A4E, 0x8511},
+ {0x4A4F, 0x7B86},
+ {0x4A50, 0x504F},
+ {0x4A51, 0x5909},
+ {0x4A52, 0x7247},
+ {0x4A53, 0x7BC7},
+ {0x4A54, 0x7DE8},
+ {0x4A55, 0x8FBA},
+ {0x4A56, 0x8FD4},
+ {0x4A57, 0x904D},
+ {0x4A58, 0x4FBF},
+ {0x4A59, 0x52C9},
+ {0x4A5A, 0x5A29},
+ {0x4A5B, 0x5F01},
+ {0x4A5C, 0x97AD},
+ {0x4A5D, 0x4FDD},
+ {0x4A5E, 0x8217},
+ {0x4A5F, 0x92EA},
+ {0x4A60, 0x5703},
+ {0x4A61, 0x6355},
+ {0x4A62, 0x6B69},
+ {0x4A63, 0x752B},
+ {0x4A64, 0x88DC},
+ {0x4A65, 0x8F14},
+ {0x4A66, 0x7A42},
+ {0x4A67, 0x52DF},
+ {0x4A68, 0x5893},
+ {0x4A69, 0x6155},
+ {0x4A6A, 0x620A},
+ {0x4A6B, 0x66AE},
+ {0x4A6C, 0x6BCD},
+ {0x4A6D, 0x7C3F},
+ {0x4A6E, 0x83E9},
+ {0x4A6F, 0x5023},
+ {0x4A70, 0x4FF8},
+ {0x4A71, 0x5305},
+ {0x4A72, 0x5446},
+ {0x4A73, 0x5831},
+ {0x4A74, 0x5949},
+ {0x4A75, 0x5B9D},
+ {0x4A76, 0x5CF0},
+ {0x4A77, 0x5CEF},
+ {0x4A78, 0x5D29},
+ {0x4A79, 0x5E96},
+ {0x4A7A, 0x62B1},
+ {0x4A7B, 0x6367},
+ {0x4A7C, 0x653E},
+ {0x4A7D, 0x65B9},
+ {0x4A7E, 0x670B},
+ {0x4B21, 0x6CD5},
+ {0x4B22, 0x6CE1},
+ {0x4B23, 0x70F9},
+ {0x4B24, 0x7832},
+ {0x4B25, 0x7E2B},
+ {0x4B26, 0x80DE},
+ {0x4B27, 0x82B3},
+ {0x4B28, 0x840C},
+ {0x4B29, 0x84EC},
+ {0x4B2A, 0x8702},
+ {0x4B2B, 0x8912},
+ {0x4B2C, 0x8A2A},
+ {0x4B2D, 0x8C4A},
+ {0x4B2E, 0x90A6},
+ {0x4B2F, 0x92D2},
+ {0x4B30, 0x98FD},
+ {0x4B31, 0x9CF3},
+ {0x4B32, 0x9D6C},
+ {0x4B33, 0x4E4F},
+ {0x4B34, 0x4EA1},
+ {0x4B35, 0x508D},
+ {0x4B36, 0x5256},
+ {0x4B37, 0x574A},
+ {0x4B38, 0x59A8},
+ {0x4B39, 0x5E3D},
+ {0x4B3A, 0x5FD8},
+ {0x4B3B, 0x5FD9},
+ {0x4B3C, 0x623F},
+ {0x4B3D, 0x66B4},
+ {0x4B3E, 0x671B},
+ {0x4B3F, 0x67D0},
+ {0x4B40, 0x68D2},
+ {0x4B41, 0x5192},
+ {0x4B42, 0x7D21},
+ {0x4B43, 0x80AA},
+ {0x4B44, 0x81A8},
+ {0x4B45, 0x8B00},
+ {0x4B46, 0x8C8C},
+ {0x4B47, 0x8CBF},
+ {0x4B48, 0x927E},
+ {0x4B49, 0x9632},
+ {0x4B4A, 0x5420},
+ {0x4B4B, 0x982C},
+ {0x4B4C, 0x5317},
+ {0x4B4D, 0x50D5},
+ {0x4B4E, 0x535C},
+ {0x4B4F, 0x58A8},
+ {0x4B50, 0x64B2},
+ {0x4B51, 0x6734},
+ {0x4B52, 0x7267},
+ {0x4B53, 0x7766},
+ {0x4B54, 0x7A46},
+ {0x4B55, 0x91E6},
+ {0x4B56, 0x52C3},
+ {0x4B57, 0x6CA1},
+ {0x4B58, 0x6B86},
+ {0x4B59, 0x5800},
+ {0x4B5A, 0x5E4C},
+ {0x4B5B, 0x5954},
+ {0x4B5C, 0x672C},
+ {0x4B5D, 0x7FFB},
+ {0x4B5E, 0x51E1},
+ {0x4B5F, 0x76C6},
+ {0x4B60, 0x6469},
+ {0x4B61, 0x78E8},
+ {0x4B62, 0x9B54},
+ {0x4B63, 0x9EBB},
+ {0x4B64, 0x57CB},
+ {0x4B65, 0x59B9},
+ {0x4B66, 0x6627},
+ {0x4B67, 0x679A},
+ {0x4B68, 0x6BCE},
+ {0x4B69, 0x54E9},
+ {0x4B6A, 0x69D9},
+ {0x4B6B, 0x5E55},
+ {0x4B6C, 0x819C},
+ {0x4B6D, 0x6795},
+ {0x4B6E, 0x9BAA},
+ {0x4B6F, 0x67FE},
+ {0x4B70, 0x9C52},
+ {0x4B71, 0x685D},
+ {0x4B72, 0x4EA6},
+ {0x4B73, 0x4FE3},
+ {0x4B74, 0x53C8},
+ {0x4B75, 0x62B9},
+ {0x4B76, 0x672B},
+ {0x4B77, 0x6CAB},
+ {0x4B78, 0x8FC4},
+ {0x4B79, 0x4FAD},
+ {0x4B7A, 0x7E6D},
+ {0x4B7B, 0x9EBF},
+ {0x4B7C, 0x4E07},
+ {0x4B7D, 0x6162},
+ {0x4B7E, 0x6E80},
+ {0x4C21, 0x6F2B},
+ {0x4C22, 0x8513},
+ {0x4C23, 0x5473},
+ {0x4C24, 0x672A},
+ {0x4C25, 0x9B45},
+ {0x4C26, 0x5DF3},
+ {0x4C27, 0x7B95},
+ {0x4C28, 0x5CAC},
+ {0x4C29, 0x5BC6},
+ {0x4C2A, 0x871C},
+ {0x4C2B, 0x6E4A},
+ {0x4C2C, 0x84D1},
+ {0x4C2D, 0x7A14},
+ {0x4C2E, 0x8108},
+ {0x4C2F, 0x5999},
+ {0x4C30, 0x7C8D},
+ {0x4C31, 0x6C11},
+ {0x4C32, 0x7720},
+ {0x4C33, 0x52D9},
+ {0x4C34, 0x5922},
+ {0x4C35, 0x7121},
+ {0x4C36, 0x725F},
+ {0x4C37, 0x77DB},
+ {0x4C38, 0x9727},
+ {0x4C39, 0x9D61},
+ {0x4C3A, 0x690B},
+ {0x4C3B, 0x5A7F},
+ {0x4C3C, 0x5A18},
+ {0x4C3D, 0x51A5},
+ {0x4C3E, 0x540D},
+ {0x4C3F, 0x547D},
+ {0x4C40, 0x660E},
+ {0x4C41, 0x76DF},
+ {0x4C42, 0x8FF7},
+ {0x4C43, 0x9298},
+ {0x4C44, 0x9CF4},
+ {0x4C45, 0x59EA},
+ {0x4C46, 0x725D},
+ {0x4C47, 0x6EC5},
+ {0x4C48, 0x514D},
+ {0x4C49, 0x68C9},
+ {0x4C4A, 0x7DBF},
+ {0x4C4B, 0x7DEC},
+ {0x4C4C, 0x9762},
+ {0x4C4D, 0x9EBA},
+ {0x4C4E, 0x6478},
+ {0x4C4F, 0x6A21},
+ {0x4C50, 0x8302},
+ {0x4C51, 0x5984},
+ {0x4C52, 0x5B5F},
+ {0x4C53, 0x6BDB},
+ {0x4C54, 0x731B},
+ {0x4C55, 0x76F2},
+ {0x4C56, 0x7DB2},
+ {0x4C57, 0x8017},
+ {0x4C58, 0x8499},
+ {0x4C59, 0x5132},
+ {0x4C5A, 0x6728},
+ {0x4C5B, 0x9ED9},
+ {0x4C5C, 0x76EE},
+ {0x4C5D, 0x6762},
+ {0x4C5E, 0x52FF},
+ {0x4C5F, 0x9905},
+ {0x4C60, 0x5C24},
+ {0x4C61, 0x623B},
+ {0x4C62, 0x7C7E},
+ {0x4C63, 0x8CB0},
+ {0x4C64, 0x554F},
+ {0x4C65, 0x60B6},
+ {0x4C66, 0x7D0B},
+ {0x4C67, 0x9580},
+ {0x4C68, 0x5301},
+ {0x4C69, 0x4E5F},
+ {0x4C6A, 0x51B6},
+ {0x4C6B, 0x591C},
+ {0x4C6C, 0x723A},
+ {0x4C6D, 0x8036},
+ {0x4C6E, 0x91CE},
+ {0x4C6F, 0x5F25},
+ {0x4C70, 0x77E2},
+ {0x4C71, 0x5384},
+ {0x4C72, 0x5F79},
+ {0x4C73, 0x7D04},
+ {0x4C74, 0x85AC},
+ {0x4C75, 0x8A33},
+ {0x4C76, 0x8E8D},
+ {0x4C77, 0x9756},
+ {0x4C78, 0x67F3},
+ {0x4C79, 0x85AE},
+ {0x4C7A, 0x9453},
+ {0x4C7B, 0x6109},
+ {0x4C7C, 0x6108},
+ {0x4C7D, 0x6CB9},
+ {0x4C7E, 0x7652},
+ {0x4D21, 0x8AED},
+ {0x4D22, 0x8F38},
+ {0x4D23, 0x552F},
+ {0x4D24, 0x4F51},
+ {0x4D25, 0x512A},
+ {0x4D26, 0x52C7},
+ {0x4D27, 0x53CB},
+ {0x4D28, 0x5BA5},
+ {0x4D29, 0x5E7D},
+ {0x4D2A, 0x60A0},
+ {0x4D2B, 0x6182},
+ {0x4D2C, 0x63D6},
+ {0x4D2D, 0x6709},
+ {0x4D2E, 0x67DA},
+ {0x4D2F, 0x6E67},
+ {0x4D30, 0x6D8C},
+ {0x4D31, 0x7336},
+ {0x4D32, 0x7337},
+ {0x4D33, 0x7531},
+ {0x4D34, 0x7950},
+ {0x4D35, 0x88D5},
+ {0x4D36, 0x8A98},
+ {0x4D37, 0x904A},
+ {0x4D38, 0x9091},
+ {0x4D39, 0x90F5},
+ {0x4D3A, 0x96C4},
+ {0x4D3B, 0x878D},
+ {0x4D3C, 0x5915},
+ {0x4D3D, 0x4E88},
+ {0x4D3E, 0x4F59},
+ {0x4D3F, 0x4E0E},
+ {0x4D40, 0x8A89},
+ {0x4D41, 0x8F3F},
+ {0x4D42, 0x9810},
+ {0x4D43, 0x50AD},
+ {0x4D44, 0x5E7C},
+ {0x4D45, 0x5996},
+ {0x4D46, 0x5BB9},
+ {0x4D47, 0x5EB8},
+ {0x4D48, 0x63DA},
+ {0x4D49, 0x63FA},
+ {0x4D4A, 0x64C1},
+ {0x4D4B, 0x66DC},
+ {0x4D4C, 0x694A},
+ {0x4D4D, 0x69D8},
+ {0x4D4E, 0x6D0B},
+ {0x4D4F, 0x6EB6},
+ {0x4D50, 0x7194},
+ {0x4D51, 0x7528},
+ {0x4D52, 0x7AAF},
+ {0x4D53, 0x7F8A},
+ {0x4D54, 0x8000},
+ {0x4D55, 0x8449},
+ {0x4D56, 0x84C9},
+ {0x4D57, 0x8981},
+ {0x4D58, 0x8B21},
+ {0x4D59, 0x8E0A},
+ {0x4D5A, 0x9065},
+ {0x4D5B, 0x967D},
+ {0x4D5C, 0x990A},
+ {0x4D5D, 0x617E},
+ {0x4D5E, 0x6291},
+ {0x4D5F, 0x6B32},
+ {0x4D60, 0x6C83},
+ {0x4D61, 0x6D74},
+ {0x4D62, 0x7FCC},
+ {0x4D63, 0x7FFC},
+ {0x4D64, 0x6DC0},
+ {0x4D65, 0x7F85},
+ {0x4D66, 0x87BA},
+ {0x4D67, 0x88F8},
+ {0x4D68, 0x6765},
+ {0x4D69, 0x83B1},
+ {0x4D6A, 0x983C},
+ {0x4D6B, 0x96F7},
+ {0x4D6C, 0x6D1B},
+ {0x4D6D, 0x7D61},
+ {0x4D6E, 0x843D},
+ {0x4D6F, 0x916A},
+ {0x4D70, 0x4E71},
+ {0x4D71, 0x5375},
+ {0x4D72, 0x5D50},
+ {0x4D73, 0x6B04},
+ {0x4D74, 0x6FEB},
+ {0x4D75, 0x85CD},
+ {0x4D76, 0x862D},
+ {0x4D77, 0x89A7},
+ {0x4D78, 0x5229},
+ {0x4D79, 0x540F},
+ {0x4D7A, 0x5C65},
+ {0x4D7B, 0x674E},
+ {0x4D7C, 0x68A8},
+ {0x4D7D, 0x7406},
+ {0x4D7E, 0x7483},
+ {0x4E21, 0x75E2},
+ {0x4E22, 0x88CF},
+ {0x4E23, 0x88E1},
+ {0x4E24, 0x91CC},
+ {0x4E25, 0x96E2},
+ {0x4E26, 0x9678},
+ {0x4E27, 0x5F8B},
+ {0x4E28, 0x7387},
+ {0x4E29, 0x7ACB},
+ {0x4E2A, 0x844E},
+ {0x4E2B, 0x63A0},
+ {0x4E2C, 0x7565},
+ {0x4E2D, 0x5289},
+ {0x4E2E, 0x6D41},
+ {0x4E2F, 0x6E9C},
+ {0x4E30, 0x7409},
+ {0x4E31, 0x7559},
+ {0x4E32, 0x786B},
+ {0x4E33, 0x7C92},
+ {0x4E34, 0x9686},
+ {0x4E35, 0x7ADC},
+ {0x4E36, 0x9F8D},
+ {0x4E37, 0x4FB6},
+ {0x4E38, 0x616E},
+ {0x4E39, 0x65C5},
+ {0x4E3A, 0x865C},
+ {0x4E3B, 0x4E86},
+ {0x4E3C, 0x4EAE},
+ {0x4E3D, 0x50DA},
+ {0x4E3E, 0x4E21},
+ {0x4E3F, 0x51CC},
+ {0x4E40, 0x5BEE},
+ {0x4E41, 0x6599},
+ {0x4E42, 0x6881},
+ {0x4E43, 0x6DBC},
+ {0x4E44, 0x731F},
+ {0x4E45, 0x7642},
+ {0x4E46, 0x77AD},
+ {0x4E47, 0x7A1C},
+ {0x4E48, 0x7CE7},
+ {0x4E49, 0x826F},
+ {0x4E4A, 0x8AD2},
+ {0x4E4B, 0x907C},
+ {0x4E4C, 0x91CF},
+ {0x4E4D, 0x9675},
+ {0x4E4E, 0x9818},
+ {0x4E4F, 0x529B},
+ {0x4E50, 0x7DD1},
+ {0x4E51, 0x502B},
+ {0x4E52, 0x5398},
+ {0x4E53, 0x6797},
+ {0x4E54, 0x6DCB},
+ {0x4E55, 0x71D0},
+ {0x4E56, 0x7433},
+ {0x4E57, 0x81E8},
+ {0x4E58, 0x8F2A},
+ {0x4E59, 0x96A3},
+ {0x4E5A, 0x9C57},
+ {0x4E5B, 0x9E9F},
+ {0x4E5C, 0x7460},
+ {0x4E5D, 0x5841},
+ {0x4E5E, 0x6D99},
+ {0x4E5F, 0x7D2F},
+ {0x4E60, 0x985E},
+ {0x4E61, 0x4EE4},
+ {0x4E62, 0x4F36},
+ {0x4E63, 0x4F8B},
+ {0x4E64, 0x51B7},
+ {0x4E65, 0x52B1},
+ {0x4E66, 0x5DBA},
+ {0x4E67, 0x601C},
+ {0x4E68, 0x73B2},
+ {0x4E69, 0x793C},
+ {0x4E6A, 0x82D3},
+ {0x4E6B, 0x9234},
+ {0x4E6C, 0x96B7},
+ {0x4E6D, 0x96F6},
+ {0x4E6E, 0x970A},
+ {0x4E6F, 0x9E97},
+ {0x4E70, 0x9F62},
+ {0x4E71, 0x66A6},
+ {0x4E72, 0x6B74},
+ {0x4E73, 0x5217},
+ {0x4E74, 0x52A3},
+ {0x4E75, 0x70C8},
+ {0x4E76, 0x88C2},
+ {0x4E77, 0x5EC9},
+ {0x4E78, 0x604B},
+ {0x4E79, 0x6190},
+ {0x4E7A, 0x6F23},
+ {0x4E7B, 0x7149},
+ {0x4E7C, 0x7C3E},
+ {0x4E7D, 0x7DF4},
+ {0x4E7E, 0x806F},
+ {0x4F21, 0x84EE},
+ {0x4F22, 0x9023},
+ {0x4F23, 0x932C},
+ {0x4F24, 0x5442},
+ {0x4F25, 0x9B6F},
+ {0x4F26, 0x6AD3},
+ {0x4F27, 0x7089},
+ {0x4F28, 0x8CC2},
+ {0x4F29, 0x8DEF},
+ {0x4F2A, 0x9732},
+ {0x4F2B, 0x52B4},
+ {0x4F2C, 0x5A41},
+ {0x4F2D, 0x5ECA},
+ {0x4F2E, 0x5F04},
+ {0x4F2F, 0x6717},
+ {0x4F30, 0x697C},
+ {0x4F31, 0x6994},
+ {0x4F32, 0x6D6A},
+ {0x4F33, 0x6F0F},
+ {0x4F34, 0x7262},
+ {0x4F35, 0x72FC},
+ {0x4F36, 0x7BED},
+ {0x4F37, 0x8001},
+ {0x4F38, 0x807E},
+ {0x4F39, 0x874B},
+ {0x4F3A, 0x90CE},
+ {0x4F3B, 0x516D},
+ {0x4F3C, 0x9E93},
+ {0x4F3D, 0x7984},
+ {0x4F3E, 0x808B},
+ {0x4F3F, 0x9332},
+ {0x4F40, 0x8AD6},
+ {0x4F41, 0x502D},
+ {0x4F42, 0x548C},
+ {0x4F43, 0x8A71},
+ {0x4F44, 0x6B6A},
+ {0x4F45, 0x8CC4},
+ {0x4F46, 0x8107},
+ {0x4F47, 0x60D1},
+ {0x4F48, 0x67A0},
+ {0x4F49, 0x9DF2},
+ {0x4F4A, 0x4E99},
+ {0x4F4B, 0x4E98},
+ {0x4F4C, 0x9C10},
+ {0x4F4D, 0x8A6B},
+ {0x4F4E, 0x85C1},
+ {0x4F4F, 0x8568},
+ {0x4F50, 0x6900},
+ {0x4F51, 0x6E7E},
+ {0x4F52, 0x7897},
+ {0x4F53, 0x8155},
+ {0x5021, 0x5F0C},
+ {0x5022, 0x4E10},
+ {0x5023, 0x4E15},
+ {0x5024, 0x4E2A},
+ {0x5025, 0x4E31},
+ {0x5026, 0x4E36},
+ {0x5027, 0x4E3C},
+ {0x5028, 0x4E3F},
+ {0x5029, 0x4E42},
+ {0x502A, 0x4E56},
+ {0x502B, 0x4E58},
+ {0x502C, 0x4E82},
+ {0x502D, 0x4E85},
+ {0x502E, 0x8C6B},
+ {0x502F, 0x4E8A},
+ {0x5030, 0x8212},
+ {0x5031, 0x5F0D},
+ {0x5032, 0x4E8E},
+ {0x5033, 0x4E9E},
+ {0x5034, 0x4E9F},
+ {0x5035, 0x4EA0},
+ {0x5036, 0x4EA2},
+ {0x5037, 0x4EB0},
+ {0x5038, 0x4EB3},
+ {0x5039, 0x4EB6},
+ {0x503A, 0x4ECE},
+ {0x503B, 0x4ECD},
+ {0x503C, 0x4EC4},
+ {0x503D, 0x4EC6},
+ {0x503E, 0x4EC2},
+ {0x503F, 0x4ED7},
+ {0x5040, 0x4EDE},
+ {0x5041, 0x4EED},
+ {0x5042, 0x4EDF},
+ {0x5043, 0x4EF7},
+ {0x5044, 0x4F09},
+ {0x5045, 0x4F5A},
+ {0x5046, 0x4F30},
+ {0x5047, 0x4F5B},
+ {0x5048, 0x4F5D},
+ {0x5049, 0x4F57},
+ {0x504A, 0x4F47},
+ {0x504B, 0x4F76},
+ {0x504C, 0x4F88},
+ {0x504D, 0x4F8F},
+ {0x504E, 0x4F98},
+ {0x504F, 0x4F7B},
+ {0x5050, 0x4F69},
+ {0x5051, 0x4F70},
+ {0x5052, 0x4F91},
+ {0x5053, 0x4F6F},
+ {0x5054, 0x4F86},
+ {0x5055, 0x4F96},
+ {0x5056, 0x5118},
+ {0x5057, 0x4FD4},
+ {0x5058, 0x4FDF},
+ {0x5059, 0x4FCE},
+ {0x505A, 0x4FD8},
+ {0x505B, 0x4FDB},
+ {0x505C, 0x4FD1},
+ {0x505D, 0x4FDA},
+ {0x505E, 0x4FD0},
+ {0x505F, 0x4FE4},
+ {0x5060, 0x4FE5},
+ {0x5061, 0x501A},
+ {0x5062, 0x5028},
+ {0x5063, 0x5014},
+ {0x5064, 0x502A},
+ {0x5065, 0x5025},
+ {0x5066, 0x5005},
+ {0x5067, 0x4F1C},
+ {0x5068, 0x4FF6},
+ {0x5069, 0x5021},
+ {0x506A, 0x5029},
+ {0x506B, 0x502C},
+ {0x506C, 0x4FFE},
+ {0x506D, 0x4FEF},
+ {0x506E, 0x5011},
+ {0x506F, 0x5006},
+ {0x5070, 0x5043},
+ {0x5071, 0x5047},
+ {0x5072, 0x6703},
+ {0x5073, 0x5055},
+ {0x5074, 0x5050},
+ {0x5075, 0x5048},
+ {0x5076, 0x505A},
+ {0x5077, 0x5056},
+ {0x5078, 0x506C},
+ {0x5079, 0x5078},
+ {0x507A, 0x5080},
+ {0x507B, 0x509A},
+ {0x507C, 0x5085},
+ {0x507D, 0x50B4},
+ {0x507E, 0x50B2},
+ {0x5121, 0x50C9},
+ {0x5122, 0x50CA},
+ {0x5123, 0x50B3},
+ {0x5124, 0x50C2},
+ {0x5125, 0x50D6},
+ {0x5126, 0x50DE},
+ {0x5127, 0x50E5},
+ {0x5128, 0x50ED},
+ {0x5129, 0x50E3},
+ {0x512A, 0x50EE},
+ {0x512B, 0x50F9},
+ {0x512C, 0x50F5},
+ {0x512D, 0x5109},
+ {0x512E, 0x5101},
+ {0x512F, 0x5102},
+ {0x5130, 0x5116},
+ {0x5131, 0x5115},
+ {0x5132, 0x5114},
+ {0x5133, 0x511A},
+ {0x5134, 0x5121},
+ {0x5135, 0x513A},
+ {0x5136, 0x5137},
+ {0x5137, 0x513C},
+ {0x5138, 0x513B},
+ {0x5139, 0x513F},
+ {0x513A, 0x5140},
+ {0x513B, 0x5152},
+ {0x513C, 0x514C},
+ {0x513D, 0x5154},
+ {0x513E, 0x5162},
+ {0x513F, 0x7AF8},
+ {0x5140, 0x5169},
+ {0x5141, 0x516A},
+ {0x5142, 0x516E},
+ {0x5143, 0x5180},
+ {0x5144, 0x5182},
+ {0x5145, 0x56D8},
+ {0x5146, 0x518C},
+ {0x5147, 0x5189},
+ {0x5148, 0x518F},
+ {0x5149, 0x5191},
+ {0x514A, 0x5193},
+ {0x514B, 0x5195},
+ {0x514C, 0x5196},
+ {0x514D, 0x51A4},
+ {0x514E, 0x51A6},
+ {0x514F, 0x51A2},
+ {0x5150, 0x51A9},
+ {0x5151, 0x51AA},
+ {0x5152, 0x51AB},
+ {0x5153, 0x51B3},
+ {0x5154, 0x51B1},
+ {0x5155, 0x51B2},
+ {0x5156, 0x51B0},
+ {0x5157, 0x51B5},
+ {0x5158, 0x51BD},
+ {0x5159, 0x51C5},
+ {0x515A, 0x51C9},
+ {0x515B, 0x51DB},
+ {0x515C, 0x51E0},
+ {0x515D, 0x8655},
+ {0x515E, 0x51E9},
+ {0x515F, 0x51ED},
+ {0x5160, 0x51F0},
+ {0x5161, 0x51F5},
+ {0x5162, 0x51FE},
+ {0x5163, 0x5204},
+ {0x5164, 0x520B},
+ {0x5165, 0x5214},
+ {0x5166, 0x520E},
+ {0x5167, 0x5227},
+ {0x5168, 0x522A},
+ {0x5169, 0x522E},
+ {0x516A, 0x5233},
+ {0x516B, 0x5239},
+ {0x516C, 0x524F},
+ {0x516D, 0x5244},
+ {0x516E, 0x524B},
+ {0x516F, 0x524C},
+ {0x5170, 0x525E},
+ {0x5171, 0x5254},
+ {0x5172, 0x526A},
+ {0x5173, 0x5274},
+ {0x5174, 0x5269},
+ {0x5175, 0x5273},
+ {0x5176, 0x527F},
+ {0x5177, 0x527D},
+ {0x5178, 0x528D},
+ {0x5179, 0x5294},
+ {0x517A, 0x5292},
+ {0x517B, 0x5271},
+ {0x517C, 0x5288},
+ {0x517D, 0x5291},
+ {0x517E, 0x8FA8},
+ {0x5221, 0x8FA7},
+ {0x5222, 0x52AC},
+ {0x5223, 0x52AD},
+ {0x5224, 0x52BC},
+ {0x5225, 0x52B5},
+ {0x5226, 0x52C1},
+ {0x5227, 0x52CD},
+ {0x5228, 0x52D7},
+ {0x5229, 0x52DE},
+ {0x522A, 0x52E3},
+ {0x522B, 0x52E6},
+ {0x522C, 0x98ED},
+ {0x522D, 0x52E0},
+ {0x522E, 0x52F3},
+ {0x522F, 0x52F5},
+ {0x5230, 0x52F8},
+ {0x5231, 0x52F9},
+ {0x5232, 0x5306},
+ {0x5233, 0x5308},
+ {0x5234, 0x7538},
+ {0x5235, 0x530D},
+ {0x5236, 0x5310},
+ {0x5237, 0x530F},
+ {0x5238, 0x5315},
+ {0x5239, 0x531A},
+ {0x523A, 0x5323},
+ {0x523B, 0x532F},
+ {0x523C, 0x5331},
+ {0x523D, 0x5333},
+ {0x523E, 0x5338},
+ {0x523F, 0x5340},
+ {0x5240, 0x5346},
+ {0x5241, 0x5345},
+ {0x5242, 0x4E17},
+ {0x5243, 0x5349},
+ {0x5244, 0x534D},
+ {0x5245, 0x51D6},
+ {0x5246, 0x535E},
+ {0x5247, 0x5369},
+ {0x5248, 0x536E},
+ {0x5249, 0x5918},
+ {0x524A, 0x537B},
+ {0x524B, 0x5377},
+ {0x524C, 0x5382},
+ {0x524D, 0x5396},
+ {0x524E, 0x53A0},
+ {0x524F, 0x53A6},
+ {0x5250, 0x53A5},
+ {0x5251, 0x53AE},
+ {0x5252, 0x53B0},
+ {0x5253, 0x53B6},
+ {0x5254, 0x53C3},
+ {0x5255, 0x7C12},
+ {0x5256, 0x96D9},
+ {0x5257, 0x53DF},
+ {0x5258, 0x66FC},
+ {0x5259, 0x71EE},
+ {0x525A, 0x53EE},
+ {0x525B, 0x53E8},
+ {0x525C, 0x53ED},
+ {0x525D, 0x53FA},
+ {0x525E, 0x5401},
+ {0x525F, 0x543D},
+ {0x5260, 0x5440},
+ {0x5261, 0x542C},
+ {0x5262, 0x542D},
+ {0x5263, 0x543C},
+ {0x5264, 0x542E},
+ {0x5265, 0x5436},
+ {0x5266, 0x5429},
+ {0x5267, 0x541D},
+ {0x5268, 0x544E},
+ {0x5269, 0x548F},
+ {0x526A, 0x5475},
+ {0x526B, 0x548E},
+ {0x526C, 0x545F},
+ {0x526D, 0x5471},
+ {0x526E, 0x5477},
+ {0x526F, 0x5470},
+ {0x5270, 0x5492},
+ {0x5271, 0x547B},
+ {0x5272, 0x5480},
+ {0x5273, 0x5476},
+ {0x5274, 0x5484},
+ {0x5275, 0x5490},
+ {0x5276, 0x5486},
+ {0x5277, 0x54C7},
+ {0x5278, 0x54A2},
+ {0x5279, 0x54B8},
+ {0x527A, 0x54A5},
+ {0x527B, 0x54AC},
+ {0x527C, 0x54C4},
+ {0x527D, 0x54C8},
+ {0x527E, 0x54A8},
+ {0x5321, 0x54AB},
+ {0x5322, 0x54C2},
+ {0x5323, 0x54A4},
+ {0x5324, 0x54BE},
+ {0x5325, 0x54BC},
+ {0x5326, 0x54D8},
+ {0x5327, 0x54E5},
+ {0x5328, 0x54E6},
+ {0x5329, 0x550F},
+ {0x532A, 0x5514},
+ {0x532B, 0x54FD},
+ {0x532C, 0x54EE},
+ {0x532D, 0x54ED},
+ {0x532E, 0x54FA},
+ {0x532F, 0x54E2},
+ {0x5330, 0x5539},
+ {0x5331, 0x5540},
+ {0x5332, 0x5563},
+ {0x5333, 0x554C},
+ {0x5334, 0x552E},
+ {0x5335, 0x555C},
+ {0x5336, 0x5545},
+ {0x5337, 0x5556},
+ {0x5338, 0x5557},
+ {0x5339, 0x5538},
+ {0x533A, 0x5533},
+ {0x533B, 0x555D},
+ {0x533C, 0x5599},
+ {0x533D, 0x5580},
+ {0x533E, 0x54AF},
+ {0x533F, 0x558A},
+ {0x5340, 0x559F},
+ {0x5341, 0x557B},
+ {0x5342, 0x557E},
+ {0x5343, 0x5598},
+ {0x5344, 0x559E},
+ {0x5345, 0x55AE},
+ {0x5346, 0x557C},
+ {0x5347, 0x5583},
+ {0x5348, 0x55A9},
+ {0x5349, 0x5587},
+ {0x534A, 0x55A8},
+ {0x534B, 0x55DA},
+ {0x534C, 0x55C5},
+ {0x534D, 0x55DF},
+ {0x534E, 0x55C4},
+ {0x534F, 0x55DC},
+ {0x5350, 0x55E4},
+ {0x5351, 0x55D4},
+ {0x5352, 0x5614},
+ {0x5353, 0x55F7},
+ {0x5354, 0x5616},
+ {0x5355, 0x55FE},
+ {0x5356, 0x55FD},
+ {0x5357, 0x561B},
+ {0x5358, 0x55F9},
+ {0x5359, 0x564E},
+ {0x535A, 0x5650},
+ {0x535B, 0x71DF},
+ {0x535C, 0x5634},
+ {0x535D, 0x5636},
+ {0x535E, 0x5632},
+ {0x535F, 0x5638},
+ {0x5360, 0x566B},
+ {0x5361, 0x5664},
+ {0x5362, 0x562F},
+ {0x5363, 0x566C},
+ {0x5364, 0x566A},
+ {0x5365, 0x5686},
+ {0x5366, 0x5680},
+ {0x5367, 0x568A},
+ {0x5368, 0x56A0},
+ {0x5369, 0x5694},
+ {0x536A, 0x568F},
+ {0x536B, 0x56A5},
+ {0x536C, 0x56AE},
+ {0x536D, 0x56B6},
+ {0x536E, 0x56B4},
+ {0x536F, 0x56C2},
+ {0x5370, 0x56BC},
+ {0x5371, 0x56C1},
+ {0x5372, 0x56C3},
+ {0x5373, 0x56C0},
+ {0x5374, 0x56C8},
+ {0x5375, 0x56CE},
+ {0x5376, 0x56D1},
+ {0x5377, 0x56D3},
+ {0x5378, 0x56D7},
+ {0x5379, 0x56EE},
+ {0x537A, 0x56F9},
+ {0x537B, 0x5700},
+ {0x537C, 0x56FF},
+ {0x537D, 0x5704},
+ {0x537E, 0x5709},
+ {0x5421, 0x5708},
+ {0x5422, 0x570B},
+ {0x5423, 0x570D},
+ {0x5424, 0x5713},
+ {0x5425, 0x5718},
+ {0x5426, 0x5716},
+ {0x5427, 0x55C7},
+ {0x5428, 0x571C},
+ {0x5429, 0x5726},
+ {0x542A, 0x5737},
+ {0x542B, 0x5738},
+ {0x542C, 0x574E},
+ {0x542D, 0x573B},
+ {0x542E, 0x5740},
+ {0x542F, 0x574F},
+ {0x5430, 0x5769},
+ {0x5431, 0x57C0},
+ {0x5432, 0x5788},
+ {0x5433, 0x5761},
+ {0x5434, 0x577F},
+ {0x5435, 0x5789},
+ {0x5436, 0x5793},
+ {0x5437, 0x57A0},
+ {0x5438, 0x57B3},
+ {0x5439, 0x57A4},
+ {0x543A, 0x57AA},
+ {0x543B, 0x57B0},
+ {0x543C, 0x57C3},
+ {0x543D, 0x57C6},
+ {0x543E, 0x57D4},
+ {0x543F, 0x57D2},
+ {0x5440, 0x57D3},
+ {0x5441, 0x580A},
+ {0x5442, 0x57D6},
+ {0x5443, 0x57E3},
+ {0x5444, 0x580B},
+ {0x5445, 0x5819},
+ {0x5446, 0x581D},
+ {0x5447, 0x5872},
+ {0x5448, 0x5821},
+ {0x5449, 0x5862},
+ {0x544A, 0x584B},
+ {0x544B, 0x5870},
+ {0x544C, 0x6BC0},
+ {0x544D, 0x5852},
+ {0x544E, 0x583D},
+ {0x544F, 0x5879},
+ {0x5450, 0x5885},
+ {0x5451, 0x58B9},
+ {0x5452, 0x589F},
+ {0x5453, 0x58AB},
+ {0x5454, 0x58BA},
+ {0x5455, 0x58DE},
+ {0x5456, 0x58BB},
+ {0x5457, 0x58B8},
+ {0x5458, 0x58AE},
+ {0x5459, 0x58C5},
+ {0x545A, 0x58D3},
+ {0x545B, 0x58D1},
+ {0x545C, 0x58D7},
+ {0x545D, 0x58D9},
+ {0x545E, 0x58D8},
+ {0x545F, 0x58E5},
+ {0x5460, 0x58DC},
+ {0x5461, 0x58E4},
+ {0x5462, 0x58DF},
+ {0x5463, 0x58EF},
+ {0x5464, 0x58FA},
+ {0x5465, 0x58F9},
+ {0x5466, 0x58FB},
+ {0x5467, 0x58FC},
+ {0x5468, 0x58FD},
+ {0x5469, 0x5902},
+ {0x546A, 0x590A},
+ {0x546B, 0x5910},
+ {0x546C, 0x591B},
+ {0x546D, 0x68A6},
+ {0x546E, 0x5925},
+ {0x546F, 0x592C},
+ {0x5470, 0x592D},
+ {0x5471, 0x5932},
+ {0x5472, 0x5938},
+ {0x5473, 0x593E},
+ {0x5474, 0x7AD2},
+ {0x5475, 0x5955},
+ {0x5476, 0x5950},
+ {0x5477, 0x594E},
+ {0x5478, 0x595A},
+ {0x5479, 0x5958},
+ {0x547A, 0x5962},
+ {0x547B, 0x5960},
+ {0x547C, 0x5967},
+ {0x547D, 0x596C},
+ {0x547E, 0x5969},
+ {0x5521, 0x5978},
+ {0x5522, 0x5981},
+ {0x5523, 0x599D},
+ {0x5524, 0x4F5E},
+ {0x5525, 0x4FAB},
+ {0x5526, 0x59A3},
+ {0x5527, 0x59B2},
+ {0x5528, 0x59C6},
+ {0x5529, 0x59E8},
+ {0x552A, 0x59DC},
+ {0x552B, 0x598D},
+ {0x552C, 0x59D9},
+ {0x552D, 0x59DA},
+ {0x552E, 0x5A25},
+ {0x552F, 0x5A1F},
+ {0x5530, 0x5A11},
+ {0x5531, 0x5A1C},
+ {0x5532, 0x5A09},
+ {0x5533, 0x5A1A},
+ {0x5534, 0x5A40},
+ {0x5535, 0x5A6C},
+ {0x5536, 0x5A49},
+ {0x5537, 0x5A35},
+ {0x5538, 0x5A36},
+ {0x5539, 0x5A62},
+ {0x553A, 0x5A6A},
+ {0x553B, 0x5A9A},
+ {0x553C, 0x5ABC},
+ {0x553D, 0x5ABE},
+ {0x553E, 0x5ACB},
+ {0x553F, 0x5AC2},
+ {0x5540, 0x5ABD},
+ {0x5541, 0x5AE3},
+ {0x5542, 0x5AD7},
+ {0x5543, 0x5AE6},
+ {0x5544, 0x5AE9},
+ {0x5545, 0x5AD6},
+ {0x5546, 0x5AFA},
+ {0x5547, 0x5AFB},
+ {0x5548, 0x5B0C},
+ {0x5549, 0x5B0B},
+ {0x554A, 0x5B16},
+ {0x554B, 0x5B32},
+ {0x554C, 0x5AD0},
+ {0x554D, 0x5B2A},
+ {0x554E, 0x5B36},
+ {0x554F, 0x5B3E},
+ {0x5550, 0x5B43},
+ {0x5551, 0x5B45},
+ {0x5552, 0x5B40},
+ {0x5553, 0x5B51},
+ {0x5554, 0x5B55},
+ {0x5555, 0x5B5A},
+ {0x5556, 0x5B5B},
+ {0x5557, 0x5B65},
+ {0x5558, 0x5B69},
+ {0x5559, 0x5B70},
+ {0x555A, 0x5B73},
+ {0x555B, 0x5B75},
+ {0x555C, 0x5B78},
+ {0x555D, 0x6588},
+ {0x555E, 0x5B7A},
+ {0x555F, 0x5B80},
+ {0x5560, 0x5B83},
+ {0x5561, 0x5BA6},
+ {0x5562, 0x5BB8},
+ {0x5563, 0x5BC3},
+ {0x5564, 0x5BC7},
+ {0x5565, 0x5BC9},
+ {0x5566, 0x5BD4},
+ {0x5567, 0x5BD0},
+ {0x5568, 0x5BE4},
+ {0x5569, 0x5BE6},
+ {0x556A, 0x5BE2},
+ {0x556B, 0x5BDE},
+ {0x556C, 0x5BE5},
+ {0x556D, 0x5BEB},
+ {0x556E, 0x5BF0},
+ {0x556F, 0x5BF6},
+ {0x5570, 0x5BF3},
+ {0x5571, 0x5C05},
+ {0x5572, 0x5C07},
+ {0x5573, 0x5C08},
+ {0x5574, 0x5C0D},
+ {0x5575, 0x5C13},
+ {0x5576, 0x5C20},
+ {0x5577, 0x5C22},
+ {0x5578, 0x5C28},
+ {0x5579, 0x5C38},
+ {0x557A, 0x5C39},
+ {0x557B, 0x5C41},
+ {0x557C, 0x5C46},
+ {0x557D, 0x5C4E},
+ {0x557E, 0x5C53},
+ {0x5621, 0x5C50},
+ {0x5622, 0x5C4F},
+ {0x5623, 0x5B71},
+ {0x5624, 0x5C6C},
+ {0x5625, 0x5C6E},
+ {0x5626, 0x4E62},
+ {0x5627, 0x5C76},
+ {0x5628, 0x5C79},
+ {0x5629, 0x5C8C},
+ {0x562A, 0x5C91},
+ {0x562B, 0x5C94},
+ {0x562C, 0x599B},
+ {0x562D, 0x5CAB},
+ {0x562E, 0x5CBB},
+ {0x562F, 0x5CB6},
+ {0x5630, 0x5CBC},
+ {0x5631, 0x5CB7},
+ {0x5632, 0x5CC5},
+ {0x5633, 0x5CBE},
+ {0x5634, 0x5CC7},
+ {0x5635, 0x5CD9},
+ {0x5636, 0x5CE9},
+ {0x5637, 0x5CFD},
+ {0x5638, 0x5CFA},
+ {0x5639, 0x5CED},
+ {0x563A, 0x5D8C},
+ {0x563B, 0x5CEA},
+ {0x563C, 0x5D0B},
+ {0x563D, 0x5D15},
+ {0x563E, 0x5D17},
+ {0x563F, 0x5D5C},
+ {0x5640, 0x5D1F},
+ {0x5641, 0x5D1B},
+ {0x5642, 0x5D11},
+ {0x5643, 0x5D14},
+ {0x5644, 0x5D22},
+ {0x5645, 0x5D1A},
+ {0x5646, 0x5D19},
+ {0x5647, 0x5D18},
+ {0x5648, 0x5D4C},
+ {0x5649, 0x5D52},
+ {0x564A, 0x5D4E},
+ {0x564B, 0x5D4B},
+ {0x564C, 0x5D6C},
+ {0x564D, 0x5D73},
+ {0x564E, 0x5D76},
+ {0x564F, 0x5D87},
+ {0x5650, 0x5D84},
+ {0x5651, 0x5D82},
+ {0x5652, 0x5DA2},
+ {0x5653, 0x5D9D},
+ {0x5654, 0x5DAC},
+ {0x5655, 0x5DAE},
+ {0x5656, 0x5DBD},
+ {0x5657, 0x5D90},
+ {0x5658, 0x5DB7},
+ {0x5659, 0x5DBC},
+ {0x565A, 0x5DC9},
+ {0x565B, 0x5DCD},
+ {0x565C, 0x5DD3},
+ {0x565D, 0x5DD2},
+ {0x565E, 0x5DD6},
+ {0x565F, 0x5DDB},
+ {0x5660, 0x5DEB},
+ {0x5661, 0x5DF2},
+ {0x5662, 0x5DF5},
+ {0x5663, 0x5E0B},
+ {0x5664, 0x5E1A},
+ {0x5665, 0x5E19},
+ {0x5666, 0x5E11},
+ {0x5667, 0x5E1B},
+ {0x5668, 0x5E36},
+ {0x5669, 0x5E37},
+ {0x566A, 0x5E44},
+ {0x566B, 0x5E43},
+ {0x566C, 0x5E40},
+ {0x566D, 0x5E4E},
+ {0x566E, 0x5E57},
+ {0x566F, 0x5E54},
+ {0x5670, 0x5E5F},
+ {0x5671, 0x5E62},
+ {0x5672, 0x5E64},
+ {0x5673, 0x5E47},
+ {0x5674, 0x5E75},
+ {0x5675, 0x5E76},
+ {0x5676, 0x5E7A},
+ {0x5677, 0x9EBC},
+ {0x5678, 0x5E7F},
+ {0x5679, 0x5EA0},
+ {0x567A, 0x5EC1},
+ {0x567B, 0x5EC2},
+ {0x567C, 0x5EC8},
+ {0x567D, 0x5ED0},
+ {0x567E, 0x5ECF},
+ {0x5721, 0x5ED6},
+ {0x5722, 0x5EE3},
+ {0x5723, 0x5EDD},
+ {0x5724, 0x5EDA},
+ {0x5725, 0x5EDB},
+ {0x5726, 0x5EE2},
+ {0x5727, 0x5EE1},
+ {0x5728, 0x5EE8},
+ {0x5729, 0x5EE9},
+ {0x572A, 0x5EEC},
+ {0x572B, 0x5EF1},
+ {0x572C, 0x5EF3},
+ {0x572D, 0x5EF0},
+ {0x572E, 0x5EF4},
+ {0x572F, 0x5EF8},
+ {0x5730, 0x5EFE},
+ {0x5731, 0x5F03},
+ {0x5732, 0x5F09},
+ {0x5733, 0x5F5D},
+ {0x5734, 0x5F5C},
+ {0x5735, 0x5F0B},
+ {0x5736, 0x5F11},
+ {0x5737, 0x5F16},
+ {0x5738, 0x5F29},
+ {0x5739, 0x5F2D},
+ {0x573A, 0x5F38},
+ {0x573B, 0x5F41},
+ {0x573C, 0x5F48},
+ {0x573D, 0x5F4C},
+ {0x573E, 0x5F4E},
+ {0x573F, 0x5F2F},
+ {0x5740, 0x5F51},
+ {0x5741, 0x5F56},
+ {0x5742, 0x5F57},
+ {0x5743, 0x5F59},
+ {0x5744, 0x5F61},
+ {0x5745, 0x5F6D},
+ {0x5746, 0x5F73},
+ {0x5747, 0x5F77},
+ {0x5748, 0x5F83},
+ {0x5749, 0x5F82},
+ {0x574A, 0x5F7F},
+ {0x574B, 0x5F8A},
+ {0x574C, 0x5F88},
+ {0x574D, 0x5F91},
+ {0x574E, 0x5F87},
+ {0x574F, 0x5F9E},
+ {0x5750, 0x5F99},
+ {0x5751, 0x5F98},
+ {0x5752, 0x5FA0},
+ {0x5753, 0x5FA8},
+ {0x5754, 0x5FAD},
+ {0x5755, 0x5FBC},
+ {0x5756, 0x5FD6},
+ {0x5757, 0x5FFB},
+ {0x5758, 0x5FE4},
+ {0x5759, 0x5FF8},
+ {0x575A, 0x5FF1},
+ {0x575B, 0x5FDD},
+ {0x575C, 0x60B3},
+ {0x575D, 0x5FFF},
+ {0x575E, 0x6021},
+ {0x575F, 0x6060},
+ {0x5760, 0x6019},
+ {0x5761, 0x6010},
+ {0x5762, 0x6029},
+ {0x5763, 0x600E},
+ {0x5764, 0x6031},
+ {0x5765, 0x601B},
+ {0x5766, 0x6015},
+ {0x5767, 0x602B},
+ {0x5768, 0x6026},
+ {0x5769, 0x600F},
+ {0x576A, 0x603A},
+ {0x576B, 0x605A},
+ {0x576C, 0x6041},
+ {0x576D, 0x606A},
+ {0x576E, 0x6077},
+ {0x576F, 0x605F},
+ {0x5770, 0x604A},
+ {0x5771, 0x6046},
+ {0x5772, 0x604D},
+ {0x5773, 0x6063},
+ {0x5774, 0x6043},
+ {0x5775, 0x6064},
+ {0x5776, 0x6042},
+ {0x5777, 0x606C},
+ {0x5778, 0x606B},
+ {0x5779, 0x6059},
+ {0x577A, 0x6081},
+ {0x577B, 0x608D},
+ {0x577C, 0x60E7},
+ {0x577D, 0x6083},
+ {0x577E, 0x609A},
+ {0x5821, 0x6084},
+ {0x5822, 0x609B},
+ {0x5823, 0x6096},
+ {0x5824, 0x6097},
+ {0x5825, 0x6092},
+ {0x5826, 0x60A7},
+ {0x5827, 0x608B},
+ {0x5828, 0x60E1},
+ {0x5829, 0x60B8},
+ {0x582A, 0x60E0},
+ {0x582B, 0x60D3},
+ {0x582C, 0x60B4},
+ {0x582D, 0x5FF0},
+ {0x582E, 0x60BD},
+ {0x582F, 0x60C6},
+ {0x5830, 0x60B5},
+ {0x5831, 0x60D8},
+ {0x5832, 0x614D},
+ {0x5833, 0x6115},
+ {0x5834, 0x6106},
+ {0x5835, 0x60F6},
+ {0x5836, 0x60F7},
+ {0x5837, 0x6100},
+ {0x5838, 0x60F4},
+ {0x5839, 0x60FA},
+ {0x583A, 0x6103},
+ {0x583B, 0x6121},
+ {0x583C, 0x60FB},
+ {0x583D, 0x60F1},
+ {0x583E, 0x610D},
+ {0x583F, 0x610E},
+ {0x5840, 0x6147},
+ {0x5841, 0x613E},
+ {0x5842, 0x6128},
+ {0x5843, 0x6127},
+ {0x5844, 0x614A},
+ {0x5845, 0x613F},
+ {0x5846, 0x613C},
+ {0x5847, 0x612C},
+ {0x5848, 0x6134},
+ {0x5849, 0x613D},
+ {0x584A, 0x6142},
+ {0x584B, 0x6144},
+ {0x584C, 0x6173},
+ {0x584D, 0x6177},
+ {0x584E, 0x6158},
+ {0x584F, 0x6159},
+ {0x5850, 0x615A},
+ {0x5851, 0x616B},
+ {0x5852, 0x6174},
+ {0x5853, 0x616F},
+ {0x5854, 0x6165},
+ {0x5855, 0x6171},
+ {0x5856, 0x615F},
+ {0x5857, 0x615D},
+ {0x5858, 0x6153},
+ {0x5859, 0x6175},
+ {0x585A, 0x6199},
+ {0x585B, 0x6196},
+ {0x585C, 0x6187},
+ {0x585D, 0x61AC},
+ {0x585E, 0x6194},
+ {0x585F, 0x619A},
+ {0x5860, 0x618A},
+ {0x5861, 0x6191},
+ {0x5862, 0x61AB},
+ {0x5863, 0x61AE},
+ {0x5864, 0x61CC},
+ {0x5865, 0x61CA},
+ {0x5866, 0x61C9},
+ {0x5867, 0x61F7},
+ {0x5868, 0x61C8},
+ {0x5869, 0x61C3},
+ {0x586A, 0x61C6},
+ {0x586B, 0x61BA},
+ {0x586C, 0x61CB},
+ {0x586D, 0x7F79},
+ {0x586E, 0x61CD},
+ {0x586F, 0x61E6},
+ {0x5870, 0x61E3},
+ {0x5871, 0x61F6},
+ {0x5872, 0x61FA},
+ {0x5873, 0x61F4},
+ {0x5874, 0x61FF},
+ {0x5875, 0x61FD},
+ {0x5876, 0x61FC},
+ {0x5877, 0x61FE},
+ {0x5878, 0x6200},
+ {0x5879, 0x6208},
+ {0x587A, 0x6209},
+ {0x587B, 0x620D},
+ {0x587C, 0x620C},
+ {0x587D, 0x6214},
+ {0x587E, 0x621B},
+ {0x5921, 0x621E},
+ {0x5922, 0x6221},
+ {0x5923, 0x622A},
+ {0x5924, 0x622E},
+ {0x5925, 0x6230},
+ {0x5926, 0x6232},
+ {0x5927, 0x6233},
+ {0x5928, 0x6241},
+ {0x5929, 0x624E},
+ {0x592A, 0x625E},
+ {0x592B, 0x6263},
+ {0x592C, 0x625B},
+ {0x592D, 0x6260},
+ {0x592E, 0x6268},
+ {0x592F, 0x627C},
+ {0x5930, 0x6282},
+ {0x5931, 0x6289},
+ {0x5932, 0x627E},
+ {0x5933, 0x6292},
+ {0x5934, 0x6293},
+ {0x5935, 0x6296},
+ {0x5936, 0x62D4},
+ {0x5937, 0x6283},
+ {0x5938, 0x6294},
+ {0x5939, 0x62D7},
+ {0x593A, 0x62D1},
+ {0x593B, 0x62BB},
+ {0x593C, 0x62CF},
+ {0x593D, 0x62FF},
+ {0x593E, 0x62C6},
+ {0x593F, 0x64D4},
+ {0x5940, 0x62C8},
+ {0x5941, 0x62DC},
+ {0x5942, 0x62CC},
+ {0x5943, 0x62CA},
+ {0x5944, 0x62C2},
+ {0x5945, 0x62C7},
+ {0x5946, 0x629B},
+ {0x5947, 0x62C9},
+ {0x5948, 0x630C},
+ {0x5949, 0x62EE},
+ {0x594A, 0x62F1},
+ {0x594B, 0x6327},
+ {0x594C, 0x6302},
+ {0x594D, 0x6308},
+ {0x594E, 0x62EF},
+ {0x594F, 0x62F5},
+ {0x5950, 0x6350},
+ {0x5951, 0x633E},
+ {0x5952, 0x634D},
+ {0x5953, 0x641C},
+ {0x5954, 0x634F},
+ {0x5955, 0x6396},
+ {0x5956, 0x638E},
+ {0x5957, 0x6380},
+ {0x5958, 0x63AB},
+ {0x5959, 0x6376},
+ {0x595A, 0x63A3},
+ {0x595B, 0x638F},
+ {0x595C, 0x6389},
+ {0x595D, 0x639F},
+ {0x595E, 0x63B5},
+ {0x595F, 0x636B},
+ {0x5960, 0x6369},
+ {0x5961, 0x63BE},
+ {0x5962, 0x63E9},
+ {0x5963, 0x63C0},
+ {0x5964, 0x63C6},
+ {0x5965, 0x63E3},
+ {0x5966, 0x63C9},
+ {0x5967, 0x63D2},
+ {0x5968, 0x63F6},
+ {0x5969, 0x63C4},
+ {0x596A, 0x6416},
+ {0x596B, 0x6434},
+ {0x596C, 0x6406},
+ {0x596D, 0x6413},
+ {0x596E, 0x6426},
+ {0x596F, 0x6436},
+ {0x5970, 0x651D},
+ {0x5971, 0x6417},
+ {0x5972, 0x6428},
+ {0x5973, 0x640F},
+ {0x5974, 0x6467},
+ {0x5975, 0x646F},
+ {0x5976, 0x6476},
+ {0x5977, 0x644E},
+ {0x5978, 0x652A},
+ {0x5979, 0x6495},
+ {0x597A, 0x6493},
+ {0x597B, 0x64A5},
+ {0x597C, 0x64A9},
+ {0x597D, 0x6488},
+ {0x597E, 0x64BC},
+ {0x5A21, 0x64DA},
+ {0x5A22, 0x64D2},
+ {0x5A23, 0x64C5},
+ {0x5A24, 0x64C7},
+ {0x5A25, 0x64BB},
+ {0x5A26, 0x64D8},
+ {0x5A27, 0x64C2},
+ {0x5A28, 0x64F1},
+ {0x5A29, 0x64E7},
+ {0x5A2A, 0x8209},
+ {0x5A2B, 0x64E0},
+ {0x5A2C, 0x64E1},
+ {0x5A2D, 0x62AC},
+ {0x5A2E, 0x64E3},
+ {0x5A2F, 0x64EF},
+ {0x5A30, 0x652C},
+ {0x5A31, 0x64F6},
+ {0x5A32, 0x64F4},
+ {0x5A33, 0x64F2},
+ {0x5A34, 0x64FA},
+ {0x5A35, 0x6500},
+ {0x5A36, 0x64FD},
+ {0x5A37, 0x6518},
+ {0x5A38, 0x651C},
+ {0x5A39, 0x6505},
+ {0x5A3A, 0x6524},
+ {0x5A3B, 0x6523},
+ {0x5A3C, 0x652B},
+ {0x5A3D, 0x6534},
+ {0x5A3E, 0x6535},
+ {0x5A3F, 0x6537},
+ {0x5A40, 0x6536},
+ {0x5A41, 0x6538},
+ {0x5A42, 0x754B},
+ {0x5A43, 0x6548},
+ {0x5A44, 0x6556},
+ {0x5A45, 0x6555},
+ {0x5A46, 0x654D},
+ {0x5A47, 0x6558},
+ {0x5A48, 0x655E},
+ {0x5A49, 0x655D},
+ {0x5A4A, 0x6572},
+ {0x5A4B, 0x6578},
+ {0x5A4C, 0x6582},
+ {0x5A4D, 0x6583},
+ {0x5A4E, 0x8B8A},
+ {0x5A4F, 0x659B},
+ {0x5A50, 0x659F},
+ {0x5A51, 0x65AB},
+ {0x5A52, 0x65B7},
+ {0x5A53, 0x65C3},
+ {0x5A54, 0x65C6},
+ {0x5A55, 0x65C1},
+ {0x5A56, 0x65C4},
+ {0x5A57, 0x65CC},
+ {0x5A58, 0x65D2},
+ {0x5A59, 0x65DB},
+ {0x5A5A, 0x65D9},
+ {0x5A5B, 0x65E0},
+ {0x5A5C, 0x65E1},
+ {0x5A5D, 0x65F1},
+ {0x5A5E, 0x6772},
+ {0x5A5F, 0x660A},
+ {0x5A60, 0x6603},
+ {0x5A61, 0x65FB},
+ {0x5A62, 0x6773},
+ {0x5A63, 0x6635},
+ {0x5A64, 0x6636},
+ {0x5A65, 0x6634},
+ {0x5A66, 0x661C},
+ {0x5A67, 0x664F},
+ {0x5A68, 0x6644},
+ {0x5A69, 0x6649},
+ {0x5A6A, 0x6641},
+ {0x5A6B, 0x665E},
+ {0x5A6C, 0x665D},
+ {0x5A6D, 0x6664},
+ {0x5A6E, 0x6667},
+ {0x5A6F, 0x6668},
+ {0x5A70, 0x665F},
+ {0x5A71, 0x6662},
+ {0x5A72, 0x6670},
+ {0x5A73, 0x6683},
+ {0x5A74, 0x6688},
+ {0x5A75, 0x668E},
+ {0x5A76, 0x6689},
+ {0x5A77, 0x6684},
+ {0x5A78, 0x6698},
+ {0x5A79, 0x669D},
+ {0x5A7A, 0x66C1},
+ {0x5A7B, 0x66B9},
+ {0x5A7C, 0x66C9},
+ {0x5A7D, 0x66BE},
+ {0x5A7E, 0x66BC},
+ {0x5B21, 0x66C4},
+ {0x5B22, 0x66B8},
+ {0x5B23, 0x66D6},
+ {0x5B24, 0x66DA},
+ {0x5B25, 0x66E0},
+ {0x5B26, 0x663F},
+ {0x5B27, 0x66E6},
+ {0x5B28, 0x66E9},
+ {0x5B29, 0x66F0},
+ {0x5B2A, 0x66F5},
+ {0x5B2B, 0x66F7},
+ {0x5B2C, 0x670F},
+ {0x5B2D, 0x6716},
+ {0x5B2E, 0x671E},
+ {0x5B2F, 0x6726},
+ {0x5B30, 0x6727},
+ {0x5B31, 0x9738},
+ {0x5B32, 0x672E},
+ {0x5B33, 0x673F},
+ {0x5B34, 0x6736},
+ {0x5B35, 0x6741},
+ {0x5B36, 0x6738},
+ {0x5B37, 0x6737},
+ {0x5B38, 0x6746},
+ {0x5B39, 0x675E},
+ {0x5B3A, 0x6760},
+ {0x5B3B, 0x6759},
+ {0x5B3C, 0x6763},
+ {0x5B3D, 0x6764},
+ {0x5B3E, 0x6789},
+ {0x5B3F, 0x6770},
+ {0x5B40, 0x67A9},
+ {0x5B41, 0x677C},
+ {0x5B42, 0x676A},
+ {0x5B43, 0x678C},
+ {0x5B44, 0x678B},
+ {0x5B45, 0x67A6},
+ {0x5B46, 0x67A1},
+ {0x5B47, 0x6785},
+ {0x5B48, 0x67B7},
+ {0x5B49, 0x67EF},
+ {0x5B4A, 0x67B4},
+ {0x5B4B, 0x67EC},
+ {0x5B4C, 0x67B3},
+ {0x5B4D, 0x67E9},
+ {0x5B4E, 0x67B8},
+ {0x5B4F, 0x67E4},
+ {0x5B50, 0x67DE},
+ {0x5B51, 0x67DD},
+ {0x5B52, 0x67E2},
+ {0x5B53, 0x67EE},
+ {0x5B54, 0x67B9},
+ {0x5B55, 0x67CE},
+ {0x5B56, 0x67C6},
+ {0x5B57, 0x67E7},
+ {0x5B58, 0x6A9C},
+ {0x5B59, 0x681E},
+ {0x5B5A, 0x6846},
+ {0x5B5B, 0x6829},
+ {0x5B5C, 0x6840},
+ {0x5B5D, 0x684D},
+ {0x5B5E, 0x6832},
+ {0x5B5F, 0x684E},
+ {0x5B60, 0x68B3},
+ {0x5B61, 0x682B},
+ {0x5B62, 0x6859},
+ {0x5B63, 0x6863},
+ {0x5B64, 0x6877},
+ {0x5B65, 0x687F},
+ {0x5B66, 0x689F},
+ {0x5B67, 0x688F},
+ {0x5B68, 0x68AD},
+ {0x5B69, 0x6894},
+ {0x5B6A, 0x689D},
+ {0x5B6B, 0x689B},
+ {0x5B6C, 0x6883},
+ {0x5B6D, 0x6AAE},
+ {0x5B6E, 0x68B9},
+ {0x5B6F, 0x6874},
+ {0x5B70, 0x68B5},
+ {0x5B71, 0x68A0},
+ {0x5B72, 0x68BA},
+ {0x5B73, 0x690F},
+ {0x5B74, 0x688D},
+ {0x5B75, 0x687E},
+ {0x5B76, 0x6901},
+ {0x5B77, 0x68CA},
+ {0x5B78, 0x6908},
+ {0x5B79, 0x68D8},
+ {0x5B7A, 0x6922},
+ {0x5B7B, 0x6926},
+ {0x5B7C, 0x68E1},
+ {0x5B7D, 0x690C},
+ {0x5B7E, 0x68CD},
+ {0x5C21, 0x68D4},
+ {0x5C22, 0x68E7},
+ {0x5C23, 0x68D5},
+ {0x5C24, 0x6936},
+ {0x5C25, 0x6912},
+ {0x5C26, 0x6904},
+ {0x5C27, 0x68D7},
+ {0x5C28, 0x68E3},
+ {0x5C29, 0x6925},
+ {0x5C2A, 0x68F9},
+ {0x5C2B, 0x68E0},
+ {0x5C2C, 0x68EF},
+ {0x5C2D, 0x6928},
+ {0x5C2E, 0x692A},
+ {0x5C2F, 0x691A},
+ {0x5C30, 0x6923},
+ {0x5C31, 0x6921},
+ {0x5C32, 0x68C6},
+ {0x5C33, 0x6979},
+ {0x5C34, 0x6977},
+ {0x5C35, 0x695C},
+ {0x5C36, 0x6978},
+ {0x5C37, 0x696B},
+ {0x5C38, 0x6954},
+ {0x5C39, 0x697E},
+ {0x5C3A, 0x696E},
+ {0x5C3B, 0x6939},
+ {0x5C3C, 0x6974},
+ {0x5C3D, 0x693D},
+ {0x5C3E, 0x6959},
+ {0x5C3F, 0x6930},
+ {0x5C40, 0x6961},
+ {0x5C41, 0x695E},
+ {0x5C42, 0x695D},
+ {0x5C43, 0x6981},
+ {0x5C44, 0x696A},
+ {0x5C45, 0x69B2},
+ {0x5C46, 0x69AE},
+ {0x5C47, 0x69D0},
+ {0x5C48, 0x69BF},
+ {0x5C49, 0x69C1},
+ {0x5C4A, 0x69D3},
+ {0x5C4B, 0x69BE},
+ {0x5C4C, 0x69CE},
+ {0x5C4D, 0x5BE8},
+ {0x5C4E, 0x69CA},
+ {0x5C4F, 0x69DD},
+ {0x5C50, 0x69BB},
+ {0x5C51, 0x69C3},
+ {0x5C52, 0x69A7},
+ {0x5C53, 0x6A2E},
+ {0x5C54, 0x6991},
+ {0x5C55, 0x69A0},
+ {0x5C56, 0x699C},
+ {0x5C57, 0x6995},
+ {0x5C58, 0x69B4},
+ {0x5C59, 0x69DE},
+ {0x5C5A, 0x69E8},
+ {0x5C5B, 0x6A02},
+ {0x5C5C, 0x6A1B},
+ {0x5C5D, 0x69FF},
+ {0x5C5E, 0x6B0A},
+ {0x5C5F, 0x69F9},
+ {0x5C60, 0x69F2},
+ {0x5C61, 0x69E7},
+ {0x5C62, 0x6A05},
+ {0x5C63, 0x69B1},
+ {0x5C64, 0x6A1E},
+ {0x5C65, 0x69ED},
+ {0x5C66, 0x6A14},
+ {0x5C67, 0x69EB},
+ {0x5C68, 0x6A0A},
+ {0x5C69, 0x6A12},
+ {0x5C6A, 0x6AC1},
+ {0x5C6B, 0x6A23},
+ {0x5C6C, 0x6A13},
+ {0x5C6D, 0x6A44},
+ {0x5C6E, 0x6A0C},
+ {0x5C6F, 0x6A72},
+ {0x5C70, 0x6A36},
+ {0x5C71, 0x6A78},
+ {0x5C72, 0x6A47},
+ {0x5C73, 0x6A62},
+ {0x5C74, 0x6A59},
+ {0x5C75, 0x6A66},
+ {0x5C76, 0x6A48},
+ {0x5C77, 0x6A38},
+ {0x5C78, 0x6A22},
+ {0x5C79, 0x6A90},
+ {0x5C7A, 0x6A8D},
+ {0x5C7B, 0x6AA0},
+ {0x5C7C, 0x6A84},
+ {0x5C7D, 0x6AA2},
+ {0x5C7E, 0x6AA3},
+ {0x5D21, 0x6A97},
+ {0x5D22, 0x8617},
+ {0x5D23, 0x6ABB},
+ {0x5D24, 0x6AC3},
+ {0x5D25, 0x6AC2},
+ {0x5D26, 0x6AB8},
+ {0x5D27, 0x6AB3},
+ {0x5D28, 0x6AAC},
+ {0x5D29, 0x6ADE},
+ {0x5D2A, 0x6AD1},
+ {0x5D2B, 0x6ADF},
+ {0x5D2C, 0x6AAA},
+ {0x5D2D, 0x6ADA},
+ {0x5D2E, 0x6AEA},
+ {0x5D2F, 0x6AFB},
+ {0x5D30, 0x6B05},
+ {0x5D31, 0x8616},
+ {0x5D32, 0x6AFA},
+ {0x5D33, 0x6B12},
+ {0x5D34, 0x6B16},
+ {0x5D35, 0x9B31},
+ {0x5D36, 0x6B1F},
+ {0x5D37, 0x6B38},
+ {0x5D38, 0x6B37},
+ {0x5D39, 0x76DC},
+ {0x5D3A, 0x6B39},
+ {0x5D3B, 0x98EE},
+ {0x5D3C, 0x6B47},
+ {0x5D3D, 0x6B43},
+ {0x5D3E, 0x6B49},
+ {0x5D3F, 0x6B50},
+ {0x5D40, 0x6B59},
+ {0x5D41, 0x6B54},
+ {0x5D42, 0x6B5B},
+ {0x5D43, 0x6B5F},
+ {0x5D44, 0x6B61},
+ {0x5D45, 0x6B78},
+ {0x5D46, 0x6B79},
+ {0x5D47, 0x6B7F},
+ {0x5D48, 0x6B80},
+ {0x5D49, 0x6B84},
+ {0x5D4A, 0x6B83},
+ {0x5D4B, 0x6B8D},
+ {0x5D4C, 0x6B98},
+ {0x5D4D, 0x6B95},
+ {0x5D4E, 0x6B9E},
+ {0x5D4F, 0x6BA4},
+ {0x5D50, 0x6BAA},
+ {0x5D51, 0x6BAB},
+ {0x5D52, 0x6BAF},
+ {0x5D53, 0x6BB2},
+ {0x5D54, 0x6BB1},
+ {0x5D55, 0x6BB3},
+ {0x5D56, 0x6BB7},
+ {0x5D57, 0x6BBC},
+ {0x5D58, 0x6BC6},
+ {0x5D59, 0x6BCB},
+ {0x5D5A, 0x6BD3},
+ {0x5D5B, 0x6BDF},
+ {0x5D5C, 0x6BEC},
+ {0x5D5D, 0x6BEB},
+ {0x5D5E, 0x6BF3},
+ {0x5D5F, 0x6BEF},
+ {0x5D60, 0x9EBE},
+ {0x5D61, 0x6C08},
+ {0x5D62, 0x6C13},
+ {0x5D63, 0x6C14},
+ {0x5D64, 0x6C1B},
+ {0x5D65, 0x6C24},
+ {0x5D66, 0x6C23},
+ {0x5D67, 0x6C5E},
+ {0x5D68, 0x6C55},
+ {0x5D69, 0x6C62},
+ {0x5D6A, 0x6C6A},
+ {0x5D6B, 0x6C82},
+ {0x5D6C, 0x6C8D},
+ {0x5D6D, 0x6C9A},
+ {0x5D6E, 0x6C81},
+ {0x5D6F, 0x6C9B},
+ {0x5D70, 0x6C7E},
+ {0x5D71, 0x6C68},
+ {0x5D72, 0x6C73},
+ {0x5D73, 0x6C92},
+ {0x5D74, 0x6C90},
+ {0x5D75, 0x6CC4},
+ {0x5D76, 0x6CF1},
+ {0x5D77, 0x6CD3},
+ {0x5D78, 0x6CBD},
+ {0x5D79, 0x6CD7},
+ {0x5D7A, 0x6CC5},
+ {0x5D7B, 0x6CDD},
+ {0x5D7C, 0x6CAE},
+ {0x5D7D, 0x6CB1},
+ {0x5D7E, 0x6CBE},
+ {0x5E21, 0x6CBA},
+ {0x5E22, 0x6CDB},
+ {0x5E23, 0x6CEF},
+ {0x5E24, 0x6CD9},
+ {0x5E25, 0x6CEA},
+ {0x5E26, 0x6D1F},
+ {0x5E27, 0x884D},
+ {0x5E28, 0x6D36},
+ {0x5E29, 0x6D2B},
+ {0x5E2A, 0x6D3D},
+ {0x5E2B, 0x6D38},
+ {0x5E2C, 0x6D19},
+ {0x5E2D, 0x6D35},
+ {0x5E2E, 0x6D33},
+ {0x5E2F, 0x6D12},
+ {0x5E30, 0x6D0C},
+ {0x5E31, 0x6D63},
+ {0x5E32, 0x6D93},
+ {0x5E33, 0x6D64},
+ {0x5E34, 0x6D5A},
+ {0x5E35, 0x6D79},
+ {0x5E36, 0x6D59},
+ {0x5E37, 0x6D8E},
+ {0x5E38, 0x6D95},
+ {0x5E39, 0x6FE4},
+ {0x5E3A, 0x6D85},
+ {0x5E3B, 0x6DF9},
+ {0x5E3C, 0x6E15},
+ {0x5E3D, 0x6E0A},
+ {0x5E3E, 0x6DB5},
+ {0x5E3F, 0x6DC7},
+ {0x5E40, 0x6DE6},
+ {0x5E41, 0x6DB8},
+ {0x5E42, 0x6DC6},
+ {0x5E43, 0x6DEC},
+ {0x5E44, 0x6DDE},
+ {0x5E45, 0x6DCC},
+ {0x5E46, 0x6DE8},
+ {0x5E47, 0x6DD2},
+ {0x5E48, 0x6DC5},
+ {0x5E49, 0x6DFA},
+ {0x5E4A, 0x6DD9},
+ {0x5E4B, 0x6DE4},
+ {0x5E4C, 0x6DD5},
+ {0x5E4D, 0x6DEA},
+ {0x5E4E, 0x6DEE},
+ {0x5E4F, 0x6E2D},
+ {0x5E50, 0x6E6E},
+ {0x5E51, 0x6E2E},
+ {0x5E52, 0x6E19},
+ {0x5E53, 0x6E72},
+ {0x5E54, 0x6E5F},
+ {0x5E55, 0x6E3E},
+ {0x5E56, 0x6E23},
+ {0x5E57, 0x6E6B},
+ {0x5E58, 0x6E2B},
+ {0x5E59, 0x6E76},
+ {0x5E5A, 0x6E4D},
+ {0x5E5B, 0x6E1F},
+ {0x5E5C, 0x6E43},
+ {0x5E5D, 0x6E3A},
+ {0x5E5E, 0x6E4E},
+ {0x5E5F, 0x6E24},
+ {0x5E60, 0x6EFF},
+ {0x5E61, 0x6E1D},
+ {0x5E62, 0x6E38},
+ {0x5E63, 0x6E82},
+ {0x5E64, 0x6EAA},
+ {0x5E65, 0x6E98},
+ {0x5E66, 0x6EC9},
+ {0x5E67, 0x6EB7},
+ {0x5E68, 0x6ED3},
+ {0x5E69, 0x6EBD},
+ {0x5E6A, 0x6EAF},
+ {0x5E6B, 0x6EC4},
+ {0x5E6C, 0x6EB2},
+ {0x5E6D, 0x6ED4},
+ {0x5E6E, 0x6ED5},
+ {0x5E6F, 0x6E8F},
+ {0x5E70, 0x6EA5},
+ {0x5E71, 0x6EC2},
+ {0x5E72, 0x6E9F},
+ {0x5E73, 0x6F41},
+ {0x5E74, 0x6F11},
+ {0x5E75, 0x704C},
+ {0x5E76, 0x6EEC},
+ {0x5E77, 0x6EF8},
+ {0x5E78, 0x6EFE},
+ {0x5E79, 0x6F3F},
+ {0x5E7A, 0x6EF2},
+ {0x5E7B, 0x6F31},
+ {0x5E7C, 0x6EEF},
+ {0x5E7D, 0x6F32},
+ {0x5E7E, 0x6ECC},
+ {0x5F21, 0x6F3E},
+ {0x5F22, 0x6F13},
+ {0x5F23, 0x6EF7},
+ {0x5F24, 0x6F86},
+ {0x5F25, 0x6F7A},
+ {0x5F26, 0x6F78},
+ {0x5F27, 0x6F81},
+ {0x5F28, 0x6F80},
+ {0x5F29, 0x6F6F},
+ {0x5F2A, 0x6F5B},
+ {0x5F2B, 0x6FF3},
+ {0x5F2C, 0x6F6D},
+ {0x5F2D, 0x6F82},
+ {0x5F2E, 0x6F7C},
+ {0x5F2F, 0x6F58},
+ {0x5F30, 0x6F8E},
+ {0x5F31, 0x6F91},
+ {0x5F32, 0x6FC2},
+ {0x5F33, 0x6F66},
+ {0x5F34, 0x6FB3},
+ {0x5F35, 0x6FA3},
+ {0x5F36, 0x6FA1},
+ {0x5F37, 0x6FA4},
+ {0x5F38, 0x6FB9},
+ {0x5F39, 0x6FC6},
+ {0x5F3A, 0x6FAA},
+ {0x5F3B, 0x6FDF},
+ {0x5F3C, 0x6FD5},
+ {0x5F3D, 0x6FEC},
+ {0x5F3E, 0x6FD4},
+ {0x5F3F, 0x6FD8},
+ {0x5F40, 0x6FF1},
+ {0x5F41, 0x6FEE},
+ {0x5F42, 0x6FDB},
+ {0x5F43, 0x7009},
+ {0x5F44, 0x700B},
+ {0x5F45, 0x6FFA},
+ {0x5F46, 0x7011},
+ {0x5F47, 0x7001},
+ {0x5F48, 0x700F},
+ {0x5F49, 0x6FFE},
+ {0x5F4A, 0x701B},
+ {0x5F4B, 0x701A},
+ {0x5F4C, 0x6F74},
+ {0x5F4D, 0x701D},
+ {0x5F4E, 0x7018},
+ {0x5F4F, 0x701F},
+ {0x5F50, 0x7030},
+ {0x5F51, 0x703E},
+ {0x5F52, 0x7032},
+ {0x5F53, 0x7051},
+ {0x5F54, 0x7063},
+ {0x5F55, 0x7099},
+ {0x5F56, 0x7092},
+ {0x5F57, 0x70AF},
+ {0x5F58, 0x70F1},
+ {0x5F59, 0x70AC},
+ {0x5F5A, 0x70B8},
+ {0x5F5B, 0x70B3},
+ {0x5F5C, 0x70AE},
+ {0x5F5D, 0x70DF},
+ {0x5F5E, 0x70CB},
+ {0x5F5F, 0x70DD},
+ {0x5F60, 0x70D9},
+ {0x5F61, 0x7109},
+ {0x5F62, 0x70FD},
+ {0x5F63, 0x711C},
+ {0x5F64, 0x7119},
+ {0x5F65, 0x7165},
+ {0x5F66, 0x7155},
+ {0x5F67, 0x7188},
+ {0x5F68, 0x7166},
+ {0x5F69, 0x7162},
+ {0x5F6A, 0x714C},
+ {0x5F6B, 0x7156},
+ {0x5F6C, 0x716C},
+ {0x5F6D, 0x718F},
+ {0x5F6E, 0x71FB},
+ {0x5F6F, 0x7184},
+ {0x5F70, 0x7195},
+ {0x5F71, 0x71A8},
+ {0x5F72, 0x71AC},
+ {0x5F73, 0x71D7},
+ {0x5F74, 0x71B9},
+ {0x5F75, 0x71BE},
+ {0x5F76, 0x71D2},
+ {0x5F77, 0x71C9},
+ {0x5F78, 0x71D4},
+ {0x5F79, 0x71CE},
+ {0x5F7A, 0x71E0},
+ {0x5F7B, 0x71EC},
+ {0x5F7C, 0x71E7},
+ {0x5F7D, 0x71F5},
+ {0x5F7E, 0x71FC},
+ {0x6021, 0x71F9},
+ {0x6022, 0x71FF},
+ {0x6023, 0x720D},
+ {0x6024, 0x7210},
+ {0x6025, 0x721B},
+ {0x6026, 0x7228},
+ {0x6027, 0x722D},
+ {0x6028, 0x722C},
+ {0x6029, 0x7230},
+ {0x602A, 0x7232},
+ {0x602B, 0x723B},
+ {0x602C, 0x723C},
+ {0x602D, 0x723F},
+ {0x602E, 0x7240},
+ {0x602F, 0x7246},
+ {0x6030, 0x724B},
+ {0x6031, 0x7258},
+ {0x6032, 0x7274},
+ {0x6033, 0x727E},
+ {0x6034, 0x7282},
+ {0x6035, 0x7281},
+ {0x6036, 0x7287},
+ {0x6037, 0x7292},
+ {0x6038, 0x7296},
+ {0x6039, 0x72A2},
+ {0x603A, 0x72A7},
+ {0x603B, 0x72B9},
+ {0x603C, 0x72B2},
+ {0x603D, 0x72C3},
+ {0x603E, 0x72C6},
+ {0x603F, 0x72C4},
+ {0x6040, 0x72CE},
+ {0x6041, 0x72D2},
+ {0x6042, 0x72E2},
+ {0x6043, 0x72E0},
+ {0x6044, 0x72E1},
+ {0x6045, 0x72F9},
+ {0x6046, 0x72F7},
+ {0x6047, 0x500F},
+ {0x6048, 0x7317},
+ {0x6049, 0x730A},
+ {0x604A, 0x731C},
+ {0x604B, 0x7316},
+ {0x604C, 0x731D},
+ {0x604D, 0x7334},
+ {0x604E, 0x732F},
+ {0x604F, 0x7329},
+ {0x6050, 0x7325},
+ {0x6051, 0x733E},
+ {0x6052, 0x734E},
+ {0x6053, 0x734F},
+ {0x6054, 0x9ED8},
+ {0x6055, 0x7357},
+ {0x6056, 0x736A},
+ {0x6057, 0x7368},
+ {0x6058, 0x7370},
+ {0x6059, 0x7378},
+ {0x605A, 0x7375},
+ {0x605B, 0x737B},
+ {0x605C, 0x737A},
+ {0x605D, 0x73C8},
+ {0x605E, 0x73B3},
+ {0x605F, 0x73CE},
+ {0x6060, 0x73BB},
+ {0x6061, 0x73C0},
+ {0x6062, 0x73E5},
+ {0x6063, 0x73EE},
+ {0x6064, 0x73DE},
+ {0x6065, 0x74A2},
+ {0x6066, 0x7405},
+ {0x6067, 0x746F},
+ {0x6068, 0x7425},
+ {0x6069, 0x73F8},
+ {0x606A, 0x7432},
+ {0x606B, 0x743A},
+ {0x606C, 0x7455},
+ {0x606D, 0x743F},
+ {0x606E, 0x745F},
+ {0x606F, 0x7459},
+ {0x6070, 0x7441},
+ {0x6071, 0x745C},
+ {0x6072, 0x7469},
+ {0x6073, 0x7470},
+ {0x6074, 0x7463},
+ {0x6075, 0x746A},
+ {0x6076, 0x7476},
+ {0x6077, 0x747E},
+ {0x6078, 0x748B},
+ {0x6079, 0x749E},
+ {0x607A, 0x74A7},
+ {0x607B, 0x74CA},
+ {0x607C, 0x74CF},
+ {0x607D, 0x74D4},
+ {0x607E, 0x73F1},
+ {0x6121, 0x74E0},
+ {0x6122, 0x74E3},
+ {0x6123, 0x74E7},
+ {0x6124, 0x74E9},
+ {0x6125, 0x74EE},
+ {0x6126, 0x74F2},
+ {0x6127, 0x74F0},
+ {0x6128, 0x74F1},
+ {0x6129, 0x74F8},
+ {0x612A, 0x74F7},
+ {0x612B, 0x7504},
+ {0x612C, 0x7503},
+ {0x612D, 0x7505},
+ {0x612E, 0x750C},
+ {0x612F, 0x750E},
+ {0x6130, 0x750D},
+ {0x6131, 0x7515},
+ {0x6132, 0x7513},
+ {0x6133, 0x751E},
+ {0x6134, 0x7526},
+ {0x6135, 0x752C},
+ {0x6136, 0x753C},
+ {0x6137, 0x7544},
+ {0x6138, 0x754D},
+ {0x6139, 0x754A},
+ {0x613A, 0x7549},
+ {0x613B, 0x755B},
+ {0x613C, 0x7546},
+ {0x613D, 0x755A},
+ {0x613E, 0x7569},
+ {0x613F, 0x7564},
+ {0x6140, 0x7567},
+ {0x6141, 0x756B},
+ {0x6142, 0x756D},
+ {0x6143, 0x7578},
+ {0x6144, 0x7576},
+ {0x6145, 0x7586},
+ {0x6146, 0x7587},
+ {0x6147, 0x7574},
+ {0x6148, 0x758A},
+ {0x6149, 0x7589},
+ {0x614A, 0x7582},
+ {0x614B, 0x7594},
+ {0x614C, 0x759A},
+ {0x614D, 0x759D},
+ {0x614E, 0x75A5},
+ {0x614F, 0x75A3},
+ {0x6150, 0x75C2},
+ {0x6151, 0x75B3},
+ {0x6152, 0x75C3},
+ {0x6153, 0x75B5},
+ {0x6154, 0x75BD},
+ {0x6155, 0x75B8},
+ {0x6156, 0x75BC},
+ {0x6157, 0x75B1},
+ {0x6158, 0x75CD},
+ {0x6159, 0x75CA},
+ {0x615A, 0x75D2},
+ {0x615B, 0x75D9},
+ {0x615C, 0x75E3},
+ {0x615D, 0x75DE},
+ {0x615E, 0x75FE},
+ {0x615F, 0x75FF},
+ {0x6160, 0x75FC},
+ {0x6161, 0x7601},
+ {0x6162, 0x75F0},
+ {0x6163, 0x75FA},
+ {0x6164, 0x75F2},
+ {0x6165, 0x75F3},
+ {0x6166, 0x760B},
+ {0x6167, 0x760D},
+ {0x6168, 0x7609},
+ {0x6169, 0x761F},
+ {0x616A, 0x7627},
+ {0x616B, 0x7620},
+ {0x616C, 0x7621},
+ {0x616D, 0x7622},
+ {0x616E, 0x7624},
+ {0x616F, 0x7634},
+ {0x6170, 0x7630},
+ {0x6171, 0x763B},
+ {0x6172, 0x7647},
+ {0x6173, 0x7648},
+ {0x6174, 0x7646},
+ {0x6175, 0x765C},
+ {0x6176, 0x7658},
+ {0x6177, 0x7661},
+ {0x6178, 0x7662},
+ {0x6179, 0x7668},
+ {0x617A, 0x7669},
+ {0x617B, 0x766A},
+ {0x617C, 0x7667},
+ {0x617D, 0x766C},
+ {0x617E, 0x7670},
+ {0x6221, 0x7672},
+ {0x6222, 0x7676},
+ {0x6223, 0x7678},
+ {0x6224, 0x767C},
+ {0x6225, 0x7680},
+ {0x6226, 0x7683},
+ {0x6227, 0x7688},
+ {0x6228, 0x768B},
+ {0x6229, 0x768E},
+ {0x622A, 0x7696},
+ {0x622B, 0x7693},
+ {0x622C, 0x7699},
+ {0x622D, 0x769A},
+ {0x622E, 0x76B0},
+ {0x622F, 0x76B4},
+ {0x6230, 0x76B8},
+ {0x6231, 0x76B9},
+ {0x6232, 0x76BA},
+ {0x6233, 0x76C2},
+ {0x6234, 0x76CD},
+ {0x6235, 0x76D6},
+ {0x6236, 0x76D2},
+ {0x6237, 0x76DE},
+ {0x6238, 0x76E1},
+ {0x6239, 0x76E5},
+ {0x623A, 0x76E7},
+ {0x623B, 0x76EA},
+ {0x623C, 0x862F},
+ {0x623D, 0x76FB},
+ {0x623E, 0x7708},
+ {0x623F, 0x7707},
+ {0x6240, 0x7704},
+ {0x6241, 0x7729},
+ {0x6242, 0x7724},
+ {0x6243, 0x771E},
+ {0x6244, 0x7725},
+ {0x6245, 0x7726},
+ {0x6246, 0x771B},
+ {0x6247, 0x7737},
+ {0x6248, 0x7738},
+ {0x6249, 0x7747},
+ {0x624A, 0x775A},
+ {0x624B, 0x7768},
+ {0x624C, 0x776B},
+ {0x624D, 0x775B},
+ {0x624E, 0x7765},
+ {0x624F, 0x777F},
+ {0x6250, 0x777E},
+ {0x6251, 0x7779},
+ {0x6252, 0x778E},
+ {0x6253, 0x778B},
+ {0x6254, 0x7791},
+ {0x6255, 0x77A0},
+ {0x6256, 0x779E},
+ {0x6257, 0x77B0},
+ {0x6258, 0x77B6},
+ {0x6259, 0x77B9},
+ {0x625A, 0x77BF},
+ {0x625B, 0x77BC},
+ {0x625C, 0x77BD},
+ {0x625D, 0x77BB},
+ {0x625E, 0x77C7},
+ {0x625F, 0x77CD},
+ {0x6260, 0x77D7},
+ {0x6261, 0x77DA},
+ {0x6262, 0x77DC},
+ {0x6263, 0x77E3},
+ {0x6264, 0x77EE},
+ {0x6265, 0x77FC},
+ {0x6266, 0x780C},
+ {0x6267, 0x7812},
+ {0x6268, 0x7926},
+ {0x6269, 0x7820},
+ {0x626A, 0x792A},
+ {0x626B, 0x7845},
+ {0x626C, 0x788E},
+ {0x626D, 0x7874},
+ {0x626E, 0x7886},
+ {0x626F, 0x787C},
+ {0x6270, 0x789A},
+ {0x6271, 0x788C},
+ {0x6272, 0x78A3},
+ {0x6273, 0x78B5},
+ {0x6274, 0x78AA},
+ {0x6275, 0x78AF},
+ {0x6276, 0x78D1},
+ {0x6277, 0x78C6},
+ {0x6278, 0x78CB},
+ {0x6279, 0x78D4},
+ {0x627A, 0x78BE},
+ {0x627B, 0x78BC},
+ {0x627C, 0x78C5},
+ {0x627D, 0x78CA},
+ {0x627E, 0x78EC},
+ {0x6321, 0x78E7},
+ {0x6322, 0x78DA},
+ {0x6323, 0x78FD},
+ {0x6324, 0x78F4},
+ {0x6325, 0x7907},
+ {0x6326, 0x7912},
+ {0x6327, 0x7911},
+ {0x6328, 0x7919},
+ {0x6329, 0x792C},
+ {0x632A, 0x792B},
+ {0x632B, 0x7940},
+ {0x632C, 0x7960},
+ {0x632D, 0x7957},
+ {0x632E, 0x795F},
+ {0x632F, 0x795A},
+ {0x6330, 0x7955},
+ {0x6331, 0x7953},
+ {0x6332, 0x797A},
+ {0x6333, 0x797F},
+ {0x6334, 0x798A},
+ {0x6335, 0x799D},
+ {0x6336, 0x79A7},
+ {0x6337, 0x9F4B},
+ {0x6338, 0x79AA},
+ {0x6339, 0x79AE},
+ {0x633A, 0x79B3},
+ {0x633B, 0x79B9},
+ {0x633C, 0x79BA},
+ {0x633D, 0x79C9},
+ {0x633E, 0x79D5},
+ {0x633F, 0x79E7},
+ {0x6340, 0x79EC},
+ {0x6341, 0x79E1},
+ {0x6342, 0x79E3},
+ {0x6343, 0x7A08},
+ {0x6344, 0x7A0D},
+ {0x6345, 0x7A18},
+ {0x6346, 0x7A19},
+ {0x6347, 0x7A20},
+ {0x6348, 0x7A1F},
+ {0x6349, 0x7980},
+ {0x634A, 0x7A31},
+ {0x634B, 0x7A3B},
+ {0x634C, 0x7A3E},
+ {0x634D, 0x7A37},
+ {0x634E, 0x7A43},
+ {0x634F, 0x7A57},
+ {0x6350, 0x7A49},
+ {0x6351, 0x7A61},
+ {0x6352, 0x7A62},
+ {0x6353, 0x7A69},
+ {0x6354, 0x9F9D},
+ {0x6355, 0x7A70},
+ {0x6356, 0x7A79},
+ {0x6357, 0x7A7D},
+ {0x6358, 0x7A88},
+ {0x6359, 0x7A97},
+ {0x635A, 0x7A95},
+ {0x635B, 0x7A98},
+ {0x635C, 0x7A96},
+ {0x635D, 0x7AA9},
+ {0x635E, 0x7AC8},
+ {0x635F, 0x7AB0},
+ {0x6360, 0x7AB6},
+ {0x6361, 0x7AC5},
+ {0x6362, 0x7AC4},
+ {0x6363, 0x7ABF},
+ {0x6364, 0x9083},
+ {0x6365, 0x7AC7},
+ {0x6366, 0x7ACA},
+ {0x6367, 0x7ACD},
+ {0x6368, 0x7ACF},
+ {0x6369, 0x7AD5},
+ {0x636A, 0x7AD3},
+ {0x636B, 0x7AD9},
+ {0x636C, 0x7ADA},
+ {0x636D, 0x7ADD},
+ {0x636E, 0x7AE1},
+ {0x636F, 0x7AE2},
+ {0x6370, 0x7AE6},
+ {0x6371, 0x7AED},
+ {0x6372, 0x7AF0},
+ {0x6373, 0x7B02},
+ {0x6374, 0x7B0F},
+ {0x6375, 0x7B0A},
+ {0x6376, 0x7B06},
+ {0x6377, 0x7B33},
+ {0x6378, 0x7B18},
+ {0x6379, 0x7B19},
+ {0x637A, 0x7B1E},
+ {0x637B, 0x7B35},
+ {0x637C, 0x7B28},
+ {0x637D, 0x7B36},
+ {0x637E, 0x7B50},
+ {0x6421, 0x7B7A},
+ {0x6422, 0x7B04},
+ {0x6423, 0x7B4D},
+ {0x6424, 0x7B0B},
+ {0x6425, 0x7B4C},
+ {0x6426, 0x7B45},
+ {0x6427, 0x7B75},
+ {0x6428, 0x7B65},
+ {0x6429, 0x7B74},
+ {0x642A, 0x7B67},
+ {0x642B, 0x7B70},
+ {0x642C, 0x7B71},
+ {0x642D, 0x7B6C},
+ {0x642E, 0x7B6E},
+ {0x642F, 0x7B9D},
+ {0x6430, 0x7B98},
+ {0x6431, 0x7B9F},
+ {0x6432, 0x7B8D},
+ {0x6433, 0x7B9C},
+ {0x6434, 0x7B9A},
+ {0x6435, 0x7B8B},
+ {0x6436, 0x7B92},
+ {0x6437, 0x7B8F},
+ {0x6438, 0x7B5D},
+ {0x6439, 0x7B99},
+ {0x643A, 0x7BCB},
+ {0x643B, 0x7BC1},
+ {0x643C, 0x7BCC},
+ {0x643D, 0x7BCF},
+ {0x643E, 0x7BB4},
+ {0x643F, 0x7BC6},
+ {0x6440, 0x7BDD},
+ {0x6441, 0x7BE9},
+ {0x6442, 0x7C11},
+ {0x6443, 0x7C14},
+ {0x6444, 0x7BE6},
+ {0x6445, 0x7BE5},
+ {0x6446, 0x7C60},
+ {0x6447, 0x7C00},
+ {0x6448, 0x7C07},
+ {0x6449, 0x7C13},
+ {0x644A, 0x7BF3},
+ {0x644B, 0x7BF7},
+ {0x644C, 0x7C17},
+ {0x644D, 0x7C0D},
+ {0x644E, 0x7BF6},
+ {0x644F, 0x7C23},
+ {0x6450, 0x7C27},
+ {0x6451, 0x7C2A},
+ {0x6452, 0x7C1F},
+ {0x6453, 0x7C37},
+ {0x6454, 0x7C2B},
+ {0x6455, 0x7C3D},
+ {0x6456, 0x7C4C},
+ {0x6457, 0x7C43},
+ {0x6458, 0x7C54},
+ {0x6459, 0x7C4F},
+ {0x645A, 0x7C40},
+ {0x645B, 0x7C50},
+ {0x645C, 0x7C58},
+ {0x645D, 0x7C5F},
+ {0x645E, 0x7C64},
+ {0x645F, 0x7C56},
+ {0x6460, 0x7C65},
+ {0x6461, 0x7C6C},
+ {0x6462, 0x7C75},
+ {0x6463, 0x7C83},
+ {0x6464, 0x7C90},
+ {0x6465, 0x7CA4},
+ {0x6466, 0x7CAD},
+ {0x6467, 0x7CA2},
+ {0x6468, 0x7CAB},
+ {0x6469, 0x7CA1},
+ {0x646A, 0x7CA8},
+ {0x646B, 0x7CB3},
+ {0x646C, 0x7CB2},
+ {0x646D, 0x7CB1},
+ {0x646E, 0x7CAE},
+ {0x646F, 0x7CB9},
+ {0x6470, 0x7CBD},
+ {0x6471, 0x7CC0},
+ {0x6472, 0x7CC5},
+ {0x6473, 0x7CC2},
+ {0x6474, 0x7CD8},
+ {0x6475, 0x7CD2},
+ {0x6476, 0x7CDC},
+ {0x6477, 0x7CE2},
+ {0x6478, 0x9B3B},
+ {0x6479, 0x7CEF},
+ {0x647A, 0x7CF2},
+ {0x647B, 0x7CF4},
+ {0x647C, 0x7CF6},
+ {0x647D, 0x7CFA},
+ {0x647E, 0x7D06},
+ {0x6521, 0x7D02},
+ {0x6522, 0x7D1C},
+ {0x6523, 0x7D15},
+ {0x6524, 0x7D0A},
+ {0x6525, 0x7D45},
+ {0x6526, 0x7D4B},
+ {0x6527, 0x7D2E},
+ {0x6528, 0x7D32},
+ {0x6529, 0x7D3F},
+ {0x652A, 0x7D35},
+ {0x652B, 0x7D46},
+ {0x652C, 0x7D73},
+ {0x652D, 0x7D56},
+ {0x652E, 0x7D4E},
+ {0x652F, 0x7D72},
+ {0x6530, 0x7D68},
+ {0x6531, 0x7D6E},
+ {0x6532, 0x7D4F},
+ {0x6533, 0x7D63},
+ {0x6534, 0x7D93},
+ {0x6535, 0x7D89},
+ {0x6536, 0x7D5B},
+ {0x6537, 0x7D8F},
+ {0x6538, 0x7D7D},
+ {0x6539, 0x7D9B},
+ {0x653A, 0x7DBA},
+ {0x653B, 0x7DAE},
+ {0x653C, 0x7DA3},
+ {0x653D, 0x7DB5},
+ {0x653E, 0x7DC7},
+ {0x653F, 0x7DBD},
+ {0x6540, 0x7DAB},
+ {0x6541, 0x7E3D},
+ {0x6542, 0x7DA2},
+ {0x6543, 0x7DAF},
+ {0x6544, 0x7DDC},
+ {0x6545, 0x7DB8},
+ {0x6546, 0x7D9F},
+ {0x6547, 0x7DB0},
+ {0x6548, 0x7DD8},
+ {0x6549, 0x7DDD},
+ {0x654A, 0x7DE4},
+ {0x654B, 0x7DDE},
+ {0x654C, 0x7DFB},
+ {0x654D, 0x7DF2},
+ {0x654E, 0x7DE1},
+ {0x654F, 0x7E05},
+ {0x6550, 0x7E0A},
+ {0x6551, 0x7E23},
+ {0x6552, 0x7E21},
+ {0x6553, 0x7E12},
+ {0x6554, 0x7E31},
+ {0x6555, 0x7E1F},
+ {0x6556, 0x7E09},
+ {0x6557, 0x7E0B},
+ {0x6558, 0x7E22},
+ {0x6559, 0x7E46},
+ {0x655A, 0x7E66},
+ {0x655B, 0x7E3B},
+ {0x655C, 0x7E35},
+ {0x655D, 0x7E39},
+ {0x655E, 0x7E43},
+ {0x655F, 0x7E37},
+ {0x6560, 0x7E32},
+ {0x6561, 0x7E3A},
+ {0x6562, 0x7E67},
+ {0x6563, 0x7E5D},
+ {0x6564, 0x7E56},
+ {0x6565, 0x7E5E},
+ {0x6566, 0x7E59},
+ {0x6567, 0x7E5A},
+ {0x6568, 0x7E79},
+ {0x6569, 0x7E6A},
+ {0x656A, 0x7E69},
+ {0x656B, 0x7E7C},
+ {0x656C, 0x7E7B},
+ {0x656D, 0x7E83},
+ {0x656E, 0x7DD5},
+ {0x656F, 0x7E7D},
+ {0x6570, 0x8FAE},
+ {0x6571, 0x7E7F},
+ {0x6572, 0x7E88},
+ {0x6573, 0x7E89},
+ {0x6574, 0x7E8C},
+ {0x6575, 0x7E92},
+ {0x6576, 0x7E90},
+ {0x6577, 0x7E93},
+ {0x6578, 0x7E94},
+ {0x6579, 0x7E96},
+ {0x657A, 0x7E8E},
+ {0x657B, 0x7E9B},
+ {0x657C, 0x7E9C},
+ {0x657D, 0x7F38},
+ {0x657E, 0x7F3A},
+ {0x6621, 0x7F45},
+ {0x6622, 0x7F4C},
+ {0x6623, 0x7F4D},
+ {0x6624, 0x7F4E},
+ {0x6625, 0x7F50},
+ {0x6626, 0x7F51},
+ {0x6627, 0x7F55},
+ {0x6628, 0x7F54},
+ {0x6629, 0x7F58},
+ {0x662A, 0x7F5F},
+ {0x662B, 0x7F60},
+ {0x662C, 0x7F68},
+ {0x662D, 0x7F69},
+ {0x662E, 0x7F67},
+ {0x662F, 0x7F78},
+ {0x6630, 0x7F82},
+ {0x6631, 0x7F86},
+ {0x6632, 0x7F83},
+ {0x6633, 0x7F88},
+ {0x6634, 0x7F87},
+ {0x6635, 0x7F8C},
+ {0x6636, 0x7F94},
+ {0x6637, 0x7F9E},
+ {0x6638, 0x7F9D},
+ {0x6639, 0x7F9A},
+ {0x663A, 0x7FA3},
+ {0x663B, 0x7FAF},
+ {0x663C, 0x7FB2},
+ {0x663D, 0x7FB9},
+ {0x663E, 0x7FAE},
+ {0x663F, 0x7FB6},
+ {0x6640, 0x7FB8},
+ {0x6641, 0x8B71},
+ {0x6642, 0x7FC5},
+ {0x6643, 0x7FC6},
+ {0x6644, 0x7FCA},
+ {0x6645, 0x7FD5},
+ {0x6646, 0x7FD4},
+ {0x6647, 0x7FE1},
+ {0x6648, 0x7FE6},
+ {0x6649, 0x7FE9},
+ {0x664A, 0x7FF3},
+ {0x664B, 0x7FF9},
+ {0x664C, 0x98DC},
+ {0x664D, 0x8006},
+ {0x664E, 0x8004},
+ {0x664F, 0x800B},
+ {0x6650, 0x8012},
+ {0x6651, 0x8018},
+ {0x6652, 0x8019},
+ {0x6653, 0x801C},
+ {0x6654, 0x8021},
+ {0x6655, 0x8028},
+ {0x6656, 0x803F},
+ {0x6657, 0x803B},
+ {0x6658, 0x804A},
+ {0x6659, 0x8046},
+ {0x665A, 0x8052},
+ {0x665B, 0x8058},
+ {0x665C, 0x805A},
+ {0x665D, 0x805F},
+ {0x665E, 0x8062},
+ {0x665F, 0x8068},
+ {0x6660, 0x8073},
+ {0x6661, 0x8072},
+ {0x6662, 0x8070},
+ {0x6663, 0x8076},
+ {0x6664, 0x8079},
+ {0x6665, 0x807D},
+ {0x6666, 0x807F},
+ {0x6667, 0x8084},
+ {0x6668, 0x8086},
+ {0x6669, 0x8085},
+ {0x666A, 0x809B},
+ {0x666B, 0x8093},
+ {0x666C, 0x809A},
+ {0x666D, 0x80AD},
+ {0x666E, 0x5190},
+ {0x666F, 0x80AC},
+ {0x6670, 0x80DB},
+ {0x6671, 0x80E5},
+ {0x6672, 0x80D9},
+ {0x6673, 0x80DD},
+ {0x6674, 0x80C4},
+ {0x6675, 0x80DA},
+ {0x6676, 0x80D6},
+ {0x6677, 0x8109},
+ {0x6678, 0x80EF},
+ {0x6679, 0x80F1},
+ {0x667A, 0x811B},
+ {0x667B, 0x8129},
+ {0x667C, 0x8123},
+ {0x667D, 0x812F},
+ {0x667E, 0x814B},
+ {0x6721, 0x968B},
+ {0x6722, 0x8146},
+ {0x6723, 0x813E},
+ {0x6724, 0x8153},
+ {0x6725, 0x8151},
+ {0x6726, 0x80FC},
+ {0x6727, 0x8171},
+ {0x6728, 0x816E},
+ {0x6729, 0x8165},
+ {0x672A, 0x8166},
+ {0x672B, 0x8174},
+ {0x672C, 0x8183},
+ {0x672D, 0x8188},
+ {0x672E, 0x818A},
+ {0x672F, 0x8180},
+ {0x6730, 0x8182},
+ {0x6731, 0x81A0},
+ {0x6732, 0x8195},
+ {0x6733, 0x81A4},
+ {0x6734, 0x81A3},
+ {0x6735, 0x815F},
+ {0x6736, 0x8193},
+ {0x6737, 0x81A9},
+ {0x6738, 0x81B0},
+ {0x6739, 0x81B5},
+ {0x673A, 0x81BE},
+ {0x673B, 0x81B8},
+ {0x673C, 0x81BD},
+ {0x673D, 0x81C0},
+ {0x673E, 0x81C2},
+ {0x673F, 0x81BA},
+ {0x6740, 0x81C9},
+ {0x6741, 0x81CD},
+ {0x6742, 0x81D1},
+ {0x6743, 0x81D9},
+ {0x6744, 0x81D8},
+ {0x6745, 0x81C8},
+ {0x6746, 0x81DA},
+ {0x6747, 0x81DF},
+ {0x6748, 0x81E0},
+ {0x6749, 0x81E7},
+ {0x674A, 0x81FA},
+ {0x674B, 0x81FB},
+ {0x674C, 0x81FE},
+ {0x674D, 0x8201},
+ {0x674E, 0x8202},
+ {0x674F, 0x8205},
+ {0x6750, 0x8207},
+ {0x6751, 0x820A},
+ {0x6752, 0x820D},
+ {0x6753, 0x8210},
+ {0x6754, 0x8216},
+ {0x6755, 0x8229},
+ {0x6756, 0x822B},
+ {0x6757, 0x8238},
+ {0x6758, 0x8233},
+ {0x6759, 0x8240},
+ {0x675A, 0x8259},
+ {0x675B, 0x8258},
+ {0x675C, 0x825D},
+ {0x675D, 0x825A},
+ {0x675E, 0x825F},
+ {0x675F, 0x8264},
+ {0x6760, 0x8262},
+ {0x6761, 0x8268},
+ {0x6762, 0x826A},
+ {0x6763, 0x826B},
+ {0x6764, 0x822E},
+ {0x6765, 0x8271},
+ {0x6766, 0x8277},
+ {0x6767, 0x8278},
+ {0x6768, 0x827E},
+ {0x6769, 0x828D},
+ {0x676A, 0x8292},
+ {0x676B, 0x82AB},
+ {0x676C, 0x829F},
+ {0x676D, 0x82BB},
+ {0x676E, 0x82AC},
+ {0x676F, 0x82E1},
+ {0x6770, 0x82E3},
+ {0x6771, 0x82DF},
+ {0x6772, 0x82D2},
+ {0x6773, 0x82F4},
+ {0x6774, 0x82F3},
+ {0x6775, 0x82FA},
+ {0x6776, 0x8393},
+ {0x6777, 0x8303},
+ {0x6778, 0x82FB},
+ {0x6779, 0x82F9},
+ {0x677A, 0x82DE},
+ {0x677B, 0x8306},
+ {0x677C, 0x82DC},
+ {0x677D, 0x8309},
+ {0x677E, 0x82D9},
+ {0x6821, 0x8335},
+ {0x6822, 0x8334},
+ {0x6823, 0x8316},
+ {0x6824, 0x8332},
+ {0x6825, 0x8331},
+ {0x6826, 0x8340},
+ {0x6827, 0x8339},
+ {0x6828, 0x8350},
+ {0x6829, 0x8345},
+ {0x682A, 0x832F},
+ {0x682B, 0x832B},
+ {0x682C, 0x8317},
+ {0x682D, 0x8318},
+ {0x682E, 0x8385},
+ {0x682F, 0x839A},
+ {0x6830, 0x83AA},
+ {0x6831, 0x839F},
+ {0x6832, 0x83A2},
+ {0x6833, 0x8396},
+ {0x6834, 0x8323},
+ {0x6835, 0x838E},
+ {0x6836, 0x8387},
+ {0x6837, 0x838A},
+ {0x6838, 0x837C},
+ {0x6839, 0x83B5},
+ {0x683A, 0x8373},
+ {0x683B, 0x8375},
+ {0x683C, 0x83A0},
+ {0x683D, 0x8389},
+ {0x683E, 0x83A8},
+ {0x683F, 0x83F4},
+ {0x6840, 0x8413},
+ {0x6841, 0x83EB},
+ {0x6842, 0x83CE},
+ {0x6843, 0x83FD},
+ {0x6844, 0x8403},
+ {0x6845, 0x83D8},
+ {0x6846, 0x840B},
+ {0x6847, 0x83C1},
+ {0x6848, 0x83F7},
+ {0x6849, 0x8407},
+ {0x684A, 0x83E0},
+ {0x684B, 0x83F2},
+ {0x684C, 0x840D},
+ {0x684D, 0x8422},
+ {0x684E, 0x8420},
+ {0x684F, 0x83BD},
+ {0x6850, 0x8438},
+ {0x6851, 0x8506},
+ {0x6852, 0x83FB},
+ {0x6853, 0x846D},
+ {0x6854, 0x842A},
+ {0x6855, 0x843C},
+ {0x6856, 0x855A},
+ {0x6857, 0x8484},
+ {0x6858, 0x8477},
+ {0x6859, 0x846B},
+ {0x685A, 0x84AD},
+ {0x685B, 0x846E},
+ {0x685C, 0x8482},
+ {0x685D, 0x8469},
+ {0x685E, 0x8446},
+ {0x685F, 0x842C},
+ {0x6860, 0x846F},
+ {0x6861, 0x8479},
+ {0x6862, 0x8435},
+ {0x6863, 0x84CA},
+ {0x6864, 0x8462},
+ {0x6865, 0x84B9},
+ {0x6866, 0x84BF},
+ {0x6867, 0x849F},
+ {0x6868, 0x84D9},
+ {0x6869, 0x84CD},
+ {0x686A, 0x84BB},
+ {0x686B, 0x84DA},
+ {0x686C, 0x84D0},
+ {0x686D, 0x84C1},
+ {0x686E, 0x84C6},
+ {0x686F, 0x84D6},
+ {0x6870, 0x84A1},
+ {0x6871, 0x8521},
+ {0x6872, 0x84FF},
+ {0x6873, 0x84F4},
+ {0x6874, 0x8517},
+ {0x6875, 0x8518},
+ {0x6876, 0x852C},
+ {0x6877, 0x851F},
+ {0x6878, 0x8515},
+ {0x6879, 0x8514},
+ {0x687A, 0x84FC},
+ {0x687B, 0x8540},
+ {0x687C, 0x8563},
+ {0x687D, 0x8558},
+ {0x687E, 0x8548},
+ {0x6921, 0x8541},
+ {0x6922, 0x8602},
+ {0x6923, 0x854B},
+ {0x6924, 0x8555},
+ {0x6925, 0x8580},
+ {0x6926, 0x85A4},
+ {0x6927, 0x8588},
+ {0x6928, 0x8591},
+ {0x6929, 0x858A},
+ {0x692A, 0x85A8},
+ {0x692B, 0x856D},
+ {0x692C, 0x8594},
+ {0x692D, 0x859B},
+ {0x692E, 0x85EA},
+ {0x692F, 0x8587},
+ {0x6930, 0x859C},
+ {0x6931, 0x8577},
+ {0x6932, 0x857E},
+ {0x6933, 0x8590},
+ {0x6934, 0x85C9},
+ {0x6935, 0x85BA},
+ {0x6936, 0x85CF},
+ {0x6937, 0x85B9},
+ {0x6938, 0x85D0},
+ {0x6939, 0x85D5},
+ {0x693A, 0x85DD},
+ {0x693B, 0x85E5},
+ {0x693C, 0x85DC},
+ {0x693D, 0x85F9},
+ {0x693E, 0x860A},
+ {0x693F, 0x8613},
+ {0x6940, 0x860B},
+ {0x6941, 0x85FE},
+ {0x6942, 0x85FA},
+ {0x6943, 0x8606},
+ {0x6944, 0x8622},
+ {0x6945, 0x861A},
+ {0x6946, 0x8630},
+ {0x6947, 0x863F},
+ {0x6948, 0x864D},
+ {0x6949, 0x4E55},
+ {0x694A, 0x8654},
+ {0x694B, 0x865F},
+ {0x694C, 0x8667},
+ {0x694D, 0x8671},
+ {0x694E, 0x8693},
+ {0x694F, 0x86A3},
+ {0x6950, 0x86A9},
+ {0x6951, 0x86AA},
+ {0x6952, 0x868B},
+ {0x6953, 0x868C},
+ {0x6954, 0x86B6},
+ {0x6955, 0x86AF},
+ {0x6956, 0x86C4},
+ {0x6957, 0x86C6},
+ {0x6958, 0x86B0},
+ {0x6959, 0x86C9},
+ {0x695A, 0x8823},
+ {0x695B, 0x86AB},
+ {0x695C, 0x86D4},
+ {0x695D, 0x86DE},
+ {0x695E, 0x86E9},
+ {0x695F, 0x86EC},
+ {0x6960, 0x86DF},
+ {0x6961, 0x86DB},
+ {0x6962, 0x86EF},
+ {0x6963, 0x8712},
+ {0x6964, 0x8706},
+ {0x6965, 0x8708},
+ {0x6966, 0x8700},
+ {0x6967, 0x8703},
+ {0x6968, 0x86FB},
+ {0x6969, 0x8711},
+ {0x696A, 0x8709},
+ {0x696B, 0x870D},
+ {0x696C, 0x86F9},
+ {0x696D, 0x870A},
+ {0x696E, 0x8734},
+ {0x696F, 0x873F},
+ {0x6970, 0x8737},
+ {0x6971, 0x873B},
+ {0x6972, 0x8725},
+ {0x6973, 0x8729},
+ {0x6974, 0x871A},
+ {0x6975, 0x8760},
+ {0x6976, 0x875F},
+ {0x6977, 0x8778},
+ {0x6978, 0x874C},
+ {0x6979, 0x874E},
+ {0x697A, 0x8774},
+ {0x697B, 0x8757},
+ {0x697C, 0x8768},
+ {0x697D, 0x876E},
+ {0x697E, 0x8759},
+ {0x6A21, 0x8753},
+ {0x6A22, 0x8763},
+ {0x6A23, 0x876A},
+ {0x6A24, 0x8805},
+ {0x6A25, 0x87A2},
+ {0x6A26, 0x879F},
+ {0x6A27, 0x8782},
+ {0x6A28, 0x87AF},
+ {0x6A29, 0x87CB},
+ {0x6A2A, 0x87BD},
+ {0x6A2B, 0x87C0},
+ {0x6A2C, 0x87D0},
+ {0x6A2D, 0x96D6},
+ {0x6A2E, 0x87AB},
+ {0x6A2F, 0x87C4},
+ {0x6A30, 0x87B3},
+ {0x6A31, 0x87C7},
+ {0x6A32, 0x87C6},
+ {0x6A33, 0x87BB},
+ {0x6A34, 0x87EF},
+ {0x6A35, 0x87F2},
+ {0x6A36, 0x87E0},
+ {0x6A37, 0x880F},
+ {0x6A38, 0x880D},
+ {0x6A39, 0x87FE},
+ {0x6A3A, 0x87F6},
+ {0x6A3B, 0x87F7},
+ {0x6A3C, 0x880E},
+ {0x6A3D, 0x87D2},
+ {0x6A3E, 0x8811},
+ {0x6A3F, 0x8816},
+ {0x6A40, 0x8815},
+ {0x6A41, 0x8822},
+ {0x6A42, 0x8821},
+ {0x6A43, 0x8831},
+ {0x6A44, 0x8836},
+ {0x6A45, 0x8839},
+ {0x6A46, 0x8827},
+ {0x6A47, 0x883B},
+ {0x6A48, 0x8844},
+ {0x6A49, 0x8842},
+ {0x6A4A, 0x8852},
+ {0x6A4B, 0x8859},
+ {0x6A4C, 0x885E},
+ {0x6A4D, 0x8862},
+ {0x6A4E, 0x886B},
+ {0x6A4F, 0x8881},
+ {0x6A50, 0x887E},
+ {0x6A51, 0x889E},
+ {0x6A52, 0x8875},
+ {0x6A53, 0x887D},
+ {0x6A54, 0x88B5},
+ {0x6A55, 0x8872},
+ {0x6A56, 0x8882},
+ {0x6A57, 0x8897},
+ {0x6A58, 0x8892},
+ {0x6A59, 0x88AE},
+ {0x6A5A, 0x8899},
+ {0x6A5B, 0x88A2},
+ {0x6A5C, 0x888D},
+ {0x6A5D, 0x88A4},
+ {0x6A5E, 0x88B0},
+ {0x6A5F, 0x88BF},
+ {0x6A60, 0x88B1},
+ {0x6A61, 0x88C3},
+ {0x6A62, 0x88C4},
+ {0x6A63, 0x88D4},
+ {0x6A64, 0x88D8},
+ {0x6A65, 0x88D9},
+ {0x6A66, 0x88DD},
+ {0x6A67, 0x88F9},
+ {0x6A68, 0x8902},
+ {0x6A69, 0x88FC},
+ {0x6A6A, 0x88F4},
+ {0x6A6B, 0x88E8},
+ {0x6A6C, 0x88F2},
+ {0x6A6D, 0x8904},
+ {0x6A6E, 0x890C},
+ {0x6A6F, 0x890A},
+ {0x6A70, 0x8913},
+ {0x6A71, 0x8943},
+ {0x6A72, 0x891E},
+ {0x6A73, 0x8925},
+ {0x6A74, 0x892A},
+ {0x6A75, 0x892B},
+ {0x6A76, 0x8941},
+ {0x6A77, 0x8944},
+ {0x6A78, 0x893B},
+ {0x6A79, 0x8936},
+ {0x6A7A, 0x8938},
+ {0x6A7B, 0x894C},
+ {0x6A7C, 0x891D},
+ {0x6A7D, 0x8960},
+ {0x6A7E, 0x895E},
+ {0x6B21, 0x8966},
+ {0x6B22, 0x8964},
+ {0x6B23, 0x896D},
+ {0x6B24, 0x896A},
+ {0x6B25, 0x896F},
+ {0x6B26, 0x8974},
+ {0x6B27, 0x8977},
+ {0x6B28, 0x897E},
+ {0x6B29, 0x8983},
+ {0x6B2A, 0x8988},
+ {0x6B2B, 0x898A},
+ {0x6B2C, 0x8993},
+ {0x6B2D, 0x8998},
+ {0x6B2E, 0x89A1},
+ {0x6B2F, 0x89A9},
+ {0x6B30, 0x89A6},
+ {0x6B31, 0x89AC},
+ {0x6B32, 0x89AF},
+ {0x6B33, 0x89B2},
+ {0x6B34, 0x89BA},
+ {0x6B35, 0x89BD},
+ {0x6B36, 0x89BF},
+ {0x6B37, 0x89C0},
+ {0x6B38, 0x89DA},
+ {0x6B39, 0x89DC},
+ {0x6B3A, 0x89DD},
+ {0x6B3B, 0x89E7},
+ {0x6B3C, 0x89F4},
+ {0x6B3D, 0x89F8},
+ {0x6B3E, 0x8A03},
+ {0x6B3F, 0x8A16},
+ {0x6B40, 0x8A10},
+ {0x6B41, 0x8A0C},
+ {0x6B42, 0x8A1B},
+ {0x6B43, 0x8A1D},
+ {0x6B44, 0x8A25},
+ {0x6B45, 0x8A36},
+ {0x6B46, 0x8A41},
+ {0x6B47, 0x8A5B},
+ {0x6B48, 0x8A52},
+ {0x6B49, 0x8A46},
+ {0x6B4A, 0x8A48},
+ {0x6B4B, 0x8A7C},
+ {0x6B4C, 0x8A6D},
+ {0x6B4D, 0x8A6C},
+ {0x6B4E, 0x8A62},
+ {0x6B4F, 0x8A85},
+ {0x6B50, 0x8A82},
+ {0x6B51, 0x8A84},
+ {0x6B52, 0x8AA8},
+ {0x6B53, 0x8AA1},
+ {0x6B54, 0x8A91},
+ {0x6B55, 0x8AA5},
+ {0x6B56, 0x8AA6},
+ {0x6B57, 0x8A9A},
+ {0x6B58, 0x8AA3},
+ {0x6B59, 0x8AC4},
+ {0x6B5A, 0x8ACD},
+ {0x6B5B, 0x8AC2},
+ {0x6B5C, 0x8ADA},
+ {0x6B5D, 0x8AEB},
+ {0x6B5E, 0x8AF3},
+ {0x6B5F, 0x8AE7},
+ {0x6B60, 0x8AE4},
+ {0x6B61, 0x8AF1},
+ {0x6B62, 0x8B14},
+ {0x6B63, 0x8AE0},
+ {0x6B64, 0x8AE2},
+ {0x6B65, 0x8AF7},
+ {0x6B66, 0x8ADE},
+ {0x6B67, 0x8ADB},
+ {0x6B68, 0x8B0C},
+ {0x6B69, 0x8B07},
+ {0x6B6A, 0x8B1A},
+ {0x6B6B, 0x8AE1},
+ {0x6B6C, 0x8B16},
+ {0x6B6D, 0x8B10},
+ {0x6B6E, 0x8B17},
+ {0x6B6F, 0x8B20},
+ {0x6B70, 0x8B33},
+ {0x6B71, 0x97AB},
+ {0x6B72, 0x8B26},
+ {0x6B73, 0x8B2B},
+ {0x6B74, 0x8B3E},
+ {0x6B75, 0x8B28},
+ {0x6B76, 0x8B41},
+ {0x6B77, 0x8B4C},
+ {0x6B78, 0x8B4F},
+ {0x6B79, 0x8B4E},
+ {0x6B7A, 0x8B49},
+ {0x6B7B, 0x8B56},
+ {0x6B7C, 0x8B5B},
+ {0x6B7D, 0x8B5A},
+ {0x6B7E, 0x8B6B},
+ {0x6C21, 0x8B5F},
+ {0x6C22, 0x8B6C},
+ {0x6C23, 0x8B6F},
+ {0x6C24, 0x8B74},
+ {0x6C25, 0x8B7D},
+ {0x6C26, 0x8B80},
+ {0x6C27, 0x8B8C},
+ {0x6C28, 0x8B8E},
+ {0x6C29, 0x8B92},
+ {0x6C2A, 0x8B93},
+ {0x6C2B, 0x8B96},
+ {0x6C2C, 0x8B99},
+ {0x6C2D, 0x8B9A},
+ {0x6C2E, 0x8C3A},
+ {0x6C2F, 0x8C41},
+ {0x6C30, 0x8C3F},
+ {0x6C31, 0x8C48},
+ {0x6C32, 0x8C4C},
+ {0x6C33, 0x8C4E},
+ {0x6C34, 0x8C50},
+ {0x6C35, 0x8C55},
+ {0x6C36, 0x8C62},
+ {0x6C37, 0x8C6C},
+ {0x6C38, 0x8C78},
+ {0x6C39, 0x8C7A},
+ {0x6C3A, 0x8C82},
+ {0x6C3B, 0x8C89},
+ {0x6C3C, 0x8C85},
+ {0x6C3D, 0x8C8A},
+ {0x6C3E, 0x8C8D},
+ {0x6C3F, 0x8C8E},
+ {0x6C40, 0x8C94},
+ {0x6C41, 0x8C7C},
+ {0x6C42, 0x8C98},
+ {0x6C43, 0x621D},
+ {0x6C44, 0x8CAD},
+ {0x6C45, 0x8CAA},
+ {0x6C46, 0x8CBD},
+ {0x6C47, 0x8CB2},
+ {0x6C48, 0x8CB3},
+ {0x6C49, 0x8CAE},
+ {0x6C4A, 0x8CB6},
+ {0x6C4B, 0x8CC8},
+ {0x6C4C, 0x8CC1},
+ {0x6C4D, 0x8CE4},
+ {0x6C4E, 0x8CE3},
+ {0x6C4F, 0x8CDA},
+ {0x6C50, 0x8CFD},
+ {0x6C51, 0x8CFA},
+ {0x6C52, 0x8CFB},
+ {0x6C53, 0x8D04},
+ {0x6C54, 0x8D05},
+ {0x6C55, 0x8D0A},
+ {0x6C56, 0x8D07},
+ {0x6C57, 0x8D0F},
+ {0x6C58, 0x8D0D},
+ {0x6C59, 0x8D10},
+ {0x6C5A, 0x9F4E},
+ {0x6C5B, 0x8D13},
+ {0x6C5C, 0x8CCD},
+ {0x6C5D, 0x8D14},
+ {0x6C5E, 0x8D16},
+ {0x6C5F, 0x8D67},
+ {0x6C60, 0x8D6D},
+ {0x6C61, 0x8D71},
+ {0x6C62, 0x8D73},
+ {0x6C63, 0x8D81},
+ {0x6C64, 0x8D99},
+ {0x6C65, 0x8DC2},
+ {0x6C66, 0x8DBE},
+ {0x6C67, 0x8DBA},
+ {0x6C68, 0x8DCF},
+ {0x6C69, 0x8DDA},
+ {0x6C6A, 0x8DD6},
+ {0x6C6B, 0x8DCC},
+ {0x6C6C, 0x8DDB},
+ {0x6C6D, 0x8DCB},
+ {0x6C6E, 0x8DEA},
+ {0x6C6F, 0x8DEB},
+ {0x6C70, 0x8DDF},
+ {0x6C71, 0x8DE3},
+ {0x6C72, 0x8DFC},
+ {0x6C73, 0x8E08},
+ {0x6C74, 0x8E09},
+ {0x6C75, 0x8DFF},
+ {0x6C76, 0x8E1D},
+ {0x6C77, 0x8E1E},
+ {0x6C78, 0x8E10},
+ {0x6C79, 0x8E1F},
+ {0x6C7A, 0x8E42},
+ {0x6C7B, 0x8E35},
+ {0x6C7C, 0x8E30},
+ {0x6C7D, 0x8E34},
+ {0x6C7E, 0x8E4A},
+ {0x6D21, 0x8E47},
+ {0x6D22, 0x8E49},
+ {0x6D23, 0x8E4C},
+ {0x6D24, 0x8E50},
+ {0x6D25, 0x8E48},
+ {0x6D26, 0x8E59},
+ {0x6D27, 0x8E64},
+ {0x6D28, 0x8E60},
+ {0x6D29, 0x8E2A},
+ {0x6D2A, 0x8E63},
+ {0x6D2B, 0x8E55},
+ {0x6D2C, 0x8E76},
+ {0x6D2D, 0x8E72},
+ {0x6D2E, 0x8E7C},
+ {0x6D2F, 0x8E81},
+ {0x6D30, 0x8E87},
+ {0x6D31, 0x8E85},
+ {0x6D32, 0x8E84},
+ {0x6D33, 0x8E8B},
+ {0x6D34, 0x8E8A},
+ {0x6D35, 0x8E93},
+ {0x6D36, 0x8E91},
+ {0x6D37, 0x8E94},
+ {0x6D38, 0x8E99},
+ {0x6D39, 0x8EAA},
+ {0x6D3A, 0x8EA1},
+ {0x6D3B, 0x8EAC},
+ {0x6D3C, 0x8EB0},
+ {0x6D3D, 0x8EC6},
+ {0x6D3E, 0x8EB1},
+ {0x6D3F, 0x8EBE},
+ {0x6D40, 0x8EC5},
+ {0x6D41, 0x8EC8},
+ {0x6D42, 0x8ECB},
+ {0x6D43, 0x8EDB},
+ {0x6D44, 0x8EE3},
+ {0x6D45, 0x8EFC},
+ {0x6D46, 0x8EFB},
+ {0x6D47, 0x8EEB},
+ {0x6D48, 0x8EFE},
+ {0x6D49, 0x8F0A},
+ {0x6D4A, 0x8F05},
+ {0x6D4B, 0x8F15},
+ {0x6D4C, 0x8F12},
+ {0x6D4D, 0x8F19},
+ {0x6D4E, 0x8F13},
+ {0x6D4F, 0x8F1C},
+ {0x6D50, 0x8F1F},
+ {0x6D51, 0x8F1B},
+ {0x6D52, 0x8F0C},
+ {0x6D53, 0x8F26},
+ {0x6D54, 0x8F33},
+ {0x6D55, 0x8F3B},
+ {0x6D56, 0x8F39},
+ {0x6D57, 0x8F45},
+ {0x6D58, 0x8F42},
+ {0x6D59, 0x8F3E},
+ {0x6D5A, 0x8F4C},
+ {0x6D5B, 0x8F49},
+ {0x6D5C, 0x8F46},
+ {0x6D5D, 0x8F4E},
+ {0x6D5E, 0x8F57},
+ {0x6D5F, 0x8F5C},
+ {0x6D60, 0x8F62},
+ {0x6D61, 0x8F63},
+ {0x6D62, 0x8F64},
+ {0x6D63, 0x8F9C},
+ {0x6D64, 0x8F9F},
+ {0x6D65, 0x8FA3},
+ {0x6D66, 0x8FAD},
+ {0x6D67, 0x8FAF},
+ {0x6D68, 0x8FB7},
+ {0x6D69, 0x8FDA},
+ {0x6D6A, 0x8FE5},
+ {0x6D6B, 0x8FE2},
+ {0x6D6C, 0x8FEA},
+ {0x6D6D, 0x8FEF},
+ {0x6D6E, 0x9087},
+ {0x6D6F, 0x8FF4},
+ {0x6D70, 0x9005},
+ {0x6D71, 0x8FF9},
+ {0x6D72, 0x8FFA},
+ {0x6D73, 0x9011},
+ {0x6D74, 0x9015},
+ {0x6D75, 0x9021},
+ {0x6D76, 0x900D},
+ {0x6D77, 0x901E},
+ {0x6D78, 0x9016},
+ {0x6D79, 0x900B},
+ {0x6D7A, 0x9027},
+ {0x6D7B, 0x9036},
+ {0x6D7C, 0x9035},
+ {0x6D7D, 0x9039},
+ {0x6D7E, 0x8FF8},
+ {0x6E21, 0x904F},
+ {0x6E22, 0x9050},
+ {0x6E23, 0x9051},
+ {0x6E24, 0x9052},
+ {0x6E25, 0x900E},
+ {0x6E26, 0x9049},
+ {0x6E27, 0x903E},
+ {0x6E28, 0x9056},
+ {0x6E29, 0x9058},
+ {0x6E2A, 0x905E},
+ {0x6E2B, 0x9068},
+ {0x6E2C, 0x906F},
+ {0x6E2D, 0x9076},
+ {0x6E2E, 0x96A8},
+ {0x6E2F, 0x9072},
+ {0x6E30, 0x9082},
+ {0x6E31, 0x907D},
+ {0x6E32, 0x9081},
+ {0x6E33, 0x9080},
+ {0x6E34, 0x908A},
+ {0x6E35, 0x9089},
+ {0x6E36, 0x908F},
+ {0x6E37, 0x90A8},
+ {0x6E38, 0x90AF},
+ {0x6E39, 0x90B1},
+ {0x6E3A, 0x90B5},
+ {0x6E3B, 0x90E2},
+ {0x6E3C, 0x90E4},
+ {0x6E3D, 0x6248},
+ {0x6E3E, 0x90DB},
+ {0x6E3F, 0x9102},
+ {0x6E40, 0x9112},
+ {0x6E41, 0x9119},
+ {0x6E42, 0x9132},
+ {0x6E43, 0x9130},
+ {0x6E44, 0x914A},
+ {0x6E45, 0x9156},
+ {0x6E46, 0x9158},
+ {0x6E47, 0x9163},
+ {0x6E48, 0x9165},
+ {0x6E49, 0x9169},
+ {0x6E4A, 0x9173},
+ {0x6E4B, 0x9172},
+ {0x6E4C, 0x918B},
+ {0x6E4D, 0x9189},
+ {0x6E4E, 0x9182},
+ {0x6E4F, 0x91A2},
+ {0x6E50, 0x91AB},
+ {0x6E51, 0x91AF},
+ {0x6E52, 0x91AA},
+ {0x6E53, 0x91B5},
+ {0x6E54, 0x91B4},
+ {0x6E55, 0x91BA},
+ {0x6E56, 0x91C0},
+ {0x6E57, 0x91C1},
+ {0x6E58, 0x91C9},
+ {0x6E59, 0x91CB},
+ {0x6E5A, 0x91D0},
+ {0x6E5B, 0x91D6},
+ {0x6E5C, 0x91DF},
+ {0x6E5D, 0x91E1},
+ {0x6E5E, 0x91DB},
+ {0x6E5F, 0x91FC},
+ {0x6E60, 0x91F5},
+ {0x6E61, 0x91F6},
+ {0x6E62, 0x921E},
+ {0x6E63, 0x91FF},
+ {0x6E64, 0x9214},
+ {0x6E65, 0x922C},
+ {0x6E66, 0x9215},
+ {0x6E67, 0x9211},
+ {0x6E68, 0x925E},
+ {0x6E69, 0x9257},
+ {0x6E6A, 0x9245},
+ {0x6E6B, 0x9249},
+ {0x6E6C, 0x9264},
+ {0x6E6D, 0x9248},
+ {0x6E6E, 0x9295},
+ {0x6E6F, 0x923F},
+ {0x6E70, 0x924B},
+ {0x6E71, 0x9250},
+ {0x6E72, 0x929C},
+ {0x6E73, 0x9296},
+ {0x6E74, 0x9293},
+ {0x6E75, 0x929B},
+ {0x6E76, 0x925A},
+ {0x6E77, 0x92CF},
+ {0x6E78, 0x92B9},
+ {0x6E79, 0x92B7},
+ {0x6E7A, 0x92E9},
+ {0x6E7B, 0x930F},
+ {0x6E7C, 0x92FA},
+ {0x6E7D, 0x9344},
+ {0x6E7E, 0x932E},
+ {0x6F21, 0x9319},
+ {0x6F22, 0x9322},
+ {0x6F23, 0x931A},
+ {0x6F24, 0x9323},
+ {0x6F25, 0x933A},
+ {0x6F26, 0x9335},
+ {0x6F27, 0x933B},
+ {0x6F28, 0x935C},
+ {0x6F29, 0x9360},
+ {0x6F2A, 0x937C},
+ {0x6F2B, 0x936E},
+ {0x6F2C, 0x9356},
+ {0x6F2D, 0x93B0},
+ {0x6F2E, 0x93AC},
+ {0x6F2F, 0x93AD},
+ {0x6F30, 0x9394},
+ {0x6F31, 0x93B9},
+ {0x6F32, 0x93D6},
+ {0x6F33, 0x93D7},
+ {0x6F34, 0x93E8},
+ {0x6F35, 0x93E5},
+ {0x6F36, 0x93D8},
+ {0x6F37, 0x93C3},
+ {0x6F38, 0x93DD},
+ {0x6F39, 0x93D0},
+ {0x6F3A, 0x93C8},
+ {0x6F3B, 0x93E4},
+ {0x6F3C, 0x941A},
+ {0x6F3D, 0x9414},
+ {0x6F3E, 0x9413},
+ {0x6F3F, 0x9403},
+ {0x6F40, 0x9407},
+ {0x6F41, 0x9410},
+ {0x6F42, 0x9436},
+ {0x6F43, 0x942B},
+ {0x6F44, 0x9435},
+ {0x6F45, 0x9421},
+ {0x6F46, 0x943A},
+ {0x6F47, 0x9441},
+ {0x6F48, 0x9452},
+ {0x6F49, 0x9444},
+ {0x6F4A, 0x945B},
+ {0x6F4B, 0x9460},
+ {0x6F4C, 0x9462},
+ {0x6F4D, 0x945E},
+ {0x6F4E, 0x946A},
+ {0x6F4F, 0x9229},
+ {0x6F50, 0x9470},
+ {0x6F51, 0x9475},
+ {0x6F52, 0x9477},
+ {0x6F53, 0x947D},
+ {0x6F54, 0x945A},
+ {0x6F55, 0x947C},
+ {0x6F56, 0x947E},
+ {0x6F57, 0x9481},
+ {0x6F58, 0x947F},
+ {0x6F59, 0x9582},
+ {0x6F5A, 0x9587},
+ {0x6F5B, 0x958A},
+ {0x6F5C, 0x9594},
+ {0x6F5D, 0x9596},
+ {0x6F5E, 0x9598},
+ {0x6F5F, 0x9599},
+ {0x6F60, 0x95A0},
+ {0x6F61, 0x95A8},
+ {0x6F62, 0x95A7},
+ {0x6F63, 0x95AD},
+ {0x6F64, 0x95BC},
+ {0x6F65, 0x95BB},
+ {0x6F66, 0x95B9},
+ {0x6F67, 0x95BE},
+ {0x6F68, 0x95CA},
+ {0x6F69, 0x6FF6},
+ {0x6F6A, 0x95C3},
+ {0x6F6B, 0x95CD},
+ {0x6F6C, 0x95CC},
+ {0x6F6D, 0x95D5},
+ {0x6F6E, 0x95D4},
+ {0x6F6F, 0x95D6},
+ {0x6F70, 0x95DC},
+ {0x6F71, 0x95E1},
+ {0x6F72, 0x95E5},
+ {0x6F73, 0x95E2},
+ {0x6F74, 0x9621},
+ {0x6F75, 0x9628},
+ {0x6F76, 0x962E},
+ {0x6F77, 0x962F},
+ {0x6F78, 0x9642},
+ {0x6F79, 0x964C},
+ {0x6F7A, 0x964F},
+ {0x6F7B, 0x964B},
+ {0x6F7C, 0x9677},
+ {0x6F7D, 0x965C},
+ {0x6F7E, 0x965E},
+ {0x7021, 0x965D},
+ {0x7022, 0x965F},
+ {0x7023, 0x9666},
+ {0x7024, 0x9672},
+ {0x7025, 0x966C},
+ {0x7026, 0x968D},
+ {0x7027, 0x9698},
+ {0x7028, 0x9695},
+ {0x7029, 0x9697},
+ {0x702A, 0x96AA},
+ {0x702B, 0x96A7},
+ {0x702C, 0x96B1},
+ {0x702D, 0x96B2},
+ {0x702E, 0x96B0},
+ {0x702F, 0x96B4},
+ {0x7030, 0x96B6},
+ {0x7031, 0x96B8},
+ {0x7032, 0x96B9},
+ {0x7033, 0x96CE},
+ {0x7034, 0x96CB},
+ {0x7035, 0x96C9},
+ {0x7036, 0x96CD},
+ {0x7037, 0x894D},
+ {0x7038, 0x96DC},
+ {0x7039, 0x970D},
+ {0x703A, 0x96D5},
+ {0x703B, 0x96F9},
+ {0x703C, 0x9704},
+ {0x703D, 0x9706},
+ {0x703E, 0x9708},
+ {0x703F, 0x9713},
+ {0x7040, 0x970E},
+ {0x7041, 0x9711},
+ {0x7042, 0x970F},
+ {0x7043, 0x9716},
+ {0x7044, 0x9719},
+ {0x7045, 0x9724},
+ {0x7046, 0x972A},
+ {0x7047, 0x9730},
+ {0x7048, 0x9739},
+ {0x7049, 0x973D},
+ {0x704A, 0x973E},
+ {0x704B, 0x9744},
+ {0x704C, 0x9746},
+ {0x704D, 0x9748},
+ {0x704E, 0x9742},
+ {0x704F, 0x9749},
+ {0x7050, 0x975C},
+ {0x7051, 0x9760},
+ {0x7052, 0x9764},
+ {0x7053, 0x9766},
+ {0x7054, 0x9768},
+ {0x7055, 0x52D2},
+ {0x7056, 0x976B},
+ {0x7057, 0x9771},
+ {0x7058, 0x9779},
+ {0x7059, 0x9785},
+ {0x705A, 0x977C},
+ {0x705B, 0x9781},
+ {0x705C, 0x977A},
+ {0x705D, 0x9786},
+ {0x705E, 0x978B},
+ {0x705F, 0x978F},
+ {0x7060, 0x9790},
+ {0x7061, 0x979C},
+ {0x7062, 0x97A8},
+ {0x7063, 0x97A6},
+ {0x7064, 0x97A3},
+ {0x7065, 0x97B3},
+ {0x7066, 0x97B4},
+ {0x7067, 0x97C3},
+ {0x7068, 0x97C6},
+ {0x7069, 0x97C8},
+ {0x706A, 0x97CB},
+ {0x706B, 0x97DC},
+ {0x706C, 0x97ED},
+ {0x706D, 0x9F4F},
+ {0x706E, 0x97F2},
+ {0x706F, 0x7ADF},
+ {0x7070, 0x97F6},
+ {0x7071, 0x97F5},
+ {0x7072, 0x980F},
+ {0x7073, 0x980C},
+ {0x7074, 0x9838},
+ {0x7075, 0x9824},
+ {0x7076, 0x9821},
+ {0x7077, 0x9837},
+ {0x7078, 0x983D},
+ {0x7079, 0x9846},
+ {0x707A, 0x984F},
+ {0x707B, 0x984B},
+ {0x707C, 0x986B},
+ {0x707D, 0x986F},
+ {0x707E, 0x9870},
+ {0x7121, 0x9871},
+ {0x7122, 0x9874},
+ {0x7123, 0x9873},
+ {0x7124, 0x98AA},
+ {0x7125, 0x98AF},
+ {0x7126, 0x98B1},
+ {0x7127, 0x98B6},
+ {0x7128, 0x98C4},
+ {0x7129, 0x98C3},
+ {0x712A, 0x98C6},
+ {0x712B, 0x98E9},
+ {0x712C, 0x98EB},
+ {0x712D, 0x9903},
+ {0x712E, 0x9909},
+ {0x712F, 0x9912},
+ {0x7130, 0x9914},
+ {0x7131, 0x9918},
+ {0x7132, 0x9921},
+ {0x7133, 0x991D},
+ {0x7134, 0x991E},
+ {0x7135, 0x9924},
+ {0x7136, 0x9920},
+ {0x7137, 0x992C},
+ {0x7138, 0x992E},
+ {0x7139, 0x993D},
+ {0x713A, 0x993E},
+ {0x713B, 0x9942},
+ {0x713C, 0x9949},
+ {0x713D, 0x9945},
+ {0x713E, 0x9950},
+ {0x713F, 0x994B},
+ {0x7140, 0x9951},
+ {0x7141, 0x9952},
+ {0x7142, 0x994C},
+ {0x7143, 0x9955},
+ {0x7144, 0x9997},
+ {0x7145, 0x9998},
+ {0x7146, 0x99A5},
+ {0x7147, 0x99AD},
+ {0x7148, 0x99AE},
+ {0x7149, 0x99BC},
+ {0x714A, 0x99DF},
+ {0x714B, 0x99DB},
+ {0x714C, 0x99DD},
+ {0x714D, 0x99D8},
+ {0x714E, 0x99D1},
+ {0x714F, 0x99ED},
+ {0x7150, 0x99EE},
+ {0x7151, 0x99F1},
+ {0x7152, 0x99F2},
+ {0x7153, 0x99FB},
+ {0x7154, 0x99F8},
+ {0x7155, 0x9A01},
+ {0x7156, 0x9A0F},
+ {0x7157, 0x9A05},
+ {0x7158, 0x99E2},
+ {0x7159, 0x9A19},
+ {0x715A, 0x9A2B},
+ {0x715B, 0x9A37},
+ {0x715C, 0x9A45},
+ {0x715D, 0x9A42},
+ {0x715E, 0x9A40},
+ {0x715F, 0x9A43},
+ {0x7160, 0x9A3E},
+ {0x7161, 0x9A55},
+ {0x7162, 0x9A4D},
+ {0x7163, 0x9A5B},
+ {0x7164, 0x9A57},
+ {0x7165, 0x9A5F},
+ {0x7166, 0x9A62},
+ {0x7167, 0x9A65},
+ {0x7168, 0x9A64},
+ {0x7169, 0x9A69},
+ {0x716A, 0x9A6B},
+ {0x716B, 0x9A6A},
+ {0x716C, 0x9AAD},
+ {0x716D, 0x9AB0},
+ {0x716E, 0x9ABC},
+ {0x716F, 0x9AC0},
+ {0x7170, 0x9ACF},
+ {0x7171, 0x9AD1},
+ {0x7172, 0x9AD3},
+ {0x7173, 0x9AD4},
+ {0x7174, 0x9ADE},
+ {0x7175, 0x9ADF},
+ {0x7176, 0x9AE2},
+ {0x7177, 0x9AE3},
+ {0x7178, 0x9AE6},
+ {0x7179, 0x9AEF},
+ {0x717A, 0x9AEB},
+ {0x717B, 0x9AEE},
+ {0x717C, 0x9AF4},
+ {0x717D, 0x9AF1},
+ {0x717E, 0x9AF7},
+ {0x7221, 0x9AFB},
+ {0x7222, 0x9B06},
+ {0x7223, 0x9B18},
+ {0x7224, 0x9B1A},
+ {0x7225, 0x9B1F},
+ {0x7226, 0x9B22},
+ {0x7227, 0x9B23},
+ {0x7228, 0x9B25},
+ {0x7229, 0x9B27},
+ {0x722A, 0x9B28},
+ {0x722B, 0x9B29},
+ {0x722C, 0x9B2A},
+ {0x722D, 0x9B2E},
+ {0x722E, 0x9B2F},
+ {0x722F, 0x9B32},
+ {0x7230, 0x9B44},
+ {0x7231, 0x9B43},
+ {0x7232, 0x9B4F},
+ {0x7233, 0x9B4D},
+ {0x7234, 0x9B4E},
+ {0x7235, 0x9B51},
+ {0x7236, 0x9B58},
+ {0x7237, 0x9B74},
+ {0x7238, 0x9B93},
+ {0x7239, 0x9B83},
+ {0x723A, 0x9B91},
+ {0x723B, 0x9B96},
+ {0x723C, 0x9B97},
+ {0x723D, 0x9B9F},
+ {0x723E, 0x9BA0},
+ {0x723F, 0x9BA8},
+ {0x7240, 0x9BB4},
+ {0x7241, 0x9BC0},
+ {0x7242, 0x9BCA},
+ {0x7243, 0x9BB9},
+ {0x7244, 0x9BC6},
+ {0x7245, 0x9BCF},
+ {0x7246, 0x9BD1},
+ {0x7247, 0x9BD2},
+ {0x7248, 0x9BE3},
+ {0x7249, 0x9BE2},
+ {0x724A, 0x9BE4},
+ {0x724B, 0x9BD4},
+ {0x724C, 0x9BE1},
+ {0x724D, 0x9C3A},
+ {0x724E, 0x9BF2},
+ {0x724F, 0x9BF1},
+ {0x7250, 0x9BF0},
+ {0x7251, 0x9C15},
+ {0x7252, 0x9C14},
+ {0x7253, 0x9C09},
+ {0x7254, 0x9C13},
+ {0x7255, 0x9C0C},
+ {0x7256, 0x9C06},
+ {0x7257, 0x9C08},
+ {0x7258, 0x9C12},
+ {0x7259, 0x9C0A},
+ {0x725A, 0x9C04},
+ {0x725B, 0x9C2E},
+ {0x725C, 0x9C1B},
+ {0x725D, 0x9C25},
+ {0x725E, 0x9C24},
+ {0x725F, 0x9C21},
+ {0x7260, 0x9C30},
+ {0x7261, 0x9C47},
+ {0x7262, 0x9C32},
+ {0x7263, 0x9C46},
+ {0x7264, 0x9C3E},
+ {0x7265, 0x9C5A},
+ {0x7266, 0x9C60},
+ {0x7267, 0x9C67},
+ {0x7268, 0x9C76},
+ {0x7269, 0x9C78},
+ {0x726A, 0x9CE7},
+ {0x726B, 0x9CEC},
+ {0x726C, 0x9CF0},
+ {0x726D, 0x9D09},
+ {0x726E, 0x9D08},
+ {0x726F, 0x9CEB},
+ {0x7270, 0x9D03},
+ {0x7271, 0x9D06},
+ {0x7272, 0x9D2A},
+ {0x7273, 0x9D26},
+ {0x7274, 0x9DAF},
+ {0x7275, 0x9D23},
+ {0x7276, 0x9D1F},
+ {0x7277, 0x9D44},
+ {0x7278, 0x9D15},
+ {0x7279, 0x9D12},
+ {0x727A, 0x9D41},
+ {0x727B, 0x9D3F},
+ {0x727C, 0x9D3E},
+ {0x727D, 0x9D46},
+ {0x727E, 0x9D48},
+ {0x7321, 0x9D5D},
+ {0x7322, 0x9D5E},
+ {0x7323, 0x9D64},
+ {0x7324, 0x9D51},
+ {0x7325, 0x9D50},
+ {0x7326, 0x9D59},
+ {0x7327, 0x9D72},
+ {0x7328, 0x9D89},
+ {0x7329, 0x9D87},
+ {0x732A, 0x9DAB},
+ {0x732B, 0x9D6F},
+ {0x732C, 0x9D7A},
+ {0x732D, 0x9D9A},
+ {0x732E, 0x9DA4},
+ {0x732F, 0x9DA9},
+ {0x7330, 0x9DB2},
+ {0x7331, 0x9DC4},
+ {0x7332, 0x9DC1},
+ {0x7333, 0x9DBB},
+ {0x7334, 0x9DB8},
+ {0x7335, 0x9DBA},
+ {0x7336, 0x9DC6},
+ {0x7337, 0x9DCF},
+ {0x7338, 0x9DC2},
+ {0x7339, 0x9DD9},
+ {0x733A, 0x9DD3},
+ {0x733B, 0x9DF8},
+ {0x733C, 0x9DE6},
+ {0x733D, 0x9DED},
+ {0x733E, 0x9DEF},
+ {0x733F, 0x9DFD},
+ {0x7340, 0x9E1A},
+ {0x7341, 0x9E1B},
+ {0x7342, 0x9E1E},
+ {0x7343, 0x9E75},
+ {0x7344, 0x9E79},
+ {0x7345, 0x9E7D},
+ {0x7346, 0x9E81},
+ {0x7347, 0x9E88},
+ {0x7348, 0x9E8B},
+ {0x7349, 0x9E8C},
+ {0x734A, 0x9E92},
+ {0x734B, 0x9E95},
+ {0x734C, 0x9E91},
+ {0x734D, 0x9E9D},
+ {0x734E, 0x9EA5},
+ {0x734F, 0x9EA9},
+ {0x7350, 0x9EB8},
+ {0x7351, 0x9EAA},
+ {0x7352, 0x9EAD},
+ {0x7353, 0x9761},
+ {0x7354, 0x9ECC},
+ {0x7355, 0x9ECE},
+ {0x7356, 0x9ECF},
+ {0x7357, 0x9ED0},
+ {0x7358, 0x9ED4},
+ {0x7359, 0x9EDC},
+ {0x735A, 0x9EDE},
+ {0x735B, 0x9EDD},
+ {0x735C, 0x9EE0},
+ {0x735D, 0x9EE5},
+ {0x735E, 0x9EE8},
+ {0x735F, 0x9EEF},
+ {0x7360, 0x9EF4},
+ {0x7361, 0x9EF6},
+ {0x7362, 0x9EF7},
+ {0x7363, 0x9EF9},
+ {0x7364, 0x9EFB},
+ {0x7365, 0x9EFC},
+ {0x7366, 0x9EFD},
+ {0x7367, 0x9F07},
+ {0x7368, 0x9F08},
+ {0x7369, 0x76B7},
+ {0x736A, 0x9F15},
+ {0x736B, 0x9F21},
+ {0x736C, 0x9F2C},
+ {0x736D, 0x9F3E},
+ {0x736E, 0x9F4A},
+ {0x736F, 0x9F52},
+ {0x7370, 0x9F54},
+ {0x7371, 0x9F63},
+ {0x7372, 0x9F5F},
+ {0x7373, 0x9F60},
+ {0x7374, 0x9F61},
+ {0x7375, 0x9F66},
+ {0x7376, 0x9F67},
+ {0x7377, 0x9F6C},
+ {0x7378, 0x9F6A},
+ {0x7379, 0x9F77},
+ {0x737A, 0x9F72},
+ {0x737B, 0x9F76},
+ {0x737C, 0x9F95},
+ {0x737D, 0x9F9C},
+ {0x737E, 0x9FA0},
+ {0x7421, 0x582F},
+ {0x7422, 0x69C7},
+ {0x7423, 0x9059},
+ {0x7424, 0x7464},
+ {0x7425, 0x51DC},
+ {0x7426, 0x7199},
diff --git a/vte/src/unitable.JIS0212 b/vte/src/unitable.JIS0212
new file mode 100644
index 0000000..b4e26d0
--- /dev/null
+++ b/vte/src/unitable.JIS0212
@@ -0,0 +1,6068 @@
+ /* generated file -- do not edit */
+ {0x222F, 0x02D8},
+ {0x2230, 0x02C7},
+ {0x2231, 0x00B8},
+ {0x2232, 0x02D9},
+ {0x2233, 0x02DD},
+ {0x2234, 0x00AF},
+ {0x2235, 0x02DB},
+ {0x2236, 0x02DA},
+ {0x2237, 0x007E},
+ {0x2238, 0x0384},
+ {0x2239, 0x0385},
+ {0x2242, 0x00A1},
+ {0x2243, 0x00A6},
+ {0x2244, 0x00BF},
+ {0x226B, 0x00BA},
+ {0x226C, 0x00AA},
+ {0x226D, 0x00A9},
+ {0x226E, 0x00AE},
+ {0x226F, 0x2122},
+ {0x2270, 0x00A4},
+ {0x2271, 0x2116},
+ {0x2661, 0x0386},
+ {0x2662, 0x0388},
+ {0x2663, 0x0389},
+ {0x2664, 0x038A},
+ {0x2665, 0x03AA},
+ {0x2667, 0x038C},
+ {0x2669, 0x038E},
+ {0x266A, 0x03AB},
+ {0x266C, 0x038F},
+ {0x2671, 0x03AC},
+ {0x2672, 0x03AD},
+ {0x2673, 0x03AE},
+ {0x2674, 0x03AF},
+ {0x2675, 0x03CA},
+ {0x2676, 0x0390},
+ {0x2677, 0x03CC},
+ {0x2678, 0x03C2},
+ {0x2679, 0x03CD},
+ {0x267A, 0x03CB},
+ {0x267B, 0x03B0},
+ {0x267C, 0x03CE},
+ {0x2742, 0x0402},
+ {0x2743, 0x0403},
+ {0x2744, 0x0404},
+ {0x2745, 0x0405},
+ {0x2746, 0x0406},
+ {0x2747, 0x0407},
+ {0x2748, 0x0408},
+ {0x2749, 0x0409},
+ {0x274A, 0x040A},
+ {0x274B, 0x040B},
+ {0x274C, 0x040C},
+ {0x274D, 0x040E},
+ {0x274E, 0x040F},
+ {0x2772, 0x0452},
+ {0x2773, 0x0453},
+ {0x2774, 0x0454},
+ {0x2775, 0x0455},
+ {0x2776, 0x0456},
+ {0x2777, 0x0457},
+ {0x2778, 0x0458},
+ {0x2779, 0x0459},
+ {0x277A, 0x045A},
+ {0x277B, 0x045B},
+ {0x277C, 0x045C},
+ {0x277D, 0x045E},
+ {0x277E, 0x045F},
+ {0x2921, 0x00C6},
+ {0x2922, 0x0110},
+ {0x2924, 0x0126},
+ {0x2926, 0x0132},
+ {0x2928, 0x0141},
+ {0x2929, 0x013F},
+ {0x292B, 0x014A},
+ {0x292C, 0x00D8},
+ {0x292D, 0x0152},
+ {0x292F, 0x0166},
+ {0x2930, 0x00DE},
+ {0x2941, 0x00E6},
+ {0x2942, 0x0111},
+ {0x2943, 0x00F0},
+ {0x2944, 0x0127},
+ {0x2945, 0x0131},
+ {0x2946, 0x0133},
+ {0x2947, 0x0138},
+ {0x2948, 0x0142},
+ {0x2949, 0x0140},
+ {0x294A, 0x0149},
+ {0x294B, 0x014B},
+ {0x294C, 0x00F8},
+ {0x294D, 0x0153},
+ {0x294E, 0x00DF},
+ {0x294F, 0x0167},
+ {0x2950, 0x00FE},
+ {0x2A21, 0x00C1},
+ {0x2A22, 0x00C0},
+ {0x2A23, 0x00C4},
+ {0x2A24, 0x00C2},
+ {0x2A25, 0x0102},
+ {0x2A26, 0x01CD},
+ {0x2A27, 0x0100},
+ {0x2A28, 0x0104},
+ {0x2A29, 0x00C5},
+ {0x2A2A, 0x00C3},
+ {0x2A2B, 0x0106},
+ {0x2A2C, 0x0108},
+ {0x2A2D, 0x010C},
+ {0x2A2E, 0x00C7},
+ {0x2A2F, 0x010A},
+ {0x2A30, 0x010E},
+ {0x2A31, 0x00C9},
+ {0x2A32, 0x00C8},
+ {0x2A33, 0x00CB},
+ {0x2A34, 0x00CA},
+ {0x2A35, 0x011A},
+ {0x2A36, 0x0116},
+ {0x2A37, 0x0112},
+ {0x2A38, 0x0118},
+ {0x2A3A, 0x011C},
+ {0x2A3B, 0x011E},
+ {0x2A3C, 0x0122},
+ {0x2A3D, 0x0120},
+ {0x2A3E, 0x0124},
+ {0x2A3F, 0x00CD},
+ {0x2A40, 0x00CC},
+ {0x2A41, 0x00CF},
+ {0x2A42, 0x00CE},
+ {0x2A43, 0x01CF},
+ {0x2A44, 0x0130},
+ {0x2A45, 0x012A},
+ {0x2A46, 0x012E},
+ {0x2A47, 0x0128},
+ {0x2A48, 0x0134},
+ {0x2A49, 0x0136},
+ {0x2A4A, 0x0139},
+ {0x2A4B, 0x013D},
+ {0x2A4C, 0x013B},
+ {0x2A4D, 0x0143},
+ {0x2A4E, 0x0147},
+ {0x2A4F, 0x0145},
+ {0x2A50, 0x00D1},
+ {0x2A51, 0x00D3},
+ {0x2A52, 0x00D2},
+ {0x2A53, 0x00D6},
+ {0x2A54, 0x00D4},
+ {0x2A55, 0x01D1},
+ {0x2A56, 0x0150},
+ {0x2A57, 0x014C},
+ {0x2A58, 0x00D5},
+ {0x2A59, 0x0154},
+ {0x2A5A, 0x0158},
+ {0x2A5B, 0x0156},
+ {0x2A5C, 0x015A},
+ {0x2A5D, 0x015C},
+ {0x2A5E, 0x0160},
+ {0x2A5F, 0x015E},
+ {0x2A60, 0x0164},
+ {0x2A61, 0x0162},
+ {0x2A62, 0x00DA},
+ {0x2A63, 0x00D9},
+ {0x2A64, 0x00DC},
+ {0x2A65, 0x00DB},
+ {0x2A66, 0x016C},
+ {0x2A67, 0x01D3},
+ {0x2A68, 0x0170},
+ {0x2A69, 0x016A},
+ {0x2A6A, 0x0172},
+ {0x2A6B, 0x016E},
+ {0x2A6C, 0x0168},
+ {0x2A6D, 0x01D7},
+ {0x2A6E, 0x01DB},
+ {0x2A6F, 0x01D9},
+ {0x2A70, 0x01D5},
+ {0x2A71, 0x0174},
+ {0x2A72, 0x00DD},
+ {0x2A73, 0x0178},
+ {0x2A74, 0x0176},
+ {0x2A75, 0x0179},
+ {0x2A76, 0x017D},
+ {0x2A77, 0x017B},
+ {0x2B21, 0x00E1},
+ {0x2B22, 0x00E0},
+ {0x2B23, 0x00E4},
+ {0x2B24, 0x00E2},
+ {0x2B25, 0x0103},
+ {0x2B26, 0x01CE},
+ {0x2B27, 0x0101},
+ {0x2B28, 0x0105},
+ {0x2B29, 0x00E5},
+ {0x2B2A, 0x00E3},
+ {0x2B2B, 0x0107},
+ {0x2B2C, 0x0109},
+ {0x2B2D, 0x010D},
+ {0x2B2E, 0x00E7},
+ {0x2B2F, 0x010B},
+ {0x2B30, 0x010F},
+ {0x2B31, 0x00E9},
+ {0x2B32, 0x00E8},
+ {0x2B33, 0x00EB},
+ {0x2B34, 0x00EA},
+ {0x2B35, 0x011B},
+ {0x2B36, 0x0117},
+ {0x2B37, 0x0113},
+ {0x2B38, 0x0119},
+ {0x2B39, 0x01F5},
+ {0x2B3A, 0x011D},
+ {0x2B3B, 0x011F},
+ {0x2B3D, 0x0121},
+ {0x2B3E, 0x0125},
+ {0x2B3F, 0x00ED},
+ {0x2B40, 0x00EC},
+ {0x2B41, 0x00EF},
+ {0x2B42, 0x00EE},
+ {0x2B43, 0x01D0},
+ {0x2B45, 0x012B},
+ {0x2B46, 0x012F},
+ {0x2B47, 0x0129},
+ {0x2B48, 0x0135},
+ {0x2B49, 0x0137},
+ {0x2B4A, 0x013A},
+ {0x2B4B, 0x013E},
+ {0x2B4C, 0x013C},
+ {0x2B4D, 0x0144},
+ {0x2B4E, 0x0148},
+ {0x2B4F, 0x0146},
+ {0x2B50, 0x00F1},
+ {0x2B51, 0x00F3},
+ {0x2B52, 0x00F2},
+ {0x2B53, 0x00F6},
+ {0x2B54, 0x00F4},
+ {0x2B55, 0x01D2},
+ {0x2B56, 0x0151},
+ {0x2B57, 0x014D},
+ {0x2B58, 0x00F5},
+ {0x2B59, 0x0155},
+ {0x2B5A, 0x0159},
+ {0x2B5B, 0x0157},
+ {0x2B5C, 0x015B},
+ {0x2B5D, 0x015D},
+ {0x2B5E, 0x0161},
+ {0x2B5F, 0x015F},
+ {0x2B60, 0x0165},
+ {0x2B61, 0x0163},
+ {0x2B62, 0x00FA},
+ {0x2B63, 0x00F9},
+ {0x2B64, 0x00FC},
+ {0x2B65, 0x00FB},
+ {0x2B66, 0x016D},
+ {0x2B67, 0x01D4},
+ {0x2B68, 0x0171},
+ {0x2B69, 0x016B},
+ {0x2B6A, 0x0173},
+ {0x2B6B, 0x016F},
+ {0x2B6C, 0x0169},
+ {0x2B6D, 0x01D8},
+ {0x2B6E, 0x01DC},
+ {0x2B6F, 0x01DA},
+ {0x2B70, 0x01D6},
+ {0x2B71, 0x0175},
+ {0x2B72, 0x00FD},
+ {0x2B73, 0x00FF},
+ {0x2B74, 0x0177},
+ {0x2B75, 0x017A},
+ {0x2B76, 0x017E},
+ {0x2B77, 0x017C},
+ {0x3021, 0x4E02},
+ {0x3022, 0x4E04},
+ {0x3023, 0x4E05},
+ {0x3024, 0x4E0C},
+ {0x3025, 0x4E12},
+ {0x3026, 0x4E1F},
+ {0x3027, 0x4E23},
+ {0x3028, 0x4E24},
+ {0x3029, 0x4E28},
+ {0x302A, 0x4E2B},
+ {0x302B, 0x4E2E},
+ {0x302C, 0x4E2F},
+ {0x302D, 0x4E30},
+ {0x302E, 0x4E35},
+ {0x302F, 0x4E40},
+ {0x3030, 0x4E41},
+ {0x3031, 0x4E44},
+ {0x3032, 0x4E47},
+ {0x3033, 0x4E51},
+ {0x3034, 0x4E5A},
+ {0x3035, 0x4E5C},
+ {0x3036, 0x4E63},
+ {0x3037, 0x4E68},
+ {0x3038, 0x4E69},
+ {0x3039, 0x4E74},
+ {0x303A, 0x4E75},
+ {0x303B, 0x4E79},
+ {0x303C, 0x4E7F},
+ {0x303D, 0x4E8D},
+ {0x303E, 0x4E96},
+ {0x303F, 0x4E97},
+ {0x3040, 0x4E9D},
+ {0x3041, 0x4EAF},
+ {0x3042, 0x4EB9},
+ {0x3043, 0x4EC3},
+ {0x3044, 0x4ED0},
+ {0x3045, 0x4EDA},
+ {0x3046, 0x4EDB},
+ {0x3047, 0x4EE0},
+ {0x3048, 0x4EE1},
+ {0x3049, 0x4EE2},
+ {0x304A, 0x4EE8},
+ {0x304B, 0x4EEF},
+ {0x304C, 0x4EF1},
+ {0x304D, 0x4EF3},
+ {0x304E, 0x4EF5},
+ {0x304F, 0x4EFD},
+ {0x3050, 0x4EFE},
+ {0x3051, 0x4EFF},
+ {0x3052, 0x4F00},
+ {0x3053, 0x4F02},
+ {0x3054, 0x4F03},
+ {0x3055, 0x4F08},
+ {0x3056, 0x4F0B},
+ {0x3057, 0x4F0C},
+ {0x3058, 0x4F12},
+ {0x3059, 0x4F15},
+ {0x305A, 0x4F16},
+ {0x305B, 0x4F17},
+ {0x305C, 0x4F19},
+ {0x305D, 0x4F2E},
+ {0x305E, 0x4F31},
+ {0x305F, 0x4F60},
+ {0x3060, 0x4F33},
+ {0x3061, 0x4F35},
+ {0x3062, 0x4F37},
+ {0x3063, 0x4F39},
+ {0x3064, 0x4F3B},
+ {0x3065, 0x4F3E},
+ {0x3066, 0x4F40},
+ {0x3067, 0x4F42},
+ {0x3068, 0x4F48},
+ {0x3069, 0x4F49},
+ {0x306A, 0x4F4B},
+ {0x306B, 0x4F4C},
+ {0x306C, 0x4F52},
+ {0x306D, 0x4F54},
+ {0x306E, 0x4F56},
+ {0x306F, 0x4F58},
+ {0x3070, 0x4F5F},
+ {0x3071, 0x4F63},
+ {0x3072, 0x4F6A},
+ {0x3073, 0x4F6C},
+ {0x3074, 0x4F6E},
+ {0x3075, 0x4F71},
+ {0x3076, 0x4F77},
+ {0x3077, 0x4F78},
+ {0x3078, 0x4F79},
+ {0x3079, 0x4F7A},
+ {0x307A, 0x4F7D},
+ {0x307B, 0x4F7E},
+ {0x307C, 0x4F81},
+ {0x307D, 0x4F82},
+ {0x307E, 0x4F84},
+ {0x3121, 0x4F85},
+ {0x3122, 0x4F89},
+ {0x3123, 0x4F8A},
+ {0x3124, 0x4F8C},
+ {0x3125, 0x4F8E},
+ {0x3126, 0x4F90},
+ {0x3127, 0x4F92},
+ {0x3128, 0x4F93},
+ {0x3129, 0x4F94},
+ {0x312A, 0x4F97},
+ {0x312B, 0x4F99},
+ {0x312C, 0x4F9A},
+ {0x312D, 0x4F9E},
+ {0x312E, 0x4F9F},
+ {0x312F, 0x4FB2},
+ {0x3130, 0x4FB7},
+ {0x3131, 0x4FB9},
+ {0x3132, 0x4FBB},
+ {0x3133, 0x4FBC},
+ {0x3134, 0x4FBD},
+ {0x3135, 0x4FBE},
+ {0x3136, 0x4FC0},
+ {0x3137, 0x4FC1},
+ {0x3138, 0x4FC5},
+ {0x3139, 0x4FC6},
+ {0x313A, 0x4FC8},
+ {0x313B, 0x4FC9},
+ {0x313C, 0x4FCB},
+ {0x313D, 0x4FCC},
+ {0x313E, 0x4FCD},
+ {0x313F, 0x4FCF},
+ {0x3140, 0x4FD2},
+ {0x3141, 0x4FDC},
+ {0x3142, 0x4FE0},
+ {0x3143, 0x4FE2},
+ {0x3144, 0x4FF0},
+ {0x3145, 0x4FF2},
+ {0x3146, 0x4FFC},
+ {0x3147, 0x4FFD},
+ {0x3148, 0x4FFF},
+ {0x3149, 0x5000},
+ {0x314A, 0x5001},
+ {0x314B, 0x5004},
+ {0x314C, 0x5007},
+ {0x314D, 0x500A},
+ {0x314E, 0x500C},
+ {0x314F, 0x500E},
+ {0x3150, 0x5010},
+ {0x3151, 0x5013},
+ {0x3152, 0x5017},
+ {0x3153, 0x5018},
+ {0x3154, 0x501B},
+ {0x3155, 0x501C},
+ {0x3156, 0x501D},
+ {0x3157, 0x501E},
+ {0x3158, 0x5022},
+ {0x3159, 0x5027},
+ {0x315A, 0x502E},
+ {0x315B, 0x5030},
+ {0x315C, 0x5032},
+ {0x315D, 0x5033},
+ {0x315E, 0x5035},
+ {0x315F, 0x5040},
+ {0x3160, 0x5041},
+ {0x3161, 0x5042},
+ {0x3162, 0x5045},
+ {0x3163, 0x5046},
+ {0x3164, 0x504A},
+ {0x3165, 0x504C},
+ {0x3166, 0x504E},
+ {0x3167, 0x5051},
+ {0x3168, 0x5052},
+ {0x3169, 0x5053},
+ {0x316A, 0x5057},
+ {0x316B, 0x5059},
+ {0x316C, 0x505F},
+ {0x316D, 0x5060},
+ {0x316E, 0x5062},
+ {0x316F, 0x5063},
+ {0x3170, 0x5066},
+ {0x3171, 0x5067},
+ {0x3172, 0x506A},
+ {0x3173, 0x506D},
+ {0x3174, 0x5070},
+ {0x3175, 0x5071},
+ {0x3176, 0x503B},
+ {0x3177, 0x5081},
+ {0x3178, 0x5083},
+ {0x3179, 0x5084},
+ {0x317A, 0x5086},
+ {0x317B, 0x508A},
+ {0x317C, 0x508E},
+ {0x317D, 0x508F},
+ {0x317E, 0x5090},
+ {0x3221, 0x5092},
+ {0x3222, 0x5093},
+ {0x3223, 0x5094},
+ {0x3224, 0x5096},
+ {0x3225, 0x509B},
+ {0x3226, 0x509C},
+ {0x3227, 0x509E},
+ {0x3228, 0x509F},
+ {0x3229, 0x50A0},
+ {0x322A, 0x50A1},
+ {0x322B, 0x50A2},
+ {0x322C, 0x50AA},
+ {0x322D, 0x50AF},
+ {0x322E, 0x50B0},
+ {0x322F, 0x50B9},
+ {0x3230, 0x50BA},
+ {0x3231, 0x50BD},
+ {0x3232, 0x50C0},
+ {0x3233, 0x50C3},
+ {0x3234, 0x50C4},
+ {0x3235, 0x50C7},
+ {0x3236, 0x50CC},
+ {0x3237, 0x50CE},
+ {0x3238, 0x50D0},
+ {0x3239, 0x50D3},
+ {0x323A, 0x50D4},
+ {0x323B, 0x50D8},
+ {0x323C, 0x50DC},
+ {0x323D, 0x50DD},
+ {0x323E, 0x50DF},
+ {0x323F, 0x50E2},
+ {0x3240, 0x50E4},
+ {0x3241, 0x50E6},
+ {0x3242, 0x50E8},
+ {0x3243, 0x50E9},
+ {0x3244, 0x50EF},
+ {0x3245, 0x50F1},
+ {0x3246, 0x50F6},
+ {0x3247, 0x50FA},
+ {0x3248, 0x50FE},
+ {0x3249, 0x5103},
+ {0x324A, 0x5106},
+ {0x324B, 0x5107},
+ {0x324C, 0x5108},
+ {0x324D, 0x510B},
+ {0x324E, 0x510C},
+ {0x324F, 0x510D},
+ {0x3250, 0x510E},
+ {0x3251, 0x50F2},
+ {0x3252, 0x5110},
+ {0x3253, 0x5117},
+ {0x3254, 0x5119},
+ {0x3255, 0x511B},
+ {0x3256, 0x511C},
+ {0x3257, 0x511D},
+ {0x3258, 0x511E},
+ {0x3259, 0x5123},
+ {0x325A, 0x5127},
+ {0x325B, 0x5128},
+ {0x325C, 0x512C},
+ {0x325D, 0x512D},
+ {0x325E, 0x512F},
+ {0x325F, 0x5131},
+ {0x3260, 0x5133},
+ {0x3261, 0x5134},
+ {0x3262, 0x5135},
+ {0x3263, 0x5138},
+ {0x3264, 0x5139},
+ {0x3265, 0x5142},
+ {0x3266, 0x514A},
+ {0x3267, 0x514F},
+ {0x3268, 0x5153},
+ {0x3269, 0x5155},
+ {0x326A, 0x5157},
+ {0x326B, 0x5158},
+ {0x326C, 0x515F},
+ {0x326D, 0x5164},
+ {0x326E, 0x5166},
+ {0x326F, 0x517E},
+ {0x3270, 0x5183},
+ {0x3271, 0x5184},
+ {0x3272, 0x518B},
+ {0x3273, 0x518E},
+ {0x3274, 0x5198},
+ {0x3275, 0x519D},
+ {0x3276, 0x51A1},
+ {0x3277, 0x51A3},
+ {0x3278, 0x51AD},
+ {0x3279, 0x51B8},
+ {0x327A, 0x51BA},
+ {0x327B, 0x51BC},
+ {0x327C, 0x51BE},
+ {0x327D, 0x51BF},
+ {0x327E, 0x51C2},
+ {0x3321, 0x51C8},
+ {0x3322, 0x51CF},
+ {0x3323, 0x51D1},
+ {0x3324, 0x51D2},
+ {0x3325, 0x51D3},
+ {0x3326, 0x51D5},
+ {0x3327, 0x51D8},
+ {0x3328, 0x51DE},
+ {0x3329, 0x51E2},
+ {0x332A, 0x51E5},
+ {0x332B, 0x51EE},
+ {0x332C, 0x51F2},
+ {0x332D, 0x51F3},
+ {0x332E, 0x51F4},
+ {0x332F, 0x51F7},
+ {0x3330, 0x5201},
+ {0x3331, 0x5202},
+ {0x3332, 0x5205},
+ {0x3333, 0x5212},
+ {0x3334, 0x5213},
+ {0x3335, 0x5215},
+ {0x3336, 0x5216},
+ {0x3337, 0x5218},
+ {0x3338, 0x5222},
+ {0x3339, 0x5228},
+ {0x333A, 0x5231},
+ {0x333B, 0x5232},
+ {0x333C, 0x5235},
+ {0x333D, 0x523C},
+ {0x333E, 0x5245},
+ {0x333F, 0x5249},
+ {0x3340, 0x5255},
+ {0x3341, 0x5257},
+ {0x3342, 0x5258},
+ {0x3343, 0x525A},
+ {0x3344, 0x525C},
+ {0x3345, 0x525F},
+ {0x3346, 0x5260},
+ {0x3347, 0x5261},
+ {0x3348, 0x5266},
+ {0x3349, 0x526E},
+ {0x334A, 0x5277},
+ {0x334B, 0x5278},
+ {0x334C, 0x5279},
+ {0x334D, 0x5280},
+ {0x334E, 0x5282},
+ {0x334F, 0x5285},
+ {0x3350, 0x528A},
+ {0x3351, 0x528C},
+ {0x3352, 0x5293},
+ {0x3353, 0x5295},
+ {0x3354, 0x5296},
+ {0x3355, 0x5297},
+ {0x3356, 0x5298},
+ {0x3357, 0x529A},
+ {0x3358, 0x529C},
+ {0x3359, 0x52A4},
+ {0x335A, 0x52A5},
+ {0x335B, 0x52A6},
+ {0x335C, 0x52A7},
+ {0x335D, 0x52AF},
+ {0x335E, 0x52B0},
+ {0x335F, 0x52B6},
+ {0x3360, 0x52B7},
+ {0x3361, 0x52B8},
+ {0x3362, 0x52BA},
+ {0x3363, 0x52BB},
+ {0x3364, 0x52BD},
+ {0x3365, 0x52C0},
+ {0x3366, 0x52C4},
+ {0x3367, 0x52C6},
+ {0x3368, 0x52C8},
+ {0x3369, 0x52CC},
+ {0x336A, 0x52CF},
+ {0x336B, 0x52D1},
+ {0x336C, 0x52D4},
+ {0x336D, 0x52D6},
+ {0x336E, 0x52DB},
+ {0x336F, 0x52DC},
+ {0x3370, 0x52E1},
+ {0x3371, 0x52E5},
+ {0x3372, 0x52E8},
+ {0x3373, 0x52E9},
+ {0x3374, 0x52EA},
+ {0x3375, 0x52EC},
+ {0x3376, 0x52F0},
+ {0x3377, 0x52F1},
+ {0x3378, 0x52F4},
+ {0x3379, 0x52F6},
+ {0x337A, 0x52F7},
+ {0x337B, 0x5300},
+ {0x337C, 0x5303},
+ {0x337D, 0x530A},
+ {0x337E, 0x530B},
+ {0x3421, 0x530C},
+ {0x3422, 0x5311},
+ {0x3423, 0x5313},
+ {0x3424, 0x5318},
+ {0x3425, 0x531B},
+ {0x3426, 0x531C},
+ {0x3427, 0x531E},
+ {0x3428, 0x531F},
+ {0x3429, 0x5325},
+ {0x342A, 0x5327},
+ {0x342B, 0x5328},
+ {0x342C, 0x5329},
+ {0x342D, 0x532B},
+ {0x342E, 0x532C},
+ {0x342F, 0x532D},
+ {0x3430, 0x5330},
+ {0x3431, 0x5332},
+ {0x3432, 0x5335},
+ {0x3433, 0x533C},
+ {0x3434, 0x533D},
+ {0x3435, 0x533E},
+ {0x3436, 0x5342},
+ {0x3437, 0x534C},
+ {0x3438, 0x534B},
+ {0x3439, 0x5359},
+ {0x343A, 0x535B},
+ {0x343B, 0x5361},
+ {0x343C, 0x5363},
+ {0x343D, 0x5365},
+ {0x343E, 0x536C},
+ {0x343F, 0x536D},
+ {0x3440, 0x5372},
+ {0x3441, 0x5379},
+ {0x3442, 0x537E},
+ {0x3443, 0x5383},
+ {0x3444, 0x5387},
+ {0x3445, 0x5388},
+ {0x3446, 0x538E},
+ {0x3447, 0x5393},
+ {0x3448, 0x5394},
+ {0x3449, 0x5399},
+ {0x344A, 0x539D},
+ {0x344B, 0x53A1},
+ {0x344C, 0x53A4},
+ {0x344D, 0x53AA},
+ {0x344E, 0x53AB},
+ {0x344F, 0x53AF},
+ {0x3450, 0x53B2},
+ {0x3451, 0x53B4},
+ {0x3452, 0x53B5},
+ {0x3453, 0x53B7},
+ {0x3454, 0x53B8},
+ {0x3455, 0x53BA},
+ {0x3456, 0x53BD},
+ {0x3457, 0x53C0},
+ {0x3458, 0x53C5},
+ {0x3459, 0x53CF},
+ {0x345A, 0x53D2},
+ {0x345B, 0x53D3},
+ {0x345C, 0x53D5},
+ {0x345D, 0x53DA},
+ {0x345E, 0x53DD},
+ {0x345F, 0x53DE},
+ {0x3460, 0x53E0},
+ {0x3461, 0x53E6},
+ {0x3462, 0x53E7},
+ {0x3463, 0x53F5},
+ {0x3464, 0x5402},
+ {0x3465, 0x5413},
+ {0x3466, 0x541A},
+ {0x3467, 0x5421},
+ {0x3468, 0x5427},
+ {0x3469, 0x5428},
+ {0x346A, 0x542A},
+ {0x346B, 0x542F},
+ {0x346C, 0x5431},
+ {0x346D, 0x5434},
+ {0x346E, 0x5435},
+ {0x346F, 0x5443},
+ {0x3470, 0x5444},
+ {0x3471, 0x5447},
+ {0x3472, 0x544D},
+ {0x3473, 0x544F},
+ {0x3474, 0x545E},
+ {0x3475, 0x5462},
+ {0x3476, 0x5464},
+ {0x3477, 0x5466},
+ {0x3478, 0x5467},
+ {0x3479, 0x5469},
+ {0x347A, 0x546B},
+ {0x347B, 0x546D},
+ {0x347C, 0x546E},
+ {0x347D, 0x5474},
+ {0x347E, 0x547F},
+ {0x3521, 0x5481},
+ {0x3522, 0x5483},
+ {0x3523, 0x5485},
+ {0x3524, 0x5488},
+ {0x3525, 0x5489},
+ {0x3526, 0x548D},
+ {0x3527, 0x5491},
+ {0x3528, 0x5495},
+ {0x3529, 0x5496},
+ {0x352A, 0x549C},
+ {0x352B, 0x549F},
+ {0x352C, 0x54A1},
+ {0x352D, 0x54A6},
+ {0x352E, 0x54A7},
+ {0x352F, 0x54A9},
+ {0x3530, 0x54AA},
+ {0x3531, 0x54AD},
+ {0x3532, 0x54AE},
+ {0x3533, 0x54B1},
+ {0x3534, 0x54B7},
+ {0x3535, 0x54B9},
+ {0x3536, 0x54BA},
+ {0x3537, 0x54BB},
+ {0x3538, 0x54BF},
+ {0x3539, 0x54C6},
+ {0x353A, 0x54CA},
+ {0x353B, 0x54CD},
+ {0x353C, 0x54CE},
+ {0x353D, 0x54E0},
+ {0x353E, 0x54EA},
+ {0x353F, 0x54EC},
+ {0x3540, 0x54EF},
+ {0x3541, 0x54F6},
+ {0x3542, 0x54FC},
+ {0x3543, 0x54FE},
+ {0x3544, 0x54FF},
+ {0x3545, 0x5500},
+ {0x3546, 0x5501},
+ {0x3547, 0x5505},
+ {0x3548, 0x5508},
+ {0x3549, 0x5509},
+ {0x354A, 0x550C},
+ {0x354B, 0x550D},
+ {0x354C, 0x550E},
+ {0x354D, 0x5515},
+ {0x354E, 0x552A},
+ {0x354F, 0x552B},
+ {0x3550, 0x5532},
+ {0x3551, 0x5535},
+ {0x3552, 0x5536},
+ {0x3553, 0x553B},
+ {0x3554, 0x553C},
+ {0x3555, 0x553D},
+ {0x3556, 0x5541},
+ {0x3557, 0x5547},
+ {0x3558, 0x5549},
+ {0x3559, 0x554A},
+ {0x355A, 0x554D},
+ {0x355B, 0x5550},
+ {0x355C, 0x5551},
+ {0x355D, 0x5558},
+ {0x355E, 0x555A},
+ {0x355F, 0x555B},
+ {0x3560, 0x555E},
+ {0x3561, 0x5560},
+ {0x3562, 0x5561},
+ {0x3563, 0x5564},
+ {0x3564, 0x5566},
+ {0x3565, 0x557F},
+ {0x3566, 0x5581},
+ {0x3567, 0x5582},
+ {0x3568, 0x5586},
+ {0x3569, 0x5588},
+ {0x356A, 0x558E},
+ {0x356B, 0x558F},
+ {0x356C, 0x5591},
+ {0x356D, 0x5592},
+ {0x356E, 0x5593},
+ {0x356F, 0x5594},
+ {0x3570, 0x5597},
+ {0x3571, 0x55A3},
+ {0x3572, 0x55A4},
+ {0x3573, 0x55AD},
+ {0x3574, 0x55B2},
+ {0x3575, 0x55BF},
+ {0x3576, 0x55C1},
+ {0x3577, 0x55C3},
+ {0x3578, 0x55C6},
+ {0x3579, 0x55C9},
+ {0x357A, 0x55CB},
+ {0x357B, 0x55CC},
+ {0x357C, 0x55CE},
+ {0x357D, 0x55D1},
+ {0x357E, 0x55D2},
+ {0x3621, 0x55D3},
+ {0x3622, 0x55D7},
+ {0x3623, 0x55D8},
+ {0x3624, 0x55DB},
+ {0x3625, 0x55DE},
+ {0x3626, 0x55E2},
+ {0x3627, 0x55E9},
+ {0x3628, 0x55F6},
+ {0x3629, 0x55FF},
+ {0x362A, 0x5605},
+ {0x362B, 0x5608},
+ {0x362C, 0x560A},
+ {0x362D, 0x560D},
+ {0x362E, 0x560E},
+ {0x362F, 0x560F},
+ {0x3630, 0x5610},
+ {0x3631, 0x5611},
+ {0x3632, 0x5612},
+ {0x3633, 0x5619},
+ {0x3634, 0x562C},
+ {0x3635, 0x5630},
+ {0x3636, 0x5633},
+ {0x3637, 0x5635},
+ {0x3638, 0x5637},
+ {0x3639, 0x5639},
+ {0x363A, 0x563B},
+ {0x363B, 0x563C},
+ {0x363C, 0x563D},
+ {0x363D, 0x563F},
+ {0x363E, 0x5640},
+ {0x363F, 0x5641},
+ {0x3640, 0x5643},
+ {0x3641, 0x5644},
+ {0x3642, 0x5646},
+ {0x3643, 0x5649},
+ {0x3644, 0x564B},
+ {0x3645, 0x564D},
+ {0x3646, 0x564F},
+ {0x3647, 0x5654},
+ {0x3648, 0x565E},
+ {0x3649, 0x5660},
+ {0x364A, 0x5661},
+ {0x364B, 0x5662},
+ {0x364C, 0x5663},
+ {0x364D, 0x5666},
+ {0x364E, 0x5669},
+ {0x364F, 0x566D},
+ {0x3650, 0x566F},
+ {0x3651, 0x5671},
+ {0x3652, 0x5672},
+ {0x3653, 0x5675},
+ {0x3654, 0x5684},
+ {0x3655, 0x5685},
+ {0x3656, 0x5688},
+ {0x3657, 0x568B},
+ {0x3658, 0x568C},
+ {0x3659, 0x5695},
+ {0x365A, 0x5699},
+ {0x365B, 0x569A},
+ {0x365C, 0x569D},
+ {0x365D, 0x569E},
+ {0x365E, 0x569F},
+ {0x365F, 0x56A6},
+ {0x3660, 0x56A7},
+ {0x3661, 0x56A8},
+ {0x3662, 0x56A9},
+ {0x3663, 0x56AB},
+ {0x3664, 0x56AC},
+ {0x3665, 0x56AD},
+ {0x3666, 0x56B1},
+ {0x3667, 0x56B3},
+ {0x3668, 0x56B7},
+ {0x3669, 0x56BE},
+ {0x366A, 0x56C5},
+ {0x366B, 0x56C9},
+ {0x366C, 0x56CA},
+ {0x366D, 0x56CB},
+ {0x366E, 0x56CF},
+ {0x366F, 0x56D0},
+ {0x3670, 0x56CC},
+ {0x3671, 0x56CD},
+ {0x3672, 0x56D9},
+ {0x3673, 0x56DC},
+ {0x3674, 0x56DD},
+ {0x3675, 0x56DF},
+ {0x3676, 0x56E1},
+ {0x3677, 0x56E4},
+ {0x3678, 0x56E5},
+ {0x3679, 0x56E6},
+ {0x367A, 0x56E7},
+ {0x367B, 0x56E8},
+ {0x367C, 0x56F1},
+ {0x367D, 0x56EB},
+ {0x367E, 0x56ED},
+ {0x3721, 0x56F6},
+ {0x3722, 0x56F7},
+ {0x3723, 0x5701},
+ {0x3724, 0x5702},
+ {0x3725, 0x5707},
+ {0x3726, 0x570A},
+ {0x3727, 0x570C},
+ {0x3728, 0x5711},
+ {0x3729, 0x5715},
+ {0x372A, 0x571A},
+ {0x372B, 0x571B},
+ {0x372C, 0x571D},
+ {0x372D, 0x5720},
+ {0x372E, 0x5722},
+ {0x372F, 0x5723},
+ {0x3730, 0x5724},
+ {0x3731, 0x5725},
+ {0x3732, 0x5729},
+ {0x3733, 0x572A},
+ {0x3734, 0x572C},
+ {0x3735, 0x572E},
+ {0x3736, 0x572F},
+ {0x3737, 0x5733},
+ {0x3738, 0x5734},
+ {0x3739, 0x573D},
+ {0x373A, 0x573E},
+ {0x373B, 0x573F},
+ {0x373C, 0x5745},
+ {0x373D, 0x5746},
+ {0x373E, 0x574C},
+ {0x373F, 0x574D},
+ {0x3740, 0x5752},
+ {0x3741, 0x5762},
+ {0x3742, 0x5765},
+ {0x3743, 0x5767},
+ {0x3744, 0x5768},
+ {0x3745, 0x576B},
+ {0x3746, 0x576D},
+ {0x3747, 0x576E},
+ {0x3748, 0x576F},
+ {0x3749, 0x5770},
+ {0x374A, 0x5771},
+ {0x374B, 0x5773},
+ {0x374C, 0x5774},
+ {0x374D, 0x5775},
+ {0x374E, 0x5777},
+ {0x374F, 0x5779},
+ {0x3750, 0x577A},
+ {0x3751, 0x577B},
+ {0x3752, 0x577C},
+ {0x3753, 0x577E},
+ {0x3754, 0x5781},
+ {0x3755, 0x5783},
+ {0x3756, 0x578C},
+ {0x3757, 0x5794},
+ {0x3758, 0x5797},
+ {0x3759, 0x5799},
+ {0x375A, 0x579A},
+ {0x375B, 0x579C},
+ {0x375C, 0x579D},
+ {0x375D, 0x579E},
+ {0x375E, 0x579F},
+ {0x375F, 0x57A1},
+ {0x3760, 0x5795},
+ {0x3761, 0x57A7},
+ {0x3762, 0x57A8},
+ {0x3763, 0x57A9},
+ {0x3764, 0x57AC},
+ {0x3765, 0x57B8},
+ {0x3766, 0x57BD},
+ {0x3767, 0x57C7},
+ {0x3768, 0x57C8},
+ {0x3769, 0x57CC},
+ {0x376A, 0x57CF},
+ {0x376B, 0x57D5},
+ {0x376C, 0x57DD},
+ {0x376D, 0x57DE},
+ {0x376E, 0x57E4},
+ {0x376F, 0x57E6},
+ {0x3770, 0x57E7},
+ {0x3771, 0x57E9},
+ {0x3772, 0x57ED},
+ {0x3773, 0x57F0},
+ {0x3774, 0x57F5},
+ {0x3775, 0x57F6},
+ {0x3776, 0x57F8},
+ {0x3777, 0x57FD},
+ {0x3778, 0x57FE},
+ {0x3779, 0x57FF},
+ {0x377A, 0x5803},
+ {0x377B, 0x5804},
+ {0x377C, 0x5808},
+ {0x377D, 0x5809},
+ {0x377E, 0x57E1},
+ {0x3821, 0x580C},
+ {0x3822, 0x580D},
+ {0x3823, 0x581B},
+ {0x3824, 0x581E},
+ {0x3825, 0x581F},
+ {0x3826, 0x5820},
+ {0x3827, 0x5826},
+ {0x3828, 0x5827},
+ {0x3829, 0x582D},
+ {0x382A, 0x5832},
+ {0x382B, 0x5839},
+ {0x382C, 0x583F},
+ {0x382D, 0x5849},
+ {0x382E, 0x584C},
+ {0x382F, 0x584D},
+ {0x3830, 0x584F},
+ {0x3831, 0x5850},
+ {0x3832, 0x5855},
+ {0x3833, 0x585F},
+ {0x3834, 0x5861},
+ {0x3835, 0x5864},
+ {0x3836, 0x5867},
+ {0x3837, 0x5868},
+ {0x3838, 0x5878},
+ {0x3839, 0x587C},
+ {0x383A, 0x587F},
+ {0x383B, 0x5880},
+ {0x383C, 0x5881},
+ {0x383D, 0x5887},
+ {0x383E, 0x5888},
+ {0x383F, 0x5889},
+ {0x3840, 0x588A},
+ {0x3841, 0x588C},
+ {0x3842, 0x588D},
+ {0x3843, 0x588F},
+ {0x3844, 0x5890},
+ {0x3845, 0x5894},
+ {0x3846, 0x5896},
+ {0x3847, 0x589D},
+ {0x3848, 0x58A0},
+ {0x3849, 0x58A1},
+ {0x384A, 0x58A2},
+ {0x384B, 0x58A6},
+ {0x384C, 0x58A9},
+ {0x384D, 0x58B1},
+ {0x384E, 0x58B2},
+ {0x384F, 0x58C4},
+ {0x3850, 0x58BC},
+ {0x3851, 0x58C2},
+ {0x3852, 0x58C8},
+ {0x3853, 0x58CD},
+ {0x3854, 0x58CE},
+ {0x3855, 0x58D0},
+ {0x3856, 0x58D2},
+ {0x3857, 0x58D4},
+ {0x3858, 0x58D6},
+ {0x3859, 0x58DA},
+ {0x385A, 0x58DD},
+ {0x385B, 0x58E1},
+ {0x385C, 0x58E2},
+ {0x385D, 0x58E9},
+ {0x385E, 0x58F3},
+ {0x385F, 0x5905},
+ {0x3860, 0x5906},
+ {0x3861, 0x590B},
+ {0x3862, 0x590C},
+ {0x3863, 0x5912},
+ {0x3864, 0x5913},
+ {0x3865, 0x5914},
+ {0x3866, 0x8641},
+ {0x3867, 0x591D},
+ {0x3868, 0x5921},
+ {0x3869, 0x5923},
+ {0x386A, 0x5924},
+ {0x386B, 0x5928},
+ {0x386C, 0x592F},
+ {0x386D, 0x5930},
+ {0x386E, 0x5933},
+ {0x386F, 0x5935},
+ {0x3870, 0x5936},
+ {0x3871, 0x593F},
+ {0x3872, 0x5943},
+ {0x3873, 0x5946},
+ {0x3874, 0x5952},
+ {0x3875, 0x5953},
+ {0x3876, 0x5959},
+ {0x3877, 0x595B},
+ {0x3878, 0x595D},
+ {0x3879, 0x595E},
+ {0x387A, 0x595F},
+ {0x387B, 0x5961},
+ {0x387C, 0x5963},
+ {0x387D, 0x596B},
+ {0x387E, 0x596D},
+ {0x3921, 0x596F},
+ {0x3922, 0x5972},
+ {0x3923, 0x5975},
+ {0x3924, 0x5976},
+ {0x3925, 0x5979},
+ {0x3926, 0x597B},
+ {0x3927, 0x597C},
+ {0x3928, 0x598B},
+ {0x3929, 0x598C},
+ {0x392A, 0x598E},
+ {0x392B, 0x5992},
+ {0x392C, 0x5995},
+ {0x392D, 0x5997},
+ {0x392E, 0x599F},
+ {0x392F, 0x59A4},
+ {0x3930, 0x59A7},
+ {0x3931, 0x59AD},
+ {0x3932, 0x59AE},
+ {0x3933, 0x59AF},
+ {0x3934, 0x59B0},
+ {0x3935, 0x59B3},
+ {0x3936, 0x59B7},
+ {0x3937, 0x59BA},
+ {0x3938, 0x59BC},
+ {0x3939, 0x59C1},
+ {0x393A, 0x59C3},
+ {0x393B, 0x59C4},
+ {0x393C, 0x59C8},
+ {0x393D, 0x59CA},
+ {0x393E, 0x59CD},
+ {0x393F, 0x59D2},
+ {0x3940, 0x59DD},
+ {0x3941, 0x59DE},
+ {0x3942, 0x59DF},
+ {0x3943, 0x59E3},
+ {0x3944, 0x59E4},
+ {0x3945, 0x59E7},
+ {0x3946, 0x59EE},
+ {0x3947, 0x59EF},
+ {0x3948, 0x59F1},
+ {0x3949, 0x59F2},
+ {0x394A, 0x59F4},
+ {0x394B, 0x59F7},
+ {0x394C, 0x5A00},
+ {0x394D, 0x5A04},
+ {0x394E, 0x5A0C},
+ {0x394F, 0x5A0D},
+ {0x3950, 0x5A0E},
+ {0x3951, 0x5A12},
+ {0x3952, 0x5A13},
+ {0x3953, 0x5A1E},
+ {0x3954, 0x5A23},
+ {0x3955, 0x5A24},
+ {0x3956, 0x5A27},
+ {0x3957, 0x5A28},
+ {0x3958, 0x5A2A},
+ {0x3959, 0x5A2D},
+ {0x395A, 0x5A30},
+ {0x395B, 0x5A44},
+ {0x395C, 0x5A45},
+ {0x395D, 0x5A47},
+ {0x395E, 0x5A48},
+ {0x395F, 0x5A4C},
+ {0x3960, 0x5A50},
+ {0x3961, 0x5A55},
+ {0x3962, 0x5A5E},
+ {0x3963, 0x5A63},
+ {0x3964, 0x5A65},
+ {0x3965, 0x5A67},
+ {0x3966, 0x5A6D},
+ {0x3967, 0x5A77},
+ {0x3968, 0x5A7A},
+ {0x3969, 0x5A7B},
+ {0x396A, 0x5A7E},
+ {0x396B, 0x5A8B},
+ {0x396C, 0x5A90},
+ {0x396D, 0x5A93},
+ {0x396E, 0x5A96},
+ {0x396F, 0x5A99},
+ {0x3970, 0x5A9C},
+ {0x3971, 0x5A9E},
+ {0x3972, 0x5A9F},
+ {0x3973, 0x5AA0},
+ {0x3974, 0x5AA2},
+ {0x3975, 0x5AA7},
+ {0x3976, 0x5AAC},
+ {0x3977, 0x5AB1},
+ {0x3978, 0x5AB2},
+ {0x3979, 0x5AB3},
+ {0x397A, 0x5AB5},
+ {0x397B, 0x5AB8},
+ {0x397C, 0x5ABA},
+ {0x397D, 0x5ABB},
+ {0x397E, 0x5ABF},
+ {0x3A21, 0x5AC4},
+ {0x3A22, 0x5AC6},
+ {0x3A23, 0x5AC8},
+ {0x3A24, 0x5ACF},
+ {0x3A25, 0x5ADA},
+ {0x3A26, 0x5ADC},
+ {0x3A27, 0x5AE0},
+ {0x3A28, 0x5AE5},
+ {0x3A29, 0x5AEA},
+ {0x3A2A, 0x5AEE},
+ {0x3A2B, 0x5AF5},
+ {0x3A2C, 0x5AF6},
+ {0x3A2D, 0x5AFD},
+ {0x3A2E, 0x5B00},
+ {0x3A2F, 0x5B01},
+ {0x3A30, 0x5B08},
+ {0x3A31, 0x5B17},
+ {0x3A32, 0x5B34},
+ {0x3A33, 0x5B19},
+ {0x3A34, 0x5B1B},
+ {0x3A35, 0x5B1D},
+ {0x3A36, 0x5B21},
+ {0x3A37, 0x5B25},
+ {0x3A38, 0x5B2D},
+ {0x3A39, 0x5B38},
+ {0x3A3A, 0x5B41},
+ {0x3A3B, 0x5B4B},
+ {0x3A3C, 0x5B4C},
+ {0x3A3D, 0x5B52},
+ {0x3A3E, 0x5B56},
+ {0x3A3F, 0x5B5E},
+ {0x3A40, 0x5B68},
+ {0x3A41, 0x5B6E},
+ {0x3A42, 0x5B6F},
+ {0x3A43, 0x5B7C},
+ {0x3A44, 0x5B7D},
+ {0x3A45, 0x5B7E},
+ {0x3A46, 0x5B7F},
+ {0x3A47, 0x5B81},
+ {0x3A48, 0x5B84},
+ {0x3A49, 0x5B86},
+ {0x3A4A, 0x5B8A},
+ {0x3A4B, 0x5B8E},
+ {0x3A4C, 0x5B90},
+ {0x3A4D, 0x5B91},
+ {0x3A4E, 0x5B93},
+ {0x3A4F, 0x5B94},
+ {0x3A50, 0x5B96},
+ {0x3A51, 0x5BA8},
+ {0x3A52, 0x5BA9},
+ {0x3A53, 0x5BAC},
+ {0x3A54, 0x5BAD},
+ {0x3A55, 0x5BAF},
+ {0x3A56, 0x5BB1},
+ {0x3A57, 0x5BB2},
+ {0x3A58, 0x5BB7},
+ {0x3A59, 0x5BBA},
+ {0x3A5A, 0x5BBC},
+ {0x3A5B, 0x5BC0},
+ {0x3A5C, 0x5BC1},
+ {0x3A5D, 0x5BCD},
+ {0x3A5E, 0x5BCF},
+ {0x3A5F, 0x5BD6},
+ {0x3A60, 0x5BD7},
+ {0x3A61, 0x5BD8},
+ {0x3A62, 0x5BD9},
+ {0x3A63, 0x5BDA},
+ {0x3A64, 0x5BE0},
+ {0x3A65, 0x5BEF},
+ {0x3A66, 0x5BF1},
+ {0x3A67, 0x5BF4},
+ {0x3A68, 0x5BFD},
+ {0x3A69, 0x5C0C},
+ {0x3A6A, 0x5C17},
+ {0x3A6B, 0x5C1E},
+ {0x3A6C, 0x5C1F},
+ {0x3A6D, 0x5C23},
+ {0x3A6E, 0x5C26},
+ {0x3A6F, 0x5C29},
+ {0x3A70, 0x5C2B},
+ {0x3A71, 0x5C2C},
+ {0x3A72, 0x5C2E},
+ {0x3A73, 0x5C30},
+ {0x3A74, 0x5C32},
+ {0x3A75, 0x5C35},
+ {0x3A76, 0x5C36},
+ {0x3A77, 0x5C59},
+ {0x3A78, 0x5C5A},
+ {0x3A79, 0x5C5C},
+ {0x3A7A, 0x5C62},
+ {0x3A7B, 0x5C63},
+ {0x3A7C, 0x5C67},
+ {0x3A7D, 0x5C68},
+ {0x3A7E, 0x5C69},
+ {0x3B21, 0x5C6D},
+ {0x3B22, 0x5C70},
+ {0x3B23, 0x5C74},
+ {0x3B24, 0x5C75},
+ {0x3B25, 0x5C7A},
+ {0x3B26, 0x5C7B},
+ {0x3B27, 0x5C7C},
+ {0x3B28, 0x5C7D},
+ {0x3B29, 0x5C87},
+ {0x3B2A, 0x5C88},
+ {0x3B2B, 0x5C8A},
+ {0x3B2C, 0x5C8F},
+ {0x3B2D, 0x5C92},
+ {0x3B2E, 0x5C9D},
+ {0x3B2F, 0x5C9F},
+ {0x3B30, 0x5CA0},
+ {0x3B31, 0x5CA2},
+ {0x3B32, 0x5CA3},
+ {0x3B33, 0x5CA6},
+ {0x3B34, 0x5CAA},
+ {0x3B35, 0x5CB2},
+ {0x3B36, 0x5CB4},
+ {0x3B37, 0x5CB5},
+ {0x3B38, 0x5CBA},
+ {0x3B39, 0x5CC9},
+ {0x3B3A, 0x5CCB},
+ {0x3B3B, 0x5CD2},
+ {0x3B3C, 0x5CDD},
+ {0x3B3D, 0x5CD7},
+ {0x3B3E, 0x5CEE},
+ {0x3B3F, 0x5CF1},
+ {0x3B40, 0x5CF2},
+ {0x3B41, 0x5CF4},
+ {0x3B42, 0x5D01},
+ {0x3B43, 0x5D06},
+ {0x3B44, 0x5D0D},
+ {0x3B45, 0x5D12},
+ {0x3B46, 0x5D2B},
+ {0x3B47, 0x5D23},
+ {0x3B48, 0x5D24},
+ {0x3B49, 0x5D26},
+ {0x3B4A, 0x5D27},
+ {0x3B4B, 0x5D31},
+ {0x3B4C, 0x5D34},
+ {0x3B4D, 0x5D39},
+ {0x3B4E, 0x5D3D},
+ {0x3B4F, 0x5D3F},
+ {0x3B50, 0x5D42},
+ {0x3B51, 0x5D43},
+ {0x3B52, 0x5D46},
+ {0x3B53, 0x5D48},
+ {0x3B54, 0x5D55},
+ {0x3B55, 0x5D51},
+ {0x3B56, 0x5D59},
+ {0x3B57, 0x5D4A},
+ {0x3B58, 0x5D5F},
+ {0x3B59, 0x5D60},
+ {0x3B5A, 0x5D61},
+ {0x3B5B, 0x5D62},
+ {0x3B5C, 0x5D64},
+ {0x3B5D, 0x5D6A},
+ {0x3B5E, 0x5D6D},
+ {0x3B5F, 0x5D70},
+ {0x3B60, 0x5D79},
+ {0x3B61, 0x5D7A},
+ {0x3B62, 0x5D7E},
+ {0x3B63, 0x5D7F},
+ {0x3B64, 0x5D81},
+ {0x3B65, 0x5D83},
+ {0x3B66, 0x5D88},
+ {0x3B67, 0x5D8A},
+ {0x3B68, 0x5D92},
+ {0x3B69, 0x5D93},
+ {0x3B6A, 0x5D94},
+ {0x3B6B, 0x5D95},
+ {0x3B6C, 0x5D99},
+ {0x3B6D, 0x5D9B},
+ {0x3B6E, 0x5D9F},
+ {0x3B6F, 0x5DA0},
+ {0x3B70, 0x5DA7},
+ {0x3B71, 0x5DAB},
+ {0x3B72, 0x5DB0},
+ {0x3B73, 0x5DB4},
+ {0x3B74, 0x5DB8},
+ {0x3B75, 0x5DB9},
+ {0x3B76, 0x5DC3},
+ {0x3B77, 0x5DC7},
+ {0x3B78, 0x5DCB},
+ {0x3B79, 0x5DD0},
+ {0x3B7A, 0x5DCE},
+ {0x3B7B, 0x5DD8},
+ {0x3B7C, 0x5DD9},
+ {0x3B7D, 0x5DE0},
+ {0x3B7E, 0x5DE4},
+ {0x3C21, 0x5DE9},
+ {0x3C22, 0x5DF8},
+ {0x3C23, 0x5DF9},
+ {0x3C24, 0x5E00},
+ {0x3C25, 0x5E07},
+ {0x3C26, 0x5E0D},
+ {0x3C27, 0x5E12},
+ {0x3C28, 0x5E14},
+ {0x3C29, 0x5E15},
+ {0x3C2A, 0x5E18},
+ {0x3C2B, 0x5E1F},
+ {0x3C2C, 0x5E20},
+ {0x3C2D, 0x5E2E},
+ {0x3C2E, 0x5E28},
+ {0x3C2F, 0x5E32},
+ {0x3C30, 0x5E35},
+ {0x3C31, 0x5E3E},
+ {0x3C32, 0x5E4B},
+ {0x3C33, 0x5E50},
+ {0x3C34, 0x5E49},
+ {0x3C35, 0x5E51},
+ {0x3C36, 0x5E56},
+ {0x3C37, 0x5E58},
+ {0x3C38, 0x5E5B},
+ {0x3C39, 0x5E5C},
+ {0x3C3A, 0x5E5E},
+ {0x3C3B, 0x5E68},
+ {0x3C3C, 0x5E6A},
+ {0x3C3D, 0x5E6B},
+ {0x3C3E, 0x5E6C},
+ {0x3C3F, 0x5E6D},
+ {0x3C40, 0x5E6E},
+ {0x3C41, 0x5E70},
+ {0x3C42, 0x5E80},
+ {0x3C43, 0x5E8B},
+ {0x3C44, 0x5E8E},
+ {0x3C45, 0x5EA2},
+ {0x3C46, 0x5EA4},
+ {0x3C47, 0x5EA5},
+ {0x3C48, 0x5EA8},
+ {0x3C49, 0x5EAA},
+ {0x3C4A, 0x5EAC},
+ {0x3C4B, 0x5EB1},
+ {0x3C4C, 0x5EB3},
+ {0x3C4D, 0x5EBD},
+ {0x3C4E, 0x5EBE},
+ {0x3C4F, 0x5EBF},
+ {0x3C50, 0x5EC6},
+ {0x3C51, 0x5ECC},
+ {0x3C52, 0x5ECB},
+ {0x3C53, 0x5ECE},
+ {0x3C54, 0x5ED1},
+ {0x3C55, 0x5ED2},
+ {0x3C56, 0x5ED4},
+ {0x3C57, 0x5ED5},
+ {0x3C58, 0x5EDC},
+ {0x3C59, 0x5EDE},
+ {0x3C5A, 0x5EE5},
+ {0x3C5B, 0x5EEB},
+ {0x3C5C, 0x5F02},
+ {0x3C5D, 0x5F06},
+ {0x3C5E, 0x5F07},
+ {0x3C5F, 0x5F08},
+ {0x3C60, 0x5F0E},
+ {0x3C61, 0x5F19},
+ {0x3C62, 0x5F1C},
+ {0x3C63, 0x5F1D},
+ {0x3C64, 0x5F21},
+ {0x3C65, 0x5F22},
+ {0x3C66, 0x5F23},
+ {0x3C67, 0x5F24},
+ {0x3C68, 0x5F28},
+ {0x3C69, 0x5F2B},
+ {0x3C6A, 0x5F2C},
+ {0x3C6B, 0x5F2E},
+ {0x3C6C, 0x5F30},
+ {0x3C6D, 0x5F34},
+ {0x3C6E, 0x5F36},
+ {0x3C6F, 0x5F3B},
+ {0x3C70, 0x5F3D},
+ {0x3C71, 0x5F3F},
+ {0x3C72, 0x5F40},
+ {0x3C73, 0x5F44},
+ {0x3C74, 0x5F45},
+ {0x3C75, 0x5F47},
+ {0x3C76, 0x5F4D},
+ {0x3C77, 0x5F50},
+ {0x3C78, 0x5F54},
+ {0x3C79, 0x5F58},
+ {0x3C7A, 0x5F5B},
+ {0x3C7B, 0x5F60},
+ {0x3C7C, 0x5F63},
+ {0x3C7D, 0x5F64},
+ {0x3C7E, 0x5F67},
+ {0x3D21, 0x5F6F},
+ {0x3D22, 0x5F72},
+ {0x3D23, 0x5F74},
+ {0x3D24, 0x5F75},
+ {0x3D25, 0x5F78},
+ {0x3D26, 0x5F7A},
+ {0x3D27, 0x5F7D},
+ {0x3D28, 0x5F7E},
+ {0x3D29, 0x5F89},
+ {0x3D2A, 0x5F8D},
+ {0x3D2B, 0x5F8F},
+ {0x3D2C, 0x5F96},
+ {0x3D2D, 0x5F9C},
+ {0x3D2E, 0x5F9D},
+ {0x3D2F, 0x5FA2},
+ {0x3D30, 0x5FA7},
+ {0x3D31, 0x5FAB},
+ {0x3D32, 0x5FA4},
+ {0x3D33, 0x5FAC},
+ {0x3D34, 0x5FAF},
+ {0x3D35, 0x5FB0},
+ {0x3D36, 0x5FB1},
+ {0x3D37, 0x5FB8},
+ {0x3D38, 0x5FC4},
+ {0x3D39, 0x5FC7},
+ {0x3D3A, 0x5FC8},
+ {0x3D3B, 0x5FC9},
+ {0x3D3C, 0x5FCB},
+ {0x3D3D, 0x5FD0},
+ {0x3D3E, 0x5FD1},
+ {0x3D3F, 0x5FD2},
+ {0x3D40, 0x5FD3},
+ {0x3D41, 0x5FD4},
+ {0x3D42, 0x5FDE},
+ {0x3D43, 0x5FE1},
+ {0x3D44, 0x5FE2},
+ {0x3D45, 0x5FE8},
+ {0x3D46, 0x5FE9},
+ {0x3D47, 0x5FEA},
+ {0x3D48, 0x5FEC},
+ {0x3D49, 0x5FED},
+ {0x3D4A, 0x5FEE},
+ {0x3D4B, 0x5FEF},
+ {0x3D4C, 0x5FF2},
+ {0x3D4D, 0x5FF3},
+ {0x3D4E, 0x5FF6},
+ {0x3D4F, 0x5FFA},
+ {0x3D50, 0x5FFC},
+ {0x3D51, 0x6007},
+ {0x3D52, 0x600A},
+ {0x3D53, 0x600D},
+ {0x3D54, 0x6013},
+ {0x3D55, 0x6014},
+ {0x3D56, 0x6017},
+ {0x3D57, 0x6018},
+ {0x3D58, 0x601A},
+ {0x3D59, 0x601F},
+ {0x3D5A, 0x6024},
+ {0x3D5B, 0x602D},
+ {0x3D5C, 0x6033},
+ {0x3D5D, 0x6035},
+ {0x3D5E, 0x6040},
+ {0x3D5F, 0x6047},
+ {0x3D60, 0x6048},
+ {0x3D61, 0x6049},
+ {0x3D62, 0x604C},
+ {0x3D63, 0x6051},
+ {0x3D64, 0x6054},
+ {0x3D65, 0x6056},
+ {0x3D66, 0x6057},
+ {0x3D67, 0x605D},
+ {0x3D68, 0x6061},
+ {0x3D69, 0x6067},
+ {0x3D6A, 0x6071},
+ {0x3D6B, 0x607E},
+ {0x3D6C, 0x607F},
+ {0x3D6D, 0x6082},
+ {0x3D6E, 0x6086},
+ {0x3D6F, 0x6088},
+ {0x3D70, 0x608A},
+ {0x3D71, 0x608E},
+ {0x3D72, 0x6091},
+ {0x3D73, 0x6093},
+ {0x3D74, 0x6095},
+ {0x3D75, 0x6098},
+ {0x3D76, 0x609D},
+ {0x3D77, 0x609E},
+ {0x3D78, 0x60A2},
+ {0x3D79, 0x60A4},
+ {0x3D7A, 0x60A5},
+ {0x3D7B, 0x60A8},
+ {0x3D7C, 0x60B0},
+ {0x3D7D, 0x60B1},
+ {0x3D7E, 0x60B7},
+ {0x3E21, 0x60BB},
+ {0x3E22, 0x60BE},
+ {0x3E23, 0x60C2},
+ {0x3E24, 0x60C4},
+ {0x3E25, 0x60C8},
+ {0x3E26, 0x60C9},
+ {0x3E27, 0x60CA},
+ {0x3E28, 0x60CB},
+ {0x3E29, 0x60CE},
+ {0x3E2A, 0x60CF},
+ {0x3E2B, 0x60D4},
+ {0x3E2C, 0x60D5},
+ {0x3E2D, 0x60D9},
+ {0x3E2E, 0x60DB},
+ {0x3E2F, 0x60DD},
+ {0x3E30, 0x60DE},
+ {0x3E31, 0x60E2},
+ {0x3E32, 0x60E5},
+ {0x3E33, 0x60F2},
+ {0x3E34, 0x60F5},
+ {0x3E35, 0x60F8},
+ {0x3E36, 0x60FC},
+ {0x3E37, 0x60FD},
+ {0x3E38, 0x6102},
+ {0x3E39, 0x6107},
+ {0x3E3A, 0x610A},
+ {0x3E3B, 0x610C},
+ {0x3E3C, 0x6110},
+ {0x3E3D, 0x6111},
+ {0x3E3E, 0x6112},
+ {0x3E3F, 0x6113},
+ {0x3E40, 0x6114},
+ {0x3E41, 0x6116},
+ {0x3E42, 0x6117},
+ {0x3E43, 0x6119},
+ {0x3E44, 0x611C},
+ {0x3E45, 0x611E},
+ {0x3E46, 0x6122},
+ {0x3E47, 0x612A},
+ {0x3E48, 0x612B},
+ {0x3E49, 0x6130},
+ {0x3E4A, 0x6131},
+ {0x3E4B, 0x6135},
+ {0x3E4C, 0x6136},
+ {0x3E4D, 0x6137},
+ {0x3E4E, 0x6139},
+ {0x3E4F, 0x6141},
+ {0x3E50, 0x6145},
+ {0x3E51, 0x6146},
+ {0x3E52, 0x6149},
+ {0x3E53, 0x615E},
+ {0x3E54, 0x6160},
+ {0x3E55, 0x616C},
+ {0x3E56, 0x6172},
+ {0x3E57, 0x6178},
+ {0x3E58, 0x617B},
+ {0x3E59, 0x617C},
+ {0x3E5A, 0x617F},
+ {0x3E5B, 0x6180},
+ {0x3E5C, 0x6181},
+ {0x3E5D, 0x6183},
+ {0x3E5E, 0x6184},
+ {0x3E5F, 0x618B},
+ {0x3E60, 0x618D},
+ {0x3E61, 0x6192},
+ {0x3E62, 0x6193},
+ {0x3E63, 0x6197},
+ {0x3E64, 0x6198},
+ {0x3E65, 0x619C},
+ {0x3E66, 0x619D},
+ {0x3E67, 0x619F},
+ {0x3E68, 0x61A0},
+ {0x3E69, 0x61A5},
+ {0x3E6A, 0x61A8},
+ {0x3E6B, 0x61AA},
+ {0x3E6C, 0x61AD},
+ {0x3E6D, 0x61B8},
+ {0x3E6E, 0x61B9},
+ {0x3E6F, 0x61BC},
+ {0x3E70, 0x61C0},
+ {0x3E71, 0x61C1},
+ {0x3E72, 0x61C2},
+ {0x3E73, 0x61CE},
+ {0x3E74, 0x61CF},
+ {0x3E75, 0x61D5},
+ {0x3E76, 0x61DC},
+ {0x3E77, 0x61DD},
+ {0x3E78, 0x61DE},
+ {0x3E79, 0x61DF},
+ {0x3E7A, 0x61E1},
+ {0x3E7B, 0x61E2},
+ {0x3E7C, 0x61E7},
+ {0x3E7D, 0x61E9},
+ {0x3E7E, 0x61E5},
+ {0x3F21, 0x61EC},
+ {0x3F22, 0x61ED},
+ {0x3F23, 0x61EF},
+ {0x3F24, 0x6201},
+ {0x3F25, 0x6203},
+ {0x3F26, 0x6204},
+ {0x3F27, 0x6207},
+ {0x3F28, 0x6213},
+ {0x3F29, 0x6215},
+ {0x3F2A, 0x621C},
+ {0x3F2B, 0x6220},
+ {0x3F2C, 0x6222},
+ {0x3F2D, 0x6223},
+ {0x3F2E, 0x6227},
+ {0x3F2F, 0x6229},
+ {0x3F30, 0x622B},
+ {0x3F31, 0x6239},
+ {0x3F32, 0x623D},
+ {0x3F33, 0x6242},
+ {0x3F34, 0x6243},
+ {0x3F35, 0x6244},
+ {0x3F36, 0x6246},
+ {0x3F37, 0x624C},
+ {0x3F38, 0x6250},
+ {0x3F39, 0x6251},
+ {0x3F3A, 0x6252},
+ {0x3F3B, 0x6254},
+ {0x3F3C, 0x6256},
+ {0x3F3D, 0x625A},
+ {0x3F3E, 0x625C},
+ {0x3F3F, 0x6264},
+ {0x3F40, 0x626D},
+ {0x3F41, 0x626F},
+ {0x3F42, 0x6273},
+ {0x3F43, 0x627A},
+ {0x3F44, 0x627D},
+ {0x3F45, 0x628D},
+ {0x3F46, 0x628E},
+ {0x3F47, 0x628F},
+ {0x3F48, 0x6290},
+ {0x3F49, 0x62A6},
+ {0x3F4A, 0x62A8},
+ {0x3F4B, 0x62B3},
+ {0x3F4C, 0x62B6},
+ {0x3F4D, 0x62B7},
+ {0x3F4E, 0x62BA},
+ {0x3F4F, 0x62BE},
+ {0x3F50, 0x62BF},
+ {0x3F51, 0x62C4},
+ {0x3F52, 0x62CE},
+ {0x3F53, 0x62D5},
+ {0x3F54, 0x62D6},
+ {0x3F55, 0x62DA},
+ {0x3F56, 0x62EA},
+ {0x3F57, 0x62F2},
+ {0x3F58, 0x62F4},
+ {0x3F59, 0x62FC},
+ {0x3F5A, 0x62FD},
+ {0x3F5B, 0x6303},
+ {0x3F5C, 0x6304},
+ {0x3F5D, 0x630A},
+ {0x3F5E, 0x630B},
+ {0x3F5F, 0x630D},
+ {0x3F60, 0x6310},
+ {0x3F61, 0x6313},
+ {0x3F62, 0x6316},
+ {0x3F63, 0x6318},
+ {0x3F64, 0x6329},
+ {0x3F65, 0x632A},
+ {0x3F66, 0x632D},
+ {0x3F67, 0x6335},
+ {0x3F68, 0x6336},
+ {0x3F69, 0x6339},
+ {0x3F6A, 0x633C},
+ {0x3F6B, 0x6341},
+ {0x3F6C, 0x6342},
+ {0x3F6D, 0x6343},
+ {0x3F6E, 0x6344},
+ {0x3F6F, 0x6346},
+ {0x3F70, 0x634A},
+ {0x3F71, 0x634B},
+ {0x3F72, 0x634E},
+ {0x3F73, 0x6352},
+ {0x3F74, 0x6353},
+ {0x3F75, 0x6354},
+ {0x3F76, 0x6358},
+ {0x3F77, 0x635B},
+ {0x3F78, 0x6365},
+ {0x3F79, 0x6366},
+ {0x3F7A, 0x636C},
+ {0x3F7B, 0x636D},
+ {0x3F7C, 0x6371},
+ {0x3F7D, 0x6374},
+ {0x3F7E, 0x6375},
+ {0x4021, 0x6378},
+ {0x4022, 0x637C},
+ {0x4023, 0x637D},
+ {0x4024, 0x637F},
+ {0x4025, 0x6382},
+ {0x4026, 0x6384},
+ {0x4027, 0x6387},
+ {0x4028, 0x638A},
+ {0x4029, 0x6390},
+ {0x402A, 0x6394},
+ {0x402B, 0x6395},
+ {0x402C, 0x6399},
+ {0x402D, 0x639A},
+ {0x402E, 0x639E},
+ {0x402F, 0x63A4},
+ {0x4030, 0x63A6},
+ {0x4031, 0x63AD},
+ {0x4032, 0x63AE},
+ {0x4033, 0x63AF},
+ {0x4034, 0x63BD},
+ {0x4035, 0x63C1},
+ {0x4036, 0x63C5},
+ {0x4037, 0x63C8},
+ {0x4038, 0x63CE},
+ {0x4039, 0x63D1},
+ {0x403A, 0x63D3},
+ {0x403B, 0x63D4},
+ {0x403C, 0x63D5},
+ {0x403D, 0x63DC},
+ {0x403E, 0x63E0},
+ {0x403F, 0x63E5},
+ {0x4040, 0x63EA},
+ {0x4041, 0x63EC},
+ {0x4042, 0x63F2},
+ {0x4043, 0x63F3},
+ {0x4044, 0x63F5},
+ {0x4045, 0x63F8},
+ {0x4046, 0x63F9},
+ {0x4047, 0x6409},
+ {0x4048, 0x640A},
+ {0x4049, 0x6410},
+ {0x404A, 0x6412},
+ {0x404B, 0x6414},
+ {0x404C, 0x6418},
+ {0x404D, 0x641E},
+ {0x404E, 0x6420},
+ {0x404F, 0x6422},
+ {0x4050, 0x6424},
+ {0x4051, 0x6425},
+ {0x4052, 0x6429},
+ {0x4053, 0x642A},
+ {0x4054, 0x642F},
+ {0x4055, 0x6430},
+ {0x4056, 0x6435},
+ {0x4057, 0x643D},
+ {0x4058, 0x643F},
+ {0x4059, 0x644B},
+ {0x405A, 0x644F},
+ {0x405B, 0x6451},
+ {0x405C, 0x6452},
+ {0x405D, 0x6453},
+ {0x405E, 0x6454},
+ {0x405F, 0x645A},
+ {0x4060, 0x645B},
+ {0x4061, 0x645C},
+ {0x4062, 0x645D},
+ {0x4063, 0x645F},
+ {0x4064, 0x6460},
+ {0x4065, 0x6461},
+ {0x4066, 0x6463},
+ {0x4067, 0x646D},
+ {0x4068, 0x6473},
+ {0x4069, 0x6474},
+ {0x406A, 0x647B},
+ {0x406B, 0x647D},
+ {0x406C, 0x6485},
+ {0x406D, 0x6487},
+ {0x406E, 0x648F},
+ {0x406F, 0x6490},
+ {0x4070, 0x6491},
+ {0x4071, 0x6498},
+ {0x4072, 0x6499},
+ {0x4073, 0x649B},
+ {0x4074, 0x649D},
+ {0x4075, 0x649F},
+ {0x4076, 0x64A1},
+ {0x4077, 0x64A3},
+ {0x4078, 0x64A6},
+ {0x4079, 0x64A8},
+ {0x407A, 0x64AC},
+ {0x407B, 0x64B3},
+ {0x407C, 0x64BD},
+ {0x407D, 0x64BE},
+ {0x407E, 0x64BF},
+ {0x4121, 0x64C4},
+ {0x4122, 0x64C9},
+ {0x4123, 0x64CA},
+ {0x4124, 0x64CB},
+ {0x4125, 0x64CC},
+ {0x4126, 0x64CE},
+ {0x4127, 0x64D0},
+ {0x4128, 0x64D1},
+ {0x4129, 0x64D5},
+ {0x412A, 0x64D7},
+ {0x412B, 0x64E4},
+ {0x412C, 0x64E5},
+ {0x412D, 0x64E9},
+ {0x412E, 0x64EA},
+ {0x412F, 0x64ED},
+ {0x4130, 0x64F0},
+ {0x4131, 0x64F5},
+ {0x4132, 0x64F7},
+ {0x4133, 0x64FB},
+ {0x4134, 0x64FF},
+ {0x4135, 0x6501},
+ {0x4136, 0x6504},
+ {0x4137, 0x6508},
+ {0x4138, 0x6509},
+ {0x4139, 0x650A},
+ {0x413A, 0x650F},
+ {0x413B, 0x6513},
+ {0x413C, 0x6514},
+ {0x413D, 0x6516},
+ {0x413E, 0x6519},
+ {0x413F, 0x651B},
+ {0x4140, 0x651E},
+ {0x4141, 0x651F},
+ {0x4142, 0x6522},
+ {0x4143, 0x6526},
+ {0x4144, 0x6529},
+ {0x4145, 0x652E},
+ {0x4146, 0x6531},
+ {0x4147, 0x653A},
+ {0x4148, 0x653C},
+ {0x4149, 0x653D},
+ {0x414A, 0x6543},
+ {0x414B, 0x6547},
+ {0x414C, 0x6549},
+ {0x414D, 0x6550},
+ {0x414E, 0x6552},
+ {0x414F, 0x6554},
+ {0x4150, 0x655F},
+ {0x4151, 0x6560},
+ {0x4152, 0x6567},
+ {0x4153, 0x656B},
+ {0x4154, 0x657A},
+ {0x4155, 0x657D},
+ {0x4156, 0x6581},
+ {0x4157, 0x6585},
+ {0x4158, 0x658A},
+ {0x4159, 0x6592},
+ {0x415A, 0x6595},
+ {0x415B, 0x6598},
+ {0x415C, 0x659D},
+ {0x415D, 0x65A0},
+ {0x415E, 0x65A3},
+ {0x415F, 0x65A6},
+ {0x4160, 0x65AE},
+ {0x4161, 0x65B2},
+ {0x4162, 0x65B3},
+ {0x4163, 0x65B4},
+ {0x4164, 0x65BF},
+ {0x4165, 0x65C2},
+ {0x4166, 0x65C8},
+ {0x4167, 0x65C9},
+ {0x4168, 0x65CE},
+ {0x4169, 0x65D0},
+ {0x416A, 0x65D4},
+ {0x416B, 0x65D6},
+ {0x416C, 0x65D8},
+ {0x416D, 0x65DF},
+ {0x416E, 0x65F0},
+ {0x416F, 0x65F2},
+ {0x4170, 0x65F4},
+ {0x4171, 0x65F5},
+ {0x4172, 0x65F9},
+ {0x4173, 0x65FE},
+ {0x4174, 0x65FF},
+ {0x4175, 0x6600},
+ {0x4176, 0x6604},
+ {0x4177, 0x6608},
+ {0x4178, 0x6609},
+ {0x4179, 0x660D},
+ {0x417A, 0x6611},
+ {0x417B, 0x6612},
+ {0x417C, 0x6615},
+ {0x417D, 0x6616},
+ {0x417E, 0x661D},
+ {0x4221, 0x661E},
+ {0x4222, 0x6621},
+ {0x4223, 0x6622},
+ {0x4224, 0x6623},
+ {0x4225, 0x6624},
+ {0x4226, 0x6626},
+ {0x4227, 0x6629},
+ {0x4228, 0x662A},
+ {0x4229, 0x662B},
+ {0x422A, 0x662C},
+ {0x422B, 0x662E},
+ {0x422C, 0x6630},
+ {0x422D, 0x6631},
+ {0x422E, 0x6633},
+ {0x422F, 0x6639},
+ {0x4230, 0x6637},
+ {0x4231, 0x6640},
+ {0x4232, 0x6645},
+ {0x4233, 0x6646},
+ {0x4234, 0x664A},
+ {0x4235, 0x664C},
+ {0x4236, 0x6651},
+ {0x4237, 0x664E},
+ {0x4238, 0x6657},
+ {0x4239, 0x6658},
+ {0x423A, 0x6659},
+ {0x423B, 0x665B},
+ {0x423C, 0x665C},
+ {0x423D, 0x6660},
+ {0x423E, 0x6661},
+ {0x423F, 0x66FB},
+ {0x4240, 0x666A},
+ {0x4241, 0x666B},
+ {0x4242, 0x666C},
+ {0x4243, 0x667E},
+ {0x4244, 0x6673},
+ {0x4245, 0x6675},
+ {0x4246, 0x667F},
+ {0x4247, 0x6677},
+ {0x4248, 0x6678},
+ {0x4249, 0x6679},
+ {0x424A, 0x667B},
+ {0x424B, 0x6680},
+ {0x424C, 0x667C},
+ {0x424D, 0x668B},
+ {0x424E, 0x668C},
+ {0x424F, 0x668D},
+ {0x4250, 0x6690},
+ {0x4251, 0x6692},
+ {0x4252, 0x6699},
+ {0x4253, 0x669A},
+ {0x4254, 0x669B},
+ {0x4255, 0x669C},
+ {0x4256, 0x669F},
+ {0x4257, 0x66A0},
+ {0x4258, 0x66A4},
+ {0x4259, 0x66AD},
+ {0x425A, 0x66B1},
+ {0x425B, 0x66B2},
+ {0x425C, 0x66B5},
+ {0x425D, 0x66BB},
+ {0x425E, 0x66BF},
+ {0x425F, 0x66C0},
+ {0x4260, 0x66C2},
+ {0x4261, 0x66C3},
+ {0x4262, 0x66C8},
+ {0x4263, 0x66CC},
+ {0x4264, 0x66CE},
+ {0x4265, 0x66CF},
+ {0x4266, 0x66D4},
+ {0x4267, 0x66DB},
+ {0x4268, 0x66DF},
+ {0x4269, 0x66E8},
+ {0x426A, 0x66EB},
+ {0x426B, 0x66EC},
+ {0x426C, 0x66EE},
+ {0x426D, 0x66FA},
+ {0x426E, 0x6705},
+ {0x426F, 0x6707},
+ {0x4270, 0x670E},
+ {0x4271, 0x6713},
+ {0x4272, 0x6719},
+ {0x4273, 0x671C},
+ {0x4274, 0x6720},
+ {0x4275, 0x6722},
+ {0x4276, 0x6733},
+ {0x4277, 0x673E},
+ {0x4278, 0x6745},
+ {0x4279, 0x6747},
+ {0x427A, 0x6748},
+ {0x427B, 0x674C},
+ {0x427C, 0x6754},
+ {0x427D, 0x6755},
+ {0x427E, 0x675D},
+ {0x4321, 0x6766},
+ {0x4322, 0x676C},
+ {0x4323, 0x676E},
+ {0x4324, 0x6774},
+ {0x4325, 0x6776},
+ {0x4326, 0x677B},
+ {0x4327, 0x6781},
+ {0x4328, 0x6784},
+ {0x4329, 0x678E},
+ {0x432A, 0x678F},
+ {0x432B, 0x6791},
+ {0x432C, 0x6793},
+ {0x432D, 0x6796},
+ {0x432E, 0x6798},
+ {0x432F, 0x6799},
+ {0x4330, 0x679B},
+ {0x4331, 0x67B0},
+ {0x4332, 0x67B1},
+ {0x4333, 0x67B2},
+ {0x4334, 0x67B5},
+ {0x4335, 0x67BB},
+ {0x4336, 0x67BC},
+ {0x4337, 0x67BD},
+ {0x4338, 0x67F9},
+ {0x4339, 0x67C0},
+ {0x433A, 0x67C2},
+ {0x433B, 0x67C3},
+ {0x433C, 0x67C5},
+ {0x433D, 0x67C8},
+ {0x433E, 0x67C9},
+ {0x433F, 0x67D2},
+ {0x4340, 0x67D7},
+ {0x4341, 0x67D9},
+ {0x4342, 0x67DC},
+ {0x4343, 0x67E1},
+ {0x4344, 0x67E6},
+ {0x4345, 0x67F0},
+ {0x4346, 0x67F2},
+ {0x4347, 0x67F6},
+ {0x4348, 0x67F7},
+ {0x4349, 0x6852},
+ {0x434A, 0x6814},
+ {0x434B, 0x6819},
+ {0x434C, 0x681D},
+ {0x434D, 0x681F},
+ {0x434E, 0x6828},
+ {0x434F, 0x6827},
+ {0x4350, 0x682C},
+ {0x4351, 0x682D},
+ {0x4352, 0x682F},
+ {0x4353, 0x6830},
+ {0x4354, 0x6831},
+ {0x4355, 0x6833},
+ {0x4356, 0x683B},
+ {0x4357, 0x683F},
+ {0x4358, 0x6844},
+ {0x4359, 0x6845},
+ {0x435A, 0x684A},
+ {0x435B, 0x684C},
+ {0x435C, 0x6855},
+ {0x435D, 0x6857},
+ {0x435E, 0x6858},
+ {0x435F, 0x685B},
+ {0x4360, 0x686B},
+ {0x4361, 0x686E},
+ {0x4362, 0x686F},
+ {0x4363, 0x6870},
+ {0x4364, 0x6871},
+ {0x4365, 0x6872},
+ {0x4366, 0x6875},
+ {0x4367, 0x6879},
+ {0x4368, 0x687A},
+ {0x4369, 0x687B},
+ {0x436A, 0x687C},
+ {0x436B, 0x6882},
+ {0x436C, 0x6884},
+ {0x436D, 0x6886},
+ {0x436E, 0x6888},
+ {0x436F, 0x6896},
+ {0x4370, 0x6898},
+ {0x4371, 0x689A},
+ {0x4372, 0x689C},
+ {0x4373, 0x68A1},
+ {0x4374, 0x68A3},
+ {0x4375, 0x68A5},
+ {0x4376, 0x68A9},
+ {0x4377, 0x68AA},
+ {0x4378, 0x68AE},
+ {0x4379, 0x68B2},
+ {0x437A, 0x68BB},
+ {0x437B, 0x68C5},
+ {0x437C, 0x68C8},
+ {0x437D, 0x68CC},
+ {0x437E, 0x68CF},
+ {0x4421, 0x68D0},
+ {0x4422, 0x68D1},
+ {0x4423, 0x68D3},
+ {0x4424, 0x68D6},
+ {0x4425, 0x68D9},
+ {0x4426, 0x68DC},
+ {0x4427, 0x68DD},
+ {0x4428, 0x68E5},
+ {0x4429, 0x68E8},
+ {0x442A, 0x68EA},
+ {0x442B, 0x68EB},
+ {0x442C, 0x68EC},
+ {0x442D, 0x68ED},
+ {0x442E, 0x68F0},
+ {0x442F, 0x68F1},
+ {0x4430, 0x68F5},
+ {0x4431, 0x68F6},
+ {0x4432, 0x68FB},
+ {0x4433, 0x68FC},
+ {0x4434, 0x68FD},
+ {0x4435, 0x6906},
+ {0x4436, 0x6909},
+ {0x4437, 0x690A},
+ {0x4438, 0x6910},
+ {0x4439, 0x6911},
+ {0x443A, 0x6913},
+ {0x443B, 0x6916},
+ {0x443C, 0x6917},
+ {0x443D, 0x6931},
+ {0x443E, 0x6933},
+ {0x443F, 0x6935},
+ {0x4440, 0x6938},
+ {0x4441, 0x693B},
+ {0x4442, 0x6942},
+ {0x4443, 0x6945},
+ {0x4444, 0x6949},
+ {0x4445, 0x694E},
+ {0x4446, 0x6957},
+ {0x4447, 0x695B},
+ {0x4448, 0x6963},
+ {0x4449, 0x6964},
+ {0x444A, 0x6965},
+ {0x444B, 0x6966},
+ {0x444C, 0x6968},
+ {0x444D, 0x6969},
+ {0x444E, 0x696C},
+ {0x444F, 0x6970},
+ {0x4450, 0x6971},
+ {0x4451, 0x6972},
+ {0x4452, 0x697A},
+ {0x4453, 0x697B},
+ {0x4454, 0x697F},
+ {0x4455, 0x6980},
+ {0x4456, 0x698D},
+ {0x4457, 0x6992},
+ {0x4458, 0x6996},
+ {0x4459, 0x6998},
+ {0x445A, 0x69A1},
+ {0x445B, 0x69A5},
+ {0x445C, 0x69A6},
+ {0x445D, 0x69A8},
+ {0x445E, 0x69AB},
+ {0x445F, 0x69AD},
+ {0x4460, 0x69AF},
+ {0x4461, 0x69B7},
+ {0x4462, 0x69B8},
+ {0x4463, 0x69BA},
+ {0x4464, 0x69BC},
+ {0x4465, 0x69C5},
+ {0x4466, 0x69C8},
+ {0x4467, 0x69D1},
+ {0x4468, 0x69D6},
+ {0x4469, 0x69D7},
+ {0x446A, 0x69E2},
+ {0x446B, 0x69E5},
+ {0x446C, 0x69EE},
+ {0x446D, 0x69EF},
+ {0x446E, 0x69F1},
+ {0x446F, 0x69F3},
+ {0x4470, 0x69F5},
+ {0x4471, 0x69FE},
+ {0x4472, 0x6A00},
+ {0x4473, 0x6A01},
+ {0x4474, 0x6A03},
+ {0x4475, 0x6A0F},
+ {0x4476, 0x6A11},
+ {0x4477, 0x6A15},
+ {0x4478, 0x6A1A},
+ {0x4479, 0x6A1D},
+ {0x447A, 0x6A20},
+ {0x447B, 0x6A24},
+ {0x447C, 0x6A28},
+ {0x447D, 0x6A30},
+ {0x447E, 0x6A32},
+ {0x4521, 0x6A34},
+ {0x4522, 0x6A37},
+ {0x4523, 0x6A3B},
+ {0x4524, 0x6A3E},
+ {0x4525, 0x6A3F},
+ {0x4526, 0x6A45},
+ {0x4527, 0x6A46},
+ {0x4528, 0x6A49},
+ {0x4529, 0x6A4A},
+ {0x452A, 0x6A4E},
+ {0x452B, 0x6A50},
+ {0x452C, 0x6A51},
+ {0x452D, 0x6A52},
+ {0x452E, 0x6A55},
+ {0x452F, 0x6A56},
+ {0x4530, 0x6A5B},
+ {0x4531, 0x6A64},
+ {0x4532, 0x6A67},
+ {0x4533, 0x6A6A},
+ {0x4534, 0x6A71},
+ {0x4535, 0x6A73},
+ {0x4536, 0x6A7E},
+ {0x4537, 0x6A81},
+ {0x4538, 0x6A83},
+ {0x4539, 0x6A86},
+ {0x453A, 0x6A87},
+ {0x453B, 0x6A89},
+ {0x453C, 0x6A8B},
+ {0x453D, 0x6A91},
+ {0x453E, 0x6A9B},
+ {0x453F, 0x6A9D},
+ {0x4540, 0x6A9E},
+ {0x4541, 0x6A9F},
+ {0x4542, 0x6AA5},
+ {0x4543, 0x6AAB},
+ {0x4544, 0x6AAF},
+ {0x4545, 0x6AB0},
+ {0x4546, 0x6AB1},
+ {0x4547, 0x6AB4},
+ {0x4548, 0x6ABD},
+ {0x4549, 0x6ABE},
+ {0x454A, 0x6ABF},
+ {0x454B, 0x6AC6},
+ {0x454C, 0x6AC9},
+ {0x454D, 0x6AC8},
+ {0x454E, 0x6ACC},
+ {0x454F, 0x6AD0},
+ {0x4550, 0x6AD4},
+ {0x4551, 0x6AD5},
+ {0x4552, 0x6AD6},
+ {0x4553, 0x6ADC},
+ {0x4554, 0x6ADD},
+ {0x4555, 0x6AE4},
+ {0x4556, 0x6AE7},
+ {0x4557, 0x6AEC},
+ {0x4558, 0x6AF0},
+ {0x4559, 0x6AF1},
+ {0x455A, 0x6AF2},
+ {0x455B, 0x6AFC},
+ {0x455C, 0x6AFD},
+ {0x455D, 0x6B02},
+ {0x455E, 0x6B03},
+ {0x455F, 0x6B06},
+ {0x4560, 0x6B07},
+ {0x4561, 0x6B09},
+ {0x4562, 0x6B0F},
+ {0x4563, 0x6B10},
+ {0x4564, 0x6B11},
+ {0x4565, 0x6B17},
+ {0x4566, 0x6B1B},
+ {0x4567, 0x6B1E},
+ {0x4568, 0x6B24},
+ {0x4569, 0x6B28},
+ {0x456A, 0x6B2B},
+ {0x456B, 0x6B2C},
+ {0x456C, 0x6B2F},
+ {0x456D, 0x6B35},
+ {0x456E, 0x6B36},
+ {0x456F, 0x6B3B},
+ {0x4570, 0x6B3F},
+ {0x4571, 0x6B46},
+ {0x4572, 0x6B4A},
+ {0x4573, 0x6B4D},
+ {0x4574, 0x6B52},
+ {0x4575, 0x6B56},
+ {0x4576, 0x6B58},
+ {0x4577, 0x6B5D},
+ {0x4578, 0x6B60},
+ {0x4579, 0x6B67},
+ {0x457A, 0x6B6B},
+ {0x457B, 0x6B6E},
+ {0x457C, 0x6B70},
+ {0x457D, 0x6B75},
+ {0x457E, 0x6B7D},
+ {0x4621, 0x6B7E},
+ {0x4622, 0x6B82},
+ {0x4623, 0x6B85},
+ {0x4624, 0x6B97},
+ {0x4625, 0x6B9B},
+ {0x4626, 0x6B9F},
+ {0x4627, 0x6BA0},
+ {0x4628, 0x6BA2},
+ {0x4629, 0x6BA3},
+ {0x462A, 0x6BA8},
+ {0x462B, 0x6BA9},
+ {0x462C, 0x6BAC},
+ {0x462D, 0x6BAD},
+ {0x462E, 0x6BAE},
+ {0x462F, 0x6BB0},
+ {0x4630, 0x6BB8},
+ {0x4631, 0x6BB9},
+ {0x4632, 0x6BBD},
+ {0x4633, 0x6BBE},
+ {0x4634, 0x6BC3},
+ {0x4635, 0x6BC4},
+ {0x4636, 0x6BC9},
+ {0x4637, 0x6BCC},
+ {0x4638, 0x6BD6},
+ {0x4639, 0x6BDA},
+ {0x463A, 0x6BE1},
+ {0x463B, 0x6BE3},
+ {0x463C, 0x6BE6},
+ {0x463D, 0x6BE7},
+ {0x463E, 0x6BEE},
+ {0x463F, 0x6BF1},
+ {0x4640, 0x6BF7},
+ {0x4641, 0x6BF9},
+ {0x4642, 0x6BFF},
+ {0x4643, 0x6C02},
+ {0x4644, 0x6C04},
+ {0x4645, 0x6C05},
+ {0x4646, 0x6C09},
+ {0x4647, 0x6C0D},
+ {0x4648, 0x6C0E},
+ {0x4649, 0x6C10},
+ {0x464A, 0x6C12},
+ {0x464B, 0x6C19},
+ {0x464C, 0x6C1F},
+ {0x464D, 0x6C26},
+ {0x464E, 0x6C27},
+ {0x464F, 0x6C28},
+ {0x4650, 0x6C2C},
+ {0x4651, 0x6C2E},
+ {0x4652, 0x6C33},
+ {0x4653, 0x6C35},
+ {0x4654, 0x6C36},
+ {0x4655, 0x6C3A},
+ {0x4656, 0x6C3B},
+ {0x4657, 0x6C3F},
+ {0x4658, 0x6C4A},
+ {0x4659, 0x6C4B},
+ {0x465A, 0x6C4D},
+ {0x465B, 0x6C4F},
+ {0x465C, 0x6C52},
+ {0x465D, 0x6C54},
+ {0x465E, 0x6C59},
+ {0x465F, 0x6C5B},
+ {0x4660, 0x6C5C},
+ {0x4661, 0x6C6B},
+ {0x4662, 0x6C6D},
+ {0x4663, 0x6C6F},
+ {0x4664, 0x6C74},
+ {0x4665, 0x6C76},
+ {0x4666, 0x6C78},
+ {0x4667, 0x6C79},
+ {0x4668, 0x6C7B},
+ {0x4669, 0x6C85},
+ {0x466A, 0x6C86},
+ {0x466B, 0x6C87},
+ {0x466C, 0x6C89},
+ {0x466D, 0x6C94},
+ {0x466E, 0x6C95},
+ {0x466F, 0x6C97},
+ {0x4670, 0x6C98},
+ {0x4671, 0x6C9C},
+ {0x4672, 0x6C9F},
+ {0x4673, 0x6CB0},
+ {0x4674, 0x6CB2},
+ {0x4675, 0x6CB4},
+ {0x4676, 0x6CC2},
+ {0x4677, 0x6CC6},
+ {0x4678, 0x6CCD},
+ {0x4679, 0x6CCF},
+ {0x467A, 0x6CD0},
+ {0x467B, 0x6CD1},
+ {0x467C, 0x6CD2},
+ {0x467D, 0x6CD4},
+ {0x467E, 0x6CD6},
+ {0x4721, 0x6CDA},
+ {0x4722, 0x6CDC},
+ {0x4723, 0x6CE0},
+ {0x4724, 0x6CE7},
+ {0x4725, 0x6CE9},
+ {0x4726, 0x6CEB},
+ {0x4727, 0x6CEC},
+ {0x4728, 0x6CEE},
+ {0x4729, 0x6CF2},
+ {0x472A, 0x6CF4},
+ {0x472B, 0x6D04},
+ {0x472C, 0x6D07},
+ {0x472D, 0x6D0A},
+ {0x472E, 0x6D0E},
+ {0x472F, 0x6D0F},
+ {0x4730, 0x6D11},
+ {0x4731, 0x6D13},
+ {0x4732, 0x6D1A},
+ {0x4733, 0x6D26},
+ {0x4734, 0x6D27},
+ {0x4735, 0x6D28},
+ {0x4736, 0x6C67},
+ {0x4737, 0x6D2E},
+ {0x4738, 0x6D2F},
+ {0x4739, 0x6D31},
+ {0x473A, 0x6D39},
+ {0x473B, 0x6D3C},
+ {0x473C, 0x6D3F},
+ {0x473D, 0x6D57},
+ {0x473E, 0x6D5E},
+ {0x473F, 0x6D5F},
+ {0x4740, 0x6D61},
+ {0x4741, 0x6D65},
+ {0x4742, 0x6D67},
+ {0x4743, 0x6D6F},
+ {0x4744, 0x6D70},
+ {0x4745, 0x6D7C},
+ {0x4746, 0x6D82},
+ {0x4747, 0x6D87},
+ {0x4748, 0x6D91},
+ {0x4749, 0x6D92},
+ {0x474A, 0x6D94},
+ {0x474B, 0x6D96},
+ {0x474C, 0x6D97},
+ {0x474D, 0x6D98},
+ {0x474E, 0x6DAA},
+ {0x474F, 0x6DAC},
+ {0x4750, 0x6DB4},
+ {0x4751, 0x6DB7},
+ {0x4752, 0x6DB9},
+ {0x4753, 0x6DBD},
+ {0x4754, 0x6DBF},
+ {0x4755, 0x6DC4},
+ {0x4756, 0x6DC8},
+ {0x4757, 0x6DCA},
+ {0x4758, 0x6DCE},
+ {0x4759, 0x6DCF},
+ {0x475A, 0x6DD6},
+ {0x475B, 0x6DDB},
+ {0x475C, 0x6DDD},
+ {0x475D, 0x6DDF},
+ {0x475E, 0x6DE0},
+ {0x475F, 0x6DE2},
+ {0x4760, 0x6DE5},
+ {0x4761, 0x6DE9},
+ {0x4762, 0x6DEF},
+ {0x4763, 0x6DF0},
+ {0x4764, 0x6DF4},
+ {0x4765, 0x6DF6},
+ {0x4766, 0x6DFC},
+ {0x4767, 0x6E00},
+ {0x4768, 0x6E04},
+ {0x4769, 0x6E1E},
+ {0x476A, 0x6E22},
+ {0x476B, 0x6E27},
+ {0x476C, 0x6E32},
+ {0x476D, 0x6E36},
+ {0x476E, 0x6E39},
+ {0x476F, 0x6E3B},
+ {0x4770, 0x6E3C},
+ {0x4771, 0x6E44},
+ {0x4772, 0x6E45},
+ {0x4773, 0x6E48},
+ {0x4774, 0x6E49},
+ {0x4775, 0x6E4B},
+ {0x4776, 0x6E4F},
+ {0x4777, 0x6E51},
+ {0x4778, 0x6E52},
+ {0x4779, 0x6E53},
+ {0x477A, 0x6E54},
+ {0x477B, 0x6E57},
+ {0x477C, 0x6E5C},
+ {0x477D, 0x6E5D},
+ {0x477E, 0x6E5E},
+ {0x4821, 0x6E62},
+ {0x4822, 0x6E63},
+ {0x4823, 0x6E68},
+ {0x4824, 0x6E73},
+ {0x4825, 0x6E7B},
+ {0x4826, 0x6E7D},
+ {0x4827, 0x6E8D},
+ {0x4828, 0x6E93},
+ {0x4829, 0x6E99},
+ {0x482A, 0x6EA0},
+ {0x482B, 0x6EA7},
+ {0x482C, 0x6EAD},
+ {0x482D, 0x6EAE},
+ {0x482E, 0x6EB1},
+ {0x482F, 0x6EB3},
+ {0x4830, 0x6EBB},
+ {0x4831, 0x6EBF},
+ {0x4832, 0x6EC0},
+ {0x4833, 0x6EC1},
+ {0x4834, 0x6EC3},
+ {0x4835, 0x6EC7},
+ {0x4836, 0x6EC8},
+ {0x4837, 0x6ECA},
+ {0x4838, 0x6ECD},
+ {0x4839, 0x6ECE},
+ {0x483A, 0x6ECF},
+ {0x483B, 0x6EEB},
+ {0x483C, 0x6EED},
+ {0x483D, 0x6EEE},
+ {0x483E, 0x6EF9},
+ {0x483F, 0x6EFB},
+ {0x4840, 0x6EFD},
+ {0x4841, 0x6F04},
+ {0x4842, 0x6F08},
+ {0x4843, 0x6F0A},
+ {0x4844, 0x6F0C},
+ {0x4845, 0x6F0D},
+ {0x4846, 0x6F16},
+ {0x4847, 0x6F18},
+ {0x4848, 0x6F1A},
+ {0x4849, 0x6F1B},
+ {0x484A, 0x6F26},
+ {0x484B, 0x6F29},
+ {0x484C, 0x6F2A},
+ {0x484D, 0x6F2F},
+ {0x484E, 0x6F30},
+ {0x484F, 0x6F33},
+ {0x4850, 0x6F36},
+ {0x4851, 0x6F3B},
+ {0x4852, 0x6F3C},
+ {0x4853, 0x6F2D},
+ {0x4854, 0x6F4F},
+ {0x4855, 0x6F51},
+ {0x4856, 0x6F52},
+ {0x4857, 0x6F53},
+ {0x4858, 0x6F57},
+ {0x4859, 0x6F59},
+ {0x485A, 0x6F5A},
+ {0x485B, 0x6F5D},
+ {0x485C, 0x6F5E},
+ {0x485D, 0x6F61},
+ {0x485E, 0x6F62},
+ {0x485F, 0x6F68},
+ {0x4860, 0x6F6C},
+ {0x4861, 0x6F7D},
+ {0x4862, 0x6F7E},
+ {0x4863, 0x6F83},
+ {0x4864, 0x6F87},
+ {0x4865, 0x6F88},
+ {0x4866, 0x6F8B},
+ {0x4867, 0x6F8C},
+ {0x4868, 0x6F8D},
+ {0x4869, 0x6F90},
+ {0x486A, 0x6F92},
+ {0x486B, 0x6F93},
+ {0x486C, 0x6F94},
+ {0x486D, 0x6F96},
+ {0x486E, 0x6F9A},
+ {0x486F, 0x6F9F},
+ {0x4870, 0x6FA0},
+ {0x4871, 0x6FA5},
+ {0x4872, 0x6FA6},
+ {0x4873, 0x6FA7},
+ {0x4874, 0x6FA8},
+ {0x4875, 0x6FAE},
+ {0x4876, 0x6FAF},
+ {0x4877, 0x6FB0},
+ {0x4878, 0x6FB5},
+ {0x4879, 0x6FB6},
+ {0x487A, 0x6FBC},
+ {0x487B, 0x6FC5},
+ {0x487C, 0x6FC7},
+ {0x487D, 0x6FC8},
+ {0x487E, 0x6FCA},
+ {0x4921, 0x6FDA},
+ {0x4922, 0x6FDE},
+ {0x4923, 0x6FE8},
+ {0x4924, 0x6FE9},
+ {0x4925, 0x6FF0},
+ {0x4926, 0x6FF5},
+ {0x4927, 0x6FF9},
+ {0x4928, 0x6FFC},
+ {0x4929, 0x6FFD},
+ {0x492A, 0x7000},
+ {0x492B, 0x7005},
+ {0x492C, 0x7006},
+ {0x492D, 0x7007},
+ {0x492E, 0x700D},
+ {0x492F, 0x7017},
+ {0x4930, 0x7020},
+ {0x4931, 0x7023},
+ {0x4932, 0x702F},
+ {0x4933, 0x7034},
+ {0x4934, 0x7037},
+ {0x4935, 0x7039},
+ {0x4936, 0x703C},
+ {0x4937, 0x7043},
+ {0x4938, 0x7044},
+ {0x4939, 0x7048},
+ {0x493A, 0x7049},
+ {0x493B, 0x704A},
+ {0x493C, 0x704B},
+ {0x493D, 0x7054},
+ {0x493E, 0x7055},
+ {0x493F, 0x705D},
+ {0x4940, 0x705E},
+ {0x4941, 0x704E},
+ {0x4942, 0x7064},
+ {0x4943, 0x7065},
+ {0x4944, 0x706C},
+ {0x4945, 0x706E},
+ {0x4946, 0x7075},
+ {0x4947, 0x7076},
+ {0x4948, 0x707E},
+ {0x4949, 0x7081},
+ {0x494A, 0x7085},
+ {0x494B, 0x7086},
+ {0x494C, 0x7094},
+ {0x494D, 0x7095},
+ {0x494E, 0x7096},
+ {0x494F, 0x7097},
+ {0x4950, 0x7098},
+ {0x4951, 0x709B},
+ {0x4952, 0x70A4},
+ {0x4953, 0x70AB},
+ {0x4954, 0x70B0},
+ {0x4955, 0x70B1},
+ {0x4956, 0x70B4},
+ {0x4957, 0x70B7},
+ {0x4958, 0x70CA},
+ {0x4959, 0x70D1},
+ {0x495A, 0x70D3},
+ {0x495B, 0x70D4},
+ {0x495C, 0x70D5},
+ {0x495D, 0x70D6},
+ {0x495E, 0x70D8},
+ {0x495F, 0x70DC},
+ {0x4960, 0x70E4},
+ {0x4961, 0x70FA},
+ {0x4962, 0x7103},
+ {0x4963, 0x7104},
+ {0x4964, 0x7105},
+ {0x4965, 0x7106},
+ {0x4966, 0x7107},
+ {0x4967, 0x710B},
+ {0x4968, 0x710C},
+ {0x4969, 0x710F},
+ {0x496A, 0x711E},
+ {0x496B, 0x7120},
+ {0x496C, 0x712B},
+ {0x496D, 0x712D},
+ {0x496E, 0x712F},
+ {0x496F, 0x7130},
+ {0x4970, 0x7131},
+ {0x4971, 0x7138},
+ {0x4972, 0x7141},
+ {0x4973, 0x7145},
+ {0x4974, 0x7146},
+ {0x4975, 0x7147},
+ {0x4976, 0x714A},
+ {0x4977, 0x714B},
+ {0x4978, 0x7150},
+ {0x4979, 0x7152},
+ {0x497A, 0x7157},
+ {0x497B, 0x715A},
+ {0x497C, 0x715C},
+ {0x497D, 0x715E},
+ {0x497E, 0x7160},
+ {0x4A21, 0x7168},
+ {0x4A22, 0x7179},
+ {0x4A23, 0x7180},
+ {0x4A24, 0x7185},
+ {0x4A25, 0x7187},
+ {0x4A26, 0x718C},
+ {0x4A27, 0x7192},
+ {0x4A28, 0x719A},
+ {0x4A29, 0x719B},
+ {0x4A2A, 0x71A0},
+ {0x4A2B, 0x71A2},
+ {0x4A2C, 0x71AF},
+ {0x4A2D, 0x71B0},
+ {0x4A2E, 0x71B2},
+ {0x4A2F, 0x71B3},
+ {0x4A30, 0x71BA},
+ {0x4A31, 0x71BF},
+ {0x4A32, 0x71C0},
+ {0x4A33, 0x71C1},
+ {0x4A34, 0x71C4},
+ {0x4A35, 0x71CB},
+ {0x4A36, 0x71CC},
+ {0x4A37, 0x71D3},
+ {0x4A38, 0x71D6},
+ {0x4A39, 0x71D9},
+ {0x4A3A, 0x71DA},
+ {0x4A3B, 0x71DC},
+ {0x4A3C, 0x71F8},
+ {0x4A3D, 0x71FE},
+ {0x4A3E, 0x7200},
+ {0x4A3F, 0x7207},
+ {0x4A40, 0x7208},
+ {0x4A41, 0x7209},
+ {0x4A42, 0x7213},
+ {0x4A43, 0x7217},
+ {0x4A44, 0x721A},
+ {0x4A45, 0x721D},
+ {0x4A46, 0x721F},
+ {0x4A47, 0x7224},
+ {0x4A48, 0x722B},
+ {0x4A49, 0x722F},
+ {0x4A4A, 0x7234},
+ {0x4A4B, 0x7238},
+ {0x4A4C, 0x7239},
+ {0x4A4D, 0x7241},
+ {0x4A4E, 0x7242},
+ {0x4A4F, 0x7243},
+ {0x4A50, 0x7245},
+ {0x4A51, 0x724E},
+ {0x4A52, 0x724F},
+ {0x4A53, 0x7250},
+ {0x4A54, 0x7253},
+ {0x4A55, 0x7255},
+ {0x4A56, 0x7256},
+ {0x4A57, 0x725A},
+ {0x4A58, 0x725C},
+ {0x4A59, 0x725E},
+ {0x4A5A, 0x7260},
+ {0x4A5B, 0x7263},
+ {0x4A5C, 0x7268},
+ {0x4A5D, 0x726B},
+ {0x4A5E, 0x726E},
+ {0x4A5F, 0x726F},
+ {0x4A60, 0x7271},
+ {0x4A61, 0x7277},
+ {0x4A62, 0x7278},
+ {0x4A63, 0x727B},
+ {0x4A64, 0x727C},
+ {0x4A65, 0x727F},
+ {0x4A66, 0x7284},
+ {0x4A67, 0x7289},
+ {0x4A68, 0x728D},
+ {0x4A69, 0x728E},
+ {0x4A6A, 0x7293},
+ {0x4A6B, 0x729B},
+ {0x4A6C, 0x72A8},
+ {0x4A6D, 0x72AD},
+ {0x4A6E, 0x72AE},
+ {0x4A6F, 0x72B1},
+ {0x4A70, 0x72B4},
+ {0x4A71, 0x72BE},
+ {0x4A72, 0x72C1},
+ {0x4A73, 0x72C7},
+ {0x4A74, 0x72C9},
+ {0x4A75, 0x72CC},
+ {0x4A76, 0x72D5},
+ {0x4A77, 0x72D6},
+ {0x4A78, 0x72D8},
+ {0x4A79, 0x72DF},
+ {0x4A7A, 0x72E5},
+ {0x4A7B, 0x72F3},
+ {0x4A7C, 0x72F4},
+ {0x4A7D, 0x72FA},
+ {0x4A7E, 0x72FB},
+ {0x4B21, 0x72FE},
+ {0x4B22, 0x7302},
+ {0x4B23, 0x7304},
+ {0x4B24, 0x7305},
+ {0x4B25, 0x7307},
+ {0x4B26, 0x730B},
+ {0x4B27, 0x730D},
+ {0x4B28, 0x7312},
+ {0x4B29, 0x7313},
+ {0x4B2A, 0x7318},
+ {0x4B2B, 0x7319},
+ {0x4B2C, 0x731E},
+ {0x4B2D, 0x7322},
+ {0x4B2E, 0x7324},
+ {0x4B2F, 0x7327},
+ {0x4B30, 0x7328},
+ {0x4B31, 0x732C},
+ {0x4B32, 0x7331},
+ {0x4B33, 0x7332},
+ {0x4B34, 0x7335},
+ {0x4B35, 0x733A},
+ {0x4B36, 0x733B},
+ {0x4B37, 0x733D},
+ {0x4B38, 0x7343},
+ {0x4B39, 0x734D},
+ {0x4B3A, 0x7350},
+ {0x4B3B, 0x7352},
+ {0x4B3C, 0x7356},
+ {0x4B3D, 0x7358},
+ {0x4B3E, 0x735D},
+ {0x4B3F, 0x735E},
+ {0x4B40, 0x735F},
+ {0x4B41, 0x7360},
+ {0x4B42, 0x7366},
+ {0x4B43, 0x7367},
+ {0x4B44, 0x7369},
+ {0x4B45, 0x736B},
+ {0x4B46, 0x736C},
+ {0x4B47, 0x736E},
+ {0x4B48, 0x736F},
+ {0x4B49, 0x7371},
+ {0x4B4A, 0x7377},
+ {0x4B4B, 0x7379},
+ {0x4B4C, 0x737C},
+ {0x4B4D, 0x7380},
+ {0x4B4E, 0x7381},
+ {0x4B4F, 0x7383},
+ {0x4B50, 0x7385},
+ {0x4B51, 0x7386},
+ {0x4B52, 0x738E},
+ {0x4B53, 0x7390},
+ {0x4B54, 0x7393},
+ {0x4B55, 0x7395},
+ {0x4B56, 0x7397},
+ {0x4B57, 0x7398},
+ {0x4B58, 0x739C},
+ {0x4B59, 0x739E},
+ {0x4B5A, 0x739F},
+ {0x4B5B, 0x73A0},
+ {0x4B5C, 0x73A2},
+ {0x4B5D, 0x73A5},
+ {0x4B5E, 0x73A6},
+ {0x4B5F, 0x73AA},
+ {0x4B60, 0x73AB},
+ {0x4B61, 0x73AD},
+ {0x4B62, 0x73B5},
+ {0x4B63, 0x73B7},
+ {0x4B64, 0x73B9},
+ {0x4B65, 0x73BC},
+ {0x4B66, 0x73BD},
+ {0x4B67, 0x73BF},
+ {0x4B68, 0x73C5},
+ {0x4B69, 0x73C6},
+ {0x4B6A, 0x73C9},
+ {0x4B6B, 0x73CB},
+ {0x4B6C, 0x73CC},
+ {0x4B6D, 0x73CF},
+ {0x4B6E, 0x73D2},
+ {0x4B6F, 0x73D3},
+ {0x4B70, 0x73D6},
+ {0x4B71, 0x73D9},
+ {0x4B72, 0x73DD},
+ {0x4B73, 0x73E1},
+ {0x4B74, 0x73E3},
+ {0x4B75, 0x73E6},
+ {0x4B76, 0x73E7},
+ {0x4B77, 0x73E9},
+ {0x4B78, 0x73F4},
+ {0x4B79, 0x73F5},
+ {0x4B7A, 0x73F7},
+ {0x4B7B, 0x73F9},
+ {0x4B7C, 0x73FA},
+ {0x4B7D, 0x73FB},
+ {0x4B7E, 0x73FD},
+ {0x4C21, 0x73FF},
+ {0x4C22, 0x7400},
+ {0x4C23, 0x7401},
+ {0x4C24, 0x7404},
+ {0x4C25, 0x7407},
+ {0x4C26, 0x740A},
+ {0x4C27, 0x7411},
+ {0x4C28, 0x741A},
+ {0x4C29, 0x741B},
+ {0x4C2A, 0x7424},
+ {0x4C2B, 0x7426},
+ {0x4C2C, 0x7428},
+ {0x4C2D, 0x7429},
+ {0x4C2E, 0x742A},
+ {0x4C2F, 0x742B},
+ {0x4C30, 0x742C},
+ {0x4C31, 0x742D},
+ {0x4C32, 0x742E},
+ {0x4C33, 0x742F},
+ {0x4C34, 0x7430},
+ {0x4C35, 0x7431},
+ {0x4C36, 0x7439},
+ {0x4C37, 0x7440},
+ {0x4C38, 0x7443},
+ {0x4C39, 0x7444},
+ {0x4C3A, 0x7446},
+ {0x4C3B, 0x7447},
+ {0x4C3C, 0x744B},
+ {0x4C3D, 0x744D},
+ {0x4C3E, 0x7451},
+ {0x4C3F, 0x7452},
+ {0x4C40, 0x7457},
+ {0x4C41, 0x745D},
+ {0x4C42, 0x7462},
+ {0x4C43, 0x7466},
+ {0x4C44, 0x7467},
+ {0x4C45, 0x7468},
+ {0x4C46, 0x746B},
+ {0x4C47, 0x746D},
+ {0x4C48, 0x746E},
+ {0x4C49, 0x7471},
+ {0x4C4A, 0x7472},
+ {0x4C4B, 0x7480},
+ {0x4C4C, 0x7481},
+ {0x4C4D, 0x7485},
+ {0x4C4E, 0x7486},
+ {0x4C4F, 0x7487},
+ {0x4C50, 0x7489},
+ {0x4C51, 0x748F},
+ {0x4C52, 0x7490},
+ {0x4C53, 0x7491},
+ {0x4C54, 0x7492},
+ {0x4C55, 0x7498},
+ {0x4C56, 0x7499},
+ {0x4C57, 0x749A},
+ {0x4C58, 0x749C},
+ {0x4C59, 0x749F},
+ {0x4C5A, 0x74A0},
+ {0x4C5B, 0x74A1},
+ {0x4C5C, 0x74A3},
+ {0x4C5D, 0x74A6},
+ {0x4C5E, 0x74A8},
+ {0x4C5F, 0x74A9},
+ {0x4C60, 0x74AA},
+ {0x4C61, 0x74AB},
+ {0x4C62, 0x74AE},
+ {0x4C63, 0x74AF},
+ {0x4C64, 0x74B1},
+ {0x4C65, 0x74B2},
+ {0x4C66, 0x74B5},
+ {0x4C67, 0x74B9},
+ {0x4C68, 0x74BB},
+ {0x4C69, 0x74BF},
+ {0x4C6A, 0x74C8},
+ {0x4C6B, 0x74C9},
+ {0x4C6C, 0x74CC},
+ {0x4C6D, 0x74D0},
+ {0x4C6E, 0x74D3},
+ {0x4C6F, 0x74D8},
+ {0x4C70, 0x74DA},
+ {0x4C71, 0x74DB},
+ {0x4C72, 0x74DE},
+ {0x4C73, 0x74DF},
+ {0x4C74, 0x74E4},
+ {0x4C75, 0x74E8},
+ {0x4C76, 0x74EA},
+ {0x4C77, 0x74EB},
+ {0x4C78, 0x74EF},
+ {0x4C79, 0x74F4},
+ {0x4C7A, 0x74FA},
+ {0x4C7B, 0x74FB},
+ {0x4C7C, 0x74FC},
+ {0x4C7D, 0x74FF},
+ {0x4C7E, 0x7506},
+ {0x4D21, 0x7512},
+ {0x4D22, 0x7516},
+ {0x4D23, 0x7517},
+ {0x4D24, 0x7520},
+ {0x4D25, 0x7521},
+ {0x4D26, 0x7524},
+ {0x4D27, 0x7527},
+ {0x4D28, 0x7529},
+ {0x4D29, 0x752A},
+ {0x4D2A, 0x752F},
+ {0x4D2B, 0x7536},
+ {0x4D2C, 0x7539},
+ {0x4D2D, 0x753D},
+ {0x4D2E, 0x753E},
+ {0x4D2F, 0x753F},
+ {0x4D30, 0x7540},
+ {0x4D31, 0x7543},
+ {0x4D32, 0x7547},
+ {0x4D33, 0x7548},
+ {0x4D34, 0x754E},
+ {0x4D35, 0x7550},
+ {0x4D36, 0x7552},
+ {0x4D37, 0x7557},
+ {0x4D38, 0x755E},
+ {0x4D39, 0x755F},
+ {0x4D3A, 0x7561},
+ {0x4D3B, 0x756F},
+ {0x4D3C, 0x7571},
+ {0x4D3D, 0x7579},
+ {0x4D3E, 0x757A},
+ {0x4D3F, 0x757B},
+ {0x4D40, 0x757C},
+ {0x4D41, 0x757D},
+ {0x4D42, 0x757E},
+ {0x4D43, 0x7581},
+ {0x4D44, 0x7585},
+ {0x4D45, 0x7590},
+ {0x4D46, 0x7592},
+ {0x4D47, 0x7593},
+ {0x4D48, 0x7595},
+ {0x4D49, 0x7599},
+ {0x4D4A, 0x759C},
+ {0x4D4B, 0x75A2},
+ {0x4D4C, 0x75A4},
+ {0x4D4D, 0x75B4},
+ {0x4D4E, 0x75BA},
+ {0x4D4F, 0x75BF},
+ {0x4D50, 0x75C0},
+ {0x4D51, 0x75C1},
+ {0x4D52, 0x75C4},
+ {0x4D53, 0x75C6},
+ {0x4D54, 0x75CC},
+ {0x4D55, 0x75CE},
+ {0x4D56, 0x75CF},
+ {0x4D57, 0x75D7},
+ {0x4D58, 0x75DC},
+ {0x4D59, 0x75DF},
+ {0x4D5A, 0x75E0},
+ {0x4D5B, 0x75E1},
+ {0x4D5C, 0x75E4},
+ {0x4D5D, 0x75E7},
+ {0x4D5E, 0x75EC},
+ {0x4D5F, 0x75EE},
+ {0x4D60, 0x75EF},
+ {0x4D61, 0x75F1},
+ {0x4D62, 0x75F9},
+ {0x4D63, 0x7600},
+ {0x4D64, 0x7602},
+ {0x4D65, 0x7603},
+ {0x4D66, 0x7604},
+ {0x4D67, 0x7607},
+ {0x4D68, 0x7608},
+ {0x4D69, 0x760A},
+ {0x4D6A, 0x760C},
+ {0x4D6B, 0x760F},
+ {0x4D6C, 0x7612},
+ {0x4D6D, 0x7613},
+ {0x4D6E, 0x7615},
+ {0x4D6F, 0x7616},
+ {0x4D70, 0x7619},
+ {0x4D71, 0x761B},
+ {0x4D72, 0x761C},
+ {0x4D73, 0x761D},
+ {0x4D74, 0x761E},
+ {0x4D75, 0x7623},
+ {0x4D76, 0x7625},
+ {0x4D77, 0x7626},
+ {0x4D78, 0x7629},
+ {0x4D79, 0x762D},
+ {0x4D7A, 0x7632},
+ {0x4D7B, 0x7633},
+ {0x4D7C, 0x7635},
+ {0x4D7D, 0x7638},
+ {0x4D7E, 0x7639},
+ {0x4E21, 0x763A},
+ {0x4E22, 0x763C},
+ {0x4E23, 0x764A},
+ {0x4E24, 0x7640},
+ {0x4E25, 0x7641},
+ {0x4E26, 0x7643},
+ {0x4E27, 0x7644},
+ {0x4E28, 0x7645},
+ {0x4E29, 0x7649},
+ {0x4E2A, 0x764B},
+ {0x4E2B, 0x7655},
+ {0x4E2C, 0x7659},
+ {0x4E2D, 0x765F},
+ {0x4E2E, 0x7664},
+ {0x4E2F, 0x7665},
+ {0x4E30, 0x766D},
+ {0x4E31, 0x766E},
+ {0x4E32, 0x766F},
+ {0x4E33, 0x7671},
+ {0x4E34, 0x7674},
+ {0x4E35, 0x7681},
+ {0x4E36, 0x7685},
+ {0x4E37, 0x768C},
+ {0x4E38, 0x768D},
+ {0x4E39, 0x7695},
+ {0x4E3A, 0x769B},
+ {0x4E3B, 0x769C},
+ {0x4E3C, 0x769D},
+ {0x4E3D, 0x769F},
+ {0x4E3E, 0x76A0},
+ {0x4E3F, 0x76A2},
+ {0x4E40, 0x76A3},
+ {0x4E41, 0x76A4},
+ {0x4E42, 0x76A5},
+ {0x4E43, 0x76A6},
+ {0x4E44, 0x76A7},
+ {0x4E45, 0x76A8},
+ {0x4E46, 0x76AA},
+ {0x4E47, 0x76AD},
+ {0x4E48, 0x76BD},
+ {0x4E49, 0x76C1},
+ {0x4E4A, 0x76C5},
+ {0x4E4B, 0x76C9},
+ {0x4E4C, 0x76CB},
+ {0x4E4D, 0x76CC},
+ {0x4E4E, 0x76CE},
+ {0x4E4F, 0x76D4},
+ {0x4E50, 0x76D9},
+ {0x4E51, 0x76E0},
+ {0x4E52, 0x76E6},
+ {0x4E53, 0x76E8},
+ {0x4E54, 0x76EC},
+ {0x4E55, 0x76F0},
+ {0x4E56, 0x76F1},
+ {0x4E57, 0x76F6},
+ {0x4E58, 0x76F9},
+ {0x4E59, 0x76FC},
+ {0x4E5A, 0x7700},
+ {0x4E5B, 0x7706},
+ {0x4E5C, 0x770A},
+ {0x4E5D, 0x770E},
+ {0x4E5E, 0x7712},
+ {0x4E5F, 0x7714},
+ {0x4E60, 0x7715},
+ {0x4E61, 0x7717},
+ {0x4E62, 0x7719},
+ {0x4E63, 0x771A},
+ {0x4E64, 0x771C},
+ {0x4E65, 0x7722},
+ {0x4E66, 0x7728},
+ {0x4E67, 0x772D},
+ {0x4E68, 0x772E},
+ {0x4E69, 0x772F},
+ {0x4E6A, 0x7734},
+ {0x4E6B, 0x7735},
+ {0x4E6C, 0x7736},
+ {0x4E6D, 0x7739},
+ {0x4E6E, 0x773D},
+ {0x4E6F, 0x773E},
+ {0x4E70, 0x7742},
+ {0x4E71, 0x7745},
+ {0x4E72, 0x7746},
+ {0x4E73, 0x774A},
+ {0x4E74, 0x774D},
+ {0x4E75, 0x774E},
+ {0x4E76, 0x774F},
+ {0x4E77, 0x7752},
+ {0x4E78, 0x7756},
+ {0x4E79, 0x7757},
+ {0x4E7A, 0x775C},
+ {0x4E7B, 0x775E},
+ {0x4E7C, 0x775F},
+ {0x4E7D, 0x7760},
+ {0x4E7E, 0x7762},
+ {0x4F21, 0x7764},
+ {0x4F22, 0x7767},
+ {0x4F23, 0x776A},
+ {0x4F24, 0x776C},
+ {0x4F25, 0x7770},
+ {0x4F26, 0x7772},
+ {0x4F27, 0x7773},
+ {0x4F28, 0x7774},
+ {0x4F29, 0x777A},
+ {0x4F2A, 0x777D},
+ {0x4F2B, 0x7780},
+ {0x4F2C, 0x7784},
+ {0x4F2D, 0x778C},
+ {0x4F2E, 0x778D},
+ {0x4F2F, 0x7794},
+ {0x4F30, 0x7795},
+ {0x4F31, 0x7796},
+ {0x4F32, 0x779A},
+ {0x4F33, 0x779F},
+ {0x4F34, 0x77A2},
+ {0x4F35, 0x77A7},
+ {0x4F36, 0x77AA},
+ {0x4F37, 0x77AE},
+ {0x4F38, 0x77AF},
+ {0x4F39, 0x77B1},
+ {0x4F3A, 0x77B5},
+ {0x4F3B, 0x77BE},
+ {0x4F3C, 0x77C3},
+ {0x4F3D, 0x77C9},
+ {0x4F3E, 0x77D1},
+ {0x4F3F, 0x77D2},
+ {0x4F40, 0x77D5},
+ {0x4F41, 0x77D9},
+ {0x4F42, 0x77DE},
+ {0x4F43, 0x77DF},
+ {0x4F44, 0x77E0},
+ {0x4F45, 0x77E4},
+ {0x4F46, 0x77E6},
+ {0x4F47, 0x77EA},
+ {0x4F48, 0x77EC},
+ {0x4F49, 0x77F0},
+ {0x4F4A, 0x77F1},
+ {0x4F4B, 0x77F4},
+ {0x4F4C, 0x77F8},
+ {0x4F4D, 0x77FB},
+ {0x4F4E, 0x7805},
+ {0x4F4F, 0x7806},
+ {0x4F50, 0x7809},
+ {0x4F51, 0x780D},
+ {0x4F52, 0x780E},
+ {0x4F53, 0x7811},
+ {0x4F54, 0x781D},
+ {0x4F55, 0x7821},
+ {0x4F56, 0x7822},
+ {0x4F57, 0x7823},
+ {0x4F58, 0x782D},
+ {0x4F59, 0x782E},
+ {0x4F5A, 0x7830},
+ {0x4F5B, 0x7835},
+ {0x4F5C, 0x7837},
+ {0x4F5D, 0x7843},
+ {0x4F5E, 0x7844},
+ {0x4F5F, 0x7847},
+ {0x4F60, 0x7848},
+ {0x4F61, 0x784C},
+ {0x4F62, 0x784E},
+ {0x4F63, 0x7852},
+ {0x4F64, 0x785C},
+ {0x4F65, 0x785E},
+ {0x4F66, 0x7860},
+ {0x4F67, 0x7861},
+ {0x4F68, 0x7863},
+ {0x4F69, 0x7864},
+ {0x4F6A, 0x7868},
+ {0x4F6B, 0x786A},
+ {0x4F6C, 0x786E},
+ {0x4F6D, 0x787A},
+ {0x4F6E, 0x787E},
+ {0x4F6F, 0x788A},
+ {0x4F70, 0x788F},
+ {0x4F71, 0x7894},
+ {0x4F72, 0x7898},
+ {0x4F73, 0x78A1},
+ {0x4F74, 0x789D},
+ {0x4F75, 0x789E},
+ {0x4F76, 0x789F},
+ {0x4F77, 0x78A4},
+ {0x4F78, 0x78A8},
+ {0x4F79, 0x78AC},
+ {0x4F7A, 0x78AD},
+ {0x4F7B, 0x78B0},
+ {0x4F7C, 0x78B1},
+ {0x4F7D, 0x78B2},
+ {0x4F7E, 0x78B3},
+ {0x5021, 0x78BB},
+ {0x5022, 0x78BD},
+ {0x5023, 0x78BF},
+ {0x5024, 0x78C7},
+ {0x5025, 0x78C8},
+ {0x5026, 0x78C9},
+ {0x5027, 0x78CC},
+ {0x5028, 0x78CE},
+ {0x5029, 0x78D2},
+ {0x502A, 0x78D3},
+ {0x502B, 0x78D5},
+ {0x502C, 0x78D6},
+ {0x502D, 0x78E4},
+ {0x502E, 0x78DB},
+ {0x502F, 0x78DF},
+ {0x5030, 0x78E0},
+ {0x5031, 0x78E1},
+ {0x5032, 0x78E6},
+ {0x5033, 0x78EA},
+ {0x5034, 0x78F2},
+ {0x5035, 0x78F3},
+ {0x5036, 0x7900},
+ {0x5037, 0x78F6},
+ {0x5038, 0x78F7},
+ {0x5039, 0x78FA},
+ {0x503A, 0x78FB},
+ {0x503B, 0x78FF},
+ {0x503C, 0x7906},
+ {0x503D, 0x790C},
+ {0x503E, 0x7910},
+ {0x503F, 0x791A},
+ {0x5040, 0x791C},
+ {0x5041, 0x791E},
+ {0x5042, 0x791F},
+ {0x5043, 0x7920},
+ {0x5044, 0x7925},
+ {0x5045, 0x7927},
+ {0x5046, 0x7929},
+ {0x5047, 0x792D},
+ {0x5048, 0x7931},
+ {0x5049, 0x7934},
+ {0x504A, 0x7935},
+ {0x504B, 0x793B},
+ {0x504C, 0x793D},
+ {0x504D, 0x793F},
+ {0x504E, 0x7944},
+ {0x504F, 0x7945},
+ {0x5050, 0x7946},
+ {0x5051, 0x794A},
+ {0x5052, 0x794B},
+ {0x5053, 0x794F},
+ {0x5054, 0x7951},
+ {0x5055, 0x7954},
+ {0x5056, 0x7958},
+ {0x5057, 0x795B},
+ {0x5058, 0x795C},
+ {0x5059, 0x7967},
+ {0x505A, 0x7969},
+ {0x505B, 0x796B},
+ {0x505C, 0x7972},
+ {0x505D, 0x7979},
+ {0x505E, 0x797B},
+ {0x505F, 0x797C},
+ {0x5060, 0x797E},
+ {0x5061, 0x798B},
+ {0x5062, 0x798C},
+ {0x5063, 0x7991},
+ {0x5064, 0x7993},
+ {0x5065, 0x7994},
+ {0x5066, 0x7995},
+ {0x5067, 0x7996},
+ {0x5068, 0x7998},
+ {0x5069, 0x799B},
+ {0x506A, 0x799C},
+ {0x506B, 0x79A1},
+ {0x506C, 0x79A8},
+ {0x506D, 0x79A9},
+ {0x506E, 0x79AB},
+ {0x506F, 0x79AF},
+ {0x5070, 0x79B1},
+ {0x5071, 0x79B4},
+ {0x5072, 0x79B8},
+ {0x5073, 0x79BB},
+ {0x5074, 0x79C2},
+ {0x5075, 0x79C4},
+ {0x5076, 0x79C7},
+ {0x5077, 0x79C8},
+ {0x5078, 0x79CA},
+ {0x5079, 0x79CF},
+ {0x507A, 0x79D4},
+ {0x507B, 0x79D6},
+ {0x507C, 0x79DA},
+ {0x507D, 0x79DD},
+ {0x507E, 0x79DE},
+ {0x5121, 0x79E0},
+ {0x5122, 0x79E2},
+ {0x5123, 0x79E5},
+ {0x5124, 0x79EA},
+ {0x5125, 0x79EB},
+ {0x5126, 0x79ED},
+ {0x5127, 0x79F1},
+ {0x5128, 0x79F8},
+ {0x5129, 0x79FC},
+ {0x512A, 0x7A02},
+ {0x512B, 0x7A03},
+ {0x512C, 0x7A07},
+ {0x512D, 0x7A09},
+ {0x512E, 0x7A0A},
+ {0x512F, 0x7A0C},
+ {0x5130, 0x7A11},
+ {0x5131, 0x7A15},
+ {0x5132, 0x7A1B},
+ {0x5133, 0x7A1E},
+ {0x5134, 0x7A21},
+ {0x5135, 0x7A27},
+ {0x5136, 0x7A2B},
+ {0x5137, 0x7A2D},
+ {0x5138, 0x7A2F},
+ {0x5139, 0x7A30},
+ {0x513A, 0x7A34},
+ {0x513B, 0x7A35},
+ {0x513C, 0x7A38},
+ {0x513D, 0x7A39},
+ {0x513E, 0x7A3A},
+ {0x513F, 0x7A44},
+ {0x5140, 0x7A45},
+ {0x5141, 0x7A47},
+ {0x5142, 0x7A48},
+ {0x5143, 0x7A4C},
+ {0x5144, 0x7A55},
+ {0x5145, 0x7A56},
+ {0x5146, 0x7A59},
+ {0x5147, 0x7A5C},
+ {0x5148, 0x7A5D},
+ {0x5149, 0x7A5F},
+ {0x514A, 0x7A60},
+ {0x514B, 0x7A65},
+ {0x514C, 0x7A67},
+ {0x514D, 0x7A6A},
+ {0x514E, 0x7A6D},
+ {0x514F, 0x7A75},
+ {0x5150, 0x7A78},
+ {0x5151, 0x7A7E},
+ {0x5152, 0x7A80},
+ {0x5153, 0x7A82},
+ {0x5154, 0x7A85},
+ {0x5155, 0x7A86},
+ {0x5156, 0x7A8A},
+ {0x5157, 0x7A8B},
+ {0x5158, 0x7A90},
+ {0x5159, 0x7A91},
+ {0x515A, 0x7A94},
+ {0x515B, 0x7A9E},
+ {0x515C, 0x7AA0},
+ {0x515D, 0x7AA3},
+ {0x515E, 0x7AAC},
+ {0x515F, 0x7AB3},
+ {0x5160, 0x7AB5},
+ {0x5161, 0x7AB9},
+ {0x5162, 0x7ABB},
+ {0x5163, 0x7ABC},
+ {0x5164, 0x7AC6},
+ {0x5165, 0x7AC9},
+ {0x5166, 0x7ACC},
+ {0x5167, 0x7ACE},
+ {0x5168, 0x7AD1},
+ {0x5169, 0x7ADB},
+ {0x516A, 0x7AE8},
+ {0x516B, 0x7AE9},
+ {0x516C, 0x7AEB},
+ {0x516D, 0x7AEC},
+ {0x516E, 0x7AF1},
+ {0x516F, 0x7AF4},
+ {0x5170, 0x7AFB},
+ {0x5171, 0x7AFD},
+ {0x5172, 0x7AFE},
+ {0x5173, 0x7B07},
+ {0x5174, 0x7B14},
+ {0x5175, 0x7B1F},
+ {0x5176, 0x7B23},
+ {0x5177, 0x7B27},
+ {0x5178, 0x7B29},
+ {0x5179, 0x7B2A},
+ {0x517A, 0x7B2B},
+ {0x517B, 0x7B2D},
+ {0x517C, 0x7B2E},
+ {0x517D, 0x7B2F},
+ {0x517E, 0x7B30},
+ {0x5221, 0x7B31},
+ {0x5222, 0x7B34},
+ {0x5223, 0x7B3D},
+ {0x5224, 0x7B3F},
+ {0x5225, 0x7B40},
+ {0x5226, 0x7B41},
+ {0x5227, 0x7B47},
+ {0x5228, 0x7B4E},
+ {0x5229, 0x7B55},
+ {0x522A, 0x7B60},
+ {0x522B, 0x7B64},
+ {0x522C, 0x7B66},
+ {0x522D, 0x7B69},
+ {0x522E, 0x7B6A},
+ {0x522F, 0x7B6D},
+ {0x5230, 0x7B6F},
+ {0x5231, 0x7B72},
+ {0x5232, 0x7B73},
+ {0x5233, 0x7B77},
+ {0x5234, 0x7B84},
+ {0x5235, 0x7B89},
+ {0x5236, 0x7B8E},
+ {0x5237, 0x7B90},
+ {0x5238, 0x7B91},
+ {0x5239, 0x7B96},
+ {0x523A, 0x7B9B},
+ {0x523B, 0x7B9E},
+ {0x523C, 0x7BA0},
+ {0x523D, 0x7BA5},
+ {0x523E, 0x7BAC},
+ {0x523F, 0x7BAF},
+ {0x5240, 0x7BB0},
+ {0x5241, 0x7BB2},
+ {0x5242, 0x7BB5},
+ {0x5243, 0x7BB6},
+ {0x5244, 0x7BBA},
+ {0x5245, 0x7BBB},
+ {0x5246, 0x7BBC},
+ {0x5247, 0x7BBD},
+ {0x5248, 0x7BC2},
+ {0x5249, 0x7BC5},
+ {0x524A, 0x7BC8},
+ {0x524B, 0x7BCA},
+ {0x524C, 0x7BD4},
+ {0x524D, 0x7BD6},
+ {0x524E, 0x7BD7},
+ {0x524F, 0x7BD9},
+ {0x5250, 0x7BDA},
+ {0x5251, 0x7BDB},
+ {0x5252, 0x7BE8},
+ {0x5253, 0x7BEA},
+ {0x5254, 0x7BF2},
+ {0x5255, 0x7BF4},
+ {0x5256, 0x7BF5},
+ {0x5257, 0x7BF8},
+ {0x5258, 0x7BF9},
+ {0x5259, 0x7BFA},
+ {0x525A, 0x7BFC},
+ {0x525B, 0x7BFE},
+ {0x525C, 0x7C01},
+ {0x525D, 0x7C02},
+ {0x525E, 0x7C03},
+ {0x525F, 0x7C04},
+ {0x5260, 0x7C06},
+ {0x5261, 0x7C09},
+ {0x5262, 0x7C0B},
+ {0x5263, 0x7C0C},
+ {0x5264, 0x7C0E},
+ {0x5265, 0x7C0F},
+ {0x5266, 0x7C19},
+ {0x5267, 0x7C1B},
+ {0x5268, 0x7C20},
+ {0x5269, 0x7C25},
+ {0x526A, 0x7C26},
+ {0x526B, 0x7C28},
+ {0x526C, 0x7C2C},
+ {0x526D, 0x7C31},
+ {0x526E, 0x7C33},
+ {0x526F, 0x7C34},
+ {0x5270, 0x7C36},
+ {0x5271, 0x7C39},
+ {0x5272, 0x7C3A},
+ {0x5273, 0x7C46},
+ {0x5274, 0x7C4A},
+ {0x5275, 0x7C55},
+ {0x5276, 0x7C51},
+ {0x5277, 0x7C52},
+ {0x5278, 0x7C53},
+ {0x5279, 0x7C59},
+ {0x527A, 0x7C5A},
+ {0x527B, 0x7C5B},
+ {0x527C, 0x7C5C},
+ {0x527D, 0x7C5D},
+ {0x527E, 0x7C5E},
+ {0x5321, 0x7C61},
+ {0x5322, 0x7C63},
+ {0x5323, 0x7C67},
+ {0x5324, 0x7C69},
+ {0x5325, 0x7C6D},
+ {0x5326, 0x7C6E},
+ {0x5327, 0x7C70},
+ {0x5328, 0x7C72},
+ {0x5329, 0x7C79},
+ {0x532A, 0x7C7C},
+ {0x532B, 0x7C7D},
+ {0x532C, 0x7C86},
+ {0x532D, 0x7C87},
+ {0x532E, 0x7C8F},
+ {0x532F, 0x7C94},
+ {0x5330, 0x7C9E},
+ {0x5331, 0x7CA0},
+ {0x5332, 0x7CA6},
+ {0x5333, 0x7CB0},
+ {0x5334, 0x7CB6},
+ {0x5335, 0x7CB7},
+ {0x5336, 0x7CBA},
+ {0x5337, 0x7CBB},
+ {0x5338, 0x7CBC},
+ {0x5339, 0x7CBF},
+ {0x533A, 0x7CC4},
+ {0x533B, 0x7CC7},
+ {0x533C, 0x7CC8},
+ {0x533D, 0x7CC9},
+ {0x533E, 0x7CCD},
+ {0x533F, 0x7CCF},
+ {0x5340, 0x7CD3},
+ {0x5341, 0x7CD4},
+ {0x5342, 0x7CD5},
+ {0x5343, 0x7CD7},
+ {0x5344, 0x7CD9},
+ {0x5345, 0x7CDA},
+ {0x5346, 0x7CDD},
+ {0x5347, 0x7CE6},
+ {0x5348, 0x7CE9},
+ {0x5349, 0x7CEB},
+ {0x534A, 0x7CF5},
+ {0x534B, 0x7D03},
+ {0x534C, 0x7D07},
+ {0x534D, 0x7D08},
+ {0x534E, 0x7D09},
+ {0x534F, 0x7D0F},
+ {0x5350, 0x7D11},
+ {0x5351, 0x7D12},
+ {0x5352, 0x7D13},
+ {0x5353, 0x7D16},
+ {0x5354, 0x7D1D},
+ {0x5355, 0x7D1E},
+ {0x5356, 0x7D23},
+ {0x5357, 0x7D26},
+ {0x5358, 0x7D2A},
+ {0x5359, 0x7D2D},
+ {0x535A, 0x7D31},
+ {0x535B, 0x7D3C},
+ {0x535C, 0x7D3D},
+ {0x535D, 0x7D3E},
+ {0x535E, 0x7D40},
+ {0x535F, 0x7D41},
+ {0x5360, 0x7D47},
+ {0x5361, 0x7D48},
+ {0x5362, 0x7D4D},
+ {0x5363, 0x7D51},
+ {0x5364, 0x7D53},
+ {0x5365, 0x7D57},
+ {0x5366, 0x7D59},
+ {0x5367, 0x7D5A},
+ {0x5368, 0x7D5C},
+ {0x5369, 0x7D5D},
+ {0x536A, 0x7D65},
+ {0x536B, 0x7D67},
+ {0x536C, 0x7D6A},
+ {0x536D, 0x7D70},
+ {0x536E, 0x7D78},
+ {0x536F, 0x7D7A},
+ {0x5370, 0x7D7B},
+ {0x5371, 0x7D7F},
+ {0x5372, 0x7D81},
+ {0x5373, 0x7D82},
+ {0x5374, 0x7D83},
+ {0x5375, 0x7D85},
+ {0x5376, 0x7D86},
+ {0x5377, 0x7D88},
+ {0x5378, 0x7D8B},
+ {0x5379, 0x7D8C},
+ {0x537A, 0x7D8D},
+ {0x537B, 0x7D91},
+ {0x537C, 0x7D96},
+ {0x537D, 0x7D97},
+ {0x537E, 0x7D9D},
+ {0x5421, 0x7D9E},
+ {0x5422, 0x7DA6},
+ {0x5423, 0x7DA7},
+ {0x5424, 0x7DAA},
+ {0x5425, 0x7DB3},
+ {0x5426, 0x7DB6},
+ {0x5427, 0x7DB7},
+ {0x5428, 0x7DB9},
+ {0x5429, 0x7DC2},
+ {0x542A, 0x7DC3},
+ {0x542B, 0x7DC4},
+ {0x542C, 0x7DC5},
+ {0x542D, 0x7DC6},
+ {0x542E, 0x7DCC},
+ {0x542F, 0x7DCD},
+ {0x5430, 0x7DCE},
+ {0x5431, 0x7DD7},
+ {0x5432, 0x7DD9},
+ {0x5433, 0x7E00},
+ {0x5434, 0x7DE2},
+ {0x5435, 0x7DE5},
+ {0x5436, 0x7DE6},
+ {0x5437, 0x7DEA},
+ {0x5438, 0x7DEB},
+ {0x5439, 0x7DED},
+ {0x543A, 0x7DF1},
+ {0x543B, 0x7DF5},
+ {0x543C, 0x7DF6},
+ {0x543D, 0x7DF9},
+ {0x543E, 0x7DFA},
+ {0x543F, 0x7E08},
+ {0x5440, 0x7E10},
+ {0x5441, 0x7E11},
+ {0x5442, 0x7E15},
+ {0x5443, 0x7E17},
+ {0x5444, 0x7E1C},
+ {0x5445, 0x7E1D},
+ {0x5446, 0x7E20},
+ {0x5447, 0x7E27},
+ {0x5448, 0x7E28},
+ {0x5449, 0x7E2C},
+ {0x544A, 0x7E2D},
+ {0x544B, 0x7E2F},
+ {0x544C, 0x7E33},
+ {0x544D, 0x7E36},
+ {0x544E, 0x7E3F},
+ {0x544F, 0x7E44},
+ {0x5450, 0x7E45},
+ {0x5451, 0x7E47},
+ {0x5452, 0x7E4E},
+ {0x5453, 0x7E50},
+ {0x5454, 0x7E52},
+ {0x5455, 0x7E58},
+ {0x5456, 0x7E5F},
+ {0x5457, 0x7E61},
+ {0x5458, 0x7E62},
+ {0x5459, 0x7E65},
+ {0x545A, 0x7E6B},
+ {0x545B, 0x7E6E},
+ {0x545C, 0x7E6F},
+ {0x545D, 0x7E73},
+ {0x545E, 0x7E78},
+ {0x545F, 0x7E7E},
+ {0x5460, 0x7E81},
+ {0x5461, 0x7E86},
+ {0x5462, 0x7E87},
+ {0x5463, 0x7E8A},
+ {0x5464, 0x7E8D},
+ {0x5465, 0x7E91},
+ {0x5466, 0x7E95},
+ {0x5467, 0x7E98},
+ {0x5468, 0x7E9A},
+ {0x5469, 0x7E9D},
+ {0x546A, 0x7E9E},
+ {0x546B, 0x7F3C},
+ {0x546C, 0x7F3B},
+ {0x546D, 0x7F3D},
+ {0x546E, 0x7F3E},
+ {0x546F, 0x7F3F},
+ {0x5470, 0x7F43},
+ {0x5471, 0x7F44},
+ {0x5472, 0x7F47},
+ {0x5473, 0x7F4F},
+ {0x5474, 0x7F52},
+ {0x5475, 0x7F53},
+ {0x5476, 0x7F5B},
+ {0x5477, 0x7F5C},
+ {0x5478, 0x7F5D},
+ {0x5479, 0x7F61},
+ {0x547A, 0x7F63},
+ {0x547B, 0x7F64},
+ {0x547C, 0x7F65},
+ {0x547D, 0x7F66},
+ {0x547E, 0x7F6D},
+ {0x5521, 0x7F71},
+ {0x5522, 0x7F7D},
+ {0x5523, 0x7F7E},
+ {0x5524, 0x7F7F},
+ {0x5525, 0x7F80},
+ {0x5526, 0x7F8B},
+ {0x5527, 0x7F8D},
+ {0x5528, 0x7F8F},
+ {0x5529, 0x7F90},
+ {0x552A, 0x7F91},
+ {0x552B, 0x7F96},
+ {0x552C, 0x7F97},
+ {0x552D, 0x7F9C},
+ {0x552E, 0x7FA1},
+ {0x552F, 0x7FA2},
+ {0x5530, 0x7FA6},
+ {0x5531, 0x7FAA},
+ {0x5532, 0x7FAD},
+ {0x5533, 0x7FB4},
+ {0x5534, 0x7FBC},
+ {0x5535, 0x7FBF},
+ {0x5536, 0x7FC0},
+ {0x5537, 0x7FC3},
+ {0x5538, 0x7FC8},
+ {0x5539, 0x7FCE},
+ {0x553A, 0x7FCF},
+ {0x553B, 0x7FDB},
+ {0x553C, 0x7FDF},
+ {0x553D, 0x7FE3},
+ {0x553E, 0x7FE5},
+ {0x553F, 0x7FE8},
+ {0x5540, 0x7FEC},
+ {0x5541, 0x7FEE},
+ {0x5542, 0x7FEF},
+ {0x5543, 0x7FF2},
+ {0x5544, 0x7FFA},
+ {0x5545, 0x7FFD},
+ {0x5546, 0x7FFE},
+ {0x5547, 0x7FFF},
+ {0x5548, 0x8007},
+ {0x5549, 0x8008},
+ {0x554A, 0x800A},
+ {0x554B, 0x800D},
+ {0x554C, 0x800E},
+ {0x554D, 0x800F},
+ {0x554E, 0x8011},
+ {0x554F, 0x8013},
+ {0x5550, 0x8014},
+ {0x5551, 0x8016},
+ {0x5552, 0x801D},
+ {0x5553, 0x801E},
+ {0x5554, 0x801F},
+ {0x5555, 0x8020},
+ {0x5556, 0x8024},
+ {0x5557, 0x8026},
+ {0x5558, 0x802C},
+ {0x5559, 0x802E},
+ {0x555A, 0x8030},
+ {0x555B, 0x8034},
+ {0x555C, 0x8035},
+ {0x555D, 0x8037},
+ {0x555E, 0x8039},
+ {0x555F, 0x803A},
+ {0x5560, 0x803C},
+ {0x5561, 0x803E},
+ {0x5562, 0x8040},
+ {0x5563, 0x8044},
+ {0x5564, 0x8060},
+ {0x5565, 0x8064},
+ {0x5566, 0x8066},
+ {0x5567, 0x806D},
+ {0x5568, 0x8071},
+ {0x5569, 0x8075},
+ {0x556A, 0x8081},
+ {0x556B, 0x8088},
+ {0x556C, 0x808E},
+ {0x556D, 0x809C},
+ {0x556E, 0x809E},
+ {0x556F, 0x80A6},
+ {0x5570, 0x80A7},
+ {0x5571, 0x80AB},
+ {0x5572, 0x80B8},
+ {0x5573, 0x80B9},
+ {0x5574, 0x80C8},
+ {0x5575, 0x80CD},
+ {0x5576, 0x80CF},
+ {0x5577, 0x80D2},
+ {0x5578, 0x80D4},
+ {0x5579, 0x80D5},
+ {0x557A, 0x80D7},
+ {0x557B, 0x80D8},
+ {0x557C, 0x80E0},
+ {0x557D, 0x80ED},
+ {0x557E, 0x80EE},
+ {0x5621, 0x80F0},
+ {0x5622, 0x80F2},
+ {0x5623, 0x80F3},
+ {0x5624, 0x80F6},
+ {0x5625, 0x80F9},
+ {0x5626, 0x80FA},
+ {0x5627, 0x80FE},
+ {0x5628, 0x8103},
+ {0x5629, 0x810B},
+ {0x562A, 0x8116},
+ {0x562B, 0x8117},
+ {0x562C, 0x8118},
+ {0x562D, 0x811C},
+ {0x562E, 0x811E},
+ {0x562F, 0x8120},
+ {0x5630, 0x8124},
+ {0x5631, 0x8127},
+ {0x5632, 0x812C},
+ {0x5633, 0x8130},
+ {0x5634, 0x8135},
+ {0x5635, 0x813A},
+ {0x5636, 0x813C},
+ {0x5637, 0x8145},
+ {0x5638, 0x8147},
+ {0x5639, 0x814A},
+ {0x563A, 0x814C},
+ {0x563B, 0x8152},
+ {0x563C, 0x8157},
+ {0x563D, 0x8160},
+ {0x563E, 0x8161},
+ {0x563F, 0x8167},
+ {0x5640, 0x8168},
+ {0x5641, 0x8169},
+ {0x5642, 0x816D},
+ {0x5643, 0x816F},
+ {0x5644, 0x8177},
+ {0x5645, 0x8181},
+ {0x5646, 0x8190},
+ {0x5647, 0x8184},
+ {0x5648, 0x8185},
+ {0x5649, 0x8186},
+ {0x564A, 0x818B},
+ {0x564B, 0x818E},
+ {0x564C, 0x8196},
+ {0x564D, 0x8198},
+ {0x564E, 0x819B},
+ {0x564F, 0x819E},
+ {0x5650, 0x81A2},
+ {0x5651, 0x81AE},
+ {0x5652, 0x81B2},
+ {0x5653, 0x81B4},
+ {0x5654, 0x81BB},
+ {0x5655, 0x81CB},
+ {0x5656, 0x81C3},
+ {0x5657, 0x81C5},
+ {0x5658, 0x81CA},
+ {0x5659, 0x81CE},
+ {0x565A, 0x81CF},
+ {0x565B, 0x81D5},
+ {0x565C, 0x81D7},
+ {0x565D, 0x81DB},
+ {0x565E, 0x81DD},
+ {0x565F, 0x81DE},
+ {0x5660, 0x81E1},
+ {0x5661, 0x81E4},
+ {0x5662, 0x81EB},
+ {0x5663, 0x81EC},
+ {0x5664, 0x81F0},
+ {0x5665, 0x81F1},
+ {0x5666, 0x81F2},
+ {0x5667, 0x81F5},
+ {0x5668, 0x81F6},
+ {0x5669, 0x81F8},
+ {0x566A, 0x81F9},
+ {0x566B, 0x81FD},
+ {0x566C, 0x81FF},
+ {0x566D, 0x8200},
+ {0x566E, 0x8203},
+ {0x566F, 0x820F},
+ {0x5670, 0x8213},
+ {0x5671, 0x8214},
+ {0x5672, 0x8219},
+ {0x5673, 0x821A},
+ {0x5674, 0x821D},
+ {0x5675, 0x8221},
+ {0x5676, 0x8222},
+ {0x5677, 0x8228},
+ {0x5678, 0x8232},
+ {0x5679, 0x8234},
+ {0x567A, 0x823A},
+ {0x567B, 0x8243},
+ {0x567C, 0x8244},
+ {0x567D, 0x8245},
+ {0x567E, 0x8246},
+ {0x5721, 0x824B},
+ {0x5722, 0x824E},
+ {0x5723, 0x824F},
+ {0x5724, 0x8251},
+ {0x5725, 0x8256},
+ {0x5726, 0x825C},
+ {0x5727, 0x8260},
+ {0x5728, 0x8263},
+ {0x5729, 0x8267},
+ {0x572A, 0x826D},
+ {0x572B, 0x8274},
+ {0x572C, 0x827B},
+ {0x572D, 0x827D},
+ {0x572E, 0x827F},
+ {0x572F, 0x8280},
+ {0x5730, 0x8281},
+ {0x5731, 0x8283},
+ {0x5732, 0x8284},
+ {0x5733, 0x8287},
+ {0x5734, 0x8289},
+ {0x5735, 0x828A},
+ {0x5736, 0x828E},
+ {0x5737, 0x8291},
+ {0x5738, 0x8294},
+ {0x5739, 0x8296},
+ {0x573A, 0x8298},
+ {0x573B, 0x829A},
+ {0x573C, 0x829B},
+ {0x573D, 0x82A0},
+ {0x573E, 0x82A1},
+ {0x573F, 0x82A3},
+ {0x5740, 0x82A4},
+ {0x5741, 0x82A7},
+ {0x5742, 0x82A8},
+ {0x5743, 0x82A9},
+ {0x5744, 0x82AA},
+ {0x5745, 0x82AE},
+ {0x5746, 0x82B0},
+ {0x5747, 0x82B2},
+ {0x5748, 0x82B4},
+ {0x5749, 0x82B7},
+ {0x574A, 0x82BA},
+ {0x574B, 0x82BC},
+ {0x574C, 0x82BE},
+ {0x574D, 0x82BF},
+ {0x574E, 0x82C6},
+ {0x574F, 0x82D0},
+ {0x5750, 0x82D5},
+ {0x5751, 0x82DA},
+ {0x5752, 0x82E0},
+ {0x5753, 0x82E2},
+ {0x5754, 0x82E4},
+ {0x5755, 0x82E8},
+ {0x5756, 0x82EA},
+ {0x5757, 0x82ED},
+ {0x5758, 0x82EF},
+ {0x5759, 0x82F6},
+ {0x575A, 0x82F7},
+ {0x575B, 0x82FD},
+ {0x575C, 0x82FE},
+ {0x575D, 0x8300},
+ {0x575E, 0x8301},
+ {0x575F, 0x8307},
+ {0x5760, 0x8308},
+ {0x5761, 0x830A},
+ {0x5762, 0x830B},
+ {0x5763, 0x8354},
+ {0x5764, 0x831B},
+ {0x5765, 0x831D},
+ {0x5766, 0x831E},
+ {0x5767, 0x831F},
+ {0x5768, 0x8321},
+ {0x5769, 0x8322},
+ {0x576A, 0x832C},
+ {0x576B, 0x832D},
+ {0x576C, 0x832E},
+ {0x576D, 0x8330},
+ {0x576E, 0x8333},
+ {0x576F, 0x8337},
+ {0x5770, 0x833A},
+ {0x5771, 0x833C},
+ {0x5772, 0x833D},
+ {0x5773, 0x8342},
+ {0x5774, 0x8343},
+ {0x5775, 0x8344},
+ {0x5776, 0x8347},
+ {0x5777, 0x834D},
+ {0x5778, 0x834E},
+ {0x5779, 0x8351},
+ {0x577A, 0x8355},
+ {0x577B, 0x8356},
+ {0x577C, 0x8357},
+ {0x577D, 0x8370},
+ {0x577E, 0x8378},
+ {0x5821, 0x837D},
+ {0x5822, 0x837F},
+ {0x5823, 0x8380},
+ {0x5824, 0x8382},
+ {0x5825, 0x8384},
+ {0x5826, 0x8386},
+ {0x5827, 0x838D},
+ {0x5828, 0x8392},
+ {0x5829, 0x8394},
+ {0x582A, 0x8395},
+ {0x582B, 0x8398},
+ {0x582C, 0x8399},
+ {0x582D, 0x839B},
+ {0x582E, 0x839C},
+ {0x582F, 0x839D},
+ {0x5830, 0x83A6},
+ {0x5831, 0x83A7},
+ {0x5832, 0x83A9},
+ {0x5833, 0x83AC},
+ {0x5834, 0x83BE},
+ {0x5835, 0x83BF},
+ {0x5836, 0x83C0},
+ {0x5837, 0x83C7},
+ {0x5838, 0x83C9},
+ {0x5839, 0x83CF},
+ {0x583A, 0x83D0},
+ {0x583B, 0x83D1},
+ {0x583C, 0x83D4},
+ {0x583D, 0x83DD},
+ {0x583E, 0x8353},
+ {0x583F, 0x83E8},
+ {0x5840, 0x83EA},
+ {0x5841, 0x83F6},
+ {0x5842, 0x83F8},
+ {0x5843, 0x83F9},
+ {0x5844, 0x83FC},
+ {0x5845, 0x8401},
+ {0x5846, 0x8406},
+ {0x5847, 0x840A},
+ {0x5848, 0x840F},
+ {0x5849, 0x8411},
+ {0x584A, 0x8415},
+ {0x584B, 0x8419},
+ {0x584C, 0x83AD},
+ {0x584D, 0x842F},
+ {0x584E, 0x8439},
+ {0x584F, 0x8445},
+ {0x5850, 0x8447},
+ {0x5851, 0x8448},
+ {0x5852, 0x844A},
+ {0x5853, 0x844D},
+ {0x5854, 0x844F},
+ {0x5855, 0x8451},
+ {0x5856, 0x8452},
+ {0x5857, 0x8456},
+ {0x5858, 0x8458},
+ {0x5859, 0x8459},
+ {0x585A, 0x845A},
+ {0x585B, 0x845C},
+ {0x585C, 0x8460},
+ {0x585D, 0x8464},
+ {0x585E, 0x8465},
+ {0x585F, 0x8467},
+ {0x5860, 0x846A},
+ {0x5861, 0x8470},
+ {0x5862, 0x8473},
+ {0x5863, 0x8474},
+ {0x5864, 0x8476},
+ {0x5865, 0x8478},
+ {0x5866, 0x847C},
+ {0x5867, 0x847D},
+ {0x5868, 0x8481},
+ {0x5869, 0x8485},
+ {0x586A, 0x8492},
+ {0x586B, 0x8493},
+ {0x586C, 0x8495},
+ {0x586D, 0x849E},
+ {0x586E, 0x84A6},
+ {0x586F, 0x84A8},
+ {0x5870, 0x84A9},
+ {0x5871, 0x84AA},
+ {0x5872, 0x84AF},
+ {0x5873, 0x84B1},
+ {0x5874, 0x84B4},
+ {0x5875, 0x84BA},
+ {0x5876, 0x84BD},
+ {0x5877, 0x84BE},
+ {0x5878, 0x84C0},
+ {0x5879, 0x84C2},
+ {0x587A, 0x84C7},
+ {0x587B, 0x84C8},
+ {0x587C, 0x84CC},
+ {0x587D, 0x84CF},
+ {0x587E, 0x84D3},
+ {0x5921, 0x84DC},
+ {0x5922, 0x84E7},
+ {0x5923, 0x84EA},
+ {0x5924, 0x84EF},
+ {0x5925, 0x84F0},
+ {0x5926, 0x84F1},
+ {0x5927, 0x84F2},
+ {0x5928, 0x84F7},
+ {0x5929, 0x8532},
+ {0x592A, 0x84FA},
+ {0x592B, 0x84FB},
+ {0x592C, 0x84FD},
+ {0x592D, 0x8502},
+ {0x592E, 0x8503},
+ {0x592F, 0x8507},
+ {0x5930, 0x850C},
+ {0x5931, 0x850E},
+ {0x5932, 0x8510},
+ {0x5933, 0x851C},
+ {0x5934, 0x851E},
+ {0x5935, 0x8522},
+ {0x5936, 0x8523},
+ {0x5937, 0x8524},
+ {0x5938, 0x8525},
+ {0x5939, 0x8527},
+ {0x593A, 0x852A},
+ {0x593B, 0x852B},
+ {0x593C, 0x852F},
+ {0x593D, 0x8533},
+ {0x593E, 0x8534},
+ {0x593F, 0x8536},
+ {0x5940, 0x853F},
+ {0x5941, 0x8546},
+ {0x5942, 0x854F},
+ {0x5943, 0x8550},
+ {0x5944, 0x8551},
+ {0x5945, 0x8552},
+ {0x5946, 0x8553},
+ {0x5947, 0x8556},
+ {0x5948, 0x8559},
+ {0x5949, 0x855C},
+ {0x594A, 0x855D},
+ {0x594B, 0x855E},
+ {0x594C, 0x855F},
+ {0x594D, 0x8560},
+ {0x594E, 0x8561},
+ {0x594F, 0x8562},
+ {0x5950, 0x8564},
+ {0x5951, 0x856B},
+ {0x5952, 0x856F},
+ {0x5953, 0x8579},
+ {0x5954, 0x857A},
+ {0x5955, 0x857B},
+ {0x5956, 0x857D},
+ {0x5957, 0x857F},
+ {0x5958, 0x8581},
+ {0x5959, 0x8585},
+ {0x595A, 0x8586},
+ {0x595B, 0x8589},
+ {0x595C, 0x858B},
+ {0x595D, 0x858C},
+ {0x595E, 0x858F},
+ {0x595F, 0x8593},
+ {0x5960, 0x8598},
+ {0x5961, 0x859D},
+ {0x5962, 0x859F},
+ {0x5963, 0x85A0},
+ {0x5964, 0x85A2},
+ {0x5965, 0x85A5},
+ {0x5966, 0x85A7},
+ {0x5967, 0x85B4},
+ {0x5968, 0x85B6},
+ {0x5969, 0x85B7},
+ {0x596A, 0x85B8},
+ {0x596B, 0x85BC},
+ {0x596C, 0x85BD},
+ {0x596D, 0x85BE},
+ {0x596E, 0x85BF},
+ {0x596F, 0x85C2},
+ {0x5970, 0x85C7},
+ {0x5971, 0x85CA},
+ {0x5972, 0x85CB},
+ {0x5973, 0x85CE},
+ {0x5974, 0x85AD},
+ {0x5975, 0x85D8},
+ {0x5976, 0x85DA},
+ {0x5977, 0x85DF},
+ {0x5978, 0x85E0},
+ {0x5979, 0x85E6},
+ {0x597A, 0x85E8},
+ {0x597B, 0x85ED},
+ {0x597C, 0x85F3},
+ {0x597D, 0x85F6},
+ {0x597E, 0x85FC},
+ {0x5A21, 0x85FF},
+ {0x5A22, 0x8600},
+ {0x5A23, 0x8604},
+ {0x5A24, 0x8605},
+ {0x5A25, 0x860D},
+ {0x5A26, 0x860E},
+ {0x5A27, 0x8610},
+ {0x5A28, 0x8611},
+ {0x5A29, 0x8612},
+ {0x5A2A, 0x8618},
+ {0x5A2B, 0x8619},
+ {0x5A2C, 0x861B},
+ {0x5A2D, 0x861E},
+ {0x5A2E, 0x8621},
+ {0x5A2F, 0x8627},
+ {0x5A30, 0x8629},
+ {0x5A31, 0x8636},
+ {0x5A32, 0x8638},
+ {0x5A33, 0x863A},
+ {0x5A34, 0x863C},
+ {0x5A35, 0x863D},
+ {0x5A36, 0x8640},
+ {0x5A37, 0x8642},
+ {0x5A38, 0x8646},
+ {0x5A39, 0x8652},
+ {0x5A3A, 0x8653},
+ {0x5A3B, 0x8656},
+ {0x5A3C, 0x8657},
+ {0x5A3D, 0x8658},
+ {0x5A3E, 0x8659},
+ {0x5A3F, 0x865D},
+ {0x5A40, 0x8660},
+ {0x5A41, 0x8661},
+ {0x5A42, 0x8662},
+ {0x5A43, 0x8663},
+ {0x5A44, 0x8664},
+ {0x5A45, 0x8669},
+ {0x5A46, 0x866C},
+ {0x5A47, 0x866F},
+ {0x5A48, 0x8675},
+ {0x5A49, 0x8676},
+ {0x5A4A, 0x8677},
+ {0x5A4B, 0x867A},
+ {0x5A4C, 0x868D},
+ {0x5A4D, 0x8691},
+ {0x5A4E, 0x8696},
+ {0x5A4F, 0x8698},
+ {0x5A50, 0x869A},
+ {0x5A51, 0x869C},
+ {0x5A52, 0x86A1},
+ {0x5A53, 0x86A6},
+ {0x5A54, 0x86A7},
+ {0x5A55, 0x86A8},
+ {0x5A56, 0x86AD},
+ {0x5A57, 0x86B1},
+ {0x5A58, 0x86B3},
+ {0x5A59, 0x86B4},
+ {0x5A5A, 0x86B5},
+ {0x5A5B, 0x86B7},
+ {0x5A5C, 0x86B8},
+ {0x5A5D, 0x86B9},
+ {0x5A5E, 0x86BF},
+ {0x5A5F, 0x86C0},
+ {0x5A60, 0x86C1},
+ {0x5A61, 0x86C3},
+ {0x5A62, 0x86C5},
+ {0x5A63, 0x86D1},
+ {0x5A64, 0x86D2},
+ {0x5A65, 0x86D5},
+ {0x5A66, 0x86D7},
+ {0x5A67, 0x86DA},
+ {0x5A68, 0x86DC},
+ {0x5A69, 0x86E0},
+ {0x5A6A, 0x86E3},
+ {0x5A6B, 0x86E5},
+ {0x5A6C, 0x86E7},
+ {0x5A6D, 0x8688},
+ {0x5A6E, 0x86FA},
+ {0x5A6F, 0x86FC},
+ {0x5A70, 0x86FD},
+ {0x5A71, 0x8704},
+ {0x5A72, 0x8705},
+ {0x5A73, 0x8707},
+ {0x5A74, 0x870B},
+ {0x5A75, 0x870E},
+ {0x5A76, 0x870F},
+ {0x5A77, 0x8710},
+ {0x5A78, 0x8713},
+ {0x5A79, 0x8714},
+ {0x5A7A, 0x8719},
+ {0x5A7B, 0x871E},
+ {0x5A7C, 0x871F},
+ {0x5A7D, 0x8721},
+ {0x5A7E, 0x8723},
+ {0x5B21, 0x8728},
+ {0x5B22, 0x872E},
+ {0x5B23, 0x872F},
+ {0x5B24, 0x8731},
+ {0x5B25, 0x8732},
+ {0x5B26, 0x8739},
+ {0x5B27, 0x873A},
+ {0x5B28, 0x873C},
+ {0x5B29, 0x873D},
+ {0x5B2A, 0x873E},
+ {0x5B2B, 0x8740},
+ {0x5B2C, 0x8743},
+ {0x5B2D, 0x8745},
+ {0x5B2E, 0x874D},
+ {0x5B2F, 0x8758},
+ {0x5B30, 0x875D},
+ {0x5B31, 0x8761},
+ {0x5B32, 0x8764},
+ {0x5B33, 0x8765},
+ {0x5B34, 0x876F},
+ {0x5B35, 0x8771},
+ {0x5B36, 0x8772},
+ {0x5B37, 0x877B},
+ {0x5B38, 0x8783},
+ {0x5B39, 0x8784},
+ {0x5B3A, 0x8785},
+ {0x5B3B, 0x8786},
+ {0x5B3C, 0x8787},
+ {0x5B3D, 0x8788},
+ {0x5B3E, 0x8789},
+ {0x5B3F, 0x878B},
+ {0x5B40, 0x878C},
+ {0x5B41, 0x8790},
+ {0x5B42, 0x8793},
+ {0x5B43, 0x8795},
+ {0x5B44, 0x8797},
+ {0x5B45, 0x8798},
+ {0x5B46, 0x8799},
+ {0x5B47, 0x879E},
+ {0x5B48, 0x87A0},
+ {0x5B49, 0x87A3},
+ {0x5B4A, 0x87A7},
+ {0x5B4B, 0x87AC},
+ {0x5B4C, 0x87AD},
+ {0x5B4D, 0x87AE},
+ {0x5B4E, 0x87B1},
+ {0x5B4F, 0x87B5},
+ {0x5B50, 0x87BE},
+ {0x5B51, 0x87BF},
+ {0x5B52, 0x87C1},
+ {0x5B53, 0x87C8},
+ {0x5B54, 0x87C9},
+ {0x5B55, 0x87CA},
+ {0x5B56, 0x87CE},
+ {0x5B57, 0x87D5},
+ {0x5B58, 0x87D6},
+ {0x5B59, 0x87D9},
+ {0x5B5A, 0x87DA},
+ {0x5B5B, 0x87DC},
+ {0x5B5C, 0x87DF},
+ {0x5B5D, 0x87E2},
+ {0x5B5E, 0x87E3},
+ {0x5B5F, 0x87E4},
+ {0x5B60, 0x87EA},
+ {0x5B61, 0x87EB},
+ {0x5B62, 0x87ED},
+ {0x5B63, 0x87F1},
+ {0x5B64, 0x87F3},
+ {0x5B65, 0x87F8},
+ {0x5B66, 0x87FA},
+ {0x5B67, 0x87FF},
+ {0x5B68, 0x8801},
+ {0x5B69, 0x8803},
+ {0x5B6A, 0x8806},
+ {0x5B6B, 0x8809},
+ {0x5B6C, 0x880A},
+ {0x5B6D, 0x880B},
+ {0x5B6E, 0x8810},
+ {0x5B6F, 0x8819},
+ {0x5B70, 0x8812},
+ {0x5B71, 0x8813},
+ {0x5B72, 0x8814},
+ {0x5B73, 0x8818},
+ {0x5B74, 0x881A},
+ {0x5B75, 0x881B},
+ {0x5B76, 0x881C},
+ {0x5B77, 0x881E},
+ {0x5B78, 0x881F},
+ {0x5B79, 0x8828},
+ {0x5B7A, 0x882D},
+ {0x5B7B, 0x882E},
+ {0x5B7C, 0x8830},
+ {0x5B7D, 0x8832},
+ {0x5B7E, 0x8835},
+ {0x5C21, 0x883A},
+ {0x5C22, 0x883C},
+ {0x5C23, 0x8841},
+ {0x5C24, 0x8843},
+ {0x5C25, 0x8845},
+ {0x5C26, 0x8848},
+ {0x5C27, 0x8849},
+ {0x5C28, 0x884A},
+ {0x5C29, 0x884B},
+ {0x5C2A, 0x884E},
+ {0x5C2B, 0x8851},
+ {0x5C2C, 0x8855},
+ {0x5C2D, 0x8856},
+ {0x5C2E, 0x8858},
+ {0x5C2F, 0x885A},
+ {0x5C30, 0x885C},
+ {0x5C31, 0x885F},
+ {0x5C32, 0x8860},
+ {0x5C33, 0x8864},
+ {0x5C34, 0x8869},
+ {0x5C35, 0x8871},
+ {0x5C36, 0x8879},
+ {0x5C37, 0x887B},
+ {0x5C38, 0x8880},
+ {0x5C39, 0x8898},
+ {0x5C3A, 0x889A},
+ {0x5C3B, 0x889B},
+ {0x5C3C, 0x889C},
+ {0x5C3D, 0x889F},
+ {0x5C3E, 0x88A0},
+ {0x5C3F, 0x88A8},
+ {0x5C40, 0x88AA},
+ {0x5C41, 0x88BA},
+ {0x5C42, 0x88BD},
+ {0x5C43, 0x88BE},
+ {0x5C44, 0x88C0},
+ {0x5C45, 0x88CA},
+ {0x5C46, 0x88CB},
+ {0x5C47, 0x88CC},
+ {0x5C48, 0x88CD},
+ {0x5C49, 0x88CE},
+ {0x5C4A, 0x88D1},
+ {0x5C4B, 0x88D2},
+ {0x5C4C, 0x88D3},
+ {0x5C4D, 0x88DB},
+ {0x5C4E, 0x88DE},
+ {0x5C4F, 0x88E7},
+ {0x5C50, 0x88EF},
+ {0x5C51, 0x88F0},
+ {0x5C52, 0x88F1},
+ {0x5C53, 0x88F5},
+ {0x5C54, 0x88F7},
+ {0x5C55, 0x8901},
+ {0x5C56, 0x8906},
+ {0x5C57, 0x890D},
+ {0x5C58, 0x890E},
+ {0x5C59, 0x890F},
+ {0x5C5A, 0x8915},
+ {0x5C5B, 0x8916},
+ {0x5C5C, 0x8918},
+ {0x5C5D, 0x8919},
+ {0x5C5E, 0x891A},
+ {0x5C5F, 0x891C},
+ {0x5C60, 0x8920},
+ {0x5C61, 0x8926},
+ {0x5C62, 0x8927},
+ {0x5C63, 0x8928},
+ {0x5C64, 0x8930},
+ {0x5C65, 0x8931},
+ {0x5C66, 0x8932},
+ {0x5C67, 0x8935},
+ {0x5C68, 0x8939},
+ {0x5C69, 0x893A},
+ {0x5C6A, 0x893E},
+ {0x5C6B, 0x8940},
+ {0x5C6C, 0x8942},
+ {0x5C6D, 0x8945},
+ {0x5C6E, 0x8946},
+ {0x5C6F, 0x8949},
+ {0x5C70, 0x894F},
+ {0x5C71, 0x8952},
+ {0x5C72, 0x8957},
+ {0x5C73, 0x895A},
+ {0x5C74, 0x895B},
+ {0x5C75, 0x895C},
+ {0x5C76, 0x8961},
+ {0x5C77, 0x8962},
+ {0x5C78, 0x8963},
+ {0x5C79, 0x896B},
+ {0x5C7A, 0x896E},
+ {0x5C7B, 0x8970},
+ {0x5C7C, 0x8973},
+ {0x5C7D, 0x8975},
+ {0x5C7E, 0x897A},
+ {0x5D21, 0x897B},
+ {0x5D22, 0x897C},
+ {0x5D23, 0x897D},
+ {0x5D24, 0x8989},
+ {0x5D25, 0x898D},
+ {0x5D26, 0x8990},
+ {0x5D27, 0x8994},
+ {0x5D28, 0x8995},
+ {0x5D29, 0x899B},
+ {0x5D2A, 0x899C},
+ {0x5D2B, 0x899F},
+ {0x5D2C, 0x89A0},
+ {0x5D2D, 0x89A5},
+ {0x5D2E, 0x89B0},
+ {0x5D2F, 0x89B4},
+ {0x5D30, 0x89B5},
+ {0x5D31, 0x89B6},
+ {0x5D32, 0x89B7},
+ {0x5D33, 0x89BC},
+ {0x5D34, 0x89D4},
+ {0x5D35, 0x89D5},
+ {0x5D36, 0x89D6},
+ {0x5D37, 0x89D7},
+ {0x5D38, 0x89D8},
+ {0x5D39, 0x89E5},
+ {0x5D3A, 0x89E9},
+ {0x5D3B, 0x89EB},
+ {0x5D3C, 0x89ED},
+ {0x5D3D, 0x89F1},
+ {0x5D3E, 0x89F3},
+ {0x5D3F, 0x89F6},
+ {0x5D40, 0x89F9},
+ {0x5D41, 0x89FD},
+ {0x5D42, 0x89FF},
+ {0x5D43, 0x8A04},
+ {0x5D44, 0x8A05},
+ {0x5D45, 0x8A07},
+ {0x5D46, 0x8A0F},
+ {0x5D47, 0x8A11},
+ {0x5D48, 0x8A12},
+ {0x5D49, 0x8A14},
+ {0x5D4A, 0x8A15},
+ {0x5D4B, 0x8A1E},
+ {0x5D4C, 0x8A20},
+ {0x5D4D, 0x8A22},
+ {0x5D4E, 0x8A24},
+ {0x5D4F, 0x8A26},
+ {0x5D50, 0x8A2B},
+ {0x5D51, 0x8A2C},
+ {0x5D52, 0x8A2F},
+ {0x5D53, 0x8A35},
+ {0x5D54, 0x8A37},
+ {0x5D55, 0x8A3D},
+ {0x5D56, 0x8A3E},
+ {0x5D57, 0x8A40},
+ {0x5D58, 0x8A43},
+ {0x5D59, 0x8A45},
+ {0x5D5A, 0x8A47},
+ {0x5D5B, 0x8A49},
+ {0x5D5C, 0x8A4D},
+ {0x5D5D, 0x8A4E},
+ {0x5D5E, 0x8A53},
+ {0x5D5F, 0x8A56},
+ {0x5D60, 0x8A57},
+ {0x5D61, 0x8A58},
+ {0x5D62, 0x8A5C},
+ {0x5D63, 0x8A5D},
+ {0x5D64, 0x8A61},
+ {0x5D65, 0x8A65},
+ {0x5D66, 0x8A67},
+ {0x5D67, 0x8A75},
+ {0x5D68, 0x8A76},
+ {0x5D69, 0x8A77},
+ {0x5D6A, 0x8A79},
+ {0x5D6B, 0x8A7A},
+ {0x5D6C, 0x8A7B},
+ {0x5D6D, 0x8A7E},
+ {0x5D6E, 0x8A7F},
+ {0x5D6F, 0x8A80},
+ {0x5D70, 0x8A83},
+ {0x5D71, 0x8A86},
+ {0x5D72, 0x8A8B},
+ {0x5D73, 0x8A8F},
+ {0x5D74, 0x8A90},
+ {0x5D75, 0x8A92},
+ {0x5D76, 0x8A96},
+ {0x5D77, 0x8A97},
+ {0x5D78, 0x8A99},
+ {0x5D79, 0x8A9F},
+ {0x5D7A, 0x8AA7},
+ {0x5D7B, 0x8AA9},
+ {0x5D7C, 0x8AAE},
+ {0x5D7D, 0x8AAF},
+ {0x5D7E, 0x8AB3},
+ {0x5E21, 0x8AB6},
+ {0x5E22, 0x8AB7},
+ {0x5E23, 0x8ABB},
+ {0x5E24, 0x8ABE},
+ {0x5E25, 0x8AC3},
+ {0x5E26, 0x8AC6},
+ {0x5E27, 0x8AC8},
+ {0x5E28, 0x8AC9},
+ {0x5E29, 0x8ACA},
+ {0x5E2A, 0x8AD1},
+ {0x5E2B, 0x8AD3},
+ {0x5E2C, 0x8AD4},
+ {0x5E2D, 0x8AD5},
+ {0x5E2E, 0x8AD7},
+ {0x5E2F, 0x8ADD},
+ {0x5E30, 0x8ADF},
+ {0x5E31, 0x8AEC},
+ {0x5E32, 0x8AF0},
+ {0x5E33, 0x8AF4},
+ {0x5E34, 0x8AF5},
+ {0x5E35, 0x8AF6},
+ {0x5E36, 0x8AFC},
+ {0x5E37, 0x8AFF},
+ {0x5E38, 0x8B05},
+ {0x5E39, 0x8B06},
+ {0x5E3A, 0x8B0B},
+ {0x5E3B, 0x8B11},
+ {0x5E3C, 0x8B1C},
+ {0x5E3D, 0x8B1E},
+ {0x5E3E, 0x8B1F},
+ {0x5E3F, 0x8B0A},
+ {0x5E40, 0x8B2D},
+ {0x5E41, 0x8B30},
+ {0x5E42, 0x8B37},
+ {0x5E43, 0x8B3C},
+ {0x5E44, 0x8B42},
+ {0x5E45, 0x8B43},
+ {0x5E46, 0x8B44},
+ {0x5E47, 0x8B45},
+ {0x5E48, 0x8B46},
+ {0x5E49, 0x8B48},
+ {0x5E4A, 0x8B52},
+ {0x5E4B, 0x8B53},
+ {0x5E4C, 0x8B54},
+ {0x5E4D, 0x8B59},
+ {0x5E4E, 0x8B4D},
+ {0x5E4F, 0x8B5E},
+ {0x5E50, 0x8B63},
+ {0x5E51, 0x8B6D},
+ {0x5E52, 0x8B76},
+ {0x5E53, 0x8B78},
+ {0x5E54, 0x8B79},
+ {0x5E55, 0x8B7C},
+ {0x5E56, 0x8B7E},
+ {0x5E57, 0x8B81},
+ {0x5E58, 0x8B84},
+ {0x5E59, 0x8B85},
+ {0x5E5A, 0x8B8B},
+ {0x5E5B, 0x8B8D},
+ {0x5E5C, 0x8B8F},
+ {0x5E5D, 0x8B94},
+ {0x5E5E, 0x8B95},
+ {0x5E5F, 0x8B9C},
+ {0x5E60, 0x8B9E},
+ {0x5E61, 0x8B9F},
+ {0x5E62, 0x8C38},
+ {0x5E63, 0x8C39},
+ {0x5E64, 0x8C3D},
+ {0x5E65, 0x8C3E},
+ {0x5E66, 0x8C45},
+ {0x5E67, 0x8C47},
+ {0x5E68, 0x8C49},
+ {0x5E69, 0x8C4B},
+ {0x5E6A, 0x8C4F},
+ {0x5E6B, 0x8C51},
+ {0x5E6C, 0x8C53},
+ {0x5E6D, 0x8C54},
+ {0x5E6E, 0x8C57},
+ {0x5E6F, 0x8C58},
+ {0x5E70, 0x8C5B},
+ {0x5E71, 0x8C5D},
+ {0x5E72, 0x8C59},
+ {0x5E73, 0x8C63},
+ {0x5E74, 0x8C64},
+ {0x5E75, 0x8C66},
+ {0x5E76, 0x8C68},
+ {0x5E77, 0x8C69},
+ {0x5E78, 0x8C6D},
+ {0x5E79, 0x8C73},
+ {0x5E7A, 0x8C75},
+ {0x5E7B, 0x8C76},
+ {0x5E7C, 0x8C7B},
+ {0x5E7D, 0x8C7E},
+ {0x5E7E, 0x8C86},
+ {0x5F21, 0x8C87},
+ {0x5F22, 0x8C8B},
+ {0x5F23, 0x8C90},
+ {0x5F24, 0x8C92},
+ {0x5F25, 0x8C93},
+ {0x5F26, 0x8C99},
+ {0x5F27, 0x8C9B},
+ {0x5F28, 0x8C9C},
+ {0x5F29, 0x8CA4},
+ {0x5F2A, 0x8CB9},
+ {0x5F2B, 0x8CBA},
+ {0x5F2C, 0x8CC5},
+ {0x5F2D, 0x8CC6},
+ {0x5F2E, 0x8CC9},
+ {0x5F2F, 0x8CCB},
+ {0x5F30, 0x8CCF},
+ {0x5F31, 0x8CD6},
+ {0x5F32, 0x8CD5},
+ {0x5F33, 0x8CD9},
+ {0x5F34, 0x8CDD},
+ {0x5F35, 0x8CE1},
+ {0x5F36, 0x8CE8},
+ {0x5F37, 0x8CEC},
+ {0x5F38, 0x8CEF},
+ {0x5F39, 0x8CF0},
+ {0x5F3A, 0x8CF2},
+ {0x5F3B, 0x8CF5},
+ {0x5F3C, 0x8CF7},
+ {0x5F3D, 0x8CF8},
+ {0x5F3E, 0x8CFE},
+ {0x5F3F, 0x8CFF},
+ {0x5F40, 0x8D01},
+ {0x5F41, 0x8D03},
+ {0x5F42, 0x8D09},
+ {0x5F43, 0x8D12},
+ {0x5F44, 0x8D17},
+ {0x5F45, 0x8D1B},
+ {0x5F46, 0x8D65},
+ {0x5F47, 0x8D69},
+ {0x5F48, 0x8D6C},
+ {0x5F49, 0x8D6E},
+ {0x5F4A, 0x8D7F},
+ {0x5F4B, 0x8D82},
+ {0x5F4C, 0x8D84},
+ {0x5F4D, 0x8D88},
+ {0x5F4E, 0x8D8D},
+ {0x5F4F, 0x8D90},
+ {0x5F50, 0x8D91},
+ {0x5F51, 0x8D95},
+ {0x5F52, 0x8D9E},
+ {0x5F53, 0x8D9F},
+ {0x5F54, 0x8DA0},
+ {0x5F55, 0x8DA6},
+ {0x5F56, 0x8DAB},
+ {0x5F57, 0x8DAC},
+ {0x5F58, 0x8DAF},
+ {0x5F59, 0x8DB2},
+ {0x5F5A, 0x8DB5},
+ {0x5F5B, 0x8DB7},
+ {0x5F5C, 0x8DB9},
+ {0x5F5D, 0x8DBB},
+ {0x5F5E, 0x8DC0},
+ {0x5F5F, 0x8DC5},
+ {0x5F60, 0x8DC6},
+ {0x5F61, 0x8DC7},
+ {0x5F62, 0x8DC8},
+ {0x5F63, 0x8DCA},
+ {0x5F64, 0x8DCE},
+ {0x5F65, 0x8DD1},
+ {0x5F66, 0x8DD4},
+ {0x5F67, 0x8DD5},
+ {0x5F68, 0x8DD7},
+ {0x5F69, 0x8DD9},
+ {0x5F6A, 0x8DE4},
+ {0x5F6B, 0x8DE5},
+ {0x5F6C, 0x8DE7},
+ {0x5F6D, 0x8DEC},
+ {0x5F6E, 0x8DF0},
+ {0x5F6F, 0x8DBC},
+ {0x5F70, 0x8DF1},
+ {0x5F71, 0x8DF2},
+ {0x5F72, 0x8DF4},
+ {0x5F73, 0x8DFD},
+ {0x5F74, 0x8E01},
+ {0x5F75, 0x8E04},
+ {0x5F76, 0x8E05},
+ {0x5F77, 0x8E06},
+ {0x5F78, 0x8E0B},
+ {0x5F79, 0x8E11},
+ {0x5F7A, 0x8E14},
+ {0x5F7B, 0x8E16},
+ {0x5F7C, 0x8E20},
+ {0x5F7D, 0x8E21},
+ {0x5F7E, 0x8E22},
+ {0x6021, 0x8E23},
+ {0x6022, 0x8E26},
+ {0x6023, 0x8E27},
+ {0x6024, 0x8E31},
+ {0x6025, 0x8E33},
+ {0x6026, 0x8E36},
+ {0x6027, 0x8E37},
+ {0x6028, 0x8E38},
+ {0x6029, 0x8E39},
+ {0x602A, 0x8E3D},
+ {0x602B, 0x8E40},
+ {0x602C, 0x8E41},
+ {0x602D, 0x8E4B},
+ {0x602E, 0x8E4D},
+ {0x602F, 0x8E4E},
+ {0x6030, 0x8E4F},
+ {0x6031, 0x8E54},
+ {0x6032, 0x8E5B},
+ {0x6033, 0x8E5C},
+ {0x6034, 0x8E5D},
+ {0x6035, 0x8E5E},
+ {0x6036, 0x8E61},
+ {0x6037, 0x8E62},
+ {0x6038, 0x8E69},
+ {0x6039, 0x8E6C},
+ {0x603A, 0x8E6D},
+ {0x603B, 0x8E6F},
+ {0x603C, 0x8E70},
+ {0x603D, 0x8E71},
+ {0x603E, 0x8E79},
+ {0x603F, 0x8E7A},
+ {0x6040, 0x8E7B},
+ {0x6041, 0x8E82},
+ {0x6042, 0x8E83},
+ {0x6043, 0x8E89},
+ {0x6044, 0x8E90},
+ {0x6045, 0x8E92},
+ {0x6046, 0x8E95},
+ {0x6047, 0x8E9A},
+ {0x6048, 0x8E9B},
+ {0x6049, 0x8E9D},
+ {0x604A, 0x8E9E},
+ {0x604B, 0x8EA2},
+ {0x604C, 0x8EA7},
+ {0x604D, 0x8EA9},
+ {0x604E, 0x8EAD},
+ {0x604F, 0x8EAE},
+ {0x6050, 0x8EB3},
+ {0x6051, 0x8EB5},
+ {0x6052, 0x8EBA},
+ {0x6053, 0x8EBB},
+ {0x6054, 0x8EC0},
+ {0x6055, 0x8EC1},
+ {0x6056, 0x8EC3},
+ {0x6057, 0x8EC4},
+ {0x6058, 0x8EC7},
+ {0x6059, 0x8ECF},
+ {0x605A, 0x8ED1},
+ {0x605B, 0x8ED4},
+ {0x605C, 0x8EDC},
+ {0x605D, 0x8EE8},
+ {0x605E, 0x8EEE},
+ {0x605F, 0x8EF0},
+ {0x6060, 0x8EF1},
+ {0x6061, 0x8EF7},
+ {0x6062, 0x8EF9},
+ {0x6063, 0x8EFA},
+ {0x6064, 0x8EED},
+ {0x6065, 0x8F00},
+ {0x6066, 0x8F02},
+ {0x6067, 0x8F07},
+ {0x6068, 0x8F08},
+ {0x6069, 0x8F0F},
+ {0x606A, 0x8F10},
+ {0x606B, 0x8F16},
+ {0x606C, 0x8F17},
+ {0x606D, 0x8F18},
+ {0x606E, 0x8F1E},
+ {0x606F, 0x8F20},
+ {0x6070, 0x8F21},
+ {0x6071, 0x8F23},
+ {0x6072, 0x8F25},
+ {0x6073, 0x8F27},
+ {0x6074, 0x8F28},
+ {0x6075, 0x8F2C},
+ {0x6076, 0x8F2D},
+ {0x6077, 0x8F2E},
+ {0x6078, 0x8F34},
+ {0x6079, 0x8F35},
+ {0x607A, 0x8F36},
+ {0x607B, 0x8F37},
+ {0x607C, 0x8F3A},
+ {0x607D, 0x8F40},
+ {0x607E, 0x8F41},
+ {0x6121, 0x8F43},
+ {0x6122, 0x8F47},
+ {0x6123, 0x8F4F},
+ {0x6124, 0x8F51},
+ {0x6125, 0x8F52},
+ {0x6126, 0x8F53},
+ {0x6127, 0x8F54},
+ {0x6128, 0x8F55},
+ {0x6129, 0x8F58},
+ {0x612A, 0x8F5D},
+ {0x612B, 0x8F5E},
+ {0x612C, 0x8F65},
+ {0x612D, 0x8F9D},
+ {0x612E, 0x8FA0},
+ {0x612F, 0x8FA1},
+ {0x6130, 0x8FA4},
+ {0x6131, 0x8FA5},
+ {0x6132, 0x8FA6},
+ {0x6133, 0x8FB5},
+ {0x6134, 0x8FB6},
+ {0x6135, 0x8FB8},
+ {0x6136, 0x8FBE},
+ {0x6137, 0x8FC0},
+ {0x6138, 0x8FC1},
+ {0x6139, 0x8FC6},
+ {0x613A, 0x8FCA},
+ {0x613B, 0x8FCB},
+ {0x613C, 0x8FCD},
+ {0x613D, 0x8FD0},
+ {0x613E, 0x8FD2},
+ {0x613F, 0x8FD3},
+ {0x6140, 0x8FD5},
+ {0x6141, 0x8FE0},
+ {0x6142, 0x8FE3},
+ {0x6143, 0x8FE4},
+ {0x6144, 0x8FE8},
+ {0x6145, 0x8FEE},
+ {0x6146, 0x8FF1},
+ {0x6147, 0x8FF5},
+ {0x6148, 0x8FF6},
+ {0x6149, 0x8FFB},
+ {0x614A, 0x8FFE},
+ {0x614B, 0x9002},
+ {0x614C, 0x9004},
+ {0x614D, 0x9008},
+ {0x614E, 0x900C},
+ {0x614F, 0x9018},
+ {0x6150, 0x901B},
+ {0x6151, 0x9028},
+ {0x6152, 0x9029},
+ {0x6153, 0x902F},
+ {0x6154, 0x902A},
+ {0x6155, 0x902C},
+ {0x6156, 0x902D},
+ {0x6157, 0x9033},
+ {0x6158, 0x9034},
+ {0x6159, 0x9037},
+ {0x615A, 0x903F},
+ {0x615B, 0x9043},
+ {0x615C, 0x9044},
+ {0x615D, 0x904C},
+ {0x615E, 0x905B},
+ {0x615F, 0x905D},
+ {0x6160, 0x9062},
+ {0x6161, 0x9066},
+ {0x6162, 0x9067},
+ {0x6163, 0x906C},
+ {0x6164, 0x9070},
+ {0x6165, 0x9074},
+ {0x6166, 0x9079},
+ {0x6167, 0x9085},
+ {0x6168, 0x9088},
+ {0x6169, 0x908B},
+ {0x616A, 0x908C},
+ {0x616B, 0x908E},
+ {0x616C, 0x9090},
+ {0x616D, 0x9095},
+ {0x616E, 0x9097},
+ {0x616F, 0x9098},
+ {0x6170, 0x9099},
+ {0x6171, 0x909B},
+ {0x6172, 0x90A0},
+ {0x6173, 0x90A1},
+ {0x6174, 0x90A2},
+ {0x6175, 0x90A5},
+ {0x6176, 0x90B0},
+ {0x6177, 0x90B2},
+ {0x6178, 0x90B3},
+ {0x6179, 0x90B4},
+ {0x617A, 0x90B6},
+ {0x617B, 0x90BD},
+ {0x617C, 0x90CC},
+ {0x617D, 0x90BE},
+ {0x617E, 0x90C3},
+ {0x6221, 0x90C4},
+ {0x6222, 0x90C5},
+ {0x6223, 0x90C7},
+ {0x6224, 0x90C8},
+ {0x6225, 0x90D5},
+ {0x6226, 0x90D7},
+ {0x6227, 0x90D8},
+ {0x6228, 0x90D9},
+ {0x6229, 0x90DC},
+ {0x622A, 0x90DD},
+ {0x622B, 0x90DF},
+ {0x622C, 0x90E5},
+ {0x622D, 0x90D2},
+ {0x622E, 0x90F6},
+ {0x622F, 0x90EB},
+ {0x6230, 0x90EF},
+ {0x6231, 0x90F0},
+ {0x6232, 0x90F4},
+ {0x6233, 0x90FE},
+ {0x6234, 0x90FF},
+ {0x6235, 0x9100},
+ {0x6236, 0x9104},
+ {0x6237, 0x9105},
+ {0x6238, 0x9106},
+ {0x6239, 0x9108},
+ {0x623A, 0x910D},
+ {0x623B, 0x9110},
+ {0x623C, 0x9114},
+ {0x623D, 0x9116},
+ {0x623E, 0x9117},
+ {0x623F, 0x9118},
+ {0x6240, 0x911A},
+ {0x6241, 0x911C},
+ {0x6242, 0x911E},
+ {0x6243, 0x9120},
+ {0x6244, 0x9125},
+ {0x6245, 0x9122},
+ {0x6246, 0x9123},
+ {0x6247, 0x9127},
+ {0x6248, 0x9129},
+ {0x6249, 0x912E},
+ {0x624A, 0x912F},
+ {0x624B, 0x9131},
+ {0x624C, 0x9134},
+ {0x624D, 0x9136},
+ {0x624E, 0x9137},
+ {0x624F, 0x9139},
+ {0x6250, 0x913A},
+ {0x6251, 0x913C},
+ {0x6252, 0x913D},
+ {0x6253, 0x9143},
+ {0x6254, 0x9147},
+ {0x6255, 0x9148},
+ {0x6256, 0x914F},
+ {0x6257, 0x9153},
+ {0x6258, 0x9157},
+ {0x6259, 0x9159},
+ {0x625A, 0x915A},
+ {0x625B, 0x915B},
+ {0x625C, 0x9161},
+ {0x625D, 0x9164},
+ {0x625E, 0x9167},
+ {0x625F, 0x916D},
+ {0x6260, 0x9174},
+ {0x6261, 0x9179},
+ {0x6262, 0x917A},
+ {0x6263, 0x917B},
+ {0x6264, 0x9181},
+ {0x6265, 0x9183},
+ {0x6266, 0x9185},
+ {0x6267, 0x9186},
+ {0x6268, 0x918A},
+ {0x6269, 0x918E},
+ {0x626A, 0x9191},
+ {0x626B, 0x9193},
+ {0x626C, 0x9194},
+ {0x626D, 0x9195},
+ {0x626E, 0x9198},
+ {0x626F, 0x919E},
+ {0x6270, 0x91A1},
+ {0x6271, 0x91A6},
+ {0x6272, 0x91A8},
+ {0x6273, 0x91AC},
+ {0x6274, 0x91AD},
+ {0x6275, 0x91AE},
+ {0x6276, 0x91B0},
+ {0x6277, 0x91B1},
+ {0x6278, 0x91B2},
+ {0x6279, 0x91B3},
+ {0x627A, 0x91B6},
+ {0x627B, 0x91BB},
+ {0x627C, 0x91BC},
+ {0x627D, 0x91BD},
+ {0x627E, 0x91BF},
+ {0x6321, 0x91C2},
+ {0x6322, 0x91C3},
+ {0x6323, 0x91C5},
+ {0x6324, 0x91D3},
+ {0x6325, 0x91D4},
+ {0x6326, 0x91D7},
+ {0x6327, 0x91D9},
+ {0x6328, 0x91DA},
+ {0x6329, 0x91DE},
+ {0x632A, 0x91E4},
+ {0x632B, 0x91E5},
+ {0x632C, 0x91E9},
+ {0x632D, 0x91EA},
+ {0x632E, 0x91EC},
+ {0x632F, 0x91ED},
+ {0x6330, 0x91EE},
+ {0x6331, 0x91EF},
+ {0x6332, 0x91F0},
+ {0x6333, 0x91F1},
+ {0x6334, 0x91F7},
+ {0x6335, 0x91F9},
+ {0x6336, 0x91FB},
+ {0x6337, 0x91FD},
+ {0x6338, 0x9200},
+ {0x6339, 0x9201},
+ {0x633A, 0x9204},
+ {0x633B, 0x9205},
+ {0x633C, 0x9206},
+ {0x633D, 0x9207},
+ {0x633E, 0x9209},
+ {0x633F, 0x920A},
+ {0x6340, 0x920C},
+ {0x6341, 0x9210},
+ {0x6342, 0x9212},
+ {0x6343, 0x9213},
+ {0x6344, 0x9216},
+ {0x6345, 0x9218},
+ {0x6346, 0x921C},
+ {0x6347, 0x921D},
+ {0x6348, 0x9223},
+ {0x6349, 0x9224},
+ {0x634A, 0x9225},
+ {0x634B, 0x9226},
+ {0x634C, 0x9228},
+ {0x634D, 0x922E},
+ {0x634E, 0x922F},
+ {0x634F, 0x9230},
+ {0x6350, 0x9233},
+ {0x6351, 0x9235},
+ {0x6352, 0x9236},
+ {0x6353, 0x9238},
+ {0x6354, 0x9239},
+ {0x6355, 0x923A},
+ {0x6356, 0x923C},
+ {0x6357, 0x923E},
+ {0x6358, 0x9240},
+ {0x6359, 0x9242},
+ {0x635A, 0x9243},
+ {0x635B, 0x9246},
+ {0x635C, 0x9247},
+ {0x635D, 0x924A},
+ {0x635E, 0x924D},
+ {0x635F, 0x924E},
+ {0x6360, 0x924F},
+ {0x6361, 0x9251},
+ {0x6362, 0x9258},
+ {0x6363, 0x9259},
+ {0x6364, 0x925C},
+ {0x6365, 0x925D},
+ {0x6366, 0x9260},
+ {0x6367, 0x9261},
+ {0x6368, 0x9265},
+ {0x6369, 0x9267},
+ {0x636A, 0x9268},
+ {0x636B, 0x9269},
+ {0x636C, 0x926E},
+ {0x636D, 0x926F},
+ {0x636E, 0x9270},
+ {0x636F, 0x9275},
+ {0x6370, 0x9276},
+ {0x6371, 0x9277},
+ {0x6372, 0x9278},
+ {0x6373, 0x9279},
+ {0x6374, 0x927B},
+ {0x6375, 0x927C},
+ {0x6376, 0x927D},
+ {0x6377, 0x927F},
+ {0x6378, 0x9288},
+ {0x6379, 0x9289},
+ {0x637A, 0x928A},
+ {0x637B, 0x928D},
+ {0x637C, 0x928E},
+ {0x637D, 0x9292},
+ {0x637E, 0x9297},
+ {0x6421, 0x9299},
+ {0x6422, 0x929F},
+ {0x6423, 0x92A0},
+ {0x6424, 0x92A4},
+ {0x6425, 0x92A5},
+ {0x6426, 0x92A7},
+ {0x6427, 0x92A8},
+ {0x6428, 0x92AB},
+ {0x6429, 0x92AF},
+ {0x642A, 0x92B2},
+ {0x642B, 0x92B6},
+ {0x642C, 0x92B8},
+ {0x642D, 0x92BA},
+ {0x642E, 0x92BB},
+ {0x642F, 0x92BC},
+ {0x6430, 0x92BD},
+ {0x6431, 0x92BF},
+ {0x6432, 0x92C0},
+ {0x6433, 0x92C1},
+ {0x6434, 0x92C2},
+ {0x6435, 0x92C3},
+ {0x6436, 0x92C5},
+ {0x6437, 0x92C6},
+ {0x6438, 0x92C7},
+ {0x6439, 0x92C8},
+ {0x643A, 0x92CB},
+ {0x643B, 0x92CC},
+ {0x643C, 0x92CD},
+ {0x643D, 0x92CE},
+ {0x643E, 0x92D0},
+ {0x643F, 0x92D3},
+ {0x6440, 0x92D5},
+ {0x6441, 0x92D7},
+ {0x6442, 0x92D8},
+ {0x6443, 0x92D9},
+ {0x6444, 0x92DC},
+ {0x6445, 0x92DD},
+ {0x6446, 0x92DF},
+ {0x6447, 0x92E0},
+ {0x6448, 0x92E1},
+ {0x6449, 0x92E3},
+ {0x644A, 0x92E5},
+ {0x644B, 0x92E7},
+ {0x644C, 0x92E8},
+ {0x644D, 0x92EC},
+ {0x644E, 0x92EE},
+ {0x644F, 0x92F0},
+ {0x6450, 0x92F9},
+ {0x6451, 0x92FB},
+ {0x6452, 0x92FF},
+ {0x6453, 0x9300},
+ {0x6454, 0x9302},
+ {0x6455, 0x9308},
+ {0x6456, 0x930D},
+ {0x6457, 0x9311},
+ {0x6458, 0x9314},
+ {0x6459, 0x9315},
+ {0x645A, 0x931C},
+ {0x645B, 0x931D},
+ {0x645C, 0x931E},
+ {0x645D, 0x931F},
+ {0x645E, 0x9321},
+ {0x645F, 0x9324},
+ {0x6460, 0x9325},
+ {0x6461, 0x9327},
+ {0x6462, 0x9329},
+ {0x6463, 0x932A},
+ {0x6464, 0x9333},
+ {0x6465, 0x9334},
+ {0x6466, 0x9336},
+ {0x6467, 0x9337},
+ {0x6468, 0x9347},
+ {0x6469, 0x9348},
+ {0x646A, 0x9349},
+ {0x646B, 0x9350},
+ {0x646C, 0x9351},
+ {0x646D, 0x9352},
+ {0x646E, 0x9355},
+ {0x646F, 0x9357},
+ {0x6470, 0x9358},
+ {0x6471, 0x935A},
+ {0x6472, 0x935E},
+ {0x6473, 0x9364},
+ {0x6474, 0x9365},
+ {0x6475, 0x9367},
+ {0x6476, 0x9369},
+ {0x6477, 0x936A},
+ {0x6478, 0x936D},
+ {0x6479, 0x936F},
+ {0x647A, 0x9370},
+ {0x647B, 0x9371},
+ {0x647C, 0x9373},
+ {0x647D, 0x9374},
+ {0x647E, 0x9376},
+ {0x6521, 0x937A},
+ {0x6522, 0x937D},
+ {0x6523, 0x937F},
+ {0x6524, 0x9380},
+ {0x6525, 0x9381},
+ {0x6526, 0x9382},
+ {0x6527, 0x9388},
+ {0x6528, 0x938A},
+ {0x6529, 0x938B},
+ {0x652A, 0x938D},
+ {0x652B, 0x938F},
+ {0x652C, 0x9392},
+ {0x652D, 0x9395},
+ {0x652E, 0x9398},
+ {0x652F, 0x939B},
+ {0x6530, 0x939E},
+ {0x6531, 0x93A1},
+ {0x6532, 0x93A3},
+ {0x6533, 0x93A4},
+ {0x6534, 0x93A6},
+ {0x6535, 0x93A8},
+ {0x6536, 0x93AB},
+ {0x6537, 0x93B4},
+ {0x6538, 0x93B5},
+ {0x6539, 0x93B6},
+ {0x653A, 0x93BA},
+ {0x653B, 0x93A9},
+ {0x653C, 0x93C1},
+ {0x653D, 0x93C4},
+ {0x653E, 0x93C5},
+ {0x653F, 0x93C6},
+ {0x6540, 0x93C7},
+ {0x6541, 0x93C9},
+ {0x6542, 0x93CA},
+ {0x6543, 0x93CB},
+ {0x6544, 0x93CC},
+ {0x6545, 0x93CD},
+ {0x6546, 0x93D3},
+ {0x6547, 0x93D9},
+ {0x6548, 0x93DC},
+ {0x6549, 0x93DE},
+ {0x654A, 0x93DF},
+ {0x654B, 0x93E2},
+ {0x654C, 0x93E6},
+ {0x654D, 0x93E7},
+ {0x654E, 0x93F9},
+ {0x654F, 0x93F7},
+ {0x6550, 0x93F8},
+ {0x6551, 0x93FA},
+ {0x6552, 0x93FB},
+ {0x6553, 0x93FD},
+ {0x6554, 0x9401},
+ {0x6555, 0x9402},
+ {0x6556, 0x9404},
+ {0x6557, 0x9408},
+ {0x6558, 0x9409},
+ {0x6559, 0x940D},
+ {0x655A, 0x940E},
+ {0x655B, 0x940F},
+ {0x655C, 0x9415},
+ {0x655D, 0x9416},
+ {0x655E, 0x9417},
+ {0x655F, 0x941F},
+ {0x6560, 0x942E},
+ {0x6561, 0x942F},
+ {0x6562, 0x9431},
+ {0x6563, 0x9432},
+ {0x6564, 0x9433},
+ {0x6565, 0x9434},
+ {0x6566, 0x943B},
+ {0x6567, 0x943F},
+ {0x6568, 0x943D},
+ {0x6569, 0x9443},
+ {0x656A, 0x9445},
+ {0x656B, 0x9448},
+ {0x656C, 0x944A},
+ {0x656D, 0x944C},
+ {0x656E, 0x9455},
+ {0x656F, 0x9459},
+ {0x6570, 0x945C},
+ {0x6571, 0x945F},
+ {0x6572, 0x9461},
+ {0x6573, 0x9463},
+ {0x6574, 0x9468},
+ {0x6575, 0x946B},
+ {0x6576, 0x946D},
+ {0x6577, 0x946E},
+ {0x6578, 0x946F},
+ {0x6579, 0x9471},
+ {0x657A, 0x9472},
+ {0x657B, 0x9484},
+ {0x657C, 0x9483},
+ {0x657D, 0x9578},
+ {0x657E, 0x9579},
+ {0x6621, 0x957E},
+ {0x6622, 0x9584},
+ {0x6623, 0x9588},
+ {0x6624, 0x958C},
+ {0x6625, 0x958D},
+ {0x6626, 0x958E},
+ {0x6627, 0x959D},
+ {0x6628, 0x959E},
+ {0x6629, 0x959F},
+ {0x662A, 0x95A1},
+ {0x662B, 0x95A6},
+ {0x662C, 0x95A9},
+ {0x662D, 0x95AB},
+ {0x662E, 0x95AC},
+ {0x662F, 0x95B4},
+ {0x6630, 0x95B6},
+ {0x6631, 0x95BA},
+ {0x6632, 0x95BD},
+ {0x6633, 0x95BF},
+ {0x6634, 0x95C6},
+ {0x6635, 0x95C8},
+ {0x6636, 0x95C9},
+ {0x6637, 0x95CB},
+ {0x6638, 0x95D0},
+ {0x6639, 0x95D1},
+ {0x663A, 0x95D2},
+ {0x663B, 0x95D3},
+ {0x663C, 0x95D9},
+ {0x663D, 0x95DA},
+ {0x663E, 0x95DD},
+ {0x663F, 0x95DE},
+ {0x6640, 0x95DF},
+ {0x6641, 0x95E0},
+ {0x6642, 0x95E4},
+ {0x6643, 0x95E6},
+ {0x6644, 0x961D},
+ {0x6645, 0x961E},
+ {0x6646, 0x9622},
+ {0x6647, 0x9624},
+ {0x6648, 0x9625},
+ {0x6649, 0x9626},
+ {0x664A, 0x962C},
+ {0x664B, 0x9631},
+ {0x664C, 0x9633},
+ {0x664D, 0x9637},
+ {0x664E, 0x9638},
+ {0x664F, 0x9639},
+ {0x6650, 0x963A},
+ {0x6651, 0x963C},
+ {0x6652, 0x963D},
+ {0x6653, 0x9641},
+ {0x6654, 0x9652},
+ {0x6655, 0x9654},
+ {0x6656, 0x9656},
+ {0x6657, 0x9657},
+ {0x6658, 0x9658},
+ {0x6659, 0x9661},
+ {0x665A, 0x966E},
+ {0x665B, 0x9674},
+ {0x665C, 0x967B},
+ {0x665D, 0x967C},
+ {0x665E, 0x967E},
+ {0x665F, 0x967F},
+ {0x6660, 0x9681},
+ {0x6661, 0x9682},
+ {0x6662, 0x9683},
+ {0x6663, 0x9684},
+ {0x6664, 0x9689},
+ {0x6665, 0x9691},
+ {0x6666, 0x9696},
+ {0x6667, 0x969A},
+ {0x6668, 0x969D},
+ {0x6669, 0x969F},
+ {0x666A, 0x96A4},
+ {0x666B, 0x96A5},
+ {0x666C, 0x96A6},
+ {0x666D, 0x96A9},
+ {0x666E, 0x96AE},
+ {0x666F, 0x96AF},
+ {0x6670, 0x96B3},
+ {0x6671, 0x96BA},
+ {0x6672, 0x96CA},
+ {0x6673, 0x96D2},
+ {0x6674, 0x5DB2},
+ {0x6675, 0x96D8},
+ {0x6676, 0x96DA},
+ {0x6677, 0x96DD},
+ {0x6678, 0x96DE},
+ {0x6679, 0x96DF},
+ {0x667A, 0x96E9},
+ {0x667B, 0x96EF},
+ {0x667C, 0x96F1},
+ {0x667D, 0x96FA},
+ {0x667E, 0x9702},
+ {0x6721, 0x9703},
+ {0x6722, 0x9705},
+ {0x6723, 0x9709},
+ {0x6724, 0x971A},
+ {0x6725, 0x971B},
+ {0x6726, 0x971D},
+ {0x6727, 0x9721},
+ {0x6728, 0x9722},
+ {0x6729, 0x9723},
+ {0x672A, 0x9728},
+ {0x672B, 0x9731},
+ {0x672C, 0x9733},
+ {0x672D, 0x9741},
+ {0x672E, 0x9743},
+ {0x672F, 0x974A},
+ {0x6730, 0x974E},
+ {0x6731, 0x974F},
+ {0x6732, 0x9755},
+ {0x6733, 0x9757},
+ {0x6734, 0x9758},
+ {0x6735, 0x975A},
+ {0x6736, 0x975B},
+ {0x6737, 0x9763},
+ {0x6738, 0x9767},
+ {0x6739, 0x976A},
+ {0x673A, 0x976E},
+ {0x673B, 0x9773},
+ {0x673C, 0x9776},
+ {0x673D, 0x9777},
+ {0x673E, 0x9778},
+ {0x673F, 0x977B},
+ {0x6740, 0x977D},
+ {0x6741, 0x977F},
+ {0x6742, 0x9780},
+ {0x6743, 0x9789},
+ {0x6744, 0x9795},
+ {0x6745, 0x9796},
+ {0x6746, 0x9797},
+ {0x6747, 0x9799},
+ {0x6748, 0x979A},
+ {0x6749, 0x979E},
+ {0x674A, 0x979F},
+ {0x674B, 0x97A2},
+ {0x674C, 0x97AC},
+ {0x674D, 0x97AE},
+ {0x674E, 0x97B1},
+ {0x674F, 0x97B2},
+ {0x6750, 0x97B5},
+ {0x6751, 0x97B6},
+ {0x6752, 0x97B8},
+ {0x6753, 0x97B9},
+ {0x6754, 0x97BA},
+ {0x6755, 0x97BC},
+ {0x6756, 0x97BE},
+ {0x6757, 0x97BF},
+ {0x6758, 0x97C1},
+ {0x6759, 0x97C4},
+ {0x675A, 0x97C5},
+ {0x675B, 0x97C7},
+ {0x675C, 0x97C9},
+ {0x675D, 0x97CA},
+ {0x675E, 0x97CC},
+ {0x675F, 0x97CD},
+ {0x6760, 0x97CE},
+ {0x6761, 0x97D0},
+ {0x6762, 0x97D1},
+ {0x6763, 0x97D4},
+ {0x6764, 0x97D7},
+ {0x6765, 0x97D8},
+ {0x6766, 0x97D9},
+ {0x6767, 0x97DD},
+ {0x6768, 0x97DE},
+ {0x6769, 0x97E0},
+ {0x676A, 0x97DB},
+ {0x676B, 0x97E1},
+ {0x676C, 0x97E4},
+ {0x676D, 0x97EF},
+ {0x676E, 0x97F1},
+ {0x676F, 0x97F4},
+ {0x6770, 0x97F7},
+ {0x6771, 0x97F8},
+ {0x6772, 0x97FA},
+ {0x6773, 0x9807},
+ {0x6774, 0x980A},
+ {0x6775, 0x9819},
+ {0x6776, 0x980D},
+ {0x6777, 0x980E},
+ {0x6778, 0x9814},
+ {0x6779, 0x9816},
+ {0x677A, 0x981C},
+ {0x677B, 0x981E},
+ {0x677C, 0x9820},
+ {0x677D, 0x9823},
+ {0x677E, 0x9826},
+ {0x6821, 0x982B},
+ {0x6822, 0x982E},
+ {0x6823, 0x982F},
+ {0x6824, 0x9830},
+ {0x6825, 0x9832},
+ {0x6826, 0x9833},
+ {0x6827, 0x9835},
+ {0x6828, 0x9825},
+ {0x6829, 0x983E},
+ {0x682A, 0x9844},
+ {0x682B, 0x9847},
+ {0x682C, 0x984A},
+ {0x682D, 0x9851},
+ {0x682E, 0x9852},
+ {0x682F, 0x9853},
+ {0x6830, 0x9856},
+ {0x6831, 0x9857},
+ {0x6832, 0x9859},
+ {0x6833, 0x985A},
+ {0x6834, 0x9862},
+ {0x6835, 0x9863},
+ {0x6836, 0x9865},
+ {0x6837, 0x9866},
+ {0x6838, 0x986A},
+ {0x6839, 0x986C},
+ {0x683A, 0x98AB},
+ {0x683B, 0x98AD},
+ {0x683C, 0x98AE},
+ {0x683D, 0x98B0},
+ {0x683E, 0x98B4},
+ {0x683F, 0x98B7},
+ {0x6840, 0x98B8},
+ {0x6841, 0x98BA},
+ {0x6842, 0x98BB},
+ {0x6843, 0x98BF},
+ {0x6844, 0x98C2},
+ {0x6845, 0x98C5},
+ {0x6846, 0x98C8},
+ {0x6847, 0x98CC},
+ {0x6848, 0x98E1},
+ {0x6849, 0x98E3},
+ {0x684A, 0x98E5},
+ {0x684B, 0x98E6},
+ {0x684C, 0x98E7},
+ {0x684D, 0x98EA},
+ {0x684E, 0x98F3},
+ {0x684F, 0x98F6},
+ {0x6850, 0x9902},
+ {0x6851, 0x9907},
+ {0x6852, 0x9908},
+ {0x6853, 0x9911},
+ {0x6854, 0x9915},
+ {0x6855, 0x9916},
+ {0x6856, 0x9917},
+ {0x6857, 0x991A},
+ {0x6858, 0x991B},
+ {0x6859, 0x991C},
+ {0x685A, 0x991F},
+ {0x685B, 0x9922},
+ {0x685C, 0x9926},
+ {0x685D, 0x9927},
+ {0x685E, 0x992B},
+ {0x685F, 0x9931},
+ {0x6860, 0x9932},
+ {0x6861, 0x9933},
+ {0x6862, 0x9934},
+ {0x6863, 0x9935},
+ {0x6864, 0x9939},
+ {0x6865, 0x993A},
+ {0x6866, 0x993B},
+ {0x6867, 0x993C},
+ {0x6868, 0x9940},
+ {0x6869, 0x9941},
+ {0x686A, 0x9946},
+ {0x686B, 0x9947},
+ {0x686C, 0x9948},
+ {0x686D, 0x994D},
+ {0x686E, 0x994E},
+ {0x686F, 0x9954},
+ {0x6870, 0x9958},
+ {0x6871, 0x9959},
+ {0x6872, 0x995B},
+ {0x6873, 0x995C},
+ {0x6874, 0x995E},
+ {0x6875, 0x995F},
+ {0x6876, 0x9960},
+ {0x6877, 0x999B},
+ {0x6878, 0x999D},
+ {0x6879, 0x999F},
+ {0x687A, 0x99A6},
+ {0x687B, 0x99B0},
+ {0x687C, 0x99B1},
+ {0x687D, 0x99B2},
+ {0x687E, 0x99B5},
+ {0x6921, 0x99B9},
+ {0x6922, 0x99BA},
+ {0x6923, 0x99BD},
+ {0x6924, 0x99BF},
+ {0x6925, 0x99C3},
+ {0x6926, 0x99C9},
+ {0x6927, 0x99D3},
+ {0x6928, 0x99D4},
+ {0x6929, 0x99D9},
+ {0x692A, 0x99DA},
+ {0x692B, 0x99DC},
+ {0x692C, 0x99DE},
+ {0x692D, 0x99E7},
+ {0x692E, 0x99EA},
+ {0x692F, 0x99EB},
+ {0x6930, 0x99EC},
+ {0x6931, 0x99F0},
+ {0x6932, 0x99F4},
+ {0x6933, 0x99F5},
+ {0x6934, 0x99F9},
+ {0x6935, 0x99FD},
+ {0x6936, 0x99FE},
+ {0x6937, 0x9A02},
+ {0x6938, 0x9A03},
+ {0x6939, 0x9A04},
+ {0x693A, 0x9A0B},
+ {0x693B, 0x9A0C},
+ {0x693C, 0x9A10},
+ {0x693D, 0x9A11},
+ {0x693E, 0x9A16},
+ {0x693F, 0x9A1E},
+ {0x6940, 0x9A20},
+ {0x6941, 0x9A22},
+ {0x6942, 0x9A23},
+ {0x6943, 0x9A24},
+ {0x6944, 0x9A27},
+ {0x6945, 0x9A2D},
+ {0x6946, 0x9A2E},
+ {0x6947, 0x9A33},
+ {0x6948, 0x9A35},
+ {0x6949, 0x9A36},
+ {0x694A, 0x9A38},
+ {0x694B, 0x9A47},
+ {0x694C, 0x9A41},
+ {0x694D, 0x9A44},
+ {0x694E, 0x9A4A},
+ {0x694F, 0x9A4B},
+ {0x6950, 0x9A4C},
+ {0x6951, 0x9A4E},
+ {0x6952, 0x9A51},
+ {0x6953, 0x9A54},
+ {0x6954, 0x9A56},
+ {0x6955, 0x9A5D},
+ {0x6956, 0x9AAA},
+ {0x6957, 0x9AAC},
+ {0x6958, 0x9AAE},
+ {0x6959, 0x9AAF},
+ {0x695A, 0x9AB2},
+ {0x695B, 0x9AB4},
+ {0x695C, 0x9AB5},
+ {0x695D, 0x9AB6},
+ {0x695E, 0x9AB9},
+ {0x695F, 0x9ABB},
+ {0x6960, 0x9ABE},
+ {0x6961, 0x9ABF},
+ {0x6962, 0x9AC1},
+ {0x6963, 0x9AC3},
+ {0x6964, 0x9AC6},
+ {0x6965, 0x9AC8},
+ {0x6966, 0x9ACE},
+ {0x6967, 0x9AD0},
+ {0x6968, 0x9AD2},
+ {0x6969, 0x9AD5},
+ {0x696A, 0x9AD6},
+ {0x696B, 0x9AD7},
+ {0x696C, 0x9ADB},
+ {0x696D, 0x9ADC},
+ {0x696E, 0x9AE0},
+ {0x696F, 0x9AE4},
+ {0x6970, 0x9AE5},
+ {0x6971, 0x9AE7},
+ {0x6972, 0x9AE9},
+ {0x6973, 0x9AEC},
+ {0x6974, 0x9AF2},
+ {0x6975, 0x9AF3},
+ {0x6976, 0x9AF5},
+ {0x6977, 0x9AF9},
+ {0x6978, 0x9AFA},
+ {0x6979, 0x9AFD},
+ {0x697A, 0x9AFF},
+ {0x697B, 0x9B00},
+ {0x697C, 0x9B01},
+ {0x697D, 0x9B02},
+ {0x697E, 0x9B03},
+ {0x6A21, 0x9B04},
+ {0x6A22, 0x9B05},
+ {0x6A23, 0x9B08},
+ {0x6A24, 0x9B09},
+ {0x6A25, 0x9B0B},
+ {0x6A26, 0x9B0C},
+ {0x6A27, 0x9B0D},
+ {0x6A28, 0x9B0E},
+ {0x6A29, 0x9B10},
+ {0x6A2A, 0x9B12},
+ {0x6A2B, 0x9B16},
+ {0x6A2C, 0x9B19},
+ {0x6A2D, 0x9B1B},
+ {0x6A2E, 0x9B1C},
+ {0x6A2F, 0x9B20},
+ {0x6A30, 0x9B26},
+ {0x6A31, 0x9B2B},
+ {0x6A32, 0x9B2D},
+ {0x6A33, 0x9B33},
+ {0x6A34, 0x9B34},
+ {0x6A35, 0x9B35},
+ {0x6A36, 0x9B37},
+ {0x6A37, 0x9B39},
+ {0x6A38, 0x9B3A},
+ {0x6A39, 0x9B3D},
+ {0x6A3A, 0x9B48},
+ {0x6A3B, 0x9B4B},
+ {0x6A3C, 0x9B4C},
+ {0x6A3D, 0x9B55},
+ {0x6A3E, 0x9B56},
+ {0x6A3F, 0x9B57},
+ {0x6A40, 0x9B5B},
+ {0x6A41, 0x9B5E},
+ {0x6A42, 0x9B61},
+ {0x6A43, 0x9B63},
+ {0x6A44, 0x9B65},
+ {0x6A45, 0x9B66},
+ {0x6A46, 0x9B68},
+ {0x6A47, 0x9B6A},
+ {0x6A48, 0x9B6B},
+ {0x6A49, 0x9B6C},
+ {0x6A4A, 0x9B6D},
+ {0x6A4B, 0x9B6E},
+ {0x6A4C, 0x9B73},
+ {0x6A4D, 0x9B75},
+ {0x6A4E, 0x9B77},
+ {0x6A4F, 0x9B78},
+ {0x6A50, 0x9B79},
+ {0x6A51, 0x9B7F},
+ {0x6A52, 0x9B80},
+ {0x6A53, 0x9B84},
+ {0x6A54, 0x9B85},
+ {0x6A55, 0x9B86},
+ {0x6A56, 0x9B87},
+ {0x6A57, 0x9B89},
+ {0x6A58, 0x9B8A},
+ {0x6A59, 0x9B8B},
+ {0x6A5A, 0x9B8D},
+ {0x6A5B, 0x9B8F},
+ {0x6A5C, 0x9B90},
+ {0x6A5D, 0x9B94},
+ {0x6A5E, 0x9B9A},
+ {0x6A5F, 0x9B9D},
+ {0x6A60, 0x9B9E},
+ {0x6A61, 0x9BA6},
+ {0x6A62, 0x9BA7},
+ {0x6A63, 0x9BA9},
+ {0x6A64, 0x9BAC},
+ {0x6A65, 0x9BB0},
+ {0x6A66, 0x9BB1},
+ {0x6A67, 0x9BB2},
+ {0x6A68, 0x9BB7},
+ {0x6A69, 0x9BB8},
+ {0x6A6A, 0x9BBB},
+ {0x6A6B, 0x9BBC},
+ {0x6A6C, 0x9BBE},
+ {0x6A6D, 0x9BBF},
+ {0x6A6E, 0x9BC1},
+ {0x6A6F, 0x9BC7},
+ {0x6A70, 0x9BC8},
+ {0x6A71, 0x9BCE},
+ {0x6A72, 0x9BD0},
+ {0x6A73, 0x9BD7},
+ {0x6A74, 0x9BD8},
+ {0x6A75, 0x9BDD},
+ {0x6A76, 0x9BDF},
+ {0x6A77, 0x9BE5},
+ {0x6A78, 0x9BE7},
+ {0x6A79, 0x9BEA},
+ {0x6A7A, 0x9BEB},
+ {0x6A7B, 0x9BEF},
+ {0x6A7C, 0x9BF3},
+ {0x6A7D, 0x9BF7},
+ {0x6A7E, 0x9BF8},
+ {0x6B21, 0x9BF9},
+ {0x6B22, 0x9BFA},
+ {0x6B23, 0x9BFD},
+ {0x6B24, 0x9BFF},
+ {0x6B25, 0x9C00},
+ {0x6B26, 0x9C02},
+ {0x6B27, 0x9C0B},
+ {0x6B28, 0x9C0F},
+ {0x6B29, 0x9C11},
+ {0x6B2A, 0x9C16},
+ {0x6B2B, 0x9C18},
+ {0x6B2C, 0x9C19},
+ {0x6B2D, 0x9C1A},
+ {0x6B2E, 0x9C1C},
+ {0x6B2F, 0x9C1E},
+ {0x6B30, 0x9C22},
+ {0x6B31, 0x9C23},
+ {0x6B32, 0x9C26},
+ {0x6B33, 0x9C27},
+ {0x6B34, 0x9C28},
+ {0x6B35, 0x9C29},
+ {0x6B36, 0x9C2A},
+ {0x6B37, 0x9C31},
+ {0x6B38, 0x9C35},
+ {0x6B39, 0x9C36},
+ {0x6B3A, 0x9C37},
+ {0x6B3B, 0x9C3D},
+ {0x6B3C, 0x9C41},
+ {0x6B3D, 0x9C43},
+ {0x6B3E, 0x9C44},
+ {0x6B3F, 0x9C45},
+ {0x6B40, 0x9C49},
+ {0x6B41, 0x9C4A},
+ {0x6B42, 0x9C4E},
+ {0x6B43, 0x9C4F},
+ {0x6B44, 0x9C50},
+ {0x6B45, 0x9C53},
+ {0x6B46, 0x9C54},
+ {0x6B47, 0x9C56},
+ {0x6B48, 0x9C58},
+ {0x6B49, 0x9C5B},
+ {0x6B4A, 0x9C5D},
+ {0x6B4B, 0x9C5E},
+ {0x6B4C, 0x9C5F},
+ {0x6B4D, 0x9C63},
+ {0x6B4E, 0x9C69},
+ {0x6B4F, 0x9C6A},
+ {0x6B50, 0x9C5C},
+ {0x6B51, 0x9C6B},
+ {0x6B52, 0x9C68},
+ {0x6B53, 0x9C6E},
+ {0x6B54, 0x9C70},
+ {0x6B55, 0x9C72},
+ {0x6B56, 0x9C75},
+ {0x6B57, 0x9C77},
+ {0x6B58, 0x9C7B},
+ {0x6B59, 0x9CE6},
+ {0x6B5A, 0x9CF2},
+ {0x6B5B, 0x9CF7},
+ {0x6B5C, 0x9CF9},
+ {0x6B5D, 0x9D0B},
+ {0x6B5E, 0x9D02},
+ {0x6B5F, 0x9D11},
+ {0x6B60, 0x9D17},
+ {0x6B61, 0x9D18},
+ {0x6B62, 0x9D1C},
+ {0x6B63, 0x9D1D},
+ {0x6B64, 0x9D1E},
+ {0x6B65, 0x9D2F},
+ {0x6B66, 0x9D30},
+ {0x6B67, 0x9D32},
+ {0x6B68, 0x9D33},
+ {0x6B69, 0x9D34},
+ {0x6B6A, 0x9D3A},
+ {0x6B6B, 0x9D3C},
+ {0x6B6C, 0x9D45},
+ {0x6B6D, 0x9D3D},
+ {0x6B6E, 0x9D42},
+ {0x6B6F, 0x9D43},
+ {0x6B70, 0x9D47},
+ {0x6B71, 0x9D4A},
+ {0x6B72, 0x9D53},
+ {0x6B73, 0x9D54},
+ {0x6B74, 0x9D5F},
+ {0x6B75, 0x9D63},
+ {0x6B76, 0x9D62},
+ {0x6B77, 0x9D65},
+ {0x6B78, 0x9D69},
+ {0x6B79, 0x9D6A},
+ {0x6B7A, 0x9D6B},
+ {0x6B7B, 0x9D70},
+ {0x6B7C, 0x9D76},
+ {0x6B7D, 0x9D77},
+ {0x6B7E, 0x9D7B},
+ {0x6C21, 0x9D7C},
+ {0x6C22, 0x9D7E},
+ {0x6C23, 0x9D83},
+ {0x6C24, 0x9D84},
+ {0x6C25, 0x9D86},
+ {0x6C26, 0x9D8A},
+ {0x6C27, 0x9D8D},
+ {0x6C28, 0x9D8E},
+ {0x6C29, 0x9D92},
+ {0x6C2A, 0x9D93},
+ {0x6C2B, 0x9D95},
+ {0x6C2C, 0x9D96},
+ {0x6C2D, 0x9D97},
+ {0x6C2E, 0x9D98},
+ {0x6C2F, 0x9DA1},
+ {0x6C30, 0x9DAA},
+ {0x6C31, 0x9DAC},
+ {0x6C32, 0x9DAE},
+ {0x6C33, 0x9DB1},
+ {0x6C34, 0x9DB5},
+ {0x6C35, 0x9DB9},
+ {0x6C36, 0x9DBC},
+ {0x6C37, 0x9DBF},
+ {0x6C38, 0x9DC3},
+ {0x6C39, 0x9DC7},
+ {0x6C3A, 0x9DC9},
+ {0x6C3B, 0x9DCA},
+ {0x6C3C, 0x9DD4},
+ {0x6C3D, 0x9DD5},
+ {0x6C3E, 0x9DD6},
+ {0x6C3F, 0x9DD7},
+ {0x6C40, 0x9DDA},
+ {0x6C41, 0x9DDE},
+ {0x6C42, 0x9DDF},
+ {0x6C43, 0x9DE0},
+ {0x6C44, 0x9DE5},
+ {0x6C45, 0x9DE7},
+ {0x6C46, 0x9DE9},
+ {0x6C47, 0x9DEB},
+ {0x6C48, 0x9DEE},
+ {0x6C49, 0x9DF0},
+ {0x6C4A, 0x9DF3},
+ {0x6C4B, 0x9DF4},
+ {0x6C4C, 0x9DFE},
+ {0x6C4D, 0x9E0A},
+ {0x6C4E, 0x9E02},
+ {0x6C4F, 0x9E07},
+ {0x6C50, 0x9E0E},
+ {0x6C51, 0x9E10},
+ {0x6C52, 0x9E11},
+ {0x6C53, 0x9E12},
+ {0x6C54, 0x9E15},
+ {0x6C55, 0x9E16},
+ {0x6C56, 0x9E19},
+ {0x6C57, 0x9E1C},
+ {0x6C58, 0x9E1D},
+ {0x6C59, 0x9E7A},
+ {0x6C5A, 0x9E7B},
+ {0x6C5B, 0x9E7C},
+ {0x6C5C, 0x9E80},
+ {0x6C5D, 0x9E82},
+ {0x6C5E, 0x9E83},
+ {0x6C5F, 0x9E84},
+ {0x6C60, 0x9E85},
+ {0x6C61, 0x9E87},
+ {0x6C62, 0x9E8E},
+ {0x6C63, 0x9E8F},
+ {0x6C64, 0x9E96},
+ {0x6C65, 0x9E98},
+ {0x6C66, 0x9E9B},
+ {0x6C67, 0x9E9E},
+ {0x6C68, 0x9EA4},
+ {0x6C69, 0x9EA8},
+ {0x6C6A, 0x9EAC},
+ {0x6C6B, 0x9EAE},
+ {0x6C6C, 0x9EAF},
+ {0x6C6D, 0x9EB0},
+ {0x6C6E, 0x9EB3},
+ {0x6C6F, 0x9EB4},
+ {0x6C70, 0x9EB5},
+ {0x6C71, 0x9EC6},
+ {0x6C72, 0x9EC8},
+ {0x6C73, 0x9ECB},
+ {0x6C74, 0x9ED5},
+ {0x6C75, 0x9EDF},
+ {0x6C76, 0x9EE4},
+ {0x6C77, 0x9EE7},
+ {0x6C78, 0x9EEC},
+ {0x6C79, 0x9EED},
+ {0x6C7A, 0x9EEE},
+ {0x6C7B, 0x9EF0},
+ {0x6C7C, 0x9EF1},
+ {0x6C7D, 0x9EF2},
+ {0x6C7E, 0x9EF5},
+ {0x6D21, 0x9EF8},
+ {0x6D22, 0x9EFF},
+ {0x6D23, 0x9F02},
+ {0x6D24, 0x9F03},
+ {0x6D25, 0x9F09},
+ {0x6D26, 0x9F0F},
+ {0x6D27, 0x9F10},
+ {0x6D28, 0x9F11},
+ {0x6D29, 0x9F12},
+ {0x6D2A, 0x9F14},
+ {0x6D2B, 0x9F16},
+ {0x6D2C, 0x9F17},
+ {0x6D2D, 0x9F19},
+ {0x6D2E, 0x9F1A},
+ {0x6D2F, 0x9F1B},
+ {0x6D30, 0x9F1F},
+ {0x6D31, 0x9F22},
+ {0x6D32, 0x9F26},
+ {0x6D33, 0x9F2A},
+ {0x6D34, 0x9F2B},
+ {0x6D35, 0x9F2F},
+ {0x6D36, 0x9F31},
+ {0x6D37, 0x9F32},
+ {0x6D38, 0x9F34},
+ {0x6D39, 0x9F37},
+ {0x6D3A, 0x9F39},
+ {0x6D3B, 0x9F3A},
+ {0x6D3C, 0x9F3C},
+ {0x6D3D, 0x9F3D},
+ {0x6D3E, 0x9F3F},
+ {0x6D3F, 0x9F41},
+ {0x6D40, 0x9F43},
+ {0x6D41, 0x9F44},
+ {0x6D42, 0x9F45},
+ {0x6D43, 0x9F46},
+ {0x6D44, 0x9F47},
+ {0x6D45, 0x9F53},
+ {0x6D46, 0x9F55},
+ {0x6D47, 0x9F56},
+ {0x6D48, 0x9F57},
+ {0x6D49, 0x9F58},
+ {0x6D4A, 0x9F5A},
+ {0x6D4B, 0x9F5D},
+ {0x6D4C, 0x9F5E},
+ {0x6D4D, 0x9F68},
+ {0x6D4E, 0x9F69},
+ {0x6D4F, 0x9F6D},
+ {0x6D50, 0x9F6E},
+ {0x6D51, 0x9F6F},
+ {0x6D52, 0x9F70},
+ {0x6D53, 0x9F71},
+ {0x6D54, 0x9F73},
+ {0x6D55, 0x9F75},
+ {0x6D56, 0x9F7A},
+ {0x6D57, 0x9F7D},
+ {0x6D58, 0x9F8F},
+ {0x6D59, 0x9F90},
+ {0x6D5A, 0x9F91},
+ {0x6D5B, 0x9F92},
+ {0x6D5C, 0x9F94},
+ {0x6D5D, 0x9F96},
+ {0x6D5E, 0x9F97},
+ {0x6D5F, 0x9F9E},
+ {0x6D60, 0x9FA1},
+ {0x6D61, 0x9FA2},
+ {0x6D62, 0x9FA3},
+ {0x6D63, 0x9FA5},
diff --git a/vte/src/unitable.KSX1001 b/vte/src/unitable.KSX1001
new file mode 100644
index 0000000..d5ce3e3
--- /dev/null
+++ b/vte/src/unitable.KSX1001
@@ -0,0 +1,8227 @@
+ /* generated file -- do not edit */
+ {0x2121, 0x3000},
+ {0x2122, 0x3001},
+ {0x2123, 0x3002},
+ {0x2124, 0x00B7},
+ {0x2125, 0x2025},
+ {0x2126, 0x2026},
+ {0x2127, 0x00A8},
+ {0x2128, 0x3003},
+ {0x2129, 0x00AD},
+ {0x212A, 0x2015},
+ {0x212B, 0x2225},
+ {0x212C, 0xFF3C},
+ {0x212D, 0x223C},
+ {0x212E, 0x2018},
+ {0x212F, 0x2019},
+ {0x2130, 0x201C},
+ {0x2131, 0x201D},
+ {0x2132, 0x3014},
+ {0x2133, 0x3015},
+ {0x2134, 0x3008},
+ {0x2135, 0x3009},
+ {0x2136, 0x300A},
+ {0x2137, 0x300B},
+ {0x2138, 0x300C},
+ {0x2139, 0x300D},
+ {0x213A, 0x300E},
+ {0x213B, 0x300F},
+ {0x213C, 0x3010},
+ {0x213D, 0x3011},
+ {0x213E, 0x00B1},
+ {0x213F, 0x00D7},
+ {0x2140, 0x00F7},
+ {0x2141, 0x2260},
+ {0x2142, 0x2264},
+ {0x2143, 0x2265},
+ {0x2144, 0x221E},
+ {0x2145, 0x2234},
+ {0x2146, 0x00B0},
+ {0x2147, 0x2032},
+ {0x2148, 0x2033},
+ {0x2149, 0x2103},
+ {0x214A, 0x212B},
+ {0x214B, 0xFFE0},
+ {0x214C, 0xFFE1},
+ {0x214D, 0xFFE5},
+ {0x214E, 0x2642},
+ {0x214F, 0x2640},
+ {0x2150, 0x2220},
+ {0x2151, 0x22A5},
+ {0x2152, 0x2312},
+ {0x2153, 0x2202},
+ {0x2154, 0x2207},
+ {0x2155, 0x2261},
+ {0x2156, 0x2252},
+ {0x2157, 0x00A7},
+ {0x2158, 0x203B},
+ {0x2159, 0x2606},
+ {0x215A, 0x2605},
+ {0x215B, 0x25CB},
+ {0x215C, 0x25CF},
+ {0x215D, 0x25CE},
+ {0x215E, 0x25C7},
+ {0x215F, 0x25C6},
+ {0x2160, 0x25A1},
+ {0x2161, 0x25A0},
+ {0x2162, 0x25B3},
+ {0x2163, 0x25B2},
+ {0x2164, 0x25BD},
+ {0x2165, 0x25BC},
+ {0x2166, 0x2192},
+ {0x2167, 0x2190},
+ {0x2168, 0x2191},
+ {0x2169, 0x2193},
+ {0x216A, 0x2194},
+ {0x216B, 0x3013},
+ {0x216C, 0x226A},
+ {0x216D, 0x226B},
+ {0x216E, 0x221A},
+ {0x216F, 0x223D},
+ {0x2170, 0x221D},
+ {0x2171, 0x2235},
+ {0x2172, 0x222B},
+ {0x2173, 0x222C},
+ {0x2174, 0x2208},
+ {0x2175, 0x220B},
+ {0x2176, 0x2286},
+ {0x2177, 0x2287},
+ {0x2178, 0x2282},
+ {0x2179, 0x2283},
+ {0x217A, 0x222A},
+ {0x217B, 0x2229},
+ {0x217C, 0x2227},
+ {0x217D, 0x2228},
+ {0x217E, 0xFFE2},
+ {0x2221, 0x21D2},
+ {0x2222, 0x21D4},
+ {0x2223, 0x2200},
+ {0x2224, 0x2203},
+ {0x2225, 0x00B4},
+ {0x2226, 0xFF5E},
+ {0x2227, 0x02C7},
+ {0x2228, 0x02D8},
+ {0x2229, 0x02DD},
+ {0x222A, 0x02DA},
+ {0x222B, 0x02D9},
+ {0x222C, 0x00B8},
+ {0x222D, 0x02DB},
+ {0x222E, 0x00A1},
+ {0x222F, 0x00BF},
+ {0x2230, 0x02D0},
+ {0x2231, 0x222E},
+ {0x2232, 0x2211},
+ {0x2233, 0x220F},
+ {0x2234, 0x00A4},
+ {0x2235, 0x2109},
+ {0x2236, 0x2030},
+ {0x2237, 0x25C1},
+ {0x2238, 0x25C0},
+ {0x2239, 0x25B7},
+ {0x223A, 0x25B6},
+ {0x223B, 0x2664},
+ {0x223C, 0x2660},
+ {0x223D, 0x2661},
+ {0x223E, 0x2665},
+ {0x223F, 0x2667},
+ {0x2240, 0x2663},
+ {0x2241, 0x2299},
+ {0x2242, 0x25C8},
+ {0x2243, 0x25A3},
+ {0x2244, 0x25D0},
+ {0x2245, 0x25D1},
+ {0x2246, 0x2592},
+ {0x2247, 0x25A4},
+ {0x2248, 0x25A5},
+ {0x2249, 0x25A8},
+ {0x224A, 0x25A7},
+ {0x224B, 0x25A6},
+ {0x224C, 0x25A9},
+ {0x224D, 0x2668},
+ {0x224E, 0x260F},
+ {0x224F, 0x260E},
+ {0x2250, 0x261C},
+ {0x2251, 0x261E},
+ {0x2252, 0x00B6},
+ {0x2253, 0x2020},
+ {0x2254, 0x2021},
+ {0x2255, 0x2195},
+ {0x2256, 0x2197},
+ {0x2257, 0x2199},
+ {0x2258, 0x2196},
+ {0x2259, 0x2198},
+ {0x225A, 0x266D},
+ {0x225B, 0x2669},
+ {0x225C, 0x266A},
+ {0x225D, 0x266C},
+ {0x225E, 0x327F},
+ {0x225F, 0x321C},
+ {0x2260, 0x2116},
+ {0x2261, 0x33C7},
+ {0x2262, 0x2122},
+ {0x2263, 0x33C2},
+ {0x2264, 0x33D8},
+ {0x2265, 0x2121},
+ {0x2321, 0xFF01},
+ {0x2322, 0xFF02},
+ {0x2323, 0xFF03},
+ {0x2324, 0xFF04},
+ {0x2325, 0xFF05},
+ {0x2326, 0xFF06},
+ {0x2327, 0xFF07},
+ {0x2328, 0xFF08},
+ {0x2329, 0xFF09},
+ {0x232A, 0xFF0A},
+ {0x232B, 0xFF0B},
+ {0x232C, 0xFF0C},
+ {0x232D, 0xFF0D},
+ {0x232E, 0xFF0E},
+ {0x232F, 0xFF0F},
+ {0x2330, 0xFF10},
+ {0x2331, 0xFF11},
+ {0x2332, 0xFF12},
+ {0x2333, 0xFF13},
+ {0x2334, 0xFF14},
+ {0x2335, 0xFF15},
+ {0x2336, 0xFF16},
+ {0x2337, 0xFF17},
+ {0x2338, 0xFF18},
+ {0x2339, 0xFF19},
+ {0x233A, 0xFF1A},
+ {0x233B, 0xFF1B},
+ {0x233C, 0xFF1C},
+ {0x233D, 0xFF1D},
+ {0x233E, 0xFF1E},
+ {0x233F, 0xFF1F},
+ {0x2340, 0xFF20},
+ {0x2341, 0xFF21},
+ {0x2342, 0xFF22},
+ {0x2343, 0xFF23},
+ {0x2344, 0xFF24},
+ {0x2345, 0xFF25},
+ {0x2346, 0xFF26},
+ {0x2347, 0xFF27},
+ {0x2348, 0xFF28},
+ {0x2349, 0xFF29},
+ {0x234A, 0xFF2A},
+ {0x234B, 0xFF2B},
+ {0x234C, 0xFF2C},
+ {0x234D, 0xFF2D},
+ {0x234E, 0xFF2E},
+ {0x234F, 0xFF2F},
+ {0x2350, 0xFF30},
+ {0x2351, 0xFF31},
+ {0x2352, 0xFF32},
+ {0x2353, 0xFF33},
+ {0x2354, 0xFF34},
+ {0x2355, 0xFF35},
+ {0x2356, 0xFF36},
+ {0x2357, 0xFF37},
+ {0x2358, 0xFF38},
+ {0x2359, 0xFF39},
+ {0x235A, 0xFF3A},
+ {0x235B, 0xFF3B},
+ {0x235C, 0xFFE6},
+ {0x235D, 0xFF3D},
+ {0x235E, 0xFF3E},
+ {0x235F, 0xFF3F},
+ {0x2360, 0xFF40},
+ {0x2361, 0xFF41},
+ {0x2362, 0xFF42},
+ {0x2363, 0xFF43},
+ {0x2364, 0xFF44},
+ {0x2365, 0xFF45},
+ {0x2366, 0xFF46},
+ {0x2367, 0xFF47},
+ {0x2368, 0xFF48},
+ {0x2369, 0xFF49},
+ {0x236A, 0xFF4A},
+ {0x236B, 0xFF4B},
+ {0x236C, 0xFF4C},
+ {0x236D, 0xFF4D},
+ {0x236E, 0xFF4E},
+ {0x236F, 0xFF4F},
+ {0x2370, 0xFF50},
+ {0x2371, 0xFF51},
+ {0x2372, 0xFF52},
+ {0x2373, 0xFF53},
+ {0x2374, 0xFF54},
+ {0x2375, 0xFF55},
+ {0x2376, 0xFF56},
+ {0x2377, 0xFF57},
+ {0x2378, 0xFF58},
+ {0x2379, 0xFF59},
+ {0x237A, 0xFF5A},
+ {0x237B, 0xFF5B},
+ {0x237C, 0xFF5C},
+ {0x237D, 0xFF5D},
+ {0x237E, 0xFFE3},
+ {0x2421, 0x3131},
+ {0x2422, 0x3132},
+ {0x2423, 0x3133},
+ {0x2424, 0x3134},
+ {0x2425, 0x3135},
+ {0x2426, 0x3136},
+ {0x2427, 0x3137},
+ {0x2428, 0x3138},
+ {0x2429, 0x3139},
+ {0x242A, 0x313A},
+ {0x242B, 0x313B},
+ {0x242C, 0x313C},
+ {0x242D, 0x313D},
+ {0x242E, 0x313E},
+ {0x242F, 0x313F},
+ {0x2430, 0x3140},
+ {0x2431, 0x3141},
+ {0x2432, 0x3142},
+ {0x2433, 0x3143},
+ {0x2434, 0x3144},
+ {0x2435, 0x3145},
+ {0x2436, 0x3146},
+ {0x2437, 0x3147},
+ {0x2438, 0x3148},
+ {0x2439, 0x3149},
+ {0x243A, 0x314A},
+ {0x243B, 0x314B},
+ {0x243C, 0x314C},
+ {0x243D, 0x314D},
+ {0x243E, 0x314E},
+ {0x243F, 0x314F},
+ {0x2440, 0x3150},
+ {0x2441, 0x3151},
+ {0x2442, 0x3152},
+ {0x2443, 0x3153},
+ {0x2444, 0x3154},
+ {0x2445, 0x3155},
+ {0x2446, 0x3156},
+ {0x2447, 0x3157},
+ {0x2448, 0x3158},
+ {0x2449, 0x3159},
+ {0x244A, 0x315A},
+ {0x244B, 0x315B},
+ {0x244C, 0x315C},
+ {0x244D, 0x315D},
+ {0x244E, 0x315E},
+ {0x244F, 0x315F},
+ {0x2450, 0x3160},
+ {0x2451, 0x3161},
+ {0x2452, 0x3162},
+ {0x2453, 0x3163},
+ {0x2454, 0x3164},
+ {0x2455, 0x3165},
+ {0x2456, 0x3166},
+ {0x2457, 0x3167},
+ {0x2458, 0x3168},
+ {0x2459, 0x3169},
+ {0x245A, 0x316A},
+ {0x245B, 0x316B},
+ {0x245C, 0x316C},
+ {0x245D, 0x316D},
+ {0x245E, 0x316E},
+ {0x245F, 0x316F},
+ {0x2460, 0x3170},
+ {0x2461, 0x3171},
+ {0x2462, 0x3172},
+ {0x2463, 0x3173},
+ {0x2464, 0x3174},
+ {0x2465, 0x3175},
+ {0x2466, 0x3176},
+ {0x2467, 0x3177},
+ {0x2468, 0x3178},
+ {0x2469, 0x3179},
+ {0x246A, 0x317A},
+ {0x246B, 0x317B},
+ {0x246C, 0x317C},
+ {0x246D, 0x317D},
+ {0x246E, 0x317E},
+ {0x246F, 0x317F},
+ {0x2470, 0x3180},
+ {0x2471, 0x3181},
+ {0x2472, 0x3182},
+ {0x2473, 0x3183},
+ {0x2474, 0x3184},
+ {0x2475, 0x3185},
+ {0x2476, 0x3186},
+ {0x2477, 0x3187},
+ {0x2478, 0x3188},
+ {0x2479, 0x3189},
+ {0x247A, 0x318A},
+ {0x247B, 0x318B},
+ {0x247C, 0x318C},
+ {0x247D, 0x318D},
+ {0x247E, 0x318E},
+ {0x2521, 0x2170},
+ {0x2522, 0x2171},
+ {0x2523, 0x2172},
+ {0x2524, 0x2173},
+ {0x2525, 0x2174},
+ {0x2526, 0x2175},
+ {0x2527, 0x2176},
+ {0x2528, 0x2177},
+ {0x2529, 0x2178},
+ {0x252A, 0x2179},
+ {0x2530, 0x2160},
+ {0x2531, 0x2161},
+ {0x2532, 0x2162},
+ {0x2533, 0x2163},
+ {0x2534, 0x2164},
+ {0x2535, 0x2165},
+ {0x2536, 0x2166},
+ {0x2537, 0x2167},
+ {0x2538, 0x2168},
+ {0x2539, 0x2169},
+ {0x2541, 0x0391},
+ {0x2542, 0x0392},
+ {0x2543, 0x0393},
+ {0x2544, 0x0394},
+ {0x2545, 0x0395},
+ {0x2546, 0x0396},
+ {0x2547, 0x0397},
+ {0x2548, 0x0398},
+ {0x2549, 0x0399},
+ {0x254A, 0x039A},
+ {0x254B, 0x039B},
+ {0x254C, 0x039C},
+ {0x254D, 0x039D},
+ {0x254E, 0x039E},
+ {0x254F, 0x039F},
+ {0x2550, 0x03A0},
+ {0x2551, 0x03A1},
+ {0x2552, 0x03A3},
+ {0x2553, 0x03A4},
+ {0x2554, 0x03A5},
+ {0x2555, 0x03A6},
+ {0x2556, 0x03A7},
+ {0x2557, 0x03A8},
+ {0x2558, 0x03A9},
+ {0x2561, 0x03B1},
+ {0x2562, 0x03B2},
+ {0x2563, 0x03B3},
+ {0x2564, 0x03B4},
+ {0x2565, 0x03B5},
+ {0x2566, 0x03B6},
+ {0x2567, 0x03B7},
+ {0x2568, 0x03B8},
+ {0x2569, 0x03B9},
+ {0x256A, 0x03BA},
+ {0x256B, 0x03BB},
+ {0x256C, 0x03BC},
+ {0x256D, 0x03BD},
+ {0x256E, 0x03BE},
+ {0x256F, 0x03BF},
+ {0x2570, 0x03C0},
+ {0x2571, 0x03C1},
+ {0x2572, 0x03C3},
+ {0x2573, 0x03C4},
+ {0x2574, 0x03C5},
+ {0x2575, 0x03C6},
+ {0x2576, 0x03C7},
+ {0x2577, 0x03C8},
+ {0x2578, 0x03C9},
+ {0x2621, 0x2500},
+ {0x2622, 0x2502},
+ {0x2623, 0x250C},
+ {0x2624, 0x2510},
+ {0x2625, 0x2518},
+ {0x2626, 0x2514},
+ {0x2627, 0x251C},
+ {0x2628, 0x252C},
+ {0x2629, 0x2524},
+ {0x262A, 0x2534},
+ {0x262B, 0x253C},
+ {0x262C, 0x2501},
+ {0x262D, 0x2503},
+ {0x262E, 0x250F},
+ {0x262F, 0x2513},
+ {0x2630, 0x251B},
+ {0x2631, 0x2517},
+ {0x2632, 0x2523},
+ {0x2633, 0x2533},
+ {0x2634, 0x252B},
+ {0x2635, 0x253B},
+ {0x2636, 0x254B},
+ {0x2637, 0x2520},
+ {0x2638, 0x252F},
+ {0x2639, 0x2528},
+ {0x263A, 0x2537},
+ {0x263B, 0x253F},
+ {0x263C, 0x251D},
+ {0x263D, 0x2530},
+ {0x263E, 0x2525},
+ {0x263F, 0x2538},
+ {0x2640, 0x2542},
+ {0x2641, 0x2512},
+ {0x2642, 0x2511},
+ {0x2643, 0x251A},
+ {0x2644, 0x2519},
+ {0x2645, 0x2516},
+ {0x2646, 0x2515},
+ {0x2647, 0x250E},
+ {0x2648, 0x250D},
+ {0x2649, 0x251E},
+ {0x264A, 0x251F},
+ {0x264B, 0x2521},
+ {0x264C, 0x2522},
+ {0x264D, 0x2526},
+ {0x264E, 0x2527},
+ {0x264F, 0x2529},
+ {0x2650, 0x252A},
+ {0x2651, 0x252D},
+ {0x2652, 0x252E},
+ {0x2653, 0x2531},
+ {0x2654, 0x2532},
+ {0x2655, 0x2535},
+ {0x2656, 0x2536},
+ {0x2657, 0x2539},
+ {0x2658, 0x253A},
+ {0x2659, 0x253D},
+ {0x265A, 0x253E},
+ {0x265B, 0x2540},
+ {0x265C, 0x2541},
+ {0x265D, 0x2543},
+ {0x265E, 0x2544},
+ {0x265F, 0x2545},
+ {0x2660, 0x2546},
+ {0x2661, 0x2547},
+ {0x2662, 0x2548},
+ {0x2663, 0x2549},
+ {0x2664, 0x254A},
+ {0x2721, 0x3395},
+ {0x2722, 0x3396},
+ {0x2723, 0x3397},
+ {0x2724, 0x2113},
+ {0x2725, 0x3398},
+ {0x2726, 0x33C4},
+ {0x2727, 0x33A3},
+ {0x2728, 0x33A4},
+ {0x2729, 0x33A5},
+ {0x272A, 0x33A6},
+ {0x272B, 0x3399},
+ {0x272C, 0x339A},
+ {0x272D, 0x339B},
+ {0x272E, 0x339C},
+ {0x272F, 0x339D},
+ {0x2730, 0x339E},
+ {0x2731, 0x339F},
+ {0x2732, 0x33A0},
+ {0x2733, 0x33A1},
+ {0x2734, 0x33A2},
+ {0x2735, 0x33CA},
+ {0x2736, 0x338D},
+ {0x2737, 0x338E},
+ {0x2738, 0x338F},
+ {0x2739, 0x33CF},
+ {0x273A, 0x3388},
+ {0x273B, 0x3389},
+ {0x273C, 0x33C8},
+ {0x273D, 0x33A7},
+ {0x273E, 0x33A8},
+ {0x273F, 0x33B0},
+ {0x2740, 0x33B1},
+ {0x2741, 0x33B2},
+ {0x2742, 0x33B3},
+ {0x2743, 0x33B4},
+ {0x2744, 0x33B5},
+ {0x2745, 0x33B6},
+ {0x2746, 0x33B7},
+ {0x2747, 0x33B8},
+ {0x2748, 0x33B9},
+ {0x2749, 0x3380},
+ {0x274A, 0x3381},
+ {0x274B, 0x3382},
+ {0x274C, 0x3383},
+ {0x274D, 0x3384},
+ {0x274E, 0x33BA},
+ {0x274F, 0x33BB},
+ {0x2750, 0x33BC},
+ {0x2751, 0x33BD},
+ {0x2752, 0x33BE},
+ {0x2753, 0x33BF},
+ {0x2754, 0x3390},
+ {0x2755, 0x3391},
+ {0x2756, 0x3392},
+ {0x2757, 0x3393},
+ {0x2758, 0x3394},
+ {0x2759, 0x2126},
+ {0x275A, 0x33C0},
+ {0x275B, 0x33C1},
+ {0x275C, 0x338A},
+ {0x275D, 0x338B},
+ {0x275E, 0x338C},
+ {0x275F, 0x33D6},
+ {0x2760, 0x33C5},
+ {0x2761, 0x33AD},
+ {0x2762, 0x33AE},
+ {0x2763, 0x33AF},
+ {0x2764, 0x33DB},
+ {0x2765, 0x33A9},
+ {0x2766, 0x33AA},
+ {0x2767, 0x33AB},
+ {0x2768, 0x33AC},
+ {0x2769, 0x33DD},
+ {0x276A, 0x33D0},
+ {0x276B, 0x33D3},
+ {0x276C, 0x33C3},
+ {0x276D, 0x33C9},
+ {0x276E, 0x33DC},
+ {0x276F, 0x33C6},
+ {0x2821, 0x00C6},
+ {0x2822, 0x00D0},
+ {0x2823, 0x00AA},
+ {0x2824, 0x0126},
+ {0x2826, 0x0132},
+ {0x2828, 0x013F},
+ {0x2829, 0x0141},
+ {0x282A, 0x00D8},
+ {0x282B, 0x0152},
+ {0x282C, 0x00BA},
+ {0x282D, 0x00DE},
+ {0x282E, 0x0166},
+ {0x282F, 0x014A},
+ {0x2831, 0x3260},
+ {0x2832, 0x3261},
+ {0x2833, 0x3262},
+ {0x2834, 0x3263},
+ {0x2835, 0x3264},
+ {0x2836, 0x3265},
+ {0x2837, 0x3266},
+ {0x2838, 0x3267},
+ {0x2839, 0x3268},
+ {0x283A, 0x3269},
+ {0x283B, 0x326A},
+ {0x283C, 0x326B},
+ {0x283D, 0x326C},
+ {0x283E, 0x326D},
+ {0x283F, 0x326E},
+ {0x2840, 0x326F},
+ {0x2841, 0x3270},
+ {0x2842, 0x3271},
+ {0x2843, 0x3272},
+ {0x2844, 0x3273},
+ {0x2845, 0x3274},
+ {0x2846, 0x3275},
+ {0x2847, 0x3276},
+ {0x2848, 0x3277},
+ {0x2849, 0x3278},
+ {0x284A, 0x3279},
+ {0x284B, 0x327A},
+ {0x284C, 0x327B},
+ {0x284D, 0x24D0},
+ {0x284E, 0x24D1},
+ {0x284F, 0x24D2},
+ {0x2850, 0x24D3},
+ {0x2851, 0x24D4},
+ {0x2852, 0x24D5},
+ {0x2853, 0x24D6},
+ {0x2854, 0x24D7},
+ {0x2855, 0x24D8},
+ {0x2856, 0x24D9},
+ {0x2857, 0x24DA},
+ {0x2858, 0x24DB},
+ {0x2859, 0x24DC},
+ {0x285A, 0x24DD},
+ {0x285B, 0x24DE},
+ {0x285C, 0x24DF},
+ {0x285D, 0x24E0},
+ {0x285E, 0x24E1},
+ {0x285F, 0x24E2},
+ {0x2860, 0x24E3},
+ {0x2861, 0x24E4},
+ {0x2862, 0x24E5},
+ {0x2863, 0x24E6},
+ {0x2864, 0x24E7},
+ {0x2865, 0x24E8},
+ {0x2866, 0x24E9},
+ {0x2867, 0x2460},
+ {0x2868, 0x2461},
+ {0x2869, 0x2462},
+ {0x286A, 0x2463},
+ {0x286B, 0x2464},
+ {0x286C, 0x2465},
+ {0x286D, 0x2466},
+ {0x286E, 0x2467},
+ {0x286F, 0x2468},
+ {0x2870, 0x2469},
+ {0x2871, 0x246A},
+ {0x2872, 0x246B},
+ {0x2873, 0x246C},
+ {0x2874, 0x246D},
+ {0x2875, 0x246E},
+ {0x2876, 0x00BD},
+ {0x2877, 0x2153},
+ {0x2878, 0x2154},
+ {0x2879, 0x00BC},
+ {0x287A, 0x00BE},
+ {0x287B, 0x215B},
+ {0x287C, 0x215C},
+ {0x287D, 0x215D},
+ {0x287E, 0x215E},
+ {0x2921, 0x00E6},
+ {0x2922, 0x0111},
+ {0x2923, 0x00F0},
+ {0x2924, 0x0127},
+ {0x2925, 0x0131},
+ {0x2926, 0x0133},
+ {0x2927, 0x0138},
+ {0x2928, 0x0140},
+ {0x2929, 0x0142},
+ {0x292A, 0x00F8},
+ {0x292B, 0x0153},
+ {0x292C, 0x00DF},
+ {0x292D, 0x00FE},
+ {0x292E, 0x0167},
+ {0x292F, 0x014B},
+ {0x2930, 0x0149},
+ {0x2931, 0x3200},
+ {0x2932, 0x3201},
+ {0x2933, 0x3202},
+ {0x2934, 0x3203},
+ {0x2935, 0x3204},
+ {0x2936, 0x3205},
+ {0x2937, 0x3206},
+ {0x2938, 0x3207},
+ {0x2939, 0x3208},
+ {0x293A, 0x3209},
+ {0x293B, 0x320A},
+ {0x293C, 0x320B},
+ {0x293D, 0x320C},
+ {0x293E, 0x320D},
+ {0x293F, 0x320E},
+ {0x2940, 0x320F},
+ {0x2941, 0x3210},
+ {0x2942, 0x3211},
+ {0x2943, 0x3212},
+ {0x2944, 0x3213},
+ {0x2945, 0x3214},
+ {0x2946, 0x3215},
+ {0x2947, 0x3216},
+ {0x2948, 0x3217},
+ {0x2949, 0x3218},
+ {0x294A, 0x3219},
+ {0x294B, 0x321A},
+ {0x294C, 0x321B},
+ {0x294D, 0x249C},
+ {0x294E, 0x249D},
+ {0x294F, 0x249E},
+ {0x2950, 0x249F},
+ {0x2951, 0x24A0},
+ {0x2952, 0x24A1},
+ {0x2953, 0x24A2},
+ {0x2954, 0x24A3},
+ {0x2955, 0x24A4},
+ {0x2956, 0x24A5},
+ {0x2957, 0x24A6},
+ {0x2958, 0x24A7},
+ {0x2959, 0x24A8},
+ {0x295A, 0x24A9},
+ {0x295B, 0x24AA},
+ {0x295C, 0x24AB},
+ {0x295D, 0x24AC},
+ {0x295E, 0x24AD},
+ {0x295F, 0x24AE},
+ {0x2960, 0x24AF},
+ {0x2961, 0x24B0},
+ {0x2962, 0x24B1},
+ {0x2963, 0x24B2},
+ {0x2964, 0x24B3},
+ {0x2965, 0x24B4},
+ {0x2966, 0x24B5},
+ {0x2967, 0x2474},
+ {0x2968, 0x2475},
+ {0x2969, 0x2476},
+ {0x296A, 0x2477},
+ {0x296B, 0x2478},
+ {0x296C, 0x2479},
+ {0x296D, 0x247A},
+ {0x296E, 0x247B},
+ {0x296F, 0x247C},
+ {0x2970, 0x247D},
+ {0x2971, 0x247E},
+ {0x2972, 0x247F},
+ {0x2973, 0x2480},
+ {0x2974, 0x2481},
+ {0x2975, 0x2482},
+ {0x2976, 0x00B9},
+ {0x2977, 0x00B2},
+ {0x2978, 0x00B3},
+ {0x2979, 0x2074},
+ {0x297A, 0x207F},
+ {0x297B, 0x2081},
+ {0x297C, 0x2082},
+ {0x297D, 0x2083},
+ {0x297E, 0x2084},
+ {0x2A21, 0x3041},
+ {0x2A22, 0x3042},
+ {0x2A23, 0x3043},
+ {0x2A24, 0x3044},
+ {0x2A25, 0x3045},
+ {0x2A26, 0x3046},
+ {0x2A27, 0x3047},
+ {0x2A28, 0x3048},
+ {0x2A29, 0x3049},
+ {0x2A2A, 0x304A},
+ {0x2A2B, 0x304B},
+ {0x2A2C, 0x304C},
+ {0x2A2D, 0x304D},
+ {0x2A2E, 0x304E},
+ {0x2A2F, 0x304F},
+ {0x2A30, 0x3050},
+ {0x2A31, 0x3051},
+ {0x2A32, 0x3052},
+ {0x2A33, 0x3053},
+ {0x2A34, 0x3054},
+ {0x2A35, 0x3055},
+ {0x2A36, 0x3056},
+ {0x2A37, 0x3057},
+ {0x2A38, 0x3058},
+ {0x2A39, 0x3059},
+ {0x2A3A, 0x305A},
+ {0x2A3B, 0x305B},
+ {0x2A3C, 0x305C},
+ {0x2A3D, 0x305D},
+ {0x2A3E, 0x305E},
+ {0x2A3F, 0x305F},
+ {0x2A40, 0x3060},
+ {0x2A41, 0x3061},
+ {0x2A42, 0x3062},
+ {0x2A43, 0x3063},
+ {0x2A44, 0x3064},
+ {0x2A45, 0x3065},
+ {0x2A46, 0x3066},
+ {0x2A47, 0x3067},
+ {0x2A48, 0x3068},
+ {0x2A49, 0x3069},
+ {0x2A4A, 0x306A},
+ {0x2A4B, 0x306B},
+ {0x2A4C, 0x306C},
+ {0x2A4D, 0x306D},
+ {0x2A4E, 0x306E},
+ {0x2A4F, 0x306F},
+ {0x2A50, 0x3070},
+ {0x2A51, 0x3071},
+ {0x2A52, 0x3072},
+ {0x2A53, 0x3073},
+ {0x2A54, 0x3074},
+ {0x2A55, 0x3075},
+ {0x2A56, 0x3076},
+ {0x2A57, 0x3077},
+ {0x2A58, 0x3078},
+ {0x2A59, 0x3079},
+ {0x2A5A, 0x307A},
+ {0x2A5B, 0x307B},
+ {0x2A5C, 0x307C},
+ {0x2A5D, 0x307D},
+ {0x2A5E, 0x307E},
+ {0x2A5F, 0x307F},
+ {0x2A60, 0x3080},
+ {0x2A61, 0x3081},
+ {0x2A62, 0x3082},
+ {0x2A63, 0x3083},
+ {0x2A64, 0x3084},
+ {0x2A65, 0x3085},
+ {0x2A66, 0x3086},
+ {0x2A67, 0x3087},
+ {0x2A68, 0x3088},
+ {0x2A69, 0x3089},
+ {0x2A6A, 0x308A},
+ {0x2A6B, 0x308B},
+ {0x2A6C, 0x308C},
+ {0x2A6D, 0x308D},
+ {0x2A6E, 0x308E},
+ {0x2A6F, 0x308F},
+ {0x2A70, 0x3090},
+ {0x2A71, 0x3091},
+ {0x2A72, 0x3092},
+ {0x2A73, 0x3093},
+ {0x2B21, 0x30A1},
+ {0x2B22, 0x30A2},
+ {0x2B23, 0x30A3},
+ {0x2B24, 0x30A4},
+ {0x2B25, 0x30A5},
+ {0x2B26, 0x30A6},
+ {0x2B27, 0x30A7},
+ {0x2B28, 0x30A8},
+ {0x2B29, 0x30A9},
+ {0x2B2A, 0x30AA},
+ {0x2B2B, 0x30AB},
+ {0x2B2C, 0x30AC},
+ {0x2B2D, 0x30AD},
+ {0x2B2E, 0x30AE},
+ {0x2B2F, 0x30AF},
+ {0x2B30, 0x30B0},
+ {0x2B31, 0x30B1},
+ {0x2B32, 0x30B2},
+ {0x2B33, 0x30B3},
+ {0x2B34, 0x30B4},
+ {0x2B35, 0x30B5},
+ {0x2B36, 0x30B6},
+ {0x2B37, 0x30B7},
+ {0x2B38, 0x30B8},
+ {0x2B39, 0x30B9},
+ {0x2B3A, 0x30BA},
+ {0x2B3B, 0x30BB},
+ {0x2B3C, 0x30BC},
+ {0x2B3D, 0x30BD},
+ {0x2B3E, 0x30BE},
+ {0x2B3F, 0x30BF},
+ {0x2B40, 0x30C0},
+ {0x2B41, 0x30C1},
+ {0x2B42, 0x30C2},
+ {0x2B43, 0x30C3},
+ {0x2B44, 0x30C4},
+ {0x2B45, 0x30C5},
+ {0x2B46, 0x30C6},
+ {0x2B47, 0x30C7},
+ {0x2B48, 0x30C8},
+ {0x2B49, 0x30C9},
+ {0x2B4A, 0x30CA},
+ {0x2B4B, 0x30CB},
+ {0x2B4C, 0x30CC},
+ {0x2B4D, 0x30CD},
+ {0x2B4E, 0x30CE},
+ {0x2B4F, 0x30CF},
+ {0x2B50, 0x30D0},
+ {0x2B51, 0x30D1},
+ {0x2B52, 0x30D2},
+ {0x2B53, 0x30D3},
+ {0x2B54, 0x30D4},
+ {0x2B55, 0x30D5},
+ {0x2B56, 0x30D6},
+ {0x2B57, 0x30D7},
+ {0x2B58, 0x30D8},
+ {0x2B59, 0x30D9},
+ {0x2B5A, 0x30DA},
+ {0x2B5B, 0x30DB},
+ {0x2B5C, 0x30DC},
+ {0x2B5D, 0x30DD},
+ {0x2B5E, 0x30DE},
+ {0x2B5F, 0x30DF},
+ {0x2B60, 0x30E0},
+ {0x2B61, 0x30E1},
+ {0x2B62, 0x30E2},
+ {0x2B63, 0x30E3},
+ {0x2B64, 0x30E4},
+ {0x2B65, 0x30E5},
+ {0x2B66, 0x30E6},
+ {0x2B67, 0x30E7},
+ {0x2B68, 0x30E8},
+ {0x2B69, 0x30E9},
+ {0x2B6A, 0x30EA},
+ {0x2B6B, 0x30EB},
+ {0x2B6C, 0x30EC},
+ {0x2B6D, 0x30ED},
+ {0x2B6E, 0x30EE},
+ {0x2B6F, 0x30EF},
+ {0x2B70, 0x30F0},
+ {0x2B71, 0x30F1},
+ {0x2B72, 0x30F2},
+ {0x2B73, 0x30F3},
+ {0x2B74, 0x30F4},
+ {0x2B75, 0x30F5},
+ {0x2B76, 0x30F6},
+ {0x2C21, 0x0410},
+ {0x2C22, 0x0411},
+ {0x2C23, 0x0412},
+ {0x2C24, 0x0413},
+ {0x2C25, 0x0414},
+ {0x2C26, 0x0415},
+ {0x2C27, 0x0401},
+ {0x2C28, 0x0416},
+ {0x2C29, 0x0417},
+ {0x2C2A, 0x0418},
+ {0x2C2B, 0x0419},
+ {0x2C2C, 0x041A},
+ {0x2C2D, 0x041B},
+ {0x2C2E, 0x041C},
+ {0x2C2F, 0x041D},
+ {0x2C30, 0x041E},
+ {0x2C31, 0x041F},
+ {0x2C32, 0x0420},
+ {0x2C33, 0x0421},
+ {0x2C34, 0x0422},
+ {0x2C35, 0x0423},
+ {0x2C36, 0x0424},
+ {0x2C37, 0x0425},
+ {0x2C38, 0x0426},
+ {0x2C39, 0x0427},
+ {0x2C3A, 0x0428},
+ {0x2C3B, 0x0429},
+ {0x2C3C, 0x042A},
+ {0x2C3D, 0x042B},
+ {0x2C3E, 0x042C},
+ {0x2C3F, 0x042D},
+ {0x2C40, 0x042E},
+ {0x2C41, 0x042F},
+ {0x2C51, 0x0430},
+ {0x2C52, 0x0431},
+ {0x2C53, 0x0432},
+ {0x2C54, 0x0433},
+ {0x2C55, 0x0434},
+ {0x2C56, 0x0435},
+ {0x2C57, 0x0451},
+ {0x2C58, 0x0436},
+ {0x2C59, 0x0437},
+ {0x2C5A, 0x0438},
+ {0x2C5B, 0x0439},
+ {0x2C5C, 0x043A},
+ {0x2C5D, 0x043B},
+ {0x2C5E, 0x043C},
+ {0x2C5F, 0x043D},
+ {0x2C60, 0x043E},
+ {0x2C61, 0x043F},
+ {0x2C62, 0x0440},
+ {0x2C63, 0x0441},
+ {0x2C64, 0x0442},
+ {0x2C65, 0x0443},
+ {0x2C66, 0x0444},
+ {0x2C67, 0x0445},
+ {0x2C68, 0x0446},
+ {0x2C69, 0x0447},
+ {0x2C6A, 0x0448},
+ {0x2C6B, 0x0449},
+ {0x2C6C, 0x044A},
+ {0x2C6D, 0x044B},
+ {0x2C6E, 0x044C},
+ {0x2C6F, 0x044D},
+ {0x2C70, 0x044E},
+ {0x2C71, 0x044F},
+ {0x3021, 0xAC00},
+ {0x3022, 0xAC01},
+ {0x3023, 0xAC04},
+ {0x3024, 0xAC07},
+ {0x3025, 0xAC08},
+ {0x3026, 0xAC09},
+ {0x3027, 0xAC0A},
+ {0x3028, 0xAC10},
+ {0x3029, 0xAC11},
+ {0x302A, 0xAC12},
+ {0x302B, 0xAC13},
+ {0x302C, 0xAC14},
+ {0x302D, 0xAC15},
+ {0x302E, 0xAC16},
+ {0x302F, 0xAC17},
+ {0x3030, 0xAC19},
+ {0x3031, 0xAC1A},
+ {0x3032, 0xAC1B},
+ {0x3033, 0xAC1C},
+ {0x3034, 0xAC1D},
+ {0x3035, 0xAC20},
+ {0x3036, 0xAC24},
+ {0x3037, 0xAC2C},
+ {0x3038, 0xAC2D},
+ {0x3039, 0xAC2F},
+ {0x303A, 0xAC30},
+ {0x303B, 0xAC31},
+ {0x303C, 0xAC38},
+ {0x303D, 0xAC39},
+ {0x303E, 0xAC3C},
+ {0x303F, 0xAC40},
+ {0x3040, 0xAC4B},
+ {0x3041, 0xAC4D},
+ {0x3042, 0xAC54},
+ {0x3043, 0xAC58},
+ {0x3044, 0xAC5C},
+ {0x3045, 0xAC70},
+ {0x3046, 0xAC71},
+ {0x3047, 0xAC74},
+ {0x3048, 0xAC77},
+ {0x3049, 0xAC78},
+ {0x304A, 0xAC7A},
+ {0x304B, 0xAC80},
+ {0x304C, 0xAC81},
+ {0x304D, 0xAC83},
+ {0x304E, 0xAC84},
+ {0x304F, 0xAC85},
+ {0x3050, 0xAC86},
+ {0x3051, 0xAC89},
+ {0x3052, 0xAC8A},
+ {0x3053, 0xAC8B},
+ {0x3054, 0xAC8C},
+ {0x3055, 0xAC90},
+ {0x3056, 0xAC94},
+ {0x3057, 0xAC9C},
+ {0x3058, 0xAC9D},
+ {0x3059, 0xAC9F},
+ {0x305A, 0xACA0},
+ {0x305B, 0xACA1},
+ {0x305C, 0xACA8},
+ {0x305D, 0xACA9},
+ {0x305E, 0xACAA},
+ {0x305F, 0xACAC},
+ {0x3060, 0xACAF},
+ {0x3061, 0xACB0},
+ {0x3062, 0xACB8},
+ {0x3063, 0xACB9},
+ {0x3064, 0xACBB},
+ {0x3065, 0xACBC},
+ {0x3066, 0xACBD},
+ {0x3067, 0xACC1},
+ {0x3068, 0xACC4},
+ {0x3069, 0xACC8},
+ {0x306A, 0xACCC},
+ {0x306B, 0xACD5},
+ {0x306C, 0xACD7},
+ {0x306D, 0xACE0},
+ {0x306E, 0xACE1},
+ {0x306F, 0xACE4},
+ {0x3070, 0xACE7},
+ {0x3071, 0xACE8},
+ {0x3072, 0xACEA},
+ {0x3073, 0xACEC},
+ {0x3074, 0xACEF},
+ {0x3075, 0xACF0},
+ {0x3076, 0xACF1},
+ {0x3077, 0xACF3},
+ {0x3078, 0xACF5},
+ {0x3079, 0xACF6},
+ {0x307A, 0xACFC},
+ {0x307B, 0xACFD},
+ {0x307C, 0xAD00},
+ {0x307D, 0xAD04},
+ {0x307E, 0xAD06},
+ {0x3121, 0xAD0C},
+ {0x3122, 0xAD0D},
+ {0x3123, 0xAD0F},
+ {0x3124, 0xAD11},
+ {0x3125, 0xAD18},
+ {0x3126, 0xAD1C},
+ {0x3127, 0xAD20},
+ {0x3128, 0xAD29},
+ {0x3129, 0xAD2C},
+ {0x312A, 0xAD2D},
+ {0x312B, 0xAD34},
+ {0x312C, 0xAD35},
+ {0x312D, 0xAD38},
+ {0x312E, 0xAD3C},
+ {0x312F, 0xAD44},
+ {0x3130, 0xAD45},
+ {0x3131, 0xAD47},
+ {0x3132, 0xAD49},
+ {0x3133, 0xAD50},
+ {0x3134, 0xAD54},
+ {0x3135, 0xAD58},
+ {0x3136, 0xAD61},
+ {0x3137, 0xAD63},
+ {0x3138, 0xAD6C},
+ {0x3139, 0xAD6D},
+ {0x313A, 0xAD70},
+ {0x313B, 0xAD73},
+ {0x313C, 0xAD74},
+ {0x313D, 0xAD75},
+ {0x313E, 0xAD76},
+ {0x313F, 0xAD7B},
+ {0x3140, 0xAD7C},
+ {0x3141, 0xAD7D},
+ {0x3142, 0xAD7F},
+ {0x3143, 0xAD81},
+ {0x3144, 0xAD82},
+ {0x3145, 0xAD88},
+ {0x3146, 0xAD89},
+ {0x3147, 0xAD8C},
+ {0x3148, 0xAD90},
+ {0x3149, 0xAD9C},
+ {0x314A, 0xAD9D},
+ {0x314B, 0xADA4},
+ {0x314C, 0xADB7},
+ {0x314D, 0xADC0},
+ {0x314E, 0xADC1},
+ {0x314F, 0xADC4},
+ {0x3150, 0xADC8},
+ {0x3151, 0xADD0},
+ {0x3152, 0xADD1},
+ {0x3153, 0xADD3},
+ {0x3154, 0xADDC},
+ {0x3155, 0xADE0},
+ {0x3156, 0xADE4},
+ {0x3157, 0xADF8},
+ {0x3158, 0xADF9},
+ {0x3159, 0xADFC},
+ {0x315A, 0xADFF},
+ {0x315B, 0xAE00},
+ {0x315C, 0xAE01},
+ {0x315D, 0xAE08},
+ {0x315E, 0xAE09},
+ {0x315F, 0xAE0B},
+ {0x3160, 0xAE0D},
+ {0x3161, 0xAE14},
+ {0x3162, 0xAE30},
+ {0x3163, 0xAE31},
+ {0x3164, 0xAE34},
+ {0x3165, 0xAE37},
+ {0x3166, 0xAE38},
+ {0x3167, 0xAE3A},
+ {0x3168, 0xAE40},
+ {0x3169, 0xAE41},
+ {0x316A, 0xAE43},
+ {0x316B, 0xAE45},
+ {0x316C, 0xAE46},
+ {0x316D, 0xAE4A},
+ {0x316E, 0xAE4C},
+ {0x316F, 0xAE4D},
+ {0x3170, 0xAE4E},
+ {0x3171, 0xAE50},
+ {0x3172, 0xAE54},
+ {0x3173, 0xAE56},
+ {0x3174, 0xAE5C},
+ {0x3175, 0xAE5D},
+ {0x3176, 0xAE5F},
+ {0x3177, 0xAE60},
+ {0x3178, 0xAE61},
+ {0x3179, 0xAE65},
+ {0x317A, 0xAE68},
+ {0x317B, 0xAE69},
+ {0x317C, 0xAE6C},
+ {0x317D, 0xAE70},
+ {0x317E, 0xAE78},
+ {0x3221, 0xAE79},
+ {0x3222, 0xAE7B},
+ {0x3223, 0xAE7C},
+ {0x3224, 0xAE7D},
+ {0x3225, 0xAE84},
+ {0x3226, 0xAE85},
+ {0x3227, 0xAE8C},
+ {0x3228, 0xAEBC},
+ {0x3229, 0xAEBD},
+ {0x322A, 0xAEBE},
+ {0x322B, 0xAEC0},
+ {0x322C, 0xAEC4},
+ {0x322D, 0xAECC},
+ {0x322E, 0xAECD},
+ {0x322F, 0xAECF},
+ {0x3230, 0xAED0},
+ {0x3231, 0xAED1},
+ {0x3232, 0xAED8},
+ {0x3233, 0xAED9},
+ {0x3234, 0xAEDC},
+ {0x3235, 0xAEE8},
+ {0x3236, 0xAEEB},
+ {0x3237, 0xAEED},
+ {0x3238, 0xAEF4},
+ {0x3239, 0xAEF8},
+ {0x323A, 0xAEFC},
+ {0x323B, 0xAF07},
+ {0x323C, 0xAF08},
+ {0x323D, 0xAF0D},
+ {0x323E, 0xAF10},
+ {0x323F, 0xAF2C},
+ {0x3240, 0xAF2D},
+ {0x3241, 0xAF30},
+ {0x3242, 0xAF32},
+ {0x3243, 0xAF34},
+ {0x3244, 0xAF3C},
+ {0x3245, 0xAF3D},
+ {0x3246, 0xAF3F},
+ {0x3247, 0xAF41},
+ {0x3248, 0xAF42},
+ {0x3249, 0xAF43},
+ {0x324A, 0xAF48},
+ {0x324B, 0xAF49},
+ {0x324C, 0xAF50},
+ {0x324D, 0xAF5C},
+ {0x324E, 0xAF5D},
+ {0x324F, 0xAF64},
+ {0x3250, 0xAF65},
+ {0x3251, 0xAF79},
+ {0x3252, 0xAF80},
+ {0x3253, 0xAF84},
+ {0x3254, 0xAF88},
+ {0x3255, 0xAF90},
+ {0x3256, 0xAF91},
+ {0x3257, 0xAF95},
+ {0x3258, 0xAF9C},
+ {0x3259, 0xAFB8},
+ {0x325A, 0xAFB9},
+ {0x325B, 0xAFBC},
+ {0x325C, 0xAFC0},
+ {0x325D, 0xAFC7},
+ {0x325E, 0xAFC8},
+ {0x325F, 0xAFC9},
+ {0x3260, 0xAFCB},
+ {0x3261, 0xAFCD},
+ {0x3262, 0xAFCE},
+ {0x3263, 0xAFD4},
+ {0x3264, 0xAFDC},
+ {0x3265, 0xAFE8},
+ {0x3266, 0xAFE9},
+ {0x3267, 0xAFF0},
+ {0x3268, 0xAFF1},
+ {0x3269, 0xAFF4},
+ {0x326A, 0xAFF8},
+ {0x326B, 0xB000},
+ {0x326C, 0xB001},
+ {0x326D, 0xB004},
+ {0x326E, 0xB00C},
+ {0x326F, 0xB010},
+ {0x3270, 0xB014},
+ {0x3271, 0xB01C},
+ {0x3272, 0xB01D},
+ {0x3273, 0xB028},
+ {0x3274, 0xB044},
+ {0x3275, 0xB045},
+ {0x3276, 0xB048},
+ {0x3277, 0xB04A},
+ {0x3278, 0xB04C},
+ {0x3279, 0xB04E},
+ {0x327A, 0xB053},
+ {0x327B, 0xB054},
+ {0x327C, 0xB055},
+ {0x327D, 0xB057},
+ {0x327E, 0xB059},
+ {0x3321, 0xB05D},
+ {0x3322, 0xB07C},
+ {0x3323, 0xB07D},
+ {0x3324, 0xB080},
+ {0x3325, 0xB084},
+ {0x3326, 0xB08C},
+ {0x3327, 0xB08D},
+ {0x3328, 0xB08F},
+ {0x3329, 0xB091},
+ {0x332A, 0xB098},
+ {0x332B, 0xB099},
+ {0x332C, 0xB09A},
+ {0x332D, 0xB09C},
+ {0x332E, 0xB09F},
+ {0x332F, 0xB0A0},
+ {0x3330, 0xB0A1},
+ {0x3331, 0xB0A2},
+ {0x3332, 0xB0A8},
+ {0x3333, 0xB0A9},
+ {0x3334, 0xB0AB},
+ {0x3335, 0xB0AC},
+ {0x3336, 0xB0AD},
+ {0x3337, 0xB0AE},
+ {0x3338, 0xB0AF},
+ {0x3339, 0xB0B1},
+ {0x333A, 0xB0B3},
+ {0x333B, 0xB0B4},
+ {0x333C, 0xB0B5},
+ {0x333D, 0xB0B8},
+ {0x333E, 0xB0BC},
+ {0x333F, 0xB0C4},
+ {0x3340, 0xB0C5},
+ {0x3341, 0xB0C7},
+ {0x3342, 0xB0C8},
+ {0x3343, 0xB0C9},
+ {0x3344, 0xB0D0},
+ {0x3345, 0xB0D1},
+ {0x3346, 0xB0D4},
+ {0x3347, 0xB0D8},
+ {0x3348, 0xB0E0},
+ {0x3349, 0xB0E5},
+ {0x334A, 0xB108},
+ {0x334B, 0xB109},
+ {0x334C, 0xB10B},
+ {0x334D, 0xB10C},
+ {0x334E, 0xB110},
+ {0x334F, 0xB112},
+ {0x3350, 0xB113},
+ {0x3351, 0xB118},
+ {0x3352, 0xB119},
+ {0x3353, 0xB11B},
+ {0x3354, 0xB11C},
+ {0x3355, 0xB11D},
+ {0x3356, 0xB123},
+ {0x3357, 0xB124},
+ {0x3358, 0xB125},
+ {0x3359, 0xB128},
+ {0x335A, 0xB12C},
+ {0x335B, 0xB134},
+ {0x335C, 0xB135},
+ {0x335D, 0xB137},
+ {0x335E, 0xB138},
+ {0x335F, 0xB139},
+ {0x3360, 0xB140},
+ {0x3361, 0xB141},
+ {0x3362, 0xB144},
+ {0x3363, 0xB148},
+ {0x3364, 0xB150},
+ {0x3365, 0xB151},
+ {0x3366, 0xB154},
+ {0x3367, 0xB155},
+ {0x3368, 0xB158},
+ {0x3369, 0xB15C},
+ {0x336A, 0xB160},
+ {0x336B, 0xB178},
+ {0x336C, 0xB179},
+ {0x336D, 0xB17C},
+ {0x336E, 0xB180},
+ {0x336F, 0xB182},
+ {0x3370, 0xB188},
+ {0x3371, 0xB189},
+ {0x3372, 0xB18B},
+ {0x3373, 0xB18D},
+ {0x3374, 0xB192},
+ {0x3375, 0xB193},
+ {0x3376, 0xB194},
+ {0x3377, 0xB198},
+ {0x3378, 0xB19C},
+ {0x3379, 0xB1A8},
+ {0x337A, 0xB1CC},
+ {0x337B, 0xB1D0},
+ {0x337C, 0xB1D4},
+ {0x337D, 0xB1DC},
+ {0x337E, 0xB1DD},
+ {0x3421, 0xB1DF},
+ {0x3422, 0xB1E8},
+ {0x3423, 0xB1E9},
+ {0x3424, 0xB1EC},
+ {0x3425, 0xB1F0},
+ {0x3426, 0xB1F9},
+ {0x3427, 0xB1FB},
+ {0x3428, 0xB1FD},
+ {0x3429, 0xB204},
+ {0x342A, 0xB205},
+ {0x342B, 0xB208},
+ {0x342C, 0xB20B},
+ {0x342D, 0xB20C},
+ {0x342E, 0xB214},
+ {0x342F, 0xB215},
+ {0x3430, 0xB217},
+ {0x3431, 0xB219},
+ {0x3432, 0xB220},
+ {0x3433, 0xB234},
+ {0x3434, 0xB23C},
+ {0x3435, 0xB258},
+ {0x3436, 0xB25C},
+ {0x3437, 0xB260},
+ {0x3438, 0xB268},
+ {0x3439, 0xB269},
+ {0x343A, 0xB274},
+ {0x343B, 0xB275},
+ {0x343C, 0xB27C},
+ {0x343D, 0xB284},
+ {0x343E, 0xB285},
+ {0x343F, 0xB289},
+ {0x3440, 0xB290},
+ {0x3441, 0xB291},
+ {0x3442, 0xB294},
+ {0x3443, 0xB298},
+ {0x3444, 0xB299},
+ {0x3445, 0xB29A},
+ {0x3446, 0xB2A0},
+ {0x3447, 0xB2A1},
+ {0x3448, 0xB2A3},
+ {0x3449, 0xB2A5},
+ {0x344A, 0xB2A6},
+ {0x344B, 0xB2AA},
+ {0x344C, 0xB2AC},
+ {0x344D, 0xB2B0},
+ {0x344E, 0xB2B4},
+ {0x344F, 0xB2C8},
+ {0x3450, 0xB2C9},
+ {0x3451, 0xB2CC},
+ {0x3452, 0xB2D0},
+ {0x3453, 0xB2D2},
+ {0x3454, 0xB2D8},
+ {0x3455, 0xB2D9},
+ {0x3456, 0xB2DB},
+ {0x3457, 0xB2DD},
+ {0x3458, 0xB2E2},
+ {0x3459, 0xB2E4},
+ {0x345A, 0xB2E5},
+ {0x345B, 0xB2E6},
+ {0x345C, 0xB2E8},
+ {0x345D, 0xB2EB},
+ {0x345E, 0xB2EC},
+ {0x345F, 0xB2ED},
+ {0x3460, 0xB2EE},
+ {0x3461, 0xB2EF},
+ {0x3462, 0xB2F3},
+ {0x3463, 0xB2F4},
+ {0x3464, 0xB2F5},
+ {0x3465, 0xB2F7},
+ {0x3466, 0xB2F8},
+ {0x3467, 0xB2F9},
+ {0x3468, 0xB2FA},
+ {0x3469, 0xB2FB},
+ {0x346A, 0xB2FF},
+ {0x346B, 0xB300},
+ {0x346C, 0xB301},
+ {0x346D, 0xB304},
+ {0x346E, 0xB308},
+ {0x346F, 0xB310},
+ {0x3470, 0xB311},
+ {0x3471, 0xB313},
+ {0x3472, 0xB314},
+ {0x3473, 0xB315},
+ {0x3474, 0xB31C},
+ {0x3475, 0xB354},
+ {0x3476, 0xB355},
+ {0x3477, 0xB356},
+ {0x3478, 0xB358},
+ {0x3479, 0xB35B},
+ {0x347A, 0xB35C},
+ {0x347B, 0xB35E},
+ {0x347C, 0xB35F},
+ {0x347D, 0xB364},
+ {0x347E, 0xB365},
+ {0x3521, 0xB367},
+ {0x3522, 0xB369},
+ {0x3523, 0xB36B},
+ {0x3524, 0xB36E},
+ {0x3525, 0xB370},
+ {0x3526, 0xB371},
+ {0x3527, 0xB374},
+ {0x3528, 0xB378},
+ {0x3529, 0xB380},
+ {0x352A, 0xB381},
+ {0x352B, 0xB383},
+ {0x352C, 0xB384},
+ {0x352D, 0xB385},
+ {0x352E, 0xB38C},
+ {0x352F, 0xB390},
+ {0x3530, 0xB394},
+ {0x3531, 0xB3A0},
+ {0x3532, 0xB3A1},
+ {0x3533, 0xB3A8},
+ {0x3534, 0xB3AC},
+ {0x3535, 0xB3C4},
+ {0x3536, 0xB3C5},
+ {0x3537, 0xB3C8},
+ {0x3538, 0xB3CB},
+ {0x3539, 0xB3CC},
+ {0x353A, 0xB3CE},
+ {0x353B, 0xB3D0},
+ {0x353C, 0xB3D4},
+ {0x353D, 0xB3D5},
+ {0x353E, 0xB3D7},
+ {0x353F, 0xB3D9},
+ {0x3540, 0xB3DB},
+ {0x3541, 0xB3DD},
+ {0x3542, 0xB3E0},
+ {0x3543, 0xB3E4},
+ {0x3544, 0xB3E8},
+ {0x3545, 0xB3FC},
+ {0x3546, 0xB410},
+ {0x3547, 0xB418},
+ {0x3548, 0xB41C},
+ {0x3549, 0xB420},
+ {0x354A, 0xB428},
+ {0x354B, 0xB429},
+ {0x354C, 0xB42B},
+ {0x354D, 0xB434},
+ {0x354E, 0xB450},
+ {0x354F, 0xB451},
+ {0x3550, 0xB454},
+ {0x3551, 0xB458},
+ {0x3552, 0xB460},
+ {0x3553, 0xB461},
+ {0x3554, 0xB463},
+ {0x3555, 0xB465},
+ {0x3556, 0xB46C},
+ {0x3557, 0xB480},
+ {0x3558, 0xB488},
+ {0x3559, 0xB49D},
+ {0x355A, 0xB4A4},
+ {0x355B, 0xB4A8},
+ {0x355C, 0xB4AC},
+ {0x355D, 0xB4B5},
+ {0x355E, 0xB4B7},
+ {0x355F, 0xB4B9},
+ {0x3560, 0xB4C0},
+ {0x3561, 0xB4C4},
+ {0x3562, 0xB4C8},
+ {0x3563, 0xB4D0},
+ {0x3564, 0xB4D5},
+ {0x3565, 0xB4DC},
+ {0x3566, 0xB4DD},
+ {0x3567, 0xB4E0},
+ {0x3568, 0xB4E3},
+ {0x3569, 0xB4E4},
+ {0x356A, 0xB4E6},
+ {0x356B, 0xB4EC},
+ {0x356C, 0xB4ED},
+ {0x356D, 0xB4EF},
+ {0x356E, 0xB4F1},
+ {0x356F, 0xB4F8},
+ {0x3570, 0xB514},
+ {0x3571, 0xB515},
+ {0x3572, 0xB518},
+ {0x3573, 0xB51B},
+ {0x3574, 0xB51C},
+ {0x3575, 0xB524},
+ {0x3576, 0xB525},
+ {0x3577, 0xB527},
+ {0x3578, 0xB528},
+ {0x3579, 0xB529},
+ {0x357A, 0xB52A},
+ {0x357B, 0xB530},
+ {0x357C, 0xB531},
+ {0x357D, 0xB534},
+ {0x357E, 0xB538},
+ {0x3621, 0xB540},
+ {0x3622, 0xB541},
+ {0x3623, 0xB543},
+ {0x3624, 0xB544},
+ {0x3625, 0xB545},
+ {0x3626, 0xB54B},
+ {0x3627, 0xB54C},
+ {0x3628, 0xB54D},
+ {0x3629, 0xB550},
+ {0x362A, 0xB554},
+ {0x362B, 0xB55C},
+ {0x362C, 0xB55D},
+ {0x362D, 0xB55F},
+ {0x362E, 0xB560},
+ {0x362F, 0xB561},
+ {0x3630, 0xB5A0},
+ {0x3631, 0xB5A1},
+ {0x3632, 0xB5A4},
+ {0x3633, 0xB5A8},
+ {0x3634, 0xB5AA},
+ {0x3635, 0xB5AB},
+ {0x3636, 0xB5B0},
+ {0x3637, 0xB5B1},
+ {0x3638, 0xB5B3},
+ {0x3639, 0xB5B4},
+ {0x363A, 0xB5B5},
+ {0x363B, 0xB5BB},
+ {0x363C, 0xB5BC},
+ {0x363D, 0xB5BD},
+ {0x363E, 0xB5C0},
+ {0x363F, 0xB5C4},
+ {0x3640, 0xB5CC},
+ {0x3641, 0xB5CD},
+ {0x3642, 0xB5CF},
+ {0x3643, 0xB5D0},
+ {0x3644, 0xB5D1},
+ {0x3645, 0xB5D8},
+ {0x3646, 0xB5EC},
+ {0x3647, 0xB610},
+ {0x3648, 0xB611},
+ {0x3649, 0xB614},
+ {0x364A, 0xB618},
+ {0x364B, 0xB625},
+ {0x364C, 0xB62C},
+ {0x364D, 0xB634},
+ {0x364E, 0xB648},
+ {0x364F, 0xB664},
+ {0x3650, 0xB668},
+ {0x3651, 0xB69C},
+ {0x3652, 0xB69D},
+ {0x3653, 0xB6A0},
+ {0x3654, 0xB6A4},
+ {0x3655, 0xB6AB},
+ {0x3656, 0xB6AC},
+ {0x3657, 0xB6B1},
+ {0x3658, 0xB6D4},
+ {0x3659, 0xB6F0},
+ {0x365A, 0xB6F4},
+ {0x365B, 0xB6F8},
+ {0x365C, 0xB700},
+ {0x365D, 0xB701},
+ {0x365E, 0xB705},
+ {0x365F, 0xB728},
+ {0x3660, 0xB729},
+ {0x3661, 0xB72C},
+ {0x3662, 0xB72F},
+ {0x3663, 0xB730},
+ {0x3664, 0xB738},
+ {0x3665, 0xB739},
+ {0x3666, 0xB73B},
+ {0x3667, 0xB744},
+ {0x3668, 0xB748},
+ {0x3669, 0xB74C},
+ {0x366A, 0xB754},
+ {0x366B, 0xB755},
+ {0x366C, 0xB760},
+ {0x366D, 0xB764},
+ {0x366E, 0xB768},
+ {0x366F, 0xB770},
+ {0x3670, 0xB771},
+ {0x3671, 0xB773},
+ {0x3672, 0xB775},
+ {0x3673, 0xB77C},
+ {0x3674, 0xB77D},
+ {0x3675, 0xB780},
+ {0x3676, 0xB784},
+ {0x3677, 0xB78C},
+ {0x3678, 0xB78D},
+ {0x3679, 0xB78F},
+ {0x367A, 0xB790},
+ {0x367B, 0xB791},
+ {0x367C, 0xB792},
+ {0x367D, 0xB796},
+ {0x367E, 0xB797},
+ {0x3721, 0xB798},
+ {0x3722, 0xB799},
+ {0x3723, 0xB79C},
+ {0x3724, 0xB7A0},
+ {0x3725, 0xB7A8},
+ {0x3726, 0xB7A9},
+ {0x3727, 0xB7AB},
+ {0x3728, 0xB7AC},
+ {0x3729, 0xB7AD},
+ {0x372A, 0xB7B4},
+ {0x372B, 0xB7B5},
+ {0x372C, 0xB7B8},
+ {0x372D, 0xB7C7},
+ {0x372E, 0xB7C9},
+ {0x372F, 0xB7EC},
+ {0x3730, 0xB7ED},
+ {0x3731, 0xB7F0},
+ {0x3732, 0xB7F4},
+ {0x3733, 0xB7FC},
+ {0x3734, 0xB7FD},
+ {0x3735, 0xB7FF},
+ {0x3736, 0xB800},
+ {0x3737, 0xB801},
+ {0x3738, 0xB807},
+ {0x3739, 0xB808},
+ {0x373A, 0xB809},
+ {0x373B, 0xB80C},
+ {0x373C, 0xB810},
+ {0x373D, 0xB818},
+ {0x373E, 0xB819},
+ {0x373F, 0xB81B},
+ {0x3740, 0xB81D},
+ {0x3741, 0xB824},
+ {0x3742, 0xB825},
+ {0x3743, 0xB828},
+ {0x3744, 0xB82C},
+ {0x3745, 0xB834},
+ {0x3746, 0xB835},
+ {0x3747, 0xB837},
+ {0x3748, 0xB838},
+ {0x3749, 0xB839},
+ {0x374A, 0xB840},
+ {0x374B, 0xB844},
+ {0x374C, 0xB851},
+ {0x374D, 0xB853},
+ {0x374E, 0xB85C},
+ {0x374F, 0xB85D},
+ {0x3750, 0xB860},
+ {0x3751, 0xB864},
+ {0x3752, 0xB86C},
+ {0x3753, 0xB86D},
+ {0x3754, 0xB86F},
+ {0x3755, 0xB871},
+ {0x3756, 0xB878},
+ {0x3757, 0xB87C},
+ {0x3758, 0xB88D},
+ {0x3759, 0xB8A8},
+ {0x375A, 0xB8B0},
+ {0x375B, 0xB8B4},
+ {0x375C, 0xB8B8},
+ {0x375D, 0xB8C0},
+ {0x375E, 0xB8C1},
+ {0x375F, 0xB8C3},
+ {0x3760, 0xB8C5},
+ {0x3761, 0xB8CC},
+ {0x3762, 0xB8D0},
+ {0x3763, 0xB8D4},
+ {0x3764, 0xB8DD},
+ {0x3765, 0xB8DF},
+ {0x3766, 0xB8E1},
+ {0x3767, 0xB8E8},
+ {0x3768, 0xB8E9},
+ {0x3769, 0xB8EC},
+ {0x376A, 0xB8F0},
+ {0x376B, 0xB8F8},
+ {0x376C, 0xB8F9},
+ {0x376D, 0xB8FB},
+ {0x376E, 0xB8FD},
+ {0x376F, 0xB904},
+ {0x3770, 0xB918},
+ {0x3771, 0xB920},
+ {0x3772, 0xB93C},
+ {0x3773, 0xB93D},
+ {0x3774, 0xB940},
+ {0x3775, 0xB944},
+ {0x3776, 0xB94C},
+ {0x3777, 0xB94F},
+ {0x3778, 0xB951},
+ {0x3779, 0xB958},
+ {0x377A, 0xB959},
+ {0x377B, 0xB95C},
+ {0x377C, 0xB960},
+ {0x377D, 0xB968},
+ {0x377E, 0xB969},
+ {0x3821, 0xB96B},
+ {0x3822, 0xB96D},
+ {0x3823, 0xB974},
+ {0x3824, 0xB975},
+ {0x3825, 0xB978},
+ {0x3826, 0xB97C},
+ {0x3827, 0xB984},
+ {0x3828, 0xB985},
+ {0x3829, 0xB987},
+ {0x382A, 0xB989},
+ {0x382B, 0xB98A},
+ {0x382C, 0xB98D},
+ {0x382D, 0xB98E},
+ {0x382E, 0xB9AC},
+ {0x382F, 0xB9AD},
+ {0x3830, 0xB9B0},
+ {0x3831, 0xB9B4},
+ {0x3832, 0xB9BC},
+ {0x3833, 0xB9BD},
+ {0x3834, 0xB9BF},
+ {0x3835, 0xB9C1},
+ {0x3836, 0xB9C8},
+ {0x3837, 0xB9C9},
+ {0x3838, 0xB9CC},
+ {0x3839, 0xB9CE},
+ {0x383A, 0xB9CF},
+ {0x383B, 0xB9D0},
+ {0x383C, 0xB9D1},
+ {0x383D, 0xB9D2},
+ {0x383E, 0xB9D8},
+ {0x383F, 0xB9D9},
+ {0x3840, 0xB9DB},
+ {0x3841, 0xB9DD},
+ {0x3842, 0xB9DE},
+ {0x3843, 0xB9E1},
+ {0x3844, 0xB9E3},
+ {0x3845, 0xB9E4},
+ {0x3846, 0xB9E5},
+ {0x3847, 0xB9E8},
+ {0x3848, 0xB9EC},
+ {0x3849, 0xB9F4},
+ {0x384A, 0xB9F5},
+ {0x384B, 0xB9F7},
+ {0x384C, 0xB9F8},
+ {0x384D, 0xB9F9},
+ {0x384E, 0xB9FA},
+ {0x384F, 0xBA00},
+ {0x3850, 0xBA01},
+ {0x3851, 0xBA08},
+ {0x3852, 0xBA15},
+ {0x3853, 0xBA38},
+ {0x3854, 0xBA39},
+ {0x3855, 0xBA3C},
+ {0x3856, 0xBA40},
+ {0x3857, 0xBA42},
+ {0x3858, 0xBA48},
+ {0x3859, 0xBA49},
+ {0x385A, 0xBA4B},
+ {0x385B, 0xBA4D},
+ {0x385C, 0xBA4E},
+ {0x385D, 0xBA53},
+ {0x385E, 0xBA54},
+ {0x385F, 0xBA55},
+ {0x3860, 0xBA58},
+ {0x3861, 0xBA5C},
+ {0x3862, 0xBA64},
+ {0x3863, 0xBA65},
+ {0x3864, 0xBA67},
+ {0x3865, 0xBA68},
+ {0x3866, 0xBA69},
+ {0x3867, 0xBA70},
+ {0x3868, 0xBA71},
+ {0x3869, 0xBA74},
+ {0x386A, 0xBA78},
+ {0x386B, 0xBA83},
+ {0x386C, 0xBA84},
+ {0x386D, 0xBA85},
+ {0x386E, 0xBA87},
+ {0x386F, 0xBA8C},
+ {0x3870, 0xBAA8},
+ {0x3871, 0xBAA9},
+ {0x3872, 0xBAAB},
+ {0x3873, 0xBAAC},
+ {0x3874, 0xBAB0},
+ {0x3875, 0xBAB2},
+ {0x3876, 0xBAB8},
+ {0x3877, 0xBAB9},
+ {0x3878, 0xBABB},
+ {0x3879, 0xBABD},
+ {0x387A, 0xBAC4},
+ {0x387B, 0xBAC8},
+ {0x387C, 0xBAD8},
+ {0x387D, 0xBAD9},
+ {0x387E, 0xBAFC},
+ {0x3921, 0xBB00},
+ {0x3922, 0xBB04},
+ {0x3923, 0xBB0D},
+ {0x3924, 0xBB0F},
+ {0x3925, 0xBB11},
+ {0x3926, 0xBB18},
+ {0x3927, 0xBB1C},
+ {0x3928, 0xBB20},
+ {0x3929, 0xBB29},
+ {0x392A, 0xBB2B},
+ {0x392B, 0xBB34},
+ {0x392C, 0xBB35},
+ {0x392D, 0xBB36},
+ {0x392E, 0xBB38},
+ {0x392F, 0xBB3B},
+ {0x3930, 0xBB3C},
+ {0x3931, 0xBB3D},
+ {0x3932, 0xBB3E},
+ {0x3933, 0xBB44},
+ {0x3934, 0xBB45},
+ {0x3935, 0xBB47},
+ {0x3936, 0xBB49},
+ {0x3937, 0xBB4D},
+ {0x3938, 0xBB4F},
+ {0x3939, 0xBB50},
+ {0x393A, 0xBB54},
+ {0x393B, 0xBB58},
+ {0x393C, 0xBB61},
+ {0x393D, 0xBB63},
+ {0x393E, 0xBB6C},
+ {0x393F, 0xBB88},
+ {0x3940, 0xBB8C},
+ {0x3941, 0xBB90},
+ {0x3942, 0xBBA4},
+ {0x3943, 0xBBA8},
+ {0x3944, 0xBBAC},
+ {0x3945, 0xBBB4},
+ {0x3946, 0xBBB7},
+ {0x3947, 0xBBC0},
+ {0x3948, 0xBBC4},
+ {0x3949, 0xBBC8},
+ {0x394A, 0xBBD0},
+ {0x394B, 0xBBD3},
+ {0x394C, 0xBBF8},
+ {0x394D, 0xBBF9},
+ {0x394E, 0xBBFC},
+ {0x394F, 0xBBFF},
+ {0x3950, 0xBC00},
+ {0x3951, 0xBC02},
+ {0x3952, 0xBC08},
+ {0x3953, 0xBC09},
+ {0x3954, 0xBC0B},
+ {0x3955, 0xBC0C},
+ {0x3956, 0xBC0D},
+ {0x3957, 0xBC0F},
+ {0x3958, 0xBC11},
+ {0x3959, 0xBC14},
+ {0x395A, 0xBC15},
+ {0x395B, 0xBC16},
+ {0x395C, 0xBC17},
+ {0x395D, 0xBC18},
+ {0x395E, 0xBC1B},
+ {0x395F, 0xBC1C},
+ {0x3960, 0xBC1D},
+ {0x3961, 0xBC1E},
+ {0x3962, 0xBC1F},
+ {0x3963, 0xBC24},
+ {0x3964, 0xBC25},
+ {0x3965, 0xBC27},
+ {0x3966, 0xBC29},
+ {0x3967, 0xBC2D},
+ {0x3968, 0xBC30},
+ {0x3969, 0xBC31},
+ {0x396A, 0xBC34},
+ {0x396B, 0xBC38},
+ {0x396C, 0xBC40},
+ {0x396D, 0xBC41},
+ {0x396E, 0xBC43},
+ {0x396F, 0xBC44},
+ {0x3970, 0xBC45},
+ {0x3971, 0xBC49},
+ {0x3972, 0xBC4C},
+ {0x3973, 0xBC4D},
+ {0x3974, 0xBC50},
+ {0x3975, 0xBC5D},
+ {0x3976, 0xBC84},
+ {0x3977, 0xBC85},
+ {0x3978, 0xBC88},
+ {0x3979, 0xBC8B},
+ {0x397A, 0xBC8C},
+ {0x397B, 0xBC8E},
+ {0x397C, 0xBC94},
+ {0x397D, 0xBC95},
+ {0x397E, 0xBC97},
+ {0x3A21, 0xBC99},
+ {0x3A22, 0xBC9A},
+ {0x3A23, 0xBCA0},
+ {0x3A24, 0xBCA1},
+ {0x3A25, 0xBCA4},
+ {0x3A26, 0xBCA7},
+ {0x3A27, 0xBCA8},
+ {0x3A28, 0xBCB0},
+ {0x3A29, 0xBCB1},
+ {0x3A2A, 0xBCB3},
+ {0x3A2B, 0xBCB4},
+ {0x3A2C, 0xBCB5},
+ {0x3A2D, 0xBCBC},
+ {0x3A2E, 0xBCBD},
+ {0x3A2F, 0xBCC0},
+ {0x3A30, 0xBCC4},
+ {0x3A31, 0xBCCD},
+ {0x3A32, 0xBCCF},
+ {0x3A33, 0xBCD0},
+ {0x3A34, 0xBCD1},
+ {0x3A35, 0xBCD5},
+ {0x3A36, 0xBCD8},
+ {0x3A37, 0xBCDC},
+ {0x3A38, 0xBCF4},
+ {0x3A39, 0xBCF5},
+ {0x3A3A, 0xBCF6},
+ {0x3A3B, 0xBCF8},
+ {0x3A3C, 0xBCFC},
+ {0x3A3D, 0xBD04},
+ {0x3A3E, 0xBD05},
+ {0x3A3F, 0xBD07},
+ {0x3A40, 0xBD09},
+ {0x3A41, 0xBD10},
+ {0x3A42, 0xBD14},
+ {0x3A43, 0xBD24},
+ {0x3A44, 0xBD2C},
+ {0x3A45, 0xBD40},
+ {0x3A46, 0xBD48},
+ {0x3A47, 0xBD49},
+ {0x3A48, 0xBD4C},
+ {0x3A49, 0xBD50},
+ {0x3A4A, 0xBD58},
+ {0x3A4B, 0xBD59},
+ {0x3A4C, 0xBD64},
+ {0x3A4D, 0xBD68},
+ {0x3A4E, 0xBD80},
+ {0x3A4F, 0xBD81},
+ {0x3A50, 0xBD84},
+ {0x3A51, 0xBD87},
+ {0x3A52, 0xBD88},
+ {0x3A53, 0xBD89},
+ {0x3A54, 0xBD8A},
+ {0x3A55, 0xBD90},
+ {0x3A56, 0xBD91},
+ {0x3A57, 0xBD93},
+ {0x3A58, 0xBD95},
+ {0x3A59, 0xBD99},
+ {0x3A5A, 0xBD9A},
+ {0x3A5B, 0xBD9C},
+ {0x3A5C, 0xBDA4},
+ {0x3A5D, 0xBDB0},
+ {0x3A5E, 0xBDB8},
+ {0x3A5F, 0xBDD4},
+ {0x3A60, 0xBDD5},
+ {0x3A61, 0xBDD8},
+ {0x3A62, 0xBDDC},
+ {0x3A63, 0xBDE9},
+ {0x3A64, 0xBDF0},
+ {0x3A65, 0xBDF4},
+ {0x3A66, 0xBDF8},
+ {0x3A67, 0xBE00},
+ {0x3A68, 0xBE03},
+ {0x3A69, 0xBE05},
+ {0x3A6A, 0xBE0C},
+ {0x3A6B, 0xBE0D},
+ {0x3A6C, 0xBE10},
+ {0x3A6D, 0xBE14},
+ {0x3A6E, 0xBE1C},
+ {0x3A6F, 0xBE1D},
+ {0x3A70, 0xBE1F},
+ {0x3A71, 0xBE44},
+ {0x3A72, 0xBE45},
+ {0x3A73, 0xBE48},
+ {0x3A74, 0xBE4C},
+ {0x3A75, 0xBE4E},
+ {0x3A76, 0xBE54},
+ {0x3A77, 0xBE55},
+ {0x3A78, 0xBE57},
+ {0x3A79, 0xBE59},
+ {0x3A7A, 0xBE5A},
+ {0x3A7B, 0xBE5B},
+ {0x3A7C, 0xBE60},
+ {0x3A7D, 0xBE61},
+ {0x3A7E, 0xBE64},
+ {0x3B21, 0xBE68},
+ {0x3B22, 0xBE6A},
+ {0x3B23, 0xBE70},
+ {0x3B24, 0xBE71},
+ {0x3B25, 0xBE73},
+ {0x3B26, 0xBE74},
+ {0x3B27, 0xBE75},
+ {0x3B28, 0xBE7B},
+ {0x3B29, 0xBE7C},
+ {0x3B2A, 0xBE7D},
+ {0x3B2B, 0xBE80},
+ {0x3B2C, 0xBE84},
+ {0x3B2D, 0xBE8C},
+ {0x3B2E, 0xBE8D},
+ {0x3B2F, 0xBE8F},
+ {0x3B30, 0xBE90},
+ {0x3B31, 0xBE91},
+ {0x3B32, 0xBE98},
+ {0x3B33, 0xBE99},
+ {0x3B34, 0xBEA8},
+ {0x3B35, 0xBED0},
+ {0x3B36, 0xBED1},
+ {0x3B37, 0xBED4},
+ {0x3B38, 0xBED7},
+ {0x3B39, 0xBED8},
+ {0x3B3A, 0xBEE0},
+ {0x3B3B, 0xBEE3},
+ {0x3B3C, 0xBEE4},
+ {0x3B3D, 0xBEE5},
+ {0x3B3E, 0xBEEC},
+ {0x3B3F, 0xBF01},
+ {0x3B40, 0xBF08},
+ {0x3B41, 0xBF09},
+ {0x3B42, 0xBF18},
+ {0x3B43, 0xBF19},
+ {0x3B44, 0xBF1B},
+ {0x3B45, 0xBF1C},
+ {0x3B46, 0xBF1D},
+ {0x3B47, 0xBF40},
+ {0x3B48, 0xBF41},
+ {0x3B49, 0xBF44},
+ {0x3B4A, 0xBF48},
+ {0x3B4B, 0xBF50},
+ {0x3B4C, 0xBF51},
+ {0x3B4D, 0xBF55},
+ {0x3B4E, 0xBF94},
+ {0x3B4F, 0xBFB0},
+ {0x3B50, 0xBFC5},
+ {0x3B51, 0xBFCC},
+ {0x3B52, 0xBFCD},
+ {0x3B53, 0xBFD0},
+ {0x3B54, 0xBFD4},
+ {0x3B55, 0xBFDC},
+ {0x3B56, 0xBFDF},
+ {0x3B57, 0xBFE1},
+ {0x3B58, 0xC03C},
+ {0x3B59, 0xC051},
+ {0x3B5A, 0xC058},
+ {0x3B5B, 0xC05C},
+ {0x3B5C, 0xC060},
+ {0x3B5D, 0xC068},
+ {0x3B5E, 0xC069},
+ {0x3B5F, 0xC090},
+ {0x3B60, 0xC091},
+ {0x3B61, 0xC094},
+ {0x3B62, 0xC098},
+ {0x3B63, 0xC0A0},
+ {0x3B64, 0xC0A1},
+ {0x3B65, 0xC0A3},
+ {0x3B66, 0xC0A5},
+ {0x3B67, 0xC0AC},
+ {0x3B68, 0xC0AD},
+ {0x3B69, 0xC0AF},
+ {0x3B6A, 0xC0B0},
+ {0x3B6B, 0xC0B3},
+ {0x3B6C, 0xC0B4},
+ {0x3B6D, 0xC0B5},
+ {0x3B6E, 0xC0B6},
+ {0x3B6F, 0xC0BC},
+ {0x3B70, 0xC0BD},
+ {0x3B71, 0xC0BF},
+ {0x3B72, 0xC0C0},
+ {0x3B73, 0xC0C1},
+ {0x3B74, 0xC0C5},
+ {0x3B75, 0xC0C8},
+ {0x3B76, 0xC0C9},
+ {0x3B77, 0xC0CC},
+ {0x3B78, 0xC0D0},
+ {0x3B79, 0xC0D8},
+ {0x3B7A, 0xC0D9},
+ {0x3B7B, 0xC0DB},
+ {0x3B7C, 0xC0DC},
+ {0x3B7D, 0xC0DD},
+ {0x3B7E, 0xC0E4},
+ {0x3C21, 0xC0E5},
+ {0x3C22, 0xC0E8},
+ {0x3C23, 0xC0EC},
+ {0x3C24, 0xC0F4},
+ {0x3C25, 0xC0F5},
+ {0x3C26, 0xC0F7},
+ {0x3C27, 0xC0F9},
+ {0x3C28, 0xC100},
+ {0x3C29, 0xC104},
+ {0x3C2A, 0xC108},
+ {0x3C2B, 0xC110},
+ {0x3C2C, 0xC115},
+ {0x3C2D, 0xC11C},
+ {0x3C2E, 0xC11D},
+ {0x3C2F, 0xC11E},
+ {0x3C30, 0xC11F},
+ {0x3C31, 0xC120},
+ {0x3C32, 0xC123},
+ {0x3C33, 0xC124},
+ {0x3C34, 0xC126},
+ {0x3C35, 0xC127},
+ {0x3C36, 0xC12C},
+ {0x3C37, 0xC12D},
+ {0x3C38, 0xC12F},
+ {0x3C39, 0xC130},
+ {0x3C3A, 0xC131},
+ {0x3C3B, 0xC136},
+ {0x3C3C, 0xC138},
+ {0x3C3D, 0xC139},
+ {0x3C3E, 0xC13C},
+ {0x3C3F, 0xC140},
+ {0x3C40, 0xC148},
+ {0x3C41, 0xC149},
+ {0x3C42, 0xC14B},
+ {0x3C43, 0xC14C},
+ {0x3C44, 0xC14D},
+ {0x3C45, 0xC154},
+ {0x3C46, 0xC155},
+ {0x3C47, 0xC158},
+ {0x3C48, 0xC15C},
+ {0x3C49, 0xC164},
+ {0x3C4A, 0xC165},
+ {0x3C4B, 0xC167},
+ {0x3C4C, 0xC168},
+ {0x3C4D, 0xC169},
+ {0x3C4E, 0xC170},
+ {0x3C4F, 0xC174},
+ {0x3C50, 0xC178},
+ {0x3C51, 0xC185},
+ {0x3C52, 0xC18C},
+ {0x3C53, 0xC18D},
+ {0x3C54, 0xC18E},
+ {0x3C55, 0xC190},
+ {0x3C56, 0xC194},
+ {0x3C57, 0xC196},
+ {0x3C58, 0xC19C},
+ {0x3C59, 0xC19D},
+ {0x3C5A, 0xC19F},
+ {0x3C5B, 0xC1A1},
+ {0x3C5C, 0xC1A5},
+ {0x3C5D, 0xC1A8},
+ {0x3C5E, 0xC1A9},
+ {0x3C5F, 0xC1AC},
+ {0x3C60, 0xC1B0},
+ {0x3C61, 0xC1BD},
+ {0x3C62, 0xC1C4},
+ {0x3C63, 0xC1C8},
+ {0x3C64, 0xC1CC},
+ {0x3C65, 0xC1D4},
+ {0x3C66, 0xC1D7},
+ {0x3C67, 0xC1D8},
+ {0x3C68, 0xC1E0},
+ {0x3C69, 0xC1E4},
+ {0x3C6A, 0xC1E8},
+ {0x3C6B, 0xC1F0},
+ {0x3C6C, 0xC1F1},
+ {0x3C6D, 0xC1F3},
+ {0x3C6E, 0xC1FC},
+ {0x3C6F, 0xC1FD},
+ {0x3C70, 0xC200},
+ {0x3C71, 0xC204},
+ {0x3C72, 0xC20C},
+ {0x3C73, 0xC20D},
+ {0x3C74, 0xC20F},
+ {0x3C75, 0xC211},
+ {0x3C76, 0xC218},
+ {0x3C77, 0xC219},
+ {0x3C78, 0xC21C},
+ {0x3C79, 0xC21F},
+ {0x3C7A, 0xC220},
+ {0x3C7B, 0xC228},
+ {0x3C7C, 0xC229},
+ {0x3C7D, 0xC22B},
+ {0x3C7E, 0xC22D},
+ {0x3D21, 0xC22F},
+ {0x3D22, 0xC231},
+ {0x3D23, 0xC232},
+ {0x3D24, 0xC234},
+ {0x3D25, 0xC248},
+ {0x3D26, 0xC250},
+ {0x3D27, 0xC251},
+ {0x3D28, 0xC254},
+ {0x3D29, 0xC258},
+ {0x3D2A, 0xC260},
+ {0x3D2B, 0xC265},
+ {0x3D2C, 0xC26C},
+ {0x3D2D, 0xC26D},
+ {0x3D2E, 0xC270},
+ {0x3D2F, 0xC274},
+ {0x3D30, 0xC27C},
+ {0x3D31, 0xC27D},
+ {0x3D32, 0xC27F},
+ {0x3D33, 0xC281},
+ {0x3D34, 0xC288},
+ {0x3D35, 0xC289},
+ {0x3D36, 0xC290},
+ {0x3D37, 0xC298},
+ {0x3D38, 0xC29B},
+ {0x3D39, 0xC29D},
+ {0x3D3A, 0xC2A4},
+ {0x3D3B, 0xC2A5},
+ {0x3D3C, 0xC2A8},
+ {0x3D3D, 0xC2AC},
+ {0x3D3E, 0xC2AD},
+ {0x3D3F, 0xC2B4},
+ {0x3D40, 0xC2B5},
+ {0x3D41, 0xC2B7},
+ {0x3D42, 0xC2B9},
+ {0x3D43, 0xC2DC},
+ {0x3D44, 0xC2DD},
+ {0x3D45, 0xC2E0},
+ {0x3D46, 0xC2E3},
+ {0x3D47, 0xC2E4},
+ {0x3D48, 0xC2EB},
+ {0x3D49, 0xC2EC},
+ {0x3D4A, 0xC2ED},
+ {0x3D4B, 0xC2EF},
+ {0x3D4C, 0xC2F1},
+ {0x3D4D, 0xC2F6},
+ {0x3D4E, 0xC2F8},
+ {0x3D4F, 0xC2F9},
+ {0x3D50, 0xC2FB},
+ {0x3D51, 0xC2FC},
+ {0x3D52, 0xC300},
+ {0x3D53, 0xC308},
+ {0x3D54, 0xC309},
+ {0x3D55, 0xC30C},
+ {0x3D56, 0xC30D},
+ {0x3D57, 0xC313},
+ {0x3D58, 0xC314},
+ {0x3D59, 0xC315},
+ {0x3D5A, 0xC318},
+ {0x3D5B, 0xC31C},
+ {0x3D5C, 0xC324},
+ {0x3D5D, 0xC325},
+ {0x3D5E, 0xC328},
+ {0x3D5F, 0xC329},
+ {0x3D60, 0xC345},
+ {0x3D61, 0xC368},
+ {0x3D62, 0xC369},
+ {0x3D63, 0xC36C},
+ {0x3D64, 0xC370},
+ {0x3D65, 0xC372},
+ {0x3D66, 0xC378},
+ {0x3D67, 0xC379},
+ {0x3D68, 0xC37C},
+ {0x3D69, 0xC37D},
+ {0x3D6A, 0xC384},
+ {0x3D6B, 0xC388},
+ {0x3D6C, 0xC38C},
+ {0x3D6D, 0xC3C0},
+ {0x3D6E, 0xC3D8},
+ {0x3D6F, 0xC3D9},
+ {0x3D70, 0xC3DC},
+ {0x3D71, 0xC3DF},
+ {0x3D72, 0xC3E0},
+ {0x3D73, 0xC3E2},
+ {0x3D74, 0xC3E8},
+ {0x3D75, 0xC3E9},
+ {0x3D76, 0xC3ED},
+ {0x3D77, 0xC3F4},
+ {0x3D78, 0xC3F5},
+ {0x3D79, 0xC3F8},
+ {0x3D7A, 0xC408},
+ {0x3D7B, 0xC410},
+ {0x3D7C, 0xC424},
+ {0x3D7D, 0xC42C},
+ {0x3D7E, 0xC430},
+ {0x3E21, 0xC434},
+ {0x3E22, 0xC43C},
+ {0x3E23, 0xC43D},
+ {0x3E24, 0xC448},
+ {0x3E25, 0xC464},
+ {0x3E26, 0xC465},
+ {0x3E27, 0xC468},
+ {0x3E28, 0xC46C},
+ {0x3E29, 0xC474},
+ {0x3E2A, 0xC475},
+ {0x3E2B, 0xC479},
+ {0x3E2C, 0xC480},
+ {0x3E2D, 0xC494},
+ {0x3E2E, 0xC49C},
+ {0x3E2F, 0xC4B8},
+ {0x3E30, 0xC4BC},
+ {0x3E31, 0xC4E9},
+ {0x3E32, 0xC4F0},
+ {0x3E33, 0xC4F1},
+ {0x3E34, 0xC4F4},
+ {0x3E35, 0xC4F8},
+ {0x3E36, 0xC4FA},
+ {0x3E37, 0xC4FF},
+ {0x3E38, 0xC500},
+ {0x3E39, 0xC501},
+ {0x3E3A, 0xC50C},
+ {0x3E3B, 0xC510},
+ {0x3E3C, 0xC514},
+ {0x3E3D, 0xC51C},
+ {0x3E3E, 0xC528},
+ {0x3E3F, 0xC529},
+ {0x3E40, 0xC52C},
+ {0x3E41, 0xC530},
+ {0x3E42, 0xC538},
+ {0x3E43, 0xC539},
+ {0x3E44, 0xC53B},
+ {0x3E45, 0xC53D},
+ {0x3E46, 0xC544},
+ {0x3E47, 0xC545},
+ {0x3E48, 0xC548},
+ {0x3E49, 0xC549},
+ {0x3E4A, 0xC54A},
+ {0x3E4B, 0xC54C},
+ {0x3E4C, 0xC54D},
+ {0x3E4D, 0xC54E},
+ {0x3E4E, 0xC553},
+ {0x3E4F, 0xC554},
+ {0x3E50, 0xC555},
+ {0x3E51, 0xC557},
+ {0x3E52, 0xC558},
+ {0x3E53, 0xC559},
+ {0x3E54, 0xC55D},
+ {0x3E55, 0xC55E},
+ {0x3E56, 0xC560},
+ {0x3E57, 0xC561},
+ {0x3E58, 0xC564},
+ {0x3E59, 0xC568},
+ {0x3E5A, 0xC570},
+ {0x3E5B, 0xC571},
+ {0x3E5C, 0xC573},
+ {0x3E5D, 0xC574},
+ {0x3E5E, 0xC575},
+ {0x3E5F, 0xC57C},
+ {0x3E60, 0xC57D},
+ {0x3E61, 0xC580},
+ {0x3E62, 0xC584},
+ {0x3E63, 0xC587},
+ {0x3E64, 0xC58C},
+ {0x3E65, 0xC58D},
+ {0x3E66, 0xC58F},
+ {0x3E67, 0xC591},
+ {0x3E68, 0xC595},
+ {0x3E69, 0xC597},
+ {0x3E6A, 0xC598},
+ {0x3E6B, 0xC59C},
+ {0x3E6C, 0xC5A0},
+ {0x3E6D, 0xC5A9},
+ {0x3E6E, 0xC5B4},
+ {0x3E6F, 0xC5B5},
+ {0x3E70, 0xC5B8},
+ {0x3E71, 0xC5B9},
+ {0x3E72, 0xC5BB},
+ {0x3E73, 0xC5BC},
+ {0x3E74, 0xC5BD},
+ {0x3E75, 0xC5BE},
+ {0x3E76, 0xC5C4},
+ {0x3E77, 0xC5C5},
+ {0x3E78, 0xC5C6},
+ {0x3E79, 0xC5C7},
+ {0x3E7A, 0xC5C8},
+ {0x3E7B, 0xC5C9},
+ {0x3E7C, 0xC5CA},
+ {0x3E7D, 0xC5CC},
+ {0x3E7E, 0xC5CE},
+ {0x3F21, 0xC5D0},
+ {0x3F22, 0xC5D1},
+ {0x3F23, 0xC5D4},
+ {0x3F24, 0xC5D8},
+ {0x3F25, 0xC5E0},
+ {0x3F26, 0xC5E1},
+ {0x3F27, 0xC5E3},
+ {0x3F28, 0xC5E5},
+ {0x3F29, 0xC5EC},
+ {0x3F2A, 0xC5ED},
+ {0x3F2B, 0xC5EE},
+ {0x3F2C, 0xC5F0},
+ {0x3F2D, 0xC5F4},
+ {0x3F2E, 0xC5F6},
+ {0x3F2F, 0xC5F7},
+ {0x3F30, 0xC5FC},
+ {0x3F31, 0xC5FD},
+ {0x3F32, 0xC5FE},
+ {0x3F33, 0xC5FF},
+ {0x3F34, 0xC600},
+ {0x3F35, 0xC601},
+ {0x3F36, 0xC605},
+ {0x3F37, 0xC606},
+ {0x3F38, 0xC607},
+ {0x3F39, 0xC608},
+ {0x3F3A, 0xC60C},
+ {0x3F3B, 0xC610},
+ {0x3F3C, 0xC618},
+ {0x3F3D, 0xC619},
+ {0x3F3E, 0xC61B},
+ {0x3F3F, 0xC61C},
+ {0x3F40, 0xC624},
+ {0x3F41, 0xC625},
+ {0x3F42, 0xC628},
+ {0x3F43, 0xC62C},
+ {0x3F44, 0xC62D},
+ {0x3F45, 0xC62E},
+ {0x3F46, 0xC630},
+ {0x3F47, 0xC633},
+ {0x3F48, 0xC634},
+ {0x3F49, 0xC635},
+ {0x3F4A, 0xC637},
+ {0x3F4B, 0xC639},
+ {0x3F4C, 0xC63B},
+ {0x3F4D, 0xC640},
+ {0x3F4E, 0xC641},
+ {0x3F4F, 0xC644},
+ {0x3F50, 0xC648},
+ {0x3F51, 0xC650},
+ {0x3F52, 0xC651},
+ {0x3F53, 0xC653},
+ {0x3F54, 0xC654},
+ {0x3F55, 0xC655},
+ {0x3F56, 0xC65C},
+ {0x3F57, 0xC65D},
+ {0x3F58, 0xC660},
+ {0x3F59, 0xC66C},
+ {0x3F5A, 0xC66F},
+ {0x3F5B, 0xC671},
+ {0x3F5C, 0xC678},
+ {0x3F5D, 0xC679},
+ {0x3F5E, 0xC67C},
+ {0x3F5F, 0xC680},
+ {0x3F60, 0xC688},
+ {0x3F61, 0xC689},
+ {0x3F62, 0xC68B},
+ {0x3F63, 0xC68D},
+ {0x3F64, 0xC694},
+ {0x3F65, 0xC695},
+ {0x3F66, 0xC698},
+ {0x3F67, 0xC69C},
+ {0x3F68, 0xC6A4},
+ {0x3F69, 0xC6A5},
+ {0x3F6A, 0xC6A7},
+ {0x3F6B, 0xC6A9},
+ {0x3F6C, 0xC6B0},
+ {0x3F6D, 0xC6B1},
+ {0x3F6E, 0xC6B4},
+ {0x3F6F, 0xC6B8},
+ {0x3F70, 0xC6B9},
+ {0x3F71, 0xC6BA},
+ {0x3F72, 0xC6C0},
+ {0x3F73, 0xC6C1},
+ {0x3F74, 0xC6C3},
+ {0x3F75, 0xC6C5},
+ {0x3F76, 0xC6CC},
+ {0x3F77, 0xC6CD},
+ {0x3F78, 0xC6D0},
+ {0x3F79, 0xC6D4},
+ {0x3F7A, 0xC6DC},
+ {0x3F7B, 0xC6DD},
+ {0x3F7C, 0xC6E0},
+ {0x3F7D, 0xC6E1},
+ {0x3F7E, 0xC6E8},
+ {0x4021, 0xC6E9},
+ {0x4022, 0xC6EC},
+ {0x4023, 0xC6F0},
+ {0x4024, 0xC6F8},
+ {0x4025, 0xC6F9},
+ {0x4026, 0xC6FD},
+ {0x4027, 0xC704},
+ {0x4028, 0xC705},
+ {0x4029, 0xC708},
+ {0x402A, 0xC70C},
+ {0x402B, 0xC714},
+ {0x402C, 0xC715},
+ {0x402D, 0xC717},
+ {0x402E, 0xC719},
+ {0x402F, 0xC720},
+ {0x4030, 0xC721},
+ {0x4031, 0xC724},
+ {0x4032, 0xC728},
+ {0x4033, 0xC730},
+ {0x4034, 0xC731},
+ {0x4035, 0xC733},
+ {0x4036, 0xC735},
+ {0x4037, 0xC737},
+ {0x4038, 0xC73C},
+ {0x4039, 0xC73D},
+ {0x403A, 0xC740},
+ {0x403B, 0xC744},
+ {0x403C, 0xC74A},
+ {0x403D, 0xC74C},
+ {0x403E, 0xC74D},
+ {0x403F, 0xC74F},
+ {0x4040, 0xC751},
+ {0x4041, 0xC752},
+ {0x4042, 0xC753},
+ {0x4043, 0xC754},
+ {0x4044, 0xC755},
+ {0x4045, 0xC756},
+ {0x4046, 0xC757},
+ {0x4047, 0xC758},
+ {0x4048, 0xC75C},
+ {0x4049, 0xC760},
+ {0x404A, 0xC768},
+ {0x404B, 0xC76B},
+ {0x404C, 0xC774},
+ {0x404D, 0xC775},
+ {0x404E, 0xC778},
+ {0x404F, 0xC77C},
+ {0x4050, 0xC77D},
+ {0x4051, 0xC77E},
+ {0x4052, 0xC783},
+ {0x4053, 0xC784},
+ {0x4054, 0xC785},
+ {0x4055, 0xC787},
+ {0x4056, 0xC788},
+ {0x4057, 0xC789},
+ {0x4058, 0xC78A},
+ {0x4059, 0xC78E},
+ {0x405A, 0xC790},
+ {0x405B, 0xC791},
+ {0x405C, 0xC794},
+ {0x405D, 0xC796},
+ {0x405E, 0xC797},
+ {0x405F, 0xC798},
+ {0x4060, 0xC79A},
+ {0x4061, 0xC7A0},
+ {0x4062, 0xC7A1},
+ {0x4063, 0xC7A3},
+ {0x4064, 0xC7A4},
+ {0x4065, 0xC7A5},
+ {0x4066, 0xC7A6},
+ {0x4067, 0xC7AC},
+ {0x4068, 0xC7AD},
+ {0x4069, 0xC7B0},
+ {0x406A, 0xC7B4},
+ {0x406B, 0xC7BC},
+ {0x406C, 0xC7BD},
+ {0x406D, 0xC7BF},
+ {0x406E, 0xC7C0},
+ {0x406F, 0xC7C1},
+ {0x4070, 0xC7C8},
+ {0x4071, 0xC7C9},
+ {0x4072, 0xC7CC},
+ {0x4073, 0xC7CE},
+ {0x4074, 0xC7D0},
+ {0x4075, 0xC7D8},
+ {0x4076, 0xC7DD},
+ {0x4077, 0xC7E4},
+ {0x4078, 0xC7E8},
+ {0x4079, 0xC7EC},
+ {0x407A, 0xC800},
+ {0x407B, 0xC801},
+ {0x407C, 0xC804},
+ {0x407D, 0xC808},
+ {0x407E, 0xC80A},
+ {0x4121, 0xC810},
+ {0x4122, 0xC811},
+ {0x4123, 0xC813},
+ {0x4124, 0xC815},
+ {0x4125, 0xC816},
+ {0x4126, 0xC81C},
+ {0x4127, 0xC81D},
+ {0x4128, 0xC820},
+ {0x4129, 0xC824},
+ {0x412A, 0xC82C},
+ {0x412B, 0xC82D},
+ {0x412C, 0xC82F},
+ {0x412D, 0xC831},
+ {0x412E, 0xC838},
+ {0x412F, 0xC83C},
+ {0x4130, 0xC840},
+ {0x4131, 0xC848},
+ {0x4132, 0xC849},
+ {0x4133, 0xC84C},
+ {0x4134, 0xC84D},
+ {0x4135, 0xC854},
+ {0x4136, 0xC870},
+ {0x4137, 0xC871},
+ {0x4138, 0xC874},
+ {0x4139, 0xC878},
+ {0x413A, 0xC87A},
+ {0x413B, 0xC880},
+ {0x413C, 0xC881},
+ {0x413D, 0xC883},
+ {0x413E, 0xC885},
+ {0x413F, 0xC886},
+ {0x4140, 0xC887},
+ {0x4141, 0xC88B},
+ {0x4142, 0xC88C},
+ {0x4143, 0xC88D},
+ {0x4144, 0xC894},
+ {0x4145, 0xC89D},
+ {0x4146, 0xC89F},
+ {0x4147, 0xC8A1},
+ {0x4148, 0xC8A8},
+ {0x4149, 0xC8BC},
+ {0x414A, 0xC8BD},
+ {0x414B, 0xC8C4},
+ {0x414C, 0xC8C8},
+ {0x414D, 0xC8CC},
+ {0x414E, 0xC8D4},
+ {0x414F, 0xC8D5},
+ {0x4150, 0xC8D7},
+ {0x4151, 0xC8D9},
+ {0x4152, 0xC8E0},
+ {0x4153, 0xC8E1},
+ {0x4154, 0xC8E4},
+ {0x4155, 0xC8F5},
+ {0x4156, 0xC8FC},
+ {0x4157, 0xC8FD},
+ {0x4158, 0xC900},
+ {0x4159, 0xC904},
+ {0x415A, 0xC905},
+ {0x415B, 0xC906},
+ {0x415C, 0xC90C},
+ {0x415D, 0xC90D},
+ {0x415E, 0xC90F},
+ {0x415F, 0xC911},
+ {0x4160, 0xC918},
+ {0x4161, 0xC92C},
+ {0x4162, 0xC934},
+ {0x4163, 0xC950},
+ {0x4164, 0xC951},
+ {0x4165, 0xC954},
+ {0x4166, 0xC958},
+ {0x4167, 0xC960},
+ {0x4168, 0xC961},
+ {0x4169, 0xC963},
+ {0x416A, 0xC96C},
+ {0x416B, 0xC970},
+ {0x416C, 0xC974},
+ {0x416D, 0xC97C},
+ {0x416E, 0xC988},
+ {0x416F, 0xC989},
+ {0x4170, 0xC98C},
+ {0x4171, 0xC990},
+ {0x4172, 0xC998},
+ {0x4173, 0xC999},
+ {0x4174, 0xC99B},
+ {0x4175, 0xC99D},
+ {0x4176, 0xC9C0},
+ {0x4177, 0xC9C1},
+ {0x4178, 0xC9C4},
+ {0x4179, 0xC9C7},
+ {0x417A, 0xC9C8},
+ {0x417B, 0xC9CA},
+ {0x417C, 0xC9D0},
+ {0x417D, 0xC9D1},
+ {0x417E, 0xC9D3},
+ {0x4221, 0xC9D5},
+ {0x4222, 0xC9D6},
+ {0x4223, 0xC9D9},
+ {0x4224, 0xC9DA},
+ {0x4225, 0xC9DC},
+ {0x4226, 0xC9DD},
+ {0x4227, 0xC9E0},
+ {0x4228, 0xC9E2},
+ {0x4229, 0xC9E4},
+ {0x422A, 0xC9E7},
+ {0x422B, 0xC9EC},
+ {0x422C, 0xC9ED},
+ {0x422D, 0xC9EF},
+ {0x422E, 0xC9F0},
+ {0x422F, 0xC9F1},
+ {0x4230, 0xC9F8},
+ {0x4231, 0xC9F9},
+ {0x4232, 0xC9FC},
+ {0x4233, 0xCA00},
+ {0x4234, 0xCA08},
+ {0x4235, 0xCA09},
+ {0x4236, 0xCA0B},
+ {0x4237, 0xCA0C},
+ {0x4238, 0xCA0D},
+ {0x4239, 0xCA14},
+ {0x423A, 0xCA18},
+ {0x423B, 0xCA29},
+ {0x423C, 0xCA4C},
+ {0x423D, 0xCA4D},
+ {0x423E, 0xCA50},
+ {0x423F, 0xCA54},
+ {0x4240, 0xCA5C},
+ {0x4241, 0xCA5D},
+ {0x4242, 0xCA5F},
+ {0x4243, 0xCA60},
+ {0x4244, 0xCA61},
+ {0x4245, 0xCA68},
+ {0x4246, 0xCA7D},
+ {0x4247, 0xCA84},
+ {0x4248, 0xCA98},
+ {0x4249, 0xCABC},
+ {0x424A, 0xCABD},
+ {0x424B, 0xCAC0},
+ {0x424C, 0xCAC4},
+ {0x424D, 0xCACC},
+ {0x424E, 0xCACD},
+ {0x424F, 0xCACF},
+ {0x4250, 0xCAD1},
+ {0x4251, 0xCAD3},
+ {0x4252, 0xCAD8},
+ {0x4253, 0xCAD9},
+ {0x4254, 0xCAE0},
+ {0x4255, 0xCAEC},
+ {0x4256, 0xCAF4},
+ {0x4257, 0xCB08},
+ {0x4258, 0xCB10},
+ {0x4259, 0xCB14},
+ {0x425A, 0xCB18},
+ {0x425B, 0xCB20},
+ {0x425C, 0xCB21},
+ {0x425D, 0xCB41},
+ {0x425E, 0xCB48},
+ {0x425F, 0xCB49},
+ {0x4260, 0xCB4C},
+ {0x4261, 0xCB50},
+ {0x4262, 0xCB58},
+ {0x4263, 0xCB59},
+ {0x4264, 0xCB5D},
+ {0x4265, 0xCB64},
+ {0x4266, 0xCB78},
+ {0x4267, 0xCB79},
+ {0x4268, 0xCB9C},
+ {0x4269, 0xCBB8},
+ {0x426A, 0xCBD4},
+ {0x426B, 0xCBE4},
+ {0x426C, 0xCBE7},
+ {0x426D, 0xCBE9},
+ {0x426E, 0xCC0C},
+ {0x426F, 0xCC0D},
+ {0x4270, 0xCC10},
+ {0x4271, 0xCC14},
+ {0x4272, 0xCC1C},
+ {0x4273, 0xCC1D},
+ {0x4274, 0xCC21},
+ {0x4275, 0xCC22},
+ {0x4276, 0xCC27},
+ {0x4277, 0xCC28},
+ {0x4278, 0xCC29},
+ {0x4279, 0xCC2C},
+ {0x427A, 0xCC2E},
+ {0x427B, 0xCC30},
+ {0x427C, 0xCC38},
+ {0x427D, 0xCC39},
+ {0x427E, 0xCC3B},
+ {0x4321, 0xCC3C},
+ {0x4322, 0xCC3D},
+ {0x4323, 0xCC3E},
+ {0x4324, 0xCC44},
+ {0x4325, 0xCC45},
+ {0x4326, 0xCC48},
+ {0x4327, 0xCC4C},
+ {0x4328, 0xCC54},
+ {0x4329, 0xCC55},
+ {0x432A, 0xCC57},
+ {0x432B, 0xCC58},
+ {0x432C, 0xCC59},
+ {0x432D, 0xCC60},
+ {0x432E, 0xCC64},
+ {0x432F, 0xCC66},
+ {0x4330, 0xCC68},
+ {0x4331, 0xCC70},
+ {0x4332, 0xCC75},
+ {0x4333, 0xCC98},
+ {0x4334, 0xCC99},
+ {0x4335, 0xCC9C},
+ {0x4336, 0xCCA0},
+ {0x4337, 0xCCA8},
+ {0x4338, 0xCCA9},
+ {0x4339, 0xCCAB},
+ {0x433A, 0xCCAC},
+ {0x433B, 0xCCAD},
+ {0x433C, 0xCCB4},
+ {0x433D, 0xCCB5},
+ {0x433E, 0xCCB8},
+ {0x433F, 0xCCBC},
+ {0x4340, 0xCCC4},
+ {0x4341, 0xCCC5},
+ {0x4342, 0xCCC7},
+ {0x4343, 0xCCC9},
+ {0x4344, 0xCCD0},
+ {0x4345, 0xCCD4},
+ {0x4346, 0xCCE4},
+ {0x4347, 0xCCEC},
+ {0x4348, 0xCCF0},
+ {0x4349, 0xCD01},
+ {0x434A, 0xCD08},
+ {0x434B, 0xCD09},
+ {0x434C, 0xCD0C},
+ {0x434D, 0xCD10},
+ {0x434E, 0xCD18},
+ {0x434F, 0xCD19},
+ {0x4350, 0xCD1B},
+ {0x4351, 0xCD1D},
+ {0x4352, 0xCD24},
+ {0x4353, 0xCD28},
+ {0x4354, 0xCD2C},
+ {0x4355, 0xCD39},
+ {0x4356, 0xCD5C},
+ {0x4357, 0xCD60},
+ {0x4358, 0xCD64},
+ {0x4359, 0xCD6C},
+ {0x435A, 0xCD6D},
+ {0x435B, 0xCD6F},
+ {0x435C, 0xCD71},
+ {0x435D, 0xCD78},
+ {0x435E, 0xCD88},
+ {0x435F, 0xCD94},
+ {0x4360, 0xCD95},
+ {0x4361, 0xCD98},
+ {0x4362, 0xCD9C},
+ {0x4363, 0xCDA4},
+ {0x4364, 0xCDA5},
+ {0x4365, 0xCDA7},
+ {0x4366, 0xCDA9},
+ {0x4367, 0xCDB0},
+ {0x4368, 0xCDC4},
+ {0x4369, 0xCDCC},
+ {0x436A, 0xCDD0},
+ {0x436B, 0xCDE8},
+ {0x436C, 0xCDEC},
+ {0x436D, 0xCDF0},
+ {0x436E, 0xCDF8},
+ {0x436F, 0xCDF9},
+ {0x4370, 0xCDFB},
+ {0x4371, 0xCDFD},
+ {0x4372, 0xCE04},
+ {0x4373, 0xCE08},
+ {0x4374, 0xCE0C},
+ {0x4375, 0xCE14},
+ {0x4376, 0xCE19},
+ {0x4377, 0xCE20},
+ {0x4378, 0xCE21},
+ {0x4379, 0xCE24},
+ {0x437A, 0xCE28},
+ {0x437B, 0xCE30},
+ {0x437C, 0xCE31},
+ {0x437D, 0xCE33},
+ {0x437E, 0xCE35},
+ {0x4421, 0xCE58},
+ {0x4422, 0xCE59},
+ {0x4423, 0xCE5C},
+ {0x4424, 0xCE5F},
+ {0x4425, 0xCE60},
+ {0x4426, 0xCE61},
+ {0x4427, 0xCE68},
+ {0x4428, 0xCE69},
+ {0x4429, 0xCE6B},
+ {0x442A, 0xCE6D},
+ {0x442B, 0xCE74},
+ {0x442C, 0xCE75},
+ {0x442D, 0xCE78},
+ {0x442E, 0xCE7C},
+ {0x442F, 0xCE84},
+ {0x4430, 0xCE85},
+ {0x4431, 0xCE87},
+ {0x4432, 0xCE89},
+ {0x4433, 0xCE90},
+ {0x4434, 0xCE91},
+ {0x4435, 0xCE94},
+ {0x4436, 0xCE98},
+ {0x4437, 0xCEA0},
+ {0x4438, 0xCEA1},
+ {0x4439, 0xCEA3},
+ {0x443A, 0xCEA4},
+ {0x443B, 0xCEA5},
+ {0x443C, 0xCEAC},
+ {0x443D, 0xCEAD},
+ {0x443E, 0xCEC1},
+ {0x443F, 0xCEE4},
+ {0x4440, 0xCEE5},
+ {0x4441, 0xCEE8},
+ {0x4442, 0xCEEB},
+ {0x4443, 0xCEEC},
+ {0x4444, 0xCEF4},
+ {0x4445, 0xCEF5},
+ {0x4446, 0xCEF7},
+ {0x4447, 0xCEF8},
+ {0x4448, 0xCEF9},
+ {0x4449, 0xCF00},
+ {0x444A, 0xCF01},
+ {0x444B, 0xCF04},
+ {0x444C, 0xCF08},
+ {0x444D, 0xCF10},
+ {0x444E, 0xCF11},
+ {0x444F, 0xCF13},
+ {0x4450, 0xCF15},
+ {0x4451, 0xCF1C},
+ {0x4452, 0xCF20},
+ {0x4453, 0xCF24},
+ {0x4454, 0xCF2C},
+ {0x4455, 0xCF2D},
+ {0x4456, 0xCF2F},
+ {0x4457, 0xCF30},
+ {0x4458, 0xCF31},
+ {0x4459, 0xCF38},
+ {0x445A, 0xCF54},
+ {0x445B, 0xCF55},
+ {0x445C, 0xCF58},
+ {0x445D, 0xCF5C},
+ {0x445E, 0xCF64},
+ {0x445F, 0xCF65},
+ {0x4460, 0xCF67},
+ {0x4461, 0xCF69},
+ {0x4462, 0xCF70},
+ {0x4463, 0xCF71},
+ {0x4464, 0xCF74},
+ {0x4465, 0xCF78},
+ {0x4466, 0xCF80},
+ {0x4467, 0xCF85},
+ {0x4468, 0xCF8C},
+ {0x4469, 0xCFA1},
+ {0x446A, 0xCFA8},
+ {0x446B, 0xCFB0},
+ {0x446C, 0xCFC4},
+ {0x446D, 0xCFE0},
+ {0x446E, 0xCFE1},
+ {0x446F, 0xCFE4},
+ {0x4470, 0xCFE8},
+ {0x4471, 0xCFF0},
+ {0x4472, 0xCFF1},
+ {0x4473, 0xCFF3},
+ {0x4474, 0xCFF5},
+ {0x4475, 0xCFFC},
+ {0x4476, 0xD000},
+ {0x4477, 0xD004},
+ {0x4478, 0xD011},
+ {0x4479, 0xD018},
+ {0x447A, 0xD02D},
+ {0x447B, 0xD034},
+ {0x447C, 0xD035},
+ {0x447D, 0xD038},
+ {0x447E, 0xD03C},
+ {0x4521, 0xD044},
+ {0x4522, 0xD045},
+ {0x4523, 0xD047},
+ {0x4524, 0xD049},
+ {0x4525, 0xD050},
+ {0x4526, 0xD054},
+ {0x4527, 0xD058},
+ {0x4528, 0xD060},
+ {0x4529, 0xD06C},
+ {0x452A, 0xD06D},
+ {0x452B, 0xD070},
+ {0x452C, 0xD074},
+ {0x452D, 0xD07C},
+ {0x452E, 0xD07D},
+ {0x452F, 0xD081},
+ {0x4530, 0xD0A4},
+ {0x4531, 0xD0A5},
+ {0x4532, 0xD0A8},
+ {0x4533, 0xD0AC},
+ {0x4534, 0xD0B4},
+ {0x4535, 0xD0B5},
+ {0x4536, 0xD0B7},
+ {0x4537, 0xD0B9},
+ {0x4538, 0xD0C0},
+ {0x4539, 0xD0C1},
+ {0x453A, 0xD0C4},
+ {0x453B, 0xD0C8},
+ {0x453C, 0xD0C9},
+ {0x453D, 0xD0D0},
+ {0x453E, 0xD0D1},
+ {0x453F, 0xD0D3},
+ {0x4540, 0xD0D4},
+ {0x4541, 0xD0D5},
+ {0x4542, 0xD0DC},
+ {0x4543, 0xD0DD},
+ {0x4544, 0xD0E0},
+ {0x4545, 0xD0E4},
+ {0x4546, 0xD0EC},
+ {0x4547, 0xD0ED},
+ {0x4548, 0xD0EF},
+ {0x4549, 0xD0F0},
+ {0x454A, 0xD0F1},
+ {0x454B, 0xD0F8},
+ {0x454C, 0xD10D},
+ {0x454D, 0xD130},
+ {0x454E, 0xD131},
+ {0x454F, 0xD134},
+ {0x4550, 0xD138},
+ {0x4551, 0xD13A},
+ {0x4552, 0xD140},
+ {0x4553, 0xD141},
+ {0x4554, 0xD143},
+ {0x4555, 0xD144},
+ {0x4556, 0xD145},
+ {0x4557, 0xD14C},
+ {0x4558, 0xD14D},
+ {0x4559, 0xD150},
+ {0x455A, 0xD154},
+ {0x455B, 0xD15C},
+ {0x455C, 0xD15D},
+ {0x455D, 0xD15F},
+ {0x455E, 0xD161},
+ {0x455F, 0xD168},
+ {0x4560, 0xD16C},
+ {0x4561, 0xD17C},
+ {0x4562, 0xD184},
+ {0x4563, 0xD188},
+ {0x4564, 0xD1A0},
+ {0x4565, 0xD1A1},
+ {0x4566, 0xD1A4},
+ {0x4567, 0xD1A8},
+ {0x4568, 0xD1B0},
+ {0x4569, 0xD1B1},
+ {0x456A, 0xD1B3},
+ {0x456B, 0xD1B5},
+ {0x456C, 0xD1BA},
+ {0x456D, 0xD1BC},
+ {0x456E, 0xD1C0},
+ {0x456F, 0xD1D8},
+ {0x4570, 0xD1F4},
+ {0x4571, 0xD1F8},
+ {0x4572, 0xD207},
+ {0x4573, 0xD209},
+ {0x4574, 0xD210},
+ {0x4575, 0xD22C},
+ {0x4576, 0xD22D},
+ {0x4577, 0xD230},
+ {0x4578, 0xD234},
+ {0x4579, 0xD23C},
+ {0x457A, 0xD23D},
+ {0x457B, 0xD23F},
+ {0x457C, 0xD241},
+ {0x457D, 0xD248},
+ {0x457E, 0xD25C},
+ {0x4621, 0xD264},
+ {0x4622, 0xD280},
+ {0x4623, 0xD281},
+ {0x4624, 0xD284},
+ {0x4625, 0xD288},
+ {0x4626, 0xD290},
+ {0x4627, 0xD291},
+ {0x4628, 0xD295},
+ {0x4629, 0xD29C},
+ {0x462A, 0xD2A0},
+ {0x462B, 0xD2A4},
+ {0x462C, 0xD2AC},
+ {0x462D, 0xD2B1},
+ {0x462E, 0xD2B8},
+ {0x462F, 0xD2B9},
+ {0x4630, 0xD2BC},
+ {0x4631, 0xD2BF},
+ {0x4632, 0xD2C0},
+ {0x4633, 0xD2C2},
+ {0x4634, 0xD2C8},
+ {0x4635, 0xD2C9},
+ {0x4636, 0xD2CB},
+ {0x4637, 0xD2D4},
+ {0x4638, 0xD2D8},
+ {0x4639, 0xD2DC},
+ {0x463A, 0xD2E4},
+ {0x463B, 0xD2E5},
+ {0x463C, 0xD2F0},
+ {0x463D, 0xD2F1},
+ {0x463E, 0xD2F4},
+ {0x463F, 0xD2F8},
+ {0x4640, 0xD300},
+ {0x4641, 0xD301},
+ {0x4642, 0xD303},
+ {0x4643, 0xD305},
+ {0x4644, 0xD30C},
+ {0x4645, 0xD30D},
+ {0x4646, 0xD30E},
+ {0x4647, 0xD310},
+ {0x4648, 0xD314},
+ {0x4649, 0xD316},
+ {0x464A, 0xD31C},
+ {0x464B, 0xD31D},
+ {0x464C, 0xD31F},
+ {0x464D, 0xD320},
+ {0x464E, 0xD321},
+ {0x464F, 0xD325},
+ {0x4650, 0xD328},
+ {0x4651, 0xD329},
+ {0x4652, 0xD32C},
+ {0x4653, 0xD330},
+ {0x4654, 0xD338},
+ {0x4655, 0xD339},
+ {0x4656, 0xD33B},
+ {0x4657, 0xD33C},
+ {0x4658, 0xD33D},
+ {0x4659, 0xD344},
+ {0x465A, 0xD345},
+ {0x465B, 0xD37C},
+ {0x465C, 0xD37D},
+ {0x465D, 0xD380},
+ {0x465E, 0xD384},
+ {0x465F, 0xD38C},
+ {0x4660, 0xD38D},
+ {0x4661, 0xD38F},
+ {0x4662, 0xD390},
+ {0x4663, 0xD391},
+ {0x4664, 0xD398},
+ {0x4665, 0xD399},
+ {0x4666, 0xD39C},
+ {0x4667, 0xD3A0},
+ {0x4668, 0xD3A8},
+ {0x4669, 0xD3A9},
+ {0x466A, 0xD3AB},
+ {0x466B, 0xD3AD},
+ {0x466C, 0xD3B4},
+ {0x466D, 0xD3B8},
+ {0x466E, 0xD3BC},
+ {0x466F, 0xD3C4},
+ {0x4670, 0xD3C5},
+ {0x4671, 0xD3C8},
+ {0x4672, 0xD3C9},
+ {0x4673, 0xD3D0},
+ {0x4674, 0xD3D8},
+ {0x4675, 0xD3E1},
+ {0x4676, 0xD3E3},
+ {0x4677, 0xD3EC},
+ {0x4678, 0xD3ED},
+ {0x4679, 0xD3F0},
+ {0x467A, 0xD3F4},
+ {0x467B, 0xD3FC},
+ {0x467C, 0xD3FD},
+ {0x467D, 0xD3FF},
+ {0x467E, 0xD401},
+ {0x4721, 0xD408},
+ {0x4722, 0xD41D},
+ {0x4723, 0xD440},
+ {0x4724, 0xD444},
+ {0x4725, 0xD45C},
+ {0x4726, 0xD460},
+ {0x4727, 0xD464},
+ {0x4728, 0xD46D},
+ {0x4729, 0xD46F},
+ {0x472A, 0xD478},
+ {0x472B, 0xD479},
+ {0x472C, 0xD47C},
+ {0x472D, 0xD47F},
+ {0x472E, 0xD480},
+ {0x472F, 0xD482},
+ {0x4730, 0xD488},
+ {0x4731, 0xD489},
+ {0x4732, 0xD48B},
+ {0x4733, 0xD48D},
+ {0x4734, 0xD494},
+ {0x4735, 0xD4A9},
+ {0x4736, 0xD4CC},
+ {0x4737, 0xD4D0},
+ {0x4738, 0xD4D4},
+ {0x4739, 0xD4DC},
+ {0x473A, 0xD4DF},
+ {0x473B, 0xD4E8},
+ {0x473C, 0xD4EC},
+ {0x473D, 0xD4F0},
+ {0x473E, 0xD4F8},
+ {0x473F, 0xD4FB},
+ {0x4740, 0xD4FD},
+ {0x4741, 0xD504},
+ {0x4742, 0xD508},
+ {0x4743, 0xD50C},
+ {0x4744, 0xD514},
+ {0x4745, 0xD515},
+ {0x4746, 0xD517},
+ {0x4747, 0xD53C},
+ {0x4748, 0xD53D},
+ {0x4749, 0xD540},
+ {0x474A, 0xD544},
+ {0x474B, 0xD54C},
+ {0x474C, 0xD54D},
+ {0x474D, 0xD54F},
+ {0x474E, 0xD551},
+ {0x474F, 0xD558},
+ {0x4750, 0xD559},
+ {0x4751, 0xD55C},
+ {0x4752, 0xD560},
+ {0x4753, 0xD565},
+ {0x4754, 0xD568},
+ {0x4755, 0xD569},
+ {0x4756, 0xD56B},
+ {0x4757, 0xD56D},
+ {0x4758, 0xD574},
+ {0x4759, 0xD575},
+ {0x475A, 0xD578},
+ {0x475B, 0xD57C},
+ {0x475C, 0xD584},
+ {0x475D, 0xD585},
+ {0x475E, 0xD587},
+ {0x475F, 0xD588},
+ {0x4760, 0xD589},
+ {0x4761, 0xD590},
+ {0x4762, 0xD5A5},
+ {0x4763, 0xD5C8},
+ {0x4764, 0xD5C9},
+ {0x4765, 0xD5CC},
+ {0x4766, 0xD5D0},
+ {0x4767, 0xD5D2},
+ {0x4768, 0xD5D8},
+ {0x4769, 0xD5D9},
+ {0x476A, 0xD5DB},
+ {0x476B, 0xD5DD},
+ {0x476C, 0xD5E4},
+ {0x476D, 0xD5E5},
+ {0x476E, 0xD5E8},
+ {0x476F, 0xD5EC},
+ {0x4770, 0xD5F4},
+ {0x4771, 0xD5F5},
+ {0x4772, 0xD5F7},
+ {0x4773, 0xD5F9},
+ {0x4774, 0xD600},
+ {0x4775, 0xD601},
+ {0x4776, 0xD604},
+ {0x4777, 0xD608},
+ {0x4778, 0xD610},
+ {0x4779, 0xD611},
+ {0x477A, 0xD613},
+ {0x477B, 0xD614},
+ {0x477C, 0xD615},
+ {0x477D, 0xD61C},
+ {0x477E, 0xD620},
+ {0x4821, 0xD624},
+ {0x4822, 0xD62D},
+ {0x4823, 0xD638},
+ {0x4824, 0xD639},
+ {0x4825, 0xD63C},
+ {0x4826, 0xD640},
+ {0x4827, 0xD645},
+ {0x4828, 0xD648},
+ {0x4829, 0xD649},
+ {0x482A, 0xD64B},
+ {0x482B, 0xD64D},
+ {0x482C, 0xD651},
+ {0x482D, 0xD654},
+ {0x482E, 0xD655},
+ {0x482F, 0xD658},
+ {0x4830, 0xD65C},
+ {0x4831, 0xD667},
+ {0x4832, 0xD669},
+ {0x4833, 0xD670},
+ {0x4834, 0xD671},
+ {0x4835, 0xD674},
+ {0x4836, 0xD683},
+ {0x4837, 0xD685},
+ {0x4838, 0xD68C},
+ {0x4839, 0xD68D},
+ {0x483A, 0xD690},
+ {0x483B, 0xD694},
+ {0x483C, 0xD69D},
+ {0x483D, 0xD69F},
+ {0x483E, 0xD6A1},
+ {0x483F, 0xD6A8},
+ {0x4840, 0xD6AC},
+ {0x4841, 0xD6B0},
+ {0x4842, 0xD6B9},
+ {0x4843, 0xD6BB},
+ {0x4844, 0xD6C4},
+ {0x4845, 0xD6C5},
+ {0x4846, 0xD6C8},
+ {0x4847, 0xD6CC},
+ {0x4848, 0xD6D1},
+ {0x4849, 0xD6D4},
+ {0x484A, 0xD6D7},
+ {0x484B, 0xD6D9},
+ {0x484C, 0xD6E0},
+ {0x484D, 0xD6E4},
+ {0x484E, 0xD6E8},
+ {0x484F, 0xD6F0},
+ {0x4850, 0xD6F5},
+ {0x4851, 0xD6FC},
+ {0x4852, 0xD6FD},
+ {0x4853, 0xD700},
+ {0x4854, 0xD704},
+ {0x4855, 0xD711},
+ {0x4856, 0xD718},
+ {0x4857, 0xD719},
+ {0x4858, 0xD71C},
+ {0x4859, 0xD720},
+ {0x485A, 0xD728},
+ {0x485B, 0xD729},
+ {0x485C, 0xD72B},
+ {0x485D, 0xD72D},
+ {0x485E, 0xD734},
+ {0x485F, 0xD735},
+ {0x4860, 0xD738},
+ {0x4861, 0xD73C},
+ {0x4862, 0xD744},
+ {0x4863, 0xD747},
+ {0x4864, 0xD749},
+ {0x4865, 0xD750},
+ {0x4866, 0xD751},
+ {0x4867, 0xD754},
+ {0x4868, 0xD756},
+ {0x4869, 0xD757},
+ {0x486A, 0xD758},
+ {0x486B, 0xD759},
+ {0x486C, 0xD760},
+ {0x486D, 0xD761},
+ {0x486E, 0xD763},
+ {0x486F, 0xD765},
+ {0x4870, 0xD769},
+ {0x4871, 0xD76C},
+ {0x4872, 0xD770},
+ {0x4873, 0xD774},
+ {0x4874, 0xD77C},
+ {0x4875, 0xD77D},
+ {0x4876, 0xD781},
+ {0x4877, 0xD788},
+ {0x4878, 0xD789},
+ {0x4879, 0xD78C},
+ {0x487A, 0xD790},
+ {0x487B, 0xD798},
+ {0x487C, 0xD799},
+ {0x487D, 0xD79B},
+ {0x487E, 0xD79D},
+ {0x4A21, 0x4F3D},
+ {0x4A22, 0x4F73},
+ {0x4A23, 0x5047},
+ {0x4A24, 0x50F9},
+ {0x4A25, 0x52A0},
+ {0x4A26, 0x53EF},
+ {0x4A27, 0x5475},
+ {0x4A28, 0x54E5},
+ {0x4A29, 0x5609},
+ {0x4A2A, 0x5AC1},
+ {0x4A2B, 0x5BB6},
+ {0x4A2C, 0x6687},
+ {0x4A2D, 0x67B6},
+ {0x4A2E, 0x67B7},
+ {0x4A2F, 0x67EF},
+ {0x4A30, 0x6B4C},
+ {0x4A31, 0x73C2},
+ {0x4A32, 0x75C2},
+ {0x4A33, 0x7A3C},
+ {0x4A34, 0x82DB},
+ {0x4A35, 0x8304},
+ {0x4A36, 0x8857},
+ {0x4A37, 0x8888},
+ {0x4A38, 0x8A36},
+ {0x4A39, 0x8CC8},
+ {0x4A3A, 0x8DCF},
+ {0x4A3B, 0x8EFB},
+ {0x4A3C, 0x8FE6},
+ {0x4A3D, 0x99D5},
+ {0x4A3E, 0x523B},
+ {0x4A3F, 0x5374},
+ {0x4A40, 0x5404},
+ {0x4A41, 0x606A},
+ {0x4A42, 0x6164},
+ {0x4A43, 0x6BBC},
+ {0x4A44, 0x73CF},
+ {0x4A45, 0x811A},
+ {0x4A46, 0x89BA},
+ {0x4A47, 0x89D2},
+ {0x4A48, 0x95A3},
+ {0x4A49, 0x4F83},
+ {0x4A4A, 0x520A},
+ {0x4A4B, 0x58BE},
+ {0x4A4C, 0x5978},
+ {0x4A4D, 0x59E6},
+ {0x4A4E, 0x5E72},
+ {0x4A4F, 0x5E79},
+ {0x4A50, 0x61C7},
+ {0x4A51, 0x63C0},
+ {0x4A52, 0x6746},
+ {0x4A53, 0x67EC},
+ {0x4A54, 0x687F},
+ {0x4A55, 0x6F97},
+ {0x4A56, 0x764E},
+ {0x4A57, 0x770B},
+ {0x4A58, 0x78F5},
+ {0x4A59, 0x7A08},
+ {0x4A5A, 0x7AFF},
+ {0x4A5B, 0x7C21},
+ {0x4A5C, 0x809D},
+ {0x4A5D, 0x826E},
+ {0x4A5E, 0x8271},
+ {0x4A5F, 0x8AEB},
+ {0x4A60, 0x9593},
+ {0x4A61, 0x4E6B},
+ {0x4A62, 0x559D},
+ {0x4A63, 0x66F7},
+ {0x4A64, 0x6E34},
+ {0x4A65, 0x78A3},
+ {0x4A66, 0x7AED},
+ {0x4A67, 0x845B},
+ {0x4A68, 0x8910},
+ {0x4A69, 0x874E},
+ {0x4A6A, 0x97A8},
+ {0x4A6B, 0x52D8},
+ {0x4A6C, 0x574E},
+ {0x4A6D, 0x582A},
+ {0x4A6E, 0x5D4C},
+ {0x4A6F, 0x611F},
+ {0x4A70, 0x61BE},
+ {0x4A71, 0x6221},
+ {0x4A72, 0x6562},
+ {0x4A73, 0x67D1},
+ {0x4A74, 0x6A44},
+ {0x4A75, 0x6E1B},
+ {0x4A76, 0x7518},
+ {0x4A77, 0x75B3},
+ {0x4A78, 0x76E3},
+ {0x4A79, 0x77B0},
+ {0x4A7A, 0x7D3A},
+ {0x4A7B, 0x90AF},
+ {0x4A7C, 0x9451},
+ {0x4A7D, 0x9452},
+ {0x4A7E, 0x9F95},
+ {0x4B21, 0x5323},
+ {0x4B22, 0x5CAC},
+ {0x4B23, 0x7532},
+ {0x4B24, 0x80DB},
+ {0x4B25, 0x9240},
+ {0x4B26, 0x9598},
+ {0x4B27, 0x525B},
+ {0x4B28, 0x5808},
+ {0x4B29, 0x59DC},
+ {0x4B2A, 0x5CA1},
+ {0x4B2B, 0x5D17},
+ {0x4B2C, 0x5EB7},
+ {0x4B2D, 0x5F3A},
+ {0x4B2E, 0x5F4A},
+ {0x4B2F, 0x6177},
+ {0x4B30, 0x6C5F},
+ {0x4B31, 0x757A},
+ {0x4B32, 0x7586},
+ {0x4B33, 0x7CE0},
+ {0x4B34, 0x7D73},
+ {0x4B35, 0x7DB1},
+ {0x4B36, 0x7F8C},
+ {0x4B37, 0x8154},
+ {0x4B38, 0x8221},
+ {0x4B39, 0x8591},
+ {0x4B3A, 0x8941},
+ {0x4B3B, 0x8B1B},
+ {0x4B3C, 0x92FC},
+ {0x4B3D, 0x964D},
+ {0x4B3E, 0x9C47},
+ {0x4B3F, 0x4ECB},
+ {0x4B40, 0x4EF7},
+ {0x4B41, 0x500B},
+ {0x4B42, 0x51F1},
+ {0x4B43, 0x584F},
+ {0x4B44, 0x6137},
+ {0x4B45, 0x613E},
+ {0x4B46, 0x6168},
+ {0x4B47, 0x6539},
+ {0x4B48, 0x69EA},
+ {0x4B49, 0x6F11},
+ {0x4B4A, 0x75A5},
+ {0x4B4B, 0x7686},
+ {0x4B4C, 0x76D6},
+ {0x4B4D, 0x7B87},
+ {0x4B4E, 0x82A5},
+ {0x4B4F, 0x84CB},
+ {0x4B50, 0xF900},
+ {0x4B51, 0x93A7},
+ {0x4B52, 0x958B},
+ {0x4B53, 0x5580},
+ {0x4B54, 0x5BA2},
+ {0x4B55, 0x5751},
+ {0x4B56, 0xF901},
+ {0x4B57, 0x7CB3},
+ {0x4B58, 0x7FB9},
+ {0x4B59, 0x91B5},
+ {0x4B5A, 0x5028},
+ {0x4B5B, 0x53BB},
+ {0x4B5C, 0x5C45},
+ {0x4B5D, 0x5DE8},
+ {0x4B5E, 0x62D2},
+ {0x4B5F, 0x636E},
+ {0x4B60, 0x64DA},
+ {0x4B61, 0x64E7},
+ {0x4B62, 0x6E20},
+ {0x4B63, 0x70AC},
+ {0x4B64, 0x795B},
+ {0x4B65, 0x8DDD},
+ {0x4B66, 0x8E1E},
+ {0x4B67, 0xF902},
+ {0x4B68, 0x907D},
+ {0x4B69, 0x9245},
+ {0x4B6A, 0x92F8},
+ {0x4B6B, 0x4E7E},
+ {0x4B6C, 0x4EF6},
+ {0x4B6D, 0x5065},
+ {0x4B6E, 0x5DFE},
+ {0x4B6F, 0x5EFA},
+ {0x4B70, 0x6106},
+ {0x4B71, 0x6957},
+ {0x4B72, 0x8171},
+ {0x4B73, 0x8654},
+ {0x4B74, 0x8E47},
+ {0x4B75, 0x9375},
+ {0x4B76, 0x9A2B},
+ {0x4B77, 0x4E5E},
+ {0x4B78, 0x5091},
+ {0x4B79, 0x6770},
+ {0x4B7A, 0x6840},
+ {0x4B7B, 0x5109},
+ {0x4B7C, 0x528D},
+ {0x4B7D, 0x5292},
+ {0x4B7E, 0x6AA2},
+ {0x4C21, 0x77BC},
+ {0x4C22, 0x9210},
+ {0x4C23, 0x9ED4},
+ {0x4C24, 0x52AB},
+ {0x4C25, 0x602F},
+ {0x4C26, 0x8FF2},
+ {0x4C27, 0x5048},
+ {0x4C28, 0x61A9},
+ {0x4C29, 0x63ED},
+ {0x4C2A, 0x64CA},
+ {0x4C2B, 0x683C},
+ {0x4C2C, 0x6A84},
+ {0x4C2D, 0x6FC0},
+ {0x4C2E, 0x8188},
+ {0x4C2F, 0x89A1},
+ {0x4C30, 0x9694},
+ {0x4C31, 0x5805},
+ {0x4C32, 0x727D},
+ {0x4C33, 0x72AC},
+ {0x4C34, 0x7504},
+ {0x4C35, 0x7D79},
+ {0x4C36, 0x7E6D},
+ {0x4C37, 0x80A9},
+ {0x4C38, 0x898B},
+ {0x4C39, 0x8B74},
+ {0x4C3A, 0x9063},
+ {0x4C3B, 0x9D51},
+ {0x4C3C, 0x6289},
+ {0x4C3D, 0x6C7A},
+ {0x4C3E, 0x6F54},
+ {0x4C3F, 0x7D50},
+ {0x4C40, 0x7F3A},
+ {0x4C41, 0x8A23},
+ {0x4C42, 0x517C},
+ {0x4C43, 0x614A},
+ {0x4C44, 0x7B9D},
+ {0x4C45, 0x8B19},
+ {0x4C46, 0x9257},
+ {0x4C47, 0x938C},
+ {0x4C48, 0x4EAC},
+ {0x4C49, 0x4FD3},
+ {0x4C4A, 0x501E},
+ {0x4C4B, 0x50BE},
+ {0x4C4C, 0x5106},
+ {0x4C4D, 0x52C1},
+ {0x4C4E, 0x52CD},
+ {0x4C4F, 0x537F},
+ {0x4C50, 0x5770},
+ {0x4C51, 0x5883},
+ {0x4C52, 0x5E9A},
+ {0x4C53, 0x5F91},
+ {0x4C54, 0x6176},
+ {0x4C55, 0x61AC},
+ {0x4C56, 0x64CE},
+ {0x4C57, 0x656C},
+ {0x4C58, 0x666F},
+ {0x4C59, 0x66BB},
+ {0x4C5A, 0x66F4},
+ {0x4C5B, 0x6897},
+ {0x4C5C, 0x6D87},
+ {0x4C5D, 0x7085},
+ {0x4C5E, 0x70F1},
+ {0x4C5F, 0x749F},
+ {0x4C60, 0x74A5},
+ {0x4C61, 0x74CA},
+ {0x4C62, 0x75D9},
+ {0x4C63, 0x786C},
+ {0x4C64, 0x78EC},
+ {0x4C65, 0x7ADF},
+ {0x4C66, 0x7AF6},
+ {0x4C67, 0x7D45},
+ {0x4C68, 0x7D93},
+ {0x4C69, 0x8015},
+ {0x4C6A, 0x803F},
+ {0x4C6B, 0x811B},
+ {0x4C6C, 0x8396},
+ {0x4C6D, 0x8B66},
+ {0x4C6E, 0x8F15},
+ {0x4C6F, 0x9015},
+ {0x4C70, 0x93E1},
+ {0x4C71, 0x9803},
+ {0x4C72, 0x9838},
+ {0x4C73, 0x9A5A},
+ {0x4C74, 0x9BE8},
+ {0x4C75, 0x4FC2},
+ {0x4C76, 0x5553},
+ {0x4C77, 0x583A},
+ {0x4C78, 0x5951},
+ {0x4C79, 0x5B63},
+ {0x4C7A, 0x5C46},
+ {0x4C7B, 0x60B8},
+ {0x4C7C, 0x6212},
+ {0x4C7D, 0x6842},
+ {0x4C7E, 0x68B0},
+ {0x4D21, 0x68E8},
+ {0x4D22, 0x6EAA},
+ {0x4D23, 0x754C},
+ {0x4D24, 0x7678},
+ {0x4D25, 0x78CE},
+ {0x4D26, 0x7A3D},
+ {0x4D27, 0x7CFB},
+ {0x4D28, 0x7E6B},
+ {0x4D29, 0x7E7C},
+ {0x4D2A, 0x8A08},
+ {0x4D2B, 0x8AA1},
+ {0x4D2C, 0x8C3F},
+ {0x4D2D, 0x968E},
+ {0x4D2E, 0x9DC4},
+ {0x4D2F, 0x53E4},
+ {0x4D30, 0x53E9},
+ {0x4D31, 0x544A},
+ {0x4D32, 0x5471},
+ {0x4D33, 0x56FA},
+ {0x4D34, 0x59D1},
+ {0x4D35, 0x5B64},
+ {0x4D36, 0x5C3B},
+ {0x4D37, 0x5EAB},
+ {0x4D38, 0x62F7},
+ {0x4D39, 0x6537},
+ {0x4D3A, 0x6545},
+ {0x4D3B, 0x6572},
+ {0x4D3C, 0x66A0},
+ {0x4D3D, 0x67AF},
+ {0x4D3E, 0x69C1},
+ {0x4D3F, 0x6CBD},
+ {0x4D40, 0x75FC},
+ {0x4D41, 0x7690},
+ {0x4D42, 0x777E},
+ {0x4D43, 0x7A3F},
+ {0x4D44, 0x7F94},
+ {0x4D45, 0x8003},
+ {0x4D46, 0x80A1},
+ {0x4D47, 0x818F},
+ {0x4D48, 0x82E6},
+ {0x4D49, 0x82FD},
+ {0x4D4A, 0x83F0},
+ {0x4D4B, 0x85C1},
+ {0x4D4C, 0x8831},
+ {0x4D4D, 0x88B4},
+ {0x4D4E, 0x8AA5},
+ {0x4D4F, 0xF903},
+ {0x4D50, 0x8F9C},
+ {0x4D51, 0x932E},
+ {0x4D52, 0x96C7},
+ {0x4D53, 0x9867},
+ {0x4D54, 0x9AD8},
+ {0x4D55, 0x9F13},
+ {0x4D56, 0x54ED},
+ {0x4D57, 0x659B},
+ {0x4D58, 0x66F2},
+ {0x4D59, 0x688F},
+ {0x4D5A, 0x7A40},
+ {0x4D5B, 0x8C37},
+ {0x4D5C, 0x9D60},
+ {0x4D5D, 0x56F0},
+ {0x4D5E, 0x5764},
+ {0x4D5F, 0x5D11},
+ {0x4D60, 0x6606},
+ {0x4D61, 0x68B1},
+ {0x4D62, 0x68CD},
+ {0x4D63, 0x6EFE},
+ {0x4D64, 0x7428},
+ {0x4D65, 0x889E},
+ {0x4D66, 0x9BE4},
+ {0x4D67, 0x6C68},
+ {0x4D68, 0xF904},
+ {0x4D69, 0x9AA8},
+ {0x4D6A, 0x4F9B},
+ {0x4D6B, 0x516C},
+ {0x4D6C, 0x5171},
+ {0x4D6D, 0x529F},
+ {0x4D6E, 0x5B54},
+ {0x4D6F, 0x5DE5},
+ {0x4D70, 0x6050},
+ {0x4D71, 0x606D},
+ {0x4D72, 0x62F1},
+ {0x4D73, 0x63A7},
+ {0x4D74, 0x653B},
+ {0x4D75, 0x73D9},
+ {0x4D76, 0x7A7A},
+ {0x4D77, 0x86A3},
+ {0x4D78, 0x8CA2},
+ {0x4D79, 0x978F},
+ {0x4D7A, 0x4E32},
+ {0x4D7B, 0x5BE1},
+ {0x4D7C, 0x6208},
+ {0x4D7D, 0x679C},
+ {0x4D7E, 0x74DC},
+ {0x4E21, 0x79D1},
+ {0x4E22, 0x83D3},
+ {0x4E23, 0x8A87},
+ {0x4E24, 0x8AB2},
+ {0x4E25, 0x8DE8},
+ {0x4E26, 0x904E},
+ {0x4E27, 0x934B},
+ {0x4E28, 0x9846},
+ {0x4E29, 0x5ED3},
+ {0x4E2A, 0x69E8},
+ {0x4E2B, 0x85FF},
+ {0x4E2C, 0x90ED},
+ {0x4E2D, 0xF905},
+ {0x4E2E, 0x51A0},
+ {0x4E2F, 0x5B98},
+ {0x4E30, 0x5BEC},
+ {0x4E31, 0x6163},
+ {0x4E32, 0x68FA},
+ {0x4E33, 0x6B3E},
+ {0x4E34, 0x704C},
+ {0x4E35, 0x742F},
+ {0x4E36, 0x74D8},
+ {0x4E37, 0x7BA1},
+ {0x4E38, 0x7F50},
+ {0x4E39, 0x83C5},
+ {0x4E3A, 0x89C0},
+ {0x4E3B, 0x8CAB},
+ {0x4E3C, 0x95DC},
+ {0x4E3D, 0x9928},
+ {0x4E3E, 0x522E},
+ {0x4E3F, 0x605D},
+ {0x4E40, 0x62EC},
+ {0x4E41, 0x9002},
+ {0x4E42, 0x4F8A},
+ {0x4E43, 0x5149},
+ {0x4E44, 0x5321},
+ {0x4E45, 0x58D9},
+ {0x4E46, 0x5EE3},
+ {0x4E47, 0x66E0},
+ {0x4E48, 0x6D38},
+ {0x4E49, 0x709A},
+ {0x4E4A, 0x72C2},
+ {0x4E4B, 0x73D6},
+ {0x4E4C, 0x7B50},
+ {0x4E4D, 0x80F1},
+ {0x4E4E, 0x945B},
+ {0x4E4F, 0x5366},
+ {0x4E50, 0x639B},
+ {0x4E51, 0x7F6B},
+ {0x4E52, 0x4E56},
+ {0x4E53, 0x5080},
+ {0x4E54, 0x584A},
+ {0x4E55, 0x58DE},
+ {0x4E56, 0x602A},
+ {0x4E57, 0x6127},
+ {0x4E58, 0x62D0},
+ {0x4E59, 0x69D0},
+ {0x4E5A, 0x9B41},
+ {0x4E5B, 0x5B8F},
+ {0x4E5C, 0x7D18},
+ {0x4E5D, 0x80B1},
+ {0x4E5E, 0x8F5F},
+ {0x4E5F, 0x4EA4},
+ {0x4E60, 0x50D1},
+ {0x4E61, 0x54AC},
+ {0x4E62, 0x55AC},
+ {0x4E63, 0x5B0C},
+ {0x4E64, 0x5DA0},
+ {0x4E65, 0x5DE7},
+ {0x4E66, 0x652A},
+ {0x4E67, 0x654E},
+ {0x4E68, 0x6821},
+ {0x4E69, 0x6A4B},
+ {0x4E6A, 0x72E1},
+ {0x4E6B, 0x768E},
+ {0x4E6C, 0x77EF},
+ {0x4E6D, 0x7D5E},
+ {0x4E6E, 0x7FF9},
+ {0x4E6F, 0x81A0},
+ {0x4E70, 0x854E},
+ {0x4E71, 0x86DF},
+ {0x4E72, 0x8F03},
+ {0x4E73, 0x8F4E},
+ {0x4E74, 0x90CA},
+ {0x4E75, 0x9903},
+ {0x4E76, 0x9A55},
+ {0x4E77, 0x9BAB},
+ {0x4E78, 0x4E18},
+ {0x4E79, 0x4E45},
+ {0x4E7A, 0x4E5D},
+ {0x4E7B, 0x4EC7},
+ {0x4E7C, 0x4FF1},
+ {0x4E7D, 0x5177},
+ {0x4E7E, 0x52FE},
+ {0x4F21, 0x5340},
+ {0x4F22, 0x53E3},
+ {0x4F23, 0x53E5},
+ {0x4F24, 0x548E},
+ {0x4F25, 0x5614},
+ {0x4F26, 0x5775},
+ {0x4F27, 0x57A2},
+ {0x4F28, 0x5BC7},
+ {0x4F29, 0x5D87},
+ {0x4F2A, 0x5ED0},
+ {0x4F2B, 0x61FC},
+ {0x4F2C, 0x62D8},
+ {0x4F2D, 0x6551},
+ {0x4F2E, 0x67B8},
+ {0x4F2F, 0x67E9},
+ {0x4F30, 0x69CB},
+ {0x4F31, 0x6B50},
+ {0x4F32, 0x6BC6},
+ {0x4F33, 0x6BEC},
+ {0x4F34, 0x6C42},
+ {0x4F35, 0x6E9D},
+ {0x4F36, 0x7078},
+ {0x4F37, 0x72D7},
+ {0x4F38, 0x7396},
+ {0x4F39, 0x7403},
+ {0x4F3A, 0x77BF},
+ {0x4F3B, 0x77E9},
+ {0x4F3C, 0x7A76},
+ {0x4F3D, 0x7D7F},
+ {0x4F3E, 0x8009},
+ {0x4F3F, 0x81FC},
+ {0x4F40, 0x8205},
+ {0x4F41, 0x820A},
+ {0x4F42, 0x82DF},
+ {0x4F43, 0x8862},
+ {0x4F44, 0x8B33},
+ {0x4F45, 0x8CFC},
+ {0x4F46, 0x8EC0},
+ {0x4F47, 0x9011},
+ {0x4F48, 0x90B1},
+ {0x4F49, 0x9264},
+ {0x4F4A, 0x92B6},
+ {0x4F4B, 0x99D2},
+ {0x4F4C, 0x9A45},
+ {0x4F4D, 0x9CE9},
+ {0x4F4E, 0x9DD7},
+ {0x4F4F, 0x9F9C},
+ {0x4F50, 0x570B},
+ {0x4F51, 0x5C40},
+ {0x4F52, 0x83CA},
+ {0x4F53, 0x97A0},
+ {0x4F54, 0x97AB},
+ {0x4F55, 0x9EB4},
+ {0x4F56, 0x541B},
+ {0x4F57, 0x7A98},
+ {0x4F58, 0x7FA4},
+ {0x4F59, 0x88D9},
+ {0x4F5A, 0x8ECD},
+ {0x4F5B, 0x90E1},
+ {0x4F5C, 0x5800},
+ {0x4F5D, 0x5C48},
+ {0x4F5E, 0x6398},
+ {0x4F5F, 0x7A9F},
+ {0x4F60, 0x5BAE},
+ {0x4F61, 0x5F13},
+ {0x4F62, 0x7A79},
+ {0x4F63, 0x7AAE},
+ {0x4F64, 0x828E},
+ {0x4F65, 0x8EAC},
+ {0x4F66, 0x5026},
+ {0x4F67, 0x5238},
+ {0x4F68, 0x52F8},
+ {0x4F69, 0x5377},
+ {0x4F6A, 0x5708},
+ {0x4F6B, 0x62F3},
+ {0x4F6C, 0x6372},
+ {0x4F6D, 0x6B0A},
+ {0x4F6E, 0x6DC3},
+ {0x4F6F, 0x7737},
+ {0x4F70, 0x53A5},
+ {0x4F71, 0x7357},
+ {0x4F72, 0x8568},
+ {0x4F73, 0x8E76},
+ {0x4F74, 0x95D5},
+ {0x4F75, 0x673A},
+ {0x4F76, 0x6AC3},
+ {0x4F77, 0x6F70},
+ {0x4F78, 0x8A6D},
+ {0x4F79, 0x8ECC},
+ {0x4F7A, 0x994B},
+ {0x4F7B, 0xF906},
+ {0x4F7C, 0x6677},
+ {0x4F7D, 0x6B78},
+ {0x4F7E, 0x8CB4},
+ {0x5021, 0x9B3C},
+ {0x5022, 0xF907},
+ {0x5023, 0x53EB},
+ {0x5024, 0x572D},
+ {0x5025, 0x594E},
+ {0x5026, 0x63C6},
+ {0x5027, 0x69FB},
+ {0x5028, 0x73EA},
+ {0x5029, 0x7845},
+ {0x502A, 0x7ABA},
+ {0x502B, 0x7AC5},
+ {0x502C, 0x7CFE},
+ {0x502D, 0x8475},
+ {0x502E, 0x898F},
+ {0x502F, 0x8D73},
+ {0x5030, 0x9035},
+ {0x5031, 0x95A8},
+ {0x5032, 0x52FB},
+ {0x5033, 0x5747},
+ {0x5034, 0x7547},
+ {0x5035, 0x7B60},
+ {0x5036, 0x83CC},
+ {0x5037, 0x921E},
+ {0x5038, 0xF908},
+ {0x5039, 0x6A58},
+ {0x503A, 0x514B},
+ {0x503B, 0x524B},
+ {0x503C, 0x5287},
+ {0x503D, 0x621F},
+ {0x503E, 0x68D8},
+ {0x503F, 0x6975},
+ {0x5040, 0x9699},
+ {0x5041, 0x50C5},
+ {0x5042, 0x52A4},
+ {0x5043, 0x52E4},
+ {0x5044, 0x61C3},
+ {0x5045, 0x65A4},
+ {0x5046, 0x6839},
+ {0x5047, 0x69FF},
+ {0x5048, 0x747E},
+ {0x5049, 0x7B4B},
+ {0x504A, 0x82B9},
+ {0x504B, 0x83EB},
+ {0x504C, 0x89B2},
+ {0x504D, 0x8B39},
+ {0x504E, 0x8FD1},
+ {0x504F, 0x9949},
+ {0x5050, 0xF909},
+ {0x5051, 0x4ECA},
+ {0x5052, 0x5997},
+ {0x5053, 0x64D2},
+ {0x5054, 0x6611},
+ {0x5055, 0x6A8E},
+ {0x5056, 0x7434},
+ {0x5057, 0x7981},
+ {0x5058, 0x79BD},
+ {0x5059, 0x82A9},
+ {0x505A, 0x887E},
+ {0x505B, 0x887F},
+ {0x505C, 0x895F},
+ {0x505D, 0xF90A},
+ {0x505E, 0x9326},
+ {0x505F, 0x4F0B},
+ {0x5060, 0x53CA},
+ {0x5061, 0x6025},
+ {0x5062, 0x6271},
+ {0x5063, 0x6C72},
+ {0x5064, 0x7D1A},
+ {0x5065, 0x7D66},
+ {0x5066, 0x4E98},
+ {0x5067, 0x5162},
+ {0x5068, 0x77DC},
+ {0x5069, 0x80AF},
+ {0x506A, 0x4F01},
+ {0x506B, 0x4F0E},
+ {0x506C, 0x5176},
+ {0x506D, 0x5180},
+ {0x506E, 0x55DC},
+ {0x506F, 0x5668},
+ {0x5070, 0x573B},
+ {0x5071, 0x57FA},
+ {0x5072, 0x57FC},
+ {0x5073, 0x5914},
+ {0x5074, 0x5947},
+ {0x5075, 0x5993},
+ {0x5076, 0x5BC4},
+ {0x5077, 0x5C90},
+ {0x5078, 0x5D0E},
+ {0x5079, 0x5DF1},
+ {0x507A, 0x5E7E},
+ {0x507B, 0x5FCC},
+ {0x507C, 0x6280},
+ {0x507D, 0x65D7},
+ {0x507E, 0x65E3},
+ {0x5121, 0x671E},
+ {0x5122, 0x671F},
+ {0x5123, 0x675E},
+ {0x5124, 0x68CB},
+ {0x5125, 0x68C4},
+ {0x5126, 0x6A5F},
+ {0x5127, 0x6B3A},
+ {0x5128, 0x6C23},
+ {0x5129, 0x6C7D},
+ {0x512A, 0x6C82},
+ {0x512B, 0x6DC7},
+ {0x512C, 0x7398},
+ {0x512D, 0x7426},
+ {0x512E, 0x742A},
+ {0x512F, 0x7482},
+ {0x5130, 0x74A3},
+ {0x5131, 0x7578},
+ {0x5132, 0x757F},
+ {0x5133, 0x7881},
+ {0x5134, 0x78EF},
+ {0x5135, 0x7941},
+ {0x5136, 0x7947},
+ {0x5137, 0x7948},
+ {0x5138, 0x797A},
+ {0x5139, 0x7B95},
+ {0x513A, 0x7D00},
+ {0x513B, 0x7DBA},
+ {0x513C, 0x7F88},
+ {0x513D, 0x8006},
+ {0x513E, 0x802D},
+ {0x513F, 0x808C},
+ {0x5140, 0x8A18},
+ {0x5141, 0x8B4F},
+ {0x5142, 0x8C48},
+ {0x5143, 0x8D77},
+ {0x5144, 0x9321},
+ {0x5145, 0x9324},
+ {0x5146, 0x98E2},
+ {0x5147, 0x9951},
+ {0x5148, 0x9A0E},
+ {0x5149, 0x9A0F},
+ {0x514A, 0x9A65},
+ {0x514B, 0x9E92},
+ {0x514C, 0x7DCA},
+ {0x514D, 0x4F76},
+ {0x514E, 0x5409},
+ {0x514F, 0x62EE},
+ {0x5150, 0x6854},
+ {0x5151, 0x91D1},
+ {0x5152, 0x55AB},
+ {0x5153, 0x513A},
+ {0x5154, 0xF90B},
+ {0x5155, 0xF90C},
+ {0x5156, 0x5A1C},
+ {0x5157, 0x61E6},
+ {0x5158, 0xF90D},
+ {0x5159, 0x62CF},
+ {0x515A, 0x62FF},
+ {0x515B, 0xF90E},
+ {0x515C, 0xF90F},
+ {0x515D, 0xF910},
+ {0x515E, 0xF911},
+ {0x515F, 0xF912},
+ {0x5160, 0xF913},
+ {0x5161, 0x90A3},
+ {0x5162, 0xF914},
+ {0x5163, 0xF915},
+ {0x5164, 0xF916},
+ {0x5165, 0xF917},
+ {0x5166, 0xF918},
+ {0x5167, 0x8AFE},
+ {0x5168, 0xF919},
+ {0x5169, 0xF91A},
+ {0x516A, 0xF91B},
+ {0x516B, 0xF91C},
+ {0x516C, 0x6696},
+ {0x516D, 0xF91D},
+ {0x516E, 0x7156},
+ {0x516F, 0xF91E},
+ {0x5170, 0xF91F},
+ {0x5171, 0x96E3},
+ {0x5172, 0xF920},
+ {0x5173, 0x634F},
+ {0x5174, 0x637A},
+ {0x5175, 0x5357},
+ {0x5176, 0xF921},
+ {0x5177, 0x678F},
+ {0x5178, 0x6960},
+ {0x5179, 0x6E73},
+ {0x517A, 0xF922},
+ {0x517B, 0x7537},
+ {0x517C, 0xF923},
+ {0x517D, 0xF924},
+ {0x517E, 0xF925},
+ {0x5221, 0x7D0D},
+ {0x5222, 0xF926},
+ {0x5223, 0xF927},
+ {0x5224, 0x8872},
+ {0x5225, 0x56CA},
+ {0x5226, 0x5A18},
+ {0x5227, 0xF928},
+ {0x5228, 0xF929},
+ {0x5229, 0xF92A},
+ {0x522A, 0xF92B},
+ {0x522B, 0xF92C},
+ {0x522C, 0x4E43},
+ {0x522D, 0xF92D},
+ {0x522E, 0x5167},
+ {0x522F, 0x5948},
+ {0x5230, 0x67F0},
+ {0x5231, 0x8010},
+ {0x5232, 0xF92E},
+ {0x5233, 0x5973},
+ {0x5234, 0x5E74},
+ {0x5235, 0x649A},
+ {0x5236, 0x79CA},
+ {0x5237, 0x5FF5},
+ {0x5238, 0x606C},
+ {0x5239, 0x62C8},
+ {0x523A, 0x637B},
+ {0x523B, 0x5BE7},
+ {0x523C, 0x5BD7},
+ {0x523D, 0x52AA},
+ {0x523E, 0xF92F},
+ {0x523F, 0x5974},
+ {0x5240, 0x5F29},
+ {0x5241, 0x6012},
+ {0x5242, 0xF930},
+ {0x5243, 0xF931},
+ {0x5244, 0xF932},
+ {0x5245, 0x7459},
+ {0x5246, 0xF933},
+ {0x5247, 0xF934},
+ {0x5248, 0xF935},
+ {0x5249, 0xF936},
+ {0x524A, 0xF937},
+ {0x524B, 0xF938},
+ {0x524C, 0x99D1},
+ {0x524D, 0xF939},
+ {0x524E, 0xF93A},
+ {0x524F, 0xF93B},
+ {0x5250, 0xF93C},
+ {0x5251, 0xF93D},
+ {0x5252, 0xF93E},
+ {0x5253, 0xF93F},
+ {0x5254, 0xF940},
+ {0x5255, 0xF941},
+ {0x5256, 0xF942},
+ {0x5257, 0xF943},
+ {0x5258, 0x6FC3},
+ {0x5259, 0xF944},
+ {0x525A, 0xF945},
+ {0x525B, 0x81BF},
+ {0x525C, 0x8FB2},
+ {0x525D, 0x60F1},
+ {0x525E, 0xF946},
+ {0x525F, 0xF947},
+ {0x5260, 0x8166},
+ {0x5261, 0xF948},
+ {0x5262, 0xF949},
+ {0x5263, 0x5C3F},
+ {0x5264, 0xF94A},
+ {0x5265, 0xF94B},
+ {0x5266, 0xF94C},
+ {0x5267, 0xF94D},
+ {0x5268, 0xF94E},
+ {0x5269, 0xF94F},
+ {0x526A, 0xF950},
+ {0x526B, 0xF951},
+ {0x526C, 0x5AE9},
+ {0x526D, 0x8A25},
+ {0x526E, 0x677B},
+ {0x526F, 0x7D10},
+ {0x5270, 0xF952},
+ {0x5271, 0xF953},
+ {0x5272, 0xF954},
+ {0x5273, 0xF955},
+ {0x5274, 0xF956},
+ {0x5275, 0xF957},
+ {0x5276, 0x80FD},
+ {0x5277, 0xF958},
+ {0x5278, 0xF959},
+ {0x5279, 0x5C3C},
+ {0x527A, 0x6CE5},
+ {0x527B, 0x533F},
+ {0x527C, 0x6EBA},
+ {0x527D, 0x591A},
+ {0x527E, 0x8336},
+ {0x5321, 0x4E39},
+ {0x5322, 0x4EB6},
+ {0x5323, 0x4F46},
+ {0x5324, 0x55AE},
+ {0x5325, 0x5718},
+ {0x5326, 0x58C7},
+ {0x5327, 0x5F56},
+ {0x5328, 0x65B7},
+ {0x5329, 0x65E6},
+ {0x532A, 0x6A80},
+ {0x532B, 0x6BB5},
+ {0x532C, 0x6E4D},
+ {0x532D, 0x77ED},
+ {0x532E, 0x7AEF},
+ {0x532F, 0x7C1E},
+ {0x5330, 0x7DDE},
+ {0x5331, 0x86CB},
+ {0x5332, 0x8892},
+ {0x5333, 0x9132},
+ {0x5334, 0x935B},
+ {0x5335, 0x64BB},
+ {0x5336, 0x6FBE},
+ {0x5337, 0x737A},
+ {0x5338, 0x75B8},
+ {0x5339, 0x9054},
+ {0x533A, 0x5556},
+ {0x533B, 0x574D},
+ {0x533C, 0x61BA},
+ {0x533D, 0x64D4},
+ {0x533E, 0x66C7},
+ {0x533F, 0x6DE1},
+ {0x5340, 0x6E5B},
+ {0x5341, 0x6F6D},
+ {0x5342, 0x6FB9},
+ {0x5343, 0x75F0},
+ {0x5344, 0x8043},
+ {0x5345, 0x81BD},
+ {0x5346, 0x8541},
+ {0x5347, 0x8983},
+ {0x5348, 0x8AC7},
+ {0x5349, 0x8B5A},
+ {0x534A, 0x931F},
+ {0x534B, 0x6C93},
+ {0x534C, 0x7553},
+ {0x534D, 0x7B54},
+ {0x534E, 0x8E0F},
+ {0x534F, 0x905D},
+ {0x5350, 0x5510},
+ {0x5351, 0x5802},
+ {0x5352, 0x5858},
+ {0x5353, 0x5E62},
+ {0x5354, 0x6207},
+ {0x5355, 0x649E},
+ {0x5356, 0x68E0},
+ {0x5357, 0x7576},
+ {0x5358, 0x7CD6},
+ {0x5359, 0x87B3},
+ {0x535A, 0x9EE8},
+ {0x535B, 0x4EE3},
+ {0x535C, 0x5788},
+ {0x535D, 0x576E},
+ {0x535E, 0x5927},
+ {0x535F, 0x5C0D},
+ {0x5360, 0x5CB1},
+ {0x5361, 0x5E36},
+ {0x5362, 0x5F85},
+ {0x5363, 0x6234},
+ {0x5364, 0x64E1},
+ {0x5365, 0x73B3},
+ {0x5366, 0x81FA},
+ {0x5367, 0x888B},
+ {0x5368, 0x8CB8},
+ {0x5369, 0x968A},
+ {0x536A, 0x9EDB},
+ {0x536B, 0x5B85},
+ {0x536C, 0x5FB7},
+ {0x536D, 0x60B3},
+ {0x536E, 0x5012},
+ {0x536F, 0x5200},
+ {0x5370, 0x5230},
+ {0x5371, 0x5716},
+ {0x5372, 0x5835},
+ {0x5373, 0x5857},
+ {0x5374, 0x5C0E},
+ {0x5375, 0x5C60},
+ {0x5376, 0x5CF6},
+ {0x5377, 0x5D8B},
+ {0x5378, 0x5EA6},
+ {0x5379, 0x5F92},
+ {0x537A, 0x60BC},
+ {0x537B, 0x6311},
+ {0x537C, 0x6389},
+ {0x537D, 0x6417},
+ {0x537E, 0x6843},
+ {0x5421, 0x68F9},
+ {0x5422, 0x6AC2},
+ {0x5423, 0x6DD8},
+ {0x5424, 0x6E21},
+ {0x5425, 0x6ED4},
+ {0x5426, 0x6FE4},
+ {0x5427, 0x71FE},
+ {0x5428, 0x76DC},
+ {0x5429, 0x7779},
+ {0x542A, 0x79B1},
+ {0x542B, 0x7A3B},
+ {0x542C, 0x8404},
+ {0x542D, 0x89A9},
+ {0x542E, 0x8CED},
+ {0x542F, 0x8DF3},
+ {0x5430, 0x8E48},
+ {0x5431, 0x9003},
+ {0x5432, 0x9014},
+ {0x5433, 0x9053},
+ {0x5434, 0x90FD},
+ {0x5435, 0x934D},
+ {0x5436, 0x9676},
+ {0x5437, 0x97DC},
+ {0x5438, 0x6BD2},
+ {0x5439, 0x7006},
+ {0x543A, 0x7258},
+ {0x543B, 0x72A2},
+ {0x543C, 0x7368},
+ {0x543D, 0x7763},
+ {0x543E, 0x79BF},
+ {0x543F, 0x7BE4},
+ {0x5440, 0x7E9B},
+ {0x5441, 0x8B80},
+ {0x5442, 0x58A9},
+ {0x5443, 0x60C7},
+ {0x5444, 0x6566},
+ {0x5445, 0x65FD},
+ {0x5446, 0x66BE},
+ {0x5447, 0x6C8C},
+ {0x5448, 0x711E},
+ {0x5449, 0x71C9},
+ {0x544A, 0x8C5A},
+ {0x544B, 0x9813},
+ {0x544C, 0x4E6D},
+ {0x544D, 0x7A81},
+ {0x544E, 0x4EDD},
+ {0x544F, 0x51AC},
+ {0x5450, 0x51CD},
+ {0x5451, 0x52D5},
+ {0x5452, 0x540C},
+ {0x5453, 0x61A7},
+ {0x5454, 0x6771},
+ {0x5455, 0x6850},
+ {0x5456, 0x68DF},
+ {0x5457, 0x6D1E},
+ {0x5458, 0x6F7C},
+ {0x5459, 0x75BC},
+ {0x545A, 0x77B3},
+ {0x545B, 0x7AE5},
+ {0x545C, 0x80F4},
+ {0x545D, 0x8463},
+ {0x545E, 0x9285},
+ {0x545F, 0x515C},
+ {0x5460, 0x6597},
+ {0x5461, 0x675C},
+ {0x5462, 0x6793},
+ {0x5463, 0x75D8},
+ {0x5464, 0x7AC7},
+ {0x5465, 0x8373},
+ {0x5466, 0xF95A},
+ {0x5467, 0x8C46},
+ {0x5468, 0x9017},
+ {0x5469, 0x982D},
+ {0x546A, 0x5C6F},
+ {0x546B, 0x81C0},
+ {0x546C, 0x829A},
+ {0x546D, 0x9041},
+ {0x546E, 0x906F},
+ {0x546F, 0x920D},
+ {0x5470, 0x5F97},
+ {0x5471, 0x5D9D},
+ {0x5472, 0x6A59},
+ {0x5473, 0x71C8},
+ {0x5474, 0x767B},
+ {0x5475, 0x7B49},
+ {0x5476, 0x85E4},
+ {0x5477, 0x8B04},
+ {0x5478, 0x9127},
+ {0x5479, 0x9A30},
+ {0x547A, 0x5587},
+ {0x547B, 0x61F6},
+ {0x547C, 0xF95B},
+ {0x547D, 0x7669},
+ {0x547E, 0x7F85},
+ {0x5521, 0x863F},
+ {0x5522, 0x87BA},
+ {0x5523, 0x88F8},
+ {0x5524, 0x908F},
+ {0x5525, 0xF95C},
+ {0x5526, 0x6D1B},
+ {0x5527, 0x70D9},
+ {0x5528, 0x73DE},
+ {0x5529, 0x7D61},
+ {0x552A, 0x843D},
+ {0x552B, 0xF95D},
+ {0x552C, 0x916A},
+ {0x552D, 0x99F1},
+ {0x552E, 0xF95E},
+ {0x552F, 0x4E82},
+ {0x5530, 0x5375},
+ {0x5531, 0x6B04},
+ {0x5532, 0x6B12},
+ {0x5533, 0x703E},
+ {0x5534, 0x721B},
+ {0x5535, 0x862D},
+ {0x5536, 0x9E1E},
+ {0x5537, 0x524C},
+ {0x5538, 0x8FA3},
+ {0x5539, 0x5D50},
+ {0x553A, 0x64E5},
+ {0x553B, 0x652C},
+ {0x553C, 0x6B16},
+ {0x553D, 0x6FEB},
+ {0x553E, 0x7C43},
+ {0x553F, 0x7E9C},
+ {0x5540, 0x85CD},
+ {0x5541, 0x8964},
+ {0x5542, 0x89BD},
+ {0x5543, 0x62C9},
+ {0x5544, 0x81D8},
+ {0x5545, 0x881F},
+ {0x5546, 0x5ECA},
+ {0x5547, 0x6717},
+ {0x5548, 0x6D6A},
+ {0x5549, 0x72FC},
+ {0x554A, 0x7405},
+ {0x554B, 0x746F},
+ {0x554C, 0x8782},
+ {0x554D, 0x90DE},
+ {0x554E, 0x4F86},
+ {0x554F, 0x5D0D},
+ {0x5550, 0x5FA0},
+ {0x5551, 0x840A},
+ {0x5552, 0x51B7},
+ {0x5553, 0x63A0},
+ {0x5554, 0x7565},
+ {0x5555, 0x4EAE},
+ {0x5556, 0x5006},
+ {0x5557, 0x5169},
+ {0x5558, 0x51C9},
+ {0x5559, 0x6881},
+ {0x555A, 0x6A11},
+ {0x555B, 0x7CAE},
+ {0x555C, 0x7CB1},
+ {0x555D, 0x7CE7},
+ {0x555E, 0x826F},
+ {0x555F, 0x8AD2},
+ {0x5560, 0x8F1B},
+ {0x5561, 0x91CF},
+ {0x5562, 0x4FB6},
+ {0x5563, 0x5137},
+ {0x5564, 0x52F5},
+ {0x5565, 0x5442},
+ {0x5566, 0x5EEC},
+ {0x5567, 0x616E},
+ {0x5568, 0x623E},
+ {0x5569, 0x65C5},
+ {0x556A, 0x6ADA},
+ {0x556B, 0x6FFE},
+ {0x556C, 0x792A},
+ {0x556D, 0x85DC},
+ {0x556E, 0x8823},
+ {0x556F, 0x95AD},
+ {0x5570, 0x9A62},
+ {0x5571, 0x9A6A},
+ {0x5572, 0x9E97},
+ {0x5573, 0x9ECE},
+ {0x5574, 0x529B},
+ {0x5575, 0x66C6},
+ {0x5576, 0x6B77},
+ {0x5577, 0x701D},
+ {0x5578, 0x792B},
+ {0x5579, 0x8F62},
+ {0x557A, 0x9742},
+ {0x557B, 0x6190},
+ {0x557C, 0x6200},
+ {0x557D, 0x6523},
+ {0x557E, 0x6F23},
+ {0x5621, 0x7149},
+ {0x5622, 0x7489},
+ {0x5623, 0x7DF4},
+ {0x5624, 0x806F},
+ {0x5625, 0x84EE},
+ {0x5626, 0x8F26},
+ {0x5627, 0x9023},
+ {0x5628, 0x934A},
+ {0x5629, 0x51BD},
+ {0x562A, 0x5217},
+ {0x562B, 0x52A3},
+ {0x562C, 0x6D0C},
+ {0x562D, 0x70C8},
+ {0x562E, 0x88C2},
+ {0x562F, 0x5EC9},
+ {0x5630, 0x6582},
+ {0x5631, 0x6BAE},
+ {0x5632, 0x6FC2},
+ {0x5633, 0x7C3E},
+ {0x5634, 0x7375},
+ {0x5635, 0x4EE4},
+ {0x5636, 0x4F36},
+ {0x5637, 0x56F9},
+ {0x5638, 0xF95F},
+ {0x5639, 0x5CBA},
+ {0x563A, 0x5DBA},
+ {0x563B, 0x601C},
+ {0x563C, 0x73B2},
+ {0x563D, 0x7B2D},
+ {0x563E, 0x7F9A},
+ {0x563F, 0x7FCE},
+ {0x5640, 0x8046},
+ {0x5641, 0x901E},
+ {0x5642, 0x9234},
+ {0x5643, 0x96F6},
+ {0x5644, 0x9748},
+ {0x5645, 0x9818},
+ {0x5646, 0x9F61},
+ {0x5647, 0x4F8B},
+ {0x5648, 0x6FA7},
+ {0x5649, 0x79AE},
+ {0x564A, 0x91B4},
+ {0x564B, 0x96B7},
+ {0x564C, 0x52DE},
+ {0x564D, 0xF960},
+ {0x564E, 0x6488},
+ {0x564F, 0x64C4},
+ {0x5650, 0x6AD3},
+ {0x5651, 0x6F5E},
+ {0x5652, 0x7018},
+ {0x5653, 0x7210},
+ {0x5654, 0x76E7},
+ {0x5655, 0x8001},
+ {0x5656, 0x8606},
+ {0x5657, 0x865C},
+ {0x5658, 0x8DEF},
+ {0x5659, 0x8F05},
+ {0x565A, 0x9732},
+ {0x565B, 0x9B6F},
+ {0x565C, 0x9DFA},
+ {0x565D, 0x9E75},
+ {0x565E, 0x788C},
+ {0x565F, 0x797F},
+ {0x5660, 0x7DA0},
+ {0x5661, 0x83C9},
+ {0x5662, 0x9304},
+ {0x5663, 0x9E7F},
+ {0x5664, 0x9E93},
+ {0x5665, 0x8AD6},
+ {0x5666, 0x58DF},
+ {0x5667, 0x5F04},
+ {0x5668, 0x6727},
+ {0x5669, 0x7027},
+ {0x566A, 0x74CF},
+ {0x566B, 0x7C60},
+ {0x566C, 0x807E},
+ {0x566D, 0x5121},
+ {0x566E, 0x7028},
+ {0x566F, 0x7262},
+ {0x5670, 0x78CA},
+ {0x5671, 0x8CC2},
+ {0x5672, 0x8CDA},
+ {0x5673, 0x8CF4},
+ {0x5674, 0x96F7},
+ {0x5675, 0x4E86},
+ {0x5676, 0x50DA},
+ {0x5677, 0x5BEE},
+ {0x5678, 0x5ED6},
+ {0x5679, 0x6599},
+ {0x567A, 0x71CE},
+ {0x567B, 0x7642},
+ {0x567C, 0x77AD},
+ {0x567D, 0x804A},
+ {0x567E, 0x84FC},
+ {0x5721, 0x907C},
+ {0x5722, 0x9B27},
+ {0x5723, 0x9F8D},
+ {0x5724, 0x58D8},
+ {0x5725, 0x5A41},
+ {0x5726, 0x5C62},
+ {0x5727, 0x6A13},
+ {0x5728, 0x6DDA},
+ {0x5729, 0x6F0F},
+ {0x572A, 0x763B},
+ {0x572B, 0x7D2F},
+ {0x572C, 0x7E37},
+ {0x572D, 0x851E},
+ {0x572E, 0x8938},
+ {0x572F, 0x93E4},
+ {0x5730, 0x964B},
+ {0x5731, 0x5289},
+ {0x5732, 0x65D2},
+ {0x5733, 0x67F3},
+ {0x5734, 0x69B4},
+ {0x5735, 0x6D41},
+ {0x5736, 0x6E9C},
+ {0x5737, 0x700F},
+ {0x5738, 0x7409},
+ {0x5739, 0x7460},
+ {0x573A, 0x7559},
+ {0x573B, 0x7624},
+ {0x573C, 0x786B},
+ {0x573D, 0x8B2C},
+ {0x573E, 0x985E},
+ {0x573F, 0x516D},
+ {0x5740, 0x622E},
+ {0x5741, 0x9678},
+ {0x5742, 0x4F96},
+ {0x5743, 0x502B},
+ {0x5744, 0x5D19},
+ {0x5745, 0x6DEA},
+ {0x5746, 0x7DB8},
+ {0x5747, 0x8F2A},
+ {0x5748, 0x5F8B},
+ {0x5749, 0x6144},
+ {0x574A, 0x6817},
+ {0x574B, 0xF961},
+ {0x574C, 0x9686},
+ {0x574D, 0x52D2},
+ {0x574E, 0x808B},
+ {0x574F, 0x51DC},
+ {0x5750, 0x51CC},
+ {0x5751, 0x695E},
+ {0x5752, 0x7A1C},
+ {0x5753, 0x7DBE},
+ {0x5754, 0x83F1},
+ {0x5755, 0x9675},
+ {0x5756, 0x4FDA},
+ {0x5757, 0x5229},
+ {0x5758, 0x5398},
+ {0x5759, 0x540F},
+ {0x575A, 0x550E},
+ {0x575B, 0x5C65},
+ {0x575C, 0x60A7},
+ {0x575D, 0x674E},
+ {0x575E, 0x68A8},
+ {0x575F, 0x6D6C},
+ {0x5760, 0x7281},
+ {0x5761, 0x72F8},
+ {0x5762, 0x7406},
+ {0x5763, 0x7483},
+ {0x5764, 0xF962},
+ {0x5765, 0x75E2},
+ {0x5766, 0x7C6C},
+ {0x5767, 0x7F79},
+ {0x5768, 0x7FB8},
+ {0x5769, 0x8389},
+ {0x576A, 0x88CF},
+ {0x576B, 0x88E1},
+ {0x576C, 0x91CC},
+ {0x576D, 0x91D0},
+ {0x576E, 0x96E2},
+ {0x576F, 0x9BC9},
+ {0x5770, 0x541D},
+ {0x5771, 0x6F7E},
+ {0x5772, 0x71D0},
+ {0x5773, 0x7498},
+ {0x5774, 0x85FA},
+ {0x5775, 0x8EAA},
+ {0x5776, 0x96A3},
+ {0x5777, 0x9C57},
+ {0x5778, 0x9E9F},
+ {0x5779, 0x6797},
+ {0x577A, 0x6DCB},
+ {0x577B, 0x7433},
+ {0x577C, 0x81E8},
+ {0x577D, 0x9716},
+ {0x577E, 0x782C},
+ {0x5821, 0x7ACB},
+ {0x5822, 0x7B20},
+ {0x5823, 0x7C92},
+ {0x5824, 0x6469},
+ {0x5825, 0x746A},
+ {0x5826, 0x75F2},
+ {0x5827, 0x78BC},
+ {0x5828, 0x78E8},
+ {0x5829, 0x99AC},
+ {0x582A, 0x9B54},
+ {0x582B, 0x9EBB},
+ {0x582C, 0x5BDE},
+ {0x582D, 0x5E55},
+ {0x582E, 0x6F20},
+ {0x582F, 0x819C},
+ {0x5830, 0x83AB},
+ {0x5831, 0x9088},
+ {0x5832, 0x4E07},
+ {0x5833, 0x534D},
+ {0x5834, 0x5A29},
+ {0x5835, 0x5DD2},
+ {0x5836, 0x5F4E},
+ {0x5837, 0x6162},
+ {0x5838, 0x633D},
+ {0x5839, 0x6669},
+ {0x583A, 0x66FC},
+ {0x583B, 0x6EFF},
+ {0x583C, 0x6F2B},
+ {0x583D, 0x7063},
+ {0x583E, 0x779E},
+ {0x583F, 0x842C},
+ {0x5840, 0x8513},
+ {0x5841, 0x883B},
+ {0x5842, 0x8F13},
+ {0x5843, 0x9945},
+ {0x5844, 0x9C3B},
+ {0x5845, 0x551C},
+ {0x5846, 0x62B9},
+ {0x5847, 0x672B},
+ {0x5848, 0x6CAB},
+ {0x5849, 0x8309},
+ {0x584A, 0x896A},
+ {0x584B, 0x977A},
+ {0x584C, 0x4EA1},
+ {0x584D, 0x5984},
+ {0x584E, 0x5FD8},
+ {0x584F, 0x5FD9},
+ {0x5850, 0x671B},
+ {0x5851, 0x7DB2},
+ {0x5852, 0x7F54},
+ {0x5853, 0x8292},
+ {0x5854, 0x832B},
+ {0x5855, 0x83BD},
+ {0x5856, 0x8F1E},
+ {0x5857, 0x9099},
+ {0x5858, 0x57CB},
+ {0x5859, 0x59B9},
+ {0x585A, 0x5A92},
+ {0x585B, 0x5BD0},
+ {0x585C, 0x6627},
+ {0x585D, 0x679A},
+ {0x585E, 0x6885},
+ {0x585F, 0x6BCF},
+ {0x5860, 0x7164},
+ {0x5861, 0x7F75},
+ {0x5862, 0x8CB7},
+ {0x5863, 0x8CE3},
+ {0x5864, 0x9081},
+ {0x5865, 0x9B45},
+ {0x5866, 0x8108},
+ {0x5867, 0x8C8A},
+ {0x5868, 0x964C},
+ {0x5869, 0x9A40},
+ {0x586A, 0x9EA5},
+ {0x586B, 0x5B5F},
+ {0x586C, 0x6C13},
+ {0x586D, 0x731B},
+ {0x586E, 0x76F2},
+ {0x586F, 0x76DF},
+ {0x5870, 0x840C},
+ {0x5871, 0x51AA},
+ {0x5872, 0x8993},
+ {0x5873, 0x514D},
+ {0x5874, 0x5195},
+ {0x5875, 0x52C9},
+ {0x5876, 0x68C9},
+ {0x5877, 0x6C94},
+ {0x5878, 0x7704},
+ {0x5879, 0x7720},
+ {0x587A, 0x7DBF},
+ {0x587B, 0x7DEC},
+ {0x587C, 0x9762},
+ {0x587D, 0x9EB5},
+ {0x587E, 0x6EC5},
+ {0x5921, 0x8511},
+ {0x5922, 0x51A5},
+ {0x5923, 0x540D},
+ {0x5924, 0x547D},
+ {0x5925, 0x660E},
+ {0x5926, 0x669D},
+ {0x5927, 0x6927},
+ {0x5928, 0x6E9F},
+ {0x5929, 0x76BF},
+ {0x592A, 0x7791},
+ {0x592B, 0x8317},
+ {0x592C, 0x84C2},
+ {0x592D, 0x879F},
+ {0x592E, 0x9169},
+ {0x592F, 0x9298},
+ {0x5930, 0x9CF4},
+ {0x5931, 0x8882},
+ {0x5932, 0x4FAE},
+ {0x5933, 0x5192},
+ {0x5934, 0x52DF},
+ {0x5935, 0x59C6},
+ {0x5936, 0x5E3D},
+ {0x5937, 0x6155},
+ {0x5938, 0x6478},
+ {0x5939, 0x6479},
+ {0x593A, 0x66AE},
+ {0x593B, 0x67D0},
+ {0x593C, 0x6A21},
+ {0x593D, 0x6BCD},
+ {0x593E, 0x6BDB},
+ {0x593F, 0x725F},
+ {0x5940, 0x7261},
+ {0x5941, 0x7441},
+ {0x5942, 0x7738},
+ {0x5943, 0x77DB},
+ {0x5944, 0x8017},
+ {0x5945, 0x82BC},
+ {0x5946, 0x8305},
+ {0x5947, 0x8B00},
+ {0x5948, 0x8B28},
+ {0x5949, 0x8C8C},
+ {0x594A, 0x6728},
+ {0x594B, 0x6C90},
+ {0x594C, 0x7267},
+ {0x594D, 0x76EE},
+ {0x594E, 0x7766},
+ {0x594F, 0x7A46},
+ {0x5950, 0x9DA9},
+ {0x5951, 0x6B7F},
+ {0x5952, 0x6C92},
+ {0x5953, 0x5922},
+ {0x5954, 0x6726},
+ {0x5955, 0x8499},
+ {0x5956, 0x536F},
+ {0x5957, 0x5893},
+ {0x5958, 0x5999},
+ {0x5959, 0x5EDF},
+ {0x595A, 0x63CF},
+ {0x595B, 0x6634},
+ {0x595C, 0x6773},
+ {0x595D, 0x6E3A},
+ {0x595E, 0x732B},
+ {0x595F, 0x7AD7},
+ {0x5960, 0x82D7},
+ {0x5961, 0x9328},
+ {0x5962, 0x52D9},
+ {0x5963, 0x5DEB},
+ {0x5964, 0x61AE},
+ {0x5965, 0x61CB},
+ {0x5966, 0x620A},
+ {0x5967, 0x62C7},
+ {0x5968, 0x64AB},
+ {0x5969, 0x65E0},
+ {0x596A, 0x6959},
+ {0x596B, 0x6B66},
+ {0x596C, 0x6BCB},
+ {0x596D, 0x7121},
+ {0x596E, 0x73F7},
+ {0x596F, 0x755D},
+ {0x5970, 0x7E46},
+ {0x5971, 0x821E},
+ {0x5972, 0x8302},
+ {0x5973, 0x856A},
+ {0x5974, 0x8AA3},
+ {0x5975, 0x8CBF},
+ {0x5976, 0x9727},
+ {0x5977, 0x9D61},
+ {0x5978, 0x58A8},
+ {0x5979, 0x9ED8},
+ {0x597A, 0x5011},
+ {0x597B, 0x520E},
+ {0x597C, 0x543B},
+ {0x597D, 0x554F},
+ {0x597E, 0x6587},
+ {0x5A21, 0x6C76},
+ {0x5A22, 0x7D0A},
+ {0x5A23, 0x7D0B},
+ {0x5A24, 0x805E},
+ {0x5A25, 0x868A},
+ {0x5A26, 0x9580},
+ {0x5A27, 0x96EF},
+ {0x5A28, 0x52FF},
+ {0x5A29, 0x6C95},
+ {0x5A2A, 0x7269},
+ {0x5A2B, 0x5473},
+ {0x5A2C, 0x5A9A},
+ {0x5A2D, 0x5C3E},
+ {0x5A2E, 0x5D4B},
+ {0x5A2F, 0x5F4C},
+ {0x5A30, 0x5FAE},
+ {0x5A31, 0x672A},
+ {0x5A32, 0x68B6},
+ {0x5A33, 0x6963},
+ {0x5A34, 0x6E3C},
+ {0x5A35, 0x6E44},
+ {0x5A36, 0x7709},
+ {0x5A37, 0x7C73},
+ {0x5A38, 0x7F8E},
+ {0x5A39, 0x8587},
+ {0x5A3A, 0x8B0E},
+ {0x5A3B, 0x8FF7},
+ {0x5A3C, 0x9761},
+ {0x5A3D, 0x9EF4},
+ {0x5A3E, 0x5CB7},
+ {0x5A3F, 0x60B6},
+ {0x5A40, 0x610D},
+ {0x5A41, 0x61AB},
+ {0x5A42, 0x654F},
+ {0x5A43, 0x65FB},
+ {0x5A44, 0x65FC},
+ {0x5A45, 0x6C11},
+ {0x5A46, 0x6CEF},
+ {0x5A47, 0x739F},
+ {0x5A48, 0x73C9},
+ {0x5A49, 0x7DE1},
+ {0x5A4A, 0x9594},
+ {0x5A4B, 0x5BC6},
+ {0x5A4C, 0x871C},
+ {0x5A4D, 0x8B10},
+ {0x5A4E, 0x525D},
+ {0x5A4F, 0x535A},
+ {0x5A50, 0x62CD},
+ {0x5A51, 0x640F},
+ {0x5A52, 0x64B2},
+ {0x5A53, 0x6734},
+ {0x5A54, 0x6A38},
+ {0x5A55, 0x6CCA},
+ {0x5A56, 0x73C0},
+ {0x5A57, 0x749E},
+ {0x5A58, 0x7B94},
+ {0x5A59, 0x7C95},
+ {0x5A5A, 0x7E1B},
+ {0x5A5B, 0x818A},
+ {0x5A5C, 0x8236},
+ {0x5A5D, 0x8584},
+ {0x5A5E, 0x8FEB},
+ {0x5A5F, 0x96F9},
+ {0x5A60, 0x99C1},
+ {0x5A61, 0x4F34},
+ {0x5A62, 0x534A},
+ {0x5A63, 0x53CD},
+ {0x5A64, 0x53DB},
+ {0x5A65, 0x62CC},
+ {0x5A66, 0x642C},
+ {0x5A67, 0x6500},
+ {0x5A68, 0x6591},
+ {0x5A69, 0x69C3},
+ {0x5A6A, 0x6CEE},
+ {0x5A6B, 0x6F58},
+ {0x5A6C, 0x73ED},
+ {0x5A6D, 0x7554},
+ {0x5A6E, 0x7622},
+ {0x5A6F, 0x76E4},
+ {0x5A70, 0x76FC},
+ {0x5A71, 0x78D0},
+ {0x5A72, 0x78FB},
+ {0x5A73, 0x792C},
+ {0x5A74, 0x7D46},
+ {0x5A75, 0x822C},
+ {0x5A76, 0x87E0},
+ {0x5A77, 0x8FD4},
+ {0x5A78, 0x9812},
+ {0x5A79, 0x98EF},
+ {0x5A7A, 0x52C3},
+ {0x5A7B, 0x62D4},
+ {0x5A7C, 0x64A5},
+ {0x5A7D, 0x6E24},
+ {0x5A7E, 0x6F51},
+ {0x5B21, 0x767C},
+ {0x5B22, 0x8DCB},
+ {0x5B23, 0x91B1},
+ {0x5B24, 0x9262},
+ {0x5B25, 0x9AEE},
+ {0x5B26, 0x9B43},
+ {0x5B27, 0x5023},
+ {0x5B28, 0x508D},
+ {0x5B29, 0x574A},
+ {0x5B2A, 0x59A8},
+ {0x5B2B, 0x5C28},
+ {0x5B2C, 0x5E47},
+ {0x5B2D, 0x5F77},
+ {0x5B2E, 0x623F},
+ {0x5B2F, 0x653E},
+ {0x5B30, 0x65B9},
+ {0x5B31, 0x65C1},
+ {0x5B32, 0x6609},
+ {0x5B33, 0x678B},
+ {0x5B34, 0x699C},
+ {0x5B35, 0x6EC2},
+ {0x5B36, 0x78C5},
+ {0x5B37, 0x7D21},
+ {0x5B38, 0x80AA},
+ {0x5B39, 0x8180},
+ {0x5B3A, 0x822B},
+ {0x5B3B, 0x82B3},
+ {0x5B3C, 0x84A1},
+ {0x5B3D, 0x868C},
+ {0x5B3E, 0x8A2A},
+ {0x5B3F, 0x8B17},
+ {0x5B40, 0x90A6},
+ {0x5B41, 0x9632},
+ {0x5B42, 0x9F90},
+ {0x5B43, 0x500D},
+ {0x5B44, 0x4FF3},
+ {0x5B45, 0xF963},
+ {0x5B46, 0x57F9},
+ {0x5B47, 0x5F98},
+ {0x5B48, 0x62DC},
+ {0x5B49, 0x6392},
+ {0x5B4A, 0x676F},
+ {0x5B4B, 0x6E43},
+ {0x5B4C, 0x7119},
+ {0x5B4D, 0x76C3},
+ {0x5B4E, 0x80CC},
+ {0x5B4F, 0x80DA},
+ {0x5B50, 0x88F4},
+ {0x5B51, 0x88F5},
+ {0x5B52, 0x8919},
+ {0x5B53, 0x8CE0},
+ {0x5B54, 0x8F29},
+ {0x5B55, 0x914D},
+ {0x5B56, 0x966A},
+ {0x5B57, 0x4F2F},
+ {0x5B58, 0x4F70},
+ {0x5B59, 0x5E1B},
+ {0x5B5A, 0x67CF},
+ {0x5B5B, 0x6822},
+ {0x5B5C, 0x767D},
+ {0x5B5D, 0x767E},
+ {0x5B5E, 0x9B44},
+ {0x5B5F, 0x5E61},
+ {0x5B60, 0x6A0A},
+ {0x5B61, 0x7169},
+ {0x5B62, 0x71D4},
+ {0x5B63, 0x756A},
+ {0x5B64, 0xF964},
+ {0x5B65, 0x7E41},
+ {0x5B66, 0x8543},
+ {0x5B67, 0x85E9},
+ {0x5B68, 0x98DC},
+ {0x5B69, 0x4F10},
+ {0x5B6A, 0x7B4F},
+ {0x5B6B, 0x7F70},
+ {0x5B6C, 0x95A5},
+ {0x5B6D, 0x51E1},
+ {0x5B6E, 0x5E06},
+ {0x5B6F, 0x68B5},
+ {0x5B70, 0x6C3E},
+ {0x5B71, 0x6C4E},
+ {0x5B72, 0x6CDB},
+ {0x5B73, 0x72AF},
+ {0x5B74, 0x7BC4},
+ {0x5B75, 0x8303},
+ {0x5B76, 0x6CD5},
+ {0x5B77, 0x743A},
+ {0x5B78, 0x50FB},
+ {0x5B79, 0x5288},
+ {0x5B7A, 0x58C1},
+ {0x5B7B, 0x64D8},
+ {0x5B7C, 0x6A97},
+ {0x5B7D, 0x74A7},
+ {0x5B7E, 0x7656},
+ {0x5C21, 0x78A7},
+ {0x5C22, 0x8617},
+ {0x5C23, 0x95E2},
+ {0x5C24, 0x9739},
+ {0x5C25, 0xF965},
+ {0x5C26, 0x535E},
+ {0x5C27, 0x5F01},
+ {0x5C28, 0x8B8A},
+ {0x5C29, 0x8FA8},
+ {0x5C2A, 0x8FAF},
+ {0x5C2B, 0x908A},
+ {0x5C2C, 0x5225},
+ {0x5C2D, 0x77A5},
+ {0x5C2E, 0x9C49},
+ {0x5C2F, 0x9F08},
+ {0x5C30, 0x4E19},
+ {0x5C31, 0x5002},
+ {0x5C32, 0x5175},
+ {0x5C33, 0x5C5B},
+ {0x5C34, 0x5E77},
+ {0x5C35, 0x661E},
+ {0x5C36, 0x663A},
+ {0x5C37, 0x67C4},
+ {0x5C38, 0x68C5},
+ {0x5C39, 0x70B3},
+ {0x5C3A, 0x7501},
+ {0x5C3B, 0x75C5},
+ {0x5C3C, 0x79C9},
+ {0x5C3D, 0x7ADD},
+ {0x5C3E, 0x8F27},
+ {0x5C3F, 0x9920},
+ {0x5C40, 0x9A08},
+ {0x5C41, 0x4FDD},
+ {0x5C42, 0x5821},
+ {0x5C43, 0x5831},
+ {0x5C44, 0x5BF6},
+ {0x5C45, 0x666E},
+ {0x5C46, 0x6B65},
+ {0x5C47, 0x6D11},
+ {0x5C48, 0x6E7A},
+ {0x5C49, 0x6F7D},
+ {0x5C4A, 0x73E4},
+ {0x5C4B, 0x752B},
+ {0x5C4C, 0x83E9},
+ {0x5C4D, 0x88DC},
+ {0x5C4E, 0x8913},
+ {0x5C4F, 0x8B5C},
+ {0x5C50, 0x8F14},
+ {0x5C51, 0x4F0F},
+ {0x5C52, 0x50D5},
+ {0x5C53, 0x5310},
+ {0x5C54, 0x535C},
+ {0x5C55, 0x5B93},
+ {0x5C56, 0x5FA9},
+ {0x5C57, 0x670D},
+ {0x5C58, 0x798F},
+ {0x5C59, 0x8179},
+ {0x5C5A, 0x832F},
+ {0x5C5B, 0x8514},
+ {0x5C5C, 0x8907},
+ {0x5C5D, 0x8986},
+ {0x5C5E, 0x8F39},
+ {0x5C5F, 0x8F3B},
+ {0x5C60, 0x99A5},
+ {0x5C61, 0x9C12},
+ {0x5C62, 0x672C},
+ {0x5C63, 0x4E76},
+ {0x5C64, 0x4FF8},
+ {0x5C65, 0x5949},
+ {0x5C66, 0x5C01},
+ {0x5C67, 0x5CEF},
+ {0x5C68, 0x5CF0},
+ {0x5C69, 0x6367},
+ {0x5C6A, 0x68D2},
+ {0x5C6B, 0x70FD},
+ {0x5C6C, 0x71A2},
+ {0x5C6D, 0x742B},
+ {0x5C6E, 0x7E2B},
+ {0x5C6F, 0x84EC},
+ {0x5C70, 0x8702},
+ {0x5C71, 0x9022},
+ {0x5C72, 0x92D2},
+ {0x5C73, 0x9CF3},
+ {0x5C74, 0x4E0D},
+ {0x5C75, 0x4ED8},
+ {0x5C76, 0x4FEF},
+ {0x5C77, 0x5085},
+ {0x5C78, 0x5256},
+ {0x5C79, 0x526F},
+ {0x5C7A, 0x5426},
+ {0x5C7B, 0x5490},
+ {0x5C7C, 0x57E0},
+ {0x5C7D, 0x592B},
+ {0x5C7E, 0x5A66},
+ {0x5D21, 0x5B5A},
+ {0x5D22, 0x5B75},
+ {0x5D23, 0x5BCC},
+ {0x5D24, 0x5E9C},
+ {0x5D25, 0xF966},
+ {0x5D26, 0x6276},
+ {0x5D27, 0x6577},
+ {0x5D28, 0x65A7},
+ {0x5D29, 0x6D6E},
+ {0x5D2A, 0x6EA5},
+ {0x5D2B, 0x7236},
+ {0x5D2C, 0x7B26},
+ {0x5D2D, 0x7C3F},
+ {0x5D2E, 0x7F36},
+ {0x5D2F, 0x8150},
+ {0x5D30, 0x8151},
+ {0x5D31, 0x819A},
+ {0x5D32, 0x8240},
+ {0x5D33, 0x8299},
+ {0x5D34, 0x83A9},
+ {0x5D35, 0x8A03},
+ {0x5D36, 0x8CA0},
+ {0x5D37, 0x8CE6},
+ {0x5D38, 0x8CFB},
+ {0x5D39, 0x8D74},
+ {0x5D3A, 0x8DBA},
+ {0x5D3B, 0x90E8},
+ {0x5D3C, 0x91DC},
+ {0x5D3D, 0x961C},
+ {0x5D3E, 0x9644},
+ {0x5D3F, 0x99D9},
+ {0x5D40, 0x9CE7},
+ {0x5D41, 0x5317},
+ {0x5D42, 0x5206},
+ {0x5D43, 0x5429},
+ {0x5D44, 0x5674},
+ {0x5D45, 0x58B3},
+ {0x5D46, 0x5954},
+ {0x5D47, 0x596E},
+ {0x5D48, 0x5FFF},
+ {0x5D49, 0x61A4},
+ {0x5D4A, 0x626E},
+ {0x5D4B, 0x6610},
+ {0x5D4C, 0x6C7E},
+ {0x5D4D, 0x711A},
+ {0x5D4E, 0x76C6},
+ {0x5D4F, 0x7C89},
+ {0x5D50, 0x7CDE},
+ {0x5D51, 0x7D1B},
+ {0x5D52, 0x82AC},
+ {0x5D53, 0x8CC1},
+ {0x5D54, 0x96F0},
+ {0x5D55, 0xF967},
+ {0x5D56, 0x4F5B},
+ {0x5D57, 0x5F17},
+ {0x5D58, 0x5F7F},
+ {0x5D59, 0x62C2},
+ {0x5D5A, 0x5D29},
+ {0x5D5B, 0x670B},
+ {0x5D5C, 0x68DA},
+ {0x5D5D, 0x787C},
+ {0x5D5E, 0x7E43},
+ {0x5D5F, 0x9D6C},
+ {0x5D60, 0x4E15},
+ {0x5D61, 0x5099},
+ {0x5D62, 0x5315},
+ {0x5D63, 0x532A},
+ {0x5D64, 0x5351},
+ {0x5D65, 0x5983},
+ {0x5D66, 0x5A62},
+ {0x5D67, 0x5E87},
+ {0x5D68, 0x60B2},
+ {0x5D69, 0x618A},
+ {0x5D6A, 0x6249},
+ {0x5D6B, 0x6279},
+ {0x5D6C, 0x6590},
+ {0x5D6D, 0x6787},
+ {0x5D6E, 0x69A7},
+ {0x5D6F, 0x6BD4},
+ {0x5D70, 0x6BD6},
+ {0x5D71, 0x6BD7},
+ {0x5D72, 0x6BD8},
+ {0x5D73, 0x6CB8},
+ {0x5D74, 0xF968},
+ {0x5D75, 0x7435},
+ {0x5D76, 0x75FA},
+ {0x5D77, 0x7812},
+ {0x5D78, 0x7891},
+ {0x5D79, 0x79D5},
+ {0x5D7A, 0x79D8},
+ {0x5D7B, 0x7C83},
+ {0x5D7C, 0x7DCB},
+ {0x5D7D, 0x7FE1},
+ {0x5D7E, 0x80A5},
+ {0x5E21, 0x813E},
+ {0x5E22, 0x81C2},
+ {0x5E23, 0x83F2},
+ {0x5E24, 0x871A},
+ {0x5E25, 0x88E8},
+ {0x5E26, 0x8AB9},
+ {0x5E27, 0x8B6C},
+ {0x5E28, 0x8CBB},
+ {0x5E29, 0x9119},
+ {0x5E2A, 0x975E},
+ {0x5E2B, 0x98DB},
+ {0x5E2C, 0x9F3B},
+ {0x5E2D, 0x56AC},
+ {0x5E2E, 0x5B2A},
+ {0x5E2F, 0x5F6C},
+ {0x5E30, 0x658C},
+ {0x5E31, 0x6AB3},
+ {0x5E32, 0x6BAF},
+ {0x5E33, 0x6D5C},
+ {0x5E34, 0x6FF1},
+ {0x5E35, 0x7015},
+ {0x5E36, 0x725D},
+ {0x5E37, 0x73AD},
+ {0x5E38, 0x8CA7},
+ {0x5E39, 0x8CD3},
+ {0x5E3A, 0x983B},
+ {0x5E3B, 0x6191},
+ {0x5E3C, 0x6C37},
+ {0x5E3D, 0x8058},
+ {0x5E3E, 0x9A01},
+ {0x5E3F, 0x4E4D},
+ {0x5E40, 0x4E8B},
+ {0x5E41, 0x4E9B},
+ {0x5E42, 0x4ED5},
+ {0x5E43, 0x4F3A},
+ {0x5E44, 0x4F3C},
+ {0x5E45, 0x4F7F},
+ {0x5E46, 0x4FDF},
+ {0x5E47, 0x50FF},
+ {0x5E48, 0x53F2},
+ {0x5E49, 0x53F8},
+ {0x5E4A, 0x5506},
+ {0x5E4B, 0x55E3},
+ {0x5E4C, 0x56DB},
+ {0x5E4D, 0x58EB},
+ {0x5E4E, 0x5962},
+ {0x5E4F, 0x5A11},
+ {0x5E50, 0x5BEB},
+ {0x5E51, 0x5BFA},
+ {0x5E52, 0x5C04},
+ {0x5E53, 0x5DF3},
+ {0x5E54, 0x5E2B},
+ {0x5E55, 0x5F99},
+ {0x5E56, 0x601D},
+ {0x5E57, 0x6368},
+ {0x5E58, 0x659C},
+ {0x5E59, 0x65AF},
+ {0x5E5A, 0x67F6},
+ {0x5E5B, 0x67FB},
+ {0x5E5C, 0x68AD},
+ {0x5E5D, 0x6B7B},
+ {0x5E5E, 0x6C99},
+ {0x5E5F, 0x6CD7},
+ {0x5E60, 0x6E23},
+ {0x5E61, 0x7009},
+ {0x5E62, 0x7345},
+ {0x5E63, 0x7802},
+ {0x5E64, 0x793E},
+ {0x5E65, 0x7940},
+ {0x5E66, 0x7960},
+ {0x5E67, 0x79C1},
+ {0x5E68, 0x7BE9},
+ {0x5E69, 0x7D17},
+ {0x5E6A, 0x7D72},
+ {0x5E6B, 0x8086},
+ {0x5E6C, 0x820D},
+ {0x5E6D, 0x838E},
+ {0x5E6E, 0x84D1},
+ {0x5E6F, 0x86C7},
+ {0x5E70, 0x88DF},
+ {0x5E71, 0x8A50},
+ {0x5E72, 0x8A5E},
+ {0x5E73, 0x8B1D},
+ {0x5E74, 0x8CDC},
+ {0x5E75, 0x8D66},
+ {0x5E76, 0x8FAD},
+ {0x5E77, 0x90AA},
+ {0x5E78, 0x98FC},
+ {0x5E79, 0x99DF},
+ {0x5E7A, 0x9E9D},
+ {0x5E7B, 0x524A},
+ {0x5E7C, 0xF969},
+ {0x5E7D, 0x6714},
+ {0x5E7E, 0xF96A},
+ {0x5F21, 0x5098},
+ {0x5F22, 0x522A},
+ {0x5F23, 0x5C71},
+ {0x5F24, 0x6563},
+ {0x5F25, 0x6C55},
+ {0x5F26, 0x73CA},
+ {0x5F27, 0x7523},
+ {0x5F28, 0x759D},
+ {0x5F29, 0x7B97},
+ {0x5F2A, 0x849C},
+ {0x5F2B, 0x9178},
+ {0x5F2C, 0x9730},
+ {0x5F2D, 0x4E77},
+ {0x5F2E, 0x6492},
+ {0x5F2F, 0x6BBA},
+ {0x5F30, 0x715E},
+ {0x5F31, 0x85A9},
+ {0x5F32, 0x4E09},
+ {0x5F33, 0xF96B},
+ {0x5F34, 0x6749},
+ {0x5F35, 0x68EE},
+ {0x5F36, 0x6E17},
+ {0x5F37, 0x829F},
+ {0x5F38, 0x8518},
+ {0x5F39, 0x886B},
+ {0x5F3A, 0x63F7},
+ {0x5F3B, 0x6F81},
+ {0x5F3C, 0x9212},
+ {0x5F3D, 0x98AF},
+ {0x5F3E, 0x4E0A},
+ {0x5F3F, 0x50B7},
+ {0x5F40, 0x50CF},
+ {0x5F41, 0x511F},
+ {0x5F42, 0x5546},
+ {0x5F43, 0x55AA},
+ {0x5F44, 0x5617},
+ {0x5F45, 0x5B40},
+ {0x5F46, 0x5C19},
+ {0x5F47, 0x5CE0},
+ {0x5F48, 0x5E38},
+ {0x5F49, 0x5E8A},
+ {0x5F4A, 0x5EA0},
+ {0x5F4B, 0x5EC2},
+ {0x5F4C, 0x60F3},
+ {0x5F4D, 0x6851},
+ {0x5F4E, 0x6A61},
+ {0x5F4F, 0x6E58},
+ {0x5F50, 0x723D},
+ {0x5F51, 0x7240},
+ {0x5F52, 0x72C0},
+ {0x5F53, 0x76F8},
+ {0x5F54, 0x7965},
+ {0x5F55, 0x7BB1},
+ {0x5F56, 0x7FD4},
+ {0x5F57, 0x88F3},
+ {0x5F58, 0x89F4},
+ {0x5F59, 0x8A73},
+ {0x5F5A, 0x8C61},
+ {0x5F5B, 0x8CDE},
+ {0x5F5C, 0x971C},
+ {0x5F5D, 0x585E},
+ {0x5F5E, 0x74BD},
+ {0x5F5F, 0x8CFD},
+ {0x5F60, 0x55C7},
+ {0x5F61, 0xF96C},
+ {0x5F62, 0x7A61},
+ {0x5F63, 0x7D22},
+ {0x5F64, 0x8272},
+ {0x5F65, 0x7272},
+ {0x5F66, 0x751F},
+ {0x5F67, 0x7525},
+ {0x5F68, 0xF96D},
+ {0x5F69, 0x7B19},
+ {0x5F6A, 0x5885},
+ {0x5F6B, 0x58FB},
+ {0x5F6C, 0x5DBC},
+ {0x5F6D, 0x5E8F},
+ {0x5F6E, 0x5EB6},
+ {0x5F6F, 0x5F90},
+ {0x5F70, 0x6055},
+ {0x5F71, 0x6292},
+ {0x5F72, 0x637F},
+ {0x5F73, 0x654D},
+ {0x5F74, 0x6691},
+ {0x5F75, 0x66D9},
+ {0x5F76, 0x66F8},
+ {0x5F77, 0x6816},
+ {0x5F78, 0x68F2},
+ {0x5F79, 0x7280},
+ {0x5F7A, 0x745E},
+ {0x5F7B, 0x7B6E},
+ {0x5F7C, 0x7D6E},
+ {0x5F7D, 0x7DD6},
+ {0x5F7E, 0x7F72},
+ {0x6021, 0x80E5},
+ {0x6022, 0x8212},
+ {0x6023, 0x85AF},
+ {0x6024, 0x897F},
+ {0x6025, 0x8A93},
+ {0x6026, 0x901D},
+ {0x6027, 0x92E4},
+ {0x6028, 0x9ECD},
+ {0x6029, 0x9F20},
+ {0x602A, 0x5915},
+ {0x602B, 0x596D},
+ {0x602C, 0x5E2D},
+ {0x602D, 0x60DC},
+ {0x602E, 0x6614},
+ {0x602F, 0x6673},
+ {0x6030, 0x6790},
+ {0x6031, 0x6C50},
+ {0x6032, 0x6DC5},
+ {0x6033, 0x6F5F},
+ {0x6034, 0x77F3},
+ {0x6035, 0x78A9},
+ {0x6036, 0x84C6},
+ {0x6037, 0x91CB},
+ {0x6038, 0x932B},
+ {0x6039, 0x4ED9},
+ {0x603A, 0x50CA},
+ {0x603B, 0x5148},
+ {0x603C, 0x5584},
+ {0x603D, 0x5B0B},
+ {0x603E, 0x5BA3},
+ {0x603F, 0x6247},
+ {0x6040, 0x657E},
+ {0x6041, 0x65CB},
+ {0x6042, 0x6E32},
+ {0x6043, 0x717D},
+ {0x6044, 0x7401},
+ {0x6045, 0x7444},
+ {0x6046, 0x7487},
+ {0x6047, 0x74BF},
+ {0x6048, 0x766C},
+ {0x6049, 0x79AA},
+ {0x604A, 0x7DDA},
+ {0x604B, 0x7E55},
+ {0x604C, 0x7FA8},
+ {0x604D, 0x817A},
+ {0x604E, 0x81B3},
+ {0x604F, 0x8239},
+ {0x6050, 0x861A},
+ {0x6051, 0x87EC},
+ {0x6052, 0x8A75},
+ {0x6053, 0x8DE3},
+ {0x6054, 0x9078},
+ {0x6055, 0x9291},
+ {0x6056, 0x9425},
+ {0x6057, 0x994D},
+ {0x6058, 0x9BAE},
+ {0x6059, 0x5368},
+ {0x605A, 0x5C51},
+ {0x605B, 0x6954},
+ {0x605C, 0x6CC4},
+ {0x605D, 0x6D29},
+ {0x605E, 0x6E2B},
+ {0x605F, 0x820C},
+ {0x6060, 0x859B},
+ {0x6061, 0x893B},
+ {0x6062, 0x8A2D},
+ {0x6063, 0x8AAA},
+ {0x6064, 0x96EA},
+ {0x6065, 0x9F67},
+ {0x6066, 0x5261},
+ {0x6067, 0x66B9},
+ {0x6068, 0x6BB2},
+ {0x6069, 0x7E96},
+ {0x606A, 0x87FE},
+ {0x606B, 0x8D0D},
+ {0x606C, 0x9583},
+ {0x606D, 0x965D},
+ {0x606E, 0x651D},
+ {0x606F, 0x6D89},
+ {0x6070, 0x71EE},
+ {0x6071, 0xF96E},
+ {0x6072, 0x57CE},
+ {0x6073, 0x59D3},
+ {0x6074, 0x5BAC},
+ {0x6075, 0x6027},
+ {0x6076, 0x60FA},
+ {0x6077, 0x6210},
+ {0x6078, 0x661F},
+ {0x6079, 0x665F},
+ {0x607A, 0x7329},
+ {0x607B, 0x73F9},
+ {0x607C, 0x76DB},
+ {0x607D, 0x7701},
+ {0x607E, 0x7B6C},
+ {0x6121, 0x8056},
+ {0x6122, 0x8072},
+ {0x6123, 0x8165},
+ {0x6124, 0x8AA0},
+ {0x6125, 0x9192},
+ {0x6126, 0x4E16},
+ {0x6127, 0x52E2},
+ {0x6128, 0x6B72},
+ {0x6129, 0x6D17},
+ {0x612A, 0x7A05},
+ {0x612B, 0x7B39},
+ {0x612C, 0x7D30},
+ {0x612D, 0xF96F},
+ {0x612E, 0x8CB0},
+ {0x612F, 0x53EC},
+ {0x6130, 0x562F},
+ {0x6131, 0x5851},
+ {0x6132, 0x5BB5},
+ {0x6133, 0x5C0F},
+ {0x6134, 0x5C11},
+ {0x6135, 0x5DE2},
+ {0x6136, 0x6240},
+ {0x6137, 0x6383},
+ {0x6138, 0x6414},
+ {0x6139, 0x662D},
+ {0x613A, 0x68B3},
+ {0x613B, 0x6CBC},
+ {0x613C, 0x6D88},
+ {0x613D, 0x6EAF},
+ {0x613E, 0x701F},
+ {0x613F, 0x70A4},
+ {0x6140, 0x71D2},
+ {0x6141, 0x7526},
+ {0x6142, 0x758F},
+ {0x6143, 0x758E},
+ {0x6144, 0x7619},
+ {0x6145, 0x7B11},
+ {0x6146, 0x7BE0},
+ {0x6147, 0x7C2B},
+ {0x6148, 0x7D20},
+ {0x6149, 0x7D39},
+ {0x614A, 0x852C},
+ {0x614B, 0x856D},
+ {0x614C, 0x8607},
+ {0x614D, 0x8A34},
+ {0x614E, 0x900D},
+ {0x614F, 0x9061},
+ {0x6150, 0x90B5},
+ {0x6151, 0x92B7},
+ {0x6152, 0x97F6},
+ {0x6153, 0x9A37},
+ {0x6154, 0x4FD7},
+ {0x6155, 0x5C6C},
+ {0x6156, 0x675F},
+ {0x6157, 0x6D91},
+ {0x6158, 0x7C9F},
+ {0x6159, 0x7E8C},
+ {0x615A, 0x8B16},
+ {0x615B, 0x8D16},
+ {0x615C, 0x901F},
+ {0x615D, 0x5B6B},
+ {0x615E, 0x5DFD},
+ {0x615F, 0x640D},
+ {0x6160, 0x84C0},
+ {0x6161, 0x905C},
+ {0x6162, 0x98E1},
+ {0x6163, 0x7387},
+ {0x6164, 0x5B8B},
+ {0x6165, 0x609A},
+ {0x6166, 0x677E},
+ {0x6167, 0x6DDE},
+ {0x6168, 0x8A1F},
+ {0x6169, 0x8AA6},
+ {0x616A, 0x9001},
+ {0x616B, 0x980C},
+ {0x616C, 0x5237},
+ {0x616D, 0xF970},
+ {0x616E, 0x7051},
+ {0x616F, 0x788E},
+ {0x6170, 0x9396},
+ {0x6171, 0x8870},
+ {0x6172, 0x91D7},
+ {0x6173, 0x4FEE},
+ {0x6174, 0x53D7},
+ {0x6175, 0x55FD},
+ {0x6176, 0x56DA},
+ {0x6177, 0x5782},
+ {0x6178, 0x58FD},
+ {0x6179, 0x5AC2},
+ {0x617A, 0x5B88},
+ {0x617B, 0x5CAB},
+ {0x617C, 0x5CC0},
+ {0x617D, 0x5E25},
+ {0x617E, 0x6101},
+ {0x6221, 0x620D},
+ {0x6222, 0x624B},
+ {0x6223, 0x6388},
+ {0x6224, 0x641C},
+ {0x6225, 0x6536},
+ {0x6226, 0x6578},
+ {0x6227, 0x6A39},
+ {0x6228, 0x6B8A},
+ {0x6229, 0x6C34},
+ {0x622A, 0x6D19},
+ {0x622B, 0x6F31},
+ {0x622C, 0x71E7},
+ {0x622D, 0x72E9},
+ {0x622E, 0x7378},
+ {0x622F, 0x7407},
+ {0x6230, 0x74B2},
+ {0x6231, 0x7626},
+ {0x6232, 0x7761},
+ {0x6233, 0x79C0},
+ {0x6234, 0x7A57},
+ {0x6235, 0x7AEA},
+ {0x6236, 0x7CB9},
+ {0x6237, 0x7D8F},
+ {0x6238, 0x7DAC},
+ {0x6239, 0x7E61},
+ {0x623A, 0x7F9E},
+ {0x623B, 0x8129},
+ {0x623C, 0x8331},
+ {0x623D, 0x8490},
+ {0x623E, 0x84DA},
+ {0x623F, 0x85EA},
+ {0x6240, 0x8896},
+ {0x6241, 0x8AB0},
+ {0x6242, 0x8B90},
+ {0x6243, 0x8F38},
+ {0x6244, 0x9042},
+ {0x6245, 0x9083},
+ {0x6246, 0x916C},
+ {0x6247, 0x9296},
+ {0x6248, 0x92B9},
+ {0x6249, 0x968B},
+ {0x624A, 0x96A7},
+ {0x624B, 0x96A8},
+ {0x624C, 0x96D6},
+ {0x624D, 0x9700},
+ {0x624E, 0x9808},
+ {0x624F, 0x9996},
+ {0x6250, 0x9AD3},
+ {0x6251, 0x9B1A},
+ {0x6252, 0x53D4},
+ {0x6253, 0x587E},
+ {0x6254, 0x5919},
+ {0x6255, 0x5B70},
+ {0x6256, 0x5BBF},
+ {0x6257, 0x6DD1},
+ {0x6258, 0x6F5A},
+ {0x6259, 0x719F},
+ {0x625A, 0x7421},
+ {0x625B, 0x74B9},
+ {0x625C, 0x8085},
+ {0x625D, 0x83FD},
+ {0x625E, 0x5DE1},
+ {0x625F, 0x5F87},
+ {0x6260, 0x5FAA},
+ {0x6261, 0x6042},
+ {0x6262, 0x65EC},
+ {0x6263, 0x6812},
+ {0x6264, 0x696F},
+ {0x6265, 0x6A53},
+ {0x6266, 0x6B89},
+ {0x6267, 0x6D35},
+ {0x6268, 0x6DF3},
+ {0x6269, 0x73E3},
+ {0x626A, 0x76FE},
+ {0x626B, 0x77AC},
+ {0x626C, 0x7B4D},
+ {0x626D, 0x7D14},
+ {0x626E, 0x8123},
+ {0x626F, 0x821C},
+ {0x6270, 0x8340},
+ {0x6271, 0x84F4},
+ {0x6272, 0x8563},
+ {0x6273, 0x8A62},
+ {0x6274, 0x8AC4},
+ {0x6275, 0x9187},
+ {0x6276, 0x931E},
+ {0x6277, 0x9806},
+ {0x6278, 0x99B4},
+ {0x6279, 0x620C},
+ {0x627A, 0x8853},
+ {0x627B, 0x8FF0},
+ {0x627C, 0x9265},
+ {0x627D, 0x5D07},
+ {0x627E, 0x5D27},
+ {0x6321, 0x5D69},
+ {0x6322, 0x745F},
+ {0x6323, 0x819D},
+ {0x6324, 0x8768},
+ {0x6325, 0x6FD5},
+ {0x6326, 0x62FE},
+ {0x6327, 0x7FD2},
+ {0x6328, 0x8936},
+ {0x6329, 0x8972},
+ {0x632A, 0x4E1E},
+ {0x632B, 0x4E58},
+ {0x632C, 0x50E7},
+ {0x632D, 0x52DD},
+ {0x632E, 0x5347},
+ {0x632F, 0x627F},
+ {0x6330, 0x6607},
+ {0x6331, 0x7E69},
+ {0x6332, 0x8805},
+ {0x6333, 0x965E},
+ {0x6334, 0x4F8D},
+ {0x6335, 0x5319},
+ {0x6336, 0x5636},
+ {0x6337, 0x59CB},
+ {0x6338, 0x5AA4},
+ {0x6339, 0x5C38},
+ {0x633A, 0x5C4E},
+ {0x633B, 0x5C4D},
+ {0x633C, 0x5E02},
+ {0x633D, 0x5F11},
+ {0x633E, 0x6043},
+ {0x633F, 0x65BD},
+ {0x6340, 0x662F},
+ {0x6341, 0x6642},
+ {0x6342, 0x67BE},
+ {0x6343, 0x67F4},
+ {0x6344, 0x731C},
+ {0x6345, 0x77E2},
+ {0x6346, 0x793A},
+ {0x6347, 0x7FC5},
+ {0x6348, 0x8494},
+ {0x6349, 0x84CD},
+ {0x634A, 0x8996},
+ {0x634B, 0x8A66},
+ {0x634C, 0x8A69},
+ {0x634D, 0x8AE1},
+ {0x634E, 0x8C55},
+ {0x634F, 0x8C7A},
+ {0x6350, 0x57F4},
+ {0x6351, 0x5BD4},
+ {0x6352, 0x5F0F},
+ {0x6353, 0x606F},
+ {0x6354, 0x62ED},
+ {0x6355, 0x690D},
+ {0x6356, 0x6B96},
+ {0x6357, 0x6E5C},
+ {0x6358, 0x7184},
+ {0x6359, 0x7BD2},
+ {0x635A, 0x8755},
+ {0x635B, 0x8B58},
+ {0x635C, 0x8EFE},
+ {0x635D, 0x98DF},
+ {0x635E, 0x98FE},
+ {0x635F, 0x4F38},
+ {0x6360, 0x4F81},
+ {0x6361, 0x4FE1},
+ {0x6362, 0x547B},
+ {0x6363, 0x5A20},
+ {0x6364, 0x5BB8},
+ {0x6365, 0x613C},
+ {0x6366, 0x65B0},
+ {0x6367, 0x6668},
+ {0x6368, 0x71FC},
+ {0x6369, 0x7533},
+ {0x636A, 0x795E},
+ {0x636B, 0x7D33},
+ {0x636C, 0x814E},
+ {0x636D, 0x81E3},
+ {0x636E, 0x8398},
+ {0x636F, 0x85AA},
+ {0x6370, 0x85CE},
+ {0x6371, 0x8703},
+ {0x6372, 0x8A0A},
+ {0x6373, 0x8EAB},
+ {0x6374, 0x8F9B},
+ {0x6375, 0xF971},
+ {0x6376, 0x8FC5},
+ {0x6377, 0x5931},
+ {0x6378, 0x5BA4},
+ {0x6379, 0x5BE6},
+ {0x637A, 0x6089},
+ {0x637B, 0x5BE9},
+ {0x637C, 0x5C0B},
+ {0x637D, 0x5FC3},
+ {0x637E, 0x6C81},
+ {0x6421, 0xF972},
+ {0x6422, 0x6DF1},
+ {0x6423, 0x700B},
+ {0x6424, 0x751A},
+ {0x6425, 0x82AF},
+ {0x6426, 0x8AF6},
+ {0x6427, 0x4EC0},
+ {0x6428, 0x5341},
+ {0x6429, 0xF973},
+ {0x642A, 0x96D9},
+ {0x642B, 0x6C0F},
+ {0x642C, 0x4E9E},
+ {0x642D, 0x4FC4},
+ {0x642E, 0x5152},
+ {0x642F, 0x555E},
+ {0x6430, 0x5A25},
+ {0x6431, 0x5CE8},
+ {0x6432, 0x6211},
+ {0x6433, 0x7259},
+ {0x6434, 0x82BD},
+ {0x6435, 0x83AA},
+ {0x6436, 0x86FE},
+ {0x6437, 0x8859},
+ {0x6438, 0x8A1D},
+ {0x6439, 0x963F},
+ {0x643A, 0x96C5},
+ {0x643B, 0x9913},
+ {0x643C, 0x9D09},
+ {0x643D, 0x9D5D},
+ {0x643E, 0x580A},
+ {0x643F, 0x5CB3},
+ {0x6440, 0x5DBD},
+ {0x6441, 0x5E44},
+ {0x6442, 0x60E1},
+ {0x6443, 0x6115},
+ {0x6444, 0x63E1},
+ {0x6445, 0x6A02},
+ {0x6446, 0x6E25},
+ {0x6447, 0x9102},
+ {0x6448, 0x9354},
+ {0x6449, 0x984E},
+ {0x644A, 0x9C10},
+ {0x644B, 0x9F77},
+ {0x644C, 0x5B89},
+ {0x644D, 0x5CB8},
+ {0x644E, 0x6309},
+ {0x644F, 0x664F},
+ {0x6450, 0x6848},
+ {0x6451, 0x773C},
+ {0x6452, 0x96C1},
+ {0x6453, 0x978D},
+ {0x6454, 0x9854},
+ {0x6455, 0x9B9F},
+ {0x6456, 0x65A1},
+ {0x6457, 0x8B01},
+ {0x6458, 0x8ECB},
+ {0x6459, 0x95BC},
+ {0x645A, 0x5535},
+ {0x645B, 0x5CA9},
+ {0x645C, 0x5DD6},
+ {0x645D, 0x5EB5},
+ {0x645E, 0x6697},
+ {0x645F, 0x764C},
+ {0x6460, 0x83F4},
+ {0x6461, 0x95C7},
+ {0x6462, 0x58D3},
+ {0x6463, 0x62BC},
+ {0x6464, 0x72CE},
+ {0x6465, 0x9D28},
+ {0x6466, 0x4EF0},
+ {0x6467, 0x592E},
+ {0x6468, 0x600F},
+ {0x6469, 0x663B},
+ {0x646A, 0x6B83},
+ {0x646B, 0x79E7},
+ {0x646C, 0x9D26},
+ {0x646D, 0x5393},
+ {0x646E, 0x54C0},
+ {0x646F, 0x57C3},
+ {0x6470, 0x5D16},
+ {0x6471, 0x611B},
+ {0x6472, 0x66D6},
+ {0x6473, 0x6DAF},
+ {0x6474, 0x788D},
+ {0x6475, 0x827E},
+ {0x6476, 0x9698},
+ {0x6477, 0x9744},
+ {0x6478, 0x5384},
+ {0x6479, 0x627C},
+ {0x647A, 0x6396},
+ {0x647B, 0x6DB2},
+ {0x647C, 0x7E0A},
+ {0x647D, 0x814B},
+ {0x647E, 0x984D},
+ {0x6521, 0x6AFB},
+ {0x6522, 0x7F4C},
+ {0x6523, 0x9DAF},
+ {0x6524, 0x9E1A},
+ {0x6525, 0x4E5F},
+ {0x6526, 0x503B},
+ {0x6527, 0x51B6},
+ {0x6528, 0x591C},
+ {0x6529, 0x60F9},
+ {0x652A, 0x63F6},
+ {0x652B, 0x6930},
+ {0x652C, 0x723A},
+ {0x652D, 0x8036},
+ {0x652E, 0xF974},
+ {0x652F, 0x91CE},
+ {0x6530, 0x5F31},
+ {0x6531, 0xF975},
+ {0x6532, 0xF976},
+ {0x6533, 0x7D04},
+ {0x6534, 0x82E5},
+ {0x6535, 0x846F},
+ {0x6536, 0x84BB},
+ {0x6537, 0x85E5},
+ {0x6538, 0x8E8D},
+ {0x6539, 0xF977},
+ {0x653A, 0x4F6F},
+ {0x653B, 0xF978},
+ {0x653C, 0xF979},
+ {0x653D, 0x58E4},
+ {0x653E, 0x5B43},
+ {0x653F, 0x6059},
+ {0x6540, 0x63DA},
+ {0x6541, 0x6518},
+ {0x6542, 0x656D},
+ {0x6543, 0x6698},
+ {0x6544, 0xF97A},
+ {0x6545, 0x694A},
+ {0x6546, 0x6A23},
+ {0x6547, 0x6D0B},
+ {0x6548, 0x7001},
+ {0x6549, 0x716C},
+ {0x654A, 0x75D2},
+ {0x654B, 0x760D},
+ {0x654C, 0x79B3},
+ {0x654D, 0x7A70},
+ {0x654E, 0xF97B},
+ {0x654F, 0x7F8A},
+ {0x6550, 0xF97C},
+ {0x6551, 0x8944},
+ {0x6552, 0xF97D},
+ {0x6553, 0x8B93},
+ {0x6554, 0x91C0},
+ {0x6555, 0x967D},
+ {0x6556, 0xF97E},
+ {0x6557, 0x990A},
+ {0x6558, 0x5704},
+ {0x6559, 0x5FA1},
+ {0x655A, 0x65BC},
+ {0x655B, 0x6F01},
+ {0x655C, 0x7600},
+ {0x655D, 0x79A6},
+ {0x655E, 0x8A9E},
+ {0x655F, 0x99AD},
+ {0x6560, 0x9B5A},
+ {0x6561, 0x9F6C},
+ {0x6562, 0x5104},
+ {0x6563, 0x61B6},
+ {0x6564, 0x6291},
+ {0x6565, 0x6A8D},
+ {0x6566, 0x81C6},
+ {0x6567, 0x5043},
+ {0x6568, 0x5830},
+ {0x6569, 0x5F66},
+ {0x656A, 0x7109},
+ {0x656B, 0x8A00},
+ {0x656C, 0x8AFA},
+ {0x656D, 0x5B7C},
+ {0x656E, 0x8616},
+ {0x656F, 0x4FFA},
+ {0x6570, 0x513C},
+ {0x6571, 0x56B4},
+ {0x6572, 0x5944},
+ {0x6573, 0x63A9},
+ {0x6574, 0x6DF9},
+ {0x6575, 0x5DAA},
+ {0x6576, 0x696D},
+ {0x6577, 0x5186},
+ {0x6578, 0x4E88},
+ {0x6579, 0x4F59},
+ {0x657A, 0xF97F},
+ {0x657B, 0xF980},
+ {0x657C, 0xF981},
+ {0x657D, 0x5982},
+ {0x657E, 0xF982},
+ {0x6621, 0xF983},
+ {0x6622, 0x6B5F},
+ {0x6623, 0x6C5D},
+ {0x6624, 0xF984},
+ {0x6625, 0x74B5},
+ {0x6626, 0x7916},
+ {0x6627, 0xF985},
+ {0x6628, 0x8207},
+ {0x6629, 0x8245},
+ {0x662A, 0x8339},
+ {0x662B, 0x8F3F},
+ {0x662C, 0x8F5D},
+ {0x662D, 0xF986},
+ {0x662E, 0x9918},
+ {0x662F, 0xF987},
+ {0x6630, 0xF988},
+ {0x6631, 0xF989},
+ {0x6632, 0x4EA6},
+ {0x6633, 0xF98A},
+ {0x6634, 0x57DF},
+ {0x6635, 0x5F79},
+ {0x6636, 0x6613},
+ {0x6637, 0xF98B},
+ {0x6638, 0xF98C},
+ {0x6639, 0x75AB},
+ {0x663A, 0x7E79},
+ {0x663B, 0x8B6F},
+ {0x663C, 0xF98D},
+ {0x663D, 0x9006},
+ {0x663E, 0x9A5B},
+ {0x663F, 0x56A5},
+ {0x6640, 0x5827},
+ {0x6641, 0x59F8},
+ {0x6642, 0x5A1F},
+ {0x6643, 0x5BB4},
+ {0x6644, 0xF98E},
+ {0x6645, 0x5EF6},
+ {0x6646, 0xF98F},
+ {0x6647, 0xF990},
+ {0x6648, 0x6350},
+ {0x6649, 0x633B},
+ {0x664A, 0xF991},
+ {0x664B, 0x693D},
+ {0x664C, 0x6C87},
+ {0x664D, 0x6CBF},
+ {0x664E, 0x6D8E},
+ {0x664F, 0x6D93},
+ {0x6650, 0x6DF5},
+ {0x6651, 0x6F14},
+ {0x6652, 0xF992},
+ {0x6653, 0x70DF},
+ {0x6654, 0x7136},
+ {0x6655, 0x7159},
+ {0x6656, 0xF993},
+ {0x6657, 0x71C3},
+ {0x6658, 0x71D5},
+ {0x6659, 0xF994},
+ {0x665A, 0x784F},
+ {0x665B, 0x786F},
+ {0x665C, 0xF995},
+ {0x665D, 0x7B75},
+ {0x665E, 0x7DE3},
+ {0x665F, 0xF996},
+ {0x6660, 0x7E2F},
+ {0x6661, 0xF997},
+ {0x6662, 0x884D},
+ {0x6663, 0x8EDF},
+ {0x6664, 0xF998},
+ {0x6665, 0xF999},
+ {0x6666, 0xF99A},
+ {0x6667, 0x925B},
+ {0x6668, 0xF99B},
+ {0x6669, 0x9CF6},
+ {0x666A, 0xF99C},
+ {0x666B, 0xF99D},
+ {0x666C, 0xF99E},
+ {0x666D, 0x6085},
+ {0x666E, 0x6D85},
+ {0x666F, 0xF99F},
+ {0x6670, 0x71B1},
+ {0x6671, 0xF9A0},
+ {0x6672, 0xF9A1},
+ {0x6673, 0x95B1},
+ {0x6674, 0x53AD},
+ {0x6675, 0xF9A2},
+ {0x6676, 0xF9A3},
+ {0x6677, 0xF9A4},
+ {0x6678, 0x67D3},
+ {0x6679, 0xF9A5},
+ {0x667A, 0x708E},
+ {0x667B, 0x7130},
+ {0x667C, 0x7430},
+ {0x667D, 0x8276},
+ {0x667E, 0x82D2},
+ {0x6721, 0xF9A6},
+ {0x6722, 0x95BB},
+ {0x6723, 0x9AE5},
+ {0x6724, 0x9E7D},
+ {0x6725, 0x66C4},
+ {0x6726, 0xF9A7},
+ {0x6727, 0x71C1},
+ {0x6728, 0x8449},
+ {0x6729, 0xF9A8},
+ {0x672A, 0xF9A9},
+ {0x672B, 0x584B},
+ {0x672C, 0xF9AA},
+ {0x672D, 0xF9AB},
+ {0x672E, 0x5DB8},
+ {0x672F, 0x5F71},
+ {0x6730, 0xF9AC},
+ {0x6731, 0x6620},
+ {0x6732, 0x668E},
+ {0x6733, 0x6979},
+ {0x6734, 0x69AE},
+ {0x6735, 0x6C38},
+ {0x6736, 0x6CF3},
+ {0x6737, 0x6E36},
+ {0x6738, 0x6F41},
+ {0x6739, 0x6FDA},
+ {0x673A, 0x701B},
+ {0x673B, 0x702F},
+ {0x673C, 0x7150},
+ {0x673D, 0x71DF},
+ {0x673E, 0x7370},
+ {0x673F, 0xF9AD},
+ {0x6740, 0x745B},
+ {0x6741, 0xF9AE},
+ {0x6742, 0x74D4},
+ {0x6743, 0x76C8},
+ {0x6744, 0x7A4E},
+ {0x6745, 0x7E93},
+ {0x6746, 0xF9AF},
+ {0x6747, 0xF9B0},
+ {0x6748, 0x82F1},
+ {0x6749, 0x8A60},
+ {0x674A, 0x8FCE},
+ {0x674B, 0xF9B1},
+ {0x674C, 0x9348},
+ {0x674D, 0xF9B2},
+ {0x674E, 0x9719},
+ {0x674F, 0xF9B3},
+ {0x6750, 0xF9B4},
+ {0x6751, 0x4E42},
+ {0x6752, 0x502A},
+ {0x6753, 0xF9B5},
+ {0x6754, 0x5208},
+ {0x6755, 0x53E1},
+ {0x6756, 0x66F3},
+ {0x6757, 0x6C6D},
+ {0x6758, 0x6FCA},
+ {0x6759, 0x730A},
+ {0x675A, 0x777F},
+ {0x675B, 0x7A62},
+ {0x675C, 0x82AE},
+ {0x675D, 0x85DD},
+ {0x675E, 0x8602},
+ {0x675F, 0xF9B6},
+ {0x6760, 0x88D4},
+ {0x6761, 0x8A63},
+ {0x6762, 0x8B7D},
+ {0x6763, 0x8C6B},
+ {0x6764, 0xF9B7},
+ {0x6765, 0x92B3},
+ {0x6766, 0xF9B8},
+ {0x6767, 0x9713},
+ {0x6768, 0x9810},
+ {0x6769, 0x4E94},
+ {0x676A, 0x4F0D},
+ {0x676B, 0x4FC9},
+ {0x676C, 0x50B2},
+ {0x676D, 0x5348},
+ {0x676E, 0x543E},
+ {0x676F, 0x5433},
+ {0x6770, 0x55DA},
+ {0x6771, 0x5862},
+ {0x6772, 0x58BA},
+ {0x6773, 0x5967},
+ {0x6774, 0x5A1B},
+ {0x6775, 0x5BE4},
+ {0x6776, 0x609F},
+ {0x6777, 0xF9B9},
+ {0x6778, 0x61CA},
+ {0x6779, 0x6556},
+ {0x677A, 0x65FF},
+ {0x677B, 0x6664},
+ {0x677C, 0x68A7},
+ {0x677D, 0x6C5A},
+ {0x677E, 0x6FB3},
+ {0x6821, 0x70CF},
+ {0x6822, 0x71AC},
+ {0x6823, 0x7352},
+ {0x6824, 0x7B7D},
+ {0x6825, 0x8708},
+ {0x6826, 0x8AA4},
+ {0x6827, 0x9C32},
+ {0x6828, 0x9F07},
+ {0x6829, 0x5C4B},
+ {0x682A, 0x6C83},
+ {0x682B, 0x7344},
+ {0x682C, 0x7389},
+ {0x682D, 0x923A},
+ {0x682E, 0x6EAB},
+ {0x682F, 0x7465},
+ {0x6830, 0x761F},
+ {0x6831, 0x7A69},
+ {0x6832, 0x7E15},
+ {0x6833, 0x860A},
+ {0x6834, 0x5140},
+ {0x6835, 0x58C5},
+ {0x6836, 0x64C1},
+ {0x6837, 0x74EE},
+ {0x6838, 0x7515},
+ {0x6839, 0x7670},
+ {0x683A, 0x7FC1},
+ {0x683B, 0x9095},
+ {0x683C, 0x96CD},
+ {0x683D, 0x9954},
+ {0x683E, 0x6E26},
+ {0x683F, 0x74E6},
+ {0x6840, 0x7AA9},
+ {0x6841, 0x7AAA},
+ {0x6842, 0x81E5},
+ {0x6843, 0x86D9},
+ {0x6844, 0x8778},
+ {0x6845, 0x8A1B},
+ {0x6846, 0x5A49},
+ {0x6847, 0x5B8C},
+ {0x6848, 0x5B9B},
+ {0x6849, 0x68A1},
+ {0x684A, 0x6900},
+ {0x684B, 0x6D63},
+ {0x684C, 0x73A9},
+ {0x684D, 0x7413},
+ {0x684E, 0x742C},
+ {0x684F, 0x7897},
+ {0x6850, 0x7DE9},
+ {0x6851, 0x7FEB},
+ {0x6852, 0x8118},
+ {0x6853, 0x8155},
+ {0x6854, 0x839E},
+ {0x6855, 0x8C4C},
+ {0x6856, 0x962E},
+ {0x6857, 0x9811},
+ {0x6858, 0x66F0},
+ {0x6859, 0x5F80},
+ {0x685A, 0x65FA},
+ {0x685B, 0x6789},
+ {0x685C, 0x6C6A},
+ {0x685D, 0x738B},
+ {0x685E, 0x502D},
+ {0x685F, 0x5A03},
+ {0x6860, 0x6B6A},
+ {0x6861, 0x77EE},
+ {0x6862, 0x5916},
+ {0x6863, 0x5D6C},
+ {0x6864, 0x5DCD},
+ {0x6865, 0x7325},
+ {0x6866, 0x754F},
+ {0x6867, 0xF9BA},
+ {0x6868, 0xF9BB},
+ {0x6869, 0x50E5},
+ {0x686A, 0x51F9},
+ {0x686B, 0x582F},
+ {0x686C, 0x592D},
+ {0x686D, 0x5996},
+ {0x686E, 0x59DA},
+ {0x686F, 0x5BE5},
+ {0x6870, 0xF9BC},
+ {0x6871, 0xF9BD},
+ {0x6872, 0x5DA2},
+ {0x6873, 0x62D7},
+ {0x6874, 0x6416},
+ {0x6875, 0x6493},
+ {0x6876, 0x64FE},
+ {0x6877, 0xF9BE},
+ {0x6878, 0x66DC},
+ {0x6879, 0xF9BF},
+ {0x687A, 0x6A48},
+ {0x687B, 0xF9C0},
+ {0x687C, 0x71FF},
+ {0x687D, 0x7464},
+ {0x687E, 0xF9C1},
+ {0x6921, 0x7A88},
+ {0x6922, 0x7AAF},
+ {0x6923, 0x7E47},
+ {0x6924, 0x7E5E},
+ {0x6925, 0x8000},
+ {0x6926, 0x8170},
+ {0x6927, 0xF9C2},
+ {0x6928, 0x87EF},
+ {0x6929, 0x8981},
+ {0x692A, 0x8B20},
+ {0x692B, 0x9059},
+ {0x692C, 0xF9C3},
+ {0x692D, 0x9080},
+ {0x692E, 0x9952},
+ {0x692F, 0x617E},
+ {0x6930, 0x6B32},
+ {0x6931, 0x6D74},
+ {0x6932, 0x7E1F},
+ {0x6933, 0x8925},
+ {0x6934, 0x8FB1},
+ {0x6935, 0x4FD1},
+ {0x6936, 0x50AD},
+ {0x6937, 0x5197},
+ {0x6938, 0x52C7},
+ {0x6939, 0x57C7},
+ {0x693A, 0x5889},
+ {0x693B, 0x5BB9},
+ {0x693C, 0x5EB8},
+ {0x693D, 0x6142},
+ {0x693E, 0x6995},
+ {0x693F, 0x6D8C},
+ {0x6940, 0x6E67},
+ {0x6941, 0x6EB6},
+ {0x6942, 0x7194},
+ {0x6943, 0x7462},
+ {0x6944, 0x7528},
+ {0x6945, 0x752C},
+ {0x6946, 0x8073},
+ {0x6947, 0x8338},
+ {0x6948, 0x84C9},
+ {0x6949, 0x8E0A},
+ {0x694A, 0x9394},
+ {0x694B, 0x93DE},
+ {0x694C, 0xF9C4},
+ {0x694D, 0x4E8E},
+ {0x694E, 0x4F51},
+ {0x694F, 0x5076},
+ {0x6950, 0x512A},
+ {0x6951, 0x53C8},
+ {0x6952, 0x53CB},
+ {0x6953, 0x53F3},
+ {0x6954, 0x5B87},
+ {0x6955, 0x5BD3},
+ {0x6956, 0x5C24},
+ {0x6957, 0x611A},
+ {0x6958, 0x6182},
+ {0x6959, 0x65F4},
+ {0x695A, 0x725B},
+ {0x695B, 0x7397},
+ {0x695C, 0x7440},
+ {0x695D, 0x76C2},
+ {0x695E, 0x7950},
+ {0x695F, 0x7991},
+ {0x6960, 0x79B9},
+ {0x6961, 0x7D06},
+ {0x6962, 0x7FBD},
+ {0x6963, 0x828B},
+ {0x6964, 0x85D5},
+ {0x6965, 0x865E},
+ {0x6966, 0x8FC2},
+ {0x6967, 0x9047},
+ {0x6968, 0x90F5},
+ {0x6969, 0x91EA},
+ {0x696A, 0x9685},
+ {0x696B, 0x96E8},
+ {0x696C, 0x96E9},
+ {0x696D, 0x52D6},
+ {0x696E, 0x5F67},
+ {0x696F, 0x65ED},
+ {0x6970, 0x6631},
+ {0x6971, 0x682F},
+ {0x6972, 0x715C},
+ {0x6973, 0x7A36},
+ {0x6974, 0x90C1},
+ {0x6975, 0x980A},
+ {0x6976, 0x4E91},
+ {0x6977, 0xF9C5},
+ {0x6978, 0x6A52},
+ {0x6979, 0x6B9E},
+ {0x697A, 0x6F90},
+ {0x697B, 0x7189},
+ {0x697C, 0x8018},
+ {0x697D, 0x82B8},
+ {0x697E, 0x8553},
+ {0x6A21, 0x904B},
+ {0x6A22, 0x9695},
+ {0x6A23, 0x96F2},
+ {0x6A24, 0x97FB},
+ {0x6A25, 0x851A},
+ {0x6A26, 0x9B31},
+ {0x6A27, 0x4E90},
+ {0x6A28, 0x718A},
+ {0x6A29, 0x96C4},
+ {0x6A2A, 0x5143},
+ {0x6A2B, 0x539F},
+ {0x6A2C, 0x54E1},
+ {0x6A2D, 0x5713},
+ {0x6A2E, 0x5712},
+ {0x6A2F, 0x57A3},
+ {0x6A30, 0x5A9B},
+ {0x6A31, 0x5AC4},
+ {0x6A32, 0x5BC3},
+ {0x6A33, 0x6028},
+ {0x6A34, 0x613F},
+ {0x6A35, 0x63F4},
+ {0x6A36, 0x6C85},
+ {0x6A37, 0x6D39},
+ {0x6A38, 0x6E72},
+ {0x6A39, 0x6E90},
+ {0x6A3A, 0x7230},
+ {0x6A3B, 0x733F},
+ {0x6A3C, 0x7457},
+ {0x6A3D, 0x82D1},
+ {0x6A3E, 0x8881},
+ {0x6A3F, 0x8F45},
+ {0x6A40, 0x9060},
+ {0x6A41, 0xF9C6},
+ {0x6A42, 0x9662},
+ {0x6A43, 0x9858},
+ {0x6A44, 0x9D1B},
+ {0x6A45, 0x6708},
+ {0x6A46, 0x8D8A},
+ {0x6A47, 0x925E},
+ {0x6A48, 0x4F4D},
+ {0x6A49, 0x5049},
+ {0x6A4A, 0x50DE},
+ {0x6A4B, 0x5371},
+ {0x6A4C, 0x570D},
+ {0x6A4D, 0x59D4},
+ {0x6A4E, 0x5A01},
+ {0x6A4F, 0x5C09},
+ {0x6A50, 0x6170},
+ {0x6A51, 0x6690},
+ {0x6A52, 0x6E2D},
+ {0x6A53, 0x7232},
+ {0x6A54, 0x744B},
+ {0x6A55, 0x7DEF},
+ {0x6A56, 0x80C3},
+ {0x6A57, 0x840E},
+ {0x6A58, 0x8466},
+ {0x6A59, 0x853F},
+ {0x6A5A, 0x875F},
+ {0x6A5B, 0x885B},
+ {0x6A5C, 0x8918},
+ {0x6A5D, 0x8B02},
+ {0x6A5E, 0x9055},
+ {0x6A5F, 0x97CB},
+ {0x6A60, 0x9B4F},
+ {0x6A61, 0x4E73},
+ {0x6A62, 0x4F91},
+ {0x6A63, 0x5112},
+ {0x6A64, 0x516A},
+ {0x6A65, 0xF9C7},
+ {0x6A66, 0x552F},
+ {0x6A67, 0x55A9},
+ {0x6A68, 0x5B7A},
+ {0x6A69, 0x5BA5},
+ {0x6A6A, 0x5E7C},
+ {0x6A6B, 0x5E7D},
+ {0x6A6C, 0x5EBE},
+ {0x6A6D, 0x60A0},
+ {0x6A6E, 0x60DF},
+ {0x6A6F, 0x6108},
+ {0x6A70, 0x6109},
+ {0x6A71, 0x63C4},
+ {0x6A72, 0x6538},
+ {0x6A73, 0x6709},
+ {0x6A74, 0xF9C8},
+ {0x6A75, 0x67D4},
+ {0x6A76, 0x67DA},
+ {0x6A77, 0xF9C9},
+ {0x6A78, 0x6961},
+ {0x6A79, 0x6962},
+ {0x6A7A, 0x6CB9},
+ {0x6A7B, 0x6D27},
+ {0x6A7C, 0xF9CA},
+ {0x6A7D, 0x6E38},
+ {0x6A7E, 0xF9CB},
+ {0x6B21, 0x6FE1},
+ {0x6B22, 0x7336},
+ {0x6B23, 0x7337},
+ {0x6B24, 0xF9CC},
+ {0x6B25, 0x745C},
+ {0x6B26, 0x7531},
+ {0x6B27, 0xF9CD},
+ {0x6B28, 0x7652},
+ {0x6B29, 0xF9CE},
+ {0x6B2A, 0xF9CF},
+ {0x6B2B, 0x7DAD},
+ {0x6B2C, 0x81FE},
+ {0x6B2D, 0x8438},
+ {0x6B2E, 0x88D5},
+ {0x6B2F, 0x8A98},
+ {0x6B30, 0x8ADB},
+ {0x6B31, 0x8AED},
+ {0x6B32, 0x8E30},
+ {0x6B33, 0x8E42},
+ {0x6B34, 0x904A},
+ {0x6B35, 0x903E},
+ {0x6B36, 0x907A},
+ {0x6B37, 0x9149},
+ {0x6B38, 0x91C9},
+ {0x6B39, 0x936E},
+ {0x6B3A, 0xF9D0},
+ {0x6B3B, 0xF9D1},
+ {0x6B3C, 0x5809},
+ {0x6B3D, 0xF9D2},
+ {0x6B3E, 0x6BD3},
+ {0x6B3F, 0x8089},
+ {0x6B40, 0x80B2},
+ {0x6B41, 0xF9D3},
+ {0x6B42, 0xF9D4},
+ {0x6B43, 0x5141},
+ {0x6B44, 0x596B},
+ {0x6B45, 0x5C39},
+ {0x6B46, 0xF9D5},
+ {0x6B47, 0xF9D6},
+ {0x6B48, 0x6F64},
+ {0x6B49, 0x73A7},
+ {0x6B4A, 0x80E4},
+ {0x6B4B, 0x8D07},
+ {0x6B4C, 0xF9D7},
+ {0x6B4D, 0x9217},
+ {0x6B4E, 0x958F},
+ {0x6B4F, 0xF9D8},
+ {0x6B50, 0xF9D9},
+ {0x6B51, 0xF9DA},
+ {0x6B52, 0xF9DB},
+ {0x6B53, 0x807F},
+ {0x6B54, 0x620E},
+ {0x6B55, 0x701C},
+ {0x6B56, 0x7D68},
+ {0x6B57, 0x878D},
+ {0x6B58, 0xF9DC},
+ {0x6B59, 0x57A0},
+ {0x6B5A, 0x6069},
+ {0x6B5B, 0x6147},
+ {0x6B5C, 0x6BB7},
+ {0x6B5D, 0x8ABE},
+ {0x6B5E, 0x9280},
+ {0x6B5F, 0x96B1},
+ {0x6B60, 0x4E59},
+ {0x6B61, 0x541F},
+ {0x6B62, 0x6DEB},
+ {0x6B63, 0x852D},
+ {0x6B64, 0x9670},
+ {0x6B65, 0x97F3},
+ {0x6B66, 0x98EE},
+ {0x6B67, 0x63D6},
+ {0x6B68, 0x6CE3},
+ {0x6B69, 0x9091},
+ {0x6B6A, 0x51DD},
+ {0x6B6B, 0x61C9},
+ {0x6B6C, 0x81BA},
+ {0x6B6D, 0x9DF9},
+ {0x6B6E, 0x4F9D},
+ {0x6B6F, 0x501A},
+ {0x6B70, 0x5100},
+ {0x6B71, 0x5B9C},
+ {0x6B72, 0x610F},
+ {0x6B73, 0x61FF},
+ {0x6B74, 0x64EC},
+ {0x6B75, 0x6905},
+ {0x6B76, 0x6BC5},
+ {0x6B77, 0x7591},
+ {0x6B78, 0x77E3},
+ {0x6B79, 0x7FA9},
+ {0x6B7A, 0x8264},
+ {0x6B7B, 0x858F},
+ {0x6B7C, 0x87FB},
+ {0x6B7D, 0x8863},
+ {0x6B7E, 0x8ABC},
+ {0x6C21, 0x8B70},
+ {0x6C22, 0x91AB},
+ {0x6C23, 0x4E8C},
+ {0x6C24, 0x4EE5},
+ {0x6C25, 0x4F0A},
+ {0x6C26, 0xF9DD},
+ {0x6C27, 0xF9DE},
+ {0x6C28, 0x5937},
+ {0x6C29, 0x59E8},
+ {0x6C2A, 0xF9DF},
+ {0x6C2B, 0x5DF2},
+ {0x6C2C, 0x5F1B},
+ {0x6C2D, 0x5F5B},
+ {0x6C2E, 0x6021},
+ {0x6C2F, 0xF9E0},
+ {0x6C30, 0xF9E1},
+ {0x6C31, 0xF9E2},
+ {0x6C32, 0xF9E3},
+ {0x6C33, 0x723E},
+ {0x6C34, 0x73E5},
+ {0x6C35, 0xF9E4},
+ {0x6C36, 0x7570},
+ {0x6C37, 0x75CD},
+ {0x6C38, 0xF9E5},
+ {0x6C39, 0x79FB},
+ {0x6C3A, 0xF9E6},
+ {0x6C3B, 0x800C},
+ {0x6C3C, 0x8033},
+ {0x6C3D, 0x8084},
+ {0x6C3E, 0x82E1},
+ {0x6C3F, 0x8351},
+ {0x6C40, 0xF9E7},
+ {0x6C41, 0xF9E8},
+ {0x6C42, 0x8CBD},
+ {0x6C43, 0x8CB3},
+ {0x6C44, 0x9087},
+ {0x6C45, 0xF9E9},
+ {0x6C46, 0xF9EA},
+ {0x6C47, 0x98F4},
+ {0x6C48, 0x990C},
+ {0x6C49, 0xF9EB},
+ {0x6C4A, 0xF9EC},
+ {0x6C4B, 0x7037},
+ {0x6C4C, 0x76CA},
+ {0x6C4D, 0x7FCA},
+ {0x6C4E, 0x7FCC},
+ {0x6C4F, 0x7FFC},
+ {0x6C50, 0x8B1A},
+ {0x6C51, 0x4EBA},
+ {0x6C52, 0x4EC1},
+ {0x6C53, 0x5203},
+ {0x6C54, 0x5370},
+ {0x6C55, 0xF9ED},
+ {0x6C56, 0x54BD},
+ {0x6C57, 0x56E0},
+ {0x6C58, 0x59FB},
+ {0x6C59, 0x5BC5},
+ {0x6C5A, 0x5F15},
+ {0x6C5B, 0x5FCD},
+ {0x6C5C, 0x6E6E},
+ {0x6C5D, 0xF9EE},
+ {0x6C5E, 0xF9EF},
+ {0x6C5F, 0x7D6A},
+ {0x6C60, 0x8335},
+ {0x6C61, 0xF9F0},
+ {0x6C62, 0x8693},
+ {0x6C63, 0x8A8D},
+ {0x6C64, 0xF9F1},
+ {0x6C65, 0x976D},
+ {0x6C66, 0x9777},
+ {0x6C67, 0xF9F2},
+ {0x6C68, 0xF9F3},
+ {0x6C69, 0x4E00},
+ {0x6C6A, 0x4F5A},
+ {0x6C6B, 0x4F7E},
+ {0x6C6C, 0x58F9},
+ {0x6C6D, 0x65E5},
+ {0x6C6E, 0x6EA2},
+ {0x6C6F, 0x9038},
+ {0x6C70, 0x93B0},
+ {0x6C71, 0x99B9},
+ {0x6C72, 0x4EFB},
+ {0x6C73, 0x58EC},
+ {0x6C74, 0x598A},
+ {0x6C75, 0x59D9},
+ {0x6C76, 0x6041},
+ {0x6C77, 0xF9F4},
+ {0x6C78, 0xF9F5},
+ {0x6C79, 0x7A14},
+ {0x6C7A, 0xF9F6},
+ {0x6C7B, 0x834F},
+ {0x6C7C, 0x8CC3},
+ {0x6C7D, 0x5165},
+ {0x6C7E, 0x5344},
+ {0x6D21, 0xF9F7},
+ {0x6D22, 0xF9F8},
+ {0x6D23, 0xF9F9},
+ {0x6D24, 0x4ECD},
+ {0x6D25, 0x5269},
+ {0x6D26, 0x5B55},
+ {0x6D27, 0x82BF},
+ {0x6D28, 0x4ED4},
+ {0x6D29, 0x523A},
+ {0x6D2A, 0x54A8},
+ {0x6D2B, 0x59C9},
+ {0x6D2C, 0x59FF},
+ {0x6D2D, 0x5B50},
+ {0x6D2E, 0x5B57},
+ {0x6D2F, 0x5B5C},
+ {0x6D30, 0x6063},
+ {0x6D31, 0x6148},
+ {0x6D32, 0x6ECB},
+ {0x6D33, 0x7099},
+ {0x6D34, 0x716E},
+ {0x6D35, 0x7386},
+ {0x6D36, 0x74F7},
+ {0x6D37, 0x75B5},
+ {0x6D38, 0x78C1},
+ {0x6D39, 0x7D2B},
+ {0x6D3A, 0x8005},
+ {0x6D3B, 0x81EA},
+ {0x6D3C, 0x8328},
+ {0x6D3D, 0x8517},
+ {0x6D3E, 0x85C9},
+ {0x6D3F, 0x8AEE},
+ {0x6D40, 0x8CC7},
+ {0x6D41, 0x96CC},
+ {0x6D42, 0x4F5C},
+ {0x6D43, 0x52FA},
+ {0x6D44, 0x56BC},
+ {0x6D45, 0x65AB},
+ {0x6D46, 0x6628},
+ {0x6D47, 0x707C},
+ {0x6D48, 0x70B8},
+ {0x6D49, 0x7235},
+ {0x6D4A, 0x7DBD},
+ {0x6D4B, 0x828D},
+ {0x6D4C, 0x914C},
+ {0x6D4D, 0x96C0},
+ {0x6D4E, 0x9D72},
+ {0x6D4F, 0x5B71},
+ {0x6D50, 0x68E7},
+ {0x6D51, 0x6B98},
+ {0x6D52, 0x6F7A},
+ {0x6D53, 0x76DE},
+ {0x6D54, 0x5C91},
+ {0x6D55, 0x66AB},
+ {0x6D56, 0x6F5B},
+ {0x6D57, 0x7BB4},
+ {0x6D58, 0x7C2A},
+ {0x6D59, 0x8836},
+ {0x6D5A, 0x96DC},
+ {0x6D5B, 0x4E08},
+ {0x6D5C, 0x4ED7},
+ {0x6D5D, 0x5320},
+ {0x6D5E, 0x5834},
+ {0x6D5F, 0x58BB},
+ {0x6D60, 0x58EF},
+ {0x6D61, 0x596C},
+ {0x6D62, 0x5C07},
+ {0x6D63, 0x5E33},
+ {0x6D64, 0x5E84},
+ {0x6D65, 0x5F35},
+ {0x6D66, 0x638C},
+ {0x6D67, 0x66B2},
+ {0x6D68, 0x6756},
+ {0x6D69, 0x6A1F},
+ {0x6D6A, 0x6AA3},
+ {0x6D6B, 0x6B0C},
+ {0x6D6C, 0x6F3F},
+ {0x6D6D, 0x7246},
+ {0x6D6E, 0xF9FA},
+ {0x6D6F, 0x7350},
+ {0x6D70, 0x748B},
+ {0x6D71, 0x7AE0},
+ {0x6D72, 0x7CA7},
+ {0x6D73, 0x8178},
+ {0x6D74, 0x81DF},
+ {0x6D75, 0x81E7},
+ {0x6D76, 0x838A},
+ {0x6D77, 0x846C},
+ {0x6D78, 0x8523},
+ {0x6D79, 0x8594},
+ {0x6D7A, 0x85CF},
+ {0x6D7B, 0x88DD},
+ {0x6D7C, 0x8D13},
+ {0x6D7D, 0x91AC},
+ {0x6D7E, 0x9577},
+ {0x6E21, 0x969C},
+ {0x6E22, 0x518D},
+ {0x6E23, 0x54C9},
+ {0x6E24, 0x5728},
+ {0x6E25, 0x5BB0},
+ {0x6E26, 0x624D},
+ {0x6E27, 0x6750},
+ {0x6E28, 0x683D},
+ {0x6E29, 0x6893},
+ {0x6E2A, 0x6E3D},
+ {0x6E2B, 0x6ED3},
+ {0x6E2C, 0x707D},
+ {0x6E2D, 0x7E21},
+ {0x6E2E, 0x88C1},
+ {0x6E2F, 0x8CA1},
+ {0x6E30, 0x8F09},
+ {0x6E31, 0x9F4B},
+ {0x6E32, 0x9F4E},
+ {0x6E33, 0x722D},
+ {0x6E34, 0x7B8F},
+ {0x6E35, 0x8ACD},
+ {0x6E36, 0x931A},
+ {0x6E37, 0x4F47},
+ {0x6E38, 0x4F4E},
+ {0x6E39, 0x5132},
+ {0x6E3A, 0x5480},
+ {0x6E3B, 0x59D0},
+ {0x6E3C, 0x5E95},
+ {0x6E3D, 0x62B5},
+ {0x6E3E, 0x6775},
+ {0x6E3F, 0x696E},
+ {0x6E40, 0x6A17},
+ {0x6E41, 0x6CAE},
+ {0x6E42, 0x6E1A},
+ {0x6E43, 0x72D9},
+ {0x6E44, 0x732A},
+ {0x6E45, 0x75BD},
+ {0x6E46, 0x7BB8},
+ {0x6E47, 0x7D35},
+ {0x6E48, 0x82E7},
+ {0x6E49, 0x83F9},
+ {0x6E4A, 0x8457},
+ {0x6E4B, 0x85F7},
+ {0x6E4C, 0x8A5B},
+ {0x6E4D, 0x8CAF},
+ {0x6E4E, 0x8E87},
+ {0x6E4F, 0x9019},
+ {0x6E50, 0x90B8},
+ {0x6E51, 0x96CE},
+ {0x6E52, 0x9F5F},
+ {0x6E53, 0x52E3},
+ {0x6E54, 0x540A},
+ {0x6E55, 0x5AE1},
+ {0x6E56, 0x5BC2},
+ {0x6E57, 0x6458},
+ {0x6E58, 0x6575},
+ {0x6E59, 0x6EF4},
+ {0x6E5A, 0x72C4},
+ {0x6E5B, 0xF9FB},
+ {0x6E5C, 0x7684},
+ {0x6E5D, 0x7A4D},
+ {0x6E5E, 0x7B1B},
+ {0x6E5F, 0x7C4D},
+ {0x6E60, 0x7E3E},
+ {0x6E61, 0x7FDF},
+ {0x6E62, 0x837B},
+ {0x6E63, 0x8B2B},
+ {0x6E64, 0x8CCA},
+ {0x6E65, 0x8D64},
+ {0x6E66, 0x8DE1},
+ {0x6E67, 0x8E5F},
+ {0x6E68, 0x8FEA},
+ {0x6E69, 0x8FF9},
+ {0x6E6A, 0x9069},
+ {0x6E6B, 0x93D1},
+ {0x6E6C, 0x4F43},
+ {0x6E6D, 0x4F7A},
+ {0x6E6E, 0x50B3},
+ {0x6E6F, 0x5168},
+ {0x6E70, 0x5178},
+ {0x6E71, 0x524D},
+ {0x6E72, 0x526A},
+ {0x6E73, 0x5861},
+ {0x6E74, 0x587C},
+ {0x6E75, 0x5960},
+ {0x6E76, 0x5C08},
+ {0x6E77, 0x5C55},
+ {0x6E78, 0x5EDB},
+ {0x6E79, 0x609B},
+ {0x6E7A, 0x6230},
+ {0x6E7B, 0x6813},
+ {0x6E7C, 0x6BBF},
+ {0x6E7D, 0x6C08},
+ {0x6E7E, 0x6FB1},
+ {0x6F21, 0x714E},
+ {0x6F22, 0x7420},
+ {0x6F23, 0x7530},
+ {0x6F24, 0x7538},
+ {0x6F25, 0x7551},
+ {0x6F26, 0x7672},
+ {0x6F27, 0x7B4C},
+ {0x6F28, 0x7B8B},
+ {0x6F29, 0x7BAD},
+ {0x6F2A, 0x7BC6},
+ {0x6F2B, 0x7E8F},
+ {0x6F2C, 0x8A6E},
+ {0x6F2D, 0x8F3E},
+ {0x6F2E, 0x8F49},
+ {0x6F2F, 0x923F},
+ {0x6F30, 0x9293},
+ {0x6F31, 0x9322},
+ {0x6F32, 0x942B},
+ {0x6F33, 0x96FB},
+ {0x6F34, 0x985A},
+ {0x6F35, 0x986B},
+ {0x6F36, 0x991E},
+ {0x6F37, 0x5207},
+ {0x6F38, 0x622A},
+ {0x6F39, 0x6298},
+ {0x6F3A, 0x6D59},
+ {0x6F3B, 0x7664},
+ {0x6F3C, 0x7ACA},
+ {0x6F3D, 0x7BC0},
+ {0x6F3E, 0x7D76},
+ {0x6F3F, 0x5360},
+ {0x6F40, 0x5CBE},
+ {0x6F41, 0x5E97},
+ {0x6F42, 0x6F38},
+ {0x6F43, 0x70B9},
+ {0x6F44, 0x7C98},
+ {0x6F45, 0x9711},
+ {0x6F46, 0x9B8E},
+ {0x6F47, 0x9EDE},
+ {0x6F48, 0x63A5},
+ {0x6F49, 0x647A},
+ {0x6F4A, 0x8776},
+ {0x6F4B, 0x4E01},
+ {0x6F4C, 0x4E95},
+ {0x6F4D, 0x4EAD},
+ {0x6F4E, 0x505C},
+ {0x6F4F, 0x5075},
+ {0x6F50, 0x5448},
+ {0x6F51, 0x59C3},
+ {0x6F52, 0x5B9A},
+ {0x6F53, 0x5E40},
+ {0x6F54, 0x5EAD},
+ {0x6F55, 0x5EF7},
+ {0x6F56, 0x5F81},
+ {0x6F57, 0x60C5},
+ {0x6F58, 0x633A},
+ {0x6F59, 0x653F},
+ {0x6F5A, 0x6574},
+ {0x6F5B, 0x65CC},
+ {0x6F5C, 0x6676},
+ {0x6F5D, 0x6678},
+ {0x6F5E, 0x67FE},
+ {0x6F5F, 0x6968},
+ {0x6F60, 0x6A89},
+ {0x6F61, 0x6B63},
+ {0x6F62, 0x6C40},
+ {0x6F63, 0x6DC0},
+ {0x6F64, 0x6DE8},
+ {0x6F65, 0x6E1F},
+ {0x6F66, 0x6E5E},
+ {0x6F67, 0x701E},
+ {0x6F68, 0x70A1},
+ {0x6F69, 0x738E},
+ {0x6F6A, 0x73FD},
+ {0x6F6B, 0x753A},
+ {0x6F6C, 0x775B},
+ {0x6F6D, 0x7887},
+ {0x6F6E, 0x798E},
+ {0x6F6F, 0x7A0B},
+ {0x6F70, 0x7A7D},
+ {0x6F71, 0x7CBE},
+ {0x6F72, 0x7D8E},
+ {0x6F73, 0x8247},
+ {0x6F74, 0x8A02},
+ {0x6F75, 0x8AEA},
+ {0x6F76, 0x8C9E},
+ {0x6F77, 0x912D},
+ {0x6F78, 0x914A},
+ {0x6F79, 0x91D8},
+ {0x6F7A, 0x9266},
+ {0x6F7B, 0x92CC},
+ {0x6F7C, 0x9320},
+ {0x6F7D, 0x9706},
+ {0x6F7E, 0x9756},
+ {0x7021, 0x975C},
+ {0x7022, 0x9802},
+ {0x7023, 0x9F0E},
+ {0x7024, 0x5236},
+ {0x7025, 0x5291},
+ {0x7026, 0x557C},
+ {0x7027, 0x5824},
+ {0x7028, 0x5E1D},
+ {0x7029, 0x5F1F},
+ {0x702A, 0x608C},
+ {0x702B, 0x63D0},
+ {0x702C, 0x68AF},
+ {0x702D, 0x6FDF},
+ {0x702E, 0x796D},
+ {0x702F, 0x7B2C},
+ {0x7030, 0x81CD},
+ {0x7031, 0x85BA},
+ {0x7032, 0x88FD},
+ {0x7033, 0x8AF8},
+ {0x7034, 0x8E44},
+ {0x7035, 0x918D},
+ {0x7036, 0x9664},
+ {0x7037, 0x969B},
+ {0x7038, 0x973D},
+ {0x7039, 0x984C},
+ {0x703A, 0x9F4A},
+ {0x703B, 0x4FCE},
+ {0x703C, 0x5146},
+ {0x703D, 0x51CB},
+ {0x703E, 0x52A9},
+ {0x703F, 0x5632},
+ {0x7040, 0x5F14},
+ {0x7041, 0x5F6B},
+ {0x7042, 0x63AA},
+ {0x7043, 0x64CD},
+ {0x7044, 0x65E9},
+ {0x7045, 0x6641},
+ {0x7046, 0x66FA},
+ {0x7047, 0x66F9},
+ {0x7048, 0x671D},
+ {0x7049, 0x689D},
+ {0x704A, 0x68D7},
+ {0x704B, 0x69FD},
+ {0x704C, 0x6F15},
+ {0x704D, 0x6F6E},
+ {0x704E, 0x7167},
+ {0x704F, 0x71E5},
+ {0x7050, 0x722A},
+ {0x7051, 0x74AA},
+ {0x7052, 0x773A},
+ {0x7053, 0x7956},
+ {0x7054, 0x795A},
+ {0x7055, 0x79DF},
+ {0x7056, 0x7A20},
+ {0x7057, 0x7A95},
+ {0x7058, 0x7C97},
+ {0x7059, 0x7CDF},
+ {0x705A, 0x7D44},
+ {0x705B, 0x7E70},
+ {0x705C, 0x8087},
+ {0x705D, 0x85FB},
+ {0x705E, 0x86A4},
+ {0x705F, 0x8A54},
+ {0x7060, 0x8ABF},
+ {0x7061, 0x8D99},
+ {0x7062, 0x8E81},
+ {0x7063, 0x9020},
+ {0x7064, 0x906D},
+ {0x7065, 0x91E3},
+ {0x7066, 0x963B},
+ {0x7067, 0x96D5},
+ {0x7068, 0x9CE5},
+ {0x7069, 0x65CF},
+ {0x706A, 0x7C07},
+ {0x706B, 0x8DB3},
+ {0x706C, 0x93C3},
+ {0x706D, 0x5B58},
+ {0x706E, 0x5C0A},
+ {0x706F, 0x5352},
+ {0x7070, 0x62D9},
+ {0x7071, 0x731D},
+ {0x7072, 0x5027},
+ {0x7073, 0x5B97},
+ {0x7074, 0x5F9E},
+ {0x7075, 0x60B0},
+ {0x7076, 0x616B},
+ {0x7077, 0x68D5},
+ {0x7078, 0x6DD9},
+ {0x7079, 0x742E},
+ {0x707A, 0x7A2E},
+ {0x707B, 0x7D42},
+ {0x707C, 0x7D9C},
+ {0x707D, 0x7E31},
+ {0x707E, 0x816B},
+ {0x7121, 0x8E2A},
+ {0x7122, 0x8E35},
+ {0x7123, 0x937E},
+ {0x7124, 0x9418},
+ {0x7125, 0x4F50},
+ {0x7126, 0x5750},
+ {0x7127, 0x5DE6},
+ {0x7128, 0x5EA7},
+ {0x7129, 0x632B},
+ {0x712A, 0x7F6A},
+ {0x712B, 0x4E3B},
+ {0x712C, 0x4F4F},
+ {0x712D, 0x4F8F},
+ {0x712E, 0x505A},
+ {0x712F, 0x59DD},
+ {0x7130, 0x80C4},
+ {0x7131, 0x546A},
+ {0x7132, 0x5468},
+ {0x7133, 0x55FE},
+ {0x7134, 0x594F},
+ {0x7135, 0x5B99},
+ {0x7136, 0x5DDE},
+ {0x7137, 0x5EDA},
+ {0x7138, 0x665D},
+ {0x7139, 0x6731},
+ {0x713A, 0x67F1},
+ {0x713B, 0x682A},
+ {0x713C, 0x6CE8},
+ {0x713D, 0x6D32},
+ {0x713E, 0x6E4A},
+ {0x713F, 0x6F8D},
+ {0x7140, 0x70B7},
+ {0x7141, 0x73E0},
+ {0x7142, 0x7587},
+ {0x7143, 0x7C4C},
+ {0x7144, 0x7D02},
+ {0x7145, 0x7D2C},
+ {0x7146, 0x7DA2},
+ {0x7147, 0x821F},
+ {0x7148, 0x86DB},
+ {0x7149, 0x8A3B},
+ {0x714A, 0x8A85},
+ {0x714B, 0x8D70},
+ {0x714C, 0x8E8A},
+ {0x714D, 0x8F33},
+ {0x714E, 0x9031},
+ {0x714F, 0x914E},
+ {0x7150, 0x9152},
+ {0x7151, 0x9444},
+ {0x7152, 0x99D0},
+ {0x7153, 0x7AF9},
+ {0x7154, 0x7CA5},
+ {0x7155, 0x4FCA},
+ {0x7156, 0x5101},
+ {0x7157, 0x51C6},
+ {0x7158, 0x57C8},
+ {0x7159, 0x5BEF},
+ {0x715A, 0x5CFB},
+ {0x715B, 0x6659},
+ {0x715C, 0x6A3D},
+ {0x715D, 0x6D5A},
+ {0x715E, 0x6E96},
+ {0x715F, 0x6FEC},
+ {0x7160, 0x710C},
+ {0x7161, 0x756F},
+ {0x7162, 0x7AE3},
+ {0x7163, 0x8822},
+ {0x7164, 0x9021},
+ {0x7165, 0x9075},
+ {0x7166, 0x96CB},
+ {0x7167, 0x99FF},
+ {0x7168, 0x8301},
+ {0x7169, 0x4E2D},
+ {0x716A, 0x4EF2},
+ {0x716B, 0x8846},
+ {0x716C, 0x91CD},
+ {0x716D, 0x537D},
+ {0x716E, 0x6ADB},
+ {0x716F, 0x696B},
+ {0x7170, 0x6C41},
+ {0x7171, 0x847A},
+ {0x7172, 0x589E},
+ {0x7173, 0x618E},
+ {0x7174, 0x66FE},
+ {0x7175, 0x62EF},
+ {0x7176, 0x70DD},
+ {0x7177, 0x7511},
+ {0x7178, 0x75C7},
+ {0x7179, 0x7E52},
+ {0x717A, 0x84B8},
+ {0x717B, 0x8B49},
+ {0x717C, 0x8D08},
+ {0x717D, 0x4E4B},
+ {0x717E, 0x53EA},
+ {0x7221, 0x54AB},
+ {0x7222, 0x5730},
+ {0x7223, 0x5740},
+ {0x7224, 0x5FD7},
+ {0x7225, 0x6301},
+ {0x7226, 0x6307},
+ {0x7227, 0x646F},
+ {0x7228, 0x652F},
+ {0x7229, 0x65E8},
+ {0x722A, 0x667A},
+ {0x722B, 0x679D},
+ {0x722C, 0x67B3},
+ {0x722D, 0x6B62},
+ {0x722E, 0x6C60},
+ {0x722F, 0x6C9A},
+ {0x7230, 0x6F2C},
+ {0x7231, 0x77E5},
+ {0x7232, 0x7825},
+ {0x7233, 0x7949},
+ {0x7234, 0x7957},
+ {0x7235, 0x7D19},
+ {0x7236, 0x80A2},
+ {0x7237, 0x8102},
+ {0x7238, 0x81F3},
+ {0x7239, 0x829D},
+ {0x723A, 0x82B7},
+ {0x723B, 0x8718},
+ {0x723C, 0x8A8C},
+ {0x723D, 0xF9FC},
+ {0x723E, 0x8D04},
+ {0x723F, 0x8DBE},
+ {0x7240, 0x9072},
+ {0x7241, 0x76F4},
+ {0x7242, 0x7A19},
+ {0x7243, 0x7A37},
+ {0x7244, 0x7E54},
+ {0x7245, 0x8077},
+ {0x7246, 0x5507},
+ {0x7247, 0x55D4},
+ {0x7248, 0x5875},
+ {0x7249, 0x632F},
+ {0x724A, 0x6422},
+ {0x724B, 0x6649},
+ {0x724C, 0x664B},
+ {0x724D, 0x686D},
+ {0x724E, 0x699B},
+ {0x724F, 0x6B84},
+ {0x7250, 0x6D25},
+ {0x7251, 0x6EB1},
+ {0x7252, 0x73CD},
+ {0x7253, 0x7468},
+ {0x7254, 0x74A1},
+ {0x7255, 0x755B},
+ {0x7256, 0x75B9},
+ {0x7257, 0x76E1},
+ {0x7258, 0x771E},
+ {0x7259, 0x778B},
+ {0x725A, 0x79E6},
+ {0x725B, 0x7E09},
+ {0x725C, 0x7E1D},
+ {0x725D, 0x81FB},
+ {0x725E, 0x852F},
+ {0x725F, 0x8897},
+ {0x7260, 0x8A3A},
+ {0x7261, 0x8CD1},
+ {0x7262, 0x8EEB},
+ {0x7263, 0x8FB0},
+ {0x7264, 0x9032},
+ {0x7265, 0x93AD},
+ {0x7266, 0x9663},
+ {0x7267, 0x9673},
+ {0x7268, 0x9707},
+ {0x7269, 0x4F84},
+ {0x726A, 0x53F1},
+ {0x726B, 0x59EA},
+ {0x726C, 0x5AC9},
+ {0x726D, 0x5E19},
+ {0x726E, 0x684E},
+ {0x726F, 0x74C6},
+ {0x7270, 0x75BE},
+ {0x7271, 0x79E9},
+ {0x7272, 0x7A92},
+ {0x7273, 0x81A3},
+ {0x7274, 0x86ED},
+ {0x7275, 0x8CEA},
+ {0x7276, 0x8DCC},
+ {0x7277, 0x8FED},
+ {0x7278, 0x659F},
+ {0x7279, 0x6715},
+ {0x727A, 0xF9FD},
+ {0x727B, 0x57F7},
+ {0x727C, 0x6F57},
+ {0x727D, 0x7DDD},
+ {0x727E, 0x8F2F},
+ {0x7321, 0x93F6},
+ {0x7322, 0x96C6},
+ {0x7323, 0x5FB5},
+ {0x7324, 0x61F2},
+ {0x7325, 0x6F84},
+ {0x7326, 0x4E14},
+ {0x7327, 0x4F98},
+ {0x7328, 0x501F},
+ {0x7329, 0x53C9},
+ {0x732A, 0x55DF},
+ {0x732B, 0x5D6F},
+ {0x732C, 0x5DEE},
+ {0x732D, 0x6B21},
+ {0x732E, 0x6B64},
+ {0x732F, 0x78CB},
+ {0x7330, 0x7B9A},
+ {0x7331, 0xF9FE},
+ {0x7332, 0x8E49},
+ {0x7333, 0x8ECA},
+ {0x7334, 0x906E},
+ {0x7335, 0x6349},
+ {0x7336, 0x643E},
+ {0x7337, 0x7740},
+ {0x7338, 0x7A84},
+ {0x7339, 0x932F},
+ {0x733A, 0x947F},
+ {0x733B, 0x9F6A},
+ {0x733C, 0x64B0},
+ {0x733D, 0x6FAF},
+ {0x733E, 0x71E6},
+ {0x733F, 0x74A8},
+ {0x7340, 0x74DA},
+ {0x7341, 0x7AC4},
+ {0x7342, 0x7C12},
+ {0x7343, 0x7E82},
+ {0x7344, 0x7CB2},
+ {0x7345, 0x7E98},
+ {0x7346, 0x8B9A},
+ {0x7347, 0x8D0A},
+ {0x7348, 0x947D},
+ {0x7349, 0x9910},
+ {0x734A, 0x994C},
+ {0x734B, 0x5239},
+ {0x734C, 0x5BDF},
+ {0x734D, 0x64E6},
+ {0x734E, 0x672D},
+ {0x734F, 0x7D2E},
+ {0x7350, 0x50ED},
+ {0x7351, 0x53C3},
+ {0x7352, 0x5879},
+ {0x7353, 0x6158},
+ {0x7354, 0x6159},
+ {0x7355, 0x61FA},
+ {0x7356, 0x65AC},
+ {0x7357, 0x7AD9},
+ {0x7358, 0x8B92},
+ {0x7359, 0x8B96},
+ {0x735A, 0x5009},
+ {0x735B, 0x5021},
+ {0x735C, 0x5275},
+ {0x735D, 0x5531},
+ {0x735E, 0x5A3C},
+ {0x735F, 0x5EE0},
+ {0x7360, 0x5F70},
+ {0x7361, 0x6134},
+ {0x7362, 0x655E},
+ {0x7363, 0x660C},
+ {0x7364, 0x6636},
+ {0x7365, 0x66A2},
+ {0x7366, 0x69CD},
+ {0x7367, 0x6EC4},
+ {0x7368, 0x6F32},
+ {0x7369, 0x7316},
+ {0x736A, 0x7621},
+ {0x736B, 0x7A93},
+ {0x736C, 0x8139},
+ {0x736D, 0x8259},
+ {0x736E, 0x83D6},
+ {0x736F, 0x84BC},
+ {0x7370, 0x50B5},
+ {0x7371, 0x57F0},
+ {0x7372, 0x5BC0},
+ {0x7373, 0x5BE8},
+ {0x7374, 0x5F69},
+ {0x7375, 0x63A1},
+ {0x7376, 0x7826},
+ {0x7377, 0x7DB5},
+ {0x7378, 0x83DC},
+ {0x7379, 0x8521},
+ {0x737A, 0x91C7},
+ {0x737B, 0x91F5},
+ {0x737C, 0x518A},
+ {0x737D, 0x67F5},
+ {0x737E, 0x7B56},
+ {0x7421, 0x8CAC},
+ {0x7422, 0x51C4},
+ {0x7423, 0x59BB},
+ {0x7424, 0x60BD},
+ {0x7425, 0x8655},
+ {0x7426, 0x501C},
+ {0x7427, 0xF9FF},
+ {0x7428, 0x5254},
+ {0x7429, 0x5C3A},
+ {0x742A, 0x617D},
+ {0x742B, 0x621A},
+ {0x742C, 0x62D3},
+ {0x742D, 0x64F2},
+ {0x742E, 0x65A5},
+ {0x742F, 0x6ECC},
+ {0x7430, 0x7620},
+ {0x7431, 0x810A},
+ {0x7432, 0x8E60},
+ {0x7433, 0x965F},
+ {0x7434, 0x96BB},
+ {0x7435, 0x4EDF},
+ {0x7436, 0x5343},
+ {0x7437, 0x5598},
+ {0x7438, 0x5929},
+ {0x7439, 0x5DDD},
+ {0x743A, 0x64C5},
+ {0x743B, 0x6CC9},
+ {0x743C, 0x6DFA},
+ {0x743D, 0x7394},
+ {0x743E, 0x7A7F},
+ {0x743F, 0x821B},
+ {0x7440, 0x85A6},
+ {0x7441, 0x8CE4},
+ {0x7442, 0x8E10},
+ {0x7443, 0x9077},
+ {0x7444, 0x91E7},
+ {0x7445, 0x95E1},
+ {0x7446, 0x9621},
+ {0x7447, 0x97C6},
+ {0x7448, 0x51F8},
+ {0x7449, 0x54F2},
+ {0x744A, 0x5586},
+ {0x744B, 0x5FB9},
+ {0x744C, 0x64A4},
+ {0x744D, 0x6F88},
+ {0x744E, 0x7DB4},
+ {0x744F, 0x8F1F},
+ {0x7450, 0x8F4D},
+ {0x7451, 0x9435},
+ {0x7452, 0x50C9},
+ {0x7453, 0x5C16},
+ {0x7454, 0x6CBE},
+ {0x7455, 0x6DFB},
+ {0x7456, 0x751B},
+ {0x7457, 0x77BB},
+ {0x7458, 0x7C3D},
+ {0x7459, 0x7C64},
+ {0x745A, 0x8A79},
+ {0x745B, 0x8AC2},
+ {0x745C, 0x581E},
+ {0x745D, 0x59BE},
+ {0x745E, 0x5E16},
+ {0x745F, 0x6377},
+ {0x7460, 0x7252},
+ {0x7461, 0x758A},
+ {0x7462, 0x776B},
+ {0x7463, 0x8ADC},
+ {0x7464, 0x8CBC},
+ {0x7465, 0x8F12},
+ {0x7466, 0x5EF3},
+ {0x7467, 0x6674},
+ {0x7468, 0x6DF8},
+ {0x7469, 0x807D},
+ {0x746A, 0x83C1},
+ {0x746B, 0x8ACB},
+ {0x746C, 0x9751},
+ {0x746D, 0x9BD6},
+ {0x746E, 0xFA00},
+ {0x746F, 0x5243},
+ {0x7470, 0x66FF},
+ {0x7471, 0x6D95},
+ {0x7472, 0x6EEF},
+ {0x7473, 0x7DE0},
+ {0x7474, 0x8AE6},
+ {0x7475, 0x902E},
+ {0x7476, 0x905E},
+ {0x7477, 0x9AD4},
+ {0x7478, 0x521D},
+ {0x7479, 0x527F},
+ {0x747A, 0x54E8},
+ {0x747B, 0x6194},
+ {0x747C, 0x6284},
+ {0x747D, 0x62DB},
+ {0x747E, 0x68A2},
+ {0x7521, 0x6912},
+ {0x7522, 0x695A},
+ {0x7523, 0x6A35},
+ {0x7524, 0x7092},
+ {0x7525, 0x7126},
+ {0x7526, 0x785D},
+ {0x7527, 0x7901},
+ {0x7528, 0x790E},
+ {0x7529, 0x79D2},
+ {0x752A, 0x7A0D},
+ {0x752B, 0x8096},
+ {0x752C, 0x8278},
+ {0x752D, 0x82D5},
+ {0x752E, 0x8349},
+ {0x752F, 0x8549},
+ {0x7530, 0x8C82},
+ {0x7531, 0x8D85},
+ {0x7532, 0x9162},
+ {0x7533, 0x918B},
+ {0x7534, 0x91AE},
+ {0x7535, 0x4FC3},
+ {0x7536, 0x56D1},
+ {0x7537, 0x71ED},
+ {0x7538, 0x77D7},
+ {0x7539, 0x8700},
+ {0x753A, 0x89F8},
+ {0x753B, 0x5BF8},
+ {0x753C, 0x5FD6},
+ {0x753D, 0x6751},
+ {0x753E, 0x90A8},
+ {0x753F, 0x53E2},
+ {0x7540, 0x585A},
+ {0x7541, 0x5BF5},
+ {0x7542, 0x60A4},
+ {0x7543, 0x6181},
+ {0x7544, 0x6460},
+ {0x7545, 0x7E3D},
+ {0x7546, 0x8070},
+ {0x7547, 0x8525},
+ {0x7548, 0x9283},
+ {0x7549, 0x64AE},
+ {0x754A, 0x50AC},
+ {0x754B, 0x5D14},
+ {0x754C, 0x6700},
+ {0x754D, 0x589C},
+ {0x754E, 0x62BD},
+ {0x754F, 0x63A8},
+ {0x7550, 0x690E},
+ {0x7551, 0x6978},
+ {0x7552, 0x6A1E},
+ {0x7553, 0x6E6B},
+ {0x7554, 0x76BA},
+ {0x7555, 0x79CB},
+ {0x7556, 0x82BB},
+ {0x7557, 0x8429},
+ {0x7558, 0x8ACF},
+ {0x7559, 0x8DA8},
+ {0x755A, 0x8FFD},
+ {0x755B, 0x9112},
+ {0x755C, 0x914B},
+ {0x755D, 0x919C},
+ {0x755E, 0x9310},
+ {0x755F, 0x9318},
+ {0x7560, 0x939A},
+ {0x7561, 0x96DB},
+ {0x7562, 0x9A36},
+ {0x7563, 0x9C0D},
+ {0x7564, 0x4E11},
+ {0x7565, 0x755C},
+ {0x7566, 0x795D},
+ {0x7567, 0x7AFA},
+ {0x7568, 0x7B51},
+ {0x7569, 0x7BC9},
+ {0x756A, 0x7E2E},
+ {0x756B, 0x84C4},
+ {0x756C, 0x8E59},
+ {0x756D, 0x8E74},
+ {0x756E, 0x8EF8},
+ {0x756F, 0x9010},
+ {0x7570, 0x6625},
+ {0x7571, 0x693F},
+ {0x7572, 0x7443},
+ {0x7573, 0x51FA},
+ {0x7574, 0x672E},
+ {0x7575, 0x9EDC},
+ {0x7576, 0x5145},
+ {0x7577, 0x5FE0},
+ {0x7578, 0x6C96},
+ {0x7579, 0x87F2},
+ {0x757A, 0x885D},
+ {0x757B, 0x8877},
+ {0x757C, 0x60B4},
+ {0x757D, 0x81B5},
+ {0x757E, 0x8403},
+ {0x7621, 0x8D05},
+ {0x7622, 0x53D6},
+ {0x7623, 0x5439},
+ {0x7624, 0x5634},
+ {0x7625, 0x5A36},
+ {0x7626, 0x5C31},
+ {0x7627, 0x708A},
+ {0x7628, 0x7FE0},
+ {0x7629, 0x805A},
+ {0x762A, 0x8106},
+ {0x762B, 0x81ED},
+ {0x762C, 0x8DA3},
+ {0x762D, 0x9189},
+ {0x762E, 0x9A5F},
+ {0x762F, 0x9DF2},
+ {0x7630, 0x5074},
+ {0x7631, 0x4EC4},
+ {0x7632, 0x53A0},
+ {0x7633, 0x60FB},
+ {0x7634, 0x6E2C},
+ {0x7635, 0x5C64},
+ {0x7636, 0x4F88},
+ {0x7637, 0x5024},
+ {0x7638, 0x55E4},
+ {0x7639, 0x5CD9},
+ {0x763A, 0x5E5F},
+ {0x763B, 0x6065},
+ {0x763C, 0x6894},
+ {0x763D, 0x6CBB},
+ {0x763E, 0x6DC4},
+ {0x763F, 0x71BE},
+ {0x7640, 0x75D4},
+ {0x7641, 0x75F4},
+ {0x7642, 0x7661},
+ {0x7643, 0x7A1A},
+ {0x7644, 0x7A49},
+ {0x7645, 0x7DC7},
+ {0x7646, 0x7DFB},
+ {0x7647, 0x7F6E},
+ {0x7648, 0x81F4},
+ {0x7649, 0x86A9},
+ {0x764A, 0x8F1C},
+ {0x764B, 0x96C9},
+ {0x764C, 0x99B3},
+ {0x764D, 0x9F52},
+ {0x764E, 0x5247},
+ {0x764F, 0x52C5},
+ {0x7650, 0x98ED},
+ {0x7651, 0x89AA},
+ {0x7652, 0x4E03},
+ {0x7653, 0x67D2},
+ {0x7654, 0x6F06},
+ {0x7655, 0x4FB5},
+ {0x7656, 0x5BE2},
+ {0x7657, 0x6795},
+ {0x7658, 0x6C88},
+ {0x7659, 0x6D78},
+ {0x765A, 0x741B},
+ {0x765B, 0x7827},
+ {0x765C, 0x91DD},
+ {0x765D, 0x937C},
+ {0x765E, 0x87C4},
+ {0x765F, 0x79E4},
+ {0x7660, 0x7A31},
+ {0x7661, 0x5FEB},
+ {0x7662, 0x4ED6},
+ {0x7663, 0x54A4},
+ {0x7664, 0x553E},
+ {0x7665, 0x58AE},
+ {0x7666, 0x59A5},
+ {0x7667, 0x60F0},
+ {0x7668, 0x6253},
+ {0x7669, 0x62D6},
+ {0x766A, 0x6736},
+ {0x766B, 0x6955},
+ {0x766C, 0x8235},
+ {0x766D, 0x9640},
+ {0x766E, 0x99B1},
+ {0x766F, 0x99DD},
+ {0x7670, 0x502C},
+ {0x7671, 0x5353},
+ {0x7672, 0x5544},
+ {0x7673, 0x577C},
+ {0x7674, 0xFA01},
+ {0x7675, 0x6258},
+ {0x7676, 0xFA02},
+ {0x7677, 0x64E2},
+ {0x7678, 0x666B},
+ {0x7679, 0x67DD},
+ {0x767A, 0x6FC1},
+ {0x767B, 0x6FEF},
+ {0x767C, 0x7422},
+ {0x767D, 0x7438},
+ {0x767E, 0x8A17},
+ {0x7721, 0x9438},
+ {0x7722, 0x5451},
+ {0x7723, 0x5606},
+ {0x7724, 0x5766},
+ {0x7725, 0x5F48},
+ {0x7726, 0x619A},
+ {0x7727, 0x6B4E},
+ {0x7728, 0x7058},
+ {0x7729, 0x70AD},
+ {0x772A, 0x7DBB},
+ {0x772B, 0x8A95},
+ {0x772C, 0x596A},
+ {0x772D, 0x812B},
+ {0x772E, 0x63A2},
+ {0x772F, 0x7708},
+ {0x7730, 0x803D},
+ {0x7731, 0x8CAA},
+ {0x7732, 0x5854},
+ {0x7733, 0x642D},
+ {0x7734, 0x69BB},
+ {0x7735, 0x5B95},
+ {0x7736, 0x5E11},
+ {0x7737, 0x6E6F},
+ {0x7738, 0xFA03},
+ {0x7739, 0x8569},
+ {0x773A, 0x514C},
+ {0x773B, 0x53F0},
+ {0x773C, 0x592A},
+ {0x773D, 0x6020},
+ {0x773E, 0x614B},
+ {0x773F, 0x6B86},
+ {0x7740, 0x6C70},
+ {0x7741, 0x6CF0},
+ {0x7742, 0x7B1E},
+ {0x7743, 0x80CE},
+ {0x7744, 0x82D4},
+ {0x7745, 0x8DC6},
+ {0x7746, 0x90B0},
+ {0x7747, 0x98B1},
+ {0x7748, 0xFA04},
+ {0x7749, 0x64C7},
+ {0x774A, 0x6FA4},
+ {0x774B, 0x6491},
+ {0x774C, 0x6504},
+ {0x774D, 0x514E},
+ {0x774E, 0x5410},
+ {0x774F, 0x571F},
+ {0x7750, 0x8A0E},
+ {0x7751, 0x615F},
+ {0x7752, 0x6876},
+ {0x7753, 0xFA05},
+ {0x7754, 0x75DB},
+ {0x7755, 0x7B52},
+ {0x7756, 0x7D71},
+ {0x7757, 0x901A},
+ {0x7758, 0x5806},
+ {0x7759, 0x69CC},
+ {0x775A, 0x817F},
+ {0x775B, 0x892A},
+ {0x775C, 0x9000},
+ {0x775D, 0x9839},
+ {0x775E, 0x5078},
+ {0x775F, 0x5957},
+ {0x7760, 0x59AC},
+ {0x7761, 0x6295},
+ {0x7762, 0x900F},
+ {0x7763, 0x9B2A},
+ {0x7764, 0x615D},
+ {0x7765, 0x7279},
+ {0x7766, 0x95D6},
+ {0x7767, 0x5761},
+ {0x7768, 0x5A46},
+ {0x7769, 0x5DF4},
+ {0x776A, 0x628A},
+ {0x776B, 0x64AD},
+ {0x776C, 0x64FA},
+ {0x776D, 0x6777},
+ {0x776E, 0x6CE2},
+ {0x776F, 0x6D3E},
+ {0x7770, 0x722C},
+ {0x7771, 0x7436},
+ {0x7772, 0x7834},
+ {0x7773, 0x7F77},
+ {0x7774, 0x82AD},
+ {0x7775, 0x8DDB},
+ {0x7776, 0x9817},
+ {0x7777, 0x5224},
+ {0x7778, 0x5742},
+ {0x7779, 0x677F},
+ {0x777A, 0x7248},
+ {0x777B, 0x74E3},
+ {0x777C, 0x8CA9},
+ {0x777D, 0x8FA6},
+ {0x777E, 0x9211},
+ {0x7821, 0x962A},
+ {0x7822, 0x516B},
+ {0x7823, 0x53ED},
+ {0x7824, 0x634C},
+ {0x7825, 0x4F69},
+ {0x7826, 0x5504},
+ {0x7827, 0x6096},
+ {0x7828, 0x6557},
+ {0x7829, 0x6C9B},
+ {0x782A, 0x6D7F},
+ {0x782B, 0x724C},
+ {0x782C, 0x72FD},
+ {0x782D, 0x7A17},
+ {0x782E, 0x8987},
+ {0x782F, 0x8C9D},
+ {0x7830, 0x5F6D},
+ {0x7831, 0x6F8E},
+ {0x7832, 0x70F9},
+ {0x7833, 0x81A8},
+ {0x7834, 0x610E},
+ {0x7835, 0x4FBF},
+ {0x7836, 0x504F},
+ {0x7837, 0x6241},
+ {0x7838, 0x7247},
+ {0x7839, 0x7BC7},
+ {0x783A, 0x7DE8},
+ {0x783B, 0x7FE9},
+ {0x783C, 0x904D},
+ {0x783D, 0x97AD},
+ {0x783E, 0x9A19},
+ {0x783F, 0x8CB6},
+ {0x7840, 0x576A},
+ {0x7841, 0x5E73},
+ {0x7842, 0x67B0},
+ {0x7843, 0x840D},
+ {0x7844, 0x8A55},
+ {0x7845, 0x5420},
+ {0x7846, 0x5B16},
+ {0x7847, 0x5E63},
+ {0x7848, 0x5EE2},
+ {0x7849, 0x5F0A},
+ {0x784A, 0x6583},
+ {0x784B, 0x80BA},
+ {0x784C, 0x853D},
+ {0x784D, 0x9589},
+ {0x784E, 0x965B},
+ {0x784F, 0x4F48},
+ {0x7850, 0x5305},
+ {0x7851, 0x530D},
+ {0x7852, 0x530F},
+ {0x7853, 0x5486},
+ {0x7854, 0x54FA},
+ {0x7855, 0x5703},
+ {0x7856, 0x5E03},
+ {0x7857, 0x6016},
+ {0x7858, 0x629B},
+ {0x7859, 0x62B1},
+ {0x785A, 0x6355},
+ {0x785B, 0xFA06},
+ {0x785C, 0x6CE1},
+ {0x785D, 0x6D66},
+ {0x785E, 0x75B1},
+ {0x785F, 0x7832},
+ {0x7860, 0x80DE},
+ {0x7861, 0x812F},
+ {0x7862, 0x82DE},
+ {0x7863, 0x8461},
+ {0x7864, 0x84B2},
+ {0x7865, 0x888D},
+ {0x7866, 0x8912},
+ {0x7867, 0x900B},
+ {0x7868, 0x92EA},
+ {0x7869, 0x98FD},
+ {0x786A, 0x9B91},
+ {0x786B, 0x5E45},
+ {0x786C, 0x66B4},
+ {0x786D, 0x66DD},
+ {0x786E, 0x7011},
+ {0x786F, 0x7206},
+ {0x7870, 0xFA07},
+ {0x7871, 0x4FF5},
+ {0x7872, 0x527D},
+ {0x7873, 0x5F6A},
+ {0x7874, 0x6153},
+ {0x7875, 0x6753},
+ {0x7876, 0x6A19},
+ {0x7877, 0x6F02},
+ {0x7878, 0x74E2},
+ {0x7879, 0x7968},
+ {0x787A, 0x8868},
+ {0x787B, 0x8C79},
+ {0x787C, 0x98C7},
+ {0x787D, 0x98C4},
+ {0x787E, 0x9A43},
+ {0x7921, 0x54C1},
+ {0x7922, 0x7A1F},
+ {0x7923, 0x6953},
+ {0x7924, 0x8AF7},
+ {0x7925, 0x8C4A},
+ {0x7926, 0x98A8},
+ {0x7927, 0x99AE},
+ {0x7928, 0x5F7C},
+ {0x7929, 0x62AB},
+ {0x792A, 0x75B2},
+ {0x792B, 0x76AE},
+ {0x792C, 0x88AB},
+ {0x792D, 0x907F},
+ {0x792E, 0x9642},
+ {0x792F, 0x5339},
+ {0x7930, 0x5F3C},
+ {0x7931, 0x5FC5},
+ {0x7932, 0x6CCC},
+ {0x7933, 0x73CC},
+ {0x7934, 0x7562},
+ {0x7935, 0x758B},
+ {0x7936, 0x7B46},
+ {0x7937, 0x82FE},
+ {0x7938, 0x999D},
+ {0x7939, 0x4E4F},
+ {0x793A, 0x903C},
+ {0x793B, 0x4E0B},
+ {0x793C, 0x4F55},
+ {0x793D, 0x53A6},
+ {0x793E, 0x590F},
+ {0x793F, 0x5EC8},
+ {0x7940, 0x6630},
+ {0x7941, 0x6CB3},
+ {0x7942, 0x7455},
+ {0x7943, 0x8377},
+ {0x7944, 0x8766},
+ {0x7945, 0x8CC0},
+ {0x7946, 0x9050},
+ {0x7947, 0x971E},
+ {0x7948, 0x9C15},
+ {0x7949, 0x58D1},
+ {0x794A, 0x5B78},
+ {0x794B, 0x8650},
+ {0x794C, 0x8B14},
+ {0x794D, 0x9DB4},
+ {0x794E, 0x5BD2},
+ {0x794F, 0x6068},
+ {0x7950, 0x608D},
+ {0x7951, 0x65F1},
+ {0x7952, 0x6C57},
+ {0x7953, 0x6F22},
+ {0x7954, 0x6FA3},
+ {0x7955, 0x701A},
+ {0x7956, 0x7F55},
+ {0x7957, 0x7FF0},
+ {0x7958, 0x9591},
+ {0x7959, 0x9592},
+ {0x795A, 0x9650},
+ {0x795B, 0x97D3},
+ {0x795C, 0x5272},
+ {0x795D, 0x8F44},
+ {0x795E, 0x51FD},
+ {0x795F, 0x542B},
+ {0x7960, 0x54B8},
+ {0x7961, 0x5563},
+ {0x7962, 0x558A},
+ {0x7963, 0x6ABB},
+ {0x7964, 0x6DB5},
+ {0x7965, 0x7DD8},
+ {0x7966, 0x8266},
+ {0x7967, 0x929C},
+ {0x7968, 0x9677},
+ {0x7969, 0x9E79},
+ {0x796A, 0x5408},
+ {0x796B, 0x54C8},
+ {0x796C, 0x76D2},
+ {0x796D, 0x86E4},
+ {0x796E, 0x95A4},
+ {0x796F, 0x95D4},
+ {0x7970, 0x965C},
+ {0x7971, 0x4EA2},
+ {0x7972, 0x4F09},
+ {0x7973, 0x59EE},
+ {0x7974, 0x5AE6},
+ {0x7975, 0x5DF7},
+ {0x7976, 0x6052},
+ {0x7977, 0x6297},
+ {0x7978, 0x676D},
+ {0x7979, 0x6841},
+ {0x797A, 0x6C86},
+ {0x797B, 0x6E2F},
+ {0x797C, 0x7F38},
+ {0x797D, 0x809B},
+ {0x797E, 0x822A},
+ {0x7A21, 0xFA08},
+ {0x7A22, 0xFA09},
+ {0x7A23, 0x9805},
+ {0x7A24, 0x4EA5},
+ {0x7A25, 0x5055},
+ {0x7A26, 0x54B3},
+ {0x7A27, 0x5793},
+ {0x7A28, 0x595A},
+ {0x7A29, 0x5B69},
+ {0x7A2A, 0x5BB3},
+ {0x7A2B, 0x61C8},
+ {0x7A2C, 0x6977},
+ {0x7A2D, 0x6D77},
+ {0x7A2E, 0x7023},
+ {0x7A2F, 0x87F9},
+ {0x7A30, 0x89E3},
+ {0x7A31, 0x8A72},
+ {0x7A32, 0x8AE7},
+ {0x7A33, 0x9082},
+ {0x7A34, 0x99ED},
+ {0x7A35, 0x9AB8},
+ {0x7A36, 0x52BE},
+ {0x7A37, 0x6838},
+ {0x7A38, 0x5016},
+ {0x7A39, 0x5E78},
+ {0x7A3A, 0x674F},
+ {0x7A3B, 0x8347},
+ {0x7A3C, 0x884C},
+ {0x7A3D, 0x4EAB},
+ {0x7A3E, 0x5411},
+ {0x7A3F, 0x56AE},
+ {0x7A40, 0x73E6},
+ {0x7A41, 0x9115},
+ {0x7A42, 0x97FF},
+ {0x7A43, 0x9909},
+ {0x7A44, 0x9957},
+ {0x7A45, 0x9999},
+ {0x7A46, 0x5653},
+ {0x7A47, 0x589F},
+ {0x7A48, 0x865B},
+ {0x7A49, 0x8A31},
+ {0x7A4A, 0x61B2},
+ {0x7A4B, 0x6AF6},
+ {0x7A4C, 0x737B},
+ {0x7A4D, 0x8ED2},
+ {0x7A4E, 0x6B47},
+ {0x7A4F, 0x96AA},
+ {0x7A50, 0x9A57},
+ {0x7A51, 0x5955},
+ {0x7A52, 0x7200},
+ {0x7A53, 0x8D6B},
+ {0x7A54, 0x9769},
+ {0x7A55, 0x4FD4},
+ {0x7A56, 0x5CF4},
+ {0x7A57, 0x5F26},
+ {0x7A58, 0x61F8},
+ {0x7A59, 0x665B},
+ {0x7A5A, 0x6CEB},
+ {0x7A5B, 0x70AB},
+ {0x7A5C, 0x7384},
+ {0x7A5D, 0x73B9},
+ {0x7A5E, 0x73FE},
+ {0x7A5F, 0x7729},
+ {0x7A60, 0x774D},
+ {0x7A61, 0x7D43},
+ {0x7A62, 0x7D62},
+ {0x7A63, 0x7E23},
+ {0x7A64, 0x8237},
+ {0x7A65, 0x8852},
+ {0x7A66, 0xFA0A},
+ {0x7A67, 0x8CE2},
+ {0x7A68, 0x9249},
+ {0x7A69, 0x986F},
+ {0x7A6A, 0x5B51},
+ {0x7A6B, 0x7A74},
+ {0x7A6C, 0x8840},
+ {0x7A6D, 0x9801},
+ {0x7A6E, 0x5ACC},
+ {0x7A6F, 0x4FE0},
+ {0x7A70, 0x5354},
+ {0x7A71, 0x593E},
+ {0x7A72, 0x5CFD},
+ {0x7A73, 0x633E},
+ {0x7A74, 0x6D79},
+ {0x7A75, 0x72F9},
+ {0x7A76, 0x8105},
+ {0x7A77, 0x8107},
+ {0x7A78, 0x83A2},
+ {0x7A79, 0x92CF},
+ {0x7A7A, 0x9830},
+ {0x7A7B, 0x4EA8},
+ {0x7A7C, 0x5144},
+ {0x7A7D, 0x5211},
+ {0x7A7E, 0x578B},
+ {0x7B21, 0x5F62},
+ {0x7B22, 0x6CC2},
+ {0x7B23, 0x6ECE},
+ {0x7B24, 0x7005},
+ {0x7B25, 0x7050},
+ {0x7B26, 0x70AF},
+ {0x7B27, 0x7192},
+ {0x7B28, 0x73E9},
+ {0x7B29, 0x7469},
+ {0x7B2A, 0x834A},
+ {0x7B2B, 0x87A2},
+ {0x7B2C, 0x8861},
+ {0x7B2D, 0x9008},
+ {0x7B2E, 0x90A2},
+ {0x7B2F, 0x93A3},
+ {0x7B30, 0x99A8},
+ {0x7B31, 0x516E},
+ {0x7B32, 0x5F57},
+ {0x7B33, 0x60E0},
+ {0x7B34, 0x6167},
+ {0x7B35, 0x66B3},
+ {0x7B36, 0x8559},
+ {0x7B37, 0x8E4A},
+ {0x7B38, 0x91AF},
+ {0x7B39, 0x978B},
+ {0x7B3A, 0x4E4E},
+ {0x7B3B, 0x4E92},
+ {0x7B3C, 0x547C},
+ {0x7B3D, 0x58D5},
+ {0x7B3E, 0x58FA},
+ {0x7B3F, 0x597D},
+ {0x7B40, 0x5CB5},
+ {0x7B41, 0x5F27},
+ {0x7B42, 0x6236},
+ {0x7B43, 0x6248},
+ {0x7B44, 0x660A},
+ {0x7B45, 0x6667},
+ {0x7B46, 0x6BEB},
+ {0x7B47, 0x6D69},
+ {0x7B48, 0x6DCF},
+ {0x7B49, 0x6E56},
+ {0x7B4A, 0x6EF8},
+ {0x7B4B, 0x6F94},
+ {0x7B4C, 0x6FE0},
+ {0x7B4D, 0x6FE9},
+ {0x7B4E, 0x705D},
+ {0x7B4F, 0x72D0},
+ {0x7B50, 0x7425},
+ {0x7B51, 0x745A},
+ {0x7B52, 0x74E0},
+ {0x7B53, 0x7693},
+ {0x7B54, 0x795C},
+ {0x7B55, 0x7CCA},
+ {0x7B56, 0x7E1E},
+ {0x7B57, 0x80E1},
+ {0x7B58, 0x82A6},
+ {0x7B59, 0x846B},
+ {0x7B5A, 0x84BF},
+ {0x7B5B, 0x864E},
+ {0x7B5C, 0x865F},
+ {0x7B5D, 0x8774},
+ {0x7B5E, 0x8B77},
+ {0x7B5F, 0x8C6A},
+ {0x7B60, 0x93AC},
+ {0x7B61, 0x9800},
+ {0x7B62, 0x9865},
+ {0x7B63, 0x60D1},
+ {0x7B64, 0x6216},
+ {0x7B65, 0x9177},
+ {0x7B66, 0x5A5A},
+ {0x7B67, 0x660F},
+ {0x7B68, 0x6DF7},
+ {0x7B69, 0x6E3E},
+ {0x7B6A, 0x743F},
+ {0x7B6B, 0x9B42},
+ {0x7B6C, 0x5FFD},
+ {0x7B6D, 0x60DA},
+ {0x7B6E, 0x7B0F},
+ {0x7B6F, 0x54C4},
+ {0x7B70, 0x5F18},
+ {0x7B71, 0x6C5E},
+ {0x7B72, 0x6CD3},
+ {0x7B73, 0x6D2A},
+ {0x7B74, 0x70D8},
+ {0x7B75, 0x7D05},
+ {0x7B76, 0x8679},
+ {0x7B77, 0x8A0C},
+ {0x7B78, 0x9D3B},
+ {0x7B79, 0x5316},
+ {0x7B7A, 0x548C},
+ {0x7B7B, 0x5B05},
+ {0x7B7C, 0x6A3A},
+ {0x7B7D, 0x706B},
+ {0x7B7E, 0x7575},
+ {0x7C21, 0x798D},
+ {0x7C22, 0x79BE},
+ {0x7C23, 0x82B1},
+ {0x7C24, 0x83EF},
+ {0x7C25, 0x8A71},
+ {0x7C26, 0x8B41},
+ {0x7C27, 0x8CA8},
+ {0x7C28, 0x9774},
+ {0x7C29, 0xFA0B},
+ {0x7C2A, 0x64F4},
+ {0x7C2B, 0x652B},
+ {0x7C2C, 0x78BA},
+ {0x7C2D, 0x78BB},
+ {0x7C2E, 0x7A6B},
+ {0x7C2F, 0x4E38},
+ {0x7C30, 0x559A},
+ {0x7C31, 0x5950},
+ {0x7C32, 0x5BA6},
+ {0x7C33, 0x5E7B},
+ {0x7C34, 0x60A3},
+ {0x7C35, 0x63DB},
+ {0x7C36, 0x6B61},
+ {0x7C37, 0x6665},
+ {0x7C38, 0x6853},
+ {0x7C39, 0x6E19},
+ {0x7C3A, 0x7165},
+ {0x7C3B, 0x74B0},
+ {0x7C3C, 0x7D08},
+ {0x7C3D, 0x9084},
+ {0x7C3E, 0x9A69},
+ {0x7C3F, 0x9C25},
+ {0x7C40, 0x6D3B},
+ {0x7C41, 0x6ED1},
+ {0x7C42, 0x733E},
+ {0x7C43, 0x8C41},
+ {0x7C44, 0x95CA},
+ {0x7C45, 0x51F0},
+ {0x7C46, 0x5E4C},
+ {0x7C47, 0x5FA8},
+ {0x7C48, 0x604D},
+ {0x7C49, 0x60F6},
+ {0x7C4A, 0x6130},
+ {0x7C4B, 0x614C},
+ {0x7C4C, 0x6643},
+ {0x7C4D, 0x6644},
+ {0x7C4E, 0x69A5},
+ {0x7C4F, 0x6CC1},
+ {0x7C50, 0x6E5F},
+ {0x7C51, 0x6EC9},
+ {0x7C52, 0x6F62},
+ {0x7C53, 0x714C},
+ {0x7C54, 0x749C},
+ {0x7C55, 0x7687},
+ {0x7C56, 0x7BC1},
+ {0x7C57, 0x7C27},
+ {0x7C58, 0x8352},
+ {0x7C59, 0x8757},
+ {0x7C5A, 0x9051},
+ {0x7C5B, 0x968D},
+ {0x7C5C, 0x9EC3},
+ {0x7C5D, 0x532F},
+ {0x7C5E, 0x56DE},
+ {0x7C5F, 0x5EFB},
+ {0x7C60, 0x5F8A},
+ {0x7C61, 0x6062},
+ {0x7C62, 0x6094},
+ {0x7C63, 0x61F7},
+ {0x7C64, 0x6666},
+ {0x7C65, 0x6703},
+ {0x7C66, 0x6A9C},
+ {0x7C67, 0x6DEE},
+ {0x7C68, 0x6FAE},
+ {0x7C69, 0x7070},
+ {0x7C6A, 0x736A},
+ {0x7C6B, 0x7E6A},
+ {0x7C6C, 0x81BE},
+ {0x7C6D, 0x8334},
+ {0x7C6E, 0x86D4},
+ {0x7C6F, 0x8AA8},
+ {0x7C70, 0x8CC4},
+ {0x7C71, 0x5283},
+ {0x7C72, 0x7372},
+ {0x7C73, 0x5B96},
+ {0x7C74, 0x6A6B},
+ {0x7C75, 0x9404},
+ {0x7C76, 0x54EE},
+ {0x7C77, 0x5686},
+ {0x7C78, 0x5B5D},
+ {0x7C79, 0x6548},
+ {0x7C7A, 0x6585},
+ {0x7C7B, 0x66C9},
+ {0x7C7C, 0x689F},
+ {0x7C7D, 0x6D8D},
+ {0x7C7E, 0x6DC6},
+ {0x7D21, 0x723B},
+ {0x7D22, 0x80B4},
+ {0x7D23, 0x9175},
+ {0x7D24, 0x9A4D},
+ {0x7D25, 0x4FAF},
+ {0x7D26, 0x5019},
+ {0x7D27, 0x539A},
+ {0x7D28, 0x540E},
+ {0x7D29, 0x543C},
+ {0x7D2A, 0x5589},
+ {0x7D2B, 0x55C5},
+ {0x7D2C, 0x5E3F},
+ {0x7D2D, 0x5F8C},
+ {0x7D2E, 0x673D},
+ {0x7D2F, 0x7166},
+ {0x7D30, 0x73DD},
+ {0x7D31, 0x9005},
+ {0x7D32, 0x52DB},
+ {0x7D33, 0x52F3},
+ {0x7D34, 0x5864},
+ {0x7D35, 0x58CE},
+ {0x7D36, 0x7104},
+ {0x7D37, 0x718F},
+ {0x7D38, 0x71FB},
+ {0x7D39, 0x85B0},
+ {0x7D3A, 0x8A13},
+ {0x7D3B, 0x6688},
+ {0x7D3C, 0x85A8},
+ {0x7D3D, 0x55A7},
+ {0x7D3E, 0x6684},
+ {0x7D3F, 0x714A},
+ {0x7D40, 0x8431},
+ {0x7D41, 0x5349},
+ {0x7D42, 0x5599},
+ {0x7D43, 0x6BC1},
+ {0x7D44, 0x5F59},
+ {0x7D45, 0x5FBD},
+ {0x7D46, 0x63EE},
+ {0x7D47, 0x6689},
+ {0x7D48, 0x7147},
+ {0x7D49, 0x8AF1},
+ {0x7D4A, 0x8F1D},
+ {0x7D4B, 0x9EBE},
+ {0x7D4C, 0x4F11},
+ {0x7D4D, 0x643A},
+ {0x7D4E, 0x70CB},
+ {0x7D4F, 0x7566},
+ {0x7D50, 0x8667},
+ {0x7D51, 0x6064},
+ {0x7D52, 0x8B4E},
+ {0x7D53, 0x9DF8},
+ {0x7D54, 0x5147},
+ {0x7D55, 0x51F6},
+ {0x7D56, 0x5308},
+ {0x7D57, 0x6D36},
+ {0x7D58, 0x80F8},
+ {0x7D59, 0x9ED1},
+ {0x7D5A, 0x6615},
+ {0x7D5B, 0x6B23},
+ {0x7D5C, 0x7098},
+ {0x7D5D, 0x75D5},
+ {0x7D5E, 0x5403},
+ {0x7D5F, 0x5C79},
+ {0x7D60, 0x7D07},
+ {0x7D61, 0x8A16},
+ {0x7D62, 0x6B20},
+ {0x7D63, 0x6B3D},
+ {0x7D64, 0x6B46},
+ {0x7D65, 0x5438},
+ {0x7D66, 0x6070},
+ {0x7D67, 0x6D3D},
+ {0x7D68, 0x7FD5},
+ {0x7D69, 0x8208},
+ {0x7D6A, 0x50D6},
+ {0x7D6B, 0x51DE},
+ {0x7D6C, 0x559C},
+ {0x7D6D, 0x566B},
+ {0x7D6E, 0x56CD},
+ {0x7D6F, 0x59EC},
+ {0x7D70, 0x5B09},
+ {0x7D71, 0x5E0C},
+ {0x7D72, 0x6199},
+ {0x7D73, 0x6198},
+ {0x7D74, 0x6231},
+ {0x7D75, 0x665E},
+ {0x7D76, 0x66E6},
+ {0x7D77, 0x7199},
+ {0x7D78, 0x71B9},
+ {0x7D79, 0x71BA},
+ {0x7D7A, 0x72A7},
+ {0x7D7B, 0x79A7},
+ {0x7D7C, 0x7A00},
+ {0x7D7D, 0x7FB2},
+ {0x7D7E, 0x8A70},
+ {0x2266, 0x20AC},
+ {0x2267, 0x00AE},
diff --git a/vte/src/vte-gtk-compat.h b/vte/src/vte-gtk-compat.h
new file mode 100644
index 0000000..3c897f3
--- /dev/null
+++ b/vte/src/vte-gtk-compat.h
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2010 Saleem Abdulrasool <compnerd compnerd org>
+ *
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU Library General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef vte_gtk_compat_h_included
+#define vte_gtk_compat_h_included
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#if GTK_CHECK_VERSION (2, 90, 5)
+
+#define GdkRegion cairo_region_t
+#define VteRegionRectangle cairo_rectangle_int_t
+#define gdk_region_new() cairo_region_create()
+#define gdk_region_rectangle(r) cairo_region_create_rectangle(r)
+#define gdk_region_copy(r) cairo_region_copy(r)
+#define gdk_region_destroy cairo_region_destroy
+#define gdk_region_union_with_rect(r, rect) cairo_region_union_rectangle(r, rect)
+#define gdk_region_union(r, s) cairo_region_union(r, s)
+#define gdk_region_get_clipbox(r, rect) cairo_region_get_extents(r, rect)
+#define gdk_region_get_rectangles(r, rects, n_rects) \
+ do { \
+ int i; \
+ \
+ *(n_rects) = cairo_region_num_rectangles(r); \
+ *(rects) = g_new(cairo_rectangle_int_t, *(n_rects)); \
+ for (i = 0; i < *(n_rects); i++) \
+ cairo_region_get_rectangle ((r), i, &(*(rects))[i]); \
+ } while (0)
+
+#else
+
+#define VteRegionRectangle GdkRectangle
+
+#endif
+
+#if !GTK_CHECK_VERSION (2, 90, 8)
+#define gdk_error_trap_pop_ignored gdk_error_trap_pop
+#endif
+
+#if !GTK_CHECK_VERSION (2, 22, 0)
+#define gtk_accessible_get_widget(accessible) ((accessible)->widget)
+#endif
+
+#if !GTK_CHECK_VERSION (2, 20, 0)
+#define gtk_widget_get_mapped(widget) (GTK_WIDGET_MAPPED ((widget)))
+#define gtk_widget_get_realized(widget) (GTK_WIDGET_REALIZED ((widget)))
+#define gtk_widget_set_realized(widget, state) ((state) ? GTK_WIDGET_SET_FLAGS ((widget),
GTK_REALIZED) : GTK_WIDGET_UNSET_FLAGS ((widget), GTK_REALIZED))
+#endif
+
+#if !GTK_CHECK_VERSION (2, 18, 0)
+#define gtk_widget_has_focus(widget) (GTK_WIDGET_HAS_FOCUS ((widget)))
+#define gtk_widget_get_state(widget) ((widget)->state)
+#define gtk_widget_set_window(widget, wndw) ((widget)->window = (wndw))
+#define gtk_widget_is_drawable(widget) (GTK_WIDGET_DRAWABLE ((widget)))
+#define gtk_widget_get_allocation(widget, alloc) (*(alloc) = (widget)->allocation)
+#define gtk_widget_set_allocation(widget, alloc) ((widget)->allocation = *(alloc))
+#define gtk_widget_get_double_buffered(widget) (GTK_WIDGET_DOUBLE_BUFFERED ((widget)))
+#endif
+
+G_END_DECLS
+
+#endif
+
diff --git a/vte/src/vte-private.h b/vte/src/vte-private.h
new file mode 100644
index 0000000..86d4f8e
--- /dev/null
+++ b/vte/src/vte-private.h
@@ -0,0 +1,449 @@
+/*
+ * Copyright (C) 2001-2004 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef vte_vte_private_h_included
+#define vte_vte_private_h_included
+
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/stat.h>
+#ifdef HAVE_SYS_TERMIOS_H
+#include <sys/termios.h>
+#endif
+#include <sys/time.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <math.h>
+#include <pwd.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#endif
+#include <unistd.h>
+#include <glib/gi18n-lib.h>
+
+#include "vte.h"
+#include "buffer.h"
+#include "debug.h"
+#include "vteconv.h"
+#include "vtedraw.h"
+#include "reaper.h"
+#include "ring.h"
+#include "caps.h"
+
+G_BEGIN_DECLS
+
+#define VTE_TAB_WIDTH 8
+#define VTE_LINE_WIDTH 1
+#define VTE_ROWS 24
+#define VTE_COLUMNS 80
+#define VTE_LEGACY_COLOR_SET_SIZE 8
+#define VTE_COLOR_PLAIN_OFFSET 0
+#define VTE_COLOR_BRIGHT_OFFSET 8
+#define VTE_COLOR_DIM_OFFSET 16
+/* More color defines in ring.h */
+
+#define VTE_SCROLLBACK_INIT 100
+#define VTE_SATURATION_MAX 10000
+#define VTE_DEFAULT_CURSOR GDK_XTERM
+#define VTE_MOUSING_CURSOR GDK_LEFT_PTR
+#define VTE_TAB_MAX 999
+#define VTE_ADJUSTMENT_PRIORITY G_PRIORITY_DEFAULT_IDLE
+#define VTE_INPUT_RETRY_PRIORITY G_PRIORITY_HIGH
+#define VTE_INPUT_PRIORITY G_PRIORITY_DEFAULT_IDLE
+#define VTE_CHILD_INPUT_PRIORITY G_PRIORITY_DEFAULT_IDLE
+#define VTE_CHILD_OUTPUT_PRIORITY G_PRIORITY_HIGH
+#define VTE_FX_PRIORITY G_PRIORITY_DEFAULT_IDLE
+#define VTE_REGCOMP_FLAGS REG_EXTENDED
+#define VTE_REGEXEC_FLAGS 0
+#define VTE_INPUT_CHUNK_SIZE 0x2000
+#define VTE_MAX_INPUT_READ 0x1000
+#define VTE_INVALID_BYTE '?'
+#define VTE_DISPLAY_TIMEOUT 10
+#define VTE_UPDATE_TIMEOUT 15
+#define VTE_UPDATE_REPEAT_TIMEOUT 30
+#define VTE_MAX_PROCESS_TIME 100
+#define VTE_CELL_BBOX_SLACK 1
+
+#define VTE_UTF8_BPC (6) /* Maximum number of bytes used per UTF-8 character */
+
+#define I_(string) (g_intern_static_string(string))
+
+
+typedef enum {
+ VTE_REGEX_GREGEX,
+ VTE_REGEX_VTE,
+ VTE_REGEX_UNDECIDED
+} VteRegexMode;
+
+typedef enum {
+ VTE_REGEX_CURSOR_GDKCURSOR,
+ VTE_REGEX_CURSOR_GDKCURSORTYPE,
+ VTE_REGEX_CURSOR_NAME
+} VteRegexCursorMode;
+
+/* The order is important */
+typedef enum {
+ MOUSE_TRACKING_NONE,
+ MOUSE_TRACKING_SEND_XY_ON_CLICK,
+ MOUSE_TRACKING_SEND_XY_ON_BUTTON,
+ MOUSE_TRACKING_HILITE_TRACKING,
+ MOUSE_TRACKING_CELL_MOTION_TRACKING,
+ MOUSE_TRACKING_ALL_MOTION_TRACKING
+} MouseTrackingMode;
+
+/* A match regex, with a tag. */
+struct vte_match_regex {
+ gint tag;
+ VteRegexMode mode;
+ union { /* switched on |mode| */
+ struct {
+ GRegex *regex;
+ GRegexMatchFlags flags;
+ } gregex;
+ struct _vte_regex *reg;
+ } regex;
+ VteRegexCursorMode cursor_mode;
+ union {
+ GdkCursor *cursor;
+ char *cursor_name;
+ GdkCursorType cursor_type;
+ } cursor;
+};
+
+/* The terminal's keypad/cursor state. A terminal can either be using the
+ * normal keypad, or the "application" keypad. */
+typedef enum _VteKeymode {
+ VTE_KEYMODE_NORMAL,
+ VTE_KEYMODE_APPLICATION
+} VteKeymode;
+
+typedef struct _VteScreen VteScreen;
+
+typedef struct _VteWordCharRange {
+ gunichar start, end;
+} VteWordCharRange;
+
+typedef struct _VteVisualPosition {
+ long row, col;
+} VteVisualPosition;
+
+/* Terminal private data. */
+struct _VteTerminalPrivate {
+ /* Emulation setup data. */
+ struct _vte_termcap *termcap; /* termcap storage */
+ struct _vte_matcher *matcher; /* control sequence matcher */
+ const char *termcap_path; /* path to termcap file */
+ const char *emulation; /* terminal type to emulate */
+ struct vte_terminal_flags { /* boolean termcap flags */
+ gboolean am;
+ gboolean bw;
+ gboolean LP;
+ gboolean ul;
+ gboolean xn;
+ } flags;
+ int keypad_mode, cursor_mode; /* these would be VteKeymodes, but we
+ need to guarantee its type */
+ gboolean sun_fkey_mode;
+ gboolean hp_fkey_mode;
+ gboolean legacy_fkey_mode;
+ gboolean vt220_fkey_mode;
+ int fkey; /* this would be a VteFKey, but we
+ need to guarantee its type */
+ GHashTable *dec_saved;
+ int default_column_count, default_row_count; /* default sizes */
+
+ /* PTY handling data. */
+ VtePty *pty;
+ GIOChannel *pty_channel; /* master channel */
+ guint pty_input_source;
+ guint pty_output_source;
+ gboolean pty_input_active;
+ GPid pty_pid; /* pid of child using pty slave */
+ VteReaper *pty_reaper;
+ int child_exit_status;
+
+ /* Input data queues. */
+ const char *encoding; /* the pty's encoding */
+ struct _vte_iso2022_state *iso2022;
+ struct _vte_incoming_chunk{
+ struct _vte_incoming_chunk *next;
+ guint len;
+ guchar data[VTE_INPUT_CHUNK_SIZE
+ - 2 * sizeof(void *)];
+ } *incoming; /* pending bytestream */
+ GArray *pending; /* pending characters */
+ GSList *update_regions;
+ gboolean invalidated_all; /* pending refresh of entire terminal */
+ GList *active; /* is the terminal processing data */
+ glong input_bytes;
+ glong max_input_bytes;
+
+ /* Output data queue. */
+ VteBuffer *outgoing; /* pending input characters */
+ VteConv outgoing_conv;
+
+ /* IConv buffer. */
+ VteBuffer *conv_buffer;
+
+ /* Screen data. We support the normal screen, and an alternate
+ * screen, which seems to be a DEC-specific feature. */
+ struct _VteScreen {
+ VteRing row_data[1]; /* buffer contents */
+ VteVisualPosition cursor_current, cursor_saved;
+ /* the current and saved positions of
+ the [insertion] cursor -- current is
+ absolute, saved is relative to the
+ insertion delta */
+ gboolean reverse_mode; /* reverse mode */
+ gboolean origin_mode; /* origin mode */
+ gboolean sendrecv_mode; /* sendrecv mode */
+ gboolean insert_mode; /* insert mode */
+ gboolean linefeed_mode; /* linefeed mode */
+ gboolean bracketed_paste_mode;
+ struct vte_scrolling_region {
+ int start, end;
+ } scrolling_region; /* the region we scroll in */
+ gboolean scrolling_restricted;
+ long scroll_delta; /* scroll offset */
+ long insert_delta; /* insertion offset */
+ VteCell defaults; /* default characteristics
+ for insertion of any new
+ characters */
+ VteCell color_defaults; /* original defaults
+ plus the current
+ fore/back */
+ VteCell fill_defaults; /* original defaults
+ plus the current
+ fore/back with no
+ character data */
+ gboolean alternate_charset;
+ gboolean status_line;
+ GString *status_line_contents;
+ gboolean status_line_changed;
+ } normal_screen, alternate_screen, *screen;
+
+ /* Selection information. */
+ GArray *word_chars;
+ gboolean has_selection;
+ gboolean selecting;
+ gboolean selecting_restart;
+ gboolean selecting_had_delta;
+ gboolean selection_block_mode;
+ char *selection;
+ enum vte_selection_type {
+ selection_type_char,
+ selection_type_word,
+ selection_type_line
+ } selection_type;
+ struct selection_event_coords {
+ long x, y;
+ } selection_origin, selection_last;
+ VteVisualPosition selection_start, selection_end;
+
+ /* Miscellaneous options. */
+ VteTerminalEraseBinding backspace_binding, delete_binding;
+ gboolean meta_sends_escape;
+ gboolean audible_bell;
+ gboolean visible_bell;
+ gboolean margin_bell;
+ guint bell_margin;
+ gboolean allow_bold;
+ gboolean nrc_mode;
+ gboolean smooth_scroll;
+ GHashTable *tabstops;
+ gboolean text_modified_flag;
+ gboolean text_inserted_flag;
+ gboolean text_deleted_flag;
+
+ /* Scrolling options. */
+ gboolean scroll_background;
+ gboolean scroll_on_output;
+ gboolean scroll_on_keystroke;
+ long scrollback_lines;
+
+ /* Cursor shape */
+ VteTerminalCursorShape cursor_shape;
+ float cursor_aspect_ratio;
+
+ /* Cursor blinking. */
+ VteTerminalCursorBlinkMode cursor_blink_mode;
+ gboolean cursor_blink_state;
+ guint cursor_blink_tag; /* cursor blinking timeout ID */
+ gint cursor_blink_cycle; /* gtk-cursor-blink-time / 2 */
+ gint cursor_blink_timeout; /* gtk-cursor-blink-timeout */
+ gboolean cursor_blinks; /* whether the cursor is actually blinking */
+ gint64 cursor_blink_time; /* how long the cursor has been blinking yet */
+ gboolean cursor_visible;
+ gboolean has_focus; /* is the terminal window focused */
+
+ /* Input device options. */
+ time_t last_keypress_time;
+
+ int mouse_tracking_mode; /* this is of type MouseTrackingMode,
+ but we need to guarantee its type. */
+ guint mouse_last_button;
+ long mouse_last_x, mouse_last_y;
+ gboolean mouse_autohide;
+ guint mouse_autoscroll_tag;
+
+ /* State variables for handling match checks. */
+ char *match_contents;
+ GArray *match_attributes;
+ VteRegexMode match_regex_mode;
+ GArray *match_regexes;
+ char *match;
+ int match_tag;
+ VteVisualPosition match_start, match_end;
+ gboolean show_match;
+
+ /* Search data. */
+ GRegex *search_regex;
+ gboolean search_wrap_around;
+ GArray *search_attrs; /* Cache attrs */
+
+ /* Data used when rendering the text which does not require server
+ * resources and which can be kept after unrealizing. */
+ PangoFontDescription *fontdesc;
+ VteTerminalAntiAlias fontantialias;
+ gboolean fontdirty;
+
+ /* Data used when rendering the text which reflects server resources
+ * and data, which should be dropped when unrealizing and (re)created
+ * when realizing. */
+ struct _vte_draw *draw;
+
+ gboolean palette_initialized;
+ gboolean highlight_color_set;
+ gboolean cursor_color_set;
+ PangoColor palette[VTE_PALETTE_SIZE];
+
+ /* Mouse cursors. */
+ gboolean mouse_cursor_visible;
+ GdkCursor *mouse_default_cursor,
+ *mouse_mousing_cursor,
+ *mouse_inviso_cursor;
+
+ /* Input method support. */
+ GtkIMContext *im_context;
+ gboolean im_preedit_active;
+ char *im_preedit;
+ PangoAttrList *im_preedit_attrs;
+ int im_preedit_cursor;
+
+ gboolean accessible_emit;
+
+ /* Adjustment updates pending. */
+ gboolean adjustment_changed_pending;
+ gboolean adjustment_value_changed_pending;
+
+ gboolean cursor_moved_pending;
+ gboolean contents_changed_pending;
+
+ /* window name changes */
+ gchar *window_title_changed;
+ gchar *icon_title_changed;
+
+ /* Background images/"transparency". */
+ guint root_pixmap_changed_tag;
+ gboolean bg_update_pending;
+ gboolean bg_transparent;
+ GdkPixbuf *bg_pixbuf;
+ char *bg_file;
+ PangoColor bg_tint_color;
+ guint16 bg_saturation; /* out of VTE_SATURATION_MAX */
+ guint16 bg_opacity;
+
+ /* Key modifiers. */
+ GdkModifierType modifiers;
+
+ /* Obscured? state. */
+ GdkVisibilityState visibility_state;
+
+ /* Font stuff. */
+ gboolean has_fonts;
+ glong line_thickness;
+ glong underline_position;
+ glong strikethrough_position;
+
+ /* Style stuff */
+ GtkBorder inner_border;
+
+#if GTK_CHECK_VERSION (2, 91, 2)
+ /* GtkScrollable impl */
+ GtkAdjustment *hadjustment; /* unused */
+ guint hscroll_policy : 1; /* unused */
+
+ guint vscroll_policy : 1;
+#endif
+};
+
+#if GTK_CHECK_VERSION (2, 99, 0)
+struct _VteTerminalClassPrivate {
+ GtkStyleProvider *style_provider;
+};
+#endif
+
+VteRowData *_vte_terminal_ensure_row(VteTerminal *terminal);
+void _vte_terminal_set_pointer_visible(VteTerminal *terminal, gboolean visible);
+void _vte_invalidate_all(VteTerminal *terminal);
+void _vte_invalidate_cells(VteTerminal *terminal,
+ glong column_start, gint column_count,
+ glong row_start, gint row_count);
+void _vte_invalidate_cell(VteTerminal *terminal, glong col, glong row);
+void _vte_invalidate_cursor_once(VteTerminal *terminal, gboolean periodic);
+VteRowData * _vte_new_row_data(VteTerminal *terminal);
+void _vte_terminal_adjust_adjustments(VteTerminal *terminal);
+void _vte_terminal_queue_contents_changed(VteTerminal *terminal);
+void _vte_terminal_emit_text_deleted(VteTerminal *terminal);
+void _vte_terminal_emit_text_inserted(VteTerminal *terminal);
+void _vte_terminal_cursor_down (VteTerminal *terminal);
+gboolean _vte_terminal_insert_char(VteTerminal *terminal, gunichar c,
+ gboolean force_insert_mode,
+ gboolean invalidate_cells);
+void _vte_terminal_scroll_region(VteTerminal *terminal,
+ long row, glong count, glong delta);
+void _vte_terminal_set_default_attributes(VteTerminal *terminal);
+void _vte_terminal_clear_tabstop(VteTerminal *terminal, int column);
+gboolean _vte_terminal_get_tabstop(VteTerminal *terminal, int column);
+void _vte_terminal_set_tabstop(VteTerminal *terminal, int column);
+void _vte_terminal_update_insert_delta(VteTerminal *terminal);
+void _vte_terminal_cleanup_tab_fragments_at_cursor (VteTerminal *terminal);
+void _vte_terminal_audible_beep(VteTerminal *terminal);
+void _vte_terminal_visible_beep(VteTerminal *terminal);
+void _vte_terminal_beep(VteTerminal *terminal);
+
+void _vte_terminal_inline_error_message(VteTerminal *terminal, const char *format, ...) G_GNUC_PRINTF(2,3);
+
+VteRowData *_vte_terminal_ring_insert (VteTerminal *terminal, glong position, gboolean fill);
+VteRowData *_vte_terminal_ring_append (VteTerminal *terminal, gboolean fill);
+void _vte_terminal_ring_remove (VteTerminal *terminal, glong position);
+
+/* vteseq.c: */
+void _vte_terminal_handle_sequence(VteTerminal *terminal,
+ const char *match_s,
+ GQuark match,
+ GValueArray *params);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vte.c b/vte/src/vte.c
new file mode 100644
index 0000000..695d327
--- /dev/null
+++ b/vte/src/vte.c
@@ -0,0 +1,15421 @@
+/*
+ * Copyright (C) 2001-2004,2009,2010 Red Hat, Inc.
+ * Copyright © 2008, 2009, 2010 Christian Persch
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/**
+ * SECTION: vte-terminal
+ * @short_description: A terminal widget implementation
+ *
+ * A VteTerminal is a terminal emulator implemented as a GTK2 widget.
+ */
+
+#include <config.h>
+
+#include <math.h>
+
+#include "vte.h"
+#include "vte-private.h"
+#include "vte-gtk-compat.h"
+
+#ifdef HAVE_WCHAR_H
+#include <wchar.h>
+#endif
+#ifdef HAVE_SYS_SYSLIMITS_H
+#include <sys/syslimits.h>
+#endif
+#ifdef HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
+#include <glib.h>
+#include <glib/gstdio.h>
+#include <glib-object.h>
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
+#include <pango/pango.h>
+#include "iso2022.h"
+#include "keymap.h"
+#include "marshal.h"
+#include "matcher.h"
+#include "pty.h"
+#include "vteaccess.h"
+#include "vteint.h"
+#include "vtepty.h"
+#include "vtepty-private.h"
+#include "vteregex.h"
+#include "vtetc.h"
+
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
+#if GTK_CHECK_VERSION (2, 90, 7)
+#define GDK_KEY(symbol) GDK_KEY_##symbol
+#else
+#include <gdk/gdkkeysyms.h>
+#define GDK_KEY(symbol) GDK_##symbol
+#endif
+
+#ifndef HAVE_WINT_T
+typedef gunichar wint_t;
+#endif
+
+#ifndef howmany
+#define howmany(x, y) (((x) + ((y) - 1)) / (y))
+#endif
+
+#define STATIC_PARAMS (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)
+
+
+static void vte_terminal_set_visibility (VteTerminal *terminal, GdkVisibilityState state);
+static void vte_terminal_set_termcap(VteTerminal *terminal, const char *path,
+ gboolean reset);
+static void vte_terminal_paste(VteTerminal *terminal, GdkAtom board);
+static void vte_terminal_real_copy_clipboard(VteTerminal *terminal);
+static void vte_terminal_real_paste_clipboard(VteTerminal *terminal);
+static gboolean vte_terminal_io_read(GIOChannel *channel,
+ GIOCondition condition,
+ VteTerminal *terminal);
+static gboolean vte_terminal_io_write(GIOChannel *channel,
+ GIOCondition condition,
+ VteTerminal *terminal);
+static void vte_terminal_match_hilite_clear(VteTerminal *terminal);
+static void vte_terminal_match_hilite_hide(VteTerminal *terminal);
+static void vte_terminal_match_hilite_show(VteTerminal *terminal, long x, long y);
+static void vte_terminal_match_hilite_update(VteTerminal *terminal, long x, long y);
+static void vte_terminal_match_contents_clear(VteTerminal *terminal);
+static gboolean vte_terminal_background_update(VteTerminal *data);
+static void vte_terminal_queue_background_update(VteTerminal *terminal);
+static void vte_terminal_process_incoming(VteTerminal *terminal);
+static void vte_terminal_emit_pending_signals(VteTerminal *terminal);
+static gboolean vte_cell_is_selected(VteTerminal *terminal,
+ glong col, glong row, gpointer data);
+static char *vte_terminal_get_text_range_maybe_wrapped(VteTerminal *terminal,
+ glong start_row,
+ glong start_col,
+ glong end_row,
+ glong end_col,
+ gboolean wrap,
+ VteSelectionFunc is_selected,
+ gpointer data,
+ GArray *attributes,
+ gboolean include_trailing_spaces);
+static char *vte_terminal_get_text_maybe_wrapped(VteTerminal *terminal,
+ gboolean wrap,
+ VteSelectionFunc is_selected,
+ gpointer data,
+ GArray *attributes,
+ gboolean include_trailing_spaces);
+static void _vte_terminal_disconnect_pty_read(VteTerminal *terminal);
+static void _vte_terminal_disconnect_pty_write(VteTerminal *terminal);
+static void vte_terminal_stop_processing (VteTerminal *terminal);
+
+static inline gboolean vte_terminal_is_processing (VteTerminal *terminal);
+static inline void vte_terminal_start_processing (VteTerminal *terminal);
+static void vte_terminal_add_process_timeout (VteTerminal *terminal);
+static void add_update_timeout (VteTerminal *terminal);
+static void remove_update_timeout (VteTerminal *terminal);
+static void reset_update_regions (VteTerminal *terminal);
+static void vte_terminal_set_cursor_blinks_internal(VteTerminal *terminal, gboolean blink);
+static void vte_terminal_set_font_full_internal(VteTerminal *terminal,
+ const PangoFontDescription *font_desc,
+ VteTerminalAntiAlias antialias);
+static void _vte_check_cursor_blink(VteTerminal *terminal);
+
+static gboolean process_timeout (gpointer data);
+static gboolean update_timeout (gpointer data);
+
+enum {
+ COPY_CLIPBOARD,
+ PASTE_CLIPBOARD,
+ LAST_SIGNAL
+};
+static guint signals[LAST_SIGNAL];
+
+enum {
+ PROP_0,
+#if GTK_CHECK_VERSION (2, 91, 2)
+ PROP_HADJUSTMENT,
+ PROP_VADJUSTMENT,
+ PROP_HSCROLL_POLICY,
+ PROP_VSCROLL_POLICY,
+#endif
+ PROP_ALLOW_BOLD,
+ PROP_AUDIBLE_BELL,
+ PROP_BACKGROUND_IMAGE_FILE,
+ PROP_BACKGROUND_IMAGE_PIXBUF,
+ PROP_BACKGROUND_OPACITY,
+ PROP_BACKGROUND_SATURATION,
+ PROP_BACKGROUND_TINT_COLOR,
+ PROP_BACKGROUND_TRANSPARENT,
+ PROP_BACKSPACE_BINDING,
+ PROP_CURSOR_BLINK_MODE,
+ PROP_CURSOR_SHAPE,
+ PROP_DELETE_BINDING,
+ PROP_EMULATION,
+ PROP_ENCODING,
+ PROP_FONT_DESC,
+ PROP_ICON_TITLE,
+ PROP_MOUSE_POINTER_AUTOHIDE,
+ PROP_PTY,
+ PROP_PTY_OBJECT,
+ PROP_SCROLL_BACKGROUND,
+ PROP_SCROLLBACK_LINES,
+ PROP_SCROLL_ON_KEYSTROKE,
+ PROP_SCROLL_ON_OUTPUT,
+ PROP_WINDOW_TITLE,
+ PROP_WORD_CHARS,
+ PROP_VISIBLE_BELL
+};
+
+/* these static variables are guarded by the GDK mutex */
+static guint process_timeout_tag = 0;
+static gboolean in_process_timeout;
+static guint update_timeout_tag = 0;
+static gboolean in_update_timeout;
+static GList *active_terminals;
+static GTimer *process_timer;
+
+static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
+
+/* process incoming data without copying */
+static struct _vte_incoming_chunk *free_chunks;
+static struct _vte_incoming_chunk *
+get_chunk (void)
+{
+ struct _vte_incoming_chunk *chunk = NULL;
+ if (free_chunks) {
+ chunk = free_chunks;
+ free_chunks = free_chunks->next;
+ }
+ if (chunk == NULL) {
+ chunk = g_new (struct _vte_incoming_chunk, 1);
+ }
+ chunk->next = NULL;
+ chunk->len = 0;
+ return chunk;
+}
+static void
+release_chunk (struct _vte_incoming_chunk *chunk)
+{
+ chunk->next = free_chunks;
+ chunk->len = free_chunks ? free_chunks->len + 1 : 0;
+ free_chunks = chunk;
+}
+static void
+prune_chunks (guint len)
+{
+ struct _vte_incoming_chunk *chunk = NULL;
+ if (len && free_chunks != NULL) {
+ if (free_chunks->len > len) {
+ struct _vte_incoming_chunk *last;
+ chunk = free_chunks;
+ while (free_chunks->len > len) {
+ last = free_chunks;
+ free_chunks = free_chunks->next;
+ }
+ last->next = NULL;
+ }
+ } else {
+ chunk = free_chunks;
+ free_chunks = NULL;
+ }
+ while (chunk != NULL) {
+ struct _vte_incoming_chunk *next = chunk->next;
+ g_free (chunk);
+ chunk = next;
+ }
+}
+static void
+_vte_incoming_chunks_release (struct _vte_incoming_chunk *chunk)
+{
+ while (chunk) {
+ struct _vte_incoming_chunk *next = chunk->next;
+ release_chunk (chunk);
+ chunk = next;
+ }
+}
+static gsize
+_vte_incoming_chunks_length (struct _vte_incoming_chunk *chunk)
+{
+ gsize len = 0;
+ while (chunk) {
+ len += chunk->len;
+ chunk = chunk->next;
+ }
+ return len;
+}
+static gsize
+_vte_incoming_chunks_count (struct _vte_incoming_chunk *chunk)
+{
+ gsize cnt = 0;
+ while (chunk) {
+ cnt ++;
+ chunk = chunk->next;
+ }
+ return cnt;
+}
+static struct _vte_incoming_chunk *
+_vte_incoming_chunks_reverse(struct _vte_incoming_chunk *chunk)
+{
+ struct _vte_incoming_chunk *prev = NULL;
+ while (chunk) {
+ struct _vte_incoming_chunk *next = chunk->next;
+ chunk->next = prev;
+ prev = chunk;
+ chunk = next;
+ }
+ return prev;
+}
+
+#if GTK_CHECK_VERSION (2, 99, 0)
+#ifdef VTE_DEBUG
+G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET,
+ g_type_add_class_private (g_define_type_id, sizeof (VteTerminalClassPrivate));
+ G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, NULL)
+ if (_vte_debug_on(VTE_DEBUG_LIFECYCLE)) {
+ g_printerr("vte_terminal_get_type()\n");
+ })
+#else
+G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET,
+ g_type_add_class_private (g_define_type_id, sizeof (VteTerminalClassPrivate));
+ G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, NULL))
+#endif
+#else
+#ifdef VTE_DEBUG
+G_DEFINE_TYPE_WITH_CODE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET,
+ if (_vte_debug_on(VTE_DEBUG_LIFECYCLE)) {
+ g_printerr("vte_terminal_get_type()\n");
+ })
+#else
+G_DEFINE_TYPE(VteTerminal, vte_terminal, GTK_TYPE_WIDGET)
+#endif
+#endif /* GTK 3.0 */
+
+/* Indexes in the "palette" color array for the dim colors.
+ * Only the first %VTE_LEGACY_COLOR_SET_SIZE colors have dim versions. */
+static const guchar corresponding_dim_index[] = {16,88,28,100,18,90,30,102};
+
+static void
+vte_g_array_fill(GArray *array, gconstpointer item, guint final_size)
+{
+ if (array->len >= final_size)
+ return;
+
+ final_size -= array->len;
+ do {
+ g_array_append_vals(array, item, 1);
+ } while (--final_size);
+}
+
+
+VteRowData *
+_vte_terminal_ring_insert (VteTerminal *terminal, glong position, gboolean fill)
+{
+ VteRowData *row;
+ VteRing *ring = terminal->pvt->screen->row_data;
+ while (G_UNLIKELY (_vte_ring_next (ring) < position)) {
+ row = _vte_ring_append (ring);
+ _vte_row_data_fill (row, &terminal->pvt->screen->fill_defaults, terminal->column_count);
+ }
+ row = _vte_ring_insert (ring, position);
+ if (fill)
+ _vte_row_data_fill (row, &terminal->pvt->screen->fill_defaults, terminal->column_count);
+ return row;
+}
+
+VteRowData *
+_vte_terminal_ring_append (VteTerminal *terminal, gboolean fill)
+{
+ return _vte_terminal_ring_insert (terminal, _vte_ring_next (terminal->pvt->screen->row_data), fill);
+}
+
+void
+_vte_terminal_ring_remove (VteTerminal *terminal, glong position)
+{
+ _vte_ring_remove (terminal->pvt->screen->row_data, position);
+}
+
+/* Reset defaults for character insertion. */
+void
+_vte_terminal_set_default_attributes(VteTerminal *terminal)
+{
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+
+ screen->defaults = basic_cell.cell;
+ screen->color_defaults = screen->defaults;
+ screen->fill_defaults = screen->defaults;
+}
+
+/* Cause certain cells to be repainted. */
+void
+_vte_invalidate_cells(VteTerminal *terminal,
+ glong column_start, gint column_count,
+ glong row_start, gint row_count)
+{
+ VteRegionRectangle rect;
+ glong i;
+
+ if (!column_count || !row_count) {
+ return;
+ }
+
+ if (G_UNLIKELY (! gtk_widget_is_drawable (&terminal->widget)
+ || terminal->pvt->invalidated_all)) {
+ return;
+ }
+
+ _vte_debug_print (VTE_DEBUG_UPDATES,
+ "Invalidating cells at (%ld,%ld+%ld)x(%d,%d).\n",
+ column_start, row_start,
+ (long)terminal->pvt->screen->scroll_delta,
+ column_count, row_count);
+ _vte_debug_print (VTE_DEBUG_WORK, "?");
+
+ /* Subtract the scrolling offset from the row start so that the
+ * resulting rectangle is relative to the visible portion of the
+ * buffer. */
+ row_start -= terminal->pvt->screen->scroll_delta;
+
+ /* Ensure the start of region is on screen */
+ if (column_start > terminal->column_count ||
+ row_start > terminal->row_count) {
+ return;
+ }
+
+ /* Clamp the start values to reasonable numbers. */
+ i = row_start + row_count;
+ row_start = MAX (0, row_start);
+ row_count = CLAMP (i - row_start, 0, terminal->row_count);
+
+ i = column_start + column_count;
+ column_start = MAX (0, column_start);
+ column_count = CLAMP (i - column_start, 0 , terminal->column_count);
+
+ if (!column_count || !row_count) {
+ return;
+ }
+ if (column_count == terminal->column_count &&
+ row_count == terminal->row_count) {
+ _vte_invalidate_all (terminal);
+ return;
+ }
+
+ /* Convert the column and row start and end to pixel values
+ * by multiplying by the size of a character cell.
+ * Always include the extra pixel border and overlap pixel.
+ */
+ rect.x = column_start * terminal->char_width - 1;
+ if (column_start != 0) {
+ rect.x += terminal->pvt->inner_border.left;
+ }
+ rect.width = (column_start + column_count) * terminal->char_width + 3 +
terminal->pvt->inner_border.left;
+ if (column_start + column_count == terminal->column_count) {
+ rect.width += terminal->pvt->inner_border.right;
+ }
+ rect.width -= rect.x;
+
+ rect.y = row_start * terminal->char_height - 1;
+ if (row_start != 0) {
+ rect.y += terminal->pvt->inner_border.top;
+ }
+ rect.height = (row_start + row_count) * terminal->char_height + 2 + terminal->pvt->inner_border.top;
+ if (row_start + row_count == terminal->row_count) {
+ rect.height += terminal->pvt->inner_border.bottom;
+ }
+ rect.height -= rect.y;
+
+ _vte_debug_print (VTE_DEBUG_UPDATES,
+ "Invalidating pixels at (%d,%d)x(%d,%d).\n",
+ rect.x, rect.y, rect.width, rect.height);
+
+ if (terminal->pvt->active != NULL) {
+ terminal->pvt->update_regions = g_slist_prepend (
+ terminal->pvt->update_regions,
+ gdk_region_rectangle (&rect));
+ /* Wait a bit before doing any invalidation, just in
+ * case updates are coming in really soon. */
+ add_update_timeout (terminal);
+ } else {
+ gdk_window_invalidate_rect (gtk_widget_get_window (&terminal->widget), &rect, FALSE);
+ }
+
+ _vte_debug_print (VTE_DEBUG_WORK, "!");
+}
+
+static void
+_vte_invalidate_region (VteTerminal *terminal,
+ glong scolumn, glong ecolumn,
+ glong srow, glong erow,
+ gboolean block)
+{
+ if (block || srow == erow) {
+ _vte_invalidate_cells(terminal,
+ scolumn, ecolumn - scolumn + 1,
+ srow, erow - srow + 1);
+ } else {
+ _vte_invalidate_cells(terminal,
+ scolumn,
+ terminal->column_count - scolumn,
+ srow, 1);
+ _vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ srow + 1, erow - srow - 1);
+ _vte_invalidate_cells(terminal,
+ 0, ecolumn + 1,
+ erow, 1);
+ }
+}
+
+
+/* Redraw the entire visible portion of the window. */
+void
+_vte_invalidate_all(VteTerminal *terminal)
+{
+ VteRegionRectangle rect;
+ GtkAllocation allocation;
+
+ g_assert(VTE_IS_TERMINAL(terminal));
+
+ if (! gtk_widget_is_drawable (&terminal->widget)) {
+ return;
+ }
+ if (terminal->pvt->invalidated_all) {
+ return;
+ }
+
+ _vte_debug_print (VTE_DEBUG_WORK, "*");
+ _vte_debug_print (VTE_DEBUG_UPDATES, "Invalidating all.\n");
+
+ gtk_widget_get_allocation (&terminal->widget, &allocation);
+
+ /* replace invalid regions with one covering the whole terminal */
+ reset_update_regions (terminal);
+ rect.x = rect.y = 0;
+ rect.width = allocation.width;
+ rect.height = allocation.height;
+ terminal->pvt->invalidated_all = TRUE;
+
+ if (terminal->pvt->active != NULL) {
+ terminal->pvt->update_regions = g_slist_prepend (NULL,
+ gdk_region_rectangle (&rect));
+ /* Wait a bit before doing any invalidation, just in
+ * case updates are coming in really soon. */
+ add_update_timeout (terminal);
+ } else {
+ gdk_window_invalidate_rect (gtk_widget_get_window (&terminal->widget), &rect, FALSE);
+ }
+}
+
+/* Scroll a rectangular region up or down by a fixed number of lines,
+ * negative = up, positive = down. */
+void
+_vte_terminal_scroll_region (VteTerminal *terminal,
+ long row, glong count, glong delta)
+{
+ if ((delta == 0) || (count == 0)) {
+ /* Shenanigans! */
+ return;
+ }
+
+ if (terminal->pvt->scroll_background || count >= terminal->row_count) {
+ /* We have to repaint the entire window. */
+ _vte_invalidate_all(terminal);
+ } else {
+ /* We have to repaint the area which is to be
+ * scrolled. */
+ _vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ row, count);
+ }
+}
+
+/* Find the row in the given position in the backscroll buffer. */
+static inline const VteRowData *
+_vte_terminal_find_row_data (VteTerminal *terminal, glong row)
+{
+ const VteRowData *rowdata = NULL;
+ VteScreen *screen = terminal->pvt->screen;
+ if (G_LIKELY (_vte_ring_contains (screen->row_data, row))) {
+ rowdata = _vte_ring_index (screen->row_data, row);
+ }
+ return rowdata;
+}
+
+/* Find the row in the given position in the backscroll buffer. */
+static inline VteRowData *
+_vte_terminal_find_row_data_writable (VteTerminal *terminal, glong row)
+{
+ VteRowData *rowdata = NULL;
+ VteScreen *screen = terminal->pvt->screen;
+ if (G_LIKELY (_vte_ring_contains (screen->row_data, row))) {
+ rowdata = _vte_ring_index_writable (screen->row_data, row);
+ }
+ return rowdata;
+}
+
+/* Find the character an the given position in the backscroll buffer. */
+static const VteCell *
+vte_terminal_find_charcell(VteTerminal *terminal, gulong col, glong row)
+{
+ const VteRowData *rowdata;
+ const VteCell *ret = NULL;
+ VteScreen *screen;
+ screen = terminal->pvt->screen;
+ if (_vte_ring_contains (screen->row_data, row)) {
+ rowdata = _vte_ring_index (screen->row_data, row);
+ ret = _vte_row_data_get (rowdata, col);
+ }
+ return ret;
+}
+
+static glong
+find_start_column (VteTerminal *terminal, glong col, glong row)
+{
+ const VteRowData *row_data = _vte_terminal_find_row_data (terminal, row);
+ if (G_UNLIKELY (col < 0))
+ return col;
+ if (row_data != NULL) {
+ const VteCell *cell = _vte_row_data_get (row_data, col);
+ while (col > 0 && cell != NULL && cell->attr.fragment) {
+ cell = _vte_row_data_get (row_data, --col);
+ }
+ }
+ return MAX(col, 0);
+}
+static glong
+find_end_column (VteTerminal *terminal, glong col, glong row)
+{
+ const VteRowData *row_data = _vte_terminal_find_row_data (terminal, row);
+ gint columns = 0;
+ if (G_UNLIKELY (col < 0))
+ return col;
+ if (row_data != NULL) {
+ const VteCell *cell = _vte_row_data_get (row_data, col);
+ while (col > 0 && cell != NULL && cell->attr.fragment) {
+ cell = _vte_row_data_get (row_data, --col);
+ }
+ if (cell) {
+ columns = cell->attr.columns - 1;
+ }
+ }
+ return MIN(col + columns, terminal->column_count);
+}
+
+
+/* Determine the width of the portion of the preedit string which lies
+ * to the left of the cursor, or the entire string, in columns. */
+static gssize
+vte_terminal_preedit_width(VteTerminal *terminal, gboolean left_only)
+{
+ gunichar c;
+ int i;
+ gssize ret = 0;
+ const char *preedit = NULL;
+
+ if (terminal->pvt->im_preedit != NULL) {
+ preedit = terminal->pvt->im_preedit;
+ for (i = 0;
+ (preedit != NULL) &&
+ (preedit[0] != '\0') &&
+ (!left_only || (i < terminal->pvt->im_preedit_cursor));
+ i++) {
+ c = g_utf8_get_char(preedit);
+ ret += _vte_iso2022_unichar_width(terminal->pvt->iso2022, c);
+ preedit = g_utf8_next_char(preedit);
+ }
+ }
+
+ return ret;
+}
+
+/* Determine the length of the portion of the preedit string which lies
+ * to the left of the cursor, or the entire string, in gunichars. */
+static gssize
+vte_terminal_preedit_length(VteTerminal *terminal, gboolean left_only)
+{
+ int i = 0;
+ const char *preedit = NULL;
+
+ if (terminal->pvt->im_preedit != NULL) {
+ preedit = terminal->pvt->im_preedit;
+ for (i = 0;
+ (preedit != NULL) &&
+ (preedit[0] != '\0') &&
+ (!left_only || (i < terminal->pvt->im_preedit_cursor));
+ i++) {
+ preedit = g_utf8_next_char(preedit);
+ }
+ }
+
+ return i;
+}
+
+/* Cause the cell to be redrawn. */
+void
+_vte_invalidate_cell(VteTerminal *terminal, glong col, glong row)
+{
+ const VteRowData *row_data;
+ int columns;
+
+ if (G_UNLIKELY (! gtk_widget_is_drawable (&terminal->widget)
+ || terminal->pvt->invalidated_all)) {
+ return;
+ }
+
+ columns = 1;
+ row_data = _vte_terminal_find_row_data(terminal, row);
+ if (row_data != NULL) {
+ const VteCell *cell;
+ cell = _vte_row_data_get (row_data, col);
+ if (cell != NULL) {
+ while (cell->attr.fragment && col> 0) {
+ cell = _vte_row_data_get (row_data, --col);
+ }
+ columns = cell->attr.columns;
+ if (cell->c != 0 &&
+ _vte_draw_get_char_width (
+ terminal->pvt->draw,
+ cell->c,
+ columns, cell->attr.bold) >
+ terminal->char_width * columns) {
+ columns++;
+ }
+ }
+ }
+
+ _vte_debug_print(VTE_DEBUG_UPDATES,
+ "Invalidating cell at (%ld,%ld-%ld).\n",
+ row, col, col + columns);
+ _vte_invalidate_cells(terminal,
+ col, columns,
+ row, 1);
+}
+
+/* Cause the cursor to be redrawn. */
+void
+_vte_invalidate_cursor_once(VteTerminal *terminal, gboolean periodic)
+{
+ VteScreen *screen;
+ const VteCell *cell;
+ gssize preedit_width;
+ glong column, row;
+ gint columns;
+
+ if (terminal->pvt->invalidated_all) {
+ return;
+ }
+
+ if (periodic) {
+ if (!terminal->pvt->cursor_blinks) {
+ return;
+ }
+ }
+
+ if (terminal->pvt->cursor_visible && gtk_widget_is_drawable (&terminal->widget)) {
+ preedit_width = vte_terminal_preedit_width(terminal, FALSE);
+
+ screen = terminal->pvt->screen;
+ row = screen->cursor_current.row;
+ column = screen->cursor_current.col;
+ columns = 1;
+ column = find_start_column (terminal, column, row);
+ cell = vte_terminal_find_charcell(terminal, column, row);
+ if (cell != NULL) {
+ columns = cell->attr.columns;
+ if (cell->c != 0 &&
+ _vte_draw_get_char_width (
+ terminal->pvt->draw,
+ cell->c,
+ columns, cell->attr.bold) >
+ terminal->char_width * columns) {
+ columns++;
+ }
+ }
+ if (preedit_width > 0) {
+ columns += preedit_width;
+ columns++; /* one more for the preedit cursor */
+ }
+
+ _vte_debug_print(VTE_DEBUG_UPDATES,
+ "Invalidating cursor at (%ld,%ld-%ld).\n",
+ row, column, column + columns);
+ _vte_invalidate_cells(terminal,
+ column, columns,
+ row, 1);
+ }
+}
+
+/* Invalidate the cursor repeatedly. */
+static gboolean
+vte_invalidate_cursor_periodic (VteTerminal *terminal)
+{
+ VteTerminalPrivate *pvt = terminal->pvt;
+
+ pvt->cursor_blink_state = !pvt->cursor_blink_state;
+ pvt->cursor_blink_time += pvt->cursor_blink_cycle;
+
+ _vte_invalidate_cursor_once(terminal, TRUE);
+
+ /* only disable the blink if the cursor is currently shown.
+ * else, wait until next time.
+ */
+ if (pvt->cursor_blink_time / 1000 >= pvt->cursor_blink_timeout &&
+ pvt->cursor_blink_state) {
+ pvt->cursor_blink_tag = 0;
+ return FALSE;
+ }
+
+ pvt->cursor_blink_tag = g_timeout_add_full(G_PRIORITY_LOW,
+ terminal->pvt->cursor_blink_cycle,
+ (GSourceFunc)vte_invalidate_cursor_periodic,
+ terminal,
+ NULL);
+ return FALSE;
+}
+
+/* Emit a "selection_changed" signal. */
+static void
+vte_terminal_emit_selection_changed(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `selection-changed'.\n");
+ g_signal_emit_by_name(terminal, "selection-changed");
+}
+
+/* Emit a "commit" signal. */
+static void
+vte_terminal_emit_commit(VteTerminal *terminal, const gchar *text, guint length)
+{
+ const char *result = NULL;
+ char *wrapped = NULL;
+
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `commit' of %d bytes.\n", length);
+
+ if (length == (guint)-1) {
+ length = strlen(text);
+ result = text;
+ } else {
+ result = wrapped = g_slice_alloc(length + 1);
+ memcpy(wrapped, text, length);
+ wrapped[length] = '\0';
+ }
+
+ g_signal_emit_by_name(terminal, "commit", result, length);
+
+ if(wrapped)
+ g_slice_free1(length+1, wrapped);
+}
+
+/* Emit an "emulation-changed" signal. */
+static void
+vte_terminal_emit_emulation_changed(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `emulation-changed'.\n");
+ g_signal_emit_by_name(terminal, "emulation-changed");
+ g_object_notify(G_OBJECT(terminal), "emulation");
+
+}
+
+/* Emit an "encoding-changed" signal. */
+static void
+vte_terminal_emit_encoding_changed(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `encoding-changed'.\n");
+ g_signal_emit_by_name(terminal, "encoding-changed");
+ g_object_notify(G_OBJECT(terminal), "encoding");
+}
+
+/* Emit a "child-exited" signal. */
+static void
+vte_terminal_emit_child_exited(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `child-exited'.\n");
+ g_signal_emit_by_name(terminal, "child-exited");
+}
+
+/* Emit a "contents_changed" signal. */
+static void
+vte_terminal_emit_contents_changed(VteTerminal *terminal)
+{
+ if (terminal->pvt->contents_changed_pending) {
+ /* Update dingus match set. */
+ vte_terminal_match_contents_clear(terminal);
+ if (terminal->pvt->mouse_cursor_visible) {
+ vte_terminal_match_hilite_update(terminal,
+ terminal->pvt->mouse_last_x,
+ terminal->pvt->mouse_last_y);
+ }
+
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `contents-changed'.\n");
+ g_signal_emit_by_name(terminal, "contents-changed");
+ terminal->pvt->contents_changed_pending = FALSE;
+ }
+}
+void
+_vte_terminal_queue_contents_changed(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Queueing `contents-changed'.\n");
+ terminal->pvt->contents_changed_pending = TRUE;
+}
+
+/* Emit a "cursor_moved" signal. */
+static void
+vte_terminal_emit_cursor_moved(VteTerminal *terminal)
+{
+ if (terminal->pvt->cursor_moved_pending) {
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `cursor-moved'.\n");
+ g_signal_emit_by_name(terminal, "cursor-moved");
+ terminal->pvt->cursor_moved_pending = FALSE;
+ }
+}
+static void
+vte_terminal_queue_cursor_moved(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Queueing `cursor-moved'.\n");
+ terminal->pvt->cursor_moved_pending = TRUE;
+}
+
+static gboolean
+vte_terminal_emit_eof(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `eof'.\n");
+ GDK_THREADS_ENTER ();
+ g_signal_emit_by_name(terminal, "eof");
+ GDK_THREADS_LEAVE ();
+
+ return FALSE;
+}
+/* Emit a "eof" signal. */
+static void
+vte_terminal_queue_eof(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Queueing `eof'.\n");
+ g_idle_add_full (G_PRIORITY_HIGH,
+ (GSourceFunc) vte_terminal_emit_eof,
+ g_object_ref (terminal),
+ g_object_unref);
+}
+
+/* Emit a "char-size-changed" signal. */
+static void
+vte_terminal_emit_char_size_changed(VteTerminal *terminal,
+ guint width, guint height)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `char-size-changed'.\n");
+ g_signal_emit_by_name(terminal, "char-size-changed",
+ width, height);
+/* g_object_notify(G_OBJECT(terminal), "char-size"); */
+}
+
+/* Emit a "status-line-changed" signal. */
+static void
+_vte_terminal_emit_status_line_changed(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `status-line-changed'.\n");
+ g_signal_emit_by_name(terminal, "status-line-changed");
+/* g_object_notify(G_OBJECT(terminal), "status-line"); */
+}
+
+/* Emit an "increase-font-size" signal. */
+static void
+vte_terminal_emit_increase_font_size(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `increase-font-size'.\n");
+ g_signal_emit_by_name(terminal, "increase-font-size");
+ g_object_notify(G_OBJECT(terminal), "font-scale");
+}
+
+/* Emit a "decrease-font-size" signal. */
+static void
+vte_terminal_emit_decrease_font_size(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `decrease-font-size'.\n");
+ g_signal_emit_by_name(terminal, "decrease-font-size");
+ g_object_notify(G_OBJECT(terminal), "font-scale");
+}
+
+/* Emit a "text-inserted" signal. */
+void
+_vte_terminal_emit_text_inserted(VteTerminal *terminal)
+{
+ if (!terminal->pvt->accessible_emit) {
+ return;
+ }
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `text-inserted'.\n");
+ g_signal_emit_by_name(terminal, "text-inserted");
+}
+
+/* Emit a "text-deleted" signal. */
+void
+_vte_terminal_emit_text_deleted(VteTerminal *terminal)
+{
+ if (!terminal->pvt->accessible_emit) {
+ return;
+ }
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `text-deleted'.\n");
+ g_signal_emit_by_name(terminal, "text-deleted");
+}
+
+/* Emit a "text-modified" signal. */
+static void
+vte_terminal_emit_text_modified(VteTerminal *terminal)
+{
+ if (!terminal->pvt->accessible_emit) {
+ return;
+ }
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `text-modified'.\n");
+ g_signal_emit_by_name(terminal, "text-modified");
+}
+
+/* Emit a "text-scrolled" signal. */
+static void
+vte_terminal_emit_text_scrolled(VteTerminal *terminal, gint delta)
+{
+ if (!terminal->pvt->accessible_emit) {
+ return;
+ }
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `text-scrolled'(%d).\n", delta);
+ g_signal_emit_by_name(terminal, "text-scrolled", delta);
+}
+
+/* Deselect anything which is selected and refresh the screen if needed. */
+static void
+vte_terminal_deselect_all(VteTerminal *terminal)
+{
+ if (terminal->pvt->has_selection) {
+ gint sx, sy, ex, ey;
+
+ _vte_debug_print(VTE_DEBUG_SELECTION,
+ "Deselecting all text.\n");
+
+ terminal->pvt->has_selection = FALSE;
+ /* Don't free the current selection, as we need to keep
+ * hold of it for async copying from the clipboard. */
+
+ vte_terminal_emit_selection_changed(terminal);
+
+ sx = terminal->pvt->selection_start.col;
+ sy = terminal->pvt->selection_start.row;
+ ex = terminal->pvt->selection_end.col;
+ ey = terminal->pvt->selection_end.row;
+ _vte_invalidate_region(terminal,
+ MIN (sx, ex), MAX (sx, ex),
+ MIN (sy, ey), MAX (sy, ey),
+ FALSE);
+ }
+}
+
+/* Remove a tabstop. */
+void
+_vte_terminal_clear_tabstop(VteTerminal *terminal, int column)
+{
+ g_assert(VTE_IS_TERMINAL(terminal));
+ if (terminal->pvt->tabstops != NULL) {
+ /* Remove a tab stop from the hash table. */
+ g_hash_table_remove(terminal->pvt->tabstops,
+ GINT_TO_POINTER(2 * column + 1));
+ }
+}
+
+/* Check if we have a tabstop at a given position. */
+gboolean
+_vte_terminal_get_tabstop(VteTerminal *terminal, int column)
+{
+ gpointer hash;
+ g_assert(VTE_IS_TERMINAL(terminal));
+ if (terminal->pvt->tabstops != NULL) {
+ hash = g_hash_table_lookup(terminal->pvt->tabstops,
+ GINT_TO_POINTER(2 * column + 1));
+ return (hash != NULL);
+ } else {
+ return FALSE;
+ }
+}
+
+/* Reset the set of tab stops to the default. */
+void
+_vte_terminal_set_tabstop(VteTerminal *terminal, int column)
+{
+ g_assert(VTE_IS_TERMINAL(terminal));
+ if (terminal->pvt->tabstops != NULL) {
+ /* Just set a non-NULL pointer for this column number. */
+ g_hash_table_insert(terminal->pvt->tabstops,
+ GINT_TO_POINTER(2 * column + 1),
+ terminal);
+ }
+}
+
+/* Reset the set of tab stops to the default. */
+static void
+vte_terminal_set_default_tabstops(VteTerminal *terminal)
+{
+ int i, width = 0;
+ if (terminal->pvt->tabstops != NULL) {
+ g_hash_table_destroy(terminal->pvt->tabstops);
+ }
+ terminal->pvt->tabstops = g_hash_table_new(NULL, NULL);
+ if (terminal->pvt->termcap != NULL) {
+ width = _vte_termcap_find_numeric(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ "it");
+ }
+ if (width == 0) {
+ width = VTE_TAB_WIDTH;
+ }
+ for (i = 0; i <= VTE_TAB_MAX; i += width) {
+ _vte_terminal_set_tabstop(terminal, i);
+ }
+}
+
+/* Clear the cache of the screen contents we keep. */
+static void
+vte_terminal_match_contents_clear(VteTerminal *terminal)
+{
+ g_assert(VTE_IS_TERMINAL(terminal));
+ if (terminal->pvt->match_contents != NULL) {
+ g_free(terminal->pvt->match_contents);
+ terminal->pvt->match_contents = NULL;
+ }
+ if (terminal->pvt->match_attributes != NULL) {
+ g_array_free(terminal->pvt->match_attributes, TRUE);
+ terminal->pvt->match_attributes = NULL;
+ }
+ vte_terminal_match_hilite_clear(terminal);
+}
+
+/* Refresh the cache of the screen contents we keep. */
+static gboolean
+always_selected(VteTerminal *terminal, glong column, glong row, gpointer data)
+{
+ return TRUE;
+}
+
+static void
+vte_terminal_match_contents_refresh(VteTerminal *terminal)
+{
+ GArray *array;
+ vte_terminal_match_contents_clear(terminal);
+ array = g_array_new(FALSE, TRUE, sizeof(struct _VteCharAttributes));
+ terminal->pvt->match_contents = vte_terminal_get_text(terminal,
+ always_selected,
+ NULL,
+ array);
+ terminal->pvt->match_attributes = array;
+}
+
+static void
+regex_match_clear_cursor (struct vte_match_regex *regex)
+{
+ switch (regex->cursor_mode) {
+ case VTE_REGEX_CURSOR_GDKCURSOR:
+ if (regex->cursor.cursor != NULL) {
+ gdk_cursor_unref(regex->cursor.cursor);
+ regex->cursor.cursor = NULL;
+ }
+ break;
+ case VTE_REGEX_CURSOR_GDKCURSORTYPE:
+ break;
+ case VTE_REGEX_CURSOR_NAME:
+ g_free (regex->cursor.cursor_name);
+ regex->cursor.cursor_name = NULL;
+ break;
+ default:
+ g_assert_not_reached ();
+ return;
+ }
+}
+
+static void
+regex_match_clear (struct vte_match_regex *regex)
+{
+ regex_match_clear_cursor(regex);
+
+ if (regex->mode == VTE_REGEX_GREGEX) {
+ g_regex_unref(regex->regex.gregex.regex);
+ regex->regex.gregex.regex = NULL;
+ } else if (regex->mode == VTE_REGEX_VTE) {
+ _vte_regex_free(regex->regex.reg);
+ regex->regex.reg = NULL;
+ }
+
+ regex->tag = -1;
+}
+
+static void
+vte_terminal_set_cursor_from_regex_match(VteTerminal *terminal, struct vte_match_regex *regex)
+{
+ GdkCursor *cursor = NULL;
+
+ if (! gtk_widget_get_realized (&terminal->widget))
+ return;
+
+ switch (regex->cursor_mode) {
+ case VTE_REGEX_CURSOR_GDKCURSOR:
+ if (regex->cursor.cursor != NULL) {
+ cursor = gdk_cursor_ref(regex->cursor.cursor);
+ }
+ break;
+ case VTE_REGEX_CURSOR_GDKCURSORTYPE:
+ cursor = gdk_cursor_new_for_display(gtk_widget_get_display(GTK_WIDGET(terminal)),
regex->cursor.cursor_type);
+ break;
+ case VTE_REGEX_CURSOR_NAME:
+ cursor = gdk_cursor_new_from_name(gtk_widget_get_display(GTK_WIDGET(terminal)),
regex->cursor.cursor_name);
+ break;
+ default:
+ g_assert_not_reached ();
+ return;
+ }
+
+ gdk_window_set_cursor (gtk_widget_get_window (&terminal->widget), cursor);
+
+ if (cursor)
+ gdk_cursor_unref(cursor);
+}
+
+/**
+ * vte_terminal_match_clear_all:
+ * @terminal: a #VteTerminal
+ *
+ * Clears the list of regular expressions the terminal uses to highlight text
+ * when the user moves the mouse cursor.
+ */
+void
+vte_terminal_match_clear_all(VteTerminal *terminal)
+{
+ struct vte_match_regex *regex;
+ guint i;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ for (i = 0; i < terminal->pvt->match_regexes->len; i++) {
+ regex = &g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ i);
+ /* Unless this is a hole, clean it up. */
+ if (regex->tag >= 0) {
+ regex_match_clear (regex);
+ }
+ }
+ g_array_set_size(terminal->pvt->match_regexes, 0);
+ vte_terminal_match_hilite_clear(terminal);
+}
+
+/**
+ * vte_terminal_match_remove:
+ * @terminal: a #VteTerminal
+ * @tag: the tag of the regex to remove
+ *
+ * Removes the regular expression which is associated with the given @tag from
+ * the list of expressions which the terminal will highlight when the user
+ * moves the mouse cursor over matching text.
+ */
+void
+vte_terminal_match_remove(VteTerminal *terminal, int tag)
+{
+ struct vte_match_regex *regex;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ if (terminal->pvt->match_regexes->len > (guint)tag) {
+ /* The tag is an index, so find the corresponding struct. */
+ regex = &g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ tag);
+ /* If it's already been removed, return. */
+ if (regex->tag < 0) {
+ return;
+ }
+ /* Remove this item and leave a hole in its place. */
+ regex_match_clear (regex);
+ }
+ vte_terminal_match_hilite_clear(terminal);
+}
+
+static GdkCursor *
+vte_terminal_cursor_new(VteTerminal *terminal, GdkCursorType cursor_type)
+{
+ GdkDisplay *display;
+ GdkCursor *cursor;
+
+ display = gtk_widget_get_display(&terminal->widget);
+ cursor = gdk_cursor_new_for_display(display, cursor_type);
+ return cursor;
+}
+
+/**
+ * vte_terminal_match_add:
+ * @terminal: a #VteTerminal
+ * @match: a regular expression
+ *
+ * Adds a regular expression to the list of matching expressions. When the
+ * user moves the mouse cursor over a section of displayed text which matches
+ * this expression, the text will be highlighted.
+ *
+ * Returns: an integer associated with this expression
+ *
+ * Deprecated: 0.17.1: Use vte_terminal_match_add_gregex() instead
+ */
+int
+vte_terminal_match_add(VteTerminal *terminal, const char *match)
+{
+ struct vte_match_regex new_regex, *regex;
+ guint ret;
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+ g_return_val_if_fail(terminal->pvt->match_regex_mode != VTE_REGEX_GREGEX, -1);
+ g_return_val_if_fail(match != NULL, -1);
+ g_return_val_if_fail(strlen(match) > 0, -1);
+
+ terminal->pvt->match_regex_mode = VTE_REGEX_VTE;
+
+ memset(&new_regex, 0, sizeof(new_regex));
+ new_regex.mode = VTE_REGEX_VTE;
+ new_regex.regex.reg = _vte_regex_compile(match);
+ if (new_regex.regex.reg == NULL) {
+ g_warning(_("Error compiling regular expression \"%s\"."),
+ match);
+ return -1;
+ }
+
+ /* Search for a hole. */
+ for (ret = 0; ret < terminal->pvt->match_regexes->len; ret++) {
+ regex = &g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ ret);
+ if (regex->tag == -1) {
+ break;
+ }
+ }
+ /* Set the tag to the insertion point. */
+ new_regex.tag = ret;
+ new_regex.cursor_mode = VTE_REGEX_CURSOR_GDKCURSORTYPE;
+ new_regex.cursor.cursor_type = VTE_DEFAULT_CURSOR;
+ if (ret < terminal->pvt->match_regexes->len) {
+ /* Overwrite. */
+ g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ ret) = new_regex;
+ } else {
+ /* Append. */
+ g_array_append_val(terminal->pvt->match_regexes, new_regex);
+ }
+ return new_regex.tag;
+}
+
+/**
+ * vte_terminal_match_add_gregex:
+ * @terminal: a #VteTerminal
+ * @regex: a #GRegex
+ * @flags: the #GRegexMatchFlags to use when matching the regex
+ *
+ * Adds the regular expression @regex to the list of matching expressions. When the
+ * user moves the mouse cursor over a section of displayed text which matches
+ * this expression, the text will be highlighted.
+ *
+ * Returns: an integer associated with this expression
+ *
+ * Since: 0.17.1
+ */
+int
+vte_terminal_match_add_gregex(VteTerminal *terminal, GRegex *regex, GRegexMatchFlags flags)
+{
+ VteTerminalPrivate *pvt;
+ struct vte_match_regex new_regex_match, *regex_match;
+ guint ret, len;
+
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+ g_return_val_if_fail(terminal->pvt->match_regex_mode != VTE_REGEX_VTE, -1);
+ g_return_val_if_fail(regex != NULL, -1);
+
+ pvt = terminal->pvt;
+ pvt->match_regex_mode = VTE_REGEX_GREGEX;
+
+ /* Search for a hole. */
+ len = pvt->match_regexes->len;
+ for (ret = 0; ret < len; ret++) {
+ regex_match = &g_array_index(pvt->match_regexes,
+ struct vte_match_regex,
+ ret);
+ if (regex_match->tag == -1) {
+ break;
+ }
+ }
+
+ /* Set the tag to the insertion point. */
+ new_regex_match.mode = VTE_REGEX_GREGEX;
+ new_regex_match.regex.gregex.regex = g_regex_ref(regex);
+ new_regex_match.regex.gregex.flags = flags;
+ new_regex_match.tag = ret;
+ new_regex_match.cursor_mode = VTE_REGEX_CURSOR_GDKCURSORTYPE;
+ new_regex_match.cursor.cursor_type = VTE_DEFAULT_CURSOR;
+ if (ret < pvt->match_regexes->len) {
+ /* Overwrite. */
+ g_array_index(pvt->match_regexes,
+ struct vte_match_regex,
+ ret) = new_regex_match;
+ } else {
+ /* Append. */
+ g_array_append_val(pvt->match_regexes, new_regex_match);
+ }
+
+ return new_regex_match.tag;
+}
+
+/**
+ * vte_terminal_match_set_cursor:
+ * @terminal: a #VteTerminal
+ * @tag: the tag of the regex which should use the specified cursor
+ * @cursor: (allow-none): the #GdkCursor which the terminal should use when the pattern is
+ * highlighted, or %NULL to use the standard cursor
+ *
+ * Sets which cursor the terminal will use if the pointer is over the pattern
+ * specified by @tag. The terminal keeps a reference to @cursor.
+ *
+ * Since: 0.11
+ *
+ */
+void
+vte_terminal_match_set_cursor(VteTerminal *terminal, int tag, GdkCursor *cursor)
+{
+ struct vte_match_regex *regex;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail((guint) tag < terminal->pvt->match_regexes->len);
+ regex = &g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ tag);
+ regex_match_clear_cursor(regex);
+ regex->cursor_mode = VTE_REGEX_CURSOR_GDKCURSOR;
+ regex->cursor.cursor = cursor ? gdk_cursor_ref(cursor) : NULL;
+ vte_terminal_match_hilite_clear(terminal);
+}
+
+/**
+ * vte_terminal_match_set_cursor_type:
+ * @terminal: a #VteTerminal
+ * @tag: the tag of the regex which should use the specified cursor
+ * @cursor_type: a #GdkCursorType
+ *
+ * Sets which cursor the terminal will use if the pointer is over the pattern
+ * specified by @tag.
+ *
+ * Since: 0.11.9
+ *
+ */
+void
+vte_terminal_match_set_cursor_type(VteTerminal *terminal,
+ int tag, GdkCursorType cursor_type)
+{
+ struct vte_match_regex *regex;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail((guint) tag < terminal->pvt->match_regexes->len);
+ regex = &g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ tag);
+ regex_match_clear_cursor(regex);
+ regex->cursor_mode = VTE_REGEX_CURSOR_GDKCURSORTYPE;
+ regex->cursor.cursor_type = cursor_type;
+ vte_terminal_match_hilite_clear(terminal);
+}
+
+/**
+ * vte_terminal_match_set_cursor_name:
+ * @terminal: a #VteTerminal
+ * @tag: the tag of the regex which should use the specified cursor
+ * @cursor_name: the name of the cursor
+ *
+ * Sets which cursor the terminal will use if the pointer is over the pattern
+ * specified by @tag.
+ *
+ * Since: 0.17.1
+ *
+ */
+void
+vte_terminal_match_set_cursor_name(VteTerminal *terminal,
+ int tag, const char *cursor_name)
+{
+ struct vte_match_regex *regex;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(cursor_name != NULL);
+ g_return_if_fail((guint) tag < terminal->pvt->match_regexes->len);
+ regex = &g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ tag);
+ regex_match_clear_cursor(regex);
+ regex->cursor_mode = VTE_REGEX_CURSOR_NAME;
+ regex->cursor.cursor_name = g_strdup (cursor_name);
+ vte_terminal_match_hilite_clear(terminal);
+}
+
+/* Check if a given cell on the screen contains part of a matched string. If
+ * it does, return the string, and store the match tag in the optional tag
+ * argument. */
+static char *
+vte_terminal_match_check_internal_vte(VteTerminal *terminal,
+ long column, glong row,
+ int *tag, int *start, int *end)
+{
+ struct _vte_regex_match matches[256];
+ guint i, j;
+ gint k;
+ gint start_blank, end_blank;
+ int ret, offset;
+ struct vte_match_regex *regex = NULL;
+ struct _VteCharAttributes *attr = NULL;
+ gssize sattr, eattr;
+ gchar *line, eol;
+
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Checking for match at (%ld,%ld).\n", row, column);
+ *tag = -1;
+ if (start != NULL) {
+ *start = 0;
+ }
+ if (end != NULL) {
+ *end = 0;
+ }
+ /* Map the pointer position to a portion of the string. */
+ eattr = terminal->pvt->match_attributes->len;
+ for (offset = eattr; offset--; ) {
+ attr = &g_array_index(terminal->pvt->match_attributes,
+ struct _VteCharAttributes,
+ offset);
+ if (row < attr->row) {
+ eattr = offset;
+ }
+ if (row == attr->row &&
+ column == attr->column &&
+ terminal->pvt->match_contents[offset] != ' ') {
+ break;
+ }
+ }
+
+ _VTE_DEBUG_IF(VTE_DEBUG_EVENTS) {
+ if (offset < 0)
+ g_printerr("Cursor is not on a character.\n");
+ else
+ g_printerr("Cursor is on character '%c' at %d.\n",
+ g_utf8_get_char (terminal->pvt->match_contents + offset),
+ offset);
+ }
+
+ /* If the pointer isn't on a matchable character, bug out. */
+ if (offset < 0) {
+ return NULL;
+ }
+
+ /* If the pointer is on a newline, bug out. */
+ if ((g_ascii_isspace(terminal->pvt->match_contents[offset])) ||
+ (terminal->pvt->match_contents[offset] == '\0')) {
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Cursor is on whitespace.\n");
+ return NULL;
+ }
+
+ /* Snip off any final newlines. */
+ while (terminal->pvt->match_contents[eattr] == '\n' ||
+ terminal->pvt->match_contents[eattr] == '\0') {
+ eattr--;
+ }
+ /* and scan forwards to find the end of this line */
+ while (!(terminal->pvt->match_contents[eattr] == '\n' ||
+ terminal->pvt->match_contents[eattr] == '\0')) {
+ eattr++;
+ }
+
+ /* find the start of row */
+ if (row == 0) {
+ sattr = 0;
+ } else {
+ for (sattr = offset; sattr > 0; sattr--) {
+ attr = &g_array_index(terminal->pvt->match_attributes,
+ struct _VteCharAttributes,
+ sattr);
+ if (row > attr->row) {
+ break;
+ }
+ }
+ }
+ /* Scan backwards to find the start of this line */
+ while (sattr > 0 &&
+ ! (terminal->pvt->match_contents[sattr] == '\n' ||
+ terminal->pvt->match_contents[sattr] == '\0')) {
+ sattr--;
+ }
+ /* and skip any initial newlines. */
+ while (terminal->pvt->match_contents[sattr] == '\n' ||
+ terminal->pvt->match_contents[sattr] == '\0') {
+ sattr++;
+ }
+ if (eattr <= sattr) { /* blank line */
+ return NULL;
+ }
+ if (eattr <= offset || sattr > offset) {
+ /* nothing to match on this line */
+ return NULL;
+ }
+ offset -= sattr;
+ eattr -= sattr;
+
+ /* temporarily shorten the contents to this row */
+ line = terminal->pvt->match_contents + sattr;
+ eol = line[eattr];
+ line[eattr] = '\0';
+
+ start_blank = 0;
+ end_blank = eattr;
+
+ /* Now iterate over each regex we need to match against. */
+ for (i = 0; i < terminal->pvt->match_regexes->len; i++) {
+ regex = &g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ i);
+ /* Skip holes. */
+ if (regex->tag < 0) {
+ continue;
+ }
+ /* We'll only match the first item in the buffer which
+ * matches, so we'll have to skip each match until we
+ * stop getting matches. */
+ k = 0;
+ ret = _vte_regex_exec(regex->regex.reg,
+ line + k,
+ G_N_ELEMENTS(matches),
+ matches);
+ while (ret == 0) {
+ gint ko = offset - k;
+ gint sblank=G_MININT, eblank=G_MAXINT;
+ for (j = 0;
+ j < G_N_ELEMENTS(matches) &&
+ matches[j].rm_so != -1;
+ j++) {
+ /* The offsets should be "sane". */
+ g_assert(matches[j].rm_so + k < eattr);
+ g_assert(matches[j].rm_eo + k <= eattr);
+ _VTE_DEBUG_IF(VTE_DEBUG_MISC) {
+ gchar *match;
+ struct _VteCharAttributes *_sattr, *_eattr;
+ match = g_strndup(line + matches[j].rm_so + k,
+ matches[j].rm_eo - matches[j].rm_so);
+ _sattr = &g_array_index(terminal->pvt->match_attributes,
+ struct _VteCharAttributes,
+ matches[j].rm_so + k);
+ _eattr = &g_array_index(terminal->pvt->match_attributes,
+ struct _VteCharAttributes,
+ matches[j].rm_eo + k - 1);
+ g_printerr("Match %u `%s' from %d(%ld,%ld) to %d(%ld,%ld) (%d).\n",
+ j, match,
+ matches[j].rm_so + k,
+ _sattr->column,
+ _sattr->row,
+ matches[j].rm_eo + k - 1,
+ _eattr->column,
+ _eattr->row,
+ offset);
+ g_free(match);
+
+ }
+ /* If the pointer is in this substring,
+ * then we're done. */
+ if (ko >= matches[j].rm_so &&
+ ko < matches[j].rm_eo) {
+ gchar *result;
+ if (tag != NULL) {
+ *tag = regex->tag;
+ }
+ if (start != NULL) {
+ *start = sattr + k + matches[j].rm_so;
+ }
+ if (end != NULL) {
+ *end = sattr + k + matches[j].rm_eo - 1;
+ }
+ vte_terminal_set_cursor_from_regex_match(terminal, regex);
+ result = g_strndup(line + k + matches[j].rm_so,
+ matches[j].rm_eo - matches[j].rm_so);
+ line[eattr] = eol;
+ return result;
+ }
+ if (ko > matches[j].rm_eo &&
+ matches[j].rm_eo > sblank) {
+ sblank = matches[j].rm_eo;
+ }
+ if (ko < matches[j].rm_so &&
+ matches[j].rm_so < eblank) {
+ eblank = matches[j].rm_so;
+ }
+ }
+ if (k + sblank > start_blank) {
+ start_blank = k + sblank;
+ }
+ if (k + eblank < end_blank) {
+ end_blank = k + eblank;
+ }
+ /* Skip past the beginning of this match to
+ * look for more. */
+ k += matches[0].rm_so + 1;
+ if (k > offset) {
+ break;
+ }
+ ret = _vte_regex_exec(regex->regex.reg,
+ line + k,
+ G_N_ELEMENTS(matches),
+ matches);
+ }
+ }
+ line[eattr] = eol;
+ if (start != NULL) {
+ *start = sattr + start_blank;
+ }
+ if (end != NULL) {
+ *end = sattr + end_blank;
+ }
+ return NULL;
+}
+
+/* Check if a given cell on the screen contains part of a matched string. If
+ * it does, return the string, and store the match tag in the optional tag
+ * argument. */
+static char *
+vte_terminal_match_check_internal_gregex(VteTerminal *terminal,
+ long column, glong row,
+ int *tag, int *start, int *end)
+{
+ gint start_blank, end_blank;
+ guint i;
+ int offset;
+ struct vte_match_regex *regex = NULL;
+ struct _VteCharAttributes *attr = NULL;
+ gssize sattr, eattr;
+ gchar *line, eol;
+ GMatchInfo *match_info;
+
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Checking for gregex match at (%ld,%ld).\n", row, column);
+ *tag = -1;
+ if (start != NULL) {
+ *start = 0;
+ }
+ if (end != NULL) {
+ *end = 0;
+ }
+ /* Map the pointer position to a portion of the string. */
+ eattr = terminal->pvt->match_attributes->len;
+ for (offset = eattr; offset--; ) {
+ attr = &g_array_index(terminal->pvt->match_attributes,
+ struct _VteCharAttributes,
+ offset);
+ if (row < attr->row) {
+ eattr = offset;
+ }
+ if (row == attr->row &&
+ column == attr->column &&
+ terminal->pvt->match_contents[offset] != ' ') {
+ break;
+ }
+ }
+
+ _VTE_DEBUG_IF(VTE_DEBUG_EVENTS) {
+ if (offset < 0)
+ g_printerr("Cursor is not on a character.\n");
+ else
+ g_printerr("Cursor is on character '%c' at %d.\n",
+ g_utf8_get_char (terminal->pvt->match_contents + offset),
+ offset);
+ }
+
+ /* If the pointer isn't on a matchable character, bug out. */
+ if (offset < 0) {
+ return NULL;
+ }
+
+ /* If the pointer is on a newline, bug out. */
+ if ((g_ascii_isspace(terminal->pvt->match_contents[offset])) ||
+ (terminal->pvt->match_contents[offset] == '\0')) {
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Cursor is on whitespace.\n");
+ return NULL;
+ }
+
+ /* Snip off any final newlines. */
+ while (terminal->pvt->match_contents[eattr] == '\n' ||
+ terminal->pvt->match_contents[eattr] == '\0') {
+ eattr--;
+ }
+ /* and scan forwards to find the end of this line */
+ while (!(terminal->pvt->match_contents[eattr] == '\n' ||
+ terminal->pvt->match_contents[eattr] == '\0')) {
+ eattr++;
+ }
+
+ /* find the start of row */
+ if (row == 0) {
+ sattr = 0;
+ } else {
+ for (sattr = offset; sattr > 0; sattr--) {
+ attr = &g_array_index(terminal->pvt->match_attributes,
+ struct _VteCharAttributes,
+ sattr);
+ if (row > attr->row) {
+ break;
+ }
+ }
+ }
+ /* Scan backwards to find the start of this line */
+ while (sattr > 0 &&
+ ! (terminal->pvt->match_contents[sattr] == '\n' ||
+ terminal->pvt->match_contents[sattr] == '\0')) {
+ sattr--;
+ }
+ /* and skip any initial newlines. */
+ while (terminal->pvt->match_contents[sattr] == '\n' ||
+ terminal->pvt->match_contents[sattr] == '\0') {
+ sattr++;
+ }
+ if (eattr <= sattr) { /* blank line */
+ return NULL;
+ }
+ if (eattr <= offset || sattr > offset) {
+ /* nothing to match on this line */
+ return NULL;
+ }
+ offset -= sattr;
+ eattr -= sattr;
+
+ /* temporarily shorten the contents to this row */
+ line = terminal->pvt->match_contents + sattr;
+ eol = line[eattr];
+ line[eattr] = '\0';
+
+ start_blank = 0;
+ end_blank = eattr;
+
+ /* Now iterate over each regex we need to match against. */
+ for (i = 0; i < terminal->pvt->match_regexes->len; i++) {
+ regex = &g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ i);
+ /* Skip holes. */
+ if (regex->tag < 0) {
+ continue;
+ }
+ /* We'll only match the first item in the buffer which
+ * matches, so we'll have to skip each match until we
+ * stop getting matches. */
+ if (!g_regex_match_full(regex->regex.gregex.regex,
+ line, -1, 0,
+ regex->regex.gregex.flags,
+ &match_info,
+ NULL)) {
+ g_match_info_free(match_info);
+ continue;
+ }
+
+ while (g_match_info_matches(match_info)) {
+ gint ko = offset;
+ gint sblank=G_MININT, eblank=G_MAXINT;
+ gint rm_so, rm_eo;
+
+ if (g_match_info_fetch_pos (match_info, 0, &rm_so, &rm_eo)) {
+ /* The offsets should be "sane". */
+ g_assert(rm_so < eattr);
+ g_assert(rm_eo <= eattr);
+ _VTE_DEBUG_IF(VTE_DEBUG_MISC) {
+ gchar *match;
+ struct _VteCharAttributes *_sattr, *_eattr;
+ match = g_strndup(line + rm_so, rm_eo - rm_so);
+ _sattr = &g_array_index(terminal->pvt->match_attributes,
+ struct _VteCharAttributes,
+ rm_so);
+ _eattr = &g_array_index(terminal->pvt->match_attributes,
+ struct _VteCharAttributes,
+ rm_eo - 1);
+ g_printerr("Match `%s' from %d(%ld,%ld) to %d(%ld,%ld) (%d).\n",
+ match,
+ rm_so,
+ _sattr->column,
+ _sattr->row,
+ rm_eo - 1,
+ _eattr->column,
+ _eattr->row,
+ offset);
+ g_free(match);
+
+ }
+ /* If the pointer is in this substring,
+ * then we're done. */
+ if (ko >= rm_so &&
+ ko < rm_eo) {
+ gchar *result;
+ if (tag != NULL) {
+ *tag = regex->tag;
+ }
+ if (start != NULL) {
+ *start = sattr + rm_so;
+ }
+ if (end != NULL) {
+ *end = sattr + rm_eo - 1;
+ }
+ vte_terminal_set_cursor_from_regex_match(terminal, regex);
+ result = g_match_info_fetch(match_info, 0);
+ line[eattr] = eol;
+
+ g_match_info_free(match_info);
+ return result;
+ }
+ if (ko > rm_eo &&
+ rm_eo > sblank) {
+ sblank = rm_eo;
+ }
+ if (ko < rm_so &&
+ rm_so < eblank) {
+ eblank = rm_so;
+ }
+ }
+ if (sblank > start_blank) {
+ start_blank = sblank;
+ }
+ if (eblank < end_blank) {
+ end_blank = eblank;
+ }
+
+ g_match_info_next(match_info, NULL);
+ }
+
+ g_match_info_free(match_info);
+ }
+ line[eattr] = eol;
+ if (start != NULL) {
+ *start = sattr + start_blank;
+ }
+ if (end != NULL) {
+ *end = sattr + end_blank;
+ }
+ return NULL;
+}
+
+static char *
+vte_terminal_match_check_internal(VteTerminal *terminal,
+ long column, glong row,
+ int *tag, int *start, int *end)
+{
+ if (terminal->pvt->match_contents == NULL) {
+ vte_terminal_match_contents_refresh(terminal);
+ }
+
+ if (terminal->pvt->match_regex_mode == VTE_REGEX_GREGEX)
+ return vte_terminal_match_check_internal_gregex(terminal, column, row, tag, start, end);
+ if (terminal->pvt->match_regex_mode == VTE_REGEX_VTE)
+ return vte_terminal_match_check_internal_vte(terminal, column, row, tag, start, end);
+ return NULL;
+}
+
+static gboolean
+rowcol_inside_match (VteTerminal *terminal, glong row, glong col)
+{
+ if (terminal->pvt->match_start.row == terminal->pvt->match_end.row) {
+ return row == terminal->pvt->match_start.row &&
+ col >= terminal->pvt->match_start.col &&
+ col <= terminal->pvt->match_end.col;
+ } else {
+ if (row < terminal->pvt->match_start.row ||
+ row > terminal->pvt->match_end.row) {
+ return FALSE;
+ }
+ if (row == terminal->pvt->match_start.row) {
+ return col >= terminal->pvt->match_start.col;
+ }
+ if (row == terminal->pvt->match_end.row) {
+ return col <= terminal->pvt->match_end.col;
+ }
+ return TRUE;
+ }
+}
+
+/**
+ * vte_terminal_match_check:
+ * @terminal: a #VteTerminal
+ * @column: the text column
+ * @row: the text row
+ * @tag: (out) (allow-none): a location to store the tag, or %NULL
+ *
+ * Checks if the text in and around the specified position matches any of the
+ * regular expressions previously set using vte_terminal_match_add(). If a
+ * match exists, the text string is returned and if @tag is not %NULL, the number
+ * associated with the matched regular expression will be stored in @tag.
+ *
+ * If more than one regular expression has been set with
+ * vte_terminal_match_add(), then expressions are checked in the order in
+ * which they were added.
+ *
+ * Returns: (transfer full): a newly allocated string which matches one of the previously
+ * set regular expressions
+ */
+char *
+vte_terminal_match_check(VteTerminal *terminal, glong column, glong row,
+ int *tag)
+{
+ long delta;
+ char *ret;
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ delta = terminal->pvt->screen->scroll_delta;
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Checking for match at (%ld,%ld).\n",
+ row, column);
+ if (rowcol_inside_match (terminal, row + delta, column)) {
+ if (tag) {
+ *tag = terminal->pvt->match_tag;
+ }
+ ret = terminal->pvt->match != NULL ?
+ g_strdup (terminal->pvt->match) :
+ NULL;
+ } else {
+ ret = vte_terminal_match_check_internal(terminal,
+ column, row + delta,
+ tag, NULL, NULL);
+ }
+ _VTE_DEBUG_IF(VTE_DEBUG_EVENTS) {
+ if (ret != NULL) g_printerr("Matched `%s'.\n", ret);
+ }
+ return ret;
+}
+
+/* Emit an adjustment changed signal on our adjustment object. */
+static void
+vte_terminal_emit_adjustment_changed(VteTerminal *terminal)
+{
+ if (terminal->pvt->adjustment_changed_pending) {
+ VteScreen *screen = terminal->pvt->screen;
+ gboolean changed = FALSE;
+ glong v;
+ gdouble current;
+
+ g_object_freeze_notify (G_OBJECT (terminal->adjustment));
+
+ v = _vte_ring_delta (screen->row_data);
+ current = gtk_adjustment_get_lower(terminal->adjustment);
+ if (current != v) {
+ _vte_debug_print(VTE_DEBUG_ADJ,
+ "Changing lower bound from %.0f to %ld\n",
+ current, v);
+ gtk_adjustment_set_lower(terminal->adjustment, v);
+ changed = TRUE;
+ }
+
+ /* The upper value is the number of rows which might be visible. (Add
+ * one to the cursor offset because it's zero-based.) */
+ v = MAX(_vte_ring_next(screen->row_data),
+ screen->cursor_current.row + 1);
+ current = gtk_adjustment_get_upper(terminal->adjustment);
+ if (current != v) {
+ _vte_debug_print(VTE_DEBUG_ADJ,
+ "Changing upper bound from %.0f to %ld\n",
+ current, v);
+ gtk_adjustment_set_upper(terminal->adjustment, v);
+ changed = TRUE;
+ }
+
+ g_object_thaw_notify (G_OBJECT (terminal->adjustment));
+
+ if (changed)
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting adjustment_changed.\n");
+ terminal->pvt->adjustment_changed_pending = FALSE;
+ }
+ if (terminal->pvt->adjustment_value_changed_pending) {
+ glong v, delta;
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting adjustment_value_changed.\n");
+ terminal->pvt->adjustment_value_changed_pending = FALSE;
+ v = round (gtk_adjustment_get_value(terminal->adjustment));
+ if (v != terminal->pvt->screen->scroll_delta) {
+ /* this little dance is so that the scroll_delta is
+ * updated immediately, but we still handled scrolling
+ * via the adjustment - e.g. user interaction with the
+ * scrollbar
+ */
+ delta = terminal->pvt->screen->scroll_delta;
+ terminal->pvt->screen->scroll_delta = v;
+ gtk_adjustment_set_value(terminal->adjustment, delta);
+ }
+ }
+}
+
+/* Queue an adjustment-changed signal to be delivered when convenient. */
+static inline void
+vte_terminal_queue_adjustment_changed(VteTerminal *terminal)
+{
+ terminal->pvt->adjustment_changed_pending = TRUE;
+ add_update_timeout (terminal);
+}
+
+static void
+vte_terminal_queue_adjustment_value_changed(VteTerminal *terminal, glong v)
+{
+ if (v != terminal->pvt->screen->scroll_delta) {
+ terminal->pvt->screen->scroll_delta = v;
+ terminal->pvt->adjustment_value_changed_pending = TRUE;
+ add_update_timeout (terminal);
+ }
+}
+
+static void
+vte_terminal_queue_adjustment_value_changed_clamped(VteTerminal *terminal, glong v)
+{
+ gdouble lower, upper;
+
+ lower = gtk_adjustment_get_lower(terminal->adjustment);
+ upper = gtk_adjustment_get_upper(terminal->adjustment);
+
+ v = CLAMP(v, lower, MAX (lower, upper - terminal->row_count));
+
+ vte_terminal_queue_adjustment_value_changed (terminal, v);
+}
+
+
+void
+_vte_terminal_adjust_adjustments(VteTerminal *terminal)
+{
+ VteScreen *screen;
+ long delta;
+
+ g_assert(terminal->pvt->screen != NULL);
+ g_assert(terminal->pvt->screen->row_data != NULL);
+
+ vte_terminal_queue_adjustment_changed(terminal);
+
+ /* The lower value should be the first row in the buffer. */
+ screen = terminal->pvt->screen;
+ delta = _vte_ring_delta(screen->row_data);
+ /* Snap the insert delta and the cursor position to be in the visible
+ * area. Leave the scrolling delta alone because it will be updated
+ * when the adjustment changes. */
+ screen->insert_delta = MAX(screen->insert_delta, delta);
+ screen->cursor_current.row = MAX(screen->cursor_current.row,
+ screen->insert_delta);
+
+ if (screen->scroll_delta > screen->insert_delta) {
+ vte_terminal_queue_adjustment_value_changed(terminal,
+ screen->insert_delta);
+ }
+}
+
+/* Update the adjustment field of the widget. This function should be called
+ * whenever we add rows to or remove rows from the history or switch screens. */
+static void
+_vte_terminal_adjust_adjustments_full (VteTerminal *terminal)
+{
+ gboolean changed = FALSE;
+ gdouble v;
+
+ g_assert(terminal->pvt->screen != NULL);
+ g_assert(terminal->pvt->screen->row_data != NULL);
+
+ _vte_terminal_adjust_adjustments(terminal);
+
+ g_object_freeze_notify(G_OBJECT(terminal->adjustment));
+
+ /* The step increment should always be one. */
+ v = gtk_adjustment_get_step_increment(terminal->adjustment);
+ if (v != 1) {
+ _vte_debug_print(VTE_DEBUG_ADJ,
+ "Changing step increment from %.0lf to %ld\n",
+ v, terminal->row_count);
+ gtk_adjustment_set_step_increment(terminal->adjustment, 1);
+ changed = TRUE;
+ }
+
+ /* Set the number of rows the user sees to the number of rows the
+ * user sees. */
+ v = gtk_adjustment_get_page_size(terminal->adjustment);
+ if (v != terminal->row_count) {
+ _vte_debug_print(VTE_DEBUG_ADJ,
+ "Changing page size from %.0f to %ld\n",
+ v, terminal->row_count);
+ gtk_adjustment_set_page_size(terminal->adjustment,
+ terminal->row_count);
+ changed = TRUE;
+ }
+
+ /* Clicking in the empty area should scroll one screen, so set the
+ * page size to the number of visible rows. */
+ v = gtk_adjustment_get_page_increment(terminal->adjustment);
+ if (v != terminal->row_count) {
+ _vte_debug_print(VTE_DEBUG_ADJ,
+ "Changing page increment from "
+ "%.0f to %ld\n",
+ v, terminal->row_count);
+ gtk_adjustment_set_page_increment(terminal->adjustment,
+ terminal->row_count);
+ changed = TRUE;
+ }
+
+ g_object_thaw_notify(G_OBJECT(terminal->adjustment));
+
+ if (changed)
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting adjustment_changed.\n");
+}
+
+/* Scroll a fixed number of lines up or down in the current screen. */
+static void
+vte_terminal_scroll_lines(VteTerminal *terminal, gint lines)
+{
+ glong destination;
+ _vte_debug_print(VTE_DEBUG_ADJ, "Scrolling %d lines.\n", lines);
+ /* Calculate the ideal position where we want to be before clamping. */
+ destination = terminal->pvt->screen->scroll_delta;
+ destination += lines;
+ /* Tell the scrollbar to adjust itself. */
+ vte_terminal_queue_adjustment_value_changed_clamped (terminal, destination);
+}
+
+/* Scroll a fixed number of pages up or down, in the current screen. */
+static void
+vte_terminal_scroll_pages(VteTerminal *terminal, gint pages)
+{
+ vte_terminal_scroll_lines(terminal, pages * terminal->row_count);
+}
+
+/* Scroll so that the scroll delta is the minimum value. */
+static void
+vte_terminal_maybe_scroll_to_top(VteTerminal *terminal)
+{
+ vte_terminal_queue_adjustment_value_changed (terminal,
+ _vte_ring_delta(terminal->pvt->screen->row_data));
+}
+
+static void
+vte_terminal_maybe_scroll_to_bottom(VteTerminal *terminal)
+{
+ glong delta;
+ delta = terminal->pvt->screen->insert_delta;
+ vte_terminal_queue_adjustment_value_changed (terminal, delta);
+ _vte_debug_print(VTE_DEBUG_ADJ,
+ "Snapping to bottom of screen\n");
+}
+
+static void
+_vte_terminal_setup_utf8 (VteTerminal *terminal)
+{
+ VteTerminalPrivate *pvt = terminal->pvt;
+ GError *error = NULL;
+
+ if (!vte_pty_set_utf8(pvt->pty,
+ strcmp(terminal->pvt->encoding, "UTF-8") == 0,
+ &error)) {
+ g_warning ("Failed to set UTF8 mode: %s\n", error->message);
+ g_error_free (error);
+ }
+}
+
+/**
+ * vte_terminal_set_encoding:
+ * @terminal: a #VteTerminal
+ * @codeset: (allow-none): a valid #GIConv target, or %NULL to use the default encoding
+ *
+ * Changes the encoding the terminal will expect data from the child to
+ * be encoded with. For certain terminal types, applications executing in the
+ * terminal can change the encoding. The default encoding is defined by the
+ * application's locale settings.
+ */
+void
+vte_terminal_set_encoding(VteTerminal *terminal, const char *codeset)
+{
+ VteTerminalPrivate *pvt;
+ GObject *object;
+ const char *old_codeset;
+ VteConv conv;
+ char *obuf1, *obuf2;
+ gsize bytes_written;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ object = G_OBJECT(terminal);
+ pvt = terminal->pvt;
+
+ old_codeset = pvt->encoding;
+ if (codeset == NULL) {
+ g_get_charset(&codeset);
+ }
+ if ((old_codeset != NULL) && (strcmp(codeset, old_codeset) == 0)) {
+ /* Nothing to do! */
+ return;
+ }
+
+ g_object_freeze_notify(object);
+
+ /* Open new conversions. */
+ conv = _vte_conv_open(codeset, "UTF-8");
+ if (conv == VTE_INVALID_CONV) {
+ g_warning(_("Unable to convert characters from %s to %s."),
+ "UTF-8", codeset);
+ /* fallback to no conversion */
+ conv = _vte_conv_open(codeset = "UTF-8", "UTF-8");
+ }
+ if (terminal->pvt->outgoing_conv != VTE_INVALID_CONV) {
+ _vte_conv_close(terminal->pvt->outgoing_conv);
+ }
+ terminal->pvt->outgoing_conv = conv;
+
+ /* Set the terminal's encoding to the new value. */
+ terminal->pvt->encoding = g_intern_string(codeset);
+
+ /* Convert any buffered output bytes. */
+ if ((_vte_buffer_length(terminal->pvt->outgoing) > 0) &&
+ (old_codeset != NULL)) {
+ /* Convert back to UTF-8. */
+ obuf1 = g_convert((gchar *)terminal->pvt->outgoing->data,
+ _vte_buffer_length(terminal->pvt->outgoing),
+ "UTF-8",
+ old_codeset,
+ NULL,
+ &bytes_written,
+ NULL);
+ if (obuf1 != NULL) {
+ /* Convert to the new encoding. */
+ obuf2 = g_convert(obuf1,
+ bytes_written,
+ codeset,
+ "UTF-8",
+ NULL,
+ &bytes_written,
+ NULL);
+ if (obuf2 != NULL) {
+ _vte_buffer_clear(terminal->pvt->outgoing);
+ _vte_buffer_append(terminal->pvt->outgoing,
+ obuf2, bytes_written);
+ g_free(obuf2);
+ }
+ g_free(obuf1);
+ }
+ }
+
+ /* Set the encoding for incoming text. */
+ _vte_iso2022_state_set_codeset(terminal->pvt->iso2022,
+ terminal->pvt->encoding);
+
+ _vte_debug_print(VTE_DEBUG_IO,
+ "Set terminal encoding to `%s'.\n",
+ terminal->pvt->encoding);
+ vte_terminal_emit_encoding_changed(terminal);
+
+ g_object_thaw_notify(object);
+}
+
+/**
+ * vte_terminal_get_encoding:
+ * @terminal: a #VteTerminal
+ *
+ * Determines the name of the encoding in which the terminal expects data to be
+ * encoded.
+ *
+ * Returns: (transfer none): the current encoding for the terminal
+ */
+const char *
+vte_terminal_get_encoding(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ return terminal->pvt->encoding;
+}
+
+static inline VteRowData *
+vte_terminal_insert_rows (VteTerminal *terminal, guint cnt)
+{
+ VteRowData *row;
+ do {
+ row = _vte_terminal_ring_append (terminal, FALSE);
+ } while(--cnt);
+ return row;
+}
+
+
+/* Make sure we have enough rows and columns to hold data at the current
+ * cursor position. */
+VteRowData *
+_vte_terminal_ensure_row (VteTerminal *terminal)
+{
+ VteRowData *row;
+ VteScreen *screen;
+ gint delta;
+ glong v;
+
+ /* Must make sure we're in a sane area. */
+ screen = terminal->pvt->screen;
+ v = screen->cursor_current.row;
+
+ /* Figure out how many rows we need to add. */
+ delta = v - _vte_ring_next(screen->row_data) + 1;
+ if (delta > 0) {
+ row = vte_terminal_insert_rows (terminal, delta);
+ _vte_terminal_adjust_adjustments(terminal);
+ } else {
+ /* Find the row the cursor is in. */
+ row = _vte_ring_index_writable (screen->row_data, v);
+ }
+ g_assert(row != NULL);
+
+ return row;
+}
+
+static VteRowData *
+vte_terminal_ensure_cursor(VteTerminal *terminal)
+{
+ VteRowData *row;
+
+ row = _vte_terminal_ensure_row (terminal);
+ _vte_row_data_fill (row, &basic_cell.cell, terminal->pvt->screen->cursor_current.col);
+
+ return row;
+}
+
+/* Update the insert delta so that the screen which includes it also
+ * includes the end of the buffer. */
+void
+_vte_terminal_update_insert_delta(VteTerminal *terminal)
+{
+ long delta, rows;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+
+ /* The total number of lines. Add one to the cursor offset
+ * because it's zero-based. */
+ rows = _vte_ring_next (screen->row_data);
+ delta = screen->cursor_current.row - rows + 1;
+ if (G_UNLIKELY (delta > 0)) {
+ vte_terminal_insert_rows (terminal, delta);
+ rows = _vte_ring_next (screen->row_data);
+ }
+
+ /* Make sure that the bottom row is visible, and that it's in
+ * the buffer (even if it's empty). This usually causes the
+ * top row to become a history-only row. */
+ delta = screen->insert_delta;
+ delta = MIN(delta, rows - terminal->row_count);
+ delta = MAX(delta,
+ screen->cursor_current.row - (terminal->row_count - 1));
+ delta = MAX(delta, _vte_ring_delta(screen->row_data));
+
+ /* Adjust the insert delta and scroll if needed. */
+ if (delta != screen->insert_delta) {
+ screen->insert_delta = delta;
+ _vte_terminal_adjust_adjustments(terminal);
+ }
+}
+
+/* Show or hide the pointer. */
+void
+_vte_terminal_set_pointer_visible(VteTerminal *terminal, gboolean visible)
+{
+ GdkWindow *window;
+ struct vte_match_regex *regex = NULL;
+
+ terminal->pvt->mouse_cursor_visible = visible;
+
+ if (! gtk_widget_get_realized (&terminal->widget))
+ return;
+
+ window = gtk_widget_get_window (&terminal->widget);
+
+ if (visible || !terminal->pvt->mouse_autohide) {
+ if (terminal->pvt->mouse_tracking_mode) {
+ _vte_debug_print(VTE_DEBUG_CURSOR,
+ "Setting mousing cursor.\n");
+ gdk_window_set_cursor (window, terminal->pvt->mouse_mousing_cursor);
+ } else
+ if ( (guint)terminal->pvt->match_tag < terminal->pvt->match_regexes->len) {
+ regex = &g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ terminal->pvt->match_tag);
+ vte_terminal_set_cursor_from_regex_match(terminal, regex);
+ } else {
+ _vte_debug_print(VTE_DEBUG_CURSOR,
+ "Setting default mouse cursor.\n");
+ gdk_window_set_cursor (window, terminal->pvt->mouse_default_cursor);
+ }
+ } else {
+ _vte_debug_print(VTE_DEBUG_CURSOR,
+ "Setting to invisible cursor.\n");
+ gdk_window_set_cursor (window, terminal->pvt->mouse_inviso_cursor);
+ }
+}
+
+/**
+ * vte_terminal_new:
+ *
+ * Creates a new terminal widget.
+ *
+ * Returns: (transfer full) (type Vte.Terminal): a new #VteTerminal object
+ */
+GtkWidget *
+vte_terminal_new(void)
+{
+ return g_object_new(VTE_TYPE_TERMINAL, NULL);
+}
+
+/* Set up a palette entry with a more-or-less match for the requested color. */
+static void
+vte_terminal_set_color_internal(VteTerminal *terminal, int entry,
+ const GdkColor *proposed)
+{
+ PangoColor *color;
+
+ color = &terminal->pvt->palette[entry];
+
+ if (color->red == proposed->red &&
+ color->green == proposed->green &&
+ color->blue == proposed->blue) {
+ return;
+ }
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Set color[%d] to (%04x,%04x,%04x).\n", entry,
+ proposed->red, proposed->green, proposed->blue);
+
+ /* Save the requested color. */
+ color->red = proposed->red;
+ color->green = proposed->green;
+ color->blue = proposed->blue;
+
+ /* If we're not realized yet, there's nothing else to do. */
+ if (! gtk_widget_get_realized (&terminal->widget)) {
+ return;
+ }
+
+ /* If we're setting the background color, set the background color
+ * on the widget as well. */
+ if (entry == VTE_DEF_BG) {
+ vte_terminal_queue_background_update(terminal);
+ }
+
+ /* and redraw */
+ if (entry == VTE_CUR_BG)
+ _vte_invalidate_cursor_once(terminal, FALSE);
+ else
+ _vte_invalidate_all (terminal);
+}
+
+static void
+vte_terminal_generate_bold(const PangoColor *foreground,
+ const PangoColor *background,
+ double factor,
+ GdkColor *bold)
+{
+ double fy, fcb, fcr, by, bcb, bcr, r, g, b;
+ g_assert(foreground != NULL);
+ g_assert(background != NULL);
+ g_assert(bold != NULL);
+ fy = 0.2990 * foreground->red +
+ 0.5870 * foreground->green +
+ 0.1140 * foreground->blue;
+ fcb = -0.1687 * foreground->red +
+ -0.3313 * foreground->green +
+ 0.5000 * foreground->blue;
+ fcr = 0.5000 * foreground->red +
+ -0.4187 * foreground->green +
+ -0.0813 * foreground->blue;
+ by = 0.2990 * background->red +
+ 0.5870 * background->green +
+ 0.1140 * background->blue;
+ bcb = -0.1687 * background->red +
+ -0.3313 * background->green +
+ 0.5000 * background->blue;
+ bcr = 0.5000 * background->red +
+ -0.4187 * background->green +
+ -0.0813 * background->blue;
+ fy = (factor * fy) + ((1.0 - factor) * by);
+ fcb = (factor * fcb) + ((1.0 - factor) * bcb);
+ fcr = (factor * fcr) + ((1.0 - factor) * bcr);
+ r = fy + 1.402 * fcr;
+ g = fy + 0.34414 * fcb - 0.71414 * fcr;
+ b = fy + 1.722 * fcb;
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Calculated bold (%d, %d, %d) = (%lf,%lf,%lf)",
+ foreground->red, foreground->green, foreground->blue,
+ r, g, b);
+ bold->pixel = 0;
+ bold->red = CLAMP(r, 0, 0xffff);
+ bold->green = CLAMP(g, 0, 0xffff);
+ bold->blue = CLAMP(b, 0, 0xffff);
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "= (%04x,%04x,%04x).\n",
+ bold->red, bold->green, bold->blue);
+}
+
+/**
+ * vte_terminal_set_color_bold:
+ * @terminal: a #VteTerminal
+ * @bold: the new bold color
+ *
+ * Sets the color used to draw bold text in the default foreground color.
+ */
+void
+vte_terminal_set_color_bold(VteTerminal *terminal, const GdkColor *bold)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(bold != NULL);
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Set bold color to (%04x,%04x,%04x).\n",
+ bold->red, bold->green, bold->blue);
+ vte_terminal_set_color_internal(terminal, VTE_BOLD_FG, bold);
+}
+
+/**
+ * vte_terminal_set_color_dim:
+ * @terminal: a #VteTerminal
+ * @dim: the new dim color
+ *
+ * Sets the color used to draw dim text in the default foreground color.
+ */
+void
+vte_terminal_set_color_dim(VteTerminal *terminal, const GdkColor *dim)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(dim != NULL);
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Set dim color to (%04x,%04x,%04x).\n",
+ dim->red, dim->green, dim->blue);
+ vte_terminal_set_color_internal(terminal, VTE_DIM_FG, dim);
+}
+
+/**
+ * vte_terminal_set_color_foreground:
+ * @terminal: a #VteTerminal
+ * @foreground: the new foreground color
+ *
+ * Sets the foreground color used to draw normal text
+ */
+void
+vte_terminal_set_color_foreground(VteTerminal *terminal,
+ const GdkColor *foreground)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(foreground != NULL);
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Set foreground color to (%04x,%04x,%04x).\n",
+ foreground->red, foreground->green, foreground->blue);
+ vte_terminal_set_color_internal(terminal, VTE_DEF_FG, foreground);
+}
+
+/**
+ * vte_terminal_set_color_background:
+ * @terminal: a #VteTerminal
+ * @background: the new background color
+ *
+ * Sets the background color for text which does not have a specific background
+ * color assigned. Only has effect when no background image is set and when
+ * the terminal is not transparent.
+ */
+void
+vte_terminal_set_color_background(VteTerminal *terminal,
+ const GdkColor *background)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(background != NULL);
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Set background color to (%04x,%04x,%04x).\n",
+ background->red, background->green, background->blue);
+ vte_terminal_set_color_internal(terminal, VTE_DEF_BG, background);
+}
+
+/**
+ * vte_terminal_set_color_cursor:
+ * @terminal: a #VteTerminal
+ * @cursor_background: (allow-none): the new color to use for the text cursor, or %NULL
+ *
+ * Sets the background color for text which is under the cursor. If %NULL, text
+ * under the cursor will be drawn with foreground and background colors
+ * reversed.
+ *
+ * Since: 0.11.11
+ */
+void
+vte_terminal_set_color_cursor(VteTerminal *terminal,
+ const GdkColor *cursor_background)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ if (cursor_background != NULL) {
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Set cursor color to (%04x,%04x,%04x).\n",
+ cursor_background->red,
+ cursor_background->green,
+ cursor_background->blue);
+ vte_terminal_set_color_internal(terminal, VTE_CUR_BG,
+ cursor_background);
+ terminal->pvt->cursor_color_set = TRUE;
+ } else {
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Cleared cursor color.\n");
+ terminal->pvt->cursor_color_set = FALSE;
+ }
+}
+
+/**
+ * vte_terminal_set_color_highlight:
+ * @terminal: a #VteTerminal
+ * @highlight_background: (allow-none): the new color to use for highlighted text, or %NULL
+ *
+ * Sets the background color for text which is highlighted. If %NULL,
+ * highlighted text (which is usually highlighted because it is selected) will
+ * be drawn with foreground and background colors reversed.
+ *
+ * Since: 0.11.11
+ */
+void
+vte_terminal_set_color_highlight(VteTerminal *terminal,
+ const GdkColor *highlight_background)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ if (highlight_background != NULL) {
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Set highlight color to (%04x,%04x,%04x).\n",
+ highlight_background->red,
+ highlight_background->green,
+ highlight_background->blue);
+ vte_terminal_set_color_internal(terminal, VTE_DEF_HL,
+ highlight_background);
+ terminal->pvt->highlight_color_set = TRUE;
+ } else {
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Cleared highlight color.\n");
+ terminal->pvt->highlight_color_set = FALSE;
+ }
+}
+
+/**
+ * vte_terminal_set_colors:
+ * @terminal: a #VteTerminal
+ * @foreground: (allow-none): the new foreground color, or %NULL
+ * @background: (allow-none): the new background color, or %NULL
+ * @palette: (array length=palette_size zero-terminated=0) (element-type Gdk.Color): the color palette
+ * @palette_size: the number of entries in @palette
+ *
+ * The terminal widget uses a 28-color model comprised of the default foreground
+ * and background colors, the bold foreground color, the dim foreground
+ * color, an eight color palette, bold versions of the eight color palette,
+ * and a dim version of the the eight color palette.
+ *
+ * @palette_size must be either 0, 8, 16, or 24, or between 25 and 255 inclusive.
+ * If @foreground is %NULL and
+ * @palette_size is greater than 0, the new foreground color is taken from
+ * @palette[7]. If @background is %NULL and @palette_size is greater than 0,
+ * the new background color is taken from @palette[0]. If
+ * @palette_size is 8 or 16, the third (dim) and possibly the second (bold)
+ * 8-color palettes are extrapolated from the new background color and the items
+ * in @palette.
+ */
+void
+vte_terminal_set_colors(VteTerminal *terminal,
+ const GdkColor *foreground,
+ const GdkColor *background,
+ const GdkColor *palette,
+ glong palette_size)
+{
+ guint i;
+ GdkColor color;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ g_return_if_fail(palette_size >= 0);
+ g_return_if_fail((palette_size == 0) ||
+ (palette_size == 8) ||
+ (palette_size == 16) ||
+ (palette_size == 24) ||
+ (palette_size > 24 && palette_size < 256));
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Set color palette [%ld elements].\n",
+ palette_size);
+
+ /* Accept NULL as the default foreground and background colors if we
+ * got a palette. */
+ if ((foreground == NULL) && (palette_size >= 8)) {
+ foreground = &palette[7];
+ }
+ if ((background == NULL) && (palette_size >= 8)) {
+ background = &palette[0];
+ }
+
+ memset(&color, 0, sizeof(color));
+
+ /* Initialize each item in the palette if we got any entries to work
+ * with. */
+ for (i=0; i < G_N_ELEMENTS(terminal->pvt->palette); i++) {
+ if (i < 16) {
+ color.blue = (i & 4) ? 0xc000 : 0;
+ color.green = (i & 2) ? 0xc000 : 0;
+ color.red = (i & 1) ? 0xc000 : 0;
+ if (i > 7) {
+ color.blue += 0x3fff;
+ color.green += 0x3fff;
+ color.red += 0x3fff;
+ }
+ }
+ else if (i < 232) {
+ int j = i - 16;
+ int r = j / 36, g = (j / 6) % 6, b = j % 6;
+ int red = (r == 0) ? 0 : r * 40 + 55;
+ int green = (g == 0) ? 0 : g * 40 + 55;
+ int blue = (b == 0) ? 0 : b * 40 + 55;
+ color.red = red | red << 8 ;
+ color.green = green | green << 8;
+ color.blue = blue | blue << 8;
+ } else if (i < 256) {
+ int shade = 8 + (i - 232) * 10;
+ color.red = color.green = color.blue = shade | shade << 8;
+ }
+ else switch (i) {
+ case VTE_DEF_BG:
+ if (background != NULL) {
+ color = *background;
+ } else {
+ color.red = 0;
+ color.blue = 0;
+ color.green = 0;
+ }
+ break;
+ case VTE_DEF_FG:
+ if (foreground != NULL) {
+ color = *foreground;
+ } else {
+ color.red = 0xc000;
+ color.blue = 0xc000;
+ color.green = 0xc000;
+ }
+ break;
+ case VTE_BOLD_FG:
+ vte_terminal_generate_bold(&terminal->pvt->palette[VTE_DEF_FG],
+ &terminal->pvt->palette[VTE_DEF_BG],
+ 1.8,
+ &color);
+ break;
+ case VTE_DIM_FG:
+ vte_terminal_generate_bold(&terminal->pvt->palette[VTE_DEF_FG],
+ &terminal->pvt->palette[VTE_DEF_BG],
+ 0.5,
+ &color);
+ break;
+ case VTE_DEF_HL:
+ color.red = 0xc000;
+ color.blue = 0xc000;
+ color.green = 0xc000;
+ break;
+ case VTE_CUR_BG:
+ color.red = 0x0000;
+ color.blue = 0x0000;
+ color.green = 0x0000;
+ break;
+ }
+
+ /* Override from the supplied palette if there is one. */
+ if ((glong) i < palette_size) {
+ color = palette[i];
+ }
+
+ /* Set up the color entry. */
+ vte_terminal_set_color_internal(terminal, i, &color);
+ }
+
+ /* Track that we had a color palette set. */
+ terminal->pvt->palette_initialized = TRUE;
+}
+
+#if GTK_CHECK_VERSION (2, 99, 0)
+
+static GdkColor *
+gdk_color_from_rgba (GdkColor *color,
+ const GdkRGBA *rgba)
+{
+ if (rgba == NULL)
+ return NULL;
+
+ color->red = rgba->red * 65535.;
+ color->green = rgba->green * 65535.;
+ color->blue = rgba->blue * 65535.;
+ color->pixel = 0;
+
+ return color;
+}
+
+/**
+ * vte_terminal_set_color_bold_rgba:
+ * @terminal: a #VteTerminal
+ * @bold: (allow-none): the new bold color or %NULL
+ *
+ * Sets the color used to draw bold text in the default foreground color.
+ * If @bold is %NULL then the default color is used.
+ */
+void
+vte_terminal_set_color_bold_rgba(VteTerminal *terminal,
+ const GdkRGBA *bold)
+{
+ GdkColor color;
+
+ if (bold == NULL)
+ {
+ vte_terminal_generate_bold(&terminal->pvt->palette[VTE_DEF_FG],
+ &terminal->pvt->palette[VTE_DEF_BG],
+ 1.8,
+ &color);
+ }
+ else
+ {
+ gdk_color_from_rgba(&color, bold);
+ }
+
+ vte_terminal_set_color_bold(terminal, &color);
+}
+
+/**
+ * vte_terminal_set_color_dim_rgba:
+ * @terminal: a #VteTerminal
+ * @dim: (allow-none): the new dim color or %NULL
+ *
+ * Sets the color used to draw dim text in the default foreground color.
+ * If @dim is %NULL then the default color is used.
+ *
+ * Since: 0.28
+ */
+void
+vte_terminal_set_color_dim_rgba(VteTerminal *terminal,
+ const GdkRGBA *dim)
+{
+ GdkColor color;
+
+ if (dim == NULL)
+ {
+ vte_terminal_generate_bold(&terminal->pvt->palette[VTE_DEF_FG],
+ &terminal->pvt->palette[VTE_DEF_BG],
+ 0.5,
+ &color);
+ }
+ else
+ {
+ gdk_color_from_rgba(&color, dim);
+ }
+
+ vte_terminal_set_color_dim(terminal, &color);
+}
+
+/**
+ * vte_terminal_set_color_foreground_rgba:
+ * @terminal: a #VteTerminal
+ * @foreground: the new foreground color
+ *
+ * Sets the foreground color used to draw normal text.
+ *
+ * Since: 0.28
+ */
+void
+vte_terminal_set_color_foreground_rgba(VteTerminal *terminal,
+ const GdkRGBA *foreground)
+{
+ GdkColor color;
+
+ vte_terminal_set_color_foreground(terminal,
+ gdk_color_from_rgba(&color, foreground));
+}
+
+/**
+ * vte_terminal_set_color_background_rgba:
+ * @terminal: a #VteTerminal
+ * @background: the new background color
+ *
+ * Sets the background color for text which does not have a specific background
+ * color assigned. Only has effect when no background image is set and when
+ * the terminal is not transparent.
+ *
+ * Since: 0.28
+ */
+void
+vte_terminal_set_color_background_rgba(VteTerminal *terminal,
+ const GdkRGBA *background)
+{
+ GdkColor color;
+
+ vte_terminal_set_color_background(terminal,
+ gdk_color_from_rgba (&color, background));
+}
+
+/**
+ * vte_terminal_set_color_cursor_rgba:
+ * @terminal: a #VteTerminal
+ * @cursor_background: (allow-none): the new color to use for the text cursor, or %NULL
+ *
+ * Sets the background color for text which is under the cursor. If %NULL, text
+ * under the cursor will be drawn with foreground and background colors
+ * reversed.
+ *
+ * Since: 0.28
+ */
+void
+vte_terminal_set_color_cursor_rgba(VteTerminal *terminal,
+ const GdkRGBA *cursor_background)
+{
+ GdkColor color;
+
+ vte_terminal_set_color_cursor(terminal,
+ gdk_color_from_rgba(&color, cursor_background));
+}
+
+/**
+ * vte_terminal_set_color_highlight_rgba:
+ * @terminal: a #VteTerminal
+ * @highlight_background: (allow-none): the new color to use for highlighted text, or %NULL
+ *
+ * Sets the background color for text which is highlighted. If %NULL,
+ * highlighted text (which is usually highlighted because it is selected) will
+ * be drawn with foreground and background colors reversed.
+ *
+ * Since: 0.28
+ */
+void
+vte_terminal_set_color_highlight_rgba(VteTerminal *terminal,
+ const GdkRGBA *highlight_background)
+{
+ GdkColor color;
+
+ vte_terminal_set_color_highlight(terminal,
+ gdk_color_from_rgba(&color, highlight_background));
+}
+
+/**
+ * vte_terminal_set_colors_rgba:
+ * @terminal: a #VteTerminal
+ * @foreground: (allow-none): the new foreground color, or %NULL
+ * @background: (allow-none): the new background color, or %NULL
+ * @palette: (array length=palette_size zero-terminated=0) (element-type Gdk.RGBA): the color palette
+ * @palette_size: the number of entries in @palette
+ *
+ * The terminal widget uses a 28-color model comprised of the default foreground
+ * and background colors, the bold foreground color, the dim foreground
+ * color, an eight color palette, bold versions of the eight color palette,
+ * and a dim version of the the eight color palette.
+ *
+ * @palette_size must be either 0, 8, 16, or 24, or between 25 and 255 inclusive.
+ * If @foreground is %NULL and
+ * @palette_size is greater than 0, the new foreground color is taken from
+ * @palette[7]. If @background is %NULL and @palette_size is greater than 0,
+ * the new background color is taken from @palette[0]. If
+ * @palette_size is 8 or 16, the third (dim) and possibly the second (bold)
+ * 8-color palettes are extrapolated from the new background color and the items
+ * in @palette.
+ *
+ * Since: 0.28
+ */
+void
+vte_terminal_set_colors_rgba(VteTerminal *terminal,
+ const GdkRGBA *foreground,
+ const GdkRGBA *background,
+ const GdkRGBA *palette,
+ gsize palette_size)
+{
+ GdkColor fg, bg, *pal;
+ gsize i;
+
+ pal = g_new (GdkColor, palette_size);
+ for (i = 0; i < palette_size; ++i)
+ gdk_color_from_rgba(&pal[i], &palette[i]);
+
+ vte_terminal_set_colors(terminal,
+ gdk_color_from_rgba(&fg, foreground),
+ gdk_color_from_rgba(&bg, background),
+ pal, palette_size);
+
+ g_free (pal);
+}
+
+#endif /* GTK 3.0 */
+
+/**
+ * vte_terminal_set_opacity:
+ * @terminal: a #VteTerminal
+ * @opacity: the new opacity
+ *
+ * Sets the opacity of the terminal background, were 0 means completely
+ * transparent and 65535 means completely opaque.
+ */
+void
+vte_terminal_set_opacity(VteTerminal *terminal, guint16 opacity)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ if (opacity == pvt->bg_opacity)
+ return;
+
+ pvt->bg_opacity = opacity;
+
+ g_object_notify(G_OBJECT(terminal), "background-opacity");
+}
+
+/**
+ * vte_terminal_set_default_colors:
+ * @terminal: a #VteTerminal
+ *
+ * Reset the terminal palette to reasonable compiled-in default color.
+ */
+void
+vte_terminal_set_default_colors(VteTerminal *terminal)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ vte_terminal_set_colors(terminal, NULL, NULL, NULL, 0);
+}
+
+
+/* Cleanup smart-tabs. See vte_sequence_handler_ta() */
+void
+_vte_terminal_cleanup_tab_fragments_at_cursor (VteTerminal *terminal)
+{
+ VteRowData *row = _vte_terminal_ensure_row (terminal);
+ VteScreen *screen = terminal->pvt->screen;
+ long col = screen->cursor_current.col;
+ const VteCell *pcell = _vte_row_data_get (row, col);
+
+ if (G_UNLIKELY (pcell != NULL && pcell->c == '\t')) {
+ long i, num_columns;
+ VteCell *cell = _vte_row_data_get_writable (row, col);
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Cleaning tab fragments at %ld",
+ col);
+
+ /* go back to the beginning of the tab */
+ while (cell->attr.fragment && col > 0)
+ cell = _vte_row_data_get_writable (row, --col);
+
+ num_columns = cell->attr.columns;
+ for (i = 0; i < num_columns; i++) {
+ cell = _vte_row_data_get_writable (row, col++);
+ if (G_UNLIKELY (!cell))
+ break;
+ *cell = screen->fill_defaults;
+ }
+ }
+}
+
+/* Cursor down, with scrolling. */
+void
+_vte_terminal_cursor_down (VteTerminal *terminal)
+{
+ long start, end;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+
+ if (screen->scrolling_restricted) {
+ start = screen->insert_delta + screen->scrolling_region.start;
+ end = screen->insert_delta + screen->scrolling_region.end;
+ } else {
+ start = screen->insert_delta;
+ end = start + terminal->row_count - 1;
+ }
+ if (screen->cursor_current.row == end) {
+ /* Match xterm and fill to the end of row when scrolling. */
+ if (screen->fill_defaults.attr.back != VTE_DEF_BG) {
+ VteRowData *rowdata;
+ rowdata = _vte_terminal_ensure_row (terminal);
+ _vte_row_data_fill (rowdata, &screen->fill_defaults, terminal->column_count);
+ }
+
+ if (screen->scrolling_restricted) {
+ if (start == screen->insert_delta) {
+ /* Scroll this line into the scrollback
+ * buffer by inserting a line at the next
+ * line and scrolling the area up. */
+ screen->insert_delta++;
+ screen->scroll_delta++;
+ screen->cursor_current.row++;
+ /* update start and end, as they are relative
+ * to insert_delta. */
+ start++;
+ end++;
+ _vte_terminal_ring_insert (terminal, screen->cursor_current.row, FALSE);
+ /* Force the areas below the region to be
+ * redrawn -- they've moved. */
+ _vte_terminal_scroll_region(terminal, start,
+ end - start + 1, 1);
+ /* Force scroll. */
+ _vte_terminal_adjust_adjustments(terminal);
+ } else {
+ /* If we're at the bottom of the scrolling
+ * region, add a line at the top to scroll the
+ * bottom off. */
+ _vte_terminal_ring_remove (terminal, start);
+ _vte_terminal_ring_insert (terminal, end, TRUE);
+ /* Update the display. */
+ _vte_terminal_scroll_region(terminal, start,
+ end - start + 1, -1);
+ _vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ end - 2, 2);
+ }
+ } else {
+ /* Scroll up with history. */
+ screen->cursor_current.row++;
+ _vte_terminal_update_insert_delta(terminal);
+ }
+
+ /* Match xterm and fill the new row when scrolling. */
+ if (screen->fill_defaults.attr.back != VTE_DEF_BG) {
+ VteRowData *rowdata;
+ rowdata = _vte_terminal_ensure_row (terminal);
+ _vte_row_data_fill (rowdata, &screen->fill_defaults, terminal->column_count);
+ }
+ } else {
+ /* Otherwise, just move the cursor down. */
+ screen->cursor_current.row++;
+ }
+}
+
+/* Insert a single character into the stored data array. */
+gboolean
+_vte_terminal_insert_char(VteTerminal *terminal, gunichar c,
+ gboolean insert, gboolean invalidate_now)
+{
+ VteCellAttr attr;
+ VteRowData *row;
+ long col;
+ int columns, i;
+ VteScreen *screen;
+ gboolean line_wrapped = FALSE; /* cursor moved before char inserted */
+
+ screen = terminal->pvt->screen;
+ insert |= screen->insert_mode;
+ invalidate_now |= insert;
+
+ /* If we've enabled the special drawing set, map the characters to
+ * Unicode. */
+ if (G_UNLIKELY (screen->alternate_charset)) {
+ _vte_debug_print(VTE_DEBUG_SUBSTITUTION,
+ "Attempting charset substitution"
+ "for U+%04X.\n", c);
+ /* See if there's a mapping for it. */
+ c = _vte_iso2022_process_single(terminal->pvt->iso2022, c, '0');
+ }
+
+ /* If this character is destined for the status line, save it. */
+ if (G_UNLIKELY (screen->status_line)) {
+ g_string_append_unichar(screen->status_line_contents, c);
+ screen->status_line_changed = TRUE;
+ return FALSE;
+ }
+
+ /* Figure out how many columns this character should occupy. */
+ if (G_UNLIKELY (VTE_ISO2022_HAS_ENCODED_WIDTH(c))) {
+ columns = _vte_iso2022_get_encoded_width(c);
+ c &= ~VTE_ISO2022_ENCODED_WIDTH_MASK;
+ } else {
+ columns = _vte_iso2022_unichar_width(terminal->pvt->iso2022, c);
+ }
+
+
+ /* If we're autowrapping here, do it. */
+ col = screen->cursor_current.col;
+ if (G_UNLIKELY (columns && col + columns > terminal->column_count)) {
+ if (terminal->pvt->flags.am) {
+ _vte_debug_print(VTE_DEBUG_ADJ,
+ "Autowrapping before character\n");
+ /* Wrap. */
+ /* XXX clear to the end of line */
+ col = screen->cursor_current.col = 0;
+ /* Mark this line as soft-wrapped. */
+ row = _vte_terminal_ensure_row (terminal);
+ row->attr.soft_wrapped = 1;
+ _vte_terminal_cursor_down (terminal);
+ } else {
+ /* Don't wrap, stay at the rightmost column. */
+ col = screen->cursor_current.col =
+ terminal->column_count - columns;
+ }
+ line_wrapped = TRUE;
+ }
+
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Inserting %ld '%c' (%d/%d) (%ld+%d, %ld), delta = %ld; ",
+ (long)c, c < 256 ? c : ' ',
+ screen->defaults.attr.fore,
+ screen->defaults.attr.back,
+ col, columns, (long)screen->cursor_current.row,
+ (long)screen->insert_delta);
+
+
+ if (G_UNLIKELY (columns == 0)) {
+
+ /* It's a combining mark */
+
+ long row_num;
+ VteCell *cell;
+
+ _vte_debug_print(VTE_DEBUG_PARSE, "combining U+%04X", c);
+
+ row_num = screen->cursor_current.row;
+ row = NULL;
+ if (G_UNLIKELY (col == 0)) {
+ /* We are at first column. See if the previous line softwrapped.
+ * If it did, move there. Otherwise skip inserting. */
+
+ if (G_LIKELY (row_num > 0)) {
+ row_num--;
+ row = _vte_terminal_find_row_data_writable (terminal, row_num);
+
+ if (row) {
+ if (!row->attr.soft_wrapped)
+ row = NULL;
+ else
+ col = _vte_row_data_length (row);
+ }
+ }
+ } else {
+ row = _vte_terminal_find_row_data_writable (terminal, row_num);
+ }
+
+ if (G_UNLIKELY (!row || !col))
+ goto not_inserted;
+
+ /* Combine it on the previous cell */
+
+ col--;
+ cell = _vte_row_data_get_writable (row, col);
+
+ if (G_UNLIKELY (!cell))
+ goto not_inserted;
+
+ /* Find the previous cell */
+ while (cell && cell->attr.fragment && col > 0)
+ cell = _vte_row_data_get_writable (row, --col);
+ if (G_UNLIKELY (!cell || cell->c == '\t'))
+ goto not_inserted;
+
+ /* Combine the new character on top of the cell string */
+ c = _vte_unistr_append_unichar (cell->c, c);
+
+ /* And set it */
+ columns = cell->attr.columns;
+ for (i = 0; i < columns; i++) {
+ cell = _vte_row_data_get_writable (row, col++);
+ cell->c = c;
+ }
+
+ /* Always invalidate since we put the mark on the *previous* cell
+ * and the higher level code doesn't know this. */
+ _vte_invalidate_cells(terminal,
+ col - columns,
+ columns,
+ row_num, 1);
+
+ goto done;
+ }
+
+ /* Make sure we have enough rows to hold this data. */
+ row = vte_terminal_ensure_cursor (terminal);
+ g_assert(row != NULL);
+
+ _vte_terminal_cleanup_tab_fragments_at_cursor (terminal);
+
+ if (insert) {
+ for (i = 0; i < columns; i++)
+ _vte_row_data_insert (row, col + i, &screen->color_defaults);
+ } else {
+ _vte_row_data_fill (row, &basic_cell.cell, col + columns);
+ }
+
+ /* Convert any wide characters we may have broken into single
+ * cells. (#514632) */
+ if (G_LIKELY (col > 0)) {
+ glong col2 = col - 1;
+ VteCell *cell = _vte_row_data_get_writable (row, col2);
+ while (col2 > 0 && cell != NULL && cell->attr.fragment)
+ cell = _vte_row_data_get_writable (row, --col2);
+ cell->attr.columns = col - col2;
+ }
+ {
+ glong col2 = col + columns;
+ VteCell *cell = _vte_row_data_get_writable (row, col2);
+ while (cell != NULL && cell->attr.fragment) {
+ cell->attr.columns = 1;
+ cell->c = 0;
+ cell = _vte_row_data_get_writable (row, ++col2);
+ }
+ }
+
+ attr = screen->defaults.attr;
+ attr.columns = columns;
+
+ if (G_UNLIKELY (c == '_' && terminal->pvt->flags.ul)) {
+ const VteCell *pcell = _vte_row_data_get (row, col);
+ /* Handle overstrike-style underlining. */
+ if (pcell->c != 0) {
+ /* restore previous contents */
+ c = pcell->c;
+ attr.columns = pcell->attr.columns;
+ attr.fragment = pcell->attr.fragment;
+
+ attr.underline = 1;
+ }
+ }
+
+
+ {
+ VteCell *pcell = _vte_row_data_get_writable (row, col);
+ pcell->c = c;
+ pcell->attr = attr;
+ col++;
+ }
+
+ /* insert wide-char fragments */
+ attr.fragment = 1;
+ for (i = 1; i < columns; i++) {
+ VteCell *pcell = _vte_row_data_get_writable (row, col);
+ pcell->c = c;
+ pcell->attr = attr;
+ col++;
+ }
+ _vte_row_data_shrink (row, terminal->column_count);
+
+ /* Signal that this part of the window needs drawing. */
+ if (G_UNLIKELY (invalidate_now)) {
+ _vte_invalidate_cells(terminal,
+ col - columns,
+ insert ? terminal->column_count : columns,
+ screen->cursor_current.row, 1);
+ }
+
+
+ /* If we're autowrapping *here*, do it. */
+ screen->cursor_current.col = col;
+ if (G_UNLIKELY (col >= terminal->column_count)) {
+ if (terminal->pvt->flags.am && !terminal->pvt->flags.xn) {
+ /* Wrap. */
+ screen->cursor_current.col = 0;
+ /* Mark this line as soft-wrapped. */
+ row->attr.soft_wrapped = 1;
+ _vte_terminal_cursor_down (terminal);
+ }
+ }
+
+done:
+ /* We added text, so make a note of it. */
+ terminal->pvt->text_inserted_flag = TRUE;
+
+not_inserted:
+ _vte_debug_print(VTE_DEBUG_ADJ|VTE_DEBUG_PARSE,
+ "insertion delta => %ld.\n",
+ (long)screen->insert_delta);
+ return line_wrapped;
+}
+
+/* Catch a VteReaper child-exited signal, and if it matches the one we're
+ * looking for, emit one of our own. */
+static void
+vte_terminal_catch_child_exited(VteReaper *reaper, int pid, int status,
+ VteTerminal *terminal)
+{
+ if (pid == terminal->pvt->pty_pid) {
+ GObject *object = G_OBJECT(terminal);
+
+ g_object_ref(object);
+ g_object_freeze_notify(object);
+
+ _VTE_DEBUG_IF (VTE_DEBUG_LIFECYCLE) {
+ g_printerr ("Child[%d] exited with status %d\n",
+ pid, status);
+#ifdef HAVE_SYS_WAIT_H
+ if (WIFEXITED (status)) {
+ g_printerr ("Child[%d] exit code %d.\n",
+ pid, WEXITSTATUS (status));
+ }else if (WIFSIGNALED (status)) {
+ g_printerr ("Child[%d] dies with signal %d.\n",
+ pid, WTERMSIG (status));
+ }
+#endif
+ }
+ /* Disconnect from the reaper. */
+ if (terminal->pvt->pty_reaper != NULL) {
+ g_signal_handlers_disconnect_by_func(terminal->pvt->pty_reaper,
+ vte_terminal_catch_child_exited,
+ terminal);
+ g_object_unref(terminal->pvt->pty_reaper);
+ terminal->pvt->pty_reaper = NULL;
+ }
+ terminal->pvt->pty_pid = -1;
+
+ /* Close out the PTY. */
+ vte_terminal_set_pty_object(terminal, NULL);
+
+ /* Tell observers what's happened. */
+ terminal->pvt->child_exit_status = status;
+ vte_terminal_emit_child_exited(terminal);
+
+ g_object_thaw_notify(object);
+ g_object_unref(object);
+
+ /* Note: terminal may be destroyed at this point */
+ }
+}
+
+static void mark_input_source_invalid(VteTerminal *terminal)
+{
+ _vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_read\n");
+ terminal->pvt->pty_input_source = 0;
+}
+static void
+_vte_terminal_connect_pty_read(VteTerminal *terminal)
+{
+ if (terminal->pvt->pty_channel == NULL) {
+ return;
+ }
+
+ if (terminal->pvt->pty_input_source == 0) {
+ _vte_debug_print (VTE_DEBUG_IO, "polling vte_terminal_io_read\n");
+ terminal->pvt->pty_input_source =
+ g_io_add_watch_full(terminal->pvt->pty_channel,
+ VTE_CHILD_INPUT_PRIORITY,
+ G_IO_IN | G_IO_HUP,
+ (GIOFunc) vte_terminal_io_read,
+ terminal,
+ (GDestroyNotify) mark_input_source_invalid);
+ }
+}
+
+static void mark_output_source_invalid(VteTerminal *terminal)
+{
+ _vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_write\n");
+ terminal->pvt->pty_output_source = 0;
+}
+static void
+_vte_terminal_connect_pty_write(VteTerminal *terminal)
+{
+ VteTerminalPrivate *pvt = terminal->pvt;
+
+ g_assert(pvt->pty != NULL);
+ if (terminal->pvt->pty_channel == NULL) {
+ pvt->pty_channel =
+ g_io_channel_unix_new(vte_pty_get_fd(pvt->pty));
+ }
+
+ if (terminal->pvt->pty_output_source == 0) {
+ if (vte_terminal_io_write (terminal->pvt->pty_channel,
+ G_IO_OUT,
+ terminal))
+ {
+ _vte_debug_print (VTE_DEBUG_IO, "polling vte_terminal_io_write\n");
+ terminal->pvt->pty_output_source =
+ g_io_add_watch_full(terminal->pvt->pty_channel,
+ VTE_CHILD_OUTPUT_PRIORITY,
+ G_IO_OUT,
+ (GIOFunc) vte_terminal_io_write,
+ terminal,
+ (GDestroyNotify) mark_output_source_invalid);
+ }
+ }
+}
+
+static void
+_vte_terminal_disconnect_pty_read(VteTerminal *terminal)
+{
+ if (terminal->pvt->pty_input_source != 0) {
+ _vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n");
+ g_source_remove(terminal->pvt->pty_input_source);
+ terminal->pvt->pty_input_source = 0;
+ }
+}
+
+static void
+_vte_terminal_disconnect_pty_write(VteTerminal *terminal)
+{
+ if (terminal->pvt->pty_output_source != 0) {
+ _vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_write\n");
+
+ g_source_remove(terminal->pvt->pty_output_source);
+ terminal->pvt->pty_output_source = 0;
+ }
+}
+
+/**
+ * vte_terminal_pty_new:
+ * @terminal: a #VteTerminal
+ * @flags: flags from #VtePtyFlags
+ * @error: (allow-none): return location for a #GError, or %NULL
+ *
+ * Creates a new #VtePty, and sets the emulation property
+ * from #VteTerminal:emulation.
+ *
+ * See vte_pty_new() for more information.
+ *
+ * Returns: (transfer full): a new #VtePty
+ * Since: 0.26
+ */
+VtePty *
+vte_terminal_pty_new(VteTerminal *terminal,
+ VtePtyFlags flags,
+ GError **error)
+{
+ VteTerminalPrivate *pvt;
+ VtePty *pty;
+
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+
+ pvt = terminal->pvt;
+
+ pty = vte_pty_new(flags, error);
+ if (pty == NULL)
+ return NULL;
+
+ vte_pty_set_term(pty, vte_terminal_get_emulation(terminal));
+
+ return pty;
+}
+
+/**
+ * vte_terminal_watch_child:
+ * @terminal: a #VteTerminal
+ * @child_pid: a #GPid
+ *
+ * Watches @child_pid. When the process exists, the #VteReaper::child-exited
+ * signal will be called. Use vte_terminal_get_child_exit_status() to
+ * retrieve the child's exit status.
+ *
+ * Prior to calling this function, a #VtePty must have been set in @terminal
+ * using vte_terminal_set_pty_object().
+ * When the child exits, the terminal's #VtePty will be set to %NULL.
+ *
+ * Note: g_child_watch_add() or g_child_watch_add_full() must not have
+ * been called for @child_pid, nor a #GSource for it been created with
+ * g_child_watch_source_new().
+ *
+ * Note: when using the g_spawn_async() family of functions,
+ * the %G_SPAWN_DO_NOT_REAP_CHILD flag MUST have been passed.
+ *
+ * Since: 0.26
+ */
+void
+vte_terminal_watch_child (VteTerminal *terminal,
+ GPid child_pid)
+{
+ VteTerminalPrivate *pvt;
+ GObject *object;
+ VteReaper *reaper;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(child_pid != -1);
+
+ pvt = terminal->pvt;
+ g_return_if_fail(pvt->pty != NULL);
+
+ // FIXMEchpe: support passing child_pid = -1 to remove the wathch
+
+ object = G_OBJECT(terminal);
+
+ g_object_freeze_notify(object);
+
+ /* Set this as the child's pid. */
+ pvt->pty_pid = child_pid;
+ pvt->child_exit_status = 0;
+
+ /* Catch a child-exited signal from the child pid. */
+ reaper = vte_reaper_get();
+ vte_reaper_add_child(child_pid);
+ if (reaper != pvt->pty_reaper) {
+ if (terminal->pvt->pty_reaper != NULL) {
+ g_signal_handlers_disconnect_by_func(pvt->pty_reaper,
+ vte_terminal_catch_child_exited,
+ terminal);
+ g_object_unref(pvt->pty_reaper);
+ }
+ g_signal_connect(reaper, "child-exited",
+ G_CALLBACK(vte_terminal_catch_child_exited),
+ terminal);
+ pvt->pty_reaper = reaper;
+ } else {
+ g_object_unref(reaper);
+ }
+
+ /* FIXMEchpe: call vte_terminal_set_size here? */
+
+ g_object_thaw_notify(object);
+}
+
+/**
+ * vte_get_user_shell:
+ *
+ * Gets the user's shell, or %NULL. In the latter case, the
+ * system default (usually "/bin/sh") should be used.
+ *
+ * Returns: (tranfer full) (type filename): a newly allocated string with the
+ * user's shell, or %NULL
+ *
+ * Since: 0.28
+ */
+char *
+vte_get_user_shell (void)
+{
+ struct passwd *pwd;
+
+ pwd = getpwuid(getuid());
+ if (pwd && pwd->pw_shell)
+ return g_strdup (pwd->pw_shell);
+
+ return NULL;
+}
+
+static char *
+_vte_terminal_get_user_shell_with_fallback (void)
+{
+ char *command;
+ const gchar *env;
+
+ if ((command = vte_get_user_shell ()))
+ return command;
+
+ if ((env = g_getenv ("SHELL")))
+ return g_strdup (env);
+
+ return g_strdup ("/bin/sh");
+}
+
+/*
+ * _vte_terminal_get_argv:
+ * @command: the command to run
+ * @argv: the argument vector
+ * @flags: (inout) flags from #GSpawnFlags
+ *
+ * Creates an argument vector to pass to g_spawn_async() from @command and
+ * @argv, modifying *@flags if necessary.
+ * Like __vte_pty_get_argv(), but returns the argument vector to spawn
+ * the user's shell if @command is %NULL.
+ *
+ * Returns: a newly allocated array of strings. Free with g_strfreev()
+ */
+static char **
+_vte_terminal_get_argv (const char *command,
+ char **argv,
+ GSpawnFlags *flags /* inout */)
+{
+ char **argv2;
+ char *shell = NULL;
+
+ argv2 = __vte_pty_get_argv(command ? command : (shell = _vte_terminal_get_user_shell_with_fallback
()),
+ argv,
+ flags);
+ g_free(shell);
+ return argv2;
+}
+
+/**
+ * vte_terminal_fork_command:
+ * @terminal: a #VteTerminal
+ * @command: (allow-none) (type filename): the name of a binary to run, or %NULL to spawn the user's shell
+ * @argv: (allow-none) (array zero-terminated=1) (element-type filename): the argument list to be passed to
@command, or %NULL
+ * @envv: (allow-none) (array zero-terminated=1) (element-type filename): a list of environment variables to
be added to the environment before
+ * starting @command, or %NULL
+ * @working_directory: (allow-none) (type filename): the name of a directory the command should start in, or
%NULL
+ * @lastlog: %TRUE if the session should be logged to the lastlog
+ * @utmp: %TRUE if the session should be logged to the utmp/utmpx log
+ * @wtmp: %TRUE if the session should be logged to the wtmp/wtmpx log
+ *
+ * Starts the specified command under a newly-allocated controlling
+ * pseudo-terminal. The @argv and @envv lists should be %NULL-terminated, and
+ * argv[0] is expected to be the name of the file being run, as it would be if
+ * execve() were being called. TERM is automatically set to reflect the
+ * terminal widget's emulation setting. If @lastlog, @utmp, or @wtmp are %TRUE,
+ * logs the session to the specified system log files.
+ *
+ * Note that all file descriptors except stdin/stdout/stderr will be closed
+ * before calling exec() in the child.
+ *
+ * Returns: the PID of the new process, or <literal>-1</literal> on failure
+ *
+ * Deprecated: 0.26: Use vte_terminal_fork_command_full()
+ */
+pid_t
+vte_terminal_fork_command(VteTerminal *terminal,
+ const char *command,
+ char **argv,
+ char **envv,
+ const char *working_directory,
+ gboolean lastlog,
+ gboolean utmp,
+ gboolean wtmp)
+{
+ char **real_argv;
+ GSpawnFlags spawn_flags;
+ GPid child_pid;
+ gboolean ret;
+#ifdef VTE_DEBUG
+ GError *error = NULL;
+ GError **err = &error;
+#else
+ GError **err = NULL;
+#endif
+
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+
+ spawn_flags = G_SPAWN_CHILD_INHERITS_STDIN |
+ G_SPAWN_SEARCH_PATH;
+ real_argv = _vte_terminal_get_argv (command, argv, &spawn_flags);
+
+ ret = vte_terminal_fork_command_full(terminal,
+ __vte_pty_get_pty_flags(lastlog, utmp, wtmp),
+ working_directory,
+ real_argv,
+ envv,
+ spawn_flags,
+ NULL, NULL,
+ &child_pid,
+ err);
+ g_strfreev (real_argv);
+
+#ifdef VTE_DEBUG
+ if (error) {
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "vte_terminal_fork_command failed: %s\n", error->message);
+ g_error_free(error);
+ }
+#endif
+
+ if (!ret)
+ return -1;
+
+ return (pid_t) child_pid;
+}
+
+/**
+ * vte_terminal_fork_command_full:
+ * @terminal: a #VteTerminal
+ * @pty_flags: flags from #VtePtyFlags
+ * @working_directory: (allow-none): the name of a directory the command should start
+ * in, or %NULL to use the current working directory
+ * @argv: (array zero-terminated=1) (element-type filename): child's argument vector
+ * @envv: (allow-none) (array zero-terminated=1) (element-type filename): a list of environment
+ * variables to be added to the environment before starting the process, or %NULL
+ * @spawn_flags: flags from #GSpawnFlags
+ * @child_setup: (allow-none) (scope call): function to run in the child just before exec(), or %NULL
+ * @child_setup_data: user data for @child_setup
+ * @child_pid: (out) (allow-none) (transfer full): a location to store the child PID, or %NULL
+ * @error: (allow-none): return location for a #GError, or %NULL
+ *
+ * Starts the specified command under a newly-allocated controlling
+ * pseudo-terminal. The @argv and @envv lists should be %NULL-terminated.
+ * The "TERM" environment variable is automatically set to reflect the
+ * terminal widget's emulation setting.
+ * @pty_flags controls logging the session to the specified system log files.
+ *
+ * Note that %G_SPAWN_DO_NOT_REAP_CHILD will always be added to @spawn_flags.
+ *
+ * Note that unless @spawn_flags contains %G_SPAWN_LEAVE_DESCRIPTORS_OPEN, all file
+ * descriptors except stdin/stdout/stderr will be closed before calling exec()
+ * in the child.
+ *
+ * See vte_pty_new(), g_spawn_async() and vte_terminal_watch_child() for more information.
+ *
+ * Returns: %TRUE on success, or %FALSE on error with @error filled in
+ *
+ * Since: 0.26
+ */
+gboolean
+vte_terminal_fork_command_full(VteTerminal *terminal,
+ VtePtyFlags pty_flags,
+ const char *working_directory,
+ char **argv,
+ char **envv,
+ GSpawnFlags spawn_flags,
+ GSpawnChildSetupFunc child_setup,
+ gpointer child_setup_data,
+ GPid *child_pid /* out */,
+ GError **error)
+{
+ VtePty *pty;
+ GPid pid;
+
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+ g_return_val_if_fail(argv != NULL, FALSE);
+ g_return_val_if_fail(child_setup_data == NULL || child_setup, FALSE);
+ g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
+
+ pty = vte_pty_new(pty_flags, error);
+ if (pty == NULL)
+ return FALSE;
+
+ /* FIXMEchpe: is this flag needed */
+ spawn_flags |= G_SPAWN_CHILD_INHERITS_STDIN;
+
+ if (!__vte_pty_spawn(pty,
+ working_directory,
+ argv,
+ envv,
+ spawn_flags,
+ child_setup, child_setup_data,
+ &pid,
+ error)) {
+ g_object_unref(pty);
+ return FALSE;
+ }
+
+ vte_terminal_set_pty_object(terminal, pty);
+ vte_terminal_watch_child(terminal, pid);
+ g_object_unref (pty);
+
+ if (child_pid)
+ *child_pid = pid;
+
+ return TRUE;
+}
+
+/**
+ * vte_terminal_forkpty:
+ * @terminal: a #VteTerminal
+ * @envv: a list of environment variables to be added to the environment before
+ * starting returning in the child process, or %NULL
+ * @working_directory: the name of a directory the child process should change to, or
+ * %NULL
+ * @lastlog: %TRUE if the session should be logged to the lastlog
+ * @utmp: %TRUE if the session should be logged to the utmp/utmpx log
+ * @wtmp: %TRUE if the session should be logged to the wtmp/wtmpx log
+ *
+ * Starts a new child process under a newly-allocated controlling
+ * pseudo-terminal. TERM is automatically set to reflect the terminal widget's
+ * emulation setting. If @lastlog, @utmp, or @wtmp are %TRUE, logs the session
+ * to the specified system log files.
+ *
+ * Note that all file descriptors except stdin/stdout/stderr will be closed
+ * in the child.
+ *
+ * Note that @envv and @working_directory are silently ignored.
+ *
+ * Returns: the ID of the new process in the parent, 0 in the child, and -1 if
+ * there was an error
+ *
+ * Since: 0.11.11
+ *
+ * Deprecated: 0.26: Use #VtePty and fork() instead
+ */
+pid_t
+vte_terminal_forkpty(VteTerminal *terminal,
+ char **envv, const char *working_directory,
+ gboolean lastlog, gboolean utmp, gboolean wtmp)
+{
+#ifdef HAVE_FORK
+ VtePty *pty;
+ GPid pid;
+
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+
+ pty = vte_pty_new(__vte_pty_get_pty_flags(lastlog, utmp, wtmp), NULL);
+ if (pty == NULL)
+ return FALSE;
+
+ if (!__vte_pty_fork(pty,
+ &pid,
+ NULL)) {
+ g_object_unref(pty);
+ return FALSE;
+ }
+
+ vte_terminal_set_pty_object(terminal, pty);
+ // FIXMEchpe is that really right?
+ vte_terminal_watch_child(terminal, pid);
+
+ return pid;
+#else
+ return -1;
+#endif
+}
+
+/* Handle an EOF from the client. */
+static void
+vte_terminal_eof(GIOChannel *channel, VteTerminal *terminal)
+{
+ GObject *object = G_OBJECT(terminal);
+
+ g_object_freeze_notify(object);
+
+ vte_terminal_set_pty_object(terminal, NULL);
+
+ /* Emit a signal that we read an EOF. */
+ vte_terminal_queue_eof(terminal);
+
+ g_object_thaw_notify(object);
+}
+
+/* Reset the input method context. */
+static void
+vte_terminal_im_reset(VteTerminal *terminal)
+{
+ if (gtk_widget_get_realized (&terminal->widget)) {
+ gtk_im_context_reset(terminal->pvt->im_context);
+ if (terminal->pvt->im_preedit != NULL) {
+ g_free(terminal->pvt->im_preedit);
+ terminal->pvt->im_preedit = NULL;
+ }
+ if (terminal->pvt->im_preedit_attrs != NULL) {
+ pango_attr_list_unref(terminal->pvt->im_preedit_attrs);
+ terminal->pvt->im_preedit_attrs = NULL;
+ }
+ }
+}
+
+/* Emit whichever signals are called for here. */
+static void
+vte_terminal_emit_pending_text_signals(VteTerminal *terminal, GQuark quark)
+{
+ static struct {
+ const char *name;
+ GQuark quark;
+ } non_visual_quarks[] = {
+ {"mb", 0},
+ {"md", 0},
+ {"mr", 0},
+ {"mu", 0},
+ {"se", 0},
+ {"so", 0},
+ {"ta", 0},
+ {"character-attributes", 0},
+ };
+ guint i;
+
+ if (quark != 0) {
+ for (i = 0; i < G_N_ELEMENTS(non_visual_quarks); i++) {
+ if (non_visual_quarks[i].quark == 0) {
+ non_visual_quarks[i].quark =
+ g_quark_from_static_string(non_visual_quarks[i].name);
+ }
+ if (quark == non_visual_quarks[i].quark) {
+ return;
+ }
+ }
+ }
+
+ if (terminal->pvt->text_modified_flag) {
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting buffered `text-modified'.\n");
+ vte_terminal_emit_text_modified(terminal);
+ terminal->pvt->text_modified_flag = FALSE;
+ }
+ if (terminal->pvt->text_inserted_flag) {
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting buffered `text-inserted'\n");
+ _vte_terminal_emit_text_inserted(terminal);
+ terminal->pvt->text_inserted_flag = FALSE;
+ }
+ if (terminal->pvt->text_deleted_flag) {
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting buffered `text-deleted'\n");
+ _vte_terminal_emit_text_deleted(terminal);
+ terminal->pvt->text_deleted_flag = FALSE;
+ }
+}
+
+/* Process incoming data, first converting it to unicode characters, and then
+ * processing control sequences. */
+static void
+vte_terminal_process_incoming(VteTerminal *terminal)
+{
+ VteScreen *screen;
+ VteVisualPosition cursor;
+ gboolean cursor_visible;
+ GdkPoint bbox_topleft, bbox_bottomright;
+ gunichar *wbuf, c;
+ long wcount, start, delta;
+ gboolean leftovers, modified, bottom, again;
+ gboolean invalidated_text;
+ GArray *unichars;
+ struct _vte_incoming_chunk *chunk, *next_chunk, *achunk = NULL;
+
+ _vte_debug_print(VTE_DEBUG_IO,
+ "Handler processing %"G_GSIZE_FORMAT" bytes over %"G_GSIZE_FORMAT" chunks + %d bytes
pending.\n",
+ _vte_incoming_chunks_length(terminal->pvt->incoming),
+ _vte_incoming_chunks_count(terminal->pvt->incoming),
+ terminal->pvt->pending->len);
+ _vte_debug_print (VTE_DEBUG_WORK, "(");
+
+ screen = terminal->pvt->screen;
+
+ delta = screen->scroll_delta;
+ bottom = screen->insert_delta == delta;
+
+ /* Save the current cursor position. */
+ cursor = screen->cursor_current;
+ cursor_visible = terminal->pvt->cursor_visible;
+
+ /* We should only be called when there's data to process. */
+ g_assert(terminal->pvt->incoming ||
+ (terminal->pvt->pending->len > 0));
+
+ /* Convert the data into unicode characters. */
+ unichars = terminal->pvt->pending;
+ for (chunk = _vte_incoming_chunks_reverse (terminal->pvt->incoming);
+ chunk != NULL;
+ chunk = next_chunk) {
+ gsize processed;
+ next_chunk = chunk->next;
+ if (chunk->len == 0) {
+ goto skip_chunk;
+ }
+ processed = _vte_iso2022_process(terminal->pvt->iso2022,
+ chunk->data, chunk->len,
+ unichars);
+ if (G_UNLIKELY (processed != chunk->len)) {
+ /* shuffle the data about */
+ g_memmove (chunk->data, chunk->data + processed,
+ chunk->len - processed);
+ chunk->len = chunk->len - processed;
+ processed = sizeof (chunk->data) - chunk->len;
+ if (processed != 0 && next_chunk != NULL) {
+ if (next_chunk->len <= processed) {
+ /* consume it entirely */
+ memcpy (chunk->data + chunk->len,
+ next_chunk->data,
+ next_chunk->len);
+ chunk->len += next_chunk->len;
+ chunk->next = next_chunk->next;
+ release_chunk (next_chunk);
+ } else {
+ /* next few bytes */
+ memcpy (chunk->data + chunk->len,
+ next_chunk->data,
+ processed);
+ chunk->len += processed;
+ g_memmove (next_chunk->data,
+ next_chunk->data + processed,
+ next_chunk->len - processed);
+ next_chunk->len -= processed;
+ }
+ next_chunk = chunk; /* repeat */
+ } else {
+ break;
+ }
+ } else {
+skip_chunk:
+ /* cache the last chunk */
+ if (achunk) {
+ release_chunk (achunk);
+ }
+ achunk = chunk;
+ }
+ }
+ if (achunk) {
+ if (chunk != NULL) {
+ release_chunk (achunk);
+ } else {
+ chunk = achunk;
+ chunk->next = NULL;
+ chunk->len = 0;
+ }
+ }
+ terminal->pvt->incoming = chunk;
+
+ /* Compute the number of unicode characters we got. */
+ wbuf = &g_array_index(unichars, gunichar, 0);
+ wcount = unichars->len;
+
+ /* Try initial substrings. */
+ start = 0;
+ modified = leftovers = again = FALSE;
+ invalidated_text = FALSE;
+
+ bbox_bottomright.x = bbox_bottomright.y = -G_MAXINT;
+ bbox_topleft.x = bbox_topleft.y = G_MAXINT;
+
+ while (start < wcount && !leftovers) {
+ const char *match;
+ GQuark quark;
+ const gunichar *next;
+ GValueArray *params = NULL;
+
+ /* Try to match any control sequences. */
+ _vte_matcher_match(terminal->pvt->matcher,
+ &wbuf[start],
+ wcount - start,
+ &match,
+ &next,
+ &quark,
+ ¶ms);
+ /* We're in one of three possible situations now.
+ * First, the match string is a non-empty string and next
+ * points to the first character which isn't part of this
+ * sequence. */
+ if ((match != NULL) && (match[0] != '\0')) {
+ /* Call the right sequence handler for the requested
+ * behavior. */
+ _vte_terminal_handle_sequence(terminal,
+ match,
+ quark,
+ params);
+ /* Skip over the proper number of unicode chars. */
+ start = (next - wbuf);
+ modified = TRUE;
+
+ /* if we have moved during the sequence handler, restart the bbox */
+ if (invalidated_text &&
+ (screen->cursor_current.col > bbox_bottomright.x +
VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.col < bbox_topleft.x - VTE_CELL_BBOX_SLACK
||
+ screen->cursor_current.row > bbox_bottomright.y +
VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.row < bbox_topleft.y - VTE_CELL_BBOX_SLACK)) {
+ /* Clip off any part of the box which isn't already on-screen. */
+ bbox_topleft.x = MAX(bbox_topleft.x, 0);
+ bbox_topleft.y = MAX(bbox_topleft.y, delta);
+ bbox_bottomright.x = MIN(bbox_bottomright.x,
+ terminal->column_count);
+ /* lazily apply the +1 to the cursor_row */
+ bbox_bottomright.y = MIN(bbox_bottomright.y + 1,
+ delta + terminal->row_count);
+
+ _vte_invalidate_cells(terminal,
+ bbox_topleft.x,
+ bbox_bottomright.x - bbox_topleft.x,
+ bbox_topleft.y,
+ bbox_bottomright.y - bbox_topleft.y);
+
+ invalidated_text = FALSE;
+ bbox_bottomright.x = bbox_bottomright.y = -G_MAXINT;
+ bbox_topleft.x = bbox_topleft.y = G_MAXINT;
+ }
+ } else
+ /* Second, we have a NULL match, and next points to the very
+ * next character in the buffer. Insert the character which
+ * we're currently examining into the screen. */
+ if (match == NULL) {
+ c = wbuf[start];
+ /* If it's a control character, permute the order, per
+ * vttest. */
+ if ((c != *next) &&
+ ((*next & 0x1f) == *next) &&
+ (start + 1 < next - wbuf)) {
+ const gunichar *tnext = NULL;
+ const char *tmatch = NULL;
+ GQuark tquark = 0;
+ gunichar ctrl;
+ int i;
+ /* We don't want to permute it if it's another
+ * control sequence, so check if it is. */
+ _vte_matcher_match(terminal->pvt->matcher,
+ next,
+ wcount - (next - wbuf),
+ &tmatch,
+ &tnext,
+ &tquark,
+ NULL);
+ /* We only do this for non-control-sequence
+ * characters and random garbage. */
+ if (tnext == next + 1) {
+ /* Save the control character. */
+ ctrl = *next;
+ /* Move everything before it up a
+ * slot. */
+ for (i = next - wbuf; i > start; i--) {
+ wbuf[i] = wbuf[i - 1];
+ }
+ /* Move the control character to the
+ * front. */
+ wbuf[i] = ctrl;
+ goto next_match;
+ }
+ }
+ _VTE_DEBUG_IF(VTE_DEBUG_PARSE) {
+ gunichar cc = c & ~VTE_ISO2022_ENCODED_WIDTH_MASK;
+ if (cc > 255) {
+ g_printerr("U+%04lx\n", (long) cc);
+ } else {
+ if (cc > 127) {
+ g_printerr("%ld = ",
+ (long) cc);
+ }
+ if (cc < 32) {
+ g_printerr("^%lc\n",
+ (wint_t)cc + 64);
+ } else {
+ g_printerr("`%lc'\n",
+ (wint_t)cc);
+ }
+ }
+ }
+
+ bbox_topleft.x = MIN(bbox_topleft.x,
+ screen->cursor_current.col);
+ bbox_topleft.y = MIN(bbox_topleft.y,
+ screen->cursor_current.row);
+
+ /* Insert the character. */
+ if (G_UNLIKELY (_vte_terminal_insert_char(terminal, c,
+ FALSE, FALSE))) {
+ /* line wrapped, correct bbox */
+ if (invalidated_text &&
+ (screen->cursor_current.col > bbox_bottomright.x +
VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.col < bbox_topleft.x -
VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.row > bbox_bottomright.y +
VTE_CELL_BBOX_SLACK ||
+ screen->cursor_current.row < bbox_topleft.y -
VTE_CELL_BBOX_SLACK)) {
+ /* Clip off any part of the box which isn't already on-screen. */
+ bbox_topleft.x = MAX(bbox_topleft.x, 0);
+ bbox_topleft.y = MAX(bbox_topleft.y, delta);
+ bbox_bottomright.x = MIN(bbox_bottomright.x,
+ terminal->column_count);
+ /* lazily apply the +1 to the cursor_row */
+ bbox_bottomright.y = MIN(bbox_bottomright.y + 1,
+ delta + terminal->row_count);
+
+ _vte_invalidate_cells(terminal,
+ bbox_topleft.x,
+ bbox_bottomright.x - bbox_topleft.x,
+ bbox_topleft.y,
+ bbox_bottomright.y - bbox_topleft.y);
+ bbox_bottomright.x = bbox_bottomright.y = -G_MAXINT;
+ bbox_topleft.x = bbox_topleft.y = G_MAXINT;
+
+ }
+ bbox_topleft.x = MIN(bbox_topleft.x, 0);
+ bbox_topleft.y = MIN(bbox_topleft.y,
+ screen->cursor_current.row);
+ }
+ /* Add the cells over which we have moved to the region
+ * which we need to refresh for the user. */
+ bbox_bottomright.x = MAX(bbox_bottomright.x,
+ screen->cursor_current.col);
+ /* cursor_current.row + 1 (defer until inv.) */
+ bbox_bottomright.y = MAX(bbox_bottomright.y,
+ screen->cursor_current.row);
+ invalidated_text = TRUE;
+
+ /* We *don't* emit flush pending signals here. */
+ modified = TRUE;
+ start++;
+ } else {
+ /* Case three: the read broke in the middle of a
+ * control sequence, so we're undecided with no more
+ * data to consult. If we have data following the
+ * middle of the sequence, then it's just garbage data,
+ * and for compatibility, we should discard it. */
+ if (wbuf + wcount > next) {
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Invalid control "
+ "sequence, discarding %ld "
+ "characters.\n",
+ (long)(next - (wbuf + start)));
+ /* Discard. */
+ start = next - wbuf + 1;
+ } else {
+ /* Pause processing here and wait for more
+ * data before continuing. */
+ leftovers = TRUE;
+ }
+ }
+
+#ifdef VTE_DEBUG
+ /* Some safety checks: ensure the visible parts of the buffer
+ * are all in the buffer. */
+ g_assert(screen->insert_delta >=
+ _vte_ring_delta(screen->row_data));
+ /* The cursor shouldn't be above or below the addressable
+ * part of the display buffer. */
+ g_assert(screen->cursor_current.row >= screen->insert_delta);
+#endif
+
+next_match:
+ if (G_LIKELY(params != NULL)) {
+ /* Free any parameters we don't care about any more. */
+ _vte_matcher_free_params_array(terminal->pvt->matcher,
+ params);
+ }
+ }
+
+ /* Remove most of the processed characters. */
+ if (start < wcount) {
+ g_array_remove_range(terminal->pvt->pending, 0, start);
+ } else {
+ g_array_set_size(terminal->pvt->pending, 0);
+ /* If we're out of data, we needn't pause to let the
+ * controlling application respond to incoming data, because
+ * the main loop is already going to do that. */
+ }
+
+ if (modified) {
+ /* Keep the cursor on-screen if we scroll on output, or if
+ * we're currently at the bottom of the buffer. */
+ _vte_terminal_update_insert_delta(terminal);
+ if (terminal->pvt->scroll_on_output || bottom) {
+ vte_terminal_maybe_scroll_to_bottom(terminal);
+ }
+ /* Deselect the current selection if its contents are changed
+ * by this insertion. */
+ if (terminal->pvt->has_selection) {
+ char *selection;
+ selection =
+ vte_terminal_get_text_range(terminal,
+ terminal->pvt->selection_start.row,
+ 0,
+ terminal->pvt->selection_end.row,
+ terminal->column_count,
+ vte_cell_is_selected,
+ NULL,
+ NULL);
+ if ((selection == NULL) || (terminal->pvt->selection == NULL) ||
+ (strcmp(selection, terminal->pvt->selection) != 0)) {
+ vte_terminal_deselect_all(terminal);
+ }
+ g_free(selection);
+ }
+ }
+
+ if (modified || (screen != terminal->pvt->screen)) {
+ /* Signal that the visible contents changed. */
+ _vte_terminal_queue_contents_changed(terminal);
+ }
+
+ vte_terminal_emit_pending_signals (terminal);
+
+ if (invalidated_text) {
+ /* Clip off any part of the box which isn't already on-screen. */
+ bbox_topleft.x = MAX(bbox_topleft.x, 0);
+ bbox_topleft.y = MAX(bbox_topleft.y, delta);
+ bbox_bottomright.x = MIN(bbox_bottomright.x,
+ terminal->column_count);
+ /* lazily apply the +1 to the cursor_row */
+ bbox_bottomright.y = MIN(bbox_bottomright.y + 1,
+ delta + terminal->row_count);
+
+ _vte_invalidate_cells(terminal,
+ bbox_topleft.x,
+ bbox_bottomright.x - bbox_topleft.x,
+ bbox_topleft.y,
+ bbox_bottomright.y - bbox_topleft.y);
+ }
+
+
+ if ((cursor.col != terminal->pvt->screen->cursor_current.col) ||
+ (cursor.row != terminal->pvt->screen->cursor_current.row)) {
+ /* invalidate the old and new cursor positions */
+ if (cursor_visible)
+ _vte_invalidate_cell(terminal, cursor.col, cursor.row);
+ _vte_invalidate_cursor_once(terminal, FALSE);
+ _vte_check_cursor_blink(terminal);
+ /* Signal that the cursor moved. */
+ vte_terminal_queue_cursor_moved(terminal);
+ } else if (cursor_visible != terminal->pvt->cursor_visible) {
+ _vte_invalidate_cell(terminal, cursor.col, cursor.row);
+ _vte_check_cursor_blink(terminal);
+ }
+
+ /* Tell the input method where the cursor is. */
+ if (gtk_widget_get_realized (&terminal->widget)) {
+ GdkRectangle rect;
+ rect.x = terminal->pvt->screen->cursor_current.col *
+ terminal->char_width + terminal->pvt->inner_border.left;
+ rect.width = terminal->char_width;
+ rect.y = (terminal->pvt->screen->cursor_current.row - delta) *
+ terminal->char_height + terminal->pvt->inner_border.top;
+ rect.height = terminal->char_height;
+ gtk_im_context_set_cursor_location(terminal->pvt->im_context,
+ &rect);
+ }
+
+ _vte_debug_print (VTE_DEBUG_WORK, ")");
+ _vte_debug_print (VTE_DEBUG_IO,
+ "%ld chars and %ld bytes in %"G_GSIZE_FORMAT" chunks left to process.\n",
+ (long) unichars->len,
+ (long) _vte_incoming_chunks_length(terminal->pvt->incoming),
+ _vte_incoming_chunks_count(terminal->pvt->incoming));
+}
+
+static inline void
+_vte_terminal_enable_input_source (VteTerminal *terminal)
+{
+ if (terminal->pvt->pty_channel == NULL) {
+ return;
+ }
+
+ if (terminal->pvt->pty_input_source == 0) {
+ _vte_debug_print (VTE_DEBUG_IO, "polling vte_terminal_io_read\n");
+ terminal->pvt->pty_input_source =
+ g_io_add_watch_full(terminal->pvt->pty_channel,
+ VTE_CHILD_INPUT_PRIORITY,
+ G_IO_IN | G_IO_HUP,
+ (GIOFunc) vte_terminal_io_read,
+ terminal,
+ (GDestroyNotify) mark_input_source_invalid);
+ }
+}
+static void
+_vte_terminal_feed_chunks (VteTerminal *terminal, struct _vte_incoming_chunk *chunks)
+{
+ struct _vte_incoming_chunk *last;
+
+ _vte_debug_print(VTE_DEBUG_IO, "Feed %"G_GSIZE_FORMAT" bytes, in %"G_GSIZE_FORMAT" chunks.\n",
+ _vte_incoming_chunks_length(chunks),
+ _vte_incoming_chunks_count(chunks));
+
+ for (last = chunks; last->next != NULL; last = last->next) ;
+ last->next = terminal->pvt->incoming;
+ terminal->pvt->incoming = chunks;
+}
+/* Read and handle data from the child. */
+static gboolean
+vte_terminal_io_read(GIOChannel *channel,
+ GIOCondition condition,
+ VteTerminal *terminal)
+{
+ int err = 0;
+ gboolean eof, again = TRUE;
+
+ _vte_debug_print (VTE_DEBUG_WORK, ".");
+
+ /* Check for end-of-file. */
+ eof = condition & G_IO_HUP;
+
+ /* Read some data in from this channel. */
+ if (condition & G_IO_IN) {
+ struct _vte_incoming_chunk *chunk, *chunks = NULL;
+ const int fd = g_io_channel_unix_get_fd (channel);
+ guchar *bp;
+ int rem, len;
+ guint bytes, max_bytes;
+
+ /* Limit the amount read between updates, so as to
+ * 1. maintain fairness between multiple terminals;
+ * 2. prevent reading the entire output of a command in one
+ * pass, i.e. we always try to refresh the terminal ~40Hz.
+ * See time_process_incoming() where we estimate the
+ * maximum number of bytes we can read/process in between
+ * updates.
+ */
+ max_bytes = terminal->pvt->active ?
+ g_list_length (active_terminals) - 1 : 0;
+ if (max_bytes) {
+ max_bytes = terminal->pvt->max_input_bytes / max_bytes;
+ } else {
+ max_bytes = VTE_MAX_INPUT_READ;
+ }
+ bytes = terminal->pvt->input_bytes;
+
+ chunk = terminal->pvt->incoming;
+ do {
+ if (!chunk || chunk->len >= 3*sizeof (chunk->data)/4) {
+ chunk = get_chunk ();
+ chunk->next = chunks;
+ chunks = chunk;
+ }
+ rem = sizeof (chunk->data) - chunk->len;
+ bp = chunk->data + chunk->len;
+ len = 0;
+ do {
+ int ret = read (fd, bp, rem);
+ switch (ret){
+ case -1:
+ err = errno;
+ goto out;
+ case 0:
+ eof = TRUE;
+ goto out;
+ default:
+ bp += ret;
+ rem -= ret;
+ len += ret;
+ break;
+ }
+ } while (rem);
+out:
+ chunk->len += len;
+ bytes += len;
+ } while (bytes < max_bytes &&
+ chunk->len == sizeof (chunk->data));
+ if (chunk->len == 0 && chunk == chunks) {
+ chunks = chunks->next;
+ release_chunk (chunk);
+ }
+
+ if (chunks != NULL) {
+ _vte_terminal_feed_chunks (terminal, chunks);
+ }
+ if (!vte_terminal_is_processing (terminal)) {
+ GDK_THREADS_ENTER ();
+ vte_terminal_add_process_timeout (terminal);
+ GDK_THREADS_LEAVE ();
+ }
+ terminal->pvt->pty_input_active = len != 0;
+ terminal->pvt->input_bytes = bytes;
+ again = bytes < max_bytes;
+
+ _vte_debug_print (VTE_DEBUG_IO, "read %d/%d bytes, again? %s, active? %s\n",
+ bytes, max_bytes,
+ again ? "yes" : "no",
+ terminal->pvt->pty_input_active ? "yes" : "no");
+ }
+
+ /* Error? */
+ switch (err) {
+ case 0: /* no error */
+ break;
+ case EIO: /* Fake an EOF. */
+ eof = TRUE;
+ break;
+ case EAGAIN:
+ case EBUSY: /* do nothing */
+ break;
+ default:
+ /* Translators: %s is replaced with error message returned by strerror(). */
+ g_warning (_("Error reading from child: " "%s."),
+ g_strerror (err));
+ break;
+ }
+
+ /* If we detected an eof condition, signal one. */
+ if (eof) {
+ /* potential deadlock ... */
+ if (!vte_terminal_is_processing (terminal)) {
+ GDK_THREADS_ENTER ();
+ vte_terminal_eof (channel, terminal);
+ GDK_THREADS_LEAVE ();
+ } else {
+ vte_terminal_eof (channel, terminal);
+ }
+
+ again = FALSE;
+ }
+
+ return again;
+}
+
+/**
+ * vte_terminal_feed:
+ * @terminal: a #VteTerminal
+ * @data: a string in the terminal's current encoding
+ * @length: the length of the string
+ *
+ * Interprets @data as if it were data received from a child process. This
+ * can either be used to drive the terminal without a child process, or just
+ * to mess with your users.
+ */
+void
+vte_terminal_feed(VteTerminal *terminal, const char *data, glong length)
+{
+ /* If length == -1, use the length of the data string. */
+ if (length == ((gssize)-1)) {
+ length = strlen(data);
+ }
+
+ /* If we have data, modify the incoming buffer. */
+ if (length > 0) {
+ struct _vte_incoming_chunk *chunk;
+ if (terminal->pvt->incoming &&
+ (gsize)length < sizeof (terminal->pvt->incoming->data) -
terminal->pvt->incoming->len) {
+ chunk = terminal->pvt->incoming;
+ } else {
+ chunk = get_chunk ();
+ _vte_terminal_feed_chunks (terminal, chunk);
+ }
+ do { /* break the incoming data into chunks */
+ gsize rem = sizeof (chunk->data) - chunk->len;
+ gsize len = (gsize) length < rem ? (gsize) length : rem;
+ memcpy (chunk->data + chunk->len, data, len);
+ chunk->len += len;
+ length -= len;
+ if (length == 0) {
+ break;
+ }
+ data += len;
+
+ chunk = get_chunk ();
+ _vte_terminal_feed_chunks (terminal, chunk);
+ } while (1);
+ vte_terminal_start_processing (terminal);
+ }
+}
+
+/* Send locally-encoded characters to the child. */
+static gboolean
+vte_terminal_io_write(GIOChannel *channel,
+ GIOCondition condition,
+ VteTerminal *terminal)
+{
+ gssize count;
+ int fd;
+ gboolean leave_open;
+
+ fd = g_io_channel_unix_get_fd(channel);
+
+ count = write(fd, terminal->pvt->outgoing->data,
+ _vte_buffer_length(terminal->pvt->outgoing));
+ if (count != -1) {
+ _VTE_DEBUG_IF (VTE_DEBUG_IO) {
+ gssize i;
+ for (i = 0; i < count; i++) {
+ g_printerr("Wrote %c%c\n",
+ ((guint8)terminal->pvt->outgoing->data[i]) >= 32 ?
+ ' ' : '^',
+ ((guint8)terminal->pvt->outgoing->data[i]) >= 32 ?
+ terminal->pvt->outgoing->data[i] :
+ ((guint8)terminal->pvt->outgoing->data[i]) + 64);
+ }
+ }
+ _vte_buffer_consume(terminal->pvt->outgoing, count);
+ }
+
+ if (_vte_buffer_length(terminal->pvt->outgoing) == 0) {
+ leave_open = FALSE;
+ } else {
+ leave_open = TRUE;
+ }
+
+ return leave_open;
+}
+
+/* Convert some arbitrarily-encoded data to send to the child. */
+static void
+vte_terminal_send(VteTerminal *terminal, const char *encoding,
+ const void *data, gssize length,
+ gboolean local_echo, gboolean newline_stuff)
+{
+ gsize icount, ocount;
+ const guchar *ibuf;
+ guchar *obuf, *obufptr;
+ gchar *cooked;
+ VteConv conv;
+ long crcount, cooked_length, i;
+
+ g_assert(VTE_IS_TERMINAL(terminal));
+ g_assert(encoding && strcmp(encoding, "UTF-8") == 0);
+
+ conv = VTE_INVALID_CONV;
+ if (strcmp(encoding, "UTF-8") == 0) {
+ conv = terminal->pvt->outgoing_conv;
+ }
+ if (conv == VTE_INVALID_CONV) {
+ g_warning (_("Unable to send data to child, invalid charset convertor"));
+ return;
+ }
+
+ icount = length;
+ ibuf = data;
+ ocount = ((length + 1) * VTE_UTF8_BPC) + 1;
+ _vte_buffer_set_minimum_size(terminal->pvt->conv_buffer, ocount);
+ obuf = obufptr = terminal->pvt->conv_buffer->data;
+
+ if (_vte_conv(conv, &ibuf, &icount, &obuf, &ocount) == (gsize)-1) {
+ g_warning(_("Error (%s) converting data for child, dropping."),
+ g_strerror(errno));
+ } else {
+ crcount = 0;
+ if (newline_stuff) {
+ for (i = 0; i < obuf - obufptr; i++) {
+ switch (obufptr[i]) {
+ case '\015':
+ crcount++;
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ if (crcount > 0) {
+ cooked = g_malloc(obuf - obufptr + crcount);
+ cooked_length = 0;
+ for (i = 0; i < obuf - obufptr; i++) {
+ switch (obufptr[i]) {
+ case '\015':
+ cooked[cooked_length++] = '\015';
+ cooked[cooked_length++] = '\012';
+ break;
+ default:
+ cooked[cooked_length++] = obufptr[i];
+ break;
+ }
+ }
+ } else {
+ cooked = (gchar *)obufptr;
+ cooked_length = obuf - obufptr;
+ }
+ /* Tell observers that we're sending this to the child. */
+ if (cooked_length > 0) {
+ vte_terminal_emit_commit(terminal,
+ cooked, cooked_length);
+ }
+ /* Echo the text if we've been asked to do so. */
+ if ((cooked_length > 0) && local_echo) {
+ gunichar *ucs4;
+ ucs4 = g_utf8_to_ucs4(cooked, cooked_length,
+ NULL, NULL, NULL);
+ if (ucs4 != NULL) {
+ int len;
+ len = g_utf8_strlen(cooked, cooked_length);
+ for (i = 0; i < len; i++) {
+ _vte_terminal_insert_char(terminal,
+ ucs4[i],
+ FALSE,
+ TRUE);
+ }
+ g_free(ucs4);
+ }
+ }
+ /* If there's a place for it to go, add the data to the
+ * outgoing buffer. */
+ if ((cooked_length > 0) && (terminal->pvt->pty != NULL)) {
+ _vte_buffer_append(terminal->pvt->outgoing,
+ cooked, cooked_length);
+ _VTE_DEBUG_IF(VTE_DEBUG_KEYBOARD) {
+ for (i = 0; i < cooked_length; i++) {
+ if ((((guint8) cooked[i]) < 32) ||
+ (((guint8) cooked[i]) > 127)) {
+ g_printerr(
+ "Sending <%02x> "
+ "to child.\n",
+ cooked[i]);
+ } else {
+ g_printerr(
+ "Sending '%c' "
+ "to child.\n",
+ cooked[i]);
+ }
+ }
+ }
+ /* If we need to start waiting for the child pty to
+ * become available for writing, set that up here. */
+ _vte_terminal_connect_pty_write(terminal);
+ }
+ if (crcount > 0) {
+ g_free(cooked);
+ }
+ }
+ return;
+}
+
+/**
+ * vte_terminal_feed_child:
+ * @terminal: a #VteTerminal
+ * @text: data to send to the child
+ * @length: length of @text in bytes, or -1 if @text is NUL-terminated
+ *
+ * Sends a block of UTF-8 text to the child as if it were entered by the user
+ * at the keyboard.
+ */
+void
+vte_terminal_feed_child(VteTerminal *terminal, const char *text, glong length)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ if (length == ((gssize)-1)) {
+ length = strlen(text);
+ }
+ if (length > 0) {
+ vte_terminal_send(terminal, "UTF-8", text, length,
+ FALSE, FALSE);
+ }
+}
+
+/**
+ * vte_terminal_feed_child_binary:
+ * @terminal: a #VteTerminal
+ * @data: data to send to the child
+ * @length: length of @data
+ *
+ * Sends a block of binary data to the child.
+ *
+ * Since: 0.12.1
+ */
+void
+vte_terminal_feed_child_binary(VteTerminal *terminal, const char *data, glong length)
+{
+ g_assert(VTE_IS_TERMINAL(terminal));
+
+ /* Tell observers that we're sending this to the child. */
+ if (length > 0) {
+ vte_terminal_emit_commit(terminal,
+ data, length);
+
+ /* If there's a place for it to go, add the data to the
+ * outgoing buffer. */
+ if (terminal->pvt->pty != NULL) {
+ _vte_buffer_append(terminal->pvt->outgoing,
+ data, length);
+ /* If we need to start waiting for the child pty to
+ * become available for writing, set that up here. */
+ _vte_terminal_connect_pty_write(terminal);
+ }
+ }
+}
+
+static void
+vte_terminal_feed_child_using_modes(VteTerminal *terminal,
+ const char *data, glong length)
+{
+ if (length == ((gssize)-1)) {
+ length = strlen(data);
+ }
+ if (length > 0) {
+ vte_terminal_send(terminal, "UTF-8", data, length,
+ !terminal->pvt->screen->sendrecv_mode,
+ terminal->pvt->screen->linefeed_mode);
+ }
+}
+
+/* Send text from the input method to the child. */
+static void
+vte_terminal_im_commit(GtkIMContext *im_context, gchar *text, VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Input method committed `%s'.\n", text);
+ vte_terminal_feed_child_using_modes(terminal, text, -1);
+ /* Committed text was committed because the user pressed a key, so
+ * we need to obey the scroll-on-keystroke setting. */
+ if (terminal->pvt->scroll_on_keystroke) {
+ vte_terminal_maybe_scroll_to_bottom(terminal);
+ }
+}
+
+/* We've started pre-editing. */
+static void
+vte_terminal_im_preedit_start(GtkIMContext *im_context, VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Input method pre-edit started.\n");
+ terminal->pvt->im_preedit_active = TRUE;
+}
+
+/* We've stopped pre-editing. */
+static void
+vte_terminal_im_preedit_end(GtkIMContext *im_context, VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Input method pre-edit ended.\n");
+ terminal->pvt->im_preedit_active = FALSE;
+}
+
+/* The pre-edit string changed. */
+static void
+vte_terminal_im_preedit_changed(GtkIMContext *im_context, VteTerminal *terminal)
+{
+ gchar *str;
+ PangoAttrList *attrs;
+ gint cursor;
+
+ gtk_im_context_get_preedit_string(im_context, &str, &attrs, &cursor);
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Input method pre-edit changed (%s,%d).\n",
+ str, cursor);
+
+ /* Queue the area where the current preedit string is being displayed
+ * for repainting. */
+ _vte_invalidate_cursor_once(terminal, FALSE);
+
+ g_free(terminal->pvt->im_preedit);
+ terminal->pvt->im_preedit = str;
+
+ if (terminal->pvt->im_preedit_attrs != NULL) {
+ pango_attr_list_unref(terminal->pvt->im_preedit_attrs);
+ }
+ terminal->pvt->im_preedit_attrs = attrs;
+
+ terminal->pvt->im_preedit_cursor = cursor;
+
+ _vte_invalidate_cursor_once(terminal, FALSE);
+}
+
+/* Handle the toplevel being reconfigured. */
+static gboolean
+vte_terminal_configure_toplevel(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_EVENTS, "Top level parent configured.\n");
+
+ if (terminal->pvt->bg_transparent) {
+ /* We have to repaint the entire window, because we don't get
+ * an expose event unless some portion of our visible area
+ * moved out from behind another window. */
+ _vte_invalidate_all(terminal);
+ }
+
+ return FALSE;
+}
+
+/* Handle a hierarchy-changed signal. */
+static void
+vte_terminal_hierarchy_changed(GtkWidget *widget, GtkWidget *old_toplevel,
+ gpointer data)
+{
+ GtkWidget *toplevel;
+
+ _vte_debug_print(VTE_DEBUG_EVENTS, "Hierarchy changed.\n");
+ if (old_toplevel != NULL) {
+ g_signal_handlers_disconnect_by_func(old_toplevel,
+ vte_terminal_configure_toplevel,
+ widget);
+ }
+
+ toplevel = gtk_widget_get_toplevel(widget);
+ if (toplevel != NULL) {
+ g_signal_connect_swapped (toplevel, "configure-event",
+ G_CALLBACK (vte_terminal_configure_toplevel),
+ widget);
+ }
+}
+
+static void
+vte_terminal_set_inner_border(VteTerminal *terminal)
+{
+ VteTerminalPrivate *pvt = terminal->pvt;
+ GtkWidget *widget = GTK_WIDGET(terminal);
+ GtkBorder *border = NULL;
+ GtkBorder inner_border;
+
+ gtk_widget_style_get(widget, "inner-border", &border, NULL);
+
+ if (border != NULL) {
+ inner_border = *border;
+ gtk_border_free(border);
+ } else {
+ inner_border = default_inner_border;
+ }
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Setting inner-border to { %d, %d, %d, %d }\n",
+ inner_border.left, inner_border.right,
+ inner_border.top, inner_border.bottom);
+
+ if (memcmp(&inner_border, &pvt->inner_border, sizeof(GtkBorder)) == 0)
+ return;
+
+ pvt->inner_border = inner_border;
+
+ gtk_widget_queue_resize(widget);
+}
+
+static void
+vte_terminal_style_set (GtkWidget *widget,
+ GtkStyle *prev_style)
+{
+ VteTerminal *terminal = VTE_TERMINAL(widget);
+ float aspect;
+
+ GTK_WIDGET_CLASS (vte_terminal_parent_class)->style_set (widget, prev_style);
+
+ if (gtk_widget_get_style(widget) == prev_style)
+ return;
+
+ vte_terminal_set_font_full_internal(terminal, terminal->pvt->fontdesc,
+ terminal->pvt->fontantialias);
+
+ vte_terminal_set_inner_border(terminal);
+
+ gtk_widget_style_get(widget, "cursor-aspect-ratio", &aspect, NULL);
+ if (aspect != terminal->pvt->cursor_aspect_ratio) {
+ terminal->pvt->cursor_aspect_ratio = aspect;
+ _vte_invalidate_cursor_once(terminal, FALSE);
+ }
+}
+
+static void
+add_cursor_timeout (VteTerminal *terminal)
+{
+ if (terminal->pvt->cursor_blink_tag)
+ return; /* already added */
+
+ terminal->pvt->cursor_blink_time = 0;
+ terminal->pvt->cursor_blink_tag = g_timeout_add_full(G_PRIORITY_LOW,
+ terminal->pvt->cursor_blink_cycle,
+ (GSourceFunc)vte_invalidate_cursor_periodic,
+ terminal,
+ NULL);
+}
+
+static void
+remove_cursor_timeout (VteTerminal *terminal)
+{
+ if (terminal->pvt->cursor_blink_tag == 0)
+ return; /* already removed */
+
+ g_source_remove (terminal->pvt->cursor_blink_tag);
+ terminal->pvt->cursor_blink_tag = 0;
+}
+
+/* Activates / disactivates the cursor blink timer to reduce wakeups */
+static void
+_vte_check_cursor_blink(VteTerminal *terminal)
+{
+ if (terminal->pvt->has_focus &&
+ terminal->pvt->cursor_blinks &&
+ terminal->pvt->cursor_visible)
+ add_cursor_timeout(terminal);
+ else
+ remove_cursor_timeout(terminal);
+}
+
+void
+_vte_terminal_audible_beep(VteTerminal *terminal)
+{
+ GdkDisplay *display;
+
+ g_assert(VTE_IS_TERMINAL(terminal));
+ display = gtk_widget_get_display(&terminal->widget);
+ gdk_display_beep(display);
+}
+
+void
+_vte_terminal_visible_beep(VteTerminal *terminal)
+{
+ GtkWidget *widget;
+ GtkAllocation allocation;
+ GtkStyle *style;
+ PangoColor color;
+
+ widget = &terminal->widget;
+
+ if (gtk_widget_get_realized (widget)) {
+
+ style = gtk_widget_get_style (widget);
+ gtk_widget_get_allocation (widget, &allocation);
+ color.red = style->fg[gtk_widget_get_state (widget)].red;
+ color.green = style->fg[gtk_widget_get_state (widget)].green;
+ color.blue = style->fg[gtk_widget_get_state (widget)].blue;
+
+ _vte_draw_start(terminal->pvt->draw);
+ _vte_draw_fill_rectangle(terminal->pvt->draw,
+ 0, 0,
+ allocation.width, allocation.height,
+ &color, VTE_DRAW_OPAQUE);
+ _vte_draw_end(terminal->pvt->draw);
+
+ /* Force the repaint, max delay of UPDATE_REPEAT_TIMEOUT */
+ _vte_invalidate_all (terminal);
+ }
+}
+
+void
+_vte_terminal_beep(VteTerminal *terminal)
+{
+ if (terminal->pvt->audible_bell) {
+ _vte_terminal_audible_beep (terminal);
+ }
+ if (terminal->pvt->visible_bell) {
+ _vte_terminal_visible_beep (terminal);
+ }
+}
+
+
+static guint
+vte_translate_ctrlkey (GdkEventKey *event)
+{
+ guint keyval;
+ GdkKeymap *keymap;
+ unsigned int i;
+
+ if (event->keyval < 128)
+ return event->keyval;
+
+#if GTK_CHECK_VERSION (2, 90, 8)
+ keymap = gdk_keymap_get_for_display(gdk_window_get_display (event->window));
+#else
+ keymap = gdk_keymap_get_for_display(gdk_drawable_get_display (event->window));
+#endif
+
+ /* Try groups in order to find one mapping the key to ASCII */
+ for (i = 0; i < 4; i++) {
+ GdkModifierType consumed_modifiers;
+
+ gdk_keymap_translate_keyboard_state (keymap,
+ event->hardware_keycode, event->state,
+ i,
+ &keyval, NULL, NULL, &consumed_modifiers);
+ if (keyval < 128) {
+ _vte_debug_print (VTE_DEBUG_EVENTS,
+ "ctrl+Key, group=%d de-grouped into keyval=0x%x\n",
+ event->group, keyval);
+ return keyval;
+ }
+ }
+
+ return event->keyval;
+}
+
+static void
+vte_terminal_read_modifiers (VteTerminal *terminal,
+ GdkEvent *event)
+{
+ GdkModifierType modifiers;
+
+ /* Read the modifiers. */
+ if (gdk_event_get_state((GdkEvent*)event, &modifiers)) {
+ GdkKeymap *keymap;
+#if GTK_CHECK_VERSION (2, 90, 8)
+ keymap = gdk_keymap_get_for_display(gdk_window_get_display(((GdkEventAny*)event)->window));
+#else
+ keymap = gdk_keymap_get_for_display(gdk_drawable_get_display(((GdkEventAny*)event)->window));
+#endif
+ gdk_keymap_add_virtual_modifiers (keymap, &modifiers);
+ terminal->pvt->modifiers = modifiers;
+ }
+}
+
+/* Read and handle a keypress event. */
+static gint
+vte_terminal_key_press(GtkWidget *widget, GdkEventKey *event)
+{
+ VteTerminal *terminal;
+ GdkModifierType modifiers;
+ struct _vte_termcap *termcap;
+ const char *tterm;
+ char *normal = NULL, *output;
+ gssize normal_length = 0;
+ int i;
+ const char *special = NULL;
+ struct termios tio;
+ gboolean scrolled = FALSE, steal = FALSE, modifier = FALSE, handled,
+ suppress_meta_esc = FALSE;
+ guint keyval = 0;
+ gunichar keychar = 0;
+ char keybuf[VTE_UTF8_BPC];
+
+ terminal = VTE_TERMINAL(widget);
+
+ /* First, check if GtkWidget's behavior already does something with
+ * this key. */
+ if (GTK_WIDGET_CLASS(vte_terminal_parent_class)->key_press_event) {
+ if ((GTK_WIDGET_CLASS(vte_terminal_parent_class))->key_press_event(widget,
+ event)) {
+ return TRUE;
+ }
+ }
+
+ /* If it's a keypress, record that we got the event, in case the
+ * input method takes the event from us. */
+ if (event->type == GDK_KEY_PRESS) {
+ /* Store a copy of the key. */
+ keyval = event->keyval;
+ vte_terminal_read_modifiers (terminal, (GdkEvent*) event);
+
+ /* If we're in margin bell mode and on the border of the
+ * margin, bell. */
+ if (terminal->pvt->margin_bell) {
+ if ((terminal->pvt->screen->cursor_current.col +
+ (glong) terminal->pvt->bell_margin) ==
+ terminal->column_count) {
+ _vte_terminal_beep (terminal);
+ }
+ }
+
+ if (terminal->pvt->cursor_blink_tag != 0)
+ {
+ remove_cursor_timeout (terminal);
+ terminal->pvt->cursor_blink_state = TRUE;
+ add_cursor_timeout (terminal);
+ }
+
+ /* Determine if this is just a modifier key. */
+ modifier = _vte_keymap_key_is_modifier(keyval);
+
+ /* Unless it's a modifier key, hide the pointer. */
+ if (!modifier) {
+ _vte_terminal_set_pointer_visible(terminal, FALSE);
+ }
+
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Keypress, modifiers=0x%x, "
+ "keyval=0x%x, raw string=`%s'.\n",
+ terminal->pvt->modifiers,
+ keyval, event->string);
+
+ /* We steal many keypad keys here. */
+ if (!terminal->pvt->im_preedit_active) {
+ switch (keyval) {
+ case GDK_KEY (KP_Add):
+ case GDK_KEY (KP_Subtract):
+ case GDK_KEY (KP_Multiply):
+ case GDK_KEY (KP_Divide):
+ case GDK_KEY (KP_Enter):
+ steal = TRUE;
+ break;
+ default:
+ break;
+ }
+ if (terminal->pvt->modifiers & VTE_META_MASK) {
+ steal = TRUE;
+ }
+ switch (keyval) {
+ case GDK_KEY (Multi_key):
+ case GDK_KEY (Codeinput):
+ case GDK_KEY (SingleCandidate):
+ case GDK_KEY (MultipleCandidate):
+ case GDK_KEY (PreviousCandidate):
+ case GDK_KEY (Kanji):
+ case GDK_KEY (Muhenkan):
+ case GDK_KEY (Henkan):
+ case GDK_KEY (Romaji):
+ case GDK_KEY (Hiragana):
+ case GDK_KEY (Katakana):
+ case GDK_KEY (Hiragana_Katakana):
+ case GDK_KEY (Zenkaku):
+ case GDK_KEY (Hankaku):
+ case GDK_KEY (Zenkaku_Hankaku):
+ case GDK_KEY (Touroku):
+ case GDK_KEY (Massyo):
+ case GDK_KEY (Kana_Lock):
+ case GDK_KEY (Kana_Shift):
+ case GDK_KEY (Eisu_Shift):
+ case GDK_KEY (Eisu_toggle):
+ steal = FALSE;
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ modifiers = terminal->pvt->modifiers;
+
+ /* Let the input method at this one first. */
+ if (!steal) {
+ if (gtk_widget_get_realized (&terminal->widget)
+ && gtk_im_context_filter_keypress (terminal->pvt->im_context, event)) {
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Keypress taken by IM.\n");
+ return TRUE;
+ }
+ }
+
+ /* Now figure out what to send to the child. */
+ if ((event->type == GDK_KEY_PRESS) && !modifier) {
+ handled = FALSE;
+ /* Map the key to a sequence name if we can. */
+ switch (keyval) {
+ case GDK_KEY (BackSpace):
+ switch (terminal->pvt->backspace_binding) {
+ case VTE_ERASE_ASCII_BACKSPACE:
+ normal = g_strdup("");
+ normal_length = 1;
+ suppress_meta_esc = FALSE;
+ break;
+ case VTE_ERASE_ASCII_DELETE:
+ normal = g_strdup("");
+ normal_length = 1;
+ suppress_meta_esc = FALSE;
+ break;
+ case VTE_ERASE_DELETE_SEQUENCE:
+ special = "kD";
+ suppress_meta_esc = TRUE;
+ break;
+ case VTE_ERASE_TTY:
+ if (terminal->pvt->pty != NULL &&
+ tcgetattr(vte_pty_get_fd(terminal->pvt->pty), &tio) != -1)
+ {
+ normal = g_strdup_printf("%c", tio.c_cc[VERASE]);
+ normal_length = 1;
+ }
+ suppress_meta_esc = FALSE;
+ break;
+ case VTE_ERASE_AUTO:
+ default:
+#ifndef _POSIX_VDISABLE
+#define _POSIX_VDISABLE '\0'
+#endif
+ if (terminal->pvt->pty != NULL &&
+ tcgetattr(vte_pty_get_fd(terminal->pvt->pty), &tio) != -1 &&
+ tio.c_cc[VERASE] != _POSIX_VDISABLE)
+ {
+ normal = g_strdup_printf("%c", tio.c_cc[VERASE]);
+ normal_length = 1;
+ }
+ else
+ {
+ normal = g_strdup("");
+ normal_length = 1;
+ suppress_meta_esc = FALSE;
+ }
+ suppress_meta_esc = FALSE;
+ break;
+ }
+ handled = TRUE;
+ break;
+ case GDK_KEY (KP_Delete):
+ case GDK_KEY (Delete):
+ switch (terminal->pvt->delete_binding) {
+ case VTE_ERASE_ASCII_BACKSPACE:
+ normal = g_strdup("\010");
+ normal_length = 1;
+ break;
+ case VTE_ERASE_ASCII_DELETE:
+ normal = g_strdup("\177");
+ normal_length = 1;
+ break;
+ case VTE_ERASE_TTY:
+ if (terminal->pvt->pty != NULL &&
+ tcgetattr(vte_pty_get_fd(terminal->pvt->pty), &tio) != -1)
+ {
+ normal = g_strdup_printf("%c", tio.c_cc[VERASE]);
+ normal_length = 1;
+ }
+ suppress_meta_esc = FALSE;
+ break;
+ case VTE_ERASE_DELETE_SEQUENCE:
+ case VTE_ERASE_AUTO:
+ default:
+ special = "kD";
+ break;
+ }
+ handled = TRUE;
+ suppress_meta_esc = TRUE;
+ break;
+ case GDK_KEY (KP_Insert):
+ case GDK_KEY (Insert):
+ if (modifiers & GDK_SHIFT_MASK) {
+ if (modifiers & GDK_CONTROL_MASK) {
+ vte_terminal_paste_clipboard(terminal);
+ handled = TRUE;
+ suppress_meta_esc = TRUE;
+ } else {
+ vte_terminal_paste_primary(terminal);
+ handled = TRUE;
+ suppress_meta_esc = TRUE;
+ }
+ } else if (modifiers & GDK_CONTROL_MASK) {
+ vte_terminal_copy_clipboard(terminal);
+ handled = TRUE;
+ suppress_meta_esc = TRUE;
+ }
+ break;
+ /* Keypad/motion keys. */
+ case GDK_KEY (KP_Up):
+ case GDK_KEY (Up):
+ if (modifiers & GDK_CONTROL_MASK
+ && modifiers & GDK_SHIFT_MASK) {
+ vte_terminal_scroll_lines(terminal, -1);
+ scrolled = TRUE;
+ handled = TRUE;
+ suppress_meta_esc = TRUE;
+ }
+ break;
+ case GDK_KEY (KP_Down):
+ case GDK_KEY (Down):
+ if (modifiers & GDK_CONTROL_MASK
+ && modifiers & GDK_SHIFT_MASK) {
+ vte_terminal_scroll_lines(terminal, 1);
+ scrolled = TRUE;
+ handled = TRUE;
+ suppress_meta_esc = TRUE;
+ }
+ break;
+ case GDK_KEY (KP_Page_Up):
+ case GDK_KEY (Page_Up):
+ if (modifiers & GDK_SHIFT_MASK) {
+ vte_terminal_scroll_pages(terminal, -1);
+ scrolled = TRUE;
+ handled = TRUE;
+ suppress_meta_esc = TRUE;
+ }
+ break;
+ case GDK_KEY (KP_Page_Down):
+ case GDK_KEY (Page_Down):
+ if (modifiers & GDK_SHIFT_MASK) {
+ vte_terminal_scroll_pages(terminal, 1);
+ scrolled = TRUE;
+ handled = TRUE;
+ suppress_meta_esc = TRUE;
+ }
+ break;
+ case GDK_KEY (KP_Home):
+ case GDK_KEY (Home):
+ if (modifiers & GDK_SHIFT_MASK) {
+ vte_terminal_maybe_scroll_to_top(terminal);
+ scrolled = TRUE;
+ handled = TRUE;
+ }
+ break;
+ case GDK_KEY (KP_End):
+ case GDK_KEY (End):
+ if (modifiers & GDK_SHIFT_MASK) {
+ vte_terminal_maybe_scroll_to_bottom(terminal);
+ scrolled = TRUE;
+ handled = TRUE;
+ }
+ break;
+ /* Let Shift +/- tweak the font, like XTerm does. */
+ case GDK_KEY (KP_Add):
+ case GDK_KEY (KP_Subtract):
+ if (modifiers &
+ (GDK_SHIFT_MASK | GDK_CONTROL_MASK)) {
+ switch (keyval) {
+ case GDK_KEY (KP_Add):
+ vte_terminal_emit_increase_font_size(terminal);
+ handled = TRUE;
+ suppress_meta_esc = TRUE;
+ break;
+ case GDK_KEY (KP_Subtract):
+ vte_terminal_emit_decrease_font_size(terminal);
+ handled = TRUE;
+ suppress_meta_esc = TRUE;
+ break;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ /* If the above switch statement didn't do the job, try mapping
+ * it to a literal or capability name. */
+ if (handled == FALSE && terminal->pvt->termcap != NULL) {
+ _vte_keymap_map(keyval, modifiers,
+ terminal->pvt->sun_fkey_mode,
+ terminal->pvt->hp_fkey_mode,
+ terminal->pvt->legacy_fkey_mode,
+ terminal->pvt->vt220_fkey_mode,
+ terminal->pvt->cursor_mode == VTE_KEYMODE_APPLICATION,
+ terminal->pvt->keypad_mode == VTE_KEYMODE_APPLICATION,
+ terminal->pvt->termcap,
+ terminal->pvt->emulation ?
+ terminal->pvt->emulation :
vte_terminal_get_default_emulation(terminal),
+ &normal,
+ &normal_length,
+ &special);
+ /* If we found something this way, suppress
+ * escape-on-meta. */
+ if (((normal != NULL) && (normal_length > 0)) ||
+ (special != NULL)) {
+ suppress_meta_esc = TRUE;
+ }
+ }
+
+ /* Shall we do this here or earlier? See bug 375112 and bug 589557 */
+ if (modifiers & GDK_CONTROL_MASK)
+ keyval = vte_translate_ctrlkey(event);
+
+ /* If we didn't manage to do anything, try to salvage a
+ * printable string. */
+ if (handled == FALSE && normal == NULL && special == NULL) {
+
+ /* Convert the keyval to a gunichar. */
+ keychar = gdk_keyval_to_unicode(keyval);
+ normal_length = 0;
+ if (keychar != 0) {
+ /* Convert the gunichar to a string. */
+ normal_length = g_unichar_to_utf8(keychar,
+ keybuf);
+ if (normal_length != 0) {
+ normal = g_malloc(normal_length + 1);
+ memcpy(normal, keybuf, normal_length);
+ normal[normal_length] = '\0';
+ } else {
+ normal = NULL;
+ }
+ }
+ if ((normal != NULL) &&
+ (modifiers & GDK_CONTROL_MASK)) {
+ /* Replace characters which have "control"
+ * counterparts with those counterparts. */
+ for (i = 0; i < normal_length; i++) {
+ if ((((guint8)normal[i]) >= 0x40) &&
+ (((guint8)normal[i]) < 0x80)) {
+ normal[i] &= (~(0x60));
+ }
+ }
+ }
+ _VTE_DEBUG_IF (VTE_DEBUG_EVENTS) {
+ if (normal) g_printerr(
+ "Keypress, modifiers=0x%x, "
+ "keyval=0x%x, cooked string=`%s'.\n",
+ modifiers,
+ keyval, normal);
+ }
+ }
+ /* If we got normal characters, send them to the child. */
+ if (normal != NULL) {
+ if (terminal->pvt->meta_sends_escape &&
+ !suppress_meta_esc &&
+ (normal_length > 0) &&
+ (modifiers & VTE_META_MASK)) {
+ vte_terminal_feed_child(terminal,
+ _VTE_CAP_ESC,
+ 1);
+ }
+ if (normal_length > 0) {
+ vte_terminal_feed_child_using_modes(terminal,
+ normal,
+ normal_length);
+ }
+ g_free(normal);
+ } else
+ /* If the key maps to characters, send them to the child. */
+ if (special != NULL && terminal->pvt->termcap != NULL) {
+ termcap = terminal->pvt->termcap;
+ tterm = terminal->pvt->emulation;
+ normal = _vte_termcap_find_string_length(termcap,
+ tterm,
+ special,
+ &normal_length);
+ _vte_keymap_key_add_key_modifiers(keyval,
+ modifiers,
+ terminal->pvt->sun_fkey_mode,
+ terminal->pvt->hp_fkey_mode,
+ terminal->pvt->legacy_fkey_mode,
+ terminal->pvt->vt220_fkey_mode,
+ terminal->pvt->cursor_mode ==
VTE_KEYMODE_APPLICATION,
+ &normal,
+ &normal_length);
+ output = g_strdup_printf(normal, 1);
+ vte_terminal_feed_child_using_modes(terminal,
+ output, -1);
+ g_free(output);
+ g_free(normal);
+ }
+ /* Keep the cursor on-screen. */
+ if (!scrolled && !modifier &&
+ terminal->pvt->scroll_on_keystroke) {
+ vte_terminal_maybe_scroll_to_bottom(terminal);
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static gboolean
+vte_terminal_key_release(GtkWidget *widget, GdkEventKey *event)
+{
+ VteTerminal *terminal;
+
+ terminal = VTE_TERMINAL(widget);
+
+ vte_terminal_read_modifiers (terminal, (GdkEvent*) event);
+
+ return gtk_widget_get_realized (&terminal->widget)
+ && gtk_im_context_filter_keypress (terminal->pvt->im_context, event);
+}
+
+/**
+ * vte_terminal_is_word_char:
+ * @terminal: a #VteTerminal
+ * @c: a candidate Unicode code point
+ *
+ * Checks if a particular character is considered to be part of a word or not,
+ * based on the values last passed to vte_terminal_set_word_chars().
+ *
+ * Returns: %TRUE if the character is considered to be part of a word
+ */
+gboolean
+vte_terminal_is_word_char(VteTerminal *terminal, gunichar c)
+{
+ guint i;
+ VteWordCharRange *range;
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+
+ if (terminal->pvt->word_chars != NULL) {
+ /* Go through each range and check if c is included. */
+ for (i = 0; i < terminal->pvt->word_chars->len; i++) {
+ range = &g_array_index(terminal->pvt->word_chars,
+ VteWordCharRange,
+ i);
+ if ((c >= range->start) && (c <= range->end))
+ return TRUE;
+ }
+ }
+
+ /* If not ASCII, or ASCII and no array set (or empty array),
+ * fall back on Unicode properties. */
+ return (c >= 0x80 ||
+ (terminal->pvt->word_chars == NULL) ||
+ (terminal->pvt->word_chars->len == 0)) &&
+ g_unichar_isgraph(c) &&
+ !g_unichar_ispunct(c) &&
+ !g_unichar_isspace(c) &&
+ (c != '\0');
+}
+
+/* Check if the characters in the two given locations are in the same class
+ * (word vs. non-word characters). */
+static gboolean
+vte_same_class(VteTerminal *terminal, glong acol, glong arow,
+ glong bcol, glong brow)
+{
+ const VteCell *pcell = NULL;
+ gboolean word_char;
+ if ((pcell = vte_terminal_find_charcell(terminal, acol, arow)) != NULL && pcell->c != 0) {
+ word_char = vte_terminal_is_word_char(terminal, _vte_unistr_get_base (pcell->c));
+
+ /* Lets not group non-wordchars together (bug #25290) */
+ if (!word_char)
+ return FALSE;
+
+ pcell = vte_terminal_find_charcell(terminal, bcol, brow);
+ if (pcell == NULL || pcell->c == 0) {
+ return FALSE;
+ }
+ if (word_char != vte_terminal_is_word_char(terminal, _vte_unistr_get_base (pcell->c))) {
+ return FALSE;
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* Check if we soft-wrapped on the given line. */
+static gboolean
+vte_line_is_wrappable(VteTerminal *terminal, glong row)
+{
+ const VteRowData *rowdata;
+ rowdata = _vte_terminal_find_row_data(terminal, row);
+ return rowdata && rowdata->attr.soft_wrapped;
+}
+
+/* Check if the given point is in the region between the two points,
+ * optionally treating the second point as included in the region or not. */
+static gboolean
+vte_cell_is_between(glong col, glong row,
+ glong acol, glong arow, glong bcol, glong brow,
+ gboolean inclusive)
+{
+ /* Negative between never allowed. */
+ if ((arow > brow) || ((arow == brow) && (acol > bcol))) {
+ return FALSE;
+ }
+ /* Zero-length between only allowed if we're being inclusive. */
+ if ((row == arow) && (row == brow) && (col == acol) && (col == bcol)) {
+ return inclusive;
+ }
+ /* A cell is between two points if it's on a line after the
+ * specified area starts, or before the line where it ends,
+ * or any of the lines in between. */
+ if ((row > arow) && (row < brow)) {
+ return TRUE;
+ }
+ /* It's also between the two points if they're on the same row
+ * the cell lies between the start and end columns. */
+ if ((row == arow) && (row == brow)) {
+ if (col >= acol) {
+ if (col < bcol) {
+ return TRUE;
+ } else {
+ if ((col == bcol) && inclusive) {
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+ }
+ } else {
+ return FALSE;
+ }
+ }
+ /* It's also "between" if it's on the line where the area starts and
+ * at or after the start column, or on the line where the area ends and
+ * before the end column. */
+ if ((row == arow) && (col >= acol)) {
+ return TRUE;
+ } else {
+ if (row == brow) {
+ if (col < bcol) {
+ return TRUE;
+ } else {
+ if ((col == bcol) && inclusive) {
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+ }
+ } else {
+ return FALSE;
+ }
+ }
+ return FALSE;
+}
+
+/* Check if a cell is selected or not. */
+static gboolean
+vte_cell_is_selected(VteTerminal *terminal, glong col, glong row, gpointer data)
+{
+ VteVisualPosition ss, se;
+
+ /* If there's nothing selected, it's an easy question to answer. */
+ if (!terminal->pvt->has_selection) {
+ return FALSE;
+ }
+
+ /* If the selection is obviously bogus, then it's also very easy. */
+ ss = terminal->pvt->selection_start;
+ se = terminal->pvt->selection_end;
+ if ((ss.row < 0) || (se.row < 0)) {
+ return FALSE;
+ }
+
+ /* Limit selection in block mode. */
+ if (terminal->pvt->selection_block_mode) {
+ if (col < ss.col || col > se.col) {
+ return FALSE;
+ }
+ }
+
+ /* Now it boils down to whether or not the point is between the
+ * begin and endpoint of the selection. */
+ return vte_cell_is_between(col, row, ss.col, ss.row, se.col, se.row, TRUE);
+}
+
+/* Once we get text data, actually paste it in. */
+static void
+vte_terminal_paste_cb(GtkClipboard *clipboard, const gchar *text, gpointer data)
+{
+ VteTerminal *terminal;
+ gchar *paste, *p;
+ long length;
+ terminal = data;
+ if (text != NULL) {
+ _vte_debug_print(VTE_DEBUG_SELECTION,
+ "Pasting %"G_GSIZE_FORMAT" UTF-8 bytes.\n",
+ strlen(text));
+ if (!g_utf8_validate(text, -1, NULL)) {
+ g_warning(_("Error (%s) converting data for child, dropping."), g_strerror(EINVAL));
+ return;
+ }
+
+ /* Convert newlines to carriage returns, which more software
+ * is able to cope with (cough, pico, cough). */
+ paste = g_strdup(text);
+ length = strlen(paste);
+ p = paste;
+ while ((p != NULL) && (p - paste < length)) {
+ p = memchr(p, '\n', length - (p - paste));
+ if (p != NULL) {
+ *p = '\r';
+ p++;
+ }
+ }
+ if (terminal->pvt->screen->bracketed_paste_mode)
+ vte_terminal_feed_child(terminal, "\e[200~", -1);
+ vte_terminal_feed_child(terminal, paste, length);
+ if (terminal->pvt->screen->bracketed_paste_mode)
+ vte_terminal_feed_child(terminal, "\e[201~", -1);
+ g_free(paste);
+ }
+}
+
+static void
+vte_terminal_get_mouse_tracking_info (VteTerminal *terminal,
+ int button,
+ long col,
+ long row,
+ unsigned char *pb,
+ unsigned char *px,
+ unsigned char *py)
+{
+ unsigned char cb = 0, cx = 0, cy = 0;
+
+ /* Encode the button information in cb. */
+ switch (button) {
+ case 0: /* Release/no buttons. */
+ cb = 3;
+ break;
+ case 1: /* Left. */
+ cb = 0;
+ break;
+ case 2: /* Middle. */
+ cb = 1;
+ break;
+ case 3: /* Right. */
+ cb = 2;
+ break;
+ case 4:
+ cb = 64; /* Scroll up. */
+ break;
+ case 5:
+ cb = 65; /* Scroll down. */
+ break;
+ }
+ cb += 32; /* 32 for normal */
+
+ /* Encode the modifiers. */
+ if (terminal->pvt->modifiers & GDK_SHIFT_MASK) {
+ cb |= 4;
+ }
+ if (terminal->pvt->modifiers & VTE_META_MASK) {
+ cb |= 8;
+ }
+ if (terminal->pvt->modifiers & GDK_CONTROL_MASK) {
+ cb |= 16;
+ }
+
+ /* Encode the cursor coordinates. */
+ cx = 32 + CLAMP(1 + col,
+ 1, terminal->column_count);
+ cy = 32 + CLAMP(1 + row,
+ 1, terminal->row_count);;
+
+ *pb = cb;
+ *px = cx;
+ *py = cy;
+}
+
+static void
+vte_terminal_send_mouse_button_internal(VteTerminal *terminal,
+ int button,
+ long x,
+ long y)
+{
+ unsigned char cb, cx, cy;
+ char buf[LINE_MAX];
+ gint len;
+ int width = terminal->char_width;
+ int height = terminal->char_height;
+ long col = (x - terminal->pvt->inner_border.left) / width;
+ long row = (y - terminal->pvt->inner_border.top) / height;
+
+ vte_terminal_get_mouse_tracking_info (terminal,
+ button, col, row,
+ &cb, &cx, &cy);
+
+ /* Send event direct to the child, this is binary not text data */
+ len = g_snprintf(buf, sizeof(buf), _VTE_CAP_CSI "M%c%c%c", cb, cx, cy);
+ vte_terminal_feed_child_binary(terminal, buf, len);
+}
+
+/* Send a mouse button click/release notification. */
+static void
+vte_terminal_maybe_send_mouse_button(VteTerminal *terminal,
+ GdkEventButton *event)
+{
+ vte_terminal_read_modifiers (terminal, (GdkEvent*) event);
+
+ switch (event->type) {
+ case GDK_BUTTON_PRESS:
+ if (terminal->pvt->mouse_tracking_mode < MOUSE_TRACKING_SEND_XY_ON_CLICK) {
+ return;
+ }
+ break;
+ case GDK_BUTTON_RELEASE: {
+ if (terminal->pvt->mouse_tracking_mode < MOUSE_TRACKING_SEND_XY_ON_BUTTON) {
+ return;
+ }
+ break;
+ }
+ default:
+ return;
+ break;
+ }
+
+ vte_terminal_send_mouse_button_internal(terminal,
+ (event->type == GDK_BUTTON_PRESS) ? event->button : 0,
+ event->x, event->y);
+}
+
+/* Send a mouse motion notification. */
+static void
+vte_terminal_maybe_send_mouse_drag(VteTerminal *terminal, GdkEventMotion *event)
+{
+ unsigned char cb, cx, cy;
+ char buf[LINE_MAX];
+ gint len;
+ int width = terminal->char_width;
+ int height = terminal->char_height;
+ long col = ((long) event->x - terminal->pvt->inner_border.left) / width;
+ long row = ((long) event->y - terminal->pvt->inner_border.top) / height;
+
+ /* First determine if we even want to send notification. */
+ switch (event->type) {
+ case GDK_MOTION_NOTIFY:
+ if (terminal->pvt->mouse_tracking_mode < MOUSE_TRACKING_CELL_MOTION_TRACKING)
+ return;
+
+ if (terminal->pvt->mouse_tracking_mode < MOUSE_TRACKING_ALL_MOTION_TRACKING) {
+
+ if (terminal->pvt->mouse_last_button == 0) {
+ return;
+ }
+ /* the xterm doc is not clear as to whether
+ * all-tracking also sends degenerate same-cell events */
+ if (col == terminal->pvt->mouse_last_x / width &&
+ row == terminal->pvt->mouse_last_y / height)
+ return;
+ }
+ break;
+ default:
+ return;
+ break;
+ }
+
+ vte_terminal_get_mouse_tracking_info (terminal,
+ terminal->pvt->mouse_last_button, col, row,
+ &cb, &cx, &cy);
+ cb += 32; /* for movement */
+
+ /* Send event direct to the child, this is binary not text data */
+ len = g_snprintf(buf, sizeof(buf), _VTE_CAP_CSI "M%c%c%c", cb, cx, cy);
+ vte_terminal_feed_child_binary(terminal, buf, len);
+}
+
+/* Clear all match hilites. */
+static void
+vte_terminal_match_hilite_clear(VteTerminal *terminal)
+{
+ long srow, scolumn, erow, ecolumn;
+ srow = terminal->pvt->match_start.row;
+ scolumn = terminal->pvt->match_start.col;
+ erow = terminal->pvt->match_end.row;
+ ecolumn = terminal->pvt->match_end.col;
+ terminal->pvt->match_start.row = -1;
+ terminal->pvt->match_start.col = -1;
+ terminal->pvt->match_end.row = -2;
+ terminal->pvt->match_end.col = -2;
+ if (terminal->pvt->match_tag != -1) {
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Clearing hilite (%ld,%ld) to (%ld,%ld).\n",
+ srow, scolumn, erow, ecolumn);
+ _vte_invalidate_region (terminal,
+ scolumn, ecolumn, srow, erow, FALSE);
+ terminal->pvt->match_tag = -1;
+ }
+ terminal->pvt->show_match = FALSE;
+ if (terminal->pvt->match) {
+ g_free (terminal->pvt->match);
+ terminal->pvt->match = NULL;
+ }
+}
+
+static gboolean
+cursor_inside_match (VteTerminal *terminal, long x, long y)
+{
+ gint width = terminal->char_width;
+ gint height = terminal->char_height;
+ glong col = x / width;
+ glong row = y / height + terminal->pvt->screen->scroll_delta;
+ if (terminal->pvt->match_start.row == terminal->pvt->match_end.row) {
+ return row == terminal->pvt->match_start.row &&
+ col >= terminal->pvt->match_start.col &&
+ col <= terminal->pvt->match_end.col;
+ } else {
+ if (row < terminal->pvt->match_start.row ||
+ row > terminal->pvt->match_end.row) {
+ return FALSE;
+ }
+ if (row == terminal->pvt->match_start.row) {
+ return col >= terminal->pvt->match_start.col;
+ }
+ if (row == terminal->pvt->match_end.row) {
+ return col <= terminal->pvt->match_end.col;
+ }
+ return TRUE;
+ }
+}
+
+static void
+vte_terminal_match_hilite_show(VteTerminal *terminal, long x, long y)
+{
+ if(terminal->pvt->match != NULL && !terminal->pvt->show_match){
+ if (cursor_inside_match (terminal, x, y)) {
+ _vte_invalidate_region (terminal,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_end.col,
+ terminal->pvt->match_start.row,
+ terminal->pvt->match_end.row,
+ FALSE);
+ terminal->pvt->show_match = TRUE;
+ }
+ }
+}
+static void
+vte_terminal_match_hilite_hide(VteTerminal *terminal)
+{
+ if(terminal->pvt->match != NULL && terminal->pvt->show_match){
+ _vte_invalidate_region (terminal,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_end.col,
+ terminal->pvt->match_start.row,
+ terminal->pvt->match_end.row,
+ FALSE);
+ terminal->pvt->show_match = FALSE;
+ }
+}
+
+
+static void
+vte_terminal_match_hilite_update(VteTerminal *terminal, long x, long y)
+{
+ int start, end, width, height;
+ char *match;
+ struct _VteCharAttributes *attr;
+ VteScreen *screen;
+ long delta;
+
+ width = terminal->char_width;
+ height = terminal->char_height;
+
+ /* Check for matches. */
+ screen = terminal->pvt->screen;
+ delta = screen->scroll_delta;
+
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Match hilite update (%ld, %ld) -> %ld, %ld\n",
+ x, y,
+ x / width,
+ y / height + delta);
+
+ match = vte_terminal_match_check_internal(terminal,
+ x / width,
+ y / height + delta,
+ &terminal->pvt->match_tag,
+ &start,
+ &end);
+ if (terminal->pvt->show_match) {
+ /* Repaint what used to be hilited, if anything. */
+ _vte_invalidate_region(terminal,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_end.col,
+ terminal->pvt->match_start.row,
+ terminal->pvt->match_end.row,
+ FALSE);
+ }
+
+ /* Read the new locations. */
+ attr = NULL;
+ if ((guint) start < terminal->pvt->match_attributes->len) {
+ attr = &g_array_index(terminal->pvt->match_attributes,
+ struct _VteCharAttributes,
+ start);
+ terminal->pvt->match_start.row = attr->row;
+ terminal->pvt->match_start.col = attr->column;
+
+ attr = NULL;
+ if ((guint) end < terminal->pvt->match_attributes->len) {
+ attr = &g_array_index(terminal->pvt->match_attributes,
+ struct _VteCharAttributes,
+ end);
+ terminal->pvt->match_end.row = attr->row;
+ terminal->pvt->match_end.col = attr->column;
+ }
+ }
+ if (attr == NULL) { /* i.e. if either endpoint is not found */
+ terminal->pvt->match_start.row = -1;
+ terminal->pvt->match_start.col = -1;
+ terminal->pvt->match_end.row = -2;
+ terminal->pvt->match_end.col = -2;
+ g_assert (match == NULL);
+ }
+
+ g_free (terminal->pvt->match);
+ terminal->pvt->match = match;
+
+ /* If there are no matches, repaint what we had matched before. */
+ if (match == NULL) {
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "No matches. [(%ld,%ld) to (%ld,%ld)]\n",
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_start.row,
+ terminal->pvt->match_end.col,
+ terminal->pvt->match_end.row);
+ terminal->pvt->show_match = FALSE;
+ } else {
+ terminal->pvt->show_match = TRUE;
+ /* Repaint the newly-hilited area. */
+ _vte_invalidate_region(terminal,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_end.col,
+ terminal->pvt->match_start.row,
+ terminal->pvt->match_end.row,
+ FALSE);
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Matched (%ld,%ld) to (%ld,%ld).\n",
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_start.row,
+ terminal->pvt->match_end.col,
+ terminal->pvt->match_end.row);
+ }
+}
+/* Update the hilited text if the pointer has moved to a new character cell. */
+static void
+vte_terminal_match_hilite(VteTerminal *terminal, long x, long y)
+{
+ int width, height;
+ GtkAllocation allocation;
+
+ width = terminal->char_width;
+ height = terminal->char_height;
+
+ gtk_widget_get_allocation (&terminal->widget, &allocation);
+
+ /* if the cursor is not above a cell, skip */
+ if (x < 0 || x > allocation.width
+ || y < 0 || y > allocation.height) {
+ return;
+ }
+
+ /* If the pointer hasn't moved to another character cell, then we
+ * need do nothing. */
+ if (x / width == terminal->pvt->mouse_last_x / width &&
+ y / height == terminal->pvt->mouse_last_y / height) {
+ terminal->pvt->show_match = terminal->pvt->match != NULL;
+ return;
+ }
+
+ if (cursor_inside_match (terminal, x, y)) {
+ terminal->pvt->show_match = terminal->pvt->match != NULL;
+ return;
+ }
+
+ vte_terminal_match_hilite_update(terminal, x, y);
+}
+
+
+/* Note that the clipboard has cleared. */
+static void
+vte_terminal_clear_cb(GtkClipboard *clipboard, gpointer owner)
+{
+ VteTerminal *terminal;
+ terminal = owner;
+ if (terminal->pvt->has_selection) {
+ _vte_debug_print(VTE_DEBUG_SELECTION, "Lost selection.\n");
+ vte_terminal_deselect_all(terminal);
+ }
+}
+
+/* Supply the selected text to the clipboard. */
+static void
+vte_terminal_copy_cb(GtkClipboard *clipboard, GtkSelectionData *data,
+ guint info, gpointer owner)
+{
+ VteTerminal *terminal;
+ terminal = owner;
+ if (terminal->pvt->selection != NULL) {
+ _VTE_DEBUG_IF(VTE_DEBUG_SELECTION) {
+ int i;
+ g_printerr("Setting selection (%"G_GSIZE_FORMAT" UTF-8 bytes.)\n",
+ strlen(terminal->pvt->selection));
+ for (i = 0; terminal->pvt->selection[i] != '\0'; i++) {
+ g_printerr("0x%04x\n",
+ terminal->pvt->selection[i]);
+ }
+ }
+ gtk_selection_data_set_text(data, terminal->pvt->selection, -1);
+ }
+}
+
+/**
+ * VteSelectionFunc:
+ * @terminal: terminal in which the cell is.
+ * @column: column in which the cell is.
+ * @row: row in which the cell is.
+ * @data: user data.
+ *
+ * Specifies the type of a selection function used to check whether
+ * a cell has to be selected or not.
+ *
+ * Returns: %TRUE if cell has to be selected; %FALSE if otherwise.
+ */
+
+/**
+ * vte_terminal_get_text_range:
+ * @terminal: a #VteTerminal
+ * @start_row: first row to search for data
+ * @start_col: first column to search for data
+ * @end_row: last row to search for data
+ * @end_col: last column to search for data
+ * @is_selected: a #VteSelectionFunc callback
+ * @user_data: (closure): user data to be passed to the callback
+ * @attributes: (out) (transfer full) (array) (element-type Vte.CharAttributes): location for storing text
attributes
+ *
+ * Extracts a view of the visible part of the terminal. If @is_selected is not
+ * %NULL, characters will only be read if @is_selected returns %TRUE after being
+ * passed the column and row, respectively. A #VteCharAttributes structure
+ * is added to @attributes for each byte added to the returned string detailing
+ * the character's position, colors, and other characteristics. The
+ * entire scrollback buffer is scanned, so it is possible to read the entire
+ * contents of the buffer using this function.
+ *
+ * Returns: (transfer full): a newly allocated text string, or %NULL.
+ */
+char *
+vte_terminal_get_text_range(VteTerminal *terminal,
+ glong start_row, glong start_col,
+ glong end_row, glong end_col,
+ VteSelectionFunc is_selected,
+ gpointer user_data,
+ GArray *attributes)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ return vte_terminal_get_text_range_maybe_wrapped(terminal,
+ start_row, start_col,
+ end_row, end_col,
+ TRUE,
+ is_selected,
+ user_data,
+ attributes,
+ FALSE);
+}
+
+static char *
+vte_terminal_get_text_range_maybe_wrapped(VteTerminal *terminal,
+ glong start_row, glong start_col,
+ glong end_row, glong end_col,
+ gboolean wrap,
+ VteSelectionFunc is_selected,
+ gpointer data,
+ GArray *attributes,
+ gboolean include_trailing_spaces)
+{
+ glong col, row, last_empty, last_emptycol, last_nonempty, last_nonemptycol;
+ VteScreen *screen;
+ const VteCell *pcell = NULL;
+ GString *string;
+ struct _VteCharAttributes attr;
+ PangoColor fore, back, *palette;
+
+ if (!is_selected)
+ is_selected = always_selected;
+
+ screen = terminal->pvt->screen;
+
+ if (attributes)
+ g_array_set_size (attributes, 0);
+
+ string = g_string_new(NULL);
+ memset(&attr, 0, sizeof(attr));
+
+ palette = terminal->pvt->palette;
+ col = start_col;
+ for (row = start_row; row < end_row + 1; row++, col = 0) {
+ const VteRowData *row_data = _vte_terminal_find_row_data (terminal, row);
+ last_empty = last_nonempty = string->len;
+ last_emptycol = last_nonemptycol = -1;
+
+ attr.row = row;
+ attr.column = col;
+ pcell = NULL;
+ if (row_data != NULL) {
+ while ((pcell = _vte_row_data_get (row_data, col))) {
+
+ attr.column = col;
+
+ /* If it's not part of a multi-column character,
+ * and passes the selection criterion, add it to
+ * the selection. */
+ if (!pcell->attr.fragment && is_selected(terminal, col, row, data)) {
+ /* Store the attributes of this character. */
+ fore = palette[pcell->attr.fore];
+ back = palette[pcell->attr.back];
+ attr.fore.red = fore.red;
+ attr.fore.green = fore.green;
+ attr.fore.blue = fore.blue;
+ attr.back.red = back.red;
+ attr.back.green = back.green;
+ attr.back.blue = back.blue;
+ attr.underline = pcell->attr.underline;
+ attr.strikethrough = pcell->attr.strikethrough;
+
+ /* Store the cell string */
+ if (pcell->c == 0) {
+ g_string_append_c (string, ' ');
+ last_empty = string->len;
+ last_emptycol = col;
+ } else {
+ _vte_unistr_append_to_string (pcell->c, string);
+ last_nonempty = string->len;
+ last_nonemptycol = col;
+ }
+
+ /* If we added text to the string, record its
+ * attributes, one per byte. */
+ if (attributes) {
+ vte_g_array_fill(attributes,
+ &attr, string->len);
+ }
+ }
+ /* If we're on the last line, and have just looked in
+ * the last column, stop. */
+ if ((row == end_row) && (col >= end_col)) {
+ break;
+ }
+
+ col++;
+ }
+ }
+
+ /* If the last thing we saw was a empty, and we stopped at the
+ * right edge of the selected area, trim the trailing spaces
+ * off of the line. */
+ if (!include_trailing_spaces && last_empty > last_nonempty) {
+
+ col = last_emptycol + 1;
+
+ if (row_data != NULL) {
+ while ((pcell = _vte_row_data_get (row_data, col))) {
+ col++;
+
+ if (pcell->attr.fragment)
+ continue;
+
+ if (pcell->c != 0)
+ break;
+ }
+ }
+ if (pcell == NULL) {
+ g_string_truncate(string, last_nonempty);
+ if (attributes)
+ g_array_set_size(attributes, string->len);
+ attr.column = last_nonemptycol;
+ }
+ }
+
+ /* Adjust column, in case we want to append a newline */
+ attr.column = MAX(terminal->column_count, attr.column + 1);
+
+ /* Add a newline in block mode. */
+ if (terminal->pvt->selection_block_mode) {
+ string = g_string_append_c(string, '\n');
+ }
+ /* Else, if the last visible column on this line was selected and
+ * not soft-wrapped, append a newline. */
+ else if (is_selected(terminal, terminal->column_count, row, data)) {
+ /* If we didn't softwrap, add a newline. */
+ /* XXX need to clear row->soft_wrap on deletion! */
+ if (!vte_line_is_wrappable(terminal, row)) {
+ string = g_string_append_c(string, '\n');
+ }
+ }
+
+ /* Make sure that the attributes array is as long as the string. */
+ if (attributes) {
+ vte_g_array_fill (attributes, &attr, string->len);
+ }
+ }
+ /* Sanity check. */
+ g_assert(attributes == NULL || string->len == attributes->len);
+ return g_string_free(string, FALSE);
+}
+
+static char *
+vte_terminal_get_text_maybe_wrapped(VteTerminal *terminal,
+ gboolean wrap,
+ VteSelectionFunc is_selected,
+ gpointer data,
+ GArray *attributes,
+ gboolean include_trailing_spaces)
+{
+ long start_row, start_col, end_row, end_col;
+ start_row = terminal->pvt->screen->scroll_delta;
+ start_col = 0;
+ end_row = start_row + terminal->row_count - 1;
+ end_col = terminal->column_count - 1;
+ return vte_terminal_get_text_range_maybe_wrapped(terminal,
+ start_row, start_col,
+ end_row, end_col,
+ wrap,
+ is_selected,
+ data,
+ attributes,
+ include_trailing_spaces);
+}
+
+/**
+ * vte_terminal_get_text:
+ * @terminal: a #VteTerminal
+ * @is_selected: a #VteSelectionFunc callback
+ * @user_data: (closure): user data to be passed to the callback
+ * @attributes: (out) (transfer full) (array) (element-type Vte.CharAttributes): location for storing text
attributes
+ *
+ * Extracts a view of the visible part of the terminal. If @is_selected is not
+ * %NULL, characters will only be read if @is_selected returns %TRUE after being
+ * passed the column and row, respectively. A #VteCharAttributes structure
+ * is added to @attributes for each byte added to the returned string detailing
+ * the character's position, colors, and other characteristics.
+ *
+ * Returns: (transfer full): a newly allocated text string, or %NULL.
+ */
+char *
+vte_terminal_get_text(VteTerminal *terminal,
+ VteSelectionFunc is_selected,
+ gpointer user_data,
+ GArray *attributes)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ return vte_terminal_get_text_maybe_wrapped(terminal,
+ TRUE,
+ is_selected,
+ user_data,
+ attributes,
+ FALSE);
+}
+
+/**
+ * vte_terminal_get_text_include_trailing_spaces:
+ * @terminal: a #VteTerminal
+ * @is_selected: a #VteSelectionFunc callback
+ * @user_data: (closure): user data to be passed to the callback
+ * @attributes: (out) (transfer full) (array) (element-type Vte.CharAttributes): location for storing text
attributes
+ *
+ * Extracts a view of the visible part of the terminal. If @is_selected is not
+ * %NULL, characters will only be read if @is_selected returns %TRUE after being
+ * passed the column and row, respectively. A #VteCharAttributes structure
+ * is added to @attributes for each byte added to the returned string detailing
+ * the character's position, colors, and other characteristics. This function
+ * differs from vte_terminal_get_text() in that trailing spaces at the end of
+ * lines are included.
+ *
+ * Returns: (transfer full): a newly allocated text string, or %NULL.
+ *
+ * Since: 0.11.11
+ */
+char *
+vte_terminal_get_text_include_trailing_spaces(VteTerminal *terminal,
+ VteSelectionFunc is_selected,
+ gpointer user_data,
+ GArray *attributes)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ return vte_terminal_get_text_maybe_wrapped(terminal,
+ TRUE,
+ is_selected,
+ user_data,
+ attributes,
+ TRUE);
+}
+
+/**
+ * vte_terminal_get_cursor_position:
+ * @terminal: a #VteTerminal
+ * @column: (out) (allow-none): a location to store the column, or %NULL
+ * @row : (out) (allow-none): a location to store the row, or %NULL
+ *
+ * Reads the location of the insertion cursor and returns it. The row
+ * coordinate is absolute.
+ */
+void
+vte_terminal_get_cursor_position(VteTerminal *terminal,
+ glong *column, glong *row)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ if (column) {
+ *column = terminal->pvt->screen->cursor_current.col;
+ }
+ if (row) {
+ *row = terminal->pvt->screen->cursor_current.row;
+ }
+}
+
+static GtkClipboard *
+vte_terminal_clipboard_get(VteTerminal *terminal, GdkAtom board)
+{
+ GdkDisplay *display;
+ display = gtk_widget_get_display(&terminal->widget);
+ return gtk_clipboard_get_for_display(display, board);
+}
+
+/* Place the selected text onto the clipboard. Do this asynchronously so that
+ * we get notified when the selection we placed on the clipboard is replaced. */
+static void
+vte_terminal_copy(VteTerminal *terminal, GdkAtom board)
+{
+ GtkClipboard *clipboard;
+ static GtkTargetEntry *targets = NULL;
+ static gint n_targets = 0;
+
+ clipboard = vte_terminal_clipboard_get(terminal, board);
+
+ /* Chuck old selected text and retrieve the newly-selected text. */
+ g_free(terminal->pvt->selection);
+ terminal->pvt->selection =
+ vte_terminal_get_text_range(terminal,
+ terminal->pvt->selection_start.row,
+ 0,
+ terminal->pvt->selection_end.row,
+ terminal->column_count,
+ vte_cell_is_selected,
+ NULL,
+ NULL);
+ terminal->pvt->has_selection = TRUE;
+
+ /* Place the text on the clipboard. */
+ if (terminal->pvt->selection != NULL) {
+ _vte_debug_print(VTE_DEBUG_SELECTION,
+ "Assuming ownership of selection.\n");
+ if (!targets) {
+ GtkTargetList *list;
+
+ list = gtk_target_list_new (NULL, 0);
+ gtk_target_list_add_text_targets (list, 0);
+ targets = gtk_target_table_new_from_list (list, &n_targets);
+ gtk_target_list_unref (list);
+ }
+
+ gtk_clipboard_set_with_owner(clipboard,
+ targets,
+ n_targets,
+ vte_terminal_copy_cb,
+ vte_terminal_clear_cb,
+ G_OBJECT(terminal));
+ gtk_clipboard_set_can_store(clipboard, NULL, 0);
+ }
+}
+
+/* Paste from the given clipboard. */
+static void
+vte_terminal_paste(VteTerminal *terminal, GdkAtom board)
+{
+ GtkClipboard *clipboard;
+ clipboard = vte_terminal_clipboard_get(terminal, board);
+ if (clipboard != NULL) {
+ _vte_debug_print(VTE_DEBUG_SELECTION,
+ "Requesting clipboard contents.\n");
+ gtk_clipboard_request_text(clipboard,
+ vte_terminal_paste_cb,
+ terminal);
+ }
+}
+
+static void
+vte_terminal_invalidate_selection (VteTerminal *terminal)
+{
+ _vte_invalidate_region (terminal,
+ terminal->pvt->selection_start.col,
+ terminal->pvt->selection_end.col,
+ terminal->pvt->selection_start.row,
+ terminal->pvt->selection_end.row,
+ terminal->pvt->selection_block_mode);
+}
+
+
+/* Start selection at the location of the event. */
+static void
+vte_terminal_start_selection(VteTerminal *terminal, GdkEventButton *event,
+ enum vte_selection_type selection_type)
+{
+ long delta;
+
+ terminal->pvt->selection_block_mode = !!(terminal->pvt->modifiers & GDK_CONTROL_MASK);
+
+ if (terminal->pvt->selection_block_mode)
+ selection_type = selection_type_char;
+
+ /* Record that we have the selection, and where it started. */
+ delta = terminal->pvt->screen->scroll_delta;
+ terminal->pvt->has_selection = TRUE;
+ terminal->pvt->selection_last.x = event->x - terminal->pvt->inner_border.left;
+ terminal->pvt->selection_last.y = event->y - terminal->pvt->inner_border.top +
+ (terminal->char_height * delta);
+
+ /* Decide whether or not to restart on the next drag. */
+ switch (selection_type) {
+ case selection_type_char:
+ /* Restart selection once we register a drag. */
+ terminal->pvt->selecting_restart = TRUE;
+ terminal->pvt->has_selection = FALSE;
+ terminal->pvt->selecting_had_delta = FALSE;
+
+ terminal->pvt->selection_origin = terminal->pvt->selection_last;
+ break;
+ case selection_type_word:
+ case selection_type_line:
+ /* Mark the newly-selected areas now. */
+ terminal->pvt->selecting_restart = FALSE;
+ terminal->pvt->has_selection = FALSE;
+ terminal->pvt->selecting_had_delta = FALSE;
+ break;
+ }
+
+ /* Record the selection type. */
+ terminal->pvt->selection_type = selection_type;
+ terminal->pvt->selecting = TRUE;
+
+ _vte_debug_print(VTE_DEBUG_SELECTION,
+ "Selection started at (%ld,%ld).\n",
+ terminal->pvt->selection_start.col,
+ terminal->pvt->selection_start.row);
+
+ /* Temporarily stop caring about input from the child. */
+ _vte_terminal_disconnect_pty_read(terminal);
+}
+
+static gboolean
+_vte_terminal_maybe_end_selection (VteTerminal *terminal)
+{
+ if (terminal->pvt->selecting) {
+ /* Copy only if something was selected. */
+ if (terminal->pvt->has_selection &&
+ !terminal->pvt->selecting_restart &&
+ terminal->pvt->selecting_had_delta) {
+ vte_terminal_copy_primary(terminal);
+ vte_terminal_emit_selection_changed(terminal);
+ }
+ terminal->pvt->selecting = FALSE;
+
+ /* Reconnect to input from the child if we paused it. */
+ _vte_terminal_connect_pty_read(terminal);
+
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static long
+math_div (long a, long b)
+{
+ if (G_LIKELY (a >= 0))
+ return a / b;
+ else
+ return (a / b) - 1;
+}
+
+/* Helper */
+static void
+vte_terminal_extend_selection_expand (VteTerminal *terminal)
+{
+ long i, j;
+ VteScreen *screen;
+ const VteRowData *rowdata;
+ const VteCell *cell;
+ VteVisualPosition *sc, *ec;
+
+ if (terminal->pvt->selection_block_mode)
+ return;
+
+ screen = terminal->pvt->screen;
+ sc = &terminal->pvt->selection_start;
+ ec = &terminal->pvt->selection_end;
+
+ /* Extend the selection to handle end-of-line cases, word, and line
+ * selection. We do this here because calculating it once is cheaper
+ * than recalculating for each cell as we render it. */
+
+ /* Handle end-of-line at the start-cell. */
+ rowdata = _vte_terminal_find_row_data(terminal, sc->row);
+ if (rowdata != NULL) {
+ /* Find the last non-empty character on the first line. */
+ for (i = _vte_row_data_length (rowdata); i > 0; i--) {
+ cell = _vte_row_data_get (rowdata, i - 1);
+ if (cell->attr.fragment || cell->c != 0)
+ break;
+ }
+ /* If the start point is to its right, then move the
+ * startpoint up to the beginning of the next line
+ * unless that would move the startpoint after the end
+ * point, or we're in select-by-line mode. */
+ if ((sc->col >= i) &&
+ (terminal->pvt->selection_type != selection_type_line)) {
+ if (sc->row < ec->row) {
+ sc->col = 0;
+ sc->row++;
+ } else {
+ sc->col = i;
+ }
+ }
+ } else {
+ /* Snap to the leftmost column. */
+ sc->col = 0;
+ }
+ sc->col = find_start_column (terminal, sc->col, sc->row);
+
+ /* Handle end-of-line at the end-cell. */
+ rowdata = _vte_terminal_find_row_data(terminal, ec->row);
+ if (rowdata != NULL) {
+ /* Find the last non-empty character on the last line. */
+ for (i = _vte_row_data_length (rowdata); i > 0; i--) {
+ cell = _vte_row_data_get (rowdata, i - 1);
+ if (cell->attr.fragment || cell->c != 0)
+ break;
+ }
+ /* If the end point is to its right, then extend the
+ * endpoint as far right as we can expect. */
+ if (ec->col >= i) {
+ ec->col = MAX(ec->col,
+ MAX(terminal->column_count,
+ (long) _vte_row_data_length (rowdata)));
+ }
+ } else {
+ /* Snap to the rightmost column, only if selecting anything of
+ * this row. */
+ if (ec->col >= 0)
+ ec->col = MAX(ec->col, terminal->column_count);
+ }
+ ec->col = find_end_column (terminal, ec->col, ec->row);
+
+
+ /* Now extend again based on selection type. */
+ switch (terminal->pvt->selection_type) {
+ case selection_type_char:
+ /* Nothing more to do. */
+ break;
+ case selection_type_word:
+ /* Keep selecting to the left as long as the next character we
+ * look at is of the same class as the current start point. */
+ i = sc->col;
+ j = sc->row;
+ while (_vte_ring_contains (screen->row_data, j)) {
+ /* Get the data for the row we're looking at. */
+ rowdata = _vte_ring_index(screen->row_data, j);
+ if (rowdata == NULL) {
+ break;
+ }
+ /* Back up. */
+ for (i = (j == sc->row) ?
+ sc->col :
+ terminal->column_count;
+ i > 0;
+ i--) {
+ if (vte_same_class(terminal,
+ i - 1,
+ j,
+ i,
+ j)) {
+ sc->col = i - 1;
+ sc->row = j;
+ } else {
+ break;
+ }
+ }
+ if (i > 0) {
+ /* We hit a stopping point, so stop. */
+ break;
+ } else {
+ if (vte_line_is_wrappable(terminal, j - 1) &&
+ vte_same_class(terminal,
+ terminal->column_count - 1,
+ j - 1,
+ 0,
+ j)) {
+ /* Move on to the previous line. */
+ j--;
+ sc->col = terminal->column_count - 1;
+ sc->row = j;
+ } else {
+ break;
+ }
+ }
+ }
+ /* Keep selecting to the right as long as the next character we
+ * look at is of the same class as the current end point. */
+ i = ec->col;
+ j = ec->row;
+ while (_vte_ring_contains (screen->row_data, j)) {
+ /* Get the data for the row we're looking at. */
+ rowdata = _vte_ring_index(screen->row_data, j);
+ if (rowdata == NULL) {
+ break;
+ }
+ /* Move forward. */
+ for (i = (j == ec->row) ?
+ ec->col :
+ 0;
+ i < terminal->column_count - 1;
+ i++) {
+ if (vte_same_class(terminal,
+ i,
+ j,
+ i + 1,
+ j)) {
+ ec->col = i + 1;
+ ec->row = j;
+ } else {
+ break;
+ }
+ }
+ if (i < terminal->column_count - 1) {
+ /* We hit a stopping point, so stop. */
+ break;
+ } else {
+ if (vte_line_is_wrappable(terminal, j) &&
+ vte_same_class(terminal,
+ terminal->column_count - 1,
+ j,
+ 0,
+ j + 1)) {
+ /* Move on to the next line. */
+ j++;
+ ec->col = 0;
+ ec->row = j;
+ } else {
+ break;
+ }
+ }
+ }
+ break;
+ case selection_type_line:
+ /* Extend the selection to the beginning of the start line. */
+ sc->col = 0;
+ /* Now back up as far as we can go. */
+ j = sc->row;
+ while (_vte_ring_contains (screen->row_data, j - 1) &&
+ vte_line_is_wrappable(terminal, j - 1)) {
+ j--;
+ sc->row = j;
+ }
+ /* And move forward as far as we can go. */
+ j = ec->row;
+ while (_vte_ring_contains (screen->row_data, j) &&
+ vte_line_is_wrappable(terminal, j)) {
+ j++;
+ ec->row = j;
+ }
+ /* Make sure we include all of the last line. */
+ ec->col = terminal->column_count;
+ if (_vte_ring_contains (screen->row_data, ec->row)) {
+ rowdata = _vte_ring_index(screen->row_data, ec->row);
+ if (rowdata != NULL) {
+ ec->col = MAX(ec->col, (long) _vte_row_data_length (rowdata));
+ }
+ }
+ break;
+ }
+}
+
+/* Extend selection to include the given event coordinates. */
+static void
+vte_terminal_extend_selection(VteTerminal *terminal, long x, long y,
+ gboolean always_grow, gboolean force)
+{
+ VteScreen *screen;
+ int width, height;
+ long delta, residual;
+ struct selection_event_coords *origin, *last, *start, *end;
+ VteVisualPosition old_start, old_end, *sc, *ec, *so, *eo;
+ gboolean invalidate_selected = FALSE;
+ gboolean had_selection;
+
+ height = terminal->char_height;
+ width = terminal->char_width;
+
+ /* Confine y into the visible area. (#563024) */
+ if (y < 0) {
+ y = 0;
+ if (!terminal->pvt->selection_block_mode)
+ x = 0;
+ } else if (y >= terminal->row_count * height) {
+ if (!terminal->pvt->selection_block_mode) {
+ y = terminal->row_count * height;
+ x = -1;
+ } else {
+ y = terminal->row_count * height - 1;
+ }
+ }
+
+ screen = terminal->pvt->screen;
+ old_start = terminal->pvt->selection_start;
+ old_end = terminal->pvt->selection_end;
+ so = &old_start;
+ eo = &old_end;
+
+ /* Convert the event coordinates to cell coordinates. */
+ delta = screen->scroll_delta;
+
+ /* If we're restarting on a drag, then mark this as the start of
+ * the selected block. */
+ if (terminal->pvt->selecting_restart) {
+ vte_terminal_deselect_all(terminal);
+ invalidate_selected = TRUE;
+ _vte_debug_print(VTE_DEBUG_SELECTION,
+ "Selection delayed start at (%ld,%ld).\n",
+ terminal->pvt->selection_origin.x / width,
+ terminal->pvt->selection_origin.y / height);
+ }
+
+ /* Recognize that we've got a selected block. */
+ had_selection = terminal->pvt->has_selection;
+ terminal->pvt->has_selection = TRUE;
+ terminal->pvt->selecting_had_delta = TRUE;
+ terminal->pvt->selecting_restart = FALSE;
+
+ /* If we're not in always-grow mode, update the last location of
+ * the selection. */
+ last = &terminal->pvt->selection_last;
+
+ /* Map the origin and last selected points to a start and end. */
+ origin = &terminal->pvt->selection_origin;
+ if (terminal->pvt->selection_block_mode) {
+ last->x = x;
+ last->y = y + height * delta;
+
+ /* We don't support always_grow in block mode */
+ if (always_grow)
+ vte_terminal_invalidate_selection (terminal);
+
+ if (origin->y <= last->y) {
+ /* The origin point is "before" the last point. */
+ start = origin;
+ end = last;
+ } else {
+ /* The last point is "before" the origin point. */
+ start = last;
+ end = origin;
+ }
+ } else {
+ if (!always_grow) {
+ last->x = x;
+ last->y = y + height * delta;
+ }
+
+ if ((origin->y / height < last->y / height) ||
+ ((origin->y / height == last->y / height) &&
+ (origin->x / width < last->x / width ))) {
+ /* The origin point is "before" the last point. */
+ start = origin;
+ end = last;
+ } else {
+ /* The last point is "before" the origin point. */
+ start = last;
+ end = origin;
+ }
+
+ /* Extend the selection by moving whichever end of the selection is
+ * closer to the new point. */
+ if (always_grow) {
+ /* New endpoint is before existing selection. */
+ if ((y / height < ((start->y / height) - delta)) ||
+ ((y / height == ((start->y / height) - delta)) &&
+ (x / width < start->x / width))) {
+ start->x = x;
+ start->y = y + height * delta;
+ } else {
+ /* New endpoint is after existing selection. */
+ end->x = x;
+ end->y = y + height * delta;
+ }
+ }
+ }
+
+#if 0
+ _vte_debug_print(VTE_DEBUG_SELECTION,
+ "Selection is (%ld,%ld) to (%ld,%ld).\n",
+ start->x, start->y, end->x, end->y);
+#endif
+
+ /* Recalculate the selection area in terms of cell positions. */
+
+ sc = &terminal->pvt->selection_start;
+ ec = &terminal->pvt->selection_end;
+
+ sc->row = MAX (0, start->y / height);
+ ec->row = MAX (0, end->y / height);
+
+ /* Sort x using row cell coordinates */
+ if ((terminal->pvt->selection_block_mode || sc->row == ec->row) && (start->x > end->x)) {
+ struct selection_event_coords *tmp;
+ tmp = start;
+ start = end;
+ end = tmp;
+ }
+
+ /* We want to be more lenient on the user with their column selection.
+ * We round to the closest logical position (positions are located between
+ * cells). But we don't want to fully round. So we divide the cell
+ * width into three parts. The side parts round to their nearest
+ * position. The middle part is always inclusive in the selection.
+ *
+ * math_div and no MAX, to allow selecting no cells in the line,
+ * ie. ec->col = -1, which is essentially equal to copying the
+ * newline from previous line but no chars from current line. */
+ residual = (width + 1) / 3;
+ sc->col = math_div (start->x + residual, width);
+ ec->col = math_div (end->x - residual, width);
+
+
+ vte_terminal_extend_selection_expand (terminal);
+
+ if (!invalidate_selected && !force &&
+ 0 == memcmp (sc, so, sizeof (*sc)) &&
+ 0 == memcmp (ec, eo, sizeof (*ec)))
+ /* No change */
+ return;
+
+ /* Invalidate */
+
+ if (had_selection) {
+
+ if (terminal->pvt->selection_block_mode) {
+ /* Update the selection area diff in block mode. */
+
+ /* The top band */
+ _vte_invalidate_region (terminal,
+ MIN(sc->col, so->col),
+ MAX(ec->col, eo->col),
+ MIN(sc->row, so->row),
+ MAX(sc->row, so->row) - 1,
+ TRUE);
+ /* The bottom band */
+ _vte_invalidate_region (terminal,
+ MIN(sc->col, so->col),
+ MAX(ec->col, eo->col),
+ MIN(ec->row, eo->row) + 1,
+ MAX(ec->row, eo->row),
+ TRUE);
+ /* The left band */
+ _vte_invalidate_region (terminal,
+ MIN(sc->col, so->col),
+ MAX(sc->col, so->col) - 1,
+ MIN(sc->row, so->row),
+ MAX(ec->row, eo->row),
+ TRUE);
+ /* The right band */
+ _vte_invalidate_region (terminal,
+ MIN(ec->col, eo->col) + 1,
+ MAX(ec->col, eo->col),
+ MIN(sc->row, so->row),
+ MAX(ec->row, eo->row),
+ TRUE);
+ } else {
+ /* Update the selection area diff in non-block mode. */
+
+ /* The before band */
+ if (sc->row < so->row)
+ _vte_invalidate_region (terminal,
+ sc->col, so->col - 1,
+ sc->row, so->row,
+ FALSE);
+ else if (sc->row > so->row)
+ _vte_invalidate_region (terminal,
+ so->col, sc->col - 1,
+ so->row, sc->row,
+ FALSE);
+ else
+ _vte_invalidate_region (terminal,
+ MIN(sc->col, so->col), MAX(sc->col, so->col) - 1,
+ sc->row, sc->row,
+ TRUE);
+
+ /* The after band */
+ if (ec->row < eo->row)
+ _vte_invalidate_region (terminal,
+ ec->col + 1, eo->col,
+ ec->row, eo->row,
+ FALSE);
+ else if (ec->row > eo->row)
+ _vte_invalidate_region (terminal,
+ eo->col + 1, ec->col,
+ eo->row, ec->row,
+ FALSE);
+ else
+ _vte_invalidate_region (terminal,
+ MIN(ec->col, eo->col) + 1, MAX(ec->col, eo->col),
+ ec->row, ec->row,
+ TRUE);
+ }
+ }
+
+ if (invalidate_selected || !had_selection) {
+ _vte_debug_print(VTE_DEBUG_SELECTION, "Invalidating selection.");
+ vte_terminal_invalidate_selection (terminal);
+ }
+
+ _vte_debug_print(VTE_DEBUG_SELECTION,
+ "Selection changed to "
+ "(%ld,%ld) to (%ld,%ld).\n",
+ sc->col, sc->row, ec->col, ec->row);
+}
+
+/**
+ * vte_terminal_select_all:
+ * @terminal: a #VteTerminal
+ *
+ * Selects all text within the terminal (including the scrollback buffer).
+ *
+ * Since: 0.16
+ */
+void
+vte_terminal_select_all (VteTerminal *terminal)
+{
+ g_return_if_fail (VTE_IS_TERMINAL (terminal));
+
+ vte_terminal_deselect_all (terminal);
+
+ terminal->pvt->has_selection = TRUE;
+ terminal->pvt->selecting_had_delta = TRUE;
+ terminal->pvt->selecting_restart = FALSE;
+
+ terminal->pvt->selection_start.row = _vte_ring_delta (terminal->pvt->screen->row_data);
+ terminal->pvt->selection_start.col = 0;
+ terminal->pvt->selection_end.row = _vte_ring_next (terminal->pvt->screen->row_data);
+ terminal->pvt->selection_end.col = -1;
+
+ _vte_debug_print(VTE_DEBUG_SELECTION, "Selecting *all* text.\n");
+
+ vte_terminal_copy_primary(terminal);
+ vte_terminal_emit_selection_changed (terminal);
+ _vte_invalidate_all (terminal);
+}
+
+/**
+ * vte_terminal_select_none:
+ * @terminal: a #VteTerminal
+ *
+ * Clears the current selection.
+ *
+ * Since: 0.16
+ */
+void
+vte_terminal_select_none (VteTerminal *terminal)
+{
+ g_return_if_fail (VTE_IS_TERMINAL (terminal));
+
+ _vte_debug_print(VTE_DEBUG_SELECTION, "Clearing selection.\n");
+
+ vte_terminal_deselect_all (terminal);
+}
+
+
+
+/* Autoscroll a bit. */
+static gboolean
+vte_terminal_autoscroll(VteTerminal *terminal)
+{
+ gboolean extend = FALSE;
+ long x, y, xmax, ymax;
+ glong adj;
+
+ /* Provide an immediate effect for mouse wigglers. */
+ if (terminal->pvt->mouse_last_y < 0) {
+ if (terminal->adjustment) {
+ /* Try to scroll up by one line. */
+ adj = terminal->pvt->screen->scroll_delta - 1;
+ vte_terminal_queue_adjustment_value_changed_clamped (terminal, adj);
+ extend = TRUE;
+ }
+ _vte_debug_print(VTE_DEBUG_EVENTS, "Autoscrolling down.\n");
+ }
+ if (terminal->pvt->mouse_last_y >=
+ terminal->row_count * terminal->char_height) {
+ if (terminal->adjustment) {
+ /* Try to scroll up by one line. */
+ adj = terminal->pvt->screen->scroll_delta + 1;
+ vte_terminal_queue_adjustment_value_changed_clamped (terminal, adj);
+ extend = TRUE;
+ }
+ _vte_debug_print(VTE_DEBUG_EVENTS, "Autoscrolling up.\n");
+ }
+ if (extend) {
+ /* Don't select off-screen areas. That just confuses people. */
+ xmax = terminal->column_count * terminal->char_width;
+ ymax = terminal->row_count * terminal->char_height;
+
+ x = CLAMP(terminal->pvt->mouse_last_x, 0, xmax);
+ y = CLAMP(terminal->pvt->mouse_last_y, 0, ymax);
+ /* If we clamped the Y, mess with the X to get the entire
+ * lines. */
+ if (terminal->pvt->mouse_last_y < 0 && !terminal->pvt->selection_block_mode) {
+ x = 0;
+ }
+ if (terminal->pvt->mouse_last_y >= ymax && !terminal->pvt->selection_block_mode) {
+ x = terminal->column_count * terminal->char_width;
+ }
+ /* Extend selection to cover the newly-scrolled area. */
+ vte_terminal_extend_selection(terminal, x, y, FALSE, TRUE);
+ } else {
+ /* Stop autoscrolling. */
+ terminal->pvt->mouse_autoscroll_tag = 0;
+ }
+ return (terminal->pvt->mouse_autoscroll_tag != 0);
+}
+
+/* Start autoscroll. */
+static void
+vte_terminal_start_autoscroll(VteTerminal *terminal)
+{
+ if (terminal->pvt->mouse_autoscroll_tag == 0) {
+ terminal->pvt->mouse_autoscroll_tag =
+ g_timeout_add_full(G_PRIORITY_LOW,
+ 666 / terminal->row_count,
+ (GSourceFunc)vte_terminal_autoscroll,
+ terminal,
+ NULL);
+ }
+}
+
+/* Stop autoscroll. */
+static void
+vte_terminal_stop_autoscroll(VteTerminal *terminal)
+{
+ if (terminal->pvt->mouse_autoscroll_tag != 0) {
+ g_source_remove(terminal->pvt->mouse_autoscroll_tag);
+ terminal->pvt->mouse_autoscroll_tag = 0;
+ }
+}
+
+/* Read and handle a motion event. */
+static gboolean
+vte_terminal_motion_notify(GtkWidget *widget, GdkEventMotion *event)
+{
+ VteTerminal *terminal;
+ int width, height;
+ long x, y;
+ gboolean handled = FALSE;
+
+ /* check to see if it matters */
+ if (! gtk_widget_is_drawable (widget)) {
+ return handled;
+ }
+
+ terminal = VTE_TERMINAL(widget);
+ x = event->x - terminal->pvt->inner_border.left;
+ y = event->y - terminal->pvt->inner_border.top;
+ width = terminal->char_width;
+ height = terminal->char_height;
+
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Motion notify (%ld,%ld) [%ld, %ld].\n",
+ x, y,
+ x / width, y / height + terminal->pvt->screen->scroll_delta);
+
+ vte_terminal_read_modifiers (terminal, (GdkEvent*) event);
+
+ if (terminal->pvt->mouse_last_button) {
+ vte_terminal_match_hilite_hide (terminal);
+ } else {
+ /* Hilite any matches. */
+ vte_terminal_match_hilite(terminal, x, y);
+ /* Show the cursor. */
+ _vte_terminal_set_pointer_visible(terminal, TRUE);
+ }
+
+ switch (event->type) {
+ case GDK_MOTION_NOTIFY:
+ if (terminal->pvt->selecting &&
+ ((terminal->pvt->modifiers & GDK_SHIFT_MASK) ||
+ !terminal->pvt->mouse_tracking_mode))
+ {
+ _vte_debug_print(VTE_DEBUG_EVENTS, "Mousing drag 1.\n");
+ vte_terminal_extend_selection(terminal,
+ x, y, FALSE, FALSE);
+
+ /* Start scrolling if we need to. */
+ if (event->y < terminal->pvt->inner_border.top ||
+ event->y >= terminal->row_count * height +
+ terminal->pvt->inner_border.top)
+ {
+ /* Give mouse wigglers something. */
+ vte_terminal_autoscroll(terminal);
+ /* Start a timed autoscroll if we're not doing it
+ * already. */
+ vte_terminal_start_autoscroll(terminal);
+ }
+
+ handled = TRUE;
+ }
+
+ if (!handled)
+ vte_terminal_maybe_send_mouse_drag(terminal, event);
+ break;
+ default:
+ break;
+ }
+
+ /* Save the pointer coordinates for later use. */
+ terminal->pvt->mouse_last_x = x;
+ terminal->pvt->mouse_last_y = y;
+
+ return handled;
+}
+
+/* Read and handle a pointing device buttonpress event. */
+static gint
+vte_terminal_button_press(GtkWidget *widget, GdkEventButton *event)
+{
+ VteTerminal *terminal;
+ long height, width, delta;
+ gboolean handled = FALSE;
+ gboolean start_selecting = FALSE, extend_selecting = FALSE;
+ long cellx, celly;
+ long x,y;
+
+ terminal = VTE_TERMINAL(widget);
+
+ x = event->x - terminal->pvt->inner_border.left;
+ y = event->y - terminal->pvt->inner_border.top;
+
+ height = terminal->char_height;
+ width = terminal->char_width;
+ delta = terminal->pvt->screen->scroll_delta;
+
+ vte_terminal_match_hilite(terminal, x, y);
+
+ _vte_terminal_set_pointer_visible(terminal, TRUE);
+
+ vte_terminal_read_modifiers (terminal, (GdkEvent*) event);
+
+ /* Convert the event coordinates to cell coordinates. */
+ cellx = x / width;
+ celly = y / height + delta;
+
+ switch (event->type) {
+ case GDK_BUTTON_PRESS:
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Button %d single-click at (%ld,%ld)\n",
+ event->button,
+ x, y + terminal->char_height * delta);
+ /* Handle this event ourselves. */
+ switch (event->button) {
+ case 1:
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Handling click ourselves.\n");
+ /* Grab focus. */
+ if (! gtk_widget_has_focus (widget)) {
+ gtk_widget_grab_focus(widget);
+ }
+
+ /* If we're in event mode, and the user held down the
+ * shift key, we start selecting. */
+ if (terminal->pvt->mouse_tracking_mode) {
+ if (terminal->pvt->modifiers & GDK_SHIFT_MASK) {
+ start_selecting = TRUE;
+ }
+ } else {
+ /* If the user hit shift, then extend the
+ * selection instead. */
+ if ((terminal->pvt->modifiers & GDK_SHIFT_MASK) &&
+ (terminal->pvt->has_selection ||
+ terminal->pvt->selecting_restart) &&
+ !vte_cell_is_selected(terminal,
+ cellx,
+ celly,
+ NULL)) {
+ extend_selecting = TRUE;
+ } else {
+ start_selecting = TRUE;
+ }
+ }
+ if (start_selecting) {
+ vte_terminal_deselect_all(terminal);
+ vte_terminal_start_selection(terminal,
+ event,
+ selection_type_char);
+ handled = TRUE;
+ }
+ if (extend_selecting) {
+ vte_terminal_extend_selection(terminal,
+ x, y,
+ !terminal->pvt->selecting_restart, TRUE);
+ /* The whole selection code needs to be
+ * rewritten. For now, put this here to
+ * fix bug 614658 */
+ terminal->pvt->selecting = TRUE;
+ handled = TRUE;
+ }
+ break;
+ /* Paste if the user pressed shift or we're not sending events
+ * to the app. */
+ case 2:
+ if ((terminal->pvt->modifiers & GDK_SHIFT_MASK) ||
+ !terminal->pvt->mouse_tracking_mode) {
+ vte_terminal_paste_primary(terminal);
+ handled = TRUE;
+ }
+ break;
+ case 3:
+ default:
+ break;
+ }
+ /* If we haven't done anything yet, try sending the mouse
+ * event to the app. */
+ if (handled == FALSE) {
+ vte_terminal_maybe_send_mouse_button(terminal, event);
+ handled = TRUE;
+ }
+ break;
+ case GDK_2BUTTON_PRESS:
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Button %d double-click at (%ld,%ld)\n",
+ event->button,
+ x, y + (terminal->char_height * delta));
+ switch (event->button) {
+ case 1:
+ if ((terminal->pvt->modifiers & GDK_SHIFT_MASK) ||
+ !terminal->pvt->mouse_tracking_mode) {
+ vte_terminal_start_selection(terminal,
+ event,
+ selection_type_word);
+ vte_terminal_extend_selection(terminal,
+ x, y, FALSE, TRUE);
+ }
+ break;
+ case 2:
+ case 3:
+ default:
+ break;
+ }
+ break;
+ case GDK_3BUTTON_PRESS:
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Button %d triple-click at (%ld,%ld).\n",
+ event->button,
+ x, y + (terminal->char_height * delta));
+ switch (event->button) {
+ case 1:
+ if ((terminal->pvt->modifiers & GDK_SHIFT_MASK) ||
+ !terminal->pvt->mouse_tracking_mode) {
+ vte_terminal_start_selection(terminal,
+ event,
+ selection_type_line);
+ vte_terminal_extend_selection(terminal,
+ x, y, FALSE, TRUE);
+ }
+ break;
+ case 2:
+ case 3:
+ default:
+ break;
+ }
+ default:
+ break;
+ }
+
+ /* Save the pointer state for later use. */
+ terminal->pvt->mouse_last_button = event->button;
+ terminal->pvt->mouse_last_x = x;
+ terminal->pvt->mouse_last_y = y;
+
+ return TRUE;
+}
+
+/* Read and handle a pointing device buttonrelease event. */
+static gint
+vte_terminal_button_release(GtkWidget *widget, GdkEventButton *event)
+{
+ VteTerminal *terminal;
+ gboolean handled = FALSE;
+ int x, y;
+
+ terminal = VTE_TERMINAL(widget);
+
+ x = event->x - terminal->pvt->inner_border.left;
+ y = event->y - terminal->pvt->inner_border.top;
+
+ vte_terminal_match_hilite(terminal, x, y);
+
+ _vte_terminal_set_pointer_visible(terminal, TRUE);
+
+ vte_terminal_stop_autoscroll(terminal);
+
+ vte_terminal_read_modifiers (terminal, (GdkEvent*) event);
+
+ switch (event->type) {
+ case GDK_BUTTON_RELEASE:
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Button %d released at (%d,%d).\n",
+ event->button, x, y);
+ switch (event->button) {
+ case 1:
+ /* If Shift is held down, or we're not in events mode,
+ * copy the selected text. */
+ if ((terminal->pvt->modifiers & GDK_SHIFT_MASK) ||
+ !terminal->pvt->mouse_tracking_mode)
+ handled = _vte_terminal_maybe_end_selection (terminal);
+ break;
+ case 2:
+ if ((terminal->pvt->modifiers & GDK_SHIFT_MASK) ||
+ !terminal->pvt->mouse_tracking_mode) {
+ handled = TRUE;
+ }
+ break;
+ case 3:
+ default:
+ break;
+ }
+ if (!handled) {
+ vte_terminal_maybe_send_mouse_button(terminal, event);
+ handled = TRUE;
+ }
+ break;
+ default:
+ break;
+ }
+
+ /* Save the pointer state for later use. */
+ terminal->pvt->mouse_last_button = 0;
+ terminal->pvt->mouse_last_x = x;
+ terminal->pvt->mouse_last_y = y;
+
+ return TRUE;
+}
+
+/* Handle receiving or losing focus. */
+static gboolean
+vte_terminal_focus_in(GtkWidget *widget, GdkEventFocus *event)
+{
+ VteTerminal *terminal;
+
+ _vte_debug_print(VTE_DEBUG_EVENTS, "Focus in.\n");
+
+ terminal = VTE_TERMINAL(widget);
+ gtk_widget_grab_focus (widget);
+
+ /* Read the keyboard modifiers, though they're probably garbage. */
+ vte_terminal_read_modifiers (terminal, (GdkEvent*) event);
+
+ /* We only have an IM context when we're realized, and there's not much
+ * point to painting the cursor if we don't have a window. */
+ if (gtk_widget_get_realized (widget)) {
+ terminal->pvt->cursor_blink_state = TRUE;
+ terminal->pvt->has_focus = TRUE;
+
+ _vte_check_cursor_blink (terminal);
+
+ gtk_im_context_focus_in(terminal->pvt->im_context);
+ _vte_invalidate_cursor_once(terminal, FALSE);
+ _vte_terminal_set_pointer_visible(terminal, TRUE);
+ }
+
+ return FALSE;
+}
+
+static gboolean
+vte_terminal_focus_out(GtkWidget *widget, GdkEventFocus *event)
+{
+ VteTerminal *terminal;
+ _vte_debug_print(VTE_DEBUG_EVENTS, "Focus out.\n");
+ terminal = VTE_TERMINAL(widget);
+ /* Read the keyboard modifiers, though they're probably garbage. */
+ vte_terminal_read_modifiers (terminal, (GdkEvent*) event);
+ /* We only have an IM context when we're realized, and there's not much
+ * point to painting ourselves if we don't have a window. */
+ if (gtk_widget_get_realized (widget)) {
+ _vte_terminal_maybe_end_selection (terminal);
+
+ gtk_im_context_focus_out(terminal->pvt->im_context);
+ _vte_invalidate_cursor_once(terminal, FALSE);
+
+ /* XXX Do we want to hide the match just because the terminal
+ * lost keyboard focus, but the pointer *is* still within our
+ * area top? */
+ vte_terminal_match_hilite_hide (terminal);
+ /* Mark the cursor as invisible to disable hilite updating */
+ terminal->pvt->mouse_cursor_visible = FALSE;
+ }
+
+ terminal->pvt->has_focus = FALSE;
+ _vte_check_cursor_blink (terminal);
+
+ return FALSE;
+}
+
+static gboolean
+vte_terminal_enter(GtkWidget *widget, GdkEventCrossing *event)
+{
+ gboolean ret = FALSE;
+ _vte_debug_print(VTE_DEBUG_EVENTS, "Enter.\n");
+ if (GTK_WIDGET_CLASS (vte_terminal_parent_class)->enter_notify_event) {
+ ret = GTK_WIDGET_CLASS (vte_terminal_parent_class)->enter_notify_event (widget, event);
+ }
+ if (gtk_widget_get_realized (widget)) {
+ VteTerminal *terminal = VTE_TERMINAL (widget);
+ /* Hilite any matches. */
+ vte_terminal_match_hilite_show(terminal,
+ event->x - terminal->pvt->inner_border.left,
+ event->y - terminal->pvt->inner_border.top);
+ }
+ return ret;
+}
+static gboolean
+vte_terminal_leave(GtkWidget *widget, GdkEventCrossing *event)
+{
+ gboolean ret = FALSE;
+ _vte_debug_print(VTE_DEBUG_EVENTS, "Leave.\n");
+ if (GTK_WIDGET_CLASS (vte_terminal_parent_class)->leave_notify_event) {
+ ret = GTK_WIDGET_CLASS (vte_terminal_parent_class)->leave_notify_event (widget, event);
+ }
+ if (gtk_widget_get_realized (widget)) {
+ VteTerminal *terminal = VTE_TERMINAL (widget);
+ vte_terminal_match_hilite_hide (terminal);
+ /* Mark the cursor as invisible to disable hilite updating,
+ * whilst the cursor is absent (otherwise we copy the entire
+ * buffer after each update for nothing...)
+ */
+ terminal->pvt->mouse_cursor_visible = FALSE;
+ }
+ return ret;
+}
+
+static G_GNUC_UNUSED inline const char *
+visibility_state_str(GdkVisibilityState state)
+{
+ switch(state){
+ case GDK_VISIBILITY_FULLY_OBSCURED:
+ return "fully-obscured";
+ case GDK_VISIBILITY_UNOBSCURED:
+ return "unobscured";
+ default:
+ return "partial";
+ }
+}
+
+static void
+vte_terminal_set_visibility (VteTerminal *terminal, GdkVisibilityState state)
+{
+ _vte_debug_print(VTE_DEBUG_MISC, "change visibility: %s -> %s.\n",
+ visibility_state_str(terminal->pvt->visibility_state),
+ visibility_state_str(state));
+
+ if (state == terminal->pvt->visibility_state) {
+ return;
+ }
+
+ /* fully obscured to visible switch, force the fast path */
+ if (terminal->pvt->visibility_state == GDK_VISIBILITY_FULLY_OBSCURED) {
+ /* set invalidated_all false, since we didn't really mean it
+ * when we set it to TRUE when becoming obscured */
+ terminal->pvt->invalidated_all = FALSE;
+
+ /* if all unobscured now, invalidate all, otherwise, wait
+ * for the expose event */
+ if (state == GDK_VISIBILITY_UNOBSCURED) {
+ _vte_invalidate_all (terminal);
+ }
+ }
+
+ terminal->pvt->visibility_state = state;
+
+ /* no longer visible, stop processing display updates */
+ if (terminal->pvt->visibility_state == GDK_VISIBILITY_FULLY_OBSCURED) {
+ remove_update_timeout (terminal);
+ /* if fully obscured, just act like we have invalidated all,
+ * so no updates are accumulated. */
+ terminal->pvt->invalidated_all = TRUE;
+ }
+}
+
+static gboolean
+vte_terminal_visibility_notify(GtkWidget *widget, GdkEventVisibility *event)
+{
+ VteTerminal *terminal;
+ terminal = VTE_TERMINAL(widget);
+
+ _vte_debug_print(VTE_DEBUG_EVENTS, "Visibility (%s -> %s).\n",
+ visibility_state_str(terminal->pvt->visibility_state),
+ visibility_state_str(event->state));
+ vte_terminal_set_visibility(terminal, event->state);
+
+ return FALSE;
+}
+
+/* Apply the changed metrics, and queue a resize if need be. */
+static void
+vte_terminal_apply_metrics(VteTerminal *terminal,
+ gint width, gint height, gint ascent, gint descent)
+{
+ gboolean resize = FALSE, cresize = FALSE;
+ gint line_thickness;
+
+ /* Sanity check for broken font changes. */
+ width = MAX(width, 1);
+ height = MAX(height, 2);
+ ascent = MAX(ascent, 1);
+ descent = MAX(descent, 1);
+
+ /* Change settings, and keep track of when we've changed anything. */
+ if (width != terminal->char_width) {
+ resize = cresize = TRUE;
+ terminal->char_width = width;
+ }
+ if (height != terminal->char_height) {
+ resize = cresize = TRUE;
+ terminal->char_height = height;
+ }
+ if (ascent != terminal->char_ascent) {
+ resize = TRUE;
+ terminal->char_ascent = ascent;
+ }
+ if (descent != terminal->char_descent) {
+ resize = TRUE;
+ terminal->char_descent = descent;
+ }
+ terminal->pvt->line_thickness = line_thickness = MAX (MIN ((height - ascent) / 2, height / 14), 1);
+ terminal->pvt->underline_position = MIN (ascent + line_thickness, height - line_thickness);
+ terminal->pvt->strikethrough_position = ascent - height / 4;
+
+ /* Queue a resize if anything's changed. */
+ if (resize) {
+ if (gtk_widget_get_realized (&terminal->widget)) {
+ gtk_widget_queue_resize_no_redraw(&terminal->widget);
+ }
+ }
+ /* Emit a signal that the font changed. */
+ if (cresize) {
+ vte_terminal_emit_char_size_changed(terminal,
+ terminal->char_width,
+ terminal->char_height);
+ }
+ /* Repaint. */
+ _vte_invalidate_all(terminal);
+}
+
+
+static void
+vte_terminal_ensure_font (VteTerminal *terminal)
+{
+ if (terminal->pvt->draw != NULL) {
+ /* Load default fonts, if no fonts have been loaded. */
+ if (!terminal->pvt->has_fonts) {
+ vte_terminal_set_font_full_internal(terminal,
+ terminal->pvt->fontdesc,
+ terminal->pvt->fontantialias);
+ }
+ if (terminal->pvt->fontdirty) {
+ gint width, height, ascent;
+ terminal->pvt->fontdirty = FALSE;
+ _vte_draw_set_text_font (terminal->pvt->draw,
+ terminal->pvt->fontdesc,
+ terminal->pvt->fontantialias);
+ _vte_draw_get_text_metrics (terminal->pvt->draw,
+ &width, &height, &ascent);
+ vte_terminal_apply_metrics(terminal,
+ width, height, ascent, height - ascent);
+ }
+ }
+}
+
+
+/**
+ * vte_terminal_set_font_full:
+ * @terminal: a #VteTerminal
+ * @font_desc: The #PangoFontDescription of the desired font, or %NULL
+ * @antialias: Specify if anti aliasing of the fonts is to be used or not.
+ *
+ * Sets the font used for rendering all text displayed by the terminal,
+ * overriding any fonts set using gtk_widget_modify_font(). The terminal
+ * will immediately attempt to load the desired font, retrieve its
+ * metrics, and attempt to resize itself to keep the same number of rows
+ * and columns.
+ *
+ * Since: 0.11.11
+ *
+ * Deprecated: 0.20: Use vte_terminal_set_font()
+ */
+void
+vte_terminal_set_font_full(VteTerminal *terminal,
+ const PangoFontDescription *font_desc,
+ VteTerminalAntiAlias antialias)
+{
+ vte_terminal_set_font_full_internal(terminal, font_desc, antialias);
+}
+
+static void
+vte_terminal_set_font_full_internal(VteTerminal *terminal,
+ const PangoFontDescription *font_desc,
+ VteTerminalAntiAlias antialias)
+{
+ GObject *object;
+ GtkStyle *style;
+ VteTerminalPrivate *pvt;
+ PangoFontDescription *desc;
+ gboolean same_desc;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ object = G_OBJECT(terminal);
+ pvt = terminal->pvt;
+
+ /* Create an owned font description. */
+ gtk_widget_ensure_style (&terminal->widget);
+ style = gtk_widget_get_style (&terminal->widget);
+ desc = pango_font_description_copy (style->font_desc);
+ pango_font_description_set_family_static (desc, "monospace");
+ if (font_desc != NULL) {
+ pango_font_description_merge (desc, font_desc, TRUE);
+ _VTE_DEBUG_IF(VTE_DEBUG_MISC) {
+ if (desc) {
+ char *tmp;
+ tmp = pango_font_description_to_string(desc);
+ g_printerr("Using pango font \"%s\".\n", tmp);
+ g_free (tmp);
+ }
+ }
+ } else {
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Using default monospace font.\n");
+ }
+
+ same_desc = pvt->fontdesc && pango_font_description_equal (pvt->fontdesc, desc);
+
+ /* Note that we proceed to recreating the font even if the description
+ * and antialias settings are the same. This is because maybe screen
+ * font options were changed, or new fonts installed. Those will be
+ * detected at font creation time and respected.
+ */
+
+ g_object_freeze_notify(object);
+
+ /* Free the old font description and save the new one. */
+ if (terminal->pvt->fontdesc != NULL) {
+ pango_font_description_free(terminal->pvt->fontdesc);
+ }
+ pvt->fontdesc = desc;
+ pvt->fontantialias = antialias;
+ pvt->fontdirty = TRUE;
+ pvt->has_fonts = TRUE;
+
+ if (!same_desc)
+ g_object_notify(object, "font-desc");
+
+ /* Set the drawing font. */
+ if (gtk_widget_get_realized (&terminal->widget)) {
+ vte_terminal_ensure_font (terminal);
+ }
+
+ g_object_thaw_notify(object);
+}
+
+/**
+ * vte_terminal_set_font:
+ * @terminal: a #VteTerminal
+ * @font_desc: (allow-none): a #PangoFontDescription for the desired font, or %NULL
+ *
+ * Sets the font used for rendering all text displayed by the terminal,
+ * overriding any fonts set using gtk_widget_modify_font(). The terminal
+ * will immediately attempt to load the desired font, retrieve its
+ * metrics, and attempt to resize itself to keep the same number of rows
+ * and columns.
+ */
+void
+vte_terminal_set_font(VteTerminal *terminal,
+ const PangoFontDescription *font_desc)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ vte_terminal_set_font_full_internal(terminal, font_desc,
+ VTE_ANTI_ALIAS_USE_DEFAULT);
+}
+
+static void
+vte_terminal_set_font_from_string_full_internal(VteTerminal *terminal,
+ const char *name,
+ VteTerminalAntiAlias antialias)
+{
+ PangoFontDescription *font_desc = NULL;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ if (name)
+ font_desc = pango_font_description_from_string(name);
+ vte_terminal_set_font_full_internal(terminal, font_desc, antialias);
+ pango_font_description_free(font_desc);
+}
+
+/**
+ * vte_terminal_set_font_from_string_full:
+ * @terminal: a #VteTerminal
+ * @name: A string describing the font.
+ * @antialias: Whether or not to antialias the font (if possible).
+ *
+ * A convenience function which converts @name into a #PangoFontDescription and
+ * passes it to vte_terminal_set_font_full().
+ *
+ * Since: 0.11.11
+ *
+ * Deprecated: 0.20: Use vte_terminal_set_font()
+ */
+void
+vte_terminal_set_font_from_string_full(VteTerminal *terminal, const char *name,
+ VteTerminalAntiAlias antialias)
+{
+ vte_terminal_set_font_from_string_full_internal(terminal, name, antialias);
+}
+
+/**
+ * vte_terminal_set_font_from_string:
+ * @terminal: a #VteTerminal
+ * @name: (type utf8): a pango font description in string form
+ *
+ * A convenience function which converts @name into a #PangoFontDescription and
+ * passes it to vte_terminal_set_font().
+ */
+void
+vte_terminal_set_font_from_string(VteTerminal *terminal, const char *name)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(name != NULL);
+ vte_terminal_set_font_from_string_full_internal(terminal, name,
+ VTE_ANTI_ALIAS_USE_DEFAULT);
+}
+
+/**
+ * vte_terminal_get_font:
+ * @terminal: a #VteTerminal
+ *
+ * Queries the terminal for information about the fonts which will be
+ * used to draw text in the terminal.
+ *
+ * Returns: (transfer none): a #PangoFontDescription describing the font the terminal is
+ * currently using to render text
+ */
+const PangoFontDescription *
+vte_terminal_get_font(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ return terminal->pvt->fontdesc;
+}
+
+/* Read and refresh our perception of the size of the PTY. */
+static void
+vte_terminal_refresh_size(VteTerminal *terminal)
+{
+ VteTerminalPrivate *pvt = terminal->pvt;
+ int rows, columns;
+ GError *error = NULL;
+
+ if (pvt->pty == NULL)
+ return;
+
+ if (vte_pty_get_size(pvt->pty, &rows, &columns, &error)) {
+ terminal->row_count = rows;
+ terminal->column_count = columns;
+ } else {
+ g_warning(_("Error reading PTY size, using defaults: %s\n"), error->message);
+ g_error_free(error);
+ }
+}
+
+/**
+ * vte_terminal_set_size:
+ * @terminal: a #VteTerminal
+ * @columns: the desired number of columns
+ * @rows: the desired number of rows
+ *
+ * Attempts to change the terminal's size in terms of rows and columns. If
+ * the attempt succeeds, the widget will resize itself to the proper size.
+ */
+void
+vte_terminal_set_size(VteTerminal *terminal, glong columns, glong rows)
+{
+ glong old_columns, old_rows;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Setting PTY size to %ldx%ld.\n",
+ columns, rows);
+
+ old_rows = terminal->row_count;
+ old_columns = terminal->column_count;
+
+ if (terminal->pvt->pty != NULL) {
+ GError *error = NULL;
+
+ /* Try to set the terminal size, and read it back,
+ * in case something went awry.
+ */
+ if (!vte_pty_set_size(terminal->pvt->pty, rows, columns, &error)) {
+ g_warning("%s\n", error->message);
+ g_error_free(error);
+ }
+ vte_terminal_refresh_size(terminal);
+ } else {
+ terminal->row_count = rows;
+ terminal->column_count = columns;
+ }
+ if (old_rows != terminal->row_count || old_columns != terminal->column_count) {
+ VteScreen *screen = terminal->pvt->screen;
+ glong visible_rows = MIN (old_rows, _vte_ring_length (screen->row_data));
+ if (terminal->row_count < visible_rows) {
+ glong delta = visible_rows - terminal->row_count;
+ screen->insert_delta += delta;
+ vte_terminal_queue_adjustment_value_changed (
+ terminal,
+ screen->scroll_delta + delta);
+ }
+ gtk_widget_queue_resize_no_redraw (&terminal->widget);
+ /* Our visible text changed. */
+ vte_terminal_emit_text_modified(terminal);
+ }
+}
+
+/* Redraw the widget. */
+static void
+vte_terminal_handle_scroll(VteTerminal *terminal)
+{
+ long dy, adj;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+
+ /* Read the new adjustment value and save the difference. */
+ adj = round (gtk_adjustment_get_value(terminal->adjustment));
+ dy = adj - screen->scroll_delta;
+ screen->scroll_delta = adj;
+
+ /* Sanity checks. */
+ if (! gtk_widget_is_drawable (&terminal->widget)
+ || terminal->pvt->visibility_state == GDK_VISIBILITY_FULLY_OBSCURED) {
+ return;
+ }
+
+ if (dy != 0) {
+ _vte_debug_print(VTE_DEBUG_ADJ,
+ "Scrolling by %ld\n", dy);
+ _vte_terminal_scroll_region(terminal, screen->scroll_delta,
+ terminal->row_count, -dy);
+ vte_terminal_emit_text_scrolled(terminal, dy);
+ _vte_terminal_queue_contents_changed(terminal);
+ } else {
+ _vte_debug_print(VTE_DEBUG_ADJ, "Not scrolling\n");
+ }
+}
+
+#if GTK_CHECK_VERSION (2, 91, 2)
+static void
+vte_terminal_set_hadjustment(VteTerminal *terminal,
+ GtkAdjustment *adjustment)
+{
+ VteTerminalPrivate *pvt = terminal->pvt;
+
+ if (adjustment == pvt->hadjustment)
+ return;
+
+ if (pvt->hadjustment)
+ g_object_unref (pvt->hadjustment);
+
+ pvt->hadjustment = adjustment ? g_object_ref_sink (adjustment) : NULL;
+}
+#endif
+
+static void
+vte_terminal_set_vadjustment(VteTerminal *terminal,
+ GtkAdjustment *adjustment)
+{
+ if (adjustment != NULL && adjustment == terminal->adjustment)
+ return;
+ if (adjustment == NULL && terminal->adjustment != NULL)
+ return;
+
+ if (adjustment == NULL)
+ adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0, 0, 0, 0, 0, 0));
+ else
+ g_return_if_fail(GTK_IS_ADJUSTMENT(adjustment));
+
+ /* Add a reference to the new adjustment object. */
+ g_object_ref_sink(adjustment);
+ /* Get rid of the old adjustment object. */
+ if (terminal->adjustment != NULL) {
+ /* Disconnect our signal handlers from this object. */
+ g_signal_handlers_disconnect_by_func(terminal->adjustment,
+ vte_terminal_handle_scroll,
+ terminal);
+ g_object_unref(terminal->adjustment);
+ }
+
+ /* Set the new adjustment object. */
+ terminal->adjustment = adjustment;
+
+ /* We care about the offset, not the top or bottom. */
+ g_signal_connect_swapped(terminal->adjustment,
+ "value-changed",
+ G_CALLBACK(vte_terminal_handle_scroll),
+ terminal);
+}
+
+/* Set the adjustment objects used by the terminal widget. */
+#if !GTK_CHECK_VERSION (2, 91, 2)
+static void
+vte_terminal_set_scroll_adjustments(GtkWidget *widget,
+ GtkAdjustment *hadjustment G_GNUC_UNUSED,
+ GtkAdjustment *vadjustment)
+{
+ vte_terminal_set_vadjustment(VTE_TERMINAL(widget), vadjustment);
+}
+#endif /* GTK 2.x */
+
+/**
+ * vte_terminal_set_emulation:
+ * @terminal: a #VteTerminal
+ * @emulation: (allow-none): the name of a terminal description, or %NULL to use the default
+ *
+ * Sets what type of terminal the widget attempts to emulate by scanning for
+ * control sequences defined in the system's termcap file. Unless you
+ * are interested in this feature, always use "xterm".
+ */
+void
+vte_terminal_set_emulation(VteTerminal *terminal, const char *emulation)
+{
+ VteTerminalPrivate *pvt;
+ GObject *object;
+ int columns, rows;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ object = G_OBJECT(terminal);
+ pvt = terminal->pvt;
+
+ g_object_freeze_notify(object);
+
+ /* Set the emulation type, for reference. */
+ if (emulation == NULL) {
+ emulation = vte_terminal_get_default_emulation(terminal);
+ }
+ terminal->pvt->emulation = g_intern_string(emulation);
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Setting emulation to `%s'...\n", emulation);
+ /* Find and read the right termcap file. */
+ vte_terminal_set_termcap(terminal, NULL, FALSE);
+
+ /* Create a table to hold the control sequences. */
+ if (terminal->pvt->matcher != NULL) {
+ _vte_matcher_free(terminal->pvt->matcher);
+ }
+ terminal->pvt->matcher = _vte_matcher_new(emulation, terminal->pvt->termcap);
+
+ if (terminal->pvt->termcap != NULL) {
+ /* Read emulation flags. */
+ terminal->pvt->flags.am = _vte_termcap_find_boolean(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ "am");
+ terminal->pvt->flags.bw = _vte_termcap_find_boolean(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ "bw");
+ terminal->pvt->flags.LP = _vte_termcap_find_boolean(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ "LP");
+ terminal->pvt->flags.ul = _vte_termcap_find_boolean(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ "ul");
+ terminal->pvt->flags.xn = _vte_termcap_find_boolean(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ "xn");
+
+ /* Resize to the given default. */
+ columns = _vte_termcap_find_numeric(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ "co");
+ if (columns <= 0) {
+ columns = VTE_COLUMNS;
+ }
+ terminal->pvt->default_column_count = columns;
+
+ rows = _vte_termcap_find_numeric(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ "li");
+ if (rows <= 0 ) {
+ rows = VTE_ROWS;
+ }
+ terminal->pvt->default_row_count = rows;
+ }
+
+ /* Notify observers that we changed our emulation. */
+ vte_terminal_emit_emulation_changed(terminal);
+
+ g_object_thaw_notify(object);
+}
+
+/* FIXMEchpe deprecate this function, it's wrong */
+/**
+ * vte_terminal_get_default_emulation:
+ * @terminal: a #VteTerminal
+ *
+ * Queries the terminal for its default emulation, which is attempted if the
+ * terminal type passed to vte_terminal_set_emulation() is %NULL.
+ *
+ * Returns: (transfer none) (type utf8): an interned string containing the name of the default terminal
+ * type the widget attempts to emulate
+ *
+ * Since: 0.11.11
+ */
+const char *
+vte_terminal_get_default_emulation(VteTerminal *terminal)
+{
+ return g_intern_static_string(VTE_DEFAULT_EMULATION);
+}
+
+/**
+ * vte_terminal_get_emulation:
+ * @terminal: a #VteTerminal
+ *
+ * Queries the terminal for its current emulation, as last set by a call to
+ * vte_terminal_set_emulation().
+ *
+ * Returns: an interned string containing the name of the terminal type the
+ * widget is attempting to emulate
+ */
+const char *
+vte_terminal_get_emulation(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ return terminal->pvt->emulation;
+}
+
+void
+_vte_terminal_inline_error_message(VteTerminal *terminal, const char *format, ...)
+{
+ va_list ap;
+ char *str;
+
+ va_start (ap, format);
+ str = g_strdup_vprintf (format, ap);
+ va_end (ap);
+
+ vte_terminal_feed (terminal, "*** VTE ***: ", 13);
+ vte_terminal_feed (terminal, str, -1);
+ vte_terminal_feed (terminal, "\r\n", 2);
+ g_free (str);
+}
+
+/* Set the path to the termcap file we read, and read it in. */
+static void
+vte_terminal_set_termcap(VteTerminal *terminal, const char *path,
+ gboolean reset)
+{
+ GObject *object = G_OBJECT(terminal);
+ struct stat st;
+ char *wpath;
+
+ if (path == NULL) {
+ wpath = g_build_filename(TERMCAPDIR,
+ terminal->pvt->emulation ?
+ terminal->pvt->emulation :
+ vte_terminal_get_default_emulation(terminal),
+ NULL);
+ if (g_stat(wpath, &st) != 0) {
+ g_free(wpath);
+ wpath = g_strdup("/etc/termcap");
+ }
+ path = g_intern_string (wpath);
+ g_free(wpath);
+ } else {
+ path = g_intern_string (path);
+ }
+ if (path == terminal->pvt->termcap_path) {
+ return;
+ }
+
+ g_object_freeze_notify(object);
+
+ terminal->pvt->termcap_path = path;
+
+ _vte_debug_print(VTE_DEBUG_MISC, "Loading termcap `%s'...",
+ terminal->pvt->termcap_path);
+ if (terminal->pvt->termcap != NULL) {
+ _vte_termcap_free(terminal->pvt->termcap);
+ }
+ terminal->pvt->termcap = _vte_termcap_new(terminal->pvt->termcap_path);
+ _vte_debug_print(VTE_DEBUG_MISC, "\n");
+ if (terminal->pvt->termcap == NULL) {
+ _vte_terminal_inline_error_message(terminal,
+ "Failed to load terminal capabilities from '%s'",
+ terminal->pvt->termcap_path);
+ }
+ if (reset) {
+ vte_terminal_set_emulation(terminal, terminal->pvt->emulation);
+ }
+
+ g_object_thaw_notify(object);
+}
+
+static void
+_vte_terminal_codeset_changed_cb(struct _vte_iso2022_state *state, gpointer p)
+{
+ vte_terminal_set_encoding(p, _vte_iso2022_state_get_codeset(state));
+}
+
+/* Initialize the terminal widget after the base widget stuff is initialized.
+ * We need to create a new psuedo-terminal pair, read in the termcap file, and
+ * set ourselves up to do the interpretation of sequences. */
+static void
+vte_terminal_init(VteTerminal *terminal)
+{
+ VteTerminalPrivate *pvt;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_init()\n");
+
+ /* Initialize private data. */
+ pvt = terminal->pvt = G_TYPE_INSTANCE_GET_PRIVATE (terminal, VTE_TYPE_TERMINAL, VteTerminalPrivate);
+
+ gtk_widget_set_can_focus(&terminal->widget, TRUE);
+
+ gtk_widget_set_app_paintable (&terminal->widget, TRUE);
+
+ /* We do our own redrawing. */
+ gtk_widget_set_redraw_on_allocate (&terminal->widget, FALSE);
+
+ /* Set an adjustment for the application to use to control scrolling. */
+ terminal->adjustment = NULL;
+#if GTK_CHECK_VERSION (2, 91, 2)
+ pvt->hadjustment = NULL;
+ /* GtkScrollable */
+ pvt->hscroll_policy = GTK_SCROLL_NATURAL;
+ pvt->vscroll_policy = GTK_SCROLL_NATURAL;
+
+ vte_terminal_set_hadjustment(terminal, NULL);
+#endif
+
+ vte_terminal_set_vadjustment(terminal, NULL);
+
+
+ /* Set up dummy metrics, value != 0 to avoid division by 0 */
+ terminal->char_width = 1;
+ terminal->char_height = 1;
+ terminal->char_ascent = 1;
+ terminal->char_descent = 1;
+ terminal->pvt->line_thickness = 1;
+ terminal->pvt->underline_position = 1;
+ terminal->pvt->strikethrough_position = 1;
+
+ /* We allocated zeroed memory, just fill in non-zero stuff. */
+
+ /* Initialize the screens and histories. */
+ _vte_ring_init (pvt->alternate_screen.row_data, terminal->row_count);
+ pvt->alternate_screen.sendrecv_mode = TRUE;
+ pvt->alternate_screen.status_line_contents = g_string_new(NULL);
+ pvt->screen = &terminal->pvt->alternate_screen;
+ _vte_terminal_set_default_attributes(terminal);
+
+ _vte_ring_init (pvt->normal_screen.row_data, VTE_SCROLLBACK_INIT);
+ pvt->normal_screen.sendrecv_mode = TRUE;
+ pvt->normal_screen.status_line_contents = g_string_new(NULL);
+ pvt->screen = &terminal->pvt->normal_screen;
+ _vte_terminal_set_default_attributes(terminal);
+
+ /* Set up I/O encodings. */
+ pvt->iso2022 = _vte_iso2022_state_new(pvt->encoding,
+ &_vte_terminal_codeset_changed_cb,
+ terminal);
+ pvt->incoming = NULL;
+ pvt->pending = g_array_new(FALSE, TRUE, sizeof(gunichar));
+ pvt->max_input_bytes = VTE_MAX_INPUT_READ;
+ pvt->cursor_blink_tag = 0;
+ pvt->outgoing = _vte_buffer_new();
+ pvt->outgoing_conv = VTE_INVALID_CONV;
+ pvt->conv_buffer = _vte_buffer_new();
+ vte_terminal_set_encoding(terminal, NULL);
+ g_assert(terminal->pvt->encoding != NULL);
+
+ /* Load the termcap data and set up the emulation. */
+ pvt->keypad_mode = VTE_KEYMODE_NORMAL;
+ pvt->cursor_mode = VTE_KEYMODE_NORMAL;
+ pvt->dec_saved = g_hash_table_new(NULL, NULL);
+ pvt->default_column_count = VTE_COLUMNS;
+ pvt->default_row_count = VTE_ROWS;
+
+ /* Setting the terminal type and size requires the PTY master to
+ * be set up properly first. */
+ pvt->pty = NULL;
+ vte_terminal_set_emulation(terminal, NULL);
+ vte_terminal_set_size(terminal,
+ pvt->default_column_count,
+ pvt->default_row_count);
+ pvt->pty_input_source = 0;
+ pvt->pty_output_source = 0;
+ pvt->pty_pid = -1;
+ pvt->child_exit_status = 0;
+
+ /* Scrolling options. */
+ pvt->scroll_on_keystroke = TRUE;
+ pvt->scrollback_lines = -1; /* force update in vte_terminal_set_scrollback_lines */
+ vte_terminal_set_scrollback_lines(terminal, VTE_SCROLLBACK_INIT);
+
+ /* Selection info. */
+ vte_terminal_set_word_chars(terminal, NULL);
+
+ /* Miscellaneous options. */
+ vte_terminal_set_backspace_binding(terminal, VTE_ERASE_AUTO);
+ vte_terminal_set_delete_binding(terminal, VTE_ERASE_AUTO);
+ pvt->meta_sends_escape = TRUE;
+ pvt->audible_bell = TRUE;
+ pvt->bell_margin = 10;
+ pvt->allow_bold = TRUE;
+ pvt->nrc_mode = TRUE;
+ vte_terminal_set_default_tabstops(terminal);
+
+ /* Cursor shape. */
+ pvt->cursor_shape = VTE_CURSOR_SHAPE_BLOCK;
+ pvt->cursor_aspect_ratio = 0.04;
+
+ /* Cursor blinking. */
+ pvt->cursor_visible = TRUE;
+ pvt->cursor_blink_timeout = 500;
+ pvt->cursor_blinks = FALSE;
+ pvt->cursor_blink_mode = VTE_CURSOR_BLINK_SYSTEM;
+
+ /* Matching data. */
+ pvt->match_regex_mode = VTE_REGEX_UNDECIDED;
+ pvt->match_regexes = g_array_new(FALSE, TRUE,
+ sizeof(struct vte_match_regex));
+ vte_terminal_match_hilite_clear(terminal);
+
+ /* Rendering data. Try everything. */
+ pvt->draw = _vte_draw_new(&terminal->widget);
+
+ /* The font description. */
+ pvt->fontantialias = VTE_ANTI_ALIAS_USE_DEFAULT;
+ gtk_widget_ensure_style(&terminal->widget);
+
+ /* Set up background information. */
+ pvt->bg_tint_color.red = 0;
+ pvt->bg_tint_color.green = 0;
+ pvt->bg_tint_color.blue = 0;
+ pvt->bg_saturation = 0.4 * VTE_SATURATION_MAX;
+ pvt->bg_opacity = 0xffff;
+ pvt->selection_block_mode = FALSE;
+ pvt->has_fonts = FALSE;
+ pvt->root_pixmap_changed_tag = 0;
+
+ /* Not all backends generate GdkVisibilityNotify, so mark the
+ * window as unobscured initially. */
+ pvt->visibility_state = GDK_VISIBILITY_UNOBSCURED;
+
+ /* Listen for hierarchy change notifications. */
+ g_signal_connect(terminal, "hierarchy-changed",
+ G_CALLBACK(vte_terminal_hierarchy_changed),
+ NULL);
+
+ pvt->inner_border = default_inner_border;
+
+#ifdef VTE_DEBUG
+ /* In debuggable mode, we always do this. */
+ /* gtk_widget_get_accessible(&terminal->widget); */
+#endif
+
+#if GTK_CHECK_VERSION (2, 99, 0)
+{
+ GtkStyleContext *context;
+
+ context = gtk_widget_get_style_context (&terminal->widget);
+ gtk_style_context_add_provider (context,
+ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider,
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+}
+#endif
+}
+
+/* Tell GTK+ how much space we need. */
+#if GTK_CHECK_VERSION (2, 91, 0)
+static void
+vte_terminal_get_preferred_width(GtkWidget *widget,
+ int *minimum_width,
+ int *natural_width)
+{
+ VteTerminal *terminal;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_get_preferred_width()\n");
+
+ terminal = VTE_TERMINAL(widget);
+
+ vte_terminal_ensure_font (terminal);
+
+ vte_terminal_refresh_size(terminal);
+ *minimum_width = terminal->char_width * 1;
+ *natural_width = terminal->char_width * terminal->column_count;
+
+ *minimum_width += terminal->pvt->inner_border.left +
+ terminal->pvt->inner_border.right;
+ *natural_width += terminal->pvt->inner_border.left +
+ terminal->pvt->inner_border.right;
+
+ _vte_debug_print(VTE_DEBUG_WIDGET_SIZE,
+ "[Terminal %p] minimum_width=%d, natural_width=%d for %ldx%ld cells.\n",
+ terminal,
+ *minimum_width, *natural_width,
+ terminal->column_count,
+ terminal->row_count);
+}
+
+static void
+vte_terminal_get_preferred_height(GtkWidget *widget,
+ int *minimum_height,
+ int *natural_height)
+{
+ VteTerminal *terminal;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_get_preferred_height()\n");
+
+ terminal = VTE_TERMINAL(widget);
+
+ vte_terminal_ensure_font (terminal);
+
+ vte_terminal_refresh_size(terminal);
+ *minimum_height = terminal->char_height * 1;
+ *natural_height = terminal->char_height * terminal->row_count;
+
+ *minimum_height += terminal->pvt->inner_border.left +
+ terminal->pvt->inner_border.right;
+ *natural_height += terminal->pvt->inner_border.left +
+ terminal->pvt->inner_border.right;
+
+ _vte_debug_print(VTE_DEBUG_WIDGET_SIZE,
+ "[Terminal %p] minimum_height=%d, natural_height=%d for %ldx%ld cells.\n",
+ terminal,
+ *minimum_height, *natural_height,
+ terminal->column_count,
+ terminal->row_count);
+}
+#else /* GTK+ 2.x */
+static void
+vte_terminal_size_request(GtkWidget *widget, GtkRequisition *requisition)
+{
+ VteTerminal *terminal;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_size_request()\n");
+
+ terminal = VTE_TERMINAL(widget);
+
+ vte_terminal_ensure_font (terminal);
+
+ vte_terminal_refresh_size(terminal);
+ requisition->width = terminal->char_width * terminal->column_count;
+ requisition->height = terminal->char_height * terminal->row_count;
+
+ requisition->width += terminal->pvt->inner_border.left +
+ terminal->pvt->inner_border.right;
+ requisition->height += terminal->pvt->inner_border.top +
+ terminal->pvt->inner_border.bottom;
+
+ _vte_debug_print(VTE_DEBUG_WIDGET_SIZE,
+ "[Terminal %p] Size request is %dx%d for %ldx%ld cells.\n",
+ terminal,
+ requisition->width, requisition->height,
+ terminal->column_count,
+ terminal->row_count);
+}
+#endif
+
+/* Accept a given size from GTK+. */
+static void
+vte_terminal_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
+{
+ VteTerminal *terminal;
+ glong width, height;
+ GtkAllocation current_allocation;
+ gboolean repaint, update_scrollback;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE,
+ "vte_terminal_size_allocate()\n");
+
+ terminal = VTE_TERMINAL(widget);
+
+ width = (allocation->width - (terminal->pvt->inner_border.left + terminal->pvt->inner_border.right)) /
+ terminal->char_width;
+ height = (allocation->height - (terminal->pvt->inner_border.top +
terminal->pvt->inner_border.bottom)) /
+ terminal->char_height;
+ width = MAX(width, 1);
+ height = MAX(height, 1);
+
+ _vte_debug_print(VTE_DEBUG_WIDGET_SIZE,
+ "[Terminal %p] Sizing window to %dx%d (%ldx%ld).\n",
+ terminal,
+ allocation->width, allocation->height,
+ width, height);
+
+ gtk_widget_get_allocation (widget, ¤t_allocation);
+
+ repaint = current_allocation.width != allocation->width
+ || current_allocation.height != allocation->height;
+ update_scrollback = current_allocation.height != allocation->height;
+
+ /* Set our allocation to match the structure. */
+ gtk_widget_set_allocation (widget, allocation);
+
+ if (width != terminal->column_count
+ || height != terminal->row_count
+ || update_scrollback)
+ {
+ VteScreen *screen = terminal->pvt->screen;
+
+ /* Set the size of the pseudo-terminal. */
+ vte_terminal_set_size(terminal, width, height);
+
+ /* Adjust scrolling area in case our boundaries have just been
+ * redefined to be invalid. */
+ if (screen->scrolling_restricted) {
+ screen->scrolling_region.start =
+ MIN(screen->scrolling_region.start,
+ terminal->row_count - 1);
+ screen->scrolling_region.end =
+ MIN(screen->scrolling_region.end,
+ terminal->row_count - 1);
+ }
+
+ /* Ensure scrollback buffers cover the screen. */
+ vte_terminal_set_scrollback_lines(terminal,
+ terminal->pvt->scrollback_lines);
+ /* Ensure the cursor is valid */
+ screen->cursor_current.row = CLAMP (screen->cursor_current.row,
+ _vte_ring_delta (screen->row_data),
+ MAX (_vte_ring_delta (screen->row_data),
+ _vte_ring_next (screen->row_data) - 1));
+ /* Notify viewers that the contents have changed. */
+ _vte_terminal_queue_contents_changed(terminal);
+ }
+
+ /* Resize the GDK window. */
+ if (gtk_widget_get_realized (widget)) {
+ gdk_window_move_resize (gtk_widget_get_window (widget),
+ allocation->x,
+ allocation->y,
+ allocation->width,
+ allocation->height);
+ /* Force a repaint if we were resized. */
+ if (repaint) {
+ reset_update_regions (terminal);
+ _vte_invalidate_all(terminal);
+ }
+ }
+}
+
+/* Queue a background update. */
+static void
+root_pixmap_changed_cb(VteBg *bg, VteTerminal *terminal)
+{
+ _vte_debug_print (VTE_DEBUG_EVENTS, "Root pixmap changed.\n");
+ if (terminal->pvt->bg_transparent) {
+ vte_terminal_queue_background_update(terminal);
+ }
+}
+
+/* The window is being destroyed. */
+static void
+vte_terminal_unrealize(GtkWidget *widget)
+{
+ GdkWindow *window;
+ VteTerminal *terminal;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_unrealize()\n");
+
+ terminal = VTE_TERMINAL (widget);
+ window = gtk_widget_get_window (widget);
+
+ /* Disconnect from background-change events. */
+ if (terminal->pvt->root_pixmap_changed_tag != 0) {
+ VteBg *bg;
+ bg = vte_bg_get_for_screen(gtk_widget_get_screen(widget));
+ g_signal_handler_disconnect (bg,
+ terminal->pvt->root_pixmap_changed_tag);
+ terminal->pvt->root_pixmap_changed_tag = 0;
+ }
+
+ /* Deallocate the cursors. */
+ terminal->pvt->mouse_cursor_visible = FALSE;
+ gdk_cursor_unref(terminal->pvt->mouse_default_cursor);
+ terminal->pvt->mouse_default_cursor = NULL;
+ gdk_cursor_unref(terminal->pvt->mouse_mousing_cursor);
+ terminal->pvt->mouse_mousing_cursor = NULL;
+ gdk_cursor_unref(terminal->pvt->mouse_inviso_cursor);
+ terminal->pvt->mouse_inviso_cursor = NULL;
+
+ vte_terminal_match_hilite_clear(terminal);
+
+ /* Shut down input methods. */
+ if (terminal->pvt->im_context != NULL) {
+ g_signal_handlers_disconnect_by_func (terminal->pvt->im_context,
+ vte_terminal_im_preedit_changed,
+ terminal);
+ vte_terminal_im_reset(terminal);
+ gtk_im_context_set_client_window(terminal->pvt->im_context,
+ NULL);
+ g_object_unref(terminal->pvt->im_context);
+ terminal->pvt->im_context = NULL;
+ }
+ terminal->pvt->im_preedit_active = FALSE;
+ if (terminal->pvt->im_preedit != NULL) {
+ g_free(terminal->pvt->im_preedit);
+ terminal->pvt->im_preedit = NULL;
+ }
+ if (terminal->pvt->im_preedit_attrs != NULL) {
+ pango_attr_list_unref(terminal->pvt->im_preedit_attrs);
+ terminal->pvt->im_preedit_attrs = NULL;
+ }
+ terminal->pvt->im_preedit_cursor = 0;
+
+ /* Clean up our draw structure. */
+ if (terminal->pvt->draw != NULL) {
+ _vte_draw_free(terminal->pvt->draw);
+ terminal->pvt->draw = NULL;
+ }
+ terminal->pvt->fontdirty = TRUE;
+
+ /* Unmap the widget if it hasn't been already. */
+ if (gtk_widget_get_mapped (widget)) {
+ gtk_widget_unmap (widget);
+ }
+
+ /* Remove the GDK window. */
+ if (window != NULL) {
+ /* detach style */
+ GtkStyle *style;
+
+ style = gtk_widget_get_style (widget);
+ gtk_style_detach (style);
+
+ gdk_window_set_user_data (window, NULL);
+ gtk_widget_set_window (widget, NULL);
+
+ gdk_window_destroy (window);
+ }
+
+ /* Remove the blink timeout function. */
+ remove_cursor_timeout(terminal);
+
+ /* Cancel any pending redraws. */
+ remove_update_timeout (terminal);
+
+ /* Cancel any pending signals */
+ terminal->pvt->contents_changed_pending = FALSE;
+ terminal->pvt->cursor_moved_pending = FALSE;
+ terminal->pvt->text_modified_flag = FALSE;
+ terminal->pvt->text_inserted_flag = FALSE;
+ terminal->pvt->text_deleted_flag = FALSE;
+
+ /* Clear modifiers. */
+ terminal->pvt->modifiers = 0;
+
+ /* Mark that we no longer have a GDK window. */
+ gtk_widget_set_realized (widget, FALSE);
+}
+
+static void
+vte_terminal_sync_settings (GtkSettings *settings,
+ GParamSpec *pspec,
+ VteTerminal *terminal)
+{
+ VteTerminalPrivate *pvt = terminal->pvt;
+ gboolean blink;
+ int blink_time = 1000;
+ int blink_timeout = G_MAXINT;
+
+ g_object_get(G_OBJECT (settings),
+ "gtk-cursor-blink", &blink,
+ "gtk-cursor-blink-time", &blink_time,
+ "gtk-cursor-blink-timeout", &blink_timeout,
+ NULL);
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Cursor blinking settings setting: blink=%d time=%d timeout=%d\n",
+ blink, blink_time, blink_timeout);
+
+ pvt->cursor_blink_cycle = blink_time / 2;
+ pvt->cursor_blink_timeout = blink_timeout;
+
+ if (pvt->cursor_blink_mode == VTE_CURSOR_BLINK_SYSTEM)
+ vte_terminal_set_cursor_blinks_internal(terminal, blink);
+}
+
+static void
+vte_terminal_screen_changed (GtkWidget *widget,
+ GdkScreen *previous_screen)
+{
+ VteTerminal *terminal = VTE_TERMINAL (widget);
+ GdkScreen *screen;
+ GtkSettings *settings;
+
+ screen = gtk_widget_get_screen (widget);
+ if (previous_screen != NULL &&
+ (screen != previous_screen || screen == NULL)) {
+ settings = gtk_settings_get_for_screen (previous_screen);
+ g_signal_handlers_disconnect_matched (settings, G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL,
+ widget);
+ }
+
+ if (GTK_WIDGET_CLASS (vte_terminal_parent_class)->screen_changed) {
+ GTK_WIDGET_CLASS (vte_terminal_parent_class)->screen_changed (widget, previous_screen);
+ }
+
+ if (screen == previous_screen || screen == NULL)
+ return;
+
+ settings = gtk_widget_get_settings (widget);
+ vte_terminal_sync_settings (settings, NULL, terminal);
+ g_signal_connect (settings, "notify::gtk-cursor-blink",
+ G_CALLBACK (vte_terminal_sync_settings), widget);
+ g_signal_connect (settings, "notify::gtk-cursor-blink-time",
+ G_CALLBACK (vte_terminal_sync_settings), widget);
+ g_signal_connect (settings, "notify::gtk-cursor-blink-timeout",
+ G_CALLBACK (vte_terminal_sync_settings), widget);
+}
+
+/* Perform final cleanups for the widget before it's freed. */
+static void
+vte_terminal_finalize(GObject *object)
+{
+ GtkWidget *widget = GTK_WIDGET (object);
+ VteTerminal *terminal = VTE_TERMINAL (object);
+ GtkWidget *toplevel;
+ GtkClipboard *clipboard;
+ GtkSettings *settings;
+ struct vte_match_regex *regex;
+ guint i;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_finalize()\n");
+
+ /* Free the draw structure. */
+ if (terminal->pvt->draw != NULL) {
+ _vte_draw_free(terminal->pvt->draw);
+ }
+
+ /* The NLS maps. */
+ _vte_iso2022_state_free(terminal->pvt->iso2022);
+
+ /* Free background info. */
+ g_free(terminal->pvt->bg_file);
+
+ /* Free the font description. */
+ if (terminal->pvt->fontdesc != NULL) {
+ pango_font_description_free(terminal->pvt->fontdesc);
+ }
+ terminal->pvt->fontantialias = VTE_ANTI_ALIAS_USE_DEFAULT;
+
+ /* Free matching data. */
+ if (terminal->pvt->match_attributes != NULL) {
+ g_array_free(terminal->pvt->match_attributes, TRUE);
+ }
+ g_free(terminal->pvt->match_contents);
+ if (terminal->pvt->match_regexes != NULL) {
+ for (i = 0; i < terminal->pvt->match_regexes->len; i++) {
+ regex = &g_array_index(terminal->pvt->match_regexes,
+ struct vte_match_regex,
+ i);
+ /* Skip holes. */
+ if (regex->tag < 0) {
+ continue;
+ }
+ regex_match_clear(regex);
+ }
+ g_array_free(terminal->pvt->match_regexes, TRUE);
+ }
+
+ if (terminal->pvt->search_regex)
+ g_regex_unref (terminal->pvt->search_regex);
+ if (terminal->pvt->search_attrs)
+ g_array_free (terminal->pvt->search_attrs, TRUE);
+
+ /* Disconnect from toplevel window configure events. */
+ toplevel = gtk_widget_get_toplevel(&terminal->widget);
+ if ((toplevel != NULL) && (G_OBJECT(toplevel) != object)) {
+ g_signal_handlers_disconnect_by_func(toplevel,
+ vte_terminal_configure_toplevel,
+ terminal);
+ }
+
+ /* Disconnect from autoscroll requests. */
+ vte_terminal_stop_autoscroll(terminal);
+
+ /* Cancel pending adjustment change notifications. */
+ terminal->pvt->adjustment_changed_pending = FALSE;
+
+ /* Tabstop information. */
+ if (terminal->pvt->tabstops != NULL) {
+ g_hash_table_destroy(terminal->pvt->tabstops);
+ }
+
+ /* Free any selected text, but if we currently own the selection,
+ * throw the text onto the clipboard without an owner so that it
+ * doesn't just disappear. */
+ if (terminal->pvt->selection != NULL) {
+ clipboard = vte_terminal_clipboard_get(terminal,
+ GDK_SELECTION_PRIMARY);
+ if (gtk_clipboard_get_owner(clipboard) == object) {
+ gtk_clipboard_set_text(clipboard,
+ terminal->pvt->selection,
+ -1);
+ }
+ g_free(terminal->pvt->selection);
+ }
+ if (terminal->pvt->word_chars != NULL) {
+ g_array_free(terminal->pvt->word_chars, TRUE);
+ }
+
+ /* Clear the output histories. */
+ _vte_ring_fini(terminal->pvt->normal_screen.row_data);
+ _vte_ring_fini(terminal->pvt->alternate_screen.row_data);
+
+ /* Clear the status lines. */
+ g_string_free(terminal->pvt->normal_screen.status_line_contents,
+ TRUE);
+ g_string_free(terminal->pvt->alternate_screen.status_line_contents,
+ TRUE);
+
+ /* Free conversion descriptors. */
+ if (terminal->pvt->outgoing_conv != VTE_INVALID_CONV) {
+ _vte_conv_close(terminal->pvt->outgoing_conv);
+ terminal->pvt->outgoing_conv = VTE_INVALID_CONV;
+ }
+
+ /* Stop listening for child-exited signals. */
+ if (terminal->pvt->pty_reaper != NULL) {
+ g_signal_handlers_disconnect_by_func(terminal->pvt->pty_reaper,
+ vte_terminal_catch_child_exited,
+ terminal);
+ g_object_unref(terminal->pvt->pty_reaper);
+ }
+
+ /* Stop processing input. */
+ vte_terminal_stop_processing (terminal);
+
+ /* Discard any pending data. */
+ _vte_incoming_chunks_release (terminal->pvt->incoming);
+ _vte_buffer_free(terminal->pvt->outgoing);
+ g_array_free(terminal->pvt->pending, TRUE);
+ _vte_buffer_free(terminal->pvt->conv_buffer);
+
+ /* Stop the child and stop watching for input from the child. */
+ if (terminal->pvt->pty_pid != -1) {
+#ifdef HAVE_GETPGID
+ pid_t pgrp;
+ pgrp = getpgid(terminal->pvt->pty_pid);
+ if (pgrp != -1) {
+ kill(-pgrp, SIGHUP);
+ }
+#endif
+ kill(terminal->pvt->pty_pid, SIGHUP);
+ }
+ _vte_terminal_disconnect_pty_read(terminal);
+ _vte_terminal_disconnect_pty_write(terminal);
+ if (terminal->pvt->pty_channel != NULL) {
+ g_io_channel_unref (terminal->pvt->pty_channel);
+ }
+ if (terminal->pvt->pty != NULL) {
+ vte_pty_close(terminal->pvt->pty);
+ g_object_unref(terminal->pvt->pty);
+ }
+
+ /* Remove hash tables. */
+ if (terminal->pvt->dec_saved != NULL) {
+ g_hash_table_destroy(terminal->pvt->dec_saved);
+ }
+
+ /* Clean up emulation structures. */
+ if (terminal->pvt->matcher != NULL) {
+ _vte_matcher_free(terminal->pvt->matcher);
+ }
+ if (terminal->pvt->termcap != NULL) {
+ _vte_termcap_free(terminal->pvt->termcap);
+ }
+
+ remove_update_timeout (terminal);
+
+ /* discard title updates */
+ g_free(terminal->pvt->window_title_changed);
+ g_free(terminal->pvt->icon_title_changed);
+
+ /* Free public-facing data. */
+ g_free(terminal->window_title);
+ g_free(terminal->icon_title);
+ if (terminal->adjustment != NULL) {
+ g_object_unref(terminal->adjustment);
+ }
+
+ settings = gtk_widget_get_settings (widget);
+ g_signal_handlers_disconnect_matched (settings, G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL,
+ terminal);
+
+ /* Call the inherited finalize() method. */
+ G_OBJECT_CLASS(vte_terminal_parent_class)->finalize(object);
+}
+
+/* Handle realizing the widget. Most of this is copy-paste from GGAD. */
+static void
+vte_terminal_realize(GtkWidget *widget)
+{
+ GdkWindow *window;
+ VteTerminal *terminal;
+ GdkWindowAttr attributes;
+ GtkAllocation allocation;
+ GdkColor color;
+ guint attributes_mask = 0, i;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_realize()\n");
+
+ terminal = VTE_TERMINAL(widget);
+ gtk_widget_get_allocation (widget, &allocation);
+
+ /* Create the draw structure if we don't already have one. */
+ if (terminal->pvt->draw == NULL) {
+ terminal->pvt->draw = _vte_draw_new(&terminal->widget);
+ }
+
+ /* Create the stock cursors. */
+ terminal->pvt->mouse_cursor_visible = TRUE;
+ terminal->pvt->mouse_default_cursor =
+ vte_terminal_cursor_new(terminal, VTE_DEFAULT_CURSOR);
+ terminal->pvt->mouse_mousing_cursor =
+ vte_terminal_cursor_new(terminal, VTE_MOUSING_CURSOR);
+
+ /* Create a GDK window for the widget. */
+ attributes.window_type = GDK_WINDOW_CHILD;
+ attributes.x = allocation.x;
+ attributes.y = allocation.y;
+ attributes.width = allocation.width;
+ attributes.height = allocation.height;
+ attributes.wclass = GDK_INPUT_OUTPUT;
+ attributes.visual = gtk_widget_get_visual (widget);
+#if !GTK_CHECK_VERSION (2, 90, 8)
+ attributes.colormap = gtk_widget_get_colormap (widget);
+#endif
+ attributes.event_mask = gtk_widget_get_events(widget) |
+ GDK_EXPOSURE_MASK |
+ GDK_VISIBILITY_NOTIFY_MASK |
+ GDK_FOCUS_CHANGE_MASK |
+ GDK_BUTTON_PRESS_MASK |
+ GDK_BUTTON_RELEASE_MASK |
+ GDK_POINTER_MOTION_MASK |
+ GDK_BUTTON1_MOTION_MASK |
+ GDK_ENTER_NOTIFY_MASK |
+ GDK_LEAVE_NOTIFY_MASK |
+ GDK_KEY_PRESS_MASK |
+ GDK_KEY_RELEASE_MASK;
+ attributes.cursor = terminal->pvt->mouse_default_cursor;
+ attributes_mask = GDK_WA_X |
+ GDK_WA_Y |
+ (attributes.visual ? GDK_WA_VISUAL : 0) |
+#if !GTK_CHECK_VERSION (2, 90, 8)
+ (attributes.colormap ? GDK_WA_COLORMAP : 0) |
+#endif
+ GDK_WA_CURSOR;
+
+ window = gdk_window_new (gtk_widget_get_parent_window (widget),
+ &attributes, attributes_mask);
+
+ gtk_widget_set_window (widget, window);
+ gdk_window_set_user_data (window, widget);
+ _VTE_DEBUG_IF (VTE_DEBUG_UPDATES) gdk_window_set_debug_updates (TRUE);
+
+ /* Set the realized flag. */
+ gtk_widget_set_realized (widget, TRUE);
+
+ /* Set up the desired palette. */
+ if (!terminal->pvt->palette_initialized) {
+ vte_terminal_set_default_colors(terminal);
+ }
+
+ /* Allocate colors. */
+ for (i = 0; i < G_N_ELEMENTS(terminal->pvt->palette); i++) {
+ color.red = terminal->pvt->palette[i].red;
+ color.green = terminal->pvt->palette[i].green;
+ color.blue = terminal->pvt->palette[i].blue;
+ color.pixel = 0;
+ vte_terminal_set_color_internal(terminal, i, &color);
+ }
+
+ /* Set up input method support. FIXME: do we need to handle the
+ * "retrieve-surrounding" and "delete-surrounding" events? */
+ if (terminal->pvt->im_context != NULL) {
+ vte_terminal_im_reset(terminal);
+ g_object_unref(terminal->pvt->im_context);
+ terminal->pvt->im_context = NULL;
+ }
+ terminal->pvt->im_preedit_active = FALSE;
+ terminal->pvt->im_context = gtk_im_multicontext_new();
+ gtk_im_context_set_client_window (terminal->pvt->im_context, window);
+ g_signal_connect(terminal->pvt->im_context, "commit",
+ G_CALLBACK(vte_terminal_im_commit), terminal);
+ g_signal_connect(terminal->pvt->im_context, "preedit-start",
+ G_CALLBACK(vte_terminal_im_preedit_start),
+ terminal);
+ g_signal_connect(terminal->pvt->im_context, "preedit-changed",
+ G_CALLBACK(vte_terminal_im_preedit_changed),
+ terminal);
+ g_signal_connect(terminal->pvt->im_context, "preedit-end",
+ G_CALLBACK(vte_terminal_im_preedit_end),
+ terminal);
+ gtk_im_context_set_use_preedit(terminal->pvt->im_context, TRUE);
+
+ /* Clear modifiers. */
+ terminal->pvt->modifiers = 0;
+
+ /* Create our invisible cursor. */
+#if GTK_CHECK_VERSION (2, 15, 1)
+ terminal->pvt->mouse_inviso_cursor = gdk_cursor_new_for_display(gtk_widget_get_display(widget),
GDK_BLANK_CURSOR);
+#else
+ {
+ GdkPixmap *bitmap;
+ GdkColor black = {0,0,0,0};
+
+ bitmap = gdk_bitmap_create_from_data (window, "\0", 1, 1);
+ terminal->pvt->mouse_inviso_cursor = gdk_cursor_new_from_pixmap(bitmap,
+ bitmap,
+ &black,
+ &black,
+ 0, 0);
+ g_object_unref(bitmap);
+ }
+#endif /* GTK >= 2.15.1 */
+
+#if GTK_CHECK_VERSION (2, 20, 0)
+ gtk_widget_style_attach (widget);
+#else
+ widget->style = gtk_style_attach(widget->style, widget->window);
+#endif
+
+ vte_terminal_ensure_font (terminal);
+
+ /* Set up the background, *now*. */
+ vte_terminal_background_update(terminal);
+}
+
+static inline void
+swap (guint *a, guint *b)
+{
+ guint tmp;
+ tmp = *a, *a = *b, *b = tmp;
+}
+
+static void
+vte_terminal_determine_colors_internal(VteTerminal *terminal,
+ const VteCell *cell,
+ gboolean selected,
+ gboolean cursor,
+ guint *pfore, guint *pback)
+{
+ guint fore, back;
+
+ if (!cell)
+ cell = &basic_cell.cell;
+
+ /* Start with cell colors */
+ fore = cell->attr.fore;
+ back = cell->attr.back;
+
+ /* Reverse-mode switches default fore and back colors */
+ if (G_UNLIKELY (terminal->pvt->screen->reverse_mode)) {
+ if (fore == VTE_DEF_FG)
+ fore = VTE_DEF_BG;
+ if (back == VTE_DEF_BG)
+ back = VTE_DEF_FG;
+ }
+
+ /* Handle bold by using set bold color or brightening */
+ if (cell->attr.bold) {
+ if (fore == VTE_DEF_FG)
+ fore = VTE_BOLD_FG;
+ else if (fore < VTE_LEGACY_COLOR_SET_SIZE) {
+ fore += VTE_COLOR_BRIGHT_OFFSET;
+ }
+ }
+
+ /* Handle half similarly */
+ if (cell->attr.half) {
+ if (fore == VTE_DEF_FG)
+ fore = VTE_DIM_FG;
+ else if ((fore < VTE_LEGACY_COLOR_SET_SIZE))
+ fore = corresponding_dim_index[fore];
+ }
+
+ /* And standout */
+ if (cell->attr.standout) {
+ if (back < VTE_LEGACY_COLOR_SET_SIZE)
+ back += VTE_COLOR_BRIGHT_OFFSET;
+ }
+
+ /* Reverse cell? */
+ if (cell->attr.reverse) {
+ swap (&fore, &back);
+ }
+
+ /* Selection: use hightlight back, or inverse */
+ if (selected) {
+ /* XXX what if hightlight back is same color as current back? */
+ if (terminal->pvt->highlight_color_set)
+ back = VTE_DEF_HL;
+ else
+ swap (&fore, &back);
+ }
+
+ /* Cursor: use cursor back, or inverse */
+ if (cursor) {
+ /* XXX what if cursor back is same color as current back? */
+ if (terminal->pvt->cursor_color_set)
+ back = VTE_CUR_BG;
+ else
+ swap (&fore, &back);
+ }
+
+ /* Invisible? */
+ if (cell && cell->attr.invisible) {
+ fore = back;
+ }
+
+ *pfore = fore;
+ *pback = back;
+}
+
+static inline void
+vte_terminal_determine_colors (VteTerminal *terminal,
+ const VteCell *cell,
+ gboolean highlight,
+ guint *fore, guint *back)
+{
+ return vte_terminal_determine_colors_internal (terminal, cell,
+ highlight, FALSE,
+ fore, back);
+}
+
+static inline void
+vte_terminal_determine_cursor_colors (VteTerminal *terminal,
+ const VteCell *cell,
+ gboolean highlight,
+ guint *fore, guint *back)
+{
+ return vte_terminal_determine_colors_internal (terminal, cell,
+ highlight, TRUE,
+ fore, back);
+}
+
+/* Check if a unicode character is actually a graphic character we draw
+ * ourselves to handle cases where fonts don't have glyphs for them. */
+static gboolean
+vte_unichar_is_local_graphic(vteunistr c)
+{
+ if ((c >= 0x2500) && (c <= 0x257f)) {
+ return TRUE;
+ }
+ switch (c) {
+ case 0x00a3: /* british pound */
+ case 0x00b0: /* degree */
+ case 0x00b1: /* plus/minus */
+ case 0x00b7: /* bullet */
+ case 0x03c0: /* pi */
+ case 0x2190: /* left arrow */
+ case 0x2191: /* up arrow */
+ case 0x2192: /* right arrow */
+ case 0x2193: /* down arrow */
+ case 0x2260: /* != */
+ case 0x2264: /* <= */
+ case 0x2265: /* >= */
+ case 0x23ba: /* scanline 1/9 */
+ case 0x23bb: /* scanline 3/9 */
+ case 0x23bc: /* scanline 7/9 */
+ case 0x23bd: /* scanline 9/9 */
+ case 0x2409: /* HT symbol */
+ case 0x240a: /* LF symbol */
+ case 0x240b: /* VT symbol */
+ case 0x240c: /* FF symbol */
+ case 0x240d: /* CR symbol */
+ case 0x2424: /* NL symbol */
+ case 0x2592: /* checkerboard */
+ case 0x25ae: /* solid rectangle */
+ case 0x25c6: /* diamond */
+ return TRUE;
+ break;
+ default:
+ break;
+ }
+ return FALSE;
+}
+static gboolean
+vte_terminal_unichar_is_local_graphic(VteTerminal *terminal, vteunistr c, gboolean bold)
+{
+ return vte_unichar_is_local_graphic (c) &&
+ !_vte_draw_has_char (terminal->pvt->draw, c, bold);
+}
+
+static void
+vte_terminal_fill_rectangle(VteTerminal *terminal,
+ const PangoColor *color,
+ gint x,
+ gint y,
+ gint width,
+ gint height)
+{
+ _vte_draw_start(terminal->pvt->draw);
+ _vte_draw_fill_rectangle(terminal->pvt->draw,
+ x + terminal->pvt->inner_border.left,
+ y + terminal->pvt->inner_border.top,
+ width, height,
+ color, VTE_DRAW_OPAQUE);
+ _vte_draw_end(terminal->pvt->draw);
+}
+
+static void
+vte_terminal_draw_line(VteTerminal *terminal,
+ const PangoColor *color,
+ gint x,
+ gint y,
+ gint xp,
+ gint yp)
+{
+ vte_terminal_fill_rectangle(terminal, color,
+ x, y,
+ MAX(VTE_LINE_WIDTH, xp - x + 1), MAX(VTE_LINE_WIDTH, yp - y + 1));
+}
+
+static void
+vte_terminal_draw_rectangle(VteTerminal *terminal,
+ const PangoColor *color,
+ gint x,
+ gint y,
+ gint width,
+ gint height)
+{
+ _vte_draw_start(terminal->pvt->draw);
+ _vte_draw_draw_rectangle(terminal->pvt->draw,
+ x + terminal->pvt->inner_border.left,
+ y + terminal->pvt->inner_border.top,
+ width, height,
+ color, VTE_DRAW_OPAQUE);
+ _vte_draw_end(terminal->pvt->draw);
+}
+
+static void
+vte_terminal_draw_point(VteTerminal *terminal,
+ const PangoColor *color,
+ gint x,
+ gint y)
+{
+ vte_terminal_fill_rectangle(terminal, color, x, y, 1, 1);
+}
+
+/* Draw the graphic representation of a line-drawing or special graphics
+ * character. */
+static gboolean
+vte_terminal_draw_graphic(VteTerminal *terminal, vteunistr c,
+ guint fore, guint back, gboolean draw_default_bg,
+ gint x, gint y,
+ gint column_width, gint columns, gint row_height,
+ gboolean bold)
+{
+ gboolean ret;
+ gint xcenter, xright, ycenter, ybottom, i;
+ struct _vte_draw_text_request request;
+
+ request.c = c;
+ request.x = x + terminal->pvt->inner_border.left;
+ request.y = y + terminal->pvt->inner_border.top;
+ request.columns = columns;
+
+ xright = x + column_width * columns;
+ ybottom = y + row_height;
+ xcenter = (x + xright) / 2;
+ ycenter = (y + ybottom) / 2;
+
+ if ((back != VTE_DEF_BG) || draw_default_bg) {
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[back],
+ x, y,
+ column_width * columns, row_height);
+ }
+
+ if (_vte_draw_char(terminal->pvt->draw, &request,
+ &terminal->pvt->palette[fore], VTE_DRAW_OPAQUE, bold)) {
+ /* We were able to draw with actual fonts. */
+ return TRUE;
+ }
+
+ ret = TRUE;
+
+ switch (c) {
+ case 124:
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* != */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (x + xcenter) / 2 - 1, ycenter,
+ (xright + xcenter) / 2 + 1, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (x + xcenter) / 2 - 1,
+ (ybottom + ycenter) / 2,
+ (xright + xcenter) / 2 + 1,
+ (ybottom + ycenter) / 2);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xright - 1, y + 1,
+ x + 1, ybottom - 1);
+ break;
+ case 127:
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* A "delete" symbol I saw somewhere. */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, ycenter,
+ xcenter, y);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, y,
+ xright - 1, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xright - 1, ycenter,
+ xright - 1, ybottom - 1);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xright - 1, ybottom - 1,
+ x, ybottom - 1);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, ybottom - 1,
+ x, ycenter);
+ break;
+ case 0x00a3:
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* British pound. An "L" with a hyphen. */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (x + xcenter) / 2,
+ (y + ycenter) / 2,
+ (x + xcenter) / 2,
+ (ycenter + ybottom) / 2);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (x + xcenter) / 2,
+ (ycenter + ybottom) / 2,
+ (xcenter + xright) / 2,
+ (ycenter + ybottom) / 2);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, ycenter,
+ xcenter + 1, ycenter);
+ break;
+ case 0x00b0: /* f */
+ /* litle circle */
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter - 1, ycenter);
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter + 1, ycenter);
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter - 1);
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter + 1);
+ break;
+ case 0x00b1: /* g */
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* +/- */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ (y + ycenter) / 2,
+ xcenter,
+ (ycenter + ybottom) / 2);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (x + xcenter) / 2,
+ ycenter,
+ (xcenter + xright) / 2,
+ ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (x + xcenter) / 2,
+ (ycenter + ybottom) / 2,
+ (xcenter + xright) / 2,
+ (ycenter + ybottom) / 2);
+ break;
+ case 0x00b7:
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* short hyphen? */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter - 1, ycenter,
+ xcenter + 1, ycenter);
+ break;
+ case 0x3c0: /* pi */
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (x + xcenter) / 2 - 1,
+ (y + ycenter) / 2,
+ (xright + xcenter) / 2 + 1,
+ (y + ycenter) / 2);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (x + xcenter) / 2,
+ (y + ycenter) / 2,
+ (x + xcenter) / 2,
+ (ybottom + ycenter) / 2);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (xright + xcenter) / 2,
+ (y + ycenter) / 2,
+ (xright + xcenter) / 2,
+ (ybottom + ycenter) / 2);
+ break;
+ /* case 0x2190: FIXME */
+ /* case 0x2191: FIXME */
+ /* case 0x2192: FIXME */
+ /* case 0x2193: FIXME */
+ /* case 0x2260: FIXME */
+ case 0x2264: /* y */
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* <= */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xright - 1, y,
+ x, (y + ycenter) / 2);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, (y + ycenter) / 2,
+ xright - 1, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, ycenter,
+ xright - 1, (ycenter + ybottom) / 2);
+ break;
+ case 0x2265: /* z */
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* >= */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ xright - 1, (y + ycenter) / 2);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xright - 1, (y + ycenter) / 2,
+ x, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xright - 1, ycenter,
+ x, (ycenter + ybottom) / 2);
+ break;
+ case 0x23ba: /* o */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ column_width * columns,
+ VTE_LINE_WIDTH);
+ break;
+ case 0x23bb: /* p */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x, (y + ycenter) / 2,
+ column_width * columns,
+ VTE_LINE_WIDTH);
+ break;
+ case 0x23bc: /* r */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ (ycenter + ybottom) / 2,
+ column_width * columns,
+ VTE_LINE_WIDTH);
+ break;
+ case 0x23bd: /* s */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ybottom - 1,
+ column_width * columns,
+ VTE_LINE_WIDTH);
+ break;
+ case 0x2409: /* b */
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* H */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ x, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, y,
+ xcenter, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, (y + ycenter) / 2,
+ xcenter, (y + ycenter) / 2);
+ /* T */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter,
+ xright - 1, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (xcenter + xright) / 2, ycenter,
+ (xcenter + xright) / 2, ybottom - 1);
+ break;
+ case 0x240a: /* e */
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* L */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ x, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, ycenter,
+ xcenter, ycenter);
+ /* F */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter,
+ xcenter, ybottom - 1);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter,
+ xright - 1, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, (ycenter + ybottom) / 2,
+ xright - 1, (ycenter + ybottom) / 2);
+ break;
+ case 0x240b: /* i */
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* V */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ (x + xcenter) / 2, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (x + xcenter) / 2, ycenter,
+ xcenter, y);
+ /* T */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter,
+ xright - 1, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ (xcenter + xright) / 2, ycenter,
+ (xcenter + xright) / 2, ybottom - 1);
+ break;
+ case 0x240c: /* c */
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* F */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ x, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ xcenter, y);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, (y + ycenter) / 2,
+ xcenter, (y + ycenter) / 2);
+ /* F */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter,
+ xcenter, ybottom - 1);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter,
+ xright - 1, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, (ycenter + ybottom) / 2,
+ xright - 1, (ycenter + ybottom) / 2);
+ break;
+ case 0x240d: /* d */
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* C */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ x, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ xcenter, y);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, ycenter,
+ xcenter, ycenter);
+ /* R */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter,
+ xcenter, ybottom - 1);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter,
+ xright - 1, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xright - 1, ycenter,
+ xright - 1, (ycenter + ybottom) / 2);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xright - 1, (ycenter + ybottom) / 2,
+ xcenter, (ycenter + ybottom) / 2);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, (ycenter + ybottom) / 2,
+ xright - 1, ybottom - 1);
+ break;
+ case 0x2424: /* h */
+ xcenter--;
+ ycenter--;
+ xright--;
+ ybottom--;
+ /* N */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ x, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ xcenter, ycenter);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, y,
+ xcenter, ycenter);
+ /* L */
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter,
+ xcenter, ybottom - 1);
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ybottom - 1,
+ xright - 1, ybottom - 1);
+ break;
+ case 0x2500: /* q */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ column_width * columns,
+ VTE_LINE_WIDTH);
+ break;
+ case 0x2501:
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ column_width * columns,
+ VTE_LINE_WIDTH * 2);
+ break;
+ case 0x2502: /* x */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH,
+ row_height);
+ break;
+ case 0x2503:
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH * 2,
+ row_height);
+ break;
+ case 0x250c: /* l */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ xright - xcenter,
+ VTE_LINE_WIDTH);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ VTE_LINE_WIDTH,
+ ybottom - ycenter);
+ break;
+ case 0x250f:
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ xright - xcenter,
+ VTE_LINE_WIDTH * 2);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ VTE_LINE_WIDTH * 2,
+ ybottom - ycenter);
+ break;
+ case 0x2510: /* k */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ xcenter - x + VTE_LINE_WIDTH,
+ VTE_LINE_WIDTH);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ VTE_LINE_WIDTH,
+ ybottom - ycenter);
+ break;
+ case 0x2513:
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ xcenter - x + VTE_LINE_WIDTH * 2,
+ VTE_LINE_WIDTH * 2);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ VTE_LINE_WIDTH * 2,
+ ybottom - ycenter);
+ break;
+ case 0x2514: /* m */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ xright - xcenter,
+ VTE_LINE_WIDTH);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH,
+ ycenter - y + VTE_LINE_WIDTH);
+ break;
+ case 0x2517:
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ xright - xcenter,
+ VTE_LINE_WIDTH * 2);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH * 2,
+ ycenter - y + VTE_LINE_WIDTH * 2);
+ break;
+ case 0x2518: /* j */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ xcenter - x + VTE_LINE_WIDTH,
+ VTE_LINE_WIDTH);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH,
+ ycenter - y + VTE_LINE_WIDTH);
+ break;
+ case 0x251b:
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ xcenter - x + VTE_LINE_WIDTH * 2,
+ VTE_LINE_WIDTH * 2);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH * 2,
+ ycenter - y + VTE_LINE_WIDTH * 2);
+ break;
+ case 0x251c: /* t */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH,
+ row_height);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ xright - xcenter,
+ VTE_LINE_WIDTH);
+ break;
+ case 0x2523:
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH * 2,
+ row_height);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ xright - xcenter,
+ VTE_LINE_WIDTH * 2);
+ break;
+ case 0x2524: /* u */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH,
+ row_height);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ xcenter - x + VTE_LINE_WIDTH,
+ VTE_LINE_WIDTH);
+ break;
+ case 0x252b:
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH * 2,
+ row_height);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ xcenter - x + VTE_LINE_WIDTH * 2,
+ VTE_LINE_WIDTH * 2);
+ break;
+ case 0x252c: /* w */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ VTE_LINE_WIDTH,
+ ybottom - ycenter);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ column_width * columns,
+ VTE_LINE_WIDTH);
+ break;
+ case 0x2533:
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ ycenter,
+ VTE_LINE_WIDTH * 2,
+ ybottom - ycenter);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ column_width * columns,
+ VTE_LINE_WIDTH * 2);
+ break;
+ case 0x2534: /* v */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH,
+ ycenter - y + VTE_LINE_WIDTH);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ column_width * columns,
+ VTE_LINE_WIDTH);
+ break;
+ case 0x253c: /* n */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH,
+ row_height);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ column_width * columns,
+ VTE_LINE_WIDTH);
+ break;
+ case 0x254b:
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter,
+ y,
+ VTE_LINE_WIDTH * 2,
+ row_height);
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ ycenter,
+ column_width * columns,
+ VTE_LINE_WIDTH * 2);
+ break;
+ case 0x2592: /* a */
+ for (i = x; i < xright + 1; i++) {
+ gint j, draw = ((i - x) & 1) == 0;
+ for (j = y; j < ybottom; j++) {
+ if (draw) {
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ i, j);
+ }
+ draw = !draw;
+ }
+ }
+ break;
+ case 0x25ae: /* solid rectangle */
+ vte_terminal_fill_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ xright - x, ybottom - y);
+ break;
+ case 0x25c6:
+ /* diamond */
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter - 2, ycenter);
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter + 2, ycenter);
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter - 2);
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter, ycenter + 2);
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter - 1, ycenter - 1);
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter - 1, ycenter + 1);
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter + 1, ycenter - 1);
+ vte_terminal_draw_point(terminal,
+ &terminal->pvt->palette[fore],
+ xcenter + 1, ycenter + 1);
+ break;
+ default:
+ ret = FALSE;
+ break;
+ }
+ return ret;
+}
+
+/* Draw a string of characters with similar attributes. */
+static void
+vte_terminal_draw_cells(VteTerminal *terminal,
+ struct _vte_draw_text_request *items, gssize n,
+ guint fore, guint back, gboolean clear,
+ gboolean draw_default_bg,
+ gboolean bold, gboolean underline,
+ gboolean strikethrough, gboolean hilite, gboolean boxed,
+ gint column_width, gint row_height)
+{
+ int i, x, y, ascent;
+ gint columns = 0;
+ PangoColor *fg, *bg, *defbg;
+
+ g_assert(n > 0);
+ _VTE_DEBUG_IF(VTE_DEBUG_CELLS) {
+ GString *str = g_string_new (NULL);
+ gchar *tmp;
+ for (i = 0; i < n; i++) {
+ g_string_append_unichar (str, items[i].c);
+ }
+ tmp = g_string_free (str, FALSE);
+ g_printerr ("draw_cells('%s', fore=%d, back=%d, bold=%d,"
+ " ul=%d, strike=%d, hilite=%d, boxed=%d)\n",
+ tmp, fore, back, bold,
+ underline, strikethrough, hilite, boxed);
+ g_free (tmp);
+ }
+
+ bold = bold && terminal->pvt->allow_bold;
+ fg = &terminal->pvt->palette[fore];
+ bg = &terminal->pvt->palette[back];
+ defbg = &terminal->pvt->palette[VTE_DEF_BG];
+ ascent = terminal->char_ascent;
+
+ i = 0;
+ do {
+ columns = 0;
+ x = items[i].x;
+ y = items[i].y;
+ for (; i < n && items[i].y == y; i++) {
+ /* Adjust for the border. */
+ items[i].x += terminal->pvt->inner_border.left;
+ items[i].y += terminal->pvt->inner_border.top;
+ columns += items[i].columns;
+ }
+ if (clear && (draw_default_bg || bg != defbg)) {
+ _vte_draw_fill_rectangle(terminal->pvt->draw,
+ x + terminal->pvt->inner_border.left,
+ y + terminal->pvt->inner_border.top,
+ columns * column_width + bold,
+ row_height,
+ bg, VTE_DRAW_OPAQUE);
+ }
+ } while (i < n);
+ _vte_draw_text(terminal->pvt->draw,
+ items, n,
+ fg, VTE_DRAW_OPAQUE, bold);
+ for (i = 0; i < n; i++) {
+ /* Deadjust for the border. */
+ items[i].x -= terminal->pvt->inner_border.left;
+ items[i].y -= terminal->pvt->inner_border.top;
+ }
+
+ /* Draw whatever SFX are required. */
+ if (underline | strikethrough | hilite | boxed) {
+ i = 0;
+ do {
+ x = items[i].x;
+ y = items[i].y;
+ for (columns = 0; i < n && items[i].y == y; i++) {
+ columns += items[i].columns;
+ }
+ if (underline) {
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ y + terminal->pvt->underline_position,
+ x + (columns * column_width) - 1,
+ y + terminal->pvt->underline_position +
terminal->pvt->line_thickness - 1);
+ }
+ if (strikethrough) {
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ y + terminal->pvt->strikethrough_position,
+ x + (columns * column_width) - 1,
+ y + terminal->pvt->strikethrough_position +
terminal->pvt->line_thickness - 1);
+ }
+ if (hilite) {
+ vte_terminal_draw_line(terminal,
+ &terminal->pvt->palette[fore],
+ x,
+ y + row_height - 1,
+ x + (columns * column_width) - 1,
+ y + row_height - 1);
+ }
+ if (boxed) {
+ vte_terminal_draw_rectangle(terminal,
+ &terminal->pvt->palette[fore],
+ x, y,
+ MAX(0, (columns * column_width)),
+ MAX(0, row_height));
+ }
+ }while (i < n);
+ }
+}
+
+/* Try to map a PangoColor to a palette entry and return its index. */
+static guint
+_vte_terminal_map_pango_color(VteTerminal *terminal, PangoColor *color)
+{
+ long distance[G_N_ELEMENTS(terminal->pvt->palette)];
+ guint i, ret;
+
+ /* Calculate a "distance" value. Could stand to be improved a bit. */
+ for (i = 0; i < G_N_ELEMENTS(distance); i++) {
+ const PangoColor *entry = &terminal->pvt->palette[i];
+ distance[i] = 0;
+ distance[i] += ((entry->red >> 8) - (color->red >> 8)) *
+ ((entry->red >> 8) - (color->red >> 8));
+ distance[i] += ((entry->blue >> 8) - (color->blue >> 8)) *
+ ((entry->blue >> 8) - (color->blue >> 8));
+ distance[i] += ((entry->green >> 8) - (color->green >> 8)) *
+ ((entry->green >> 8) - (color->green >> 8));
+ }
+
+ /* Find the index of the minimum value. */
+ ret = 0;
+ for (i = 1; i < G_N_ELEMENTS(distance); i++) {
+ if (distance[i] < distance[ret]) {
+ ret = i;
+ }
+ }
+
+ _vte_debug_print(VTE_DEBUG_UPDATES,
+ "mapped PangoColor(%04x,%04x,%04x) to "
+ "palette entry (%04x,%04x,%04x)\n",
+ color->red, color->green, color->blue,
+ terminal->pvt->palette[ret].red,
+ terminal->pvt->palette[ret].green,
+ terminal->pvt->palette[ret].blue);
+
+ return ret;
+}
+
+/* FIXME: we don't have a way to tell GTK+ what the default text attributes
+ * should be, so for now at least it's assuming white-on-black is the norm and
+ * is using "black-on-white" to signify "inverse". Pick up on that state and
+ * fix things. Do this here, so that if we suddenly get red-on-black, we'll do
+ * the right thing. */
+static void
+_vte_terminal_fudge_pango_colors(VteTerminal *terminal, GSList *attributes,
+ VteCell *cells, gssize n)
+{
+ int i, sumlen = 0;
+ struct _fudge_cell_props{
+ gboolean saw_fg, saw_bg;
+ PangoColor fg, bg;
+ guint index;
+ }*props = g_newa (struct _fudge_cell_props, n);
+
+ for (i = 0; i < n; i++) {
+ gchar ubuf[7];
+ gint len = g_unichar_to_utf8 (cells[i].c, ubuf);
+ props[i].index = sumlen;
+ props[i].saw_fg = props[i].saw_bg = FALSE;
+ sumlen += len;
+ }
+
+ while (attributes != NULL) {
+ PangoAttribute *attr = attributes->data;
+ PangoAttrColor *color;
+ switch (attr->klass->type) {
+ case PANGO_ATTR_FOREGROUND:
+ for (i = 0; i < n; i++) {
+ if (props[i].index < attr->start_index) {
+ continue;
+ }
+ if (props[i].index >= attr->end_index) {
+ break;
+ }
+ props[i].saw_fg = TRUE;
+ color = (PangoAttrColor*) attr;
+ props[i].fg = color->color;
+ }
+ break;
+ case PANGO_ATTR_BACKGROUND:
+ for (i = 0; i < n; i++) {
+ if (props[i].index < attr->start_index) {
+ continue;
+ }
+ if (props[i].index >= attr->end_index) {
+ break;
+ }
+ props[i].saw_bg = TRUE;
+ color = (PangoAttrColor*) attr;
+ props[i].bg = color->color;
+ }
+ break;
+ default:
+ break;
+ }
+ attributes = g_slist_next(attributes);
+ }
+
+ for (i = 0; i < n; i++) {
+ if (props[i].saw_fg && props[i].saw_bg &&
+ (props[i].fg.red == 0xffff) &&
+ (props[i].fg.green == 0xffff) &&
+ (props[i].fg.blue == 0xffff) &&
+ (props[i].bg.red == 0) &&
+ (props[i].bg.green == 0) &&
+ (props[i].bg.blue == 0)) {
+ cells[i].attr.fore = terminal->pvt->screen->color_defaults.attr.fore;
+ cells[i].attr.back = terminal->pvt->screen->color_defaults.attr.back;
+ cells[i].attr.reverse = TRUE;
+ }
+ }
+}
+
+/* Apply the attribute given in the PangoAttribute to the list of cells. */
+static void
+_vte_terminal_apply_pango_attr(VteTerminal *terminal, PangoAttribute *attr,
+ VteCell *cells, guint n_cells)
+{
+ guint i, ival;
+ PangoAttrInt *attrint;
+ PangoAttrColor *attrcolor;
+
+ switch (attr->klass->type) {
+ case PANGO_ATTR_FOREGROUND:
+ case PANGO_ATTR_BACKGROUND:
+ attrcolor = (PangoAttrColor*) attr;
+ ival = _vte_terminal_map_pango_color(terminal,
+ &attrcolor->color);
+ for (i = attr->start_index;
+ i < attr->end_index && i < n_cells;
+ i++) {
+ if (attr->klass->type == PANGO_ATTR_FOREGROUND) {
+ cells[i].attr.fore = ival;
+ }
+ if (attr->klass->type == PANGO_ATTR_BACKGROUND) {
+ cells[i].attr.back = ival;
+ }
+ }
+ break;
+ case PANGO_ATTR_STRIKETHROUGH:
+ attrint = (PangoAttrInt*) attr;
+ ival = attrint->value;
+ for (i = attr->start_index;
+ (i < attr->end_index) && (i < n_cells);
+ i++) {
+ cells[i].attr.strikethrough = (ival != FALSE);
+ }
+ break;
+ case PANGO_ATTR_UNDERLINE:
+ attrint = (PangoAttrInt*) attr;
+ ival = attrint->value;
+ for (i = attr->start_index;
+ (i < attr->end_index) && (i < n_cells);
+ i++) {
+ cells[i].attr.underline = (ival != PANGO_UNDERLINE_NONE);
+ }
+ break;
+ case PANGO_ATTR_WEIGHT:
+ attrint = (PangoAttrInt*) attr;
+ ival = attrint->value;
+ for (i = attr->start_index;
+ (i < attr->end_index) && (i < n_cells);
+ i++) {
+ cells[i].attr.bold = (ival >= PANGO_WEIGHT_BOLD);
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+/* Convert a PangoAttrList and a location in that list to settings in a
+ * charcell structure. The cells array is assumed to contain enough items
+ * so that all ranges in the attribute list can be mapped into the array, which
+ * typically means that the cell array should have the same length as the
+ * string (byte-wise) which the attributes describe. */
+static void
+_vte_terminal_pango_attribute_destroy(gpointer attr, gpointer data)
+{
+ pango_attribute_destroy(attr);
+}
+static void
+_vte_terminal_translate_pango_cells(VteTerminal *terminal, PangoAttrList *attrs,
+ VteCell *cells, guint n_cells)
+{
+ PangoAttribute *attr;
+ PangoAttrIterator *attriter;
+ GSList *list, *listiter;
+ guint i;
+
+ for (i = 0; i < n_cells; i++) {
+ cells[i] = terminal->pvt->screen->fill_defaults;
+ }
+
+ attriter = pango_attr_list_get_iterator(attrs);
+ if (attriter != NULL) {
+ do {
+ list = pango_attr_iterator_get_attrs(attriter);
+ if (list != NULL) {
+ for (listiter = list;
+ listiter != NULL;
+ listiter = g_slist_next(listiter)) {
+ attr = listiter->data;
+ _vte_terminal_apply_pango_attr(terminal,
+ attr,
+ cells,
+ n_cells);
+ }
+ attr = list->data;
+ _vte_terminal_fudge_pango_colors(terminal,
+ list,
+ cells +
+ attr->start_index,
+ attr->end_index -
+ attr->start_index);
+ g_slist_foreach(list,
+ _vte_terminal_pango_attribute_destroy,
+ NULL);
+ g_slist_free(list);
+ }
+ } while (pango_attr_iterator_next(attriter) == TRUE);
+ pango_attr_iterator_destroy(attriter);
+ }
+}
+
+/* Draw the listed items using the given attributes. Tricky because the
+ * attribute string is indexed by byte in the UTF-8 representation of the string
+ * of characters. Because we draw a character at a time, this is slower. */
+static void
+vte_terminal_draw_cells_with_attributes(VteTerminal *terminal,
+ struct _vte_draw_text_request *items,
+ gssize n,
+ PangoAttrList *attrs,
+ gboolean draw_default_bg,
+ gint column_width, gint height)
+{
+ int i, j, cell_count;
+ VteCell *cells;
+ char scratch_buf[VTE_UTF8_BPC];
+ guint fore, back;
+
+ /* Note: since this function is only called with the pre-edit text,
+ * all the items contain gunichar only, not vteunistr. */
+
+ for (i = 0, cell_count = 0; i < n; i++) {
+ cell_count += g_unichar_to_utf8(items[i].c, scratch_buf);
+ }
+ cells = g_new(VteCell, cell_count);
+ _vte_terminal_translate_pango_cells(terminal, attrs, cells, cell_count);
+ for (i = 0, j = 0; i < n; i++) {
+ vte_terminal_determine_colors(terminal, &cells[j], FALSE, &fore, &back);
+ vte_terminal_draw_cells(terminal, items + i, 1,
+ fore,
+ back,
+ TRUE, draw_default_bg,
+ cells[j].attr.bold,
+ cells[j].attr.underline,
+ cells[j].attr.strikethrough,
+ FALSE, FALSE, column_width, height);
+ j += g_unichar_to_utf8(items[i].c, scratch_buf);
+ }
+ g_free(cells);
+}
+
+
+/* Paint the contents of a given row at the given location. Take advantage
+ * of multiple-draw APIs by finding runs of characters with identical
+ * attributes and bundling them together. */
+static void
+vte_terminal_draw_rows(VteTerminal *terminal,
+ VteScreen *screen,
+ gint start_row, gint row_count,
+ gint start_column, gint column_count,
+ gint start_x, gint start_y,
+ gint column_width, gint row_height)
+{
+ struct _vte_draw_text_request items[4*VTE_DRAW_MAX_LENGTH];
+ gint i, j, row, rows, x, y, end_column;
+ guint fore, nfore, back, nback;
+ glong delta;
+ gboolean underline, nunderline, bold, nbold, hilite, nhilite,
+ selected, nselected, strikethrough, nstrikethrough;
+ guint item_count;
+ const VteCell *cell;
+ const VteRowData *row_data;
+
+ /* adjust for the absolute start of row */
+ start_x -= start_column * column_width;
+ end_column = start_column + column_count;
+
+ /* clear the background */
+ delta = screen->scroll_delta;
+ x = start_x + terminal->pvt->inner_border.left;
+ y = start_y + terminal->pvt->inner_border.top;
+ row = start_row;
+ rows = row_count;
+ do {
+ row_data = _vte_terminal_find_row_data(terminal, row);
+ /* Back up in case this is a multicolumn character,
+ * making the drawing area a little wider. */
+ i = start_column;
+ if (row_data != NULL) {
+ cell = _vte_row_data_get (row_data, i);
+ if (cell != NULL) {
+ while (cell->attr.fragment && i > 0) {
+ cell = _vte_row_data_get (row_data, --i);
+ }
+ }
+ /* Walk the line. */
+ do {
+ /* Get the character cell's contents. */
+ cell = _vte_row_data_get (row_data, i);
+ /* Find the colors for this cell. */
+ selected = vte_cell_is_selected(terminal, i, row, NULL);
+ vte_terminal_determine_colors(terminal, cell, selected, &fore, &back);
+
+ bold = cell && cell->attr.bold;
+ j = i + (cell ? cell->attr.columns : 1);
+
+ while (j < end_column){
+ /* Retrieve the cell. */
+ cell = _vte_row_data_get (row_data, j);
+ /* Don't render fragments of multicolumn characters
+ * which have the same attributes as the initial
+ * portions. */
+ if (cell != NULL && cell->attr.fragment) {
+ j++;
+ continue;
+ }
+ /* Resolve attributes to colors where possible and
+ * compare visual attributes to the first character
+ * in this chunk. */
+ selected = vte_cell_is_selected(terminal, j, row, NULL);
+ vte_terminal_determine_colors(terminal, cell, selected, &nfore,
&nback);
+ if (nback != back) {
+ break;
+ }
+ bold = cell && cell->attr.bold;
+ j += cell ? cell->attr.columns : 1;
+ }
+ if (back != VTE_DEF_BG) {
+ _vte_draw_fill_rectangle (
+ terminal->pvt->draw,
+ x + i * column_width,
+ y,
+ (j - i) * column_width + bold,
+ row_height,
+ &terminal->pvt->palette[back], VTE_DRAW_OPAQUE);
+ }
+ /* We'll need to continue at the first cell which didn't
+ * match the first one in this set. */
+ i = j;
+ } while (i < end_column);
+ } else {
+ do {
+ selected = vte_cell_is_selected(terminal, i, row, NULL);
+ j = i + 1;
+ while (j < end_column){
+ nselected = vte_cell_is_selected(terminal, j, row, NULL);
+ if (nselected != selected) {
+ break;
+ }
+ j++;
+ }
+ vte_terminal_determine_colors(terminal, NULL, selected, &fore, &back);
+ if (back != VTE_DEF_BG) {
+ _vte_draw_fill_rectangle (terminal->pvt->draw,
+ x + i *column_width,
+ y,
+ (j - i) * column_width,
+ row_height,
+ &terminal->pvt->palette[back],
VTE_DRAW_OPAQUE);
+ }
+ i = j;
+ } while (i < end_column);
+ }
+ row++;
+ y += row_height;
+ } while (--rows);
+
+
+ /* render the text */
+ y = start_y;
+ row = start_row;
+ rows = row_count;
+ item_count = 1;
+ do {
+ row_data = _vte_terminal_find_row_data(terminal, row);
+ if (row_data == NULL) {
+ goto fg_skip_row;
+ }
+ /* Back up in case this is a multicolumn character,
+ * making the drawing area a little wider. */
+ i = start_column;
+ cell = _vte_row_data_get (row_data, i);
+ if (cell == NULL) {
+ goto fg_skip_row;
+ }
+ while (cell->attr.fragment && i > 0)
+ cell = _vte_row_data_get (row_data, --i);
+
+ /* Walk the line. */
+ do {
+ /* Get the character cell's contents. */
+ cell = _vte_row_data_get (row_data, i);
+ if (cell == NULL) {
+ goto fg_skip_row;
+ }
+ while (cell->c == 0 || cell->attr.invisible ||
+ (cell->c == ' ' &&
+ !cell->attr.underline &&
+ !cell->attr.strikethrough) ||
+ cell->attr.fragment) {
+ if (++i >= end_column) {
+ goto fg_skip_row;
+ }
+ cell = _vte_row_data_get (row_data, i);
+ if (cell == NULL) {
+ goto fg_skip_row;
+ }
+ }
+ /* Find the colors for this cell. */
+ selected = vte_cell_is_selected(terminal, i, row, NULL);
+ vte_terminal_determine_colors(terminal, cell, selected, &fore, &back);
+ underline = cell->attr.underline;
+ strikethrough = cell->attr.strikethrough;
+ bold = cell->attr.bold;
+ if (terminal->pvt->show_match) {
+ hilite = vte_cell_is_between(i, row,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_start.row,
+ terminal->pvt->match_end.col,
+ terminal->pvt->match_end.row,
+ TRUE);
+ } else {
+ hilite = FALSE;
+ }
+
+ items[0].c = cell->c;
+ items[0].columns = cell->attr.columns;
+ items[0].x = start_x + i * column_width;
+ items[0].y = y;
+ j = i + items[0].columns;
+
+ /* If this is a graphics character, draw it locally. */
+ if (vte_terminal_unichar_is_local_graphic(terminal, cell->c, cell->attr.bold)) {
+ if (vte_terminal_draw_graphic(terminal,
+ items[0].c,
+ fore, back,
+ FALSE,
+ items[0].x,
+ items[0].y,
+ column_width,
+ items[0].columns,
+ row_height,
+ cell->attr.bold)) {
+ i = j;
+ continue;
+ }
+ }
+
+ /* Now find out how many cells have the same attributes. */
+ do {
+ while (j < end_column &&
+ item_count < G_N_ELEMENTS(items)) {
+ /* Retrieve the cell. */
+ cell = _vte_row_data_get (row_data, j);
+ if (cell == NULL) {
+ goto fg_next_row;
+ }
+ /* Don't render blank cells or fragments of multicolumn characters
+ * which have the same attributes as the initial
+ * portions. Don't render invisible cells */
+ if (cell->attr.fragment || cell->attr.invisible) {
+ j++;
+ continue;
+ }
+ if (cell->c == 0){
+ /* only break the run if we
+ * are drawing attributes
+ */
+ if (underline || strikethrough || hilite) {
+ break;
+ } else {
+ j++;
+ continue;
+ }
+ }
+ /* Resolve attributes to colors where possible and
+ * compare visual attributes to the first character
+ * in this chunk. */
+ selected = vte_cell_is_selected(terminal, j, row, NULL);
+ vte_terminal_determine_colors(terminal, cell, selected, &nfore,
&nback);
+ /* Graphic characters must be drawn individually. */
+ if (vte_terminal_unichar_is_local_graphic(terminal, cell->c,
cell->attr.bold)) {
+ if (vte_terminal_draw_graphic(terminal,
+ cell->c,
+ nfore, nback,
+ FALSE,
+ start_x + j * column_width,
+ y,
+ column_width,
+ cell->attr.columns,
+ row_height,
+ cell->attr.bold)) {
+
+ j += cell->attr.columns;
+ continue;
+ }
+ }
+ if (nfore != fore) {
+ break;
+ }
+ nbold = cell->attr.bold;
+ if (nbold != bold) {
+ break;
+ }
+ /* Break up underlined/not-underlined text. */
+ nunderline = cell->attr.underline;
+ if (nunderline != underline) {
+ break;
+ }
+ nstrikethrough = cell->attr.strikethrough;
+ if (nstrikethrough != strikethrough) {
+ break;
+ }
+ /* Break up matched/not-matched text. */
+ nhilite = FALSE;
+ if (terminal->pvt->show_match) {
+ nhilite = vte_cell_is_between(j, row,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_start.row,
+ terminal->pvt->match_end.col,
+ terminal->pvt->match_end.row,
+ TRUE);
+ }
+ if (nhilite != hilite) {
+ break;
+ }
+ /* Add this cell to the draw list. */
+ items[item_count].c = cell->c;
+ items[item_count].columns = cell->attr.columns;
+ items[item_count].x = start_x + j * column_width;
+ items[item_count].y = y;
+ j += items[item_count].columns;
+ item_count++;
+ }
+ /* have we encountered a state change? */
+ if (j < end_column) {
+ break;
+ }
+fg_next_row:
+ /* is this the last column, on the last row? */
+ do {
+ do {
+ if (!--rows) {
+ goto fg_draw;
+ }
+
+ /* restart on the next row */
+ row++;
+ y += row_height;
+ row_data = _vte_terminal_find_row_data(terminal, row);
+ } while (row_data == NULL);
+
+ /* Back up in case this is a
+ * multicolumn character, making the drawing
+ * area a little wider. */
+ j = start_column;
+ cell = _vte_row_data_get (row_data, j);
+ } while (cell == NULL);
+ while (cell->attr.fragment && j > 0) {
+ cell = _vte_row_data_get (row_data, --j);
+ }
+ } while (TRUE);
+fg_draw:
+ /* Draw the cells. */
+ vte_terminal_draw_cells(terminal,
+ items,
+ item_count,
+ fore, back, FALSE, FALSE,
+ bold, underline,
+ strikethrough, hilite, FALSE,
+ column_width, row_height);
+ item_count = 1;
+ /* We'll need to continue at the first cell which didn't
+ * match the first one in this set. */
+ i = j;
+ if (!rows) {
+ goto fg_out;
+ }
+ } while (i < end_column);
+fg_skip_row:
+ row++;
+ y += row_height;
+ } while (--rows);
+fg_out:
+ return;
+}
+
+static void
+vte_terminal_expand_region (VteTerminal *terminal, GdkRegion *region, const GdkRectangle *area)
+{
+ VteScreen *screen;
+ int width, height;
+ int row, col, row_stop, col_stop;
+ VteRegionRectangle rect;
+
+ screen = terminal->pvt->screen;
+
+ width = terminal->char_width;
+ height = terminal->char_height;
+
+ /* increase the paint by one pixel on all sides to force the
+ * inclusion of neighbouring cells */
+ row = MAX(0, (area->y - terminal->pvt->inner_border.top - 1) / height);
+ row_stop = MIN(howmany(area->height + area->y - terminal->pvt->inner_border.top + 1, height),
+ terminal->row_count);
+ if (row_stop <= row) {
+ return;
+ }
+ col = MAX(0, (area->x - terminal->pvt->inner_border.left - 1) / width);
+ col_stop = MIN(howmany(area->width + area->x - terminal->pvt->inner_border.left + 1, width),
+ terminal->column_count);
+ if (col_stop <= col) {
+ return;
+ }
+
+ rect.x = col*width + terminal->pvt->inner_border.left;
+ rect.width = (col_stop - col) * width;
+
+ rect.y = row*height + terminal->pvt->inner_border.top;
+ rect.height = (row_stop - row)*height;
+
+ /* the rect must be cell aligned to avoid overlapping XY bands */
+ gdk_region_union_with_rect(region, &rect);
+
+ _vte_debug_print (VTE_DEBUG_UPDATES,
+ "vte_terminal_expand_region"
+ " (%d,%d)x(%d,%d) pixels,"
+ " (%d,%d)x(%d,%d) cells"
+ " [(%d,%d)x(%d,%d) pixels]\n",
+ area->x, area->y, area->width, area->height,
+ col, row, col_stop - col, row_stop - row,
+ rect.x, rect.y, rect.width, rect.height);
+}
+
+static void
+vte_terminal_paint_area (VteTerminal *terminal, const GdkRectangle *area)
+{
+ VteScreen *screen;
+ int width, height, delta;
+ int row, col, row_stop, col_stop;
+
+ screen = terminal->pvt->screen;
+
+ width = terminal->char_width;
+ height = terminal->char_height;
+
+ row = MAX(0, (area->y - terminal->pvt->inner_border.top) / height);
+ row_stop = MIN((area->height + area->y - terminal->pvt->inner_border.top) / height,
+ terminal->row_count);
+ if (row_stop <= row) {
+ return;
+ }
+ col = MAX(0, (area->x - terminal->pvt->inner_border.left) / width);
+ col_stop = MIN((area->width + area->x - terminal->pvt->inner_border.left) / width,
+ terminal->column_count);
+ if (col_stop <= col) {
+ return;
+ }
+ _vte_debug_print (VTE_DEBUG_UPDATES,
+ "vte_terminal_paint_area"
+ " (%d,%d)x(%d,%d) pixels,"
+ " (%d,%d)x(%d,%d) cells"
+ " [(%d,%d)x(%d,%d) pixels]\n",
+ area->x, area->y, area->width, area->height,
+ col, row, col_stop - col, row_stop - row,
+ col * width + terminal->pvt->inner_border.left,
+ row * height + terminal->pvt->inner_border.top,
+ (col_stop - col) * width,
+ (row_stop - row) * height);
+
+ /* Now we're ready to draw the text. Iterate over the rows we
+ * need to draw. */
+ delta = screen->scroll_delta;
+ vte_terminal_draw_rows(terminal,
+ screen,
+ row + delta, row_stop - row,
+ col, col_stop - col,
+ col * width,
+ row * height,
+ width,
+ height);
+}
+
+static void
+vte_terminal_paint_cursor(VteTerminal *terminal)
+{
+ VteScreen *screen;
+ const VteCell *cell;
+ struct _vte_draw_text_request item;
+ int row, drow, col;
+ long width, height, delta, cursor_width;
+ guint fore, back;
+ int x, y;
+ gboolean blink, selected, focus;
+
+ if (!terminal->pvt->cursor_visible)
+ return;
+
+ screen = terminal->pvt->screen;
+ delta = screen->scroll_delta;
+ col = screen->cursor_current.col;
+ drow = screen->cursor_current.row;
+ row = drow - delta;
+ width = terminal->char_width;
+ height = terminal->char_height;
+
+ if ((CLAMP(col, 0, terminal->column_count - 1) != col) ||
+ (CLAMP(row, 0, terminal->row_count - 1) != row))
+ return;
+
+ focus = terminal->pvt->has_focus;
+ blink = terminal->pvt->cursor_blink_state;
+
+ if (focus && !blink)
+ return;
+
+ /* Find the character "under" the cursor. */
+ cell = vte_terminal_find_charcell(terminal, col, drow);
+ while ((cell != NULL) && (cell->attr.fragment) && (col > 0)) {
+ col--;
+ cell = vte_terminal_find_charcell(terminal, col, drow);
+ }
+
+ /* Draw the cursor. */
+ item.c = (cell && cell->c) ? cell->c : ' ';
+ item.columns = cell ? cell->attr.columns : 1;
+ item.x = col * width;
+ item.y = row * height;
+ cursor_width = item.columns * width;
+ if (cell && cell->c != 0) {
+ gint cw = _vte_draw_get_char_width (terminal->pvt->draw,
+ cell->c, cell->attr.columns, cell->attr.bold);
+ cursor_width = MAX(cursor_width, cw);
+ }
+
+ selected = vte_cell_is_selected(terminal, col, drow, NULL);
+
+ vte_terminal_determine_cursor_colors(terminal, cell, selected, &fore, &back);
+
+ x = item.x;
+ y = item.y;
+
+ switch (terminal->pvt->cursor_shape) {
+
+ case VTE_CURSOR_SHAPE_IBEAM: {
+ int stem_width;
+
+ stem_width = (int) (((float) height) * terminal->pvt->cursor_aspect_ratio + 0.5);
+ stem_width = CLAMP (stem_width, VTE_LINE_WIDTH, cursor_width);
+
+ vte_terminal_fill_rectangle(terminal, &terminal->pvt->palette[back],
+ x, y, stem_width, height);
+ break;
+ }
+
+ case VTE_CURSOR_SHAPE_UNDERLINE: {
+ int line_height;
+
+ line_height = (int) (((float) width) * terminal->pvt->cursor_aspect_ratio + 0.5);
+ line_height = CLAMP (line_height, VTE_LINE_WIDTH, height);
+
+ vte_terminal_fill_rectangle(terminal, &terminal->pvt->palette[back],
+ x, y + height - line_height,
+ cursor_width, line_height);
+ break;
+ }
+
+ case VTE_CURSOR_SHAPE_BLOCK:
+
+ if (focus) {
+ /* just reverse the character under the cursor */
+ vte_terminal_fill_rectangle (terminal,
+ &terminal->pvt->palette[back],
+ x, y,
+ cursor_width, height);
+
+ if (!vte_terminal_unichar_is_local_graphic(terminal, item.c, cell ?
cell->attr.bold : FALSE) ||
+ !vte_terminal_draw_graphic(terminal,
+ item.c,
+ fore, back,
+ TRUE,
+ item.x,
+ item.y,
+ width,
+ item.columns,
+ height,
+ cell ? cell->attr.bold : FALSE)) {
+ gboolean hilite = FALSE;
+ if (cell && terminal->pvt->show_match) {
+ hilite = vte_cell_is_between(col, row,
+ terminal->pvt->match_start.col,
+ terminal->pvt->match_start.row,
+ terminal->pvt->match_end.col,
+ terminal->pvt->match_end.row,
+ TRUE);
+ }
+ if (cell && cell->c != 0 && cell->c != ' ') {
+ vte_terminal_draw_cells(terminal,
+ &item, 1,
+ fore, back, TRUE, FALSE,
+ cell->attr.bold,
+ cell->attr.underline,
+ cell->attr.strikethrough,
+ hilite,
+ FALSE,
+ width,
+ height);
+ }
+ }
+
+ } else {
+ /* draw a box around the character */
+
+ vte_terminal_draw_rectangle (terminal,
+ &terminal->pvt->palette[back],
+ x - VTE_LINE_WIDTH,
+ y - VTE_LINE_WIDTH,
+ cursor_width + 2*VTE_LINE_WIDTH,
+ height + 2*VTE_LINE_WIDTH);
+ }
+
+ break;
+ }
+}
+
+static void
+vte_terminal_paint_im_preedit_string(VteTerminal *terminal)
+{
+ VteScreen *screen;
+ int row, drow, col, columns;
+ long width, height, ascent, descent, delta;
+ int i, len;
+ guint fore, back;
+
+ if (!terminal->pvt->im_preedit)
+ return;
+
+ /* Get going. */
+ screen = terminal->pvt->screen;
+
+ /* Keep local copies of rendering information. */
+ width = terminal->char_width;
+ height = terminal->char_height;
+ ascent = terminal->char_ascent;
+ descent = terminal->char_descent;
+ delta = screen->scroll_delta;
+
+ drow = screen->cursor_current.row;
+ row = screen->cursor_current.row - delta;
+
+ /* Find out how many columns the pre-edit string takes up. */
+ columns = vte_terminal_preedit_width(terminal, FALSE);
+ len = vte_terminal_preedit_length(terminal, FALSE);
+
+ /* If the pre-edit string won't fit on the screen if we start
+ * drawing it at the cursor's position, move it left. */
+ col = screen->cursor_current.col;
+ if (col + columns > terminal->column_count) {
+ col = MAX(0, terminal->column_count - columns);
+ }
+
+ /* Draw the preedit string, boxed. */
+ if (len > 0) {
+ struct _vte_draw_text_request *items;
+ const char *preedit = terminal->pvt->im_preedit;
+ int preedit_cursor;
+
+ items = g_new(struct _vte_draw_text_request, len);
+ for (i = columns = 0; i < len; i++) {
+ items[i].c = g_utf8_get_char(preedit);
+ items[i].columns = _vte_iso2022_unichar_width(terminal->pvt->iso2022,
+ items[i].c);
+ items[i].x = (col + columns) * width;
+ items[i].y = row * height;
+ columns += items[i].columns;
+ preedit = g_utf8_next_char(preedit);
+ }
+ _vte_draw_clear(terminal->pvt->draw,
+ col * width + terminal->pvt->inner_border.left,
+ row * height + terminal->pvt->inner_border.top,
+ width * columns,
+ height);
+ fore = screen->defaults.attr.fore;
+ back = screen->defaults.attr.back;
+ vte_terminal_draw_cells_with_attributes(terminal,
+ items, len,
+ terminal->pvt->im_preedit_attrs,
+ TRUE,
+ width, height);
+ preedit_cursor = terminal->pvt->im_preedit_cursor;
+ if (preedit_cursor >= 0 && preedit_cursor < len) {
+ /* Cursored letter in reverse. */
+ vte_terminal_draw_cells(terminal,
+ &items[preedit_cursor], 1,
+ back, fore, TRUE, TRUE,
+ FALSE,
+ FALSE,
+ FALSE,
+ FALSE,
+ TRUE,
+ width, height);
+ }
+ g_free(items);
+ }
+}
+
+/* Draw the widget. */
+static void
+vte_terminal_paint(GtkWidget *widget, GdkRegion *region)
+{
+ VteTerminal *terminal;
+ GtkAllocation allocation;
+
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_paint()\n");
+ _vte_debug_print(VTE_DEBUG_WORK, "=");
+
+ terminal = VTE_TERMINAL(widget);
+ gtk_widget_get_allocation (widget, &allocation);
+
+ /* Designate the start of the drawing operation and clear the area. */
+ _vte_draw_start(terminal->pvt->draw);
+ if (terminal->pvt->bg_transparent) {
+ int x, y;
+ gdk_window_get_origin (gtk_widget_get_window (widget), &x, &y);
+ _vte_draw_set_background_scroll(terminal->pvt->draw, x, y);
+ } else {
+ if (terminal->pvt->scroll_background) {
+ _vte_draw_set_background_scroll(terminal->pvt->draw,
+ 0,
+ terminal->pvt->screen->scroll_delta *
+ terminal->char_height);
+ } else {
+ _vte_draw_set_background_scroll(terminal->pvt->draw, 0, 0);
+ }
+ }
+
+ _VTE_DEBUG_IF (VTE_DEBUG_UPDATES) {
+ VteRegionRectangle clip;
+ gdk_region_get_clipbox (region, &clip);
+ g_printerr ("vte_terminal_paint"
+ " (%d,%d)x(%d,%d) pixels\n",
+ clip.x, clip.y, clip.width, clip.height);
+ }
+
+ _vte_draw_clip(terminal->pvt->draw, region);
+ gtk_widget_get_allocation(&terminal->widget, &allocation);
+ _vte_draw_clear (terminal->pvt->draw, 0, 0,
+ allocation.width, allocation.height);
+
+ /* Calculate the bounding rectangle. */
+ {
+ VteRegionRectangle *rectangles;
+ gint n, n_rectangles;
+ gdk_region_get_rectangles (region, &rectangles, &n_rectangles);
+ /* don't bother to enlarge an invalidate all */
+ if (!(n_rectangles == 1
+ && rectangles[0].width == allocation.width
+ && rectangles[0].height == allocation.height)) {
+ GdkRegion *rr = gdk_region_new ();
+ /* convert pixels into whole cells */
+ for (n = 0; n < n_rectangles; n++) {
+ vte_terminal_expand_region (terminal, rr, rectangles + n);
+ }
+ g_free (rectangles);
+ gdk_region_get_rectangles (rr, &rectangles, &n_rectangles);
+ gdk_region_destroy (rr);
+ }
+
+ /* and now paint them */
+ for (n = 0; n < n_rectangles; n++) {
+ vte_terminal_paint_area (terminal, rectangles + n);
+ }
+ g_free (rectangles);
+ }
+
+ vte_terminal_paint_cursor(terminal);
+
+ vte_terminal_paint_im_preedit_string(terminal);
+
+ /* Done with various structures. */
+ _vte_draw_end(terminal->pvt->draw);
+}
+
+/* Handle an expose event by painting the exposed area. */
+#if GTK_CHECK_VERSION (2, 90, 8)
+
+static cairo_region_t *
+vte_cairo_get_clip_region (cairo_t *cr)
+{
+ cairo_rectangle_list_t *list;
+ cairo_region_t *region;
+ int i;
+
+ list = cairo_copy_clip_rectangle_list (cr);
+ if (list->status == CAIRO_STATUS_CLIP_NOT_REPRESENTABLE) {
+ cairo_rectangle_int_t clip_rect;
+
+ cairo_rectangle_list_destroy (list);
+
+ if (!gdk_cairo_get_clip_rectangle (cr, &clip_rect))
+ return NULL;
+ return cairo_region_create_rectangle (&clip_rect);
+ }
+
+
+ region = cairo_region_create ();
+ for (i = list->num_rectangles - 1; i >= 0; --i) {
+ cairo_rectangle_t *rect = &list->rectangles[i];
+ cairo_rectangle_int_t clip_rect;
+
+ clip_rect.x = floor (rect->x);
+ clip_rect.y = floor (rect->y);
+ clip_rect.width = ceil (rect->x + rect->width) - clip_rect.x;
+ clip_rect.height = ceil (rect->y + rect->height) - clip_rect.y;
+
+ if (cairo_region_union_rectangle (region, &clip_rect) != CAIRO_STATUS_SUCCESS) {
+ cairo_region_destroy (region);
+ region = NULL;
+ break;
+ }
+ }
+
+ cairo_rectangle_list_destroy (list);
+ return region;
+}
+
+static gboolean
+vte_terminal_draw(GtkWidget *widget,
+ cairo_t *cr)
+{
+ VteTerminal *terminal = VTE_TERMINAL (widget);
+ cairo_rectangle_int_t clip_rect;
+ cairo_region_t *region;
+
+ if (!gdk_cairo_get_clip_rectangle (cr, &clip_rect))
+ return FALSE;
+
+ _vte_debug_print (VTE_DEBUG_WORK, "+");
+ _vte_debug_print (VTE_DEBUG_EVENTS, "Draw (%d,%d)x(%d,%d)\n",
+ clip_rect.x, clip_rect.y,
+ clip_rect.width, clip_rect.height);
+
+ region = vte_cairo_get_clip_region (cr);
+ if (region == NULL)
+ return FALSE;
+
+ vte_terminal_paint(widget, region);
+ cairo_region_destroy (region);
+
+ terminal->pvt->invalidated_all = FALSE;
+
+ return FALSE;
+}
+
+#else
+
+static gboolean
+vte_terminal_expose(GtkWidget *widget,
+ GdkEventExpose *event)
+{
+ VteTerminal *terminal = VTE_TERMINAL (widget);
+ GtkAllocation allocation;
+
+ /* Beware the out of order events -
+ * do not even think about skipping exposes! */
+ _vte_debug_print (VTE_DEBUG_WORK, "+");
+ _vte_debug_print (VTE_DEBUG_EVENTS, "Expose (%d,%d)x(%d,%d)\n",
+ event->area.x, event->area.y,
+ event->area.width, event->area.height);
+ if (terminal->pvt->active != NULL &&
+ update_timeout_tag != 0 &&
+ !in_update_timeout) {
+ /* fix up a race condition where we schedule a delayed update
+ * after an 'immediate' invalidate all */
+ if (terminal->pvt->invalidated_all &&
+ terminal->pvt->update_regions == NULL) {
+ terminal->pvt->invalidated_all = FALSE;
+ }
+ /* if we expect to redraw the widget soon,
+ * just add this event to the list */
+ if (!terminal->pvt->invalidated_all) {
+ gtk_widget_get_allocation (widget, &allocation);
+ if (event->area.width >= allocation.width &&
+ event->area.height >= allocation.height) {
+ _vte_invalidate_all (terminal);
+ } else {
+ terminal->pvt->update_regions =
+ g_slist_prepend (terminal->pvt->update_regions,
+ gdk_region_copy (event->region));
+ }
+ }
+ } else {
+ vte_terminal_paint(widget, event->region);
+ terminal->pvt->invalidated_all = FALSE;
+ }
+ return FALSE;
+}
+
+#endif /* GTK 3.0 */
+
+/* Handle a scroll event. */
+static gboolean
+vte_terminal_scroll(GtkWidget *widget, GdkEventScroll *event)
+{
+ GtkAdjustment *adj;
+ VteTerminal *terminal;
+ gdouble v;
+ int button;
+
+ terminal = VTE_TERMINAL(widget);
+
+ vte_terminal_read_modifiers (terminal, (GdkEvent*) event);
+
+ _VTE_DEBUG_IF(VTE_DEBUG_EVENTS)
+ switch (event->direction) {
+ case GDK_SCROLL_UP:
+ g_printerr("Scroll up.\n");
+ break;
+ case GDK_SCROLL_DOWN:
+ g_printerr("Scroll down.\n");
+ break;
+ default:
+ break;
+ }
+
+ /* If we're running a mouse-aware application, map the scroll event
+ * to a button press on buttons four and five. */
+ if (terminal->pvt->mouse_tracking_mode) {
+ switch (event->direction) {
+ case GDK_SCROLL_UP:
+ button = 4;
+ break;
+ case GDK_SCROLL_DOWN:
+ button = 5;
+ break;
+ default:
+ button = 0;
+ break;
+ }
+ if (button != 0) {
+ /* Encode the parameters and send them to the app. */
+ vte_terminal_send_mouse_button_internal(terminal,
+ button,
+ event->x,
+ event->y);
+ }
+ return TRUE;
+ }
+
+ adj = terminal->adjustment;
+ v = MAX (1., ceil (gtk_adjustment_get_page_increment (adj) / 10.));
+ switch (event->direction) {
+ case GDK_SCROLL_UP:
+ v = -v;
+ break;
+ case GDK_SCROLL_DOWN:
+ break;
+ default:
+ return FALSE;
+ }
+
+ if (terminal->pvt->screen == &terminal->pvt->alternate_screen ||
+ terminal->pvt->normal_screen.scrolling_restricted) {
+ char *normal;
+ gssize normal_length;
+ const gchar *special;
+ gint i, cnt = v;
+
+ /* In the alternate screen there is no scrolling,
+ * so fake a few cursor keystrokes. */
+
+ _vte_keymap_map (
+ cnt > 0 ? GDK_KEY (Down) : GDK_KEY (Up),
+ terminal->pvt->modifiers,
+ terminal->pvt->sun_fkey_mode,
+ terminal->pvt->hp_fkey_mode,
+ terminal->pvt->legacy_fkey_mode,
+ terminal->pvt->vt220_fkey_mode,
+ terminal->pvt->cursor_mode == VTE_KEYMODE_APPLICATION,
+ terminal->pvt->keypad_mode == VTE_KEYMODE_APPLICATION,
+ terminal->pvt->termcap,
+ terminal->pvt->emulation ?
+ terminal->pvt->emulation : vte_terminal_get_default_emulation(terminal),
+ &normal,
+ &normal_length,
+ &special);
+ if (cnt < 0)
+ cnt = -cnt;
+ for (i = 0; i < cnt; i++) {
+ vte_terminal_feed_child_using_modes (terminal,
+ normal, normal_length);
+ }
+ g_free (normal);
+ } else {
+ /* Perform a history scroll. */
+ v += terminal->pvt->screen->scroll_delta;
+ vte_terminal_queue_adjustment_value_changed_clamped (terminal, v);
+ }
+
+ return TRUE;
+}
+
+/* Create a new accessible object associated with ourselves, and return
+ * it to the caller. */
+static AtkObject *
+vte_terminal_get_accessible(GtkWidget *widget)
+{
+ VteTerminal *terminal;
+ static gboolean first_time = TRUE;
+
+ terminal = VTE_TERMINAL(widget);
+
+ if (first_time) {
+ AtkObjectFactory *factory;
+ AtkRegistry *registry;
+ GType derived_type;
+ GType derived_atk_type;
+
+ /*
+ * Figure out whether accessibility is enabled by looking at the
+ * type of the accessible object which would be created for
+ * the parent type of VteTerminal.
+ */
+ derived_type = g_type_parent (VTE_TYPE_TERMINAL);
+
+ registry = atk_get_default_registry ();
+ factory = atk_registry_get_factory (registry,
+ derived_type);
+
+ derived_atk_type = atk_object_factory_get_accessible_type (factory);
+ if (g_type_is_a (derived_atk_type, GTK_TYPE_ACCESSIBLE)) {
+ atk_registry_set_factory_type (registry,
+ VTE_TYPE_TERMINAL,
+ vte_terminal_accessible_factory_get_type ());
+ }
+ first_time = FALSE;
+ }
+
+ return GTK_WIDGET_CLASS (vte_terminal_parent_class)->get_accessible (widget);
+}
+
+static void
+vte_terminal_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ VteTerminal *terminal = VTE_TERMINAL (object);
+ VteTerminalPrivate *pvt = terminal->pvt;
+
+ switch (prop_id)
+ {
+#if GTK_CHECK_VERSION (2, 91, 2)
+ case PROP_HADJUSTMENT:
+ g_value_set_object (value, pvt->hadjustment);
+ break;
+ case PROP_VADJUSTMENT:
+ g_value_set_object (value, terminal->adjustment);
+ break;
+ case PROP_HSCROLL_POLICY:
+ g_value_set_enum (value, pvt->hscroll_policy);
+ break;
+ case PROP_VSCROLL_POLICY:
+ g_value_set_enum (value, pvt->vscroll_policy);
+ break;
+#endif
+ case PROP_ALLOW_BOLD:
+ g_value_set_boolean (value, vte_terminal_get_allow_bold (terminal));
+ break;
+ case PROP_AUDIBLE_BELL:
+ g_value_set_boolean (value, vte_terminal_get_audible_bell (terminal));
+ break;
+ case PROP_BACKGROUND_IMAGE_FILE:
+ g_value_set_string (value, pvt->bg_file);
+ break;
+ case PROP_BACKGROUND_IMAGE_PIXBUF:
+ g_value_set_object (value, pvt->bg_pixbuf);
+ break;
+ case PROP_BACKGROUND_OPACITY:
+ g_value_set_double (value, (double) pvt->bg_opacity / (double) G_MAXUINT16);
+ break;
+ case PROP_BACKGROUND_SATURATION:
+ g_value_set_double (value, (double) pvt->bg_saturation / (double)
VTE_SATURATION_MAX);
+ break;
+ case PROP_BACKGROUND_TINT_COLOR:
+ g_value_set_boxed (value, &pvt->bg_tint_color);
+ break;
+ case PROP_BACKGROUND_TRANSPARENT:
+ g_value_set_boolean (value, pvt->bg_transparent);
+ break;
+ case PROP_BACKSPACE_BINDING:
+ g_value_set_enum (value, pvt->backspace_binding);
+ break;
+ case PROP_CURSOR_BLINK_MODE:
+ g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal));
+ break;
+ case PROP_CURSOR_SHAPE:
+ g_value_set_enum (value, vte_terminal_get_cursor_shape (terminal));
+ break;
+ case PROP_DELETE_BINDING:
+ g_value_set_enum (value, pvt->delete_binding);
+ break;
+ case PROP_EMULATION:
+ g_value_set_string (value, vte_terminal_get_emulation (terminal));
+ break;
+ case PROP_ENCODING:
+ g_value_set_string (value, vte_terminal_get_encoding (terminal));
+ break;
+ case PROP_FONT_DESC:
+ g_value_set_boxed (value, vte_terminal_get_font (terminal));
+ break;
+ case PROP_ICON_TITLE:
+ g_value_set_string (value, vte_terminal_get_icon_title (terminal));
+ break;
+ case PROP_MOUSE_POINTER_AUTOHIDE:
+ g_value_set_boolean (value, vte_terminal_get_mouse_autohide (terminal));
+ break;
+ case PROP_PTY:
+ g_value_set_int (value, pvt->pty != NULL ? vte_pty_get_fd(pvt->pty) : -1);
+ break;
+ case PROP_PTY_OBJECT:
+ g_value_set_object (value, vte_terminal_get_pty_object(terminal));
+ break;
+ case PROP_SCROLL_BACKGROUND:
+ g_value_set_boolean (value, pvt->scroll_background);
+ break;
+ case PROP_SCROLLBACK_LINES:
+ g_value_set_uint (value, pvt->scrollback_lines);
+ break;
+ case PROP_SCROLL_ON_KEYSTROKE:
+ g_value_set_boolean (value, pvt->scroll_on_keystroke);
+ break;
+ case PROP_SCROLL_ON_OUTPUT:
+ g_value_set_boolean (value, pvt->scroll_on_output);
+ break;
+ case PROP_WINDOW_TITLE:
+ g_value_set_string (value, vte_terminal_get_window_title (terminal));
+ break;
+ case PROP_WORD_CHARS:
+ g_value_set_string (value, NULL /* FIXME */);
+ break;
+ case PROP_VISIBLE_BELL:
+ g_value_set_boolean (value, vte_terminal_get_visible_bell (terminal));
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ return;
+ }
+}
+
+static void
+vte_terminal_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ VteTerminal *terminal = VTE_TERMINAL (object);
+ VteTerminalPrivate *pvt = terminal->pvt;
+
+ switch (prop_id)
+ {
+#if GTK_CHECK_VERSION (2, 91, 2)
+ case PROP_HADJUSTMENT:
+ vte_terminal_set_hadjustment (terminal, g_value_get_object (value));
+ break;
+ case PROP_VADJUSTMENT:
+ vte_terminal_set_vadjustment (terminal, g_value_get_object (value));
+ break;
+ case PROP_HSCROLL_POLICY:
+ pvt->hscroll_policy = g_value_get_enum (value);
+ gtk_widget_queue_resize_no_redraw (GTK_WIDGET (terminal));
+ break;
+ case PROP_VSCROLL_POLICY:
+ pvt->vscroll_policy = g_value_get_enum (value);
+ gtk_widget_queue_resize_no_redraw (GTK_WIDGET (terminal));
+ break;
+#endif
+ case PROP_ALLOW_BOLD:
+ vte_terminal_set_allow_bold (terminal, g_value_get_boolean (value));
+ break;
+ case PROP_AUDIBLE_BELL:
+ vte_terminal_set_audible_bell (terminal, g_value_get_boolean (value));
+ break;
+ case PROP_BACKGROUND_IMAGE_FILE:
+ vte_terminal_set_background_image_file (terminal, g_value_get_string (value));
+ break;
+ case PROP_BACKGROUND_IMAGE_PIXBUF:
+ vte_terminal_set_background_image (terminal, g_value_get_object (value));
+ break;
+ case PROP_BACKGROUND_OPACITY:
+ vte_terminal_set_opacity (terminal, g_value_get_double (value) * (double)
G_MAXUINT16);
+ break;
+ case PROP_BACKGROUND_SATURATION:
+ vte_terminal_set_background_saturation (terminal, g_value_get_double (value));
+ break;
+ case PROP_BACKGROUND_TINT_COLOR:
+ vte_terminal_set_background_tint_color (terminal, g_value_get_boxed (value));
+ break;
+ case PROP_BACKGROUND_TRANSPARENT:
+ vte_terminal_set_background_transparent (terminal, g_value_get_boolean (value));
+ break;
+ case PROP_BACKSPACE_BINDING:
+ vte_terminal_set_backspace_binding (terminal, g_value_get_enum (value));
+ break;
+ case PROP_CURSOR_BLINK_MODE:
+ vte_terminal_set_cursor_blink_mode (terminal, g_value_get_enum (value));
+ break;
+ case PROP_CURSOR_SHAPE:
+ vte_terminal_set_cursor_shape (terminal, g_value_get_enum (value));
+ break;
+ case PROP_DELETE_BINDING:
+ vte_terminal_set_delete_binding (terminal, g_value_get_enum (value));
+ break;
+ case PROP_EMULATION:
+ vte_terminal_set_emulation (terminal, g_value_get_string (value));
+ break;
+ case PROP_ENCODING:
+ vte_terminal_set_encoding (terminal, g_value_get_string (value));
+ break;
+ case PROP_FONT_DESC:
+ vte_terminal_set_font_full_internal (terminal, g_value_get_boxed (value),
pvt->fontantialias);
+ break;
+ case PROP_MOUSE_POINTER_AUTOHIDE:
+ vte_terminal_set_mouse_autohide (terminal, g_value_get_boolean (value));
+ break;
+ case PROP_PTY:
+ vte_terminal_set_pty (terminal, g_value_get_int (value));
+ break;
+ case PROP_PTY_OBJECT:
+ vte_terminal_set_pty_object (terminal, g_value_get_object (value));
+ break;
+ case PROP_SCROLL_BACKGROUND:
+ vte_terminal_set_scroll_background (terminal, g_value_get_boolean (value));
+ break;
+ case PROP_SCROLLBACK_LINES:
+ vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value));
+ break;
+ case PROP_SCROLL_ON_KEYSTROKE:
+ vte_terminal_set_scroll_on_keystroke(terminal, g_value_get_boolean (value));
+ break;
+ case PROP_SCROLL_ON_OUTPUT:
+ vte_terminal_set_scroll_on_output (terminal, g_value_get_boolean (value));
+ break;
+ case PROP_WORD_CHARS:
+ vte_terminal_set_word_chars (terminal, g_value_get_string (value));
+ break;
+ case PROP_VISIBLE_BELL:
+ vte_terminal_set_visible_bell (terminal, g_value_get_boolean (value));
+ break;
+
+ /* Not writable */
+ case PROP_ICON_TITLE:
+ case PROP_WINDOW_TITLE:
+ g_assert_not_reached ();
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ return;
+ }
+}
+
+/* Initialize methods. */
+static void
+vte_terminal_class_init(VteTerminalClass *klass)
+{
+ GObjectClass *gobject_class;
+ GtkWidgetClass *widget_class;
+ GtkBindingSet *binding_set;
+
+#ifdef VTE_DEBUG
+ {
+ _vte_debug_init();
+ _vte_debug_print(VTE_DEBUG_LIFECYCLE,
+ "vte_terminal_class_init()\n");
+ /* print out the legend */
+ _vte_debug_print(VTE_DEBUG_WORK,
+ "Debugging work flow (top input to bottom output):\n"
+ " . _vte_terminal_process_incoming\n"
+ " < start process_timeout\n"
+ " {[ start update_timeout [ => rate limited\n"
+ " T start of terminal in update_timeout\n"
+ " ( start _vte_terminal_process_incoming\n"
+ " ? _vte_invalidate_cells (call)\n"
+ " ! _vte_invalidate_cells (dirty)\n"
+ " * _vte_invalidate_all\n"
+ " ) end _vte_terminal_process_incoming\n"
+ " - gdk_window_process_updates\n"
+ " + vte_terminal_expose\n"
+ " = vte_terminal_paint\n"
+ " ]} end update_timeout\n"
+ " > end process_timeout\n");
+ }
+#endif
+
+ bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR);
+#ifdef HAVE_DECL_BIND_TEXTDOMAIN_CODESET
+ bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+#endif
+
+ g_type_class_add_private(klass, sizeof (VteTerminalPrivate));
+
+ gobject_class = G_OBJECT_CLASS(klass);
+ widget_class = GTK_WIDGET_CLASS(klass);
+
+ /* Override some of the default handlers. */
+ gobject_class->finalize = vte_terminal_finalize;
+ gobject_class->get_property = vte_terminal_get_property;
+ gobject_class->set_property = vte_terminal_set_property;
+ widget_class->realize = vte_terminal_realize;
+ widget_class->scroll_event = vte_terminal_scroll;
+#if GTK_CHECK_VERSION (2, 90, 8)
+ widget_class->draw = vte_terminal_draw;
+#else
+ widget_class->expose_event = vte_terminal_expose;
+#endif
+ widget_class->key_press_event = vte_terminal_key_press;
+ widget_class->key_release_event = vte_terminal_key_release;
+ widget_class->button_press_event = vte_terminal_button_press;
+ widget_class->button_release_event = vte_terminal_button_release;
+ widget_class->motion_notify_event = vte_terminal_motion_notify;
+ widget_class->enter_notify_event = vte_terminal_enter;
+ widget_class->leave_notify_event = vte_terminal_leave;
+ widget_class->focus_in_event = vte_terminal_focus_in;
+ widget_class->focus_out_event = vte_terminal_focus_out;
+ widget_class->visibility_notify_event = vte_terminal_visibility_notify;
+ widget_class->unrealize = vte_terminal_unrealize;
+ widget_class->style_set = vte_terminal_style_set;
+#if GTK_CHECK_VERSION (2, 91, 0)
+ widget_class->get_preferred_width = vte_terminal_get_preferred_width;
+ widget_class->get_preferred_height = vte_terminal_get_preferred_height;
+#else
+ widget_class->size_request = vte_terminal_size_request;
+#endif
+ widget_class->size_allocate = vte_terminal_size_allocate;
+ widget_class->get_accessible = vte_terminal_get_accessible;
+ widget_class->screen_changed = vte_terminal_screen_changed;
+
+ /* Initialize default handlers. */
+ klass->eof = NULL;
+ klass->child_exited = NULL;
+ klass->emulation_changed = NULL;
+ klass->encoding_changed = NULL;
+ klass->char_size_changed = NULL;
+ klass->window_title_changed = NULL;
+ klass->icon_title_changed = NULL;
+ klass->selection_changed = NULL;
+ klass->contents_changed = NULL;
+ klass->cursor_moved = NULL;
+ klass->status_line_changed = NULL;
+ klass->commit = NULL;
+
+ klass->deiconify_window = NULL;
+ klass->iconify_window = NULL;
+ klass->raise_window = NULL;
+ klass->lower_window = NULL;
+ klass->refresh_window = NULL;
+ klass->restore_window = NULL;
+ klass->maximize_window = NULL;
+ klass->resize_window = NULL;
+ klass->move_window = NULL;
+
+ klass->increase_font_size = NULL;
+ klass->decrease_font_size = NULL;
+
+ klass->text_modified = NULL;
+ klass->text_inserted = NULL;
+ klass->text_deleted = NULL;
+ klass->text_scrolled = NULL;
+
+ klass->copy_clipboard = vte_terminal_real_copy_clipboard;
+ klass->paste_clipboard = vte_terminal_real_paste_clipboard;
+
+ klass->beep = NULL;
+
+#if GTK_CHECK_VERSION (2, 91, 2)
+ /* GtkScrollable interface properties */
+ g_object_class_override_property (gobject_class, PROP_HADJUSTMENT, "hadjustment");
+ g_object_class_override_property (gobject_class, PROP_VADJUSTMENT, "vadjustment");
+ g_object_class_override_property (gobject_class, PROP_HSCROLL_POLICY, "hscroll-policy");
+ g_object_class_override_property (gobject_class, PROP_VSCROLL_POLICY, "vscroll-policy");
+
+#else
+
+ klass->set_scroll_adjustments = vte_terminal_set_scroll_adjustments;
+
+ /**
+ * VteTerminal::set-scroll-adjustments:
+ * @vteterminal: the object which received the signal
+ * @horizontal: (allow-none): the horizontal #GtkAdjustment (unused in #VteTerminal)
+ * @vertical: (allow-none): the vertical #GtkAdjustment
+ *
+ * Set the scroll adjustments for the terminal. Usually scrolled containers
+ * like #GtkScrolledWindow will emit this signal to connect two instances
+ * of #GtkScrollbar to the scroll directions of the #VteTerminal.
+ *
+ * Since: 0.17.1
+ */
+ widget_class->set_scroll_adjustments_signal =
+ g_signal_new(I_("set-scroll-adjustments"),
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (VteTerminalClass, set_scroll_adjustments),
+ NULL, NULL,
+ _vte_marshal_VOID__OBJECT_OBJECT,
+ G_TYPE_NONE, 2,
+ GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);
+
+#endif
+
+ /* Register some signals of our own. */
+
+#if GTK_CHECK_VERSION (2, 99, 0)
+#define OBSOLETE_SIGNAL(str)
+#else
+#define OBSOLETE_SIGNAL(str) str
+#endif
+
+ /**
+ * VteTerminal::eof:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted when the terminal receives an end-of-file from a child which
+ * is running in the terminal. This signal is frequently (but not
+ * always) emitted with a #VteTerminal::child-exited signal.
+ */
+ OBSOLETE_SIGNAL (klass->eof_signal =)
+ g_signal_new(I_("eof"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, eof),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::child-exited:
+ * @vteterminal: the object which received the signal
+ *
+ * This signal is emitted when the terminal detects that a child started
+ * using vte_terminal_fork_command() has exited.
+ */
+ OBSOLETE_SIGNAL (klass->child_exited_signal =)
+ g_signal_new(I_("child-exited"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, child_exited),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::window-title-changed:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted when the terminal's %window_title field is modified.
+ */
+ OBSOLETE_SIGNAL (klass->window_title_changed_signal =)
+ g_signal_new(I_("window-title-changed"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, window_title_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::icon-title-changed:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted when the terminal's %icon_title field is modified.
+ */
+ OBSOLETE_SIGNAL (klass->icon_title_changed_signal =)
+ g_signal_new(I_("icon-title-changed"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, icon_title_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::encoding-changed:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted whenever the terminal's current encoding has changed, either
+ * as a result of receiving a control sequence which toggled between the
+ * local and UTF-8 encodings, or at the parent application's request.
+ */
+ OBSOLETE_SIGNAL (klass->encoding_changed_signal =)
+ g_signal_new(I_("encoding-changed"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, encoding_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::commit:
+ * @vteterminal: the object which received the signal
+ * @text: a string of text
+ * @size: the length of that string of text
+ *
+ * Emitted whenever the terminal receives input from the user and
+ * prepares to send it to the child process. The signal is emitted even
+ * when there is no child process.
+ */
+ OBSOLETE_SIGNAL (klass->commit_signal =)
+ g_signal_new(I_("commit"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, commit),
+ NULL,
+ NULL,
+ _vte_marshal_VOID__STRING_UINT,
+ G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_UINT);
+
+ /**
+ * VteTerminal::emulation-changed:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted whenever the terminal's emulation changes, only possible at
+ * the parent application's request.
+ */
+ OBSOLETE_SIGNAL (klass->emulation_changed_signal =)
+ g_signal_new(I_("emulation-changed"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, emulation_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::char-size-changed:
+ * @vteterminal: the object which received the signal
+ * @width: the new character cell width
+ * @height: the new character cell height
+ *
+ * Emitted whenever selection of a new font causes the values of the
+ * %char_width or %char_height fields to change.
+ */
+ OBSOLETE_SIGNAL (klass->char_size_changed_signal =)
+ g_signal_new(I_("char-size-changed"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, char_size_changed),
+ NULL,
+ NULL,
+ _vte_marshal_VOID__UINT_UINT,
+ G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
+
+ /**
+ * VteTerminal::selection-changed:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted whenever the contents of terminal's selection changes.
+ */
+ OBSOLETE_SIGNAL (klass->selection_changed_signal =)
+ g_signal_new (I_("selection-changed"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, selection_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::contents-changed:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted whenever the visible appearance of the terminal has changed.
+ * Used primarily by #VteTerminalAccessible.
+ */
+ OBSOLETE_SIGNAL (klass->contents_changed_signal =)
+ g_signal_new(I_("contents-changed"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, contents_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::cursor-moved:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted whenever the cursor moves to a new character cell. Used
+ * primarily by #VteTerminalAccessible.
+ */
+ OBSOLETE_SIGNAL (klass->cursor_moved_signal =)
+ g_signal_new(I_("cursor-moved"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, cursor_moved),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::deiconify-window:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted at the child application's request.
+ */
+ OBSOLETE_SIGNAL (klass->deiconify_window_signal =)
+ g_signal_new(I_("deiconify-window"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, deiconify_window),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::iconify-window:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted at the child application's request.
+ */
+ OBSOLETE_SIGNAL (klass->iconify_window_signal =)
+ g_signal_new(I_("iconify-window"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, iconify_window),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::raise-window:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted at the child application's request.
+ */
+ OBSOLETE_SIGNAL (klass->raise_window_signal =)
+ g_signal_new(I_("raise-window"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, raise_window),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::lower-window:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted at the child application's request.
+ */
+ OBSOLETE_SIGNAL (klass->lower_window_signal =)
+ g_signal_new(I_("lower-window"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, lower_window),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::refresh-window:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted at the child application's request.
+ */
+ OBSOLETE_SIGNAL (klass->refresh_window_signal =)
+ g_signal_new(I_("refresh-window"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, refresh_window),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::restore-window:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted at the child application's request.
+ */
+ OBSOLETE_SIGNAL (klass->restore_window_signal =)
+ g_signal_new(I_("restore-window"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, restore_window),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::maximize-window:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted at the child application's request.
+ */
+ OBSOLETE_SIGNAL (klass->maximize_window_signal =)
+ g_signal_new(I_("maximize-window"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, maximize_window),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::resize-window:
+ * @vteterminal: the object which received the signal
+ * @width: the desired width in pixels, including padding
+ * @height: the desired height in pixels, including padding
+ *
+ * Emitted at the child application's request.
+ */
+ OBSOLETE_SIGNAL (klass->resize_window_signal =)
+ g_signal_new(I_("resize-window"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, resize_window),
+ NULL,
+ NULL,
+ _vte_marshal_VOID__UINT_UINT,
+ G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
+
+ /**
+ * VteTerminal::move-window:
+ * @vteterminal: the object which received the signal
+ * @x: the terminal's desired location, X coordinate
+ * @y: the terminal's desired location, Y coordinate
+ *
+ * Emitted at the child application's request.
+ */
+ OBSOLETE_SIGNAL (klass->move_window_signal =)
+ g_signal_new(I_("move-window"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, move_window),
+ NULL,
+ NULL,
+ _vte_marshal_VOID__UINT_UINT,
+ G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
+
+ /**
+ * VteTerminal::status-line-changed:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted whenever the contents of the status line are modified or
+ * cleared.
+ */
+ OBSOLETE_SIGNAL (klass->status_line_changed_signal =)
+ g_signal_new(I_("status-line-changed"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, status_line_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::increase-font-size:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted when the user hits the '+' key while holding the Control key.
+ */
+ OBSOLETE_SIGNAL (klass->increase_font_size_signal =)
+ g_signal_new(I_("increase-font-size"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, increase_font_size),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::decrease-font-size:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted when the user hits the '-' key while holding the Control key.
+ */
+ OBSOLETE_SIGNAL (klass->decrease_font_size_signal =)
+ g_signal_new(I_("decrease-font-size"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, decrease_font_size),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::text-modified:
+ * @vteterminal: the object which received the signal
+ *
+ * An internal signal used for communication between the terminal and
+ * its accessibility peer. May not be emitted under certain
+ * circumstances.
+ */
+ OBSOLETE_SIGNAL (klass->text_modified_signal =)
+ g_signal_new(I_("text-modified"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, text_modified),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::text-inserted:
+ * @vteterminal: the object which received the signal
+ *
+ * An internal signal used for communication between the terminal and
+ * its accessibility peer. May not be emitted under certain
+ * circumstances.
+ */
+ OBSOLETE_SIGNAL (klass->text_inserted_signal =)
+ g_signal_new(I_("text-inserted"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, text_inserted),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::text-deleted:
+ * @vteterminal: the object which received the signal
+ *
+ * An internal signal used for communication between the terminal and
+ * its accessibility peer. May not be emitted under certain
+ * circumstances.
+ */
+ OBSOLETE_SIGNAL (klass->text_deleted_signal =)
+ g_signal_new(I_("text-deleted"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, text_deleted),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::text-scrolled:
+ * @vteterminal: the object which received the signal
+ * @delta: the number of lines scrolled
+ *
+ * An internal signal used for communication between the terminal and
+ * its accessibility peer. May not be emitted under certain
+ * circumstances.
+ */
+ OBSOLETE_SIGNAL (klass->text_scrolled_signal =)
+ g_signal_new(I_("text-scrolled"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, text_scrolled),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__INT,
+ G_TYPE_NONE, 1, G_TYPE_INT);
+
+#undef OBSOLETE_SIGNAL
+
+ /**
+ * VteTerminal::copy-clipboard:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted whenever vte_terminal_copy_clipboard() is called.
+ */
+ signals[COPY_CLIPBOARD] =
+ g_signal_new(I_("copy-clipboard"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET(VteTerminalClass, copy_clipboard),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::paste-clipboard:
+ * @vteterminal: the object which received the signal
+ *
+ * Emitted whenever vte_terminal_paste_clipboard() is called.
+ */
+ signals[PASTE_CLIPBOARD] =
+ g_signal_new(I_("paste-clipboard"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET(VteTerminalClass, paste_clipboard),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal::beep:
+ * @vteterminal: the object which received the signal
+ *
+ * This signal is emitted when the a child sends a beep request to the
+ * terminal.
+ */
+ g_signal_new(I_("beep"),
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(VteTerminalClass, beep),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ /**
+ * VteTerminal:allow-bold:
+ *
+ * Controls whether or not the terminal will attempt to draw bold text.
+ * This may happen either by using a bold font variant, or by
+ * repainting text with a different offset.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_ALLOW_BOLD,
+ g_param_spec_boolean ("allow-bold", NULL, NULL,
+ TRUE,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:audible-bell:
+ *
+ * Controls whether or not the terminal will beep when the child outputs the
+ * "bl" sequence.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_AUDIBLE_BELL,
+ g_param_spec_boolean ("audible-bell", NULL, NULL,
+ TRUE,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:background-image-file: (type filename):
+ *
+ * Sets a background image file for the widget. If specified by
+ * #VteTerminal:background-saturation:, the terminal will tint its
+ * in-memory copy of the image before applying it to the terminal.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_BACKGROUND_IMAGE_FILE,
+ g_param_spec_string ("background-image-file", NULL, NULL,
+ NULL,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:background-image-pixbuf:
+ *
+ * Sets a background image for the widget. Text which would otherwise be
+ * drawn using the default background color will instead be drawn over the
+ * specified image. If necessary, the image will be tiled to cover the
+ * widget's entire visible area. If specified by
+ * #VteTerminal:background-saturation:, the terminal will tint its
+ * in-memory copy of the image before applying it to the terminal.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_BACKGROUND_IMAGE_PIXBUF,
+ g_param_spec_object ("background-image-pixbuf", NULL, NULL,
+ GDK_TYPE_PIXBUF,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:background-opacity:
+ *
+ * Sets the opacity of the terminal background, were 0.0 means completely
+ * transparent and 1.0 means completely opaque.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_BACKGROUND_OPACITY,
+ g_param_spec_double ("background-opacity", NULL, NULL,
+ 0.0, 1.0,
+ 1.0,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:background-saturation:
+ *
+ * If a background image has been set using #VteTerminal:background-image-file: or
+ * #VteTerminal:background-image-pixbuf:, or #VteTerminal:background-transparent:,
+ * and the saturation value is less
+ * than 1.0, the terminal will adjust the colors of the image before drawing
+ * the image. To do so, the terminal will create a copy of the background
+ * image (or snapshot of the root window) and modify its pixel values.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_BACKGROUND_SATURATION,
+ g_param_spec_double ("background-saturation", NULL, NULL,
+ 0.0, 1.0,
+ 0.4,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:background-tint-color:
+ *
+ * If a background image has been set using #VteTerminal:background-image-file: or
+ * #VteTerminal:background-image-pixbuf:, or #VteTerminal:background-transparent:, and
+ * and the value set by VteTerminal:background-saturation: is less than 1.0,
+ * the terminal
+ * will adjust the color of the image before drawing the image. To do so,
+ * the terminal will create a copy of the background image (or snapshot of
+ * the root window) and modify its pixel values. The initial tint color
+ * is black.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_BACKGROUND_TINT_COLOR,
+ g_param_spec_boxed ("background-tint-color", NULL, NULL,
+ GDK_TYPE_COLOR,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:background-transparent:
+ *
+ * Sets whther the terminal uses the pixmap stored in the root
+ * window as the background, adjusted so that if there are no windows
+ * below your application, the widget will appear to be transparent.
+ *
+ * Note: When using a compositing window manager, you should instead
+ * set a RGBA colourmap on the toplevel window, so you get real transparency.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_BACKGROUND_TRANSPARENT,
+ g_param_spec_boolean ("background-transparent", NULL, NULL,
+ FALSE,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:backspace-binding:
+ *
+ * *Controls what string or control sequence the terminal sends to its child
+ * when the user presses the backspace key.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_BACKSPACE_BINDING,
+ g_param_spec_enum ("backspace-binding", NULL, NULL,
+ VTE_TYPE_TERMINAL_ERASE_BINDING,
+ VTE_ERASE_AUTO,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:cursor-blink-mode:
+ *
+ * Sets whether or not the cursor will blink. Using %VTE_CURSOR_BLINK_SYSTEM
+ * will use the #GtkSettings::gtk-cursor-blink setting.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_CURSOR_BLINK_MODE,
+ g_param_spec_enum ("cursor-blink-mode", NULL, NULL,
+ VTE_TYPE_TERMINAL_CURSOR_BLINK_MODE,
+ VTE_CURSOR_BLINK_SYSTEM,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:cursor-shape:
+ *
+ * Controls the shape of the cursor.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_CURSOR_SHAPE,
+ g_param_spec_enum ("cursor-shape", NULL, NULL,
+ VTE_TYPE_TERMINAL_CURSOR_SHAPE,
+ VTE_CURSOR_SHAPE_BLOCK,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:delete-binding:
+ *
+ * Controls what string or control sequence the terminal sends to its child
+ * when the user presses the delete key.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_DELETE_BINDING,
+ g_param_spec_enum ("delete-binding", NULL, NULL,
+ VTE_TYPE_TERMINAL_ERASE_BINDING,
+ VTE_ERASE_AUTO,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:emulation:
+ *
+ * Sets what type of terminal the widget attempts to emulate by scanning for
+ * control sequences defined in the system's termcap file. Unless you
+ * are interested in this feature, always use the default which is "xterm".
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_EMULATION,
+ g_param_spec_string ("emulation", NULL, NULL,
+ VTE_DEFAULT_EMULATION,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:encoding:
+ *
+ * Controls the encoding the terminal will expect data from the child to
+ * be encoded with. For certain terminal types, applications executing in the
+ * terminal can change the encoding. The default is defined by the
+ * application's locale settings.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_ENCODING,
+ g_param_spec_string ("encoding", NULL, NULL,
+ NULL,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:font-desc:
+ *
+ * Specifies the font used for rendering all text displayed by the terminal,
+ * overriding any fonts set using gtk_widget_modify_font(). The terminal
+ * will immediately attempt to load the desired font, retrieve its
+ * metrics, and attempt to resize itself to keep the same number of rows
+ * and columns.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_FONT_DESC,
+ g_param_spec_boxed ("font-desc", NULL, NULL,
+ PANGO_TYPE_FONT_DESCRIPTION,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:icon-title:
+ *
+ * The terminal's so-called icon title, or %NULL if no icon title has been set.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_ICON_TITLE,
+ g_param_spec_string ("icon-title", NULL, NULL,
+ NULL,
+ G_PARAM_READABLE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:pointer-autohide:
+ *
+ * Controls the value of the terminal's mouse autohide setting. When autohiding
+ * is enabled, the mouse cursor will be hidden when the user presses a key and
+ * shown when the user moves the mouse.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_MOUSE_POINTER_AUTOHIDE,
+ g_param_spec_boolean ("pointer-autohide", NULL, NULL,
+ FALSE,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:pty:
+ *
+ * The file descriptor of the master end of the terminal's PTY.
+ *
+ * Since: 0.20
+ *
+ * Deprecated: 0.26: Use the #VteTerminal:pty-object property instead
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_PTY,
+ g_param_spec_int ("pty", NULL, NULL,
+ -1, G_MAXINT,
+ -1,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:pty-object:
+ *
+ * The PTY object for the terminal.
+ *
+ * Since: 0.26
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_PTY_OBJECT,
+ g_param_spec_object ("pty-object", NULL, NULL,
+ VTE_TYPE_PTY,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * VteTerminal:scroll-background:
+ *
+ * Controls whether or not the terminal will scroll the background image (if
+ * one is set) when the text in the window must be scrolled.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_SCROLL_BACKGROUND,
+ g_param_spec_boolean ("scroll-background", NULL, NULL,
+ FALSE,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:scrollback-lines:
+ *
+ * The length of the scrollback buffer used by the terminal. The size of
+ * the scrollback buffer will be set to the larger of this value and the number
+ * of visible rows the widget can display, so 0 can safely be used to disable
+ * scrollback. Note that this setting only affects the normal screen buffer.
+ * For terminal types which have an alternate screen buffer, no scrollback is
+ * allowed on the alternate screen buffer.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_SCROLLBACK_LINES,
+ g_param_spec_uint ("scrollback-lines", NULL, NULL,
+ 0, G_MAXUINT,
+ VTE_SCROLLBACK_INIT,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:scroll-on-keystroke:
+ *
+ * Controls whether or not the terminal will forcibly scroll to the bottom of
+ * the viewable history when the user presses a key. Modifier keys do not
+ * trigger this behavior.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_SCROLL_ON_KEYSTROKE,
+ g_param_spec_boolean ("scroll-on-keystroke", NULL, NULL,
+ FALSE,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:scroll-on-output:
+ *
+ * Controls whether or not the terminal will forcibly scroll to the bottom of
+ * the viewable history when the new data is received from the child.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_SCROLL_ON_OUTPUT,
+ g_param_spec_boolean ("scroll-on-output", NULL, NULL,
+ TRUE,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:window-title:
+ *
+ * The terminal's title.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_WINDOW_TITLE,
+ g_param_spec_string ("window-title", NULL, NULL,
+ NULL,
+ G_PARAM_READABLE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:word-chars:
+ *
+ * When the user double-clicks to start selection, the terminal will extend
+ * the selection on word boundaries. It will treat characters the word-chars
+ * characters as parts of words, and all other characters as word separators.
+ * Ranges of characters can be specified by separating them with a hyphen.
+ *
+ * As a special case, when setting this to %NULL or the empty string, the terminal will
+ * treat all graphic non-punctuation non-space characters as word characters.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_WORD_CHARS,
+ g_param_spec_string ("word-chars", NULL, NULL,
+ NULL,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /**
+ * VteTerminal:visible-bell:
+ *
+ * Controls whether the terminal will present a visible bell to the
+ * user when the child outputs the "bl" sequence. The terminal
+ * will clear itself to the default foreground color and then repaint itself.
+ *
+ * Since: 0.20
+ */
+ g_object_class_install_property
+ (gobject_class,
+ PROP_VISIBLE_BELL,
+ g_param_spec_boolean ("visible-bell", NULL, NULL,
+ FALSE,
+ G_PARAM_READWRITE | STATIC_PARAMS));
+
+ /* Style properties */
+
+ /**
+ * VteTerminal:inner-border:
+ *
+ * Sets the border around the terminal.
+ *
+ * Since: 0.24
+ */
+ gtk_widget_class_install_style_property
+ (widget_class,
+ g_param_spec_boxed ("inner-border", NULL, NULL,
+ GTK_TYPE_BORDER,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+#if !GTK_CHECK_VERSION (2,99, 0)
+ /* Now install the default style */
+ gtk_rc_parse_string("style \"vte-default-style\" {\n"
+ "VteTerminal::inner-border = { 1, 1, 1, 1 }\n"
+ "}\n"
+ "class \"VteTerminal\" style : gtk \"vte-default-style\"\n");
+#endif
+
+ /* Keybindings */
+ binding_set = gtk_binding_set_by_class(klass);
+
+ /* Bind Copy, Paste, Cut keys */
+ gtk_binding_entry_add_signal(binding_set, GDK_KEY (F16), 0, "copy-clipboard",0);
+ gtk_binding_entry_add_signal(binding_set, GDK_KEY (F18), 0, "paste-clipboard", 0);
+ gtk_binding_entry_add_signal(binding_set, GDK_KEY (F20), 0, "copy-clipboard",0);
+
+ process_timer = g_timer_new ();
+
+#if GTK_CHECK_VERSION (2, 99, 0)
+ klass->priv = G_TYPE_CLASS_GET_PRIVATE (klass, VTE_TYPE_TERMINAL, VteTerminalClassPrivate);
+
+ klass->priv->style_provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ());
+ gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (klass->priv->style_provider),
+ "VteTerminal {\n"
+ "-VteTerminal-inner-border: 1;\n"
+ "}\n",
+ -1, NULL);
+#endif /* GTK 3.0 */
+}
+
+/**
+ * vte_terminal_set_audible_bell:
+ * @terminal: a #VteTerminal
+ * @is_audible: %TRUE if the terminal should beep
+ *
+ * Controls whether or not the terminal will beep when the child outputs the
+ * "bl" sequence.
+ */
+void
+vte_terminal_set_audible_bell(VteTerminal *terminal, gboolean is_audible)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ is_audible = is_audible != FALSE;
+ if (is_audible == pvt->audible_bell)
+ return;
+
+ pvt->audible_bell = is_audible;
+
+ g_object_notify (G_OBJECT (terminal), "audible-bell");
+}
+
+/**
+ * vte_terminal_get_audible_bell:
+ * @terminal: a #VteTerminal
+ *
+ * Checks whether or not the terminal will beep when the child outputs the
+ * "bl" sequence.
+ *
+ * Returns: %TRUE if audible bell is enabled, %FALSE if not
+ */
+gboolean
+vte_terminal_get_audible_bell(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+ return terminal->pvt->audible_bell;
+}
+
+/**
+ * vte_terminal_set_visible_bell:
+ * @terminal: a #VteTerminal
+ * @is_visible: whether the terminal should flash on bell
+ *
+ * Controls whether or not the terminal will present a visible bell to the
+ * user when the child outputs the "bl" sequence. The terminal
+ * will clear itself to the default foreground color and then repaint itself.
+ *
+ */
+void
+vte_terminal_set_visible_bell(VteTerminal *terminal, gboolean is_visible)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ is_visible = is_visible != FALSE;
+ if (is_visible == pvt->visible_bell)
+ return;
+
+ pvt->visible_bell = is_visible;
+
+ g_object_notify (G_OBJECT (terminal), "visible-bell");
+}
+
+/**
+ * vte_terminal_get_visible_bell:
+ * @terminal: a #VteTerminal
+ *
+ * Checks whether or not the terminal will present a visible bell to the
+ * user when the child outputs the "bl" sequence. The terminal
+ * will clear itself to the default foreground color and then repaint itself.
+ *
+ * Returns: %TRUE if visible bell is enabled, %FALSE if not
+ */
+gboolean
+vte_terminal_get_visible_bell(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+ return terminal->pvt->visible_bell;
+}
+
+/**
+ * vte_terminal_set_allow_bold:
+ * @terminal: a #VteTerminal
+ * @allow_bold: %TRUE if the terminal should attempt to draw bold text
+ *
+ * Controls whether or not the terminal will attempt to draw bold text,
+ * either by using a bold font variant or by repainting text with a different
+ * offset.
+ *
+ */
+void
+vte_terminal_set_allow_bold(VteTerminal *terminal, gboolean allow_bold)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ allow_bold = allow_bold != FALSE;
+ if (allow_bold == pvt->allow_bold)
+ return;
+
+ pvt->allow_bold = allow_bold;
+ g_object_notify (G_OBJECT (terminal), "allow-bold");
+
+ _vte_invalidate_all (terminal);
+}
+
+/**
+ * vte_terminal_get_allow_bold:
+ * @terminal: a #VteTerminal
+ *
+ * Checks whether or not the terminal will attempt to draw bold text by
+ * repainting text with a one-pixel offset.
+ *
+ * Returns: %TRUE if bolding is enabled, %FALSE if not
+ */
+gboolean
+vte_terminal_get_allow_bold(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+ return terminal->pvt->allow_bold;
+}
+
+/**
+ * vte_terminal_set_scroll_background:
+ * @terminal: a #VteTerminal
+ * @scroll: whether the terminal should scroll the background image along with
+ * the text
+ *
+ * Controls whether or not the terminal will scroll the background image (if
+ * one is set) when the text in the window must be scrolled.
+ *
+ * Since: 0.11
+ */
+void
+vte_terminal_set_scroll_background(VteTerminal *terminal, gboolean scroll)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ scroll = scroll != FALSE;
+ if (scroll == pvt->scroll_background)
+ return;
+
+ pvt->scroll_background = scroll;
+
+ g_object_notify (G_OBJECT (terminal), "scroll-background");
+
+ vte_terminal_queue_background_update(terminal);
+}
+
+/**
+ * vte_terminal_set_scroll_on_output:
+ * @terminal: a #VteTerminal
+ * @scroll: whether the terminal should scroll on output
+ *
+ * Controls whether or not the terminal will forcibly scroll to the bottom of
+ * the viewable history when the new data is received from the child.
+ */
+void
+vte_terminal_set_scroll_on_output(VteTerminal *terminal, gboolean scroll)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->pvt->scroll_on_output = scroll;
+}
+
+/**
+ * vte_terminal_set_scroll_on_keystroke:
+ * @terminal: a #VteTerminal
+ * @scroll: whether the terminal should scroll on keystrokes
+ *
+ * Controls whether or not the terminal will forcibly scroll to the bottom of
+ * the viewable history when the user presses a key. Modifier keys do not
+ * trigger this behavior.
+ */
+void
+vte_terminal_set_scroll_on_keystroke(VteTerminal *terminal, gboolean scroll)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ scroll = scroll != FALSE;
+ if (scroll == pvt->scroll_on_keystroke)
+ return;
+
+ pvt->scroll_on_keystroke = scroll;
+
+ g_object_notify (G_OBJECT (terminal), "scroll-on-keystroke");
+}
+
+static void
+vte_terminal_real_copy_clipboard(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SELECTION, "Copying to CLIPBOARD.\n");
+ if (terminal->pvt->selection != NULL) {
+ GtkClipboard *clipboard;
+ clipboard = vte_terminal_clipboard_get(terminal,
+ GDK_SELECTION_CLIPBOARD);
+ gtk_clipboard_set_text(clipboard, terminal->pvt->selection, -1);
+ }
+}
+
+/**
+ * vte_terminal_copy_clipboard:
+ * @terminal: a #VteTerminal
+ *
+ * Places the selected text in the terminal in the #GDK_SELECTION_CLIPBOARD
+ * selection.
+ */
+void
+vte_terminal_copy_clipboard(VteTerminal *terminal)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_signal_emit (terminal, signals[COPY_CLIPBOARD], 0);
+}
+
+static void
+vte_terminal_real_paste_clipboard(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SELECTION, "Pasting CLIPBOARD.\n");
+ vte_terminal_paste(terminal, GDK_SELECTION_CLIPBOARD);
+}
+
+/**
+ * vte_terminal_paste_clipboard:
+ * @terminal: a #VteTerminal
+ *
+ * Sends the contents of the #GDK_SELECTION_CLIPBOARD selection to the
+ * terminal's child. If necessary, the data is converted from UTF-8 to the
+ * terminal's current encoding. It's called on paste menu item, or when
+ * user presses Shift+Insert.
+ */
+void
+vte_terminal_paste_clipboard(VteTerminal *terminal)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_signal_emit (terminal, signals[PASTE_CLIPBOARD], 0);
+}
+
+/**
+ * vte_terminal_copy_primary:
+ * @terminal: a #VteTerminal
+ *
+ * Places the selected text in the terminal in the #GDK_SELECTION_PRIMARY
+ * selection.
+ */
+void
+vte_terminal_copy_primary(VteTerminal *terminal)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ _vte_debug_print(VTE_DEBUG_SELECTION, "Copying to PRIMARY.\n");
+ vte_terminal_copy(terminal, GDK_SELECTION_PRIMARY);
+}
+
+/**
+ * vte_terminal_paste_primary:
+ * @terminal: a #VteTerminal
+ *
+ * Sends the contents of the #GDK_SELECTION_PRIMARY selection to the terminal's
+ * child. If necessary, the data is converted from UTF-8 to the terminal's
+ * current encoding. The terminal will call also paste the
+ * #GDK_SELECTION_PRIMARY selection when the user clicks with the the second
+ * mouse button.
+ */
+void
+vte_terminal_paste_primary(VteTerminal *terminal)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ _vte_debug_print(VTE_DEBUG_SELECTION, "Pasting PRIMARY.\n");
+ vte_terminal_paste(terminal, GDK_SELECTION_PRIMARY);
+}
+
+/**
+ * vte_terminal_im_append_menuitems:
+ * @terminal: a #VteTerminal
+ * @menushell: a GtkMenuShell
+ *
+ * Appends menu items for various input methods to the given menu. The
+ * user can select one of these items to modify the input method used by
+ * the terminal.
+ */
+void
+vte_terminal_im_append_menuitems(VteTerminal *terminal, GtkMenuShell *menushell)
+{
+ GtkIMMulticontext *context;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail (gtk_widget_get_realized (&terminal->widget));
+ g_return_if_fail(GTK_IS_MENU_SHELL(menushell));
+ context = GTK_IM_MULTICONTEXT(terminal->pvt->im_context);
+ gtk_im_multicontext_append_menuitems(context, menushell);
+}
+
+/* Set up whatever background we wanted. */
+static gboolean
+vte_terminal_background_update(VteTerminal *terminal)
+{
+ double saturation;
+ const PangoColor *entry;
+ GdkColor color;
+
+ /* If we're not realized yet, don't worry about it, because we get
+ * called when we realize. */
+ if (! gtk_widget_get_realized (&terminal->widget)) {
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Can not set background image without "
+ "window.\n");
+ return TRUE;
+ }
+
+ _vte_debug_print(VTE_DEBUG_MISC|VTE_DEBUG_EVENTS,
+ "Updating background image.\n");
+
+ entry = &terminal->pvt->palette[VTE_DEF_BG];
+ _vte_debug_print(VTE_DEBUG_BG,
+ "Setting background color to (%d, %d, %d, %d).\n",
+ entry->red, entry->green, entry->blue,
+ terminal->pvt->bg_opacity);
+
+ /* Set the terminal widget background color since otherwise we
+ * won't draw it for VTE_BG_SOURCE_NONE. */
+ color.red = entry->red;
+ color.green = entry->green;
+ color.blue = entry->blue;
+ gtk_widget_modify_bg (&terminal->widget, GTK_STATE_NORMAL, &color);
+
+ _vte_draw_set_background_solid (terminal->pvt->draw,
+ entry->red / 65535.,
+ entry->green / 65535.,
+ entry->blue / 65535.,
+ terminal->pvt->bg_opacity / 65535.);
+
+ /* If we're transparent, and either have no root image or are being
+ * told to update it, get a new copy of the root window. */
+ saturation = (double) terminal->pvt->bg_saturation;
+ saturation /= VTE_SATURATION_MAX;
+ if (terminal->pvt->bg_transparent) {
+ if (terminal->pvt->root_pixmap_changed_tag == 0) {
+ VteBg *bg;
+
+ /* Connect to background-change events. */
+ bg = vte_bg_get_for_screen (gtk_widget_get_screen (&terminal->widget));
+ terminal->pvt->root_pixmap_changed_tag =
+ g_signal_connect(bg, "root-pixmap-changed",
+ G_CALLBACK(root_pixmap_changed_cb),
+ terminal);
+ }
+
+ _vte_draw_set_background_image(terminal->pvt->draw,
+ VTE_BG_SOURCE_ROOT,
+ NULL,
+ NULL,
+ &terminal->pvt->bg_tint_color,
+ saturation);
+ } else
+ if (terminal->pvt->bg_file) {
+ _vte_draw_set_background_image(terminal->pvt->draw,
+ VTE_BG_SOURCE_FILE,
+ NULL,
+ terminal->pvt->bg_file,
+ &terminal->pvt->bg_tint_color,
+ saturation);
+ } else
+ if (GDK_IS_PIXBUF(terminal->pvt->bg_pixbuf)) {
+ _vte_draw_set_background_image(terminal->pvt->draw,
+ VTE_BG_SOURCE_PIXBUF,
+ terminal->pvt->bg_pixbuf,
+ NULL,
+ &terminal->pvt->bg_tint_color,
+ saturation);
+ } else {
+ _vte_draw_set_background_image(terminal->pvt->draw,
+ VTE_BG_SOURCE_NONE,
+ NULL,
+ NULL,
+ &terminal->pvt->bg_tint_color,
+ saturation);
+ }
+
+ /* Note that the update has finished. */
+ terminal->pvt->bg_update_pending = FALSE;
+
+ /* Force a redraw for everything. */
+ _vte_invalidate_all (terminal);
+
+ return FALSE;
+}
+
+/* Queue an update of the background image, to be done as soon as we can
+ * get to it. Just bail if there's already an update pending, so that if
+ * opaque move tables to screw us, we don't end up with an insane backlog
+ * of updates after the user finishes moving us. */
+static void
+vte_terminal_queue_background_update(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_EVENTS,
+ "Queued background update.\n");
+ terminal->pvt->bg_update_pending = TRUE;
+ /* force a redraw when convenient */
+ add_update_timeout (terminal);
+}
+
+/**
+ * vte_terminal_set_background_saturation:
+ * @terminal: a #VteTerminal
+ * @saturation: a floating point value between 0.0 and 1.0.
+ *
+ * If a background image has been set using
+ * vte_terminal_set_background_image(),
+ * vte_terminal_set_background_image_file(), or
+ * vte_terminal_set_background_transparent(), and the saturation value is less
+ * than 1.0, the terminal will adjust the colors of the image before drawing
+ * the image. To do so, the terminal will create a copy of the background
+ * image (or snapshot of the root window) and modify its pixel values.
+ */
+void
+vte_terminal_set_background_saturation(VteTerminal *terminal, double saturation)
+{
+ VteTerminalPrivate *pvt;
+ guint v;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ v = CLAMP(saturation * VTE_SATURATION_MAX, 0, VTE_SATURATION_MAX);
+ if (v == pvt->bg_saturation)
+ return;
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Setting background saturation to %d/%d.\n",
+ v, VTE_SATURATION_MAX);
+
+ pvt->bg_saturation = v;
+ g_object_notify(G_OBJECT (terminal), "background-saturation");
+
+ vte_terminal_queue_background_update(terminal);
+}
+
+/**
+ * vte_terminal_set_background_tint_color:
+ * @terminal: a #VteTerminal
+ * @color: a color which the terminal background should be tinted to if its
+ * saturation is not 1.0.
+ *
+ * If a background image has been set using
+ * vte_terminal_set_background_image(),
+ * vte_terminal_set_background_image_file(), or
+ * vte_terminal_set_background_transparent(), and the value set by
+ * vte_terminal_set_background_saturation() is less than one, the terminal
+ * will adjust the color of the image before drawing the image. To do so,
+ * the terminal will create a copy of the background image (or snapshot of
+ * the root window) and modify its pixel values. The initial tint color
+ * is black.
+ *
+ * Since: 0.11
+ */
+void
+vte_terminal_set_background_tint_color(VteTerminal *terminal,
+ const GdkColor *color)
+{
+ VteTerminalPrivate *pvt;
+ PangoColor *tint;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(color != NULL);
+
+ pvt = terminal->pvt;
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Setting background tint to %d,%d,%d.\n",
+ terminal->pvt->bg_tint_color.red >> 8,
+ terminal->pvt->bg_tint_color.green >> 8,
+ terminal->pvt->bg_tint_color.blue >> 8);
+ tint = &pvt->bg_tint_color;
+ if (color->red == tint->red &&
+ color->green == tint->green &&
+ color->blue == tint->blue)
+ return;
+
+ tint->red = color->red;
+ tint->green = color->green;
+ tint->blue = color->blue;
+
+ g_object_notify(G_OBJECT (terminal), "background-tint-color");
+
+ vte_terminal_queue_background_update(terminal);
+}
+
+/**
+ * vte_terminal_set_background_transparent:
+ * @terminal: a #VteTerminal
+ * @transparent: whether the terminal should fake transparency
+ *
+ * Sets the terminal's background image to the pixmap stored in the root
+ * window, adjusted so that if there are no windows below your application,
+ * the widget will appear to be transparent.
+ */
+void
+vte_terminal_set_background_transparent(VteTerminal *terminal,
+ gboolean transparent)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ transparent = transparent != FALSE;
+ if (transparent == pvt->bg_transparent)
+ return;
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Turning background transparency %s.\n",
+ transparent ? "on" : "off");
+
+ pvt->bg_transparent = transparent;
+ g_object_notify(G_OBJECT (terminal), "background-transparent");
+
+ /* Update the background. */
+ vte_terminal_queue_background_update(terminal);
+}
+
+/**
+ * vte_terminal_set_background_image:
+ * @terminal: a #VteTerminal
+ * @image: (allow-none): a #GdkPixbuf to use, or %NULL to unset the background
+ *
+ * Sets a background image for the widget. Text which would otherwise be
+ * drawn using the default background color will instead be drawn over the
+ * specified image. If necessary, the image will be tiled to cover the
+ * widget's entire visible area. If specified by
+ * vte_terminal_set_background_saturation(), the terminal will tint its
+ * in-memory copy of the image before applying it to the terminal.
+ */
+void
+vte_terminal_set_background_image(VteTerminal *terminal, GdkPixbuf *image)
+{
+ VteTerminalPrivate *pvt;
+ GObject *object;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(image==NULL || GDK_IS_PIXBUF(image));
+
+ object = G_OBJECT(terminal);
+ pvt = terminal->pvt;
+
+ if (image && image == pvt->bg_pixbuf)
+ return;
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "%s background image.\n",
+ GDK_IS_PIXBUF(image) ? "Setting" : "Clearing");
+
+ g_object_freeze_notify(object);
+
+ /* Get a ref to the new image if there is one. Do it here just in
+ * case we're actually given the same one we're already using. */
+ if (image != NULL) {
+ g_object_ref(image);
+ }
+
+ /* Unref the previous background image. */
+ if (pvt->bg_pixbuf != NULL) {
+ g_object_unref(pvt->bg_pixbuf);
+ }
+
+ /* Clear a background file name, if one was set. */
+ if (pvt->bg_file) {
+ g_free(pvt->bg_file);
+ pvt->bg_file = NULL;
+
+ g_object_notify(object, "background-image-file");
+ }
+
+ /* Set the new background. */
+ pvt->bg_pixbuf = image;
+
+ g_object_notify(object, "background-image-pixbuf");
+
+ vte_terminal_queue_background_update(terminal);
+
+ g_object_thaw_notify(object);
+}
+
+/**
+ * vte_terminal_set_background_image_file:
+ * @terminal: a #VteTerminal
+ * @path: (type filename): path to an image file
+ *
+ * Sets a background image for the widget. If specified by
+ * vte_terminal_set_background_saturation(), the terminal will tint its
+ * in-memory copy of the image before applying it to the terminal.
+ */
+void
+vte_terminal_set_background_image_file(VteTerminal *terminal, const char *path)
+{
+ VteTerminalPrivate *pvt;
+ GObject *object;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ object = G_OBJECT(terminal);
+ pvt = terminal->pvt;
+
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Loading background image from `%s'.\n", path);
+
+ g_object_freeze_notify(G_OBJECT(terminal));
+
+ /* Save this background type. */
+ g_free(pvt->bg_file);
+ pvt->bg_file = g_strdup(path);
+
+ /* Turn off other background types. */
+ if (pvt->bg_pixbuf != NULL) {
+ g_object_unref(pvt->bg_pixbuf);
+ pvt->bg_pixbuf = NULL;
+
+ g_object_notify(object, "background-image-pixbuf");
+ }
+
+ g_object_notify(object, "background-image-file");
+
+ vte_terminal_queue_background_update(terminal);
+
+ g_object_thaw_notify(G_OBJECT(terminal));
+}
+
+/**
+ * vte_terminal_get_has_selection:
+ * @terminal: a #VteTerminal
+ *
+ * Checks if the terminal currently contains selected text. Note that this
+ * is different from determining if the terminal is the owner of any
+ * #GtkClipboard items.
+ *
+ * Returns: %TRUE if part of the text in the terminal is selected.
+ */
+gboolean
+vte_terminal_get_has_selection(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+ return terminal->pvt->has_selection;
+}
+
+/**
+ * vte_terminal_get_using_xft:
+ * @terminal: a #VteTerminal
+ *
+ * A #VteTerminal can use multiple methods to draw text. This function
+ * allows an application to determine whether or not the current method uses
+ * fontconfig to find fonts. This setting cannot be changed by the caller,
+ * but in practice usually matches the behavior of GTK+ itself.
+ *
+ * Returns: %TRUE
+ *
+ * Deprecated: 0.20
+ */
+gboolean
+vte_terminal_get_using_xft(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), TRUE);
+ return TRUE;
+}
+
+static void
+vte_terminal_set_cursor_blinks_internal(VteTerminal *terminal, gboolean blink)
+{
+ VteTerminalPrivate *pvt = terminal->pvt;
+
+ blink = !!blink;
+ if (pvt->cursor_blinks == blink)
+ return;
+
+ pvt->cursor_blinks = blink;
+ _vte_check_cursor_blink (terminal);
+}
+
+/**
+ * vte_terminal_set_cursor_blinks:
+ * @terminal: a #VteTerminal
+ * @blink: whether the cursor should blink
+ *
+ * Sets whether or not the cursor will blink.
+ *
+ * Deprecated: 0.17.1 Use vte_terminal_set_cursor_blink_mode() instead.
+ */
+void
+vte_terminal_set_cursor_blinks(VteTerminal *terminal, gboolean blink)
+{
+ vte_terminal_set_cursor_blink_mode(terminal, blink ? VTE_CURSOR_BLINK_ON : VTE_CURSOR_BLINK_OFF);
+}
+
+/**
+ * vte_terminal_set_cursor_blink_mode:
+ * @terminal: a #VteTerminal
+ * @mode: the #VteTerminalCursorBlinkMode to use
+ *
+ * Sets whether or not the cursor will blink. Using %VTE_CURSOR_BLINK_SYSTEM
+ * will use the #GtkSettings::gtk-cursor-blink setting.
+ *
+ * Since: 0.17.1
+ */
+void
+vte_terminal_set_cursor_blink_mode(VteTerminal *terminal, VteTerminalCursorBlinkMode mode)
+{
+ VteTerminalPrivate *pvt;
+ gboolean blinks;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ pvt = terminal->pvt;
+
+ if (pvt->cursor_blink_mode == mode)
+ return;
+
+ pvt->cursor_blink_mode = mode;
+
+ switch (mode) {
+ case VTE_CURSOR_BLINK_SYSTEM:
+ g_object_get(gtk_widget_get_settings(GTK_WIDGET(terminal)),
+ "gtk-cursor-blink", &blinks,
+ NULL);
+ break;
+ case VTE_CURSOR_BLINK_ON:
+ blinks = TRUE;
+ break;
+ case VTE_CURSOR_BLINK_OFF:
+ blinks = FALSE;
+ break;
+ }
+
+ vte_terminal_set_cursor_blinks_internal(terminal, blinks);
+
+ g_object_notify(G_OBJECT(terminal), "cursor-blink-mode");
+}
+
+/**
+ * vte_terminal_get_cursor_blink_mode:
+ * @terminal: a #VteTerminal
+ *
+ * Returns the currently set cursor blink mode.
+ *
+ * Return value: cursor blink mode.
+ *
+ * Since: 0.17.1
+ */
+VteTerminalCursorBlinkMode
+vte_terminal_get_cursor_blink_mode(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), VTE_CURSOR_BLINK_SYSTEM);
+
+ return terminal->pvt->cursor_blink_mode;
+}
+
+/**
+ * vte_terminal_set_cursor_shape:
+ * @terminal: a #VteTerminal
+ * @shape: the #VteTerminalCursorShape to use
+ *
+ * Sets the shape of the cursor drawn.
+ *
+ * Since: 0.20
+ */
+void
+vte_terminal_set_cursor_shape(VteTerminal *terminal, VteTerminalCursorShape shape)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ pvt = terminal->pvt;
+
+ if (pvt->cursor_shape == shape)
+ return;
+
+ pvt->cursor_shape = shape;
+ _vte_invalidate_cursor_once(terminal, FALSE);
+
+ g_object_notify(G_OBJECT(terminal), "cursor-shape");
+}
+
+/**
+ * vte_terminal_get_cursor_shape:
+ * @terminal: a #VteTerminal
+ *
+ * Returns the currently set cursor shape.
+ *
+ * Return value: cursor shape.
+ *
+ * Since: 0.17.6
+ */
+VteTerminalCursorShape
+vte_terminal_get_cursor_shape(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), VTE_CURSOR_SHAPE_BLOCK);
+
+ return terminal->pvt->cursor_shape;
+}
+
+/**
+ * vte_terminal_set_scrollback_lines:
+ * @terminal: a #VteTerminal
+ * @lines: the length of the history buffer
+ *
+ * Sets the length of the scrollback buffer used by the terminal. The size of
+ * the scrollback buffer will be set to the larger of this value and the number
+ * of visible rows the widget can display, so 0 can safely be used to disable
+ * scrollback.
+ *
+ * A negative value means "infinite scrollback".
+ *
+ * Note that this setting only affects the normal screen buffer.
+ * For terminal types which have an alternate screen buffer, no scrollback is
+ * allowed on the alternate screen buffer.
+ */
+void
+vte_terminal_set_scrollback_lines(VteTerminal *terminal, glong lines)
+{
+ VteTerminalPrivate *pvt;
+ GObject *object;
+ glong scroll_delta;
+ VteScreen *screen;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ if (lines < 0)
+ lines = G_MAXLONG;
+
+ object = G_OBJECT(terminal);
+ pvt = terminal->pvt;
+
+#if 0
+ /* FIXME: this breaks the scrollbar range, bug #562511 */
+ if (lines == pvt->scrollback_lines)
+ return;
+#endif
+
+ g_object_freeze_notify(object);
+
+ _vte_debug_print (VTE_DEBUG_MISC,
+ "Setting scrollback lines to %ld\n", lines);
+
+ pvt->scrollback_lines = lines;
+ screen = pvt->screen;
+ scroll_delta = screen->scroll_delta;
+
+ /* The main screen gets the full scrollback buffer, but the
+ * alternate screen isn't allowed to scroll at all. */
+ if (screen == &terminal->pvt->normal_screen) {
+ glong low, high, next;
+ /* We need at least as many lines as are visible */
+ lines = MAX (lines, terminal->row_count);
+ next = MAX (screen->cursor_current.row + 1,
+ _vte_ring_next (screen->row_data));
+ _vte_ring_resize (screen->row_data, lines);
+ low = _vte_ring_delta (screen->row_data);
+ high = lines + MIN (G_MAXLONG - lines, low - terminal->row_count + 1);
+ screen->insert_delta = CLAMP (screen->insert_delta, low, high);
+ scroll_delta = CLAMP (scroll_delta, low, screen->insert_delta);
+ next = MIN (next, screen->insert_delta + terminal->row_count);
+ if (_vte_ring_next (screen->row_data) > next){
+ _vte_ring_shrink (screen->row_data, next - low);
+ }
+ } else {
+ _vte_ring_resize (screen->row_data, terminal->row_count);
+ scroll_delta = _vte_ring_delta (screen->row_data);
+ screen->insert_delta = _vte_ring_delta (screen->row_data);
+ if (_vte_ring_next (screen->row_data) > screen->insert_delta + terminal->row_count){
+ _vte_ring_shrink (screen->row_data, terminal->row_count);
+ }
+ }
+
+ /* Adjust the scrollbars to the new locations. */
+ vte_terminal_queue_adjustment_value_changed (terminal, scroll_delta);
+ _vte_terminal_adjust_adjustments_full (terminal);
+
+ g_object_notify(object, "scrollback-lines");
+
+ g_object_thaw_notify(object);
+}
+
+/**
+ * vte_terminal_set_word_chars:
+ * @terminal: a #VteTerminal
+ * @spec: a specification
+ *
+ * When the user double-clicks to start selection, the terminal will extend
+ * the selection on word boundaries. It will treat characters included in @spec
+ * as parts of words, and all other characters as word separators. Ranges of
+ * characters can be specified by separating them with a hyphen.
+ *
+ * As a special case, if @spec is %NULL or the empty string, the terminal will
+ * treat all graphic non-punctuation non-space characters as word characters.
+ */
+void
+vte_terminal_set_word_chars(VteTerminal *terminal, const char *spec)
+{
+ VteConv conv;
+ gunichar *wbuf;
+ guchar *ibuf, *ibufptr, *obuf, *obufptr;
+ gsize ilen, olen;
+ VteWordCharRange range;
+ guint i;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ /* Allocate a new range array. */
+ if (terminal->pvt->word_chars != NULL) {
+ g_array_free(terminal->pvt->word_chars, TRUE);
+ }
+ terminal->pvt->word_chars = g_array_new(FALSE, TRUE,
+ sizeof(VteWordCharRange));
+ /* Special case: if spec is NULL, try to do the right thing. */
+ if (spec == NULL || spec[0] == '\0') {
+ g_object_notify(G_OBJECT(terminal), "word-chars");
+ return;
+ }
+ /* Convert the spec from UTF-8 to a string of gunichars . */
+ /* FIXME: why not just directly use g_utf8_to_ucs4 here? It'll never fail */
+ conv = _vte_conv_open(VTE_CONV_GUNICHAR_TYPE, "UTF-8");
+ if (conv == VTE_INVALID_CONV) {
+ /* Aaargh. We're screwed. */
+ g_warning(_("_vte_conv_open() failed setting word characters"));
+ return;
+ }
+ ilen = strlen(spec);
+ ibuf = ibufptr = (guchar *)g_strdup(spec);
+ olen = (ilen + 1) * sizeof(gunichar);
+ _vte_buffer_set_minimum_size(terminal->pvt->conv_buffer, olen);
+ obuf = obufptr = terminal->pvt->conv_buffer->data;
+ wbuf = (gunichar*) obuf;
+ wbuf[ilen] = '\0';
+ _vte_conv(conv, (const guchar **)&ibuf, &ilen, &obuf, &olen);
+ _vte_conv_close(conv);
+ for (i = 0; i < ((obuf - obufptr) / sizeof(gunichar)); i++) {
+ /* The hyphen character. */
+ if (wbuf[i] == '-') {
+ range.start = wbuf[i];
+ range.end = wbuf[i];
+ g_array_append_val(terminal->pvt->word_chars, range);
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Word charset includes hyphen.\n");
+ continue;
+ }
+ /* A single character, not the start of a range. */
+ if ((wbuf[i] != '-') && (wbuf[i + 1] != '-')) {
+ range.start = wbuf[i];
+ range.end = wbuf[i];
+ g_array_append_val(terminal->pvt->word_chars, range);
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Word charset includes `%lc'.\n",
+ (wint_t) wbuf[i]);
+ continue;
+ }
+ /* The start of a range. */
+ if ((wbuf[i] != '-') &&
+ (wbuf[i + 1] == '-') &&
+ (wbuf[i + 2] != '-') &&
+ (wbuf[i + 2] != 0)) {
+ range.start = wbuf[i];
+ range.end = wbuf[i + 2];
+ g_array_append_val(terminal->pvt->word_chars, range);
+ _vte_debug_print(VTE_DEBUG_MISC,
+ "Word charset includes range from "
+ "`%lc' to `%lc'.\n", (wint_t) wbuf[i],
+ (wint_t) wbuf[i + 2]);
+ i += 2;
+ continue;
+ }
+ }
+ g_free(ibufptr);
+
+ g_object_notify(G_OBJECT(terminal), "word-chars");
+}
+
+/**
+ * vte_terminal_set_backspace_binding:
+ * @terminal: a #VteTerminal
+ * @binding: a #VteTerminalEraseBinding for the backspace key
+ *
+ * Modifies the terminal's backspace key binding, which controls what
+ * string or control sequence the terminal sends to its child when the user
+ * presses the backspace key.
+ */
+void
+vte_terminal_set_backspace_binding(VteTerminal *terminal,
+ VteTerminalEraseBinding binding)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ if (binding == pvt->backspace_binding)
+ return;
+
+ /* FIXME: should we set the pty mode to match? */
+ pvt->backspace_binding = binding;
+
+ g_object_notify(G_OBJECT(terminal), "backspace-binding");
+}
+
+/**
+ * vte_terminal_set_delete_binding:
+ * @terminal: a #VteTerminal
+ * @binding: a #VteTerminalEraseBinding for the delete key
+ *
+ * Modifies the terminal's delete key binding, which controls what
+ * string or control sequence the terminal sends to its child when the user
+ * presses the delete key.
+ */
+void
+vte_terminal_set_delete_binding(VteTerminal *terminal,
+ VteTerminalEraseBinding binding)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ if (binding == pvt->delete_binding)
+ return;
+
+ pvt->delete_binding = binding;
+
+ g_object_notify(G_OBJECT(terminal), "delete-binding");
+}
+
+/**
+ * vte_terminal_set_mouse_autohide:
+ * @terminal: a #VteTerminal
+ * @setting: whether the mouse pointer should autohide
+ *
+ * Changes the value of the terminal's mouse autohide setting. When autohiding
+ * is enabled, the mouse cursor will be hidden when the user presses a key and
+ * shown when the user moves the mouse. This setting can be read using
+ * vte_terminal_get_mouse_autohide().
+ */
+void
+vte_terminal_set_mouse_autohide(VteTerminal *terminal, gboolean setting)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ setting = setting != FALSE;
+ if (setting == pvt->mouse_autohide)
+ return;
+
+ pvt->mouse_autohide = setting;
+
+ g_object_notify(G_OBJECT(terminal), "pointer-autohide");
+}
+
+/**
+ * vte_terminal_get_mouse_autohide:
+ * @terminal: a #VteTerminal
+ *
+ * Determines the value of the terminal's mouse autohide setting. When
+ * autohiding is enabled, the mouse cursor will be hidden when the user presses
+ * a key and shown when the user moves the mouse. This setting can be changed
+ * using vte_terminal_set_mouse_autohide().
+ *
+ * Returns: %TRUE if autohiding is enabled, %FALSE if not
+ */
+gboolean
+vte_terminal_get_mouse_autohide(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+ return terminal->pvt->mouse_autohide;
+}
+
+/**
+ * vte_terminal_reset:
+ * @terminal: a #VteTerminal
+ * @clear_tabstops: whether to reset tabstops
+ * @clear_history: whether to empty the terminal's scrollback buffer
+ *
+ * Resets as much of the terminal's internal state as possible, discarding any
+ * unprocessed input data, resetting character attributes, cursor state,
+ * national character set state, status line, terminal modes (insert/delete),
+ * selection state, and encoding.
+ *
+ */
+void
+vte_terminal_reset(VteTerminal *terminal,
+ gboolean clear_tabstops,
+ gboolean clear_history)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ pvt = terminal->pvt;
+
+ g_object_freeze_notify(G_OBJECT(terminal));
+
+ /* Stop processing any of the data we've got backed up. */
+ vte_terminal_stop_processing (terminal);
+
+ /* Clear the input and output buffers. */
+ _vte_incoming_chunks_release (pvt->incoming);
+ pvt->incoming = NULL;
+ g_array_set_size(pvt->pending, 0);
+ _vte_buffer_clear(pvt->outgoing);
+ /* Reset charset substitution state. */
+ _vte_iso2022_state_free(pvt->iso2022);
+ pvt->iso2022 = _vte_iso2022_state_new(NULL,
+ &_vte_terminal_codeset_changed_cb,
+ terminal);
+ _vte_iso2022_state_set_codeset(pvt->iso2022,
+ pvt->encoding);
+ /* Reset keypad/cursor/function key modes. */
+ pvt->keypad_mode = VTE_KEYMODE_NORMAL;
+ pvt->cursor_mode = VTE_KEYMODE_NORMAL;
+ pvt->sun_fkey_mode = FALSE;
+ pvt->hp_fkey_mode = FALSE;
+ pvt->legacy_fkey_mode = FALSE;
+ pvt->vt220_fkey_mode = FALSE;
+ /* Enable meta-sends-escape. */
+ pvt->meta_sends_escape = TRUE;
+ /* Disable smooth scroll. */
+ pvt->smooth_scroll = FALSE;
+ /* Disable margin bell. */
+ pvt->margin_bell = FALSE;
+ /* Enable iso2022/NRC processing. */
+ pvt->nrc_mode = TRUE;
+ /* Reset saved settings. */
+ if (pvt->dec_saved != NULL) {
+ g_hash_table_destroy(pvt->dec_saved);
+ pvt->dec_saved = g_hash_table_new(NULL, NULL);
+ }
+ /* Reset the color palette. */
+ /* vte_terminal_set_default_colors(terminal); */
+ /* Reset the default attributes. Reset the alternate attribute because
+ * it's not a real attribute, but we need to treat it as one here. */
+ pvt->screen = &pvt->alternate_screen;
+ _vte_terminal_set_default_attributes(terminal);
+ pvt->screen = &pvt->normal_screen;
+ _vte_terminal_set_default_attributes(terminal);
+ /* Reset alternate charset mode. */
+ pvt->normal_screen.alternate_charset = FALSE;
+ pvt->alternate_screen.alternate_charset = FALSE;
+ /* Clear the scrollback buffers and reset the cursors. */
+ if (clear_history) {
+ _vte_ring_fini(pvt->normal_screen.row_data);
+ _vte_ring_init(pvt->normal_screen.row_data, pvt->scrollback_lines);
+ _vte_ring_fini(pvt->alternate_screen.row_data);
+ _vte_ring_init(pvt->alternate_screen.row_data, terminal->row_count);
+ pvt->normal_screen.cursor_saved.row = 0;
+ pvt->normal_screen.cursor_saved.col = 0;
+ pvt->normal_screen.cursor_current.row = 0;
+ pvt->normal_screen.cursor_current.col = 0;
+ pvt->normal_screen.scroll_delta = 0;
+ pvt->normal_screen.insert_delta = 0;
+ pvt->alternate_screen.cursor_saved.row = 0;
+ pvt->alternate_screen.cursor_saved.col = 0;
+ pvt->alternate_screen.cursor_current.row = 0;
+ pvt->alternate_screen.cursor_current.col = 0;
+ pvt->alternate_screen.scroll_delta = 0;
+ pvt->alternate_screen.insert_delta = 0;
+ _vte_terminal_adjust_adjustments_full (terminal);
+ }
+ /* Clear the status lines. */
+ pvt->normal_screen.status_line = FALSE;
+ pvt->normal_screen.status_line_changed = FALSE;
+ if (pvt->normal_screen.status_line_contents != NULL) {
+ g_string_free(pvt->normal_screen.status_line_contents,
+ TRUE);
+ }
+ pvt->normal_screen.status_line_contents = g_string_new(NULL);
+ pvt->alternate_screen.status_line = FALSE;
+ pvt->alternate_screen.status_line_changed = FALSE;
+ if (pvt->alternate_screen.status_line_contents != NULL) {
+ g_string_free(pvt->alternate_screen.status_line_contents,
+ TRUE);
+ }
+ pvt->alternate_screen.status_line_contents = g_string_new(NULL);
+ /* Do more stuff we refer to as a "full" reset. */
+ if (clear_tabstops) {
+ vte_terminal_set_default_tabstops(terminal);
+ }
+ /* Reset restricted scrolling regions, leave insert mode, make
+ * the cursor visible again. */
+ pvt->normal_screen.scrolling_restricted = FALSE;
+ pvt->normal_screen.sendrecv_mode = TRUE;
+ pvt->normal_screen.insert_mode = FALSE;
+ pvt->normal_screen.linefeed_mode = FALSE;
+ pvt->normal_screen.origin_mode = FALSE;
+ pvt->normal_screen.reverse_mode = FALSE;
+ pvt->normal_screen.bracketed_paste_mode = FALSE;
+ pvt->alternate_screen.scrolling_restricted = FALSE;
+ pvt->alternate_screen.sendrecv_mode = TRUE;
+ pvt->alternate_screen.insert_mode = FALSE;
+ pvt->alternate_screen.linefeed_mode = FALSE;
+ pvt->alternate_screen.origin_mode = FALSE;
+ pvt->alternate_screen.reverse_mode = FALSE;
+ pvt->alternate_screen.bracketed_paste_mode = FALSE;
+ pvt->cursor_visible = TRUE;
+ /* Reset the encoding. */
+ vte_terminal_set_encoding(terminal, NULL);
+ g_assert(pvt->encoding != NULL);
+ /* Reset selection. */
+ vte_terminal_deselect_all(terminal);
+ pvt->has_selection = FALSE;
+ pvt->selecting = FALSE;
+ pvt->selecting_restart = FALSE;
+ pvt->selecting_had_delta = FALSE;
+ if (pvt->selection != NULL) {
+ g_free(pvt->selection);
+ pvt->selection = NULL;
+ memset(&pvt->selection_origin, 0,
+ sizeof(&pvt->selection_origin));
+ memset(&pvt->selection_last, 0,
+ sizeof(&pvt->selection_last));
+ memset(&pvt->selection_start, 0,
+ sizeof(&pvt->selection_start));
+ memset(&pvt->selection_end, 0,
+ sizeof(&pvt->selection_end));
+ }
+ /* Reset mouse motion events. */
+ pvt->mouse_tracking_mode = MOUSE_TRACKING_NONE;
+ pvt->mouse_last_button = 0;
+ pvt->mouse_last_x = 0;
+ pvt->mouse_last_y = 0;
+ /* Clear modifiers. */
+ pvt->modifiers = 0;
+ /* Cause everything to be redrawn (or cleared). */
+ vte_terminal_maybe_scroll_to_bottom(terminal);
+ _vte_invalidate_all(terminal);
+
+ g_object_thaw_notify(G_OBJECT(terminal));
+}
+
+/**
+ * vte_terminal_get_status_line:
+ * @terminal: a #VteTerminal
+ *
+ * Some terminal emulations specify a status line which is separate from the
+ * main display area, and define a means for applications to move the cursor
+ * to the status line and back.
+ *
+ * Returns: (transfer none): the current contents of the terminal's status line.
+ * For terminals like "xterm", this will usually be the empty string. The string
+ * must not be modified or freed by the caller.
+ */
+const char *
+vte_terminal_get_status_line(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ return terminal->pvt->screen->status_line_contents->str;
+}
+
+/**
+ * vte_terminal_get_padding:
+ * @terminal: a #VteTerminal
+ * @xpad: address in which to store left/right-edge padding
+ * @ypad: address in which to store top/bottom-edge ypadding
+ *
+ * Determines the amount of additional space the widget is using to pad the
+ * edges of its visible area. This is necessary for cases where characters in
+ * the selected font don't themselves include a padding area and the text
+ * itself would otherwise be contiguous with the window border. Applications
+ * which use the widget's %row_count, %column_count, %char_height, and
+ * %char_width fields to set geometry hints using
+ * gtk_window_set_geometry_hints() will need to add this value to the base
+ * size. The values returned in @xpad and @ypad are the total padding used in
+ * each direction, and do not need to be doubled.
+ *
+ * Deprecated: 0.26: Get the #VteTerminal:inner-border style property instead
+ */
+void
+vte_terminal_get_padding(VteTerminal *terminal, int *xpad, int *ypad)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(xpad != NULL);
+ g_return_if_fail(ypad != NULL);
+ *xpad = terminal->pvt->inner_border.left + terminal->pvt->inner_border.right;
+ *ypad = terminal->pvt->inner_border.top + terminal->pvt->inner_border.bottom;
+}
+
+/**
+ * vte_terminal_get_adjustment:
+ * @terminal: a #VteTerminal
+ *
+ * An accessor function provided for the benefit of language bindings.
+ *
+ * Returns: (transfer none): the contents of @terminal's adjustment field
+ *
+ * Deprecated: 0.28: Use gtk_scrollable_get_vadjustment() instead
+ */
+GtkAdjustment *
+vte_terminal_get_adjustment(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ return terminal->adjustment;
+}
+
+/**
+ * vte_terminal_get_char_width:
+ * @terminal: a #VteTerminal
+ *
+ * Returns: the width of a character cell
+ */
+glong
+vte_terminal_get_char_width(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+ vte_terminal_ensure_font (terminal);
+ return terminal->char_width;
+}
+
+/**
+ * vte_terminal_get_char_height:
+ * @terminal: a #VteTerminal
+ *
+ * Returns: the height of a character cell
+ */
+glong
+vte_terminal_get_char_height(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+ vte_terminal_ensure_font (terminal);
+ return terminal->char_height;
+}
+
+/**
+ * vte_terminal_get_char_descent:
+ * @terminal: a #VteTerminal
+ *
+ * An accessor function provided for the benefit of language bindings.
+ *
+ * Returns: the contents of @terminal's char_descent field
+ *
+ * Deprecated: 0.20
+ */
+glong
+vte_terminal_get_char_descent(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+ vte_terminal_ensure_font (terminal);
+ return terminal->char_descent;
+}
+
+/**
+ * vte_terminal_get_char_ascent:
+ * @terminal: a #VteTerminal
+ *
+ * An accessor function provided for the benefit of language bindings.
+ *
+ * Returns: the contents of @terminal's char_ascent field
+ *
+ * Deprecated: 0.20
+ */
+glong
+vte_terminal_get_char_ascent(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+ vte_terminal_ensure_font (terminal);
+ return terminal->char_ascent;
+}
+
+/**
+ * vte_terminal_get_row_count:
+ * @terminal: a #VteTerminal
+ *
+ *
+ * Returns: the number of rows
+ */
+glong
+vte_terminal_get_row_count(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+ return terminal->row_count;
+}
+
+/**
+ * vte_terminal_get_column_count:
+ * @terminal: a #VteTerminal
+ *
+ * Returns: the number of columns
+ */
+glong
+vte_terminal_get_column_count(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+ return terminal->column_count;
+}
+
+/**
+ * vte_terminal_get_window_title:
+ * @terminal: a #VteTerminal
+ *
+ * Returns: (transfer none): the window title
+ */
+const char *
+vte_terminal_get_window_title(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), "");
+ return terminal->window_title;
+}
+
+/**
+ * vte_terminal_get_icon_title:
+ * @terminal: a #VteTerminal
+ *
+ * Returns: (transfer none): the icon title
+ */
+const char *
+vte_terminal_get_icon_title(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), "");
+ return terminal->icon_title;
+}
+
+/**
+ * vte_terminal_set_pty:
+ * @terminal: a #VteTerminal
+ * @pty_master: a file descriptor of the master end of a PTY, or %-1
+ *
+ * Attach an existing PTY master side to the terminal widget. Use
+ * instead of vte_terminal_fork_command() or vte_terminal_forkpty().
+ *
+ * Since: 0.12.1
+ *
+ * Deprecated: 0.26: Use vte_pty_new_foreign() and vte_terminal_set_pty_object()
+ */
+void
+vte_terminal_set_pty(VteTerminal *terminal, int pty_master)
+{
+ VtePty *pty;
+
+ if (pty_master == -1) {
+ vte_terminal_set_pty_object(terminal, NULL);
+ return;
+ }
+
+ pty = vte_pty_new_foreign(pty_master, NULL);
+ if (pty == NULL)
+ return;
+
+ vte_terminal_set_pty_object(terminal, pty);
+ g_object_unref(pty);
+}
+
+/**
+ * vte_terminal_set_pty_object:
+ * @terminal: a #VteTerminal
+ * @pty: (allow-none): a #VtePty, or %NULL
+ *
+ * Sets @pty as the PTY to use in @terminal.
+ * Use %NULL to unset the PTY.
+ *
+ * Since: 0.26.
+ */
+void
+vte_terminal_set_pty_object(VteTerminal *terminal,
+ VtePty *pty)
+{
+ VteTerminalPrivate *pvt;
+ GObject *object;
+ long flags;
+ int pty_master;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(pty == NULL || VTE_IS_PTY(pty));
+
+ pvt = terminal->pvt;
+ if (pvt->pty == pty)
+ return;
+
+ object = G_OBJECT(terminal);
+
+ g_object_freeze_notify(object);
+
+ if (pvt->pty != NULL) {
+ _vte_terminal_disconnect_pty_read(terminal);
+ _vte_terminal_disconnect_pty_write(terminal);
+
+ if (terminal->pvt->pty_channel != NULL) {
+ g_io_channel_unref (terminal->pvt->pty_channel);
+ pvt->pty_channel = NULL;
+ }
+
+ /* Take one last shot at processing whatever data is pending,
+ * then flush the buffers in case we're about to run a new
+ * command, disconnecting the timeout. */
+ if (terminal->pvt->incoming != NULL) {
+ vte_terminal_process_incoming(terminal);
+ _vte_incoming_chunks_release (terminal->pvt->incoming);
+ terminal->pvt->incoming = NULL;
+ terminal->pvt->input_bytes = 0;
+ }
+ g_array_set_size(terminal->pvt->pending, 0);
+ vte_terminal_stop_processing (terminal);
+
+ /* Clear the outgoing buffer as well. */
+ _vte_buffer_clear(terminal->pvt->outgoing);
+
+ vte_pty_close(pvt->pty);
+ g_object_unref(pvt->pty);
+ pvt->pty = NULL;
+ }
+
+ if (pty == NULL) {
+ pvt->pty = NULL;
+ g_object_notify(object, "pty");
+ g_object_notify(object, "pty-object");
+ g_object_thaw_notify(object);
+ return;
+ }
+
+ pvt->pty = g_object_ref(pty);
+ pty_master = vte_pty_get_fd(pvt->pty);
+
+ pvt->pty_channel = g_io_channel_unix_new (pty_master);
+ g_io_channel_set_close_on_unref (pvt->pty_channel, FALSE);
+
+ /* FIXMEchpe: vte_pty_open_unix98 does the inverse ... */
+ /* Set the pty to be non-blocking. */
+ flags = fcntl(pty_master, F_GETFL);
+ if ((flags & O_NONBLOCK) == 0) {
+ fcntl(pty_master, F_SETFL, flags | O_NONBLOCK);
+ }
+
+ vte_terminal_set_size(terminal,
+ terminal->column_count,
+ terminal->row_count);
+
+ _vte_terminal_setup_utf8 (terminal);
+
+ /* Open channels to listen for input on. */
+ _vte_terminal_connect_pty_read (terminal);
+
+ g_object_notify(object, "pty");
+ g_object_notify(object, "pty-object");
+
+ g_object_thaw_notify(object);
+}
+
+/**
+ * vte_terminal_get_pty:
+ * @terminal: a #VteTerminal
+ *
+ * Returns the file descriptor of the master end of @terminal's PTY.
+ *
+ * Return value: the file descriptor, or -1 if the terminal has no PTY.
+ *
+ * Since: 0.20
+ *
+ * Deprecated: 0.26: Use vte_terminal_get_pty_object() and vte_pty_get_fd()
+ */
+int
+vte_terminal_get_pty(VteTerminal *terminal)
+{
+ VteTerminalPrivate *pvt;
+
+ g_return_val_if_fail (VTE_IS_TERMINAL (terminal), -1);
+
+ pvt = terminal->pvt;
+ if (pvt->pty != NULL)
+ return vte_pty_get_fd(pvt->pty);
+
+ return -1;
+}
+
+/**
+ * vte_terminal_get_pty_object:
+ * @terminal: a #VteTerminal
+ *
+ * Returns the #VtePty of @terminal.
+ *
+ * Returns: (transfer none): a #VtePty, or %NULL
+ *
+ * Since: 0.26
+ */
+VtePty *
+vte_terminal_get_pty_object(VteTerminal *terminal)
+{
+ g_return_val_if_fail (VTE_IS_TERMINAL (terminal), NULL);
+
+ return terminal->pvt->pty;
+}
+
+/**
+ * vte_terminal_get_child_exit_status:
+ * @terminal: a #VteTerminal
+ *
+ * Gets the exit status of the command started by vte_terminal_fork_command().
+ * See your C library's documentation for more details on how to interpret the
+ * exit status.
+ *
+ * Note that this function may only be called from the signal handler of
+ * the #VteTerminal::child-exited signal.
+ *
+ * Returns: the child's exit status
+ *
+ * Since: 0.20
+ */
+int
+vte_terminal_get_child_exit_status(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), -1);
+ return terminal->pvt->child_exit_status;
+}
+
+/* We need this bit of glue to ensure that accessible objects will always
+ * get signals. */
+void
+_vte_terminal_accessible_ref(VteTerminal *terminal)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->pvt->accessible_emit = TRUE;
+}
+
+char *
+_vte_terminal_get_selection(VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+
+ return g_strdup (terminal->pvt->selection);
+}
+
+void
+_vte_terminal_get_start_selection(VteTerminal *terminal, long *col, long *row)
+{
+ VteVisualPosition ss;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ ss = terminal->pvt->selection_start;
+
+ if (col) {
+ *col = ss.col;
+ }
+
+ if (row) {
+ *row = ss.row;
+ }
+}
+
+void
+_vte_terminal_get_end_selection(VteTerminal *terminal, long *col, long *row)
+{
+ VteVisualPosition se;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ se = terminal->pvt->selection_end;
+
+ if (col) {
+ *col = se.col;
+ }
+
+ if (row) {
+ *row = se.row;
+ }
+}
+
+void
+_vte_terminal_select_text(VteTerminal *terminal,
+ long start_col, long start_row,
+ long end_col, long end_row,
+ int start_offset, int end_offset)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ vte_terminal_deselect_all (terminal);
+
+ terminal->pvt->selection_type = selection_type_char;
+ terminal->pvt->selecting_had_delta = TRUE;
+ terminal->pvt->selection_start.col = start_col;
+ terminal->pvt->selection_start.row = start_row;
+ terminal->pvt->selection_end.col = end_col;
+ terminal->pvt->selection_end.row = end_row;
+ vte_terminal_copy_primary(terminal);
+ vte_terminal_emit_selection_changed(terminal);
+
+ _vte_invalidate_region (terminal,
+ MIN (start_col, end_col), MAX (start_col, end_col),
+ MIN (start_row, end_row), MAX (start_row, end_row),
+ FALSE);
+
+}
+
+void
+_vte_terminal_remove_selection(VteTerminal *terminal)
+{
+ vte_terminal_deselect_all (terminal);
+}
+
+static void
+_vte_terminal_select_empty_at(VteTerminal *terminal,
+ long col, long row)
+{
+ _vte_terminal_select_text(terminal, col, row, col - 1, row, 0, 0);
+}
+
+static void
+add_update_timeout (VteTerminal *terminal)
+{
+ if (update_timeout_tag == 0) {
+ _vte_debug_print (VTE_DEBUG_TIMEOUT,
+ "Starting update timeout\n");
+ update_timeout_tag =
+ g_timeout_add_full (GDK_PRIORITY_REDRAW,
+ VTE_UPDATE_TIMEOUT,
+ update_timeout, NULL,
+ NULL);
+ }
+ if (in_process_timeout == FALSE &&
+ process_timeout_tag != 0) {
+ _vte_debug_print (VTE_DEBUG_TIMEOUT,
+ "Removing process timeout\n");
+ g_source_remove (process_timeout_tag);
+ process_timeout_tag = 0;
+ }
+ if (terminal->pvt->active == NULL) {
+ _vte_debug_print (VTE_DEBUG_TIMEOUT,
+ "Adding terminal to active list\n");
+ terminal->pvt->active = active_terminals =
+ g_list_prepend (active_terminals, terminal);
+ }
+
+}
+static void
+reset_update_regions (VteTerminal *terminal)
+{
+ if (terminal->pvt->update_regions != NULL) {
+ g_slist_foreach (terminal->pvt->update_regions,
+ (GFunc)gdk_region_destroy, NULL);
+ g_slist_free (terminal->pvt->update_regions);
+ terminal->pvt->update_regions = NULL;
+ }
+ /* the invalidated_all flag also marks whether to skip processing
+ * due to the widget being invisible */
+ terminal->pvt->invalidated_all =
+ terminal->pvt->visibility_state==GDK_VISIBILITY_FULLY_OBSCURED;
+}
+
+static void
+remove_from_active_list (VteTerminal *terminal)
+{
+ if (terminal->pvt->active != NULL
+ && terminal->pvt->update_regions == NULL) {
+ _vte_debug_print(VTE_DEBUG_TIMEOUT,
+ "Removing terminal from active list\n");
+ active_terminals = g_list_delete_link (active_terminals,
+ terminal->pvt->active);
+ terminal->pvt->active = NULL;
+
+ if (active_terminals == NULL) {
+ if (in_process_timeout == FALSE &&
+ process_timeout_tag != 0) {
+ _vte_debug_print(VTE_DEBUG_TIMEOUT,
+ "Removing process timeout\n");
+ g_source_remove (process_timeout_tag);
+ process_timeout_tag = 0;
+ }
+ if (in_update_timeout == FALSE &&
+ update_timeout_tag != 0) {
+ _vte_debug_print(VTE_DEBUG_TIMEOUT,
+ "Removing update timeout\n");
+ g_source_remove (update_timeout_tag);
+ update_timeout_tag = 0;
+ }
+ }
+ }
+}
+static void
+remove_update_timeout (VteTerminal *terminal)
+{
+ reset_update_regions (terminal);
+ remove_from_active_list (terminal);
+}
+
+static void
+vte_terminal_add_process_timeout (VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_TIMEOUT,
+ "Adding terminal to active list\n");
+ terminal->pvt->active = active_terminals =
+ g_list_prepend (active_terminals, terminal);
+ if (update_timeout_tag == 0 &&
+ process_timeout_tag == 0) {
+ _vte_debug_print(VTE_DEBUG_TIMEOUT,
+ "Starting process timeout\n");
+ process_timeout_tag =
+ g_timeout_add (VTE_DISPLAY_TIMEOUT,
+ process_timeout, NULL);
+ }
+}
+static inline gboolean
+vte_terminal_is_processing (VteTerminal *terminal)
+{
+ return terminal->pvt->active != NULL;
+}
+static inline void
+vte_terminal_start_processing (VteTerminal *terminal)
+{
+ if (!vte_terminal_is_processing (terminal)) {
+ vte_terminal_add_process_timeout (terminal);
+ }
+}
+
+static void
+vte_terminal_stop_processing (VteTerminal *terminal)
+{
+ remove_from_active_list (terminal);
+}
+
+static inline gboolean
+need_processing (VteTerminal *terminal)
+{
+ return _vte_incoming_chunks_length (terminal->pvt->incoming) != 0;
+}
+
+/* Emit an "icon-title-changed" signal. */
+static void
+vte_terminal_emit_icon_title_changed(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `icon-title-changed'.\n");
+ g_signal_emit_by_name(terminal, "icon-title-changed");
+}
+
+/* Emit a "window-title-changed" signal. */
+static void
+vte_terminal_emit_window_title_changed(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `window-title-changed'.\n");
+ g_signal_emit_by_name(terminal, "window-title-changed");
+}
+
+static void
+vte_terminal_emit_pending_signals(VteTerminal *terminal)
+{
+ GObject *object;
+ GdkWindow *window;
+
+ object = G_OBJECT (terminal);
+ window = gtk_widget_get_window (&terminal->widget);
+
+ g_object_freeze_notify(object);
+
+ vte_terminal_emit_adjustment_changed (terminal);
+
+ if (terminal->pvt->screen->status_line_changed) {
+ _vte_terminal_emit_status_line_changed (terminal);
+ terminal->pvt->screen->status_line_changed = FALSE;
+ }
+
+ if (terminal->pvt->window_title_changed) {
+ g_free (terminal->window_title);
+ terminal->window_title = terminal->pvt->window_title_changed;
+ terminal->pvt->window_title_changed = NULL;
+
+ if (window)
+ gdk_window_set_title (window, terminal->window_title);
+ vte_terminal_emit_window_title_changed(terminal);
+ g_object_notify(object, "window-title");
+ }
+
+ if (terminal->pvt->icon_title_changed) {
+ g_free (terminal->icon_title);
+ terminal->icon_title = terminal->pvt->icon_title_changed;
+ terminal->pvt->icon_title_changed = NULL;
+
+ if (window)
+ gdk_window_set_icon_name (window, terminal->icon_title);
+ vte_terminal_emit_icon_title_changed(terminal);
+ g_object_notify(object, "icon-title");
+ }
+
+ /* Flush any pending "inserted" signals. */
+ vte_terminal_emit_cursor_moved(terminal);
+ vte_terminal_emit_pending_text_signals(terminal, 0);
+ vte_terminal_emit_contents_changed (terminal);
+
+ g_object_thaw_notify(object);
+}
+
+static void time_process_incoming (VteTerminal *terminal)
+{
+ gdouble elapsed;
+ glong target;
+ g_timer_reset (process_timer);
+ vte_terminal_process_incoming (terminal);
+ elapsed = g_timer_elapsed (process_timer, NULL) * 1000;
+ target = VTE_MAX_PROCESS_TIME / elapsed * terminal->pvt->input_bytes;
+ terminal->pvt->max_input_bytes =
+ (terminal->pvt->max_input_bytes + target) / 2;
+}
+
+
+/* This function is called after DISPLAY_TIMEOUT ms.
+ * It makes sure initial output is never delayed by more than DISPLAY_TIMEOUT
+ */
+static gboolean
+process_timeout (gpointer data)
+{
+ GList *l, *next;
+ gboolean again;
+
+ GDK_THREADS_ENTER();
+
+ in_process_timeout = TRUE;
+
+ _vte_debug_print (VTE_DEBUG_WORK, "<");
+ _vte_debug_print (VTE_DEBUG_TIMEOUT,
+ "Process timeout: %d active\n",
+ g_list_length (active_terminals));
+
+ for (l = active_terminals; l != NULL; l = next) {
+ VteTerminal *terminal = l->data;
+ gboolean active = FALSE;
+
+ next = g_list_next (l);
+
+ if (l != active_terminals) {
+ _vte_debug_print (VTE_DEBUG_WORK, "T");
+ }
+ if (terminal->pvt->pty_channel != NULL) {
+ if (terminal->pvt->pty_input_active ||
+ terminal->pvt->pty_input_source == 0) {
+ terminal->pvt->pty_input_active = FALSE;
+ vte_terminal_io_read (terminal->pvt->pty_channel,
+ G_IO_IN, terminal);
+ }
+ _vte_terminal_enable_input_source (terminal);
+ }
+ if (need_processing (terminal)) {
+ active = TRUE;
+ if (VTE_MAX_PROCESS_TIME) {
+ time_process_incoming (terminal);
+ } else {
+ vte_terminal_process_incoming(terminal);
+ }
+ terminal->pvt->input_bytes = 0;
+ } else
+ vte_terminal_emit_pending_signals (terminal);
+ if (!active && terminal->pvt->update_regions == NULL) {
+ if (terminal->pvt->active != NULL) {
+ _vte_debug_print(VTE_DEBUG_TIMEOUT,
+ "Removing terminal from active list [process]\n");
+ active_terminals = g_list_delete_link (
+ active_terminals,
+ terminal->pvt->active);
+ terminal->pvt->active = NULL;
+ }
+ }
+ }
+
+ _vte_debug_print (VTE_DEBUG_WORK, ">");
+
+ if (active_terminals && update_timeout_tag == 0) {
+ again = TRUE;
+ } else {
+ _vte_debug_print(VTE_DEBUG_TIMEOUT,
+ "Stoping process timeout\n");
+ process_timeout_tag = 0;
+ again = FALSE;
+ }
+
+ in_process_timeout = FALSE;
+
+ GDK_THREADS_LEAVE();
+
+ if (again) {
+ /* Force us to relinquish the CPU as the child is running
+ * at full tilt and making us run to keep up...
+ */
+ g_usleep (0);
+ } else if (update_timeout_tag == 0) {
+ /* otherwise free up memory used to capture incoming data */
+ prune_chunks (10);
+ }
+
+ return again;
+}
+
+
+static gboolean
+update_regions (VteTerminal *terminal)
+{
+ GSList *l;
+ GdkRegion *region;
+ GdkWindow *window;
+
+ if (G_UNLIKELY (! gtk_widget_is_drawable (&terminal->widget)
+ || terminal->pvt->visibility_state == GDK_VISIBILITY_FULLY_OBSCURED)) {
+ reset_update_regions (terminal);
+ return FALSE;
+ }
+
+ if (G_UNLIKELY (!terminal->pvt->update_regions))
+ return FALSE;
+
+
+ l = terminal->pvt->update_regions;
+ if (g_slist_next (l) != NULL) {
+ /* amalgamate into one super-region */
+ region = gdk_region_new ();
+ do {
+ gdk_region_union (region, l->data);
+ gdk_region_destroy (l->data);
+ } while ((l = g_slist_next (l)) != NULL);
+ } else {
+ region = l->data;
+ }
+ g_slist_free (terminal->pvt->update_regions);
+ terminal->pvt->update_regions = NULL;
+ terminal->pvt->invalidated_all = FALSE;
+
+ /* and perform the merge with the window visible area */
+ window = gtk_widget_get_window (&terminal->widget);
+ gdk_window_invalidate_region (window, region, FALSE);
+ gdk_window_process_updates (window, FALSE);
+ gdk_region_destroy (region);
+
+ _vte_debug_print (VTE_DEBUG_WORK, "-");
+
+ return TRUE;
+}
+
+static gboolean
+update_repeat_timeout (gpointer data)
+{
+ GList *l, *next;
+ gboolean again;
+
+ GDK_THREADS_ENTER();
+
+ in_update_timeout = TRUE;
+
+ _vte_debug_print (VTE_DEBUG_WORK, "[");
+ _vte_debug_print (VTE_DEBUG_TIMEOUT,
+ "Repeat timeout: %d active\n",
+ g_list_length (active_terminals));
+
+ for (l = active_terminals; l != NULL; l = next) {
+ VteTerminal *terminal = l->data;
+
+ next = g_list_next (l);
+
+ if (l != active_terminals) {
+ _vte_debug_print (VTE_DEBUG_WORK, "T");
+ }
+ if (terminal->pvt->pty_channel != NULL) {
+ if (terminal->pvt->pty_input_active ||
+ terminal->pvt->pty_input_source == 0) {
+ terminal->pvt->pty_input_active = FALSE;
+ vte_terminal_io_read (terminal->pvt->pty_channel,
+ G_IO_IN, terminal);
+ }
+ _vte_terminal_enable_input_source (terminal);
+ }
+ if (terminal->pvt->bg_update_pending) {
+ vte_terminal_background_update (terminal);
+ }
+ vte_terminal_emit_adjustment_changed (terminal);
+ if (need_processing (terminal)) {
+ if (VTE_MAX_PROCESS_TIME) {
+ time_process_incoming (terminal);
+ } else {
+ vte_terminal_process_incoming (terminal);
+ }
+ terminal->pvt->input_bytes = 0;
+ } else
+ vte_terminal_emit_pending_signals (terminal);
+
+ again = update_regions (terminal);
+ if (!again) {
+ if (terminal->pvt->active != NULL) {
+ _vte_debug_print(VTE_DEBUG_TIMEOUT,
+ "Removing terminal from active list [update]\n");
+ active_terminals = g_list_delete_link (
+ active_terminals,
+ terminal->pvt->active);
+ terminal->pvt->active = NULL;
+ }
+ }
+ }
+
+
+ if (active_terminals != NULL) {
+ /* remove the idle source, and draw non-Terminals
+ * (except for gdk/{directfb,quartz}!)
+ */
+ gdk_window_process_all_updates ();
+ }
+
+ _vte_debug_print (VTE_DEBUG_WORK, "]");
+
+ /* We only stop the timer if no update request was received in this
+ * past cycle.
+ */
+ again = TRUE;
+ if (active_terminals == NULL) {
+ _vte_debug_print(VTE_DEBUG_TIMEOUT,
+ "Stoping update timeout\n");
+ update_timeout_tag = 0;
+ again = FALSE;
+ }
+
+ in_update_timeout = FALSE;
+
+ GDK_THREADS_LEAVE();
+
+ if (again) {
+ /* Force us to relinquish the CPU as the child is running
+ * at full tilt and making us run to keep up...
+ */
+ g_usleep (0);
+ } else {
+ /* otherwise free up memory used to capture incoming data */
+ prune_chunks (10);
+ }
+
+ return again;
+}
+
+static gboolean
+update_timeout (gpointer data)
+{
+ GList *l, *next;
+ gboolean redraw = FALSE;
+
+ GDK_THREADS_ENTER();
+
+ in_update_timeout = TRUE;
+
+ _vte_debug_print (VTE_DEBUG_WORK, "{");
+ _vte_debug_print (VTE_DEBUG_TIMEOUT,
+ "Update timeout: %d active\n",
+ g_list_length (active_terminals));
+
+ if (process_timeout_tag != 0) {
+ _vte_debug_print(VTE_DEBUG_TIMEOUT,
+ "Removing process timeout\n");
+ g_source_remove (process_timeout_tag);
+ process_timeout_tag = 0;
+ }
+
+ for (l = active_terminals; l != NULL; l = next) {
+ VteTerminal *terminal = l->data;
+
+ next = g_list_next (l);
+
+ if (l != active_terminals) {
+ _vte_debug_print (VTE_DEBUG_WORK, "T");
+ }
+ if (terminal->pvt->pty_channel != NULL) {
+ if (terminal->pvt->pty_input_active ||
+ terminal->pvt->pty_input_source == 0) {
+ terminal->pvt->pty_input_active = FALSE;
+ vte_terminal_io_read (terminal->pvt->pty_channel,
+ G_IO_IN, terminal);
+ }
+ _vte_terminal_enable_input_source (terminal);
+ }
+ if (terminal->pvt->bg_update_pending) {
+ vte_terminal_background_update (terminal);
+ }
+ vte_terminal_emit_adjustment_changed (terminal);
+ if (need_processing (terminal)) {
+ if (VTE_MAX_PROCESS_TIME) {
+ time_process_incoming (terminal);
+ } else {
+ vte_terminal_process_incoming (terminal);
+ }
+ terminal->pvt->input_bytes = 0;
+ } else
+ vte_terminal_emit_pending_signals (terminal);
+
+ redraw |= update_regions (terminal);
+ }
+
+ if (redraw) {
+ /* remove the idle source, and draw non-Terminals
+ * (except for gdk/{directfb,quartz}!)
+ */
+ gdk_window_process_all_updates ();
+ }
+
+ _vte_debug_print (VTE_DEBUG_WORK, "}");
+
+ /* Set a timer such that we do not invalidate for a while. */
+ /* This limits the number of times we draw to ~40fps. */
+ update_timeout_tag =
+ g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE,
+ VTE_UPDATE_REPEAT_TIMEOUT,
+ update_repeat_timeout, NULL,
+ NULL);
+ in_update_timeout = FALSE;
+
+ GDK_THREADS_LEAVE();
+
+ return FALSE;
+}
+
+/**
+ * vte_terminal_write_contents:
+ * @terminal: a #VteTerminal
+ * @stream: a #GOutputStream to write to
+ * @flags: a set of #VteTerminalWriteFlags
+ * @cancellable: (allow-none): a #GCancellable object, or %NULL
+ * @error: (allow-none): a #GError location to store the error occuring, or %NULL
+ *
+ * Write contents of the current contents of @terminal (including any
+ * scrollback history) to @stream according to @flags.
+ *
+ * If @cancellable is not %NULL, then the operation can be cancelled by triggering
+ * the cancellable object from another thread. If the operation was cancelled,
+ * the error %G_IO_ERROR_CANCELLED will be returned in @error.
+ *
+ * This is a synchronous operation and will make the widget (and input
+ * processing) during the write operation, which may take a long time
+ * depending on scrollback history and @stream availability for writing.
+ *
+ * Returns: %TRUE on success, %FALSE if there was an error
+ *
+ * Since: 0.24
+ */
+gboolean
+vte_terminal_write_contents (VteTerminal *terminal,
+ GOutputStream *stream,
+ VteTerminalWriteFlags flags,
+ GCancellable *cancellable,
+ GError **error)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+ g_return_val_if_fail(G_IS_OUTPUT_STREAM(stream), FALSE);
+ return _vte_ring_write_contents (terminal->pvt->screen->row_data,
+ stream, flags,
+ cancellable, error);
+}
+
+
+/*
+ * Buffer search
+ */
+
+/* TODO Add properties & signals */
+
+/**
+ * vte_terminal_search_set_gregex:
+ * @terminal: a #VteTerminal
+ * @regex: (allow-none): a #GRegex, or %NULL
+ *
+ * Sets the #GRegex regex to search for. Unsets the search regex when passed %NULL.
+ *
+ * Since: 0.26
+ */
+void
+vte_terminal_search_set_gregex (VteTerminal *terminal,
+ GRegex *regex)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ if (terminal->pvt->search_regex == regex)
+ return;
+
+ if (terminal->pvt->search_regex) {
+ g_regex_unref (terminal->pvt->search_regex);
+ terminal->pvt->search_regex = NULL;
+ }
+
+ if (regex)
+ terminal->pvt->search_regex = g_regex_ref (regex);
+
+ _vte_invalidate_all (terminal);
+}
+
+/**
+ * vte_terminal_search_get_gregex:
+ * @terminal: a #VteTerminal
+ *
+ * Returns: (transfer none): the search #GRegex regex set in @terminal, or %NULL
+ *
+ * Since: 0.26
+ */
+GRegex *
+vte_terminal_search_get_gregex (VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+
+ return terminal->pvt->search_regex;
+}
+
+/**
+ * vte_terminal_search_set_wrap_around:
+ * @terminal: a #VteTerminal
+ * @wrap_around: whether search should wrap
+ *
+ * Sets whether search should wrap around to the beginning of the
+ * terminal content when reaching its end.
+ *
+ * Since: 0.26
+ */
+void
+vte_terminal_search_set_wrap_around (VteTerminal *terminal,
+ gboolean wrap_around)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ terminal->pvt->search_wrap_around = !!wrap_around;
+}
+
+/**
+ * vte_terminal_search_get_wrap_around:
+ * @terminal: a #VteTerminal
+ *
+ * Returns: whether searching will wrap around
+ *
+ * Since: 0.26
+ */
+gboolean
+vte_terminal_search_get_wrap_around (VteTerminal *terminal)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+
+ return terminal->pvt->search_wrap_around;
+}
+
+static gboolean
+vte_terminal_search_rows (VteTerminal *terminal,
+ long start_row,
+ long end_row,
+ gboolean backward)
+{
+ VteTerminalPrivate *pvt;
+ char *row_text;
+ GMatchInfo *match_info;
+ GError *error = NULL;
+ int start, end;
+ long start_col, end_col;
+ gchar *word;
+ VteCharAttributes *ca;
+ GArray *attrs;
+ gdouble value, page_size;
+
+ pvt = terminal->pvt;
+
+ row_text = vte_terminal_get_text_range (terminal, start_row, 0, end_row, -1, NULL, NULL, NULL);
+
+ g_regex_match_full (pvt->search_regex, row_text, -1, 0, G_REGEX_MATCH_NOTEMPTY, &match_info, &error);
+ if (error) {
+ g_printerr ("Error while matching: %s\n", error->message);
+ g_error_free (error);
+ g_match_info_free (match_info);
+ g_free (row_text);
+ return TRUE;
+ }
+
+ if (!g_match_info_matches (match_info)) {
+ g_match_info_free (match_info);
+ g_free (row_text);
+ return FALSE;
+ }
+
+ word = g_match_info_fetch (match_info, 0);
+
+ /* Fetch text again, with attributes */
+ g_free (row_text);
+ if (!pvt->search_attrs)
+ pvt->search_attrs = g_array_new (FALSE, TRUE, sizeof (VteCharAttributes));
+ attrs = pvt->search_attrs;
+ row_text = vte_terminal_get_text_range (terminal, start_row, 0, end_row, -1, NULL, NULL, attrs);
+
+ /* This gives us the offset in the buffer */
+ g_match_info_fetch_pos (match_info, 0, &start, &end);
+
+ ca = &g_array_index (attrs, VteCharAttributes, start);
+ start_row = ca->row;
+ start_col = ca->column;
+ ca = &g_array_index (attrs, VteCharAttributes, end - 1);
+ end_row = ca->row;
+ end_col = ca->column;
+
+ g_free (word);
+ g_free (row_text);
+ g_match_info_free (match_info);
+
+ _vte_terminal_select_text (terminal, start_col, start_row, end_col, end_row, 0, 0);
+ /* Quite possibly the math here should not access adjustment directly... */
+ value = gtk_adjustment_get_value(terminal->adjustment);
+ page_size = gtk_adjustment_get_page_size(terminal->adjustment);
+ if (backward) {
+ if (end_row < value || end_row >= value + page_size)
+ vte_terminal_queue_adjustment_value_changed_clamped (terminal, end_row - page_size +
1);
+ } else {
+ if (start_row < value || start_row >= value + page_size)
+ vte_terminal_queue_adjustment_value_changed_clamped (terminal, start_row);
+ }
+
+ return TRUE;
+}
+
+static gboolean
+vte_terminal_search_rows_iter (VteTerminal *terminal,
+ long start_row,
+ long end_row,
+ gboolean backward)
+{
+ const VteRowData *row;
+ long iter_start_row, iter_end_row;
+
+ if (backward) {
+ iter_start_row = end_row;
+ while (iter_start_row > start_row) {
+ iter_end_row = iter_start_row;
+
+ do {
+ iter_start_row--;
+ row = _vte_terminal_find_row_data (terminal, iter_start_row);
+ } while (row && row->attr.soft_wrapped);
+
+ if (vte_terminal_search_rows (terminal, iter_start_row, iter_end_row, backward))
+ return TRUE;
+ }
+ } else {
+ iter_end_row = start_row;
+ while (iter_end_row < end_row) {
+ iter_start_row = iter_end_row;
+
+ do {
+ row = _vte_terminal_find_row_data (terminal, iter_end_row);
+ iter_end_row++;
+ } while (row && row->attr.soft_wrapped);
+
+ if (vte_terminal_search_rows (terminal, iter_start_row, iter_end_row, backward))
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+static gboolean
+vte_terminal_search_find (VteTerminal *terminal,
+ gboolean backward)
+{
+ VteTerminalPrivate *pvt;
+ long buffer_start_row, buffer_end_row;
+ long last_start_row, last_end_row;
+
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+
+ pvt = terminal->pvt;
+ if (!pvt->search_regex)
+ return FALSE;
+
+ /* TODO
+ * Currently We only find one result per extended line, and ignore columns
+ * Moreover, the whole search thing is implemented very inefficiently.
+ */
+
+ buffer_start_row = _vte_ring_delta (terminal->pvt->screen->row_data);
+ buffer_end_row = _vte_ring_next (terminal->pvt->screen->row_data);
+
+ if (pvt->has_selection) {
+ last_start_row = pvt->selection_start.row;
+ last_end_row = pvt->selection_end.row + 1;
+ } else {
+ last_start_row = pvt->screen->scroll_delta + terminal->row_count;
+ last_end_row = pvt->screen->scroll_delta;
+ }
+ last_start_row = MAX (buffer_start_row, last_start_row);
+ last_end_row = MIN (buffer_end_row, last_end_row);
+
+ /* If search fails, we make an empty selection at the last searched
+ * position... */
+ if (backward) {
+ if (vte_terminal_search_rows_iter (terminal, buffer_start_row, last_start_row, backward))
+ return TRUE;
+ if (pvt->search_wrap_around &&
+ vte_terminal_search_rows_iter (terminal, last_end_row, buffer_end_row, backward))
+ return TRUE;
+ if (pvt->has_selection) {
+ if (pvt->search_wrap_around)
+ _vte_terminal_select_empty_at (terminal,
+ pvt->selection_start.col,
+ pvt->selection_start.row);
+ else
+ _vte_terminal_select_empty_at (terminal,
+ -1,
+ buffer_start_row - 1);
+ }
+ } else {
+ if (vte_terminal_search_rows_iter (terminal, last_end_row, buffer_end_row, backward))
+ return TRUE;
+ if (pvt->search_wrap_around &&
+ vte_terminal_search_rows_iter (terminal, buffer_start_row, last_start_row, backward))
+ return TRUE;
+ if (pvt->has_selection) {
+ if (pvt->search_wrap_around)
+ _vte_terminal_select_empty_at (terminal,
+ pvt->selection_end.col + 1,
+ pvt->selection_end.row);
+ else
+ _vte_terminal_select_empty_at (terminal,
+ -1,
+ buffer_end_row);
+ }
+ }
+
+ return FALSE;
+}
+
+/**
+ * vte_terminal_search_find_previous:
+ * @terminal: a #VteTerminal
+ *
+ * Searches the previous string matching the search regex set with
+ * vte_terminal_search_set_gregex().
+ *
+ * Returns: %TRUE if a match was found
+ *
+ * Since: 0.26
+ */
+gboolean
+vte_terminal_search_find_previous (VteTerminal *terminal)
+{
+ return vte_terminal_search_find (terminal, TRUE);
+}
+
+/**
+ * vte_terminal_search_find_next:
+ * @terminal: a #VteTerminal
+ *
+ * Searches the next string matching the search regex set with
+ * vte_terminal_search_set_gregex().
+ *
+ * Returns: %TRUE if a match was found
+ *
+ * Since: 0.26
+ */
+gboolean
+vte_terminal_search_find_next (VteTerminal *terminal)
+{
+ return vte_terminal_search_find (terminal, FALSE);
+}
diff --git a/vte/src/vte.h b/vte/src/vte.h
new file mode 100644
index 0000000..4e514a1
--- /dev/null
+++ b/vte/src/vte.h
@@ -0,0 +1,533 @@
+/*
+ * Copyright (C) 2001,2002,2003,2009,2010 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef vte_vte_h_included
+#define vte_vte_h_included
+
+#include <glib.h>
+#include <gio/gio.h>
+#include <pango/pango.h>
+#include <gtk/gtk.h>
+
+#define __VTE_VTE_H_INSIDE__ 1
+
+#include "vtepty.h"
+#include "vtetypebuiltins.h"
+#include "vteversion.h"
+
+#undef __VTE_VTE_H_INSIDE__
+
+G_BEGIN_DECLS
+
+#ifdef VTE_SEAL_ENABLE
+#define _VTE_SEAL(name) _vte_sealed__ ## name
+#else
+#define _VTE_SEAL(name) name
+#endif
+
+#ifdef VTE_DISABLE_DEPRECATED
+#define _VTE_DEPRECATED(name) _vte_deprecated__ ## name
+#else
+#define _VTE_DEPRECATED(name) name
+#endif
+
+#define VTE_TYPE_TERMINAL (vte_terminal_get_type())
+#define VTE_TERMINAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VTE_TYPE_TERMINAL, VteTerminal))
+#define VTE_TERMINAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VTE_TYPE_TERMINAL,
VteTerminalClass))
+#define VTE_IS_TERMINAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VTE_TYPE_TERMINAL))
+#define VTE_IS_TERMINAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VTE_TYPE_TERMINAL))
+#define VTE_TERMINAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VTE_TYPE_TERMINAL,
VteTerminalClass))
+
+typedef struct _VteTerminal VteTerminal;
+typedef struct _VteTerminalPrivate VteTerminalPrivate;
+typedef struct _VteTerminalClass VteTerminalClass;
+typedef struct _VteTerminalClassPrivate VteTerminalClassPrivate;
+
+/**
+ * VteTerminal:
+ *
+ * All of these fields should be considered read-only and deprecated.
+ */
+struct _VteTerminal {
+ GtkWidget widget;
+ /*< private >*/
+ GtkAdjustment *_VTE_SEAL(adjustment); /* Scrolling adjustment. */
+
+ /* Metric and sizing data. */
+ glong _VTE_SEAL(char_width), _VTE_SEAL(char_height); /* dimensions of character cells */
+ glong _VTE_SEAL(char_ascent), _VTE_SEAL(char_descent); /* important font metrics */
+ glong _VTE_SEAL(row_count), _VTE_SEAL(column_count); /* dimensions of the window */
+
+ /* Titles. */
+ char *_VTE_SEAL(window_title);
+ char *_VTE_SEAL(icon_title);
+
+ /*< private >*/
+ VteTerminalPrivate *pvt;
+};
+
+/**
+ * VteTerminalClass:
+ *
+ * All of these fields should be considered read-only, except for derived classes.
+ */
+struct _VteTerminalClass {
+ /*< public > */
+ /* Inherited parent class. */
+ GtkWidgetClass parent_class;
+
+ /*< protected > */
+ /* Default signal handlers. */
+ void (*eof)(VteTerminal* terminal);
+ void (*child_exited)(VteTerminal* terminal);
+ void (*emulation_changed)(VteTerminal* terminal);
+ void (*encoding_changed)(VteTerminal* terminal);
+ void (*char_size_changed)(VteTerminal* terminal, guint char_width, guint char_height);
+ void (*window_title_changed)(VteTerminal* terminal);
+ void (*icon_title_changed)(VteTerminal* terminal);
+ void (*selection_changed)(VteTerminal* terminal);
+ void (*contents_changed)(VteTerminal* terminal);
+ void (*cursor_moved)(VteTerminal* terminal);
+ void (*status_line_changed)(VteTerminal* terminal);
+ void (*commit)(VteTerminal* terminal, const gchar *text, guint size);
+
+ void (*deiconify_window)(VteTerminal* terminal);
+ void (*iconify_window)(VteTerminal* terminal);
+ void (*raise_window)(VteTerminal* terminal);
+ void (*lower_window)(VteTerminal* terminal);
+ void (*refresh_window)(VteTerminal* terminal);
+ void (*restore_window)(VteTerminal* terminal);
+ void (*maximize_window)(VteTerminal* terminal);
+ void (*resize_window)(VteTerminal* terminal, guint width, guint height);
+ void (*move_window)(VteTerminal* terminal, guint x, guint y);
+
+ void (*increase_font_size)(VteTerminal* terminal);
+ void (*decrease_font_size)(VteTerminal* terminal);
+
+ void (*text_modified)(VteTerminal* terminal);
+ void (*text_inserted)(VteTerminal* terminal);
+ void (*text_deleted)(VteTerminal* terminal);
+ void (*text_scrolled)(VteTerminal* terminal, gint delta);
+ void (*copy_clipboard)(VteTerminal* terminal);
+ void (*paste_clipboard)(VteTerminal* terminal);
+
+#if !GTK_CHECK_VERSION (2, 91, 2)
+ void (* set_scroll_adjustments) (GtkWidget *widget,
+ GtkAdjustment *hadjustment,
+ GtkAdjustment *vadjustment);
+#endif
+
+ void (*beep)(VteTerminal* terminal);
+
+#if GTK_CHECK_VERSION (2, 99, 0)
+ /* Padding for future expansion. */
+ gpointer padding[16];
+#else
+ /* Padding for future expansion. */
+ void (*vte_reserved3)(void);
+ void (*vte_reserved4)(void);
+
+ /*< private > */
+ /* Signals we might emit. */
+ guint _VTE_DEPRECATED(eof_signal);
+ guint _VTE_DEPRECATED(child_exited_signal);
+ guint _VTE_DEPRECATED(emulation_changed_signal);
+ guint _VTE_DEPRECATED(encoding_changed_signal);
+ guint _VTE_DEPRECATED(char_size_changed_signal);
+ guint _VTE_DEPRECATED(window_title_changed_signal);
+ guint _VTE_DEPRECATED(icon_title_changed_signal);
+ guint _VTE_DEPRECATED(selection_changed_signal);
+ guint _VTE_DEPRECATED(contents_changed_signal);
+ guint _VTE_DEPRECATED(cursor_moved_signal);
+ guint _VTE_DEPRECATED(status_line_changed_signal);
+ guint _VTE_DEPRECATED(commit_signal);
+ guint _VTE_DEPRECATED(deiconify_window_signal);
+ guint _VTE_DEPRECATED(iconify_window_signal);
+ guint _VTE_DEPRECATED(raise_window_signal);
+ guint _VTE_DEPRECATED(lower_window_signal);
+ guint _VTE_DEPRECATED(refresh_window_signal);
+ guint _VTE_DEPRECATED(restore_window_signal);
+ guint _VTE_DEPRECATED(maximize_window_signal);
+ guint _VTE_DEPRECATED(resize_window_signal);
+ guint _VTE_DEPRECATED(move_window_signal);
+ guint _VTE_DEPRECATED(increase_font_size_signal);
+ guint _VTE_DEPRECATED(decrease_font_size_signal);
+ guint _VTE_DEPRECATED(text_modified_signal);
+ guint _VTE_DEPRECATED(text_inserted_signal);
+ guint _VTE_DEPRECATED(text_deleted_signal);
+ guint _VTE_DEPRECATED(text_scrolled_signal);
+ guint _VTE_DEPRECATED(reserved1);
+ guint _VTE_DEPRECATED(reserved2);
+ guint _VTE_DEPRECATED(reserved3);
+ guint _VTE_DEPRECATED(reserved4);
+ guint _VTE_DEPRECATED(reserved5);
+ guint _VTE_DEPRECATED(reserved6);
+#endif
+
+#if GTK_CHECK_VERSION (2, 99, 0)
+ VteTerminalClassPrivate *priv;
+#endif
+};
+
+/**
+ * VteTerminalEraseBinding:
+ * @VTE_ERASE_AUTO: For backspace, attempt to determine the right value from the terminal's IO settings.
For delete, use the control sequence.
+ * @VTE_ERASE_ASCII_BACKSPACE: Send an ASCII backspace character (0x08).
+ * @VTE_ERASE_ASCII_DELETE: Send an ASCII delete character (0x7F).
+ * @VTE_ERASE_DELETE_SEQUENCE: Send the "@@7" control sequence.
+ * @VTE_ERASE_TTY: Send terminal's "erase" setting.
+ *
+ * An enumerated type which can be used to indicate which string the terminal
+ * should send to an application when the user presses the Delete or Backspace
+ * keys.
+ */
+typedef enum {
+ VTE_ERASE_AUTO,
+ VTE_ERASE_ASCII_BACKSPACE,
+ VTE_ERASE_ASCII_DELETE,
+ VTE_ERASE_DELETE_SEQUENCE,
+ VTE_ERASE_TTY
+} VteTerminalEraseBinding;
+
+/**
+ * VteTerminalCursorBlinkMode:
+ * @VTE_CURSOR_BLINK_SYSTEM: Follow GTK+ settings for cursor blinking.
+ * @VTE_CURSOR_BLINK_ON: Cursor blinks.
+ * @VTE_CURSOR_BLINK_OFF: Cursor does not blink.
+ *
+ * An enumerated type which can be used to indicate the cursor blink mode
+ * for the terminal.
+ */
+typedef enum {
+ VTE_CURSOR_BLINK_SYSTEM,
+ VTE_CURSOR_BLINK_ON,
+ VTE_CURSOR_BLINK_OFF
+} VteTerminalCursorBlinkMode;
+
+/**
+ * VteTerminalCursorShape:
+ * @VTE_CURSOR_SHAPE_BLOCK: Draw a block cursor. This is the default.
+ * @VTE_CURSOR_SHAPE_IBEAM: Draw a vertical bar on the left side of character.
+ * This is similar to the default cursor for other GTK+ widgets.
+ * @VTE_CURSOR_SHAPE_UNDERLINE: Draw a horizontal bar below the character.
+ *
+ * An enumerated type which can be used to indicate what should the terminal
+ * draw at the cursor position.
+ */
+typedef enum {
+ VTE_CURSOR_SHAPE_BLOCK,
+ VTE_CURSOR_SHAPE_IBEAM,
+ VTE_CURSOR_SHAPE_UNDERLINE
+} VteTerminalCursorShape;
+
+/* The structure we return as the supplemental attributes for strings. */
+struct _VteCharAttributes {
+ /*< private >*/
+ long row, column;
+ GdkColor fore, back;
+ guint underline:1, strikethrough:1;
+};
+typedef struct _VteCharAttributes VteCharAttributes;
+
+/* The name of the same structure in the 0.10 series, for API compatibility. */
+struct vte_char_attributes {
+ /*< private >*/
+ long row, column;
+ GdkColor fore, back;
+ guint underline:1, strikethrough:1;
+};
+
+typedef gboolean (*VteSelectionFunc)(VteTerminal *terminal,
+ glong column,
+ glong row,
+ gpointer data);
+
+/* The widget's type. */
+GType vte_terminal_get_type(void);
+
+GtkWidget *vte_terminal_new(void);
+
+VtePty *vte_terminal_pty_new (VteTerminal *terminal,
+ VtePtyFlags flags,
+ GError **error);
+
+void vte_terminal_watch_child (VteTerminal *terminal,
+ GPid child_pid);
+
+gboolean vte_terminal_fork_command_full(VteTerminal *terminal,
+ VtePtyFlags pty_flags,
+ const char *working_directory,
+ char **argv,
+ char **envv,
+ GSpawnFlags spawn_flags,
+ GSpawnChildSetupFunc child_setup,
+ gpointer child_setup_data,
+ GPid *child_pid /* out */,
+ GError **error);
+
+/* Send data to the terminal to display, or to the terminal's forked command
+ * to handle in some way. If it's 'cat', they should be the same. */
+void vte_terminal_feed(VteTerminal *terminal, const char *data, glong length);
+void vte_terminal_feed_child(VteTerminal *terminal, const char *text, glong length);
+void vte_terminal_feed_child_binary(VteTerminal *terminal, const char *data, glong length);
+
+/* Copy currently-selected text to the clipboard, or from the clipboard to
+ * the terminal. */
+void vte_terminal_copy_clipboard(VteTerminal *terminal);
+void vte_terminal_paste_clipboard(VteTerminal *terminal);
+void vte_terminal_copy_primary(VteTerminal *terminal);
+void vte_terminal_paste_primary(VteTerminal *terminal);
+
+/* simple manipulation of selection */
+void vte_terminal_select_all(VteTerminal *terminal);
+void vte_terminal_select_none(VteTerminal *terminal);
+
+/* Set the terminal's size. */
+void vte_terminal_set_size(VteTerminal *terminal,
+ glong columns, glong rows);
+
+/* Set various on-off settings. */
+void vte_terminal_set_audible_bell(VteTerminal *terminal, gboolean is_audible);
+gboolean vte_terminal_get_audible_bell(VteTerminal *terminal);
+void vte_terminal_set_visible_bell(VteTerminal *terminal, gboolean is_visible);
+gboolean vte_terminal_get_visible_bell(VteTerminal *terminal);
+void vte_terminal_set_scroll_background(VteTerminal *terminal, gboolean scroll);
+void vte_terminal_set_scroll_on_output(VteTerminal *terminal, gboolean scroll);
+void vte_terminal_set_scroll_on_keystroke(VteTerminal *terminal,
+ gboolean scroll);
+
+/* Set the color scheme. */
+void vte_terminal_set_color_dim(VteTerminal *terminal,
+ const GdkColor *dim);
+void vte_terminal_set_color_bold(VteTerminal *terminal,
+ const GdkColor *bold);
+void vte_terminal_set_color_foreground(VteTerminal *terminal,
+ const GdkColor *foreground);
+void vte_terminal_set_color_background(VteTerminal *terminal,
+ const GdkColor *background);
+void vte_terminal_set_color_cursor(VteTerminal *terminal,
+ const GdkColor *cursor_background);
+void vte_terminal_set_color_highlight(VteTerminal *terminal,
+ const GdkColor *highlight_background);
+void vte_terminal_set_colors(VteTerminal *terminal,
+ const GdkColor *foreground,
+ const GdkColor *background,
+ const GdkColor *palette,
+ glong palette_size);
+
+#if GTK_CHECK_VERSION (2, 99, 0)
+void vte_terminal_set_color_bold_rgba(VteTerminal *terminal,
+ const GdkRGBA *bold);
+void vte_terminal_set_color_dim_rgba(VteTerminal *terminal,
+ const GdkRGBA *dim);
+void vte_terminal_set_color_foreground_rgba(VteTerminal *terminal,
+ const GdkRGBA *foreground);
+void vte_terminal_set_color_background_rgba(VteTerminal *terminal,
+ const GdkRGBA *background);
+void vte_terminal_set_color_cursor_rgba(VteTerminal *terminal,
+ const GdkRGBA *cursor_background);
+void vte_terminal_set_color_highlight_rgba(VteTerminal *terminal,
+ const GdkRGBA *highlight_background);
+void vte_terminal_set_colors_rgba(VteTerminal *terminal,
+ const GdkRGBA *foreground,
+ const GdkRGBA *background,
+ const GdkRGBA *palette,
+ gsize palette_size);
+#endif
+
+void vte_terminal_set_default_colors(VteTerminal *terminal);
+
+/* Background effects. */
+void vte_terminal_set_background_image(VteTerminal *terminal, GdkPixbuf *image);
+void vte_terminal_set_background_image_file(VteTerminal *terminal,
+ const char *path);
+void vte_terminal_set_background_tint_color(VteTerminal *terminal,
+ const GdkColor *color);
+void vte_terminal_set_background_saturation(VteTerminal *terminal,
+ double saturation);
+void vte_terminal_set_background_transparent(VteTerminal *terminal,
+ gboolean transparent);
+void vte_terminal_set_opacity(VteTerminal *terminal, guint16 opacity);
+
+/* Set whether or not the cursor blinks. */
+void vte_terminal_set_cursor_blink_mode(VteTerminal *terminal,
+ VteTerminalCursorBlinkMode mode);
+VteTerminalCursorBlinkMode vte_terminal_get_cursor_blink_mode(VteTerminal *terminal);
+
+/* Set cursor shape */
+void vte_terminal_set_cursor_shape(VteTerminal *terminal,
+ VteTerminalCursorShape shape);
+VteTerminalCursorShape vte_terminal_get_cursor_shape(VteTerminal *terminal);
+
+/* Set the number of scrollback lines, above or at an internal minimum. */
+void vte_terminal_set_scrollback_lines(VteTerminal *terminal, glong lines);
+
+/* Append the input method menu items to a given shell. */
+void vte_terminal_im_append_menuitems(VteTerminal *terminal,
+ GtkMenuShell *menushell);
+
+/* Set or retrieve the current font. */
+void vte_terminal_set_font(VteTerminal *terminal,
+ const PangoFontDescription *font_desc);
+void vte_terminal_set_font_from_string(VteTerminal *terminal, const char *name);
+const PangoFontDescription *vte_terminal_get_font(VteTerminal *terminal);
+void vte_terminal_set_allow_bold(VteTerminal *terminal, gboolean allow_bold);
+gboolean vte_terminal_get_allow_bold(VteTerminal *terminal);
+
+/* Check if the terminal is the current selection owner. */
+gboolean vte_terminal_get_has_selection(VteTerminal *terminal);
+
+/* Set the list of word chars, optionally using hyphens to specify ranges
+ * (to get a hyphen, place it first), and check if a character is in the
+ * range. */
+void vte_terminal_set_word_chars(VteTerminal *terminal, const char *spec);
+gboolean vte_terminal_is_word_char(VteTerminal *terminal, gunichar c);
+
+/* Set what happens when the user strikes backspace or delete. */
+void vte_terminal_set_backspace_binding(VteTerminal *terminal,
+ VteTerminalEraseBinding binding);
+void vte_terminal_set_delete_binding(VteTerminal *terminal,
+ VteTerminalEraseBinding binding);
+
+/* Manipulate the autohide setting. */
+void vte_terminal_set_mouse_autohide(VteTerminal *terminal, gboolean setting);
+gboolean vte_terminal_get_mouse_autohide(VteTerminal *terminal);
+
+/* Reset the terminal, optionally clearing the tab stops and line history. */
+void vte_terminal_reset(VteTerminal *terminal,
+ gboolean clear_tabstops,
+ gboolean clear_history);
+
+/* Read the contents of the terminal, using a callback function to determine
+ * if a particular location on the screen (0-based) is interesting enough to
+ * include. Each byte in the returned string will have a corresponding
+ * VteCharAttributes structure in the passed GArray, if the array was not %NULL.
+ * Note that it will have one entry per byte, not per character, so indexes
+ * should match up exactly. */
+char *vte_terminal_get_text(VteTerminal *terminal,
+ VteSelectionFunc is_selected,
+ gpointer user_data,
+ GArray *attributes);
+char *vte_terminal_get_text_include_trailing_spaces(VteTerminal *terminal,
+ VteSelectionFunc is_selected,
+ gpointer user_data,
+ GArray *attributes);
+char *vte_terminal_get_text_range(VteTerminal *terminal,
+ glong start_row, glong start_col,
+ glong end_row, glong end_col,
+ VteSelectionFunc is_selected,
+ gpointer user_data,
+ GArray *attributes);
+void vte_terminal_get_cursor_position(VteTerminal *terminal,
+ glong *column, glong *row);
+/* Display string matching: clear all matching expressions. */
+void vte_terminal_match_clear_all(VteTerminal *terminal);
+
+/* Add a matching expression, returning the tag the widget assigns to that
+ * expression. */
+int vte_terminal_match_add_gregex(VteTerminal *terminal, GRegex *regex, GRegexMatchFlags flags);
+/* Set the cursor to be used when the pointer is over a given match. */
+void vte_terminal_match_set_cursor(VteTerminal *terminal, int tag,
+ GdkCursor *cursor);
+void vte_terminal_match_set_cursor_type(VteTerminal *terminal,
+ int tag, GdkCursorType cursor_type);
+void vte_terminal_match_set_cursor_name(VteTerminal *terminal,
+ int tag, const char *cursor_name);
+/* Remove a matching expression by tag. */
+void vte_terminal_match_remove(VteTerminal *terminal, int tag);
+
+/* Check if a given cell on the screen contains part of a matched string. If
+ * it does, return the string, and store the match tag in the optional tag
+ * argument. */
+char *vte_terminal_match_check(VteTerminal *terminal,
+ glong column, glong row,
+ int *tag);
+
+void vte_terminal_search_set_gregex (VteTerminal *terminal,
+ GRegex *regex);
+GRegex *vte_terminal_search_get_gregex (VteTerminal *terminal);
+void vte_terminal_search_set_wrap_around (VteTerminal *terminal,
+ gboolean wrap_around);
+gboolean vte_terminal_search_get_wrap_around (VteTerminal *terminal);
+gboolean vte_terminal_search_find_previous (VteTerminal *terminal);
+gboolean vte_terminal_search_find_next (VteTerminal *terminal);
+
+
+/* Set the emulation type. Most of the time you won't need this. */
+void vte_terminal_set_emulation(VteTerminal *terminal, const char *emulation);
+const char *vte_terminal_get_emulation(VteTerminal *terminal);
+const char *vte_terminal_get_default_emulation(VteTerminal *terminal);
+
+/* Set the character encoding. Most of the time you won't need this. */
+void vte_terminal_set_encoding(VteTerminal *terminal, const char *codeset);
+const char *vte_terminal_get_encoding(VteTerminal *terminal);
+
+/* Get the contents of the status line. */
+const char *vte_terminal_get_status_line(VteTerminal *terminal);
+
+void vte_terminal_set_pty_object(VteTerminal *terminal, VtePty *pty);
+VtePty *vte_terminal_get_pty_object(VteTerminal *terminal);
+
+char *vte_get_user_shell (void);
+
+/* Accessors for bindings. */
+#if !GTK_CHECK_VERSION (2, 91, 2)
+GtkAdjustment *vte_terminal_get_adjustment(VteTerminal *terminal);
+#endif
+
+glong vte_terminal_get_char_width(VteTerminal *terminal);
+glong vte_terminal_get_char_height(VteTerminal *terminal);
+glong vte_terminal_get_row_count(VteTerminal *terminal);
+glong vte_terminal_get_column_count(VteTerminal *terminal);
+const char *vte_terminal_get_window_title(VteTerminal *terminal);
+const char *vte_terminal_get_icon_title(VteTerminal *terminal);
+
+int vte_terminal_get_child_exit_status(VteTerminal *terminal);
+
+
+/* Writing contents out */
+
+/**
+ * VteTerminalWriteFlags:
+ * @VTE_TERMINAL_WRITE_DEFAULT: Write contents as UTF-8 text. This is the default.
+ *
+ * A flag type to determine how terminal contents should be written
+ * to an output stream.
+ */
+typedef enum {
+ VTE_TERMINAL_WRITE_DEFAULT = 0
+} VteTerminalWriteFlags;
+
+gboolean vte_terminal_write_contents (VteTerminal *terminal,
+ GOutputStream *stream,
+ VteTerminalWriteFlags flags,
+ GCancellable *cancellable,
+ GError **error);
+
+#undef _VTE_SEAL
+#undef _VTE_DEPRECATED
+
+G_END_DECLS
+
+#ifndef VTE_DISABLE_DEPRECATED
+#define __VTE_VTE_H_INSIDE__ 1
+#include "vtedeprecated.h"
+#undef __VTE_VTE_H_INSIDE__
+#endif /* VTE_DISABLE_DEPRECATED */
+
+#endif
diff --git a/vte/src/vteaccess.c b/vte/src/vteaccess.c
new file mode 100644
index 0000000..af3887f
--- /dev/null
+++ b/vte/src/vteaccess.c
@@ -0,0 +1,2126 @@
+/*
+ * Copyright (C) 2002,2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/**
+ * SECTION: vte-access
+ * @short_description: Accessibility peer of #VteTerminal
+ *
+ * The accessibility peer of a #VteTerminal, implementing GNOME's accessibility
+ * framework.
+ */
+
+#include <config.h>
+
+#include <atk/atk.h>
+#include <gtk/gtk.h>
+#include <string.h>
+#include "debug.h"
+#include "vte.h"
+#include "vteaccess.h"
+#include "vteint.h"
+#include "vte-gtk-compat.h"
+
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
+#include <glib/gi18n-lib.h>
+
+enum {
+ ACTION_MENU,
+ LAST_ACTION
+};
+
+#define VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA "VteTerminalAccessiblePrivateData"
+
+typedef struct _VteTerminalAccessiblePrivate {
+ gboolean snapshot_contents_invalid; /* This data is stale. */
+ gboolean snapshot_caret_invalid; /* This data is stale. */
+ GString *snapshot_text; /* Pointer to UTF-8 text. */
+ GArray *snapshot_characters; /* Offsets to character begin points. */
+ GArray *snapshot_attributes; /* Attributes, per byte. */
+ GArray *snapshot_linebreaks; /* Offsets to line breaks. */
+ gint snapshot_caret; /* Location of the cursor (in characters). */
+
+ char *action_descriptions[LAST_ACTION];
+} VteTerminalAccessiblePrivate;
+
+enum direction {
+ direction_previous = -1,
+ direction_current = 0,
+ direction_next = 1
+};
+
+static gunichar vte_terminal_accessible_get_character_at_offset(AtkText *text,
+ gint offset);
+static gpointer vte_terminal_accessible_parent_class;
+
+G_DEFINE_TYPE(VteTerminalAccessibleFactory, vte_terminal_accessible_factory, ATK_TYPE_OBJECT_FACTORY)
+
+static const char *vte_terminal_accessible_action_names[] = {
+ "menu",
+ NULL
+};
+
+static const char *vte_terminal_accessible_action_descriptions[] = {
+ "Popup context menu",
+ NULL
+};
+
+/* Create snapshot private data. */
+static VteTerminalAccessiblePrivate *
+vte_terminal_accessible_new_private_data(void)
+{
+ VteTerminalAccessiblePrivate *priv;
+ priv = g_slice_new0(VteTerminalAccessiblePrivate);
+ priv->snapshot_text = NULL;
+ priv->snapshot_characters = NULL;
+ priv->snapshot_attributes = NULL;
+ priv->snapshot_linebreaks = NULL;
+ priv->snapshot_caret = -1;
+ priv->snapshot_contents_invalid = TRUE;
+ priv->snapshot_caret_invalid = TRUE;
+ return priv;
+}
+
+/* Free snapshot private data. */
+static void
+vte_terminal_accessible_free_private_data(VteTerminalAccessiblePrivate *priv)
+{
+ gint i;
+
+ g_assert(priv != NULL);
+ if (priv->snapshot_text != NULL) {
+ g_string_free(priv->snapshot_text, TRUE);
+ }
+ if (priv->snapshot_characters != NULL) {
+ g_array_free(priv->snapshot_characters, TRUE);
+ }
+ if (priv->snapshot_attributes != NULL) {
+ g_array_free(priv->snapshot_attributes, TRUE);
+ }
+ if (priv->snapshot_linebreaks != NULL) {
+ g_array_free(priv->snapshot_linebreaks, TRUE);
+ }
+ for (i = 0; i < LAST_ACTION; i++) {
+ g_free (priv->action_descriptions[i]);
+ }
+ g_slice_free(VteTerminalAccessiblePrivate, priv);
+}
+
+static gint
+offset_from_xy (VteTerminalAccessiblePrivate *priv,
+ gint x, gint y)
+{
+ gint offset;
+ gint linebreak;
+ gint next_linebreak;
+
+ if (y >= (gint) priv->snapshot_linebreaks->len)
+ y = priv->snapshot_linebreaks->len -1;
+
+ linebreak = g_array_index (priv->snapshot_linebreaks, int, y);
+ if (y + 1 == (gint) priv->snapshot_linebreaks->len)
+ next_linebreak = priv->snapshot_characters->len;
+ else
+ next_linebreak = g_array_index (priv->snapshot_linebreaks, int, y + 1);
+
+ offset = linebreak + x;
+ if (offset >= next_linebreak)
+ offset = next_linebreak -1;
+ return offset;
+}
+
+static void
+xy_from_offset (VteTerminalAccessiblePrivate *priv,
+ guint offset, gint *x, gint *y)
+{
+ guint i, linebreak;
+ gint cur_x, cur_y;
+ gint cur_offset = 0;
+
+ cur_x = -1;
+ cur_y = -1;
+ for (i = 0; i < priv->snapshot_linebreaks->len; i++) {
+ linebreak = g_array_index (priv->snapshot_linebreaks, int, i);
+ if (offset < linebreak) {
+ cur_x = offset - cur_offset;
+ cur_y = i - 1;
+ break;
+
+ } else {
+ cur_offset = linebreak;
+ }
+ }
+ if (i == priv->snapshot_linebreaks->len) {
+ if (offset <= priv->snapshot_characters->len) {
+ cur_x = offset - cur_offset;
+ cur_y = i - 1;
+ }
+ }
+ *x = cur_x;
+ *y = cur_y;
+}
+
+/* "Oh yeah, that's selected. Sure." callback. */
+static gboolean
+all_selected(VteTerminal *terminal, glong column, glong row, gpointer data)
+{
+ return TRUE;
+}
+
+static void
+emit_text_caret_moved(GObject *object, glong caret)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS|VTE_DEBUG_ALLY,
+ "Accessibility peer emitting "
+ "`text-caret-moved'.\n");
+ g_signal_emit_by_name(object, "text-caret-moved", caret);
+}
+
+static void
+emit_text_changed_insert(GObject *object,
+ const char *text, glong offset, glong len)
+{
+ glong start, count;
+ if (len == 0) {
+ return;
+ }
+ /* Convert the byte offsets to character offsets. */
+ start = g_utf8_pointer_to_offset (text, text + offset);
+ count = g_utf8_pointer_to_offset (text + offset, text + offset + len);
+ _vte_debug_print(VTE_DEBUG_SIGNALS|VTE_DEBUG_ALLY,
+ "Accessibility peer emitting "
+ "`text-changed::insert' (%ld, %ld) (%ld, %ld).\n"
+ "Inserted text was `%.*s'.\n",
+ offset, len, start, count,
+ (int) len, text + offset);
+ g_signal_emit_by_name(object, "text-changed::insert", start, count);
+}
+
+static void
+emit_text_changed_delete(GObject *object,
+ const char *text, glong offset, glong len)
+{
+ glong start, count;
+ if (len == 0) {
+ return;
+ }
+ /* Convert the byte offsets to characters. */
+ start = g_utf8_pointer_to_offset (text, text + offset);
+ count = g_utf8_pointer_to_offset (text + offset, text + offset + len);
+ _vte_debug_print(VTE_DEBUG_SIGNALS|VTE_DEBUG_ALLY,
+ "Accessibility peer emitting "
+ "`text-changed::delete' (%ld, %ld) (%ld, %ld).\n"
+ "Deleted text was `%.*s'.\n",
+ offset, len, start, count,
+ (int) len, text + offset);
+ g_signal_emit_by_name(object, "text-changed::delete", start, count);
+}
+
+static void
+vte_terminal_accessible_update_private_data_if_needed(AtkObject *text,
+ char **old, glong *olen)
+{
+ VteTerminal *terminal;
+ VteTerminalAccessiblePrivate *priv;
+ struct _VteCharAttributes attrs;
+ char *next, *tmp;
+ long row, offset, caret;
+ long ccol, crow;
+ guint i;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+
+ /* Retrieve the private data structure. It must already exist. */
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ g_assert(priv != NULL);
+
+ /* If nothing's changed, just return immediately. */
+ if ((priv->snapshot_contents_invalid == FALSE) &&
+ (priv->snapshot_caret_invalid == FALSE)) {
+ if (old) {
+ if (priv->snapshot_text) {
+ *old = g_malloc(priv->snapshot_text->len + 1);
+ memcpy(*old,
+ priv->snapshot_text->str,
+ priv->snapshot_text->len);
+ (*old)[priv->snapshot_text->len] = '\0';
+ if (olen) {
+ *olen = priv->snapshot_text->len;
+ }
+ } else {
+ *old = g_strdup("");
+ if (olen) {
+ *olen = 0;
+ }
+ }
+ } else {
+ if (olen) {
+ g_assert_not_reached();
+ }
+ }
+ return;
+ }
+
+ /* Re-read the contents of the widget if the contents have changed. */
+ terminal = VTE_TERMINAL(gtk_accessible_get_widget(GTK_ACCESSIBLE(text)));
+ if (priv->snapshot_contents_invalid) {
+ /* Free the outdated snapshot data, unless the caller
+ * wants it. */
+ if (old) {
+ if (priv->snapshot_text != NULL) {
+ *old = priv->snapshot_text->str;
+ if (olen) {
+ *olen = priv->snapshot_text->len;
+ }
+ g_string_free(priv->snapshot_text, FALSE);
+ } else {
+ *old = g_strdup("");
+ if (olen) {
+ *olen = 0;
+ }
+ }
+ } else {
+ if (olen) {
+ g_assert_not_reached();
+ }
+ if (priv->snapshot_text != NULL) {
+ g_string_free(priv->snapshot_text, TRUE);
+ }
+ }
+ priv->snapshot_text = NULL;
+
+ /* Free the character offsets and allocate a new array to hold
+ * them. */
+ if (priv->snapshot_characters != NULL) {
+ g_array_free(priv->snapshot_characters, TRUE);
+ }
+ priv->snapshot_characters = g_array_new(FALSE, FALSE, sizeof(int));
+
+ /* Free the attribute lists and allocate a new array to hold
+ * them. */
+ if (priv->snapshot_attributes != NULL) {
+ g_array_free(priv->snapshot_attributes, TRUE);
+ }
+ priv->snapshot_attributes = g_array_new(FALSE, FALSE,
+ sizeof(struct _VteCharAttributes));
+
+ /* Free the linebreak offsets and allocate a new array to hold
+ * them. */
+ if (priv->snapshot_linebreaks != NULL) {
+ g_array_free(priv->snapshot_linebreaks, TRUE);
+ }
+ priv->snapshot_linebreaks = g_array_new(FALSE, FALSE, sizeof(int));
+
+ /* Get a new view of the uber-label. */
+ tmp = vte_terminal_get_text_include_trailing_spaces(terminal,
+ all_selected,
+ NULL,
+ priv->snapshot_attributes);
+ if (tmp == NULL) {
+ /* Aaargh! We're screwed. */
+ return;
+ }
+ priv->snapshot_text = g_string_new_len(tmp,
+ priv->snapshot_attributes->len);
+ g_free(tmp);
+
+ /* Get the offsets to the beginnings of each character. */
+ i = 0;
+ next = priv->snapshot_text->str;
+ while (i < priv->snapshot_attributes->len) {
+ g_array_append_val(priv->snapshot_characters, i);
+ next = g_utf8_next_char(next);
+ if (next == NULL) {
+ break;
+ } else {
+ i = next - priv->snapshot_text->str;
+ }
+ }
+ /* Find offsets for the beginning of lines. */
+ for (i = 0, row = 0; i < priv->snapshot_characters->len; i++) {
+ /* Get the attributes for the current cell. */
+ offset = g_array_index(priv->snapshot_characters,
+ int, i);
+ attrs = g_array_index(priv->snapshot_attributes,
+ struct _VteCharAttributes,
+ offset);
+ /* If this character is on a row different from the row
+ * the character we looked at previously was on, then
+ * it's a new line and we need to keep track of where
+ * it is. */
+ if ((i == 0) || (attrs.row != row)) {
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Row %d/%ld begins at %u.\n",
+ priv->snapshot_linebreaks->len,
+ attrs.row, i);
+ g_array_append_val(priv->snapshot_linebreaks, i);
+ }
+ row = attrs.row;
+ }
+ /* Add the final line break. */
+ g_array_append_val(priv->snapshot_linebreaks, i);
+ /* We're finished updating this. */
+ priv->snapshot_contents_invalid = FALSE;
+ }
+
+ /* Update the caret position. */
+ vte_terminal_get_cursor_position(terminal, &ccol, &crow);
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Cursor at (%ld, " "%ld).\n", ccol, crow);
+
+ /* Get the offsets to the beginnings of each line. */
+ caret = -1;
+ for (i = 0; i < priv->snapshot_characters->len; i++) {
+ /* Get the attributes for the current cell. */
+ offset = g_array_index(priv->snapshot_characters,
+ int, i);
+ attrs = g_array_index(priv->snapshot_attributes,
+ struct _VteCharAttributes,
+ offset);
+ /* If this cell is "before" the cursor, move the
+ * caret to be "here". */
+ if ((attrs.row < crow) ||
+ ((attrs.row == crow) && (attrs.column < ccol))) {
+ caret = i + 1;
+ }
+ }
+
+ /* If no cells are before the caret, then the caret must be
+ * at the end of the buffer. */
+ if (caret == -1) {
+ caret = priv->snapshot_characters->len;
+ }
+
+ /* Notify observers if the caret moved. */
+ if (caret != priv->snapshot_caret) {
+ priv->snapshot_caret = caret;
+ emit_text_caret_moved(G_OBJECT(text), caret);
+ }
+
+ /* Done updating the caret position, whether we needed to or not. */
+ priv->snapshot_caret_invalid = FALSE;
+
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Refreshed accessibility snapshot, "
+ "%ld cells, %ld characters.\n",
+ (long)priv->snapshot_attributes->len,
+ (long)priv->snapshot_characters->len);
+}
+
+/* A signal handler to catch "text-inserted/deleted/modified" signals. */
+static void
+vte_terminal_accessible_text_modified(VteTerminal *terminal, gpointer data)
+{
+ VteTerminalAccessiblePrivate *priv;
+ char *old, *current;
+ glong offset, caret_offset, olen, clen;
+ gint old_snapshot_caret;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(data));
+
+ priv = g_object_get_data(G_OBJECT(data),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ g_assert(priv != NULL);
+
+ old_snapshot_caret = priv->snapshot_caret;
+ priv->snapshot_contents_invalid = TRUE;
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(data),
+ &old, &olen);
+ g_assert(old != NULL);
+
+ current = priv->snapshot_text->str;
+ clen = priv->snapshot_text->len;
+
+ if ((guint) priv->snapshot_caret < priv->snapshot_characters->len) {
+ caret_offset = g_array_index(priv->snapshot_characters,
+ int, priv->snapshot_caret);
+ } else {
+ /* caret was not in the line */
+ caret_offset = clen;
+ }
+
+ /* Find the offset where they don't match. */
+ offset = 0;
+ while ((offset < olen) && (offset < clen)) {
+ if (old[offset] != current[offset]) {
+ break;
+ }
+ offset++;
+ }
+
+ /* Check if we just backspaced over a space. */
+ if ((olen == offset) &&
+ (caret_offset < olen && old[caret_offset] == ' ') &&
+ (old_snapshot_caret == priv->snapshot_caret + 1)) {
+ priv->snapshot_text->str = old;
+ priv->snapshot_text->len = caret_offset + 1;
+ emit_text_changed_delete(G_OBJECT(data),
+ old, caret_offset, 1);
+ priv->snapshot_text->str = current;
+ priv->snapshot_text->len = clen;
+ }
+
+
+ /* At least one of them had better have more data, right? */
+ if ((offset < olen) || (offset < clen)) {
+ /* Back up from both end points until we find the *last* point
+ * where they differed. */
+ gchar *op = old + olen;
+ gchar *cp = current + clen;
+ while (op > old + offset && cp > current + offset) {
+ gchar *opp = g_utf8_prev_char (op);
+ gchar *cpp = g_utf8_prev_char (cp);
+ if (g_utf8_get_char (opp) != g_utf8_get_char (cpp)) {
+ break;
+ }
+ op = opp;
+ cp = cpp;
+ }
+ /* recompute the respective lengths */
+ olen = op - old;
+ clen = cp - current;
+ /* At least one of them has to have text the other
+ * doesn't. */
+ g_assert((clen > offset) || (olen > offset));
+ g_assert((clen >= 0) && (olen >= 0));
+ /* Now emit a deleted signal for text that was in the old
+ * string but isn't in the new one... */
+ if (olen > offset) {
+ gchar *saved_str = priv->snapshot_text->str;
+ gsize saved_len = priv->snapshot_text->len;
+
+ priv->snapshot_text->str = old;
+ priv->snapshot_text->len = olen;
+ emit_text_changed_delete(G_OBJECT(data),
+ old,
+ offset,
+ olen - offset);
+ priv->snapshot_text->str = saved_str;
+ priv->snapshot_text->len = saved_len;
+ }
+ /* .. and an inserted signal for text that wasn't in the old
+ * string but is in the new one. */
+ if (clen > offset) {
+ emit_text_changed_insert(G_OBJECT(data),
+ current,
+ offset,
+ clen - offset);
+ }
+ }
+
+ g_free(old);
+}
+
+/* A signal handler to catch "text-scrolled" signals. */
+static void
+vte_terminal_accessible_text_scrolled(VteTerminal *terminal,
+ gint howmuch,
+ gpointer data)
+{
+ VteTerminalAccessiblePrivate *priv;
+ struct _VteCharAttributes attr;
+ long delta;
+ guint i, len;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(data));
+ g_assert(howmuch != 0);
+
+ priv = g_object_get_data(G_OBJECT(data),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ g_assert(priv != NULL);
+
+ if (((howmuch < 0) && (howmuch <= -terminal->row_count)) ||
+ ((howmuch > 0) && (howmuch >= terminal->row_count))) {
+ /* All of the text was removed. */
+ if (priv->snapshot_text != NULL) {
+ if (priv->snapshot_text->str != NULL) {
+ emit_text_changed_delete(G_OBJECT(data),
+ priv->snapshot_text->str,
+ 0,
+ priv->snapshot_text->len);
+ }
+ }
+ priv->snapshot_contents_invalid = TRUE;
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(data),
+ NULL,
+ NULL);
+ /* All of the present text was added. */
+ if (priv->snapshot_text != NULL) {
+ if (priv->snapshot_text->str != NULL) {
+ emit_text_changed_insert(G_OBJECT(data),
+ priv->snapshot_text->str,
+ 0,
+ priv->snapshot_text->len);
+ }
+ }
+ return;
+ }
+ /* Find the start point. */
+ delta = 0;
+ if (priv->snapshot_attributes != NULL) {
+ if (priv->snapshot_attributes->len > 0) {
+ attr = g_array_index(priv->snapshot_attributes,
+ struct _VteCharAttributes,
+ 0);
+ delta = attr.row;
+ }
+ }
+ /* We scrolled up, so text was added at the top and removed
+ * from the bottom. */
+ if ((howmuch < 0) && (howmuch > -terminal->row_count)) {
+ gboolean inserted = FALSE;
+ howmuch = -howmuch;
+ if (priv->snapshot_attributes != NULL &&
+ priv->snapshot_text != NULL) {
+ /* Find the first byte that scrolled off. */
+ for (i = 0; i < priv->snapshot_attributes->len; i++) {
+ attr = g_array_index(priv->snapshot_attributes,
+ struct _VteCharAttributes,
+ i);
+ if (attr.row >= delta + terminal->row_count - howmuch) {
+ break;
+ }
+ }
+ if (i < priv->snapshot_attributes->len) {
+ /* The rest of the string was deleted -- make a note. */
+ emit_text_changed_delete(G_OBJECT(data),
+ priv->snapshot_text->str,
+ i,
+ priv->snapshot_attributes->len - i);
+ }
+ inserted = TRUE;
+ }
+ /* Refresh. Note that i is now the length of the data which
+ * we expect to have left over. */
+ priv->snapshot_contents_invalid = TRUE;
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(data),
+ NULL,
+ NULL);
+ /* If we now have more text than before, the initial portion
+ * was added. */
+ if (inserted) {
+ len = priv->snapshot_text->len;
+ if (len > i) {
+ emit_text_changed_insert(G_OBJECT(data),
+ priv->snapshot_text->str,
+ 0,
+ len - i);
+ }
+ }
+ return;
+ }
+ /* We scrolled down, so text was added at the bottom and removed
+ * from the top. */
+ if ((howmuch > 0) && (howmuch < terminal->row_count)) {
+ gboolean inserted = FALSE;
+ if (priv->snapshot_attributes != NULL &&
+ priv->snapshot_text != NULL) {
+ /* Find the first byte that wasn't scrolled off the top. */
+ for (i = 0; i < priv->snapshot_attributes->len; i++) {
+ attr = g_array_index(priv->snapshot_attributes,
+ struct _VteCharAttributes,
+ i);
+ if (attr.row >= delta + howmuch) {
+ break;
+ }
+ }
+ /* That many bytes disappeared -- make a note. */
+ emit_text_changed_delete(G_OBJECT(data),
+ priv->snapshot_text->str,
+ 0,
+ i);
+ /* Figure out how much text was left, and refresh. */
+ i = strlen(priv->snapshot_text->str + i);
+ inserted = TRUE;
+ }
+ priv->snapshot_contents_invalid = TRUE;
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(data),
+ NULL,
+ NULL);
+ /* Any newly-added string data is new, so note that it was
+ * inserted. */
+ if (inserted) {
+ len = priv->snapshot_text->len;
+ if (len > i) {
+ emit_text_changed_insert(G_OBJECT(data),
+ priv->snapshot_text->str,
+ i,
+ len - i);
+ }
+ }
+ return;
+ }
+ g_assert_not_reached();
+}
+
+/* A signal handler to catch "cursor-moved" signals. */
+static void
+vte_terminal_accessible_invalidate_cursor(VteTerminal *terminal, gpointer data)
+{
+ VteTerminalAccessiblePrivate *priv;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(data));
+
+ priv = g_object_get_data(G_OBJECT(data),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ g_assert(priv != NULL);
+
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Invalidating accessibility cursor.\n");
+ priv->snapshot_caret_invalid = TRUE;
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(data),
+ NULL, NULL);
+}
+
+/* Handle title changes by resetting the description. */
+static void
+vte_terminal_accessible_title_changed(VteTerminal *terminal, gpointer data)
+{
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(data));
+ g_assert(VTE_IS_TERMINAL(terminal));
+ atk_object_set_description(ATK_OBJECT(data), terminal->window_title);
+}
+
+/* Reflect focus-in events. */
+static gboolean
+vte_terminal_accessible_focus_in(VteTerminal *terminal, GdkEventFocus *event,
+ gpointer data)
+{
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(data));
+ g_assert(VTE_IS_TERMINAL(terminal));
+ g_signal_emit_by_name(data, "focus-event", TRUE);
+ atk_object_notify_state_change(ATK_OBJECT(data),
+ ATK_STATE_FOCUSED, TRUE);
+
+ return FALSE;
+}
+
+/* Reflect focus-out events. */
+static gboolean
+vte_terminal_accessible_focus_out(VteTerminal *terminal, GdkEventFocus *event,
+ gpointer data)
+{
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(data));
+ g_assert(VTE_IS_TERMINAL(terminal));
+ g_signal_emit_by_name(data, "focus-event", FALSE);
+ atk_object_notify_state_change(ATK_OBJECT(data),
+ ATK_STATE_FOCUSED, FALSE);
+
+ return FALSE;
+}
+
+/* Reflect visibility-notify events. */
+static gboolean
+vte_terminal_accessible_visibility_notify(VteTerminal *terminal,
+ GdkEventVisibility *event,
+ gpointer data)
+{
+ GtkWidget *widget;
+ gboolean visible;
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(data));
+ g_assert(VTE_IS_TERMINAL(terminal));
+ visible = event->state != GDK_VISIBILITY_FULLY_OBSCURED;
+ /* The VISIBLE state indicates that this widget is "visible". */
+ atk_object_notify_state_change(ATK_OBJECT(data),
+ ATK_STATE_VISIBLE,
+ visible);
+ widget = GTK_WIDGET(terminal);
+ while (visible) {
+ if (gtk_widget_get_toplevel(widget) == widget) {
+ break;
+ }
+ if (widget == NULL) {
+ break;
+ }
+ visible = visible && (gtk_widget_get_visible(widget));
+ widget = gtk_widget_get_parent(widget);
+ }
+ /* The SHOWING state indicates that this widget, and all of its
+ * parents up to the toplevel, are "visible". */
+ atk_object_notify_state_change(ATK_OBJECT(data),
+ ATK_STATE_SHOWING,
+ visible);
+
+ return FALSE;
+}
+
+static void
+vte_terminal_accessible_selection_changed (VteTerminal *terminal,
+ gpointer data)
+{
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(data));
+ g_assert(VTE_IS_TERMINAL(terminal));
+
+ g_signal_emit_by_name (data, "text_selection_changed");
+}
+
+static void
+vte_terminal_initialize (AtkObject *obj, gpointer data)
+{
+ VteTerminal *terminal;
+ AtkObject *parent;
+
+ ATK_OBJECT_CLASS (vte_terminal_accessible_parent_class)->initialize (obj, data);
+
+ terminal = VTE_TERMINAL (data);
+
+ _vte_terminal_accessible_ref(terminal);
+
+ g_object_set_data(G_OBJECT(obj),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA,
+ vte_terminal_accessible_new_private_data());
+
+ g_signal_connect(terminal, "text-inserted",
+ G_CALLBACK(vte_terminal_accessible_text_modified),
+ obj);
+ g_signal_connect(terminal, "text-deleted",
+ G_CALLBACK(vte_terminal_accessible_text_modified),
+ obj);
+ g_signal_connect(terminal, "text-modified",
+ G_CALLBACK(vte_terminal_accessible_text_modified),
+ obj);
+ g_signal_connect(terminal, "text-scrolled",
+ G_CALLBACK(vte_terminal_accessible_text_scrolled),
+ obj);
+ g_signal_connect(terminal, "cursor-moved",
+ G_CALLBACK(vte_terminal_accessible_invalidate_cursor),
+ obj);
+ g_signal_connect(terminal, "window-title-changed",
+ G_CALLBACK(vte_terminal_accessible_title_changed),
+ obj);
+ g_signal_connect(terminal, "focus-in-event",
+ G_CALLBACK(vte_terminal_accessible_focus_in),
+ obj);
+ g_signal_connect(terminal, "focus-out-event",
+ G_CALLBACK(vte_terminal_accessible_focus_out),
+ obj);
+ g_signal_connect(terminal, "visibility-notify-event",
+ G_CALLBACK(vte_terminal_accessible_visibility_notify),
+ obj);
+ g_signal_connect(terminal, "selection-changed",
+ G_CALLBACK(vte_terminal_accessible_selection_changed),
+ obj);
+
+ if (GTK_IS_WIDGET(gtk_widget_get_parent(GTK_WIDGET(terminal)))) {
+ parent = gtk_widget_get_accessible(gtk_widget_get_parent ((GTK_WIDGET(terminal))));
+ if (ATK_IS_OBJECT(parent)) {
+ atk_object_set_parent(obj, parent);
+ }
+ }
+
+ atk_object_set_name(obj, "Terminal");
+ atk_object_set_description(obj,
+ terminal->window_title ?
+ terminal->window_title :
+ "");
+
+ atk_object_notify_state_change(obj,
+ ATK_STATE_FOCUSABLE, TRUE);
+ atk_object_notify_state_change(obj,
+ ATK_STATE_EXPANDABLE, FALSE);
+ atk_object_notify_state_change(obj,
+ ATK_STATE_RESIZABLE, TRUE);
+ obj->role = ATK_ROLE_TERMINAL;
+}
+
+/**
+ * vte_terminal_accessible_new:
+ * @terminal: a #VteTerminal
+ *
+ * Creates a new accessibility peer for the terminal widget.
+ *
+ * Returns: the new #AtkObject
+ */
+AtkObject *
+vte_terminal_accessible_new(VteTerminal *terminal)
+{
+ AtkObject *accessible;
+ GObject *object;
+
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+
+ object = g_object_new(VTE_TYPE_TERMINAL_ACCESSIBLE, NULL);
+ accessible = ATK_OBJECT (object);
+ atk_object_initialize(accessible, terminal);
+
+ return accessible;
+}
+
+static void
+vte_terminal_accessible_finalize(GObject *object)
+{
+ VteTerminalAccessiblePrivate *priv;
+ GtkAccessible *accessible = NULL;
+ GtkWidget *widget;
+
+ _vte_debug_print(VTE_DEBUG_ALLY, "Finalizing accessible peer.\n");
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(object));
+ accessible = GTK_ACCESSIBLE(object);
+ widget = gtk_accessible_get_widget (accessible);
+
+ if (widget != NULL) {
+ g_object_remove_weak_pointer(G_OBJECT(widget),
+ (gpointer*)(gpointer)&widget);
+ g_signal_handlers_disconnect_matched(widget,
+ G_SIGNAL_MATCH_FUNC |
+ G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL,
+ vte_terminal_accessible_text_modified,
+ object);
+ g_signal_handlers_disconnect_matched(widget,
+ G_SIGNAL_MATCH_FUNC |
+ G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL,
+ vte_terminal_accessible_text_scrolled,
+ object);
+ g_signal_handlers_disconnect_matched(widget,
+ G_SIGNAL_MATCH_FUNC |
+ G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL,
+ vte_terminal_accessible_invalidate_cursor,
+ object);
+ g_signal_handlers_disconnect_matched(widget,
+ G_SIGNAL_MATCH_FUNC |
+ G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL,
+ vte_terminal_accessible_title_changed,
+ object);
+ g_signal_handlers_disconnect_matched(widget,
+ G_SIGNAL_MATCH_FUNC |
+ G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL,
+ vte_terminal_accessible_focus_in,
+ object);
+ g_signal_handlers_disconnect_matched(widget,
+ G_SIGNAL_MATCH_FUNC |
+ G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL,
+ vte_terminal_accessible_focus_out,
+ object);
+ g_signal_handlers_disconnect_matched(widget,
+ G_SIGNAL_MATCH_FUNC |
+ G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL,
+ vte_terminal_accessible_visibility_notify,
+ object);
+ }
+ priv = g_object_get_data(object,
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ if (priv != NULL) {
+ vte_terminal_accessible_free_private_data(priv);
+ g_object_set_data(object,
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA,
+ NULL);
+ }
+ G_OBJECT_CLASS(vte_terminal_accessible_parent_class)->finalize(object);
+}
+
+static gchar *
+vte_terminal_accessible_get_text(AtkText *text,
+ gint start_offset, gint end_offset)
+{
+ VteTerminalAccessiblePrivate *priv;
+ int start, end;
+ gchar *ret;
+
+ /* Swap around if start is greater than end */
+ if (start_offset > end_offset && end_offset != -1) {
+ gint tmp;
+
+ tmp = start_offset;
+ start_offset = end_offset;
+ end_offset = tmp;
+ }
+
+ g_assert((start_offset >= 0) && (end_offset >= -1));
+
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Getting text from %d to %d of %d.\n",
+ start_offset, end_offset,
+ priv->snapshot_characters->len);
+ g_assert(ATK_IS_TEXT(text));
+
+ /* If the requested area is after all of the text, just return an
+ * empty string. */
+ if (start_offset >= (int) priv->snapshot_characters->len) {
+ return g_strdup("");
+ }
+
+ /* Map the offsets to, er, offsets. */
+ start = g_array_index(priv->snapshot_characters, int, start_offset);
+ if ((end_offset == -1) || (end_offset >= (int) priv->snapshot_characters->len) ) {
+ /* Get everything up to the end of the buffer. */
+ end = priv->snapshot_text->len;
+ } else {
+ /* Map the stopping point. */
+ end = g_array_index(priv->snapshot_characters, int, end_offset);
+ }
+ if (end <= start) {
+ ret = g_strdup ("");
+ } else {
+ ret = g_malloc(end - start + 1);
+ memcpy(ret, priv->snapshot_text->str + start, end - start);
+ ret[end - start] = '\0';
+ }
+ return ret;
+}
+
+/* Map a subsection of the text with before/at/after char/word/line specs
+ * into a run of Unicode characters. (The interface is specifying characters,
+ * not bytes, plus that saves us from having to deal with parts of multibyte
+ * characters, which are icky.) */
+static gchar *
+vte_terminal_accessible_get_text_somewhere(AtkText *text,
+ gint offset,
+ AtkTextBoundary boundary_type,
+ enum direction direction,
+ gint *start_offset,
+ gint *end_offset)
+{
+ VteTerminalAccessiblePrivate *priv;
+ VteTerminal *terminal;
+ gunichar current, prev, next;
+ guint start, end, line;
+
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ terminal = VTE_TERMINAL(gtk_accessible_get_widget (GTK_ACCESSIBLE(text)));
+
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Getting %s %s at %d of %d.\n",
+ (direction == direction_current) ? "this" :
+ ((direction == direction_next) ? "next" : "previous"),
+ (boundary_type == ATK_TEXT_BOUNDARY_CHAR) ? "char" :
+ ((boundary_type == ATK_TEXT_BOUNDARY_LINE_START) ? "line (start)" :
+ ((boundary_type == ATK_TEXT_BOUNDARY_LINE_END) ? "line (end)" :
+ ((boundary_type == ATK_TEXT_BOUNDARY_WORD_START) ? "word (start)" :
+ ((boundary_type == ATK_TEXT_BOUNDARY_WORD_END) ? "word (end)" :
+ ((boundary_type == ATK_TEXT_BOUNDARY_SENTENCE_START) ? "sentence (start)" :
+ ((boundary_type == ATK_TEXT_BOUNDARY_SENTENCE_END) ? "sentence (end)" :
"unknown")))))),
+ offset, priv->snapshot_attributes->len);
+ g_assert(priv->snapshot_text != NULL);
+ g_assert(priv->snapshot_characters != NULL);
+ if (offset >= (int) priv->snapshot_characters->len) {
+ return g_strdup("");
+ }
+ g_assert(offset < (int) priv->snapshot_characters->len);
+ g_assert(offset >= 0);
+
+ switch (boundary_type) {
+ case ATK_TEXT_BOUNDARY_CHAR:
+ /* We're either looking at the character at this
+ * position, the one before it, or the one after it. */
+ offset += direction;
+ start = MAX(offset, 0);
+ end = MIN(offset + 1, (int) priv->snapshot_attributes->len);
+ break;
+ case ATK_TEXT_BOUNDARY_WORD_START:
+ /* Back up to the previous non-word-word transition. */
+ while (offset > 0) {
+ prev = vte_terminal_accessible_get_character_at_offset(text, offset - 1);
+ if (vte_terminal_is_word_char(terminal, prev)) {
+ offset--;
+ } else {
+ break;
+ }
+ }
+ start = offset;
+ /* If we started in a word and we're looking for the
+ * word before this one, keep searching by backing up
+ * to the previous non-word character and then searching
+ * for the word-start before that. */
+ if (direction == direction_previous) {
+ while (offset > 0) {
+ prev = vte_terminal_accessible_get_character_at_offset(text, offset -
1);
+ if (!vte_terminal_is_word_char(terminal, prev)) {
+ offset--;
+ } else {
+ break;
+ }
+ }
+ while (offset > 0) {
+ prev = vte_terminal_accessible_get_character_at_offset(text, offset -
1);
+ if (vte_terminal_is_word_char(terminal, prev)) {
+ offset--;
+ } else {
+ break;
+ }
+ }
+ start = offset;
+ }
+ /* If we're looking for the word after this one,
+ * search forward by scanning forward for the next
+ * non-word character, then the next word character
+ * after that. */
+ if (direction == direction_next) {
+ while (offset < (int) priv->snapshot_characters->len) {
+ next = vte_terminal_accessible_get_character_at_offset(text, offset);
+ if (vte_terminal_is_word_char(terminal, next)) {
+ offset++;
+ } else {
+ break;
+ }
+ }
+ while (offset < (int) priv->snapshot_characters->len) {
+ next = vte_terminal_accessible_get_character_at_offset(text, offset);
+ if (!vte_terminal_is_word_char(terminal, next)) {
+ offset++;
+ } else {
+ break;
+ }
+ }
+ start = offset;
+ }
+ /* Now find the end of this word. */
+ while (offset < (int) priv->snapshot_characters->len) {
+ current = vte_terminal_accessible_get_character_at_offset(text, offset);
+ if (vte_terminal_is_word_char(terminal, current)) {
+ offset++;
+ } else {
+ break;
+ }
+
+ }
+ /* Now find the next non-word-word transition */
+ while (offset < (int) priv->snapshot_characters->len) {
+ next = vte_terminal_accessible_get_character_at_offset(text, offset);
+ if (!vte_terminal_is_word_char(terminal, next)) {
+ offset++;
+ } else {
+ break;
+ }
+ }
+ end = offset;
+ break;
+ case ATK_TEXT_BOUNDARY_WORD_END:
+ /* Back up to the previous word-non-word transition. */
+ current = vte_terminal_accessible_get_character_at_offset(text, offset);
+ while (offset > 0) {
+ prev = vte_terminal_accessible_get_character_at_offset(text, offset - 1);
+ if (vte_terminal_is_word_char(terminal, prev) &&
+ !vte_terminal_is_word_char(terminal, current)) {
+ break;
+ } else {
+ offset--;
+ current = prev;
+ }
+ }
+ start = offset;
+ /* If we're looking for the word end before this one,
+ * keep searching by backing up to the previous word
+ * character and then searching for the word-end
+ * before that. */
+ if (direction == direction_previous) {
+ while (offset > 0) {
+ prev = vte_terminal_accessible_get_character_at_offset(text, offset -
1);
+ if (vte_terminal_is_word_char(terminal, prev)) {
+ offset--;
+ } else {
+ break;
+ }
+ }
+ current = vte_terminal_accessible_get_character_at_offset(text, offset);
+ while (offset > 0) {
+ prev = vte_terminal_accessible_get_character_at_offset(text, offset -
1);
+ if (vte_terminal_is_word_char(terminal, prev) &&
+ !vte_terminal_is_word_char(terminal, current)) {
+ break;
+ } else {
+ offset--;
+ current = prev;
+ }
+ }
+ start = offset;
+ }
+ /* If we're looking for the word end after this one,
+ * search forward by scanning forward for the next
+ * word character, then the next non-word character
+ * after that. */
+ if (direction == direction_next) {
+ while (offset < (int) priv->snapshot_characters->len) {
+ current = vte_terminal_accessible_get_character_at_offset(text,
offset);
+ if (!vte_terminal_is_word_char(terminal, current)) {
+ offset++;
+ } else {
+ break;
+ }
+ }
+ while (offset < (int) priv->snapshot_characters->len) {
+ current = vte_terminal_accessible_get_character_at_offset(text,
offset);
+ if (vte_terminal_is_word_char(terminal, current)) {
+ offset++;
+ } else {
+ break;
+ }
+ }
+ start = offset;
+ }
+ /* Now find the next word end. */
+ while (offset < (int) priv->snapshot_characters->len) {
+ current = vte_terminal_accessible_get_character_at_offset(text, offset);
+ if (!vte_terminal_is_word_char(terminal, current)) {
+ offset++;
+ } else {
+ break;
+ }
+ }
+ while (offset < (int) priv->snapshot_characters->len) {
+ current = vte_terminal_accessible_get_character_at_offset(text, offset);
+ if (vte_terminal_is_word_char(terminal, current)) {
+ offset++;
+ } else {
+ break;
+ }
+ }
+ end = offset;
+ break;
+ case ATK_TEXT_BOUNDARY_LINE_START:
+ case ATK_TEXT_BOUNDARY_LINE_END:
+ /* Figure out which line we're on. If the start of the
+ * i'th line is before the offset, then i could be the
+ * line we're looking for. */
+ line = 0;
+ for (line = 0;
+ line < priv->snapshot_linebreaks->len;
+ line++) {
+ if (g_array_index(priv->snapshot_linebreaks,
+ int, line) > offset) {
+ line--;
+ break;
+ }
+ }
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Character %d is on line %d.\n",
+ offset, line);
+ /* Perturb the line number to handle before/at/after. */
+ line += direction;
+ line = MIN(line, priv->snapshot_linebreaks->len - 1);
+ /* Read the offsets for this line. */
+ start = g_array_index(priv->snapshot_linebreaks,
+ int, line);
+ line++;
+ line = MIN(line, priv->snapshot_linebreaks->len - 1);
+ end = g_array_index(priv->snapshot_linebreaks,
+ int, line);
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Line runs from %d to %d.\n",
+ start, end);
+ break;
+ case ATK_TEXT_BOUNDARY_SENTENCE_START:
+ case ATK_TEXT_BOUNDARY_SENTENCE_END:
+ /* This doesn't make sense. Fall through. */
+ default:
+ start = end = 0;
+ break;
+ }
+ *start_offset = start = MIN(start, priv->snapshot_characters->len - 1);
+ *end_offset = end = CLAMP(end, start, priv->snapshot_characters->len);
+ return vte_terminal_accessible_get_text(text, start, end);
+}
+
+static gchar *
+vte_terminal_accessible_get_text_before_offset(AtkText *text, gint offset,
+ AtkTextBoundary boundary_type,
+ gint *start_offset,
+ gint *end_offset)
+{
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+ return vte_terminal_accessible_get_text_somewhere(text,
+ offset,
+ boundary_type,
+ -1,
+ start_offset,
+ end_offset);
+}
+
+static gchar *
+vte_terminal_accessible_get_text_after_offset(AtkText *text, gint offset,
+ AtkTextBoundary boundary_type,
+ gint *start_offset,
+ gint *end_offset)
+{
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+ return vte_terminal_accessible_get_text_somewhere(text,
+ offset,
+ boundary_type,
+ 1,
+ start_offset,
+ end_offset);
+}
+
+static gchar *
+vte_terminal_accessible_get_text_at_offset(AtkText *text, gint offset,
+ AtkTextBoundary boundary_type,
+ gint *start_offset,
+ gint *end_offset)
+{
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+ return vte_terminal_accessible_get_text_somewhere(text,
+ offset,
+ boundary_type,
+ 0,
+ start_offset,
+ end_offset);
+}
+
+static gunichar
+vte_terminal_accessible_get_character_at_offset(AtkText *text, gint offset)
+{
+ VteTerminalAccessiblePrivate *priv;
+ int mapped;
+ char *unichar;
+ gunichar ret;
+
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+
+ g_assert(offset < (int) priv->snapshot_characters->len);
+
+ mapped = g_array_index(priv->snapshot_characters, int, offset);
+
+ unichar = vte_terminal_accessible_get_text(text, offset, offset + 1);
+ ret = g_utf8_get_char(unichar);
+ g_free(unichar);
+
+ return ret;
+}
+
+static gint
+vte_terminal_accessible_get_caret_offset(AtkText *text)
+{
+ VteTerminalAccessiblePrivate *priv;
+
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+
+ return priv->snapshot_caret;
+}
+
+static AtkAttributeSet *
+get_attribute_set (struct _VteCharAttributes attr)
+{
+ AtkAttributeSet *set = NULL;
+ AtkAttribute *at;
+
+ if (attr.underline) {
+ at = g_new (AtkAttribute, 1);
+ at->name = g_strdup ("underline");
+ at->value = g_strdup ("true");
+ set = g_slist_append (set, at);
+ }
+ if (attr.strikethrough) {
+ at = g_new (AtkAttribute, 1);
+ at->name = g_strdup ("strikethrough");
+ at->value = g_strdup ("true");
+ set = g_slist_append (set, at);
+ }
+ at = g_new (AtkAttribute, 1);
+ at->name = g_strdup ("fg-color");
+ at->value = g_strdup_printf ("%u,%u,%u",
+ attr.fore.red, attr.fore.green, attr.fore.blue);
+ set = g_slist_append (set, at);
+
+ at = g_new (AtkAttribute, 1);
+ at->name = g_strdup ("bg-color");
+ at->value = g_strdup_printf ("%u,%u,%u",
+ attr.back.red, attr.back.green, attr.back.blue);
+ set = g_slist_append (set, at);
+
+ return set;
+}
+
+static AtkAttributeSet *
+vte_terminal_accessible_get_run_attributes(AtkText *text, gint offset,
+ gint *start_offset, gint *end_offset)
+{
+ VteTerminalAccessiblePrivate *priv;
+ guint i;
+ struct _VteCharAttributes cur_attr;
+ struct _VteCharAttributes attr;
+
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+
+ attr = g_array_index (priv->snapshot_attributes,
+ struct _VteCharAttributes,
+ offset);
+ *start_offset = 0;
+ for (i = offset; i--;) {
+ cur_attr = g_array_index (priv->snapshot_attributes,
+ struct _VteCharAttributes,
+ i);
+ if (!gdk_color_equal (&cur_attr.fore, &attr.fore) ||
+ !gdk_color_equal (&cur_attr.back, &attr.back) ||
+ cur_attr.underline != attr.underline ||
+ cur_attr.strikethrough != attr.strikethrough) {
+ *start_offset = i + 1;
+ break;
+ }
+ }
+ *end_offset = priv->snapshot_attributes->len - 1;
+ for (i = offset + 1; i < priv->snapshot_attributes->len; i++) {
+ cur_attr = g_array_index (priv->snapshot_attributes,
+ struct _VteCharAttributes,
+ i);
+ if (!gdk_color_equal (&cur_attr.fore, &attr.fore) ||
+ !gdk_color_equal (&cur_attr.back, &attr.back) ||
+ cur_attr.underline != attr.underline ||
+ cur_attr.strikethrough != attr.strikethrough) {
+ *end_offset = i - 1;
+ break;
+ }
+ }
+
+ return get_attribute_set (attr);
+}
+
+static AtkAttributeSet *
+vte_terminal_accessible_get_default_attributes(AtkText *text)
+{
+ return NULL;
+}
+
+static void
+vte_terminal_accessible_get_character_extents(AtkText *text, gint offset,
+ gint *x, gint *y,
+ gint *width, gint *height,
+ AtkCoordType coords)
+{
+ VteTerminalAccessiblePrivate *priv;
+ VteTerminal *terminal;
+ glong char_width, char_height;
+ gint base_x, base_y;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ terminal = VTE_TERMINAL (gtk_accessible_get_widget (GTK_ACCESSIBLE (text)));
+
+ atk_component_get_position (ATK_COMPONENT (text), &base_x, &base_y, coords);
+ xy_from_offset (priv, offset, x, y);
+ char_width = vte_terminal_get_char_width (terminal);
+ char_height = vte_terminal_get_char_height (terminal);
+ *x *= char_width;
+ *y *= char_height;
+ *width = char_width;
+ *height = char_height;
+ *x += base_x;
+ *y += base_y;
+}
+
+static gint
+vte_terminal_accessible_get_character_count(AtkText *text)
+{
+ VteTerminalAccessiblePrivate *priv;
+
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+
+ return priv->snapshot_attributes->len;
+}
+
+static gint
+vte_terminal_accessible_get_offset_at_point(AtkText *text,
+ gint x, gint y,
+ AtkCoordType coords)
+{
+ VteTerminalAccessiblePrivate *priv;
+ VteTerminal *terminal;
+ glong char_width, char_height;
+ gint base_x, base_y;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ terminal = VTE_TERMINAL (gtk_accessible_get_widget (GTK_ACCESSIBLE (text)));
+
+ atk_component_get_position (ATK_COMPONENT (text), &base_x, &base_y, coords);
+ char_width = vte_terminal_get_char_width (terminal);
+ char_height = vte_terminal_get_char_height (terminal);
+ x -= base_x;
+ y -= base_y;
+ x /= char_width;
+ y /= char_height;
+ return offset_from_xy (priv, x, y);
+}
+
+static gint
+vte_terminal_accessible_get_n_selections(AtkText *text)
+{
+ GtkWidget *widget;
+ VteTerminal *terminal;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE(text));
+ if (widget == NULL) {
+ /* State is defunct */
+ return -1;
+ }
+ g_assert(VTE_IS_TERMINAL (widget));
+ terminal = VTE_TERMINAL (widget);
+ return (vte_terminal_get_has_selection (terminal)) ? 1 : 0;
+}
+
+static gchar *
+vte_terminal_accessible_get_selection(AtkText *text, gint selection_number,
+ gint *start_offset, gint *end_offset)
+{
+ GtkWidget *widget;
+ VteTerminal *terminal;
+ VteTerminalAccessiblePrivate *priv;
+ long start_x, start_y, end_x, end_y;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE(text));
+ if (widget == NULL) {
+ /* State is defunct */
+ return NULL;
+ }
+ g_assert(VTE_IS_TERMINAL (widget));
+ terminal = VTE_TERMINAL (widget);
+ if (!vte_terminal_get_has_selection (terminal)) {
+ return NULL;
+ }
+ if (selection_number != 0) {
+ return NULL;
+ }
+
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ _vte_terminal_get_start_selection (terminal, &start_x, &start_y);
+ *start_offset = offset_from_xy (priv, start_x, start_y);
+ _vte_terminal_get_end_selection (terminal, &end_x, &end_y);
+ *end_offset = offset_from_xy (priv, end_x, end_y);
+ return _vte_terminal_get_selection (terminal);
+}
+
+static gboolean
+vte_terminal_accessible_add_selection(AtkText *text,
+ gint start_offset, gint end_offset)
+{
+ GtkWidget *widget;
+ VteTerminal *terminal;
+ VteTerminalAccessiblePrivate *priv;
+ gint start_x, start_y, end_x, end_y;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE(text));
+ if (widget == NULL) {
+ /* State is defunct */
+ return FALSE;
+ }
+ g_assert(VTE_IS_TERMINAL (widget));
+ terminal = VTE_TERMINAL (widget);
+ g_assert(!vte_terminal_get_has_selection (terminal));
+ priv = g_object_get_data(G_OBJECT(text),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ xy_from_offset (priv, start_offset, &start_x, &start_y);
+ xy_from_offset (priv, end_offset, &end_x, &end_y);
+ _vte_terminal_select_text (terminal, start_x, start_y, end_x, end_y, start_offset, end_offset);
+ return TRUE;
+}
+
+static gboolean
+vte_terminal_accessible_remove_selection(AtkText *text,
+ gint selection_number)
+{
+ GtkWidget *widget;
+ VteTerminal *terminal;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE(text));
+ if (widget == NULL) {
+ /* State is defunct */
+ return FALSE;
+ }
+ g_assert(VTE_IS_TERMINAL (widget));
+ terminal = VTE_TERMINAL (widget);
+ if (selection_number == 0 && vte_terminal_get_has_selection (terminal)) {
+ _vte_terminal_remove_selection (terminal);
+ return TRUE;
+ } else {
+ return FALSE;
+ }
+}
+
+static gboolean
+vte_terminal_accessible_set_selection(AtkText *text, gint selection_number,
+ gint start_offset, gint end_offset)
+{
+ GtkWidget *widget;
+ VteTerminal *terminal;
+
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE(text));
+ if (widget == NULL) {
+ /* State is defunct */
+ return FALSE;
+ }
+ g_assert(VTE_IS_TERMINAL (widget));
+ terminal = VTE_TERMINAL (widget);
+ if (selection_number != 0) {
+ return FALSE;
+ }
+ if (vte_terminal_get_has_selection (terminal)) {
+ _vte_terminal_remove_selection (terminal);
+ }
+
+ return vte_terminal_accessible_add_selection (text, start_offset, end_offset);
+}
+
+static gboolean
+vte_terminal_accessible_set_caret_offset(AtkText *text, gint offset)
+{
+ g_assert(VTE_IS_TERMINAL_ACCESSIBLE(text));
+ vte_terminal_accessible_update_private_data_if_needed(ATK_OBJECT(text),
+ NULL, NULL);
+ /* Whoa, very not allowed. */
+ return FALSE;
+}
+
+static void
+vte_terminal_accessible_text_init(gpointer iface, gpointer data)
+{
+ AtkTextIface *text;
+ g_assert(G_TYPE_FROM_INTERFACE(iface) == ATK_TYPE_TEXT);
+ text = iface;
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Initializing accessible peer's AtkText interface.\n");
+ text->get_text = vte_terminal_accessible_get_text;
+ text->get_text_after_offset = vte_terminal_accessible_get_text_after_offset;
+ text->get_text_at_offset = vte_terminal_accessible_get_text_at_offset;
+ text->get_character_at_offset = vte_terminal_accessible_get_character_at_offset;
+ text->get_text_before_offset = vte_terminal_accessible_get_text_before_offset;
+ text->get_caret_offset = vte_terminal_accessible_get_caret_offset;
+ text->get_run_attributes = vte_terminal_accessible_get_run_attributes;
+ text->get_default_attributes = vte_terminal_accessible_get_default_attributes;
+ text->get_character_extents = vte_terminal_accessible_get_character_extents;
+ text->get_character_count = vte_terminal_accessible_get_character_count;
+ text->get_offset_at_point = vte_terminal_accessible_get_offset_at_point;
+ text->get_n_selections = vte_terminal_accessible_get_n_selections;
+ text->get_selection = vte_terminal_accessible_get_selection;
+ text->add_selection = vte_terminal_accessible_add_selection;
+ text->remove_selection = vte_terminal_accessible_remove_selection;
+ text->set_selection = vte_terminal_accessible_set_selection;
+ text->set_caret_offset = vte_terminal_accessible_set_caret_offset;
+}
+
+static AtkLayer
+vte_terminal_accessible_get_layer(AtkComponent *component)
+{
+ return ATK_LAYER_WIDGET;
+}
+
+static gint
+vte_terminal_accessible_get_mdi_zorder(AtkComponent *component)
+{
+ return G_MININT;
+}
+
+static gboolean
+vte_terminal_accessible_contains(AtkComponent *component,
+ gint x, gint y,
+ AtkCoordType coord_type)
+{
+ gint ex, ey, ewidth, eheight;
+ atk_component_get_extents(component, &ex, &ey, &ewidth, &eheight,
+ coord_type);
+ return ((x >= ex) &&
+ (x < ex + ewidth) &&
+ (y >= ey) &&
+ (y < ey + eheight));
+}
+
+static void
+vte_terminal_accessible_get_extents(AtkComponent *component,
+ gint *x, gint *y,
+ gint *width, gint *height,
+ AtkCoordType coord_type)
+{
+ atk_component_get_position(component, x, y, coord_type);
+ atk_component_get_size(component, width, height);
+}
+
+static void
+vte_terminal_accessible_get_position(AtkComponent *component,
+ gint *x, gint *y,
+ AtkCoordType coord_type)
+{
+ GtkWidget *widget;
+ *x = 0;
+ *y = 0;
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE(component));
+ if (widget == NULL) {
+ return;
+ }
+ if (!gtk_widget_get_realized(widget)) {
+ return;
+ }
+ switch (coord_type) {
+ case ATK_XY_SCREEN:
+ gdk_window_get_origin(gtk_widget_get_window (widget), x, y);
+ break;
+ case ATK_XY_WINDOW:
+ gdk_window_get_position(gtk_widget_get_window (widget), x, y);
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+}
+
+static void
+vte_terminal_accessible_get_size(AtkComponent *component,
+ gint *width, gint *height)
+{
+ GtkWidget *widget;
+ GdkWindow *window;
+ *width = 0;
+ *height = 0;
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE(component));
+ if (widget == NULL) {
+ return;
+ }
+ if (!gtk_widget_get_realized(widget)) {
+ return;
+ }
+ window = gtk_widget_get_window (widget);
+#if GTK_CHECK_VERSION (2, 90, 8)
+ if (width)
+ *width = gdk_window_get_width (window);
+ if (height)
+ *height = gdk_window_get_height (window);
+#else
+ gdk_drawable_get_size(window, width, height);
+#endif
+}
+
+static gboolean
+vte_terminal_accessible_set_extents(AtkComponent *component,
+ gint x, gint y,
+ gint width, gint height,
+ AtkCoordType coord_type)
+{
+ /* FIXME? We can change the size, but our position is controlled
+ * by the parent container. */
+ return FALSE;
+}
+
+static gboolean
+vte_terminal_accessible_set_position(AtkComponent *component,
+ gint x, gint y,
+ AtkCoordType coord_type)
+{
+ /* Controlled by the parent container, if there is one. */
+ return FALSE;
+}
+
+static gboolean
+vte_terminal_accessible_set_size(AtkComponent *component,
+ gint width, gint height)
+{
+ VteTerminal *terminal;
+ gint columns, rows, char_width, char_height;
+ GtkWidget *widget;
+ GtkBorder *inner_border;
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE(component));
+ if (widget == NULL) {
+ return FALSE;
+ }
+ terminal = VTE_TERMINAL(widget);
+
+ char_width = vte_terminal_get_char_width (terminal);
+ char_height = vte_terminal_get_char_height (terminal);
+ gtk_widget_style_get (widget, "inner-border", &inner_border, NULL);
+ /* If the size is an exact multiple of the cell size, use that,
+ * otherwise round down. */
+ columns = (width - (inner_border ? (inner_border->left + inner_border->right) : 0)) / char_width;
+ rows = (height - (inner_border ? (inner_border->top + inner_border->bottom) : 0)) / char_height;
+ gtk_border_free (inner_border);
+ vte_terminal_set_size(terminal, columns, rows);
+ return (vte_terminal_get_row_count (terminal) == rows) &&
+ (vte_terminal_get_column_count (terminal) == columns);
+}
+
+
+static AtkObject *
+vte_terminal_accessible_ref_accessible_at_point(AtkComponent *component,
+ gint x, gint y,
+ AtkCoordType coord_type)
+{
+ /* There are no children. */
+ return NULL;
+}
+
+static guint
+vte_terminal_accessible_add_focus_handler(AtkComponent *component,
+ AtkFocusHandler handler)
+{
+ guint signal_id;
+ signal_id = g_signal_lookup("focus-event",
+ VTE_TYPE_TERMINAL_ACCESSIBLE);
+ if (g_signal_handler_find(component,
+ G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_ID,
+ signal_id,
+ 0,
+ NULL,
+ (gpointer)handler,
+ NULL) != 0) {
+ return 0;
+ }
+ return g_signal_connect(component, "focus-event",
+ G_CALLBACK(handler), NULL);
+}
+
+static void
+vte_terminal_accessible_remove_focus_handler(AtkComponent *component,
+ guint handler_id)
+{
+ g_assert(g_signal_handler_is_connected(component, handler_id));
+ g_signal_handler_disconnect(component, handler_id);
+}
+
+static void
+vte_terminal_accessible_component_init(gpointer iface, gpointer data)
+{
+ AtkComponentIface *component;
+ g_assert(G_TYPE_FROM_INTERFACE(iface) == ATK_TYPE_COMPONENT);
+ component = iface;
+
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Initializing accessible peer's "
+ "AtkComponent interface.\n");
+ /* Set our virtual functions. */
+ component->add_focus_handler = vte_terminal_accessible_add_focus_handler;
+ component->contains = vte_terminal_accessible_contains;
+ component->ref_accessible_at_point = vte_terminal_accessible_ref_accessible_at_point;
+ component->get_extents = vte_terminal_accessible_get_extents;
+ component->get_position = vte_terminal_accessible_get_position;
+ component->get_size = vte_terminal_accessible_get_size;
+ component->remove_focus_handler = vte_terminal_accessible_remove_focus_handler;
+ component->set_extents = vte_terminal_accessible_set_extents;
+ component->set_position = vte_terminal_accessible_set_position;
+ component->set_size = vte_terminal_accessible_set_size;
+ component->get_layer = vte_terminal_accessible_get_layer;
+ component->get_mdi_zorder = vte_terminal_accessible_get_mdi_zorder;
+}
+
+/* AtkAction interface */
+
+static gboolean
+vte_terminal_accessible_do_action (AtkAction *accessible, int i)
+{
+ GtkWidget *widget;
+ gboolean retval = FALSE;
+
+ g_return_val_if_fail (i < LAST_ACTION, FALSE);
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+ if (!widget) {
+ return FALSE;
+ }
+
+ switch (i) {
+ case ACTION_MENU :
+ g_signal_emit_by_name (widget, "popup_menu", &retval);
+ break;
+ default :
+ g_warning ("Invalid action passed to VteTerminalAccessible::do_action");
+ return FALSE;
+ }
+ return retval;
+}
+
+static int
+vte_terminal_accessible_get_n_actions (AtkAction *accessible)
+{
+ return LAST_ACTION;
+}
+
+static const char *
+vte_terminal_accessible_action_get_description (AtkAction *accessible, int i)
+{
+ VteTerminalAccessiblePrivate *priv;
+
+ g_return_val_if_fail (i < LAST_ACTION, NULL);
+
+ g_return_val_if_fail(VTE_IS_TERMINAL_ACCESSIBLE(accessible), NULL);
+
+ /* Retrieve the private data structure. It must already exist. */
+ priv = g_object_get_data(G_OBJECT(accessible),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ g_return_val_if_fail(priv != NULL, NULL);
+
+ if (priv->action_descriptions[i]) {
+ return priv->action_descriptions[i];
+ } else {
+ return vte_terminal_accessible_action_descriptions[i];
+ }
+}
+
+static const char *
+vte_terminal_accessible_action_get_name (AtkAction *accessible, int i)
+{
+ g_return_val_if_fail (i < LAST_ACTION, NULL);
+
+ return vte_terminal_accessible_action_names[i];
+}
+
+static const char *
+vte_terminal_accessible_action_get_keybinding (AtkAction *accessible, int i)
+{
+ g_return_val_if_fail (i < LAST_ACTION, NULL);
+
+ return NULL;
+}
+
+static gboolean
+vte_terminal_accessible_action_set_description (AtkAction *accessible,
+ int i,
+ const char *description)
+{
+ VteTerminalAccessiblePrivate *priv;
+
+ g_return_val_if_fail (i < LAST_ACTION, FALSE);
+
+ g_return_val_if_fail(VTE_IS_TERMINAL_ACCESSIBLE(accessible), FALSE);
+
+ /* Retrieve the private data structure. It must already exist. */
+ priv = g_object_get_data(G_OBJECT(accessible),
+ VTE_TERMINAL_ACCESSIBLE_PRIVATE_DATA);
+ g_return_val_if_fail(priv != NULL, FALSE);
+
+ if (priv->action_descriptions[i]) {
+ g_free (priv->action_descriptions[i]);
+ }
+ priv->action_descriptions[i] = g_strdup (description);
+
+ return TRUE;
+}
+
+static void
+vte_terminal_accessible_action_init(gpointer iface, gpointer data)
+{
+ AtkActionIface *action;
+ g_return_if_fail(G_TYPE_FROM_INTERFACE(iface) == ATK_TYPE_ACTION);
+ action = iface;
+
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Initializing accessible peer's "
+ "AtkAction interface.\n");
+ /* Set our virtual functions. */
+ action->do_action = vte_terminal_accessible_do_action;
+ action->get_n_actions = vte_terminal_accessible_get_n_actions;
+ action->get_description = vte_terminal_accessible_action_get_description;
+ action->get_name = vte_terminal_accessible_action_get_name;
+ action->get_keybinding = vte_terminal_accessible_action_get_keybinding;
+ action->set_description = vte_terminal_accessible_action_set_description;
+}
+static void
+vte_terminal_accessible_class_init(gpointer *klass)
+{
+ GObjectClass *gobject_class;
+ AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+ vte_terminal_accessible_parent_class = g_type_class_peek_parent (klass);
+
+ gobject_class = G_OBJECT_CLASS(klass);
+
+ class->initialize = vte_terminal_initialize;
+ /* Override the finalize method. */
+ gobject_class->finalize = vte_terminal_accessible_finalize;
+}
+
+GType
+vte_terminal_accessible_get_type(void)
+{
+ static GType terminal_accessible_type = 0;
+
+ if (G_UNLIKELY (terminal_accessible_type == 0)) {
+ AtkRegistry *registry;
+ AtkObjectFactory *factory;
+ GType parent_type, parent_accessible_type;
+ GTypeQuery type_info;
+
+ GInterfaceInfo text = {
+ vte_terminal_accessible_text_init,
+ NULL,
+ NULL,
+ };
+ GInterfaceInfo component = {
+ vte_terminal_accessible_component_init,
+ NULL,
+ NULL,
+ };
+ GInterfaceInfo action = {
+ vte_terminal_accessible_action_init,
+ NULL,
+ NULL,
+ };
+ GTypeInfo terminal_accessible_info = {
+ 0,
+ (GBaseInitFunc)NULL,
+ (GBaseFinalizeFunc)NULL,
+
+ (GClassInitFunc)vte_terminal_accessible_class_init,
+ (GClassFinalizeFunc)NULL,
+ (gconstpointer)NULL,
+
+ 0,
+ 0,
+ (GInstanceInitFunc) NULL,
+
+ (GTypeValueTable*)NULL,
+ };
+
+ /* Find the Atk object used for the parent (GtkWidget) type. */
+ parent_type = g_type_parent(VTE_TYPE_TERMINAL);
+ factory = atk_registry_get_factory(atk_get_default_registry(),
+ parent_type);
+ parent_accessible_type = atk_object_factory_get_accessible_type(factory);
+ if (!g_type_is_a(parent_accessible_type, GTK_TYPE_ACCESSIBLE)) {
+#ifdef VTE_DEBUG
+ g_warning("Accessibility (%s) is not derived from "
+ "%s (GTK_MODULES=gail not set?), "
+ "deriving from %s instead.\n",
+ g_type_name(parent_accessible_type),
+ g_type_name(GTK_TYPE_ACCESSIBLE),
+ g_type_name(GTK_TYPE_ACCESSIBLE));
+#endif
+ /* Fudge it. */
+ parent_accessible_type = GTK_TYPE_ACCESSIBLE;
+ }
+
+ /* Find the size of the parent type's objects. */
+ g_type_query(parent_accessible_type, &type_info);
+ terminal_accessible_info.class_size = type_info.class_size;
+ terminal_accessible_info.instance_size = type_info.instance_size;
+ /* Register the class with the GObject type system. */
+ terminal_accessible_type = g_type_register_static(parent_accessible_type,
+ "VteTerminalAccessible",
+ &terminal_accessible_info,
+ 0);
+
+ /* Add a text interface to this object class. */
+ g_type_add_interface_static(terminal_accessible_type,
+ ATK_TYPE_TEXT,
+ &text);
+ /* Add a component interface to this object class. */
+ g_type_add_interface_static(terminal_accessible_type,
+ ATK_TYPE_COMPONENT,
+ &component);
+ /* Add an action interface to this object class. */
+ g_type_add_interface_static(terminal_accessible_type,
+ ATK_TYPE_ACTION,
+ &action);
+
+ /* Associate the terminal and its peer factory in the
+ * Atk type registry. */
+ registry = atk_get_default_registry();
+ atk_registry_set_factory_type(registry,
+ VTE_TYPE_TERMINAL,
+ VTE_TYPE_TERMINAL_ACCESSIBLE_FACTORY);
+ }
+
+ return terminal_accessible_type;
+}
+
+/* Create an accessible peer for the object. */
+static AtkObject *
+vte_terminal_accessible_factory_create_accessible(GObject *obj)
+{
+ GtkAccessible *accessible;
+ VteTerminal *terminal;
+
+ g_assert(VTE_IS_TERMINAL(obj));
+
+ terminal = VTE_TERMINAL(obj);
+ accessible = GTK_ACCESSIBLE(vte_terminal_accessible_new(terminal));
+ g_assert(accessible != NULL);
+
+ return ATK_OBJECT(accessible);
+}
+
+static void
+vte_terminal_accessible_factory_class_init(VteTerminalAccessibleFactoryClass *klass)
+{
+ AtkObjectFactoryClass *class = ATK_OBJECT_FACTORY_CLASS(klass);
+ /* Override the one method we care about. */
+ class->create_accessible = vte_terminal_accessible_factory_create_accessible;
+}
+static void
+vte_terminal_accessible_factory_init(VteTerminalAccessibleFactory *self)
+{
+ /* nothing to initialise */
+}
+
+AtkObjectFactory *
+vte_terminal_accessible_factory_new(void)
+{
+ _vte_debug_print(VTE_DEBUG_ALLY,
+ "Creating a new VteTerminalAccessibleFactory.\n");
+ return g_object_new(VTE_TYPE_TERMINAL_ACCESSIBLE_FACTORY, NULL);
+}
+
diff --git a/vte/src/vteaccess.h b/vte/src/vteaccess.h
new file mode 100644
index 0000000..7204d37
--- /dev/null
+++ b/vte/src/vteaccess.h
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef vte_vteaccess_h_included
+#define vte_vteaccess_h_included
+
+
+#include <glib.h>
+#include <gtk/gtk.h>
+#include "vte.h"
+
+G_BEGIN_DECLS
+
+#define VTE_TYPE_TERMINAL_ACCESSIBLE (vte_terminal_accessible_get_type ())
+#define VTE_TERMINAL_ACCESSIBLE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object),
VTE_TYPE_TERMINAL_ACCESSIBLE, VteTerminalAccessible))
+#define VTE_TERMINAL_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass),
VTE_TYPE_TERMINAL_ACCESSIBLE, VteTerminalAccessibleClass))
+#define VTE_IS_TERMINAL_ACCESSIBLE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object),
VTE_TYPE_TERMINAL_ACCESSIBLE))
+#define VTE_IS_TERMINAL_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),
VTE_TYPE_TERMINAL_ACCESSIBLE))
+#define VTE_TERMINAL_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),
VTE_TYPE_TERMINAL_ACCESSIBLE, VteTerminalAccessibleClass))
+
+typedef struct _VteTerminalAccessible VteTerminalAccessible;
+typedef struct _VteTerminalAccessibleClass VteTerminalAccessibleClass;
+
+/**
+ * VteTerminalAccessible:
+ *
+ * The accessible peer for #VteTerminal.
+ */
+struct _VteTerminalAccessible {
+ GtkAccessible parent;
+ /*< private > */
+ /* Unknown GailWidget implementation stuffs, exact size of which is
+ * worked out at run-time. */
+};
+
+struct _VteTerminalAccessibleClass {
+ GtkAccessibleClass parent_class;
+ /*< private > */
+ /* Unknown GailWidgetClass implementation stuffs, exact size of which
+ * is worked out at run-time. */
+};
+
+GType vte_terminal_accessible_get_type(void);
+
+AtkObject *vte_terminal_accessible_new(VteTerminal *terminal);
+
+#define VTE_TYPE_TERMINAL_ACCESSIBLE_FACTORY (vte_terminal_accessible_factory_get_type ())
+#define VTE_TERMINAL_ACCESSIBLE_FACTORY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object),
VTE_TYPE_TERMINAL_ACCESSIBLE_FACTORY, VteTerminalAccessibleFactory))
+#define VTE_TERMINAL_ACCESSIBLE_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass),
VTE_TYPE_TERMINAL_ACCESSIBLE_FACTORY, VteTerminalAccessibleFactoryClass))
+#define VTE_IS_TERMINAL_ACCESSIBLE_FACTORY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object),
VTE_TYPE_TERMINAL_ACCESSIBLE_FACTORY))
+#define VTE_IS_TERMINAL_ACCESSIBLE_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),
VTE_TYPE_TERMINAL_ACCESSIBLE_FACTORY))
+#define VTE_TERMINAL_ACCESSIBLE_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),
VTE_TYPE_TERMINAL_ACCESSIBLE_FACTORY, VteTerminalAccessibleFactoryClass))
+
+typedef struct _VteTerminalAccessibleFactory VteTerminalAccessibleFactory;
+typedef struct _VteTerminalAccessibleFactoryClass VteTerminalAccessibleFactoryClass;
+
+struct _VteTerminalAccessibleFactory {
+ AtkObjectFactory parent;
+};
+
+struct _VteTerminalAccessibleFactoryClass {
+ AtkObjectFactoryClass parent;
+};
+
+GType vte_terminal_accessible_factory_get_type(void);
+
+AtkObjectFactory *vte_terminal_accessible_factory_new(void);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vteapp.c b/vte/src/vteapp.c
new file mode 100644
index 0000000..c6ab68a
--- /dev/null
+++ b/vte/src/vteapp.c
@@ -0,0 +1,1105 @@
+/*
+ * Copyright (C) 2001,2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include <config.h>
+
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+#include <unistd.h>
+#include <gtk/gtk.h>
+#include <glib-object.h>
+#include "debug.h"
+
+#undef VTE_DISABLE_DEPRECATED
+#include "vte.h"
+
+#include <glib/gi18n.h>
+
+#define DINGUS1
"(((gopher|news|telnet|nntp|file|http|ftp|https)://)|(www|ftp)[-A-Za-z0-9]*\\.)[-A-Za-z0-9\\.]+(:[0-9]*)?"
+#define DINGUS2
"(((gopher|news|telnet|nntp|file|http|ftp|https)://)|(www|ftp)[-A-Za-z0-9]*\\.)[-A-Za-z0-9\\.]+(:[0-9]*)?/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&=\\?/~\\#\\%]*[^]'\\.}>\\)
,\\\"]"
+
+static void
+window_title_changed(GtkWidget *widget, gpointer win)
+{
+ GtkWindow *window;
+
+ g_assert(VTE_TERMINAL(widget));
+ g_assert(GTK_IS_WINDOW(win));
+ g_assert(VTE_TERMINAL(widget)->window_title != NULL);
+ window = GTK_WINDOW(win);
+
+ gtk_window_set_title(window, VTE_TERMINAL(widget)->window_title);
+}
+
+static void
+icon_title_changed(GtkWidget *widget, gpointer win)
+{
+ GtkWindow *window;
+
+ g_assert(VTE_TERMINAL(widget));
+ g_assert(GTK_IS_WINDOW(win));
+ g_assert(VTE_TERMINAL(widget)->icon_title != NULL);
+ window = GTK_WINDOW(win);
+
+ g_message("Icon title changed to \"%s\".\n",
+ VTE_TERMINAL(widget)->icon_title);
+}
+
+static void
+char_size_changed(GtkWidget *widget, guint width, guint height, gpointer data)
+{
+ VteTerminal *terminal;
+ GtkWindow *window;
+ GdkGeometry geometry;
+ GtkBorder *inner_border;
+
+ g_assert(GTK_IS_WINDOW(data));
+ g_assert(VTE_IS_TERMINAL(widget));
+
+ terminal = VTE_TERMINAL(widget);
+ window = GTK_WINDOW(data);
+ if (!gtk_widget_get_realized (GTK_WIDGET (window)))
+ return;
+
+ gtk_widget_style_get (widget, "inner-border", &inner_border, NULL);
+ geometry.width_inc = width;
+ geometry.height_inc = height;
+ geometry.base_width = inner_border ? (inner_border->left + inner_border->right) : 0;
+ geometry.base_height = inner_border ? (inner_border->top + inner_border->bottom) : 0;
+ geometry.min_width = geometry.base_width + width * 2;
+ geometry.min_height = geometry.base_height + height * 2;
+ gtk_border_free (inner_border);
+
+ gtk_window_set_geometry_hints(window, widget, &geometry,
+ GDK_HINT_RESIZE_INC |
+ GDK_HINT_BASE_SIZE |
+ GDK_HINT_MIN_SIZE);
+}
+
+static void
+char_size_realized(GtkWidget *widget, gpointer data)
+{
+ VteTerminal *terminal;
+ GtkWindow *window;
+ GdkGeometry geometry;
+ guint width, height;
+ GtkBorder *inner_border;
+
+ g_assert(GTK_IS_WINDOW(data));
+ g_assert(VTE_IS_TERMINAL(widget));
+
+ terminal = VTE_TERMINAL(widget);
+ window = GTK_WINDOW(data);
+ if (!gtk_widget_get_realized (GTK_WIDGET(window)))
+ return;
+
+ gtk_widget_style_get (widget, "inner-border", &inner_border, NULL);
+ width = vte_terminal_get_char_width (terminal);
+ height = vte_terminal_get_char_height (terminal);
+ geometry.width_inc = width;
+ geometry.height_inc = height;
+ geometry.base_width = inner_border ? (inner_border->left + inner_border->right) : 0;
+ geometry.base_height = inner_border ? (inner_border->top + inner_border->bottom) : 0;
+ geometry.min_width = geometry.base_width + width * 2;
+ geometry.min_height = geometry.base_height + height * 2;
+ gtk_border_free (inner_border);
+
+ gtk_window_set_geometry_hints(window, widget, &geometry,
+ GDK_HINT_RESIZE_INC |
+ GDK_HINT_BASE_SIZE |
+ GDK_HINT_MIN_SIZE);
+}
+
+
+static void
+destroy_and_quit(VteTerminal *terminal, GtkWidget *window)
+{
+ const char *output_file = g_object_get_data (G_OBJECT (terminal), "output_file");
+
+ if (output_file) {
+ GFile *file;
+ GOutputStream *stream;
+ GError *error = NULL;
+
+ file = g_file_new_for_commandline_arg (output_file);
+ stream = G_OUTPUT_STREAM (g_file_replace (file, NULL, FALSE, G_FILE_CREATE_NONE, NULL,
&error));
+
+ if (stream) {
+ vte_terminal_write_contents (terminal, stream,
+ VTE_TERMINAL_WRITE_DEFAULT,
+ NULL, &error);
+ g_object_unref (stream);
+ }
+
+ if (error) {
+ g_printerr ("%s\n", error->message);
+ g_error_free (error);
+ }
+
+ g_object_unref (file);
+ }
+
+ gtk_widget_destroy (window);
+ gtk_main_quit ();
+}
+static void
+delete_event(GtkWidget *window, GdkEvent *event, gpointer terminal)
+{
+ destroy_and_quit(VTE_TERMINAL (terminal), window);
+}
+static void
+child_exited(GtkWidget *terminal, gpointer window)
+{
+ _vte_debug_print(VTE_DEBUG_MISC, "Child exited with status %x\n",
+ vte_terminal_get_child_exit_status (VTE_TERMINAL (terminal)));
+ destroy_and_quit(VTE_TERMINAL (terminal), GTK_WIDGET (window));
+}
+
+static void
+status_line_changed(GtkWidget *widget, gpointer data)
+{
+ g_print("Status = `%s'.\n",
+ vte_terminal_get_status_line(VTE_TERMINAL(widget)));
+}
+
+static int
+button_pressed(GtkWidget *widget, GdkEventButton *event, gpointer data)
+{
+ VteTerminal *terminal;
+ char *match;
+ int tag;
+ GtkBorder *inner_border;
+ int char_width, char_height;
+
+ switch (event->button) {
+ case 3:
+ terminal = VTE_TERMINAL(widget);
+
+ gtk_widget_style_get (widget, "inner-border", &inner_border, NULL);
+ char_width = vte_terminal_get_char_width (terminal);
+ char_height = vte_terminal_get_char_height (terminal);
+ match = vte_terminal_match_check(terminal,
+ (event->x - (inner_border ? inner_border->left : 0)) /
char_width,
+ (event->y - (inner_border ? inner_border->top : 0)) /
char_height,
+ &tag);
+ gtk_border_free (inner_border);
+ if (match != NULL) {
+ g_print("Matched `%s' (%d).\n", match, tag);
+ g_free(match);
+ if (GPOINTER_TO_INT(data) != 0) {
+ vte_terminal_match_remove(terminal, tag);
+ }
+ }
+ break;
+ case 1:
+ case 2:
+ default:
+ break;
+ }
+ return FALSE;
+}
+
+static void
+iconify_window(GtkWidget *widget, gpointer data)
+{
+ gtk_window_iconify(data);
+}
+
+static void
+deiconify_window(GtkWidget *widget, gpointer data)
+{
+ gtk_window_deiconify(data);
+}
+
+static void
+raise_window(GtkWidget *widget, gpointer data)
+{
+ GdkWindow *window;
+
+ if (GTK_IS_WIDGET(data)) {
+ window = gtk_widget_get_window(GTK_WIDGET(data));
+ if (window) {
+ gdk_window_raise(window);
+ }
+ }
+}
+
+static void
+lower_window(GtkWidget *widget, gpointer data)
+{
+ GdkWindow *window;
+
+ if (GTK_IS_WIDGET(data)) {
+ window = gtk_widget_get_window(GTK_WIDGET(data));
+ if (window) {
+ gdk_window_lower(window);
+ }
+ }
+}
+
+static void
+maximize_window(GtkWidget *widget, gpointer data)
+{
+ GdkWindow *window;
+
+ if (GTK_IS_WIDGET(data)) {
+ window = gtk_widget_get_window(GTK_WIDGET(data));
+ if (window) {
+ gdk_window_maximize(window);
+ }
+ }
+}
+
+static void
+restore_window(GtkWidget *widget, gpointer data)
+{
+ GdkWindow *window;
+
+ if (GTK_IS_WIDGET(data)) {
+ window = gtk_widget_get_window(GTK_WIDGET(data));
+ if (window) {
+ gdk_window_unmaximize(window);
+ }
+ }
+}
+
+static void
+refresh_window(GtkWidget *widget, gpointer data)
+{
+ GdkWindow *window;
+ GtkAllocation allocation;
+ GdkRectangle rect;
+
+ if (GTK_IS_WIDGET(data)) {
+ window = gtk_widget_get_window(widget);
+ if (window) {
+ gtk_widget_get_allocation(widget, &allocation);
+ rect.x = rect.y = 0;
+ rect.width = allocation.width;
+ rect.height = allocation.height;
+ gdk_window_invalidate_rect(window, &rect, TRUE);
+ }
+ }
+}
+
+static void
+resize_window(GtkWidget *widget, guint width, guint height, gpointer data)
+{
+ VteTerminal *terminal;
+
+ if ((GTK_IS_WINDOW(data)) && (width >= 2) && (height >= 2)) {
+ gint owidth, oheight, char_width, char_height, column_count, row_count;
+ GtkBorder *inner_border;
+
+ terminal = VTE_TERMINAL(widget);
+
+ gtk_window_get_size(GTK_WINDOW(data), &owidth, &oheight);
+
+ /* Take into account border overhead. */
+ char_width = vte_terminal_get_char_width (terminal);
+ char_height = vte_terminal_get_char_height (terminal);
+ column_count = vte_terminal_get_column_count (terminal);
+ row_count = vte_terminal_get_row_count (terminal);
+ gtk_widget_style_get (widget, "inner-border", &inner_border, NULL);
+
+ owidth -= char_width * column_count;
+ oheight -= char_height * row_count;
+ if (inner_border != NULL) {
+ owidth -= inner_border->left + inner_border->right;
+ oheight -= inner_border->top + inner_border->bottom;
+ }
+ gtk_window_resize(GTK_WINDOW(data),
+ width + owidth, height + oheight);
+ gtk_border_free (inner_border);
+ }
+}
+
+static void
+move_window(GtkWidget *widget, guint x, guint y, gpointer data)
+{
+ GdkWindow *window;
+
+ if (GTK_IS_WIDGET(data)) {
+ window = gtk_widget_get_window(GTK_WIDGET(data));
+ if (window) {
+ gdk_window_move(window, x, y);
+ }
+ }
+}
+
+static void
+adjust_font_size(GtkWidget *widget, gpointer data, gint howmuch)
+{
+ VteTerminal *terminal;
+ PangoFontDescription *desired;
+ gint newsize;
+ gint columns, rows, owidth, oheight;
+
+ /* Read the screen dimensions in cells. */
+ terminal = VTE_TERMINAL(widget);
+ columns = terminal->column_count;
+ rows = terminal->row_count;
+
+ /* Take into account padding and border overhead. */
+ gtk_window_get_size(GTK_WINDOW(data), &owidth, &oheight);
+ owidth -= terminal->char_width * terminal->column_count;
+ oheight -= terminal->char_height * terminal->row_count;
+
+ /* Calculate the new font size. */
+ desired = pango_font_description_copy(vte_terminal_get_font(terminal));
+ newsize = pango_font_description_get_size(desired) / PANGO_SCALE;
+ newsize += howmuch;
+ pango_font_description_set_size(desired,
+ CLAMP(newsize, 4, 144) * PANGO_SCALE);
+
+ /* Change the font, then resize the window so that we have the same
+ * number of rows and columns. */
+ vte_terminal_set_font(terminal, desired);
+ gtk_window_resize(GTK_WINDOW(data),
+ columns * terminal->char_width + owidth,
+ rows * terminal->char_height + oheight);
+
+ pango_font_description_free(desired);
+}
+
+static void
+increase_font_size(GtkWidget *widget, gpointer data)
+{
+ adjust_font_size(widget, data, 1);
+}
+
+static void
+decrease_font_size(GtkWidget *widget, gpointer data)
+{
+ adjust_font_size(widget, data, -1);
+}
+
+static gboolean
+read_and_feed(GIOChannel *source, GIOCondition condition, gpointer data)
+{
+ char buf[2048];
+ gsize size;
+ GIOStatus status;
+ g_assert(VTE_IS_TERMINAL(data));
+ status = g_io_channel_read_chars(source, buf, sizeof(buf),
+ &size, NULL);
+ if ((status == G_IO_STATUS_NORMAL) && (size > 0)) {
+ vte_terminal_feed(VTE_TERMINAL(data), buf, size);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static void
+disconnect_watch(GtkWidget *widget, gpointer data)
+{
+ g_source_remove(GPOINTER_TO_INT(data));
+}
+
+static void
+clipboard_get(GtkClipboard *clipboard, GtkSelectionData *selection_data,
+ guint info, gpointer owner)
+{
+ /* No-op. */
+ return;
+}
+
+static void
+take_xconsole_ownership(GtkWidget *widget, gpointer data)
+{
+ char *name, hostname[255];
+ GdkAtom atom;
+ GtkClipboard *clipboard;
+ const GtkTargetEntry targets[] = {
+ {"UTF8_STRING", 0, 0},
+ {"COMPOUND_TEXT", 0, 0},
+ {"TEXT", 0, 0},
+ {"STRING", 0, 0},
+ };
+
+ memset(hostname, '\0', sizeof(hostname));
+ gethostname(hostname, sizeof(hostname) - 1);
+
+ name = g_strdup_printf("MIT_CONSOLE_%s", hostname);
+ atom = gdk_atom_intern(name, FALSE);
+ clipboard = gtk_clipboard_get_for_display(gtk_widget_get_display(widget),
+ atom);
+ g_free(name);
+
+ gtk_clipboard_set_with_owner(clipboard,
+ targets,
+ G_N_ELEMENTS(targets),
+ clipboard_get,
+ (GtkClipboardClearFunc)gtk_main_quit,
+ G_OBJECT(widget));
+}
+
+static void
+add_weak_pointer(GObject *object, GtkWidget **target)
+{
+ g_object_add_weak_pointer(object, (gpointer*)target);
+}
+
+static void
+terminal_notify_cb(GObject *object,
+ GParamSpec *pspec,
+ gpointer user_data)
+{
+ GValue value = { 0, };
+ char *value_string;
+
+ if (!pspec ||
+ pspec->owner_type != VTE_TYPE_TERMINAL)
+ return;
+
+
+ g_value_init(&value, pspec->value_type);
+ g_object_get_property(object, pspec->name, &value);
+ value_string = g_strdup_value_contents(&value);
+ g_print("NOTIFY property \"%s\" value '%s'\n", pspec->name, value_string);
+ g_free(value_string);
+ g_value_unset(&value);
+}
+
+static void
+child_exit_cb(VteTerminal *terminal,
+ gpointer user_data)
+{
+}
+
+static int
+parse_enum(GType type,
+ const char *string)
+{
+ GEnumClass *enum_klass;
+ const GEnumValue *enum_value;
+ int value = 0;
+
+ enum_klass = (GEnumClass*)g_type_class_ref(type);
+ enum_value = g_enum_get_value_by_nick(enum_klass, string);
+ if (enum_value)
+ value = enum_value->value;
+ else
+ g_warning("Unknown enum '%s'\n", string);
+ g_type_class_unref(enum_klass);
+
+ return value;
+}
+
+static guint
+parse_flags(GType type,
+ const char *string)
+{
+ GFlagsClass *flags_klass;
+ guint value = 0;
+ char **flags;
+ guint i;
+
+ flags = g_strsplit_set(string, ",|", -1);
+ if (flags == NULL)
+ return 0;
+
+ flags_klass = (GFlagsClass*)g_type_class_ref(type);
+ for (i = 0; flags[i] != NULL; ++i) {
+ const GFlagsValue *flags_value;
+
+ flags_value = g_flags_get_value_by_nick(flags_klass, flags[i]);
+ if (flags_value)
+ value |= flags_value->value;
+ else
+ g_warning("Unknown flag '%s'\n", flags[i]);
+ }
+ g_type_class_unref(flags_klass);
+
+ return value;
+}
+
+int
+main(int argc, char **argv)
+{
+ GdkScreen *screen;
+#if GTK_CHECK_VERSION (2, 90, 8)
+ GdkVisual *visual;
+#else
+ GdkColormap *colormap;
+#endif
+ GtkWidget *window, *widget,*hbox = NULL, *scrollbar, *scrolled_window = NULL;
+ VteTerminal *terminal;
+ char *env_add[] = {
+#ifdef VTE_DEBUG
+ (char *) "FOO=BAR", (char *) "BOO=BIZ",
+#endif
+ NULL};
+ const char *background = NULL;
+ gboolean transparent = FALSE, audible = TRUE,
+ debug = FALSE, dingus = FALSE, dbuffer = TRUE,
+ console = FALSE, scroll = FALSE, keep = FALSE,
+ icon_title = FALSE, shell = TRUE, highlight_set = FALSE,
+ cursor_set = FALSE, reverse = FALSE, use_geometry_hints = TRUE,
+ antialias = TRUE, use_scrolled_window = FALSE,
+ show_object_notifications = FALSE;
+ char *geometry = NULL;
+ gint lines = 100;
+ const char *message = "Launching interactive shell...\r\n";
+ const char *font = NULL;
+ const char *termcap = NULL;
+ const char *command = NULL;
+ const char *working_directory = NULL;
+ const char *output_file = NULL;
+ char *pty_flags_string = NULL;
+ char *cursor_blink_mode_string = NULL;
+ char *cursor_shape_string = NULL;
+ char *scrollbar_policy_string = NULL;
+ GdkColor fore, back, tint, highlight, cursor;
+ const GOptionEntry options[]={
+ {
+ "antialias", 'A', G_OPTION_FLAG_REVERSE,
+ G_OPTION_ARG_NONE, &antialias,
+ "Disable the use of anti-aliasing", NULL
+ },
+ {
+ "background", 'B', 0,
+ G_OPTION_ARG_FILENAME, &background,
+ "Specify a background image", NULL
+ },
+ {
+ "console", 'C', 0,
+ G_OPTION_ARG_NONE, &console,
+ "Watch /dev/console", NULL
+ },
+ {
+ "dingus", 'D', 0,
+ G_OPTION_ARG_NONE, &dingus,
+ "Highlight URLs inside the terminal", NULL
+ },
+ {
+ "shell", 'S', G_OPTION_FLAG_REVERSE,
+ G_OPTION_ARG_NONE, &shell,
+ "Disable spawning a shell inside the terminal", NULL
+ },
+ {
+ "transparent", 'T', 0,
+ G_OPTION_ARG_NONE, &transparent,
+ "Enable the use of a transparent background", NULL
+ },
+ {
+ "double-buffer", '2', G_OPTION_FLAG_REVERSE,
+ G_OPTION_ARG_NONE, &dbuffer,
+ "Disable double-buffering", NULL
+ },
+ {
+ "audible", 'a', G_OPTION_FLAG_REVERSE,
+ G_OPTION_ARG_NONE, &audible,
+ "Use visible, instead of audible, terminal bell",
+ NULL
+ },
+ {
+ "command", 'c', 0,
+ G_OPTION_ARG_STRING, &command,
+ "Execute a command in the terminal", NULL
+ },
+ {
+ "debug", 'd', 0,
+ G_OPTION_ARG_NONE, &debug,
+ "Enable various debugging checks", NULL
+ },
+ {
+ "font", 'f', 0,
+ G_OPTION_ARG_STRING, &font,
+ "Specify a font to use", NULL
+ },
+ {
+ "geometry", 'g', 0,
+ G_OPTION_ARG_STRING, &geometry,
+ "Set the size (in characters) and position", "GEOMETRY"
+ },
+ {
+ "highlight", 'h', 0,
+ G_OPTION_ARG_NONE, &highlight_set,
+ "Enable distinct highlight color for selection", NULL
+ },
+ {
+ "icon-title", 'i', 0,
+ G_OPTION_ARG_NONE, &icon_title,
+ "Enable the setting of the icon title", NULL
+ },
+ {
+ "keep", 'k', 0,
+ G_OPTION_ARG_NONE, &keep,
+ "Live on after the window closes", NULL
+ },
+ {
+ "scrollback-lines", 'n', 0,
+ G_OPTION_ARG_INT, &lines,
+ "Specify the number of scrollback-lines", NULL
+ },
+ {
+ "cursor-blink", 0, 0,
+ G_OPTION_ARG_STRING, &cursor_blink_mode_string,
+ "Cursor blink mode (system|on|off)", "MODE"
+ },
+ {
+ "color-cursor", 'r', 0,
+ G_OPTION_ARG_NONE, &cursor_set,
+ "Enable a colored cursor", NULL
+ },
+ {
+ "cursor-shape", 0, 0,
+ G_OPTION_ARG_STRING, &cursor_shape_string,
+ "Set cursor shape (block|underline|ibeam)", NULL
+ },
+ {
+ "scroll-background", 's', 0,
+ G_OPTION_ARG_NONE, &scroll,
+ "Enable a scrolling background", NULL
+ },
+ {
+ "termcap", 't', 0,
+ G_OPTION_ARG_STRING, &termcap,
+ "Specify the terminal emulation to use", NULL
+ },
+ {
+ "working-directory", 'w', 0,
+ G_OPTION_ARG_FILENAME, &working_directory,
+ "Specify the initial working directory of the terminal",
+ NULL
+ },
+ {
+ "reverse", 0, 0,
+ G_OPTION_ARG_NONE, &reverse,
+ "Reverse foreground/background colors", NULL
+ },
+ {
+ "no-geometry-hints", 'G', G_OPTION_FLAG_REVERSE,
+ G_OPTION_ARG_NONE, &use_geometry_hints,
+ "Allow the terminal to be resized to any dimension, not constrained to fit to an
integer multiple of characters",
+ NULL
+ },
+ {
+ "scrolled-window", 'W', 0,
+ G_OPTION_ARG_NONE, &use_scrolled_window,
+ "Use a GtkScrolledWindow as terminal container",
+ NULL
+ },
+ {
+ "scrollbar-policy", 'P', 0,
+ G_OPTION_ARG_STRING, &scrollbar_policy_string,
+ "Set the policy for the vertical scroolbar in the scrolled window (always|auto|never;
default:always)",
+ NULL
+ },
+ {
+ "object-notifications", 'N', 0,
+ G_OPTION_ARG_NONE, &show_object_notifications,
+ "Print VteTerminal object notifications",
+ NULL
+ },
+ {
+ "output-file", 0, 0,
+ G_OPTION_ARG_STRING, &output_file,
+ "Save terminal contents to file at exit", NULL
+ },
+ {
+ "pty-flags", 0, 0,
+ G_OPTION_ARG_STRING, &pty_flags_string,
+ "PTY flags set from default|no-utmp|no-wtmp|no-lastlog|no-helper|no-fallback", NULL
+ },
+ { NULL }
+ };
+ GOptionContext *context;
+ GError *error = NULL;
+ VteTerminalCursorBlinkMode cursor_blink_mode = VTE_CURSOR_BLINK_SYSTEM;
+ VteTerminalCursorShape cursor_shape = VTE_CURSOR_SHAPE_BLOCK;
+ GtkPolicyType scrollbar_policy = GTK_POLICY_ALWAYS;
+ VtePtyFlags pty_flags = VTE_PTY_DEFAULT;
+
+ /* Have to do this early. */
+ if (getenv("VTE_PROFILE_MEMORY")) {
+ if (atol(getenv("VTE_PROFILE_MEMORY")) != 0) {
+ g_mem_set_vtable(glib_mem_profiler_table);
+ }
+ }
+
+ context = g_option_context_new (" - test VTE terminal emulation");
+ g_option_context_add_main_entries (context, options, NULL);
+ g_option_context_add_group (context, gtk_get_option_group (TRUE));
+ g_option_context_parse (context, &argc, &argv, &error);
+ g_option_context_free (context);
+ if (error != NULL) {
+ g_printerr ("Failed to parse command line arguments: %s\n",
+ error->message);
+ g_error_free (error);
+ return 1;
+ }
+
+ if (cursor_blink_mode_string) {
+ cursor_blink_mode = parse_enum(VTE_TYPE_TERMINAL_CURSOR_BLINK_MODE, cursor_blink_mode_string);
+ g_free(cursor_blink_mode_string);
+ }
+ if (cursor_shape_string) {
+ cursor_shape = parse_enum(VTE_TYPE_TERMINAL_CURSOR_SHAPE, cursor_shape_string);
+ g_free(cursor_shape_string);
+ }
+ if (scrollbar_policy_string) {
+ scrollbar_policy = parse_enum(GTK_TYPE_POLICY_TYPE, scrollbar_policy_string);
+ g_free(scrollbar_policy_string);
+ }
+ if (pty_flags_string) {
+ pty_flags |= parse_flags(VTE_TYPE_PTY_FLAGS, pty_flags_string);
+ g_free(pty_flags_string);
+ }
+
+ if (!reverse) {
+ back.red = back.green = back.blue = 0xffff;
+ fore.red = fore.green = fore.blue = 0x0000;
+ } else {
+ back.red = back.green = back.blue = 0x0000;
+ fore.red = fore.green = fore.blue = 0xffff;
+ }
+
+ highlight.red = highlight.green = highlight.blue = 0xc000;
+ cursor.red = 0xffff;
+ cursor.green = cursor.blue = 0x8000;
+ tint.red = tint.green = tint.blue = 0;
+ tint = back;
+
+ gdk_window_set_debug_updates(debug);
+
+ /* Create a window to hold the scrolling shell, and hook its
+ * delete event to the quit function.. */
+ window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_container_set_resize_mode(GTK_CONTAINER(window),
+ GTK_RESIZE_IMMEDIATE);
+
+ /* Set ARGB colormap */
+ screen = gtk_widget_get_screen (window);
+#if GTK_CHECK_VERSION (2, 90, 8)
+ visual = gdk_screen_get_rgba_visual(screen);
+ if (visual)
+ gtk_widget_set_visual(GTK_WIDGET(window), visual);
+#else
+ colormap = gdk_screen_get_rgba_colormap (screen);
+ if (colormap)
+ gtk_widget_set_colormap(window, colormap);
+#endif
+
+ if (use_scrolled_window) {
+ scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),
+ GTK_POLICY_NEVER, scrollbar_policy);
+ gtk_container_add(GTK_CONTAINER(window), scrolled_window);
+ } else {
+ /* Create a box to hold everything. */
+ hbox = gtk_hbox_new(0, FALSE);
+ gtk_container_add(GTK_CONTAINER(window), hbox);
+ }
+
+ /* Create the terminal widget and add it to the scrolling shell. */
+ widget = vte_terminal_new();
+ terminal = VTE_TERMINAL (widget);
+ if (!dbuffer) {
+ gtk_widget_set_double_buffered(widget, dbuffer);
+ }
+ g_signal_connect(terminal, "child-exited", G_CALLBACK(child_exit_cb), NULL);
+ if (show_object_notifications)
+ g_signal_connect(terminal, "notify", G_CALLBACK(terminal_notify_cb), NULL);
+ if (use_scrolled_window) {
+ gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(terminal));
+ } else {
+ gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);
+ }
+
+ /* Connect to the "char_size_changed" signal to set geometry hints
+ * whenever the font used by the terminal is changed. */
+ if (use_geometry_hints) {
+ char_size_changed(widget, 0, 0, window);
+ g_signal_connect(widget, "char-size-changed",
+ G_CALLBACK(char_size_changed), window);
+ g_signal_connect(widget, "realize",
+ G_CALLBACK(char_size_realized), window);
+ }
+
+ /* Connect to the "window_title_changed" signal to set the main
+ * window's title. */
+ g_signal_connect(widget, "window-title-changed",
+ G_CALLBACK(window_title_changed), window);
+ if (icon_title) {
+ g_signal_connect(widget, "icon-title-changed",
+ G_CALLBACK(icon_title_changed), window);
+ }
+
+ /* Connect to the "status-line-changed" signal. */
+ g_signal_connect(widget, "status-line-changed",
+ G_CALLBACK(status_line_changed), widget);
+
+ /* Connect to the "button-press" event. */
+ g_signal_connect(widget, "button-press-event",
+ G_CALLBACK(button_pressed), widget);
+
+ /* Connect to application request signals. */
+ g_signal_connect(widget, "iconify-window",
+ G_CALLBACK(iconify_window), window);
+ g_signal_connect(widget, "deiconify-window",
+ G_CALLBACK(deiconify_window), window);
+ g_signal_connect(widget, "raise-window",
+ G_CALLBACK(raise_window), window);
+ g_signal_connect(widget, "lower-window",
+ G_CALLBACK(lower_window), window);
+ g_signal_connect(widget, "maximize-window",
+ G_CALLBACK(maximize_window), window);
+ g_signal_connect(widget, "restore-window",
+ G_CALLBACK(restore_window), window);
+ g_signal_connect(widget, "refresh-window",
+ G_CALLBACK(refresh_window), window);
+ g_signal_connect(widget, "resize-window",
+ G_CALLBACK(resize_window), window);
+ g_signal_connect(widget, "move-window",
+ G_CALLBACK(move_window), window);
+
+ /* Connect to font tweakage. */
+ g_signal_connect(widget, "increase-font-size",
+ G_CALLBACK(increase_font_size), window);
+ g_signal_connect(widget, "decrease-font-size",
+ G_CALLBACK(decrease_font_size), window);
+
+ if (!use_scrolled_window) {
+ /* Create the scrollbar for the widget. */
+ scrollbar = gtk_vscrollbar_new(terminal->adjustment);
+ gtk_box_pack_start(GTK_BOX(hbox), scrollbar, FALSE, FALSE, 0);
+ }
+
+ /* Set some defaults. */
+ vte_terminal_set_audible_bell(terminal, audible);
+ vte_terminal_set_visible_bell(terminal, !audible);
+ vte_terminal_set_cursor_blink_mode(terminal, cursor_blink_mode);
+ vte_terminal_set_scroll_background(terminal, scroll);
+ vte_terminal_set_scroll_on_output(terminal, FALSE);
+ vte_terminal_set_scroll_on_keystroke(terminal, TRUE);
+ vte_terminal_set_scrollback_lines(terminal, lines);
+ vte_terminal_set_mouse_autohide(terminal, TRUE);
+ if (background != NULL) {
+ vte_terminal_set_background_image_file(terminal,
+ background);
+ }
+ if (transparent) {
+ vte_terminal_set_background_transparent(terminal,
+ TRUE);
+ }
+ vte_terminal_set_background_tint_color(terminal, &tint);
+ vte_terminal_set_colors(terminal, &fore, &back, NULL, 0);
+ vte_terminal_set_opacity(terminal, 0xdddd);
+ if (highlight_set) {
+ vte_terminal_set_color_highlight(terminal,
+ &highlight);
+ }
+ if (cursor_set) {
+ vte_terminal_set_color_cursor(terminal, &cursor);
+ }
+ if (termcap != NULL) {
+ vte_terminal_set_emulation(terminal, termcap);
+ }
+ vte_terminal_set_cursor_shape(terminal, cursor_shape);
+
+ /* Set the default font. */
+ vte_terminal_set_font_from_string_full(terminal, font,
+ antialias ? VTE_ANTI_ALIAS_USE_DEFAULT :
VTE_ANTI_ALIAS_FORCE_DISABLE);
+
+ /* Match "abcdefg". */
+ if (dingus) {
+ int id;
+ GRegex *regex;
+ regex = g_regex_new (DINGUS1, 0, 0, NULL);
+ id = vte_terminal_match_add_gregex(terminal, regex, 0);
+ g_regex_unref (regex);
+ vte_terminal_match_set_cursor_type(terminal,
+ id, GDK_GUMBY);
+ regex = g_regex_new (DINGUS2, 0, 0, NULL);
+ id = vte_terminal_match_add_gregex(terminal, regex, 0);
+ g_regex_unref (regex);
+ vte_terminal_match_set_cursor_type(terminal,
+ id, GDK_HAND1);
+ }
+
+ if (console) {
+ /* Open a "console" connection. */
+ int consolefd = -1, yes = 1, watch;
+ GIOChannel *channel;
+ consolefd = open("/dev/console", O_RDONLY | O_NOCTTY);
+ if (consolefd != -1) {
+ /* Assume failure. */
+ console = FALSE;
+#ifdef TIOCCONS
+ if (ioctl(consolefd, TIOCCONS, &yes) != -1) {
+ /* Set up a listener. */
+ channel = g_io_channel_unix_new(consolefd);
+ watch = g_io_add_watch(channel,
+ G_IO_IN,
+ read_and_feed,
+ widget);
+ g_signal_connect(widget,
+ "eof",
+ G_CALLBACK(disconnect_watch),
+ GINT_TO_POINTER(watch));
+ g_signal_connect(widget,
+ "child-exited",
+ G_CALLBACK(disconnect_watch),
+ GINT_TO_POINTER(watch));
+ g_signal_connect(widget,
+ "realize",
+ G_CALLBACK(take_xconsole_ownership),
+ NULL);
+#ifdef VTE_DEBUG
+ vte_terminal_feed(terminal,
+ "Console log for ...\r\n",
+ -1);
+#endif
+ /* Record success. */
+ console = TRUE;
+ }
+#endif
+ } else {
+ /* Bail back to normal mode. */
+ g_warning(_("Could not open console.\n"));
+ close(consolefd);
+ console = FALSE;
+ }
+ }
+
+ if (!console) {
+ if (shell) {
+ GError *err = NULL;
+ char **command_argv = NULL;
+ int command_argc;
+ GPid pid = -1;
+
+ _VTE_DEBUG_IF(VTE_DEBUG_MISC)
+ vte_terminal_feed(terminal, message, -1);
+
+ if (command == NULL || *command == '\0')
+ command = vte_get_user_shell ();
+
+ if (command == NULL || *command == '\0')
+ command = g_getenv ("SHELL");
+
+ if (command == NULL || *command == '\0')
+ command = "/bin/sh";
+
+ if (!g_shell_parse_argv(command, &command_argc, &command_argv, &err) ||
+ !vte_terminal_fork_command_full(terminal,
+ pty_flags,
+ NULL,
+ command_argv,
+ env_add,
+ G_SPAWN_SEARCH_PATH,
+ NULL, NULL,
+ &pid,
+ &err)) {
+ g_warning("Failed to fork: %s\n", err->message);
+ g_error_free(err);
+ } else {
+ g_print("Fork succeeded, PID %d\n", pid);
+ }
+
+ g_strfreev(command_argv);
+ #ifdef VTE_DEBUG
+ if (command == NULL) {
+ vte_terminal_feed_child(terminal,
+ "pwd\n", -1);
+ }
+ #endif
+ } else {
+ long i;
+ i = vte_terminal_forkpty(terminal,
+ env_add, working_directory,
+ TRUE, TRUE, TRUE);
+ switch (i) {
+ case -1:
+ /* abnormal */
+ g_warning("Error in vte_terminal_forkpty(): %s",
+ strerror(errno));
+ break;
+ case 0:
+ /* child */
+ for (i = 0; ; i++) {
+ switch (i % 3) {
+ case 0:
+ case 1:
+ g_print("%ld\n", i);
+ break;
+ case 2:
+ g_printerr("%ld\n", i);
+ break;
+ }
+ sleep(1);
+ }
+ _exit(0);
+ break;
+ default:
+ g_print("Child PID is %ld (mine is %ld).\n",
+ (long) i, (long) getpid());
+ /* normal */
+ break;
+ }
+ }
+ }
+
+ g_object_set_data (G_OBJECT (widget), "output_file", (gpointer) output_file);
+
+ /* Go for it! */
+ g_signal_connect(widget, "child-exited", G_CALLBACK(child_exited), window);
+ g_signal_connect(window, "delete-event", G_CALLBACK(delete_event), widget);
+
+ add_weak_pointer(G_OBJECT(widget), &widget);
+ add_weak_pointer(G_OBJECT(window), &window);
+
+ gtk_widget_realize(widget);
+ if (geometry) {
+ if (!gtk_window_parse_geometry (GTK_WINDOW(window), geometry)) {
+ g_warning (_("Could not parse the geometry spec passed to --geometry"));
+ }
+ }
+#if GTK_CHECK_VERSION(2, 91, 0)
+ else {
+ /* As of GTK+ 2.91.0, the default size of a window comes from its minimum
+ * size not its natural size, so we need to set the right default size
+ * explicitly */
+ gtk_window_set_default_geometry (GTK_WINDOW (window),
+ vte_terminal_get_column_count (terminal),
+ vte_terminal_get_row_count (terminal));
+ }
+#endif
+
+ gtk_widget_show_all(window);
+
+ gtk_main();
+
+ g_assert(widget == NULL);
+ g_assert(window == NULL);
+
+ if (keep) {
+ while (TRUE) {
+ sleep(60);
+ }
+ }
+
+ return 0;
+}
diff --git a/vte/src/vtebg.c b/vte/src/vtebg.c
new file mode 100644
index 0000000..5eeb778
--- /dev/null
+++ b/vte/src/vtebg.c
@@ -0,0 +1,529 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include "debug.h"
+#include "marshal.h"
+#include "vtebg.h"
+#include "vte-gtk-compat.h"
+
+#ifdef GDK_WINDOWING_X11
+#include <gdk/gdkx.h>
+#include <cairo-xlib.h>
+#endif
+
+G_DEFINE_TYPE(VteBg, vte_bg, G_TYPE_OBJECT)
+
+struct _VteBgPrivate {
+ GList *cache;
+ GdkScreen *screen;
+#ifdef GDK_WINDOWING_X11
+ cairo_surface_t *root_surface;
+ struct {
+ GdkDisplay *display;
+ GdkWindow *window;
+ XID native_window;
+ GdkAtom atom;
+ Atom native_atom;
+ } native;
+#endif
+};
+
+typedef struct {
+ VteBgSourceType source_type;
+ GdkPixbuf *source_pixbuf;
+ char *source_file;
+
+ PangoColor tint_color;
+ double saturation;
+ cairo_surface_t *surface;
+} VteBgCacheItem;
+
+static void vte_bg_cache_item_free(VteBgCacheItem *item);
+static void vte_bg_cache_prune_int(VteBg *bg, gboolean root);
+static const cairo_user_data_key_t item_surface_key;
+
+#ifdef GDK_WINDOWING_X11
+
+static void
+_vte_bg_display_sync(VteBg *bg)
+{
+ VteBgPrivate *pvt = bg->pvt;
+
+ gdk_display_sync(pvt->native.display);
+}
+
+static gboolean
+_vte_property_get_pixmaps(GdkWindow *window, GdkAtom atom,
+ GdkAtom *type, int *size,
+ XID **pixmaps)
+{
+ return gdk_property_get(window, atom, GDK_TARGET_PIXMAP,
+ 0, INT_MAX - 3,
+ FALSE,
+ type, NULL, size,
+ (guchar**) pixmaps);
+}
+
+static cairo_surface_t *
+vte_bg_root_surface(VteBg *bg)
+{
+ VteBgPrivate *pvt = bg->pvt;
+ GdkAtom prop_type;
+ int prop_size;
+ Window root;
+ XID *pixmaps;
+ int x, y;
+ unsigned int width, height, border_width, depth;
+ cairo_surface_t *surface = NULL;
+ Display *display;
+ Screen *screen;
+
+ pixmaps = NULL;
+ gdk_error_trap_push();
+ if (!_vte_property_get_pixmaps(pvt->native.window, pvt->native.atom,
+ &prop_type, &prop_size,
+ &pixmaps))
+ goto out;
+
+ if ((prop_type != GDK_TARGET_PIXMAP) ||
+ (prop_size < (int)sizeof(XID) ||
+ (pixmaps == NULL)))
+ goto out_pixmaps;
+
+ if (!XGetGeometry (GDK_DISPLAY_XDISPLAY (pvt->native.display),
+ pixmaps[0], &root,
+ &x, &y, &width, &height, &border_width, &depth))
+ goto out_pixmaps;
+
+ display = gdk_x11_display_get_xdisplay (pvt->native.display);
+ screen = gdk_x11_screen_get_xscreen (pvt->screen);
+ surface = cairo_xlib_surface_create (display,
+ pixmaps[0],
+ DefaultVisualOfScreen(screen),
+ width, height);
+
+ _vte_debug_print(VTE_DEBUG_BG|VTE_DEBUG_EVENTS,
+ "VteBg new background image %dx%d\n", width, height);
+
+ out_pixmaps:
+ g_free(pixmaps);
+ out:
+ _vte_bg_display_sync(bg);
+ gdk_error_trap_pop_ignored ();
+
+ return surface;
+}
+
+static void
+vte_bg_set_root_surface(VteBg *bg, cairo_surface_t *surface)
+{
+ VteBgPrivate *pvt = bg->pvt;
+
+ if (pvt->root_surface != NULL) {
+ cairo_surface_destroy (pvt->root_surface);
+ }
+ pvt->root_surface = surface;
+ vte_bg_cache_prune_int (bg, TRUE);
+ g_signal_emit_by_name(bg, "root-pixmap-changed");
+}
+
+static GdkFilterReturn
+vte_bg_root_filter(GdkXEvent *native, GdkEvent *event, gpointer data)
+{
+ XEvent *xevent = (XEvent*) native;
+ VteBg *bg;
+ VteBgPrivate *pvt;
+ cairo_surface_t *surface;
+
+ switch (xevent->type) {
+ case PropertyNotify:
+ bg = VTE_BG(data);
+ pvt = bg->pvt;
+ if ((xevent->xproperty.window == pvt->native.native_window) &&
+ (xevent->xproperty.atom == pvt->native.native_atom)) {
+ surface = vte_bg_root_surface(bg);
+ vte_bg_set_root_surface(bg, surface);
+ }
+ break;
+ default:
+ break;
+ }
+ return GDK_FILTER_CONTINUE;
+}
+
+#endif /* GDK_WINDOWING_X11 */
+
+static void
+vte_bg_finalize (GObject *obj)
+{
+ VteBg *bg = VTE_BG (obj);
+ VteBgPrivate *pvt = bg->pvt;
+
+ g_list_foreach (pvt->cache, (GFunc)vte_bg_cache_item_free, NULL);
+ g_list_free (pvt->cache);
+
+ G_OBJECT_CLASS(vte_bg_parent_class)->finalize (obj);
+}
+
+static void
+vte_bg_class_init(VteBgClass *klass)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
+
+ gobject_class->finalize = vte_bg_finalize;
+
+ g_signal_new("root-pixmap-changed",
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+ g_type_class_add_private(klass, sizeof (VteBgPrivate));
+}
+
+static void
+vte_bg_init(VteBg *bg)
+{
+ bg->pvt = G_TYPE_INSTANCE_GET_PRIVATE (bg, VTE_TYPE_BG, VteBgPrivate);
+}
+
+/**
+ * vte_bg_get:
+ * @screen: a #GdkScreen
+ *
+ * Returns the global #VteBg object for @screen, creating it if necessary.
+ *
+ * Returns: (transfer none): a #VteBg
+ */
+VteBg *
+vte_bg_get_for_screen(GdkScreen *screen)
+{
+ VteBg *bg;
+
+ bg = g_object_get_data(G_OBJECT(screen), "vte-bg");
+ if (G_UNLIKELY(bg == NULL)) {
+ VteBgPrivate *pvt;
+
+ bg = g_object_new(VTE_TYPE_BG, NULL);
+ g_object_set_data_full(G_OBJECT(screen),
+ "vte-bg", bg, (GDestroyNotify)g_object_unref);
+
+ /* connect bg to screen */
+ pvt = bg->pvt;
+ pvt->screen = screen;
+#ifdef GDK_WINDOWING_X11
+ {
+ GdkEventMask events;
+ GdkWindow *window;
+
+ window = gdk_screen_get_root_window(screen);
+ pvt->native.window = window;
+#if GTK_CHECK_VERSION (2, 91, 6)
+ pvt->native.native_window = GDK_WINDOW_XID (window);
+ pvt->native.display = gdk_window_get_display(window);
+#else
+ pvt->native.native_window = gdk_x11_drawable_get_xid(window);
+ pvt->native.display = gdk_drawable_get_display(GDK_DRAWABLE(window));
+#endif
+ pvt->native.native_atom = gdk_x11_get_xatom_by_name_for_display(pvt->native.display,
"_XROOTPMAP_ID");
+ pvt->native.atom = gdk_x11_xatom_to_atom_for_display(pvt->native.display,
pvt->native.native_atom);
+ pvt->root_surface = vte_bg_root_surface(bg);
+ events = gdk_window_get_events(window);
+ events |= GDK_PROPERTY_CHANGE_MASK;
+ gdk_window_set_events(window, events);
+ gdk_window_add_filter(window, vte_bg_root_filter, bg);
+ }
+#endif /* GDK_WINDOWING_X11 */
+ }
+
+ return bg;
+}
+
+static gboolean
+vte_bg_colors_equal(const PangoColor *a, const PangoColor *b)
+{
+ return (a->red >> 8) == (b->red >> 8) &&
+ (a->green >> 8) == (b->green >> 8) &&
+ (a->blue >> 8) == (b->blue >> 8);
+}
+
+static void
+vte_bg_cache_item_free(VteBgCacheItem *item)
+{
+ _vte_debug_print(VTE_DEBUG_BG,
+ "VteBgCacheItem %p freed\n", item);
+
+ /* Clean up whatever is left in the structure. */
+ if (item->source_pixbuf != NULL) {
+ g_object_remove_weak_pointer(G_OBJECT(item->source_pixbuf),
+ (gpointer*)(void*)&item->source_pixbuf);
+ }
+ g_free(item->source_file);
+
+ if (item->surface != NULL)
+ cairo_surface_set_user_data (item->surface,
+ &item_surface_key, NULL, NULL);
+
+ g_slice_free(VteBgCacheItem, item);
+}
+
+static void
+vte_bg_cache_prune_int(VteBg *bg, gboolean root)
+{
+ GList *i, *next;
+ for (i = bg->pvt->cache; i != NULL; i = next) {
+ VteBgCacheItem *item = i->data;
+ next = g_list_next (i);
+ /* Prune the item if either it is a "root pixmap" item and
+ * we want to prune them, or its surface is NULL because
+ * whichever object it created has been destroyed. */
+ if ((root && (item->source_type == VTE_BG_SOURCE_ROOT)) ||
+ item->surface == NULL) {
+ vte_bg_cache_item_free (item);
+ bg->pvt->cache = g_list_delete_link(bg->pvt->cache, i);
+ }
+ }
+}
+
+static void
+vte_bg_cache_prune(VteBg *bg)
+{
+ vte_bg_cache_prune_int(bg, FALSE);
+}
+
+static void item_surface_destroy_func(void *data)
+{
+ VteBgCacheItem *item = data;
+
+ _vte_debug_print(VTE_DEBUG_BG,
+ "VteBgCacheItem %p surface destroyed\n", item);
+
+ item->surface = NULL;
+}
+
+/*
+ * vte_bg_cache_add:
+ * @bg: a #VteBg
+ * @item: a #VteBgCacheItem
+ *
+ * Adds @item to @bg's cache, instructing all of the objects therein to
+ * clear the field which holds a pointer to the object upon its destruction.
+ */
+static void
+vte_bg_cache_add(VteBg *bg, VteBgCacheItem *item)
+{
+ vte_bg_cache_prune(bg);
+ bg->pvt->cache = g_list_prepend(bg->pvt->cache, item);
+ if (item->source_pixbuf != NULL) {
+ g_object_add_weak_pointer(G_OBJECT(item->source_pixbuf),
+ (gpointer*)(void*)&item->source_pixbuf);
+ }
+
+ if (item->surface != NULL)
+ cairo_surface_set_user_data (item->surface, &item_surface_key, item,
+ item_surface_destroy_func);
+}
+
+/*
+ * vte_bg_cache_search:
+ * @bg: a #VteBg
+ * @source_type: a #VteBgSourceType
+ * @source_pixbuf: a #GdkPixbuf, or %NULL
+ * @source_file: path of an image file, or %NULL
+ * @tint: a #PangoColor to use as tint color
+ * @saturation: the saturation as a value between 0.0 and 1.0
+ *
+ * Returns: a reference to a #cairo_surface_t, or %NULL on if
+ * there is no matching item in the cache
+ */
+static cairo_surface_t *
+vte_bg_cache_search(VteBg *bg,
+ VteBgSourceType source_type,
+ const GdkPixbuf *source_pixbuf,
+ const char *source_file,
+ const PangoColor *tint,
+ double saturation)
+{
+ GList *i;
+
+ vte_bg_cache_prune(bg);
+ for (i = bg->pvt->cache; i != NULL; i = g_list_next(i)) {
+ VteBgCacheItem *item = i->data;
+ if (vte_bg_colors_equal(&item->tint_color, tint) &&
+ (saturation == item->saturation) &&
+ (source_type == item->source_type)) {
+ switch (source_type) {
+ case VTE_BG_SOURCE_ROOT:
+ break;
+ case VTE_BG_SOURCE_PIXBUF:
+ if (item->source_pixbuf != source_pixbuf) {
+ continue;
+ }
+ break;
+ case VTE_BG_SOURCE_FILE:
+ if (strcmp(item->source_file, source_file)) {
+ continue;
+ }
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+
+ return cairo_surface_reference(item->surface);
+ }
+ }
+ return NULL;
+}
+
+/*< private >
+ * vte_bg_get_surface:
+ * @bg: a #VteBg
+ * @source_type: a #VteBgSourceType
+ * @source_pixbuf: (allow-none): a #GdkPixbuf, or %NULL
+ * @source_file: (allow-none): path of an image file, or %NULL
+ * @tint: a #PangoColor to use as tint color
+ * @saturation: the saturation as a value between 0.0 and 1.0
+ * @other: a #cairo_surface_t
+ *
+ * Returns: a reference to a #cairo_surface_t, or %NULL on failure
+ */
+cairo_surface_t *
+vte_bg_get_surface(VteBg *bg,
+ VteBgSourceType source_type,
+ GdkPixbuf *source_pixbuf,
+ const char *source_file,
+ const PangoColor *tint,
+ double saturation,
+ cairo_surface_t *other)
+{
+ VteBgPrivate *pvt;
+ VteBgCacheItem *item;
+ GdkPixbuf *pixbuf;
+ cairo_surface_t *cached;
+ cairo_t *cr;
+ int width, height;
+
+ g_return_val_if_fail(VTE_IS_BG(bg), NULL);
+ pvt = bg->pvt;
+
+ if (source_type == VTE_BG_SOURCE_NONE) {
+ return NULL;
+ }
+#ifndef GDK_WINDOWING_X11
+ if (source_type == VTE_BG_SOURCE_ROOT) {
+ return NULL;
+ }
+#endif
+
+ cached = vte_bg_cache_search(bg, source_type,
+ source_pixbuf, source_file,
+ tint, saturation);
+ if (cached != NULL) {
+ return cached;
+ }
+
+ /* FIXME: The above only returned a hit when the source *and*
+ * tint and saturation matched. This means that for VTE_BG_SOURCE_FILE,
+ * we will create below *another* #GdkPixbuf for the same source file,
+ * wasting memory. We should instead look up the source pixbuf regardless
+ * of tint and saturation, and just create a new #VteBgCacheItem
+ * with a new surface for it.
+ */
+
+ item = g_slice_new(VteBgCacheItem);
+ item->source_type = source_type;
+ item->source_pixbuf = NULL;
+ item->source_file = NULL;
+ item->tint_color = *tint;
+ item->saturation = saturation;
+ item->surface = NULL;
+ pixbuf = NULL;
+
+ switch (source_type) {
+ case VTE_BG_SOURCE_ROOT:
+ break;
+ case VTE_BG_SOURCE_PIXBUF:
+ item->source_pixbuf = g_object_ref (source_pixbuf);
+ pixbuf = g_object_ref (source_pixbuf);
+ break;
+ case VTE_BG_SOURCE_FILE:
+ if (source_file != NULL && source_file[0] != '\0') {
+ item->source_file = g_strdup(source_file);
+ pixbuf = gdk_pixbuf_new_from_file(source_file, NULL);
+ }
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+
+ if (pixbuf) {
+ width = gdk_pixbuf_get_width(pixbuf);
+ height = gdk_pixbuf_get_height(pixbuf);
+ }
+#ifdef GDK_WINDOWING_X11
+ else if (source_type == VTE_BG_SOURCE_ROOT &&
+ pvt->root_surface != NULL) {
+ width = cairo_xlib_surface_get_width(pvt->root_surface);
+ height = cairo_xlib_surface_get_height(pvt->root_surface);
+ }
+#endif
+ else
+ goto out;
+
+ item->surface =
+ cairo_surface_create_similar(other, CAIRO_CONTENT_COLOR_ALPHA,
+ width, height);
+
+ cr = cairo_create (item->surface);
+ cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
+ if (pixbuf)
+ gdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
+#ifdef GDK_WINDOWING_X11
+ else if (source_type == VTE_BG_SOURCE_ROOT)
+ cairo_set_source_surface (cr, pvt->root_surface, 0, 0);
+#endif
+ cairo_paint (cr);
+
+ if (saturation < 1.0) {
+ cairo_set_source_rgba (cr,
+ tint->red / 65535.,
+ tint->green / 65535.,
+ tint->blue / 65535.,
+ 1 - saturation);
+ cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
+ cairo_paint (cr);
+ }
+ cairo_destroy (cr);
+
+ out:
+ vte_bg_cache_add(bg, item);
+
+ if (pixbuf)
+ g_object_unref (pixbuf);
+
+ return item->surface;
+}
diff --git a/vte/src/vtebg.h b/vte/src/vtebg.h
new file mode 100644
index 0000000..f2cf77b
--- /dev/null
+++ b/vte/src/vtebg.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef vte_vtebg_included
+#define vte_vtebg_included
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define VTE_TYPE_BG (vte_bg_get_type())
+#define VTE_BG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VTE_TYPE_BG, VteBg))
+#define VTE_BG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VTE_TYPE_BG, VteBgClass))
+#define VTE_IS_BG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VTE_TYPE_BG))
+#define VTE_IS_BG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VTE_TYPE_BG))
+#define VTE_BG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VTE_TYPE_BG, VteBgClass))
+
+typedef struct _VteBg VteBg;
+typedef struct _VteBgPrivate VteBgPrivate;
+typedef struct _VteBgClass VteBgClass;
+
+struct _VteBg {
+ GObject parent;
+
+ /*< private >*/
+ VteBgPrivate *pvt;
+};
+
+struct _VteBgClass {
+ GObjectClass parent_class;
+};
+
+GType vte_bg_get_type(void);
+
+VteBg *vte_bg_get_for_screen(GdkScreen *screen);
+
+typedef enum {
+ VTE_BG_SOURCE_NONE,
+ VTE_BG_SOURCE_ROOT,
+ VTE_BG_SOURCE_PIXBUF,
+ VTE_BG_SOURCE_FILE
+} VteBgSourceType;
+
+cairo_surface_t *
+vte_bg_get_surface(VteBg *bg,
+ VteBgSourceType source_type,
+ GdkPixbuf *source_pixbuf,
+ const char *source_file,
+ const PangoColor *tint,
+ double saturation,
+ cairo_surface_t *other);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vteconv.c b/vte/src/vteconv.c
new file mode 100644
index 0000000..2b91d33
--- /dev/null
+++ b/vte/src/vteconv.c
@@ -0,0 +1,615 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+
+#include <config.h>
+#include <sys/types.h>
+#include <errno.h>
+#include <string.h>
+#include <glib.h>
+#include "buffer.h"
+#include "vteconv.h"
+#include "vte-private.h"
+
+typedef size_t (*convert_func)(GIConv converter,
+ const guchar **inbuf,
+ gsize *inbytes_left,
+ guchar **outbuf,
+ gsize *outbytes_left);
+struct _VteConv {
+ GIConv conv;
+ convert_func convert;
+ gint (*close)(GIConv converter);
+ gboolean in_unichar, out_unichar;
+ VteBuffer *in_scratch, *out_scratch;
+};
+
+/* We can't use g_utf8_strlen as that's not nul-safe :( */
+static glong
+_vte_conv_utf8_strlen(const gchar *p, gssize max)
+{
+ const gchar *q = p + max;
+ glong length = -1;
+ do {
+ length++;
+ p = g_utf8_next_char(p);
+ } while (p < q);
+ return length;
+}
+
+/* A bogus UTF-8 to UTF-8 conversion function which attempts to provide the
+ * same semantics as g_iconv(). */
+static size_t
+_vte_conv_utf8_utf8(GIConv converter,
+ const gchar **inbuf,
+ gsize *inbytes_left,
+ gchar **outbuf,
+ gsize *outbytes_left)
+{
+ gboolean validated;
+ const gchar *endptr;
+ size_t bytes;
+ guint skip;
+
+ /* We don't tolerate shenanigans! */
+ g_assert(*outbytes_left >= *inbytes_left);
+
+ /* The only error we can throw is EILSEQ, so check for that here. */
+ validated = g_utf8_validate(*inbuf, *inbytes_left, &endptr);
+
+ /* Copy whatever data was validated. */
+ bytes = endptr - *inbuf;
+ memcpy(*outbuf, *inbuf, bytes);
+ *inbuf += bytes;
+ *outbuf += bytes;
+ *outbytes_left -= bytes;
+ *inbytes_left -= bytes;
+
+ /* Return 0 (number of non-reversible conversions performed) if everything
+ * looked good, else EILSEQ. */
+ if (validated) {
+ return 0;
+ }
+
+ /* Determine why the end of the string is not valid.
+ * We are pur b@stards for running g_utf8_next_char() on an
+ * invalid sequence. */
+ skip = g_utf8_next_char(*inbuf) - *inbuf;
+ if (skip > *inbytes_left) {
+ /* We didn't have enough bytes to validate the character.
+ * That qualifies for EINVAL, but only if the part of the
+ * character that we have is a valid prefix to a character.
+ * Differentiating those requires verifying that all the
+ * remaining bytes after this one are UTF-8 continuation
+ * bytes. Actually even that is not quite enough as not
+ * all continuation bytes are valid in the most strict
+ * interpretation of UTF-8, but we don't care about that.
+ */
+ size_t i;
+
+ for (i = 1; i < *inbytes_left; i++)
+ if (((*inbuf)[i] & 0xC0) != 0x80) {
+ /* Not a continuation byte */
+ errno = EILSEQ;
+ return (size_t) -1;
+ }
+
+ errno = EINVAL;
+ } else {
+ /* We had enough bytes to validate the character, and
+ * it failed. It just doesn't look right. */
+ errno = EILSEQ;
+ }
+ return (size_t) -1;
+}
+
+/* Open a conversion descriptor which, in addition to normal cases, provides
+ * UTF-8 to UTF-8 conversions and a gunichar-compatible source and target
+ * encoding. */
+VteConv
+_vte_conv_open(const char *target, const char *source)
+{
+ VteConv ret;
+ GIConv conv;
+ gboolean in_unichar, out_unichar, utf8;
+ const char *real_target, *real_source;
+
+ /* No shenanigans. */
+ g_assert(target != NULL);
+ g_assert(source != NULL);
+ g_assert(strlen(target) > 0);
+ g_assert(strlen(source) > 0);
+
+ /* Assume normal iconv usage. */
+ in_unichar = FALSE;
+ out_unichar = FALSE;
+ real_source = source;
+ real_target = target;
+
+ /* Determine if we need to convert gunichars to UTF-8 on input. */
+ if (strcmp(target, VTE_CONV_GUNICHAR_TYPE) == 0) {
+ real_target = "UTF-8";
+ out_unichar = TRUE;
+ }
+
+ /* Determine if we need to convert UTF-8 to gunichars on output. */
+ if (strcmp(source, VTE_CONV_GUNICHAR_TYPE) == 0) {
+ real_source = "UTF-8";
+ in_unichar = TRUE;
+ }
+
+ /* Determine if this is a UTF-8 to UTF-8 conversion. */
+ utf8 = ((g_ascii_strcasecmp(real_target, "UTF-8") == 0) &&
+ (g_ascii_strcasecmp(real_source, "UTF-8") == 0));
+
+ /* If we're doing UTF-8 to UTF-8, just use a dummy function which
+ * checks for bad data. */
+ conv = NULL;
+ if (!utf8) {
+ char *translit_target = g_strdup_printf ("%s//translit", real_target);
+ conv = g_iconv_open(translit_target, real_source);
+ g_free (translit_target);
+ if (conv == ((GIConv) -1)) {
+ conv = g_iconv_open(real_target, real_source);
+ }
+ if (conv == ((GIConv) -1)) {
+ return VTE_INVALID_CONV;
+ }
+ }
+
+ /* Set up the descriptor. */
+ ret = g_slice_new0(struct _VteConv);
+ if (utf8) {
+ ret->conv = NULL;
+ ret->convert = (convert_func) _vte_conv_utf8_utf8;
+ ret->close = NULL;
+ } else {
+ g_assert((conv != NULL) && (conv != ((GIConv) -1)));
+ ret->conv = conv;
+ ret->convert = (convert_func) g_iconv;
+ ret->close = g_iconv_close;
+ }
+
+ /* Initialize other elements. */
+ ret->in_unichar = in_unichar;
+ ret->out_unichar = out_unichar;
+
+ /* Create scratch buffers. */
+ ret->in_scratch = _vte_buffer_new();
+ ret->out_scratch = _vte_buffer_new();
+
+ return ret;
+}
+
+gint
+_vte_conv_close(VteConv converter)
+{
+ g_assert(converter != NULL);
+ g_assert(converter != VTE_INVALID_CONV);
+
+ /* Close the underlying descriptor, if there is one. */
+ if (converter->conv != NULL) {
+ g_assert(converter->close != NULL);
+ converter->close(converter->conv);
+ }
+
+ /* Free the scratch buffers. */
+ _vte_buffer_free(converter->in_scratch);
+ _vte_buffer_free(converter->out_scratch);
+
+ /* Free the structure itself. */
+ g_slice_free(struct _VteConv, converter);
+
+ return 0;
+}
+
+size_t
+_vte_conv(VteConv converter,
+ const guchar **inbuf, gsize *inbytes_left,
+ guchar **outbuf, gsize *outbytes_left)
+{
+ size_t ret, tmp;
+ const guchar *work_inbuf_start, *work_inbuf_working;
+ guchar *work_outbuf_start, *work_outbuf_working;
+ gsize work_inbytes, work_outbytes;
+ gsize in_converted, out_converted;
+
+ g_assert(converter != NULL);
+ g_assert(converter != VTE_INVALID_CONV);
+
+ work_inbuf_start = work_inbuf_working = *inbuf;
+ work_outbuf_start = work_outbuf_working = *outbuf;
+ work_inbytes = *inbytes_left;
+ work_outbytes = *outbytes_left;
+ in_converted = 0;
+ out_converted = 0;
+
+ /* Possibly convert the input data from gunichars to UTF-8. */
+ if (converter->in_unichar) {
+ int i, char_count;
+ guchar *p, *end;
+ gunichar *g;
+ /* Make sure the scratch buffer has enough space. */
+ char_count = *inbytes_left / sizeof(gunichar);
+ _vte_buffer_set_minimum_size(converter->in_scratch,
+ (char_count + 1) * VTE_UTF8_BPC);
+ /* Convert the incoming text. */
+ g = (gunichar*) *inbuf;
+ p = converter->in_scratch->data;
+ end = p + (char_count + 1) * VTE_UTF8_BPC;
+ for (i = 0; i < char_count; i++) {
+ p += g_unichar_to_utf8(g[i], (gchar *)p);
+ g_assert(p <= end);
+ }
+ /* Update our working pointers. */
+ work_inbuf_start = converter->in_scratch->data;
+ work_inbuf_working = work_inbuf_start;
+ work_inbytes = p - work_inbuf_start;
+ }
+
+ /* Possibly set the output pointers to point at our scratch buffer. */
+ if (converter->out_unichar) {
+ work_outbytes = *outbytes_left * VTE_UTF8_BPC;
+ _vte_buffer_set_minimum_size(converter->out_scratch,
+ work_outbytes);
+ work_outbuf_start = converter->out_scratch->data;
+ work_outbuf_working = work_outbuf_start;
+ }
+
+ /* Call the underlying conversion. */
+ ret = 0;
+ do {
+ tmp = converter->convert(converter->conv,
+ &work_inbuf_working,
+ &work_inbytes,
+ &work_outbuf_working,
+ &work_outbytes);
+ if (tmp == (size_t) -1) {
+ /* Check for zero bytes, which we pass right through. */
+ if (errno == EILSEQ) {
+ if ((work_inbytes > 0) &&
+ (work_inbuf_working[0] == '\0') &&
+ (work_outbytes > 0)) {
+ work_outbuf_working[0] = '\0';
+ work_outbuf_working++;
+ work_inbuf_working++;
+ work_outbytes--;
+ work_inbytes--;
+ ret++;
+ } else {
+ /* No go. */
+ ret = -1;
+ break;
+ }
+ } else {
+ ret = -1;
+ break;
+ }
+ } else {
+ ret += tmp;
+ break;
+ }
+ } while (work_inbytes > 0);
+
+ /* We can't handle this particular failure, and it should
+ * never happen. (If it does, our caller needs fixing.) */
+ g_assert((ret != (size_t)-1) || (errno != E2BIG));
+
+ /* Possibly convert the output from UTF-8 to gunichars. */
+ if (converter->out_unichar) {
+ int left = *outbytes_left;
+ gunichar *g;
+ gchar *p;
+
+ g = (gunichar*) *outbuf;
+ for(p = (gchar *)work_outbuf_start;
+ p < (gchar *)work_outbuf_working;
+ p = g_utf8_next_char(p)) {
+ g_assert(left>=0);
+ *g++ = g_utf8_get_char(p);
+ left -= sizeof(gunichar);
+ }
+ *outbytes_left = left;
+ *outbuf = (guchar*) g;
+ } else {
+ /* Pass on the output results. */
+ *outbuf = work_outbuf_working;
+ *outbytes_left -= (work_outbuf_working - work_outbuf_start);
+ }
+
+ /* Advance the input pointer to the right place. */
+ if (converter->in_unichar) {
+ /* Get an idea of how many characters were converted, and
+ * advance the pointer as required. */
+ int chars;
+ chars = _vte_conv_utf8_strlen((const gchar *)work_inbuf_start,
+ work_inbuf_working - work_inbuf_start);
+ *inbuf += (sizeof(gunichar) * chars);
+ *inbytes_left -= (sizeof(gunichar) * chars);
+ } else {
+ /* Pass on the input results. */
+ *inbuf = work_inbuf_working;
+ *inbytes_left -= (work_inbuf_working - work_inbuf_start);
+ }
+
+ return ret;
+}
+
+size_t
+_vte_conv_cu(VteConv converter,
+ const guchar **inbuf, gsize *inbytes_left,
+ gunichar **outbuf, gsize *outbytes_left)
+{
+ return _vte_conv(converter,
+ inbuf, inbytes_left,
+ (guchar**)outbuf, outbytes_left);
+}
+
+size_t
+_vte_conv_uu(VteConv converter,
+ const gunichar **inbuf, gsize *inbytes_left,
+ gunichar **outbuf, gsize *outbytes_left)
+{
+ return _vte_conv(converter,
+ (const guchar**)inbuf, inbytes_left,
+ (guchar**)outbuf, outbytes_left);
+}
+
+size_t
+_vte_conv_uc(VteConv converter,
+ const gunichar **inbuf, gsize *inbytes_left,
+ guchar **outbuf, gsize *outbytes_left)
+{
+ return _vte_conv(converter,
+ (const guchar**)inbuf, inbytes_left,
+ outbuf, outbytes_left);
+}
+
+#ifdef VTECONV_MAIN
+static void
+clear(gunichar wide[5], gchar narrow[5])
+{
+ wide[0] = 'T';
+ wide[1] = 'E';
+ wide[2] = 'S';
+ wide[3] = 'T';
+ wide[4] = '\0';
+ strcpy(narrow, "test");
+}
+
+static int
+mixed_strcmp(gunichar *wide, gchar *narrow)
+{
+ while (*wide && *narrow) {
+ if (*wide != *narrow) {
+ return -1;
+ }
+ wide++;
+ narrow++;
+ }
+ return 0;
+}
+
+int
+main(int argc, char **argv)
+{
+ gunichar wide_test[5];
+ gchar narrow_test[5], buf[10];
+ VteConv conv;
+ gchar *inbuf, *outbuf;
+ gsize inbytes, outbytes;
+ char mbyte_test[] = {0xe2, 0x94, 0x80};
+ char mbyte_test_break[] = {0xe2, 0xe2, 0xe2};
+ int i;
+
+ i = _vte_conv_utf8_strlen("\0\0\0\0", 4);
+ g_assert(i == 4);
+ i = _vte_conv_utf8_strlen("\0A\0\0", 4);
+ g_assert(i == 4);
+ i = _vte_conv_utf8_strlen("\0A\0B", 4);
+ g_assert(i == 4);
+ i = _vte_conv_utf8_strlen("A\0B\0", 4);
+ g_assert(i == 4);
+ i = _vte_conv_utf8_strlen("ABCDE", 4);
+ g_assert(i == 4);
+
+ /* Test g_iconv, no gunichar stuff. */
+ clear(wide_test, narrow_test);
+ memset(buf, 0, sizeof(buf));
+ inbuf = narrow_test;
+ inbytes = strlen(narrow_test);
+ outbuf = buf;
+ outbytes = sizeof(buf);
+ conv = _vte_conv_open("UTF-8", "ISO-8859-1");
+ i = _vte_conv(conv, &inbuf, &inbytes, &outbuf, &outbytes);
+ g_assert(inbytes == 0);
+ if (strcmp(narrow_test, buf) != 0) {
+ g_error("Conversion 1 failed.\n");
+ }
+ _vte_conv_close(conv);
+
+ /* Test g_iconv, no gunichar stuff. */
+ clear(wide_test, narrow_test);
+ memset(buf, 0, sizeof(buf));
+ inbuf = narrow_test;
+ inbytes = strlen(narrow_test);
+ outbuf = buf;
+ outbytes = sizeof(buf);
+ conv = _vte_conv_open("ISO-8859-1", "UTF-8");
+ i = _vte_conv(conv, &inbuf, &inbytes, &outbuf, &outbytes);
+ g_assert(inbytes == 0);
+ if (strcmp(narrow_test, buf) != 0) {
+ g_error("Conversion 2 failed.\n");
+ }
+ _vte_conv_close(conv);
+
+ /* Test g_iconv + gunichar stuff. */
+ clear(wide_test, narrow_test);
+ memset(buf, 0, sizeof(buf));
+ inbuf = narrow_test;
+ inbytes = strlen(narrow_test);
+ outbuf = (gchar*) wide_test;
+ outbytes = sizeof(wide_test);
+ conv = _vte_conv_open(VTE_CONV_GUNICHAR_TYPE, "ISO-8859-1");
+ i = _vte_conv(conv, &inbuf, &inbytes, &outbuf, &outbytes);
+ g_assert(inbytes == 0);
+ if (mixed_strcmp(wide_test, narrow_test) != 0) {
+ g_error("Conversion 3 failed.\n");
+ }
+ _vte_conv_close(conv);
+
+ /* Test g_iconv + gunichar stuff. */
+ clear(wide_test, narrow_test);
+ memset(buf, 0, sizeof(buf));
+ inbuf = (gchar*) wide_test;
+ inbytes = 4 * sizeof(gunichar);
+ outbuf = buf;
+ outbytes = sizeof(buf);
+ conv = _vte_conv_open("ISO-8859-1", VTE_CONV_GUNICHAR_TYPE);
+ i = _vte_conv(conv, &inbuf, &inbytes, &outbuf, &outbytes);
+ g_assert(inbytes == 0);
+ if (mixed_strcmp(wide_test, buf) != 0) {
+ g_error("Conversion 4 failed.\n");
+ }
+ _vte_conv_close(conv);
+
+ /* Test UTF-8 to UTF-8 "conversion". */
+ clear(wide_test, narrow_test);
+ memset(buf, 0, sizeof(buf));
+ inbuf = (gchar*) narrow_test;
+ inbytes = strlen(narrow_test);
+ outbuf = buf;
+ outbytes = sizeof(buf);
+ conv = _vte_conv_open("UTF-8", "UTF-8");
+ i = _vte_conv(conv, &inbuf, &inbytes, &outbuf, &outbytes);
+ g_assert(inbytes == 0);
+ if (strcmp(narrow_test, buf) != 0) {
+ g_error("Conversion 5 failed.\n");
+ }
+ _vte_conv_close(conv);
+
+ /* Test zero-byte pass-through. */
+ clear(wide_test, narrow_test);
+ memset(wide_test, 0, sizeof(wide_test));
+ inbuf = (gchar*) wide_test;
+ inbytes = 3 * sizeof(gunichar);
+ outbuf = narrow_test;
+ outbytes = sizeof(narrow_test);
+ conv = _vte_conv_open("UTF-8", VTE_CONV_GUNICHAR_TYPE);
+ i = _vte_conv(conv, &inbuf, &inbytes, &outbuf, &outbytes);
+ g_assert(inbytes == 0);
+ if ((narrow_test[0] != 0) ||
+ (narrow_test[1] != 0) ||
+ (narrow_test[2] != 0)) {
+ g_error("Conversion 6 failed.\n");
+ }
+ _vte_conv_close(conv);
+
+ /* Test zero-byte pass-through. */
+ clear(wide_test, narrow_test);
+ memset(wide_test, 'A', sizeof(wide_test));
+ memset(narrow_test, 0, sizeof(narrow_test));
+ inbuf = narrow_test;
+ inbytes = 3;
+ outbuf = (char*)wide_test;
+ outbytes = sizeof(wide_test);
+ conv = _vte_conv_open(VTE_CONV_GUNICHAR_TYPE, "UTF-8");
+ i = _vte_conv(conv, &inbuf, &inbytes, &outbuf, &outbytes);
+ g_assert(inbytes == 0);
+ if ((wide_test[0] != 0) ||
+ (wide_test[1] != 0) ||
+ (wide_test[2] != 0)) {
+ g_error("Conversion 7 failed.\n");
+ }
+ _vte_conv_close(conv);
+
+ /* Test zero-byte pass-through. */
+ clear(wide_test, narrow_test);
+ memset(wide_test, 'A', sizeof(wide_test));
+ memset(narrow_test, 0, sizeof(narrow_test));
+ inbuf = narrow_test;
+ inbytes = 3;
+ outbuf = (char*)wide_test;
+ outbytes = sizeof(wide_test);
+ conv = _vte_conv_open(VTE_CONV_GUNICHAR_TYPE, "ISO-8859-1");
+ i = _vte_conv(conv, &inbuf, &inbytes, &outbuf, &outbytes);
+ g_assert(inbytes == 0);
+ if ((wide_test[0] != 0) ||
+ (wide_test[1] != 0) ||
+ (wide_test[2] != 0)) {
+ g_error("Conversion 8 failed.\n");
+ }
+ _vte_conv_close(conv);
+
+ /* Test UTF-8 to UTF-8 error reporting, valid multibyte. */
+ for (i = 0; i < sizeof(mbyte_test); i++) {
+ int ret;
+ inbuf = mbyte_test;
+ inbytes = i + 1;
+ outbuf = buf;
+ outbytes = sizeof(buf);
+ conv = _vte_conv_open("UTF-8", "UTF-8");
+ ret = _vte_conv(conv, &inbuf, &inbytes, &outbuf, &outbytes);
+ switch (i) {
+ case 0:
+ g_assert((ret == -1) && (errno == EINVAL));
+ break;
+ case 1:
+ g_assert((ret == -1) && (errno == EINVAL));
+ break;
+ case 2:
+ g_assert(ret != -1);
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+ _vte_conv_close(conv);
+ }
+
+ /* Test UTF-8 to UTF-8 error reporting, invalid multibyte. */
+ for (i = 0; i < sizeof(mbyte_test_break); i++) {
+ int ret;
+ inbuf = mbyte_test_break;
+ inbytes = i + 1;
+ outbuf = buf;
+ outbytes = sizeof(buf);
+ conv = _vte_conv_open("UTF-8", "UTF-8");
+ ret = _vte_conv(conv, &inbuf, &inbytes, &outbuf, &outbytes);
+ _vte_conv_close(conv);
+ switch (i) {
+ case 0:
+ g_assert((ret == -1) && (errno == EINVAL));
+ break;
+ case 1:
+ g_assert((ret == -1) && (errno == EINVAL));
+ break;
+ case 2:
+ g_assert((ret == -1) && (errno == EILSEQ));
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+ }
+
+ return 0;
+}
+#endif
diff --git a/vte/src/vteconv.h b/vte/src/vteconv.h
new file mode 100644
index 0000000..88485ae
--- /dev/null
+++ b/vte/src/vteconv.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_vteconv_h_included
+#define vte_vteconv_h_included
+
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+#define VTE_CONV_GUNICHAR_TYPE "X-VTE-GUNICHAR"
+#define VTE_INVALID_CONV ((VteConv)-1)
+
+struct _VteConv;
+typedef struct _VteConv *VteConv;
+
+VteConv _vte_conv_open(const char *target, const char *source);
+size_t _vte_conv(VteConv converter,
+ const guchar **inbuf, gsize *inbytes_left,
+ guchar **outbuf, gsize *outbytes_left);
+size_t _vte_conv_uc(VteConv converter,
+ const gunichar **inbuf, gsize *inbytes_left,
+ guchar **outbuf, gsize *outbytes_left);
+size_t _vte_conv_uu(VteConv converter,
+ const gunichar **inbuf, gsize *inbytes_left,
+ gunichar **outbuf, gsize *outbytes_left);
+size_t _vte_conv_cu(VteConv converter,
+ const guchar **inbuf, gsize *inbytes_left,
+ gunichar **outbuf, gsize *outbytes_left);
+gint _vte_conv_close(VteConv converter);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vtedeprecated.h b/vte/src/vtedeprecated.h
new file mode 100644
index 0000000..e531b0d
--- /dev/null
+++ b/vte/src/vtedeprecated.h
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2001,2002,2003,2009,2010 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#if !defined (__VTE_VTE_H_INSIDE__) && !defined (VTE_COMPILATION)
+#error "Only <vte/vte.h> can be included directly."
+#endif
+
+#ifndef VTE_DISABLE_DEPRECATED
+
+#ifndef vte_deprecated_h_included
+#define vte_deprecated_h_included
+
+#include <sys/types.h> /* for pid_t */
+
+G_BEGIN_DECLS
+
+/**
+ * VTE_IS_TERMINAL_ERASE_BINDING:
+ *
+ * Does nothing.
+ *
+ * Returns: %FALSE
+ *
+ * @Deprecated: 0.20
+ */
+#define VTE_IS_TERMINAL_ERASE_BINDING(obj) (FALSE)
+
+/**
+ * VTE_IS_TERMINAL_ANTI_ALIAS:
+ *
+ * Does nothing.
+ *
+ * Returns: %FALSE
+ *
+ * @Deprecated: 0.20
+ */
+#define VTE_IS_TERMINAL_ANTI_ALIAS(obj) (FALSE)
+
+/**
+ * VteTerminalAntiAlias:
+ * @VTE_ANTI_ALIAS_USE_DEFAULT: Use the system default anti-alias setting
+ * @VTE_ANTI_ALIAS_FORCE_ENABLE: Force enable anti-aliasing
+ * @VTE_ANTI_ALIAS_FORCE_DISABLE: Force disable anti-aliasing
+ *
+ * An enumeration describing which anti-alias setting to use.
+ *
+ * @Deprecated: 0.20
+ */
+typedef enum {
+ VTE_ANTI_ALIAS_USE_DEFAULT,
+ VTE_ANTI_ALIAS_FORCE_ENABLE,
+ VTE_ANTI_ALIAS_FORCE_DISABLE
+} VteTerminalAntiAlias;
+
+void vte_terminal_set_cursor_blinks(VteTerminal *terminal,
+ gboolean blink) G_GNUC_DEPRECATED;
+gboolean vte_terminal_get_using_xft(VteTerminal *terminal) G_GNUC_DEPRECATED;
+int vte_terminal_match_add(VteTerminal *terminal, const char *match) G_GNUC_DEPRECATED;
+glong vte_terminal_get_char_descent(VteTerminal *terminal) G_GNUC_DEPRECATED;
+glong vte_terminal_get_char_ascent(VteTerminal *terminal) G_GNUC_DEPRECATED;
+void vte_terminal_set_font_full(VteTerminal *terminal,
+ const PangoFontDescription *font_desc,
+ VteTerminalAntiAlias antialias) G_GNUC_DEPRECATED;
+void vte_terminal_set_font_from_string_full(VteTerminal *terminal,
+ const char *name,
+ VteTerminalAntiAlias antialias) G_GNUC_DEPRECATED;
+pid_t vte_terminal_fork_command(VteTerminal *terminal,
+ const char *command, char **argv,
+ char **envv, const char *working_directory,
+ gboolean lastlog,
+ gboolean utmp,
+ gboolean wtmp) G_GNUC_DEPRECATED;
+pid_t vte_terminal_forkpty(VteTerminal *terminal,
+ char **envv, const char *working_directory,
+ gboolean lastlog,
+ gboolean utmp,
+ gboolean wtmp) G_GNUC_DEPRECATED;
+void vte_terminal_get_padding(VteTerminal *terminal, int *xpad, int *ypad) G_GNUC_DEPRECATED;
+void vte_terminal_set_pty(VteTerminal *terminal, int pty_master);
+int vte_terminal_get_pty(VteTerminal *terminal);
+
+#if GTK_CHECK_VERSION (2, 91, 2)
+GtkAdjustment *vte_terminal_get_adjustment(VteTerminal *terminal);
+#endif
+
+G_END_DECLS
+
+#endif /* !vte_deprecated_h_included */
+
+#endif /* !VTE_DISABLE_DEPRECATED */
diff --git a/vte/src/vtedraw.c b/vte/src/vtedraw.c
new file mode 100644
index 0000000..029ebb3
--- /dev/null
+++ b/vte/src/vtedraw.c
@@ -0,0 +1,1166 @@
+/*
+ * Copyright (C) 2003,2008 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include <config.h>
+
+#include <sys/param.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <glib.h>
+#include "debug.h"
+#include "vtebg.h"
+#include "vtedraw.h"
+#include "vte-private.h"
+
+#include <pango/pangocairo.h>
+
+
+/* Overview:
+ *
+ *
+ * This file implements vte rendering using pangocairo. Note that this does
+ * NOT implement any kind of complex text rendering. That's not currently a
+ * goal.
+ *
+ * The aim is to be super-fast and avoid unneeded work as much as possible.
+ * Here is an overview of how that is accomplished:
+ *
+ * - We attach a font_info to the draw. A font_info has all the information
+ * to quickly draw text.
+ *
+ * - A font_info keeps uses unistr_font_info structs that represent all
+ * information needed to quickly draw a single vteunistr. The font_info
+ * creates those unistr_font_info structs on demand and caches them
+ * indefinitely. It uses a direct array for the ASCII range and a hash
+ * table for the rest.
+ *
+ *
+ * Fast rendering of unistrs:
+ *
+ * A unistr_font_info (uinfo) calls Pango to set text for the unistr upon
+ * initialization and then caches information needed to draw the results
+ * later. It uses three different internal representations and respectively
+ * three drawing paths:
+ *
+ * - COVERAGE_USE_CAIRO_GLYPH:
+ * Keeping a single glyph index and a cairo scaled-font. This is the
+ * fastest way to draw text as it bypasses Pango completely and allows
+ * for stuffing multiple glyphs into a single cairo_show_glyphs() request
+ * (if scaled-fonts match). This method is used if the glyphs used for
+ * the vteunistr as determined by Pango consists of a single regular glyph
+ * positioned at 0,0 using a regular font. This method is used for more
+ * than 99% of the cases. Only exceptional cases fall through to the
+ * other two methods.
+ *
+ * - COVERAGE_USE_PANGO_GLYPH_STRING:
+ * Keeping a pango glyphstring and a pango font. This is slightly slower
+ * than the previous case as drawing each glyph goes through pango
+ * separately and causes a separate cairo_show_glyphs() call. This method
+ * is used when the previous method cannot be used but the glyphs for the
+ * character all use a single font. This is the method used for hexboxes
+ * and "empty" characters like U+200C ZERO WIDTH NON-JOINER for example.
+ *
+ * - COVERAGE_USE_PANGO_LAYOUT_LINE:
+ * Keeping a pango layout line. This method is used only in the very
+ * weird and exceptional case that a single vteunistr uses more than one
+ * font to be drawn. This happens for example if some diacretics is not
+ * available in the font chosen for the base character.
+ *
+ *
+ * Caching of font infos:
+ *
+ * To avoid recreating font info structs for the same font again and again we
+ * do the following:
+ *
+ * - Use a global cache to share font info structs across different widgets.
+ * We use pango language, cairo font options, resolution, and font description
+ * as the key for our hash table.
+ *
+ * - When a font info struct is no longer used by any widget, we delay
+ * destroying it for a while (FONT_CACHE_TIMEOUT seconds). This is
+ * supposed to serve two purposes:
+ *
+ * * Destroying a terminal widget and creating it again right after will
+ * reuse the font info struct from the previous widget.
+ *
+ * * Zooming in and out a terminal reuses the font info structs.
+ *
+ *
+ * Pre-caching ASCII letters:
+ *
+ * When initializing a font info struct we measure a string consisting of all
+ * ASCII letters and some other ASCII characters. Since we have a shaped pango
+ * layout at hand, we walk over it and cache unistr font info for the ASCII
+ * letters if we can do that easily using COVERAGE_USE_CAIRO_GLYPH. This
+ * means that we precache all ASCII letters without any extra pango shaping
+ * involved.
+ */
+
+
+
+#define FONT_CACHE_TIMEOUT (30) /* seconds */
+
+
+/* All shared data structures are implicitly protected by GDK mutex, because
+ * that's how vte.c works and we only get called from there. */
+
+
+/* cairo_show_glyphs accepts runs up to 102 glyphs before it allocates a
+ * temporary array.
+ *
+ * Setting this to a large value can cause dramatic slow-downs for some
+ * xservers (notably fglrx), see bug #410534.
+ *
+ * Moreover, setting it larger than %VTE_DRAW_MAX_LENGTH is nonsensical,
+ * as the higher layers will not submit runs longer than that value.
+ */
+#define MAX_RUN_LENGTH 100
+
+
+enum unistr_coverage {
+ /* in increasing order of speed */
+ COVERAGE_UNKNOWN = 0, /* we don't know about the character yet */
+ COVERAGE_USE_PANGO_LAYOUT_LINE, /* use a PangoLayoutLine for the character */
+ COVERAGE_USE_PANGO_GLYPH_STRING, /* use a PangoGlyphString for the character */
+ COVERAGE_USE_CAIRO_GLYPH /* use a cairo_glyph_t for the character */
+};
+
+union unistr_font_info {
+ /* COVERAGE_USE_PANGO_LAYOUT_LINE */
+ struct {
+ PangoLayoutLine *line;
+ } using_pango_layout_line;
+ /* COVERAGE_USE_PANGO_GLYPH_STRING */
+ struct {
+ PangoFont *font;
+ PangoGlyphString *glyph_string;
+ } using_pango_glyph_string;
+ /* COVERAGE_USE_CAIRO_GLYPH */
+ struct {
+ cairo_scaled_font_t *scaled_font;
+ unsigned int glyph_index;
+ } using_cairo_glyph;
+};
+
+struct unistr_info {
+ guchar coverage;
+ guchar has_unknown_chars;
+ guint16 width;
+ union unistr_font_info ufi;
+};
+
+static struct unistr_info *
+unistr_info_create (void)
+{
+ return g_slice_new0 (struct unistr_info);
+}
+
+static void
+unistr_info_finish (struct unistr_info *uinfo)
+{
+ union unistr_font_info *ufi = &uinfo->ufi;
+
+ switch (uinfo->coverage) {
+ default:
+ case COVERAGE_UNKNOWN:
+ break;
+ case COVERAGE_USE_PANGO_LAYOUT_LINE:
+ /* we hold a manual reference on layout */
+ g_object_unref (ufi->using_pango_layout_line.line->layout);
+ ufi->using_pango_layout_line.line->layout = NULL;
+ pango_layout_line_unref (ufi->using_pango_layout_line.line);
+ ufi->using_pango_layout_line.line = NULL;
+ break;
+ case COVERAGE_USE_PANGO_GLYPH_STRING:
+ if (ufi->using_pango_glyph_string.font)
+ g_object_unref (ufi->using_pango_glyph_string.font);
+ ufi->using_pango_glyph_string.font = NULL;
+ pango_glyph_string_free (ufi->using_pango_glyph_string.glyph_string);
+ ufi->using_pango_glyph_string.glyph_string = NULL;
+ break;
+ case COVERAGE_USE_CAIRO_GLYPH:
+ cairo_scaled_font_destroy (ufi->using_cairo_glyph.scaled_font);
+ ufi->using_cairo_glyph.scaled_font = NULL;
+ break;
+ }
+}
+
+static void
+unistr_info_destroy (struct unistr_info *uinfo)
+{
+ unistr_info_finish (uinfo);
+ g_slice_free (struct unistr_info, uinfo);
+}
+
+struct font_info {
+ /* lifecycle */
+ int ref_count;
+ guint destroy_timeout; /* only used when ref_count == 0 */
+
+ /* reusable layout set with font and everything set */
+ PangoLayout *layout;
+
+ /* cache of character info */
+ struct unistr_info ascii_unistr_info[128];
+ GHashTable *other_unistr_info;
+
+ /* cell metrics */
+ gint width, height, ascent;
+
+ /* reusable string for UTF-8 conversion */
+ GString *string;
+
+#ifdef VTE_DEBUG
+ /* profiling info */
+ int coverage_count[4];
+#endif
+};
+
+
+static struct unistr_info *
+font_info_find_unistr_info (struct font_info *info,
+ vteunistr c)
+{
+ struct unistr_info *uinfo;
+
+ if (G_LIKELY (c < G_N_ELEMENTS (info->ascii_unistr_info)))
+ return &info->ascii_unistr_info[c];
+
+ if (G_UNLIKELY (info->other_unistr_info == NULL))
+ info->other_unistr_info = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)
unistr_info_destroy);
+
+ uinfo = g_hash_table_lookup (info->other_unistr_info, GINT_TO_POINTER (c));
+ if (G_LIKELY (uinfo))
+ return uinfo;
+
+ uinfo = unistr_info_create ();
+ g_hash_table_insert (info->other_unistr_info, GINT_TO_POINTER (c), uinfo);
+ return uinfo;
+}
+
+
+static void
+font_info_cache_ascii (struct font_info *info)
+{
+ PangoLayoutLine *line;
+ PangoGlyphItemIter iter;
+ PangoGlyphItem *glyph_item;
+ PangoGlyphString *glyph_string;
+ PangoFont *pango_font;
+ cairo_scaled_font_t *scaled_font;
+ const char *text;
+ gboolean more;
+ PangoLanguage *language;
+ gboolean latin_uses_default_language;
+
+ /* We have info->layout holding most ASCII characters. We want to
+ * cache as much info as we can about the ASCII letters so we don't
+ * have to look them up again later */
+
+ /* Don't cache if unknown glyphs found in layout */
+ if (pango_layout_get_unknown_glyphs_count (info->layout) != 0)
+ return;
+
+ language = pango_context_get_language (pango_layout_get_context (info->layout));
+ if (language == NULL)
+ language = pango_language_get_default ();
+ latin_uses_default_language = pango_language_includes_script (language, PANGO_SCRIPT_LATIN);
+
+ text = pango_layout_get_text (info->layout);
+
+ line = pango_layout_get_line_readonly (info->layout, 0);
+
+ /* Don't cache if more than one font used for the line */
+ if (G_UNLIKELY (!line || !line->runs || line->runs->next))
+ return;
+
+ glyph_item = line->runs->data;
+ glyph_string = glyph_item->glyphs;
+ pango_font = glyph_item->item->analysis.font;
+ if (!pango_font)
+ return;
+ scaled_font = pango_cairo_font_get_scaled_font ((PangoCairoFont *) pango_font);
+ if (!scaled_font)
+ return;
+
+ for (more = pango_glyph_item_iter_init_start (&iter, glyph_item, text);
+ more;
+ more = pango_glyph_item_iter_next_cluster (&iter))
+ {
+ struct unistr_info *uinfo;
+ union unistr_font_info *ufi;
+ PangoGlyphGeometry *geometry;
+ PangoGlyph glyph;
+ vteunistr c;
+
+ /* Only cache simple clusters */
+ if (iter.start_char +1 != iter.end_char ||
+ iter.start_index+1 != iter.end_index ||
+ iter.start_glyph+1 != iter.end_glyph)
+ continue;
+
+ c = text[iter.start_index];
+ glyph = glyph_string->glyphs[iter.start_glyph].glyph;
+ geometry = &glyph_string->glyphs[iter.start_glyph].geometry;
+
+ /* If not using the default locale language, only cache non-common
+ * characters as common characters get their font from their neighbors
+ * and we don't want to force Latin on them. */
+ if (!latin_uses_default_language &&
+ pango_script_for_unichar (c) <= PANGO_SCRIPT_INHERITED)
+ continue;
+
+ /* Only cache simple glyphs */
+ if (!(glyph <= 0xFFFF) || (geometry->x_offset | geometry->y_offset) != 0)
+ continue;
+
+ uinfo = font_info_find_unistr_info (info, c);
+ if (G_UNLIKELY (uinfo->coverage != COVERAGE_UNKNOWN))
+ continue;
+
+ ufi = &uinfo->ufi;
+
+ uinfo->width = PANGO_PIXELS_CEIL (geometry->width);
+ uinfo->has_unknown_chars = FALSE;
+
+ uinfo->coverage = COVERAGE_USE_CAIRO_GLYPH;
+
+ ufi->using_cairo_glyph.scaled_font = cairo_scaled_font_reference (scaled_font);
+ ufi->using_cairo_glyph.glyph_index = glyph;
+
+#ifdef VTE_DEBUG
+ info->coverage_count[0]++;
+ info->coverage_count[uinfo->coverage]++;
+#endif
+ }
+
+#ifdef VTE_DEBUG
+ _vte_debug_print (VTE_DEBUG_PANGOCAIRO,
+ "vtepangocairo: %p cached %d ASCII letters\n",
+ info, info->coverage_count[0]);
+#endif
+}
+
+static void
+font_info_measure_font (struct font_info *info)
+{
+ PangoRectangle logical;
+
+ /* Estimate for ASCII characters. */
+ pango_layout_set_text (info->layout, VTE_DRAW_SINGLE_WIDE_CHARACTERS, -1);
+ pango_layout_get_extents (info->layout, NULL, &logical);
+ /* We don't do CEIL for width since we are averaging;
+ * rounding is more accurate */
+ info->width = PANGO_PIXELS (howmany (logical.width, strlen(VTE_DRAW_SINGLE_WIDE_CHARACTERS)));
+ info->height = PANGO_PIXELS_CEIL (logical.height);
+ info->ascent = PANGO_PIXELS_CEIL (pango_layout_get_baseline (info->layout));
+
+ /* Now that we shaped the entire ASCII character string, cache glyph
+ * info for them */
+ font_info_cache_ascii (info);
+
+
+ if (info->height == 0) {
+ info->height = PANGO_PIXELS_CEIL (logical.height);
+ }
+ if (info->ascent == 0) {
+ info->ascent = PANGO_PIXELS_CEIL (pango_layout_get_baseline (info->layout));
+ }
+
+ _vte_debug_print (VTE_DEBUG_MISC,
+ "vtepangocairo: %p font metrics = %dx%d (%d)\n",
+ info, info->width, info->height, info->ascent);
+}
+
+
+static struct font_info *
+font_info_allocate (PangoContext *context)
+{
+ struct font_info *info;
+ PangoTabArray *tabs;
+
+ info = g_slice_new0 (struct font_info);
+
+ _vte_debug_print (VTE_DEBUG_PANGOCAIRO,
+ "vtepangocairo: %p allocating font_info\n",
+ info);
+
+ info->layout = pango_layout_new (context);
+ tabs = pango_tab_array_new_with_positions (1, FALSE, PANGO_TAB_LEFT, 1);
+ pango_layout_set_tabs (info->layout, tabs);
+ pango_tab_array_free (tabs);
+
+ info->string = g_string_sized_new (VTE_UTF8_BPC+1);
+
+ font_info_measure_font (info);
+
+ return info;
+}
+
+static void
+font_info_free (struct font_info *info)
+{
+ vteunistr i;
+
+#ifdef VTE_DEBUG
+ _vte_debug_print (VTE_DEBUG_PANGOCAIRO,
+ "vtepangocairo: %p freeing font_info. coverages %d = %d + %d + %d\n",
+ info,
+ info->coverage_count[0],
+ info->coverage_count[1],
+ info->coverage_count[2],
+ info->coverage_count[3]);
+#endif
+
+ g_string_free (info->string, TRUE);
+ g_object_unref (info->layout);
+
+ for (i = 0; i < G_N_ELEMENTS (info->ascii_unistr_info); i++)
+ unistr_info_finish (&info->ascii_unistr_info[i]);
+
+ if (info->other_unistr_info) {
+ g_hash_table_destroy (info->other_unistr_info);
+ }
+
+ g_slice_free (struct font_info, info);
+}
+
+
+static GHashTable *font_info_for_context;
+
+static struct font_info *
+font_info_register (struct font_info *info)
+{
+ g_hash_table_insert (font_info_for_context,
+ pango_layout_get_context (info->layout),
+ info);
+
+ return info;
+}
+
+static void
+font_info_unregister (struct font_info *info)
+{
+ g_hash_table_remove (font_info_for_context,
+ pango_layout_get_context (info->layout));
+}
+
+
+static struct font_info *
+font_info_reference (struct font_info *info)
+{
+ if (!info)
+ return info;
+
+ g_return_val_if_fail (info->ref_count >= 0, info);
+
+ if (info->destroy_timeout) {
+ g_source_remove (info->destroy_timeout);
+ info->destroy_timeout = 0;
+ }
+
+ info->ref_count++;
+
+ return info;
+}
+
+static gboolean
+font_info_destroy_delayed (struct font_info *info)
+{
+ info->destroy_timeout = 0;
+
+ font_info_unregister (info);
+ font_info_free (info);
+
+ return FALSE;
+}
+
+static void
+font_info_destroy (struct font_info *info)
+{
+ if (!info)
+ return;
+
+ g_return_if_fail (info->ref_count > 0);
+
+ info->ref_count--;
+ if (info->ref_count)
+ return;
+
+ /* Delay destruction by a few seconds, in case we need it again */
+ info->destroy_timeout = gdk_threads_add_timeout_seconds (FONT_CACHE_TIMEOUT,
+ (GSourceFunc) font_info_destroy_delayed,
+ info);
+}
+
+static GQuark
+fontconfig_timestamp_quark (void)
+{
+ static GQuark quark;
+
+ if (G_UNLIKELY (!quark))
+ quark = g_quark_from_static_string ("vte-fontconfig-timestamp");
+
+ return quark;
+}
+
+static void
+vte_pango_context_set_fontconfig_timestamp (PangoContext *context,
+ guint fontconfig_timestamp)
+{
+ g_object_set_qdata ((GObject *) context,
+ fontconfig_timestamp_quark (),
+ GUINT_TO_POINTER (fontconfig_timestamp));
+}
+
+static guint
+vte_pango_context_get_fontconfig_timestamp (PangoContext *context)
+{
+ return GPOINTER_TO_UINT (g_object_get_qdata ((GObject *) context,
+ fontconfig_timestamp_quark ()));
+}
+
+static guint
+context_hash (PangoContext *context)
+{
+ return pango_units_from_double (pango_cairo_context_get_resolution (context))
+ ^ pango_font_description_hash (pango_context_get_font_description (context))
+ ^ cairo_font_options_hash (pango_cairo_context_get_font_options (context))
+ ^ GPOINTER_TO_UINT (pango_context_get_language (context))
+ ^ vte_pango_context_get_fontconfig_timestamp (context);
+}
+
+static gboolean
+context_equal (PangoContext *a,
+ PangoContext *b)
+{
+ return pango_cairo_context_get_resolution (a) == pango_cairo_context_get_resolution (b)
+ && pango_font_description_equal (pango_context_get_font_description (a),
pango_context_get_font_description (b))
+ && cairo_font_options_equal (pango_cairo_context_get_font_options (a),
pango_cairo_context_get_font_options (b))
+ && pango_context_get_language (a) == pango_context_get_language (b)
+ && vte_pango_context_get_fontconfig_timestamp (a) == vte_pango_context_get_fontconfig_timestamp
(b);
+}
+
+static struct font_info *
+font_info_find_for_context (PangoContext *context)
+{
+ struct font_info *info;
+
+ if (G_UNLIKELY (font_info_for_context == NULL))
+ font_info_for_context = g_hash_table_new ((GHashFunc) context_hash, (GEqualFunc)
context_equal);
+
+ info = g_hash_table_lookup (font_info_for_context, context);
+ if (G_LIKELY (info)) {
+ _vte_debug_print (VTE_DEBUG_PANGOCAIRO,
+ "vtepangocairo: %p found font_info in cache\n",
+ info);
+ return font_info_reference (info);
+ }
+
+ info = font_info_allocate (context);
+ info->ref_count = 1;
+ font_info_register (info);
+
+ g_object_unref (context);
+
+ return info;
+}
+
+/* assumes ownership/reference of context */
+static struct font_info *
+font_info_create_for_context (PangoContext *context,
+ const PangoFontDescription *desc,
+ VteTerminalAntiAlias antialias,
+ PangoLanguage *language,
+ guint fontconfig_timestamp)
+{
+ if (!PANGO_IS_CAIRO_FONT_MAP (pango_context_get_font_map (context))) {
+ /* Ouch, Gtk+ switched over to some drawing system?
+ * Lets just create one from the default font map.
+ */
+ g_object_unref (context);
+ context = pango_font_map_create_context (pango_cairo_font_map_get_default ());
+ }
+
+ vte_pango_context_set_fontconfig_timestamp (context, fontconfig_timestamp);
+
+ pango_context_set_base_dir (context, PANGO_DIRECTION_LTR);
+
+ if (desc)
+ pango_context_set_font_description (context, desc);
+
+ pango_context_set_language (context, language);
+
+ switch (antialias) {
+ cairo_font_options_t *font_options;
+ cairo_antialias_t cr_aa;
+
+ case VTE_ANTI_ALIAS_FORCE_ENABLE:
+ case VTE_ANTI_ALIAS_FORCE_DISABLE:
+
+ if (antialias == VTE_ANTI_ALIAS_FORCE_ENABLE)
+ cr_aa = CAIRO_ANTIALIAS_DEFAULT; /* let surface decide between gray and subpixel */
+ else
+ cr_aa = CAIRO_ANTIALIAS_NONE;
+
+ font_options = cairo_font_options_copy (pango_cairo_context_get_font_options (context));
+ cairo_font_options_set_antialias (font_options, cr_aa);
+ pango_cairo_context_set_font_options (context, font_options);
+ cairo_font_options_destroy (font_options);
+
+ break;
+
+ default:
+ case VTE_ANTI_ALIAS_USE_DEFAULT:
+ /* Make sure our contexts have a font_options set. We use
+ * this invariant in our context hash and equal functions.
+ */
+ if (!pango_cairo_context_get_font_options (context)) {
+ font_options = cairo_font_options_create ();
+ pango_cairo_context_set_font_options (context, font_options);
+ cairo_font_options_destroy (font_options);
+ }
+ break;
+ }
+
+ return font_info_find_for_context (context);
+}
+
+static struct font_info *
+font_info_create_for_screen (GdkScreen *screen,
+ const PangoFontDescription *desc,
+ VteTerminalAntiAlias antialias,
+ PangoLanguage *language)
+{
+ GtkSettings *settings = gtk_settings_get_for_screen (screen);
+ int fontconfig_timestamp;
+ g_object_get (settings, "gtk-fontconfig-timestamp", &fontconfig_timestamp, NULL);
+ return font_info_create_for_context (gdk_pango_context_get_for_screen (screen),
+ desc, antialias, language, fontconfig_timestamp);
+}
+
+static struct font_info *
+font_info_create_for_widget (GtkWidget *widget,
+ const PangoFontDescription *desc,
+ VteTerminalAntiAlias antialias)
+{
+ GdkScreen *screen = gtk_widget_get_screen (widget);
+ PangoLanguage *language = pango_context_get_language (gtk_widget_get_pango_context (widget));
+
+ return font_info_create_for_screen (screen, desc, antialias, language);
+}
+
+static struct unistr_info *
+font_info_get_unistr_info (struct font_info *info,
+ vteunistr c)
+{
+ struct unistr_info *uinfo;
+ union unistr_font_info *ufi;
+ PangoRectangle logical;
+ PangoLayoutLine *line;
+
+ uinfo = font_info_find_unistr_info (info, c);
+ if (G_LIKELY (uinfo->coverage != COVERAGE_UNKNOWN))
+ return uinfo;
+
+ ufi = &uinfo->ufi;
+
+ g_string_set_size (info->string, 0);
+ _vte_unistr_append_to_string (c, info->string);
+ pango_layout_set_text (info->layout, info->string->str, -1);
+ pango_layout_get_extents (info->layout, NULL, &logical);
+
+ uinfo->width = PANGO_PIXELS_CEIL (logical.width);
+
+ line = pango_layout_get_line_readonly (info->layout, 0);
+
+ uinfo->has_unknown_chars = pango_layout_get_unknown_glyphs_count (info->layout) != 0;
+ /* we use PangoLayoutRun rendering unless there is exactly one run in the line. */
+ if (G_UNLIKELY (!line || !line->runs || line->runs->next))
+ {
+ uinfo->coverage = COVERAGE_USE_PANGO_LAYOUT_LINE;
+
+ ufi->using_pango_layout_line.line = pango_layout_line_ref (line);
+ /* we hold a manual reference on layout. pango currently
+ * doesn't work if line->layout is NULL. ugh! */
+ pango_layout_set_text (info->layout, "", -1); /* make layout disassociate from the line */
+ ufi->using_pango_layout_line.line->layout = g_object_ref (info->layout);
+
+ } else {
+ PangoGlyphItem *glyph_item = line->runs->data;
+ PangoFont *pango_font = glyph_item->item->analysis.font;
+ PangoGlyphString *glyph_string = glyph_item->glyphs;
+
+ /* we use fast cairo path if glyph string has only one real
+ * glyph and at origin */
+ if (!uinfo->has_unknown_chars &&
+ glyph_string->num_glyphs == 1 && glyph_string->glyphs[0].glyph <= 0xFFFF &&
+ (glyph_string->glyphs[0].geometry.x_offset |
+ glyph_string->glyphs[0].geometry.y_offset) == 0)
+ {
+ cairo_scaled_font_t *scaled_font = pango_cairo_font_get_scaled_font ((PangoCairoFont
*) pango_font);
+
+ if (scaled_font) {
+ uinfo->coverage = COVERAGE_USE_CAIRO_GLYPH;
+
+ ufi->using_cairo_glyph.scaled_font = cairo_scaled_font_reference
(scaled_font);
+ ufi->using_cairo_glyph.glyph_index = glyph_string->glyphs[0].glyph;
+ }
+ }
+
+ /* use pango fast path otherwise */
+ if (G_UNLIKELY (uinfo->coverage == COVERAGE_UNKNOWN)) {
+ uinfo->coverage = COVERAGE_USE_PANGO_GLYPH_STRING;
+
+ ufi->using_pango_glyph_string.font = pango_font ? g_object_ref (pango_font) : NULL;
+ ufi->using_pango_glyph_string.glyph_string = pango_glyph_string_copy (glyph_string);
+ }
+ }
+
+ /* release internal layout resources */
+ pango_layout_set_text (info->layout, "", -1);
+
+#ifdef VTE_DEBUG
+ info->coverage_count[0]++;
+ info->coverage_count[uinfo->coverage]++;
+#endif
+
+ return uinfo;
+}
+
+struct _vte_draw {
+ GtkWidget *widget;
+
+ gint started;
+
+ struct font_info *font;
+ struct font_info *font_bold;
+ cairo_pattern_t *bg_pattern;
+
+ cairo_t *cr;
+};
+
+struct _vte_draw *
+_vte_draw_new (GtkWidget *widget)
+{
+ struct _vte_draw *draw;
+
+ /* Create the structure. */
+ draw = g_slice_new0 (struct _vte_draw);
+ draw->widget = g_object_ref (widget);
+
+ _vte_debug_print (VTE_DEBUG_DRAW, "draw_new\n");
+
+ return draw;
+}
+
+void
+_vte_draw_free (struct _vte_draw *draw)
+{
+ _vte_debug_print (VTE_DEBUG_DRAW, "draw_free\n");
+
+ if (draw->bg_pattern != NULL) {
+ cairo_pattern_destroy (draw->bg_pattern);
+ draw->bg_pattern = NULL;
+ }
+
+ if (draw->font != NULL) {
+ font_info_destroy (draw->font);
+ draw->font = NULL;
+ }
+
+ if (draw->widget != NULL) {
+ g_object_unref (draw->widget);
+ }
+
+ g_slice_free (struct _vte_draw, draw);
+}
+
+void
+_vte_draw_start (struct _vte_draw *draw)
+{
+ GdkWindow *window;
+
+ g_return_if_fail (gtk_widget_get_realized (draw->widget));
+
+ _vte_debug_print (VTE_DEBUG_DRAW, "draw_start\n");
+
+ if (draw->started == 0) {
+ window = gtk_widget_get_window(draw->widget);
+ g_object_ref (window);
+ draw->cr = gdk_cairo_create (window);
+ }
+
+ draw->started++;
+}
+
+void
+_vte_draw_end (struct _vte_draw *draw)
+{
+ g_return_if_fail (draw->started);
+
+ draw->started--;
+ if (draw->started == 0) {
+ cairo_destroy (draw->cr);
+ draw->cr = NULL;
+ g_object_unref (gtk_widget_get_window(draw->widget));
+ }
+
+ _vte_debug_print (VTE_DEBUG_DRAW, "draw_end\n");
+}
+
+void
+_vte_draw_set_background_solid(struct _vte_draw *draw,
+ double red,
+ double green,
+ double blue,
+ double opacity)
+{
+ if (draw->bg_pattern)
+ cairo_pattern_destroy (draw->bg_pattern);
+
+ draw->bg_pattern = cairo_pattern_create_rgba (red,
+ green,
+ blue,
+ opacity);
+}
+
+void
+_vte_draw_set_background_image (struct _vte_draw *draw,
+ VteBgSourceType type,
+ GdkPixbuf *pixbuf,
+ const char *filename,
+ const PangoColor *color,
+ double saturation)
+{
+ cairo_surface_t *surface;
+
+ /* Need a valid draw->cr for cairo_get_target () */
+ _vte_draw_start (draw);
+
+ surface = vte_bg_get_surface (vte_bg_get_for_screen (gtk_widget_get_screen (draw->widget)),
+ type, pixbuf, filename,
+ color, saturation,
+ cairo_get_target(draw->cr));
+
+ _vte_draw_end (draw);
+
+ if (!surface)
+ return;
+
+ if (draw->bg_pattern)
+ cairo_pattern_destroy (draw->bg_pattern);
+
+ draw->bg_pattern = cairo_pattern_create_for_surface (surface);
+ cairo_surface_destroy (surface);
+ cairo_pattern_set_extend (draw->bg_pattern, CAIRO_EXTEND_REPEAT);
+}
+
+void
+_vte_draw_set_background_scroll (struct _vte_draw *draw,
+ gint x, gint y)
+{
+ cairo_matrix_t matrix;
+
+ _vte_debug_print (VTE_DEBUG_DRAW,
+ "draw_set_scroll (%d, %d)\n",
+ x, y);
+
+ g_return_if_fail (draw->bg_pattern != NULL);
+
+ cairo_matrix_init_translate (&matrix, x, y);
+ cairo_pattern_set_matrix (draw->bg_pattern, &matrix);
+}
+
+void
+_vte_draw_clip (struct _vte_draw *draw, GdkRegion *region)
+{
+ _vte_debug_print (VTE_DEBUG_DRAW, "draw_clip\n");
+ gdk_cairo_region(draw->cr, region);
+ cairo_clip (draw->cr);
+}
+
+void
+_vte_draw_clear (struct _vte_draw *draw, gint x, gint y, gint width, gint height)
+{
+ g_return_if_fail (draw->bg_pattern != NULL);
+
+ _vte_debug_print (VTE_DEBUG_DRAW, "draw_clear (%d, %d, %d, %d)\n",
+ x,y,width, height);
+
+ cairo_rectangle (draw->cr, x, y, width, height);
+ cairo_set_operator (draw->cr, CAIRO_OPERATOR_SOURCE);
+ cairo_set_source (draw->cr, draw->bg_pattern);
+ cairo_fill (draw->cr);
+}
+
+void
+_vte_draw_set_text_font (struct _vte_draw *draw,
+ const PangoFontDescription *fontdesc,
+ VteTerminalAntiAlias antialias)
+{
+ PangoFontDescription *bolddesc = NULL;
+
+ _vte_debug_print (VTE_DEBUG_DRAW, "draw_set_text_font (aa=%d)\n",
+ antialias);
+
+ if (draw->font_bold != draw->font)
+ font_info_destroy (draw->font_bold);
+ font_info_destroy (draw->font);
+ draw->font = font_info_create_for_widget (draw->widget, fontdesc, antialias);
+
+ /* calculate bold font desc */
+ bolddesc = pango_font_description_copy (fontdesc);
+ pango_font_description_set_weight (bolddesc, PANGO_WEIGHT_BOLD);
+
+ draw->font_bold = font_info_create_for_widget (draw->widget, bolddesc, antialias);
+ pango_font_description_free (bolddesc);
+
+ /* Decide if we should keep this bold font face, per bug 54926:
+ * - reject bold font if it is not within 10% of normal font width
+ */
+ if ( abs((draw->font_bold->width * 100 / draw->font->width) - 100) > 10 ) {
+ font_info_destroy (draw->font_bold);
+ draw->font_bold = draw->font;
+ }
+}
+
+void
+_vte_draw_get_text_metrics(struct _vte_draw *draw,
+ gint *width, gint *height, gint *ascent)
+{
+ g_return_if_fail (draw->font != NULL);
+
+ if (width)
+ *width = draw->font->width;
+ if (height)
+ *height = draw->font->height;
+ if (ascent)
+ *ascent = draw->font->ascent;
+}
+
+
+int
+_vte_draw_get_char_width (struct _vte_draw *draw, vteunistr c, int columns,
+ gboolean bold)
+{
+ struct unistr_info *uinfo;
+
+ g_return_val_if_fail (draw->font != NULL, 0);
+
+ uinfo = font_info_get_unistr_info (bold ? draw->font_bold : draw->font, c);
+ return uinfo->width;
+}
+
+static gboolean
+_vte_draw_has_bold (struct _vte_draw *draw)
+{
+ return (draw->font != draw->font_bold);
+}
+
+static void
+set_source_color_alpha (cairo_t *cr,
+ const PangoColor *color,
+ guchar alpha)
+{
+ cairo_set_source_rgba (cr,
+ color->red / 65535.,
+ color->green / 65535.,
+ color->blue / 65535.,
+ alpha / 255.);
+}
+
+static void
+_vte_draw_text_internal (struct _vte_draw *draw,
+ struct _vte_draw_text_request *requests, gsize n_requests,
+ const PangoColor *color, guchar alpha, gboolean bold)
+{
+ gsize i;
+ cairo_scaled_font_t *last_scaled_font = NULL;
+ int n_cr_glyphs = 0;
+ cairo_glyph_t cr_glyphs[MAX_RUN_LENGTH];
+ struct font_info *font = bold ? draw->font_bold : draw->font;
+
+ g_return_if_fail (font != NULL);
+
+ set_source_color_alpha (draw->cr, color, alpha);
+ cairo_set_operator (draw->cr, CAIRO_OPERATOR_OVER);
+
+ for (i = 0; i < n_requests; i++) {
+ vteunistr c = requests[i].c;
+ int x = requests[i].x;
+ int y = requests[i].y + font->ascent;
+ struct unistr_info *uinfo = font_info_get_unistr_info (font, c);
+ union unistr_font_info *ufi = &uinfo->ufi;
+
+ switch (uinfo->coverage) {
+ default:
+ case COVERAGE_UNKNOWN:
+ g_assert_not_reached ();
+ break;
+ case COVERAGE_USE_PANGO_LAYOUT_LINE:
+ cairo_move_to (draw->cr, x, y);
+ pango_cairo_show_layout_line (draw->cr,
+ ufi->using_pango_layout_line.line);
+ break;
+ case COVERAGE_USE_PANGO_GLYPH_STRING:
+ cairo_move_to (draw->cr, x, y);
+ pango_cairo_show_glyph_string (draw->cr,
+ ufi->using_pango_glyph_string.font,
+ ufi->using_pango_glyph_string.glyph_string);
+ break;
+ case COVERAGE_USE_CAIRO_GLYPH:
+ if (last_scaled_font != ufi->using_cairo_glyph.scaled_font || n_cr_glyphs ==
MAX_RUN_LENGTH) {
+ if (n_cr_glyphs) {
+ cairo_set_scaled_font (draw->cr, last_scaled_font);
+ cairo_show_glyphs (draw->cr,
+ cr_glyphs,
+ n_cr_glyphs);
+ n_cr_glyphs = 0;
+ }
+ last_scaled_font = ufi->using_cairo_glyph.scaled_font;
+ }
+ cr_glyphs[n_cr_glyphs].index = ufi->using_cairo_glyph.glyph_index;
+ cr_glyphs[n_cr_glyphs].x = x;
+ cr_glyphs[n_cr_glyphs].y = y;
+ n_cr_glyphs++;
+ break;
+ }
+ }
+ if (n_cr_glyphs) {
+ cairo_set_scaled_font (draw->cr, last_scaled_font);
+ cairo_show_glyphs (draw->cr,
+ cr_glyphs,
+ n_cr_glyphs);
+ n_cr_glyphs = 0;
+ }
+}
+
+void
+_vte_draw_text (struct _vte_draw *draw,
+ struct _vte_draw_text_request *requests, gsize n_requests,
+ const PangoColor *color, guchar alpha, gboolean bold)
+{
+ g_return_if_fail (draw->started);
+
+ if (_vte_debug_on (VTE_DEBUG_DRAW)) {
+ GString *string = g_string_new ("");
+ gchar *str;
+ gsize n;
+ for (n = 0; n < n_requests; n++) {
+ g_string_append_unichar (string, requests[n].c);
+ }
+ str = g_string_free (string, FALSE);
+ g_printerr ("draw_text (\"%s\", len=%"G_GSIZE_FORMAT", color=(%d,%d,%d,%d), %s)\n",
+ str, n_requests, color->red, color->green, color->blue,
+ alpha, bold ? "bold" : "normal");
+ g_free (str);
+ }
+
+ _vte_draw_text_internal (draw, requests, n_requests, color, alpha, bold);
+
+ /* handle fonts that lack a bold face by double-striking */
+ if (bold && !_vte_draw_has_bold (draw)) {
+ gsize i;
+
+ /* Take a step to the right. */
+ for (i = 0; i < n_requests; i++) {
+ requests[i].x++;
+ }
+ _vte_draw_text_internal (draw, requests,
+ n_requests, color, alpha, FALSE);
+ /* Now take a step back. */
+ for (i = 0; i < n_requests; i++) {
+ requests[i].x--;
+ }
+ }
+}
+
+gboolean
+_vte_draw_has_char (struct _vte_draw *draw, vteunistr c, gboolean bold)
+{
+ struct unistr_info *uinfo;
+
+ _vte_debug_print (VTE_DEBUG_DRAW, "draw_has_char ('0x%04X', %s)\n", c,
+ bold ? "bold" : "normal");
+
+ g_return_val_if_fail (draw->font != NULL, FALSE);
+
+ uinfo = font_info_get_unistr_info (bold ? draw->font_bold : draw->font, c);
+ return !uinfo->has_unknown_chars;
+}
+
+gboolean
+_vte_draw_char (struct _vte_draw *draw,
+ struct _vte_draw_text_request *request,
+ const PangoColor *color, guchar alpha, gboolean bold)
+{
+ gboolean has_char;
+
+ _vte_debug_print (VTE_DEBUG_DRAW,
+ "draw_char ('%c', color=(%d,%d,%d,%d), %s)\n",
+ request->c,
+ color->red, color->green, color->blue,
+ alpha, bold ? "bold" : "normal");
+
+ has_char =_vte_draw_has_char (draw, request->c, bold);
+ if (has_char)
+ _vte_draw_text (draw, request, 1, color, alpha, bold);
+
+ return has_char;
+}
+
+void
+_vte_draw_draw_rectangle (struct _vte_draw *draw,
+ gint x, gint y, gint width, gint height,
+ const PangoColor *color, guchar alpha)
+{
+ g_return_if_fail (draw->started);
+
+ _vte_debug_print (VTE_DEBUG_DRAW,
+ "draw_rectangle (%d, %d, %d, %d, color=(%d,%d,%d,%d))\n",
+ x,y,width,height,
+ color->red, color->green, color->blue,
+ alpha);
+
+ cairo_set_operator (draw->cr, CAIRO_OPERATOR_OVER);
+ cairo_rectangle (draw->cr, x+VTE_LINE_WIDTH/2., y+VTE_LINE_WIDTH/2., width-VTE_LINE_WIDTH,
height-VTE_LINE_WIDTH);
+ set_source_color_alpha (draw->cr, color, alpha);
+ cairo_set_line_width (draw->cr, VTE_LINE_WIDTH);
+ cairo_stroke (draw->cr);
+}
+
+void
+_vte_draw_fill_rectangle (struct _vte_draw *draw,
+ gint x, gint y, gint width, gint height,
+ const PangoColor *color, guchar alpha)
+{
+ g_return_if_fail (draw->started);
+
+ _vte_debug_print (VTE_DEBUG_DRAW,
+ "draw_fill_rectangle (%d, %d, %d, %d, color=(%d,%d,%d,%d))\n",
+ x,y,width,height,
+ color->red, color->green, color->blue,
+ alpha);
+
+ cairo_set_operator (draw->cr, CAIRO_OPERATOR_OVER);
+ cairo_rectangle (draw->cr, x, y, width, height);
+ set_source_color_alpha (draw->cr, color, alpha);
+ cairo_fill (draw->cr);
+}
diff --git a/vte/src/vtedraw.h b/vte/src/vtedraw.h
new file mode 100644
index 0000000..4f65183
--- /dev/null
+++ b/vte/src/vtedraw.h
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_vtedraw_h_included
+#define vte_vtedraw_h_included
+
+
+#include <glib.h>
+#include <gtk/gtk.h>
+#include "vtebg.h"
+#include "vte.h"
+#include "vteunistr.h"
+#include "vte-gtk-compat.h"
+
+G_BEGIN_DECLS
+
+#define VTE_DRAW_SINGLE_WIDE_CHARACTERS \
+ " !\"#$%&'()*+,-./" \
+ "0123456789" \
+ ":;<=>?@" \
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
+ "[\\]^_`" \
+ "abcdefghijklmnopqrstuvwxyz" \
+ "{|}~" \
+ ""
+#define VTE_DRAW_DOUBLE_WIDE_CHARACTERS 0x4e00, 0x4e8c, 0x4e09, 0x56db, 0x4e94,\
+ 0xac00, 0xac01, 0xac04, 0xac08, 0xac10
+/* For Pango, we have to use CJK Ideographs alone. Otherwise, 'width'
+ returned by pango_layout would be screwed up for Chinese and Japanese
+ fonts without Hangul */
+#define VTE_DRAW_DOUBLE_WIDE_IDEOGRAPHS 0x4e00, 0x4e8c, 0x4e09, 0x56db, 0x4e94
+#define VTE_DRAW_OPAQUE 0xff
+#define VTE_DRAW_MAX_LENGTH 1024
+
+struct _vte_draw;
+
+/* A request to draw a particular character spanning a given number of columns
+ at the given location. Unlike most APIs, (x,y) specifies the top-left
+ corner of the cell into which the character will be drawn instead of the
+ left end of the baseline. */
+struct _vte_draw_text_request {
+ vteunistr c;
+ gshort x, y, columns;
+};
+
+/* Create and destroy a draw structure. */
+struct _vte_draw *_vte_draw_new(GtkWidget *widget);
+void _vte_draw_free(struct _vte_draw *draw);
+
+/* Begin and end a drawing operation. If anything is buffered locally, it is
+ flushed to the window system when _end() is called. */
+void _vte_draw_start(struct _vte_draw *draw);
+void _vte_draw_end(struct _vte_draw *draw);
+
+void _vte_draw_set_background_solid(struct _vte_draw *draw,
+ double red,
+ double green,
+ double blue,
+ double opacity);
+void _vte_draw_set_background_image(struct _vte_draw *draw,
+ VteBgSourceType type,
+ GdkPixbuf *pixbuf,
+ const char *file,
+ const PangoColor *color,
+ double saturation);
+void _vte_draw_set_background_scroll(struct _vte_draw *draw,
+ gint x, gint y);
+
+void _vte_draw_clip(struct _vte_draw *draw, GdkRegion *region);
+void _vte_draw_clear(struct _vte_draw *draw,
+ gint x, gint y, gint width, gint height);
+
+void _vte_draw_set_text_font(struct _vte_draw *draw,
+ const PangoFontDescription *fontdesc,
+ VteTerminalAntiAlias anti_alias);
+void _vte_draw_get_text_metrics(struct _vte_draw *draw,
+ gint *width, gint *height, gint *ascent);
+int _vte_draw_get_char_width(struct _vte_draw *draw, vteunistr c, int columns,
+ gboolean bold);
+
+void _vte_draw_text(struct _vte_draw *draw,
+ struct _vte_draw_text_request *requests, gsize n_requests,
+ const PangoColor *color, guchar alpha, gboolean);
+gboolean _vte_draw_char(struct _vte_draw *draw,
+ struct _vte_draw_text_request *request,
+ const PangoColor *color, guchar alpha, gboolean bold);
+gboolean _vte_draw_has_char(struct _vte_draw *draw, vteunistr c, gboolean bold);
+
+
+void _vte_draw_fill_rectangle(struct _vte_draw *draw,
+ gint x, gint y, gint width, gint height,
+ const PangoColor *color, guchar alpha);
+void _vte_draw_draw_rectangle(struct _vte_draw *draw,
+ gint x, gint y, gint width, gint height,
+ const PangoColor *color, guchar alpha);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vteint.h b/vte/src/vteint.h
new file mode 100644
index 0000000..d7a2af6
--- /dev/null
+++ b/vte/src/vteint.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef vte_vteint_h_included
+#define vte_vteint_h_included
+
+
+#include "vte.h"
+
+G_BEGIN_DECLS
+
+void _vte_terminal_accessible_ref(VteTerminal *terminal);
+char* _vte_terminal_get_selection(VteTerminal *terminal);
+void _vte_terminal_get_start_selection(VteTerminal *terminal, long *x, long *y);
+void _vte_terminal_get_end_selection(VteTerminal *terminal, long *x, long *y);
+void _vte_terminal_select_text(VteTerminal *terminal, long start_x, long start_y, long end_x, long end_y,
int start_offset, int end_offset);
+void _vte_terminal_remove_selection(VteTerminal *terminal);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vtepty-private.h b/vte/src/vtepty-private.h
new file mode 100644
index 0000000..70347ee
--- /dev/null
+++ b/vte/src/vtepty-private.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright © 2009, 2010 Christian Persch
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+G_BEGIN_DECLS
+
+VtePtyFlags __vte_pty_get_pty_flags(gboolean lastlog,
+ gboolean utmp,
+ gboolean wtmp);
+
+char **__vte_pty_get_argv (const char *command,
+ char **argv,
+ GSpawnFlags *flags /* inout */);
+
+gboolean __vte_pty_spawn (VtePty *pty,
+ const char *working_directory,
+ char **argv,
+ char **envv,
+ GSpawnFlags spawn_flags,
+ GSpawnChildSetupFunc child_setup,
+ gpointer child_setup_data,
+ GPid *child_pid /* out */,
+ GError **error);
+
+gboolean __vte_pty_fork(VtePty *pty,
+ GPid *pid,
+ GError **error);
+
+G_END_DECLS
diff --git a/vte/src/vtepty.h b/vte/src/vtepty.h
new file mode 100644
index 0000000..a0aea6a
--- /dev/null
+++ b/vte/src/vtepty.h
@@ -0,0 +1,121 @@
+/*
+ * Copyright © 2009, 2010 Christian Persch
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#if !defined (__VTE_VTE_H_INSIDE__) && !defined (VTE_COMPILATION)
+#error "Only <vte/vte.h> can be included directly."
+#endif
+
+#ifndef VTE_PTY_H
+#define VTE_PTY_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/**
+ * VtePtyFlags:
+ * @VTE_PTY_NO_LASTLOG: don't record the session in lastlog
+ * @VTE_PTY_NO_UTMP: don't record the session in utmp
+ * @VTE_PTY_NO_WTMP: don't record the session in wtmp
+ * @VTE_PTY_NO_HELPER: don't use the GNOME PTY helper to allocate the PTY
+ * @VTE_PTY_NO_FALLBACK: when allocating the PTY with the PTY helper fails,
+ * don't fall back to try using PTY98
+ * @VTE_PTY_DEFAULT: the default flags
+ *
+ * Since: 0.26
+ */
+typedef enum {
+ VTE_PTY_NO_LASTLOG = 1 << 0,
+ VTE_PTY_NO_UTMP = 1 << 1,
+ VTE_PTY_NO_WTMP = 1 << 2,
+ VTE_PTY_NO_HELPER = 1 << 3,
+ VTE_PTY_NO_FALLBACK = 1 << 4,
+ VTE_PTY_DEFAULT = 0
+} VtePtyFlags;
+
+/**
+ * VtePtyError:
+ * @VTE_PTY_ERROR_PTY_HELPER_FAILED: failure when using the GNOME PTY helper to
+ * allocate the PTY
+ * @VTE_PTY_ERROR_PTY98_FAILED: failure when using PTY98 to allocate the PTY
+ *
+ * Since: 0.26
+ */
+typedef enum {
+ VTE_PTY_ERROR_PTY_HELPER_FAILED = 0,
+ VTE_PTY_ERROR_PTY98_FAILED
+} VtePtyError;
+
+GQuark vte_pty_error_quark (void);
+
+/**
+ * VTE_PTY_ERROR:
+ *
+ * Error domain for VTE PTY errors. Errors in this domain will be from the #VtePtyError
+ * enumeration. See #GError for more information on error domains.
+ *
+ * Since: 0.26
+ */
+#define VTE_PTY_ERROR (vte_pty_error_quark ())
+
+/* VTE PTY object */
+
+#define VTE_TYPE_PTY (vte_pty_get_type())
+#define VTE_PTY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VTE_TYPE_PTY, VtePty))
+#define VTE_PTY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VTE_TYPE_PTY, VtePtyClass))
+#define VTE_IS_PTY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VTE_TYPE_PTY))
+#define VTE_IS_PTY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VTE_TYPE_PTY))
+#define VTE_PTY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VTE_TYPE_PTY, VtePtyClass))
+
+typedef struct _VtePty VtePty;
+typedef struct _VtePtyClass VtePtyClass;
+
+GType vte_pty_get_type (void);
+
+VtePty *vte_pty_new (VtePtyFlags flags,
+ GError **error);
+
+VtePty *vte_pty_new_foreign (int fd,
+ GError **error);
+
+int vte_pty_get_fd (VtePty *pty);
+
+void vte_pty_close (VtePty *pty);
+
+void vte_pty_child_setup (VtePty *pty);
+
+gboolean vte_pty_get_size (VtePty *pty,
+ int *rows,
+ int *columns,
+ GError **error);
+
+gboolean vte_pty_set_size (VtePty *pty,
+ int rows,
+ int columns,
+ GError **error);
+
+gboolean vte_pty_set_utf8 (VtePty *pty,
+ gboolean utf8,
+ GError **error);
+
+void vte_pty_set_term (VtePty *pty,
+ const char *emulation);
+
+G_END_DECLS
+
+#endif /* VTE_PTY_H */
diff --git a/vte/src/vteregex.c b/vte/src/vteregex.c
new file mode 100644
index 0000000..c8d1fe7
--- /dev/null
+++ b/vte/src/vteregex.c
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+
+#include <sys/types.h>
+#include <errno.h>
+#include <limits.h>
+#include <string.h>
+#include <unistd.h>
+#include <glib.h>
+
+#include <regex.h>
+
+#include "vteregex.h"
+
+static gint
+compare_matches(gconstpointer a, gconstpointer b)
+{
+ const struct _vte_regex_match *A, *B;
+ A = a;
+ B = b;
+ if (B->rm_so != A->rm_so) {
+ return B->rm_so - A->rm_so;
+ }
+ return B->rm_eo - A->rm_eo;
+}
+
+/* Sort match structures first by starting position, and then by ending
+ * position. We do this because some expression matching APIs sort their
+ * results differently, or just plain don't sort them. */
+static void
+_vte_regex_sort_matches(struct _vte_regex_match *matches, gsize n_matches)
+{
+ GArray *array;
+ if (n_matches <= 1) {
+ return;
+ }
+ array = g_array_new(FALSE, FALSE, sizeof(struct _vte_regex_match));
+ g_array_append_vals(array, matches, n_matches);
+ g_array_sort(array, compare_matches);
+ memmove(matches, array->data,
+ n_matches * sizeof(struct _vte_regex_match));
+ g_array_free(array, TRUE);
+}
+
+/* Ah, POSIX regex. Kind of clunky, but I don't have anything better to
+ * suggest. Better still, it works on my machine. */
+
+struct _vte_regex {
+ regex_t posix_regex;
+};
+
+struct _vte_regex *
+_vte_regex_compile(const char *pattern)
+{
+ struct _vte_regex *ret;
+ int i;
+
+ ret = g_slice_new(struct _vte_regex);
+ i = regcomp(&ret->posix_regex, pattern, REG_EXTENDED);
+ if (i != 0) {
+ g_slice_free(struct _vte_regex, ret);
+ return NULL;
+ }
+ return ret;
+}
+
+void
+_vte_regex_free(struct _vte_regex *regex)
+{
+ regfree(®ex->posix_regex);
+ g_slice_free(struct _vte_regex, regex);
+}
+
+int
+_vte_regex_exec(struct _vte_regex *regex, const char *string,
+ gsize nmatch, struct _vte_regex_match *matches)
+{
+ regmatch_t *posix_matches;
+ guint i, ret;
+
+ posix_matches = g_new(regmatch_t, nmatch);
+ ret = regexec(®ex->posix_regex, string, nmatch, posix_matches, 0);
+ if (ret == 0) {
+ for (i = 0; i < nmatch; i++) {
+ matches[i].rm_so = -1;
+ matches[i].rm_eo = -1;
+ }
+ for (i = 0; i < nmatch; i++) {
+ matches[i].rm_so = posix_matches[i].rm_so;
+ matches[i].rm_eo = posix_matches[i].rm_eo;
+ if (matches[i].rm_so == -1) {
+ _vte_regex_sort_matches(matches, i);
+ break;
+ }
+ }
+ }
+ g_free(posix_matches);
+ if (ret == 0) {
+ return 0;
+ }
+ return -1;
+}
diff --git a/vte/src/vteregex.h b/vte/src/vteregex.h
new file mode 100644
index 0000000..26fc884
--- /dev/null
+++ b/vte/src/vteregex.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef vte_vteregex_h_included
+#define vte_vteregex_h_included
+
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+struct _vte_regex_match {
+ int rm_so, rm_eo;
+};
+struct _vte_regex;
+
+struct _vte_regex * _vte_regex_compile(const char *pattern);
+void _vte_regex_free(struct _vte_regex *regex);
+int _vte_regex_exec(struct _vte_regex *regex, const char *string,
+ gsize nmatch, struct _vte_regex_match *matches);
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vterowdata.c b/vte/src/vterowdata.c
new file mode 100644
index 0000000..1a29523
--- /dev/null
+++ b/vte/src/vterowdata.c
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2002,2009 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Red Hat Author(s): Nalin Dahyabhai, Behdad Esfahbod
+ */
+
+#include <config.h>
+
+#include "debug.h"
+#include "vterowdata.h"
+
+#include <string.h>
+
+
+/*
+ * VteCells: A row's cell array
+ */
+
+typedef struct _VteCells VteCells;
+struct _VteCells {
+ guint32 alloc_len;
+ VteCell cells[1];
+};
+
+static inline VteCells *
+_vte_cells_for_cell_array (VteCell *cells)
+{
+ if (G_UNLIKELY (!cells))
+ return NULL;
+
+ return (VteCells *) (((guchar *) cells) - G_STRUCT_OFFSET (VteCells, cells));
+}
+
+static VteCells *
+_vte_cells_realloc (VteCells *cells, guint32 len)
+{
+ guint32 alloc_len = (1 << g_bit_storage (MAX (len, 80))) - 1;
+
+ _vte_debug_print(VTE_DEBUG_RING, "Enlarging cell array of %d cells to %d cells\n", cells ?
cells->alloc_len : 0, alloc_len);
+ cells = g_realloc (cells, G_STRUCT_OFFSET (VteCells, cells) + alloc_len * sizeof (cells->cells[0]));
+ cells->alloc_len = alloc_len;
+
+ return cells;
+}
+
+static void
+_vte_cells_free (VteCells *cells)
+{
+ _vte_debug_print(VTE_DEBUG_RING, "Freeing cell array of %d cells\n", cells->alloc_len);
+ g_free (cells);
+}
+
+
+/*
+ * VteRowData: A row's data
+ */
+
+void
+_vte_row_data_init (VteRowData *row)
+{
+ memset (row, 0, sizeof (*row));
+}
+
+void
+_vte_row_data_clear (VteRowData *row)
+{
+ VteCell *cells = row->cells;
+ _vte_row_data_init (row);
+ row->cells = cells;
+}
+
+void
+_vte_row_data_fini (VteRowData *row)
+{
+ if (row->cells)
+ _vte_cells_free (_vte_cells_for_cell_array (row->cells));
+ row->cells = NULL;
+}
+
+static inline gboolean
+_vte_row_data_ensure (VteRowData *row, gulong len)
+{
+ VteCells *cells = _vte_cells_for_cell_array (row->cells);
+ if (G_LIKELY (cells && len <= cells->alloc_len))
+ return TRUE;
+
+ if (G_UNLIKELY (len >= 0xFFFF))
+ return FALSE;
+
+ row->cells = _vte_cells_realloc (cells, len)->cells;
+
+ return TRUE;
+}
+
+void
+_vte_row_data_insert (VteRowData *row, gulong col, const VteCell *cell)
+{
+ gulong i;
+
+ if (G_UNLIKELY (!_vte_row_data_ensure (row, row->len + 1)))
+ return;
+
+ for (i = row->len; i > col; i--)
+ row->cells[i] = row->cells[i - 1];
+
+ row->cells[col] = *cell;
+ row->len++;
+}
+
+void _vte_row_data_append (VteRowData *row, const VteCell *cell)
+{
+ if (G_UNLIKELY (!_vte_row_data_ensure (row, row->len + 1)))
+ return;
+
+ row->cells[row->len] = *cell;
+ row->len++;
+}
+
+void _vte_row_data_remove (VteRowData *row, gulong col)
+{
+ gulong i;
+
+ for (i = col + 1; i < row->len; i++)
+ row->cells[i - 1] = row->cells[i];
+
+ if (G_LIKELY (row->len))
+ row->len--;
+}
+
+void _vte_row_data_fill (VteRowData *row, const VteCell *cell, gulong len)
+{
+ if (row->len < len) {
+ gulong i = len - row->len;
+
+ if (G_UNLIKELY (!_vte_row_data_ensure (row, len)))
+ return;
+
+ for (i = row->len; i < len; i++)
+ row->cells[i] = *cell;
+
+ row->len = len;
+ }
+}
+
+void _vte_row_data_shrink (VteRowData *row, gulong max_len)
+{
+ if (max_len < row->len)
+ row->len = max_len;
+}
+
diff --git a/vte/src/vterowdata.h b/vte/src/vterowdata.h
new file mode 100644
index 0000000..a911500
--- /dev/null
+++ b/vte/src/vterowdata.h
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vterowdata_h_included
+#define vterowdata_h_included
+
+#include "vteunistr.h"
+
+G_BEGIN_DECLS
+
+
+#define VTE_DEF_FG 256
+#define VTE_DEF_BG 257
+#define VTE_BOLD_FG 258
+#define VTE_DIM_FG 259
+#define VTE_DEF_HL 260
+#define VTE_CUR_BG 261
+#define VTE_PALETTE_SIZE 262
+
+
+/*
+ * VteCellAttr: A single cell style attributes
+ *
+ * Ordered by most commonly changed attributes, to
+ * optimize the compact representation.
+ */
+
+typedef struct _VteCellAttr {
+ guint32 fragment: 1; /* A continuation cell. */
+ guint32 columns: 4; /* Number of visible columns
+ (as determined by g_unicode_iswide(c)).
+ Also abused for tabs; bug 353610
+ Keep at least 4 for tabs to work
+ */
+ guint32 bold: 1;
+ guint32 fore: 9; /* Index into color palette */
+ guint32 back: 9; /* Index into color palette. */
+
+ guint32 standout: 1;
+ guint32 underline: 1;
+ guint32 strikethrough: 1;
+
+ guint32 reverse: 1;
+ guint32 blink: 1;
+ guint32 half: 1;
+
+ guint32 invisible: 1;
+ /* unused; bug 499893
+ guint32 protect: 1;
+ */
+
+ /* 30 bits */
+} VteCellAttr;
+G_STATIC_ASSERT (sizeof (VteCellAttr) == 4);
+
+typedef union _VteIntCellAttr {
+ VteCellAttr s;
+ guint32 i;
+} VteIntCellAttr;
+G_STATIC_ASSERT (sizeof (VteCellAttr) == sizeof (VteIntCellAttr));
+
+/*
+ * VteCell: A single cell's data
+ */
+
+typedef struct _VteCell {
+ vteunistr c;
+ VteCellAttr attr;
+} VteCell;
+G_STATIC_ASSERT (sizeof (VteCell) == 8);
+
+typedef union _VteIntCell {
+ VteCell cell;
+ struct {
+ guint32 c;
+ guint32 attr;
+ } i;
+} VteIntCell;
+G_STATIC_ASSERT (sizeof (VteCell) == sizeof (VteIntCell));
+
+static const VteIntCell basic_cell = {
+ {
+ 0,
+ {
+ 0, /* fragment */
+ 1, /* columns */
+ 0, /* bold */
+ VTE_DEF_FG, /* fore */
+ VTE_DEF_BG, /* back */
+
+ 0, /* standout */
+ 0, /* underline */
+ 0, /* strikethrough */
+
+ 0, /* reverse */
+ 0, /* blink */
+ 0, /* half */
+
+ 0 /* invisible */
+ }
+ }
+};
+
+
+/*
+ * VteRowAttr: A single row's attributes
+ */
+
+typedef struct _VteRowAttr {
+ guint8 soft_wrapped: 1;
+} VteRowAttr;
+G_STATIC_ASSERT (sizeof (VteRowAttr) == 1);
+
+/*
+ * VteRowData: A single row's data
+ */
+
+typedef struct _VteRowData {
+ VteCell *cells;
+ guint16 len;
+ VteRowAttr attr;
+} VteRowData;
+
+
+#define _vte_row_data_length(__row) ((__row)->len + 0)
+
+static inline const VteCell *
+_vte_row_data_get (const VteRowData *row, gulong col)
+{
+ if (G_UNLIKELY (row->len <= col))
+ return NULL;
+
+ return &row->cells[col];
+}
+
+static inline VteCell *
+_vte_row_data_get_writable (VteRowData *row, gulong col)
+{
+ if (G_UNLIKELY (row->len <= col))
+ return NULL;
+
+ return &row->cells[col];
+}
+
+void _vte_row_data_init (VteRowData *row);
+void _vte_row_data_clear (VteRowData *row);
+void _vte_row_data_fini (VteRowData *row);
+void _vte_row_data_insert (VteRowData *row, gulong col, const VteCell *cell);
+void _vte_row_data_append (VteRowData *row, const VteCell *cell);
+void _vte_row_data_remove (VteRowData *row, gulong col);
+void _vte_row_data_fill (VteRowData *row, const VteCell *cell, gulong len);
+void _vte_row_data_shrink (VteRowData *row, gulong max_len);
+
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vteseq-2.c b/vte/src/vteseq-2.c
new file mode 100644
index 0000000..8735b07
--- /dev/null
+++ b/vte/src/vteseq-2.c
@@ -0,0 +1,268 @@
+/* ANSI-C code produced by gperf version 3.0.3 */
+/* Command-line: gperf -m 100 --no-strlen vteseq-2.gperf */
+/* Computed positions: -k'1-2' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to
<bug-gnu-gperf gnu org>."
+#endif
+
+#line 14 "vteseq-2.gperf"
+struct vteseq_2_struct {
+ char seq[3];
+ VteTerminalSequenceHandler handler;
+};
+#include <string.h>
+/* maximum key range = 77, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+/*ARGSUSED*/
+static unsigned int
+vteseq_2_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 39, 77, 77, 32, 77,
+ 39, 77, 37, 33, 34, 36, 34, 77, 33, 77,
+ 77, 33, 33, 31, 32, 30, 77, 30, 40, 77,
+ 77, 77, 77, 77, 77, 77, 77, 50, 45, 1,
+ 27, 32, 41, 29, 7, 21, 5, 15, 49, 0,
+ 25, 77, 12, 13, 24, 11, 8, 2, 18, 37,
+ 9, 31, 77, 2, 11, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
+ 77
+ };
+ return asso_values[(unsigned char)str[1]+5] + asso_values[(unsigned char)str[0]];
+}
+
+#ifdef __GNUC__
+__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct vteseq_2_struct *
+vteseq_2_lookup (register const char *str, register unsigned int len)
+{
+ enum
+ {
+ TOTAL_KEYWORDS = 74,
+ MIN_WORD_LENGTH = 2,
+ MAX_WORD_LENGTH = 2,
+ MIN_HASH_VALUE = 0,
+ MAX_HASH_VALUE = 76
+ };
+
+ static const struct vteseq_2_struct wordlist[] =
+ {
+#line 247 "vteseq-2.gperf"
+ {"mh", VTE_SEQUENCE_HANDLER(vte_sequence_handler_mh)},
+#line 166 "vteseq-2.gperf"
+ {"ch", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ch)},
+#line 251 "vteseq-2.gperf"
+ {"mp", VTE_SEQUENCE_HANDLER(vte_sequence_handler_mp)},
+#line 172 "vteseq-2.gperf"
+ {"cv", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cv)},
+#line 285 "vteseq-2.gperf"
+ {"up", VTE_SEQUENCE_HANDLER(vte_sequence_handler_up)},
+#line 246 "vteseq-2.gperf"
+ {"me", VTE_SEQUENCE_HANDLER(vte_sequence_handler_me)},
+#line 165 "vteseq-2.gperf"
+ {"ce", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ce)},
+#line 284 "vteseq-2.gperf"
+ {"ue", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ue)},
+#line 163 "vteseq-2.gperf"
+ {"cc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)},
+#line 283 "vteseq-2.gperf"
+ {"uc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_uc)},
+#line 170 "vteseq-2.gperf"
+ {"cs", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cs)},
+#line 286 "vteseq-2.gperf"
+ {"us", VTE_SEQUENCE_HANDLER(vte_sequence_handler_us)},
+#line 248 "vteseq-2.gperf"
+ {"mk", VTE_SEQUENCE_HANDLER(vte_sequence_handler_mk)},
+#line 280 "vteseq-2.gperf"
+ {"te", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)},
+#line 167 "vteseq-2.gperf"
+ {"cl", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cl)},
+#line 185 "vteseq-2.gperf"
+ {"ho", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ho)},
+#line 274 "vteseq-2.gperf"
+ {"se", VTE_SEQUENCE_HANDLER(vte_sequence_handler_se)},
+#line 282 "vteseq-2.gperf"
+ {"ts", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ts)},
+#line 273 "vteseq-2.gperf"
+ {"sc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_sc)},
+#line 276 "vteseq-2.gperf"
+ {"so", VTE_SEQUENCE_HANDLER(vte_sequence_handler_so)},
+#line 224 "vteseq-2.gperf"
+ {"ke", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ke)},
+#line 245 "vteseq-2.gperf"
+ {"md", VTE_SEQUENCE_HANDLER(vte_sequence_handler_md)},
+#line 164 "vteseq-2.gperf"
+ {"cd", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cd)},
+#line 288 "vteseq-2.gperf"
+ {"ve", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ve)},
+#line 228 "vteseq-2.gperf"
+ {"ks", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ks)},
+#line 168 "vteseq-2.gperf"
+ {"cm", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cm)},
+#line 275 "vteseq-2.gperf"
+ {"sf", VTE_SEQUENCE_HANDLER(vte_sequence_handler_sf)},
+#line 290 "vteseq-2.gperf"
+ {"vs", VTE_SEQUENCE_HANDLER(vte_sequence_handler_vs)},
+#line 190 "vteseq-2.gperf"
+ {"ic", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ic)},
+#line 244 "vteseq-2.gperf"
+ {"mb", VTE_SEQUENCE_HANDLER(vte_sequence_handler_mb)},
+#line 162 "vteseq-2.gperf"
+ {"cb", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cb)},
+#line 268 "vteseq-2.gperf"
+ {"rc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_rc)},
+#line 171 "vteseq-2.gperf"
+ {"ct", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ct)},
+#line 281 "vteseq-2.gperf"
+ {"ti", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)},
+#line 173 "vteseq-2.gperf"
+ {"dc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_dc)},
+#line 176 "vteseq-2.gperf"
+ {"do", VTE_SEQUENCE_HANDLER(vte_sequence_handler_do)},
+#line 254 "vteseq-2.gperf"
+ {"nw", VTE_SEQUENCE_HANDLER(vte_sequence_handler_nw)},
+#line 252 "vteseq-2.gperf"
+ {"mr", VTE_SEQUENCE_HANDLER(vte_sequence_handler_mr)},
+#line 169 "vteseq-2.gperf"
+ {"cr", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cr)},
+#line 179 "vteseq-2.gperf"
+ {"ec", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ec)},
+#line 174 "vteseq-2.gperf"
+ {"dl", VTE_SEQUENCE_HANDLER(vte_sequence_handler_dl)},
+#line 161 "vteseq-2.gperf"
+ {"cS", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cS)},
+#line 278 "vteseq-2.gperf"
+ {"st", VTE_SEQUENCE_HANDLER(vte_sequence_handler_st)},
+#line 289 "vteseq-2.gperf"
+ {"vi", VTE_SEQUENCE_HANDLER(vte_sequence_handler_vi)},
+#line 222 "vteseq-2.gperf"
+ {"kb", VTE_SEQUENCE_HANDLER(vte_sequence_handler_kb)},
+#line 192 "vteseq-2.gperf"
+ {"im", VTE_SEQUENCE_HANDLER(vte_sequence_handler_im)},
+#line 253 "vteseq-2.gperf"
+ {"nd", VTE_SEQUENCE_HANDLER(vte_sequence_handler_nd)},
+#line 287 "vteseq-2.gperf"
+ {"vb", VTE_SEQUENCE_HANDLER(vte_sequence_handler_vb)},
+#line 277 "vteseq-2.gperf"
+ {"sr", VTE_SEQUENCE_HANDLER(vte_sequence_handler_sr)},
+#line 279 "vteseq-2.gperf"
+ {"ta", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ta)},
+#line 183 "vteseq-2.gperf"
+ {"fs", VTE_SEQUENCE_HANDLER(vte_sequence_handler_fs)},
+#line 175 "vteseq-2.gperf"
+ {"dm", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)},
+#line 158 "vteseq-2.gperf"
+ {"bc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_le)},
+#line 180 "vteseq-2.gperf"
+ {"ed", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)},
+#line 242 "vteseq-2.gperf"
+ {"le", VTE_SEQUENCE_HANDLER(vte_sequence_handler_le)},
+#line 155 "vteseq-2.gperf"
+ {"ae", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ae)},
+#line 182 "vteseq-2.gperf"
+ {"ff", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)},
+#line 181 "vteseq-2.gperf"
+ {"ei", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ei)},
+#line 159 "vteseq-2.gperf"
+ {"bl", VTE_SEQUENCE_HANDLER(vte_sequence_handler_bl)},
+#line 157 "vteseq-2.gperf"
+ {"as", VTE_SEQUENCE_HANDLER(vte_sequence_handler_as)},
+#line 153 "vteseq-2.gperf"
+ {"UP", VTE_SEQUENCE_HANDLER(vte_sequence_handler_UP)},
+#line 151 "vteseq-2.gperf"
+ {"SR", VTE_SEQUENCE_HANDLER(vte_sequence_handler_SR)},
+#line 243 "vteseq-2.gperf"
+ {"ll", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ll)},
+#line 156 "vteseq-2.gperf"
+ {"al", VTE_SEQUENCE_HANDLER(vte_sequence_handler_al)},
+#line 79 "vteseq-2.gperf"
+ {"DO", VTE_SEQUENCE_HANDLER(vte_sequence_handler_DO)},
+#line 78 "vteseq-2.gperf"
+ {"DL", VTE_SEQUENCE_HANDLER(vte_sequence_handler_DL)},
+#line 147 "vteseq-2.gperf"
+ {"RI", VTE_SEQUENCE_HANDLER(vte_sequence_handler_RI)},
+#line 150 "vteseq-2.gperf"
+ {"SF", VTE_SEQUENCE_HANDLER(vte_sequence_handler_SF)},
+#line 139 "vteseq-2.gperf"
+ {"LE", VTE_SEQUENCE_HANDLER(vte_sequence_handler_LE)},
+#line 77 "vteseq-2.gperf"
+ {"DC", VTE_SEQUENCE_HANDLER(vte_sequence_handler_DC)},
+#line 133 "vteseq-2.gperf"
+ {"IC", VTE_SEQUENCE_HANDLER(vte_sequence_handler_IC)},
+#line 178 "vteseq-2.gperf"
+ {"eA", VTE_SEQUENCE_HANDLER(vte_sequence_handler_eA)},
+#line 76 "vteseq-2.gperf"
+ {"AL", VTE_SEQUENCE_HANDLER(vte_sequence_handler_AL)},
+ {""}, {""}, {""},
+#line 160 "vteseq-2.gperf"
+ {"bt", VTE_SEQUENCE_HANDLER(vte_sequence_handler_bt)}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = vteseq_2_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ {
+ register const char *s = wordlist[key].seq;
+
+ if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
+ return &wordlist[key];
+ }
+ }
+ return 0;
+}
diff --git a/vte/src/vteseq-2.gperf b/vte/src/vteseq-2.gperf
new file mode 100644
index 0000000..e18c2f8
--- /dev/null
+++ b/vte/src/vteseq-2.gperf
@@ -0,0 +1,291 @@
+/* run "make gperf" after modifying this file */
+
+%struct-type
+%language=ANSI-C
+%includes
+%enum
+%readonly-tables
+%define slot-name seq
+%define hash-function-name vteseq_2_hash
+%define lookup-function-name vteseq_2_lookup
+
+%compare-strncmp
+
+struct vteseq_2_struct {
+ char seq[3];
+ VteTerminalSequenceHandler handler;
+};
+
+%%
+#"!1", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"!2", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"!3", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"#1", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"#2", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"#3", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"#4", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%1", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%2", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%3", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%4", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%5", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%6", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%7", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%8", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%9", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%a", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%b", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%c", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%d", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%e", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%f", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%g", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%h", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%i", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"%j", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"&0", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"&1", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"&2", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"&3", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"&4", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"&5", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"&6", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"&7", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"&8", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"&9", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"*0", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"*1", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"*2", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"*3", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"*4", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"*5", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"*6", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"*7", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"*8", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"*9", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"@0", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"@1", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"@2", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"@3", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"@4", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"@5", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"@6", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"@7", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"@8", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"@9", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+"AL", VTE_SEQUENCE_HANDLER(vte_sequence_handler_AL)
+"DC", VTE_SEQUENCE_HANDLER(vte_sequence_handler_DC)
+"DL", VTE_SEQUENCE_HANDLER(vte_sequence_handler_DL)
+"DO", VTE_SEQUENCE_HANDLER(vte_sequence_handler_DO)
+#"F1", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"F2", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"F3", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"F4", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"F5", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"F6", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"F7", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"F8", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"F9", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FA", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FB", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FC", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FD", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FE", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FF", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FG", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FH", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FI", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FJ", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FK", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FL", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FM", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FN", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FO", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FP", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FQ", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FR", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FS", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FT", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FU", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FV", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FW", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FX", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FY", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"FZ", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fa", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fb", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fd", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fe", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Ff", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fg", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fh", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fi", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fj", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fk", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fl", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fm", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fn", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fo", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fp", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fq", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"Fr", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+"IC", VTE_SEQUENCE_HANDLER(vte_sequence_handler_IC)
+#"K1", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"K2", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"K3", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"K4", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"K5", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+"LE", VTE_SEQUENCE_HANDLER(vte_sequence_handler_LE)
+#"LF", VTE_SEQUENCE_HANDLER_NULL
+#"LO", VTE_SEQUENCE_HANDLER_NULL
+#"MC", VTE_SEQUENCE_HANDLER_NULL
+#"ML", VTE_SEQUENCE_HANDLER_NULL
+#"MR", VTE_SEQUENCE_HANDLER_NULL
+#"RA", VTE_SEQUENCE_HANDLER_NULL
+#"RF", VTE_SEQUENCE_HANDLER_NULL
+"RI", VTE_SEQUENCE_HANDLER(vte_sequence_handler_RI)
+#"RX", VTE_SEQUENCE_HANDLER_NULL
+#"SA", VTE_SEQUENCE_HANDLER_NULL
+"SF", VTE_SEQUENCE_HANDLER(vte_sequence_handler_SF)
+"SR", VTE_SEQUENCE_HANDLER(vte_sequence_handler_SR)
+#"SX", VTE_SEQUENCE_HANDLER_NULL
+"UP", VTE_SEQUENCE_HANDLER(vte_sequence_handler_UP)
+#"XF", VTE_SEQUENCE_HANDLER_NULL
+"ae", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ae)
+"al", VTE_SEQUENCE_HANDLER(vte_sequence_handler_al)
+"as", VTE_SEQUENCE_HANDLER(vte_sequence_handler_as)
+"bc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_le)
+"bl", VTE_SEQUENCE_HANDLER(vte_sequence_handler_bl)
+"bt", VTE_SEQUENCE_HANDLER(vte_sequence_handler_bt)
+"cS", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cS)
+"cb", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cb)
+"cc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)
+"cd", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cd)
+"ce", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ce)
+"ch", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ch)
+"cl", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cl)
+"cm", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cm)
+"cr", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cr)
+"cs", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cs)
+"ct", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ct)
+"cv", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cv)
+"dc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_dc)
+"dl", VTE_SEQUENCE_HANDLER(vte_sequence_handler_dl)
+"dm", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)
+"do", VTE_SEQUENCE_HANDLER(vte_sequence_handler_do)
+#"ds", VTE_SEQUENCE_HANDLER_NULL
+"eA", VTE_SEQUENCE_HANDLER(vte_sequence_handler_eA)
+"ec", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ec)
+"ed", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)
+"ei", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ei)
+"ff", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)
+"fs", VTE_SEQUENCE_HANDLER(vte_sequence_handler_fs)
+#"hd", VTE_SEQUENCE_HANDLER_NULL
+"ho", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ho)
+#"hu", VTE_SEQUENCE_HANDLER_NULL
+#"i1", VTE_SEQUENCE_HANDLER_NULL
+#"i3", VTE_SEQUENCE_HANDLER_NULL
+#"iP", VTE_SEQUENCE_HANDLER_NULL
+"ic", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ic)
+#"if", VTE_SEQUENCE_HANDLER_NULL
+"im", VTE_SEQUENCE_HANDLER(vte_sequence_handler_im)
+#"ip", VTE_SEQUENCE_HANDLER_NULL
+#"is", VTE_SEQUENCE_HANDLER_NULL
+#"k0", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"k1", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"k2", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"k3", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"k4", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"k5", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"k6", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"k7", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"k8", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"k9", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"k;", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kA", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kB", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kC", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kD", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kE", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kF", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kH", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kI", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kL", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kM", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kN", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kP", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kR", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kS", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kT", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"ka", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+"kb", VTE_SEQUENCE_HANDLER(vte_sequence_handler_kb)
+#"kd", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+"ke", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ke)
+#"kh", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kl", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"kr", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+"ks", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ks)
+#"kt", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"ku", VTE_SEQUENCE_HANDLER(vte_sequence_handler_complain_key)
+#"l0", VTE_SEQUENCE_HANDLER_NULL
+#"l1", VTE_SEQUENCE_HANDLER_NULL
+#"l2", VTE_SEQUENCE_HANDLER_NULL
+#"l3", VTE_SEQUENCE_HANDLER_NULL
+#"l4", VTE_SEQUENCE_HANDLER_NULL
+#"l5", VTE_SEQUENCE_HANDLER_NULL
+#"l6", VTE_SEQUENCE_HANDLER_NULL
+#"l7", VTE_SEQUENCE_HANDLER_NULL
+#"l8", VTE_SEQUENCE_HANDLER_NULL
+#"l9", VTE_SEQUENCE_HANDLER_NULL
+#"la", VTE_SEQUENCE_HANDLER_NULL
+"le", VTE_SEQUENCE_HANDLER(vte_sequence_handler_le)
+"ll", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ll)
+"mb", VTE_SEQUENCE_HANDLER(vte_sequence_handler_mb)
+"md", VTE_SEQUENCE_HANDLER(vte_sequence_handler_md)
+"me", VTE_SEQUENCE_HANDLER(vte_sequence_handler_me)
+"mh", VTE_SEQUENCE_HANDLER(vte_sequence_handler_mh)
+"mk", VTE_SEQUENCE_HANDLER(vte_sequence_handler_mk)
+#"mm", VTE_SEQUENCE_HANDLER_NULL
+#"mo", VTE_SEQUENCE_HANDLER_NULL
+"mp", VTE_SEQUENCE_HANDLER(vte_sequence_handler_mp)
+"mr", VTE_SEQUENCE_HANDLER(vte_sequence_handler_mr)
+"nd", VTE_SEQUENCE_HANDLER(vte_sequence_handler_nd)
+"nw", VTE_SEQUENCE_HANDLER(vte_sequence_handler_nw)
+#"pO", VTE_SEQUENCE_HANDLER_NULL
+#"pc", VTE_SEQUENCE_HANDLER_NULL
+#"pf", VTE_SEQUENCE_HANDLER_NULL
+#"pk", VTE_SEQUENCE_HANDLER_NULL
+#"pl", VTE_SEQUENCE_HANDLER_NULL
+#"pn", VTE_SEQUENCE_HANDLER_NULL
+#"po", VTE_SEQUENCE_HANDLER_NULL
+#"ps", VTE_SEQUENCE_HANDLER_NULL
+#"px", VTE_SEQUENCE_HANDLER_NULL
+#"r1", VTE_SEQUENCE_HANDLER_NULL
+#"r2", VTE_SEQUENCE_HANDLER_NULL
+#"r3", VTE_SEQUENCE_HANDLER_NULL
+#"rP", VTE_SEQUENCE_HANDLER_NULL
+"rc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_rc)
+#"rf", VTE_SEQUENCE_HANDLER_NULL
+#"rp", VTE_SEQUENCE_HANDLER_NULL
+#"rs", VTE_SEQUENCE_HANDLER_NULL
+#"sa", VTE_SEQUENCE_HANDLER_NULL
+"sc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_sc)
+"se", VTE_SEQUENCE_HANDLER(vte_sequence_handler_se)
+"sf", VTE_SEQUENCE_HANDLER(vte_sequence_handler_sf)
+"so", VTE_SEQUENCE_HANDLER(vte_sequence_handler_so)
+"sr", VTE_SEQUENCE_HANDLER(vte_sequence_handler_sr)
+"st", VTE_SEQUENCE_HANDLER(vte_sequence_handler_st)
+"ta", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ta)
+"te", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)
+"ti", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)
+"ts", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ts)
+"uc", VTE_SEQUENCE_HANDLER(vte_sequence_handler_uc)
+"ue", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ue)
+"up", VTE_SEQUENCE_HANDLER(vte_sequence_handler_up)
+"us", VTE_SEQUENCE_HANDLER(vte_sequence_handler_us)
+"vb", VTE_SEQUENCE_HANDLER(vte_sequence_handler_vb)
+"ve", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ve)
+"vi", VTE_SEQUENCE_HANDLER(vte_sequence_handler_vi)
+"vs", VTE_SEQUENCE_HANDLER(vte_sequence_handler_vs)
+#"wi", VTE_SEQUENCE_HANDLER_NULL
diff --git a/vte/src/vteseq-list.h b/vte/src/vteseq-list.h
new file mode 100644
index 0000000..ab9f5f3
--- /dev/null
+++ b/vte/src/vteseq-list.h
@@ -0,0 +1,121 @@
+/* Generated file. Do not edit */
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_AL)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_DC)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_DL)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_DO)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_IC)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_LE)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_RI)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_SF)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_SR)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_UP)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ae)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_al)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_application_keypad)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_as)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_bl)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_bt)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cS)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cb)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cd)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ce)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ch)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_change_color)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_change_cursor_color)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_character_attributes)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_character_position_absolute)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cl)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cm)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cr)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cs)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ct)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_character_absolute)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_lower_left)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_next_line)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_position)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_preceding_line)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_cv)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_dc)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_dec_device_status_report)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_decreset)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_decset)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_delete_lines)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_device_status_report)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_dl)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_do)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_eA)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ec)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ei)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_erase_characters)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_erase_in_display)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_erase_in_line)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_form_feed)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_fs)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_full_reset)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ho)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_horizontal_and_vertical_position)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ic)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_im)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_index)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_insert_blank_characters)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_insert_lines)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_kb)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ke)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ks)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_le)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_line_position_absolute)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ll)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_local_charset)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_mb)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_md)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_me)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_mh)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_mk)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_mp)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_mr)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_nd)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_next_line)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_normal_keypad)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_nw)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_rc)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_request_terminal_parameters)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_reset_mode)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_restore_mode)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_return_terminal_id)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_return_terminal_status)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_reverse_index)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_save_mode)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_sc)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_screen_alignment_test)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_scroll_down)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_scroll_up)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_se)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_send_primary_device_attributes)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_send_secondary_device_attributes)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_icon_and_window_title)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_icon_title)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_mode)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_scrolling_region)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_scrolling_region_from_start)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_scrolling_region_to_end)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_window_title)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_sf)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_so)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_soft_reset)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_sr)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_st)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ta)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_tab_clear)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ts)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_uc)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ue)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_up)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_us)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_utf_8_charset)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_vb)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_ve)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_vertical_tab)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_vi)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_vs)
+VTE_SEQUENCE_HANDLER(vte_sequence_handler_window_manipulation)
diff --git a/vte/src/vteseq-n.c b/vte/src/vteseq-n.c
new file mode 100644
index 0000000..2099cc3
--- /dev/null
+++ b/vte/src/vteseq-n.c
@@ -0,0 +1,393 @@
+/* ANSI-C code produced by gperf version 3.0.3 */
+/* Command-line: gperf -m 100 vteseq-n.gperf */
+/* Computed positions: -k'1,4,$' */
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646. */
+#error "gperf generated tables don't work with this execution character set. Please report a bug to
<bug-gnu-gperf gnu org>."
+#endif
+
+#line 16 "vteseq-n.gperf"
+struct vteseq_n_struct {
+ int seq;
+ VteTerminalSequenceHandler handler;
+};
+#include <string.h>
+/* maximum key range = 77, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+vteseq_n_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 0, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 10, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 47, 7, 27,
+ 0, 0, 18, 84, 0, 33, 84, 84, 0, 4,
+ 8, 43, 2, 84, 29, 2, 0, 2, 42, 5,
+ 21, 8, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
+ 84, 84, 84, 84, 84, 84
+ };
+ return len + asso_values[(unsigned char)str[3]] + asso_values[(unsigned char)str[0]] +
asso_values[(unsigned char)str[len - 1]];
+}
+
+struct vteseq_n_pool_t
+ {
+ char vteseq_n_pool_str7[sizeof("tab-set")];
+ char vteseq_n_pool_str8[sizeof("decset")];
+ char vteseq_n_pool_str10[sizeof("set-mode")];
+ char vteseq_n_pool_str11[sizeof("save-mode")];
+ char vteseq_n_pool_str12[sizeof("soft-reset")];
+ char vteseq_n_pool_str14[sizeof("delete-lines")];
+ char vteseq_n_pool_str15[sizeof("erase-in-line")];
+ char vteseq_n_pool_str16[sizeof("set-icon-title")];
+ char vteseq_n_pool_str17[sizeof("next-line")];
+ char vteseq_n_pool_str18[sizeof("set-window-title")];
+ char vteseq_n_pool_str19[sizeof("delete-characters")];
+ char vteseq_n_pool_str20[sizeof("erase-characters")];
+ char vteseq_n_pool_str21[sizeof("utf-8-character-set")];
+ char vteseq_n_pool_str22[sizeof("line-position-absolute")];
+ char vteseq_n_pool_str23[sizeof("screen-alignment-test")];
+ char vteseq_n_pool_str24[sizeof("dec-device-status-report")];
+ char vteseq_n_pool_str25[sizeof("normal-keypad")];
+ char vteseq_n_pool_str26[sizeof("erase-in-display")];
+ char vteseq_n_pool_str27[sizeof("set-icon-and-window-title")];
+ char vteseq_n_pool_str28[sizeof("full-reset")];
+ char vteseq_n_pool_str29[sizeof("set-scrolling-region-to-end")];
+ char vteseq_n_pool_str30[sizeof("set-scrolling-region")];
+ char vteseq_n_pool_str31[sizeof("form-feed")];
+ char vteseq_n_pool_str32[sizeof("window-manipulation")];
+ char vteseq_n_pool_str33[sizeof("set-scrolling-region-from-start")];
+ char vteseq_n_pool_str34[sizeof("send-primary-device-attributes")];
+ char vteseq_n_pool_str35[sizeof("linux-console-cursor-attributes")];
+ char vteseq_n_pool_str36[sizeof("send-secondary-device-attributes")];
+ char vteseq_n_pool_str37[sizeof("decreset")];
+ char vteseq_n_pool_str38[sizeof("tab-clear")];
+ char vteseq_n_pool_str39[sizeof("reset-mode")];
+ char vteseq_n_pool_str40[sizeof("cursor-up")];
+ char vteseq_n_pool_str41[sizeof("restore-mode")];
+ char vteseq_n_pool_str42[sizeof("save-cursor")];
+ char vteseq_n_pool_str43[sizeof("cursor-forward")];
+ char vteseq_n_pool_str44[sizeof("cursor-backward")];
+ char vteseq_n_pool_str45[sizeof("cursor-next-line")];
+ char vteseq_n_pool_str46[sizeof("cursor-lower-left")];
+ char vteseq_n_pool_str47[sizeof("insert-lines")];
+ char vteseq_n_pool_str48[sizeof("cursor-down")];
+ char vteseq_n_pool_str49[sizeof("return-terminal-id")];
+ char vteseq_n_pool_str50[sizeof("cursor-preceding-line")];
+ char vteseq_n_pool_str51[sizeof("cursor-back-tab")];
+ char vteseq_n_pool_str52[sizeof("cursor-position")];
+ char vteseq_n_pool_str53[sizeof("device-status-report")];
+ char vteseq_n_pool_str54[sizeof("cursor-character-absolute")];
+ char vteseq_n_pool_str55[sizeof("return-terminal-status")];
+ char vteseq_n_pool_str56[sizeof("scroll-up")];
+ char vteseq_n_pool_str57[sizeof("change-cursor-colors")];
+ char vteseq_n_pool_str58[sizeof("insert-blank-characters")];
+ char vteseq_n_pool_str59[sizeof("index")];
+ char vteseq_n_pool_str60[sizeof("request-terminal-parameters")];
+ char vteseq_n_pool_str61[sizeof("vertical-tab")];
+ char vteseq_n_pool_str62[sizeof("cursor-forward-tabulation")];
+ char vteseq_n_pool_str63[sizeof("reverse-index")];
+ char vteseq_n_pool_str64[sizeof("scroll-down")];
+ char vteseq_n_pool_str65[sizeof("application-keypad")];
+ char vteseq_n_pool_str66[sizeof("iso8859-1-character-set")];
+ char vteseq_n_pool_str72[sizeof("restore-cursor")];
+ char vteseq_n_pool_str73[sizeof("horizontal-and-vertical-position")];
+ char vteseq_n_pool_str76[sizeof("change-color")];
+ char vteseq_n_pool_str78[sizeof("character-attributes")];
+ char vteseq_n_pool_str83[sizeof("character-position-absolute")];
+ };
+static const struct vteseq_n_pool_t vteseq_n_pool_contents =
+ {
+ "tab-set",
+ "decset",
+ "set-mode",
+ "save-mode",
+ "soft-reset",
+ "delete-lines",
+ "erase-in-line",
+ "set-icon-title",
+ "next-line",
+ "set-window-title",
+ "delete-characters",
+ "erase-characters",
+ "utf-8-character-set",
+ "line-position-absolute",
+ "screen-alignment-test",
+ "dec-device-status-report",
+ "normal-keypad",
+ "erase-in-display",
+ "set-icon-and-window-title",
+ "full-reset",
+ "set-scrolling-region-to-end",
+ "set-scrolling-region",
+ "form-feed",
+ "window-manipulation",
+ "set-scrolling-region-from-start",
+ "send-primary-device-attributes",
+ "linux-console-cursor-attributes",
+ "send-secondary-device-attributes",
+ "decreset",
+ "tab-clear",
+ "reset-mode",
+ "cursor-up",
+ "restore-mode",
+ "save-cursor",
+ "cursor-forward",
+ "cursor-backward",
+ "cursor-next-line",
+ "cursor-lower-left",
+ "insert-lines",
+ "cursor-down",
+ "return-terminal-id",
+ "cursor-preceding-line",
+ "cursor-back-tab",
+ "cursor-position",
+ "device-status-report",
+ "cursor-character-absolute",
+ "return-terminal-status",
+ "scroll-up",
+ "change-cursor-colors",
+ "insert-blank-characters",
+ "index",
+ "request-terminal-parameters",
+ "vertical-tab",
+ "cursor-forward-tabulation",
+ "reverse-index",
+ "scroll-down",
+ "application-keypad",
+ "iso8859-1-character-set",
+ "restore-cursor",
+ "horizontal-and-vertical-position",
+ "change-color",
+ "character-attributes",
+ "character-position-absolute"
+ };
+#define vteseq_n_pool ((const char *) &vteseq_n_pool_contents)
+#ifdef __GNUC__
+__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
+#endif
+const struct vteseq_n_struct *
+vteseq_n_lookup (register const char *str, register unsigned int len)
+{
+ enum
+ {
+ TOTAL_KEYWORDS = 63,
+ MIN_WORD_LENGTH = 5,
+ MAX_WORD_LENGTH = 32,
+ MIN_HASH_VALUE = 7,
+ MAX_HASH_VALUE = 83
+ };
+
+ static const unsigned char lengthtable[] =
+ {
+ 0, 0, 0, 0, 0, 0, 0, 7, 6, 0, 8, 9, 10, 0,
+ 12, 13, 14, 9, 16, 17, 16, 19, 22, 21, 24, 13, 16, 25,
+ 10, 27, 20, 9, 19, 31, 30, 31, 32, 8, 9, 10, 9, 12,
+ 11, 14, 15, 16, 17, 12, 11, 18, 21, 15, 15, 20, 25, 22,
+ 9, 20, 23, 5, 27, 12, 25, 13, 11, 18, 23, 0, 0, 0,
+ 0, 0, 14, 32, 0, 0, 12, 0, 20, 0, 0, 0, 0, 27
+ };
+ static const struct vteseq_n_struct wordlist[] =
+ {
+ {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
+#line 27 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str7,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_st)},
+#line 25 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str8,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_decset)},
+ {-1},
+#line 29 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str10,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_mode)},
+#line 33 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str11,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_save_mode)},
+#line 39 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str12,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_soft_reset)},
+ {-1},
+#line 45 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str14,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_delete_lines)},
+#line 51 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str15,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_erase_in_line)},
+#line 61 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str16,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_icon_title)},
+#line 32 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str17,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_next_line)},
+#line 71 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str18,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_window_title)},
+#line 73 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str19,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_DC)},
+#line 69 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str20,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_erase_characters)},
+#line 78 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str21,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_utf_8_charset)},
+#line 95 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str22,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_line_position_absolute)},
+#line 90 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str23,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_screen_alignment_test)},
+#line 109 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str24,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_dec_device_status_report)},
+#line 53 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str25,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_normal_keypad)},
+#line 70 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str26,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_erase_in_display)},
+#line 115 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str27,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_icon_and_window_title)},
+#line 36 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str28,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_full_reset)},
+#line 85 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str29,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_scrolling_region_to_end)},
+#line 83 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str30,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_scrolling_region)},
+#line 31 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str31,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_form_feed)},
+#line 79 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str32,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_window_manipulation)},
+#line 84 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str33,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_scrolling_region_from_start)},
+#line 126 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str34,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_send_primary_device_attributes)},
+#line 127 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str35,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)},
+#line 129 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str36,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_send_secondary_device_attributes)},
+#line 28 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str37,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_decreset)},
+#line 35 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str38,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_tab_clear)},
+#line 38 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str39,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_reset_mode)},
+#line 30 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str40,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_UP)},
+#line 48 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str41,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_restore_mode)},
+#line 42 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str42,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_sc)},
+#line 58 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str43,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_RI)},
+#line 63 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str44,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_LE)},
+#line 68 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str45,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_next_line)},
+#line 72 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str46,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_lower_left)},
+#line 47 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str47,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_insert_lines)},
+#line 40 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str48,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_DO)},
+#line 76 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str49,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_return_terminal_id)},
+#line 88 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str50,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_preceding_line)},
+#line 62 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str51,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_bt)},
+#line 64 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str52,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_position)},
+#line 82 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str53,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_device_status_report)},
+#line 112 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str54,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_character_absolute)},
+#line 96 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str55,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_return_terminal_status)},
+#line 34 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str56,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_scroll_up)},
+#line 80 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str57,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_change_cursor_color)},
+#line 99 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str58,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_insert_blank_characters)},
+#line 24 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str59,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_index)},
+#line 118 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str60,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_request_terminal_parameters)},
+#line 50 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str61,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_vertical_tab)},
+#line 113 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str62,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_ta)},
+#line 54 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str63,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_reverse_index)},
+#line 43 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str64,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_scroll_down)},
+#line 74 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str65,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_application_keypad)},
+#line 102 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str66,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_local_charset)},
+ {-1}, {-1}, {-1}, {-1}, {-1},
+#line 60 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str72,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_rc)},
+#line 128 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str73,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_horizontal_and_vertical_position)},
+ {-1}, {-1},
+#line 44 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str76,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_change_color)},
+ {-1},
+#line 81 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str78,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_character_attributes)},
+ {-1}, {-1}, {-1}, {-1},
+#line 117 "vteseq-n.gperf"
+ {(int)(long)&((struct vteseq_n_pool_t *)0)->vteseq_n_pool_str83,
VTE_SEQUENCE_HANDLER(vte_sequence_handler_character_position_absolute)}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = vteseq_n_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ if (len == lengthtable[key])
+ {
+ register const char *s = wordlist[key].seq + vteseq_n_pool;
+
+ if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
+ return &wordlist[key];
+ }
+ }
+ return 0;
+}
diff --git a/vte/src/vteseq-n.gperf b/vte/src/vteseq-n.gperf
new file mode 100644
index 0000000..8cbcb21
--- /dev/null
+++ b/vte/src/vteseq-n.gperf
@@ -0,0 +1,131 @@
+/* run "make gperf" after modifying this file */
+
+%struct-type
+%language=ANSI-C
+%includes
+%enum
+%readonly-tables
+%define slot-name seq
+%define hash-function-name vteseq_n_hash
+%define lookup-function-name vteseq_n_lookup
+
+%compare-lengths
+%pic
+%define string-pool-name vteseq_n_pool
+
+struct vteseq_n_struct {
+ int seq;
+ VteTerminalSequenceHandler handler;
+};
+
+%%
+#"..rp", VTE_SEQUENCE_HANDLER_NULL
+#"..sa", VTE_SEQUENCE_HANDLER_NULL
+"index", VTE_SEQUENCE_HANDLER(vte_sequence_handler_index)
+"decset", VTE_SEQUENCE_HANDLER(vte_sequence_handler_decset)
+#"repeat", VTE_SEQUENCE_HANDLER_NULL
+"tab-set", VTE_SEQUENCE_HANDLER(vte_sequence_handler_st)
+"decreset", VTE_SEQUENCE_HANDLER(vte_sequence_handler_decreset)
+"set-mode", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_mode)
+"cursor-up", VTE_SEQUENCE_HANDLER(vte_sequence_handler_UP)
+"form-feed", VTE_SEQUENCE_HANDLER(vte_sequence_handler_form_feed)
+"next-line", VTE_SEQUENCE_HANDLER(vte_sequence_handler_next_line)
+"save-mode", VTE_SEQUENCE_HANDLER(vte_sequence_handler_save_mode)
+"scroll-up", VTE_SEQUENCE_HANDLER(vte_sequence_handler_scroll_up)
+"tab-clear", VTE_SEQUENCE_HANDLER(vte_sequence_handler_tab_clear)
+"full-reset", VTE_SEQUENCE_HANDLER(vte_sequence_handler_full_reset)
+#"media-copy", VTE_SEQUENCE_HANDLER_NULL
+"reset-mode", VTE_SEQUENCE_HANDLER(vte_sequence_handler_reset_mode)
+"soft-reset", VTE_SEQUENCE_HANDLER(vte_sequence_handler_soft_reset)
+"cursor-down", VTE_SEQUENCE_HANDLER(vte_sequence_handler_DO)
+#"memory-lock", VTE_SEQUENCE_HANDLER_NULL
+"save-cursor", VTE_SEQUENCE_HANDLER(vte_sequence_handler_sc)
+"scroll-down", VTE_SEQUENCE_HANDLER(vte_sequence_handler_scroll_down)
+"change-color", VTE_SEQUENCE_HANDLER(vte_sequence_handler_change_color)
+"delete-lines", VTE_SEQUENCE_HANDLER(vte_sequence_handler_delete_lines)
+#"double-width", VTE_SEQUENCE_HANDLER_NULL
+"insert-lines", VTE_SEQUENCE_HANDLER(vte_sequence_handler_insert_lines)
+"restore-mode", VTE_SEQUENCE_HANDLER(vte_sequence_handler_restore_mode)
+#"single-width", VTE_SEQUENCE_HANDLER_NULL
+"vertical-tab", VTE_SEQUENCE_HANDLER(vte_sequence_handler_vertical_tab)
+"erase-in-line", VTE_SEQUENCE_HANDLER(vte_sequence_handler_erase_in_line)
+#"memory-unlock", VTE_SEQUENCE_HANDLER_NULL
+"normal-keypad", VTE_SEQUENCE_HANDLER(vte_sequence_handler_normal_keypad)
+"reverse-index", VTE_SEQUENCE_HANDLER(vte_sequence_handler_reverse_index)
+#"7-bit-controls", VTE_SEQUENCE_HANDLER_NULL
+#"8-bit-controls", VTE_SEQUENCE_HANDLER_NULL
+#"change-logfile", VTE_SEQUENCE_HANDLER_NULL
+"cursor-forward", VTE_SEQUENCE_HANDLER(vte_sequence_handler_RI)
+#"dec-media-copy", VTE_SEQUENCE_HANDLER_NULL
+"restore-cursor", VTE_SEQUENCE_HANDLER(vte_sequence_handler_rc)
+"set-icon-title", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_icon_title)
+"cursor-back-tab", VTE_SEQUENCE_HANDLER(vte_sequence_handler_bt)
+"cursor-backward", VTE_SEQUENCE_HANDLER(vte_sequence_handler_LE)
+"cursor-position", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_position)
+#"single-shift-g2", VTE_SEQUENCE_HANDLER_NULL
+#"single-shift-g3", VTE_SEQUENCE_HANDLER_NULL
+#"change-font-name", VTE_SEQUENCE_HANDLER_NULL
+"cursor-next-line", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_next_line)
+"erase-characters", VTE_SEQUENCE_HANDLER(vte_sequence_handler_erase_characters)
+"erase-in-display", VTE_SEQUENCE_HANDLER(vte_sequence_handler_erase_in_display)
+"set-window-title", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_window_title)
+"cursor-lower-left", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_lower_left)
+"delete-characters", VTE_SEQUENCE_HANDLER(vte_sequence_handler_DC)
+"application-keypad", VTE_SEQUENCE_HANDLER(vte_sequence_handler_application_keypad)
+#"change-font-number", VTE_SEQUENCE_HANDLER_NULL
+"return-terminal-id", VTE_SEQUENCE_HANDLER(vte_sequence_handler_return_terminal_id)
+#"end-of-guarded-area", VTE_SEQUENCE_HANDLER_NULL
+"utf-8-character-set", VTE_SEQUENCE_HANDLER(vte_sequence_handler_utf_8_charset)
+"window-manipulation", VTE_SEQUENCE_HANDLER(vte_sequence_handler_window_manipulation)
+"change-cursor-colors", VTE_SEQUENCE_HANDLER(vte_sequence_handler_change_cursor_color)
+"character-attributes", VTE_SEQUENCE_HANDLER(vte_sequence_handler_character_attributes)
+"device-status-report", VTE_SEQUENCE_HANDLER(vte_sequence_handler_device_status_report)
+"set-scrolling-region", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_scrolling_region)
+"set-scrolling-region-from-start", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_scrolling_region_from_start)
+"set-scrolling-region-to-end", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_scrolling_region_to_end)
+#"set-text-property-21", VTE_SEQUENCE_HANDLER_NULL
+#"set-text-property-2L", VTE_SEQUENCE_HANDLER_NULL
+"cursor-preceding-line", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_preceding_line)
+#"device-control-string", VTE_SEQUENCE_HANDLER_NULL
+"screen-alignment-test", VTE_SEQUENCE_HANDLER(vte_sequence_handler_screen_alignment_test)
+#"select-locator-events", VTE_SEQUENCE_HANDLER_NULL
+#"set-conformance-level", VTE_SEQUENCE_HANDLER_NULL
+#"start-of-guarded-area", VTE_SEQUENCE_HANDLER_NULL
+#"double-height-top-half", VTE_SEQUENCE_HANDLER_NULL
+"line-position-absolute", VTE_SEQUENCE_HANDLER(vte_sequence_handler_line_position_absolute)
+"return-terminal-status", VTE_SEQUENCE_HANDLER(vte_sequence_handler_return_terminal_status)
+#"change-highlight-colors", VTE_SEQUENCE_HANDLER_NULL
+#"enable-filter-rectangle", VTE_SEQUENCE_HANDLER_NULL
+"insert-blank-characters", VTE_SEQUENCE_HANDLER(vte_sequence_handler_insert_blank_characters)
+#"invoke-g2-character-set", VTE_SEQUENCE_HANDLER_NULL
+#"invoke-g3-character-set", VTE_SEQUENCE_HANDLER_NULL
+"iso8859-1-character-set", VTE_SEQUENCE_HANDLER(vte_sequence_handler_local_charset)
+#"selective-erase-in-line", VTE_SEQUENCE_HANDLER_NULL
+#"ansi-conformance-level-1", VTE_SEQUENCE_HANDLER_NULL
+#"ansi-conformance-level-2", VTE_SEQUENCE_HANDLER_NULL
+#"ansi-conformance-level-3", VTE_SEQUENCE_HANDLER_NULL
+#"change-background-colors", VTE_SEQUENCE_HANDLER_NULL
+#"change-foreground-colors", VTE_SEQUENCE_HANDLER_NULL
+"dec-device-status-report", VTE_SEQUENCE_HANDLER(vte_sequence_handler_dec_device_status_report)
+#"enable-locator-reporting", VTE_SEQUENCE_HANDLER_NULL
+#"request-locator-position", VTE_SEQUENCE_HANDLER_NULL
+"cursor-character-absolute", VTE_SEQUENCE_HANDLER(vte_sequence_handler_cursor_character_absolute)
+"cursor-forward-tabulation", VTE_SEQUENCE_HANDLER(vte_sequence_handler_ta)
+#"double-height-bottom-half", VTE_SEQUENCE_HANDLER_NULL
+"set-icon-and-window-title", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_icon_and_window_title)
+#"selective-erase-in-display", VTE_SEQUENCE_HANDLER_NULL
+"character-position-absolute", VTE_SEQUENCE_HANDLER(vte_sequence_handler_character_position_absolute)
+"request-terminal-parameters", VTE_SEQUENCE_HANDLER(vte_sequence_handler_request_terminal_parameters)
+#"select-character-protection", VTE_SEQUENCE_HANDLER_NULL
+#"change-tek-background-colors", VTE_SEQUENCE_HANDLER_NULL
+#"change-tek-foreground-colors", VTE_SEQUENCE_HANDLER_NULL
+#"invoke-g1-character-set-as-gr", VTE_SEQUENCE_HANDLER_NULL
+#"invoke-g2-character-set-as-gr", VTE_SEQUENCE_HANDLER_NULL
+#"invoke-g3-character-set-as-gr", VTE_SEQUENCE_HANDLER_NULL
+#"initiate-hilite-mouse-tracking", VTE_SEQUENCE_HANDLER_NULL
+"send-primary-device-attributes", VTE_SEQUENCE_HANDLER(vte_sequence_handler_send_primary_device_attributes)
+"linux-console-cursor-attributes", VTE_SEQUENCE_HANDLER(vte_sequence_handler_noop)
+"horizontal-and-vertical-position",
VTE_SEQUENCE_HANDLER(vte_sequence_handler_horizontal_and_vertical_position)
+"send-secondary-device-attributes",
VTE_SEQUENCE_HANDLER(vte_sequence_handler_send_secondary_device_attributes)
+#"change-mouse-cursor-background-colors", VTE_SEQUENCE_HANDLER_NULL
+#"change-mouse-cursor-foreground-colors", VTE_SEQUENCE_HANDLER_NULL
diff --git a/vte/src/vteseq.c b/vte/src/vteseq.c
new file mode 100644
index 0000000..7ef4c8c
--- /dev/null
+++ b/vte/src/vteseq.c
@@ -0,0 +1,3364 @@
+/*
+ * Copyright (C) 2001-2004 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include <config.h>
+
+#include <limits.h>
+#ifdef HAVE_SYS_SYSLIMITS_H
+#include <sys/syslimits.h>
+#endif
+
+#include <glib.h>
+
+#include "vte.h"
+#include "vte-private.h"
+#include "vtetc.h"
+
+#define BEL "\007"
+
+
+
+/* FUNCTIONS WE USE */
+
+
+
+static void
+display_control_sequence(const char *name, GValueArray *params)
+{
+#ifdef VTE_DEBUG
+ guint i;
+ long l;
+ const char *s;
+ const gunichar *w;
+ GValue *value;
+ g_printerr("%s(", name);
+ if (params != NULL) {
+ for (i = 0; i < params->n_values; i++) {
+ value = g_value_array_get_nth(params, i);
+ if (i > 0) {
+ g_printerr(", ");
+ }
+ if (G_VALUE_HOLDS_LONG(value)) {
+ l = g_value_get_long(value);
+ g_printerr("%ld", l);
+ } else
+ if (G_VALUE_HOLDS_STRING(value)) {
+ s = g_value_get_string(value);
+ g_printerr("\"%s\"", s);
+ } else
+ if (G_VALUE_HOLDS_POINTER(value)) {
+ w = g_value_get_pointer(value);
+ g_printerr("\"%ls\"", (const wchar_t*) w);
+ }
+ }
+ }
+ g_printerr(")\n");
+#endif
+}
+
+
+/* A couple are duplicated from vte.c, to keep them static... */
+
+/* Find the character an the given position in the backscroll buffer. */
+static VteCell *
+vte_terminal_find_charcell (VteTerminal *terminal, glong col, glong row)
+{
+ VteRowData *rowdata;
+ VteCell *ret = NULL;
+ VteScreen *screen;
+ g_assert(VTE_IS_TERMINAL(terminal));
+ screen = terminal->pvt->screen;
+ if (_vte_ring_contains (screen->row_data, row)) {
+ rowdata = _vte_ring_index_writable (screen->row_data, row);
+ ret = _vte_row_data_get_writable (rowdata, col);
+ }
+ return ret;
+}
+
+/* Check how long a string of unichars is. Slow version. */
+static gssize
+vte_unichar_strlen(gunichar *c)
+{
+ int i;
+ for (i = 0; c[i] != 0; i++) ;
+ return i;
+}
+
+/* Convert a wide character string to a multibyte string */
+static gchar *
+vte_ucs4_to_utf8 (VteTerminal *terminal, const guchar *in)
+{
+ gchar *out = NULL;
+ guchar *buf = NULL, *bufptr = NULL;
+ gsize inlen, outlen;
+ VteConv conv;
+
+ conv = _vte_conv_open ("UTF-8", VTE_CONV_GUNICHAR_TYPE);
+
+ if (conv != VTE_INVALID_CONV) {
+ inlen = vte_unichar_strlen ((gunichar *) in) * sizeof (gunichar);
+ outlen = (inlen * VTE_UTF8_BPC) + 1;
+
+ _vte_buffer_set_minimum_size (terminal->pvt->conv_buffer, outlen);
+ buf = bufptr = terminal->pvt->conv_buffer->data;
+
+ if (_vte_conv (conv, &in, &inlen, &buf, &outlen) == (size_t) -1) {
+ _vte_debug_print (VTE_DEBUG_IO,
+ "Error converting %ld string bytes (%s), skipping.\n",
+ (long) _vte_buffer_length (terminal->pvt->outgoing),
+ g_strerror (errno));
+ bufptr = NULL;
+ } else {
+ out = g_strndup ((gchar *) bufptr, buf - bufptr);
+ }
+ }
+
+ _vte_conv_close (conv);
+
+ return out;
+}
+
+static gboolean
+vte_parse_color (const char *spec, GdkColor *color)
+{
+ gchar *spec_copy = (gchar *) spec;
+ gboolean retval = FALSE;
+
+ /* gdk_color_parse doesnt handle all XParseColor formats. It only
+ * supports the #RRRGGGBBB format, not the rgb:RRR/GGG/BBB format.
+ * See: man XParseColor */
+
+ if (g_ascii_strncasecmp (spec_copy, "rgb:", 4) == 0) {
+ gchar *cur, *ptr;
+
+ spec_copy = g_strdup (spec);
+ cur = spec_copy;
+ ptr = spec_copy + 3;
+
+ *cur++ = '#';
+ while (*ptr++)
+ if (*ptr != '/')
+ *cur++ = *ptr;
+ *cur++ = '\0';
+ }
+
+ retval = gdk_color_parse (spec_copy, color);
+
+ if (spec_copy != spec)
+ g_free (spec_copy);
+
+ return retval;
+}
+
+
+
+
+
+
+/* Emit a "deiconify-window" signal. */
+static void
+vte_terminal_emit_deiconify_window(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `deiconify-window'.\n");
+ g_signal_emit_by_name(terminal, "deiconify-window");
+}
+
+/* Emit a "iconify-window" signal. */
+static void
+vte_terminal_emit_iconify_window(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `iconify-window'.\n");
+ g_signal_emit_by_name(terminal, "iconify-window");
+}
+
+/* Emit a "raise-window" signal. */
+static void
+vte_terminal_emit_raise_window(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `raise-window'.\n");
+ g_signal_emit_by_name(terminal, "raise-window");
+}
+
+/* Emit a "lower-window" signal. */
+static void
+vte_terminal_emit_lower_window(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `lower-window'.\n");
+ g_signal_emit_by_name(terminal, "lower-window");
+}
+
+/* Emit a "maximize-window" signal. */
+static void
+vte_terminal_emit_maximize_window(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `maximize-window'.\n");
+ g_signal_emit_by_name(terminal, "maximize-window");
+}
+
+/* Emit a "refresh-window" signal. */
+static void
+vte_terminal_emit_refresh_window(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `refresh-window'.\n");
+ g_signal_emit_by_name(terminal, "refresh-window");
+}
+
+/* Emit a "restore-window" signal. */
+static void
+vte_terminal_emit_restore_window(VteTerminal *terminal)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `restore-window'.\n");
+ g_signal_emit_by_name(terminal, "restore-window");
+}
+
+/* Emit a "move-window" signal. (Pixels.) */
+static void
+vte_terminal_emit_move_window(VteTerminal *terminal, guint x, guint y)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `move-window'.\n");
+ g_signal_emit_by_name(terminal, "move-window", x, y);
+}
+
+/* Emit a "resize-window" signal. (Pixels.) */
+static void
+vte_terminal_emit_resize_window(VteTerminal *terminal,
+ guint width, guint height)
+{
+ _vte_debug_print(VTE_DEBUG_SIGNALS,
+ "Emitting `resize-window'.\n");
+ g_signal_emit_by_name(terminal, "resize-window", width, height);
+}
+
+
+/* Some common functions */
+
+static void
+_vte_terminal_home_cursor (VteTerminal *terminal)
+{
+ VteScreen *screen;
+ screen = terminal->pvt->screen;
+ screen->cursor_current.row = screen->insert_delta;
+ screen->cursor_current.col = 0;
+}
+
+/* Clear the entire screen. */
+static void
+_vte_terminal_clear_screen (VteTerminal *terminal)
+{
+ long i, initial, row;
+ VteScreen *screen;
+ screen = terminal->pvt->screen;
+ initial = screen->insert_delta;
+ row = screen->cursor_current.row - screen->insert_delta;
+ initial = _vte_ring_next(screen->row_data);
+ /* Add a new screen's worth of rows. */
+ for (i = 0; i < terminal->row_count; i++)
+ _vte_terminal_ring_append (terminal, TRUE);
+ /* Move the cursor and insertion delta to the first line in the
+ * newly-cleared area and scroll if need be. */
+ screen->insert_delta = initial;
+ screen->cursor_current.row = row + screen->insert_delta;
+ _vte_terminal_adjust_adjustments(terminal);
+ /* Redraw everything. */
+ _vte_invalidate_all(terminal);
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Clear the current line. */
+static void
+_vte_terminal_clear_current_line (VteTerminal *terminal)
+{
+ VteRowData *rowdata;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+
+ /* If the cursor is actually on the screen, clear data in the row
+ * which corresponds to the cursor. */
+ if (_vte_ring_next(screen->row_data) > screen->cursor_current.row) {
+ /* Get the data for the row which the cursor points to. */
+ rowdata = _vte_ring_index_writable (screen->row_data, screen->cursor_current.row);
+ g_assert(rowdata != NULL);
+ /* Remove it. */
+ _vte_row_data_shrink (rowdata, 0);
+ /* Add enough cells to the end of the line to fill out the row. */
+ _vte_row_data_fill (rowdata, &screen->fill_defaults, terminal->column_count);
+ rowdata->attr.soft_wrapped = 0;
+ /* Repaint this row. */
+ _vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ screen->cursor_current.row, 1);
+ }
+
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Clear above the current line. */
+static void
+_vte_terminal_clear_above_current (VteTerminal *terminal)
+{
+ VteRowData *rowdata;
+ long i;
+ VteScreen *screen;
+ screen = terminal->pvt->screen;
+ /* If the cursor is actually on the screen, clear data in the row
+ * which corresponds to the cursor. */
+ for (i = screen->insert_delta; i < screen->cursor_current.row; i++) {
+ if (_vte_ring_next(screen->row_data) > i) {
+ /* Get the data for the row we're erasing. */
+ rowdata = _vte_ring_index_writable (screen->row_data, i);
+ g_assert(rowdata != NULL);
+ /* Remove it. */
+ _vte_row_data_shrink (rowdata, 0);
+ /* Add new cells until we fill the row. */
+ _vte_row_data_fill (rowdata, &screen->fill_defaults, terminal->column_count);
+ rowdata->attr.soft_wrapped = 0;
+ /* Repaint the row. */
+ _vte_invalidate_cells(terminal,
+ 0, terminal->column_count, i, 1);
+ }
+ }
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Scroll the text, but don't move the cursor. Negative = up, positive = down. */
+static void
+_vte_terminal_scroll_text (VteTerminal *terminal, int scroll_amount)
+{
+ long start, end, i;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+
+ if (screen->scrolling_restricted) {
+ start = screen->insert_delta + screen->scrolling_region.start;
+ end = screen->insert_delta + screen->scrolling_region.end;
+ } else {
+ start = screen->insert_delta;
+ end = start + terminal->row_count - 1;
+ }
+
+ while (_vte_ring_next(screen->row_data) <= end)
+ _vte_terminal_ring_append (terminal, FALSE);
+
+ if (scroll_amount > 0) {
+ for (i = 0; i < scroll_amount; i++) {
+ _vte_terminal_ring_remove (terminal, end);
+ _vte_terminal_ring_insert (terminal, start, TRUE);
+ }
+ } else {
+ for (i = 0; i < -scroll_amount; i++) {
+ _vte_terminal_ring_remove (terminal, start);
+ _vte_terminal_ring_insert (terminal, end, TRUE);
+ }
+ }
+
+ /* Update the display. */
+ _vte_terminal_scroll_region(terminal, start, end - start + 1,
+ scroll_amount);
+
+ /* Adjust the scrollbars if necessary. */
+ _vte_terminal_adjust_adjustments(terminal);
+
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_inserted_flag = TRUE;
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+static gboolean
+vte_terminal_termcap_string_same_as_for (VteTerminal *terminal,
+ const char *cap_str,
+ const char *cap_other)
+{
+ char *other_str;
+ gboolean ret;
+
+ other_str = _vte_termcap_find_string(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ cap_other);
+
+ ret = other_str && (g_ascii_strcasecmp(cap_str, other_str) == 0);
+
+ g_free (other_str);
+
+ return ret;
+}
+
+/* Set icon/window titles. */
+static void
+vte_sequence_handler_set_title_internal(VteTerminal *terminal,
+ GValueArray *params,
+ gboolean icon_title,
+ gboolean window_title)
+{
+ GValue *value;
+ char *title = NULL;
+
+ if (icon_title == FALSE && window_title == FALSE)
+ return;
+
+ /* Get the string parameter's value. */
+ value = g_value_array_get_nth(params, 0);
+ if (value) {
+ if (G_VALUE_HOLDS_LONG(value)) {
+ /* Convert the long to a string. */
+ title = g_strdup_printf("%ld", g_value_get_long(value));
+ } else
+ if (G_VALUE_HOLDS_STRING(value)) {
+ /* Copy the string into the buffer. */
+ title = g_value_dup_string(value);
+ } else
+ if (G_VALUE_HOLDS_POINTER(value)) {
+ title = vte_ucs4_to_utf8 (terminal, g_value_get_pointer (value));
+ }
+ if (title != NULL) {
+ char *p, *validated;
+ const char *end;
+
+ /* Validate the text. */
+ g_utf8_validate(title, strlen(title), &end);
+ validated = g_strndup(title, end - title);
+
+ /* No control characters allowed. */
+ for (p = validated; *p != '\0'; p++) {
+ if ((*p & 0x1f) == *p) {
+ *p = ' ';
+ }
+ }
+
+ /* Emit the signal */
+ if (window_title) {
+ g_free (terminal->pvt->window_title_changed);
+ terminal->pvt->window_title_changed = g_strdup (validated);
+ }
+
+ if (icon_title) {
+ g_free (terminal->pvt->icon_title_changed);
+ terminal->pvt->icon_title_changed = g_strdup (validated);
+ }
+
+ g_free (validated);
+ g_free(title);
+ }
+ }
+}
+
+/* Toggle a terminal mode. */
+static void
+vte_sequence_handler_set_mode_internal(VteTerminal *terminal,
+ long setting, gboolean value)
+{
+ switch (setting) {
+ case 2: /* keyboard action mode (?) */
+ break;
+ case 4: /* insert/overtype mode */
+ terminal->pvt->screen->insert_mode = value;
+ break;
+ case 12: /* send/receive mode (local echo) */
+ terminal->pvt->screen->sendrecv_mode = value;
+ break;
+ case 20: /* automatic newline / normal linefeed mode */
+ terminal->pvt->screen->linefeed_mode = value;
+ break;
+ default:
+ break;
+ }
+}
+
+
+/*
+ * Sequence handling boilerplate
+ */
+
+/* Typedef the handle type */
+typedef void (*VteTerminalSequenceHandler) (VteTerminal *terminal, GValueArray *params);
+
+/* Prototype all handlers... */
+#define VTE_SEQUENCE_HANDLER(name) \
+ static void name (VteTerminal *terminal, GValueArray *params);
+#include "vteseq-list.h"
+#undef VTE_SEQUENCE_HANDLER
+
+
+/* Call another handler, offsetting any long arguments by the given
+ * increment value. */
+static void
+vte_sequence_handler_offset(VteTerminal *terminal,
+ GValueArray *params,
+ int increment,
+ VteTerminalSequenceHandler handler)
+{
+ guint i;
+ long val;
+ GValue *value;
+ /* Decrement the parameters and let the _cs handler deal with it. */
+ for (i = 0; (params != NULL) && (i < params->n_values); i++) {
+ value = g_value_array_get_nth(params, i);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ val = g_value_get_long(value);
+ val += increment;
+ g_value_set_long(value, val);
+ }
+ }
+ handler (terminal, params);
+}
+
+/* Call another function a given number of times, or once. */
+static void
+vte_sequence_handler_multiple_limited(VteTerminal *terminal,
+ GValueArray *params,
+ VteTerminalSequenceHandler handler,
+ glong max)
+{
+ long val = 1;
+ int i;
+ GValue *value;
+
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ val = g_value_get_long(value);
+ val = CLAMP(val, 1, max); /* FIXME: vttest. */
+ }
+ }
+ for (i = 0; i < val; i++)
+ handler (terminal, NULL);
+}
+
+static void
+vte_sequence_handler_multiple(VteTerminal *terminal,
+ GValueArray *params,
+ VteTerminalSequenceHandler handler)
+{
+ vte_sequence_handler_multiple_limited(terminal, params, handler, G_MAXLONG);
+}
+
+static void
+vte_sequence_handler_multiple_r(VteTerminal *terminal,
+ GValueArray *params,
+ VteTerminalSequenceHandler handler)
+{
+ vte_sequence_handler_multiple_limited(terminal, params, handler,
+ terminal->column_count -
terminal->pvt->screen->cursor_current.col);
+}
+
+/* Manipulate certain terminal attributes. */
+static void
+vte_sequence_handler_decset_internal(VteTerminal *terminal,
+ int setting,
+ gboolean restore,
+ gboolean save,
+ gboolean set)
+{
+ gboolean recognized = FALSE;
+ gpointer p;
+ guint i;
+ struct {
+ int setting;
+ gboolean *bvalue;
+ gint *ivalue;
+ gpointer *pvalue;
+ gpointer fvalue;
+ gpointer tvalue;
+ VteTerminalSequenceHandler reset, set;
+ } settings[] = {
+ /* 1: Application/normal cursor keys. */
+ {1, NULL, &terminal->pvt->cursor_mode, NULL,
+ GINT_TO_POINTER(VTE_KEYMODE_NORMAL),
+ GINT_TO_POINTER(VTE_KEYMODE_APPLICATION),
+ NULL, NULL,},
+ /* 2: disallowed, we don't do VT52. */
+ {2, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 3: disallowed, window size is set by user. */
+ {3, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 4: Smooth scroll. */
+ {4, &terminal->pvt->smooth_scroll, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
+ /* 5: Reverse video. */
+ {5, &terminal->pvt->screen->reverse_mode, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
+ /* 6: Origin mode: when enabled, cursor positioning is
+ * relative to the scrolling region. */
+ {6, &terminal->pvt->screen->origin_mode, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
+ /* 7: Wraparound mode. */
+ {7, &terminal->pvt->flags.am, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
+ /* 8: disallowed, keyboard repeat is set by user. */
+ {8, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 9: Send-coords-on-click. */
+ {9, NULL, &terminal->pvt->mouse_tracking_mode, NULL,
+ GINT_TO_POINTER(0),
+ GINT_TO_POINTER(MOUSE_TRACKING_SEND_XY_ON_CLICK),
+ NULL, NULL,},
+ /* 12: disallowed, cursor blinks is set by user. */
+ {12, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 18: print form feed. */
+ /* 19: set print extent to full screen. */
+ /* 25: Cursor visible. */
+ {25, &terminal->pvt->cursor_visible, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
+ /* 30/rxvt: disallowed, scrollbar visibility is set by user. */
+ {30, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 35/rxvt: disallowed, fonts set by user. */
+ {35, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 38: enter Tektronix mode. */
+ /* 40: disallowed, the user sizes dynamically. */
+ {40, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 41: more(1) fix. */
+ /* 42: Enable NLS replacements. */
+ {42, &terminal->pvt->nrc_mode, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
+ /* 44: Margin bell. */
+ {44, &terminal->pvt->margin_bell, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
+ /* 47: Alternate screen. */
+ {47, NULL, NULL, (gpointer) &terminal->pvt->screen,
+ &terminal->pvt->normal_screen,
+ &terminal->pvt->alternate_screen,
+ NULL, NULL,},
+ /* 66: Keypad mode. */
+ {66, &terminal->pvt->keypad_mode, NULL, NULL,
+ GINT_TO_POINTER(VTE_KEYMODE_NORMAL),
+ GINT_TO_POINTER(VTE_KEYMODE_APPLICATION),
+ NULL, NULL,},
+ /* 67: disallowed, backspace key policy is set by user. */
+ {67, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 1000: Send-coords-on-button. */
+ {1000, NULL, &terminal->pvt->mouse_tracking_mode, NULL,
+ GINT_TO_POINTER(0),
+ GINT_TO_POINTER(MOUSE_TRACKING_SEND_XY_ON_BUTTON),
+ NULL, NULL,},
+ /* 1001: Hilite tracking. */
+ {1001, NULL, &terminal->pvt->mouse_tracking_mode, NULL,
+ GINT_TO_POINTER(0),
+ GINT_TO_POINTER(MOUSE_TRACKING_HILITE_TRACKING),
+ NULL, NULL,},
+ /* 1002: Cell motion tracking. */
+ {1002, NULL, &terminal->pvt->mouse_tracking_mode, NULL,
+ GINT_TO_POINTER(0),
+ GINT_TO_POINTER(MOUSE_TRACKING_CELL_MOTION_TRACKING),
+ NULL, NULL,},
+ /* 1003: All motion tracking. */
+ {1003, NULL, &terminal->pvt->mouse_tracking_mode, NULL,
+ GINT_TO_POINTER(0),
+ GINT_TO_POINTER(MOUSE_TRACKING_ALL_MOTION_TRACKING),
+ NULL, NULL,},
+ /* 1010/rxvt: disallowed, scroll-on-output is set by user. */
+ {1010, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 1011/rxvt: disallowed, scroll-on-keypress is set by user. */
+ {1011, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 1035: disallowed, don't know what to do with it. */
+ {1035, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 1036: Meta-sends-escape. */
+ {1036, &terminal->pvt->meta_sends_escape, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
+ /* 1037: disallowed, delete key policy is set by user. */
+ {1037, NULL, NULL, NULL, NULL, NULL, NULL, NULL,},
+ /* 1047: Use alternate screen buffer. */
+ {1047, NULL, NULL, (gpointer) &terminal->pvt->screen,
+ &terminal->pvt->normal_screen,
+ &terminal->pvt->alternate_screen,
+ NULL, NULL,},
+ /* 1048: Save/restore cursor position. */
+ {1048, NULL, NULL, NULL,
+ NULL,
+ NULL,
+ vte_sequence_handler_rc,
+ vte_sequence_handler_sc,},
+ /* 1049: Use alternate screen buffer, saving the cursor
+ * position. */
+ {1049, NULL, NULL, (gpointer) &terminal->pvt->screen,
+ &terminal->pvt->normal_screen,
+ &terminal->pvt->alternate_screen,
+ vte_sequence_handler_rc,
+ vte_sequence_handler_sc,},
+ /* 1051: Sun function key mode. */
+ {1051, NULL, NULL, (gpointer) &terminal->pvt->sun_fkey_mode,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL},
+ /* 1052: HP function key mode. */
+ {1052, NULL, NULL, (gpointer) &terminal->pvt->hp_fkey_mode,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL},
+ /* 1060: Legacy function key mode. */
+ {1060, NULL, NULL, (gpointer) &terminal->pvt->legacy_fkey_mode,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL},
+ /* 1061: VT220 function key mode. */
+ {1061, NULL, NULL, (gpointer) &terminal->pvt->vt220_fkey_mode,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL},
+ /* 2004: Bracketed paste mode. */
+ {2004, &terminal->pvt->screen->bracketed_paste_mode, NULL, NULL,
+ GINT_TO_POINTER(FALSE),
+ GINT_TO_POINTER(TRUE),
+ NULL, NULL,},
+ };
+
+ /* Handle the setting. */
+ for (i = 0; i < G_N_ELEMENTS(settings); i++)
+ if (settings[i].setting == setting) {
+ recognized = TRUE;
+ /* Handle settings we want to ignore. */
+ if ((settings[i].fvalue == settings[i].tvalue) &&
+ (settings[i].set == NULL) &&
+ (settings[i].reset == NULL)) {
+ continue;
+ }
+
+ /* Read the old setting. */
+ if (restore) {
+ p = g_hash_table_lookup(terminal->pvt->dec_saved,
+ GINT_TO_POINTER(setting));
+ set = (p != NULL);
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Setting %d was %s.\n",
+ setting, set ? "set" : "unset");
+ }
+ /* Save the current setting. */
+ if (save) {
+ if (settings[i].bvalue) {
+ set = *(settings[i].bvalue) != FALSE;
+ } else
+ if (settings[i].ivalue) {
+ set = *(settings[i].ivalue) ==
+ GPOINTER_TO_INT(settings[i].tvalue);
+ } else
+ if (settings[i].pvalue) {
+ set = *(settings[i].pvalue) ==
+ settings[i].tvalue;
+ }
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Setting %d is %s, saving.\n",
+ setting, set ? "set" : "unset");
+ g_hash_table_insert(terminal->pvt->dec_saved,
+ GINT_TO_POINTER(setting),
+ GINT_TO_POINTER(set));
+ }
+ /* Change the current setting to match the new/saved value. */
+ if (!save) {
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Setting %d to %s.\n",
+ setting, set ? "set" : "unset");
+ if (settings[i].set && set) {
+ settings[i].set (terminal, NULL);
+ }
+ if (settings[i].bvalue) {
+ *(settings[i].bvalue) = set;
+ } else
+ if (settings[i].ivalue) {
+ *(settings[i].ivalue) = set ?
+ GPOINTER_TO_INT(settings[i].tvalue) :
+ GPOINTER_TO_INT(settings[i].fvalue);
+ } else
+ if (settings[i].pvalue) {
+ *(settings[i].pvalue) = set ?
+ settings[i].tvalue :
+ settings[i].fvalue;
+ }
+ if (settings[i].reset && !set) {
+ settings[i].reset (terminal, NULL);
+ }
+ }
+ }
+
+ /* Do whatever's necessary when the setting changes. */
+ switch (setting) {
+ case 1:
+ _vte_debug_print(VTE_DEBUG_KEYBOARD, set ?
+ "Entering application cursor mode.\n" :
+ "Leaving application cursor mode.\n");
+ break;
+#if 0 /* 3: disallowed, window size is set by user. */
+ case 3:
+ vte_terminal_emit_resize_window(terminal,
+ (set ? 132 : 80) *
+ terminal->char_width +
+ terminal->pvt->inner_border.left +
+ terminal->pvt->inner_border.right,
+ terminal->row_count *
+ terminal->char_height +
+ terminal->pvt->inner_border.top +
+ terminal->pvt->inner_border.bottom);
+ /* Request a resize and redraw. */
+ _vte_invalidate_all(terminal);
+ break;
+#endif
+ case 5:
+ /* Repaint everything in reverse mode. */
+ _vte_invalidate_all(terminal);
+ break;
+ case 6:
+ /* Reposition the cursor in its new home position. */
+ terminal->pvt->screen->cursor_current.col = 0;
+ terminal->pvt->screen->cursor_current.row =
+ terminal->pvt->screen->insert_delta;
+ break;
+ case 47:
+ case 1047:
+ case 1049:
+ /* Clear the alternate screen if we're switching
+ * to it, and home the cursor. */
+ if (set) {
+ _vte_terminal_clear_screen (terminal);
+ _vte_terminal_home_cursor (terminal);
+ }
+ /* Reset scrollbars and repaint everything. */
+ gtk_adjustment_set_value(terminal->adjustment,
+ terminal->pvt->screen->scroll_delta);
+ vte_terminal_set_scrollback_lines(terminal,
+ terminal->pvt->scrollback_lines);
+ _vte_terminal_queue_contents_changed(terminal);
+ _vte_invalidate_all (terminal);
+ break;
+ case 9:
+ case 1000:
+ case 1001:
+ case 1002:
+ case 1003:
+ /* Make the pointer visible. */
+ _vte_terminal_set_pointer_visible(terminal, TRUE);
+ break;
+ case 66:
+ _vte_debug_print(VTE_DEBUG_KEYBOARD, set ?
+ "Entering application keypad mode.\n" :
+ "Leaving application keypad mode.\n");
+ break;
+ case 1051:
+ _vte_debug_print(VTE_DEBUG_KEYBOARD, set ?
+ "Entering Sun fkey mode.\n" :
+ "Leaving Sun fkey mode.\n");
+ break;
+ case 1052:
+ _vte_debug_print(VTE_DEBUG_KEYBOARD, set ?
+ "Entering HP fkey mode.\n" :
+ "Leaving HP fkey mode.\n");
+ break;
+ case 1060:
+ _vte_debug_print(VTE_DEBUG_KEYBOARD, set ?
+ "Entering Legacy fkey mode.\n" :
+ "Leaving Legacy fkey mode.\n");
+ break;
+ case 1061:
+ _vte_debug_print(VTE_DEBUG_KEYBOARD, set ?
+ "Entering VT220 fkey mode.\n" :
+ "Leaving VT220 fkey mode.\n");
+ break;
+ default:
+ break;
+ }
+
+ if (!recognized) {
+ _vte_debug_print (VTE_DEBUG_MISC,
+ "DECSET/DECRESET mode %d not recognized, ignoring.\n",
+ setting);
+ }
+}
+
+
+
+
+/* THE HANDLERS */
+
+
+/* End alternate character set. */
+static void
+vte_sequence_handler_ae (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->alternate_charset = FALSE;
+}
+
+/* Add a line at the current cursor position. */
+static void
+vte_sequence_handler_al (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ long start, end, param, i;
+ GValue *value;
+
+ /* Find out which part of the screen we're messing with. */
+ screen = terminal->pvt->screen;
+ start = screen->cursor_current.row;
+ if (screen->scrolling_restricted) {
+ end = screen->insert_delta + screen->scrolling_region.end;
+ } else {
+ end = screen->insert_delta + terminal->row_count - 1;
+ }
+
+ /* Extract any parameters. */
+ param = 1;
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ param = g_value_get_long(value);
+ }
+ }
+
+ /* Insert the right number of lines. */
+ for (i = 0; i < param; i++) {
+ /* Clear a line off the end of the region and add one to the
+ * top of the region. */
+ _vte_terminal_ring_remove (terminal, end);
+ _vte_terminal_ring_insert (terminal, start, TRUE);
+ /* Adjust the scrollbars if necessary. */
+ _vte_terminal_adjust_adjustments(terminal);
+ }
+
+ /* Update the display. */
+ _vte_terminal_scroll_region(terminal, start, end - start + 1, param);
+
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Add N lines at the current cursor position. */
+static void
+vte_sequence_handler_AL (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_al (terminal, params);
+}
+
+/* Start using alternate character set. */
+static void
+vte_sequence_handler_as (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->alternate_charset = TRUE;
+}
+
+/* Beep. */
+static void
+vte_sequence_handler_bl (VteTerminal *terminal, GValueArray *params)
+{
+ _vte_terminal_beep (terminal);
+ g_signal_emit_by_name(terminal, "beep");
+}
+
+/* Backtab. */
+static void
+vte_sequence_handler_bt (VteTerminal *terminal, GValueArray *params)
+{
+ long newcol;
+
+ /* Calculate which column is the previous tab stop. */
+ newcol = terminal->pvt->screen->cursor_current.col;
+
+ if (terminal->pvt->tabstops != NULL) {
+ /* Find the next tabstop. */
+ while (newcol > 0) {
+ newcol--;
+ if (_vte_terminal_get_tabstop(terminal,
+ newcol % terminal->column_count)) {
+ break;
+ }
+ }
+ }
+
+ /* Warp the cursor. */
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Moving cursor to column %ld.\n", (long)newcol);
+ terminal->pvt->screen->cursor_current.col = newcol;
+}
+
+/* Clear from the cursor position to the beginning of the line. */
+static void
+vte_sequence_handler_cb (VteTerminal *terminal, GValueArray *params)
+{
+ VteRowData *rowdata;
+ long i;
+ VteScreen *screen;
+ VteCell *pcell;
+ screen = terminal->pvt->screen;
+
+ /* Get the data for the row which the cursor points to. */
+ rowdata = _vte_terminal_ensure_row(terminal);
+ /* Clear the data up to the current column with the default
+ * attributes. If there is no such character cell, we need
+ * to add one. */
+ for (i = 0; i <= screen->cursor_current.col; i++) {
+ if (i < (glong) _vte_row_data_length (rowdata)) {
+ /* Muck with the cell in this location. */
+ pcell = _vte_row_data_get_writable (rowdata, i);
+ *pcell = screen->color_defaults;
+ } else {
+ /* Add new cells until we have one here. */
+ _vte_row_data_append (rowdata, &screen->color_defaults);
+ }
+ }
+ /* Repaint this row. */
+ _vte_invalidate_cells(terminal,
+ 0, screen->cursor_current.col+1,
+ screen->cursor_current.row, 1);
+
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Clear to the right of the cursor and below the current line. */
+static void
+vte_sequence_handler_cd (VteTerminal *terminal, GValueArray *params)
+{
+ VteRowData *rowdata;
+ glong i;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+ /* If the cursor is actually on the screen, clear the rest of the
+ * row the cursor is on and all of the rows below the cursor. */
+ i = screen->cursor_current.row;
+ if (i < _vte_ring_next(screen->row_data)) {
+ /* Get the data for the row we're clipping. */
+ rowdata = _vte_ring_index_writable (screen->row_data, i);
+ /* Clear everything to the right of the cursor. */
+ if (rowdata)
+ _vte_row_data_shrink (rowdata, screen->cursor_current.col);
+ }
+ /* Now for the rest of the lines. */
+ for (i = screen->cursor_current.row + 1;
+ i < _vte_ring_next(screen->row_data);
+ i++) {
+ /* Get the data for the row we're removing. */
+ rowdata = _vte_ring_index_writable (screen->row_data, i);
+ /* Remove it. */
+ if (rowdata)
+ _vte_row_data_shrink (rowdata, 0);
+ }
+ /* Now fill the cleared areas. */
+ for (i = screen->cursor_current.row;
+ i < screen->insert_delta + terminal->row_count;
+ i++) {
+ /* Retrieve the row's data, creating it if necessary. */
+ if (_vte_ring_contains (screen->row_data, i)) {
+ rowdata = _vte_ring_index_writable (screen->row_data, i);
+ g_assert(rowdata != NULL);
+ } else {
+ rowdata = _vte_terminal_ring_append (terminal, FALSE);
+ }
+ /* Pad out the row. */
+ _vte_row_data_fill (rowdata, &screen->fill_defaults, terminal->column_count);
+ rowdata->attr.soft_wrapped = 0;
+ /* Repaint this row. */
+ _vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ i, 1);
+ }
+
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Clear from the cursor position to the end of the line. */
+static void
+vte_sequence_handler_ce (VteTerminal *terminal, GValueArray *params)
+{
+ VteRowData *rowdata;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+ /* Get the data for the row which the cursor points to. */
+ rowdata = _vte_terminal_ensure_row(terminal);
+ g_assert(rowdata != NULL);
+ /* Remove the data at the end of the array until the current column
+ * is the end of the array. */
+ if ((glong) _vte_row_data_length (rowdata) > screen->cursor_current.col) {
+ _vte_row_data_shrink (rowdata, screen->cursor_current.col);
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+ }
+ if (screen->fill_defaults.attr.back != VTE_DEF_BG) {
+ /* Add enough cells to fill out the row. */
+ _vte_row_data_fill (rowdata, &screen->fill_defaults, terminal->column_count);
+ }
+ rowdata->attr.soft_wrapped = 0;
+ /* Repaint this row. */
+ _vte_invalidate_cells(terminal,
+ screen->cursor_current.col,
+ terminal->column_count -
+ screen->cursor_current.col,
+ screen->cursor_current.row, 1);
+}
+
+/* Move the cursor to the given column (horizontal position). */
+static void
+vte_sequence_handler_ch (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ GValue *value;
+ long val;
+
+ screen = terminal->pvt->screen;
+ /* We only care if there's a parameter in there. */
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ val = CLAMP(g_value_get_long(value),
+ 0,
+ terminal->column_count - 1);
+ /* Move the cursor. */
+ screen->cursor_current.col = val;
+ _vte_terminal_cleanup_tab_fragments_at_cursor (terminal);
+ }
+ }
+}
+
+/* Clear the screen and home the cursor. */
+static void
+vte_sequence_handler_cl (VteTerminal *terminal, GValueArray *params)
+{
+ _vte_terminal_clear_screen (terminal);
+ _vte_terminal_home_cursor (terminal);
+
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Move the cursor to the given position. */
+static void
+vte_sequence_handler_cm (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *row, *col;
+ long rowval, colval, origin;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+
+ /* We need at least two parameters. */
+ rowval = colval = 0;
+ if (params != NULL && params->n_values >= 1) {
+ /* The first is the row, the second is the column. */
+ row = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(row)) {
+ if (screen->origin_mode &&
+ screen->scrolling_restricted) {
+ origin = screen->scrolling_region.start;
+ } else {
+ origin = 0;
+ }
+ rowval = g_value_get_long(row) + origin;
+ rowval = CLAMP(rowval, 0, terminal->row_count - 1);
+ }
+ if (params->n_values >= 2) {
+ col = g_value_array_get_nth(params, 1);
+ if (G_VALUE_HOLDS_LONG(col)) {
+ colval = g_value_get_long(col);
+ colval = CLAMP(colval, 0, terminal->column_count - 1);
+ }
+ }
+ }
+ screen->cursor_current.row = rowval + screen->insert_delta;
+ screen->cursor_current.col = colval;
+ _vte_terminal_cleanup_tab_fragments_at_cursor (terminal);
+}
+
+/* Carriage return. */
+static void
+vte_sequence_handler_cr (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->cursor_current.col = 0;
+}
+
+/* Restrict scrolling and updates to a subset of the visible lines. */
+static void
+vte_sequence_handler_cs (VteTerminal *terminal, GValueArray *params)
+{
+ long start=-1, end=-1, rows;
+ GValue *value;
+ VteScreen *screen;
+
+ _vte_terminal_home_cursor (terminal);
+
+ /* We require two parameters. Anything less is a reset. */
+ screen = terminal->pvt->screen;
+ if ((params == NULL) || (params->n_values < 2)) {
+ screen->scrolling_restricted = FALSE;
+ return;
+ }
+ /* Extract the two values. */
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ start = g_value_get_long(value);
+ }
+ value = g_value_array_get_nth(params, 1);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ end = g_value_get_long(value);
+ }
+ /* Catch garbage. */
+ rows = terminal->row_count;
+ if (start <= 0 || start >= rows) {
+ start = 0;
+ }
+ if (end <= 0 || end >= rows) {
+ end = rows - 1;
+ }
+ /* Set the right values. */
+ screen->scrolling_region.start = start;
+ screen->scrolling_region.end = end;
+ screen->scrolling_restricted = TRUE;
+ /* Special case -- run wild, run free. */
+ if (screen->scrolling_region.start == 0 &&
+ screen->scrolling_region.end == rows - 1) {
+ screen->scrolling_restricted = FALSE;
+ }
+}
+
+/* Restrict scrolling and updates to a subset of the visible lines, because
+ * GNU Emacs is special. */
+static void
+vte_sequence_handler_cS (VteTerminal *terminal, GValueArray *params)
+{
+ long start=0, end=terminal->row_count-1, rows;
+ GValue *value;
+ VteScreen *screen;
+
+ /* We require four parameters. */
+ screen = terminal->pvt->screen;
+ if ((params == NULL) || (params->n_values < 2)) {
+ screen->scrolling_restricted = FALSE;
+ return;
+ }
+ /* Extract the two parameters we care about, encoded as the number
+ * of lines above and below the scrolling region, respectively. */
+ value = g_value_array_get_nth(params, 1);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ start = g_value_get_long(value);
+ }
+ value = g_value_array_get_nth(params, 2);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ end -= g_value_get_long(value);
+ }
+ /* Set the right values. */
+ screen->scrolling_region.start = start;
+ screen->scrolling_region.end = end;
+ screen->scrolling_restricted = TRUE;
+ /* Special case -- run wild, run free. */
+ rows = terminal->row_count;
+ if ((screen->scrolling_region.start == 0) &&
+ (screen->scrolling_region.end == rows - 1)) {
+ screen->scrolling_restricted = FALSE;
+ }
+ /* Clamp the cursor to the scrolling region. */
+ screen->cursor_current.row = CLAMP(screen->cursor_current.row,
+ screen->insert_delta + start,
+ screen->insert_delta + end);
+}
+
+/* Clear all tab stops. */
+static void
+vte_sequence_handler_ct (VteTerminal *terminal, GValueArray *params)
+{
+ if (terminal->pvt->tabstops != NULL) {
+ g_hash_table_destroy(terminal->pvt->tabstops);
+ terminal->pvt->tabstops = NULL;
+ }
+}
+
+/* Move the cursor to the lower left-hand corner. */
+static void
+vte_sequence_handler_cursor_lower_left (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ long row;
+ screen = terminal->pvt->screen;
+ row = MAX(0, terminal->row_count - 1);
+ screen->cursor_current.row = screen->insert_delta + row;
+ screen->cursor_current.col = 0;
+}
+
+/* Move the cursor to the beginning of the next line, scrolling if necessary. */
+static void
+vte_sequence_handler_cursor_next_line (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->cursor_current.col = 0;
+ vte_sequence_handler_DO (terminal, params);
+}
+
+/* Move the cursor to the beginning of the next line, scrolling if necessary. */
+static void
+vte_sequence_handler_cursor_preceding_line (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->cursor_current.col = 0;
+ vte_sequence_handler_UP (terminal, params);
+}
+
+/* Move the cursor to the given row (vertical position). */
+static void
+vte_sequence_handler_cv (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ GValue *value;
+ long val, origin;
+ screen = terminal->pvt->screen;
+ /* We only care if there's a parameter in there. */
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ /* Move the cursor. */
+ if (screen->origin_mode &&
+ screen->scrolling_restricted) {
+ origin = screen->scrolling_region.start;
+ } else {
+ origin = 0;
+ }
+ val = g_value_get_long(value) + origin;
+ val = CLAMP(val, 0, terminal->row_count - 1);
+ screen->cursor_current.row = screen->insert_delta + val;
+ }
+ }
+}
+
+/* Delete a character at the current cursor position. */
+static void
+vte_sequence_handler_dc (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ VteRowData *rowdata;
+ long col;
+
+ screen = terminal->pvt->screen;
+
+ if (_vte_ring_next(screen->row_data) > screen->cursor_current.row) {
+ long len;
+ /* Get the data for the row which the cursor points to. */
+ rowdata = _vte_ring_index_writable (screen->row_data, screen->cursor_current.row);
+ g_assert(rowdata != NULL);
+ col = screen->cursor_current.col;
+ len = _vte_row_data_length (rowdata);
+ /* Remove the column. */
+ if (col < len) {
+ _vte_row_data_remove (rowdata, col);
+ if (screen->fill_defaults.attr.back != VTE_DEF_BG) {
+ _vte_row_data_fill (rowdata, &screen->fill_defaults, terminal->column_count);
+ len = terminal->column_count;
+ }
+ /* Repaint this row. */
+ _vte_invalidate_cells(terminal,
+ col, len - col,
+ screen->cursor_current.row, 1);
+ }
+ }
+
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Delete N characters at the current cursor position. */
+static void
+vte_sequence_handler_DC (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_dc);
+}
+
+/* Delete a line at the current cursor position. */
+static void
+vte_sequence_handler_dl (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ long start, end, param, i;
+ GValue *value;
+
+ /* Find out which part of the screen we're messing with. */
+ screen = terminal->pvt->screen;
+ start = screen->cursor_current.row;
+ if (screen->scrolling_restricted) {
+ end = screen->insert_delta + screen->scrolling_region.end;
+ } else {
+ end = screen->insert_delta + terminal->row_count - 1;
+ }
+
+ /* Extract any parameters. */
+ param = 1;
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ param = g_value_get_long(value);
+ }
+ }
+
+ /* Delete the right number of lines. */
+ for (i = 0; i < param; i++) {
+ /* Clear a line off the end of the region and add one to the
+ * top of the region. */
+ _vte_terminal_ring_remove (terminal, start);
+ _vte_terminal_ring_insert (terminal, end, TRUE);
+ /* Adjust the scrollbars if necessary. */
+ _vte_terminal_adjust_adjustments(terminal);
+ }
+
+ /* Update the display. */
+ _vte_terminal_scroll_region(terminal, start, end - start + 1, -param);
+
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Delete N lines at the current cursor position. */
+static void
+vte_sequence_handler_DL (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_dl (terminal, params);
+}
+
+/* Cursor down, no scrolling. */
+static void
+vte_sequence_handler_do (VteTerminal *terminal, GValueArray *params)
+{
+ long start, end;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+
+ if (screen->scrolling_restricted) {
+ start = screen->insert_delta + screen->scrolling_region.start;
+ end = screen->insert_delta + screen->scrolling_region.end;
+ } else {
+ start = screen->insert_delta;
+ end = start + terminal->row_count - 1;
+ }
+
+ /* Move the cursor down. */
+ screen->cursor_current.row = MIN(screen->cursor_current.row + 1, end);
+}
+
+/* Cursor down, no scrolling. */
+static void
+vte_sequence_handler_DO (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_do);
+}
+
+/* Start using alternate character set. */
+static void
+vte_sequence_handler_eA (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_ae (terminal, params);
+}
+
+/* Erase characters starting at the cursor position (overwriting N with
+ * spaces, but not moving the cursor). */
+static void
+vte_sequence_handler_ec (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ VteRowData *rowdata;
+ GValue *value;
+ VteCell *cell;
+ long col, i, count;
+
+ screen = terminal->pvt->screen;
+
+ /* If we got a parameter, use it. */
+ count = 1;
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ count = g_value_get_long(value);
+ }
+ }
+
+ /* Clear out the given number of characters. */
+ rowdata = _vte_terminal_ensure_row(terminal);
+ if (_vte_ring_next(screen->row_data) > screen->cursor_current.row) {
+ g_assert(rowdata != NULL);
+ /* Write over the characters. (If there aren't enough, we'll
+ * need to create them.) */
+ for (i = 0; i < count; i++) {
+ col = screen->cursor_current.col + i;
+ if (col >= 0) {
+ if (col < (glong) _vte_row_data_length (rowdata)) {
+ /* Replace this cell with the current
+ * defaults. */
+ cell = _vte_row_data_get_writable (rowdata, col);
+ *cell = screen->color_defaults;
+ } else {
+ /* Add new cells until we have one here. */
+ _vte_row_data_fill (rowdata, &screen->color_defaults, col);
+ }
+ }
+ }
+ /* Repaint this row. */
+ _vte_invalidate_cells(terminal,
+ screen->cursor_current.col, count,
+ screen->cursor_current.row, 1);
+ }
+
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* End insert mode. */
+static void
+vte_sequence_handler_ei (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->insert_mode = FALSE;
+}
+
+/* Form-feed / next-page. */
+static void
+vte_sequence_handler_form_feed (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_index (terminal, params);
+}
+
+/* Move from status line. */
+static void
+vte_sequence_handler_fs (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->status_line = FALSE;
+}
+
+/* Move the cursor to the home position. */
+static void
+vte_sequence_handler_ho (VteTerminal *terminal, GValueArray *params)
+{
+ _vte_terminal_home_cursor (terminal);
+}
+
+/* Move the cursor to a specified position. */
+static void
+vte_sequence_handler_horizontal_and_vertical_position (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_offset(terminal, params, -1, vte_sequence_handler_cm);
+}
+
+/* Insert a character. */
+static void
+vte_sequence_handler_ic (VteTerminal *terminal, GValueArray *params)
+{
+ VteVisualPosition save;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+
+ save = screen->cursor_current;
+
+ _vte_terminal_insert_char(terminal, ' ', TRUE, TRUE);
+
+ screen->cursor_current = save;
+}
+
+/* Insert N characters. */
+static void
+vte_sequence_handler_IC (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_multiple_r(terminal, params, vte_sequence_handler_ic);
+}
+
+/* Begin insert mode. */
+static void
+vte_sequence_handler_im (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->insert_mode = TRUE;
+}
+
+/* Cursor down, with scrolling. */
+static void
+vte_sequence_handler_index (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_sf (terminal, params);
+}
+
+/* Send me a backspace key sym, will you? Guess that the application meant
+ * to send the cursor back one position. */
+static void
+vte_sequence_handler_kb (VteTerminal *terminal, GValueArray *params)
+{
+ /* Move the cursor left. */
+ vte_sequence_handler_le (terminal, params);
+}
+
+/* Keypad mode end. */
+static void
+vte_sequence_handler_ke (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->keypad_mode = VTE_KEYMODE_NORMAL;
+}
+
+/* Keypad mode start. */
+static void
+vte_sequence_handler_ks (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->keypad_mode = VTE_KEYMODE_APPLICATION;
+}
+
+/* Cursor left. */
+static void
+vte_sequence_handler_le (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+ if (screen->cursor_current.col > 0) {
+ /* There's room to move left, so do so. */
+ screen->cursor_current.col--;
+ _vte_terminal_cleanup_tab_fragments_at_cursor (terminal);
+ } else {
+ if (terminal->pvt->flags.bw) {
+ /* Wrap to the previous line. */
+ screen->cursor_current.col = terminal->column_count - 1;
+ if (screen->scrolling_restricted) {
+ vte_sequence_handler_sr (terminal, params);
+ } else {
+ screen->cursor_current.row = MAX(screen->cursor_current.row - 1,
+ screen->insert_delta);
+ }
+ } else {
+ /* Stick to the first column. */
+ screen->cursor_current.col = 0;
+ }
+ }
+}
+
+/* Move the cursor left N columns. */
+static void
+vte_sequence_handler_LE (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_le);
+}
+
+/* Move the cursor to the lower left corner of the display. */
+static void
+vte_sequence_handler_ll (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ screen = terminal->pvt->screen;
+ screen->cursor_current.row = MAX(screen->insert_delta,
+ screen->insert_delta +
+ terminal->row_count - 1);
+ screen->cursor_current.col = 0;
+}
+
+/* Blink on. */
+static void
+vte_sequence_handler_mb (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->defaults.attr.blink = 1;
+}
+
+/* Bold on. */
+static void
+vte_sequence_handler_md (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->defaults.attr.bold = 1;
+ terminal->pvt->screen->defaults.attr.half = 0;
+}
+
+/* End modes. */
+static void
+vte_sequence_handler_me (VteTerminal *terminal, GValueArray *params)
+{
+ _vte_terminal_set_default_attributes(terminal);
+}
+
+/* Half-bright on. */
+static void
+vte_sequence_handler_mh (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->defaults.attr.half = 1;
+ terminal->pvt->screen->defaults.attr.bold = 0;
+}
+
+/* Invisible on. */
+static void
+vte_sequence_handler_mk (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->defaults.attr.invisible = 1;
+}
+
+/* Protect on. */
+static void
+vte_sequence_handler_mp (VteTerminal *terminal, GValueArray *params)
+{
+ /* unused; bug 499893
+ terminal->pvt->screen->defaults.attr.protect = 1;
+ */
+}
+
+/* Reverse on. */
+static void
+vte_sequence_handler_mr (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->defaults.attr.reverse = 1;
+}
+
+/* Cursor right. */
+static void
+vte_sequence_handler_nd (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ screen = terminal->pvt->screen;
+ if ((screen->cursor_current.col + 1) < terminal->column_count) {
+ /* There's room to move right. */
+ screen->cursor_current.col++;
+ }
+}
+
+/* Move the cursor to the beginning of the next line, scrolling if necessary. */
+static void
+vte_sequence_handler_next_line (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->cursor_current.col = 0;
+ vte_sequence_handler_DO (terminal, params);
+}
+
+/* No-op. */
+static void
+vte_sequence_handler_noop (VteTerminal *terminal, GValueArray *params)
+{
+}
+
+/* Carriage return command(?). */
+static void
+vte_sequence_handler_nw (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_cr (terminal, params);
+}
+
+/* Restore cursor (position). */
+static void
+vte_sequence_handler_rc (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ screen = terminal->pvt->screen;
+ screen->cursor_current.col = screen->cursor_saved.col;
+ screen->cursor_current.row = CLAMP(screen->cursor_saved.row +
+ screen->insert_delta,
+ screen->insert_delta,
+ screen->insert_delta +
+ terminal->row_count - 1);
+}
+
+/* Cursor down, with scrolling. */
+static void
+vte_sequence_handler_reverse_index (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_sr (terminal, params);
+}
+
+/* Cursor right N characters. */
+static void
+vte_sequence_handler_RI (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_nd);
+}
+
+/* Save cursor (position). */
+static void
+vte_sequence_handler_sc (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ screen = terminal->pvt->screen;
+ screen->cursor_saved.col = screen->cursor_current.col;
+ screen->cursor_saved.row = CLAMP(screen->cursor_current.row -
+ screen->insert_delta,
+ 0, terminal->row_count - 1);
+}
+
+/* Scroll the text down, but don't move the cursor. */
+static void
+vte_sequence_handler_scroll_down (VteTerminal *terminal, GValueArray *params)
+{
+ long val = 1;
+ GValue *value;
+
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ val = g_value_get_long(value);
+ val = MAX(val, 1);
+ }
+ }
+
+ _vte_terminal_scroll_text (terminal, val);
+}
+
+/* change color in the palette */
+static void
+vte_sequence_handler_change_color (VteTerminal *terminal, GValueArray *params)
+{
+ gchar **pairs, *str = NULL;
+ GValue *value;
+ GdkColor color;
+ guint idx, i;
+
+ if (params != NULL && params->n_values > 0) {
+ value = g_value_array_get_nth (params, 0);
+
+ if (G_VALUE_HOLDS_STRING (value))
+ str = g_value_dup_string (value);
+ else if (G_VALUE_HOLDS_POINTER (value))
+ str = vte_ucs4_to_utf8 (terminal, g_value_get_pointer (value));
+
+ if (! str)
+ return;
+
+ pairs = g_strsplit (str, ";", 0);
+ if (! pairs) {
+ g_free (str);
+ return;
+ }
+
+ for (i = 0; pairs[i] && pairs[i + 1]; i += 2) {
+ idx = strtoul (pairs[i], (char **) NULL, 10);
+
+ if (idx >= VTE_DEF_FG)
+ continue;
+
+ if (vte_parse_color (pairs[i + 1], &color)) {
+ terminal->pvt->palette[idx].red = color.red;
+ terminal->pvt->palette[idx].green = color.green;
+ terminal->pvt->palette[idx].blue = color.blue;
+ } else if (strcmp (pairs[i + 1], "?") == 0) {
+ gchar buf[128];
+ g_snprintf (buf, sizeof (buf),
+ _VTE_CAP_OSC "4;%u;rgb:%04x/%04x/%04x" BEL, idx,
+ terminal->pvt->palette[idx].red,
+ terminal->pvt->palette[idx].green,
+ terminal->pvt->palette[idx].blue);
+ vte_terminal_feed_child (terminal, buf, -1);
+ }
+ }
+
+ g_free (str);
+ g_strfreev (pairs);
+
+ /* emit the refresh as the palette has changed and previous
+ * renders need to be updated. */
+ vte_terminal_emit_refresh_window (terminal);
+ }
+}
+
+/* Scroll the text up, but don't move the cursor. */
+static void
+vte_sequence_handler_scroll_up (VteTerminal *terminal, GValueArray *params)
+{
+ long val = 1;
+ GValue *value;
+
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ val = g_value_get_long(value);
+ val = MAX(val, 1);
+ }
+ }
+
+ _vte_terminal_scroll_text (terminal, -val);
+}
+
+/* Standout end. */
+static void
+vte_sequence_handler_se (VteTerminal *terminal, GValueArray *params)
+{
+ char *standout;
+
+ /* Standout may be mapped to another attribute, so attempt to do
+ * the Right Thing here.
+ *
+ * If the standout sequence is the same as another sequence, do what
+ * we'd do for that other sequence instead. */
+
+ standout = _vte_termcap_find_string(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ "so");
+ g_assert(standout != NULL);
+
+ if (vte_terminal_termcap_string_same_as_for (terminal, standout, "mb") /* blink */ ||
+ vte_terminal_termcap_string_same_as_for (terminal, standout, "md") /* bold */ ||
+ vte_terminal_termcap_string_same_as_for (terminal, standout, "mh") /* half */ ||
+ vte_terminal_termcap_string_same_as_for (terminal, standout, "mr") /* reverse */ ||
+ vte_terminal_termcap_string_same_as_for (terminal, standout, "us") /* underline */)
+ {
+ vte_sequence_handler_me (terminal, params);
+ } else {
+ /* Otherwise just set standout mode. */
+ terminal->pvt->screen->defaults.attr.standout = 0;
+ }
+
+ g_free(standout);
+}
+
+/* Cursor down, with scrolling. */
+static void
+vte_sequence_handler_sf (VteTerminal *terminal, GValueArray *params)
+{
+ _vte_terminal_cursor_down (terminal);
+}
+
+/* Cursor down, with scrolling. */
+static void
+vte_sequence_handler_SF (VteTerminal *terminal, GValueArray *params)
+{
+ /* XXX implement this directly in _vte_terminal_cursor_down */
+ vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_sf);
+}
+
+/* Standout start. */
+static void
+vte_sequence_handler_so (VteTerminal *terminal, GValueArray *params)
+{
+ char *standout;
+
+ /* Standout may be mapped to another attribute, so attempt to do
+ * the Right Thing here.
+ *
+ * If the standout sequence is the same as another sequence, do what
+ * we'd do for that other sequence instead. */
+
+ standout = _vte_termcap_find_string(terminal->pvt->termcap,
+ terminal->pvt->emulation,
+ "so");
+ g_assert(standout != NULL);
+
+ if (vte_terminal_termcap_string_same_as_for (terminal, standout, "mb") /* blink */)
+ vte_sequence_handler_mb (terminal, params);
+ else if (vte_terminal_termcap_string_same_as_for (terminal, standout, "md") /* bold */)
+ vte_sequence_handler_md (terminal, params);
+ else if (vte_terminal_termcap_string_same_as_for (terminal, standout, "mh") /* half */)
+ vte_sequence_handler_mh (terminal, params);
+ else if (vte_terminal_termcap_string_same_as_for (terminal, standout, "mr") /* reverse */)
+ vte_sequence_handler_mr (terminal, params);
+ else if (vte_terminal_termcap_string_same_as_for (terminal, standout, "us") /* underline */)
+ vte_sequence_handler_us (terminal, params);
+ else {
+ /* Otherwise just set standout mode. */
+ terminal->pvt->screen->defaults.attr.standout = 1;
+ }
+
+ g_free(standout);
+}
+
+/* Cursor up, scrolling if need be. */
+static void
+vte_sequence_handler_sr (VteTerminal *terminal, GValueArray *params)
+{
+ long start, end;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+
+ if (screen->scrolling_restricted) {
+ start = screen->scrolling_region.start + screen->insert_delta;
+ end = screen->scrolling_region.end + screen->insert_delta;
+ } else {
+ start = terminal->pvt->screen->insert_delta;
+ end = start + terminal->row_count - 1;
+ }
+
+ if (screen->cursor_current.row == start) {
+ /* If we're at the top of the scrolling region, add a
+ * line at the top to scroll the bottom off. */
+ _vte_terminal_ring_remove (terminal, end);
+ _vte_terminal_ring_insert (terminal, start, TRUE);
+ /* Update the display. */
+ _vte_terminal_scroll_region(terminal, start, end - start + 1, 1);
+ _vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ start, 2);
+ } else {
+ /* Otherwise, just move the cursor up. */
+ screen->cursor_current.row--;
+ }
+ /* Adjust the scrollbars if necessary. */
+ _vte_terminal_adjust_adjustments(terminal);
+ /* We modified the display, so make a note of it. */
+ terminal->pvt->text_modified_flag = TRUE;
+}
+
+/* Cursor up, with scrolling. */
+static void
+vte_sequence_handler_SR (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_sr);
+}
+
+/* Set tab stop in the current column. */
+static void
+vte_sequence_handler_st (VteTerminal *terminal, GValueArray *params)
+{
+ if (terminal->pvt->tabstops == NULL) {
+ terminal->pvt->tabstops = g_hash_table_new(NULL, NULL);
+ }
+ _vte_terminal_set_tabstop(terminal,
+ terminal->pvt->screen->cursor_current.col);
+}
+
+/* Tab. */
+static void
+vte_sequence_handler_ta (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ long old_len, newcol, col;
+
+ /* Calculate which column is the next tab stop. */
+ screen = terminal->pvt->screen;
+ newcol = col = screen->cursor_current.col;
+
+ g_assert (col >= 0);
+
+ if (terminal->pvt->tabstops != NULL) {
+ /* Find the next tabstop. */
+ for (newcol++; newcol < VTE_TAB_MAX; newcol++) {
+ if (_vte_terminal_get_tabstop(terminal, newcol)) {
+ break;
+ }
+ }
+ }
+
+ /* If we have no tab stops or went past the end of the line, stop
+ * at the right-most column. */
+ if (newcol >= terminal->column_count) {
+ newcol = terminal->column_count - 1;
+ }
+
+ /* but make sure we don't move cursor back (bug #340631) */
+ if (col < newcol) {
+ VteRowData *rowdata = _vte_terminal_ensure_row (terminal);
+
+ /* Smart tab handling: bug 353610
+ *
+ * If we currently don't have any cells in the space this
+ * tab creates, we try to make the tab character copyable,
+ * by appending a single tab char with lots of fragment
+ * cells following it.
+ *
+ * Otherwise, just append empty cells that will show up
+ * as a space each.
+ */
+
+ old_len = _vte_row_data_length (rowdata);
+ _vte_row_data_fill (rowdata, &screen->fill_defaults, newcol);
+
+ /* Insert smart tab if there's nothing in the line after
+ * us. Though, there may be empty cells (with non-default
+ * background color for example.
+ *
+ * Notable bugs here: 545924 and 597242 */
+ {
+ glong i;
+ gboolean found = FALSE;
+ for (i = old_len; i > col; i--) {
+ const VteCell *cell = _vte_row_data_get (rowdata, i - 1);
+ if (cell->attr.fragment || cell->c != 0) {
+ found = TRUE;
+ break;
+ }
+ }
+ /* Nothing found on the line after us, turn this into
+ * a smart tab */
+ if (!found) {
+ VteCell *cell = _vte_row_data_get_writable (rowdata, col);
+ VteCell tab = *cell;
+ tab.attr.columns = newcol - col;
+ tab.c = '\t';
+ /* Check if it fits in columns */
+ if (tab.attr.columns == newcol - col) {
+ /* Save tab char */
+ *cell = tab;
+ /* And adjust the fragments */
+ for (i = col + 1; i < newcol; i++) {
+ cell = _vte_row_data_get_writable (rowdata, i);
+ cell->c = '\t';
+ cell->attr.columns = 1;
+ cell->attr.fragment = 1;
+ }
+ }
+ }
+ }
+
+ _vte_invalidate_cells (terminal,
+ screen->cursor_current.col,
+ newcol - screen->cursor_current.col,
+ screen->cursor_current.row, 1);
+ screen->cursor_current.col = newcol;
+ }
+}
+
+/* Clear tabs selectively. */
+static void
+vte_sequence_handler_tab_clear (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ long param = 0;
+
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ param = g_value_get_long(value);
+ }
+ }
+ if (param == 0) {
+ _vte_terminal_clear_tabstop(terminal,
+ terminal->pvt->screen->cursor_current.col);
+ } else
+ if (param == 3) {
+ if (terminal->pvt->tabstops != NULL) {
+ g_hash_table_destroy(terminal->pvt->tabstops);
+ terminal->pvt->tabstops = NULL;
+ }
+ }
+}
+
+/* Move to status line. */
+static void
+vte_sequence_handler_ts (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->status_line = TRUE;
+ terminal->pvt->screen->status_line_changed = TRUE;
+ g_string_truncate(terminal->pvt->screen->status_line_contents, 0);
+}
+
+/* Underline this character and move right. */
+static void
+vte_sequence_handler_uc (VteTerminal *terminal, GValueArray *params)
+{
+ VteCell *cell;
+ int column;
+ VteScreen *screen;
+
+ screen = terminal->pvt->screen;
+ column = screen->cursor_current.col;
+ cell = vte_terminal_find_charcell(terminal, column, screen->cursor_current.row);
+ while ((cell != NULL) && (cell->attr.fragment) && (column > 0)) {
+ column--;
+ cell = vte_terminal_find_charcell(terminal, column, screen->cursor_current.row);
+ }
+ if (cell != NULL) {
+ /* Set this character to be underlined. */
+ cell->attr.underline = 1;
+ /* Cause the character to be repainted. */
+ _vte_invalidate_cells(terminal,
+ column, cell->attr.columns,
+ screen->cursor_current.row, 1);
+ /* Move the cursor right. */
+ vte_sequence_handler_nd (terminal, params);
+ }
+
+ /* We've modified the display without changing the text. Make a note
+ * of it. */
+ terminal->pvt->text_modified_flag = TRUE;
+}
+
+/* Underline end. */
+static void
+vte_sequence_handler_ue (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->defaults.attr.underline = 0;
+}
+
+/* Cursor up, no scrolling. */
+static void
+vte_sequence_handler_up (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ long start, end;
+
+ screen = terminal->pvt->screen;
+
+ if (screen->scrolling_restricted) {
+ start = screen->insert_delta + screen->scrolling_region.start;
+ end = screen->insert_delta + screen->scrolling_region.end;
+ } else {
+ start = screen->insert_delta;
+ end = start + terminal->row_count - 1;
+ }
+
+ screen->cursor_current.row = MAX(screen->cursor_current.row - 1, start);
+}
+
+/* Cursor up N lines, no scrolling. */
+static void
+vte_sequence_handler_UP (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_multiple(terminal, params, vte_sequence_handler_up);
+}
+
+/* Underline start. */
+static void
+vte_sequence_handler_us (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->screen->defaults.attr.underline = 1;
+}
+
+/* Visible bell. */
+static void
+vte_sequence_handler_vb (VteTerminal *terminal, GValueArray *params)
+{
+ _vte_terminal_visible_beep (terminal);
+}
+
+/* Cursor visible. */
+static void
+vte_sequence_handler_ve (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->cursor_visible = TRUE;
+}
+
+/* Vertical tab. */
+static void
+vte_sequence_handler_vertical_tab (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_index (terminal, params);
+}
+
+/* Cursor invisible. */
+static void
+vte_sequence_handler_vi (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->cursor_visible = FALSE;
+}
+
+/* Cursor standout. */
+static void
+vte_sequence_handler_vs (VteTerminal *terminal, GValueArray *params)
+{
+ terminal->pvt->cursor_visible = TRUE; /* FIXME: should be *more*
+ visible. */
+}
+
+/* Handle ANSI color setting and related stuffs (SGR). */
+static void
+vte_sequence_handler_character_attributes (VteTerminal *terminal, GValueArray *params)
+{
+ unsigned int i;
+ GValue *value;
+ long param;
+ /* The default parameter is zero. */
+ param = 0;
+ /* Step through each numeric parameter. */
+ for (i = 0; (params != NULL) && (i < params->n_values); i++) {
+ /* If this parameter isn't a number, skip it. */
+ value = g_value_array_get_nth(params, i);
+ if (!G_VALUE_HOLDS_LONG(value)) {
+ continue;
+ }
+ param = g_value_get_long(value);
+ switch (param) {
+ case 0:
+ _vte_terminal_set_default_attributes(terminal);
+ break;
+ case 1:
+ terminal->pvt->screen->defaults.attr.bold = 1;
+ terminal->pvt->screen->defaults.attr.half = 0;
+ break;
+ case 2:
+ terminal->pvt->screen->defaults.attr.half = 1;
+ terminal->pvt->screen->defaults.attr.bold = 0;
+ break;
+ case 4:
+ terminal->pvt->screen->defaults.attr.underline = 1;
+ break;
+ case 5:
+ terminal->pvt->screen->defaults.attr.blink = 1;
+ break;
+ case 7:
+ terminal->pvt->screen->defaults.attr.reverse = 1;
+ break;
+ case 8:
+ terminal->pvt->screen->defaults.attr.invisible = 1;
+ break;
+ case 9:
+ terminal->pvt->screen->defaults.attr.strikethrough = 1;
+ break;
+ case 21: /* Error in old versions of linux console. */
+ case 22: /* ECMA 48. */
+ terminal->pvt->screen->defaults.attr.bold = 0;
+ terminal->pvt->screen->defaults.attr.half = 0;
+ break;
+ case 24:
+ terminal->pvt->screen->defaults.attr.underline = 0;
+ break;
+ case 25:
+ terminal->pvt->screen->defaults.attr.blink = 0;
+ break;
+ case 27:
+ terminal->pvt->screen->defaults.attr.reverse = 0;
+ break;
+ case 28:
+ terminal->pvt->screen->defaults.attr.invisible = 0;
+ break;
+ case 29:
+ terminal->pvt->screen->defaults.attr.strikethrough = 0;
+ break;
+ case 30:
+ case 31:
+ case 32:
+ case 33:
+ case 34:
+ case 35:
+ case 36:
+ case 37:
+ terminal->pvt->screen->defaults.attr.fore = param - 30;
+ break;
+ case 38:
+ {
+ /* The format looks like: ^[[38;5;COLORNUMBERm,
+ so look for COLORNUMBER here. */
+ if ((i + 2) < params->n_values){
+ GValue *value1, *value2;
+ long param1, param2;
+ value1 = g_value_array_get_nth(params, i + 1);
+ value2 = g_value_array_get_nth(params, i + 2);
+ if (G_UNLIKELY (!(G_VALUE_HOLDS_LONG(value1) && G_VALUE_HOLDS_LONG(value2))))
+ break;
+ param1 = g_value_get_long(value1);
+ param2 = g_value_get_long(value2);
+ if (G_LIKELY (param1 == 5 && param2 >= 0 && param2 < 256))
+ terminal->pvt->screen->defaults.attr.fore = param2;
+ i += 2;
+ }
+ break;
+ }
+ case 39:
+ /* default foreground */
+ terminal->pvt->screen->defaults.attr.fore = VTE_DEF_FG;
+ break;
+ case 40:
+ case 41:
+ case 42:
+ case 43:
+ case 44:
+ case 45:
+ case 46:
+ case 47:
+ terminal->pvt->screen->defaults.attr.back = param - 40;
+ break;
+ case 48:
+ {
+ /* The format looks like: ^[[48;5;COLORNUMBERm,
+ so look for COLORNUMBER here. */
+ if ((i + 2) < params->n_values){
+ GValue *value1, *value2;
+ long param1, param2;
+ value1 = g_value_array_get_nth(params, i + 1);
+ value2 = g_value_array_get_nth(params, i + 2);
+ if (G_UNLIKELY (!(G_VALUE_HOLDS_LONG(value1) && G_VALUE_HOLDS_LONG(value2))))
+ break;
+ param1 = g_value_get_long(value1);
+ param2 = g_value_get_long(value2);
+ if (G_LIKELY (param1 == 5 && param2 >= 0 && param2 < 256))
+ terminal->pvt->screen->defaults.attr.back = param2;
+ i += 2;
+ }
+ break;
+ }
+ case 49:
+ /* default background */
+ terminal->pvt->screen->defaults.attr.back = VTE_DEF_BG;
+ break;
+ case 90:
+ case 91:
+ case 92:
+ case 93:
+ case 94:
+ case 95:
+ case 96:
+ case 97:
+ terminal->pvt->screen->defaults.attr.fore = param - 90 + VTE_COLOR_BRIGHT_OFFSET;
+ break;
+ case 100:
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ terminal->pvt->screen->defaults.attr.back = param - 100 + VTE_COLOR_BRIGHT_OFFSET;
+ break;
+ }
+ }
+ /* If we had no parameters, default to the defaults. */
+ if (i == 0) {
+ _vte_terminal_set_default_attributes(terminal);
+ }
+ /* Save the new colors. */
+ terminal->pvt->screen->color_defaults.attr.fore =
+ terminal->pvt->screen->defaults.attr.fore;
+ terminal->pvt->screen->color_defaults.attr.back =
+ terminal->pvt->screen->defaults.attr.back;
+ terminal->pvt->screen->fill_defaults.attr.fore =
+ terminal->pvt->screen->defaults.attr.fore;
+ terminal->pvt->screen->fill_defaults.attr.back =
+ terminal->pvt->screen->defaults.attr.back;
+}
+
+/* Move the cursor to the given column, 1-based. */
+static void
+vte_sequence_handler_cursor_character_absolute (VteTerminal *terminal, GValueArray *params)
+{
+ VteScreen *screen;
+ GValue *value;
+ long val;
+
+ screen = terminal->pvt->screen;
+
+ val = 0;
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ val = CLAMP(g_value_get_long(value),
+ 1, terminal->column_count) - 1;
+ }
+ }
+
+ screen->cursor_current.col = val;
+ _vte_terminal_cleanup_tab_fragments_at_cursor (terminal);
+}
+
+/* Move the cursor to the given position, 1-based. */
+static void
+vte_sequence_handler_cursor_position (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_offset(terminal, params, -1, vte_sequence_handler_cm);
+}
+
+/* Request terminal attributes. */
+static void
+vte_sequence_handler_request_terminal_parameters (VteTerminal *terminal, GValueArray *params)
+{
+ vte_terminal_feed_child(terminal, "\e[?x", -1);
+}
+
+/* Request terminal attributes. */
+static void
+vte_sequence_handler_return_terminal_status (VteTerminal *terminal, GValueArray *params)
+{
+ vte_terminal_feed_child(terminal, "", 0);
+}
+
+/* Send primary device attributes. */
+static void
+vte_sequence_handler_send_primary_device_attributes (VteTerminal *terminal, GValueArray *params)
+{
+ /* Claim to be a VT220 with only national character set support. */
+ vte_terminal_feed_child(terminal, "\e[?62;9;c", -1);
+}
+
+/* Send terminal ID. */
+static void
+vte_sequence_handler_return_terminal_id (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_send_primary_device_attributes (terminal, params);
+}
+
+/* Send secondary device attributes. */
+static void
+vte_sequence_handler_send_secondary_device_attributes (VteTerminal *terminal, GValueArray *params)
+{
+ char **version;
+ char buf[128];
+ long ver = 0, i;
+ /* Claim to be a VT220, more or less. The '>' in the response appears
+ * to be undocumented. */
+ version = g_strsplit(VERSION, ".", 0);
+ if (version != NULL) {
+ for (i = 0; version[i] != NULL; i++) {
+ ver = ver * 100;
+ ver += atol(version[i]);
+ }
+ g_strfreev(version);
+ }
+ g_snprintf(buf, sizeof (buf), _VTE_CAP_ESC "[>1;%ld;0c", ver);
+ vte_terminal_feed_child(terminal, buf, -1);
+}
+
+/* Set one or the other. */
+static void
+vte_sequence_handler_set_icon_title (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_set_title_internal(terminal, params, TRUE, FALSE);
+}
+
+static void
+vte_sequence_handler_set_window_title (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_set_title_internal(terminal, params, FALSE, TRUE);
+}
+
+/* Set both the window and icon titles to the same string. */
+static void
+vte_sequence_handler_set_icon_and_window_title (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_set_title_internal(terminal, params, TRUE, TRUE);
+}
+
+/* Restrict the scrolling region. */
+static void
+vte_sequence_handler_set_scrolling_region (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_offset(terminal, params, -1, vte_sequence_handler_cs);
+}
+
+static void
+vte_sequence_handler_set_scrolling_region_from_start (VteTerminal *terminal, GValueArray *params)
+{
+ GValue value = {0};
+
+ g_value_init (&value, G_TYPE_LONG);
+ g_value_set_long (&value, 0); /* Out of range means start/end */
+
+ g_value_array_insert (params, 0, &value);
+
+ vte_sequence_handler_offset(terminal, params, -1, vte_sequence_handler_cs);
+}
+
+static void
+vte_sequence_handler_set_scrolling_region_to_end (VteTerminal *terminal, GValueArray *params)
+{
+ GValue value = {0};
+
+ g_value_init (&value, G_TYPE_LONG);
+ g_value_set_long (&value, 0); /* Out of range means start/end */
+
+ g_value_array_insert (params, 1, &value);
+
+ vte_sequence_handler_offset(terminal, params, -1, vte_sequence_handler_cs);
+}
+
+/* Set the application or normal keypad. */
+static void
+vte_sequence_handler_application_keypad (VteTerminal *terminal, GValueArray *params)
+{
+ _vte_debug_print(VTE_DEBUG_KEYBOARD,
+ "Entering application keypad mode.\n");
+ terminal->pvt->keypad_mode = VTE_KEYMODE_APPLICATION;
+}
+
+static void
+vte_sequence_handler_normal_keypad (VteTerminal *terminal, GValueArray *params)
+{
+ _vte_debug_print(VTE_DEBUG_KEYBOARD,
+ "Leaving application keypad mode.\n");
+ terminal->pvt->keypad_mode = VTE_KEYMODE_NORMAL;
+}
+
+/* Move the cursor. */
+static void
+vte_sequence_handler_character_position_absolute (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_offset(terminal, params, -1, vte_sequence_handler_ch);
+}
+static void
+vte_sequence_handler_line_position_absolute (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_offset(terminal, params, -1, vte_sequence_handler_cv);
+}
+
+/* Set certain terminal attributes. */
+static void
+vte_sequence_handler_set_mode (VteTerminal *terminal, GValueArray *params)
+{
+ guint i;
+ long setting;
+ GValue *value;
+ if ((params == NULL) || (params->n_values == 0)) {
+ return;
+ }
+ for (i = 0; i < params->n_values; i++) {
+ value = g_value_array_get_nth(params, i);
+ if (!G_VALUE_HOLDS_LONG(value)) {
+ continue;
+ }
+ setting = g_value_get_long(value);
+ vte_sequence_handler_set_mode_internal(terminal, setting, TRUE);
+ }
+}
+
+/* Unset certain terminal attributes. */
+static void
+vte_sequence_handler_reset_mode (VteTerminal *terminal, GValueArray *params)
+{
+ guint i;
+ long setting;
+ GValue *value;
+ if ((params == NULL) || (params->n_values == 0)) {
+ return;
+ }
+ for (i = 0; i < params->n_values; i++) {
+ value = g_value_array_get_nth(params, i);
+ if (!G_VALUE_HOLDS_LONG(value)) {
+ continue;
+ }
+ setting = g_value_get_long(value);
+ vte_sequence_handler_set_mode_internal(terminal, setting, FALSE);
+ }
+}
+
+/* Set certain terminal attributes. */
+static void
+vte_sequence_handler_decset (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ long setting;
+ guint i;
+ if ((params == NULL) || (params->n_values == 0)) {
+ return;
+ }
+ for (i = 0; i < params->n_values; i++) {
+ value = g_value_array_get_nth(params, i);
+ if (!G_VALUE_HOLDS_LONG(value)) {
+ continue;
+ }
+ setting = g_value_get_long(value);
+ vte_sequence_handler_decset_internal(terminal, setting, FALSE, FALSE, TRUE);
+ }
+}
+
+/* Unset certain terminal attributes. */
+static void
+vte_sequence_handler_decreset (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ long setting;
+ guint i;
+ if ((params == NULL) || (params->n_values == 0)) {
+ return;
+ }
+ for (i = 0; i < params->n_values; i++) {
+ value = g_value_array_get_nth(params, i);
+ if (!G_VALUE_HOLDS_LONG(value)) {
+ continue;
+ }
+ setting = g_value_get_long(value);
+ vte_sequence_handler_decset_internal(terminal, setting, FALSE, FALSE, FALSE);
+ }
+}
+
+/* Erase a specified number of characters. */
+static void
+vte_sequence_handler_erase_characters (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_ec (terminal, params);
+}
+
+/* Erase certain lines in the display. */
+static void
+vte_sequence_handler_erase_in_display (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ long param;
+ guint i;
+ /* The default parameter is 0. */
+ param = 0;
+ /* Pull out a parameter. */
+ for (i = 0; (params != NULL) && (i < params->n_values); i++) {
+ value = g_value_array_get_nth(params, i);
+ if (!G_VALUE_HOLDS_LONG(value)) {
+ continue;
+ }
+ param = g_value_get_long(value);
+ }
+ /* Clear the right area. */
+ switch (param) {
+ case 0:
+ /* Clear below the current line. */
+ vte_sequence_handler_cd (terminal, NULL);
+ break;
+ case 1:
+ /* Clear above the current line. */
+ _vte_terminal_clear_above_current (terminal);
+ /* Clear everything to the left of the cursor, too. */
+ /* FIXME: vttest. */
+ vte_sequence_handler_cb (terminal, NULL);
+ break;
+ case 2:
+ /* Clear the entire screen. */
+ _vte_terminal_clear_screen (terminal);
+ break;
+ default:
+ break;
+ }
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Erase certain parts of the current line in the display. */
+static void
+vte_sequence_handler_erase_in_line (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ long param;
+ guint i;
+ /* The default parameter is 0. */
+ param = 0;
+ /* Pull out a parameter. */
+ for (i = 0; (params != NULL) && (i < params->n_values); i++) {
+ value = g_value_array_get_nth(params, i);
+ if (!G_VALUE_HOLDS_LONG(value)) {
+ continue;
+ }
+ param = g_value_get_long(value);
+ }
+ /* Clear the right area. */
+ switch (param) {
+ case 0:
+ /* Clear to end of the line. */
+ vte_sequence_handler_ce (terminal, NULL);
+ break;
+ case 1:
+ /* Clear to start of the line. */
+ vte_sequence_handler_cb (terminal, NULL);
+ break;
+ case 2:
+ /* Clear the entire line. */
+ _vte_terminal_clear_current_line (terminal);
+ break;
+ default:
+ break;
+ }
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Perform a full-bore reset. */
+static void
+vte_sequence_handler_full_reset (VteTerminal *terminal, GValueArray *params)
+{
+ vte_terminal_reset(terminal, TRUE, TRUE);
+}
+
+/* Insert a specified number of blank characters. */
+static void
+vte_sequence_handler_insert_blank_characters (VteTerminal *terminal, GValueArray *params)
+{
+ vte_sequence_handler_IC (terminal, params);
+}
+
+/* Insert a certain number of lines below the current cursor. */
+static void
+vte_sequence_handler_insert_lines (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ VteScreen *screen;
+ long param, end, row;
+ int i;
+ screen = terminal->pvt->screen;
+ /* The default is one. */
+ param = 1;
+ /* Extract any parameters. */
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ param = g_value_get_long(value);
+ }
+ }
+ /* Find the region we're messing with. */
+ row = screen->cursor_current.row;
+ if (screen->scrolling_restricted) {
+ end = screen->insert_delta + screen->scrolling_region.end;
+ } else {
+ end = screen->insert_delta + terminal->row_count - 1;
+ }
+ /* Insert the new lines at the cursor. */
+ for (i = 0; i < param; i++) {
+ /* Clear a line off the end of the region and add one to the
+ * top of the region. */
+ _vte_terminal_ring_remove (terminal, end);
+ _vte_terminal_ring_insert (terminal, row, TRUE);
+ }
+ /* Update the display. */
+ _vte_terminal_scroll_region(terminal, row, end - row + 1, param);
+ /* Adjust the scrollbars if necessary. */
+ _vte_terminal_adjust_adjustments(terminal);
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_inserted_flag = TRUE;
+}
+
+/* Delete certain lines from the scrolling region. */
+static void
+vte_sequence_handler_delete_lines (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ VteScreen *screen;
+ long param, end, row;
+ int i;
+
+ screen = terminal->pvt->screen;
+ /* The default is one. */
+ param = 1;
+ /* Extract any parameters. */
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ param = g_value_get_long(value);
+ }
+ }
+ /* Find the region we're messing with. */
+ row = screen->cursor_current.row;
+ if (screen->scrolling_restricted) {
+ end = screen->insert_delta + screen->scrolling_region.end;
+ } else {
+ end = screen->insert_delta + terminal->row_count - 1;
+ }
+ /* Clear them from below the current cursor. */
+ for (i = 0; i < param; i++) {
+ /* Insert a line at the end of the region and remove one from
+ * the top of the region. */
+ _vte_terminal_ring_remove (terminal, row);
+ _vte_terminal_ring_insert (terminal, end, TRUE);
+ }
+ /* Update the display. */
+ _vte_terminal_scroll_region(terminal, row, end - row + 1, -param);
+ /* Adjust the scrollbars if necessary. */
+ _vte_terminal_adjust_adjustments(terminal);
+ /* We've modified the display. Make a note of it. */
+ terminal->pvt->text_deleted_flag = TRUE;
+}
+
+/* Set the terminal encoding. */
+static void
+vte_sequence_handler_local_charset (VteTerminal *terminal, GValueArray *params)
+{
+ G_CONST_RETURN char *locale_encoding;
+ g_get_charset(&locale_encoding);
+ vte_terminal_set_encoding(terminal, locale_encoding);
+}
+
+static void
+vte_sequence_handler_utf_8_charset (VteTerminal *terminal, GValueArray *params)
+{
+ vte_terminal_set_encoding(terminal, "UTF-8");
+}
+
+/* Device status reports. The possible reports are the cursor position and
+ * whether or not we're okay. */
+static void
+vte_sequence_handler_device_status_report (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ VteScreen *screen;
+ long param;
+ char buf[128];
+
+ screen = terminal->pvt->screen;
+
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ param = g_value_get_long(value);
+ switch (param) {
+ case 5:
+ /* Send a thumbs-up sequence. */
+ vte_terminal_feed_child(terminal, _VTE_CAP_CSI "0n", -1);
+ break;
+ case 6:
+ /* Send the cursor position. */
+ g_snprintf(buf, sizeof(buf),
+ _VTE_CAP_CSI "%ld;%ldR",
+ screen->cursor_current.row + 1 -
+ screen->insert_delta,
+ screen->cursor_current.col + 1);
+ vte_terminal_feed_child(terminal, buf, -1);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+}
+
+/* DEC-style device status reports. */
+static void
+vte_sequence_handler_dec_device_status_report (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ VteScreen *screen;
+ long param;
+ char buf[128];
+
+ screen = terminal->pvt->screen;
+
+ if ((params != NULL) && (params->n_values > 0)) {
+ value = g_value_array_get_nth(params, 0);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ param = g_value_get_long(value);
+ switch (param) {
+ case 6:
+ /* Send the cursor position. */
+ g_snprintf(buf, sizeof(buf),
+ _VTE_CAP_CSI "?%ld;%ldR",
+ screen->cursor_current.row + 1 -
+ screen->insert_delta,
+ screen->cursor_current.col + 1);
+ vte_terminal_feed_child(terminal, buf, -1);
+ break;
+ case 15:
+ /* Send printer status -- 10 = ready,
+ * 11 = not ready. We don't print. */
+ vte_terminal_feed_child(terminal, _VTE_CAP_CSI "?11n", -1);
+ break;
+ case 25:
+ /* Send UDK status -- 20 = locked,
+ * 21 = not locked. I don't even know what
+ * that means, but punt anyway. */
+ vte_terminal_feed_child(terminal, _VTE_CAP_CSI "?20n", -1);
+ break;
+ case 26:
+ /* Send keyboard status. 50 = no locator. */
+ vte_terminal_feed_child(terminal, _VTE_CAP_CSI "?50n", -1);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+}
+
+/* Restore a certain terminal attribute. */
+static void
+vte_sequence_handler_restore_mode (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ long setting;
+ guint i;
+ if ((params == NULL) || (params->n_values == 0)) {
+ return;
+ }
+ for (i = 0; i < params->n_values; i++) {
+ value = g_value_array_get_nth(params, i);
+ if (!G_VALUE_HOLDS_LONG(value)) {
+ continue;
+ }
+ setting = g_value_get_long(value);
+ vte_sequence_handler_decset_internal(terminal, setting, TRUE, FALSE, FALSE);
+ }
+}
+
+/* Save a certain terminal attribute. */
+static void
+vte_sequence_handler_save_mode (VteTerminal *terminal, GValueArray *params)
+{
+ GValue *value;
+ long setting;
+ guint i;
+ if ((params == NULL) || (params->n_values == 0)) {
+ return;
+ }
+ for (i = 0; i < params->n_values; i++) {
+ value = g_value_array_get_nth(params, i);
+ if (!G_VALUE_HOLDS_LONG(value)) {
+ continue;
+ }
+ setting = g_value_get_long(value);
+ vte_sequence_handler_decset_internal(terminal, setting, FALSE, TRUE, FALSE);
+ }
+}
+
+/* Perform a screen alignment test -- fill all visible cells with the
+ * letter "E". */
+static void
+vte_sequence_handler_screen_alignment_test (VteTerminal *terminal, GValueArray *params)
+{
+ long row;
+ VteRowData *rowdata;
+ VteScreen *screen;
+ VteCell cell;
+
+ screen = terminal->pvt->screen;
+
+ for (row = terminal->pvt->screen->insert_delta;
+ row < terminal->pvt->screen->insert_delta + terminal->row_count;
+ row++) {
+ /* Find this row. */
+ while (_vte_ring_next(screen->row_data) <= row)
+ _vte_terminal_ring_append (terminal, FALSE);
+ _vte_terminal_adjust_adjustments(terminal);
+ rowdata = _vte_ring_index_writable (screen->row_data, row);
+ g_assert(rowdata != NULL);
+ /* Clear this row. */
+ _vte_row_data_shrink (rowdata, 0);
+
+ _vte_terminal_emit_text_deleted(terminal);
+ /* Fill this row. */
+ cell.c = 'E';
+ cell.attr = basic_cell.cell.attr;
+ cell.attr.columns = 1;
+ _vte_row_data_fill (rowdata, &cell, terminal->column_count);
+ _vte_terminal_emit_text_inserted(terminal);
+ }
+ _vte_invalidate_all(terminal);
+
+ /* We modified the display, so make a note of it for completeness. */
+ terminal->pvt->text_modified_flag = TRUE;
+}
+
+/* Perform a soft reset. */
+static void
+vte_sequence_handler_soft_reset (VteTerminal *terminal, GValueArray *params)
+{
+ vte_terminal_reset(terminal, FALSE, FALSE);
+}
+
+/* Window manipulation control sequences. Most of these are considered
+ * bad ideas, but they're implemented as signals which the application
+ * is free to ignore, so they're harmless. */
+static void
+vte_sequence_handler_window_manipulation (VteTerminal *terminal, GValueArray *params)
+{
+ GdkScreen *gscreen;
+ VteScreen *screen;
+ GValue *value;
+ GtkWidget *widget;
+ char buf[128];
+ long param, arg1, arg2;
+ gint width, height;
+ guint i;
+ GtkAllocation allocation;
+
+ widget = &terminal->widget;
+ screen = terminal->pvt->screen;
+
+ for (i = 0; ((params != NULL) && (i < params->n_values)); i++) {
+ arg1 = arg2 = -1;
+ if (i + 1 < params->n_values) {
+ value = g_value_array_get_nth(params, i + 1);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ arg1 = g_value_get_long(value);
+ }
+ }
+ if (i + 2 < params->n_values) {
+ value = g_value_array_get_nth(params, i + 2);
+ if (G_VALUE_HOLDS_LONG(value)) {
+ arg2 = g_value_get_long(value);
+ }
+ }
+ value = g_value_array_get_nth(params, i);
+ if (!G_VALUE_HOLDS_LONG(value)) {
+ continue;
+ }
+ param = g_value_get_long(value);
+ switch (param) {
+ case 1:
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Deiconifying window.\n");
+ vte_terminal_emit_deiconify_window(terminal);
+ break;
+ case 2:
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Iconifying window.\n");
+ vte_terminal_emit_iconify_window(terminal);
+ break;
+ case 3:
+ if ((arg1 != -1) && (arg2 != -2)) {
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Moving window to "
+ "%ld,%ld.\n", arg1, arg2);
+ vte_terminal_emit_move_window(terminal,
+ arg1, arg2);
+ i += 2;
+ }
+ break;
+ case 4:
+ if ((arg1 != -1) && (arg2 != -1)) {
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Resizing window "
+ "(to %ldx%ld pixels).\n",
+ arg2, arg1);
+ vte_terminal_emit_resize_window(terminal,
+ arg2 +
+ terminal->pvt->inner_border.left +
+ terminal->pvt->inner_border.right,
+ arg1 +
+ terminal->pvt->inner_border.top +
+ terminal->pvt->inner_border.bottom);
+ i += 2;
+ }
+ break;
+ case 5:
+ _vte_debug_print(VTE_DEBUG_PARSE, "Raising window.\n");
+ vte_terminal_emit_raise_window(terminal);
+ break;
+ case 6:
+ _vte_debug_print(VTE_DEBUG_PARSE, "Lowering window.\n");
+ vte_terminal_emit_lower_window(terminal);
+ break;
+ case 7:
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Refreshing window.\n");
+ _vte_invalidate_all(terminal);
+ vte_terminal_emit_refresh_window(terminal);
+ break;
+ case 8:
+ if ((arg1 != -1) && (arg2 != -1)) {
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Resizing window "
+ "(to %ld columns, %ld rows).\n",
+ arg2, arg1);
+ vte_terminal_emit_resize_window(terminal,
+ arg2 * terminal->char_width +
+ terminal->pvt->inner_border.left +
+ terminal->pvt->inner_border.right,
+ arg1 * terminal->char_height +
+ terminal->pvt->inner_border.top +
+ terminal->pvt->inner_border.bottom);
+ i += 2;
+ }
+ break;
+ case 9:
+ switch (arg1) {
+ case 0:
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Restoring window.\n");
+ vte_terminal_emit_restore_window(terminal);
+ break;
+ case 1:
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Maximizing window.\n");
+ vte_terminal_emit_maximize_window(terminal);
+ break;
+ default:
+ break;
+ }
+ i++;
+ break;
+ case 11:
+ /* If we're unmapped, then we're iconified. */
+ g_snprintf(buf, sizeof(buf),
+ _VTE_CAP_CSI "%dt",
+ 1 + !gtk_widget_get_mapped(widget));
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Reporting window state %s.\n",
+ gtk_widget_get_mapped(widget) ?
+ "non-iconified" : "iconified");
+ vte_terminal_feed_child(terminal, buf, -1);
+ break;
+ case 13:
+ /* Send window location, in pixels. */
+ gdk_window_get_origin(gtk_widget_get_window(widget),
+ &width, &height);
+ g_snprintf(buf, sizeof(buf),
+ _VTE_CAP_CSI "3;%d;%dt",
+ width + terminal->pvt->inner_border.left,
+ height + terminal->pvt->inner_border.top);
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Reporting window location"
+ "(%d++,%d++).\n",
+ width, height);
+ vte_terminal_feed_child(terminal, buf, -1);
+ break;
+ case 14:
+ /* Send window size, in pixels. */
+ gtk_widget_get_allocation(widget, &allocation);
+ g_snprintf(buf, sizeof(buf),
+ _VTE_CAP_CSI "4;%d;%dt",
+ allocation.height -
+ (terminal->pvt->inner_border.top +
+ terminal->pvt->inner_border.bottom),
+ allocation.width -
+ (terminal->pvt->inner_border.left +
+ terminal->pvt->inner_border.right));
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Reporting window size "
+ "(%dx%dn",
+ width - (terminal->pvt->inner_border.left +
terminal->pvt->inner_border.right),
+ height - (terminal->pvt->inner_border.top +
terminal->pvt->inner_border.bottom));
+ vte_terminal_feed_child(terminal, buf, -1);
+ break;
+ case 18:
+ /* Send widget size, in cells. */
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Reporting widget size.\n");
+ g_snprintf(buf, sizeof(buf),
+ _VTE_CAP_CSI "8;%ld;%ldt",
+ terminal->row_count,
+ terminal->column_count);
+ vte_terminal_feed_child(terminal, buf, -1);
+ break;
+ case 19:
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Reporting screen size.\n");
+ gscreen = gtk_widget_get_screen(widget);
+ height = gdk_screen_get_height(gscreen);
+ width = gdk_screen_get_width(gscreen);
+ g_snprintf(buf, sizeof(buf),
+ _VTE_CAP_CSI "9;%ld;%ldt",
+ height / terminal->char_height,
+ width / terminal->char_width);
+ vte_terminal_feed_child(terminal, buf, -1);
+ break;
+ case 20:
+ /* Report a static icon title, since the real
+ icon title should NEVER be reported, as it
+ creates a security vulnerability. See
+ http://marc.info/?l=bugtraq&m=104612710031920&w=2
+ and CVE-2003-0070. */
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Reporting fake icon title.\n");
+ /* never use terminal->icon_title here! */
+ g_snprintf (buf, sizeof (buf),
+ _VTE_CAP_OSC "LTerminal" _VTE_CAP_ST);
+ vte_terminal_feed_child(terminal, buf, -1);
+ break;
+ case 21:
+ /* Report a static window title, since the real
+ window title should NEVER be reported, as it
+ creates a security vulnerability. See
+ http://marc.info/?l=bugtraq&m=104612710031920&w=2
+ and CVE-2003-0070. */
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Reporting fake window title.\n");
+ /* never use terminal->window_title here! */
+ g_snprintf (buf, sizeof (buf),
+ _VTE_CAP_OSC "lTerminal" _VTE_CAP_ST);
+ vte_terminal_feed_child(terminal, buf, -1);
+ break;
+ default:
+ if (param >= 24) {
+ _vte_debug_print(VTE_DEBUG_PARSE,
+ "Resizing to %ld rows.\n",
+ param);
+ /* Resize to the specified number of
+ * rows. */
+ vte_terminal_emit_resize_window(terminal,
+ terminal->column_count * terminal->char_width
+
+ terminal->pvt->inner_border.left +
+ terminal->pvt->inner_border.right,
+ param * terminal->char_height +
+ terminal->pvt->inner_border.top +
+ terminal->pvt->inner_border.bottom);
+ }
+ break;
+ }
+ }
+}
+
+/* Change the color of the cursor */
+static void
+vte_sequence_handler_change_cursor_color (VteTerminal *terminal, GValueArray *params)
+{
+ gchar *name = NULL;
+ GValue *value;
+ GdkColor color;
+
+ if (params != NULL && params->n_values > 0) {
+ value = g_value_array_get_nth (params, 0);
+
+ if (G_VALUE_HOLDS_STRING (value))
+ name = g_value_dup_string (value);
+ else if (G_VALUE_HOLDS_POINTER (value))
+ name = vte_ucs4_to_utf8 (terminal, g_value_get_pointer (value));
+
+ if (! name)
+ return;
+
+ if (vte_parse_color (name, &color))
+ vte_terminal_set_color_cursor (terminal, &color);
+ else if (strcmp (name, "?") == 0) {
+ gchar buf[128];
+ g_snprintf (buf, sizeof (buf),
+ _VTE_CAP_OSC "12;rgb:%04x/%04x/%04x" BEL,
+ terminal->pvt->palette[VTE_CUR_BG].red,
+ terminal->pvt->palette[VTE_CUR_BG].green,
+ terminal->pvt->palette[VTE_CUR_BG].blue);
+ vte_terminal_feed_child (terminal, buf, -1);
+ }
+
+ g_free (name);
+ }
+}
+
+
+/* Lookup tables */
+
+#define VTE_SEQUENCE_HANDLER(name) name
+
+static const struct vteseq_2_struct *
+vteseq_2_lookup (register const char *str, register unsigned int len);
+#include"vteseq-2.c"
+
+static const struct vteseq_n_struct *
+vteseq_n_lookup (register const char *str, register unsigned int len);
+#include"vteseq-n.c"
+
+#undef VTE_SEQUENCE_HANDLER
+
+static VteTerminalSequenceHandler
+_vte_sequence_get_handler (const char *name)
+{
+ int len = strlen (name);
+
+ if (G_UNLIKELY (len < 2)) {
+ return NULL;
+ } else if (len == 2) {
+ const struct vteseq_2_struct *seqhandler;
+ seqhandler = vteseq_2_lookup (name, 2);
+ return seqhandler ? seqhandler->handler : NULL;
+ } else {
+ const struct vteseq_n_struct *seqhandler;
+ seqhandler = vteseq_n_lookup (name, len);
+ return seqhandler ? seqhandler->handler : NULL;
+ }
+}
+
+
+/* Handle a terminal control sequence and its parameters. */
+void
+_vte_terminal_handle_sequence(VteTerminal *terminal,
+ const char *match_s,
+ GQuark match G_GNUC_UNUSED,
+ GValueArray *params)
+{
+ VteTerminalSequenceHandler handler;
+
+ _VTE_DEBUG_IF(VTE_DEBUG_PARSE)
+ display_control_sequence(match_s, params);
+
+ /* Find the handler for this control sequence. */
+ handler = _vte_sequence_get_handler (match_s);
+
+ if (handler != NULL) {
+ /* Let the handler handle it. */
+ handler (terminal, params);
+ } else {
+ _vte_debug_print (VTE_DEBUG_MISC,
+ "No handler for control sequence `%s' defined.\n",
+ match_s);
+ }
+}
diff --git a/vte/src/vtestream-base.h b/vte/src/vtestream-base.h
new file mode 100644
index 0000000..913f9c9
--- /dev/null
+++ b/vte/src/vtestream-base.h
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2009,2010 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Red Hat Author(s): Behdad Esfahbod
+ */
+
+#include <glib-object.h>
+#include <gio/gio.h>
+
+/*
+ * VteStream: Abstract base stream class
+ */
+
+struct _VteStream {
+ GObject parent;
+};
+
+typedef struct _VteStreamClass {
+ GObjectClass parent_class;
+
+ void (*reset) (VteStream *stream, gsize offset);
+ gsize (*append) (VteStream *stream, const char *data, gsize len);
+ gboolean (*read) (VteStream *stream, gsize offset, char *data, gsize len);
+ void (*truncate) (VteStream *stream, gsize offset);
+ void (*new_page) (VteStream *stream);
+ gsize (*head) (VteStream *stream);
+ gboolean (*write_contents) (VteStream *stream, GOutputStream *output,
+ gsize start_offset,
+ GCancellable *cancellable, GError **error);
+} VteStreamClass;
+
+static GType _vte_stream_get_type (void);
+#define VTE_TYPE_STREAM _vte_stream_get_type ()
+#define VTE_STREAM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VTE_TYPE_STREAM, VteStreamClass))
+
+G_DEFINE_ABSTRACT_TYPE (VteStream, _vte_stream, G_TYPE_OBJECT)
+
+static void
+_vte_stream_class_init (VteStreamClass *klass G_GNUC_UNUSED)
+{
+}
+
+static void
+_vte_stream_init (VteStream *stream G_GNUC_UNUSED)
+{
+}
+
+void
+_vte_stream_reset (VteStream *stream, gsize offset)
+{
+ VTE_STREAM_GET_CLASS (stream)->reset (stream, offset);
+}
+
+gsize
+_vte_stream_append (VteStream *stream, const char *data, gsize len)
+{
+ return VTE_STREAM_GET_CLASS (stream)->append (stream, data, len);
+}
+
+gboolean
+_vte_stream_read (VteStream *stream, gsize offset, char *data, gsize len)
+{
+ return VTE_STREAM_GET_CLASS (stream)->read (stream, offset, data, len);
+}
+
+void
+_vte_stream_truncate (VteStream *stream, gsize offset)
+{
+ VTE_STREAM_GET_CLASS (stream)->truncate (stream, offset);
+}
+
+void
+_vte_stream_new_page (VteStream *stream)
+{
+ VTE_STREAM_GET_CLASS (stream)->new_page (stream);
+}
+
+gsize
+_vte_stream_head (VteStream *stream)
+{
+ return VTE_STREAM_GET_CLASS (stream)->head (stream);
+}
+
+gboolean
+_vte_stream_write_contents (VteStream *stream, GOutputStream *output,
+ gsize start_offset,
+ GCancellable *cancellable, GError **error)
+{
+ return VTE_STREAM_GET_CLASS (stream)->write_contents (stream, output,
+ start_offset,
+ cancellable, error);
+}
diff --git a/vte/src/vtestream-file.h b/vte/src/vtestream-file.h
new file mode 100644
index 0000000..bc92d6f
--- /dev/null
+++ b/vte/src/vtestream-file.h
@@ -0,0 +1,296 @@
+/*
+ * Copyright (C) 2009,2010 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Red Hat Author(s): Behdad Esfahbod
+ */
+
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include <gio/gunixinputstream.h>
+
+static gsize
+_xread (int fd, char *data, gsize len)
+{
+ gsize ret, total = 0;
+
+ if (G_UNLIKELY (len && !fd))
+ return 0;
+
+ while (len) {
+ ret = read (fd, data, len);
+ if (G_UNLIKELY (ret == (gsize) -1)) {
+ if (errno == EINTR)
+ continue;
+ else
+ break;
+ }
+ if (G_UNLIKELY (ret == 0))
+ break;
+ data += ret;
+ len -= ret;
+ total += ret;
+ }
+ return total;
+}
+
+static void
+_xwrite (int fd, const char *data, gsize len)
+{
+ gsize ret;
+
+ g_assert (fd || !len);
+
+ while (len) {
+ ret = write (fd, data, len);
+ if (G_UNLIKELY (ret == (gsize) -1)) {
+ if (errno == EINTR)
+ continue;
+ else
+ break;
+ }
+ if (G_UNLIKELY (ret == 0))
+ break;
+ data += ret;
+ len -= ret;
+ }
+}
+
+static void
+_xtruncate (gint fd, gsize offset)
+{
+ int ret;
+
+ if (G_UNLIKELY (!fd))
+ return;
+
+ do {
+ ret = ftruncate (fd, offset);
+ } while (ret == -1 && errno == EINTR);
+}
+
+static gboolean
+_xwrite_contents (gint fd, GOutputStream *output, GCancellable *cancellable, GError **error)
+{
+ gboolean ret;
+ GInputStream *input;
+
+ if (G_UNLIKELY (!fd))
+ return TRUE;
+
+ input = g_unix_input_stream_new (fd, FALSE);
+ ret = -1 != g_output_stream_splice (output, input, G_OUTPUT_STREAM_SPLICE_NONE, cancellable, error);
+ g_object_unref (input);
+
+ return ret;
+}
+
+
+/*
+ * VteFileStream: A POSIX file-based stream
+ */
+
+typedef struct _VteFileStream {
+ VteStream parent;
+
+ /* The first fd/offset is for the write head, second is for last page */
+ gint fd[2];
+ gsize offset[2];
+} VteFileStream;
+
+typedef VteStreamClass VteFileStreamClass;
+
+static GType _vte_file_stream_get_type (void);
+#define VTE_TYPE_FILE_STREAM _vte_file_stream_get_type ()
+
+G_DEFINE_TYPE (VteFileStream, _vte_file_stream, VTE_TYPE_STREAM)
+
+static void
+_vte_file_stream_init (VteFileStream *stream G_GNUC_UNUSED)
+{
+}
+
+VteStream *
+_vte_file_stream_new (void)
+{
+ return (VteStream *) g_object_new (VTE_TYPE_FILE_STREAM, NULL);
+}
+
+static void
+_vte_file_stream_finalize (GObject *object)
+{
+ VteFileStream *stream = (VteFileStream *) object;
+
+ if (stream->fd[0]) close (stream->fd[0]);
+ if (stream->fd[1]) close (stream->fd[1]);
+
+ G_OBJECT_CLASS (_vte_file_stream_parent_class)->finalize(object);
+}
+
+static inline void
+_vte_file_stream_ensure_fd0 (VteFileStream *stream)
+{
+ gint fd;
+ gchar *file_name;
+ if (G_LIKELY (stream->fd[0]))
+ return;
+
+ fd = g_file_open_tmp ("vteXXXXXX", &file_name, NULL);
+ if (fd != -1) {
+ unlink (file_name);
+ g_free (file_name);
+ }
+
+ stream->fd[0] = dup (fd); /* we do the dup to make sure ->fd[0] is not 0 */
+
+ close (fd);
+}
+
+static void
+_vte_file_stream_reset (VteStream *astream, gsize offset)
+{
+ VteFileStream *stream = (VteFileStream *) astream;
+
+ if (stream->fd[0]) _xtruncate (stream->fd[0], 0);
+ if (stream->fd[1]) _xtruncate (stream->fd[1], 0);
+
+ stream->offset[0] = stream->offset[1] = offset;
+}
+
+static gsize
+_vte_file_stream_append (VteStream *astream, const char *data, gsize len)
+{
+ VteFileStream *stream = (VteFileStream *) astream;
+ gsize ret;
+
+ _vte_file_stream_ensure_fd0 (stream);
+
+ ret = lseek (stream->fd[0], 0, SEEK_END);
+ _xwrite (stream->fd[0], data, len);
+
+ return stream->offset[0] + ret;
+}
+
+static gboolean
+_vte_file_stream_read (VteStream *astream, gsize offset, char *data, gsize len)
+{
+ VteFileStream *stream = (VteFileStream *) astream;
+ gsize l;
+
+ if (G_UNLIKELY (offset < stream->offset[1]))
+ return FALSE;
+
+ if (offset < stream->offset[0]) {
+ lseek (stream->fd[1], offset - stream->offset[1], SEEK_SET);
+ l = _xread (stream->fd[1], data, len);
+ offset += l; data += l; len -= l; if (!len) return TRUE;
+ }
+
+ lseek (stream->fd[0], offset - stream->offset[0], SEEK_SET);
+ l = _xread (stream->fd[0], data, len);
+ offset += l; data += l; len -= l; if (!len) return TRUE;
+
+ return FALSE;
+}
+
+static void
+_vte_file_stream_swap_fds (VteFileStream *stream)
+{
+ gint fd;
+
+ fd = stream->fd[0]; stream->fd[0] = stream->fd[1]; stream->fd[1] = fd;
+}
+
+static void
+_vte_file_stream_truncate (VteStream *astream, gsize offset)
+{
+ VteFileStream *stream = (VteFileStream *) astream;
+
+ if (G_UNLIKELY (offset < stream->offset[1])) {
+ _xtruncate (stream->fd[1], 0);
+ stream->offset[1] = offset;
+ }
+
+ if (G_UNLIKELY (offset < stream->offset[0])) {
+ _xtruncate (stream->fd[0], 0);
+ stream->offset[0] = stream->offset[1];
+ _vte_file_stream_swap_fds (stream);
+ } else {
+ _xtruncate (stream->fd[0], offset - stream->offset[0]);
+ }
+}
+
+static void
+_vte_file_stream_new_page (VteStream *astream)
+{
+ VteFileStream *stream = (VteFileStream *) astream;
+
+ stream->offset[1] = stream->offset[0];
+ if (stream->fd[0])
+ stream->offset[0] += lseek (stream->fd[0], 0, SEEK_END);
+ _vte_file_stream_swap_fds (stream);
+ _xtruncate (stream->fd[0], 0);
+}
+
+static gsize
+_vte_file_stream_head (VteStream *astream)
+{
+ VteFileStream *stream = (VteFileStream *) astream;
+
+ if (stream->fd[0])
+ return stream->offset[0] + lseek (stream->fd[0], 0, SEEK_END);
+ else
+ return stream->offset[0];
+}
+
+static gboolean
+_vte_file_stream_write_contents (VteStream *astream, GOutputStream *output,
+ gsize offset,
+ GCancellable *cancellable, GError **error)
+{
+ VteFileStream *stream = (VteFileStream *) astream;
+
+ if (G_UNLIKELY (offset < stream->offset[1]))
+ return FALSE;
+
+ if (offset < stream->offset[0]) {
+ lseek (stream->fd[1], offset - stream->offset[1], SEEK_SET);
+ if (!_xwrite_contents (stream->fd[1], output, cancellable, error))
+ return FALSE;
+ offset = stream->offset[0];
+ }
+
+ lseek (stream->fd[0], offset - stream->offset[0], SEEK_SET);
+ return _xwrite_contents (stream->fd[0], output, cancellable, error);
+}
+
+static void
+_vte_file_stream_class_init (VteFileStreamClass *klass)
+{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+ gobject_class->finalize = _vte_file_stream_finalize;
+
+ klass->reset = _vte_file_stream_reset;
+ klass->append = _vte_file_stream_append;
+ klass->read = _vte_file_stream_read;
+ klass->truncate = _vte_file_stream_truncate;
+ klass->new_page = _vte_file_stream_new_page;
+ klass->head = _vte_file_stream_head;
+ klass->write_contents = _vte_file_stream_write_contents;
+}
diff --git a/vte/src/vtestream.c b/vte/src/vtestream.c
new file mode 100644
index 0000000..ab90948
--- /dev/null
+++ b/vte/src/vtestream.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2009,2010 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Red Hat Author(s): Behdad Esfahbod
+ */
+
+#include <config.h>
+
+#include "debug.h"
+#include "vtestream.h"
+
+
+/*
+ * In the future it may be worth replacing these with gio. Not sure about
+ * the overhead though.
+ */
+
+#include "vtestream-base.h"
+#include "vtestream-file.h"
diff --git a/vte/src/vtestream.h b/vte/src/vtestream.h
new file mode 100644
index 0000000..27a2829
--- /dev/null
+++ b/vte/src/vtestream.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2009,2010 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Red Hat Author(s): Behdad Esfahbod
+ */
+
+#ifndef vtestream_h_included
+#define vtestream_h_included
+
+#include <glib-object.h>
+#include <gio/gio.h>
+
+G_BEGIN_DECLS
+
+typedef struct _VteStream VteStream;
+
+void _vte_stream_reset (VteStream *stream, gsize offset);
+gsize _vte_stream_append (VteStream *stream, const char *data, gsize len);
+gboolean _vte_stream_read (VteStream *stream, gsize offset, char *data, gsize len);
+void _vte_stream_truncate (VteStream *stream, gsize offset);
+void _vte_stream_new_page (VteStream *stream);
+gsize _vte_stream_head (VteStream *stream);
+gboolean _vte_stream_write_contents (VteStream *stream, GOutputStream *output,
+ gsize start_offset,
+ GCancellable *cancellable, GError **error);
+
+
+/* Various streams */
+
+VteStream *
+_vte_file_stream_new (void);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vtetc.c b/vte/src/vtetc.c
new file mode 100644
index 0000000..88e814c
--- /dev/null
+++ b/vte/src/vtetc.c
@@ -0,0 +1,611 @@
+/*
+ * Copyright © 2006 Ryan Lortie <desrt desrt ca>
+ * based on code © 2000-2002 Red Hat, Inc. and others.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <string.h>
+#include <stdlib.h>
+#include <glib.h>
+
+#include "vtetc.h"
+
+/*
+ * --- a termcap file is represented by a simple tree ---
+ */
+typedef struct _vte_termcap
+{
+ GMappedFile *file;
+ GTree *tree;
+ const char *end;
+} VteTermcap;
+
+/* a special strcmp that treats any character in
+ * its third argument (plus '\0') as end of
+ * string.
+ *
+ * we have to be a little bit careful, however.
+ * note that '=' < 'A' < '|' and consider the
+ * following three strings with "=|" given as
+ * the 3rd argument:
+ *
+ * foo=
+ * fooA
+ * foo|
+ *
+ * if we just do the normal *a - *b thing when
+ * the strings don't match then we will find
+ *
+ * "foo=" < "fooA"
+ *
+ * and
+ *
+ * "foo|" > "fooA"
+ *
+ * but of course,
+ *
+ * "foo=" == "foo|"
+ *
+ * which means that our ordering isn't proper
+ * which may cause odd things to happen inside of
+ * the tree. for this reason, all of the
+ * terminating characters are treated as '\0' for
+ * purposes of deciding greater or less than.
+ *
+ * note: if anything in this file should be
+ * micro-optimised then it is probably
+ * this function!
+ */
+static int
+_vte_termcap_strcmp (const char *a,
+ const char *b,
+ const char *enders)
+{
+ /* note: strchr on '\0' returns the
+ * end of the string (not NULL)
+ */
+
+ while (!strchr (enders, *a))
+ {
+ if (*a != *b)
+ {
+ /* we're in the loop so we know that *a is not a terminator.
+ * but maybe *b is?
+ */
+ if (strchr (enders, *b))
+ return *a - '\0';
+ else
+ /* b is not a terminator. proceed normally. */
+ return *a - *b;
+ }
+ a++;
+ b++;
+ }
+
+ /* *a is a terminator for sure, but maybe *b is too. */
+ if (strchr (enders, *b))
+ /* b is too, so we have a match. */
+ return 0;
+
+ /* else, since *a is a terminator character and *b is not, *a is
+ * less than *b. */
+ return -1;
+}
+
+/*
+ * --- routines for searching the tree ---
+ */
+static const char *
+_vte_termcap_find_start (VteTermcap *termcap,
+ const char *tname,
+ const char *cap)
+{
+ const char *contents;
+ const char *start;
+ char *chain;
+
+ /* find the terminal */
+ contents = g_tree_lookup (termcap->tree, tname);
+
+ if (contents == NULL)
+ return NULL;
+
+ start = contents;
+ while (contents != termcap->end)
+ {
+ if (*contents == '\\' &&
+ contents + 1 != termcap->end &&
+ contents[1] == '\n')
+ {
+ /* we've hit \ at the end of a line. skip. */
+ contents++;
+ }
+ else if (*contents == ':' || *contents == '\n')
+ {
+ if (!_vte_termcap_strcmp (start, cap, "=#:\n"))
+ return start;
+
+ start = contents + 1;
+ if (*contents == '\n')
+ break;
+ }
+
+ contents++;
+ }
+
+ /* else, try to find it in the term listed in our 'tc' entry.
+ * obviously, don't recurse when we're trying to find "tc"
+ * itself else we infinite loop.
+ */
+ if (!strcmp (cap, "tc"))
+ return NULL;
+
+ chain = _vte_termcap_find_string (termcap, tname, "tc");
+ if (chain[0])
+ start = _vte_termcap_find_start (termcap, chain, cap);
+ g_free (chain);
+
+ return start;
+}
+
+static int
+_vte_termcap_unescape_string(const char *string, char *result)
+{
+ int value = -1;
+ int length = 0;
+
+ while (TRUE)
+ {
+ /* Each time through the loop puts a value into 'value' if it
+ * wants to have it written into the string. We do the write
+ * here because it is complicated (check for NULL result, etc)
+ *
+ * We finish and return the length whenb value is 0.
+ */
+ if (value >= 0)
+ {
+ if (result != NULL)
+ result[length] = value;
+ length++;
+
+ if (value == 0)
+ return length;
+
+ value = -1;
+ }
+
+ /* Now, decide what value should be for the next iteration.
+ * Here, "continue;" means "I've possibly set 'value' and I want
+ * to continue looking at the string starting at the next
+ * character pointed to by 'string'.
+ */
+ switch (*string++)
+ {
+ case '\n':
+ case '\0':
+ case ':':
+ value = 0;
+ continue;
+
+ case '\\':
+ switch (*string++)
+ {
+ case '\n':
+ while (*string == ' ' || *string == '\t')
+ string++;
+ continue;
+ case 'E':
+ case 'e':
+ value = 27;
+ continue;
+ case 'n':
+ value = 10;
+ continue;
+ case 'r':
+ value = 13;
+ continue;
+ case 't':
+ value = 8;
+ continue;
+ case 'b':
+ value = 9;
+ continue;
+ case 'f':
+ value = 12;
+ continue;
+ case '0':
+ case '1':
+ value = strtol(string - 1, (void *) &string, 8);
+ continue;
+ default:
+ /* invalid escape sequence. write the \ and
+ * continue as if we never saw it...
+ */
+ value = '\\';
+ string--;
+ continue;
+ }
+
+ case '^':
+ if (*string >= 'A' && *string <= 'Z')
+ {
+ value = *string++ - '@';
+ break;
+ }
+
+ /* else, invalid control sequnce. write the ^
+ * and continue as if we never saw it...
+ */
+
+ default:
+ /* else, the value is this character and the pointer has
+ * already been advanced to the next character. */
+ value = string[-1];
+ }
+ }
+}
+
+char *
+_vte_termcap_find_string_length (VteTermcap *termcap,
+ const char *tname,
+ const char *cap,
+ gssize *length)
+{
+ const char *result = _vte_termcap_find_start (termcap, tname, cap);
+ char *string;
+
+ if (result == NULL || result[2] != '=')
+ {
+ *length = 0;
+ return g_strdup ("");
+ }
+
+ result += 3;
+
+ *length = _vte_termcap_unescape_string (result, NULL);
+ string = g_malloc (*length);
+ _vte_termcap_unescape_string (result, string);
+
+ (*length)--;
+
+ return string;
+}
+
+char *
+_vte_termcap_find_string (VteTermcap *termcap,
+ const char *tname,
+ const char *cap)
+{
+ gssize length;
+
+ return _vte_termcap_find_string_length (termcap, tname, cap, &length);
+}
+
+long
+_vte_termcap_find_numeric (VteTermcap *termcap,
+ const char *tname,
+ const char *cap)
+{
+ const char *result = _vte_termcap_find_start (termcap, tname, cap);
+ long value;
+ char *end;
+
+ if (result == NULL || result[2] != '#')
+ return 0;
+
+ result += 3;
+
+ value = strtol (result, &end, 0);
+ if (*end != ':' && *end != '\0' && *end != '\n')
+ return 0;
+
+ return value;
+}
+
+gboolean
+_vte_termcap_find_boolean (VteTermcap *termcap,
+ const char *tname,
+ const char *cap)
+{
+ const char *result = _vte_termcap_find_start (termcap, tname, cap);
+
+ if (result == NULL)
+ return FALSE;
+
+ result += 2;
+
+ if (*result != ':' && *result != '\0' && *result != '\n')
+ return FALSE;
+
+ return TRUE;
+}
+
+/*
+ * --- routines for building the tree from the file ---
+ */
+static void
+_vte_termcap_parse_entry (GTree *termcap, const char **cnt, const char *end)
+{
+ gboolean seen_content;
+ const char *contents;
+ const char *start;
+ const char *caps;
+
+ contents = *cnt;
+
+ /* look for the start of the capabilities.
+ */
+ caps = contents;
+ while (caps != end)
+ if (*caps == ':')
+ break;
+ else
+ caps++;
+
+ if (*caps != ':')
+ return;
+
+ /* parse all of the aliases and insert one item into the termcap
+ * tree for each alias, pointing it to our caps.
+ */
+ seen_content = FALSE;
+ start = contents;
+ while (contents != end)
+ {
+ /*
+ if (contents == end)
+ {
+ * we can't deal with end of file directly following a
+ * terminal name without any delimiters or even a newline.
+ * but honestly, what did they expect? end of file without
+ * newline in the middle of a terminal alias with no
+ * capability definitions? i'll doubt they notice that
+ * anything is missing.
+ }
+ */
+
+ if (*contents == '\\' && contents + 1 != end && contents[1] == '\n')
+ {
+ /* we've hit \ at the end of a line. skip. */
+ contents++;
+ }
+ else if (*contents == '|' || *contents == ':' || *contents == '\n')
+ {
+ /* we wait to find the terminator before putting anything in
+ * the tree to ensure that _vte_termcap_strcmp will always
+ * terminate. we also only add the alias if we've seen
+ * actual characters (not just spaces, continuations, etc)
+ */
+ if (seen_content)
+ g_tree_insert (termcap, (gpointer) start, (gpointer) caps);
+ start = contents + 1;
+ seen_content = FALSE;
+
+ /* we've either hit : and need to move on to capabilities or
+ * end of line and then there are no capabilities for this
+ * terminal. any aliases have already been added to the tree
+ * so we can just move on. if it was '\n' then the next while
+ * loop will exit immediately.
+ */
+ if (*contents == ':' || *contents == '\n')
+ break;
+ }
+ else if (*contents != ' ' && *contents != '\t')
+ seen_content = TRUE;
+
+ contents++;
+ }
+
+ /* we've processed all of the aliases. now skip past the capabilities
+ * so that we're ready to go on the next entry. */
+ while (contents != end)
+ {
+ if (*contents == '\\' && contents + 1 != end && contents[1] == '\n')
+ {
+ /* we've hit \ at the end of a line. skip. */
+ contents++;
+ }
+ else if (*contents == '\n')
+ break;
+
+ contents++;
+ }
+
+ *cnt = contents;
+}
+
+static GTree *
+_vte_termcap_parse_file (const char *contents, int length)
+{
+ const char *end = contents + length;
+ GTree *termcap;
+
+ /* this tree contains terminal alias names which in a proper
+ * termcap file will always be followed by : or |. we
+ * include \n to be extra-permissive. \0 is here to allow
+ * us to notice the end of strings passed to us by vte.
+ */
+ termcap = g_tree_new_full ((GCompareDataFunc) _vte_termcap_strcmp,
+ (gpointer)":|\n", NULL, NULL);
+
+ while (contents != end)
+ {
+ switch (*contents++)
+ {
+ /* comments */
+ case '#':
+ /* eat up to (but not) the \n */
+ while (contents != end && *contents != '\n')
+ contents++;
+
+ /* whitespace */
+ case ' ':
+ case '\t':
+ case '\n':
+ continue;
+
+ default:
+ /* bring back the character */
+ contents--;
+
+ /* parse one entry (ie: one line) */
+ _vte_termcap_parse_entry (termcap, &contents, end);
+ }
+ }
+
+ return termcap;
+}
+
+static VteTermcap *
+_vte_termcap_create (const char *filename)
+{
+ const char *contents;
+ VteTermcap *termcap;
+ GMappedFile *file;
+ int length;
+
+ file = g_mapped_file_new (filename, FALSE, NULL);
+ if (file == NULL)
+ return NULL;
+
+ contents = g_mapped_file_get_contents (file);
+ length = g_mapped_file_get_length (file);
+
+ termcap = g_slice_new (VteTermcap);
+ termcap->file = file;
+ termcap->tree = _vte_termcap_parse_file (contents, length);
+ termcap->end = contents + length;
+
+ return termcap;
+}
+
+static void
+_vte_termcap_destroy (VteTermcap *termcap)
+{
+ if (!termcap)
+ return;
+ g_tree_destroy (termcap->tree);
+ g_mapped_file_unref (termcap->file);
+ g_slice_free (VteTermcap, termcap);
+}
+
+/*
+ * --- cached interface to create/destroy termcap trees ---
+ */
+static GStaticMutex _vte_termcap_mutex = G_STATIC_MUTEX_INIT;
+static GCache *_vte_termcap_cache = NULL;
+
+VteTermcap *
+_vte_termcap_new(const char *filename)
+{
+ VteTermcap *result;
+
+ g_static_mutex_lock (&_vte_termcap_mutex);
+
+ if (_vte_termcap_cache == NULL)
+ _vte_termcap_cache = g_cache_new((GCacheNewFunc) _vte_termcap_create,
+ (GCacheDestroyFunc) _vte_termcap_destroy,
+ (GCacheDupFunc) g_strdup,
+ (GCacheDestroyFunc) g_free,
+ g_str_hash, g_direct_hash, g_str_equal);
+
+ result = g_cache_insert (_vte_termcap_cache, (gpointer) filename);
+
+ g_static_mutex_unlock (&_vte_termcap_mutex);
+
+ return result;
+}
+
+void
+_vte_termcap_free (VteTermcap *termcap)
+{
+ g_static_mutex_lock (&_vte_termcap_mutex);
+ g_cache_remove (_vte_termcap_cache, termcap);
+ g_static_mutex_unlock (&_vte_termcap_mutex);
+}
+
+#ifdef TERMCAP_MAIN
+#include <stdio.h>
+
+int
+main (int argc, char **argv)
+{
+ VteTermcap *tc;
+ char *str;
+ gssize len;
+ int i;
+
+ if (argc < 4)
+ {
+ g_printerr("vtetc /path/to/termcap termname attrs...\n"
+ " where attrs are\n"
+ " :xx for boolean\n"
+ " =xx for string\n"
+ " +xx for string displayed in hex\n"
+ " #xx for numeric\n");
+ return 1;
+ }
+
+ tc = _vte_termcap_new (argv[1]);
+
+ if (tc == NULL)
+ {
+ perror ("open");
+ return 1;
+ }
+
+ for (i = 3; i < argc; i++)
+ {
+ printf ("%s -> ", argv[i]);
+
+ switch (argv[i][0])
+ {
+ case ':':
+ printf ("%s\n", _vte_termcap_find_boolean (tc, argv[2], argv[i] + 1)?
+ "true" : "false");
+ break;
+
+ case '=':
+ case '+':
+ str = _vte_termcap_find_string_length (tc, argv[2], argv[i] + 1, &len);
+
+ if (argv[i][0] == '=')
+ printf ("'%s' (%d)\n", str, (int)len);
+ else
+ {
+ int i;
+
+ for (i = 0; str[i]; i++)
+ printf ("%02x", str[i]);
+ printf (" (%d) \n", (int)len);
+ }
+ g_free (str);
+ break;
+
+ case '#':
+ printf ("%ld\n", _vte_termcap_find_numeric (tc, argv[2], argv[i] + 1));
+ break;
+
+ default:
+ g_printerr("unrecognised type '%c'\n", argv[i][0]);
+ }
+ }
+
+ _vte_termcap_free(tc);
+
+ return 0;
+}
+#endif
diff --git a/vte/src/vtetc.h b/vte/src/vtetc.h
new file mode 100644
index 0000000..d1bab8d
--- /dev/null
+++ b/vte/src/vtetc.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2000-2002 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_termcap_h_included
+#define vte_termcap_h_included
+
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+struct _vte_termcap;
+
+/* Create a new termcap structure. */
+struct _vte_termcap *_vte_termcap_new(const char *filename);
+
+/* Free a termcap structure. */
+void _vte_termcap_free(struct _vte_termcap *termcap);
+
+/* Read a boolean capability for a given terminal. */
+gboolean _vte_termcap_find_boolean(struct _vte_termcap *termcap,
+ const char *tname, const char *cap);
+
+/* Read a numeric capability for a given terminal. */
+long _vte_termcap_find_numeric(struct _vte_termcap *termcap, const char *tname,
+ const char *cap);
+
+/* Read a string capability for a given terminal. The returned string should
+ * be freed with g_free(). */
+char *_vte_termcap_find_string(struct _vte_termcap *termcap, const char *tname,
+ const char *cap);
+
+/* Read a string capability for a given terminal, and return the length of
+ * the result in addition to the result itself. The returned string should
+ * be freed with g_free(). */
+char *_vte_termcap_find_string_length(struct _vte_termcap *termcap,
+ const char *tname,
+ const char *cap, gssize *length);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vtetree.c b/vte/src/vtetree.c
new file mode 100644
index 0000000..c2b8054
--- /dev/null
+++ b/vte/src/vtetree.c
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2004 Benjamin Otte <otte gnome org>
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#include "vtetree.h"
+
+VteTree *
+_vte_tree_new(GCompareFunc key_compare_func)
+{
+ VteTree *tree = g_slice_new0 (VteTree);
+ tree->tree = g_tree_new (key_compare_func);
+ return tree;
+}
+
+void
+_vte_tree_destroy(VteTree *tree)
+{
+ g_tree_destroy (tree->tree);
+ g_slice_free (VteTree, tree);
+}
+
+void
+_vte_tree_insert(VteTree *tree, gpointer key, gpointer value)
+{
+ guint index = GPOINTER_TO_UINT (key);
+
+ if (index < VTE_TREE_ARRAY_SIZE) {
+ tree->array[index] = value;
+ return;
+ }
+ g_tree_insert (tree->tree, key, value);
+}
+
+gpointer
+_vte_tree_lookup(VteTree *tree, gconstpointer key)
+{
+ const guint index = GPOINTER_TO_UINT (key);
+
+ if (index < VTE_TREE_ARRAY_SIZE)
+ return tree->array[index];
+
+ return g_tree_lookup (tree->tree, key);
+}
+
diff --git a/vte/src/vtetree.h b/vte/src/vtetree.h
new file mode 100644
index 0000000..6c78143
--- /dev/null
+++ b/vte/src/vtetree.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2004 Benjamin Otte <otte gnome org>
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+/* The interfaces in this file are subject to change at any time. */
+
+#ifndef vte_tree_h_included
+#define vte_tree_h_included
+
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+/* This is an optimiziation for GTrees we use with unicode characters. Since
+ * most characters are in the range [0-128], we store that range in an array
+ * for faster access.
+ * We match the API for GTree here.
+ */
+#define VTE_TREE_ARRAY_SIZE (128)
+
+typedef struct _VteTree VteTree;
+struct _VteTree {
+ GTree *tree;
+ gpointer array[VTE_TREE_ARRAY_SIZE];
+};
+
+VteTree *_vte_tree_new(GCompareFunc key_compare_func);
+void _vte_tree_destroy(VteTree *tree);
+void _vte_tree_insert(VteTree *tree, gpointer key, gpointer value);
+gpointer _vte_tree_lookup(VteTree *tree, gconstpointer key);
+/* extend as needed */
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vtetypebuiltins.c b/vte/src/vtetypebuiltins.c
new file mode 100644
index 0000000..4f12d4a
--- /dev/null
+++ b/vte/src/vtetypebuiltins.c
@@ -0,0 +1,161 @@
+
+/* Generated data (by glib-mkenums) */
+
+#include "vte.h"
+
+/* enumerations from "vte.h" */
+GType
+vte_terminal_erase_binding_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ { VTE_ERASE_AUTO, "VTE_ERASE_AUTO", "auto" },
+ { VTE_ERASE_ASCII_BACKSPACE, "VTE_ERASE_ASCII_BACKSPACE", "ascii-backspace" },
+ { VTE_ERASE_ASCII_DELETE, "VTE_ERASE_ASCII_DELETE", "ascii-delete" },
+ { VTE_ERASE_DELETE_SEQUENCE, "VTE_ERASE_DELETE_SEQUENCE", "delete-sequence" },
+ { VTE_ERASE_TTY, "VTE_ERASE_TTY", "tty" },
+ { 0, NULL, NULL }
+ };
+ GType g_define_type_id = \
+ g_enum_register_static (g_intern_static_string ("VteTerminalEraseBinding"), values);
+
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+
+ return g_define_type_id__volatile;
+}
+
+GType
+vte_terminal_cursor_blink_mode_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ { VTE_CURSOR_BLINK_SYSTEM, "VTE_CURSOR_BLINK_SYSTEM", "system" },
+ { VTE_CURSOR_BLINK_ON, "VTE_CURSOR_BLINK_ON", "on" },
+ { VTE_CURSOR_BLINK_OFF, "VTE_CURSOR_BLINK_OFF", "off" },
+ { 0, NULL, NULL }
+ };
+ GType g_define_type_id = \
+ g_enum_register_static (g_intern_static_string ("VteTerminalCursorBlinkMode"), values);
+
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+
+ return g_define_type_id__volatile;
+}
+
+GType
+vte_terminal_cursor_shape_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ { VTE_CURSOR_SHAPE_BLOCK, "VTE_CURSOR_SHAPE_BLOCK", "block" },
+ { VTE_CURSOR_SHAPE_IBEAM, "VTE_CURSOR_SHAPE_IBEAM", "ibeam" },
+ { VTE_CURSOR_SHAPE_UNDERLINE, "VTE_CURSOR_SHAPE_UNDERLINE", "underline" },
+ { 0, NULL, NULL }
+ };
+ GType g_define_type_id = \
+ g_enum_register_static (g_intern_static_string ("VteTerminalCursorShape"), values);
+
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+
+ return g_define_type_id__volatile;
+}
+
+GType
+vte_terminal_write_flags_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ { VTE_TERMINAL_WRITE_DEFAULT, "VTE_TERMINAL_WRITE_DEFAULT", "default" },
+ { 0, NULL, NULL }
+ };
+ GType g_define_type_id = \
+ g_enum_register_static (g_intern_static_string ("VteTerminalWriteFlags"), values);
+
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+
+ return g_define_type_id__volatile;
+}
+
+/* enumerations from "vtepty.h" */
+GType
+vte_pty_flags_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GFlagsValue values[] = {
+ { VTE_PTY_NO_LASTLOG, "VTE_PTY_NO_LASTLOG", "no-lastlog" },
+ { VTE_PTY_NO_UTMP, "VTE_PTY_NO_UTMP", "no-utmp" },
+ { VTE_PTY_NO_WTMP, "VTE_PTY_NO_WTMP", "no-wtmp" },
+ { VTE_PTY_NO_HELPER, "VTE_PTY_NO_HELPER", "no-helper" },
+ { VTE_PTY_NO_FALLBACK, "VTE_PTY_NO_FALLBACK", "no-fallback" },
+ { VTE_PTY_DEFAULT, "VTE_PTY_DEFAULT", "default" },
+ { 0, NULL, NULL }
+ };
+ GType g_define_type_id = \
+ g_flags_register_static (g_intern_static_string ("VtePtyFlags"), values);
+
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+
+ return g_define_type_id__volatile;
+}
+
+GType
+vte_pty_error_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ { VTE_PTY_ERROR_PTY_HELPER_FAILED, "VTE_PTY_ERROR_PTY_HELPER_FAILED", "pty-helper-failed" },
+ { VTE_PTY_ERROR_PTY98_FAILED, "VTE_PTY_ERROR_PTY98_FAILED", "pty98-failed" },
+ { 0, NULL, NULL }
+ };
+ GType g_define_type_id = \
+ g_enum_register_static (g_intern_static_string ("VtePtyError"), values);
+
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+
+ return g_define_type_id__volatile;
+}
+
+/* enumerations from "vtedeprecated.h" */
+GType
+vte_terminal_anti_alias_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const GEnumValue values[] = {
+ { VTE_ANTI_ALIAS_USE_DEFAULT, "VTE_ANTI_ALIAS_USE_DEFAULT", "use-default" },
+ { VTE_ANTI_ALIAS_FORCE_ENABLE, "VTE_ANTI_ALIAS_FORCE_ENABLE", "force-enable" },
+ { VTE_ANTI_ALIAS_FORCE_DISABLE, "VTE_ANTI_ALIAS_FORCE_DISABLE", "force-disable" },
+ { 0, NULL, NULL }
+ };
+ GType g_define_type_id = \
+ g_enum_register_static (g_intern_static_string ("VteTerminalAntiAlias"), values);
+
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+
+ return g_define_type_id__volatile;
+}
+
+
+
+/* Generated data ends here */
+
diff --git a/vte/src/vtetypebuiltins.c.template b/vte/src/vtetypebuiltins.c.template
new file mode 100644
index 0000000..0a6c5b2
--- /dev/null
+++ b/vte/src/vtetypebuiltins.c.template
@@ -0,0 +1,40 @@
+/*** BEGIN file-header ***/
+#include "vte.h"
+
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+/* enumerations from "@filename@" */
+/*** END file-production ***/
+
+/*** BEGIN value-header ***/
+GType
+@enum_name@_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ if (g_once_init_enter (&g_define_type_id__volatile)) {
+ static const G@Type@Value values[] = {
+/*** END value-header ***/
+
+/*** BEGIN value-production ***/
+ { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
+/*** END value-production ***/
+
+/*** BEGIN value-tail ***/
+ { 0, NULL, NULL }
+ };
+ GType g_define_type_id = \
+ g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
+
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+
+ return g_define_type_id__volatile;
+}
+
+/*** END value-tail ***/
+
+/*** BEGIN file-tail ***/
+
+/*** END file-tail ***/
diff --git a/vte/src/vtetypebuiltins.h b/vte/src/vtetypebuiltins.h
new file mode 100644
index 0000000..2b9a0c5
--- /dev/null
+++ b/vte/src/vtetypebuiltins.h
@@ -0,0 +1,39 @@
+
+/* Generated data (by glib-mkenums) */
+
+#if !defined (__VTE_VTE_H_INSIDE__) && !defined (VTE_COMPILATION)
+#error "Only <vte/vte.h> can be included directly."
+#endif
+
+#ifndef VTE_TYPE_BUILTINS_H
+#define VTE_TYPE_BUILTINS_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* enumerations from "vte.h" */
+GType vte_terminal_erase_binding_get_type (void);
+#define VTE_TYPE_TERMINAL_ERASE_BINDING (vte_terminal_erase_binding_get_type ())
+GType vte_terminal_cursor_blink_mode_get_type (void);
+#define VTE_TYPE_TERMINAL_CURSOR_BLINK_MODE (vte_terminal_cursor_blink_mode_get_type ())
+GType vte_terminal_cursor_shape_get_type (void);
+#define VTE_TYPE_TERMINAL_CURSOR_SHAPE (vte_terminal_cursor_shape_get_type ())
+GType vte_terminal_write_flags_get_type (void);
+#define VTE_TYPE_TERMINAL_WRITE_FLAGS (vte_terminal_write_flags_get_type ())
+
+/* enumerations from "vtepty.h" */
+GType vte_pty_flags_get_type (void);
+#define VTE_TYPE_PTY_FLAGS (vte_pty_flags_get_type ())
+GType vte_pty_error_get_type (void);
+#define VTE_TYPE_PTY_ERROR (vte_pty_error_get_type ())
+
+/* enumerations from "vtedeprecated.h" */
+GType vte_terminal_anti_alias_get_type (void);
+#define VTE_TYPE_TERMINAL_ANTI_ALIAS (vte_terminal_anti_alias_get_type ())
+G_END_DECLS
+
+#endif /* !VTE_TYPE_BUILTINS_H */
+
+/* Generated data ends here */
+
diff --git a/vte/src/vtetypebuiltins.h.template b/vte/src/vtetypebuiltins.h.template
new file mode 100644
index 0000000..a886d59
--- /dev/null
+++ b/vte/src/vtetypebuiltins.h.template
@@ -0,0 +1,28 @@
+/*** BEGIN file-header ***/
+#if !defined (__VTE_VTE_H_INSIDE__) && !defined (VTE_COMPILATION)
+#error "Only <vte/vte.h> can be included directly."
+#endif
+
+#ifndef VTE_TYPE_BUILTINS_H
+#define VTE_TYPE_BUILTINS_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+
+/* enumerations from "@filename@" */
+/*** END file-production ***/
+
+/*** BEGIN value-header ***/
+GType @enum_name@_get_type (void);
+#define VTE_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
+/*** END value-header ***/
+
+/*** BEGIN file-tail ***/
+G_END_DECLS
+
+#endif /* !VTE_TYPE_BUILTINS_H */
+/*** END file-tail ***/
diff --git a/vte/src/vteunistr.c b/vte/src/vteunistr.c
new file mode 100644
index 0000000..435371f
--- /dev/null
+++ b/vte/src/vteunistr.c
@@ -0,0 +1,175 @@
+/*
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Author(s):
+ * Behdad Esfahbod
+ */
+
+#include <config.h>
+
+#include "vteunistr.h"
+
+#include <string.h>
+
+
+/* Overview:
+ *
+ * The way vteunistr is implemented is very simple: Unicode only defines
+ * codepoints less than 0x110000. That leaves plenty of room in a guint32 to
+ * use for other things. So, whenever our "string" contains only one Unicode
+ * character, we use its code as our vteunistr. Otherwise, we register the
+ * string in a central registry and assign a unique number to it and use that.
+ * This number is "our own private internal non-unicode code for this
+ * sequence of characters".
+ *
+ * The rest of the problem would be how to efficiently implement this
+ * registry. It does *NOT* really have to be efficient at all, as it will
+ * only be accessed in case of combining marks. And the strings are pretty
+ * short (two or three characters). But our implementation is quite efficient
+ * anyway.
+ *
+ * The access pattern of using vteunistr's is that we have a vteunistr in a
+ * terminal cell, a new gunichar comes in and we decide to combine with it,
+ * and we combine them and get a new vteunistr. So, that is exactly how we
+ * encode vteunistr's: all we need to know about a vteunistr to be able to
+ * reconstruct its string is the vteunistr and the gunichar that joined to
+ * form it. That's what VteUnistrDecomp is. That is the decomposition.
+ *
+ * We start giving new vteunistr's unique numbers starting at
+ * %VTE_UNISTR_START+1 and going up. We keep the decompositions in a GArray,
+ * called unistr_decomp. The first entry of the array is unused (that's why
+ * we start from %VTE_UNISTR_START plus one). The decomposition table provides
+ * enough information to efficiently answer questions like "what's the first
+ * gunichar in this vteunistr?", "what's the sequence of gunichar's in this
+ * vteunistr?", and "how many gunichar's are there in this vteunistr?".
+ *
+ * We still do not have any efficient way to construct new vteunistr's though.
+ * Given a vteunistr and a gunichar, we have to walk over the entire
+ * decomposition table to see if we have already registered (encoded) this
+ * combination. To make that operation fast, we use a reverse map, that is,
+ * a GHashTable named unistr_comp. The hash table maps a decomposition to its
+ * encoded vteunistr value. The value obviously fits in a pointer and does
+ * not need memory allocation. We also want to avoid allocating memory for
+ * the key of the hash table entries, as we already have those decompositions
+ * in the memory in the unistr_decomp array. We cannot use direct pointers
+ * though as when growing, the GArray may resize and move to a new memory
+ * buffer, rendering all our pointers invalid. For this reason, we keep the
+ * index into the array as our hash table key. When we want to perform a
+ * lookup in the hash table, we insert the decomposition that we are searching
+ * for as item zero in the unistr_decomp table, then lookup for an equal entry
+ * of it in the hash table. Finally, if the hash lookup fails, we add the new
+ * decomposition to the lookup array and the hash table, and return the newly
+ * encoded vteunistr value.
+ */
+
+#define VTE_UNISTR_START 0x80000000
+
+static vteunistr unistr_next = VTE_UNISTR_START + 1;
+
+struct VteUnistrDecomp {
+ vteunistr prefix;
+ gunichar suffix;
+};
+
+GArray *unistr_decomp;
+GHashTable *unistr_comp;
+
+#define DECOMP_FROM_INDEX(i) g_array_index (unistr_decomp, struct VteUnistrDecomp, (i))
+#define DECOMP_FROM_UNISTR(s) DECOMP_FROM_INDEX ((s) - VTE_UNISTR_START)
+
+static guint
+unistr_comp_hash (gconstpointer key)
+{
+ struct VteUnistrDecomp *decomp;
+ decomp = &DECOMP_FROM_INDEX (GPOINTER_TO_UINT (key));
+ return decomp->prefix ^ decomp->suffix;
+}
+
+static gboolean
+unistr_comp_equal (gconstpointer a, gconstpointer b)
+{
+ return 0 == memcmp (&DECOMP_FROM_INDEX (GPOINTER_TO_UINT (a)),
+ &DECOMP_FROM_INDEX (GPOINTER_TO_UINT (b)),
+ sizeof (struct VteUnistrDecomp));
+}
+
+vteunistr
+_vte_unistr_append_unichar (vteunistr s, gunichar c)
+{
+ struct VteUnistrDecomp decomp;
+ vteunistr ret = 0;
+
+ decomp.prefix = s;
+ decomp.suffix = c;
+
+ if (G_UNLIKELY (!unistr_decomp)) {
+ unistr_decomp = g_array_new (FALSE, TRUE, sizeof (struct VteUnistrDecomp));
+ g_array_set_size (unistr_decomp, 1);
+ unistr_comp = g_hash_table_new (unistr_comp_hash, unistr_comp_equal);
+ } else {
+ DECOMP_FROM_INDEX (0) = decomp;
+ ret = GPOINTER_TO_UINT (g_hash_table_lookup (unistr_comp, GUINT_TO_POINTER (0)));
+ }
+
+ if (G_UNLIKELY (!ret)) {
+ /* sanity check to avoid OOM */
+ if (G_UNLIKELY (_vte_unistr_strlen (s) > 10 || unistr_next - VTE_UNISTR_START > 100000))
+ return s;
+
+ ret = unistr_next++;
+ g_array_append_val (unistr_decomp, decomp);
+ g_hash_table_insert (unistr_comp,
+ GUINT_TO_POINTER (ret - VTE_UNISTR_START),
+ GUINT_TO_POINTER (ret));
+ }
+
+ return ret;
+}
+
+gunichar
+_vte_unistr_get_base (vteunistr s)
+{
+ g_return_val_if_fail (s < unistr_next, s);
+ while (G_UNLIKELY (s >= VTE_UNISTR_START))
+ s = DECOMP_FROM_UNISTR (s).prefix;
+ return (gunichar) s;
+}
+
+void
+_vte_unistr_append_to_string (vteunistr s, GString *gs)
+{
+ g_return_if_fail (s < unistr_next);
+ if (G_UNLIKELY (s >= VTE_UNISTR_START)) {
+ struct VteUnistrDecomp *decomp;
+ decomp = &DECOMP_FROM_UNISTR (s);
+ _vte_unistr_append_to_string (decomp->prefix, gs);
+ s = decomp->suffix;
+ }
+ g_string_append_unichar (gs, (gunichar) s);
+}
+
+int
+_vte_unistr_strlen (vteunistr s)
+{
+ int len = 1;
+ g_return_val_if_fail (s < unistr_next, len);
+ while (G_UNLIKELY (s >= VTE_UNISTR_START)) {
+ s = DECOMP_FROM_UNISTR (s).prefix;
+ len++;
+ }
+ return len;
+}
diff --git a/vte/src/vteunistr.h b/vte/src/vteunistr.h
new file mode 100644
index 0000000..3c22bee
--- /dev/null
+++ b/vte/src/vteunistr.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2008 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Author(s):
+ * Behdad Esfahbod
+ */
+
+#ifndef vte_vteunistr_h_included
+#define vte_vteunistr_h_included
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+/**
+ * vteunistr:
+ *
+ * vteunistr is a gunichar-compatible way to store strings. A string
+ * consisting of a single unichar c is represented as the same value
+ * as c itself. In that sense, gunichars can be readily used as
+ * vteunistrs. Longer strings can be built by appending a unichar
+ * to an already existing string.
+ *
+ * vteunistr is essentially just a gunicode-compatible quark value.
+ * It can be used to store strings (of a base followed by combining
+ * characters) where the code was designed to only allow one character.
+ *
+ * Strings are internalized efficiently and never freed. No memory
+ * management of vteunistr values is needed.
+ **/
+typedef guint32 vteunistr;
+
+/**
+ * _vte_unistr_append_unichar:
+ * @s: a #vteunistr
+ * @c: Unicode character to append to @s
+ *
+ * Creates a vteunistr value for the string @s followed by the
+ * character @c.
+ *
+ * Returns: the new #vteunistr value
+ **/
+vteunistr
+_vte_unistr_append_unichar (vteunistr s, gunichar c);
+
+gunichar
+_vte_unistr_get_base (vteunistr s);
+
+/**
+ * _vte_unistr_append_to_string:
+ * @s: a #vteunistr
+ * @gs: a #GString to append @s to
+ *
+ * Appends @s to @gs. This is how one converts a #vteunistr to a
+ * traditional string.
+ **/
+void
+_vte_unistr_append_to_string (vteunistr s, GString *gs);
+
+/**
+ * _vte_unistr_strlen:
+ * @s: a #vteunistr
+ *
+ * Counts the number of character in @s.
+ *
+ * Returns: length of @s in characters.
+ **/
+int
+_vte_unistr_strlen (vteunistr s);
+
+G_END_DECLS
+
+#endif
diff --git a/vte/src/vteversion.h b/vte/src/vteversion.h
new file mode 100644
index 0000000..39d2ccd
--- /dev/null
+++ b/vte/src/vteversion.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright © 2008 Christian Persch
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License along
+ * with this library; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02110-1301 USA
+ */
+
+#if !defined (__VTE_VTE_H_INSIDE__) && !defined (VTE_COMPILATION)
+#error "Only <vte/vte.h> can be included directly."
+#endif
+
+#ifndef vte_vteversion_h_included
+#define vte_vteversion_h_included
+
+/**
+ * SECTION:vte-version
+ * @short_description: Library version checks
+ *
+ * These macros enable compile time checks of the library version.
+ *
+ * Since: 0.16.15
+ */
+
+/**
+ * VTE_MAJOR_VERSION:
+ *
+ * The major version number of the VTE library
+ * (e.g. in version 3.1.4 this is 3).
+ *
+ * Since: 0.16.15
+ */
+#define VTE_MAJOR_VERSION (0)
+
+/**
+ * VTE_MINOR_VERSION:
+ *
+ * The minor version number of the VTE library
+ * (e.g. in version 3.1.4 this is 1).
+ *
+ * Since: 0.16.15
+ */
+#define VTE_MINOR_VERSION (28)
+
+/**
+ * VTE_MICRO_VERSION:
+ *
+ * The micro version number of the VTE library
+ * (e.g. in version 3.1.4 this is 4).
+ *
+ * Since: 0.16.15
+ */
+#define VTE_MICRO_VERSION (2)
+
+/**
+ * VTE_CHECK_VERSION:
+ * @major: required major version
+ * @minor: required minor version
+ * @micro: required micro version
+ *
+ * Macro to check the library version at compile time.
+ * It returns %1 if the version of VTE is greater or
+ * equal to the required one, and %0 otherwise.
+ *
+ * Since: 0.16.15
+ */
+#define VTE_CHECK_VERSION(major,minor,micro) \
+ (VTE_MAJOR_VERSION > (major) || \
+ (VTE_MAJOR_VERSION == (major) && VTE_MINOR_VERSION > (minor)) || \
+ (VTE_MAJOR_VERSION == (major) && VTE_MINOR_VERSION == (minor) && VTE_MICRO_VERSION >= (micro)))
+
+#endif /* !vte_vteversion_h_included */
diff --git a/vte/src/vteversion.h.in b/vte/src/vteversion.h.in
new file mode 100644
index 0000000..0f801b7
--- /dev/null
+++ b/vte/src/vteversion.h.in
@@ -0,0 +1,82 @@
+/*
+ * Copyright © 2008 Christian Persch
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation; either version 2.1 of the License, or (at your
+ * option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License along
+ * with this library; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02110-1301 USA
+ */
+
+#if !defined (__VTE_VTE_H_INSIDE__) && !defined (VTE_COMPILATION)
+#error "Only <vte/vte.h> can be included directly."
+#endif
+
+#ifndef vte_vteversion_h_included
+#define vte_vteversion_h_included
+
+/**
+ * SECTION:vte-version
+ * @short_description: Library version checks
+ *
+ * These macros enable compile time checks of the library version.
+ *
+ * Since: 0.16.15
+ */
+
+/**
+ * VTE_MAJOR_VERSION:
+ *
+ * The major version number of the VTE library
+ * (e.g. in version 3.1.4 this is 3).
+ *
+ * Since: 0.16.15
+ */
+#define VTE_MAJOR_VERSION (@VTE_MAJOR_VERSION@)
+
+/**
+ * VTE_MINOR_VERSION:
+ *
+ * The minor version number of the VTE library
+ * (e.g. in version 3.1.4 this is 1).
+ *
+ * Since: 0.16.15
+ */
+#define VTE_MINOR_VERSION (@VTE_MINOR_VERSION@)
+
+/**
+ * VTE_MICRO_VERSION:
+ *
+ * The micro version number of the VTE library
+ * (e.g. in version 3.1.4 this is 4).
+ *
+ * Since: 0.16.15
+ */
+#define VTE_MICRO_VERSION (@VTE_MICRO_VERSION@)
+
+/**
+ * VTE_CHECK_VERSION:
+ * @major: required major version
+ * @minor: required minor version
+ * @micro: required micro version
+ *
+ * Macro to check the library version at compile time.
+ * It returns %1 if the version of VTE is greater or
+ * equal to the required one, and %0 otherwise.
+ *
+ * Since: 0.16.15
+ */
+#define VTE_CHECK_VERSION(major,minor,micro) \
+ (VTE_MAJOR_VERSION > (major) || \
+ (VTE_MAJOR_VERSION == (major) && VTE_MINOR_VERSION > (minor)) || \
+ (VTE_MAJOR_VERSION == (major) && VTE_MINOR_VERSION == (minor) && VTE_MICRO_VERSION >= (micro)))
+
+#endif /* !vte_vteversion_h_included */
diff --git a/vte/src/window b/vte/src/window
new file mode 100755
index 0000000..563b030
--- /dev/null
+++ b/vte/src/window
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# Window manipulation.
+#
+if [ "$#" -eq 0 ] ; then
+ echo usage: `basename $0` 'task [...]'
+ echo tasks:
+ echo " 1 deiconify"
+ echo " 2 iconify"
+ echo " 3 x y move window to (x, y) pixels"
+ echo " 4 h w resize window to (w, h) pixels"
+ echo " 5 raise"
+ echo " 6 lower"
+ echo " 7 refresh"
+ echo " 8 h w resize text area to (w, h) cells"
+ echo " 9 0 unmaximize"
+ echo " 9 1 maximize"
+ exit
+fi
+args=
+for arg in $@ ; do
+ if [ "$args" = "" ] ; then
+ args="$arg"
+ else
+ args="$args;$arg"
+ fi
+done
+printf "["${args}t
diff --git a/vte/src/xticker.c b/vte/src/xticker.c
new file mode 100644
index 0000000..e5648cb
--- /dev/null
+++ b/vte/src/xticker.c
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2003 Red Hat, Inc.
+ *
+ * This is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Library General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <config.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <glib.h>
+
+/* How's this for useless? Slowly dribble the contents of files through the
+ * title bar. Apparently can be backgrounded. */
+
+#define DEFAULT_WIDTH 80
+#define DEFAULT_DELAY 70000
+
+static void
+my_usleep(long delay)
+{
+ struct timeval tv;
+ tv.tv_sec = delay / 1000000;
+ tv.tv_usec = delay % 1000000;
+ select(0, NULL, NULL, NULL, &tv);
+}
+
+int
+main(int argc, char **argv)
+{
+ long length = DEFAULT_WIDTH, delay = DEFAULT_DELAY, fd, i, j;
+ int c;
+ struct stat st;
+ char *buffer, *outbuf;
+
+ while ((c = getopt(argc, argv, "d:w:")) != -1) {
+ switch (c) {
+ case 'd':
+ delay = atol(optarg);
+ if (delay == 0) {
+ delay = DEFAULT_DELAY;
+ }
+ break;
+ case 'w':
+ length = atol(optarg);
+ if (length == 0) {
+ length = DEFAULT_WIDTH;
+ }
+ break;
+ default:
+ g_print("Usage: xticker [-d delay] [-w width] file [...]\n");
+ return 1;
+ break;
+ }
+ }
+
+ outbuf = g_malloc(length + 5);
+
+ for (i = optind; i < argc; i++) {
+ fd = open(argv[i], O_RDONLY);
+ if (fd != -1) {
+ if (fstat(fd, &st) != -1) {
+ buffer = g_malloc(st.st_size);
+ read(fd, buffer, st.st_size);
+ for (j = 0; j < st.st_size; j++) {
+ switch (buffer[j]) {
+ case '\r':
+ case '\n':
+ case '\t':
+ case '\b':
+ case '\0':
+ buffer[j] = ' ';
+ break;
+ default:
+ break;
+ }
+ if (j > 0) {
+ if ((buffer[j] == ' ') &&
+ (buffer[j - 1] == ' ')) {
+ memmove(buffer + j - 1,
+ buffer + j,
+ st.st_size - j);
+ st.st_size--;
+ j--;
+ }
+ }
+ }
+ close(fd);
+ for (j = 0; j < st.st_size - length; j++) {
+ outbuf[0] = '\033';
+ outbuf[1] = ']';
+ outbuf[2] = '0';
+ outbuf[3] = ';';
+ memcpy(outbuf + 4,
+ buffer + j,
+ length);
+ outbuf[length + 4] = '\007';
+ write(STDERR_FILENO,
+ outbuf,
+ length + 5);
+ my_usleep(delay);
+ if ((j == 0) ||
+ (j == st.st_size - length - 1)) {
+ my_usleep(1000000);
+ }
+ }
+ g_free(buffer);
+ } else {
+ close(fd);
+ }
+ } else {
+ char *errbuf;
+ errbuf = g_strdup_printf("\033]0;Error opening %s: %s."
+ "\007",
+ argv[i],
+ strerror(errno));
+ write(STDERR_FILENO, errbuf, strlen(errbuf));
+ g_free(errbuf);
+ my_usleep(1000000);
+ }
+ }
+
+ g_free(outbuf);
+
+ return 0;
+}
diff --git a/vte/termcaps/Makefile.am b/vte/termcaps/Makefile.am
new file mode 100644
index 0000000..965071b
--- /dev/null
+++ b/vte/termcaps/Makefile.am
@@ -0,0 +1,12 @@
+EXTRA_DIST = xterm xterm.baseline
+termcapdir = $(pkgdatadir)/termcap-$(VTE_API_VERSION)
+termcap_DATA = xterm
+
+if VTE_DEFAULT_EMULATION
+termcap_DATA += $(VTE_DEFAULT_EMULATION)
+$(VTE_DEFAULT_EMULATION): xterm
+ $(AM_V_GEN) $(SED) -e s,^xterm:,$(VTE_DEFAULT_EMULATION):,g \
+ -e s,^xterm\|,$(VTE_DEFAULT_EMULATION)\|,g $< > $@
+endif
+
+-include $(top_srcdir)/git.mk
diff --git a/vte/termcaps/Makefile.in b/vte/termcaps/Makefile.in
new file mode 100644
index 0000000..1952d42
--- /dev/null
+++ b/vte/termcaps/Makefile.in
@@ -0,0 +1,499 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@VTE_DEFAULT_EMULATION_TRUE@am__append_1 = $(VTE_DEFAULT_EMULATION)
+subdir = termcaps
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo " GEN " $@;
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__installdirs = "$(DESTDIR)$(termcapdir)"
+DATA = $(termcap_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLADE_CATALOGUE_DIR = @GLADE_CATALOGUE_DIR@
+GLADE_ICON_DIR = @GLADE_ICON_DIR@
+GLADE_MODULE_DIR = @GLADE_MODULE_DIR@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GLIB_PREFIX = @GLIB_PREFIX@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_API_VERSION = @GTK_API_VERSION@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+GTK_PREFIX = @GTK_PREFIX@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_EXPORT_OPTIONS = @LIBTOOL_EXPORT_OPTIONS@
+LIBTOOL_FLAGS = @LIBTOOL_FLAGS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+LT_VERSION_INFO = @LT_VERSION_INFO@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYGTK_CFLAGS = @PYGTK_CFLAGS@
+PYGTK_CODEGEN = @PYGTK_CODEGEN@
+PYGTK_DEFSDIR = @PYGTK_DEFSDIR@
+PYGTK_LIBS = @PYGTK_LIBS@
+PYTHON = @PYTHON@
+PYTHONMODULES = @PYTHONMODULES@
+PYTHONREV = @PYTHONREV@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_INCLUDES = @PYTHON_INCLUDES@
+PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
+PYTHON_LIBS = @PYTHON_LIBS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+VTE_API_MAJOR_VERSION = @VTE_API_MAJOR_VERSION@
+VTE_API_MINOR_VERSION = @VTE_API_MINOR_VERSION@
+VTE_API_VERSION = @VTE_API_VERSION@
+VTE_API_VERSION_U = @VTE_API_VERSION_U@
+VTE_CFLAGS = @VTE_CFLAGS@
+VTE_DEFAULT_EMULATION = @VTE_DEFAULT_EMULATION@
+VTE_LDFLAGS = @VTE_LDFLAGS@
+VTE_LIBRARY_SUFFIX_U = @VTE_LIBRARY_SUFFIX_U@
+VTE_LIBS = @VTE_LIBS@
+VTE_MAJOR_VERSION = @VTE_MAJOR_VERSION@
+VTE_MICRO_VERSION = @VTE_MICRO_VERSION@
+VTE_MINOR_VERSION = @VTE_MINOR_VERSION@
+VTE_PC_VERSION = @VTE_PC_VERSION@
+VTE_PKGS = @VTE_PKGS@
+VTE_SEAL_CFLAGS = @VTE_SEAL_CFLAGS@
+WARN_CFLAGS = @WARN_CFLAGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = xterm xterm.baseline
+termcapdir = $(pkgdatadir)/termcap-$(VTE_API_VERSION)
+termcap_DATA = xterm $(am__append_1)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign termcaps/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign termcaps/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-termcapDATA: $(termcap_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(termcapdir)" || $(MKDIR_P) "$(DESTDIR)$(termcapdir)"
+ @list='$(termcap_DATA)'; test -n "$(termcapdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(termcapdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(termcapdir)" || exit $$?; \
+ done
+
+uninstall-termcapDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(termcap_DATA)'; test -n "$(termcapdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(termcapdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(termcapdir)" && rm -f $$files
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(termcapdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-termcapDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-termcapDATA
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ install-termcapDATA installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-termcapDATA
+
+@VTE_DEFAULT_EMULATION_TRUE@$(VTE_DEFAULT_EMULATION): xterm
+@VTE_DEFAULT_EMULATION_TRUE@ $(AM_V_GEN) $(SED) -e s,^xterm:,$(VTE_DEFAULT_EMULATION):,g \
+@VTE_DEFAULT_EMULATION_TRUE@ -e s,^xterm\|,$(VTE_DEFAULT_EMULATION)\|,g $< > $@
+
+-include $(top_srcdir)/git.mk
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/vte/termcaps/xterm b/vte/termcaps/xterm
new file mode 100644
index 0000000..cc48373
--- /dev/null
+++ b/vte/termcaps/xterm
@@ -0,0 +1,33 @@
+# This is a cut-down version of the termcap file from my box with some entries
+# removed (add them back in to override the terminal's behavior):
+# kI (Insert, Delete is handled programmatically)
+# kP/kN (Page Up, Page Down)
+# ku/kd/kl/kr (Up, Down, Left, Right)
+# k1/kd2/k3/k4/k5/k6/k7/k8/k9/k; (F1-F10)
+# K1/K2/K3/K4/K5 (KP Up, Down, Left, Right, Begin)
+xterm-xfree86|xterm-new|xterm terminal emulator (XFree86):\
+ :am:km:mi:ms:xn:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
+ :ei=\E[4l:ho=\E[H:im=\E[4h:is=\E[!p\E[?3;4l\E[4l\E>:\
+ :kD=\177:\
+ :kb=^H:ke=\E[?1l\E>:\
+ :ks=\E[?1h\E=:le=^H:mb=\E[5m:md=\E[1m:\
+ :me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\
+ :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[?1047l\E[?1048l:\
+ :ti=\E[?1048h\E[?1047h:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
+# xterm-redhat is identical to xterm-xfree86 with the addition of a small
+# VT220-ism regarding the backspace and delete keys; this is mandated by
+# the keyboard configuration section of the Debian Policy Manual.
+xterm-redhat|Red Hat xterm (backspace and delete changed):\
+ :kD=\E[3~:kb=\177:tc=xterm-xfree86:
+# This is the only entry which you should have to customize, since "xterm"
+# is widely used for a variety of incompatible terminal emulations including
+# color_xterm and rxvt.
+xterm|X11 terminal emulator:\
+ :tc=xterm-redhat:
diff --git a/vte/termcaps/xterm.baseline b/vte/termcaps/xterm.baseline
new file mode 100644
index 0000000..47876b1
--- /dev/null
+++ b/vte/termcaps/xterm.baseline
@@ -0,0 +1,35 @@
+# XFree86 updates/notes/new entries (including xterm-8bit, xterm-16color)
+# - Thomas E. Dickey <dickey clark net>
+# [snip]
+xterm-xfree86|xterm-new|xterm terminal emulator (XFree86):\
+ :am:km:mi:ms:xn:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
+ :ei=\E[4l:ho=\E[H:im=\E[4h:is=\E[!p\E[?3;4l\E[4l\E>:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:\
+ :k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\177:kI=\E[2~:kN=\E[6~:\
+ :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\
+ :me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\
+ :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[?1047l\E[?1048l:\
+ :ti=\E[?1048h\E[?1047h:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
+# xterm-redhat is identical to xterm-xfree86 with the addition of a small
+# VT220-ism regarding the backspace and delete keys; this is mandated by
+# the keyboard configuration section of the Debian Policy Manual.
+xterm-redhat|Red Hat xterm (backspace and delete changed):\
+ :kD=\E[3~:kb=\177:tc=xterm-xfree86:
+# This should work for the commonly used "color xterm" variations (XFree86
+# xterm, color_xterm, nxterm, rxvt):
+xterm-color|generic "ANSI" color xterm (X Window System):\
+ :Co#8:NC@:pa#64:\
+ :AB=\E[4%dm:AF=\E[3%dm:op=\E[m:tc=xterm-r6:
+# This is the only entry which you should have to customize, since "xterm"
+# is widely used for a variety of incompatible terminal emulations including
+# color_xterm and rxvt.
+xterm|X11 terminal emulator:\
+ :tc=xterm-redhat:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]