summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS0
-rw-r--r--COPYING482
-rw-r--r--ChangeLog0
-rw-r--r--HACKING4
-rw-r--r--Makefile.am1
-rw-r--r--Makefile.in419
-rw-r--r--NEWS0
-rw-r--r--README40
-rw-r--r--aclocal.m44130
-rwxr-xr-xautogen.sh11
-rw-r--r--config.h.in49
-rwxr-xr-xconfigure9124
-rw-r--r--configure.ac32
-rw-r--r--doc/ctlseqs.ms1647
-rw-r--r--doc/ctlseqs.ps8729
-rw-r--r--doc/readme.txt4
-rw-r--r--doc/vttest-20011130/BUGS19
-rw-r--r--doc/vttest-20011130/CHANGES344
-rw-r--r--doc/vttest-20011130/COPYING23
-rw-r--r--doc/vttest-20011130/MANIFEST43
-rw-r--r--doc/vttest-20011130/README67
-rw-r--r--doc/vttest-20011130/aclocal.m459
-rw-r--r--doc/vttest-20011130/charsets.c478
-rw-r--r--doc/vttest-20011130/color.c600
-rw-r--r--doc/vttest-20011130/config.cache40
-rw-r--r--doc/vttest-20011130/config.h53
-rw-r--r--doc/vttest-20011130/config.hin52
-rw-r--r--doc/vttest-20011130/config.log105
-rwxr-xr-xdoc/vttest-20011130/config.status279
-rwxr-xr-xdoc/vttest-20011130/configure1625
-rw-r--r--doc/vttest-20011130/configure.in48
-rw-r--r--doc/vttest-20011130/descrip.mms94
-rw-r--r--doc/vttest-20011130/esc.c968
-rw-r--r--doc/vttest-20011130/esc.h190
-rwxr-xr-xdoc/vttest-20011130/install.sh238
-rw-r--r--doc/vttest-20011130/keyboard.c1080
-rw-r--r--doc/vttest-20011130/main.c1382
-rw-r--r--doc/vttest-20011130/makefile171
-rw-r--r--doc/vttest-20011130/makefile.in172
-rwxr-xr-xdoc/vttest-20011130/mkdirs.sh32
-rw-r--r--doc/vttest-20011130/mouse.c441
-rw-r--r--doc/vttest-20011130/nonvt100.c437
-rw-r--r--doc/vttest-20011130/patchlev.h3
-rw-r--r--doc/vttest-20011130/printer.c198
-rw-r--r--doc/vttest-20011130/reports.c510
-rw-r--r--doc/vttest-20011130/reset.c84
-rw-r--r--doc/vttest-20011130/setup.c298
-rw-r--r--doc/vttest-20011130/sixel.c303
-rw-r--r--doc/vttest-20011130/status.c102
-rw-r--r--doc/vttest-20011130/tech.set96
-rw-r--r--doc/vttest-20011130/ttymodes.c300
-rw-r--r--doc/vttest-20011130/ttymodes.h21
-rw-r--r--doc/vttest-20011130/unix_io.c196
-rw-r--r--doc/vttest-20011130/vms_io.c405
-rw-r--r--doc/vttest-20011130/vmsbuild.com163
-rw-r--r--doc/vttest-20011130/vt220.c463
-rw-r--r--doc/vttest-20011130/vt420.c1615
-rw-r--r--doc/vttest-20011130/vt52.c235
-rwxr-xr-xdoc/vttest-20011130/vttestbin0 -> 426799 bytes
-rw-r--r--doc/vttest-20011130/vttest.147
-rw-r--r--doc/vttest-20011130/vttest.h270
-rw-r--r--doc/vttest-20011130/vttest.lsm15
-rw-r--r--doc/vttest-20011130/xterm.c401
-rw-r--r--doc/vttest.tar.gzbin0 -> 96645 bytes
-rw-r--r--src/Makefile.am62
-rw-r--r--src/Makefile.in577
-rw-r--r--src/caps.c551
-rw-r--r--src/caps.h50
-rw-r--r--src/interpret.c148
-rw-r--r--src/marshal.list4
-rw-r--r--src/pty.c209
-rw-r--r--src/pty.h35
-rw-r--r--src/termcap.c641
-rw-r--r--src/termcap.h56
-rw-r--r--src/trie.c868
-rw-r--r--src/trie.h61
-rw-r--r--src/typescript76
-rw-r--r--src/utf8echo.c65
-rw-r--r--src/vte.c3494
-rw-r--r--src/vte.h169
-rw-r--r--src/vteapp.c104
-rw-r--r--stamp-h.in1
82 files changed, 46608 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/AUTHORS
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..bf50f20
--- /dev/null
+++ b/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/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ChangeLog
diff --git a/HACKING b/HACKING
new file mode 100644
index 0000000..948be69
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,4 @@
+This tree will stay in disarray until I clean up some basic stuff. Please
+contact me directly if you intend to hack on it.
+
+Nalin (nalin@redhat.com)
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..af437a6
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = src
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..2b73aa7
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,419 @@
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+MAINT = @MAINT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+VERSION = @VERSION@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+SUBDIRS = src
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+DIST_SOURCES =
+
+RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \
+ uninstall-info-recursive all-recursive install-data-recursive \
+ install-exec-recursive installdirs-recursive install-recursive \
+ uninstall-recursive check-recursive installcheck-recursive
+DIST_COMMON = README ./stamp-h.in AUTHORS COPYING ChangeLog INSTALL \
+ Makefile.am Makefile.in NEWS aclocal.m4 compile config.guess \
+ config.h.in config.sub configure configure.ac depcomp \
+ install-sh ltmain.sh missing mkinstalldirs
+DIST_SUBDIRS = $(SUBDIRS)
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$@ $(SHELL) ./config.status
+
+$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
+ cd $(srcdir) && $(AUTOCONF)
+
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.ac
+ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+config.h: stamp-h
+ @if test ! -f $@; then \
+ rm -f stamp-h; \
+ $(MAKE) stamp-h; \
+ else :; fi
+stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h stamp-hT
+ @echo timestamp > stamp-hT 2> /dev/null
+ cd $(top_builddir) \
+ && CONFIG_FILES= CONFIG_HEADERS=config.h \
+ $(SHELL) ./config.status
+ @mv stamp-hT stamp-h
+$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/./stamp-h.in
+ @if test ! -f $@; then \
+ rm -f $(srcdir)/./stamp-h.in; \
+ $(MAKE) $(srcdir)/./stamp-h.in; \
+ else :; fi
+$(srcdir)/./stamp-h.in: $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+ @rm -f $(srcdir)/./stamp-h.in $(srcdir)/./stamp-h.inT
+ @echo timestamp > $(srcdir)/./stamp-h.inT 2> /dev/null
+ cd $(top_srcdir) && $(AUTOHEADER)
+ @mv $(srcdir)/./stamp-h.inT $(srcdir)/./stamp-h.in
+
+distclean-hdr:
+ -rm -f config.h
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+ @set fnord $(MAKEFLAGS); amf=$$2; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(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; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique $(LISP)
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(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; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
+ || etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP)
+
+GTAGS:
+ here=`CDPATH=: && cd $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = .
+# Avoid unsightly `./'.
+distdir = $(PACKAGE)-$(VERSION)
+
+GZIP_ENV = --best
+
+distdir: $(DISTFILES)
+ -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+ mkdir $(distdir)
+ @for file in $(DISTFILES); do \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ $(mkinstalldirs) "$(distdir)/$$dir"; \
+ fi; \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+ for subdir in $(SUBDIRS); do \
+ if test "$$subdir" = .; then :; else \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ (cd $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" \
+ distdir=../$(distdir)/$$subdir \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r $(distdir)
+dist: distdir
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ mkdir $(distdir)/=build
+ mkdir $(distdir)/=inst
+ chmod a-w $(distdir)
+ dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \
+ && cd $(distdir)/=build \
+ && ../configure --srcdir=.. --prefix=$$dc_install_base \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
+ || (echo "Error: files left after uninstall" 1>&2; \
+ exit 1) ) \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && $(MAKE) $(AM_MAKEFLAGS) distclean \
+ && rm -f $(distdir).tar.gz \
+ && (test `find . -type f -print | wc -l` -eq 0 \
+ || (echo "Error: files left after distclean" 1>&2; \
+ exit 1) )
+ -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir)
+ @echo "$(distdir).tar.gz is ready for distribution" | \
+ sed 'h;s/./=/g;p;x;p;x'
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+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-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+dist-all: distdir
+ $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir)
+distclean: distclean-recursive
+ -rm -f config.status config.cache config.log
+distclean-am: clean-am distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \
+ clean-generic clean-libtool clean-recursive dist dist-all \
+ distcheck distclean distclean-generic distclean-hdr \
+ distclean-libtool distclean-recursive distclean-tags distdir \
+ dvi dvi-am dvi-recursive info info-am info-recursive install \
+ install-am install-data install-data-am install-data-recursive \
+ install-exec install-exec-am install-exec-recursive \
+ install-info install-info-am install-info-recursive install-man \
+ install-recursive install-strip installcheck installcheck-am \
+ installdirs installdirs-am installdirs-recursive \
+ maintainer-clean maintainer-clean-generic \
+ maintainer-clean-recursive mostlyclean mostlyclean-generic \
+ mostlyclean-libtool mostlyclean-recursive tags tags-recursive \
+ uninstall uninstall-am uninstall-info-am \
+ uninstall-info-recursive uninstall-recursive
+
+# 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/NEWS b/NEWS
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/NEWS
diff --git a/README b/README
new file mode 100644
index 0000000..83bc7d6
--- /dev/null
+++ b/README
@@ -0,0 +1,40 @@
+* What is VTE?
+- You could say that VTE is something of a research project of mine, based on
+ the simple question: "if programs can use a termcap file (through either
+ libtermcap or curses or ncurses) to determine how to drive a terminal, why
+ can't a terminal emulator use a termcap file to determine how to behave?"
+
+* What does VTE include?
+- VTE includes a library (libvte) which implements such a terminal emulator
+ widget for GTK+ 2.0, and a sample application (vte) which wraps that widget
+ in a GTK window.
+
+* How does it work?
+- The VTE library inserts terminal capability strings into a trie, and then
+ uses it to determine if data received from a pseudo-terminal is a control
+ sequence or just random data. The sample program "interpret" illustrates
+ what the widget actually sees after it filters incoming data.
+
+* What's missing?
+- Entries in the termcap file also don't contain the sequences which a terminal
+ is supposed to send to the application when a specific sequence is received
+ (for example, the query-cursor-position control sequence). I haven't figured
+ out how to do those yet.
+- Most commands specific to Xterm or dtterm are recognized, but very few of
+ their behaviors are implemented.
+- Certain termcap-specific commands aren't implemented yet. There are enough
+ to run ls, vim, less, and probably emacs and mutt, but more need to be
+ implemented.
+- I'm not sure the widget implementation itself is correct. There are many
+ changes in going from GTK+ 1.2 to 2.0, and examples of the proper way to do
+ things is currently scarce, so some of it's guesswork.
+- An actual property interface needs to be retrofitted over the various options
+ which are currently hard-coded at startup-time.
+- The widget uses wide characters internally, converting from the narrow streams
+ it interfaces with for internal storage using iconv, but it doesn't handle
+ changes to the terminal encoding in the middle of a block of characters until
+ after it's processed the entire block, meaning that sometimes encoding isn't
+ handled properly.
+- Selection and copy/paste support isn't started yet.
+- Input method support isn't started yet.
+- Mouse tracking isn't started yet.
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..48bd9d5
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,4130 @@
+# aclocal.m4 generated automatically by aclocal 1.5
+
+# Copyright 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This file 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.
+
+# Do all the work for Automake. This macro actually does too much --
+# some checks are only needed if your package does certain things.
+# But this isn't really a big deal.
+
+# serial 5
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# We require 2.13 because we rely on SHELL being computed by configure.
+AC_PREREQ([2.13])
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED.
+# The purpose of this macro is to provide the user with a means to
+# check macros which are provided without letting her know how the
+# information is coded.
+# If this macro is not defined by Autoconf, define it here.
+ifdef([AC_PROVIDE_IFELSE],
+ [],
+ [define([AC_PROVIDE_IFELSE],
+ [ifdef([AC_PROVIDE_$1],
+ [$2], [$3])])])
+
+
+# AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE])
+# ----------------------------------------------
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first])
+fi
+
+# Define the identity of the package.
+PACKAGE=$1
+AC_SUBST(PACKAGE)dnl
+VERSION=$2
+AC_SUBST(VERSION)dnl
+ifelse([$3],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
+
+# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
+# the ones we care about.
+ifdef([m4_pattern_allow],
+ [m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl
+
+# Autoconf 2.50 always computes EXEEXT. However we need to be
+# compatible with 2.13, for now. So we always define EXEEXT, but we
+# don't compute it.
+AC_SUBST(EXEEXT)
+# Similar for OBJEXT -- only we only use OBJEXT if the user actually
+# requests that it be used. This is a bit dumb.
+: ${OBJEXT=o}
+AC_SUBST(OBJEXT)
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal)
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake)
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG(AMTAR, tar)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_][CC],
+ defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_][CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_][CXX],
+ defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+# serial 3
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+
+# serial 2
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ am_backtick='`'
+ AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
+fi
+])
+
+# AM_AUX_DIR_EXPAND
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND], [
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
+])
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# serial 4 -*- Autoconf -*-
+
+
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+
+# _AM_DEPENDENCIES(NAME)
+# ---------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX" or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc']
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ echo '#include "conftest.h"' > conftest.c
+ echo 'int i;' > conftest.h
+ echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=conftest.c object=conftest.o \
+ depfile=conftest.Po tmpdepfile=conftest.TPo \
+ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+ grep conftest.h conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+$1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type"
+AC_SUBST([$1DEPMODE])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+ DEPDIR=.deps
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+AC_SUBST(DEPDIR)
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking Speeds up one-time builds
+ --enable-dependency-tracking Do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+pushdef([subst], defn([AC_SUBST]))
+subst(AMDEPBACKSLASH)
+popdef([subst])
+])
+
+# Generate code to set up dependency tracking.
+# This macro should only be invoked once -- use via AC_REQUIRE.
+# Usage:
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[
+AC_OUTPUT_COMMANDS([
+test x"$AMDEP_TRUE" != x"" ||
+for mf in $CONFIG_FILES; do
+ case "$mf" in
+ Makefile) dirpart=.;;
+ */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+ *) continue;;
+ esac
+ grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+ # Extract the definition of DEP_FILES from the Makefile without
+ # running `make'.
+ DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n -e '/^U = / s///p' < "$mf"`
+ test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+ # We invoke sed twice because it is the simplest approach to
+ # changing $(DEPDIR) to its actual value in the expansion.
+ for file in `sed -n -e '
+ /^DEP_FILES = .*\\\\$/ {
+ s/^DEP_FILES = //
+ :loop
+ s/\\\\$//
+ p
+ n
+ /\\\\$/ b loop
+ p
+ }
+ /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+ $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+], [AMDEP_TRUE="$AMDEP_TRUE"
+ac_aux_dir="$ac_aux_dir"])])
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+ @echo done
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include='#'
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote='"'
+ _am_result=BSD
+ fi
+fi
+AC_SUBST(am__include)
+AC_SUBST(am__quote)
+AC_MSG_RESULT($_am_result)
+rm -f confinc confmf
+])
+
+# serial 3
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+#
+# FIXME: Once using 2.50, use this:
+# m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_DEFUN([AM_CONDITIONAL],
+[ifelse([$1], [TRUE],
+ [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+ifelse([$1], [FALSE],
+ [errprint(__file__:__line__: [$0: invalid condition: $1
+])dnl
+m4exit(1)])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi])
+
+# libtool.m4 - Configure libtool for the host system. -*-Shell-script-*-
+
+# serial 46 AC_PROG_LIBTOOL
+
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])
+
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.13)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+_LT_AC_PROG_ECHO_BACKSLASH
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ AC_PATH_MAGIC
+ fi
+ ;;
+esac
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE(libtool-lock,
+ [ --disable-libtool-lock avoid locking (might break parallel builds)])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_LANG_SAVE
+ AC_LANG_C
+ AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+ AC_LANG_RESTORE])
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+
+ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+
+ # recent cygwin and mingw systems supply a stub DllMain which the user
+ # can override, but on older systems we have to supply one
+ AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain,
+ [AC_TRY_LINK([],
+ [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
+ DllMain (0, 0, 0);],
+ [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])])
+
+ case $host/$CC in
+ *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*)
+ # old mingw systems require "-dll" to link a DLL, while more recent ones
+ # require "-mdll"
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -mdll"
+ AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch,
+ [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])])
+ CFLAGS="$SAVE_CFLAGS" ;;
+ *-*-cygwin* | *-*-pw32*)
+ # cygwin systems need to pass --dll to the linker, and not link
+ # crt.o which will require a WinMain@16 definition.
+ lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
+ esac
+ ;;
+ ])
+esac
+
+_LT_AC_LTCONFIG_HACK
+
+])
+
+# AC_LIBTOOL_HEADER_ASSERT
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT],
+[AC_CACHE_CHECK([whether $CC supports assert without backlinking],
+ [lt_cv_func_assert_works],
+ [case $host in
+ *-*-solaris*)
+ if test "$GCC" = yes && test "$with_gnu_ld" != yes; then
+ case `$CC --version 2>/dev/null` in
+ [[12]].*) lt_cv_func_assert_works=no ;;
+ *) lt_cv_func_assert_works=yes ;;
+ esac
+ fi
+ ;;
+ esac])
+
+if test "x$lt_cv_func_assert_works" = xyes; then
+ AC_CHECK_HEADERS(assert.h)
+fi
+])# AC_LIBTOOL_HEADER_ASSERT
+
+# _LT_AC_CHECK_DLFCN
+# --------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)
+])# _LT_AC_CHECK_DLFCN
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[[BCDT]]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[[ABCDGISTW]]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+irix*)
+ symcode='[[BCDEGRST]]'
+ ;;
+solaris* | sysv5*)
+ symcode='[[BDT]]'
+ ;;
+sysv4)
+ symcode='[[DFNSTU]]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $host_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+ symcode='[[ABCDGISTW]]'
+fi
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Write the raw and C identifiers.
+lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if egrep ' nm_test_var$' "$nlist" >/dev/null; then
+ if egrep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$no_builtin_flag"
+ if AC_TRY_EVAL(ac_link) && test -s conftest; then
+ pipe_works=yes
+ fi
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&AC_FD_CC
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&AC_FD_CC
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC
+ fi
+ else
+ echo "$progname: failed program was:" >&AC_FD_CC
+ cat conftest.$ac_ext >&5
+ fi
+ rm -f conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+])
+global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ global_symbol_to_cdecl=
+ global_symbol_to_c_name_address=
+else
+ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
+ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address"
+fi
+if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address";
+then
+ AC_MSG_RESULT(failed)
+else
+ AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
+# ---------------------------------
+AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR],
+[# Find the correct PATH separator. Usually this is `:', but
+# DJGPP uses `;' like DOS.
+if test "X${PATH_SEPARATOR+set}" != Xset; then
+ UNAME=${UNAME-`uname 2>/dev/null`}
+ case X$UNAME in
+ *-DOS) lt_cv_sys_path_separator=';' ;;
+ *) lt_cv_sys_path_separator=':' ;;
+ esac
+ PATH_SEPARATOR=$lt_cv_sys_path_separator
+fi
+])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+ [AC_DIVERT_PUSH(NOTICE)])
+_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X[$]1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL [$]0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL [$]0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "[$]0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+AC_DIVERT_POP
+])# _LT_AC_PROG_ECHO_BACKSLASH
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[if test "$cross_compiling" = yes; then :
+ [$4]
+else
+ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}]
+EOF
+ if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) $1 ;;
+ x$lt_dlneed_uscore) $2 ;;
+ x$lt_unknown|x*) $3 ;;
+ esac
+ else :
+ # compilation failed
+ $3
+ fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+# AC_LIBTOOL_DLOPEN_SELF
+# -------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen="shl_load"],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen="dlopen"],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_AC_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_AC_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+AC_DEFUN([_LT_AC_LTCONFIG_HACK],
+[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+sed_quote_subst='s/\([[\\"\\`$\\\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([[\\"\\`\\\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+need_locks="$enable_libtool_lock"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+if test x"$host" != x"$build"; then
+ ac_tool_prefix=${host_alias}-
+else
+ ac_tool_prefix=
+fi
+
+# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+case $host_os in
+linux-gnu*) ;;
+linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+esac
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+ ;;
+ *)
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Allow CC to be a program name with arguments.
+set dummy $CC
+compiler="[$]2"
+
+AC_MSG_CHECKING([for objdir])
+rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+AC_MSG_RESULT($objdir)
+
+
+AC_ARG_WITH(pic,
+[ --with-pic try to use only PIC/non-PIC objects [default=use both]],
+pic_mode="$withval", pic_mode=default)
+test -z "$pic_mode" && pic_mode=default
+
+# We assume here that the value for lt_cv_prog_cc_pic will not be cached
+# in isolation, and that seeing it set (from the cache) indicates that
+# the associated values are set (in the cache) correctly too.
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+AC_CACHE_VAL(lt_cv_prog_cc_pic,
+[ lt_cv_prog_cc_pic=
+ lt_cv_prog_cc_shlib=
+ lt_cv_prog_cc_wl=
+ lt_cv_prog_cc_static=
+ lt_cv_prog_cc_no_builtin=
+ lt_cv_prog_cc_can_build_shared=$can_build_shared
+
+ if test "$GCC" = yes; then
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-static'
+
+ case $host_os in
+ aix*)
+ # Below there is a dirty hack to force normal static linking with -ldl
+ # The problem is because libdl dynamically linked with both libc and
+ # libC (AIX C++ library), which obviously doesn't included in libraries
+ # list by gcc. This cause undefined symbols with -static flags.
+ # This hack allows C programs to be linked with "-static -ldl", but
+ # not sure about C++ programs.
+ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_cv_prog_cc_pic='-fno-common'
+ ;;
+ cygwin* | mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_cv_prog_cc_pic='-DDLL_EXPORT'
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_cv_prog_cc_pic=-Kconform_pic
+ fi
+ ;;
+ *)
+ lt_cv_prog_cc_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for PIC flags for the system compiler.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ lt_cv_prog_cc_wl='-Wl,'
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_cv_prog_cc_static='-Bstatic'
+ else
+ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ # Is there a better lt_cv_prog_cc_static that works with the bundled CC?
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive"
+ lt_cv_prog_cc_pic='+Z'
+ ;;
+
+ irix5* | irix6*)
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-non_shared'
+ # PIC (with -KPIC) is the default.
+ ;;
+
+ cygwin* | mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_cv_prog_cc_pic='-DDLL_EXPORT'
+ ;;
+
+ newsos6)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ # All OSF/1 code is PIC.
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_cv_prog_cc_pic='-Kpic'
+ lt_cv_prog_cc_static='-dn'
+ lt_cv_prog_cc_shlib='-belf'
+ ;;
+
+ solaris*)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Wl,'
+ ;;
+
+ sunos4*)
+ lt_cv_prog_cc_pic='-PIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Qoption ld '
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ if test "x$host_vendor" = xsni; then
+ lt_cv_prog_cc_wl='-LD'
+ else
+ lt_cv_prog_cc_wl='-Wl,'
+ fi
+ ;;
+
+ uts4*)
+ lt_cv_prog_cc_pic='-pic'
+ lt_cv_prog_cc_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_cv_prog_cc_pic='-Kconform_pic'
+ lt_cv_prog_cc_static='-Bstatic'
+ fi
+ ;;
+
+ *)
+ lt_cv_prog_cc_can_build_shared=no
+ ;;
+ esac
+ fi
+])
+if test -z "$lt_cv_prog_cc_pic"; then
+ AC_MSG_RESULT([none])
+else
+ AC_MSG_RESULT([$lt_cv_prog_cc_pic])
+
+ # Check to make sure the pic_flag actually works.
+ AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works])
+ AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
+ AC_TRY_COMPILE([], [], [dnl
+ case $host_os in
+ hpux9* | hpux10* | hpux11*)
+ # On HP-UX, both CC and GCC only warn that PIC is supported... then
+ # they create non-PIC objects. So, if there were any warnings, we
+ # assume that PIC is not supported.
+ if test -s conftest.err; then
+ lt_cv_prog_cc_pic_works=no
+ else
+ lt_cv_prog_cc_pic_works=yes
+ fi
+ ;;
+ *)
+ lt_cv_prog_cc_pic_works=yes
+ ;;
+ esac
+ ], [dnl
+ lt_cv_prog_cc_pic_works=no
+ ])
+ CFLAGS="$save_CFLAGS"
+ ])
+
+ if test "X$lt_cv_prog_cc_pic_works" = Xno; then
+ lt_cv_prog_cc_pic=
+ lt_cv_prog_cc_can_build_shared=no
+ else
+ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
+ fi
+
+ AC_MSG_RESULT([$lt_cv_prog_cc_pic_works])
+fi
+
+# Check for any special shared library compilation flags.
+if test -n "$lt_cv_prog_cc_shlib"; then
+ AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries])
+ if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then :
+ else
+ AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure])
+ lt_cv_prog_cc_can_build_shared=no
+ fi
+fi
+
+AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works])
+AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl
+ lt_cv_prog_cc_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
+ AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes])
+ LDFLAGS="$save_LDFLAGS"
+])
+
+# Belt *and* braces to stop my trousers falling down:
+test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
+AC_MSG_RESULT([$lt_cv_prog_cc_static_works])
+
+pic_flag="$lt_cv_prog_cc_pic"
+special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
+wl="$lt_cv_prog_cc_wl"
+link_static_flag="$lt_cv_prog_cc_static"
+no_builtin_flag="$lt_cv_prog_cc_no_builtin"
+can_build_shared="$lt_cv_prog_cc_can_build_shared"
+
+
+# Check to see if options -o and -c are simultaneously supported by compiler
+AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext])
+AC_CACHE_VAL([lt_cv_compiler_c_o], [
+$rm -r conftest 2>/dev/null
+mkdir conftest
+cd conftest
+echo "int some_variable = 0;" > conftest.$ac_ext
+mkdir out
+# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+# that will create temporary files in the current directory regardless of
+# the output directory. Thus, making CWD read-only will cause this test
+# to fail, enabling locking or at least warning the user not to do parallel
+# builds.
+chmod -w .
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
+compiler_c_o=no
+if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s out/conftest.err; then
+ lt_cv_compiler_c_o=no
+ else
+ lt_cv_compiler_c_o=yes
+ fi
+else
+ # Append any errors to the config.log.
+ cat out/conftest.err 1>&AC_FD_CC
+ lt_cv_compiler_c_o=no
+fi
+CFLAGS="$save_CFLAGS"
+chmod u+w .
+$rm conftest* out/*
+rmdir out
+cd ..
+rmdir conftest
+$rm -r conftest 2>/dev/null
+])
+compiler_c_o=$lt_cv_compiler_c_o
+AC_MSG_RESULT([$compiler_c_o])
+
+if test x"$compiler_c_o" = x"yes"; then
+ # Check to see if we can write to a .lo
+ AC_MSG_CHECKING([if $compiler supports -c -o file.lo])
+ AC_CACHE_VAL([lt_cv_compiler_o_lo], [
+ lt_cv_compiler_o_lo=no
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -c -o conftest.lo"
+ save_objext="$ac_objext"
+ ac_objext=lo
+ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ lt_cv_compiler_o_lo=no
+ else
+ lt_cv_compiler_o_lo=yes
+ fi
+ ])
+ ac_objext="$save_objext"
+ CFLAGS="$save_CFLAGS"
+ ])
+ compiler_o_lo=$lt_cv_compiler_o_lo
+ AC_MSG_RESULT([$compiler_o_lo])
+else
+ compiler_o_lo=no
+fi
+
+# Check to see if we can do hard links to lock some files if needed
+hard_links="nottested"
+if test "$compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ AC_MSG_CHECKING([if we can lock with hard links])
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ AC_MSG_RESULT([$hard_links])
+ if test "$hard_links" = no; then
+ AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe])
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+if test "$GCC" = yes; then
+ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+ AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions])
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
+ compiler_rtti_exceptions=no
+ AC_TRY_COMPILE([], [int some_variable = 0;], [dnl
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ compiler_rtti_exceptions=no
+ else
+ compiler_rtti_exceptions=yes
+ fi
+ ])
+ CFLAGS="$save_CFLAGS"
+ AC_MSG_RESULT([$compiler_rtti_exceptions])
+
+ if test "$compiler_rtti_exceptions" = "yes"; then
+ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+ else
+ no_builtin_flag=' -fno-builtin'
+ fi
+fi
+
+# See if the linker supports building shared libraries.
+AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries])
+
+allow_undefined_flag=
+no_undefined_flag=
+need_lib_prefix=unknown
+need_version=unknown
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+archive_cmds=
+archive_expsym_cmds=
+old_archive_from_new_cmds=
+old_archive_from_expsyms_cmds=
+export_dynamic_flag_spec=
+whole_archive_flag_spec=
+thread_safe_flag_spec=
+hardcode_into_libs=no
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+hardcode_shlibpath_var=unsupported
+runpath_var=
+link_all_deplibs=unknown
+always_export_symbols=no
+export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+# include_expsyms should be a list of space-separated symbols to be *always*
+# included in the symbol list
+include_expsyms=
+# exclude_expsyms can be an egrep regular expression of symbols to exclude
+# it will be wrapped by ` (' and `)$', so one must not match beginning or
+# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+# as well as any symbol that contains `d'.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+# platforms (ab)use it in PIC code, but their linkers get confused if
+# the symbol is explicitly referenced. Since portable code cannot
+# rely on this symbol name, it's probably fine to never include it in
+# preloaded symbol tables.
+extract_expsyms_cmds=
+
+case $host_os in
+cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX, the GNU linker is very broken
+ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available.
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can use
+ # them.
+ ld_shlibs=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+
+ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
+ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~
+ test -f $output_objdir/impgen.exe || (cd $output_objdir && \
+ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
+ else $CC -o impgen impgen.c ; fi)~
+ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
+
+ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
+
+ # cygwin and mingw dlls have different entry points and sets of symbols
+ # to exclude.
+ # FIXME: what about values for MSVC?
+ dll_entry=__cygwin_dll_entry@12
+ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
+ case $host_os in
+ mingw*)
+ # mingw values
+ dll_entry=_DllMainCRTStartup@12
+ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
+ ;;
+ esac
+
+ # mingw and cygwin differ, and it's simplest to just exclude the union
+ # of the two symbol sets.
+ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
+
+ # recent cygwin and mingw systems supply a stub DllMain which the user
+ # can override, but on older systems we have to supply one (in ltdll.c)
+ if test "x$lt_cv_need_dllmain" = "xyes"; then
+ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
+ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~
+ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
+ else
+ ltdll_obj=
+ ltdll_cmds=
+ fi
+
+ # Extract the symbol export list from an `--export-all' def file,
+ # then regenerate the def file from the symbol export list, so that
+ # the compiled dll only exports the symbol export list.
+ # Be careful not to strip the DATA tag left be newer dlltools.
+ export_symbols_cmds="$ltdll_cmds"'
+ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
+ sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
+
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is.
+ # If DATA tags from a recent dlltool are present, honour them!
+ archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname-def;
+ else
+ echo EXPORTS > $output_objdir/$soname-def;
+ _lt_hint=1;
+ cat $export_symbols | while read symbol; do
+ set dummy \$symbol;
+ case \[$]# in
+ 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
+ *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;;
+ esac;
+ _lt_hint=`expr 1 + \$_lt_hint`;
+ done;
+ fi~
+ '"$ltdll_cmds"'
+ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~
+ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~
+ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = yes; then
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # dlltool doesn't understand --whole-archive et. al.
+ whole_archive_flag_spec=
+ ;;
+ *)
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ ;;
+ esac
+ fi
+else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ hardcode_direct=yes
+ archive_cmds=''
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+
+ shared_flag='-shared'
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ shared_flag='${wl}-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall can do strange things, so it is better to
+ # generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='${wl}-berok'
+ # This is a bit strange, but is similar to how AIX traditionally builds
+ # it's shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ allow_undefined_flag='-undefined suppress'
+ ;;
+ *) # Darwin 1.3 on
+ allow_undefined_flag='-flat_namespace -undefined suppress'
+ ;;
+ esac
+ # FIXME: Relying on posixy $() will cause problems for
+ # cross-compilation, but unfortunately the echo tests do not
+ # yet detect zsh echo's removal of \ escapes.
+ archive_cmds='$nonopt $(test "x$module" = xyes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linker_flags -install_name $rpath/$soname $verstring'
+ # We need to add '_' to the symbols in $export_symbols first
+ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ whole_archive_flag_spec='-all_load $convenience'
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ case $host_os in
+ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
+ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
+ esac
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_minus_L=yes # Not in the search PATH, but as the default
+ # location of the library.
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ irix5* | irix6*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ openbsd*)
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case "$host_os" in
+ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ #Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ ;;
+
+ solaris*)
+ # gcc --version < 3.0 without binutils cannot create self contained
+ # shared libraries reliably, requiring libgcc.a to resolve some of
+ # the object symbols generated in some cases. Libraries that use
+ # assert need libgcc.a to resolve __eprintf, for example. Linking
+ # a copy of libgcc.a into every shared library to guarantee resolving
+ # such symbols causes other problems: According to Tim Van Holder
+ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate
+ # (to the application) exception stack for one thing.
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ case `$CC --version 2>/dev/null` in
+ [[12]].*)
+ cat <<EOF 1>&2
+
+*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
+*** create self contained shared libraries on Solaris systems, without
+*** introducing a dependency on libgcc.a. Therefore, libtool is disabling
+*** -no-undefined support, which will at least allow you to build shared
+*** libraries. However, you may find that when you link such libraries
+*** into an application without using GCC, you have to manually add
+*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to
+*** upgrade to a newer version of GCC. Another option is to rebuild your
+*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.
+
+EOF
+ no_undefined_flag=
+ ;;
+ esac
+ fi
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ if test "x$host_vendor" = xsno; then
+ archive_cmds='$LD -G -Bsymbolic -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ else
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv5*)
+ no_undefined_flag=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec=
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5uw7* | unixware7*)
+ no_undefined_flag='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+AC_MSG_RESULT([$ld_shlibs])
+test "$ld_shlibs" = no && can_build_shared=no
+
+# Check hardcoding attributes.
+AC_MSG_CHECKING([how to hardcode library paths into programs])
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+ test -n "$runpath_var"; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$hardcode_shlibpath_var" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+AC_MSG_RESULT([$hardcode_action])
+
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+fi
+
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+# PORTME Fill in your ld.so characteristics
+AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}.so$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[[01]] | aix4.[[01]].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can
+ # not hardcode correct soname into executable. Probably we can
+ # add versioning support to collect2, so additional links can
+ # be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}.so$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}.so'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi4*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ export_dynamic_flag_spec=-rdynamic
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ need_version=no
+ need_lib_prefix=no
+ case $GCC,$host_os in
+ yes,cygwin*)
+ library_names_spec='$libname.dll.a'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll'
+ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog .libs/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ ;;
+ yes,mingw*)
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
+ ;;
+ yes,pw32*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
+ ;;
+ *)
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ # FIXME: Relying on posixy $() will cause problems for
+ # cross-compilation, but unfortunately the echo tests do not
+ # yet detect zsh echo's removal of \ escapes.
+ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)'
+ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd*)
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ *)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ dynamic_linker="$host_os dld.sl"
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
+ soname_spec='${libname}${release}.sl$major'
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6*)
+ version_type=irix
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
+ case $host_os in
+ irix5*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case "$host_os" in
+ openbsd2.[[89]] | openbsd2.[[89]].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+os2*)
+ libname_spec='$name'
+ need_lib_prefix=no
+ library_names_spec='$libname.dll $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_version=no
+ soname_spec='${libname}${release}.so'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
+ soname_spec='$libname.so.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+# Report the final consequences.
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix4*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+AC_LIBTOOL_DLOPEN_SELF
+
+if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+ AC_CACHE_VAL([lt_cv_archive_cmds_need_lc],
+ [$rm conftest*
+ echo 'static int dummy;' > conftest.$ac_ext
+
+ if AC_TRY_EVAL(ac_compile); then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_cv_prog_cc_wl
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi])
+ AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc])
+ ;;
+ esac
+fi
+need_lc=${lt_cv_archive_cmds_need_lc-yes}
+
+# The second clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ :
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ test -f Makefile && make "$ltmain"
+fi
+
+if test -f "$ltmain"; then
+ trap "$rm \"${ofile}T\"; exit 1" 1 2 15
+ $rm -f "${ofile}T"
+
+ echo creating $ofile
+
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS \
+ AR AR_FLAGS CC LD LN_S NM SHELL \
+ reload_flag reload_cmds wl \
+ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+ thread_safe_flag_spec whole_archive_flag_spec libname_spec \
+ library_names_spec soname_spec \
+ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
+ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
+ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
+ old_striplib striplib file_magic_cmd export_symbols_cmds \
+ deplibs_check_method allow_undefined_flag no_undefined_flag \
+ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
+ global_symbol_to_c_name_address \
+ hardcode_libdir_flag_spec hardcode_libdir_separator \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+
+ case $var in
+ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
+ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ cat <<__EOF__ > "${ofile}T"
+#! $SHELL
+
+# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996-2000 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# 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 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 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.
+#
+# 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.
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="sed -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$need_lc
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# The default C compiler.
+CC=$lt_CC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_pic_flag
+pic_mode=$pic_mode
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_compiler_c_o
+
+# Can we write directly to a .lo ?
+compiler_o_lo=$lt_compiler_o_lo
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_link_static_flag
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "${ofile}T"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2*)
+ cat <<'EOF' >> "${ofile}T"
+ # This is a source program that is used to create dlls on Windows
+ # Don't remove nor modify the starting and closing comments
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# # ifdef __CYGWIN32__
+# # define __CYGWIN__ __CYGWIN32__
+# # endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+# __hDllInstance_base = hInst;
+# return TRUE;
+# }
+# /* ltdll.c ends here */
+ # This is a source program that is used to create import libraries
+ # on Windows for dlls which lack them. Don't remove nor modify the
+ # starting and closing comments
+# /* impgen.c starts here */
+# /* Copyright (C) 1999-2000 Free Software Foundation, Inc.
+#
+# This file is part of GNU libtool.
+#
+# 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 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 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.
+# */
+#
+# #include <stdio.h> /* for printf() */
+# #include <unistd.h> /* for open(), lseek(), read() */
+# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
+# #include <string.h> /* for strdup() */
+#
+# /* O_BINARY isn't required (or even defined sometimes) under Unix */
+# #ifndef O_BINARY
+# #define O_BINARY 0
+# #endif
+#
+# static unsigned int
+# pe_get16 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[2];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 2);
+# return b[0] + (b[1]<<8);
+# }
+#
+# static unsigned int
+# pe_get32 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[4];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 4);
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# static unsigned int
+# pe_as32 (ptr)
+# void *ptr;
+# {
+# unsigned char *b = ptr;
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# int
+# main (argc, argv)
+# int argc;
+# char *argv[];
+# {
+# int dll;
+# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
+# unsigned long export_rva, export_size, nsections, secptr, expptr;
+# unsigned long name_rvas, nexp;
+# unsigned char *expdata, *erva;
+# char *filename, *dll_name;
+#
+# filename = argv[1];
+#
+# dll = open(filename, O_RDONLY|O_BINARY);
+# if (dll < 1)
+# return 1;
+#
+# dll_name = filename;
+#
+# for (i=0; filename[i]; i++)
+# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
+# dll_name = filename + i +1;
+#
+# pe_header_offset = pe_get32 (dll, 0x3c);
+# opthdr_ofs = pe_header_offset + 4 + 20;
+# num_entries = pe_get32 (dll, opthdr_ofs + 92);
+#
+# if (num_entries < 1) /* no exports */
+# return 1;
+#
+# export_rva = pe_get32 (dll, opthdr_ofs + 96);
+# export_size = pe_get32 (dll, opthdr_ofs + 100);
+# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
+# secptr = (pe_header_offset + 4 + 20 +
+# pe_get16 (dll, pe_header_offset + 4 + 16));
+#
+# expptr = 0;
+# for (i = 0; i < nsections; i++)
+# {
+# char sname[8];
+# unsigned long secptr1 = secptr + 40 * i;
+# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
+# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
+# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
+# lseek(dll, secptr1, SEEK_SET);
+# read(dll, sname, 8);
+# if (vaddr <= export_rva && vaddr+vsize > export_rva)
+# {
+# expptr = fptr + (export_rva - vaddr);
+# if (export_rva + export_size > vaddr + vsize)
+# export_size = vsize - (export_rva - vaddr);
+# break;
+# }
+# }
+#
+# expdata = (unsigned char*)malloc(export_size);
+# lseek (dll, expptr, SEEK_SET);
+# read (dll, expdata, export_size);
+# erva = expdata - export_rva;
+#
+# nexp = pe_as32 (expdata+24);
+# name_rvas = pe_as32 (expdata+32);
+#
+# printf ("EXPORTS\n");
+# for (i = 0; i<nexp; i++)
+# {
+# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
+# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
+# }
+#
+# return 0;
+# }
+# /* impgen.c ends here */
+
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1)
+
+ mv -f "${ofile}T" "$ofile" || \
+ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T")
+ chmod +x "$ofile"
+fi
+
+])# _LT_AC_LTCONFIG_HACK
+
+# AC_LIBTOOL_DLOPEN - enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
+
+# AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
+
+# AC_ENABLE_SHARED - implement the --enable-shared flag
+# Usage: AC_ENABLE_SHARED[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(shared,
+changequote(<<, >>)dnl
+<< --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case $enableval in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
+])
+
+# AC_DISABLE_SHARED - set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)])
+
+# AC_ENABLE_STATIC - implement the --enable-static flag
+# Usage: AC_ENABLE_STATIC[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(static,
+changequote(<<, >>)dnl
+<< --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case $enableval in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
+])
+
+# AC_DISABLE_STATIC - set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)])
+
+
+# AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
+# Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
+# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
+# `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE(fast-install,
+changequote(<<, >>)dnl
+<< --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
+changequote([, ])dnl
+[p=${PACKAGE-default}
+case $enableval in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac],
+enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
+])
+
+# AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)])
+
+# AC_LIBTOOL_PICMODE - implement the --with-pic flag
+# Usage: AC_LIBTOOL_PICMODE[(MODE)]
+# Where MODE is either `yes' or `no'. If omitted, it defaults to
+# `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)])
+
+
+# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+ /*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
+ ;;
+ *)
+ ac_save_MAGIC_CMD="$MAGIC_CMD"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="ifelse([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$1; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ egrep "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ MAGIC_CMD="$ac_save_MAGIC_CMD"
+ ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+])
+
+
+# AC_PATH_MAGIC - find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
+AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH)
+ else
+ MAGIC_CMD=:
+ fi
+fi
+])
+
+
+# AC_PROG_LD - find the path to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | [[A-Za-z]]:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])
+
+# AC_PROG_LD_GNU -
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ lt_cv_prog_gnu_ld=yes
+else
+ lt_cv_prog_gnu_ld=no
+fi])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])
+
+# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag,
+[lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+test -n "$reload_flag" && reload_flag=" $reload_flag"
+])
+
+# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependant libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given egrep regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi4*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin* | mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ case "$host_os" in
+ rhapsody* | darwin1.[[012]])
+ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1`
+ ;;
+ *) # Darwin 1.3 on
+ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+ ;;
+ esac
+ ;;
+
+freebsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20*|hpux11*)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+
+irix5* | irix6*)
+ case $host_os in
+ irix5*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
+ ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ case $host_cpu in
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | s390* )
+ lt_cv_deplibs_check_method=pass_all ;;
+ *)
+ # glibc up to 2.1.1 does not perform some relocations on ARM
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+openbsd*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
+ else
+ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sco3.2v5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+
+sysv5uw[[78]]* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ esac
+ ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+])
+
+
+# AC_PROG_NM - find the path to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl
+AC_MSG_CHECKING([for BSD-compatible nm])
+AC_CACHE_VAL(lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/${ac_tool_prefix}nm
+ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ else
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+AC_MSG_RESULT([$NM])
+])
+
+# AC_CHECK_LIBM - check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32*)
+ # These system don't have libm
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+ AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, main, LIBM="-lm")
+ ;;
+esac
+])
+
+# AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl convenience library and INCLTDL to the include flags for
+# the libltdl header and adds --enable-ltdl-convenience to the
+# configure arguments. Note that LIBLTDL and INCLTDL are not
+# AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not
+# provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed
+# with '${top_builddir}/' and INCLTDL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!). If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ case $enable_ltdl_convenience in
+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+ "") enable_ltdl_convenience=yes
+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+ esac
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+ INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+])
+
+# AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+# the libltdl installable library and INCLTDL to the include flags for
+# the libltdl header and adds --enable-ltdl-install to the configure
+# arguments. Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
+# AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed
+# libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will
+# be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
+# with '${top_srcdir}/' (note the single quotes!). If your package is
+# not flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+ AC_CHECK_LIB(ltdl, main,
+ [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+ [if test x"$enable_ltdl_install" = xno; then
+ AC_MSG_WARN([libltdl not installed, but installation disabled])
+ else
+ enable_ltdl_install=yes
+ fi
+ ])
+ if test x"$enable_ltdl_install" = x"yes"; then
+ ac_configure_args="$ac_configure_args --enable-ltdl-install"
+ LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+ INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+ else
+ ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+ LIBLTDL="-lltdl"
+ INCLTDL=
+ fi
+])
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD], [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM], [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+
+dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
+dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
+dnl also defines GSTUFF_PKG_ERRORS on error
+AC_DEFUN(PKG_CHECK_MODULES, [
+ succeeded=no
+
+ if test -z "$PKG_CONFIG"; then
+ AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+ fi
+
+ if test "$PKG_CONFIG" = "no" ; then
+ echo "*** The pkg-config script could not be found. Make sure it is"
+ echo "*** in your path, or set the PKG_CONFIG environment variable"
+ echo "*** to the full path to pkg-config."
+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+ else
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ AC_MSG_CHECKING(for $2)
+
+ if $PKG_CONFIG --exists "$2" ; then
+ AC_MSG_RESULT(yes)
+ succeeded=yes
+
+ AC_MSG_CHECKING($1_CFLAGS)
+ $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
+ AC_MSG_RESULT($$1_CFLAGS)
+
+ AC_MSG_CHECKING($1_LIBS)
+ $1_LIBS=`$PKG_CONFIG --libs "$2"`
+ AC_MSG_RESULT($$1_LIBS)
+ else
+ $1_CFLAGS=""
+ $1_LIBS=""
+ ## If we have a custom action on failure, don't print errors, but
+ ## do set a variable so people can do so.
+ $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+ ifelse([$4], ,echo $$1_PKG_ERRORS,)
+ fi
+
+ AC_SUBST($1_CFLAGS)
+ AC_SUBST($1_LIBS)
+ else
+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
+ fi
+ fi
+
+ if test $succeeded = yes; then
+ ifelse([$3], , :, [$3])
+ else
+ ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
+ fi
+])
+
+
+
+# Add --enable-maintainer-mode option to configure.
+# From Jim Meyering
+
+# serial 1
+
+AC_DEFUN([AM_MAINTAINER_MODE],
+[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ dnl maintainer-mode is disabled by default
+ AC_ARG_ENABLE(maintainer-mode,
+[ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ USE_MAINTAINER_MODE=$enableval,
+ USE_MAINTAINER_MODE=no)
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST(MAINT)dnl
+]
+)
+
+# Like AC_CONFIG_HEADER, but automatically create stamp file.
+
+# serial 3
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. We must strip everything past the first ":",
+# and everything past the last "/".
+
+AC_PREREQ([2.12])
+
+AC_DEFUN([AM_CONFIG_HEADER],
+[ifdef([AC_FOREACH],dnl
+ [dnl init our file count if it isn't already
+ m4_ifndef([_AM_Config_Header_Index], m4_define([_AM_Config_Header_Index], [0]))
+ dnl prepare to store our destination file list for use in config.status
+ AC_FOREACH([_AM_File], [$1],
+ [m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*]))
+ m4_define([_AM_Config_Header_Index], m4_incr(_AM_Config_Header_Index))
+ dnl and add it to the list of files AC keeps track of, along
+ dnl with our hook
+ AC_CONFIG_HEADERS(_AM_File,
+dnl COMMANDS, [, INIT-CMDS]
+[# update the timestamp
+echo timestamp >"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index["
+][$2]m4_ifval([$3], [, [$3]]))dnl AC_CONFIG_HEADERS
+ m4_popdef([_AM_Dest])])],dnl
+[AC_CONFIG_HEADER([$1])
+ AC_OUTPUT_COMMANDS(
+ ifelse(patsubst([$1], [[^ ]], []),
+ [],
+ [test -z "$CONFIG_HEADERS" || echo timestamp >dnl
+ patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),dnl
+[am_indx=1
+for am_file in $1; do
+ case " \$CONFIG_HEADERS " in
+ *" \$am_file "*)
+ am_dir=\`echo \$am_file |sed 's%:.*%%;s%[^/]*\$%%'\`
+ if test -n "\$am_dir"; then
+ am_tmpdir=\`echo \$am_dir |sed 's%^\(/*\).*\$%\1%'\`
+ for am_subdir in \`echo \$am_dir |sed 's%/% %'\`; do
+ am_tmpdir=\$am_tmpdir\$am_subdir/
+ if test ! -d \$am_tmpdir; then
+ mkdir \$am_tmpdir
+ fi
+ done
+ fi
+ echo timestamp > "\$am_dir"stamp-h\$am_indx
+ ;;
+ esac
+ am_indx=\`expr \$am_indx + 1\`
+done])
+])]) # AM_CONFIG_HEADER
+
+# _AM_DIRNAME(PATH)
+# -----------------
+# Like AS_DIRNAME, only do it during macro expansion
+AC_DEFUN([_AM_DIRNAME],
+ [m4_if(m4_regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1,
+ m4_if(m4_regexp([$1], [^//\([^/]\|$\)]), -1,
+ m4_if(m4_regexp([$1], [^/.*]), -1,
+ [.],
+ m4_patsubst([$1], [^\(/\).*], [\1])),
+ m4_patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])),
+ m4_patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl
+]) # _AM_DIRNAME
+
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..8f3ce9d
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,11 @@
+#!/bin/bash -e
+#PROTOTYPES="-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
+WARNINGS="-Wcast-align $PROTOTYPES"
+CFLAGS="${CFLAGS:--g3 -Wall $WARNINGS}" ; export CFLAGS
+set -x
+libtoolize -f
+autoheader
+aclocal
+automake -a
+autoconf
+./configure --disable-shared --enable-maintainer-mode $@
diff --git a/config.h.in b/config.h.in
new file mode 100644
index 0000000..fa9fe85
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,49 @@
+/* config.h.in. Generated automatically from configure.ac by autoheader. */
+
+/* Disable deprecated gdk features. */
+#undef GDK_DISABLE_DEPRECATED
+
+/* Disable deprecated gtk features. */
+#undef GTK_DISABLE_DEPRECATED
+
+/* Disable deprecated glib features. */
+#undef G_DISABLE_DEPRECATED
+
+/* Define if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define if you have the `getpt' function. */
+#undef HAVE_GETPT
+
+/* Define if you have the `grantpt' function. */
+#undef HAVE_GRANTPT
+
+/* Define if you have the `ptsname' function. */
+#undef HAVE_PTSNAME
+
+/* Define if you have the `ptsname_r' function. */
+#undef HAVE_PTSNAME_R
+
+/* Define if you have the `unlockpt' function. */
+#undef HAVE_UNLOCKPT
+
+/* Name of package */
+#undef PACKAGE
+
+/* Version number of package */
+#undef VERSION
+
+/* Enable debugging of unrecognized sequences. */
+#undef VTE_DEBUG
+
+/* Define if the X Window System is missing or not being used. */
+#undef X_DISPLAY_MISSING
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Use all features. */
+#undef _GNU_SOURCE
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
diff --git a/configure b/configure
new file mode 100755
index 0000000..43ba940
--- /dev/null
+++ b/configure
@@ -0,0 +1,9124 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by Autoconf 2.52.
+#
+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Find the correct PATH separator. Usually this is `:', but
+# DJGPP uses `;' like DOS.
+if test "X${PATH_SEPARATOR+set}" != Xset; then
+ UNAME=${UNAME-`uname 2>/dev/null`}
+ case X$UNAME in
+ *-DOS) lt_cv_sys_path_separator=';' ;;
+ *) lt_cv_sys_path_separator=':' ;;
+ esac
+ PATH_SEPARATOR=$lt_cv_sys_path_separator
+fi
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+ # Remove one level of quotation (which was required for Make).
+ ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+ ;;
+esac
+
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell.
+ exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+
+EOF
+ exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+ for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+ # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+ if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+ echo_test_string="`eval $cmd`" &&
+ (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+ then
+ break
+ fi
+ done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ :
+else
+ # The Solaris, AIX, and Digital Unix default echo programs unquote
+ # backslashes. This makes it impossible to quote backslashes using
+ # echo "$something" | sed 's/\\/\\\\/g'
+ #
+ # So, first we look for a working echo in the user's PATH.
+
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for dir in $PATH /usr/ucb; do
+ if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+ test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$dir/echo"
+ break
+ fi
+ done
+ IFS="$save_ifs"
+
+ if test "X$echo" = Xecho; then
+ # We didn't find a better echo, so look for alternatives.
+ if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # This shell has a builtin print -r that does the trick.
+ echo='print -r'
+ elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ test "X$CONFIG_SHELL" != X/bin/ksh; then
+ # If we have ksh, try running configure again with it.
+ ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+ export ORIGINAL_CONFIG_SHELL
+ CONFIG_SHELL=/bin/ksh
+ export CONFIG_SHELL
+ exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+ else
+ # Try using printf.
+ echo='printf %s\n'
+ if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+ echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ # Cool, printf works
+ :
+ elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+ export CONFIG_SHELL
+ SHELL="$CONFIG_SHELL"
+ export SHELL
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+ test "X$echo_testing_string" = 'X\t' &&
+ echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+ test "X$echo_testing_string" = "X$echo_test_string"; then
+ echo="$CONFIG_SHELL $0 --fallback-echo"
+ else
+ # maybe with a smaller string...
+ prev=:
+
+ for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+ if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+ then
+ break
+ fi
+ prev="$cmd"
+ done
+
+ if test "$prev" != 'sed 50q "$0"'; then
+ echo_test_string=`eval $prev`
+ export echo_test_string
+ exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+ else
+ # Oops. We lost completely, so just stick with echo.
+ echo=echo
+ fi
+ fi
+ fi
+ fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+ ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
+# Name of the executable.
+as_me=`echo "$0" |sed 's,.*[\\/],,'`
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+# NLS nuisances.
+$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+cross_compiling=no
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete. It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+ac_unique_file="configure.ac"
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_prev=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_option in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ eval "enable_$ac_feature=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+ { (exit 1); exit 1; }; }
+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_$ac_feature='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case $ac_option in
+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_$ac_package='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid package name: $ac_package" >&2
+ { (exit 1); exit 1; }; }
+ ac_package=`echo $ac_package | sed 's/-/_/g'`
+ eval "with_$ac_package=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+ { (exit 1); exit 1; }; }
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+ { (exit 1); exit 1; }; }
+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+ eval "$ac_envvar='$ac_optarg'"
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ { echo "$as_me: error: missing argument to $ac_option" >&2
+ { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+ *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+ localstatedir libdir includedir oldincludedir infodir mandir
+do
+ eval ac_val=$`echo $ac_var`
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) ;;
+ *) { echo "$as_me: error: expected an absolute path for --$ac_var: $ac_val" >&2
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: should be removed in autoconf 3.0.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used." >&2
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "$as_me: error: cannot find sources in $ac_confdir or .." >&2
+ { (exit 1); exit 1; }; }
+ else
+ { echo "$as_me: error: cannot find sources in $srcdir" >&2
+ { (exit 1); exit 1; }; }
+ fi
+fi
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<EOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+EOF
+
+ cat <<EOF
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --infodir=DIR info documentation [PREFIX/info]
+ --mandir=DIR man documentation [PREFIX/man]
+EOF
+
+ cat <<\EOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+X features:
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST build programs to run on HOST [BUILD]
+EOF
+fi
+
+if test -n "$ac_init_help"; then
+
+ cat <<\EOF
+
+Optional Features:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --disable-dependency-tracking Speeds up one-time builds
+ --enable-dependency-tracking Do not reject slow dependency extractors
+ --enable-shared=PKGS build shared libraries default=yes
+ --enable-static=PKGS build static libraries default=yes
+ --enable-fast-install=PKGS optimize for fast installation default=yes
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --disable-largefile omit support for large files
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-gnu-ld assume the C compiler uses GNU ld default=no
+ --with-pic try to use only PIC/non-PIC objects default=use both
+ --with-x use the X Window System
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
+ headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+EOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ ac_popdir=`pwd`
+ for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue
+ cd $ac_subdir
+ # A "../" for each directory in /$ac_subdir.
+ ac_dots=`echo $ac_subdir |
+ sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'`
+
+ case $srcdir in
+ .) # No --srcdir option. We are building in place.
+ ac_sub_srcdir=$srcdir ;;
+ [\\/]* | ?:[\\/]* ) # Absolute path.
+ ac_sub_srcdir=$srcdir/$ac_subdir ;;
+ *) # Relative path.
+ ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;;
+ esac
+
+ # Check for guested configure; otherwise get Cygnus style configure.
+ if test -f $ac_sub_srcdir/configure.gnu; then
+ echo
+ $SHELL $ac_sub_srcdir/configure.gnu --help=recursive
+ elif test -f $ac_sub_srcdir/configure; then
+ echo
+ $SHELL $ac_sub_srcdir/configure --help=recursive
+ elif test -f $ac_sub_srcdir/configure.ac ||
+ test -f $ac_sub_srcdir/configure.in; then
+ echo
+ $ac_configure --help
+ else
+ echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2
+ fi
+ cd $ac_popdir
+ done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+ cat <<\EOF
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+EOF
+ exit 0
+fi
+exec 5>config.log
+cat >&5 <<EOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.52. Invocation command line was
+
+ $ $0 $@
+
+EOF
+{
+cat <<_ASUNAME
+## ---------- ##
+## Platform. ##
+## ---------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+PATH = $PATH
+
+_ASUNAME
+} >&5
+
+cat >&5 <<EOF
+## ------------ ##
+## Core tests. ##
+## ------------ ##
+
+EOF
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell meta-characters.
+ac_configure_args=
+ac_sep=
+for ac_arg
+do
+ case $ac_arg in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
+ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+ ac_sep=" " ;;
+ *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg"
+ ac_sep=" " ;;
+ esac
+ # Get rid of the leading space.
+done
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ echo >&5
+ echo "## ----------------- ##" >&5
+ echo "## Cache variables. ##" >&5
+ echo "## ----------------- ##" >&5
+ echo >&5
+ # The following way of writing the cache mishandles newlines in values,
+{
+ (set) 2>&1 |
+ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ sed -n \
+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+ ;;
+ *)
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+} >&5
+ sed "/^$/d" confdefs.h >conftest.log
+ if test -s conftest.log; then
+ echo >&5
+ echo "## ------------ ##" >&5
+ echo "## confdefs.h. ##" >&5
+ echo "## ------------ ##" >&5
+ echo >&5
+ cat conftest.log >&5
+ fi
+ (echo; echo) >&5
+ test "$ac_signal" != 0 &&
+ echo "$as_me: caught signal $ac_signal" >&5
+ echo "$as_me: exit $exit_status" >&5
+ rm -rf conftest* confdefs* core core.* *.core conf$$* $ac_clean_files &&
+ exit $exit_status
+ ' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ { echo "$as_me:1008: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+ cat "$ac_site_file" >&5
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special
+ # files actually), so we avoid doing that.
+ if test -f "$cache_file"; then
+ { echo "$as_me:1019: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . $cache_file;;
+ *) . ./$cache_file;;
+ esac
+ fi
+else
+ { echo "$as_me:1027: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+ eval ac_new_val="\$ac_env_${ac_var}_value"
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { echo "$as_me:1043: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { echo "$as_me:1047: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ { echo "$as_me:1053: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ { echo "$as_me:1055: former value: $ac_old_val" >&5
+echo "$as_me: former value: $ac_old_val" >&2;}
+ { echo "$as_me:1057: current value: $ac_new_val" >&5
+echo "$as_me: current value: $ac_new_val" >&2;}
+ ac_cache_corrupted=:
+ fi;;
+ esac
+ # Pass precious variables to config.status. It doesn't matter if
+ # we pass some twice (in addition to the command line arguments).
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"`
+ ac_configure_args="$ac_configure_args '$ac_arg'"
+ ;;
+ *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val"
+ ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { echo "$as_me:1076: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { { echo "$as_me:1078: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+ *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T=' ' ;;
+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+echo "#! $SHELL" >conftest.sh
+echo "exit 0" >>conftest.sh
+chmod +x conftest.sh
+if { (echo "$as_me:1098: PATH=\".;.\"; conftest.sh") >&5
+ (PATH=".;."; conftest.sh) 2>&5
+ ac_status=$?
+ echo "$as_me:1101: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ ac_path_separator=';'
+else
+ ac_path_separator=:
+fi
+PATH_SEPARATOR="$ac_path_separator"
+rm -f conftest.sh
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f $ac_dir/shtool; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { { echo "$as_me:1127: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:1147: checking for a BSD compatible install" >&5
+echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ for ac_dir in $PATH; do
+ IFS=$ac_save_IFS
+ # Account for people who put trailing slashes in PATH elements.
+ case $ac_dir/ in
+ / | ./ | .// | /cC/* \
+ | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \
+ | /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ if $as_executable_p "$ac_dir/$ac_prog"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL=$ac_install_sh
+ fi
+fi
+echo "$as_me:1196: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo "$as_me:1207: checking whether build environment is sane" >&5
+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ { { echo "$as_me:1231: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" >&5
+echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
+alias in your environment" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ { { echo "$as_me:1244: error: newly created file is older than distributed files!
+Check your system clock" >&5
+echo "$as_me: error: newly created file is older than distributed files!
+Check your system clock" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+echo "$as_me:1250: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+test "$program_prefix" != NONE &&
+ program_transform_name="s,^,$program_prefix,;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+# Double any \ or $. echo might interpret backslashes.
+# By default was `s,x,x', remove it if useless.
+cat <<\_ACEOF >conftest.sed
+s/[\\$]/&&/g;s/;s,x,x,$//
+_ACEOF
+program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+rm conftest.sed
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd`
+
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ am_backtick='`'
+ { echo "$as_me:1275: WARNING: ${am_backtick}missing' script is too old or missing" >&5
+echo "$as_me: WARNING: ${am_backtick}missing' script is too old or missing" >&2;}
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:1283: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AWK+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_AWK="$ac_prog"
+echo "$as_me:1298: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ echo "$as_me:1306: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6
+else
+ echo "$as_me:1309: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$AWK" && break
+done
+
+echo "$as_me:1316: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.make <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftest.make
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$as_me:1336: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ SET_MAKE=
+else
+ echo "$as_me:1340: result: no" >&5
+echo "${ECHO_T}no" >&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+ enableval="$enable_dependency_tracking"
+
+fi;
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+rm -f .deps 2>/dev/null
+mkdir .deps 2>/dev/null
+if test -d .deps; then
+ DEPDIR=.deps
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ DEPDIR=_deps
+fi
+rmdir .deps 2>/dev/null
+
+# test to see if srcdir already configured
+if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ { { echo "$as_me:1376: error: source directory already configured; run \"make distclean\" there first" >&5
+echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+# Define the identity of the package.
+PACKAGE=vte
+VERSION=0.1
+
+cat >>confdefs.h <<EOF
+#define PACKAGE "$PACKAGE"
+EOF
+
+cat >>confdefs.h <<EOF
+#define VERSION "$VERSION"
+EOF
+
+# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
+# the ones we care about.
+
+# Autoconf 2.50 always computes EXEEXT. However we need to be
+# compatible with 2.13, for now. So we always define EXEEXT, but we
+# don't compute it.
+
+# Similar for OBJEXT -- only we only use OBJEXT if the user actually
+# requests that it be used. This is a bit dumb.
+: ${OBJEXT=o}
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal"}
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake"}
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+ enableval="$enable_shared"
+ p=${PACKAGE-default}
+case $enableval in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_shared=yes
+fi;
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+ enableval="$enable_static"
+ p=${PACKAGE-default}
+case $enableval in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_static=yes
+fi;
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+ enableval="$enable_fast_install"
+ p=${PACKAGE-default}
+case $enableval in
+yes) enable_fast_install=yes ;;
+no) enable_fast_install=no ;;
+*)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+ for pkg in $enableval; do
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$ac_save_ifs"
+ ;;
+esac
+else
+ enable_fast_install=yes
+fi;
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+ { { echo "$as_me:1493: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+echo "$as_me:1497: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+ ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+ { { echo "$as_me:1506: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+ { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+ { { echo "$as_me:1510: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:1515: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+echo "$as_me:1522: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+ ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+ { { echo "$as_me:1531: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:1536: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+ac_config_commands="$ac_config_commands default-1"
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+doit:
+ @echo done
+END
+# If we don't find an include directive, just comment out the code.
+echo "$as_me:1551: checking for style of include used by $am_make" >&5
+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+am__include='#'
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then
+ am__include=include
+ am__quote=
+ _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+ am__include=.include
+ am__quote='"'
+ _am_result=BSD
+ fi
+fi
+
+echo "$as_me:1578: result: $_am_result" >&5
+echo "${ECHO_T}$_am_result" >&6
+rm -f confinc confmf
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:1590: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="${ac_tool_prefix}gcc"
+echo "$as_me:1605: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:1613: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:1616: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:1625: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="gcc"
+echo "$as_me:1640: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:1648: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:1651: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:1664: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="${ac_tool_prefix}cc"
+echo "$as_me:1679: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:1687: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:1690: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:1699: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="cc"
+echo "$as_me:1714: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:1722: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:1725: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ CC=$ac_ct_CC
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:1738: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+fi
+ac_cv_prog_CC="cc"
+echo "$as_me:1758: found $ac_dir/$ac_word" >&5
+break
+done
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" ${1+"$@"}
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:1780: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:1783: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:1794: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+echo "$as_me:1809: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ echo "$as_me:1817: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+ echo "$as_me:1820: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:1833: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_CC="$ac_prog"
+echo "$as_me:1848: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ echo "$as_me:1856: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+ echo "$as_me:1859: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_CC" && break
+done
+
+ CC=$ac_ct_CC
+fi
+
+fi
+
+test -z "$CC" && { { echo "$as_me:1871: error: no acceptable cc found in \$PATH" >&5
+echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:1876:" \
+ "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:1879: \"$ac_compiler --version </dev/null >&5\"") >&5
+ (eval $ac_compiler --version </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:1882: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:1884: \"$ac_compiler -v </dev/null >&5\"") >&5
+ (eval $ac_compiler -v </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:1887: \$? = $ac_status" >&5
+ (exit $ac_status); }
+{ (eval echo "$as_me:1889: \"$ac_compiler -V </dev/null >&5\"") >&5
+ (eval $ac_compiler -V </dev/null >&5) 2>&5
+ ac_status=$?
+ echo "$as_me:1892: \$? = $ac_status" >&5
+ (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 1896 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:1912: checking for C compiler default output" >&5
+echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:1915: \"$ac_link_default\"") >&5
+ (eval $ac_link_default) 2>&5
+ ac_status=$?
+ echo "$as_me:1918: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Find the output, starting from the most likely. This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+for ac_file in `ls a.exe conftest.exe 2>/dev/null;
+ ls a.out conftest 2>/dev/null;
+ ls a.* conftest.* 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+ a.out ) # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
+ export ac_cv_exeext
+ break;;
+ * ) break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:1941: error: C compiler cannot create executables" >&5
+echo "$as_me: error: C compiler cannot create executables" >&2;}
+ { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:1947: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:1952: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+ if { ac_try='./$ac_file'
+ { (eval echo "$as_me:1958: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:1961: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { echo "$as_me:1968: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+fi
+echo "$as_me:1976: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:1983: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:1985: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:1988: checking for executable suffix" >&5
+echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
+if { (eval echo "$as_me:1990: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:1993: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ export ac_cv_exeext
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { echo "$as_me:2009: error: cannot compute EXEEXT: cannot compile and link" >&5
+echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:2015: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:2021: checking for object suffix" >&5
+echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 2027 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:2039: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:2042: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+{ { echo "$as_me:2054: error: cannot compute OBJEXT: cannot compile" >&5
+echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:2061: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:2065: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 2071 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2086: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:2089: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:2092: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:2095: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_compiler_gnu=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_compiler_gnu=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:2107: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:2113: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 2119 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2131: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:2134: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:2137: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:2140: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_prog_cc_g=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:2150: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+# Some people use a C++ compiler to compile C. Since we use `exit',
+# in C++ we need to declare it. In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+ choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2177: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:2180: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:2183: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:2186: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ for ac_declaration in \
+ ''\
+ '#include <stdlib.h>' \
+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
+ 'extern "C" void std::exit (int); using std::exit;' \
+ 'extern "C" void exit (int) throw ();' \
+ 'extern "C" void exit (int);' \
+ 'void exit (int);'
+do
+ cat >conftest.$ac_ext <<_ACEOF
+#line 2198 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2211: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:2214: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:2217: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:2220: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+continue
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+#line 2230 "configure"
+#include "confdefs.h"
+$ac_declaration
+int
+main ()
+{
+exit (42);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:2242: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:2245: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:2248: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:2251: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+ echo '#ifdef __cplusplus' >>confdefs.h
+ echo $ac_declaration >>confdefs.h
+ echo '#endif' >>confdefs.h
+fi
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC" am_compiler_list=
+
+echo "$as_me:2280: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ for depmode in $am_compiler_list; do
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ echo '#include "conftest.h"' > conftest.c
+ echo 'int i;' > conftest.h
+ echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+
+ case $depmode in
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ none) break ;;
+ esac
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this.
+ if depmode=$depmode \
+ source=conftest.c object=conftest.o \
+ depfile=conftest.Po tmpdepfile=conftest.TPo \
+ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 &&
+ grep conftest.h conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:2342: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+CCDEPMODE="depmode=$am_cv_CC_dependencies_compiler_type"
+
+# Find the correct PATH separator. Usually this is `:', but
+# DJGPP uses `;' like DOS.
+if test "X${PATH_SEPARATOR+set}" != Xset; then
+ UNAME=${UNAME-`uname 2>/dev/null`}
+ case X$UNAME in
+ *-DOS) lt_cv_sys_path_separator=';' ;;
+ *) lt_cv_sys_path_separator=':' ;;
+ esac
+ PATH_SEPARATOR=$lt_cv_sys_path_separator
+fi
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+ withval="$with_gnu_ld"
+ test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ echo "$as_me:2367: checking for ld used by GCC" >&5
+echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ echo "$as_me:2397: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+ echo "$as_me:2400: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
+ test "$with_gnu_ld" != no && break
+ else
+ test "$with_gnu_ld" != yes && break
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ echo "$as_me:2430: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+ echo "$as_me:2433: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:2436: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+echo "$as_me:2439: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+ lt_cv_prog_gnu_ld=yes
+else
+ lt_cv_prog_gnu_ld=no
+fi
+fi
+echo "$as_me:2451: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+echo "$as_me:2455: checking for $LD option to reload object files" >&5
+echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
+if test "${lt_cv_ld_reload_flag+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+echo "$as_me:2462: result: $lt_cv_ld_reload_flag" >&5
+echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
+reload_flag=$lt_cv_ld_reload_flag
+test -n "$reload_flag" && reload_flag=" $reload_flag"
+
+echo "$as_me:2467: checking for BSD-compatible nm" >&5
+echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
+if test "${lt_cv_path_NM+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/${ac_tool_prefix}nm
+ if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ else
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ fi
+ fi
+ done
+ IFS="$ac_save_ifs"
+ test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi
+fi
+
+NM="$lt_cv_path_NM"
+echo "$as_me:2503: result: $NM" >&5
+echo "${ECHO_T}$NM" >&6
+
+echo "$as_me:2506: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ echo "$as_me:2510: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+ echo "$as_me:2513: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6
+fi
+
+echo "$as_me:2517: checking how to recognise dependant libraries" >&5
+echo $ECHO_N "checking how to recognise dependant libraries... $ECHO_C" >&6
+if test "${lt_cv_deplibs_check_method+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given egrep regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi4*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin* | mingw* | pw32*)
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1`
+ ;;
+ *) # Darwin 1.3 on
+ lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+ ;;
+ esac
+ ;;
+
+freebsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20*|hpux11*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+
+irix5* | irix6*)
+ case $host_os in
+ irix5*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
+ ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ case $host_cpu in
+ alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | s390* )
+ lt_cv_deplibs_check_method=pass_all ;;
+ *)
+ # glibc up to 2.1.1 does not perform some relocations on ARM
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
+ esac
+ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+ ;;
+
+netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+openbsd*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
+ else
+ lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ # this will be overridden with pass_all, but let us keep it just in case
+ lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sco3.2v5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+
+sysv5uw[78]* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ esac
+ ;;
+esac
+
+fi
+echo "$as_me:2695: result: $lt_cv_deplibs_check_method" >&5
+echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo "$as_me:2701: checking command to parse $NM output" >&5
+echo $ECHO_N "checking command to parse $NM output... $ECHO_C" >&6
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*) # Its linker distinguishes data from code symbols
+ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+ lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
+ ;;
+irix*)
+ symcode='[BCDEGRST]'
+ ;;
+solaris* | sysv5*)
+ symcode='[BDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $host_os in
+mingw*)
+ opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+ symcode='[ABCDGISTW]'
+fi
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Write the raw and C identifiers.
+lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+ rm -f conftest*
+ cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+ if { (eval echo "$as_me:2782: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:2785: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { (eval echo "$as_me:2789: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+ (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+ ac_status=$?
+ echo "$as_me:2792: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if egrep ' nm_test_var$' "$nlist" >/dev/null; then
+ if egrep ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext'
+
+ cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+ const char *name;
+ lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+ sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext
+ cat <<\EOF >> conftest.$ac_ext
+ {0, (lt_ptr) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$no_builtin_flag"
+ if { (eval echo "$as_me:2844: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:2847: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest; then
+ pipe_works=yes
+ fi
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -f conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ global_symbol_to_cdecl=
+ global_symbol_to_c_name_address=
+else
+ global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
+ global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address"
+fi
+if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address";
+then
+ echo "$as_me:2888: result: failed" >&5
+echo "${ECHO_T}failed" >&6
+else
+ echo "$as_me:2891: result: ok" >&5
+echo "${ECHO_T}ok" >&6
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:2900: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test "${ac_cv_prog_CPP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+#line 2921 "configure"
+#include "confdefs.h"
+#include <assert.h>
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:2926: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:2932: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+#line 2955 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:2959: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:2965: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:3002: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat >conftest.$ac_ext <<_ACEOF
+#line 3012 "configure"
+#include "confdefs.h"
+#include <assert.h>
+ Syntax error
+_ACEOF
+if { (eval echo "$as_me:3017: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:3023: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether non-existent headers
+ # can be detected and how.
+ cat >conftest.$ac_ext <<_ACEOF
+#line 3046 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:3050: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:3056: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # Broken: success on invalid input.
+continue
+else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+ :
+else
+ { { echo "$as_me:3084: error: C preprocessor \"$CPP\" fails sanity check" >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+for ac_header in dlfcn.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:3098: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 3104 "configure"
+#include "confdefs.h"
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:3108: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:3114: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
+echo "$as_me:3133: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ echo "$as_me:3147: checking for ${ac_tool_prefix}file" >&5
+echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MAGIC_CMD in
+ /*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
+ ;;
+ *)
+ ac_save_MAGIC_CMD="$MAGIC_CMD"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="/usr/bin:$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ egrep "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ MAGIC_CMD="$ac_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ echo "$as_me:3202: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+ echo "$as_me:3205: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ echo "$as_me:3211: checking for file" >&5
+echo $ECHO_N "checking for file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $MAGIC_CMD in
+ /*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+ ?:/*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
+ ;;
+ *)
+ ac_save_MAGIC_CMD="$MAGIC_CMD"
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+ ac_dummy="/usr/bin:$PATH"
+ for ac_dir in $ac_dummy; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ egrep "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+ MAGIC_CMD="$ac_save_MAGIC_CMD"
+ ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ echo "$as_me:3266: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+ echo "$as_me:3269: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo "$as_me:3285: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+echo "$as_me:3300: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ echo "$as_me:3308: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
+else
+ echo "$as_me:3311: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo "$as_me:3320: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_RANLIB="ranlib"
+echo "$as_me:3335: found $ac_dir/$ac_word" >&5
+break
+done
+
+ test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ echo "$as_me:3344: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
+else
+ echo "$as_me:3347: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ RANLIB=$ac_ct_RANLIB
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:3359: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+echo "$as_me:3374: found $ac_dir/$ac_word" >&5
+break
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ echo "$as_me:3382: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+ echo "$as_me:3385: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:3394: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_STRIP="strip"
+echo "$as_me:3409: found $ac_dir/$ac_word" >&5
+break
+done
+
+ test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ echo "$as_me:3418: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+ echo "$as_me:3421: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ STRIP=$ac_ct_STRIP
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+enable_dlopen=no
+enable_win32_dll=no
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+ enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line 3445 "configure"' > conftest.$ac_ext
+ if { (eval echo "$as_me:3446: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:3449: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ echo "$as_me:3470: checking whether the C compiler needs -belf" >&5
+echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
+if test "${lt_cv_cc_needs_belf+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat >conftest.$ac_ext <<_ACEOF
+#line 3483 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3495: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:3498: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:3501: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:3504: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ lt_cv_cc_needs_belf=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+lt_cv_cc_needs_belf=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+echo "$as_me:3520: result: $lt_cv_cc_needs_belf" >&5
+echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+
+esac
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+need_locks="$enable_libtool_lock"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+if test x"$host" != x"$build"; then
+ ac_tool_prefix=${host_alias}-
+else
+ ac_tool_prefix=
+fi
+
+# Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+case $host_os in
+linux-gnu*) ;;
+linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+esac
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+ ;;
+ *)
+ old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Allow CC to be a program name with arguments.
+set dummy $CC
+compiler="$2"
+
+echo "$as_me:3620: checking for objdir" >&5
+echo $ECHO_N "checking for objdir... $ECHO_C" >&6
+rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+echo "$as_me:3631: result: $objdir" >&5
+echo "${ECHO_T}$objdir" >&6
+
+# Check whether --with-pic or --without-pic was given.
+if test "${with_pic+set}" = set; then
+ withval="$with_pic"
+ pic_mode="$withval"
+else
+ pic_mode=default
+fi;
+test -z "$pic_mode" && pic_mode=default
+
+# We assume here that the value for lt_cv_prog_cc_pic will not be cached
+# in isolation, and that seeing it set (from the cache) indicates that
+# the associated values are set (in the cache) correctly too.
+echo "$as_me:3646: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+if test "${lt_cv_prog_cc_pic+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_cc_pic=
+ lt_cv_prog_cc_shlib=
+ lt_cv_prog_cc_wl=
+ lt_cv_prog_cc_static=
+ lt_cv_prog_cc_no_builtin=
+ lt_cv_prog_cc_can_build_shared=$can_build_shared
+
+ if test "$GCC" = yes; then
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-static'
+
+ case $host_os in
+ aix*)
+ # Below there is a dirty hack to force normal static linking with -ldl
+ # The problem is because libdl dynamically linked with both libc and
+ # libC (AIX C++ library), which obviously doesn't included in libraries
+ # list by gcc. This cause undefined symbols with -static flags.
+ # This hack allows C programs to be linked with "-static -ldl", but
+ # not sure about C++ programs.
+ lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
+ ;;
+ amigaos*)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_cv_prog_cc_pic='-fno-common'
+ ;;
+ cygwin* | mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_cv_prog_cc_pic='-DDLL_EXPORT'
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_cv_prog_cc_pic=-Kconform_pic
+ fi
+ ;;
+ *)
+ lt_cv_prog_cc_pic='-fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for PIC flags for the system compiler.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ lt_cv_prog_cc_wl='-Wl,'
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_cv_prog_cc_static='-Bstatic'
+ else
+ lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ # Is there a better lt_cv_prog_cc_static that works with the bundled CC?
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive"
+ lt_cv_prog_cc_pic='+Z'
+ ;;
+
+ irix5* | irix6*)
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-non_shared'
+ # PIC (with -KPIC) is the default.
+ ;;
+
+ cygwin* | mingw* | pw32* | os2*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_cv_prog_cc_pic='-DDLL_EXPORT'
+ ;;
+
+ newsos6)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ # All OSF/1 code is PIC.
+ lt_cv_prog_cc_wl='-Wl,'
+ lt_cv_prog_cc_static='-non_shared'
+ ;;
+
+ sco3.2v5*)
+ lt_cv_prog_cc_pic='-Kpic'
+ lt_cv_prog_cc_static='-dn'
+ lt_cv_prog_cc_shlib='-belf'
+ ;;
+
+ solaris*)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Wl,'
+ ;;
+
+ sunos4*)
+ lt_cv_prog_cc_pic='-PIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ lt_cv_prog_cc_wl='-Qoption ld '
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ lt_cv_prog_cc_pic='-KPIC'
+ lt_cv_prog_cc_static='-Bstatic'
+ if test "x$host_vendor" = xsni; then
+ lt_cv_prog_cc_wl='-LD'
+ else
+ lt_cv_prog_cc_wl='-Wl,'
+ fi
+ ;;
+
+ uts4*)
+ lt_cv_prog_cc_pic='-pic'
+ lt_cv_prog_cc_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_cv_prog_cc_pic='-Kconform_pic'
+ lt_cv_prog_cc_static='-Bstatic'
+ fi
+ ;;
+
+ *)
+ lt_cv_prog_cc_can_build_shared=no
+ ;;
+ esac
+ fi
+
+fi
+
+if test -z "$lt_cv_prog_cc_pic"; then
+ echo "$as_me:3793: result: none" >&5
+echo "${ECHO_T}none" >&6
+else
+ echo "$as_me:3796: result: $lt_cv_prog_cc_pic" >&5
+echo "${ECHO_T}$lt_cv_prog_cc_pic" >&6
+
+ # Check to make sure the pic_flag actually works.
+ echo "$as_me:3800: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_cv_prog_cc_pic works... $ECHO_C" >&6
+ if test "${lt_cv_prog_cc_pic_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 3808 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:3820: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:3823: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:3826: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:3829: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ case $host_os in
+ hpux9* | hpux10* | hpux11*)
+ # On HP-UX, both CC and GCC only warn that PIC is supported... then
+ # they create non-PIC objects. So, if there were any warnings, we
+ # assume that PIC is not supported.
+ if test -s conftest.err; then
+ lt_cv_prog_cc_pic_works=no
+ else
+ lt_cv_prog_cc_pic_works=yes
+ fi
+ ;;
+ *)
+ lt_cv_prog_cc_pic_works=yes
+ ;;
+ esac
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ lt_cv_prog_cc_pic_works=no
+
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$save_CFLAGS"
+
+fi
+
+ if test "X$lt_cv_prog_cc_pic_works" = Xno; then
+ lt_cv_prog_cc_pic=
+ lt_cv_prog_cc_can_build_shared=no
+ else
+ lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
+ fi
+
+ echo "$as_me:3865: result: $lt_cv_prog_cc_pic_works" >&5
+echo "${ECHO_T}$lt_cv_prog_cc_pic_works" >&6
+fi
+
+# Check for any special shared library compilation flags.
+if test -n "$lt_cv_prog_cc_shlib"; then
+ { echo "$as_me:3871: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&5
+echo "$as_me: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&2;}
+ if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then :
+ else
+ { echo "$as_me:3875: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
+echo "$as_me: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
+ lt_cv_prog_cc_can_build_shared=no
+ fi
+fi
+
+echo "$as_me:3881: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_cv_prog_cc_static works... $ECHO_C" >&6
+if test "${lt_cv_prog_cc_static_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_prog_cc_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 3890 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:3902: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:3905: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:3908: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:3911: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ lt_cv_prog_cc_static_works=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+
+# Belt *and* braces to stop my trousers falling down:
+test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
+echo "$as_me:3925: result: $lt_cv_prog_cc_static_works" >&5
+echo "${ECHO_T}$lt_cv_prog_cc_static_works" >&6
+
+pic_flag="$lt_cv_prog_cc_pic"
+special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
+wl="$lt_cv_prog_cc_wl"
+link_static_flag="$lt_cv_prog_cc_static"
+no_builtin_flag="$lt_cv_prog_cc_no_builtin"
+can_build_shared="$lt_cv_prog_cc_can_build_shared"
+
+# Check to see if options -o and -c are simultaneously supported by compiler
+echo "$as_me:3936: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_compiler_c_o+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+$rm -r conftest 2>/dev/null
+mkdir conftest
+cd conftest
+echo "int some_variable = 0;" > conftest.$ac_ext
+mkdir out
+# According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+# that will create temporary files in the current directory regardless of
+# the output directory. Thus, making CWD read-only will cause this test
+# to fail, enabling locking or at least warning the user not to do parallel
+# builds.
+chmod -w .
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
+compiler_c_o=no
+if { (eval echo configure:3956: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s out/conftest.err; then
+ lt_cv_compiler_c_o=no
+ else
+ lt_cv_compiler_c_o=yes
+ fi
+else
+ # Append any errors to the config.log.
+ cat out/conftest.err 1>&5
+ lt_cv_compiler_c_o=no
+fi
+CFLAGS="$save_CFLAGS"
+chmod u+w .
+$rm conftest* out/*
+rmdir out
+cd ..
+rmdir conftest
+$rm -r conftest 2>/dev/null
+
+fi
+
+compiler_c_o=$lt_cv_compiler_c_o
+echo "$as_me:3980: result: $compiler_c_o" >&5
+echo "${ECHO_T}$compiler_c_o" >&6
+
+if test x"$compiler_c_o" = x"yes"; then
+ # Check to see if we can write to a .lo
+ echo "$as_me:3985: checking if $compiler supports -c -o file.lo" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.lo... $ECHO_C" >&6
+ if test "${lt_cv_compiler_o_lo+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ lt_cv_compiler_o_lo=no
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -c -o conftest.lo"
+ save_objext="$ac_objext"
+ ac_objext=lo
+ cat >conftest.$ac_ext <<_ACEOF
+#line 3997 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+int some_variable = 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4009: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:4012: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:4015: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:4018: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ lt_cv_compiler_o_lo=no
+ else
+ lt_cv_compiler_o_lo=yes
+ fi
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ ac_objext="$save_objext"
+ CFLAGS="$save_CFLAGS"
+
+fi
+
+ compiler_o_lo=$lt_cv_compiler_o_lo
+ echo "$as_me:4039: result: $compiler_o_lo" >&5
+echo "${ECHO_T}$compiler_o_lo" >&6
+else
+ compiler_o_lo=no
+fi
+
+# Check to see if we can do hard links to lock some files if needed
+hard_links="nottested"
+if test "$compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ echo "$as_me:4049: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+ hard_links=yes
+ $rm conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ echo "$as_me:4057: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+ if test "$hard_links" = no; then
+ { echo "$as_me:4060: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+if test "$GCC" = yes; then
+ # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+ echo "$as_me:4070: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
+ compiler_rtti_exceptions=no
+ cat >conftest.$ac_ext <<_ACEOF
+#line 4077 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+int some_variable = 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4089: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:4092: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:4095: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:4098: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ compiler_rtti_exceptions=no
+ else
+ compiler_rtti_exceptions=yes
+ fi
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$save_CFLAGS"
+ echo "$as_me:4114: result: $compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$compiler_rtti_exceptions" >&6
+
+ if test "$compiler_rtti_exceptions" = "yes"; then
+ no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+ else
+ no_builtin_flag=' -fno-builtin'
+ fi
+fi
+
+# See if the linker supports building shared libraries.
+echo "$as_me:4125: checking whether the linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+allow_undefined_flag=
+no_undefined_flag=
+need_lib_prefix=unknown
+need_version=unknown
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+archive_cmds=
+archive_expsym_cmds=
+old_archive_from_new_cmds=
+old_archive_from_expsyms_cmds=
+export_dynamic_flag_spec=
+whole_archive_flag_spec=
+thread_safe_flag_spec=
+hardcode_into_libs=no
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+hardcode_shlibpath_var=unsupported
+runpath_var=
+link_all_deplibs=unknown
+always_export_symbols=no
+export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols'
+# include_expsyms should be a list of space-separated symbols to be *always*
+# included in the symbol list
+include_expsyms=
+# exclude_expsyms can be an egrep regular expression of symbols to exclude
+# it will be wrapped by ` (' and `)$', so one must not match beginning or
+# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+# as well as any symbol that contains `d'.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+# platforms (ab)use it in PIC code, but their linkers get confused if
+# the symbol is explicitly referenced. Since portable code cannot
+# rely on this symbol name, it's probably fine to never include it in
+# preloaded symbol tables.
+extract_expsyms_cmds=
+
+case $host_os in
+cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix3* | aix4* | aix5*)
+ # On AIX, the GNU linker is very broken
+ # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available.
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can use
+ # them.
+ ld_shlibs=no
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+
+ extract_expsyms_cmds='test -f $output_objdir/impgen.c || \
+ sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~
+ test -f $output_objdir/impgen.exe || (cd $output_objdir && \
+ if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \
+ else $CC -o impgen impgen.c ; fi)~
+ $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def'
+
+ old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib'
+
+ # cygwin and mingw dlls have different entry points and sets of symbols
+ # to exclude.
+ # FIXME: what about values for MSVC?
+ dll_entry=__cygwin_dll_entry@12
+ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~
+ case $host_os in
+ mingw*)
+ # mingw values
+ dll_entry=_DllMainCRTStartup@12
+ dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~
+ ;;
+ esac
+
+ # mingw and cygwin differ, and it's simplest to just exclude the union
+ # of the two symbol sets.
+ dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12
+
+ # recent cygwin and mingw systems supply a stub DllMain which the user
+ # can override, but on older systems we have to supply one (in ltdll.c)
+ if test "x$lt_cv_need_dllmain" = "xyes"; then
+ ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
+ ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~
+ test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
+ else
+ ltdll_obj=
+ ltdll_cmds=
+ fi
+
+ # Extract the symbol export list from an `--export-all' def file,
+ # then regenerate the def file from the symbol export list, so that
+ # the compiled dll only exports the symbol export list.
+ # Be careful not to strip the DATA tag left be newer dlltools.
+ export_symbols_cmds="$ltdll_cmds"'
+ $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
+ sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
+
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is.
+ # If DATA tags from a recent dlltool are present, honour them!
+ archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname-def;
+ else
+ echo EXPORTS > $output_objdir/$soname-def;
+ _lt_hint=1;
+ cat $export_symbols | while read symbol; do
+ set dummy \$symbol;
+ case \$# in
+ 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
+ *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;;
+ esac;
+ _lt_hint=`expr 1 + \$_lt_hint`;
+ done;
+ fi~
+ '"$ltdll_cmds"'
+ $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~
+ $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+ $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~
+ $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags'
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test "$ld_shlibs" = yes; then
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ case $host_os in
+ cygwin* | mingw* | pw32*)
+ # dlltool doesn't understand --whole-archive et. al.
+ whole_archive_flag_spec=
+ ;;
+ *)
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ ;;
+ esac
+ fi
+else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$link_static_flag"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ hardcode_direct=yes
+ archive_cmds=''
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+
+ shared_flag='-shared'
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ shared_flag='${wl}-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ # It seems that -bexpall can do strange things, so it is better to
+ # generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+ archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+ else
+ hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='${wl}-berok'
+ # This is a bit strange, but is similar to how AIX traditionally builds
+ # it's shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ fix_srcfile_path='`cygpath -w "$srcfile"`'
+ ;;
+
+ darwin* | rhapsody*)
+ case "$host_os" in
+ rhapsody* | darwin1.[012])
+ allow_undefined_flag='-undefined suppress'
+ ;;
+ *) # Darwin 1.3 on
+ allow_undefined_flag='-flat_namespace -undefined suppress'
+ ;;
+ esac
+ # FIXME: Relying on posixy $() will cause problems for
+ # cross-compilation, but unfortunately the echo tests do not
+ # yet detect zsh echo's removal of \ escapes.
+ archive_cmds='$nonopt $(test "x$module" = xyes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linker_flags -install_name $rpath/$soname $verstring'
+ # We need to add '_' to the symbols in $export_symbols first
+ #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ whole_archive_flag_spec='-all_load $convenience'
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd*)
+ archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ case $host_os in
+ hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;;
+ *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;;
+ esac
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_minus_L=yes # Not in the search PATH, but as the default
+ # location of the library.
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ irix5* | irix6*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ openbsd*)
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+ #Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+
+ sco3.2v5*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ ;;
+
+ solaris*)
+ # gcc --version < 3.0 without binutils cannot create self contained
+ # shared libraries reliably, requiring libgcc.a to resolve some of
+ # the object symbols generated in some cases. Libraries that use
+ # assert need libgcc.a to resolve __eprintf, for example. Linking
+ # a copy of libgcc.a into every shared library to guarantee resolving
+ # such symbols causes other problems: According to Tim Van Holder
+ # <tim.van.holder@pandora.be>, C++ libraries end up with a separate
+ # (to the application) exception stack for one thing.
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ case `$CC --version 2>/dev/null` in
+ [12].*)
+ cat <<EOF 1>&2
+
+*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
+*** create self contained shared libraries on Solaris systems, without
+*** introducing a dependency on libgcc.a. Therefore, libtool is disabling
+*** -no-undefined support, which will at least allow you to build shared
+*** libraries. However, you may find that when you link such libraries
+*** into an application without using GCC, you have to manually add
+*** \`gcc --print-libgcc-file-name\` to the link command. We urge you to
+*** upgrade to a newer version of GCC. Another option is to rebuild your
+*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.
+
+EOF
+ no_undefined_flag=
+ ;;
+ esac
+ fi
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ if test "x$host_vendor" = xsno; then
+ archive_cmds='$LD -G -Bsymbolic -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ else
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv5*)
+ no_undefined_flag=' -z text'
+ # $CC -shared without GNU ld will not create a library from C++
+ # object files and a static libstdc++, better avoid it by now
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+ hardcode_libdir_flag_spec=
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4.2uw2*)
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=no
+ hardcode_runpath_var=yes
+ runpath_var=LD_RUN_PATH
+ ;;
+
+ sysv5uw7* | unixware7*)
+ no_undefined_flag='${wl}-z ${wl}text'
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+echo "$as_me:4805: result: $ld_shlibs" >&5
+echo "${ECHO_T}$ld_shlibs" >&6
+test "$ld_shlibs" = no && can_build_shared=no
+
+# Check hardcoding attributes.
+echo "$as_me:4810: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+ test -n "$runpath_var"; then
+
+ # We can hardcode non-existant directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$hardcode_shlibpath_var" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+echo "$as_me:4834: result: $hardcode_action" >&5
+echo "${ECHO_T}$hardcode_action" >&6
+
+striplib=
+old_striplib=
+echo "$as_me:4839: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ echo "$as_me:4844: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+ echo "$as_me:4847: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+# PORTME Fill in your ld.so characteristics
+echo "$as_me:4855: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}.so$major'
+ ;;
+
+aix4* | aix5*)
+ version_type=linux
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can
+ # not hardcode correct soname into executable. Probably we can
+ # add versioning support to collect2, so additional links can
+ # be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}.so$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+ ;;
+
+beos*)
+ library_names_spec='${libname}.so'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi4*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ export_dynamic_flag_spec=-rdynamic
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32*)
+ version_type=windows
+ need_version=no
+ need_lib_prefix=no
+ case $GCC,$host_os in
+ yes,cygwin*)
+ library_names_spec='$libname.dll.a'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
+ postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog .libs/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $rm \$dlpath'
+ ;;
+ yes,mingw*)
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
+ sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
+ ;;
+ yes,pw32*)
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll'
+ ;;
+ *)
+ library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ # FIXME: Relying on posixy $() will cause problems for
+ # cross-compilation, but unfortunately the echo tests do not
+ # yet detect zsh echo's removal of \ escapes.
+ library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)'
+ soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd*)
+ objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ *)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ dynamic_linker="$host_os dld.sl"
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl'
+ soname_spec='${libname}${release}.sl$major'
+ # HP-UX runs *really* slowly unless shared libraries are mode 555.
+ postinstall_cmds='chmod 555 $lib'
+ ;;
+
+irix5* | irix6*)
+ version_type=irix
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
+ case $host_os in
+ irix5*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so'
+ soname_spec='${libname}${release}.so$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+openbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case "$host_os" in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+os2*)
+ libname_spec='$name'
+ need_lib_prefix=no
+ library_names_spec='$libname.dll $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_version=no
+ soname_spec='${libname}${release}.so'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+sco3.2v5*)
+ version_type=osf
+ soname_spec='${libname}${release}.so$major'
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+ soname_spec='${libname}${release}.so$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so'
+ soname_spec='$libname.so.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+echo "$as_me:5248: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+# Report the final consequences.
+echo "$as_me:5253: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:5255: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:5258: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+aix4*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+esac
+echo "$as_me:5279: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:5282: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:5286: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ cygwin* | mingw* | pw32*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ *)
+ echo "$as_me:5324: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 5330 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shl_load (); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+char (*f) ();
+
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+f = shl_load;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5361: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:5364: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:5367: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:5370: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:5380: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+ lt_cv_dlopen="shl_load"
+else
+ echo "$as_me:5385: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5393 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5412: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:5415: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:5418: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:5421: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_shl_load=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:5432: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+ echo "$as_me:5437: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 5443 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlopen (); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+char (*f) ();
+
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+f = dlopen;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5474: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:5477: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:5480: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:5483: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:5493: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+ lt_cv_dlopen="dlopen"
+else
+ echo "$as_me:5498: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5506 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5525: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:5528: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:5531: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:5534: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:5545: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ echo "$as_me:5550: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5558 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5577: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:5580: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:5583: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:5586: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_svld_dlopen=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:5597: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ echo "$as_me:5602: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 5610 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:5629: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:5632: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:5635: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:5638: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dld_dld_link=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:5649: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+fi
+
+fi
+
+fi
+
+fi
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ echo "$as_me:5685: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 5696 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:5757: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:5760: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+fi
+echo "$as_me:5777: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ LDFLAGS="$LDFLAGS $link_static_flag"
+ echo "$as_me:5782: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<EOF
+#line 5793 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ /* dlclose (self); */
+ }
+
+ exit (status);
+}
+EOF
+ if { (eval echo "$as_me:5854: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:5857: \$? = $ac_status" >&5
+ (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+fi
+echo "$as_me:5874: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ echo "$as_me:5904: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+ if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ $rm conftest*
+ echo 'static int dummy;' > conftest.$ac_ext
+
+ if { (eval echo "$as_me:5912: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:5915: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_cv_prog_cc_wl
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { (eval echo "$as_me:5929: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+ (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ echo "$as_me:5932: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+fi
+
+ echo "$as_me:5945: result: $lt_cv_archive_cmds_need_lc" >&5
+echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+ ;;
+ esac
+fi
+need_lc=${lt_cv_archive_cmds_need_lc-yes}
+
+# The second clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+ :
+else
+ # If there is no Makefile yet, we rely on a make rule to execute
+ # `config.status --recheck' to rerun these tests and create the
+ # libtool script then.
+ test -f Makefile && make "$ltmain"
+fi
+
+if test -f "$ltmain"; then
+ trap "$rm \"${ofile}T\"; exit 1" 1 2 15
+ $rm -f "${ofile}T"
+
+ echo creating $ofile
+
+ # Now quote all the things that may contain metacharacters while being
+ # careful not to overquote the AC_SUBSTed values. We take copies of the
+ # variables and quote the copies for generation of the libtool script.
+ for var in echo old_CC old_CFLAGS \
+ AR AR_FLAGS CC LD LN_S NM SHELL \
+ reload_flag reload_cmds wl \
+ pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+ thread_safe_flag_spec whole_archive_flag_spec libname_spec \
+ library_names_spec soname_spec \
+ RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \
+ old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \
+ postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \
+ old_striplib striplib file_magic_cmd export_symbols_cmds \
+ deplibs_check_method allow_undefined_flag no_undefined_flag \
+ finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
+ global_symbol_to_c_name_address \
+ hardcode_libdir_flag_spec hardcode_libdir_separator \
+ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+ compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+
+ case $var in
+ reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \
+ old_postinstall_cmds | old_postuninstall_cmds | \
+ export_symbols_cmds | archive_cmds | archive_expsym_cmds | \
+ extract_expsyms_cmds | old_archive_from_expsyms_cmds | \
+ postinstall_cmds | postuninstall_cmds | \
+ finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+ # Double-quote double-evaled strings.
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+ ;;
+ *)
+ eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+ ;;
+ esac
+ done
+
+ cat <<__EOF__ > "${ofile}T"
+#! $SHELL
+
+# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996-2000 Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# 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 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 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.
+#
+# 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.
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="sed -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$need_lc
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# The default C compiler.
+CC=$lt_CC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_pic_flag
+pic_mode=$pic_mode
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_compiler_c_o
+
+# Can we write directly to a .lo ?
+compiler_o_lo=$lt_compiler_o_lo
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_link_static_flag
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+ case $host_os in
+ aix3*)
+ cat <<\EOF >> "${ofile}T"
+
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+EOF
+ ;;
+ esac
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2*)
+ cat <<'EOF' >> "${ofile}T"
+ # This is a source program that is used to create dlls on Windows
+ # Don't remove nor modify the starting and closing comments
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# # ifdef __CYGWIN32__
+# # define __CYGWIN__ __CYGWIN32__
+# # endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+# __hDllInstance_base = hInst;
+# return TRUE;
+# }
+# /* ltdll.c ends here */
+ # This is a source program that is used to create import libraries
+ # on Windows for dlls which lack them. Don't remove nor modify the
+ # starting and closing comments
+# /* impgen.c starts here */
+# /* Copyright (C) 1999-2000 Free Software Foundation, Inc.
+#
+# This file is part of GNU libtool.
+#
+# 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 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 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.
+# */
+#
+# #include <stdio.h> /* for printf() */
+# #include <unistd.h> /* for open(), lseek(), read() */
+# #include <fcntl.h> /* for O_RDONLY, O_BINARY */
+# #include <string.h> /* for strdup() */
+#
+# /* O_BINARY isn't required (or even defined sometimes) under Unix */
+# #ifndef O_BINARY
+# #define O_BINARY 0
+# #endif
+#
+# static unsigned int
+# pe_get16 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[2];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 2);
+# return b[0] + (b[1]<<8);
+# }
+#
+# static unsigned int
+# pe_get32 (fd, offset)
+# int fd;
+# int offset;
+# {
+# unsigned char b[4];
+# lseek (fd, offset, SEEK_SET);
+# read (fd, b, 4);
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# static unsigned int
+# pe_as32 (ptr)
+# void *ptr;
+# {
+# unsigned char *b = ptr;
+# return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24);
+# }
+#
+# int
+# main (argc, argv)
+# int argc;
+# char *argv[];
+# {
+# int dll;
+# unsigned long pe_header_offset, opthdr_ofs, num_entries, i;
+# unsigned long export_rva, export_size, nsections, secptr, expptr;
+# unsigned long name_rvas, nexp;
+# unsigned char *expdata, *erva;
+# char *filename, *dll_name;
+#
+# filename = argv[1];
+#
+# dll = open(filename, O_RDONLY|O_BINARY);
+# if (dll < 1)
+# return 1;
+#
+# dll_name = filename;
+#
+# for (i=0; filename[i]; i++)
+# if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':')
+# dll_name = filename + i +1;
+#
+# pe_header_offset = pe_get32 (dll, 0x3c);
+# opthdr_ofs = pe_header_offset + 4 + 20;
+# num_entries = pe_get32 (dll, opthdr_ofs + 92);
+#
+# if (num_entries < 1) /* no exports */
+# return 1;
+#
+# export_rva = pe_get32 (dll, opthdr_ofs + 96);
+# export_size = pe_get32 (dll, opthdr_ofs + 100);
+# nsections = pe_get16 (dll, pe_header_offset + 4 +2);
+# secptr = (pe_header_offset + 4 + 20 +
+# pe_get16 (dll, pe_header_offset + 4 + 16));
+#
+# expptr = 0;
+# for (i = 0; i < nsections; i++)
+# {
+# char sname[8];
+# unsigned long secptr1 = secptr + 40 * i;
+# unsigned long vaddr = pe_get32 (dll, secptr1 + 12);
+# unsigned long vsize = pe_get32 (dll, secptr1 + 16);
+# unsigned long fptr = pe_get32 (dll, secptr1 + 20);
+# lseek(dll, secptr1, SEEK_SET);
+# read(dll, sname, 8);
+# if (vaddr <= export_rva && vaddr+vsize > export_rva)
+# {
+# expptr = fptr + (export_rva - vaddr);
+# if (export_rva + export_size > vaddr + vsize)
+# export_size = vsize - (export_rva - vaddr);
+# break;
+# }
+# }
+#
+# expdata = (unsigned char*)malloc(export_size);
+# lseek (dll, expptr, SEEK_SET);
+# read (dll, expdata, export_size);
+# erva = expdata - export_rva;
+#
+# nexp = pe_as32 (expdata+24);
+# name_rvas = pe_as32 (expdata+32);
+#
+# printf ("EXPORTS\n");
+# for (i = 0; i<nexp; i++)
+# {
+# unsigned long name_rva = pe_as32 (erva+name_rvas+i*4);
+# printf ("\t%s @ %ld ;\n", erva+name_rva, 1+ i);
+# }
+#
+# return 0;
+# }
+# /* impgen.c ends here */
+
+EOF
+ ;;
+ esac
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ sed '$q' "$ltmain" >> "${ofile}T" || (rm -f "${ofile}T"; exit 1)
+
+ mv -f "${ofile}T" "$ofile" || \
+ (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T")
+ chmod +x "$ofile"
+fi
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+# Prevent multiple expansion
+
+cat >conftest.$ac_ext <<_ACEOF
+#line 6511 "configure"
+#include "confdefs.h"
+
+ #include <stdio.h>
+ #ifdef __GLIBC__
+ glibc
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "glibc" >/dev/null 2>&1; then
+
+cat >>confdefs.h <<\EOF
+#define _GNU_SOURCE 1
+EOF
+
+fi
+rm -f conftest*
+
+# Check whether --enable-largefile or --disable-largefile was given.
+if test "${enable_largefile+set}" = set; then
+ enableval="$enable_largefile"
+
+fi;
+if test "$enable_largefile" != no; then
+
+ echo "$as_me:6537: checking for special C compiler options needed for large files" >&5
+echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_largefile_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6549 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6569: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6572: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6575: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6578: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext
+ CC="$CC -n32"
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6588: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6591: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6594: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6597: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_largefile_CC=' -n32'; break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+echo "$as_me:6611: result: $ac_cv_sys_largefile_CC" >&5
+echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ echo "$as_me:6617: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ while :; do
+ ac_cv_sys_file_offset_bits=no
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6625 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6645: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6648: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6651: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6654: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6663 "configure"
+#include "confdefs.h"
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6684: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6687: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6690: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6693: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_file_offset_bits=64; break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ break
+done
+fi
+echo "$as_me:6704: result: $ac_cv_sys_file_offset_bits" >&5
+echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
+if test "$ac_cv_sys_file_offset_bits" != no; then
+
+cat >>confdefs.h <<EOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+EOF
+
+fi
+rm -f conftest*
+ echo "$as_me:6714: checking for _LARGE_FILES value needed for large files" >&5
+echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_large_files+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ while :; do
+ ac_cv_sys_large_files=no
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6722 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6742: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6745: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6748: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6751: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6760 "configure"
+#include "confdefs.h"
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6781: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6784: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6787: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6790: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_large_files=1; break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ break
+done
+fi
+echo "$as_me:6801: result: $ac_cv_sys_large_files" >&5
+echo "${ECHO_T}$ac_cv_sys_large_files" >&6
+if test "$ac_cv_sys_large_files" != no; then
+
+cat >>confdefs.h <<EOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+EOF
+
+fi
+rm -f conftest*
+fi
+
+echo "$as_me:6813: checking for X" >&5
+echo $ECHO_N "checking for X... $ECHO_C" >&6
+
+# Check whether --with-x or --without-x was given.
+if test "${with_x+set}" = set; then
+ withval="$with_x"
+
+fi;
+# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
+if test "x$with_x" = xno; then
+ # The user explicitly disabled X.
+ have_x=disabled
+else
+ if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
+ # Both variables are already set.
+ have_x=yes
+ else
+ if test "${ac_cv_have_x+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ # One or both of the vars are not set, and there is no cached value.
+ac_x_includes=no ac_x_libraries=no
+rm -fr conftest.dir
+if mkdir conftest.dir; then
+ cd conftest.dir
+ # Make sure to not put "make" in the Imakefile rules, since we grep it out.
+ cat >Imakefile <<'EOF'
+acfindx:
+ @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
+EOF
+ if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
+ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+ eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
+ # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
+ for ac_extension in a so sl; do
+ if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
+ test -f $ac_im_libdir/libX11.$ac_extension; then
+ ac_im_usrlibdir=$ac_im_libdir; break
+ fi
+ done
+ # Screen out bogus values from the imake configuration. They are
+ # bogus both because they are the default anyway, and because
+ # using them would break gcc on systems where it needs fixed includes.
+ case $ac_im_incroot in
+ /usr/include) ;;
+ *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
+ esac
+ case $ac_im_usrlibdir in
+ /usr/lib | /lib) ;;
+ *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
+ esac
+ fi
+ cd ..
+ rm -fr conftest.dir
+fi
+
+# Standard set of common directories for X headers.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+ac_x_header_dirs='
+/usr/X11/include
+/usr/X11R6/include
+/usr/X11R5/include
+/usr/X11R4/include
+
+/usr/include/X11
+/usr/include/X11R6
+/usr/include/X11R5
+/usr/include/X11R4
+
+/usr/local/X11/include
+/usr/local/X11R6/include
+/usr/local/X11R5/include
+/usr/local/X11R4/include
+
+/usr/local/include/X11
+/usr/local/include/X11R6
+/usr/local/include/X11R5
+/usr/local/include/X11R4
+
+/usr/X386/include
+/usr/x386/include
+/usr/XFree86/include/X11
+
+/usr/include
+/usr/local/include
+/usr/unsupported/include
+/usr/athena/include
+/usr/local/x11r5/include
+/usr/lpp/Xamples/include
+
+/usr/openwin/include
+/usr/openwin/share/include'
+
+if test "$ac_x_includes" = no; then
+ # Guess where to find include files, by looking for Intrinsic.h.
+ # First, try using that file with no special directory specified.
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6910 "configure"
+#include "confdefs.h"
+#include <X11/Intrinsic.h>
+_ACEOF
+if { (eval echo "$as_me:6914: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:6920: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ # We can compile using X headers with no special include directory.
+ac_x_includes=
+else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ for ac_dir in $ac_x_header_dirs; do
+ if test -r "$ac_dir/X11/Intrinsic.h"; then
+ ac_x_includes=$ac_dir
+ break
+ fi
+done
+fi
+rm -f conftest.err conftest.$ac_ext
+fi # $ac_x_includes = no
+
+if test "$ac_x_libraries" = no; then
+ # Check for the libraries.
+ # See if we find them without any special options.
+ # Don't add to $LIBS permanently.
+ ac_save_LIBS=$LIBS
+ LIBS="-lXt $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6953 "configure"
+#include "confdefs.h"
+#include <X11/Intrinsic.h>
+int
+main ()
+{
+XtMalloc (0)
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6965: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:6968: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:6971: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6974: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ LIBS=$ac_save_LIBS
+# We can link X programs with no special library path.
+ac_x_libraries=
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+LIBS=$ac_save_LIBS
+for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
+do
+ # Don't even attempt the hair of trying to link an X program!
+ for ac_extension in a so sl; do
+ if test -r $ac_dir/libXt.$ac_extension; then
+ ac_x_libraries=$ac_dir
+ break 2
+ fi
+ done
+done
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi # $ac_x_libraries = no
+
+if test "$ac_x_includes" = no || test "$ac_x_libraries" = no; then
+ # Didn't find X anywhere. Cache the known absence of X.
+ ac_cv_have_x="have_x=no"
+else
+ # Record where we found X for the cache.
+ ac_cv_have_x="have_x=yes \
+ ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
+fi
+fi
+
+ fi
+ eval "$ac_cv_have_x"
+fi # $with_x != no
+
+if test "$have_x" != yes; then
+ echo "$as_me:7012: result: $have_x" >&5
+echo "${ECHO_T}$have_x" >&6
+ no_x=yes
+else
+ # If each of the values was on the command line, it overrides each guess.
+ test "x$x_includes" = xNONE && x_includes=$ac_x_includes
+ test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
+ # Update the cache value to reflect the command line values.
+ ac_cv_have_x="have_x=yes \
+ ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
+ echo "$as_me:7022: result: libraries $x_libraries, headers $x_includes" >&5
+echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6
+fi
+
+if test "$no_x" = yes; then
+ # Not all programs may use this symbol, but it does not hurt to define it.
+
+cat >>confdefs.h <<\EOF
+#define X_DISPLAY_MISSING 1
+EOF
+
+ X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
+else
+ if test -n "$x_includes"; then
+ X_CFLAGS="$X_CFLAGS -I$x_includes"
+ fi
+
+ # It would also be nice to do this for all -L options, not just this one.
+ if test -n "$x_libraries"; then
+ X_LIBS="$X_LIBS -L$x_libraries"
+ # For Solaris; some versions of Sun CC require a space after -R and
+ # others require no space. Words are not sufficient . . . .
+ case `(uname -sr) 2>/dev/null` in
+ "SunOS 5"*)
+ echo "$as_me:7046: checking whether -R must be followed by a space" >&5
+echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6
+ ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7050 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7062: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7065: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7068: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7071: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_R_nospace=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_R_nospace=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ if test $ac_R_nospace = yes; then
+ echo "$as_me:7081: result: no" >&5
+echo "${ECHO_T}no" >&6
+ X_LIBS="$X_LIBS -R$x_libraries"
+ else
+ LIBS="$ac_xsave_LIBS -R $x_libraries"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7087 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7099: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7102: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7105: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7108: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_R_space=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_R_space=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ if test $ac_R_space = yes; then
+ echo "$as_me:7118: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ X_LIBS="$X_LIBS -R $x_libraries"
+ else
+ echo "$as_me:7122: result: neither works" >&5
+echo "${ECHO_T}neither works" >&6
+ fi
+ fi
+ LIBS=$ac_xsave_LIBS
+ esac
+ fi
+
+ # Check for system-dependent libraries X programs must link with.
+ # Do this before checking for the system-independent R6 libraries
+ # (-lICE), since we may need -lsocket or whatever for X linking.
+
+ if test "$ISC" = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+ else
+ # Martyn Johnson says this is needed for Ultrix, if the X
+ # libraries were built with DECnet support. And Karl Berry says
+ # the Alpha needs dnet_stub (dnet does not exist).
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7142 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char XOpenDisplay ();
+int
+main ()
+{
+XOpenDisplay ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7161: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7164: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7167: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7170: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+echo "$as_me:7176: checking for dnet_ntoa in -ldnet" >&5
+echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 7184 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dnet_ntoa ();
+int
+main ()
+{
+dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7203: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7206: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7209: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7212: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dnet_dnet_ntoa=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:7223: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
+if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+ if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+ echo "$as_me:7230: checking for dnet_ntoa in -ldnet_stub" >&5
+echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 7238 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dnet_ntoa ();
+int
+main ()
+{
+dnet_ntoa ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7257: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7260: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7263: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7266: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:7277: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
+if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+ fi
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS="$ac_xsave_LIBS"
+
+ # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+ # to get the SysV transport functions.
+ # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
+ # needs -lnsl.
+ # The nsl library prevents programs from opening the X display
+ # on Irix 5.2, according to T.E. Dickey.
+ # The functions gethostbyname, getservbyname, and inet_addr are
+ # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
+ echo "$as_me:7296: checking for gethostbyname" >&5
+echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6
+if test "${ac_cv_func_gethostbyname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7302 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char gethostbyname (); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gethostbyname ();
+char (*f) ();
+
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
+choke me
+#else
+f = gethostbyname;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7333: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7336: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7339: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7342: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_gethostbyname=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_gethostbyname=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:7352: result: $ac_cv_func_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6
+
+ if test $ac_cv_func_gethostbyname = no; then
+ echo "$as_me:7356: checking for gethostbyname in -lnsl" >&5
+echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6
+if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 7364 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gethostbyname ();
+int
+main ()
+{
+gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7383: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7386: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7389: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7392: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_nsl_gethostbyname=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_nsl_gethostbyname=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:7403: result: $ac_cv_lib_nsl_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6
+if test $ac_cv_lib_nsl_gethostbyname = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+ if test $ac_cv_lib_nsl_gethostbyname = no; then
+ echo "$as_me:7410: checking for gethostbyname in -lbsd" >&5
+echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 7418 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gethostbyname ();
+int
+main ()
+{
+gethostbyname ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7437: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7440: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7443: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7446: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_bsd_gethostbyname=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:7457: result: $ac_cv_lib_bsd_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
+if test $ac_cv_lib_bsd_gethostbyname = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd"
+fi
+
+ fi
+ fi
+
+ # lieder@skyler.mavd.honeywell.com says without -lsocket,
+ # socket/setsockopt and other routines are undefined under SCO ODT
+ # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
+ # on later versions), says Simon Leinen: it contains gethostby*
+ # variants that don't use the nameserver (or something). -lsocket
+ # must be given before -lnsl if both are needed. We assume that
+ # if connect needs -lnsl, so does gethostbyname.
+ echo "$as_me:7473: checking for connect" >&5
+echo $ECHO_N "checking for connect... $ECHO_C" >&6
+if test "${ac_cv_func_connect+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7479 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char connect (); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char connect ();
+char (*f) ();
+
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_connect) || defined (__stub___connect)
+choke me
+#else
+f = connect;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7510: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7513: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7516: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7519: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_connect=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_connect=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:7529: result: $ac_cv_func_connect" >&5
+echo "${ECHO_T}$ac_cv_func_connect" >&6
+
+ if test $ac_cv_func_connect = no; then
+ echo "$as_me:7533: checking for connect in -lsocket" >&5
+echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_connect+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 7541 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char connect ();
+int
+main ()
+{
+connect ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7560: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7563: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7566: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7569: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_socket_connect=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_socket_connect=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:7580: result: $ac_cv_lib_socket_connect" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
+if test $ac_cv_lib_socket_connect = yes; then
+ X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+ fi
+
+ # Guillermo Gomez says -lposix is necessary on A/UX.
+ echo "$as_me:7589: checking for remove" >&5
+echo $ECHO_N "checking for remove... $ECHO_C" >&6
+if test "${ac_cv_func_remove+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7595 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char remove (); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char remove ();
+char (*f) ();
+
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_remove) || defined (__stub___remove)
+choke me
+#else
+f = remove;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7626: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7629: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7632: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7635: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_remove=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_remove=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:7645: result: $ac_cv_func_remove" >&5
+echo "${ECHO_T}$ac_cv_func_remove" >&6
+
+ if test $ac_cv_func_remove = no; then
+ echo "$as_me:7649: checking for remove in -lposix" >&5
+echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
+if test "${ac_cv_lib_posix_remove+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 7657 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char remove ();
+int
+main ()
+{
+remove ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7676: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7679: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7682: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7685: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_posix_remove=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_posix_remove=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:7696: result: $ac_cv_lib_posix_remove" >&5
+echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
+if test $ac_cv_lib_posix_remove = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+ fi
+
+ # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+ echo "$as_me:7705: checking for shmat" >&5
+echo $ECHO_N "checking for shmat... $ECHO_C" >&6
+if test "${ac_cv_func_shmat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7711 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char shmat (); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shmat ();
+char (*f) ();
+
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_shmat) || defined (__stub___shmat)
+choke me
+#else
+f = shmat;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7742: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7745: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7748: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7751: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_shmat=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_shmat=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:7761: result: $ac_cv_func_shmat" >&5
+echo "${ECHO_T}$ac_cv_func_shmat" >&6
+
+ if test $ac_cv_func_shmat = no; then
+ echo "$as_me:7765: checking for shmat in -lipc" >&5
+echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 7773 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char shmat ();
+int
+main ()
+{
+shmat ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7792: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7795: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7798: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7801: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_ipc_shmat=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_ipc_shmat=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:7812: result: $ac_cv_lib_ipc_shmat" >&5
+echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
+if test $ac_cv_lib_ipc_shmat = yes; then
+ X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+ fi
+ fi
+
+ # Check for libraries that X11R6 Xt/Xaw programs need.
+ ac_save_LDFLAGS=$LDFLAGS
+ test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+ # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+ # check for ICE first), but we must link in the order -lSM -lICE or
+ # we get undefined symbols. So assume we have SM if we have ICE.
+ # These have to be linked with before -lX11, unlike the other
+ # libraries we check for below, so use a different variable.
+ # John Interrante, Karl Berry
+ echo "$as_me:7830: checking for IceConnectionNumber in -lICE" >&5
+echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 7838 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char IceConnectionNumber ();
+int
+main ()
+{
+IceConnectionNumber ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7857: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7860: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7863: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7866: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:7877: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
+if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
+ X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
+fi
+
+ LDFLAGS=$ac_save_LDFLAGS
+
+fi
+
+ succeeded=no
+
+ if test -z "$PKG_CONFIG"; then
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:7892: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ if $as_executable_p "$ac_dir/$ac_word"; then
+ ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+ echo "$as_me:7909: found $ac_dir/$ac_word" >&5
+ break
+fi
+done
+
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+if test -n "$PKG_CONFIG"; then
+ echo "$as_me:7921: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+ echo "$as_me:7924: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ fi
+
+ if test "$PKG_CONFIG" = "no" ; then
+ echo "*** The pkg-config script could not be found. Make sure it is"
+ echo "*** in your path, or set the PKG_CONFIG environment variable"
+ echo "*** to the full path to pkg-config."
+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+ else
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ echo "$as_me:7938: checking for glib-2.0 gobject-2.0" >&5
+echo $ECHO_N "checking for glib-2.0 gobject-2.0... $ECHO_C" >&6
+
+ if $PKG_CONFIG --exists "glib-2.0 gobject-2.0" ; then
+ echo "$as_me:7942: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ succeeded=yes
+
+ echo "$as_me:7946: checking GLIB_CFLAGS" >&5
+echo $ECHO_N "checking GLIB_CFLAGS... $ECHO_C" >&6
+ GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 gobject-2.0"`
+ echo "$as_me:7949: result: $GLIB_CFLAGS" >&5
+echo "${ECHO_T}$GLIB_CFLAGS" >&6
+
+ echo "$as_me:7952: checking GLIB_LIBS" >&5
+echo $ECHO_N "checking GLIB_LIBS... $ECHO_C" >&6
+ GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 gobject-2.0"`
+ echo "$as_me:7955: result: $GLIB_LIBS" >&5
+echo "${ECHO_T}$GLIB_LIBS" >&6
+ else
+ GLIB_CFLAGS=""
+ GLIB_LIBS=""
+ ## If we have a custom action on failure, don't print errors, but
+ ## do set a variable so people can do so.
+ GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 gobject-2.0"`
+ echo $GLIB_PKG_ERRORS
+ fi
+
+ else
+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
+ fi
+ fi
+
+ if test $succeeded = yes; then
+ :
+ else
+ { { echo "$as_me:7975: error: Library requirements (glib-2.0 gobject-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5
+echo "$as_me: error: Library requirements (glib-2.0 gobject-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ succeeded=no
+
+ if test -z "$PKG_CONFIG"; then
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:7985: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+ IFS=$ac_save_IFS
+ test -z "$ac_dir" && ac_dir=.
+ if $as_executable_p "$ac_dir/$ac_word"; then
+ ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+ echo "$as_me:8002: found $ac_dir/$ac_word" >&5
+ break
+fi
+done
+
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+if test -n "$PKG_CONFIG"; then
+ echo "$as_me:8014: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+ echo "$as_me:8017: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ fi
+
+ if test "$PKG_CONFIG" = "no" ; then
+ echo "*** The pkg-config script could not be found. Make sure it is"
+ echo "*** in your path, or set the PKG_CONFIG environment variable"
+ echo "*** to the full path to pkg-config."
+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+ else
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ echo "$as_me:8031: checking for glib-2.0 gobject-2.0 gtk+-2.0" >&5
+echo $ECHO_N "checking for glib-2.0 gobject-2.0 gtk+-2.0... $ECHO_C" >&6
+
+ if $PKG_CONFIG --exists "glib-2.0 gobject-2.0 gtk+-2.0" ; then
+ echo "$as_me:8035: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ succeeded=yes
+
+ echo "$as_me:8039: checking GTK_CFLAGS" >&5
+echo $ECHO_N "checking GTK_CFLAGS... $ECHO_C" >&6
+ GTK_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 gobject-2.0 gtk+-2.0"`
+ echo "$as_me:8042: result: $GTK_CFLAGS" >&5
+echo "${ECHO_T}$GTK_CFLAGS" >&6
+
+ echo "$as_me:8045: checking GTK_LIBS" >&5
+echo $ECHO_N "checking GTK_LIBS... $ECHO_C" >&6
+ GTK_LIBS=`$PKG_CONFIG --libs "glib-2.0 gobject-2.0 gtk+-2.0"`
+ echo "$as_me:8048: result: $GTK_LIBS" >&5
+echo "${ECHO_T}$GTK_LIBS" >&6
+ else
+ GTK_CFLAGS=""
+ GTK_LIBS=""
+ ## If we have a custom action on failure, don't print errors, but
+ ## do set a variable so people can do so.
+ GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 gobject-2.0 gtk+-2.0"`
+ echo $GTK_PKG_ERRORS
+ fi
+
+ else
+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
+ fi
+ fi
+
+ if test $succeeded = yes; then
+ :
+ else
+ { { echo "$as_me:8068: error: Library requirements (glib-2.0 gobject-2.0 gtk+-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5
+echo "$as_me: error: Library requirements (glib-2.0 gobject-2.0 gtk+-2.0) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+cat >>confdefs.h <<\EOF
+#define G_DISABLE_DEPRECATED 1
+EOF
+
+cat >>confdefs.h <<\EOF
+#define GDK_DISABLE_DEPRECATED 1
+EOF
+
+cat >>confdefs.h <<\EOF
+#define GTK_DISABLE_DEPRECATED 1
+EOF
+
+for ac_func in getpt grantpt unlockpt ptsname ptsname_r
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:8088: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 8094 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+char (*f) ();
+
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+f = $ac_func;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:8125: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:8128: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:8131: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:8134: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:8144: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+EOF
+
+fi
+done
+
+echo "$as_me:8154: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
+ # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+ enableval="$enable_maintainer_mode"
+ USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi;
+ echo "$as_me:8163: result: $USE_MAINTAINER_MODE" >&5
+echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
+
+if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+ MAINT=$MAINTAINER_MODE_TRUE
+
+if test x$USE_MAINTAINER_MODE != x ; then
+ if test x$USE_MAINTAINER_MODE != xno ; then
+ VTE_DEBUG=1
+ fi
+fi
+if test x$VTE_DEBUG = x1 ; then
+
+cat >>confdefs.h <<\EOF
+#define VTE_DEBUG
+EOF
+
+fi
+
+ ac_config_headers="$ac_config_headers config.h"
+
+ac_config_files="$ac_config_files Makefile src/Makefile"
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+ (set) 2>&1 |
+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n \
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ ;;
+ esac;
+} |
+ sed '
+ t clear
+ : clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ : end' >>confcache
+if cmp -s $cache_file confcache; then :; else
+ if test -w $cache_file; then
+ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+ cat confcache >$cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[ ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[ ]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:8270: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+ac_cs_invocation="\$0 \$@"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+ set -o posix
+fi
+
+# Name of the executable.
+as_me=`echo "$0" |sed 's,.*[\\/],,'`
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+ # We could just check for DJGPP; but this test a) works b) is more generic
+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+ if test -f conf$$.exe; then
+ # Don't use ln at all; we don't have any links
+ as_ln_s='cp -p'
+ else
+ as_ln_s='ln -s'
+ fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+as_executable_p="test -f"
+
+# Support unset when possible.
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+# NLS nuisances.
+$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; }
+$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; }
+$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; }
+$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; }
+$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; }
+$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; }
+$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; }
+$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" $as_nl"
+
+# CDPATH.
+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; }
+
+exec 6>&1
+
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\EOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf@gnu.org>."
+EOF
+
+cat >>$CONFIG_STATUS <<EOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.52,
+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+EOF
+
+cat >>$CONFIG_STATUS <<\EOF
+# If no file are specified by the user, then we need to provide default
+# value. By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=*)
+ ac_option=`expr "x$1" : 'x\([^=]*\)='`
+ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+ shift
+ set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
+ shift
+ ;;
+ -*);;
+ *) # This is not an option, so the user has probably given explicit
+ # arguments.
+ ac_need_defaults=false;;
+ esac
+
+ case $1 in
+ # Handling of the options.
+EOF
+cat >>$CONFIG_STATUS <<EOF
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
+ exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
+EOF
+cat >>$CONFIG_STATUS <<\EOF
+ --version | --vers* | -V )
+ echo "$ac_cs_version"; exit 0 ;;
+ --he | --h)
+ # Conflict between --help and --header
+ { { echo "$as_me:8446: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; };;
+ --help | --hel | -h )
+ echo "$ac_cs_usage"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ shift
+ CONFIG_FILES="$CONFIG_FILES $1"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ shift
+ CONFIG_HEADERS="$CONFIG_HEADERS $1"
+ ac_need_defaults=false;;
+
+ # This is an error.
+ -*) { { echo "$as_me:8465: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+ { (exit 1); exit 1; }; } ;;
+
+ *) ac_config_targets="$ac_config_targets $1" ;;
+
+ esac
+ shift
+done
+
+exec 5>>config.log
+cat >&5 << _ACEOF
+
+## ----------------------- ##
+## Running config.status. ##
+## ----------------------- ##
+
+This file was extended by $as_me 2.52, executed with
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ > $ac_cs_invocation
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+
+_ACEOF
+EOF
+
+cat >>$CONFIG_STATUS <<EOF
+#
+# INIT-COMMANDS section.
+#
+
+AMDEP_TRUE="$AMDEP_TRUE"
+ac_aux_dir="$ac_aux_dir"
+
+EOF
+
+cat >>$CONFIG_STATUS <<\EOF
+for ac_config_target in $ac_config_targets
+do
+ case "$ac_config_target" in
+ # Handling of arguments.
+ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+ "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+ "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ *) { { echo "$as_me:8514: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+ trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+: ${TMPDIR=/tmp}
+{
+ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+ test -n "$tmp" && test -d "$tmp"
+} ||
+{
+ tmp=$TMPDIR/cs$$-$RANDOM
+ (umask 077 && mkdir $tmp)
+} ||
+{
+ echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+ { (exit 1); exit 1; }
+}
+
+EOF
+
+cat >>$CONFIG_STATUS <<EOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+ # Protect against being on the right side of a sed subst in config.status.
+ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@DEFS@,$DEFS,;t t
+s,@LIBS@,$LIBS,;t t
+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@PACKAGE@,$PACKAGE,;t t
+s,@VERSION@,$VERSION,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@ACLOCAL@,$ACLOCAL,;t t
+s,@AUTOCONF@,$AUTOCONF,;t t
+s,@AUTOMAKE@,$AUTOMAKE,;t t
+s,@AUTOHEADER@,$AUTOHEADER,;t t
+s,@MAKEINFO@,$MAKEINFO,;t t
+s,@AMTAR@,$AMTAR,;t t
+s,@install_sh@,$install_sh,;t t
+s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+s,@AWK@,$AWK,;t t
+s,@SET_MAKE@,$SET_MAKE,;t t
+s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
+s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
+s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
+s,@DEPDIR@,$DEPDIR,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@am__include@,$am__include,;t t
+s,@am__quote@,$am__quote,;t t
+s,@CCDEPMODE@,$CCDEPMODE,;t t
+s,@LN_S@,$LN_S,;t t
+s,@ECHO@,$ECHO,;t t
+s,@RANLIB@,$RANLIB,;t t
+s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s,@STRIP@,$STRIP,;t t
+s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
+s,@CPP@,$CPP,;t t
+s,@LIBTOOL@,$LIBTOOL,;t t
+s,@X_CFLAGS@,$X_CFLAGS,;t t
+s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t
+s,@X_LIBS@,$X_LIBS,;t t
+s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t
+s,@PKG_CONFIG@,$PKG_CONFIG,;t t
+s,@GLIB_CFLAGS@,$GLIB_CFLAGS,;t t
+s,@GLIB_LIBS@,$GLIB_LIBS,;t t
+s,@GTK_CFLAGS@,$GTK_CFLAGS,;t t
+s,@GTK_LIBS@,$GTK_LIBS,;t t
+s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
+s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
+s,@MAINT@,$MAINT,;t t
+CEOF
+
+EOF
+
+ cat >>$CONFIG_STATUS <<\EOF
+ # Split the substitutions into bite-sized pieces for seds with
+ # small command number limits, like on Digital OSF/1 and HP-UX.
+ ac_max_sed_lines=48
+ ac_sed_frag=1 # Number of current file.
+ ac_beg=1 # First line for current file.
+ ac_end=$ac_max_sed_lines # Line after last line for current file.
+ ac_more_lines=:
+ ac_sed_cmds=
+ while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ else
+ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+ fi
+ if test ! -s $tmp/subs.frag; then
+ ac_more_lines=false
+ else
+ # The purpose of the label and of the branching condition is to
+ # speed up the sed processing (if there are no `@' at all, there
+ # is no need to browse any of the substitutions).
+ # These are the two extra sed commands mentioned above.
+ (echo ':t
+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ fi
+ ac_sed_frag=`expr $ac_sed_frag + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_lines`
+ fi
+ done
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+ fi
+fi # test -n "$CONFIG_FILES"
+
+EOF
+cat >>$CONFIG_STATUS <<\EOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+ ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ { case "$ac_dir" in
+ [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+ *) as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+ case $as_mkdir_dir in
+ # Skip DOS drivespec
+ ?:) as_incr_dir=$as_mkdir_dir ;;
+ *)
+ as_incr_dir=$as_incr_dir/$as_mkdir_dir
+ test -d "$as_incr_dir" || mkdir "$as_incr_dir"
+ ;;
+ esac
+done; }
+
+ ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case $srcdir in
+ .) ac_srcdir=.
+ if test -z "$ac_dots"; then
+ ac_top_srcdir=.
+ else
+ ac_top_srcdir=`echo $ac_dots | sed 's,/$,,'`
+ fi ;;
+ [\\/]* | ?:[\\/]* )
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir ;;
+ *) # Relative path.
+ ac_srcdir=$ac_dots$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_dots$srcdir ;;
+ esac
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_dots$INSTALL ;;
+ esac
+
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:8767: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated automatically by config.status. */
+ configure_input="Generated automatically from `echo $ac_file_in |
+ sed 's,.*/,,'` by configure."
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:8785: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo $f
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+ { { echo "$as_me:8798: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+EOF
+cat >>$CONFIG_STATUS <<EOF
+ sed "$ac_vpsub
+$extrasub
+EOF
+cat >>$CONFIG_STATUS <<\EOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+ rm -f $tmp/stdin
+ if test x"$ac_file" != x-; then
+ mv $tmp/out $ac_file
+ else
+ cat $tmp/out
+ rm -f $tmp/out
+ fi
+
+done
+EOF
+cat >>$CONFIG_STATUS <<\EOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='[ ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case $ac_file in
+ - | *:- | *:-:* ) # input from stdin
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ * ) ac_file_in=$ac_file.in ;;
+ esac
+
+ test x"$ac_file" != x- && { echo "$as_me:8859: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+ # First look for the input files in the build tree, otherwise in the
+ # src tree.
+ ac_file_inputs=`IFS=:
+ for f in $ac_file_in; do
+ case $f in
+ -) echo $tmp/stdin ;;
+ [\\/$]*)
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:8870: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ echo $f;;
+ *) # Relative
+ if test -f "$f"; then
+ # Build tree
+ echo $f
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo $srcdir/$f
+ else
+ # /dev/null tree
+ { { echo "$as_me:8883: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+ esac
+ done` || { (exit 1); exit 1; }
+ # Remove the trailing spaces.
+ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+
+EOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h. The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status. Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\EOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[ ]*#[ ]*define[ ][ ]*\(\([^ (][^ (]*\)([^)]*)\)[ ]*\(.*\)$,${ac_dA}\2${ac_dB}\1${ac_dC}\3${ac_dD},gp
+t end
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+EOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless. Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\EOF
+s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+EOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo ' if egrep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo ' :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+ # Write a limited-size here document to $tmp/defines.sed.
+ echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+ # Speed up: don't consider the non `#define' lines.
+ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
+ # Work around the forget-to-reset-the-flag bug.
+ echo 't clr' >>$CONFIG_STATUS
+ echo ': clr' >>$CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+ echo 'CEOF
+ sed -f $tmp/defines.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+ rm -f conftest.defines
+ mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo ' fi # egrep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+ # Write a limited-size here document to $tmp/undefs.sed.
+ echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+ # Speed up: don't consider the non `#undef'
+ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
+ # Work around the forget-to-reset-the-flag bug.
+ echo 't clr' >>$CONFIG_STATUS
+ echo ': clr' >>$CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+ echo 'CEOF
+ sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+ rm -f $tmp/in
+ mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+ rm -f conftest.undefs
+ mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\EOF
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated automatically by config.status. */
+ if test x"$ac_file" = x-; then
+ echo "/* Generated automatically by configure. */" >$tmp/config.h
+ else
+ echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h
+ fi
+ cat $tmp/in >>$tmp/config.h
+ rm -f $tmp/in
+ if test x"$ac_file" != x-; then
+ if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
+ { echo "$as_me:9000: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ { case "$ac_dir" in
+ [\\/]* | ?:[\\/]* ) as_incr_dir=;;
+ *) as_incr_dir=.;;
+esac
+as_dummy="$ac_dir"
+for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
+ case $as_mkdir_dir in
+ # Skip DOS drivespec
+ ?:) as_incr_dir=$as_mkdir_dir ;;
+ *)
+ as_incr_dir=$as_incr_dir/$as_mkdir_dir
+ test -d "$as_incr_dir" || mkdir "$as_incr_dir"
+ ;;
+ esac
+done; }
+
+ fi
+ rm -f $ac_file
+ mv $tmp/config.h $ac_file
+ fi
+ else
+ cat $tmp/config.h
+ rm -f $tmp/config.h
+ fi
+ # Run the commands associated with the file.
+ case $ac_file in
+ config.h ) # update the timestamp
+echo timestamp >"./stamp-h1"
+ ;;
+ esac
+done
+EOF
+cat >>$CONFIG_STATUS <<\EOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+ ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+
+ case $ac_dest in
+ default-1 )
+test x"$AMDEP_TRUE" != x"" ||
+for mf in $CONFIG_FILES; do
+ case "$mf" in
+ Makefile) dirpart=.;;
+ */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+ *) continue;;
+ esac
+ grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+ # Extract the definition of DEP_FILES from the Makefile without
+ # running `make'.
+ DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n -e '/^U = / s///p' < "$mf"`
+ test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+ # We invoke sed twice because it is the simplest approach to
+ # changing $(DEPDIR) to its actual value in the expansion.
+ for file in `sed -n -e '
+ /^DEP_FILES = .*\\\\$/ {
+ s/^DEP_FILES = //
+ :loop
+ s/\\\\$//
+ p
+ n
+ /\\\\$/ b loop
+ p
+ }
+ /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+ $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+done
+ ;;
+ esac
+done
+EOF
+
+cat >>$CONFIG_STATUS <<\EOF
+
+{ (exit 0); exit 0; }
+EOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || { (exit 1); exit 1; }
+fi
+
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..a729b06
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,32 @@
+AC_INIT(configure.ac)
+AM_INIT_AUTOMAKE(vte,0.1)
+AM_PROG_LIBTOOL
+AC_EGREP_CPP(glibc,
+ [
+ #include <stdio.h>
+ #ifdef __GLIBC__
+ glibc
+ #endif
+ ],
+ AC_DEFINE(_GNU_SOURCE,1,[Use all features.]))
+AC_SYS_LARGEFILE
+AC_PATH_XTRA
+PKG_CHECK_MODULES(GLIB,[glib-2.0 gobject-2.0])
+PKG_CHECK_MODULES(GTK, [glib-2.0 gobject-2.0 gtk+-2.0])
+AC_DEFINE(G_DISABLE_DEPRECATED,1,[Disable deprecated glib features.])
+AC_DEFINE(GDK_DISABLE_DEPRECATED,1,[Disable deprecated gdk features.])
+AC_DEFINE(GTK_DISABLE_DEPRECATED,1,[Disable deprecated gtk features.])
+AC_CHECK_FUNCS(getpt grantpt unlockpt ptsname ptsname_r)
+AM_MAINTAINER_MODE
+
+if test x$USE_MAINTAINER_MODE != x ; then
+ if test x$USE_MAINTAINER_MODE != xno ; then
+ VTE_DEBUG=1
+ fi
+fi
+if test x$VTE_DEBUG = x1 ; then
+ AC_DEFINE(VTE_DEBUG,,[Enable debugging of unrecognized sequences.])
+fi
+
+AM_CONFIG_HEADER(config.h)
+AC_OUTPUT([Makefile src/Makefile])
diff --git a/doc/ctlseqs.ms b/doc/ctlseqs.ms
new file mode 100644
index 0000000..026d78f
--- /dev/null
+++ b/doc/ctlseqs.ms
@@ -0,0 +1,1647 @@
+.\"#! troff -ms $1 -*- Nroff -*-
+.\" "Xterm Control Sequences" document
+.\" $Xorg: ctlseqs.ms,v 1.3 2000/08/17 19:42:51 cpqbld Exp $
+.\"
+.\"
+.\"
+.\"
+.\" $XFree86: xc/doc/specs/xterm/ctlseqs.ms,v 3.43 2001/03/29 22:48:02 dickey Exp $
+.\"
+.\"
+.\" Copyright 1996,1997,1998,1999,2000 by Thomas E. Dickey
+.\"
+.\" All Rights Reserved
+.\"
+.\" Permission is hereby granted, free of charge, to any person obtaining a
+.\" copy of this software and associated documentation files (the
+.\" "Software"), to deal in the Software without restriction, including
+.\" without limitation the rights to use, copy, modify, merge, publish,
+.\" distribute, sublicense, and/or sell copies of the Software, and to
+.\" permit persons to whom the Software is furnished to do so, subject to
+.\" the following conditions:
+.\"
+.\" The above copyright notice and this permission notice shall be included
+.\" in all copies or substantial portions of the Software.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+.\" IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
+.\" CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+.\" TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+.\" SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+.\"
+.\" Except as contained in this notice, the name(s) of the above copyright
+.\" holders shall not be used in advertising or otherwise to promote the
+.\" sale, use or other dealings in this Software without prior written
+.\" authorization.
+.\"
+.\"
+.\" Copyright 1991, 1994 X Consortium
+.\"
+.\" Permission is hereby granted, free of charge, to any person obtaining
+.\" a copy of this software and associated documentation files (the
+.\" "Software"), to deal in the Software without restriction, including
+.\" without limitation the rights to use, copy, modify, merge, publish,
+.\" distribute, sublicense, and/or sell copies of the Software, and to
+.\" permit persons to whom the Software is furnished to do so, subject to
+.\" the following conditions:
+.\"
+.\" The above copyright notice and this permission notice shall be
+.\" included in all copies or substantial portions of the Software.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+.\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+.\" OTHER DEALINGS IN THE SOFTWARE.
+.\"
+.\" Except as contained in this notice, the name of the X Consortium shall
+.\" not be used in advertising or otherwise to promote the sale, use or
+.\" other dealings in this Software without prior written authorization
+.\" from the X Consortium.
+.\"
+.\" X Window System is a trademark of X Consortium, Inc.
+.\"
+.\" Originally written by Edward Moy, University of California,
+.\" Berkeley, edmoy@violet.berkeley.edu, for the X.V10R4 xterm.
+.\" The X Consortium staff has since updated it for X11.
+.\" Updated by Thomas E. Dickey for XFree86 3.2 - XFree86 4.0
+.\"
+.\" Run this file through troff and use the -ms macro package.
+.\"
+.if n .pl 9999v \" no page breaks in nroff
+.ND
+.de St
+.sp
+.nr PD 0
+.nr PI 1.5i
+.nr VS 16
+..
+.de Ed
+.nr PD .3v
+.nr VS 12
+..
+.ds CH \" as nothing
+.ds LH Xterm Control Sequences
+.nr s 6*\n(PS/10
+.ds L \s\nsBEL\s0
+.ds E \s\nsESC\s0
+.ds T \s\nsTAB\s0
+.ds X \s\nsETX\s0
+.ds N \s\nsENQ\s0
+.ds e \s\nsETB\s0
+.ds C \s\nsCAN\s0
+.ds S \s\nsSUB\s0
+.\" space between chars
+.ie t .ds s \|
+.el .ds s " \"
+.nr [W \w'\*L'u
+.nr w \w'\*E'u
+.if \nw>\n([W .nr [W \nw
+.nr w \w'\*T'u
+.if \nw>\n([W .nr [W \nw
+.nr w \w'\*X'u
+.if \nw>\n([W .nr [W \nw
+.nr w \w'\*N'u
+.if \nw>\n([W .nr [W \nw
+.nr w \w'\*e'u
+.if \nw>\n([W .nr [W \nw
+.nr w \w'\*C'u
+.if \nw>\n([W .nr [W \nw
+.nr w \w'\*S'u
+.if \nw>\n([W .nr [W \nw
+.nr [W +\w'\|\|'u
+.de []
+.nr w \w'\\$2'
+.nr H \\n([Wu-\\nwu
+.nr h \\nHu/2u
+.\" do fancy box in troff
+.ie t .ds \\$1 \(br\v'-1p'\(br\v'1p'\h'\\nhu'\\$2\h'\\nHu-\\nhu'\(br\l'-\\n([Wu\(ul'\v'-1p'\(br\l'-\\n([Wu\(rn'\v'1p'\*s
+.el .ds \\$1 \\$2\*s
+..
+.[] Et \v'-1p'\*X\v'1p'
+.[] En \v'-1p'\*N\v'1p'
+.[] Be \v'-1p'\*L\v'1p'
+.[] AP \v'-1p'\s\nsAPC\s0\v'1p'
+.[] Bs \v'-1p'\s\nsBS\s0\v'1p'
+.[] Cs \v'-1p'\s\nsCSI\s0\v'1p'
+.[] S3 \v'-1p'\s\nsSS3\s0\v'1p'
+.[] Dc \v'-1p'\s\nsDCS\s0\v'1p'
+.[] Os \v'-1p'\s\nsOSC\s0\v'1p'
+.[] PM \v'-1p'\s\nsPM\s0\v'1p'
+.[] ST \v'-1p'\s\nsST\s0\v'1p'
+.[] Ta \v'-1p'\*T\v'1p'
+.[] Lf \v'-1p'\s\nsLF\s0\v'1p'
+.[] Vt \v'-1p'\s\nsVT\s0\v'1p'
+.[] Ff \v'-1p'\s\nsFF\s0\v'1p'
+.[] Cr \v'-1p'\s\nsCR\s0\v'1p'
+.[] So \v'-1p'\s\nsSO\s0\v'1p'
+.[] Sp \v'-1p'\s\nsSP\s0\v'1p'
+.[] Si \v'-1p'\s\nsSI\s0\v'1p'
+.[] Eb \v'-1p'\*e\v'1p'
+.[] Ca \v'-1p'\*C\v'1p'
+.[] Su \v'-1p'\*S\v'1p'
+.[] Es \v'-1p'\*E\v'1p'
+.[] Fs \v'-1p'\s\nsFS\s0\v'1p'
+.[] Gs \v'-1p'\s\nsGS\s0\v'1p'
+.[] Rs \v'-1p'\s\nsRS\s0\v'1p'
+.[] Us \v'-1p'\s\nsUS\s0\v'1p'
+.[] XX \v'-1p'\s\nsXX\s0\v'1p'
+.[] $ $
+.[] ! !
+.[] # #
+.[] % %
+.[] (( (
+.[] ) )
+.[] * *
+.[] + +
+.[] 0 0
+.[] 1 1
+.[] 2 2
+.[] 3 3
+.[] 4 4
+.[] 5 5
+.[] 6 6
+.[] 7 7
+.[] 8 8
+.[] 9 9
+.[] : :
+.[] ; ;
+.[] = =
+.[] / /
+.[] < <
+.[] > >
+.[] ? ?
+.[] @ @
+.[] A A
+.[] cB B
+.[] C C
+.[] D D
+.[] E E
+.[] F F
+.[] G G
+.[] H H
+.[] I I
+.[] J J
+.[] K K
+.[] L L
+.[] M M
+.[] N N
+.[] O O
+.[] P P
+.[] Q Q
+.[] R R
+.[] S S
+.[] T T
+.[] V V
+.[] W W
+.[] XX X
+.[] Y Y
+.[] Z Z
+.[] [[ [
+.[] ]] ]
+.[] bS \\e
+.[] { {
+.[] ] ]
+.[] & &
+.[] ^ ^
+.[] _ _
+.[] qu \'
+.[] ` \`
+.[] a a
+.[] b b
+.[] c c
+.[] d d
+.[] f f
+.[] g g
+.[] h h
+.[] i i
+.[] j j
+.[] k k
+.[] l l
+.[] m m
+.[] n n
+.[] o o
+.[] p p
+.[] q q
+.[] r r
+.[] cs s
+.[] t t
+.[] u u
+.[] v v
+.[] w w
+.[] x x
+.[] y y
+.[] z z
+.[] | |
+.[] } }
+.[] ! !
+.[] c" \(lq
+.[] c~ ~
+.[] Sc \fIc\fP
+.ds Cc \fIC\fP
+.ds Cb \fIC\v'.3m'\h'-.2m'\s-2b\s0\v'-.3m'\fP
+.ds Cx \fIC\v'.3m'\h'-.2m'\s-2x\s0\v'-.3m'\fP
+.ds Cy \fIC\v'.3m'\h'-.2m'\s-2y\s0\v'-.3m'\fP
+.ds Pb \fIP\v'.3m'\h'-.2m'\s-2b\s0\v'-.3m'\fP
+.ds Pc \fIP\v'.3m'\h'-.2m'\s-2c\s0\v'-.3m'\fP
+.ds Pe \fIP\v'.3m'\h'-.2m'\s-2e\s0\v'-.3m'\fP
+.ds Pl \fIP\v'.3m'\h'-.2m'\s-2l\s0\v'-.3m'\fP
+.ds Pm \fIP\v'.3m'\h'-.2m'\s-2m\s0\v'-.3m'\fP
+.ds Pp \fIP\v'.3m'\h'-.2m'\s-2p\s0\v'-.3m'\fP
+.ds Pr \fIP\v'.3m'\h'-.2m'\s-2r\s0\v'-.3m'\fP
+.ds Ps \fIP\v'.3m'\h'-.2m'\s-2s\s0\v'-.3m'\fP
+.ds Pt \fIP\v'.3m'\h'-.2m'\s-2t\s0\v'-.3m'\fP
+.ds Pu \fIP\v'.3m'\h'-.2m'\s-2u\s0\v'-.3m'\fP
+.ds Pv \fIP\v'.3m'\h'-.2m'\s-2v\s0\v'-.3m'\fP
+.ds Ix \fIx\fP
+.ds Iy \fIy\fP
+.ds Iw \fIw\fP
+.ds Ih \fIh\fP
+.ds Ir \fIr\fP
+.ds Ic \fIc\fP
+.ie t .nr LL 6.5i
+.el .nr LL 72m
+.if n .na
+.TL
+Xterm Control Sequences
+.AU
+Edward Moy
+.AI
+University of California, Berkeley
+.sp
+Revised by
+.AU
+Stephen Gildea
+.AI
+X Consortium (1994)
+.AU
+Thomas Dickey
+.AI
+XFree86 Project (1996-1999)
+.AU
+.
+.am BT \" add page numbers after first page
+.ds CF %
+..
+.SH
+Definitions
+.IP \*(Sc
+The literal character \fIc\fP.
+.IP \*(Cc
+A single (required) character.
+.IP \*(Ps
+A single (usually optional) numeric parameter, composed of one of more digits.
+.IP \*(Pm
+A multiple numeric parameter composed of any number of single numeric
+parameters, separated by \*; character(s).
+Individual values for the parameters are listed with \*(Ps .
+.IP \*(Pt
+A text parameter composed of printable characters.
+.
+.SH
+C1 (8-Bit) Control Characters
+.ds RH C1 (8-Bit) Control Characters
+.LP
+The \fIxterm\fP program recognizes both 8-bit and 7-bit control characters.
+It generates 7-bit controls (by default) or 8-bit if S8C1T is enabled.
+The following pairs of 7-bit and 8-bit control characters are equivalent:
+.St
+.IP \\*(Es\\*D
+Index (IND: 0x84)
+.IP \\*(Es\\*E
+Next Line (NEL: 0x85)
+.IP \\*(Es\\*H
+Tab Set (HTS: 0x88)
+.IP \\*(Es\\*M
+Reverse Index (RI: 0x8d)
+.IP \\*(Es\\*N
+Single Shift Select of G2 Character Set (SS2: 0x8e): affects next character only
+.IP \\*(Es\\*O
+Single Shift Select of G3 Character Set (SS3: 0x8f): affects next character only
+.IP \\*(Es\\*P
+Device Control String (DCS: 0x90)
+.IP \\*(Es\\*V
+Start of Guarded Area (SPA: 0x96)
+.IP \\*(Es\\*W
+End of Guarded Area (EPA: 0x97)
+.IP \\*(Es\\(*X
+Start of String (SOS: 0x98)
+.IP \\*(Es\\*Z
+Return Terminal ID (DECID: 0x9a). Obsolete form of \*(Cs\*c (DA).
+.IP \\*(Es\\*([[
+Control Sequence Introducer (CSI: 0x9b)
+.IP \\*(Es\\*(bS
+String Terminator (ST: 0x9c)
+.IP \\*(Es\\*(]]
+Operating System Command (OSC: 0x9d)
+.IP \\*(Es\\*^
+Privacy Message (PM: 0x9e)
+.IP \\*(Es\\*_
+Application Program Command (APC: 0x9f)
+.Ed
+.sp
+.LP
+These control characters are used in the vtXXX emulation.
+.
+.SH
+VT100 Mode
+.ds RH VT100 Mode
+.LP
+Most of these control sequences are standard VT102 control sequences,
+but there is support for later DEC VT terminals (i.e., VT220 and VT320),
+as well as ISO 6429 and \fIaixterm\fP color controls.
+VT102 features not supported are
+auto-repeat and blinking characters.
+There are additional control sequences to provide
+\fIxterm-\fPdependent functions, such as the scrollbar or window size.
+Where the function is specified by DEC or ISO 6429, the code assigned
+to it is given in parentheses. The escape codes to designate and invoke
+character sets are specified by ISO 2022; see that document for a
+discussion of character sets.
+.
+.St
+.\"
+.LP
+.B
+Single-character functions
+.\"
+.IP \\*(Be
+Bell (Ctrl-G)
+.
+.IP \\*(Bs
+Backspace (Ctrl-H)
+.
+.IP \\*(Cr
+Carriage Return (Ctrl-M)
+.
+.IP \\*(En
+Return Terminal Status (Ctrl-E).
+Default response is the terminal name, e.g., "xterm", but may be overridden
+by a resource \fIanswerbackString\fP.
+.
+.IP \\*(Ff
+Form Feed or New Page (NP) (Ctrl-L) same as LF
+.
+.IP \\*(Lf
+Line Feed or New Line (NL) (Ctrl-J)
+.
+.IP \\*(So
+Shift Out (Ctrl-N) \(-> Switch to Alternate Character Set: invokes the
+G1 character set.
+.
+.IP \\*(Sp
+Space.
+.
+.IP \\*(Ta
+Horizontal Tab (HT) (Ctrl-I)
+.
+.IP \\*(Vt
+Vertical Tab (Ctrl-K) same as LF
+.
+.IP \\*(Si
+Shift In (Ctrl-O) \(-> Switch to Standard Character Set: invokes the
+G0 character set (the default).
+.Ed
+.\"
+.\"
+.\"
+.St
+.LP
+.B
+Controls beginning with ESC (other than those where ESC is part of a 7-bit equivalent to 8-bit C1 controls), ordered by the final character(s).
+.\"
+.IP \\*(Es\\*(Sp\\*F
+7-bit controls (S7C1T).
+.
+.IP \\*(Es\\*(Sp\\*G
+8-bit controls (S8C1T).
+.
+.IP \\*(Es\\*(Sp\\*L
+Set ANSI conformance level 1 (vt100, 7-bit controls).
+.
+.IP \\*(Es\\*(Sp\\*M
+Set ANSI conformance level 2 (vt200).
+.
+.IP \\*(Es\\*(Sp\\*N
+Set ANSI conformance level 3 (vt300).
+.
+.IP \\*(Es\\*#\\*3
+DEC double-height line, top half (DECDHL)
+.
+.IP \\*(Es\\*#\\*4
+DEC double-height line, bottom half (DECDHL)
+.
+.IP \\*(Es\\*#\\*5
+DEC single-width line (DECSWL)
+.
+.IP \\*(Es\\*#\\*6
+DEC double-width line (DECDWL)
+.
+.IP \\*(Es\\*#\\*8
+DEC Screen Alignment Test (DECALN)
+.
+.IP \\*(Es\\*%\\*@
+Select default character set, ISO 8859-1 (ISO 2022)
+.
+.IP \\*(Es\\*%\\*G
+Select UTF-8 character set (ISO 2022)
+.
+.IP \\*(Es\\*(((\\*(Cc
+Designate G0 Character Set (ISO 2022)
+.IP \\*(Es\\*)\\*(Cc
+Designate G1 Character Set (ISO 2022)
+.
+.IP \\*(Es\\**\\*(Cc
+Designate G2 Character Set (ISO 2022)
+.
+.IP \\*(Es\\*+\\*(Cc
+Designate G3 Character Set (ISO 2022)
+.br
+Final character \*(Cc for designating character sets
+(\*0, \*A and \*(cB apply to VT100 and up, the remainder to VT220 and up):
+ \*(Cc = \*0 \(-> DEC Special Character and Line Drawing Set
+ \*(Cc = \*A \(-> United Kingdom (UK)
+ \*(Cc = \*(cB \(-> United States (USASCII)
+ \*(Cc = \*4 \(-> Dutch
+ \*(Cc = \*C or \*5 \(-> Finnish
+ \*(Cc = \*R \(-> French
+ \*(Cc = \*Q \(-> French Canadian
+ \*(Cc = \*K \(-> German
+ \*(Cc = \*Y \(-> Italian
+ \*(Cc = \*E or \*6 \(-> Norwegian/Danish
+ \*(Cc = \*Z \(-> Spanish
+ \*(Cc = \*H or \*7 \(-> Swedish
+ \*(Cc = \*= \(-> Swiss
+.
+.IP \\*(Es\\*7
+Save Cursor (DECSC)
+.
+.IP \\*(Es\\*8
+Restore Cursor (DECRC)
+.
+.IP \\*(Es\\*=
+Application Keypad (DECPAM)
+.
+.IP \\*(Es\\*>
+Normal Keypad (DECPNM)
+.
+.IP \\*(Es\\*F
+Cursor to lower left corner of screen (if
+enabled by the \fBhpLowerleftBugCompat\fP resource).
+.
+.IP \\*(Es\\*c
+Full Reset (RIS)
+.
+.IP \\*(Es\\*l
+Memory Lock (per HP terminals). Locks memory above the cursor.
+.
+.IP \\*(Es\\*m
+Memory Unlock (per HP terminals)
+.
+.IP \\*(Es\\*n
+Invoke the G2 Character Set (LS2)
+.
+.IP \\*(Es\\*o
+Invoke the G3 Character Set (LS3)
+.
+.IP \\*(Es\\*|
+Invoke the G3 Character Set as GR (LS3R). Has no visible effect in \fIxterm\fP.
+.
+.IP \\*(Es\\*}
+Invoke the G2 Character Set as GR (LS2R). Has no visible effect in \fIxterm\fP.
+.
+.IP \\*(Es\\*(c~
+Invoke the G1 Character Set as GR (LS1R). Has no visible effect in \fIxterm\fP.
+.Ed
+.
+.St
+.LP
+.B
+Application Program-Control functions
+.IP \\*(AP\\*(Pt\\*s\\*(ST
+\fIxterm\fP implements no APC functions; \*(Pt is ignored.
+\*(Pt need not be printable characters.
+.Ed
+.
+.St
+.LP
+.B
+Device-Control functions
+.IP \\*(Dc\\*(Ps\\*;\\*(Ps\\*|\\*(Pt\\*s\\*(ST
+User-Defined Keys (DECUDK).
+The first parameter:
+ \*(Ps = \*0 \(-> Clear all UDK definitions before starting (default)
+ \*(Ps = \*1 \(-> Erase Below (default)
+.br
+The second parameter:
+ \*(Ps = \*0 \(-> Lock the keys (default)
+ \*(Ps = \*1 \(-> Do not lock.
+.br
+The third parameter is a ';'-separated list of strings denoting
+the key-code separated by a '/' from the hex-encoded key value.
+The key codes correspond to the DEC function-key codes (e.g., F6=17).
+.
+.IP \\*(Dc\\*$\\*q\\*(Pt\\*s\\*(ST
+Request Status String (DECRQSS).
+The string following the "q" is one of the following:
+ \*(c"\*q \(-> DECSCA
+ \*(c"\*p \(-> DECSCL
+ \*r \(-> DECSTBM
+ \*m \(-> SGR
+.br
+\fIxterm\fP responds with
+\*(Dc\*1\*$\*r\*(Pt\*s\*(ST
+for valid requests, replacing the \*(Pt with the corresponding \*(Cs
+string,
+or
+\*(Dc\*0\*$\*r\*(Pt\*s\*(ST
+for invalid requests.
+.
+.IP \\*(Dc\\*+\\*q\\*(Pt\\*s\\*(ST
+Request Termcap/Terminfo String (xterm, experimental).
+The string following the "q" is a list of names
+encoded in hexadecimal (2 digits per character)
+separated by \*;
+which correspond to termcap or terminfo key names.
+.br
+\fIxterm\fP responds with
+\*(Dc\*1\*+\*r\*(Pt\*s\*(ST
+for valid requests, adding to \*(Pt an \*=,
+and the value of the corresponding string that xterm would send,
+or
+\*(Dc\*0\*+\*r\*(Pt\*s\*(ST
+for invalid requests.
+The strings are encoded in hexadecimal (2 digits per character).
+.Ed
+.\"
+.St
+.LP
+.B
+Functions using CSI, ordered by the final character(s)
+.IP \\*(Cs\\*(Ps\\*s\\*@
+Insert \*(Ps (Blank) Character(s) (default = 1) (ICH)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*A
+Cursor Up \*(Ps Times (default = 1) (CUU)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*(cB
+Cursor Down \*(Ps Times (default = 1) (CUD)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*C
+Cursor Forward \*(Ps Times (default = 1) (CUF)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*D
+Cursor Backward \*(Ps Times (default = 1) (CUB)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*E
+Cursor Next Line \*(Ps Times (default = 1) (CNL)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*F
+Cursor Preceding Line \*(Ps Times (default = 1) (CPL)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*G
+Cursor Character Absolute [column] (default = [row,1]) (CHA)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*H
+Cursor Position [row;column] (default = [1,1]) (CUP)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*I
+Cursor Forward Tabulation \*(Ps tab stops (default = 1) (CHT)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*J
+Erase in Display (ED)
+ \*(Ps = \*0 \(-> Erase Below (default)
+ \*(Ps = \*1 \(-> Erase Above
+ \*(Ps = \*2 \(-> Erase All
+ \*(Ps = \*3 \(-> Erase Saved Lines (xterm)
+.
+.IP \\*(Cs\\*?\\*(Ps\\*s\\*J
+Erase in Display (DECSED)
+ \*(Ps = \*0 \(-> Selective Erase Below (default)
+ \*(Ps = \*1 \(-> Selective Erase Above
+ \*(Ps = \*2 \(-> Selective Erase All
+.
+.IP \\*(Cs\\*(Ps\\*s\\*K
+Erase in Line (EL)
+ \*(Ps = \*0 \(-> Erase to Right (default)
+ \*(Ps = \*1 \(-> Erase to Left
+ \*(Ps = \*2 \(-> Erase All
+.
+.IP \\*(Cs\\*?\\*(Ps\\*s\\*K
+Erase in Line (DECSEL)
+ \*(Ps = \*0 \(-> Selective Erase to Right (default)
+ \*(Ps = \*1 \(-> Selective Erase to Left
+ \*(Ps = \*2 \(-> Selective Erase All
+.
+.IP \\*(Cs\\*(Ps\\*s\\*L
+Insert \*(Ps Line(s) (default = 1) (IL)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*M
+Delete \*(Ps Line(s) (default = 1) (DL)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*P
+Delete \*(Ps Character(s) (default = 1) (DCH)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*S
+Scroll up \*(Ps lines (default = 1) (SU)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*T
+Scroll down \*(Ps lines (default = 1) (SD)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*T
+Initiate hilite mouse tracking.
+Parameters are [func;startx;starty;firstrow;lastrow].
+See the section \fBMouse Tracking\fP.
+.
+.IP \\*(Cs\\*(Ps\\*s\\*(XX
+Erase \*(Ps Character(s) (default = 1) (ECH)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*Z
+Cursor Backward Tabulation \*(Ps tab stops (default = 1) (CBT)
+.
+.IP \\*(Cs\\*(Pm\\*s\\*`
+Character Position Absolute [column] (default = [row,1]) (HPA)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*b
+Repeat the preceding graphic character \*(Ps times (REP)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*c
+Send Device Attributes (Primary DA)
+ \*(Ps = \*0, 1 or omitted \(-> request attributes from terminal.
+The response depends on the \fBdecTerminalId\fP resource setting.
+ \(-> \*(Cs\*?\*1\*;\*2\*c (``VT100 with Advanced Video Option'')
+ \(-> \*(Cs\*?\*1\*;\*0\*c (``VT101 with No Options'')
+ \(-> \*(Cs\*?\*6\*c (``VT102'')
+ \(-> \*(Cs\*?\*6\*0\*;\*1\*;\*2\*;\*6\*;\*8\*;\*9\*;\*1\*5\*;\*c (``VT220'')
+.br
+The VT100-style response parameters do not mean anything by themselves.
+VT220 parameters do, telling the host what features the terminal supports:
+ \(-> \*1 132-columns
+ \(-> \*2 Printer
+ \(-> \*6 Selective erase
+ \(-> \*8 User-defined keys
+ \(-> \*9 National replacement character sets
+ \(-> \*1\*5 Technical characters
+.
+.IP \\*(Cs\\*>\\*(Ps\\*s\\*c
+Send Device Attributes (Secondary DA)
+ \*(Ps = \*0, 1 or omitted \(-> request the terminal's identification code.
+The response depends on the \fBdecTerminalId\fP resource setting.
+It should apply only to VT220 and up, but \fIxterm\fP extends this to VT100.
+ \(-> \*(Cs\*(Pp\*s\*;\*(Pv\*s\*;\*(Pc\*s\*c
+.br
+where \*(Pp denotes the terminal type
+ \(-> \*0 (``VT100'')
+ \(-> \*1 (``VT220'')
+.br
+and \*(Pv is the firmware version (for \fIxterm\fP, this is the XFree86
+patch number, starting with 95).
+In a DEC terminal, \*(Pc indicates the ROM cartridge
+registration number and is always zero.
+.
+.IP \\*(Cs\\*(Pm\\*s\\*d
+Line Position Absolute [row] (default = [1,column]) (VPA)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*f
+Horizontal and Vertical Position [row;column] (default = [1,1]) (HVP)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*g
+Tab Clear (TBC)
+ \*(Ps = \*0 \(-> Clear Current Column (default)
+ \*(Ps = \*3 \(-> Clear All
+.
+.IP \\*(Cs\\*(Pm\\*s\\*h
+Set Mode (SM)
+ \*(Ps = \*2 \(-> Keyboard Action Mode (AM)
+ \*(Ps = \*4 \(-> Insert Mode (IRM)
+ \*(Ps = \*1\*2 \(-> Send/receive (SRM)
+ \*(Ps = \*2\*0 \(-> Automatic Newline (LNM)
+.
+.IP \\*(Cs\\*?\\*(Pm\\*s\\*h
+DEC Private Mode Set (DECSET)
+ \*(Ps = \*1 \(-> Application Cursor Keys (DECCKM)
+ \*(Ps = \*2 \(-> Designate USASCII for character sets G0-G3 (DECANM),
+and set VT100 mode.
+ \*(Ps = \*3 \(-> 132 Column Mode (DECCOLM)
+ \*(Ps = \*4 \(-> Smooth (Slow) Scroll (DECSCLM)
+ \*(Ps = \*5 \(-> Reverse Video (DECSCNM)
+ \*(Ps = \*6 \(-> Origin Mode (DECOM)
+ \*(Ps = \*7 \(-> Wraparound Mode (DECAWM)
+ \*(Ps = \*8 \(-> Auto-repeat Keys (DECARM)
+ \*(Ps = \*9 \(-> Send Mouse X & Y on button press.
+See the section \fBMouse Tracking\fP.
+ \*(Ps = \*1\*8 \(-> Print form feed (DECPFF)
+ \*(Ps = \*1\*9 \(-> Set print extent to full screen (DECPEX)
+ \*(Ps = \*2\*5 \(-> Show Cursor (DECTCEM)
+ \*(Ps = \*3\*0 \(-> Show scrollbar (rxvt).
+ \*(Ps = \*3\*5 \(-> Enable font-shifting functions (rxvt).
+ \*(Ps = \*3\*8 \(-> Enter Tektronix Mode (DECTEK)
+ \*(Ps = \*4\*0 \(-> Allow 80 \z\(<-\(-> 132 Mode
+ \*(Ps = \*4\*1 \(-> \fImore\fP(1) fix (see \fIcurses\fP resource)
+ \*(Ps = \*4\*2 \(-> Enable Nation Replacement Character sets (DECNRCM)
+ \*(Ps = \*4\*4 \(-> Turn On Margin Bell
+ \*(Ps = \*4\*5 \(-> Reverse-wraparound Mode
+ \*(Ps = \*4\*6 \(-> Start Logging
+(normally disabled by a compile-time option)
+ \*(Ps = \*4\*7 \(-> Use Alternate Screen Buffer (unless
+disabled by the \fBtiteInhibit\fP resource)
+ \*(Ps = \*6\*6 \(-> Application keypad (DECNKM)
+ \*(Ps = \*6\*7 \(-> Backarrow key sends delete (DECBKM)
+ \*(Ps = \*1\*0\*0\*0 \(-> Send Mouse X & Y on button press and release.
+See the section \fBMouse Tracking\fP.
+ \*(Ps = \*1\*0\*0\*1 \(-> Use Hilite Mouse Tracking.
+ \*(Ps = \*1\*0\*0\*2 \(-> Use Cell Motion Mouse Tracking.
+ \*(Ps = \*1\*0\*0\*3 \(-> Use All Motion Mouse Tracking.
+ \*(Ps = \*1\*0\*1\*0 \(-> Scroll to bottom on tty output (rxvt).
+ \*(Ps = \*1\*0\*1\*1 \(-> Scroll to bottom on key press (rxvt).
+ \*(Ps = \*1\*0\*3\*5 \(-> Enable special modifiers for Alt and NumLock keys.
+ \*(Ps = \*1\*0\*3\*6 \(-> Send ESC when Meta modifies a key
+(enables the \fBmetaSendsEscape\fP resource).
+ \*(Ps = \*1\*0\*3\*7 \(-> Send DEL from the editing-keypad Delete key
+ \*(Ps = \*1\*0\*4\*7 \(-> Use Alternate Screen Buffer (unless
+disabled by the \fBtiteInhibit\fP resource)
+ \*(Ps = \*1\*0\*4\*8 \(-> Save cursor as in DECSC (unless
+disabled by the \fBtiteInhibit\fP resource)
+ \*(Ps = \*1\*0\*4\*9 \(-> Save cursor as in DECSC
+and use Alternate Screen Buffer, clearing it first (unless
+disabled by the \fBtiteInhibit\fP resource)
+ \*(Ps = \*1\*0\*5\*1 \(-> Set Sun function-key mode.
+ \*(Ps = \*1\*0\*5\*2 \(-> Set HP function-key mode.
+ \*(Ps = \*1\*0\*6\*0 \(-> Set legacy keyboard emulation (X11R6).
+ \*(Ps = \*1\*0\*6\*1 \(-> Set Sun/PC keyboard emulation of VT220 keyboard.
+.
+.IP \\*(Cs\\*(Pm\\*s\\*i
+Media Copy (MC)
+ \*(Ps = \*0 \(-> Print screen (default)
+ \*(Ps = \*4 \(-> Turn off printer controller mode
+ \*(Ps = \*5 \(-> Turn on printer controller mode
+.
+.IP \\*(Cs\\*?\\*(Pm\\*s\\*i
+Media Copy (MC, DEC-specific)
+ \*(Ps = \*1 \(-> Print line containing cursor
+ \*(Ps = \*4 \(-> Turn off autoprint mode
+ \*(Ps = \*5 \(-> Turn on autoprint mode
+ \*(Ps = \*1 \*0 \(-> Print composed display, ignores DECPEX
+ \*(Ps = \*1 \*1 \(-> Print all pages
+.
+.IP \\*(Cs\\*(Pm\\*s\\*l
+Reset Mode (RM)
+ \*(Ps = \*2 \(-> Keyboard Action Mode (AM)
+ \*(Ps = \*4 \(-> Replace Mode (IRM)
+ \*(Ps = \*1\*2 \(-> Send/receive (SRM)
+ \*(Ps = \*2\*0 \(-> Normal Linefeed (LNM)
+.
+.IP \\*(Cs\\*?\\*(Pm\\*s\\*l
+DEC Private Mode Reset (DECRST)
+ \*(Ps = \*1 \(-> Normal Cursor Keys (DECCKM)
+ \*(Ps = \*2 \(-> Designate VT52 mode (DECANM).
+ \*(Ps = \*3 \(-> 80 Column Mode (DECCOLM)
+ \*(Ps = \*4 \(-> Jump (Fast) Scroll (DECSCLM)
+ \*(Ps = \*5 \(-> Normal Video (DECSCNM)
+ \*(Ps = \*6 \(-> Normal Cursor Mode (DECOM)
+ \*(Ps = \*7 \(-> No Wraparound Mode (DECAWM)
+ \*(Ps = \*8 \(-> No Auto-repeat Keys (DECARM)
+ \*(Ps = \*9 \(-> Don't Send Mouse X & Y on button press
+ \*(Ps = \*1\*8 \(-> Don't print form feed (DECPFF)
+ \*(Ps = \*1\*9 \(-> Limit print to scrolling region (DECPEX)
+ \*(Ps = \*2\*5 \(-> Hide Cursor (DECTCEM)
+ \*(Ps = \*3\*0 \(-> Don't show scrollbar (rxvt).
+ \*(Ps = \*3\*5 \(-> Disable font-shifting functions (rxvt).
+ \*(Ps = \*4\*0 \(-> Disallow 80 \z\(<-\(-> 132 Mode
+ \*(Ps = \*4\*1 \(-> No \fImore\fP(1) fix (see \fIcurses\fP resource)
+ \*(Ps = \*4\*2 \(-> Disable Nation Replacement Character sets (DECNRCM)
+ \*(Ps = \*4\*4 \(-> Turn Off Margin Bell
+ \*(Ps = \*4\*5 \(-> No Reverse-wraparound Mode
+ \*(Ps = \*4\*6 \(-> Stop Logging
+(normally disabled by a compile-time option)
+ \*(Ps = \*4\*7 \(-> Use Normal Screen Buffer
+ \*(Ps = \*6\*6 \(-> Numeric keypad (DECNKM)
+ \*(Ps = \*6\*7 \(-> Backarrow key sends backspace (DECBKM)
+ \*(Ps = \*1\*0\*0\*0 \(-> Don't Send Mouse X & Y on button press and
+release.
+See the section \fBMouse Tracking\fP.
+ \*(Ps = \*1\*0\*0\*1 \(-> Don't Use Hilite Mouse Tracking
+ \*(Ps = \*1\*0\*0\*2 \(-> Don't Use Cell Motion Mouse Tracking
+ \*(Ps = \*1\*0\*0\*3 \(-> Don't Use All Motion Mouse Tracking
+ \*(Ps = \*1\*0\*1\*0 \(-> Don't scroll to bottom on tty output (rxvt).
+ \*(Ps = \*1\*0\*1\*1 \(-> Don't scroll to bottom on key press (rxvt).
+ \*(Ps = \*1\*0\*3\*5 \(-> Disable special modifiers for Alt and NumLock keys.
+ \*(Ps = \*1\*0\*3\*6 \(-> Don't send ESC when Meta modifies a key
+(disables the \fBmetaSendsEscape\fP resource).
+ \*(Ps = \*1\*0\*3\*7 \(-> Send VT220 Remove from the editing-keypad Delete key
+ \*(Ps = \*1\*0\*4\*7 \(-> Use Normal Screen Buffer, clearing screen
+first if in the Alternate Screen (unless
+disabled by the \fBtiteInhibit\fP resource)
+ \*(Ps = \*1\*0\*4\*8 \(-> Restore cursor as in DECRC (unless
+disabled by the \fBtiteInhibit\fP resource)
+ \*(Ps = \*1\*0\*4\*9 \(-> Use Normal Screen Buffer and restore cursor
+as in DECRC (unless
+disabled by the \fBtiteInhibit\fP resource)
+ \*(Ps = \*1\*0\*5\*1 \(-> Reset Sun function-key mode.
+ \*(Ps = \*1\*0\*5\*2 \(-> Reset HP function-key mode.
+ \*(Ps = \*1\*0\*6\*0 \(-> Reset legacy keyboard emulation (X11R6).
+ \*(Ps = \*1\*0\*6\*1 \(-> Reset Sun/PC keyboard emulation of VT220 keyboard.
+.
+.IP \\*(Cs\\*(Pm\\*s\\*m
+Character Attributes (SGR)
+ \*(Ps = \*0 \(-> Normal (default)
+ \*(Ps = \*1 \(-> Bold
+ \*(Ps = \*4 \(-> Underlined
+ \*(Ps = \*5 \(-> Blink (appears as Bold)
+ \*(Ps = \*7 \(-> Inverse
+ \*(Ps = \*8 \(-> Invisible (hidden)
+ \*(Ps = \*2\*2 \(-> Normal (neither bold nor faint)
+ \*(Ps = \*2\*4 \(-> Not underlined
+ \*(Ps = \*2\*5 \(-> Steady (not blinking)
+ \*(Ps = \*2\*7 \(-> Positive (not inverse)
+ \*(Ps = \*2\*8 \(-> Visible (not hidden)
+ \*(Ps = \*3\*0 \(-> Set foreground color to Black
+ \*(Ps = \*3\*1 \(-> Set foreground color to Red
+ \*(Ps = \*3\*2 \(-> Set foreground color to Green
+ \*(Ps = \*3\*3 \(-> Set foreground color to Yellow
+ \*(Ps = \*3\*4 \(-> Set foreground color to Blue
+ \*(Ps = \*3\*5 \(-> Set foreground color to Magenta
+ \*(Ps = \*3\*6 \(-> Set foreground color to Cyan
+ \*(Ps = \*3\*7 \(-> Set foreground color to White
+ \*(Ps = \*3\*9 \(-> Set foreground color to default (original)
+ \*(Ps = \*4\*0 \(-> Set background color to Black
+ \*(Ps = \*4\*1 \(-> Set background color to Red
+ \*(Ps = \*4\*2 \(-> Set background color to Green
+ \*(Ps = \*4\*3 \(-> Set background color to Yellow
+ \*(Ps = \*4\*4 \(-> Set background color to Blue
+ \*(Ps = \*4\*5 \(-> Set background color to Magenta
+ \*(Ps = \*4\*6 \(-> Set background color to Cyan
+ \*(Ps = \*4\*7 \(-> Set background color to White
+ \*(Ps = \*4\*9 \(-> Set background color to default (original).
+.sp
+If 16-color support is compiled, the following apply.
+Assume that \fIxterm\fP's resources
+are set so that the ISO color codes are the first 8 of a set of 16.
+Then the \fIaixterm\fP colors are the bright versions of the ISO colors:
+ \*(Ps = \*9\*0 \(-> Set foreground color to Black
+ \*(Ps = \*9\*1 \(-> Set foreground color to Red
+ \*(Ps = \*9\*2 \(-> Set foreground color to Green
+ \*(Ps = \*9\*3 \(-> Set foreground color to Yellow
+ \*(Ps = \*9\*4 \(-> Set foreground color to Blue
+ \*(Ps = \*9\*5 \(-> Set foreground color to Magenta
+ \*(Ps = \*9\*6 \(-> Set foreground color to Cyan
+ \*(Ps = \*9\*7 \(-> Set foreground color to White
+ \*(Ps = \*1\*0\*0 \(-> Set background color to Black
+ \*(Ps = \*1\*0\*1 \(-> Set background color to Red
+ \*(Ps = \*1\*0\*2 \(-> Set background color to Green
+ \*(Ps = \*1\*0\*3 \(-> Set background color to Yellow
+ \*(Ps = \*1\*0\*4 \(-> Set background color to Blue
+ \*(Ps = \*1\*0\*5 \(-> Set background color to Magenta
+ \*(Ps = \*1\*0\*6 \(-> Set background color to Cyan
+ \*(Ps = \*1\*0\*7 \(-> Set background color to White
+.sp
+If \fIxterm\fP is compiled with the 16-color support disabled, it supports
+the following, from \fIrxvt\fP:
+ \*(Ps = \*1\*0\*0 \(-> Set foreground and background color to default
+.sp
+If 88- or 256-color support is compiled, the following apply.
+ \*(Ps = \*3\*8 ; \*5 ; \*(Ps \(-> Set foreground color to the second \*(Ps
+ \*(Ps = \*4\*8 ; \*5 ; \*(Ps \(-> Set background color to the second \*(Ps
+.sp
+.
+.IP \\*(Cs\\*(Ps\\*s\\*n
+Device Status Report (DSR)
+ \*(Ps = \*5 \(-> Status Report \*(Cs\*0\*n (``OK'')
+ \*(Ps = \*6 \(-> Report Cursor Position (CPR) [row;column] as
+.br
+\*(Cs\*(Ir\*s\*;\*(Ic\*s\*R
+.
+.IP \\*(Cs\\*?\\*(Ps\\*s\\*n
+Device Status Report (DSR, DEC-specific)
+ \*(Ps = \*6 \(-> Report Cursor Position (CPR) [row;column] as
+\*(Cs\*?\*(Ir\*s\*;\*(Ic\*s\*R
+(assumes page is zero).
+ \*(Ps = \*1\*5 \(-> Report Printer status as
+\*(Cs\*?\*1\*0\*s\*n (ready)
+or
+\*(Cs\*?\*1\*1\*s\*n (not ready)
+ \*(Ps = \*2\*5 \(-> Report UDK status as
+\*(Cs\*?\*2\*0\*s\*n (unlocked)
+or
+\*(Cs\*?\*2\*1\*s\*n (locked)
+ \*(Ps = \*2\*6 \(-> Report Keyboard status as
+.br
+\*(Cs\*?\*2\*7\*s\*;\*s\*1\*s\*;\*s\*0\*s\*;\*s\*0\*s\*n (North American)
+.br
+\*(Cs\*?\*5\*3\*s\*n Locator available, if compiled-in, or
+.br
+\*(Cs\*?\*5\*0\*s\*n No Locator, if not.
+.
+.IP \\*(Cs\\*s\\*!\\*p
+Soft terminal reset (DECSTR)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*(c"\\*p
+Set conformance level (DECSCL)
+Valid values for the first parameter:
+ \*(Ps = \*6\*1 \(-> VT100
+ \*(Ps = \*6\*2 \(-> VT200
+ \*(Ps = \*6\*3 \(-> VT300
+.br
+Valid values for the second parameter:
+ \*(Ps = \*0 \(-> 8-bit controls
+ \*(Ps = \*1 \(-> 7-bit controls (always set for VT100)
+ \*(Ps = \*2 \(-> 8-bit controls
+.
+.IP \\*(Cs\\*(Ps\\*s\\*(c"\\*q
+Select character protection attribute (DECSCA).
+Valid values for the parameter:
+ \*(Ps = \*0 \(-> DECSED and DECSEL can erase (default)
+ \*(Ps = \*1 \(-> DECSED and DECSEL cannot erase
+ \*(Ps = \*2 \(-> DECSED and DECSEL can erase
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*r
+Set Scrolling Region [top;bottom] (default = full size of window) (DECSTBM)
+.
+.IP \\*(Cs\\*?\\*(Pm\\*s\\*r
+Restore DEC Private Mode Values. The value of \*(Ps previously saved is
+restored. \*(Ps values are the same as for DECSET.
+.
+.IP \\*(Cs\\*?\\*(Pm\\*s\\*(cs
+Save DEC Private Mode Values. \*(Ps values are the same as for DECSET.
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Ps\\*s\\*;\\*(Ps\\*s\\*t
+Window manipulation (from \fIdtterm\fP, as well as extensions).
+Valid values for the first (and any additional parameters) are:
+ \*(Ps = \*1 \(-> De-iconify window.
+ \*(Ps = \*2 \(-> Iconify window.
+ \*(Ps = \*3 ; \fIx ; y\fP \(-> Move window to [x, y].
+ \*(Ps = \*4 ; \fIheight ; width\fP \(-> Resize the \fIxterm\fP window to height and width in pixels.
+ \*(Ps = \*5 \(-> Raise the \fIxterm\fP window to the front of the stacking order.
+ \*(Ps = \*6 \(-> Lower the \fIxterm\fP window to the bottom of the stacking order.
+ \*(Ps = \*7 \(-> Refresh the \fIxterm\fP window.
+ \*(Ps = \*8 ; \fIheight ; width\fP \(-> Resize the text area to [height;width] in characters.
+ \*(Ps = \*9 ; \*0 \(-> Restore maximized window.
+ \*(Ps = \*9 ; \*1 \(-> Maximize window (i.e., resize to screen size).
+ \*(Ps = \*1\*1 \(-> Report \fIxterm\fP window state.
+If the \fIxterm\fP window is open (non-iconified), it returns \*(Cs\*1\*t.
+If the \fIxterm\fP window is iconified, it returns \*(Cs\*2\*t.
+ \*(Ps = \*1\*3 \(-> Report \fIxterm\fP window position as
+\*(Cs\*3\*;\*(Ix\*;\*(Iy\*t
+ \*(Ps = \*1\*4 \(-> Report \fIxterm\fP window in pixels as
+\*(Cs\*s\*4\*s\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
+ \*(Ps = \*1\*8 \(-> Report the size of the text area in characters as
+\*(Cs\*s\*8\*s\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
+ \*(Ps = \*1\*9 \(-> Report the size of the screen in characters as
+\*(Cs\*s\*9\*s\*;\*s\fIheight\fP\*s\*;\*s\fIwidth\fP\*s\*t
+ \*(Ps = \*2\*0 \(-> Report \fIxterm\fP window's icon label as
+\*(Os\*s\*L\*s\fIlabel\fP\*s\*(ST
+ \*(Ps = \*2\*1 \(-> Report \fIxterm\fP window's title as
+\*(Os\*s\*l\*s\fItitle\fP\*s\*(ST
+ \*(Ps >= \*2\*4 \(-> Resize to \*(Ps lines (DECSLPP)
+.
+.IP \\*(Cs\\*(Pt\\*s\\*;\\*(Pl\\*s\\*;\\*(Pb\\*s\\*;\\*(Pr\\*s\\*(qu\\*w
+Enable Filter Rectangle (DECEFR)
+.br
+Parameters are [top;left;bottom;right].
+.br
+Defines the coordinates of a filter rectangle and activates it.
+Anytime the locator is detected outside of the filter rectangle,
+an outside rectangle event is generated and the rectangle is disabled.
+Filter rectangles are always treated as "one-shot" events.
+Any parameters that are omitted default to the current locator position.
+If all parameters are omitted, any locator motion will be reported.
+DECELR always cancels any prevous rectangle definition.
+.
+.IP \\*(Cs\\*(Ps\\*s\\*x
+Request Terminal Parameters (DECREQTPARM)
+.
+.IP \\*(Cs\\*(Ps\\*s\\*;\\*(Pu\\*s\\*(qu\\*z
+Enable Locator Reporting (DECELR)
+.br
+Valid values for the first parameter:
+ \*(Ps = \*0 \(-> Locator disabled (default)
+ \*(Ps = \*1 \(-> Locator enabled
+ \*(Ps = \*2 \(-> Locator enabled for one report, then disabled
+.br
+The second parameter specifies the coordinate unit for locator reports.
+.br
+Valid values for the second parameter:
+ \*(Pu = \*0 or omitted \(-> default to character cells
+ \*(Pu = \*1 \(-> device physical pixels
+ \*(Pu = \*2 \(-> character cells
+.
+.IP \\*(Cs\\*(Pm\\*s\\*(qu\\*{
+Select Locator Events (DECSLE)
+.br
+Valid values for the first (and any additional parameters) are:
+ \*(Ps = \*0 \(-> only respond to explicit host requests (DECRQLP)
+ (default) also cancels any filter rectangle
+ \*(Ps = \*1 \(-> report button down transitions
+ \*(Ps = \*2 \(-> do not report button down transitions
+ \*(Ps = \*3 \(-> report button up transitions
+ \*(Ps = \*4 \(-> do not report button up transitions
+.
+.IP \\*(Cs\\*(Ps\\*s\\*(qu\\*|
+Request Locator Position (DECRQLP)
+.br
+Valid values for the parameter are:
+ \*(Ps = \*0, 1 or omitted \(-> transmit a single DECLRP locator report
+.sp
+If Locator Reporting has been enabled by a DECELR, xterm will respond
+with a DECLRP Locator Report. This report is also generated on button
+up and down events if they have been enabled with a DECSLE, or when
+the locator is detected outside of a filter rectangle, if filter rectangles
+have been enabled with a DECEFR.
+.sp
+ \(-> \*(Cs\*(Pe\*s\*;\*(Pb\*s\*;\*(Pr\*s\*;\*(Pc\*s\*;\*(Pp\*s\*&\*s\*w
+.sp
+Parameters are [event;button;row;column;page].
+.br
+Valid values for the event:
+ \*(Pe = \*0 \(-> locator unavailable - no other parameters sent
+ \*(Pe = \*1 \(-> request - xterm received a DECRQLP
+ \*(Pe = \*2 \(-> left button down
+ \*(Pe = \*3 \(-> left button up
+ \*(Pe = \*4 \(-> middle button down
+ \*(Pe = \*5 \(-> middle button up
+ \*(Pe = \*6 \(-> right button down
+ \*(Pe = \*7 \(-> right button up
+ \*(Pe = \*8 \(-> M4 button down
+ \*(Pe = \*9 \(-> M4 button up
+ \*(Pe = \*1\*0 \(-> locator outside filter rectangle
+.br
+``button'' parameter is a bitmask indicating which buttons are pressed:
+ \*(Pb = \*0 \(-> no buttons down
+ \*(Pb & \*1 \(-> right button down
+ \*(Pb & \*2 \(-> middle button down
+ \*(Pb & \*4 \(-> left button down
+ \*(Pb & \*8 \(-> M4 button down
+.br
+``row'' and ``column'' parameters are the coordinates of the locator
+position in the xterm window, encoded as ASCII decimal.
+.br
+The ``page'' parameter is not used by xterm, and will be omitted.
+.
+.Ed
+.
+.St
+.LP
+.B
+Operating System Controls
+.
+.IP \\*(Os\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(ST
+.IP \\*(Os\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(Be
+Set Text Parameters.
+For colors and font,
+if \*(Pt is a "?", the control sequence elicits a response which consists
+of the control sequence which would set the corresponding value.
+The \fIdtterm\fP control sequences allow you to determine the icon name
+and window title.
+ \*(Ps = \*0 \(-> Change Icon Name and Window Title to \*(Pt
+ \*(Ps = \*1 \(-> Change Icon Name to \*(Pt
+ \*(Ps = \*2 \(-> Change Window Title to \*(Pt
+ \*(Ps = \*3 \(-> Set X property on top-level window. \*(Pt should be in the form
+"\fIprop=value\fP", or just "\fIprop\fP" to delete the property
+ \*(Ps = \*4 ; \fIc ; name\fP \(-> Change Color #\fIc\fP to \fIcname\fP. Any
+number of \fIc name\fP pairs may be given.
+ \*(Ps = \*1\*0 \(-> Change color names starting with text foreground to \*(Pt
+(a list of one or more color names or RGB specifications, separated by
+semicolon, up to eight, as per \fIXParseColor\fP).
+ \*(Ps = \*1\*1 \(-> Change colors starting with text background to \*(Pt
+ \*(Ps = \*1\*2 \(-> Change colors starting with text cursor to \*(Pt
+ \*(Ps = \*1\*3 \(-> Change colors starting with mouse foreground to \*(Pt
+ \*(Ps = \*1\*4 \(-> Change colors starting with mouse background to \*(Pt
+ \*(Ps = \*1\*5 \(-> Change colors starting with Tek foreground to \*(Pt
+ \*(Ps = \*1\*6 \(-> Change colors starting with Tek background to \*(Pt
+ \*(Ps = \*1\*7 \(-> Change colors starting with highlight to \*(Pt
+ \*(Ps = \*4\*6 \(-> Change Log File to \*(Pt (normally disabled by a
+compile-time option)
+ \*(Ps = \*5\*0 \(-> Set Font to \*(Pt
+If \*(Pt begins with a "#", index in the font menu, relative (if the
+next character is a plus or minus sign) or absolute. A number is
+expected but not required after the sign (the default is the current
+entry for relative, zero for absolute indexing).
+.Ed
+.
+.St
+.LP
+.B
+Privacy Message
+.IP \\*(PM\\*(Pt\\*s\\*(ST
+\fIxterm\fP implements no PM functions; \*(Pt is ignored.
+\*(Pt need not be printable characters.
+.Ed
+.
+.SH
+PC-Style Function Keys
+.ds RH Function Keys
+.LP
+If \fIxterm\fP does minimal translation of the function keys, it usually does this
+with a PC-style keyboard, so PC-style function keys result.
+Sun keyboards are similar to PC keyboards.
+Both have cursor and scrolling operations printed on the keypad,
+which duplicate the smaller cursor and scrolling keypads.
+.LP
+X does not predefine NumLock (used for VT220 keyboards) or Alt (used as
+an extension for the Sun/PC keyboards) as modifiers.
+These keys are recognized as modifiers when enabled
+by the \fBnumLock\fP resource,
+or by the DECSET \*1\*0\*3\*5 control sequence.
+.LP
+The cursor keys transmit the following escape sequences depending on the
+mode specified via the \fBDECCKM\fP escape sequence.
+.TS
+center;
+cf3 cf3 cf3
+lf3w(2c) lf3w(2c) lf3w(2c) .
+Key Normal Application
+_
+Cursor Up \*(Cs\*A \*(S3\*A
+Cursor Down \*(Cs\*(cB \*(S3\*(cB
+Cursor Right \*(Cs\*C \*(S3\*C
+Cursor Left \*(Cs\*D \*(S3\*D
+.TE
+.LP
+The application keypad transmits the following escape sequences depending on the
+mode specified via the \fBDECPNM\fP and \fBDECPAM\fP escape sequences.
+Use the NumLock key to override the application mode.
+.LP
+Not all keys are present on the Sun/PC keypad (e.g., PF1, Tab), but are supported by
+the program.
+.TS
+center;
+cf3 cf3 cf3 cf3 cf3
+lf3w(2c) lf3w(2c) lf3w(2c) lf3w(2c) lf3w(2c) .
+Key Numeric Application Terminfo Termcap
+_
+Space \*(Sp \*(S3\*(Sp - -
+Tab \*(Ta \*(S3\*I - -
+Enter \*(Cr \*(S3\*M kent @8
+PF1 \*(S3\*P \*(S3\*P kf1 k1
+PF2 \*(S3\*Q \*(S3\*Q kf2 k2
+PF3 \*(S3\*R \*(S3\*R kf3 k3
+PF4 \*(S3\*S \*(S3\*S kf4 k4
+* \f1(multiply)\fP * \*(S3\*j - -
++ \f1(add)\fP + \*(S3\*k - -
+, \f1(comma)\fP , \*(S3\*l - -
+- \f1(minus)\fP - \*(S3\*m - -
+\. \f1(Delete)\fP \. \*(S3\*3\*(c~ - -
+/ \f1(divide)\fP / \*(S3\*o - -
+0 \f1(Insert)\fP 0 \*(Cs\*2\*(c~ - -
+1 \f1(End)\fP 1 \*(Cs\*4\*(c~ kc1 K4
+2 \f1(DownArrow)\fP 2 \*(Cs\*(cB - -
+3 \f1(PageDown)\fP 3 \*(Cs\*5\*(c~ kc3 K5
+4 \f1(LeftArrow)\fP 4 \*(Cs\*D - -
+5 \f1(Begin)\fP 5 \*(Cs\*E kb2 K2
+6 \f1(RightArrow)\fP 6 \*(Cs\*C - -
+7 \f1(Home)\fP 7 \*(Cs\*1\*(c~ ka1 K1
+8 \f1(UpArrow)\fP 8 \*(Cs\*A - -
+9 \f1(PageUp)\fP 9 \*(Cs\*5\*(c~ ka3 K3
+= (equal) \&= \*(S3\*(XX - -
+.TE
+They also provide 12 function keys, as well as a few other special-purpose keys.
+.TS
+center;
+cf3 cf3
+lf3w(2c) lf3w(2c) .
+Key Escape Sequence
+_
+F1 \*(S3\*P
+F2 \*(S3\*Q
+F3 \*(S3\*R
+F4 \*(S3\*S
+F5 \*(Cs\*1\*5\*(c~
+F6 \*(Cs\*1\*7\*(c~
+F7 \*(Cs\*1\*8\*(c~
+F8 \*(Cs\*1\*9\*(c~
+F9 \*(Cs\*2\*0\*(c~
+F10 \*(Cs\*2\*1\*(c~
+F11 \*(Cs\*2\*3\*(c~
+F12 \*(Cs\*2\*4\*(c~
+.TE
+.LP
+Older versions of \fIxterm\fP implement different escape sequences for F1 through F4.
+These can be activated by setting the \fIoldXtermFKeys\fP resource.
+However, since they do not correspond to any hardware terminal, they have been deprecated.
+(The DEC VT220 reserves F1 through F5 for local functions such as \fBSetup\fP).
+.TS
+center;
+cf3 cf3
+lf3w(2c) lf3w(2c) .
+Key Escape Sequence
+_
+F1 \*(Cs\*1\*1\*(c~
+F2 \*(Cs\*1\*2\*(c~
+F3 \*(Cs\*1\*3\*(c~
+F4 \*(Cs\*1\*4\*(c~
+.TE
+In normal mode, i.e., a Sun/PC keyboard
+when the \fBsunKeyboard\fP resource is false,
+\fIxterm\fP recognizes function key modifiers
+which are parameters appended before the final character
+of the control sequence.
+.TS
+center;
+cf3 lf3
+cf3w(2c) lf3w(2c) .
+Code Modifiers
+_
+2 Shift
+3 Alt
+4 Shift + Alt
+5 Control
+6 Shift + Control
+7 Alt + Control
+8 Shift + Alt + Control
+.TE
+For example, shift-F5 would be sent as
+\*(Cs\*1\*5\*;\*2\*(c~
+
+If the \fBalwaysUseMods\fP resource is set, the Meta modifier also is
+recognized, making parameters 9 through 16.
+.SH
+VT220-Style Function Keys
+.LP
+However, \fIxterm\fP is most useful as a DEC VT102 or VT220 emulator.
+Set the \fBsunKeyboard\fP resource to true to force a Sun/PC keyboard
+to act like a VT220 keyboard.
+.LP
+The VT102/VT220 application keypad transmits unique escape sequences in
+application mode, which are distinct from the cursor and scrolling keypad:
+.TS
+center;
+cf3 cf3 cf3
+lf3w(2c) lf3w(2c) lf3w(2c) .
+Key Numeric Application
+_
+Space Space \*(S3\*(Sp
+Tab Tab \*(S3\*I
+Enter CR \*(S3\*M
+PF1 \*(S3\*P \*(S3\*P
+PF2 \*(S3\*Q \*(S3\*Q
+PF3 \*(S3\*R \*(S3\*R
+PF4 \*(S3\*S \*(S3\*S
+* \f1(multiply)\fP * \*(S3\*j
++ \f1(add)\fP + \*(S3\*k
+, \f1(comma)\fP , \*(S3\*l
+- \f1(minus)\fP - \*(S3\*m
+\. \f1(period)\fP \. \*(S3\*n
+/ \f1(divide)\fP / \*(S3\*o
+0 0 \*(S3\*p
+1 1 \*(S3\*q
+2 2 \*(S3\*r
+3 3 \*(S3\*(cs
+4 4 \*(S3\*t
+5 5 \*(S3\*u
+6 6 \*(S3\*v
+7 7 \*(S3\*w
+8 8 \*(S3\*x
+9 9 \*(S3\*y
+= (equal) \&= \*(S3\*(XX
+.TE
+.LP
+The VT220 provides 8 additional function keys.
+With a Sun/PC keyboard, access these keys by Control/F1 for F13, etc.
+.TS
+center;
+cf3 cf3
+lf3w(2c) lf3w(2c) .
+Key Escape Sequence
+_
+F13 \*(Cs\*2\*5\*(c~
+F14 \*(Cs\*2\*6\*(c~
+F15 \*(Cs\*2\*8\*(c~
+F16 \*(Cs\*2\*9\*(c~
+F17 \*(Cs\*3\*1\*(c~
+F18 \*(Cs\*3\*2\*(c~
+F19 \*(Cs\*3\*3\*(c~
+F20 \*(Cs\*3\*4\*(c~
+.TE
+.SH
+VT52-Style Function Keys
+.LP
+A VT52 does not have function keys, but it does have a numeric keypad and cursor keys.
+They differ from the other emulations by the prefix.
+Also, the cursor keys do not change:
+.TS
+center;
+cf3 cf3
+lf3w(2c) lf3w(2c) .
+Key Normal/Application
+_
+Cursor Up \*(Es\*A
+Cursor Down \*(Es\*(cB
+Cursor Right \*(Es\*C
+Cursor Left \*(Es\*D
+.TE
+The keypad is similar:
+.TS
+center;
+cf3 cf3 cf3
+lf3w(2c) lf3w(2c) lf3w(2c) .
+Key Numeric Application
+_
+Space Space \*(Es\*?\*(Sp
+Tab Tab \*(Es\*?\*I
+Enter CR \*(Es\*?\*M
+PF1 \*(Es\*P \*(Es\*P
+PF2 \*(Es\*Q \*(Es\*Q
+PF3 \*(Es\*R \*(Es\*R
+PF4 \*(Es\*S \*(Es\*S
+* \f1(multiply)\fP * \*(Es\*?\*j
++ \f1(add)\fP + \*(Es\*?\*k
+, \f1(comma)\fP , \*(Es\*?\*l
+- \f1(minus)\fP - \*(Es\*?\*m
+\. \f1(period)\fP \. \*(Es\*?\*n
+/ \f1(divide)\fP / \*(Es\*?\*o
+0 0 \*(Es\*?\*p
+1 1 \*(Es\*?\*q
+2 2 \*(Es\*?\*r
+3 3 \*(Es\*?\*(cs
+4 4 \*(Es\*?\*t
+5 5 \*(Es\*?\*u
+6 6 \*(Es\*?\*v
+7 7 \*(Es\*?\*w
+8 8 \*(Es\*?\*x
+9 9 \*(Es\*?\*y
+= (equal) \&= \*(Es\*?\*(XX
+.TE
+.SH
+Sun-Style Function Keys
+.LP
+The \fIxterm\fP program provides support for Sun keyboards more directly, by
+a menu toggle that causes it to send Sun-style function key codes rather than VT220.
+Note, however, that the \fIsun\fP and \fIvt100\fP emulations are not really
+compatible. For example, their wrap-margin behavior differs.
+.LP
+Only function keys are altered; keypad and cursor keys are the same.
+The emulation responds identically.
+See the xterm-sun terminfo entry for details.
+.SH
+HP-Style Function Keys
+.LP
+Similarly, \fIxterm\fP can be compiled to support HP keyboards.
+See the xterm-hp terminfo entry for details.
+.SH
+Mouse Tracking
+.ds RH Mouse Tracking
+.LP
+The VT widget can be set to send the mouse position and other
+information on button presses. These modes are typically used by
+editors and other full-screen applications that want to make use of
+the mouse.
+
+There are six mutually exclusive modes. One is DEC Locator mode, enabled by the
+DECELR \*(Cs\*(Ps\*s\*;\*(Ps\*s\*s\*'\*s\*z
+control sequence, and is not described here. The remaining five
+modes are each enabled (or disabled) by a different parameter in
+DECSET \*(Cs\*?\*(Pm\*s\*h
+or
+DECRST \*(Cs\*?\*(Pm\*s\*l
+control sequence.
+
+Manifest constants for the parameter values
+are defined in \fBxcharmouse.h\fP as follows:
+.
+.DS B
+#define SET_X10_MOUSE 9
+#define SET_VT200_MOUSE 1000
+#define SET_VT200_HIGHLIGHT_MOUSE 1001
+#define SET_BTN_EVENT_MOUSE 1002
+#define SET_ANY_EVENT_MOUSE 1003
+.DE
+.LP
+The motion reporting modes are strictly \fIxterm\fP extensions, and are not
+part of any standard, though they are analogous to the DEC VT200 DECELR
+locator reports.
+
+Parameters (such as pointer position and button number) for all mouse
+tracking escape sequences generated by \fIxterm\fP
+encode numeric parameters in a single character as
+\fIvalue\fP+32.
+For example, \*! specifies the value 1.
+The upper left character position on the terminal is denoted as 1,1.
+
+X10 compatibility mode sends an escape sequence only on button press,
+encoding the location and the mouse button pressed.
+It is enabled by specifying parameter 9 to DECSET.
+On button press, \fIxterm\fP sends
+\*(Cs\*M\*(Cb\*(Cx\*(Cy (6 characters).
+\*(Cb is button\-1.
+\*(Cx and \*(Cy are the x and y coordinates of the mouse when the
+button was pressed.
+
+Normal tracking mode sends an escape sequence on both button press and
+release. Modifier key (shift, ctrl, meta) information is also sent.
+It is enabled by specifying parameter 1000 to DECSET.
+On button press or release, \fIxterm\fP sends
+\*(Cs\*M\*(Cb\*(Cx\*(Cy.
+The low two bits of \*(Cb encode button information:
+0=MB1 pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release.
+The next three bits encode the modifiers which were down when the button was
+pressed and are added together: 4=Shift, 8=Meta, 16=Control.
+Note however that the shift and control bits are normally unavailable
+because \fIxterm\fP uses the control modifier with mouse for popup menus,
+and the shift modifier is used in the default translations for button events.
+The \fIMeta\fP modifier recognized by \fIxterm\fP is the \fImod1\fP mask,
+and is not necessarily the "Meta" key (see \fIxmodmap\fP).
+\*(Cx and \*(Cy are the x and y coordinates of the mouse event, encoded as
+in X10 mode.
+
+Wheel mice may return buttons 4 and 5.
+Those buttons are represented by adding 64 to the event code.
+
+Mouse hilite tracking notifies a program of a button press, receives a
+range of lines from the program, highlights the region covered by
+the mouse within that range until button release, and then sends the
+program the release coordinates.
+It is enabled by specifying parameter 1001 to DECSET.
+Highlighting is performed only for button 1, though other button events
+can be received.
+\fBWarning:\fP use of this mode requires a cooperating program or it will
+hang \fIxterm.\fP
+On button press, the same information as for normal tracking is
+generated; \fIxterm\fP then waits for the program to send mouse
+tracking information.
+\fIAll X events are ignored until the proper escape sequence is
+received from the pty:\fP
+\*(Cs\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*;\*(Ps\*s\*T.
+The parameters are \fIfunc, startx, starty, firstrow,\fP and \fIlastrow.\fP
+\fIfunc\fP is non-zero to initiate hilite tracking and zero to abort.
+\fIstartx\fP and \fIstarty\fP give the starting x and y location for
+the highlighted region. The ending location tracks the mouse, but
+will never be above row \fIfirstrow\fP and will always be above row
+\fIlastrow.\fP (The top of the screen is row 1.)
+When the button is released, \fIxterm\fP reports the ending position
+one of two ways: if the start and end coordinates are valid text
+locations: \*(Cs\*t\*(Cx\*(Cy. If either coordinate is past
+the end of the line:
+\*(Cs\*T\*(Cx\*(Cy\*(Cx\*(Cy\*(Cx\*(Cy.
+The parameters are \fIstartx, starty, endx, endy, mousex,\fP and \fImousey.\fP
+\fIstartx, starty, endx, \fPand\fI endy\fP give the starting and
+ending character positions of the region. \fImousex\fP and \fImousey\fP
+give the location of the mouse at button up, which may not be over a
+character.
+
+Button-event tracking is essentially the same as normal tracking, but
+\fIxterm\fP also reports button-motion events. Motion events
+are reported only if the mouse pointer has moved to a different character
+cell. It is enabled by specifying parameter 1002 to DECSET.
+On button press or release, \fIxterm\fP sends the same codes used by normal
+tracking mode. On button-motion events, \fIxterm\fP adds 32 to the event code
+(the third character, \*(Cb).
+The other bits of the event code specify button and modifier keys as in normal mode.
+For example, motion into cell x,y with button 1
+down is reported as \*(Cs\*M\*@\*(Cx\*(Cy.
+( \*@ = 32 + 0 (button 1) + 32 (motion indicator) ).
+Similarly, motion with button 3
+down is reported as \*(Cs\*M\*(cB\*(Cx\*(Cy.
+( \*(cB = 32 + 2 (button 3) + 32 (motion indicator) ).
+
+Any-event mode is the same as button-event mode, except that all motion
+events are reported instead of just those that enter a new character cell.
+It is enabled by specifying 1003 to DECSET.
+.
+.br
+.ds RH Tektronix 4014 Mode
+.SH
+Tektronix 4014 Mode
+.LP
+Most of these sequences are standard Tektronix 4014 control sequences.
+Graph mode supports the 12-bit addressing of the Tektronix 4014.
+The major features missing are
+the write-through and defocused modes.
+This document does not describe the commands used in the various
+Tektronix plotting modes but does describe the commands to switch modes.
+.St
+.IP \\*(Be
+Bell (Ctrl-G)
+.IP \\*(Bs
+Backspace (Ctrl-H)
+.IP \\*(Ta
+Horizontal Tab (Ctrl-I)
+.IP \\*(Lf
+Line Feed or New Line (Ctrl-J)
+.IP \\*(Vt
+Cursor up (Ctrl-K)
+.IP \\*(Ff
+Form Feed or New Page (Ctrl-L)
+.IP \\*(Cr
+Carriage Return (Ctrl-M)
+.IP \\*(Es\\*(Et
+Switch to VT100 Mode (ESC Ctrl-C)
+.IP \\*(Es\\*(En
+Return Terminal Status (ESC Ctrl-E)
+.IP \\*(Es\\*(Ff
+PAGE (Clear Screen) (ESC Ctrl-L)
+.IP \\*(Es\\*(So
+Begin 4015 APL mode (ignored by \fIxterm\fP) (ESC Ctrl-N)
+.IP \\*(Es\\*(Si
+End 4015 APL mode (ignored by \fIxterm\fP) (ESC Ctrl-O)
+.IP \\*(Es\\*(Eb
+COPY (Save Tektronix Codes to file COPYyyyy-mm-dd.hh:mm:ss) (ESC Ctrl-W)
+.IP \\*(Es\\*(Ca
+Bypass Condition (ESC Ctrl-X)
+.IP \\*(Es\\*(Su
+GIN mode (ESC Ctrl-Z)
+.IP \\*(Es\\*(Fs
+Special Point Plot Mode (ESC Ctrl-\e)
+.IP \\*(Es\\*8
+Select Large Character Set
+.IP \\*(Es\\*9
+Select #2 Character Set
+.IP \\*(Es\\*:
+Select #3 Character Set
+.IP \\*(Es\\*;
+Select Small Character Set
+.IP \\*(Os\\*(Ps\\*s\\*;\\*(Pt\\*s\\*(Be
+Set Text Parameters of VT window
+ \*(Ps = \*0 \(-> Change Icon Name and Window Title to \*(Pt
+ \*(Ps = \*1 \(-> Change Icon Name to \*(Pt
+ \*(Ps = \*2 \(-> Change Window Title to \*(Pt
+ \*(Ps = \*4\*6 \(-> Change Log File to \*(Pt (normally disabled by a
+compile-time option)
+.IP \\*(Es\\*`
+Normal Z Axis and Normal (solid) Vectors
+.IP \\*(Es\\*a
+Normal Z Axis and Dotted Line Vectors
+.IP \\*(Es\\*b
+Normal Z Axis and Dot-Dashed Vectors
+.IP \\*(Es\\*c
+Normal Z Axis and Short-Dashed Vectors
+.IP \\*(Es\\*d
+Normal Z Axis and Long-Dashed Vectors
+.IP \\*(Es\\*h
+Defocused Z Axis and Normal (solid) Vectors
+.IP \\*(Es\\*i
+Defocused Z Axis and Dotted Line Vectors
+.IP \\*(Es\\*j
+Defocused Z Axis and Dot-Dashed Vectors
+.IP \\*(Es\\*k
+Defocused Z Axis and Short-Dashed Vectors
+.IP \\*(Es\\*l
+Defocused Z Axis and Long-Dashed Vectors
+.IP \\*(Es\\*p
+Write-Thru Mode and Normal (solid) Vectors
+.IP \\*(Es\\*q
+Write-Thru Mode and Dotted Line Vectors
+.IP \\*(Es\\*r
+Write-Thru Mode and Dot-Dashed Vectors
+.IP \\*(Es\\*(cs
+Write-Thru Mode and Short-Dashed Vectors
+.IP \\*(Es\\*t
+Write-Thru Mode and Long-Dashed Vectors
+.IP \\*(Fs
+Point Plot Mode (Ctrl-\e)
+.IP \\*(Gs
+Graph Mode (Ctrl-])
+.IP \\*(Rs
+Incremental Plot Mode (Ctrl-^)
+.IP \\*(Us
+Alpha Mode (Ctrl-_)
+.Ed
+.
+.
+.br
+.ds RH VT52 Mode
+.SH
+VT52 Mode
+.LP
+Parameters for cursor movement are at the end of the \*(Es\*Y escape sequence.
+Each ordinate is encoded in a single character as \fIvalue\fP+32.
+For example, \*! is 1.
+The screen coodinate system is 0-based.
+.St
+.IP \\*(Es\\*A
+Cursor up.
+.IP \\*(Es\\*(cB
+Cursor down.
+.IP \\*(Es\\*C
+Cursor right.
+.IP \\*(Es\\*D
+Cursor left.
+.IP \\*(Es\\*F
+Enter graphics mode.
+.IP \\*(Es\\*G
+Exit graphics mode.
+.IP \\*(Es\\*H
+Move the cursor to the home position.
+.IP \\*(Es\\*I
+Reverse line feed.
+.IP \\*(Es\\*J
+Erase from the cursor to the end of the screen.
+.IP \\*(Es\\*K
+Erase from the cursor to the end of the line.
+.IP \\*(Es\\*Y\\*(Ps\\*s\\*(Ps
+Move the cursor to given row and column.
+.IP \\*(Es\\*Z
+Identify
+ \(-> \*(Es\*s\*/\*s\*Z (``I am a VT52.'')
+.IP \\*(Es\\*=
+Enter alternate keypad mode.
+.IP \\*(Es\\*>
+Exit alternate keypad mode.
+.IP \\*(Es\\*<
+Exit VT52 mode (Enter VT100 mode).
+.Ed
+.
+.if n .pl \n(nlu+1v
diff --git a/doc/ctlseqs.ps b/doc/ctlseqs.ps
new file mode 100644
index 0000000..1452f1c
--- /dev/null
+++ b/doc/ctlseqs.ps
@@ -0,0 +1,8729 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.17.2
+%%CreationDate: Tue Feb 12 17:25:13 2002
+%%DocumentNeededResources: font Times-Bold
+%%+ font Times-Italic
+%%+ font Times-Roman
+%%+ font Symbol
+%%DocumentSuppliedResources: procset grops 1.17 2
+%%Pages: 19
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.17 2
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Symbol
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Times-Roman@0 ENC0/Times-Roman RE/Times-Italic@0 ENC0/Times-Italic RE
+/Times-Bold@0 ENC0/Times-Bold RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 12/Times-Bold@0 SF(Xterm Contr)240.12 123 Q(ol Sequences)-.216 E/F1
+10/Times-Italic@0 SF(Edwar)280.215 147 Q 2.5(dM)-.37 G(oy)-2.5 E/F2 10
+/Times-Roman@0 SF(Uni)237.725 165 Q -.15(ve)-.25 G
+(rsity of California, Berk).15 E(ele)-.1 E(y)-.15 E(Re)283.765 189 Q
+(vised by)-.25 E F1(Stephen Gildea)275.31 213 Q F2 2.5(XC)262.945 231 S
+(onsortium \(1994\))-2.5 E F1(Thomas Dic)275.335 255 Q -.1(ke)-.2 G(y)
+-.2 E F2(XFree86 Project \(1996-1999\))246.845 273 Q/F3 10/Times-Bold@0
+SF(De\214nitions)72 321 Q .4 LW 72 329.1 72 339.1 DL 72 328.1 72 338.1
+DL 87.998 329.1 87.998 339.1 DL 77 339.1 72 339.1 DL 77.998 339.1 72.998
+339.1 DL 82.998 339.1 77.998 339.1 DL 87.998 339.1 82.998 339.1 DL
+87.998 328.1 87.998 338.1 DL 77 328.1 72 328.1 DL 77.998 328.1 72.998
+328.1 DL 82.998 328.1 77.998 328.1 DL 87.998 328.1 82.998 328.1 DL F1(c)
+77.779 336.6 Q F2(The literal character)14.781 E F1(c)2.5 E F2(.)A F1(C)
+72 352.2 Q F2 2.5(As)18.33 G(ingle \(required\) character)-2.5 E(.)-.55
+E F1(P)72 367.8 Q/F4 8/Times-Italic@0 SF(s)-2 3 M F2 2.5(As)17.778 -3 O
+(ingle \(usually optional\) numeric parameter)-2.5 E 2.5(,c)-.4 G
+(omposed of one of more digits.)-2.5 E F1(P)72 383.4 Q F4(m)-2 3 M F2
+2.59(Am)15.114 -3 O .09(ultiple numeric parameter composed of an)-2.59 F
+2.59(yn)-.15 G 499.407 375.9 499.407 385.9 DL 499.407 374.9 499.407
+384.9 DL .09(umber of single numeric parameters, separated by)296.61
+383.4 R 515.405 375.9 515.405 385.9 DL 504.407 385.9 499.407 385.9 DL
+505.405 385.9 500.405 385.9 DL 510.405 385.9 505.405 385.9 DL 515.405
+385.9 510.405 385.9 DL 515.405 374.9 515.405 384.9 DL 504.407 374.9
+499.407 374.9 DL 505.405 374.9 500.405 374.9 DL 510.405 374.9 505.405
+374.9 DL 515.405 374.9 510.405 374.9 DL 10.864(;c)506.016 383.4 S(har)
+-10.864 E(-)-.2 E 2.5(acter\(s\). Indi)97 395.4 R(vidual v)-.25 E
+(alues for the parameters are listed with)-.25 E F1(P)2.5 E F4(s)-2 3 M
+F2(.)2.5 -3 M F1(P)72 411 Q F4(t)-2 3 M F2 2.5(At)18.666 -3 O -.15(ex)
+-2.5 G 2.5(tp).15 G(arameter composed of printable characters.)-2.5 E F3
+(C1 \(8-Bit\) Contr)72 435 Q(ol Characters)-.18 E F2(The)72 450.6 Q F1
+(xterm)2.508 E F2 .009
+(program recognizes both 8-bit and 7-bit control characters.)2.508 F
+.009(It generates 7-bit controls \(by def)5.009 F .009(ault\) or 8-bit)
+-.1 F(if S8C1T is enabled.)72 462.6 Q(The follo)5 E
+(wing pairs of 7-bit and 8-bit control characters are equi)-.25 E -.25
+(va)-.25 G(lent:).25 E 72 483.1 72 493.1 DL 72 482.1 72 492.1 DL 87.998
+483.1 87.998 493.1 DL 77 493.1 72 493.1 DL 77.998 493.1 72.998 493.1 DL
+82.998 493.1 77.998 493.1 DL 87.998 493.1 82.998 493.1 DL 87.998 482.1
+87.998 492.1 DL 77 482.1 72 482.1 DL 77.998 482.1 72.998 482.1 DL 82.998
+482.1 77.998 482.1 DL 87.998 482.1 82.998 482.1 DL 89.664 483.1 89.664
+493.1 DL 89.664 482.1 89.664 492.1 DL/F5 6/Times-Roman@0 SF(ESC)74.497
+489.6 Q 105.662 483.1 105.662 493.1 DL 94.664 493.1 89.664 493.1 DL
+95.662 493.1 90.662 493.1 DL 100.662 493.1 95.662 493.1 DL 105.662 493.1
+100.662 493.1 DL 105.662 482.1 105.662 492.1 DL 94.664 482.1 89.664
+482.1 DL 95.662 482.1 90.662 482.1 DL 100.662 482.1 95.662 482.1 DL
+105.662 482.1 100.662 482.1 DL F2(D)94.053 490.6 Q(Inde)97 506.6 Q 2.5
+(x\()-.15 G(IND: 0x84\))-2.5 E 72 515.1 72 525.1 DL 72 514.1 72 524.1 DL
+87.998 515.1 87.998 525.1 DL 77 525.1 72 525.1 DL 77.998 525.1 72.998
+525.1 DL 82.998 525.1 77.998 525.1 DL 87.998 525.1 82.998 525.1 DL
+87.998 514.1 87.998 524.1 DL 77 514.1 72 514.1 DL 77.998 514.1 72.998
+514.1 DL 82.998 514.1 77.998 514.1 DL 87.998 514.1 82.998 514.1 DL
+89.664 515.1 89.664 525.1 DL 89.664 514.1 89.664 524.1 DL F5(ESC)74.497
+521.6 Q 105.662 515.1 105.662 525.1 DL 94.664 525.1 89.664 525.1 DL
+95.662 525.1 90.662 525.1 DL 100.662 525.1 95.662 525.1 DL 105.662 525.1
+100.662 525.1 DL 105.662 514.1 105.662 524.1 DL 94.664 514.1 89.664
+514.1 DL 95.662 514.1 90.662 514.1 DL 100.662 514.1 95.662 514.1 DL
+105.662 514.1 100.662 514.1 DL F2(E)94.608 522.6 Q(Ne)97 538.6 Q
+(xt Line \(NEL: 0x85\))-.15 E 72 547.1 72 557.1 DL 72 546.1 72 556.1 DL
+87.998 547.1 87.998 557.1 DL 77 557.1 72 557.1 DL 77.998 557.1 72.998
+557.1 DL 82.998 557.1 77.998 557.1 DL 87.998 557.1 82.998 557.1 DL
+87.998 546.1 87.998 556.1 DL 77 546.1 72 546.1 DL 77.998 546.1 72.998
+546.1 DL 82.998 546.1 77.998 546.1 DL 87.998 546.1 82.998 546.1 DL
+89.664 547.1 89.664 557.1 DL 89.664 546.1 89.664 556.1 DL F5(ESC)74.497
+553.6 Q 105.662 547.1 105.662 557.1 DL 94.664 557.1 89.664 557.1 DL
+95.662 557.1 90.662 557.1 DL 100.662 557.1 95.662 557.1 DL 105.662 557.1
+100.662 557.1 DL 105.662 546.1 105.662 556.1 DL 94.664 546.1 89.664
+546.1 DL 95.662 546.1 90.662 546.1 DL 100.662 546.1 95.662 546.1 DL
+105.662 546.1 100.662 546.1 DL F2(H)94.053 554.6 Q -.8(Ta)97 570.6 S 2.5
+(bS).8 G(et \(HTS: 0x88\))-2.5 E 72 579.1 72 589.1 DL 72 578.1 72 588.1
+DL 87.998 579.1 87.998 589.1 DL 77 589.1 72 589.1 DL 77.998 589.1 72.998
+589.1 DL 82.998 589.1 77.998 589.1 DL 87.998 589.1 82.998 589.1 DL
+87.998 578.1 87.998 588.1 DL 77 578.1 72 578.1 DL 77.998 578.1 72.998
+578.1 DL 82.998 578.1 77.998 578.1 DL 87.998 578.1 82.998 578.1 DL
+89.664 579.1 89.664 589.1 DL 89.664 578.1 89.664 588.1 DL F5(ESC)74.497
+585.6 Q 105.662 579.1 105.662 589.1 DL 94.664 589.1 89.664 589.1 DL
+95.662 589.1 90.662 589.1 DL 100.662 589.1 95.662 589.1 DL 105.662 589.1
+100.662 589.1 DL 105.662 578.1 105.662 588.1 DL 94.664 578.1 89.664
+578.1 DL 95.662 578.1 90.662 578.1 DL 100.662 578.1 95.662 578.1 DL
+105.662 578.1 100.662 578.1 DL F2(M)93.218 586.6 Q(Re)97 602.6 Q -.15
+(ve)-.25 G(rse Inde).15 E 2.5(x\()-.15 G(RI: 0x8d\))-2.5 E 72 611.1 72
+621.1 DL 72 610.1 72 620.1 DL 87.998 611.1 87.998 621.1 DL 77 621.1 72
+621.1 DL 77.998 621.1 72.998 621.1 DL 82.998 621.1 77.998 621.1 DL
+87.998 621.1 82.998 621.1 DL 87.998 610.1 87.998 620.1 DL 77 610.1 72
+610.1 DL 77.998 610.1 72.998 610.1 DL 82.998 610.1 77.998 610.1 DL
+87.998 610.1 82.998 610.1 DL 89.664 611.1 89.664 621.1 DL 89.664 610.1
+89.664 620.1 DL F5(ESC)74.497 617.6 Q 105.662 611.1 105.662 621.1 DL
+94.664 621.1 89.664 621.1 DL 95.662 621.1 90.662 621.1 DL 100.662 621.1
+95.662 621.1 DL 105.662 621.1 100.662 621.1 DL 105.662 610.1 105.662
+620.1 DL 94.664 610.1 89.664 610.1 DL 95.662 610.1 90.662 610.1 DL
+100.662 610.1 95.662 610.1 DL 105.662 610.1 100.662 610.1 DL F2(N)94.053
+618.6 Q(Single Shift Select of G2 Character Set \(SS2: 0x8e\): af)97
+634.6 Q(fects ne)-.25 E(xt character only)-.15 E 72 643.1 72 653.1 DL 72
+642.1 72 652.1 DL 87.998 643.1 87.998 653.1 DL 77 653.1 72 653.1 DL
+77.998 653.1 72.998 653.1 DL 82.998 653.1 77.998 653.1 DL 87.998 653.1
+82.998 653.1 DL 87.998 642.1 87.998 652.1 DL 77 642.1 72 642.1 DL 77.998
+642.1 72.998 642.1 DL 82.998 642.1 77.998 642.1 DL 87.998 642.1 82.998
+642.1 DL 89.664 643.1 89.664 653.1 DL 89.664 642.1 89.664 652.1 DL F5
+(ESC)74.497 649.6 Q 105.662 643.1 105.662 653.1 DL 94.664 653.1 89.664
+653.1 DL 95.662 653.1 90.662 653.1 DL 100.662 653.1 95.662 653.1 DL
+105.662 653.1 100.662 653.1 DL 105.662 642.1 105.662 652.1 DL 94.664
+642.1 89.664 642.1 DL 95.662 642.1 90.662 642.1 DL 100.662 642.1 95.662
+642.1 DL 105.662 642.1 100.662 642.1 DL F2(O)94.053 650.6 Q
+(Single Shift Select of G3 Character Set \(SS3: 0x8f\): af)97 666.6 Q
+(fects ne)-.25 E(xt character only)-.15 E 72 675.1 72 685.1 DL 72 674.1
+72 684.1 DL 87.998 675.1 87.998 685.1 DL 77 685.1 72 685.1 DL 77.998
+685.1 72.998 685.1 DL 82.998 685.1 77.998 685.1 DL 87.998 685.1 82.998
+685.1 DL 87.998 674.1 87.998 684.1 DL 77 674.1 72 674.1 DL 77.998 674.1
+72.998 674.1 DL 82.998 674.1 77.998 674.1 DL 87.998 674.1 82.998 674.1
+DL 89.664 675.1 89.664 685.1 DL 89.664 674.1 89.664 684.1 DL F5(ESC)
+74.497 681.6 Q 105.662 675.1 105.662 685.1 DL 94.664 685.1 89.664 685.1
+DL 95.662 685.1 90.662 685.1 DL 100.662 685.1 95.662 685.1 DL 105.662
+685.1 100.662 685.1 DL 105.662 674.1 105.662 684.1 DL 94.664 674.1
+89.664 674.1 DL 95.662 674.1 90.662 674.1 DL 100.662 674.1 95.662 674.1
+DL 105.662 674.1 100.662 674.1 DL F2(P)94.883 682.6 Q(De)97 698.6 Q
+(vice Control String \(DCS: 0x90\))-.25 E 72 707.1 72 717.1 DL 72 706.1
+72 716.1 DL 87.998 707.1 87.998 717.1 DL 77 717.1 72 717.1 DL 77.998
+717.1 72.998 717.1 DL 82.998 717.1 77.998 717.1 DL 87.998 717.1 82.998
+717.1 DL 87.998 706.1 87.998 716.1 DL 77 706.1 72 706.1 DL 77.998 706.1
+72.998 706.1 DL 82.998 706.1 77.998 706.1 DL 87.998 706.1 82.998 706.1
+DL 89.664 707.1 89.664 717.1 DL 89.664 706.1 89.664 716.1 DL F5(ESC)
+74.497 713.6 Q 105.662 707.1 105.662 717.1 DL 94.664 717.1 89.664 717.1
+DL 95.662 717.1 90.662 717.1 DL 100.662 717.1 95.662 717.1 DL 105.662
+717.1 100.662 717.1 DL 105.662 706.1 105.662 716.1 DL 94.664 706.1
+89.664 706.1 DL 95.662 706.1 90.662 706.1 DL 100.662 706.1 95.662 706.1
+DL 105.662 706.1 100.662 706.1 DL F2(V)94.053 714.6 Q
+(Start of Guarded Area \(SP)97 730.6 Q(A: 0x96\))-.92 E EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q
+(C1 \(8-Bit\) Control Characters)244.97 E .4 LW 72 80.5 72 90.5 DL 72
+79.5 72 89.5 DL 87.998 80.5 87.998 90.5 DL 77 90.5 72 90.5 DL 77.998
+90.5 72.998 90.5 DL 82.998 90.5 77.998 90.5 DL 87.998 90.5 82.998 90.5
+DL 87.998 79.5 87.998 89.5 DL 77 79.5 72 79.5 DL 77.998 79.5 72.998 79.5
+DL 82.998 79.5 77.998 79.5 DL 87.998 79.5 82.998 79.5 DL 89.664 80.5
+89.664 90.5 DL 89.664 79.5 89.664 89.5 DL/F1 6/Times-Roman@0 SF(ESC)
+74.497 87 Q 105.662 80.5 105.662 90.5 DL 94.664 90.5 89.664 90.5 DL
+95.662 90.5 90.662 90.5 DL 100.662 90.5 95.662 90.5 DL 105.662 90.5
+100.662 90.5 DL 105.662 79.5 105.662 89.5 DL 94.664 79.5 89.664 79.5 DL
+95.662 79.5 90.662 79.5 DL 100.662 79.5 95.662 79.5 DL 105.662 79.5
+100.662 79.5 DL F0(W)92.943 88 Q(End of Guarded Area \(EP)97 104 Q
+(A: 0x97\))-.92 E 72 112.5 72 122.5 DL 72 111.5 72 121.5 DL 87.998 112.5
+87.998 122.5 DL 77 122.5 72 122.5 DL 77.998 122.5 72.998 122.5 DL 82.998
+122.5 77.998 122.5 DL 87.998 122.5 82.998 122.5 DL 87.998 111.5 87.998
+121.5 DL 77 111.5 72 111.5 DL 77.998 111.5 72.998 111.5 DL 82.998 111.5
+77.998 111.5 DL 87.998 111.5 82.998 111.5 DL F1(ESC)74.497 119 Q/F2 10
+/Symbol SF(C)4.163 1 M F0(Start of String \(SOS: 0x98\))97 136 Q 72
+144.5 72 154.5 DL 72 143.5 72 153.5 DL 87.998 144.5 87.998 154.5 DL 77
+154.5 72 154.5 DL 77.998 154.5 72.998 154.5 DL 82.998 154.5 77.998 154.5
+DL 87.998 154.5 82.998 154.5 DL 87.998 143.5 87.998 153.5 DL 77 143.5 72
+143.5 DL 77.998 143.5 72.998 143.5 DL 82.998 143.5 77.998 143.5 DL
+87.998 143.5 82.998 143.5 DL 89.664 144.5 89.664 154.5 DL 89.664 143.5
+89.664 153.5 DL F1(ESC)74.497 151 Q 105.662 144.5 105.662 154.5 DL
+94.664 154.5 89.664 154.5 DL 95.662 154.5 90.662 154.5 DL 100.662 154.5
+95.662 154.5 DL 105.662 154.5 100.662 154.5 DL 105.662 143.5 105.662
+153.5 DL 94.664 143.5 89.664 143.5 DL 95.662 143.5 90.662 143.5 DL
+100.662 143.5 95.662 143.5 DL 105.662 143.5 100.662 143.5 DL F0(Z)94.608
+152 Q(Return T)97 168 Q(erminal ID \(DECID: 0x9a\).)-.7 E 318.48 160.5
+318.48 170.5 DL 318.48 159.5 318.48 169.5 DL(Obsolete form of)247.66 168
+Q 334.478 160.5 334.478 170.5 DL 323.48 170.5 318.48 170.5 DL 324.478
+170.5 319.478 170.5 DL 329.478 170.5 324.478 170.5 DL 334.478 170.5
+329.478 170.5 DL 334.478 159.5 334.478 169.5 DL 323.48 159.5 318.48
+159.5 DL 324.478 159.5 319.478 159.5 DL 329.478 159.5 324.478 159.5 DL
+334.478 159.5 329.478 159.5 DL 336.144 160.5 336.144 170.5 DL 336.144
+159.5 336.144 169.5 DL F1(CSI)321.811 167 Q 352.142 160.5 352.142 170.5
+DL 341.144 170.5 336.144 170.5 DL 342.142 170.5 337.142 170.5 DL 347.142
+170.5 342.142 170.5 DL 352.142 170.5 347.142 170.5 DL 352.142 159.5
+352.142 169.5 DL 341.144 159.5 336.144 159.5 DL 342.142 159.5 337.142
+159.5 DL 347.142 159.5 342.142 159.5 DL 352.142 159.5 347.142 159.5 DL
+F0 9.945(c\()341.923 168 S -.4(DA)-9.945 G(\).).4 E 72 176.5 72 186.5 DL
+72 175.5 72 185.5 DL 87.998 176.5 87.998 186.5 DL 77 186.5 72 186.5 DL
+77.998 186.5 72.998 186.5 DL 82.998 186.5 77.998 186.5 DL 87.998 186.5
+82.998 186.5 DL 87.998 175.5 87.998 185.5 DL 77 175.5 72 175.5 DL 77.998
+175.5 72.998 175.5 DL 82.998 175.5 77.998 175.5 DL 87.998 175.5 82.998
+175.5 DL 89.664 176.5 89.664 186.5 DL 89.664 175.5 89.664 185.5 DL F1
+(ESC)74.497 183 Q 105.662 176.5 105.662 186.5 DL 94.664 186.5 89.664
+186.5 DL 95.662 186.5 90.662 186.5 DL 100.662 186.5 95.662 186.5 DL
+105.662 186.5 100.662 186.5 DL 105.662 175.5 105.662 185.5 DL 94.664
+175.5 89.664 175.5 DL 95.662 175.5 90.662 175.5 DL 100.662 175.5 95.662
+175.5 DL 105.662 175.5 100.662 175.5 DL F0([)95.998 184 Q
+(Control Sequence Introducer \(CSI: 0x9b\))97 200 Q 72 208.5 72 218.5 DL
+72 207.5 72 217.5 DL 87.998 208.5 87.998 218.5 DL 77 218.5 72 218.5 DL
+77.998 218.5 72.998 218.5 DL 82.998 218.5 77.998 218.5 DL 87.998 218.5
+82.998 218.5 DL 87.998 207.5 87.998 217.5 DL 77 207.5 72 207.5 DL 77.998
+207.5 72.998 207.5 DL 82.998 207.5 77.998 207.5 DL 87.998 207.5 82.998
+207.5 DL 89.664 208.5 89.664 218.5 DL 89.664 207.5 89.664 217.5 DL F1
+(ESC)74.497 215 Q 105.662 208.5 105.662 218.5 DL 94.664 218.5 89.664
+218.5 DL 95.662 218.5 90.662 218.5 DL 100.662 218.5 95.662 218.5 DL
+105.662 218.5 100.662 218.5 DL 105.662 207.5 105.662 217.5 DL 94.664
+207.5 89.664 207.5 DL 95.662 207.5 90.662 207.5 DL 100.662 207.5 95.662
+207.5 DL 105.662 207.5 100.662 207.5 DL F0(\\)96.273 216 Q(String T)97
+232 Q(erminator \(ST)-.7 E 2.5(:0)-.5 G(x9c\))-2.5 E 72 240.5 72 250.5
+DL 72 239.5 72 249.5 DL 87.998 240.5 87.998 250.5 DL 77 250.5 72 250.5
+DL 77.998 250.5 72.998 250.5 DL 82.998 250.5 77.998 250.5 DL 87.998
+250.5 82.998 250.5 DL 87.998 239.5 87.998 249.5 DL 77 239.5 72 239.5 DL
+77.998 239.5 72.998 239.5 DL 82.998 239.5 77.998 239.5 DL 87.998 239.5
+82.998 239.5 DL 89.664 240.5 89.664 250.5 DL 89.664 239.5 89.664 249.5
+DL F1(ESC)74.497 247 Q 105.662 240.5 105.662 250.5 DL 94.664 250.5
+89.664 250.5 DL 95.662 250.5 90.662 250.5 DL 100.662 250.5 95.662 250.5
+DL 105.662 250.5 100.662 250.5 DL 105.662 239.5 105.662 249.5 DL 94.664
+239.5 89.664 239.5 DL 95.662 239.5 90.662 239.5 DL 100.662 239.5 95.662
+239.5 DL 105.662 239.5 100.662 239.5 DL F0(])95.998 248 Q
+(Operating System Command \(OSC: 0x9d\))97 264 Q 72 272.5 72 282.5 DL 72
+271.5 72 281.5 DL 87.998 272.5 87.998 282.5 DL 77 282.5 72 282.5 DL
+77.998 282.5 72.998 282.5 DL 82.998 282.5 77.998 282.5 DL 87.998 282.5
+82.998 282.5 DL 87.998 271.5 87.998 281.5 DL 77 271.5 72 271.5 DL 77.998
+271.5 72.998 271.5 DL 82.998 271.5 77.998 271.5 DL 87.998 271.5 82.998
+271.5 DL 89.664 272.5 89.664 282.5 DL 89.664 271.5 89.664 281.5 DL F1
+(ESC)74.497 279 Q 105.662 272.5 105.662 282.5 DL 94.664 282.5 89.664
+282.5 DL 95.662 282.5 90.662 282.5 DL 100.662 282.5 95.662 282.5 DL
+105.662 282.5 100.662 282.5 DL 105.662 271.5 105.662 281.5 DL 94.664
+271.5 89.664 271.5 DL 95.662 271.5 90.662 271.5 DL 100.662 271.5 95.662
+271.5 DL 105.662 271.5 100.662 271.5 DL F0(^)95.998 280 Q(Pri)97 296 Q
+-.25(va)-.25 G .3 -.15(cy M).25 H(essage \(PM: 0x9e\)).15 E 72 304.5 72
+314.5 DL 72 303.5 72 313.5 DL 87.998 304.5 87.998 314.5 DL 77 314.5 72
+314.5 DL 77.998 314.5 72.998 314.5 DL 82.998 314.5 77.998 314.5 DL
+87.998 314.5 82.998 314.5 DL 87.998 303.5 87.998 313.5 DL 77 303.5 72
+303.5 DL 77.998 303.5 72.998 303.5 DL 82.998 303.5 77.998 303.5 DL
+87.998 303.5 82.998 303.5 DL 89.664 304.5 89.664 314.5 DL 89.664 303.5
+89.664 313.5 DL F1(ESC)74.497 311 Q 105.662 304.5 105.662 314.5 DL
+94.664 314.5 89.664 314.5 DL 95.662 314.5 90.662 314.5 DL 100.662 314.5
+95.662 314.5 DL 105.662 314.5 100.662 314.5 DL 105.662 303.5 105.662
+313.5 DL 94.664 303.5 89.664 303.5 DL 95.662 303.5 90.662 303.5 DL
+100.662 303.5 95.662 303.5 DL 105.662 303.5 100.662 303.5 DL F0(_)95.163
+312 Q(Application Program Command \(APC: 0x9f\))97 328 Q
+(These control characters are used in the vtXXX emulation.)72 360.8 Q/F3
+10/Times-Bold@0 SF(VT100 Mode)72 384.8 Q F0 .137(Most of these control \
+sequences are standard VT102 control sequences, b)72 401.6 R .136
+(ut there is support for later DEC VT termi-)-.2 F .819
+(nals \(i.e., VT220 and VT320\), as well as ISO 6429 and)72 413.6 R/F4
+10/Times-Italic@0 SF(aixterm)3.32 E F0 .82(color controls.)3.32 F .82
+(VT102 features not supported are)5.82 F .851
+(auto-repeat and blinking characters.)72 425.6 R .851
+(There are additional control sequences to pro)5.851 F(vide)-.15 E F4
+(xterm-)3.35 E F0 .85(dependent functions,)B .062
+(such as the scrollbar or windo)72 437.6 R 2.562(ws)-.25 G 2.562
+(ize. Where)-2.562 F .062(the function is speci\214ed by DEC or ISO 642\
+9, the code assigned to it is)2.562 F(gi)72 449.6 Q -.15(ve)-.25 G 3.29
+(ni).15 G 3.29(np)-3.29 G 3.29(arentheses. The)-3.29 F .79
+(escape codes to designate and in)3.29 F -.2(vo)-.4 G .989 -.1(ke c).2 H
+.789(haracter sets are speci\214ed by ISO 2022; see that).1 F
+(document for a discussion of character sets.)72 461.6 Q F3
+(Single-character functions)72 489.6 Q 72 498.1 72 508.1 DL 72 497.1 72
+507.1 DL 87.998 498.1 87.998 508.1 DL 77 508.1 72 508.1 DL 77.998 508.1
+72.998 508.1 DL 82.998 508.1 77.998 508.1 DL 87.998 508.1 82.998 508.1
+DL 87.998 497.1 87.998 507.1 DL 77 497.1 72 497.1 DL 77.998 497.1 72.998
+497.1 DL 82.998 497.1 77.998 497.1 DL 87.998 497.1 82.998 497.1 DL F1
+(BEL)74.332 504.6 Q F0(Bell \(Ctrl-G\))94.334 1 M 72 514.1 72 524.1 DL
+72 513.1 72 523.1 DL 87.998 514.1 87.998 524.1 DL 77 524.1 72 524.1 DL
+77.998 524.1 72.998 524.1 DL 82.998 524.1 77.998 524.1 DL 87.998 524.1
+82.998 524.1 DL 87.998 513.1 87.998 523.1 DL 77 513.1 72 513.1 DL 77.998
+513.1 72.998 513.1 DL 82.998 513.1 77.998 513.1 DL 87.998 513.1 82.998
+513.1 DL F1(BS)76.33 520.6 Q F0(Backspace \(Ctrl-H\))96.332 1 M 72 530.1
+72 540.1 DL 72 529.1 72 539.1 DL 87.998 530.1 87.998 540.1 DL 77 540.1
+72 540.1 DL 77.998 540.1 72.998 540.1 DL 82.998 540.1 77.998 540.1 DL
+87.998 540.1 82.998 540.1 DL 87.998 529.1 87.998 539.1 DL 77 529.1 72
+529.1 DL 77.998 529.1 72.998 529.1 DL 82.998 529.1 77.998 529.1 DL
+87.998 529.1 82.998 529.1 DL F1(CR)75.997 536.6 Q F0
+(Carriage Return \(Ctrl-M\))95.999 1 M 72 546.1 72 556.1 DL 72 545.1 72
+555.1 DL 87.998 546.1 87.998 556.1 DL 77 556.1 72 556.1 DL 77.998 556.1
+72.998 556.1 DL 82.998 556.1 77.998 556.1 DL 87.998 556.1 82.998 556.1
+DL 87.998 545.1 87.998 555.1 DL 77 545.1 72 545.1 DL 77.998 545.1 72.998
+545.1 DL 82.998 545.1 77.998 545.1 DL 87.998 545.1 82.998 545.1 DL F1
+(ENQ)73.834 552.6 Q F0 .078(Return T)93.836 1 N .078
+(erminal Status \(Ctrl-E\).)-.7 F(Def)5.078 E .078
+(ault response is the terminal name, e.g., "xterm", b)-.1 F(ut)-.2 E
+(may be o)180 569.6 Q -.15(ve)-.15 G(rridden by a resource).15 E F4
+(answerbac)2.5 E(kString)-.2 E F0(.)A 72 578.1 72 588.1 DL 72 577.1 72
+587.1 DL 87.998 578.1 87.998 588.1 DL 77 588.1 72 588.1 DL 77.998 588.1
+72.998 588.1 DL 82.998 588.1 77.998 588.1 DL 87.998 588.1 82.998 588.1
+DL 87.998 577.1 87.998 587.1 DL 77 577.1 72 577.1 DL 77.998 577.1 72.998
+577.1 DL 82.998 577.1 77.998 577.1 DL 87.998 577.1 82.998 577.1 DL F1
+(FF)76.663 584.6 Q F0 -.15(Fo)96.665 1 O(rm Feed or Ne).15 E 2.5(wP)-.25
+G(age \(NP\) \(Ctrl-L\) same as LF)-2.65 E 72 594.1 72 604.1 DL 72 593.1
+72 603.1 DL 87.998 594.1 87.998 604.1 DL 77 604.1 72 604.1 DL 77.998
+604.1 72.998 604.1 DL 82.998 604.1 77.998 604.1 DL 87.998 604.1 82.998
+604.1 DL 87.998 593.1 87.998 603.1 DL 77 593.1 72 593.1 DL 77.998 593.1
+72.998 593.1 DL 82.998 593.1 77.998 593.1 DL 87.998 593.1 82.998 593.1
+DL F1(LF)76.498 600.6 Q F0(Line Feed or Ne)96.5 1 M 2.5(wL)-.25 G
+(ine \(NL\) \(Ctrl-J\))-2.5 E 72 610.1 72 620.1 DL 72 609.1 72 619.1 DL
+87.998 610.1 87.998 620.1 DL 77 620.1 72 620.1 DL 77.998 620.1 72.998
+620.1 DL 82.998 620.1 77.998 620.1 DL 87.998 620.1 82.998 620.1 DL
+87.998 609.1 87.998 619.1 DL 77 609.1 72 609.1 DL 77.998 609.1 72.998
+609.1 DL 82.998 609.1 77.998 609.1 DL 87.998 609.1 82.998 609.1 DL F1
+(SO)76.165 616.6 Q F0(Shift Out \(Ctrl-N\))96.167 1 M F2<ae>2.5 E F0
+(Switch to Alternate Character Set: in)2.5 E -.2(vo)-.4 G -.1(ke).2 G
+2.5(st).1 G(he G1 character set.)-2.5 E 72 626.1 72 636.1 DL 72 625.1 72
+635.1 DL 87.998 626.1 87.998 636.1 DL 77 636.1 72 636.1 DL 77.998 636.1
+72.998 636.1 DL 82.998 636.1 77.998 636.1 DL 87.998 636.1 82.998 636.1
+DL 87.998 625.1 87.998 635.1 DL 77 625.1 72 625.1 DL 77.998 625.1 72.998
+625.1 DL 82.998 625.1 77.998 625.1 DL 87.998 625.1 82.998 625.1 DL F1
+(SP)76.663 632.6 Q F0(Space.)96.665 1 M 72 642.1 72 652.1 DL 72 641.1 72
+651.1 DL F1 -.558(TA)74.278 648.6 S 87.998 642.1 87.998 652.1 DL 77
+652.1 72 652.1 DL 77.998 652.1 72.998 652.1 DL 82.998 652.1 77.998 652.1
+DL 87.998 652.1 82.998 652.1 DL 87.998 641.1 87.998 651.1 DL 77 641.1 72
+641.1 DL 77.998 641.1 72.998 641.1 DL 82.998 641.1 77.998 641.1 DL
+87.998 641.1 82.998 641.1 DL(B)81.718 648.6 Q F0(Horizontal T)94.28 1 M
+(ab \(HT\) \(Ctrl-I\))-.8 E 72 658.1 72 668.1 DL 72 657.1 72 667.1 DL
+87.998 658.1 87.998 668.1 DL 77 668.1 72 668.1 DL 77.998 668.1 72.998
+668.1 DL 82.998 668.1 77.998 668.1 DL 87.998 668.1 82.998 668.1 DL
+87.998 657.1 87.998 667.1 DL 77 657.1 72 657.1 DL 77.998 657.1 72.998
+657.1 DL 82.998 657.1 77.998 657.1 DL 87.998 657.1 82.998 657.1 DL F1
+(VT)76 664.6 Q F0 -1.11(Ve)96.002 1 O(rtical T)1.11 E
+(ab \(Ctrl-K\) same as LF)-.8 E 72 674.1 72 684.1 DL 72 673.1 72 683.1
+DL 87.998 674.1 87.998 684.1 DL 77 684.1 72 684.1 DL 77.998 684.1 72.998
+684.1 DL 82.998 684.1 77.998 684.1 DL 87.998 684.1 82.998 684.1 DL
+87.998 673.1 87.998 683.1 DL 77 673.1 72 673.1 DL 77.998 673.1 72.998
+673.1 DL 82.998 673.1 77.998 673.1 DL 87.998 673.1 82.998 673.1 DL F1
+(SI)77.332 680.6 Q F0 .778(Shift In \(Ctrl-O\))97.334 1 N F2<ae>3.278 E
+F0 .778(Switch to Standard Character Set: in)3.278 F -.2(vo)-.4 G -.1
+(ke).2 G 3.278(st).1 G .778(he G0 character set \(the)-3.278 F(def)180
+697.6 Q(ault\).)-.1 E(2)303.5 772 Q EP
+%%Page: 3 3
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E/F1 10/Times-Bold@0 SF(Contr)72 88 Q .501
+(ols beginning with ESC \(other than those wher)-.18 F 3.001(eE)-.18 G
+.501(SC is part of a 7-bit equi)-3.001 F -.1(va)-.1 G .501
+(lent to 8-bit C1 contr).1 F(ols\),)-.18 E(order)72 104 Q
+(ed by the \214nal character\(s\).)-.18 E .4 LW 72 112.5 72 122.5 DL 72
+111.5 72 121.5 DL 87.998 112.5 87.998 122.5 DL 77 122.5 72 122.5 DL
+77.998 122.5 72.998 122.5 DL 82.998 122.5 77.998 122.5 DL 87.998 122.5
+82.998 122.5 DL 87.998 111.5 87.998 121.5 DL 77 111.5 72 111.5 DL 77.998
+111.5 72.998 111.5 DL 82.998 111.5 77.998 111.5 DL 87.998 111.5 82.998
+111.5 DL 89.664 112.5 89.664 122.5 DL 89.664 111.5 89.664 121.5 DL
+105.662 112.5 105.662 122.5 DL 94.664 122.5 89.664 122.5 DL 95.662 122.5
+90.662 122.5 DL 100.662 122.5 95.662 122.5 DL 105.662 122.5 100.662
+122.5 DL 105.662 111.5 105.662 121.5 DL 94.664 111.5 89.664 111.5 DL
+95.662 111.5 90.662 111.5 DL 100.662 111.5 95.662 111.5 DL 105.662 111.5
+100.662 111.5 DL 107.328 112.5 107.328 122.5 DL 107.328 111.5 107.328
+121.5 DL/F2 6/Times-Roman@0 SF 7.326(ESC SP)74.497 119 R 123.326 112.5
+123.326 122.5 DL 112.328 122.5 107.328 122.5 DL 113.326 122.5 108.326
+122.5 DL 118.326 122.5 113.326 122.5 DL 123.326 122.5 118.326 122.5 DL
+123.326 111.5 123.326 121.5 DL 112.328 111.5 107.328 111.5 DL 113.326
+111.5 108.326 111.5 DL 118.326 111.5 113.326 111.5 DL 123.326 111.5
+118.326 111.5 DL F0 61.893(F7)112.547 120 S(-bit controls \(S7C1T\).)
+-61.893 E 72 128.5 72 138.5 DL 72 127.5 72 137.5 DL 87.998 128.5 87.998
+138.5 DL 77 138.5 72 138.5 DL 77.998 138.5 72.998 138.5 DL 82.998 138.5
+77.998 138.5 DL 87.998 138.5 82.998 138.5 DL 87.998 127.5 87.998 137.5
+DL 77 127.5 72 127.5 DL 77.998 127.5 72.998 127.5 DL 82.998 127.5 77.998
+127.5 DL 87.998 127.5 82.998 127.5 DL 89.664 128.5 89.664 138.5 DL
+89.664 127.5 89.664 137.5 DL 105.662 128.5 105.662 138.5 DL 94.664 138.5
+89.664 138.5 DL 95.662 138.5 90.662 138.5 DL 100.662 138.5 95.662 138.5
+DL 105.662 138.5 100.662 138.5 DL 105.662 127.5 105.662 137.5 DL 94.664
+127.5 89.664 127.5 DL 95.662 127.5 90.662 127.5 DL 100.662 127.5 95.662
+127.5 DL 105.662 127.5 100.662 127.5 DL 107.328 128.5 107.328 138.5 DL
+107.328 127.5 107.328 137.5 DL F2 7.326(ESC SP)74.497 135 R 123.326
+128.5 123.326 138.5 DL 112.328 138.5 107.328 138.5 DL 113.326 138.5
+108.326 138.5 DL 118.326 138.5 113.326 138.5 DL 123.326 138.5 118.326
+138.5 DL 123.326 127.5 123.326 137.5 DL 112.328 127.5 107.328 127.5 DL
+113.326 127.5 108.326 127.5 DL 118.326 127.5 113.326 127.5 DL 123.326
+127.5 118.326 127.5 DL F0 61.063(G8)111.717 136 S
+(-bit controls \(S8C1T\).)-61.063 E 72 144.5 72 154.5 DL 72 143.5 72
+153.5 DL 87.998 144.5 87.998 154.5 DL 77 154.5 72 154.5 DL 77.998 154.5
+72.998 154.5 DL 82.998 154.5 77.998 154.5 DL 87.998 154.5 82.998 154.5
+DL 87.998 143.5 87.998 153.5 DL 77 143.5 72 143.5 DL 77.998 143.5 72.998
+143.5 DL 82.998 143.5 77.998 143.5 DL 87.998 143.5 82.998 143.5 DL
+89.664 144.5 89.664 154.5 DL 89.664 143.5 89.664 153.5 DL 105.662 144.5
+105.662 154.5 DL 94.664 154.5 89.664 154.5 DL 95.662 154.5 90.662 154.5
+DL 100.662 154.5 95.662 154.5 DL 105.662 154.5 100.662 154.5 DL 105.662
+143.5 105.662 153.5 DL 94.664 143.5 89.664 143.5 DL 95.662 143.5 90.662
+143.5 DL 100.662 143.5 95.662 143.5 DL 105.662 143.5 100.662 143.5 DL
+107.328 144.5 107.328 154.5 DL 107.328 143.5 107.328 153.5 DL F2 7.326
+(ESC SP)74.497 151 R 123.326 144.5 123.326 154.5 DL 112.328 154.5
+107.328 154.5 DL 113.326 154.5 108.326 154.5 DL 118.326 154.5 113.326
+154.5 DL 123.326 154.5 118.326 154.5 DL 123.326 143.5 123.326 153.5 DL
+112.328 143.5 107.328 143.5 DL 113.326 143.5 108.326 143.5 DL 118.326
+143.5 113.326 143.5 DL 123.326 143.5 118.326 143.5 DL F0 61.618(LS)
+112.272 152 S(et ANSI conformance le)-61.618 E -.15(ve)-.25 G 2.5(l1\()
+.15 G(vt100, 7-bit controls\).)-2.5 E 72 160.5 72 170.5 DL 72 159.5 72
+169.5 DL 87.998 160.5 87.998 170.5 DL 77 170.5 72 170.5 DL 77.998 170.5
+72.998 170.5 DL 82.998 170.5 77.998 170.5 DL 87.998 170.5 82.998 170.5
+DL 87.998 159.5 87.998 169.5 DL 77 159.5 72 159.5 DL 77.998 159.5 72.998
+159.5 DL 82.998 159.5 77.998 159.5 DL 87.998 159.5 82.998 159.5 DL
+89.664 160.5 89.664 170.5 DL 89.664 159.5 89.664 169.5 DL 105.662 160.5
+105.662 170.5 DL 94.664 170.5 89.664 170.5 DL 95.662 170.5 90.662 170.5
+DL 100.662 170.5 95.662 170.5 DL 105.662 170.5 100.662 170.5 DL 105.662
+159.5 105.662 169.5 DL 94.664 159.5 89.664 159.5 DL 95.662 159.5 90.662
+159.5 DL 100.662 159.5 95.662 159.5 DL 105.662 159.5 100.662 159.5 DL
+107.328 160.5 107.328 170.5 DL 107.328 159.5 107.328 169.5 DL F2 7.326
+(ESC SP)74.497 167 R 123.326 160.5 123.326 170.5 DL 112.328 170.5
+107.328 170.5 DL 113.326 170.5 108.326 170.5 DL 118.326 170.5 113.326
+170.5 DL 123.326 170.5 118.326 170.5 DL 123.326 159.5 123.326 169.5 DL
+112.328 159.5 107.328 159.5 DL 113.326 159.5 108.326 159.5 DL 118.326
+159.5 113.326 159.5 DL 123.326 159.5 118.326 159.5 DL F0 60.228(MS)
+110.882 168 S(et ANSI conformance le)-60.228 E -.15(ve)-.25 G 2.5(l2\()
+.15 G(vt200\).)-2.5 E 72 176.5 72 186.5 DL 72 175.5 72 185.5 DL 87.998
+176.5 87.998 186.5 DL 77 186.5 72 186.5 DL 77.998 186.5 72.998 186.5 DL
+82.998 186.5 77.998 186.5 DL 87.998 186.5 82.998 186.5 DL 87.998 175.5
+87.998 185.5 DL 77 175.5 72 175.5 DL 77.998 175.5 72.998 175.5 DL 82.998
+175.5 77.998 175.5 DL 87.998 175.5 82.998 175.5 DL 89.664 176.5 89.664
+186.5 DL 89.664 175.5 89.664 185.5 DL 105.662 176.5 105.662 186.5 DL
+94.664 186.5 89.664 186.5 DL 95.662 186.5 90.662 186.5 DL 100.662 186.5
+95.662 186.5 DL 105.662 186.5 100.662 186.5 DL 105.662 175.5 105.662
+185.5 DL 94.664 175.5 89.664 175.5 DL 95.662 175.5 90.662 175.5 DL
+100.662 175.5 95.662 175.5 DL 105.662 175.5 100.662 175.5 DL 107.328
+176.5 107.328 186.5 DL 107.328 175.5 107.328 185.5 DL F2 7.326(ESC SP)
+74.497 183 R 123.326 176.5 123.326 186.5 DL 112.328 186.5 107.328 186.5
+DL 113.326 186.5 108.326 186.5 DL 118.326 186.5 113.326 186.5 DL 123.326
+186.5 118.326 186.5 DL 123.326 175.5 123.326 185.5 DL 112.328 175.5
+107.328 175.5 DL 113.326 175.5 108.326 175.5 DL 118.326 175.5 113.326
+175.5 DL 123.326 175.5 118.326 175.5 DL F0 61.063(NS)111.717 184 S
+(et ANSI conformance le)-61.063 E -.15(ve)-.25 G 2.5(l3\().15 G
+(vt300\).)-2.5 E 72 192.5 72 202.5 DL 72 191.5 72 201.5 DL 87.998 192.5
+87.998 202.5 DL 77 202.5 72 202.5 DL 77.998 202.5 72.998 202.5 DL 82.998
+202.5 77.998 202.5 DL 87.998 202.5 82.998 202.5 DL 87.998 191.5 87.998
+201.5 DL 77 191.5 72 191.5 DL 77.998 191.5 72.998 191.5 DL 82.998 191.5
+77.998 191.5 DL 87.998 191.5 82.998 191.5 DL 89.664 192.5 89.664 202.5
+DL 89.664 191.5 89.664 201.5 DL F2(ESC)74.497 199 Q 105.662 192.5
+105.662 202.5 DL 94.664 202.5 89.664 202.5 DL 95.662 202.5 90.662 202.5
+DL 100.662 202.5 95.662 202.5 DL 105.662 202.5 100.662 202.5 DL 105.662
+191.5 105.662 201.5 DL 94.664 191.5 89.664 191.5 DL 95.662 191.5 90.662
+191.5 DL 100.662 191.5 95.662 191.5 DL 105.662 191.5 100.662 191.5 DL
+107.328 192.5 107.328 202.5 DL 107.328 191.5 107.328 201.5 DL 123.326
+192.5 123.326 202.5 DL 112.328 202.5 107.328 202.5 DL 113.326 202.5
+108.326 202.5 DL 118.326 202.5 113.326 202.5 DL 123.326 202.5 118.326
+202.5 DL 123.326 191.5 123.326 201.5 DL 112.328 191.5 107.328 191.5 DL
+113.326 191.5 108.326 191.5 DL 118.326 191.5 113.326 191.5 DL 123.326
+191.5 118.326 191.5 DL F0 34.345 12.664(#3 D)95.163 200 T
+(EC double-height line, top half \(DECDHL\))-12.664 E 72 208.5 72 218.5
+DL 72 207.5 72 217.5 DL 87.998 208.5 87.998 218.5 DL 77 218.5 72 218.5
+DL 77.998 218.5 72.998 218.5 DL 82.998 218.5 77.998 218.5 DL 87.998
+218.5 82.998 218.5 DL 87.998 207.5 87.998 217.5 DL 77 207.5 72 207.5 DL
+77.998 207.5 72.998 207.5 DL 82.998 207.5 77.998 207.5 DL 87.998 207.5
+82.998 207.5 DL 89.664 208.5 89.664 218.5 DL 89.664 207.5 89.664 217.5
+DL F2(ESC)74.497 215 Q 105.662 208.5 105.662 218.5 DL 94.664 218.5
+89.664 218.5 DL 95.662 218.5 90.662 218.5 DL 100.662 218.5 95.662 218.5
+DL 105.662 218.5 100.662 218.5 DL 105.662 207.5 105.662 217.5 DL 94.664
+207.5 89.664 207.5 DL 95.662 207.5 90.662 207.5 DL 100.662 207.5 95.662
+207.5 DL 105.662 207.5 100.662 207.5 DL 107.328 208.5 107.328 218.5 DL
+107.328 207.5 107.328 217.5 DL 123.326 208.5 123.326 218.5 DL 112.328
+218.5 107.328 218.5 DL 113.326 218.5 108.326 218.5 DL 118.326 218.5
+113.326 218.5 DL 123.326 218.5 118.326 218.5 DL 123.326 207.5 123.326
+217.5 DL 112.328 207.5 107.328 207.5 DL 113.326 207.5 108.326 207.5 DL
+118.326 207.5 113.326 207.5 DL 123.326 207.5 118.326 207.5 DL F0 34.345
+12.664(#4 D)95.163 216 T(EC double-height line, bottom half \(DECDHL\))
+-12.664 E 72 224.5 72 234.5 DL 72 223.5 72 233.5 DL 87.998 224.5 87.998
+234.5 DL 77 234.5 72 234.5 DL 77.998 234.5 72.998 234.5 DL 82.998 234.5
+77.998 234.5 DL 87.998 234.5 82.998 234.5 DL 87.998 223.5 87.998 233.5
+DL 77 223.5 72 223.5 DL 77.998 223.5 72.998 223.5 DL 82.998 223.5 77.998
+223.5 DL 87.998 223.5 82.998 223.5 DL 89.664 224.5 89.664 234.5 DL
+89.664 223.5 89.664 233.5 DL F2(ESC)74.497 231 Q 105.662 224.5 105.662
+234.5 DL 94.664 234.5 89.664 234.5 DL 95.662 234.5 90.662 234.5 DL
+100.662 234.5 95.662 234.5 DL 105.662 234.5 100.662 234.5 DL 105.662
+223.5 105.662 233.5 DL 94.664 223.5 89.664 223.5 DL 95.662 223.5 90.662
+223.5 DL 100.662 223.5 95.662 223.5 DL 105.662 223.5 100.662 223.5 DL
+107.328 224.5 107.328 234.5 DL 107.328 223.5 107.328 233.5 DL 123.326
+224.5 123.326 234.5 DL 112.328 234.5 107.328 234.5 DL 113.326 234.5
+108.326 234.5 DL 118.326 234.5 113.326 234.5 DL 123.326 234.5 118.326
+234.5 DL 123.326 223.5 123.326 233.5 DL 112.328 223.5 107.328 223.5 DL
+113.326 223.5 108.326 223.5 DL 118.326 223.5 113.326 223.5 DL 123.326
+223.5 118.326 223.5 DL F0 34.345 12.664(#5 D)95.163 232 T
+(EC single-width line \(DECSWL\))-12.664 E 72 240.5 72 250.5 DL 72 239.5
+72 249.5 DL 87.998 240.5 87.998 250.5 DL 77 250.5 72 250.5 DL 77.998
+250.5 72.998 250.5 DL 82.998 250.5 77.998 250.5 DL 87.998 250.5 82.998
+250.5 DL 87.998 239.5 87.998 249.5 DL 77 239.5 72 239.5 DL 77.998 239.5
+72.998 239.5 DL 82.998 239.5 77.998 239.5 DL 87.998 239.5 82.998 239.5
+DL 89.664 240.5 89.664 250.5 DL 89.664 239.5 89.664 249.5 DL F2(ESC)
+74.497 247 Q 105.662 240.5 105.662 250.5 DL 94.664 250.5 89.664 250.5 DL
+95.662 250.5 90.662 250.5 DL 100.662 250.5 95.662 250.5 DL 105.662 250.5
+100.662 250.5 DL 105.662 239.5 105.662 249.5 DL 94.664 239.5 89.664
+239.5 DL 95.662 239.5 90.662 239.5 DL 100.662 239.5 95.662 239.5 DL
+105.662 239.5 100.662 239.5 DL 107.328 240.5 107.328 250.5 DL 107.328
+239.5 107.328 249.5 DL 123.326 240.5 123.326 250.5 DL 112.328 250.5
+107.328 250.5 DL 113.326 250.5 108.326 250.5 DL 118.326 250.5 113.326
+250.5 DL 123.326 250.5 118.326 250.5 DL 123.326 239.5 123.326 249.5 DL
+112.328 239.5 107.328 239.5 DL 113.326 239.5 108.326 239.5 DL 118.326
+239.5 113.326 239.5 DL 123.326 239.5 118.326 239.5 DL F0 34.345 12.664
+(#6 D)95.163 248 T(EC double-width line \(DECD)-12.664 E(WL\))-.3 E 72
+256.5 72 266.5 DL 72 255.5 72 265.5 DL 87.998 256.5 87.998 266.5 DL 77
+266.5 72 266.5 DL 77.998 266.5 72.998 266.5 DL 82.998 266.5 77.998 266.5
+DL 87.998 266.5 82.998 266.5 DL 87.998 255.5 87.998 265.5 DL 77 255.5 72
+255.5 DL 77.998 255.5 72.998 255.5 DL 82.998 255.5 77.998 255.5 DL
+87.998 255.5 82.998 255.5 DL 89.664 256.5 89.664 266.5 DL 89.664 255.5
+89.664 265.5 DL F2(ESC)74.497 263 Q 105.662 256.5 105.662 266.5 DL
+94.664 266.5 89.664 266.5 DL 95.662 266.5 90.662 266.5 DL 100.662 266.5
+95.662 266.5 DL 105.662 266.5 100.662 266.5 DL 105.662 255.5 105.662
+265.5 DL 94.664 255.5 89.664 255.5 DL 95.662 255.5 90.662 255.5 DL
+100.662 255.5 95.662 255.5 DL 105.662 255.5 100.662 255.5 DL 107.328
+256.5 107.328 266.5 DL 107.328 255.5 107.328 265.5 DL 123.326 256.5
+123.326 266.5 DL 112.328 266.5 107.328 266.5 DL 113.326 266.5 108.326
+266.5 DL 118.326 266.5 113.326 266.5 DL 123.326 266.5 118.326 266.5 DL
+123.326 255.5 123.326 265.5 DL 112.328 255.5 107.328 255.5 DL 113.326
+255.5 108.326 255.5 DL 118.326 255.5 113.326 255.5 DL 123.326 255.5
+118.326 255.5 DL F0 34.345 12.664(#8 D)95.163 264 T
+(EC Screen Alignment T)-12.664 E(est \(DECALN\))-.7 E 72 272.5 72 282.5
+DL 72 271.5 72 281.5 DL 87.998 272.5 87.998 282.5 DL 77 282.5 72 282.5
+DL 77.998 282.5 72.998 282.5 DL 82.998 282.5 77.998 282.5 DL 87.998
+282.5 82.998 282.5 DL 87.998 271.5 87.998 281.5 DL 77 271.5 72 271.5 DL
+77.998 271.5 72.998 271.5 DL 82.998 271.5 77.998 271.5 DL 87.998 271.5
+82.998 271.5 DL 89.664 272.5 89.664 282.5 DL 89.664 271.5 89.664 281.5
+DL F2(ESC)74.497 279 Q 105.662 272.5 105.662 282.5 DL 94.664 282.5
+89.664 282.5 DL 95.662 282.5 90.662 282.5 DL 100.662 282.5 95.662 282.5
+DL 105.662 282.5 100.662 282.5 DL 105.662 271.5 105.662 281.5 DL 94.664
+271.5 89.664 271.5 DL 95.662 271.5 90.662 271.5 DL 100.662 271.5 95.662
+271.5 DL 105.662 271.5 100.662 271.5 DL 107.328 272.5 107.328 282.5 DL
+107.328 271.5 107.328 281.5 DL 123.326 272.5 123.326 282.5 DL 112.328
+282.5 107.328 282.5 DL 113.326 282.5 108.326 282.5 DL 118.326 282.5
+113.326 282.5 DL 123.326 282.5 118.326 282.5 DL 123.326 271.5 123.326
+281.5 DL 112.328 271.5 107.328 271.5 DL 113.326 271.5 108.326 271.5 DL
+118.326 271.5 113.326 271.5 DL 123.326 271.5 118.326 271.5 DL F0 39.78
+8.894(%@ S)93.498 280 T(elect def)-8.894 E
+(ault character set, ISO 8859-1 \(ISO 2022\))-.1 E 72 288.5 72 298.5 DL
+72 287.5 72 297.5 DL 87.998 288.5 87.998 298.5 DL 77 298.5 72 298.5 DL
+77.998 298.5 72.998 298.5 DL 82.998 298.5 77.998 298.5 DL 87.998 298.5
+82.998 298.5 DL 87.998 287.5 87.998 297.5 DL 77 287.5 72 287.5 DL 77.998
+287.5 72.998 287.5 DL 82.998 287.5 77.998 287.5 DL 87.998 287.5 82.998
+287.5 DL 89.664 288.5 89.664 298.5 DL 89.664 287.5 89.664 297.5 DL F2
+(ESC)74.497 295 Q 105.662 288.5 105.662 298.5 DL 94.664 298.5 89.664
+298.5 DL 95.662 298.5 90.662 298.5 DL 100.662 298.5 95.662 298.5 DL
+105.662 298.5 100.662 298.5 DL 105.662 287.5 105.662 297.5 DL 94.664
+287.5 89.664 287.5 DL 95.662 287.5 90.662 287.5 DL 100.662 287.5 95.662
+287.5 DL 105.662 287.5 100.662 287.5 DL 107.328 288.5 107.328 298.5 DL
+107.328 287.5 107.328 297.5 DL 123.326 288.5 123.326 298.5 DL 112.328
+298.5 107.328 298.5 DL 113.326 298.5 108.326 298.5 DL 118.326 298.5
+113.326 298.5 DL 123.326 298.5 118.326 298.5 DL 123.326 287.5 123.326
+297.5 DL 112.328 287.5 107.328 287.5 DL 113.326 287.5 108.326 287.5 DL
+118.326 287.5 113.326 287.5 DL 123.326 287.5 118.326 287.5 DL F0 38.785
+9.889(%G S)93.498 296 T(elect UTF-8 character set \(ISO 2022\))-9.889 E
+72 304.5 72 314.5 DL 72 303.5 72 313.5 DL 87.998 304.5 87.998 314.5 DL
+77 314.5 72 314.5 DL 77.998 314.5 72.998 314.5 DL 82.998 314.5 77.998
+314.5 DL 87.998 314.5 82.998 314.5 DL 87.998 303.5 87.998 313.5 DL 77
+303.5 72 303.5 DL 77.998 303.5 72.998 303.5 DL 82.998 303.5 77.998 303.5
+DL 87.998 303.5 82.998 303.5 DL 89.664 304.5 89.664 314.5 DL 89.664
+303.5 89.664 313.5 DL F2(ESC)74.497 311 Q 105.662 304.5 105.662 314.5 DL
+94.664 314.5 89.664 314.5 DL 95.662 314.5 90.662 314.5 DL 100.662 314.5
+95.662 314.5 DL 105.662 314.5 100.662 314.5 DL 105.662 303.5 105.662
+313.5 DL 94.664 303.5 89.664 303.5 DL 95.662 303.5 90.662 303.5 DL
+100.662 303.5 95.662 303.5 DL 105.662 303.5 100.662 303.5 DL F0(\()
+95.998 312 Q/F3 10/Times-Italic@0 SF(C)8 E F0
+(Designate G0 Character Set \(ISO 2022\))66.002 E 72 320.5 72 330.5 DL
+72 319.5 72 329.5 DL 87.998 320.5 87.998 330.5 DL 77 330.5 72 330.5 DL
+77.998 330.5 72.998 330.5 DL 82.998 330.5 77.998 330.5 DL 87.998 330.5
+82.998 330.5 DL 87.998 319.5 87.998 329.5 DL 77 319.5 72 319.5 DL 77.998
+319.5 72.998 319.5 DL 82.998 319.5 77.998 319.5 DL 87.998 319.5 82.998
+319.5 DL 89.664 320.5 89.664 330.5 DL 89.664 319.5 89.664 329.5 DL F2
+(ESC)74.497 327 Q 105.662 320.5 105.662 330.5 DL 94.664 330.5 89.664
+330.5 DL 95.662 330.5 90.662 330.5 DL 100.662 330.5 95.662 330.5 DL
+105.662 330.5 100.662 330.5 DL 105.662 319.5 105.662 329.5 DL 94.664
+319.5 89.664 319.5 DL 95.662 319.5 90.662 319.5 DL 100.662 319.5 95.662
+319.5 DL 105.662 319.5 100.662 319.5 DL F0(\))95.998 328 Q F3(C)8 E F0
+(Designate G1 Character Set \(ISO 2022\))66.002 E 72 336.5 72 346.5 DL
+72 335.5 72 345.5 DL 87.998 336.5 87.998 346.5 DL 77 346.5 72 346.5 DL
+77.998 346.5 72.998 346.5 DL 82.998 346.5 77.998 346.5 DL 87.998 346.5
+82.998 346.5 DL 87.998 335.5 87.998 345.5 DL 77 335.5 72 335.5 DL 77.998
+335.5 72.998 335.5 DL 82.998 335.5 77.998 335.5 DL 87.998 335.5 82.998
+335.5 DL 89.664 336.5 89.664 346.5 DL 89.664 335.5 89.664 345.5 DL F2
+(ESC)74.497 343 Q 105.662 336.5 105.662 346.5 DL 94.664 346.5 89.664
+346.5 DL 95.662 346.5 90.662 346.5 DL 100.662 346.5 95.662 346.5 DL
+105.662 346.5 100.662 346.5 DL 105.662 335.5 105.662 345.5 DL 94.664
+335.5 89.664 335.5 DL 95.662 335.5 90.662 335.5 DL 100.662 335.5 95.662
+335.5 DL 105.662 335.5 100.662 335.5 DL F0(*)95.163 344 Q F3(C)7.165 E
+F0(Designate G2 Character Set \(ISO 2022\))66.002 E 72 352.5 72 362.5 DL
+72 351.5 72 361.5 DL 87.998 352.5 87.998 362.5 DL 77 362.5 72 362.5 DL
+77.998 362.5 72.998 362.5 DL 82.998 362.5 77.998 362.5 DL 87.998 362.5
+82.998 362.5 DL 87.998 351.5 87.998 361.5 DL 77 351.5 72 351.5 DL 77.998
+351.5 72.998 351.5 DL 82.998 351.5 77.998 351.5 DL 87.998 351.5 82.998
+351.5 DL 89.664 352.5 89.664 362.5 DL 89.664 351.5 89.664 361.5 DL F2
+(ESC)74.497 359 Q 105.662 352.5 105.662 362.5 DL 94.664 362.5 89.664
+362.5 DL 95.662 362.5 90.662 362.5 DL 100.662 362.5 95.662 362.5 DL
+105.662 362.5 100.662 362.5 DL 105.662 351.5 105.662 361.5 DL 94.664
+351.5 89.664 351.5 DL 95.662 351.5 90.662 351.5 DL 100.662 351.5 95.662
+351.5 DL 105.662 351.5 100.662 351.5 DL F0(+)94.843 360 Q F3(C)6.845 E
+F0(Designate G3 Character Set \(ISO 2022\))66.002 E .407
+(Final character)180 376 R F3(C)2.907 E 376.956 368.5 376.956 378.5 DL
+376.956 367.5 376.956 377.5 DL F0 .406
+(for designating character sets \()252.591 376 R 392.954 368.5 392.954
+378.5 DL 381.956 378.5 376.956 378.5 DL 382.954 378.5 377.954 378.5 DL
+387.954 378.5 382.954 378.5 DL 392.954 378.5 387.954 378.5 DL 392.954
+367.5 392.954 377.5 DL 381.956 367.5 376.956 367.5 DL 382.954 367.5
+377.954 367.5 DL 387.954 367.5 382.954 367.5 DL 392.954 367.5 387.954
+367.5 DL 400.026 368.5 400.026 378.5 DL 400.026 367.5 400.026 377.5 DL
+416.024 368.5 416.024 378.5 DL 405.026 378.5 400.026 378.5 DL 406.024
+378.5 401.024 378.5 DL 411.024 378.5 406.024 378.5 DL 416.024 378.5
+411.024 378.5 DL 416.024 367.5 416.024 377.5 DL 405.026 367.5 400.026
+367.5 DL 406.024 367.5 401.024 367.5 DL 411.024 367.5 406.024 367.5 DL
+416.024 367.5 411.024 367.5 DL -9.535 7.165(0, A)382.455 376 T 437.942
+368.5 437.942 378.5 DL 437.942 367.5 437.942 377.5 DL 453.94 368.5
+453.94 378.5 DL 442.942 378.5 437.942 378.5 DL 443.94 378.5 438.94 378.5
+DL 448.94 378.5 443.94 378.5 DL 453.94 378.5 448.94 378.5 DL 453.94
+367.5 453.94 377.5 DL 442.942 367.5 437.942 367.5 DL 443.94 367.5 438.94
+367.5 DL 448.94 367.5 443.94 367.5 DL 453.94 367.5 448.94 367.5 DL 5.07
+(and B)420.596 376 R .406(apply to VT100 and)9.236 F
+(up, the remainder to VT220 and up\):)180 392 Q F3(C)185 408 Q 202.31
+400.5 202.31 410.5 DL 202.31 399.5 202.31 409.5 DL 218.308 400.5 218.308
+410.5 DL 207.31 410.5 202.31 410.5 DL 208.308 410.5 203.308 410.5 DL
+213.308 410.5 208.308 410.5 DL 218.308 410.5 213.308 410.5 DL 218.308
+399.5 218.308 409.5 DL 207.31 399.5 202.31 399.5 DL 208.308 399.5
+203.308 399.5 DL 213.308 399.5 208.308 399.5 DL 218.308 399.5 213.308
+399.5 DL F0 7.999(=0)194.17 408 S/F4 10/Symbol SF<ae>1.666 E F0
+(DEC Special Character and Line Dra)2.5 E(wing Set)-.15 E F3(C)185 424 Q
+202.31 416.5 202.31 426.5 DL 202.31 415.5 202.31 425.5 DL 218.308 416.5
+218.308 426.5 DL 207.31 426.5 202.31 426.5 DL 208.308 426.5 203.308
+426.5 DL 213.308 426.5 208.308 426.5 DL 218.308 426.5 213.308 426.5 DL
+218.308 415.5 218.308 425.5 DL 207.31 415.5 202.31 415.5 DL 208.308
+415.5 203.308 415.5 DL 213.308 415.5 208.308 415.5 DL 218.308 415.5
+213.308 415.5 DL F0 6.889(=A)194.17 424 S F4<ae>1.666 E F0
+(United Kingdom \(UK\))2.5 E F3(C)185 440 Q 202.31 432.5 202.31 442.5 DL
+202.31 431.5 202.31 441.5 DL 218.308 432.5 218.308 442.5 DL 207.31 442.5
+202.31 442.5 DL 208.308 442.5 203.308 442.5 DL 213.308 442.5 208.308
+442.5 DL 218.308 442.5 213.308 442.5 DL 218.308 431.5 218.308 441.5 DL
+207.31 431.5 202.31 431.5 DL 208.308 431.5 203.308 431.5 DL 213.308
+431.5 208.308 431.5 DL 218.308 431.5 213.308 431.5 DL F0 7.164(=B)194.17
+440 S F4<ae>1.666 E F0(United States \(USASCII\))2.5 E F3(C)185 456 Q
+202.31 448.5 202.31 458.5 DL 202.31 447.5 202.31 457.5 DL 218.308 448.5
+218.308 458.5 DL 207.31 458.5 202.31 458.5 DL 208.308 458.5 203.308
+458.5 DL 213.308 458.5 208.308 458.5 DL 218.308 458.5 213.308 458.5 DL
+218.308 447.5 218.308 457.5 DL 207.31 447.5 202.31 447.5 DL 208.308
+447.5 203.308 447.5 DL 213.308 447.5 208.308 447.5 DL 218.308 447.5
+213.308 447.5 DL F0 7.999(=4)194.17 456 S F4<ae>1.666 E F0(Dutch)2.5 E
+F3(C)185 472 Q 202.31 464.5 202.31 474.5 DL 202.31 463.5 202.31 473.5 DL
+218.308 464.5 218.308 474.5 DL 207.31 474.5 202.31 474.5 DL 208.308
+474.5 203.308 474.5 DL 213.308 474.5 208.308 474.5 DL 218.308 474.5
+213.308 474.5 DL 218.308 463.5 218.308 473.5 DL 207.31 463.5 202.31
+463.5 DL 208.308 463.5 203.308 463.5 DL 213.308 463.5 208.308 463.5 DL
+218.308 463.5 213.308 463.5 DL F0 -7.998 7.164(=C o)194.17 472 T 233.304
+464.5 233.304 474.5 DL 233.304 463.5 233.304 473.5 DL 249.302 464.5
+249.302 474.5 DL 238.304 474.5 233.304 474.5 DL 239.302 474.5 234.302
+474.5 DL 244.302 474.5 239.302 474.5 DL 249.302 474.5 244.302 474.5 DL
+249.302 463.5 249.302 473.5 DL 238.304 463.5 233.304 463.5 DL 239.302
+463.5 234.302 463.5 DL 244.302 463.5 239.302 463.5 DL 249.302 463.5
+244.302 463.5 DL 7.999(r5)227.474 472 S F4<ae>1.666 E F0(Finnish)2.5 E
+F3(C)185 488 Q 202.31 480.5 202.31 490.5 DL 202.31 479.5 202.31 489.5 DL
+218.308 480.5 218.308 490.5 DL 207.31 490.5 202.31 490.5 DL 208.308
+490.5 203.308 490.5 DL 213.308 490.5 208.308 490.5 DL 218.308 490.5
+213.308 490.5 DL 218.308 479.5 218.308 489.5 DL 207.31 479.5 202.31
+479.5 DL 208.308 479.5 203.308 479.5 DL 213.308 479.5 208.308 479.5 DL
+218.308 479.5 213.308 479.5 DL F0 7.164(=R)194.17 488 S F4<ae>1.666 E F0
+(French)2.5 E F3(C)185 504 Q 202.31 496.5 202.31 506.5 DL 202.31 495.5
+202.31 505.5 DL 218.308 496.5 218.308 506.5 DL 207.31 506.5 202.31 506.5
+DL 208.308 506.5 203.308 506.5 DL 213.308 506.5 208.308 506.5 DL 218.308
+506.5 213.308 506.5 DL 218.308 495.5 218.308 505.5 DL 207.31 495.5
+202.31 495.5 DL 208.308 495.5 203.308 495.5 DL 213.308 495.5 208.308
+495.5 DL 218.308 495.5 213.308 495.5 DL F0 6.889(=Q)194.17 504 S F4<ae>
+1.666 E F0(French Canadian)2.5 E F3(C)185 520 Q 202.31 512.5 202.31
+522.5 DL 202.31 511.5 202.31 521.5 DL 218.308 512.5 218.308 522.5 DL
+207.31 522.5 202.31 522.5 DL 208.308 522.5 203.308 522.5 DL 213.308
+522.5 208.308 522.5 DL 218.308 522.5 213.308 522.5 DL 218.308 511.5
+218.308 521.5 DL 207.31 511.5 202.31 511.5 DL 208.308 511.5 203.308
+511.5 DL 213.308 511.5 208.308 511.5 DL 218.308 511.5 213.308 511.5 DL
+F0 6.889(=K)194.17 520 S F4<ae>1.666 E F0(German)2.5 E F3(C)185 536 Q
+202.31 528.5 202.31 538.5 DL 202.31 527.5 202.31 537.5 DL 218.308 528.5
+218.308 538.5 DL 207.31 538.5 202.31 538.5 DL 208.308 538.5 203.308
+538.5 DL 213.308 538.5 208.308 538.5 DL 218.308 538.5 213.308 538.5 DL
+218.308 527.5 218.308 537.5 DL 207.31 527.5 202.31 527.5 DL 208.308
+527.5 203.308 527.5 DL 213.308 527.5 208.308 527.5 DL 218.308 527.5
+213.308 527.5 DL F0 6.889(=Y)194.17 536 S F4<ae>1.666 E F0(Italian)2.5 E
+F3(C)185 552 Q 202.31 544.5 202.31 554.5 DL 202.31 543.5 202.31 553.5 DL
+218.308 544.5 218.308 554.5 DL 207.31 554.5 202.31 554.5 DL 208.308
+554.5 203.308 554.5 DL 213.308 554.5 208.308 554.5 DL 218.308 554.5
+213.308 554.5 DL 218.308 543.5 218.308 553.5 DL 207.31 543.5 202.31
+543.5 DL 208.308 543.5 203.308 543.5 DL 213.308 543.5 208.308 543.5 DL
+218.308 543.5 213.308 543.5 DL F0 -8.278 7.444(=E o)194.17 552 T 233.304
+544.5 233.304 554.5 DL 233.304 543.5 233.304 553.5 DL 249.302 544.5
+249.302 554.5 DL 238.304 554.5 233.304 554.5 DL 239.302 554.5 234.302
+554.5 DL 244.302 554.5 239.302 554.5 DL 249.302 554.5 244.302 554.5 DL
+249.302 543.5 249.302 553.5 DL 238.304 543.5 233.304 543.5 DL 239.302
+543.5 234.302 543.5 DL 244.302 543.5 239.302 543.5 DL 249.302 543.5
+244.302 543.5 DL 7.999(r6)227.474 552 S F4<ae>1.666 E F0(Norwe)2.5 E
+(gian/Danish)-.15 E F3(C)185 568 Q 202.31 560.5 202.31 570.5 DL 202.31
+559.5 202.31 569.5 DL 218.308 560.5 218.308 570.5 DL 207.31 570.5 202.31
+570.5 DL 208.308 570.5 203.308 570.5 DL 213.308 570.5 208.308 570.5 DL
+218.308 570.5 213.308 570.5 DL 218.308 559.5 218.308 569.5 DL 207.31
+559.5 202.31 559.5 DL 208.308 559.5 203.308 559.5 DL 213.308 559.5
+208.308 559.5 DL 218.308 559.5 213.308 559.5 DL F0 7.444(=Z)194.17 568 S
+F4<ae>1.666 E F0(Spanish)2.5 E F3(C)185 584 Q 202.31 576.5 202.31 586.5
+DL 202.31 575.5 202.31 585.5 DL 218.308 576.5 218.308 586.5 DL 207.31
+586.5 202.31 586.5 DL 208.308 586.5 203.308 586.5 DL 213.308 586.5
+208.308 586.5 DL 218.308 586.5 213.308 586.5 DL 218.308 575.5 218.308
+585.5 DL 207.31 575.5 202.31 575.5 DL 208.308 575.5 203.308 575.5 DL
+213.308 575.5 208.308 575.5 DL 218.308 575.5 213.308 575.5 DL F0 -7.723
+6.889(=H o)194.17 584 T 233.304 576.5 233.304 586.5 DL 233.304 575.5
+233.304 585.5 DL 249.302 576.5 249.302 586.5 DL 238.304 586.5 233.304
+586.5 DL 239.302 586.5 234.302 586.5 DL 244.302 586.5 239.302 586.5 DL
+249.302 586.5 244.302 586.5 DL 249.302 575.5 249.302 585.5 DL 238.304
+575.5 233.304 575.5 DL 239.302 575.5 234.302 575.5 DL 244.302 575.5
+239.302 575.5 DL 249.302 575.5 244.302 575.5 DL 7.999(r7)227.474 584 S
+F4<ae>1.666 E F0(Swedish)2.5 E F3(C)185 600 Q 202.31 592.5 202.31 602.5
+DL 202.31 591.5 202.31 601.5 DL 218.308 592.5 218.308 602.5 DL 207.31
+602.5 202.31 602.5 DL 208.308 602.5 203.308 602.5 DL 213.308 602.5
+208.308 602.5 DL 218.308 602.5 213.308 602.5 DL 218.308 591.5 218.308
+601.5 DL 207.31 591.5 202.31 591.5 DL 208.308 591.5 203.308 591.5 DL
+213.308 591.5 208.308 591.5 DL 218.308 591.5 213.308 591.5 DL F0 7.679
+(==)194.17 600 S F4<ae>1.666 E F0(Swiss)2.5 E 72 608.5 72 618.5 DL 72
+607.5 72 617.5 DL 87.998 608.5 87.998 618.5 DL 77 618.5 72 618.5 DL
+77.998 618.5 72.998 618.5 DL 82.998 618.5 77.998 618.5 DL 87.998 618.5
+82.998 618.5 DL 87.998 607.5 87.998 617.5 DL 77 607.5 72 607.5 DL 77.998
+607.5 72.998 607.5 DL 82.998 607.5 77.998 607.5 DL 87.998 607.5 82.998
+607.5 DL 89.664 608.5 89.664 618.5 DL 89.664 607.5 89.664 617.5 DL F2
+(ESC)74.497 615 Q 105.662 608.5 105.662 618.5 DL 94.664 618.5 89.664
+618.5 DL 95.662 618.5 90.662 618.5 DL 100.662 618.5 95.662 618.5 DL
+105.662 618.5 100.662 618.5 DL 105.662 607.5 105.662 617.5 DL 94.664
+607.5 89.664 607.5 DL 95.662 607.5 90.662 607.5 DL 100.662 607.5 95.662
+607.5 DL 105.662 607.5 100.662 607.5 DL F0 79.837(7S)95.163 616 S -2.25
+-.2(av e)-79.837 H(Cursor \(DECSC\))2.7 E 72 624.5 72 634.5 DL 72 623.5
+72 633.5 DL 87.998 624.5 87.998 634.5 DL 77 634.5 72 634.5 DL 77.998
+634.5 72.998 634.5 DL 82.998 634.5 77.998 634.5 DL 87.998 634.5 82.998
+634.5 DL 87.998 623.5 87.998 633.5 DL 77 623.5 72 623.5 DL 77.998 623.5
+72.998 623.5 DL 82.998 623.5 77.998 623.5 DL 87.998 623.5 82.998 623.5
+DL 89.664 624.5 89.664 634.5 DL 89.664 623.5 89.664 633.5 DL F2(ESC)
+74.497 631 Q 105.662 624.5 105.662 634.5 DL 94.664 634.5 89.664 634.5 DL
+95.662 634.5 90.662 634.5 DL 100.662 634.5 95.662 634.5 DL 105.662 634.5
+100.662 634.5 DL 105.662 623.5 105.662 633.5 DL 94.664 623.5 89.664
+623.5 DL 95.662 623.5 90.662 623.5 DL 100.662 623.5 95.662 623.5 DL
+105.662 623.5 100.662 623.5 DL F0 79.837(8R)95.163 632 S
+(estore Cursor \(DECRC\))-79.837 E 72 640.5 72 650.5 DL 72 639.5 72
+649.5 DL 87.998 640.5 87.998 650.5 DL 77 650.5 72 650.5 DL 77.998 650.5
+72.998 650.5 DL 82.998 650.5 77.998 650.5 DL 87.998 650.5 82.998 650.5
+DL 87.998 639.5 87.998 649.5 DL 77 639.5 72 639.5 DL 77.998 639.5 72.998
+639.5 DL 82.998 639.5 77.998 639.5 DL 87.998 639.5 82.998 639.5 DL
+89.664 640.5 89.664 650.5 DL 89.664 639.5 89.664 649.5 DL F2(ESC)74.497
+647 Q 105.662 640.5 105.662 650.5 DL 94.664 650.5 89.664 650.5 DL 95.662
+650.5 90.662 650.5 DL 100.662 650.5 95.662 650.5 DL 105.662 650.5
+100.662 650.5 DL 105.662 639.5 105.662 649.5 DL 94.664 639.5 89.664
+639.5 DL 95.662 639.5 90.662 639.5 DL 100.662 639.5 95.662 639.5 DL
+105.662 639.5 100.662 639.5 DL F0 79.517(=A)94.843 648 S(pplication K)
+-79.517 E -.15(ey)-.25 G(pad \(DECP).15 E(AM\))-.92 E 72 656.5 72 666.5
+DL 72 655.5 72 665.5 DL 87.998 656.5 87.998 666.5 DL 77 666.5 72 666.5
+DL 77.998 666.5 72.998 666.5 DL 82.998 666.5 77.998 666.5 DL 87.998
+666.5 82.998 666.5 DL 87.998 655.5 87.998 665.5 DL 77 655.5 72 655.5 DL
+77.998 655.5 72.998 655.5 DL 82.998 655.5 77.998 655.5 DL 87.998 655.5
+82.998 655.5 DL 89.664 656.5 89.664 666.5 DL 89.664 655.5 89.664 665.5
+DL F2(ESC)74.497 663 Q 105.662 656.5 105.662 666.5 DL 94.664 666.5
+89.664 666.5 DL 95.662 666.5 90.662 666.5 DL 100.662 666.5 95.662 666.5
+DL 105.662 666.5 100.662 666.5 DL 105.662 655.5 105.662 665.5 DL 94.664
+655.5 89.664 655.5 DL 95.662 655.5 90.662 655.5 DL 100.662 655.5 95.662
+655.5 DL 105.662 655.5 100.662 655.5 DL F0 79.517(>N)94.843 664 S
+(ormal K)-79.517 E -.15(ey)-.25 G(pad \(DECPNM\)).15 E 72 672.5 72 682.5
+DL 72 671.5 72 681.5 DL 87.998 672.5 87.998 682.5 DL 77 682.5 72 682.5
+DL 77.998 682.5 72.998 682.5 DL 82.998 682.5 77.998 682.5 DL 87.998
+682.5 82.998 682.5 DL 87.998 671.5 87.998 681.5 DL 77 671.5 72 671.5 DL
+77.998 671.5 72.998 671.5 DL 82.998 671.5 77.998 671.5 DL 87.998 671.5
+82.998 671.5 DL 89.664 672.5 89.664 682.5 DL 89.664 671.5 89.664 681.5
+DL F2(ESC)74.497 679 Q 105.662 672.5 105.662 682.5 DL 94.664 682.5
+89.664 682.5 DL 95.662 682.5 90.662 682.5 DL 100.662 682.5 95.662 682.5
+DL 105.662 682.5 100.662 682.5 DL 105.662 671.5 105.662 681.5 DL 94.664
+671.5 89.664 671.5 DL 95.662 671.5 90.662 671.5 DL 100.662 671.5 95.662
+671.5 DL 105.662 671.5 100.662 671.5 DL F0 79.557(FC)94.883 680 S 3.194
+(ursor to lo)-79.557 F 3.195
+(wer left corner of screen \(if enabled by the)-.25 F F1(hpLo)5.695 E
+(werleftBugCompat)-.1 E F0(resource\).)180 696 Q 72 704.5 72 714.5 DL 72
+703.5 72 713.5 DL 87.998 704.5 87.998 714.5 DL 77 714.5 72 714.5 DL
+77.998 714.5 72.998 714.5 DL 82.998 714.5 77.998 714.5 DL 87.998 714.5
+82.998 714.5 DL 87.998 703.5 87.998 713.5 DL 77 703.5 72 703.5 DL 77.998
+703.5 72.998 703.5 DL 82.998 703.5 77.998 703.5 DL 87.998 703.5 82.998
+703.5 DL 89.664 704.5 89.664 714.5 DL 89.664 703.5 89.664 713.5 DL F2
+(ESC)74.497 711 Q 105.662 704.5 105.662 714.5 DL 94.664 714.5 89.664
+714.5 DL 95.662 714.5 90.662 714.5 DL 100.662 714.5 95.662 714.5 DL
+105.662 714.5 100.662 714.5 DL 105.662 703.5 105.662 713.5 DL 94.664
+703.5 89.664 703.5 DL 95.662 703.5 90.662 703.5 DL 100.662 703.5 95.662
+703.5 DL 105.662 703.5 100.662 703.5 DL F0 80.117(cF)95.443 712 S
+(ull Reset \(RIS\))-80.117 E(3)303.5 772 Q EP
+%%Page: 4 4
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E .4 LW 72 80.5 72 90.5 DL 72 79.5 72 89.5 DL 87.998 80.5 87.998
+90.5 DL 77 90.5 72 90.5 DL 77.998 90.5 72.998 90.5 DL 82.998 90.5 77.998
+90.5 DL 87.998 90.5 82.998 90.5 DL 87.998 79.5 87.998 89.5 DL 77 79.5 72
+79.5 DL 77.998 79.5 72.998 79.5 DL 82.998 79.5 77.998 79.5 DL 87.998
+79.5 82.998 79.5 DL 89.664 80.5 89.664 90.5 DL 89.664 79.5 89.664 89.5
+DL/F1 6/Times-Roman@0 SF(ESC)74.497 87 Q 105.662 80.5 105.662 90.5 DL
+94.664 90.5 89.664 90.5 DL 95.662 90.5 90.662 90.5 DL 100.662 90.5
+95.662 90.5 DL 105.662 90.5 100.662 90.5 DL 105.662 79.5 105.662 89.5 DL
+94.664 79.5 89.664 79.5 DL 95.662 79.5 90.662 79.5 DL 100.662 79.5
+95.662 79.5 DL 105.662 79.5 100.662 79.5 DL F0 80.947(lM)96.273 88 S
+(emory Lock \(per HP terminals\).)-80.947 E(Locks memory abo)5 E .3 -.15
+(ve t)-.15 H(he cursor).15 E(.)-.55 E 72 96.5 72 106.5 DL 72 95.5 72
+105.5 DL 87.998 96.5 87.998 106.5 DL 77 106.5 72 106.5 DL 77.998 106.5
+72.998 106.5 DL 82.998 106.5 77.998 106.5 DL 87.998 106.5 82.998 106.5
+DL 87.998 95.5 87.998 105.5 DL 77 95.5 72 95.5 DL 77.998 95.5 72.998
+95.5 DL 82.998 95.5 77.998 95.5 DL 87.998 95.5 82.998 95.5 DL 89.664
+96.5 89.664 106.5 DL 89.664 95.5 89.664 105.5 DL F1(ESC)74.497 103 Q
+105.662 96.5 105.662 106.5 DL 94.664 106.5 89.664 106.5 DL 95.662 106.5
+90.662 106.5 DL 100.662 106.5 95.662 106.5 DL 105.662 106.5 100.662
+106.5 DL 105.662 95.5 105.662 105.5 DL 94.664 95.5 89.664 95.5 DL 95.662
+95.5 90.662 95.5 DL 100.662 95.5 95.662 95.5 DL 105.662 95.5 100.662
+95.5 DL F0 78.447(mM)93.773 104 S(emory Unlock \(per HP terminals\))
+-78.447 E 72 112.5 72 122.5 DL 72 111.5 72 121.5 DL 87.998 112.5 87.998
+122.5 DL 77 122.5 72 122.5 DL 77.998 122.5 72.998 122.5 DL 82.998 122.5
+77.998 122.5 DL 87.998 122.5 82.998 122.5 DL 87.998 111.5 87.998 121.5
+DL 77 111.5 72 111.5 DL 77.998 111.5 72.998 111.5 DL 82.998 111.5 77.998
+111.5 DL 87.998 111.5 82.998 111.5 DL 89.664 112.5 89.664 122.5 DL
+89.664 111.5 89.664 121.5 DL F1(ESC)74.497 119 Q 105.662 112.5 105.662
+122.5 DL 94.664 122.5 89.664 122.5 DL 95.662 122.5 90.662 122.5 DL
+100.662 122.5 95.662 122.5 DL 105.662 122.5 100.662 122.5 DL 105.662
+111.5 105.662 121.5 DL 94.664 111.5 89.664 111.5 DL 95.662 111.5 90.662
+111.5 DL 100.662 111.5 95.662 111.5 DL 105.662 111.5 100.662 111.5 DL F0
+79.837(nI)95.163 120 S -1.9 -.4(nv o)-79.837 H .2 -.1(ke t).4 H
+(he G2 Character Set \(LS2\)).1 E 72 128.5 72 138.5 DL 72 127.5 72 137.5
+DL 87.998 128.5 87.998 138.5 DL 77 138.5 72 138.5 DL 77.998 138.5 72.998
+138.5 DL 82.998 138.5 77.998 138.5 DL 87.998 138.5 82.998 138.5 DL
+87.998 127.5 87.998 137.5 DL 77 127.5 72 127.5 DL 77.998 127.5 72.998
+127.5 DL 82.998 127.5 77.998 127.5 DL 87.998 127.5 82.998 127.5 DL
+89.664 128.5 89.664 138.5 DL 89.664 127.5 89.664 137.5 DL F1(ESC)74.497
+135 Q 105.662 128.5 105.662 138.5 DL 94.664 138.5 89.664 138.5 DL 95.662
+138.5 90.662 138.5 DL 100.662 138.5 95.662 138.5 DL 105.662 138.5
+100.662 138.5 DL 105.662 127.5 105.662 137.5 DL 94.664 127.5 89.664
+127.5 DL 95.662 127.5 90.662 127.5 DL 100.662 127.5 95.662 127.5 DL
+105.662 127.5 100.662 127.5 DL F0 79.837(oI)95.163 136 S -1.9 -.4(nv o)
+-79.837 H .2 -.1(ke t).4 H(he G3 Character Set \(LS3\)).1 E 72 144.5 72
+154.5 DL 72 143.5 72 153.5 DL 87.998 144.5 87.998 154.5 DL 77 154.5 72
+154.5 DL 77.998 154.5 72.998 154.5 DL 82.998 154.5 77.998 154.5 DL
+87.998 154.5 82.998 154.5 DL 87.998 143.5 87.998 153.5 DL 77 143.5 72
+143.5 DL 77.998 143.5 72.998 143.5 DL 82.998 143.5 77.998 143.5 DL
+87.998 143.5 82.998 143.5 DL 89.664 144.5 89.664 154.5 DL 89.664 143.5
+89.664 153.5 DL F1(ESC)74.497 151 Q 105.662 144.5 105.662 154.5 DL
+94.664 154.5 89.664 154.5 DL 95.662 154.5 90.662 154.5 DL 100.662 154.5
+95.662 154.5 DL 105.662 154.5 100.662 154.5 DL 105.662 143.5 105.662
+153.5 DL 94.664 143.5 89.664 143.5 DL 95.662 143.5 90.662 143.5 DL
+100.662 143.5 95.662 143.5 DL 105.662 143.5 100.662 143.5 DL F0 81.337
+(|I)96.663 152 S -1.9 -.4(nv o)-81.337 H .2 -.1(ke t).4 H
+(he G3 Character Set as GR \(LS3R\).).1 E(Has no visible ef)5 E(fect in)
+-.25 E/F2 10/Times-Italic@0 SF(xterm)2.5 E F0(.)A 72 160.5 72 170.5 DL
+72 159.5 72 169.5 DL 87.998 160.5 87.998 170.5 DL 77 170.5 72 170.5 DL
+77.998 170.5 72.998 170.5 DL 82.998 170.5 77.998 170.5 DL 87.998 170.5
+82.998 170.5 DL 87.998 159.5 87.998 169.5 DL 77 159.5 72 159.5 DL 77.998
+159.5 72.998 159.5 DL 82.998 159.5 77.998 159.5 DL 87.998 159.5 82.998
+159.5 DL 89.664 160.5 89.664 170.5 DL 89.664 159.5 89.664 169.5 DL F1
+(ESC)74.497 167 Q 105.662 160.5 105.662 170.5 DL 94.664 170.5 89.664
+170.5 DL 95.662 170.5 90.662 170.5 DL 100.662 170.5 95.662 170.5 DL
+105.662 170.5 100.662 170.5 DL 105.662 159.5 105.662 169.5 DL 94.664
+159.5 89.664 159.5 DL 95.662 159.5 90.662 159.5 DL 100.662 159.5 95.662
+159.5 DL 105.662 159.5 100.662 159.5 DL F0 79.937(}I)95.263 168 S -1.9
+-.4(nv o)-79.937 H .2 -.1(ke t).4 H(he G2 Character Set as GR \(LS2R\).)
+.1 E(Has no visible ef)5 E(fect in)-.25 E F2(xterm)2.5 E F0(.)A 72 176.5
+72 186.5 DL 72 175.5 72 185.5 DL 87.998 176.5 87.998 186.5 DL 77 186.5
+72 186.5 DL 77.998 186.5 72.998 186.5 DL 82.998 186.5 77.998 186.5 DL
+87.998 186.5 82.998 186.5 DL 87.998 175.5 87.998 185.5 DL 77 175.5 72
+175.5 DL 77.998 175.5 72.998 175.5 DL 82.998 175.5 77.998 175.5 DL
+87.998 175.5 82.998 175.5 DL 89.664 176.5 89.664 186.5 DL 89.664 175.5
+89.664 185.5 DL F1(ESC)74.497 183 Q 105.662 176.5 105.662 186.5 DL
+94.664 186.5 89.664 186.5 DL 95.662 186.5 90.662 186.5 DL 100.662 186.5
+95.662 186.5 DL 105.662 186.5 100.662 186.5 DL 105.662 175.5 105.662
+185.5 DL 94.664 175.5 89.664 175.5 DL 95.662 175.5 90.662 175.5 DL
+100.662 175.5 95.662 175.5 DL 105.662 175.5 100.662 175.5 DL F0 80.672
+(~I)95.998 184 S -1.9 -.4(nv o)-80.672 H .2 -.1(ke t).4 H
+(he G1 Character Set as GR \(LS1R\).).1 E(Has no visible ef)5 E(fect in)
+-.25 E F2(xterm)2.5 E F0(.)A/F3 10/Times-Bold@0 SF -.25(Ap)72 216 S
+(plication Pr).25 E(ogram-Contr)-.18 E(ol functions)-.18 E 72 224.5 72
+234.5 DL 72 223.5 72 233.5 DL 87.998 224.5 87.998 234.5 DL 77 234.5 72
+234.5 DL 77.998 234.5 72.998 234.5 DL 82.998 234.5 77.998 234.5 DL
+87.998 234.5 82.998 234.5 DL 87.998 223.5 87.998 233.5 DL 77 223.5 72
+223.5 DL 77.998 223.5 72.998 223.5 DL 82.998 223.5 77.998 223.5 DL
+87.998 223.5 82.998 223.5 DL F1(APC)74.164 231 Q F2(P)3.83 1 M 97.664
+224.5 97.664 234.5 DL 97.664 223.5 97.664 233.5 DL/F4 8/Times-Italic@0
+SF(t)93.774 235 Q 113.662 224.5 113.662 234.5 DL 102.664 234.5 97.664
+234.5 DL 103.662 234.5 98.662 234.5 DL 108.662 234.5 103.662 234.5 DL
+113.662 234.5 108.662 234.5 DL 113.662 223.5 113.662 233.5 DL 102.664
+223.5 97.664 223.5 DL 103.662 223.5 98.662 223.5 DL 108.662 223.5
+103.662 223.5 DL 113.662 223.5 108.662 223.5 DL F1(ST)102.162 231 Q F2
+(xterm)70.836 1 M F0(implements no APC functions;)2.5 E F2(P)2.5 E F4(t)
+-2 3 M F0(is ignored.)2.5 -3 M F2(P)5 E F4(t)-2 3 M F0
+(need not be printable characters.)2.5 -3 M F3(De)72 264 Q(vice-Contr)
+-.15 E(ol functions)-.18 E 72 272.5 72 282.5 DL 72 271.5 72 281.5 DL
+87.998 272.5 87.998 282.5 DL 77 282.5 72 282.5 DL 77.998 282.5 72.998
+282.5 DL 82.998 282.5 77.998 282.5 DL 87.998 282.5 82.998 282.5 DL
+87.998 271.5 87.998 281.5 DL 77 271.5 72 271.5 DL 77.998 271.5 72.998
+271.5 DL 82.998 271.5 77.998 271.5 DL 87.998 271.5 82.998 271.5 DL F1
+(DCS)74.164 279 Q F2(P)3.83 1 M 96.886 272.5 96.886 282.5 DL 96.886
+271.5 96.886 281.5 DL F4(s)93.774 283 Q 112.884 272.5 112.884 282.5 DL
+101.886 282.5 96.886 282.5 DL 102.884 282.5 97.884 282.5 DL 107.884
+282.5 102.884 282.5 DL 112.884 282.5 107.884 282.5 DL 112.884 271.5
+112.884 281.5 DL 101.886 271.5 96.886 271.5 DL 102.884 271.5 97.884
+271.5 DL 107.884 271.5 102.884 271.5 DL 112.884 271.5 107.884 271.5 DL
+F0(;)103.495 280 Q F2(P)8.275 E 121.772 272.5 121.772 282.5 DL 121.772
+271.5 121.772 281.5 DL F4(s)118.66 283 Q 137.77 272.5 137.77 282.5 DL
+126.772 282.5 121.772 282.5 DL 127.77 282.5 122.77 282.5 DL 132.77 282.5
+127.77 282.5 DL 137.77 282.5 132.77 282.5 DL 137.77 271.5 137.77 281.5
+DL 126.772 271.5 121.772 271.5 DL 127.77 271.5 122.77 271.5 DL 132.77
+271.5 127.77 271.5 DL 137.77 271.5 132.77 271.5 DL F0(|)128.771 280 Q F2
+(P)8.665 E 147.436 272.5 147.436 282.5 DL 147.436 271.5 147.436 281.5 DL
+F4(t)143.546 283 Q 163.434 272.5 163.434 282.5 DL 152.436 282.5 147.436
+282.5 DL 153.434 282.5 148.434 282.5 DL 158.434 282.5 153.434 282.5 DL
+163.434 282.5 158.434 282.5 DL 163.434 271.5 163.434 281.5 DL 152.436
+271.5 147.436 271.5 DL 153.434 271.5 148.434 271.5 DL 158.434 271.5
+153.434 271.5 DL 163.434 271.5 158.434 271.5 DL F1(ST)151.934 279 Q F0
+(User)21.064 1 M(-De\214ned K)-.2 E -.15(ey)-.25 G 2.5(s\().15 G 2.5
+(DECUDK\). The)-2.5 F(\214rst parameter:)2.5 E F2(P)185 296 Q F4(s)-2 3
+M 202.862 288.5 202.862 298.5 DL 202.862 287.5 202.862 297.5 DL 218.86
+288.5 218.86 298.5 DL 207.862 298.5 202.862 298.5 DL 208.86 298.5 203.86
+298.5 DL 213.86 298.5 208.86 298.5 DL 218.86 298.5 213.86 298.5 DL
+218.86 287.5 218.86 297.5 DL 207.862 287.5 202.862 287.5 DL 208.86 287.5
+203.86 287.5 DL 213.86 287.5 208.86 287.5 DL 218.86 287.5 213.86 287.5
+DL F0 7.999(=0)194.722 296 S/F5 10/Symbol SF<ae>1.666 E F0
+(Clear all UDK de\214nitions before starting \(def)2.5 E(ault\))-.1 E F2
+(P)185 312 Q F4(s)-2 3 M 202.862 304.5 202.862 314.5 DL 202.862 303.5
+202.862 313.5 DL 218.86 304.5 218.86 314.5 DL 207.862 314.5 202.862
+314.5 DL 208.86 314.5 203.86 314.5 DL 213.86 314.5 208.86 314.5 DL
+218.86 314.5 213.86 314.5 DL 218.86 303.5 218.86 313.5 DL 207.862 303.5
+202.862 303.5 DL 208.86 303.5 203.86 303.5 DL 213.86 303.5 208.86 303.5
+DL 218.86 303.5 213.86 303.5 DL F0 7.999(=1)194.722 312 S F5<ae>1.666 E
+F0(Erase Belo)2.5 E 2.5(w\()-.25 G(def)-2.5 E(ault\))-.1 E
+(The second parameter:)180 328 Q F2(P)185 344 Q F4(s)-2 3 M 202.862
+336.5 202.862 346.5 DL 202.862 335.5 202.862 345.5 DL 218.86 336.5
+218.86 346.5 DL 207.862 346.5 202.862 346.5 DL 208.86 346.5 203.86 346.5
+DL 213.86 346.5 208.86 346.5 DL 218.86 346.5 213.86 346.5 DL 218.86
+335.5 218.86 345.5 DL 207.862 335.5 202.862 335.5 DL 208.86 335.5 203.86
+335.5 DL 213.86 335.5 208.86 335.5 DL 218.86 335.5 213.86 335.5 DL F0
+7.999(=0)194.722 344 S F5<ae>1.666 E F0(Lock the k)2.5 E -.15(ey)-.1 G
+2.5(s\().15 G(def)-2.5 E(ault\))-.1 E F2(P)185 360 Q F4(s)-2 3 M 202.862
+352.5 202.862 362.5 DL 202.862 351.5 202.862 361.5 DL 218.86 352.5
+218.86 362.5 DL 207.862 362.5 202.862 362.5 DL 208.86 362.5 203.86 362.5
+DL 213.86 362.5 208.86 362.5 DL 218.86 362.5 213.86 362.5 DL 218.86
+351.5 218.86 361.5 DL 207.862 351.5 202.862 351.5 DL 208.86 351.5 203.86
+351.5 DL 213.86 351.5 208.86 351.5 DL 218.86 351.5 213.86 351.5 DL F0
+7.999(=1)194.722 360 S F5<ae>1.666 E F0(Do not lock.)2.5 E .421
+(The third parameter is a ';'-separated list of strings denoting the k)
+180 376 R -.15(ey)-.1 G .42(-code separated by a).15 F .543
+('/' from the he)180 392 R .544(x-encoded k)-.15 F .844 -.15(ey v)-.1 H
+3.044(alue. The)-.1 F -.1(ke)3.044 G 3.044(yc)-.05 G .544
+(odes correspond to the DEC function-k)-3.044 F -.15(ey)-.1 G
+(codes \(e.g., F6=17\).)180 408 Q 72 416.5 72 426.5 DL 72 415.5 72 425.5
+DL 87.998 416.5 87.998 426.5 DL 77 426.5 72 426.5 DL 77.998 426.5 72.998
+426.5 DL 82.998 426.5 77.998 426.5 DL 87.998 426.5 82.998 426.5 DL
+87.998 415.5 87.998 425.5 DL 77 415.5 72 415.5 DL 77.998 415.5 72.998
+415.5 DL 82.998 415.5 77.998 415.5 DL 87.998 415.5 82.998 415.5 DL
+89.664 416.5 89.664 426.5 DL 89.664 415.5 89.664 425.5 DL F1(DCS)74.164
+423 Q 105.662 416.5 105.662 426.5 DL 94.664 426.5 89.664 426.5 DL 95.662
+426.5 90.662 426.5 DL 100.662 426.5 95.662 426.5 DL 105.662 426.5
+100.662 426.5 DL 105.662 415.5 105.662 425.5 DL 94.664 415.5 89.664
+415.5 DL 95.662 415.5 90.662 415.5 DL 100.662 415.5 95.662 415.5 DL
+105.662 415.5 100.662 415.5 DL 107.328 416.5 107.328 426.5 DL 107.328
+415.5 107.328 425.5 DL 123.326 416.5 123.326 426.5 DL 112.328 426.5
+107.328 426.5 DL 113.326 426.5 108.326 426.5 DL 118.326 426.5 113.326
+426.5 DL 123.326 426.5 118.326 426.5 DL 123.326 415.5 123.326 425.5 DL
+112.328 415.5 107.328 415.5 DL 113.326 415.5 108.326 415.5 DL 118.326
+415.5 113.326 415.5 DL 123.326 415.5 118.326 415.5 DL F0 12.664($q)
+95.163 424 S F2(P)-5.499 E 132.992 416.5 132.992 426.5 DL 132.992 415.5
+132.992 425.5 DL F4(t)129.102 427 Q 148.99 416.5 148.99 426.5 DL 137.992
+426.5 132.992 426.5 DL 138.99 426.5 133.99 426.5 DL 143.99 426.5 138.99
+426.5 DL 148.99 426.5 143.99 426.5 DL 148.99 415.5 148.99 425.5 DL
+137.992 415.5 132.992 415.5 DL 138.99 415.5 133.99 415.5 DL 143.99 415.5
+138.99 415.5 DL 148.99 415.5 143.99 415.5 DL F1(ST)137.49 423 Q F0
+(Request Status String \(DECRQSS\).)35.508 1 M(The string follo)5 E
+(wing the "q" is one of the follo)-.25 E(wing:)-.25 E 185 432.5 185
+442.5 DL 185 431.5 185 441.5 DL 200.998 432.5 200.998 442.5 DL 190 442.5
+185 442.5 DL 190.998 442.5 185.998 442.5 DL 195.998 442.5 190.998 442.5
+DL 200.998 442.5 195.998 442.5 DL 200.998 431.5 200.998 441.5 DL 190
+431.5 185 431.5 DL 190.998 431.5 185.998 431.5 DL 195.998 431.5 190.998
+431.5 DL 200.998 431.5 195.998 431.5 DL 202.664 432.5 202.664 442.5 DL
+202.664 431.5 202.664 441.5 DL 218.662 432.5 218.662 442.5 DL 207.664
+442.5 202.664 442.5 DL 208.662 442.5 203.662 442.5 DL 213.662 442.5
+208.662 442.5 DL 218.662 442.5 213.662 442.5 DL 218.662 431.5 218.662
+441.5 DL 207.664 431.5 202.664 431.5 DL 208.662 431.5 203.662 431.5 DL
+213.662 431.5 208.662 431.5 DL 218.662 431.5 213.662 431.5 DL 12.944
+<9971>190.779 440 S F5<ae>3.893 E F0(DECSCA)2.5 E 185 448.5 185 458.5 DL
+185 447.5 185 457.5 DL 200.998 448.5 200.998 458.5 DL 190 458.5 185
+458.5 DL 190.998 458.5 185.998 458.5 DL 195.998 458.5 190.998 458.5 DL
+200.998 458.5 195.998 458.5 DL 200.998 447.5 200.998 457.5 DL 190 447.5
+185 447.5 DL 190.998 447.5 185.998 447.5 DL 195.998 447.5 190.998 447.5
+DL 200.998 447.5 195.998 447.5 DL 202.664 448.5 202.664 458.5 DL 202.664
+447.5 202.664 457.5 DL 218.662 448.5 218.662 458.5 DL 207.664 458.5
+202.664 458.5 DL 208.662 458.5 203.662 458.5 DL 213.662 458.5 208.662
+458.5 DL 218.662 458.5 213.662 458.5 DL 218.662 447.5 218.662 457.5 DL
+207.664 447.5 202.664 447.5 DL 208.662 447.5 203.662 447.5 DL 213.662
+447.5 208.662 447.5 DL 218.662 447.5 213.662 447.5 DL 12.944<9970>
+190.779 456 S F5<ae>3.893 E F0(DECSCL)2.5 E 185 464.5 185 474.5 DL 185
+463.5 185 473.5 DL 200.998 464.5 200.998 474.5 DL 190 474.5 185 474.5 DL
+190.998 474.5 185.998 474.5 DL 195.998 474.5 190.998 474.5 DL 200.998
+474.5 195.998 474.5 DL 200.998 463.5 200.998 473.5 DL 190 463.5 185
+463.5 DL 190.998 463.5 185.998 463.5 DL 195.998 463.5 190.998 463.5 DL
+200.998 463.5 195.998 463.5 DL(r)191.334 472 Q F5<ae>35.336 E F0
+(DECSTBM)2.5 E 185 480.5 185 490.5 DL 185 479.5 185 489.5 DL 200.998
+480.5 200.998 490.5 DL 190 490.5 185 490.5 DL 190.998 490.5 185.998
+490.5 DL 195.998 490.5 190.998 490.5 DL 200.998 490.5 195.998 490.5 DL
+200.998 479.5 200.998 489.5 DL 190 479.5 185 479.5 DL 190.998 479.5
+185.998 479.5 DL 195.998 479.5 190.998 479.5 DL 200.998 479.5 195.998
+479.5 DL(m)189.109 488 Q F5<ae>33.111 E F0(SGR)2.5 E F2(xterm)180 504 Q
+265.684 496.5 265.684 506.5 DL 265.684 495.5 265.684 505.5 DL F0 .695
+(responds with)205.965 504 R 281.682 496.5 281.682 506.5 DL 270.684
+506.5 265.684 506.5 DL 271.682 506.5 266.682 506.5 DL 276.682 506.5
+271.682 506.5 DL 281.682 506.5 276.682 506.5 DL 281.682 495.5 281.682
+505.5 DL 270.684 495.5 265.684 495.5 DL 271.682 495.5 266.682 495.5 DL
+276.682 495.5 271.682 495.5 DL 281.682 495.5 276.682 495.5 DL 283.348
+496.5 283.348 506.5 DL 283.348 495.5 283.348 505.5 DL F1(DCS)267.848 503
+Q 299.346 496.5 299.346 506.5 DL 288.348 506.5 283.348 506.5 DL 289.346
+506.5 284.346 506.5 DL 294.346 506.5 289.346 506.5 DL 299.346 506.5
+294.346 506.5 DL 299.346 495.5 299.346 505.5 DL 288.348 495.5 283.348
+495.5 DL 289.346 495.5 284.346 495.5 DL 294.346 495.5 289.346 495.5 DL
+299.346 495.5 294.346 495.5 DL 301.012 496.5 301.012 506.5 DL 301.012
+495.5 301.012 505.5 DL 317.01 496.5 317.01 506.5 DL 306.012 506.5
+301.012 506.5 DL 307.01 506.5 302.01 506.5 DL 312.01 506.5 307.01 506.5
+DL 317.01 506.5 312.01 506.5 DL 317.01 495.5 317.01 505.5 DL 306.012
+495.5 301.012 495.5 DL 307.01 495.5 302.01 495.5 DL 312.01 495.5 307.01
+495.5 DL 317.01 495.5 312.01 495.5 DL 318.676 496.5 318.676 506.5 DL
+318.676 495.5 318.676 505.5 DL 334.674 496.5 334.674 506.5 DL 323.676
+506.5 318.676 506.5 DL 324.674 506.5 319.674 506.5 DL 329.674 506.5
+324.674 506.5 DL 334.674 506.5 329.674 506.5 DL 334.674 495.5 334.674
+505.5 DL 323.676 495.5 318.676 495.5 DL 324.674 495.5 319.674 495.5 DL
+329.674 495.5 324.674 495.5 DL 334.674 495.5 329.674 495.5 DL F0 -14.329
+12.664(1$ r)288.847 504 T F2(P)-4.664 E 344.34 496.5 344.34 506.5 DL
+344.34 495.5 344.34 505.5 DL F4(t)340.45 507 Q 360.338 496.5 360.338
+506.5 DL 349.34 506.5 344.34 506.5 DL 350.338 506.5 345.338 506.5 DL
+355.338 506.5 350.338 506.5 DL 360.338 506.5 355.338 506.5 DL 360.338
+495.5 360.338 505.5 DL 349.34 495.5 344.34 495.5 DL 350.338 495.5
+345.338 495.5 DL 355.338 495.5 350.338 495.5 DL 360.338 495.5 355.338
+495.5 DL F1(ST)348.838 503 Q F0 .694(for v)9.358 1 N .694
+(alid requests, replacing the)-.25 F F2(P)3.194 E F4(t)-2 3 M F0 .694
+(with the)3.194 -3 N 239.71 512.5 239.71 522.5 DL 239.71 511.5 239.71
+521.5 DL(corresponding)180 520 Q 255.708 512.5 255.708 522.5 DL 244.71
+522.5 239.71 522.5 DL 245.708 522.5 240.708 522.5 DL 250.708 522.5
+245.708 522.5 DL 255.708 522.5 250.708 522.5 DL 255.708 511.5 255.708
+521.5 DL 244.71 511.5 239.71 511.5 DL 245.708 511.5 240.708 511.5 DL
+250.708 511.5 245.708 511.5 DL 255.708 511.5 250.708 511.5 DL F1(CSI)
+243.041 519 Q 298.484 512.5 298.484 522.5 DL 298.484 511.5 298.484 521.5
+DL F0(string, or)259.874 520 Q 314.482 512.5 314.482 522.5 DL 303.484
+522.5 298.484 522.5 DL 304.482 522.5 299.482 522.5 DL 309.482 522.5
+304.482 522.5 DL 314.482 522.5 309.482 522.5 DL 314.482 511.5 314.482
+521.5 DL 303.484 511.5 298.484 511.5 DL 304.482 511.5 299.482 511.5 DL
+309.482 511.5 304.482 511.5 DL 314.482 511.5 309.482 511.5 DL 316.148
+512.5 316.148 522.5 DL 316.148 511.5 316.148 521.5 DL F1(DCS)300.648 519
+Q 332.146 512.5 332.146 522.5 DL 321.148 522.5 316.148 522.5 DL 322.146
+522.5 317.146 522.5 DL 327.146 522.5 322.146 522.5 DL 332.146 522.5
+327.146 522.5 DL 332.146 511.5 332.146 521.5 DL 321.148 511.5 316.148
+511.5 DL 322.146 511.5 317.146 511.5 DL 327.146 511.5 322.146 511.5 DL
+332.146 511.5 327.146 511.5 DL 333.812 512.5 333.812 522.5 DL 333.812
+511.5 333.812 521.5 DL 349.81 512.5 349.81 522.5 DL 338.812 522.5
+333.812 522.5 DL 339.81 522.5 334.81 522.5 DL 344.81 522.5 339.81 522.5
+DL 349.81 522.5 344.81 522.5 DL 349.81 511.5 349.81 521.5 DL 338.812
+511.5 333.812 511.5 DL 339.81 511.5 334.81 511.5 DL 344.81 511.5 339.81
+511.5 DL 349.81 511.5 344.81 511.5 DL 351.476 512.5 351.476 522.5 DL
+351.476 511.5 351.476 521.5 DL 367.474 512.5 367.474 522.5 DL 356.476
+522.5 351.476 522.5 DL 357.474 522.5 352.474 522.5 DL 362.474 522.5
+357.474 522.5 DL 367.474 522.5 362.474 522.5 DL 367.474 511.5 367.474
+521.5 DL 356.476 511.5 351.476 511.5 DL 357.474 511.5 352.474 511.5 DL
+362.474 511.5 357.474 511.5 DL 367.474 511.5 362.474 511.5 DL F0 -14.329
+12.664(0$ r)321.647 520 T F2(P)-4.664 E 377.14 512.5 377.14 522.5 DL
+377.14 511.5 377.14 521.5 DL F4(t)373.25 523 Q 393.138 512.5 393.138
+522.5 DL 382.14 522.5 377.14 522.5 DL 383.138 522.5 378.138 522.5 DL
+388.138 522.5 383.138 522.5 DL 393.138 522.5 388.138 522.5 DL 393.138
+511.5 393.138 521.5 DL 382.14 511.5 377.14 511.5 DL 383.138 511.5
+378.138 511.5 DL 388.138 511.5 383.138 511.5 DL 393.138 511.5 388.138
+511.5 DL F1(ST)381.638 519 Q F0(for in)8.664 1 M -.25(va)-.4 G
+(lid requests.).25 E 72 528.5 72 538.5 DL 72 527.5 72 537.5 DL 87.998
+528.5 87.998 538.5 DL 77 538.5 72 538.5 DL 77.998 538.5 72.998 538.5 DL
+82.998 538.5 77.998 538.5 DL 87.998 538.5 82.998 538.5 DL 87.998 527.5
+87.998 537.5 DL 77 527.5 72 527.5 DL 77.998 527.5 72.998 527.5 DL 82.998
+527.5 77.998 527.5 DL 87.998 527.5 82.998 527.5 DL 89.664 528.5 89.664
+538.5 DL 89.664 527.5 89.664 537.5 DL F1(DCS)74.164 535 Q 105.662 528.5
+105.662 538.5 DL 94.664 538.5 89.664 538.5 DL 95.662 538.5 90.662 538.5
+DL 100.662 538.5 95.662 538.5 DL 105.662 538.5 100.662 538.5 DL 105.662
+527.5 105.662 537.5 DL 94.664 527.5 89.664 527.5 DL 95.662 527.5 90.662
+527.5 DL 100.662 527.5 95.662 527.5 DL 105.662 527.5 100.662 527.5 DL
+107.328 528.5 107.328 538.5 DL 107.328 527.5 107.328 537.5 DL 123.326
+528.5 123.326 538.5 DL 112.328 538.5 107.328 538.5 DL 113.326 538.5
+108.326 538.5 DL 118.326 538.5 113.326 538.5 DL 123.326 538.5 118.326
+538.5 DL 123.326 527.5 123.326 537.5 DL 112.328 527.5 107.328 527.5 DL
+113.326 527.5 108.326 527.5 DL 118.326 527.5 113.326 527.5 DL 123.326
+527.5 118.326 527.5 DL F0 12.344(+q)94.843 536 S F2(P)-5.179 E 132.992
+528.5 132.992 538.5 DL 132.992 527.5 132.992 537.5 DL F4(t)129.102 539 Q
+148.99 528.5 148.99 538.5 DL 137.992 538.5 132.992 538.5 DL 138.99 538.5
+133.99 538.5 DL 143.99 538.5 138.99 538.5 DL 148.99 538.5 143.99 538.5
+DL 148.99 527.5 148.99 537.5 DL 137.992 527.5 132.992 527.5 DL 138.99
+527.5 133.99 527.5 DL 143.99 527.5 138.99 527.5 DL 148.99 527.5 143.99
+527.5 DL F1(ST)137.49 535 Q F0 .507(Request T)35.508 1 N(ermcap/T)-.7 E
+.507(erminfo String \(xterm, e)-.7 F 3.007(xperimental\). The)-.15 F
+.507(string follo)3.007 F .507(wing the "q" is)-.25 F 3.2(al)180 552 S
+.7(ist of names encoded in he)-3.2 F 494.697 544.5 494.697 554.5 DL
+494.697 543.5 494.697 553.5 DL .7
+(xadecimal \(2 digits per character\) separated by)300.14 552 R 510.695
+544.5 510.695 554.5 DL 499.697 554.5 494.697 554.5 DL 500.695 554.5
+495.695 554.5 DL 505.695 554.5 500.695 554.5 DL 510.695 554.5 505.695
+554.5 DL 510.695 543.5 510.695 553.5 DL 499.697 543.5 494.697 543.5 DL
+500.695 543.5 495.695 543.5 DL 505.695 543.5 500.695 543.5 DL 510.695
+543.5 505.695 543.5 DL 11.474(;w)501.306 552 S(hich)-11.474 E
+(correspond to termcap or terminfo k)180 568 Q .3 -.15(ey n)-.1 H(ames.)
+.15 E F2(xterm)180 584 Q 264.98 576.5 264.98 586.5 DL 264.98 575.5
+264.98 585.5 DL F0 .46(responds with)205.73 584 R 280.978 576.5 280.978
+586.5 DL 269.98 586.5 264.98 586.5 DL 270.978 586.5 265.978 586.5 DL
+275.978 586.5 270.978 586.5 DL 280.978 586.5 275.978 586.5 DL 280.978
+575.5 280.978 585.5 DL 269.98 575.5 264.98 575.5 DL 270.978 575.5
+265.978 575.5 DL 275.978 575.5 270.978 575.5 DL 280.978 575.5 275.978
+575.5 DL 282.644 576.5 282.644 586.5 DL 282.644 575.5 282.644 585.5 DL
+F1(DCS)267.144 583 Q 298.642 576.5 298.642 586.5 DL 287.644 586.5
+282.644 586.5 DL 288.642 586.5 283.642 586.5 DL 293.642 586.5 288.642
+586.5 DL 298.642 586.5 293.642 586.5 DL 298.642 575.5 298.642 585.5 DL
+287.644 575.5 282.644 575.5 DL 288.642 575.5 283.642 575.5 DL 293.642
+575.5 288.642 575.5 DL 298.642 575.5 293.642 575.5 DL 300.308 576.5
+300.308 586.5 DL 300.308 575.5 300.308 585.5 DL 316.306 576.5 316.306
+586.5 DL 305.308 586.5 300.308 586.5 DL 306.306 586.5 301.306 586.5 DL
+311.306 586.5 306.306 586.5 DL 316.306 586.5 311.306 586.5 DL 316.306
+575.5 316.306 585.5 DL 305.308 575.5 300.308 575.5 DL 306.306 575.5
+301.306 575.5 DL 311.306 575.5 306.306 575.5 DL 316.306 575.5 311.306
+575.5 DL 317.972 576.5 317.972 586.5 DL 317.972 575.5 317.972 585.5 DL
+333.97 576.5 333.97 586.5 DL 322.972 586.5 317.972 586.5 DL 323.97 586.5
+318.97 586.5 DL 328.97 586.5 323.97 586.5 DL 333.97 586.5 328.97 586.5
+DL 333.97 575.5 333.97 585.5 DL 322.972 575.5 317.972 575.5 DL 323.97
+575.5 318.97 575.5 DL 328.97 575.5 323.97 575.5 DL 333.97 575.5 328.97
+575.5 DL F0 -14.009 12.344(1+ r)288.143 584 T F2(P)-4.344 E 343.636
+576.5 343.636 586.5 DL 343.636 575.5 343.636 585.5 DL F4(t)339.746 587 Q
+359.634 576.5 359.634 586.5 DL 348.636 586.5 343.636 586.5 DL 349.634
+586.5 344.634 586.5 DL 354.634 586.5 349.634 586.5 DL 359.634 586.5
+354.634 586.5 DL 359.634 575.5 359.634 585.5 DL 348.636 575.5 343.636
+575.5 DL 349.634 575.5 344.634 575.5 DL 354.634 575.5 349.634 575.5 DL
+359.634 575.5 354.634 575.5 DL F1(ST)348.134 583 Q F0 .46(for v)9.124 1
+N .46(alid requests, adding to)-.25 F F2(P)2.96 E F4(t)-2 3 M 502.435
+576.5 502.435 586.5 DL 502.435 575.5 502.435 585.5 DL 518.433 576.5
+518.433 586.5 DL 507.435 586.5 502.435 586.5 DL 508.433 586.5 503.433
+586.5 DL 513.433 586.5 508.433 586.5 DL 518.433 586.5 513.433 586.5 DL
+518.433 575.5 518.433 585.5 DL 507.435 575.5 502.435 575.5 DL 508.433
+575.5 503.433 575.5 DL 513.433 575.5 508.433 575.5 DL 518.433 575.5
+513.433 575.5 DL F0 5.64(an =)490.034 584 R 2.961(,a)6.845 G(nd)-2.961 E
+.875(the v)180 600 R .875(alue of the corresponding string that xterm w)
+-.25 F 443.68 592.5 443.68 602.5 DL 443.68 591.5 443.68 601.5 DL .874
+(ould send, or)386.618 600 R 459.678 592.5 459.678 602.5 DL 448.68 602.5
+443.68 602.5 DL 449.678 602.5 444.678 602.5 DL 454.678 602.5 449.678
+602.5 DL 459.678 602.5 454.678 602.5 DL 459.678 591.5 459.678 601.5 DL
+448.68 591.5 443.68 591.5 DL 449.678 591.5 444.678 591.5 DL 454.678
+591.5 449.678 591.5 DL 459.678 591.5 454.678 591.5 DL 461.344 592.5
+461.344 602.5 DL 461.344 591.5 461.344 601.5 DL F1(DCS)445.844 599 Q
+477.342 592.5 477.342 602.5 DL 466.344 602.5 461.344 602.5 DL 467.342
+602.5 462.342 602.5 DL 472.342 602.5 467.342 602.5 DL 477.342 602.5
+472.342 602.5 DL 477.342 591.5 477.342 601.5 DL 466.344 591.5 461.344
+591.5 DL 467.342 591.5 462.342 591.5 DL 472.342 591.5 467.342 591.5 DL
+477.342 591.5 472.342 591.5 DL 479.008 592.5 479.008 602.5 DL 479.008
+591.5 479.008 601.5 DL 495.006 592.5 495.006 602.5 DL 484.008 602.5
+479.008 602.5 DL 485.006 602.5 480.006 602.5 DL 490.006 602.5 485.006
+602.5 DL 495.006 602.5 490.006 602.5 DL 495.006 591.5 495.006 601.5 DL
+484.008 591.5 479.008 591.5 DL 485.006 591.5 480.006 591.5 DL 490.006
+591.5 485.006 591.5 DL 495.006 591.5 490.006 591.5 DL 496.672 592.5
+496.672 602.5 DL 496.672 591.5 496.672 601.5 DL 512.67 592.5 512.67
+602.5 DL 501.672 602.5 496.672 602.5 DL 502.67 602.5 497.67 602.5 DL
+507.67 602.5 502.67 602.5 DL 512.67 602.5 507.67 602.5 DL 512.67 591.5
+512.67 601.5 DL 501.672 591.5 496.672 591.5 DL 502.67 591.5 497.67 591.5
+DL 507.67 591.5 502.67 591.5 DL 512.67 591.5 507.67 591.5 DL F0 -14.009
+12.344(0+ r)466.843 600 T F2(P)-4.344 E 522.336 592.5 522.336 602.5 DL
+522.336 591.5 522.336 601.5 DL F4(t)518.446 603 Q 538.334 592.5 538.334
+602.5 DL 527.336 602.5 522.336 602.5 DL 528.334 602.5 523.334 602.5 DL
+533.334 602.5 528.334 602.5 DL 538.334 602.5 533.334 602.5 DL 538.334
+591.5 538.334 601.5 DL 527.336 591.5 522.336 591.5 DL 528.334 591.5
+523.334 591.5 DL 533.334 591.5 528.334 591.5 DL 538.334 591.5 533.334
+591.5 DL F1(ST)526.834 599 Q F0(for in)180 616 Q -.25(va)-.4 G
+(lid requests.).25 E(The strings are encoded in he)5 E
+(xadecimal \(2 digits per character\).)-.15 E F3
+(Functions using CSI, order)72 648 Q(ed by the \214nal character\(s\))
+-.18 E 72 656.5 72 666.5 DL 72 655.5 72 665.5 DL 87.998 656.5 87.998
+666.5 DL 77 666.5 72 666.5 DL 77.998 666.5 72.998 666.5 DL 82.998 666.5
+77.998 666.5 DL 87.998 666.5 82.998 666.5 DL 87.998 655.5 87.998 665.5
+DL 77 655.5 72 655.5 DL 77.998 655.5 72.998 655.5 DL 82.998 655.5 77.998
+655.5 DL 87.998 655.5 82.998 655.5 DL F1(CSI)75.331 663 Q F2(P)4.997 1 M
+98.552 656.5 98.552 666.5 DL 98.552 655.5 98.552 665.5 DL F4(s)93.774
+667 Q 114.55 656.5 114.55 666.5 DL 103.552 666.5 98.552 666.5 DL 104.55
+666.5 99.55 666.5 DL 109.55 666.5 104.55 666.5 DL 114.55 666.5 109.55
+666.5 DL 114.55 655.5 114.55 665.5 DL 103.552 655.5 98.552 655.5 DL
+104.55 655.5 99.55 655.5 DL 109.55 655.5 104.55 655.5 DL 114.55 655.5
+109.55 655.5 DL F0 68.844(@I)101.946 664 S(nsert)-68.844 E F2(P)2.5 E F4
+(s)-2 3 M F0(\(Blank\) Character\(s\) \(def)2.5 -3 M(ault = 1\) \(ICH\))
+-.1 E 72 672.5 72 682.5 DL 72 671.5 72 681.5 DL 87.998 672.5 87.998
+682.5 DL 77 682.5 72 682.5 DL 77.998 682.5 72.998 682.5 DL 82.998 682.5
+77.998 682.5 DL 87.998 682.5 82.998 682.5 DL 87.998 671.5 87.998 681.5
+DL 77 671.5 72 671.5 DL 77.998 671.5 72.998 671.5 DL 82.998 671.5 77.998
+671.5 DL 87.998 671.5 82.998 671.5 DL F1(CSI)75.331 679 Q F2(P)4.997 1 M
+98.552 672.5 98.552 682.5 DL 98.552 671.5 98.552 681.5 DL F4(s)93.774
+683 Q 114.55 672.5 114.55 682.5 DL 103.552 682.5 98.552 682.5 DL 104.55
+682.5 99.55 682.5 DL 109.55 682.5 104.55 682.5 DL 114.55 682.5 109.55
+682.5 DL 114.55 671.5 114.55 681.5 DL 103.552 671.5 98.552 671.5 DL
+104.55 671.5 99.55 671.5 DL 109.55 671.5 104.55 671.5 DL 114.55 671.5
+109.55 671.5 DL F0 69.839(AC)102.941 680 S(ursor Up)-69.839 E F2(P)2.5 E
+F4(s)-2 3 M F0 -.35(Ti)2.5 -3 O(mes \(def).35 E(ault = 1\) \(CUU\))-.1 E
+72 688.5 72 698.5 DL 72 687.5 72 697.5 DL 87.998 688.5 87.998 698.5 DL
+77 698.5 72 698.5 DL 77.998 698.5 72.998 698.5 DL 82.998 698.5 77.998
+698.5 DL 87.998 698.5 82.998 698.5 DL 87.998 687.5 87.998 697.5 DL 77
+687.5 72 687.5 DL 77.998 687.5 72.998 687.5 DL 82.998 687.5 77.998 687.5
+DL 87.998 687.5 82.998 687.5 DL F1(CSI)75.331 695 Q F2(P)4.997 1 M
+98.552 688.5 98.552 698.5 DL 98.552 687.5 98.552 697.5 DL F4(s)93.774
+699 Q 114.55 688.5 114.55 698.5 DL 103.552 698.5 98.552 698.5 DL 104.55
+698.5 99.55 698.5 DL 109.55 698.5 104.55 698.5 DL 114.55 698.5 109.55
+698.5 DL 114.55 687.5 114.55 697.5 DL 103.552 687.5 98.552 687.5 DL
+104.55 687.5 99.55 687.5 DL 109.55 687.5 104.55 687.5 DL 114.55 687.5
+109.55 687.5 DL F0 70.114(BC)103.216 696 S(ursor Do)-70.114 E(wn)-.25 E
+F2(P)2.5 E F4(s)-2 3 M F0 -.35(Ti)2.5 -3 O(mes \(def).35 E
+(ault = 1\) \(CUD\))-.1 E 72 704.5 72 714.5 DL 72 703.5 72 713.5 DL
+87.998 704.5 87.998 714.5 DL 77 714.5 72 714.5 DL 77.998 714.5 72.998
+714.5 DL 82.998 714.5 77.998 714.5 DL 87.998 714.5 82.998 714.5 DL
+87.998 703.5 87.998 713.5 DL 77 703.5 72 703.5 DL 77.998 703.5 72.998
+703.5 DL 82.998 703.5 77.998 703.5 DL 87.998 703.5 82.998 703.5 DL F1
+(CSI)75.331 711 Q F2(P)4.997 1 M 98.552 704.5 98.552 714.5 DL 98.552
+703.5 98.552 713.5 DL F4(s)93.774 715 Q 114.55 704.5 114.55 714.5 DL
+103.552 714.5 98.552 714.5 DL 104.55 714.5 99.55 714.5 DL 109.55 714.5
+104.55 714.5 DL 114.55 714.5 109.55 714.5 DL 114.55 703.5 114.55 713.5
+DL 103.552 703.5 98.552 703.5 DL 104.55 703.5 99.55 703.5 DL 109.55
+703.5 104.55 703.5 DL 114.55 703.5 109.55 703.5 DL F0 70.114(CC)103.216
+712 S(ursor F)-70.114 E(orw)-.15 E(ard)-.1 E F2(P)2.5 E F4(s)-2 3 M F0
+-.35(Ti)2.5 -3 O(mes \(def).35 E(ault = 1\) \(CUF\))-.1 E(4)303.5 772 Q
+EP
+%%Page: 5 5
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E .4 LW 72 80.5 72 90.5 DL 72 79.5 72 89.5 DL 87.998 80.5 87.998
+90.5 DL 77 90.5 72 90.5 DL 77.998 90.5 72.998 90.5 DL 82.998 90.5 77.998
+90.5 DL 87.998 90.5 82.998 90.5 DL 87.998 79.5 87.998 89.5 DL 77 79.5 72
+79.5 DL 77.998 79.5 72.998 79.5 DL 82.998 79.5 77.998 79.5 DL 87.998
+79.5 82.998 79.5 DL/F1 6/Times-Roman@0 SF(CSI)75.331 87 Q/F2 10
+/Times-Italic@0 SF(P)4.997 1 M 98.552 80.5 98.552 90.5 DL 98.552 79.5
+98.552 89.5 DL/F3 8/Times-Italic@0 SF(s)93.774 91 Q 114.55 80.5 114.55
+90.5 DL 103.552 90.5 98.552 90.5 DL 104.55 90.5 99.55 90.5 DL 109.55
+90.5 104.55 90.5 DL 114.55 90.5 109.55 90.5 DL 114.55 79.5 114.55 89.5
+DL 103.552 79.5 98.552 79.5 DL 104.55 79.5 99.55 79.5 DL 109.55 79.5
+104.55 79.5 DL 114.55 79.5 109.55 79.5 DL F0 69.839(DC)102.941 88 S
+(ursor Backw)-69.839 E(ard)-.1 E F2(P)2.5 E F3(s)-2 3 M F0 -.35(Ti)2.5
+-3 O(mes \(def).35 E(ault = 1\) \(CUB\))-.1 E 72 96.5 72 106.5 DL 72
+95.5 72 105.5 DL 87.998 96.5 87.998 106.5 DL 77 106.5 72 106.5 DL 77.998
+106.5 72.998 106.5 DL 82.998 106.5 77.998 106.5 DL 87.998 106.5 82.998
+106.5 DL 87.998 95.5 87.998 105.5 DL 77 95.5 72 95.5 DL 77.998 95.5
+72.998 95.5 DL 82.998 95.5 77.998 95.5 DL 87.998 95.5 82.998 95.5 DL F1
+(CSI)75.331 103 Q F2(P)4.997 1 M 98.552 96.5 98.552 106.5 DL 98.552 95.5
+98.552 105.5 DL F3(s)93.774 107 Q 114.55 96.5 114.55 106.5 DL 103.552
+106.5 98.552 106.5 DL 104.55 106.5 99.55 106.5 DL 109.55 106.5 104.55
+106.5 DL 114.55 106.5 109.55 106.5 DL 114.55 95.5 114.55 105.5 DL
+103.552 95.5 98.552 95.5 DL 104.55 95.5 99.55 95.5 DL 109.55 95.5 104.55
+95.5 DL 114.55 95.5 109.55 95.5 DL F0 70.394(EC)103.496 104 S(ursor Ne)
+-70.394 E(xt Line)-.15 E F2(P)2.5 E F3(s)-2 3 M F0 -.35(Ti)2.5 -3 O
+(mes \(def).35 E(ault = 1\) \(CNL\))-.1 E 72 112.5 72 122.5 DL 72 111.5
+72 121.5 DL 87.998 112.5 87.998 122.5 DL 77 122.5 72 122.5 DL 77.998
+122.5 72.998 122.5 DL 82.998 122.5 77.998 122.5 DL 87.998 122.5 82.998
+122.5 DL 87.998 111.5 87.998 121.5 DL 77 111.5 72 111.5 DL 77.998 111.5
+72.998 111.5 DL 82.998 111.5 77.998 111.5 DL 87.998 111.5 82.998 111.5
+DL F1(CSI)75.331 119 Q F2(P)4.997 1 M 98.552 112.5 98.552 122.5 DL
+98.552 111.5 98.552 121.5 DL F3(s)93.774 123 Q 114.55 112.5 114.55 122.5
+DL 103.552 122.5 98.552 122.5 DL 104.55 122.5 99.55 122.5 DL 109.55
+122.5 104.55 122.5 DL 114.55 122.5 109.55 122.5 DL 114.55 111.5 114.55
+121.5 DL 103.552 111.5 98.552 111.5 DL 104.55 111.5 99.55 111.5 DL
+109.55 111.5 104.55 111.5 DL 114.55 111.5 109.55 111.5 DL F0 70.669(FC)
+103.771 120 S(ursor Preceding Line)-70.669 E F2(P)2.5 E F3(s)-2 3 M F0
+-.35(Ti)2.5 -3 O(mes \(def).35 E(ault = 1\) \(CPL\))-.1 E 72 128.5 72
+138.5 DL 72 127.5 72 137.5 DL 87.998 128.5 87.998 138.5 DL 77 138.5 72
+138.5 DL 77.998 138.5 72.998 138.5 DL 82.998 138.5 77.998 138.5 DL
+87.998 138.5 82.998 138.5 DL 87.998 127.5 87.998 137.5 DL 77 127.5 72
+127.5 DL 77.998 127.5 72.998 127.5 DL 82.998 127.5 77.998 127.5 DL
+87.998 127.5 82.998 127.5 DL F1(CSI)75.331 135 Q F2(P)4.997 1 M 98.552
+128.5 98.552 138.5 DL 98.552 127.5 98.552 137.5 DL F3(s)93.774 139 Q
+114.55 128.5 114.55 138.5 DL 103.552 138.5 98.552 138.5 DL 104.55 138.5
+99.55 138.5 DL 109.55 138.5 104.55 138.5 DL 114.55 138.5 109.55 138.5 DL
+114.55 127.5 114.55 137.5 DL 103.552 127.5 98.552 127.5 DL 104.55 127.5
+99.55 127.5 DL 109.55 127.5 104.55 127.5 DL 114.55 127.5 109.55 127.5 DL
+F0 69.839(GC)102.941 136 S(ursor Character Absolute)-69.839 E
+([column] \(def)5 E(ault = [ro)-.1 E -.65(w,)-.25 G(1]\) \(CHA\)).65 E
+72 144.5 72 154.5 DL 72 143.5 72 153.5 DL 87.998 144.5 87.998 154.5 DL
+77 154.5 72 154.5 DL 77.998 154.5 72.998 154.5 DL 82.998 154.5 77.998
+154.5 DL 87.998 154.5 82.998 154.5 DL 87.998 143.5 87.998 153.5 DL 77
+143.5 72 143.5 DL 77.998 143.5 72.998 143.5 DL 82.998 143.5 77.998 143.5
+DL 87.998 143.5 82.998 143.5 DL F1(CSI)75.331 151 Q F2(P)4.997 1 M
+98.552 144.5 98.552 154.5 DL 98.552 143.5 98.552 153.5 DL F3(s)93.774
+155 Q 114.55 144.5 114.55 154.5 DL 103.552 154.5 98.552 154.5 DL 104.55
+154.5 99.55 154.5 DL 109.55 154.5 104.55 154.5 DL 114.55 154.5 109.55
+154.5 DL 114.55 143.5 114.55 153.5 DL 103.552 143.5 98.552 143.5 DL
+104.55 143.5 99.55 143.5 DL 109.55 143.5 104.55 143.5 DL 114.55 143.5
+109.55 143.5 DL F0(;)105.161 152 Q F2(P)8.275 E 125.104 144.5 125.104
+154.5 DL 125.104 143.5 125.104 153.5 DL F3(s)120.326 155 Q 141.102 144.5
+141.102 154.5 DL 130.104 154.5 125.104 154.5 DL 131.102 154.5 126.102
+154.5 DL 136.102 154.5 131.102 154.5 DL 141.102 154.5 136.102 154.5 DL
+141.102 143.5 141.102 153.5 DL 130.104 143.5 125.104 143.5 DL 131.102
+143.5 126.102 143.5 DL 136.102 143.5 131.102 143.5 DL 141.102 143.5
+136.102 143.5 DL F0 43.287(HC)129.493 152 S(ursor Position [ro)-43.287 E
+(w;column] \(def)-.25 E(ault = [1,1]\) \(CUP\))-.1 E 72 160.5 72 170.5
+DL 72 159.5 72 169.5 DL 87.998 160.5 87.998 170.5 DL 77 170.5 72 170.5
+DL 77.998 170.5 72.998 170.5 DL 82.998 170.5 77.998 170.5 DL 87.998
+170.5 82.998 170.5 DL 87.998 159.5 87.998 169.5 DL 77 159.5 72 159.5 DL
+77.998 159.5 72.998 159.5 DL 82.998 159.5 77.998 159.5 DL 87.998 159.5
+82.998 159.5 DL F1(CSI)75.331 167 Q F2(P)4.997 1 M 98.552 160.5 98.552
+170.5 DL 98.552 159.5 98.552 169.5 DL F3(s)93.774 171 Q 114.55 160.5
+114.55 170.5 DL 103.552 170.5 98.552 170.5 DL 104.55 170.5 99.55 170.5
+DL 109.55 170.5 104.55 170.5 DL 114.55 170.5 109.55 170.5 DL 114.55
+159.5 114.55 169.5 DL 103.552 159.5 98.552 159.5 DL 104.55 159.5 99.55
+159.5 DL 109.55 159.5 104.55 159.5 DL 114.55 159.5 109.55 159.5 DL F0
+71.784(IC)104.886 168 S(ursor F)-71.784 E(orw)-.15 E(ard T)-.1 E(ab)-.8
+E(ulation)-.2 E F2(P)2.5 E F3(s)-2 3 M F0(tab stops \(def)2.5 -3 M
+(ault = 1\) \(CHT\))-.1 E 72 176.5 72 186.5 DL 72 175.5 72 185.5 DL
+87.998 176.5 87.998 186.5 DL 77 186.5 72 186.5 DL 77.998 186.5 72.998
+186.5 DL 82.998 186.5 77.998 186.5 DL 87.998 186.5 82.998 186.5 DL
+87.998 175.5 87.998 185.5 DL 77 175.5 72 175.5 DL 77.998 175.5 72.998
+175.5 DL 82.998 175.5 77.998 175.5 DL 87.998 175.5 82.998 175.5 DL F1
+(CSI)75.331 183 Q F2(P)4.997 1 M 98.552 176.5 98.552 186.5 DL 98.552
+175.5 98.552 185.5 DL F3(s)93.774 187 Q 114.55 176.5 114.55 186.5 DL
+103.552 186.5 98.552 186.5 DL 104.55 186.5 99.55 186.5 DL 109.55 186.5
+104.55 186.5 DL 114.55 186.5 109.55 186.5 DL 114.55 175.5 114.55 185.5
+DL 103.552 175.5 98.552 175.5 DL 104.55 175.5 99.55 175.5 DL 109.55
+175.5 104.55 175.5 DL 114.55 175.5 109.55 175.5 DL F0 71.504(JE)104.606
+184 S(rase in Display \(ED\))-71.504 E F2(P)185 200 Q F3(s)-2 3 M
+202.862 192.5 202.862 202.5 DL 202.862 191.5 202.862 201.5 DL 218.86
+192.5 218.86 202.5 DL 207.862 202.5 202.862 202.5 DL 208.86 202.5 203.86
+202.5 DL 213.86 202.5 208.86 202.5 DL 218.86 202.5 213.86 202.5 DL
+218.86 191.5 218.86 201.5 DL 207.862 191.5 202.862 191.5 DL 208.86 191.5
+203.86 191.5 DL 213.86 191.5 208.86 191.5 DL 218.86 191.5 213.86 191.5
+DL F0 7.999(=0)194.722 200 S/F4 10/Symbol SF<ae>1.666 E F0(Erase Belo)
+2.5 E 2.5(w\()-.25 G(def)-2.5 E(ault\))-.1 E F2(P)185 216 Q F3(s)-2 3 M
+202.862 208.5 202.862 218.5 DL 202.862 207.5 202.862 217.5 DL 218.86
+208.5 218.86 218.5 DL 207.862 218.5 202.862 218.5 DL 208.86 218.5 203.86
+218.5 DL 213.86 218.5 208.86 218.5 DL 218.86 218.5 213.86 218.5 DL
+218.86 207.5 218.86 217.5 DL 207.862 207.5 202.862 207.5 DL 208.86 207.5
+203.86 207.5 DL 213.86 207.5 208.86 207.5 DL 218.86 207.5 213.86 207.5
+DL F0 7.999(=1)194.722 216 S F4<ae>1.666 E F0(Erase Abo)2.5 E -.15(ve)
+-.15 G F2(P)185 232 Q F3(s)-2 3 M 202.862 224.5 202.862 234.5 DL 202.862
+223.5 202.862 233.5 DL 218.86 224.5 218.86 234.5 DL 207.862 234.5
+202.862 234.5 DL 208.86 234.5 203.86 234.5 DL 213.86 234.5 208.86 234.5
+DL 218.86 234.5 213.86 234.5 DL 218.86 223.5 218.86 233.5 DL 207.862
+223.5 202.862 223.5 DL 208.86 223.5 203.86 223.5 DL 213.86 223.5 208.86
+223.5 DL 218.86 223.5 213.86 223.5 DL F0 7.999(=2)194.722 232 S F4<ae>
+1.666 E F0(Erase All)2.5 E F2(P)185 248 Q F3(s)-2 3 M 202.862 240.5
+202.862 250.5 DL 202.862 239.5 202.862 249.5 DL 218.86 240.5 218.86
+250.5 DL 207.862 250.5 202.862 250.5 DL 208.86 250.5 203.86 250.5 DL
+213.86 250.5 208.86 250.5 DL 218.86 250.5 213.86 250.5 DL 218.86 239.5
+218.86 249.5 DL 207.862 239.5 202.862 239.5 DL 208.86 239.5 203.86 239.5
+DL 213.86 239.5 208.86 239.5 DL 218.86 239.5 213.86 239.5 DL F0 7.999
+(=3)194.722 248 S F4<ae>1.666 E F0(Erase Sa)2.5 E -.15(ve)-.2 G 2.5(dL)
+.15 G(ines \(xterm\))-2.5 E 72 256.5 72 266.5 DL 72 255.5 72 265.5 DL
+87.998 256.5 87.998 266.5 DL 77 266.5 72 266.5 DL 77.998 266.5 72.998
+266.5 DL 82.998 266.5 77.998 266.5 DL 87.998 266.5 82.998 266.5 DL
+87.998 255.5 87.998 265.5 DL 77 255.5 72 255.5 DL 77.998 255.5 72.998
+255.5 DL 82.998 255.5 77.998 255.5 DL 87.998 255.5 82.998 255.5 DL
+89.664 256.5 89.664 266.5 DL 89.664 255.5 89.664 265.5 DL F1(CSI)75.331
+263 Q 105.662 256.5 105.662 266.5 DL 94.664 266.5 89.664 266.5 DL 95.662
+266.5 90.662 266.5 DL 100.662 266.5 95.662 266.5 DL 105.662 266.5
+100.662 266.5 DL 105.662 255.5 105.662 265.5 DL 94.664 255.5 89.664
+255.5 DL 95.662 255.5 90.662 255.5 DL 100.662 255.5 95.662 255.5 DL
+105.662 255.5 100.662 255.5 DL F0(?)95.443 264 Q F2(P)7.445 E 116.216
+256.5 116.216 266.5 DL 116.216 255.5 116.216 265.5 DL F3(s)111.438 267 Q
+132.214 256.5 132.214 266.5 DL 121.216 266.5 116.216 266.5 DL 122.214
+266.5 117.214 266.5 DL 127.214 266.5 122.214 266.5 DL 132.214 266.5
+127.214 266.5 DL 132.214 255.5 132.214 265.5 DL 121.216 255.5 116.216
+255.5 DL 122.214 255.5 117.214 255.5 DL 127.214 255.5 122.214 255.5 DL
+132.214 255.5 127.214 255.5 DL F0 53.84(JE)122.27 264 S
+(rase in Display \(DECSED\))-53.84 E F2(P)185 280 Q F3(s)-2 3 M 202.862
+272.5 202.862 282.5 DL 202.862 271.5 202.862 281.5 DL 218.86 272.5
+218.86 282.5 DL 207.862 282.5 202.862 282.5 DL 208.86 282.5 203.86 282.5
+DL 213.86 282.5 208.86 282.5 DL 218.86 282.5 213.86 282.5 DL 218.86
+271.5 218.86 281.5 DL 207.862 271.5 202.862 271.5 DL 208.86 271.5 203.86
+271.5 DL 213.86 271.5 208.86 271.5 DL 218.86 271.5 213.86 271.5 DL F0
+7.999(=0)194.722 280 S F4<ae>1.666 E F0(Selecti)2.5 E .3 -.15(ve E)-.25
+H(rase Belo).15 E 2.5(w\()-.25 G(def)-2.5 E(ault\))-.1 E F2(P)185 296 Q
+F3(s)-2 3 M 202.862 288.5 202.862 298.5 DL 202.862 287.5 202.862 297.5
+DL 218.86 288.5 218.86 298.5 DL 207.862 298.5 202.862 298.5 DL 208.86
+298.5 203.86 298.5 DL 213.86 298.5 208.86 298.5 DL 218.86 298.5 213.86
+298.5 DL 218.86 287.5 218.86 297.5 DL 207.862 287.5 202.862 287.5 DL
+208.86 287.5 203.86 287.5 DL 213.86 287.5 208.86 287.5 DL 218.86 287.5
+213.86 287.5 DL F0 7.999(=1)194.722 296 S F4<ae>1.666 E F0(Selecti)2.5 E
+.3 -.15(ve E)-.25 H(rase Abo).15 E -.15(ve)-.15 G F2(P)185 312 Q F3(s)-2
+3 M 202.862 304.5 202.862 314.5 DL 202.862 303.5 202.862 313.5 DL 218.86
+304.5 218.86 314.5 DL 207.862 314.5 202.862 314.5 DL 208.86 314.5 203.86
+314.5 DL 213.86 314.5 208.86 314.5 DL 218.86 314.5 213.86 314.5 DL
+218.86 303.5 218.86 313.5 DL 207.862 303.5 202.862 303.5 DL 208.86 303.5
+203.86 303.5 DL 213.86 303.5 208.86 303.5 DL 218.86 303.5 213.86 303.5
+DL F0 7.999(=2)194.722 312 S F4<ae>1.666 E F0(Selecti)2.5 E .3 -.15
+(ve E)-.25 H(rase All).15 E 72 320.5 72 330.5 DL 72 319.5 72 329.5 DL
+87.998 320.5 87.998 330.5 DL 77 330.5 72 330.5 DL 77.998 330.5 72.998
+330.5 DL 82.998 330.5 77.998 330.5 DL 87.998 330.5 82.998 330.5 DL
+87.998 319.5 87.998 329.5 DL 77 319.5 72 319.5 DL 77.998 319.5 72.998
+319.5 DL 82.998 319.5 77.998 319.5 DL 87.998 319.5 82.998 319.5 DL F1
+(CSI)75.331 327 Q F2(P)4.997 1 M 98.552 320.5 98.552 330.5 DL 98.552
+319.5 98.552 329.5 DL F3(s)93.774 331 Q 114.55 320.5 114.55 330.5 DL
+103.552 330.5 98.552 330.5 DL 104.55 330.5 99.55 330.5 DL 109.55 330.5
+104.55 330.5 DL 114.55 330.5 109.55 330.5 DL 114.55 319.5 114.55 329.5
+DL 103.552 319.5 98.552 319.5 DL 104.55 319.5 99.55 319.5 DL 109.55
+319.5 104.55 319.5 DL 114.55 319.5 109.55 319.5 DL F0 69.839(KE)102.941
+328 S(rase in Line \(EL\))-69.839 E F2(P)185 344 Q F3(s)-2 3 M 202.862
+336.5 202.862 346.5 DL 202.862 335.5 202.862 345.5 DL 218.86 336.5
+218.86 346.5 DL 207.862 346.5 202.862 346.5 DL 208.86 346.5 203.86 346.5
+DL 213.86 346.5 208.86 346.5 DL 218.86 346.5 213.86 346.5 DL 218.86
+335.5 218.86 345.5 DL 207.862 335.5 202.862 335.5 DL 208.86 335.5 203.86
+335.5 DL 213.86 335.5 208.86 335.5 DL 218.86 335.5 213.86 335.5 DL F0
+7.999(=0)194.722 344 S F4<ae>1.666 E F0(Erase to Right \(def)2.5 E
+(ault\))-.1 E F2(P)185 360 Q F3(s)-2 3 M 202.862 352.5 202.862 362.5 DL
+202.862 351.5 202.862 361.5 DL 218.86 352.5 218.86 362.5 DL 207.862
+362.5 202.862 362.5 DL 208.86 362.5 203.86 362.5 DL 213.86 362.5 208.86
+362.5 DL 218.86 362.5 213.86 362.5 DL 218.86 351.5 218.86 361.5 DL
+207.862 351.5 202.862 351.5 DL 208.86 351.5 203.86 351.5 DL 213.86 351.5
+208.86 351.5 DL 218.86 351.5 213.86 351.5 DL F0 7.999(=1)194.722 360 S
+F4<ae>1.666 E F0(Erase to Left)2.5 E F2(P)185 376 Q F3(s)-2 3 M 202.862
+368.5 202.862 378.5 DL 202.862 367.5 202.862 377.5 DL 218.86 368.5
+218.86 378.5 DL 207.862 378.5 202.862 378.5 DL 208.86 378.5 203.86 378.5
+DL 213.86 378.5 208.86 378.5 DL 218.86 378.5 213.86 378.5 DL 218.86
+367.5 218.86 377.5 DL 207.862 367.5 202.862 367.5 DL 208.86 367.5 203.86
+367.5 DL 213.86 367.5 208.86 367.5 DL 218.86 367.5 213.86 367.5 DL F0
+7.999(=2)194.722 376 S F4<ae>1.666 E F0(Erase All)2.5 E 72 384.5 72
+394.5 DL 72 383.5 72 393.5 DL 87.998 384.5 87.998 394.5 DL 77 394.5 72
+394.5 DL 77.998 394.5 72.998 394.5 DL 82.998 394.5 77.998 394.5 DL
+87.998 394.5 82.998 394.5 DL 87.998 383.5 87.998 393.5 DL 77 383.5 72
+383.5 DL 77.998 383.5 72.998 383.5 DL 82.998 383.5 77.998 383.5 DL
+87.998 383.5 82.998 383.5 DL 89.664 384.5 89.664 394.5 DL 89.664 383.5
+89.664 393.5 DL F1(CSI)75.331 391 Q 105.662 384.5 105.662 394.5 DL
+94.664 394.5 89.664 394.5 DL 95.662 394.5 90.662 394.5 DL 100.662 394.5
+95.662 394.5 DL 105.662 394.5 100.662 394.5 DL 105.662 383.5 105.662
+393.5 DL 94.664 383.5 89.664 383.5 DL 95.662 383.5 90.662 383.5 DL
+100.662 383.5 95.662 383.5 DL 105.662 383.5 100.662 383.5 DL F0(?)95.443
+392 Q F2(P)7.445 E 116.216 384.5 116.216 394.5 DL 116.216 383.5 116.216
+393.5 DL F3(s)111.438 395 Q 132.214 384.5 132.214 394.5 DL 121.216 394.5
+116.216 394.5 DL 122.214 394.5 117.214 394.5 DL 127.214 394.5 122.214
+394.5 DL 132.214 394.5 127.214 394.5 DL 132.214 383.5 132.214 393.5 DL
+121.216 383.5 116.216 383.5 DL 122.214 383.5 117.214 383.5 DL 127.214
+383.5 122.214 383.5 DL 132.214 383.5 127.214 383.5 DL F0 52.175(KE)
+120.605 392 S(rase in Line \(DECSEL\))-52.175 E F2(P)185 408 Q F3(s)-2 3
+M 202.862 400.5 202.862 410.5 DL 202.862 399.5 202.862 409.5 DL 218.86
+400.5 218.86 410.5 DL 207.862 410.5 202.862 410.5 DL 208.86 410.5 203.86
+410.5 DL 213.86 410.5 208.86 410.5 DL 218.86 410.5 213.86 410.5 DL
+218.86 399.5 218.86 409.5 DL 207.862 399.5 202.862 399.5 DL 208.86 399.5
+203.86 399.5 DL 213.86 399.5 208.86 399.5 DL 218.86 399.5 213.86 399.5
+DL F0 7.999(=0)194.722 408 S F4<ae>1.666 E F0(Selecti)2.5 E .3 -.15
+(ve E)-.25 H(rase to Right \(def).15 E(ault\))-.1 E F2(P)185 424 Q F3(s)
+-2 3 M 202.862 416.5 202.862 426.5 DL 202.862 415.5 202.862 425.5 DL
+218.86 416.5 218.86 426.5 DL 207.862 426.5 202.862 426.5 DL 208.86 426.5
+203.86 426.5 DL 213.86 426.5 208.86 426.5 DL 218.86 426.5 213.86 426.5
+DL 218.86 415.5 218.86 425.5 DL 207.862 415.5 202.862 415.5 DL 208.86
+415.5 203.86 415.5 DL 213.86 415.5 208.86 415.5 DL 218.86 415.5 213.86
+415.5 DL F0 7.999(=1)194.722 424 S F4<ae>1.666 E F0(Selecti)2.5 E .3
+-.15(ve E)-.25 H(rase to Left).15 E F2(P)185 440 Q F3(s)-2 3 M 202.862
+432.5 202.862 442.5 DL 202.862 431.5 202.862 441.5 DL 218.86 432.5
+218.86 442.5 DL 207.862 442.5 202.862 442.5 DL 208.86 442.5 203.86 442.5
+DL 213.86 442.5 208.86 442.5 DL 218.86 442.5 213.86 442.5 DL 218.86
+431.5 218.86 441.5 DL 207.862 431.5 202.862 431.5 DL 208.86 431.5 203.86
+431.5 DL 213.86 431.5 208.86 431.5 DL 218.86 431.5 213.86 431.5 DL F0
+7.999(=2)194.722 440 S F4<ae>1.666 E F0(Selecti)2.5 E .3 -.15(ve E)-.25
+H(rase All).15 E 72 448.5 72 458.5 DL 72 447.5 72 457.5 DL 87.998 448.5
+87.998 458.5 DL 77 458.5 72 458.5 DL 77.998 458.5 72.998 458.5 DL 82.998
+458.5 77.998 458.5 DL 87.998 458.5 82.998 458.5 DL 87.998 447.5 87.998
+457.5 DL 77 447.5 72 447.5 DL 77.998 447.5 72.998 447.5 DL 82.998 447.5
+77.998 447.5 DL 87.998 447.5 82.998 447.5 DL F1(CSI)75.331 455 Q F2(P)
+4.997 1 M 98.552 448.5 98.552 458.5 DL 98.552 447.5 98.552 457.5 DL F3
+(s)93.774 459 Q 114.55 448.5 114.55 458.5 DL 103.552 458.5 98.552 458.5
+DL 104.55 458.5 99.55 458.5 DL 109.55 458.5 104.55 458.5 DL 114.55 458.5
+109.55 458.5 DL 114.55 447.5 114.55 457.5 DL 103.552 447.5 98.552 447.5
+DL 104.55 447.5 99.55 447.5 DL 109.55 447.5 104.55 447.5 DL 114.55 447.5
+109.55 447.5 DL F0 70.394(LI)103.496 456 S(nsert)-70.394 E F2(P)2.5 E F3
+(s)-2 3 M F0(Line\(s\) \(def)2.5 -3 M(ault = 1\) \(IL\))-.1 E 72 464.5
+72 474.5 DL 72 463.5 72 473.5 DL 87.998 464.5 87.998 474.5 DL 77 474.5
+72 474.5 DL 77.998 474.5 72.998 474.5 DL 82.998 474.5 77.998 474.5 DL
+87.998 474.5 82.998 474.5 DL 87.998 463.5 87.998 473.5 DL 77 463.5 72
+463.5 DL 77.998 463.5 72.998 463.5 DL 82.998 463.5 77.998 463.5 DL
+87.998 463.5 82.998 463.5 DL F1(CSI)75.331 471 Q F2(P)4.997 1 M 98.552
+464.5 98.552 474.5 DL 98.552 463.5 98.552 473.5 DL F3(s)93.774 475 Q
+114.55 464.5 114.55 474.5 DL 103.552 474.5 98.552 474.5 DL 104.55 474.5
+99.55 474.5 DL 109.55 474.5 104.55 474.5 DL 114.55 474.5 109.55 474.5 DL
+114.55 463.5 114.55 473.5 DL 103.552 463.5 98.552 463.5 DL 104.55 463.5
+99.55 463.5 DL 109.55 463.5 104.55 463.5 DL 114.55 463.5 109.55 463.5 DL
+F0 69.004(MD)102.106 472 S(elete)-69.004 E F2(P)2.5 E F3(s)-2 3 M F0
+(Line\(s\) \(def)2.5 -3 M(ault = 1\) \(DL\))-.1 E 72 480.5 72 490.5 DL
+72 479.5 72 489.5 DL 87.998 480.5 87.998 490.5 DL 77 490.5 72 490.5 DL
+77.998 490.5 72.998 490.5 DL 82.998 490.5 77.998 490.5 DL 87.998 490.5
+82.998 490.5 DL 87.998 479.5 87.998 489.5 DL 77 479.5 72 479.5 DL 77.998
+479.5 72.998 479.5 DL 82.998 479.5 77.998 479.5 DL 87.998 479.5 82.998
+479.5 DL F1(CSI)75.331 487 Q F2(P)4.997 1 M 98.552 480.5 98.552 490.5 DL
+98.552 479.5 98.552 489.5 DL F3(s)93.774 491 Q 114.55 480.5 114.55 490.5
+DL 103.552 490.5 98.552 490.5 DL 104.55 490.5 99.55 490.5 DL 109.55
+490.5 104.55 490.5 DL 114.55 490.5 109.55 490.5 DL 114.55 479.5 114.55
+489.5 DL 103.552 479.5 98.552 479.5 DL 104.55 479.5 99.55 479.5 DL
+109.55 479.5 104.55 479.5 DL 114.55 479.5 109.55 479.5 DL F0 70.669(PD)
+103.771 488 S(elete)-70.669 E F2(P)2.5 E F3(s)-2 3 M F0
+(Character\(s\) \(def)2.5 -3 M(ault = 1\) \(DCH\))-.1 E 72 496.5 72
+506.5 DL 72 495.5 72 505.5 DL 87.998 496.5 87.998 506.5 DL 77 506.5 72
+506.5 DL 77.998 506.5 72.998 506.5 DL 82.998 506.5 77.998 506.5 DL
+87.998 506.5 82.998 506.5 DL 87.998 495.5 87.998 505.5 DL 77 495.5 72
+495.5 DL 77.998 495.5 72.998 495.5 DL 82.998 495.5 77.998 495.5 DL
+87.998 495.5 82.998 495.5 DL F1(CSI)75.331 503 Q F2(P)4.997 1 M 98.552
+496.5 98.552 506.5 DL 98.552 495.5 98.552 505.5 DL F3(s)93.774 507 Q
+114.55 496.5 114.55 506.5 DL 103.552 506.5 98.552 506.5 DL 104.55 506.5
+99.55 506.5 DL 109.55 506.5 104.55 506.5 DL 114.55 506.5 109.55 506.5 DL
+114.55 495.5 114.55 505.5 DL 103.552 495.5 98.552 495.5 DL 104.55 495.5
+99.55 495.5 DL 109.55 495.5 104.55 495.5 DL 114.55 495.5 109.55 495.5 DL
+F0 70.669(SS)103.771 504 S(croll up)-70.669 E F2(P)2.5 E F3(s)-2 3 M F0
+(lines \(def)2.5 -3 M(ault = 1\) \(SU\))-.1 E 72 512.5 72 522.5 DL 72
+511.5 72 521.5 DL 87.998 512.5 87.998 522.5 DL 77 522.5 72 522.5 DL
+77.998 522.5 72.998 522.5 DL 82.998 522.5 77.998 522.5 DL 87.998 522.5
+82.998 522.5 DL 87.998 511.5 87.998 521.5 DL 77 511.5 72 511.5 DL 77.998
+511.5 72.998 511.5 DL 82.998 511.5 77.998 511.5 DL 87.998 511.5 82.998
+511.5 DL F1(CSI)75.331 519 Q F2(P)4.997 1 M 98.552 512.5 98.552 522.5 DL
+98.552 511.5 98.552 521.5 DL F3(s)93.774 523 Q 114.55 512.5 114.55 522.5
+DL 103.552 522.5 98.552 522.5 DL 104.55 522.5 99.55 522.5 DL 109.55
+522.5 104.55 522.5 DL 114.55 522.5 109.55 522.5 DL 114.55 511.5 114.55
+521.5 DL 103.552 511.5 98.552 511.5 DL 104.55 511.5 99.55 511.5 DL
+109.55 511.5 104.55 511.5 DL 114.55 511.5 109.55 511.5 DL F0 70.394(TS)
+103.496 520 S(croll do)-70.394 E(wn)-.25 E F2(P)2.5 E F3(s)-2 3 M F0
+(lines \(def)2.5 -3 M(ault = 1\) \(SD\))-.1 E 72 528.5 72 538.5 DL 72
+527.5 72 537.5 DL 87.998 528.5 87.998 538.5 DL 77 538.5 72 538.5 DL
+77.998 538.5 72.998 538.5 DL 82.998 538.5 77.998 538.5 DL 87.998 538.5
+82.998 538.5 DL 87.998 527.5 87.998 537.5 DL 77 527.5 72 527.5 DL 77.998
+527.5 72.998 527.5 DL 82.998 527.5 77.998 527.5 DL 87.998 527.5 82.998
+527.5 DL F1(CSI)75.331 535 Q F2(P)4.997 1 M 98.552 528.5 98.552 538.5 DL
+98.552 527.5 98.552 537.5 DL F3(s)93.774 539 Q 114.55 528.5 114.55 538.5
+DL 103.552 538.5 98.552 538.5 DL 104.55 538.5 99.55 538.5 DL 109.55
+538.5 104.55 538.5 DL 114.55 538.5 109.55 538.5 DL 114.55 527.5 114.55
+537.5 DL 103.552 527.5 98.552 527.5 DL 104.55 527.5 99.55 527.5 DL
+109.55 527.5 104.55 527.5 DL 114.55 527.5 109.55 527.5 DL F0(;)105.161
+536 Q F2(P)8.275 E 125.104 528.5 125.104 538.5 DL 125.104 527.5 125.104
+537.5 DL F3(s)120.326 539 Q 141.102 528.5 141.102 538.5 DL 130.104 538.5
+125.104 538.5 DL 131.102 538.5 126.102 538.5 DL 136.102 538.5 131.102
+538.5 DL 141.102 538.5 136.102 538.5 DL 141.102 527.5 141.102 537.5 DL
+130.104 527.5 125.104 527.5 DL 131.102 527.5 126.102 527.5 DL 136.102
+527.5 131.102 527.5 DL 141.102 527.5 136.102 527.5 DL F0(;)131.713 536 Q
+F2(P)8.275 E 151.656 528.5 151.656 538.5 DL 151.656 527.5 151.656 537.5
+DL F3(s)146.878 539 Q 167.654 528.5 167.654 538.5 DL 156.656 538.5
+151.656 538.5 DL 157.654 538.5 152.654 538.5 DL 162.654 538.5 157.654
+538.5 DL 167.654 538.5 162.654 538.5 DL 167.654 527.5 167.654 537.5 DL
+156.656 527.5 151.656 527.5 DL 157.654 527.5 152.654 527.5 DL 162.654
+527.5 157.654 527.5 DL 167.654 527.5 162.654 527.5 DL F0(;)158.265 536 Q
+F2(P)8.275 E 178.208 528.5 178.208 538.5 DL 178.208 527.5 178.208 537.5
+DL F3(s)173.43 539 Q 194.206 528.5 194.206 538.5 DL 183.208 538.5
+178.208 538.5 DL 184.206 538.5 179.206 538.5 DL 189.206 538.5 184.206
+538.5 DL 194.206 538.5 189.206 538.5 DL 194.206 527.5 194.206 537.5 DL
+183.208 527.5 178.208 527.5 DL 184.206 527.5 179.206 527.5 DL 189.206
+527.5 184.206 527.5 DL 194.206 527.5 189.206 527.5 DL F0(;)184.817 536 Q
+F2(P)8.275 E 204.76 528.5 204.76 538.5 DL 204.76 527.5 204.76 537.5 DL
+F3(s)199.982 539 Q 220.758 528.5 220.758 538.5 DL 209.76 538.5 204.76
+538.5 DL 210.758 538.5 205.758 538.5 DL 215.758 538.5 210.758 538.5 DL
+220.758 538.5 215.758 538.5 DL 220.758 527.5 220.758 537.5 DL 209.76
+527.5 204.76 527.5 DL 210.758 527.5 205.758 527.5 DL 215.758 527.5
+210.758 527.5 DL 220.758 527.5 215.758 527.5 DL F0(T)209.704 536 Q 1.965
+(Initiate hilite mouse tracking.)180 552 R -.15(Pa)6.966 G 1.966
+(rameters are [func;startx;starty;\214rstro).15 F(w;lastro)-.25 E 4.466
+(w]. See)-.25 F(the section)180 568 Q/F5 10/Times-Bold@0 SF(Mouse T)2.5
+E(racking)-.74 E F0(.)A 72 576.5 72 586.5 DL 72 575.5 72 585.5 DL 87.998
+576.5 87.998 586.5 DL 77 586.5 72 586.5 DL 77.998 586.5 72.998 586.5 DL
+82.998 586.5 77.998 586.5 DL 87.998 586.5 82.998 586.5 DL 87.998 575.5
+87.998 585.5 DL 77 575.5 72 575.5 DL 77.998 575.5 72.998 575.5 DL 82.998
+575.5 77.998 575.5 DL 87.998 575.5 82.998 575.5 DL F1(CSI)75.331 583 Q
+F2(P)4.997 1 M 98.552 576.5 98.552 586.5 DL 98.552 575.5 98.552 585.5 DL
+F3(s)93.774 587 Q 114.55 576.5 114.55 586.5 DL 103.552 586.5 98.552
+586.5 DL 104.55 586.5 99.55 586.5 DL 109.55 586.5 104.55 586.5 DL 114.55
+586.5 109.55 586.5 DL 114.55 575.5 114.55 585.5 DL 103.552 575.5 98.552
+575.5 DL 104.55 575.5 99.55 575.5 DL 109.55 575.5 104.55 575.5 DL 114.55
+575.5 109.55 575.5 DL F0 69.839(XE)102.941 584 S(rase)-69.839 E F2(P)2.5
+E F3(s)-2 3 M F0(Character\(s\) \(def)2.5 -3 M(ault = 1\) \(ECH\))-.1 E
+72 592.5 72 602.5 DL 72 591.5 72 601.5 DL 87.998 592.5 87.998 602.5 DL
+77 602.5 72 602.5 DL 77.998 602.5 72.998 602.5 DL 82.998 602.5 77.998
+602.5 DL 87.998 602.5 82.998 602.5 DL 87.998 591.5 87.998 601.5 DL 77
+591.5 72 591.5 DL 77.998 591.5 72.998 591.5 DL 82.998 591.5 77.998 591.5
+DL 87.998 591.5 82.998 591.5 DL F1(CSI)75.331 599 Q F2(P)4.997 1 M
+98.552 592.5 98.552 602.5 DL 98.552 591.5 98.552 601.5 DL F3(s)93.774
+603 Q 114.55 592.5 114.55 602.5 DL 103.552 602.5 98.552 602.5 DL 104.55
+602.5 99.55 602.5 DL 109.55 602.5 104.55 602.5 DL 114.55 602.5 109.55
+602.5 DL 114.55 591.5 114.55 601.5 DL 103.552 591.5 98.552 591.5 DL
+104.55 591.5 99.55 591.5 DL 109.55 591.5 104.55 591.5 DL 114.55 591.5
+109.55 591.5 DL F0 70.394(ZC)103.496 600 S(ursor Backw)-70.394 E(ard T)
+-.1 E(ab)-.8 E(ulation)-.2 E F2(P)2.5 E F3(s)-2 3 M F0(tab stops \(def)
+2.5 -3 M(ault = 1\) \(CBT\))-.1 E 72 608.5 72 618.5 DL 72 607.5 72 617.5
+DL 87.998 608.5 87.998 618.5 DL 77 618.5 72 618.5 DL 77.998 618.5 72.998
+618.5 DL 82.998 618.5 77.998 618.5 DL 87.998 618.5 82.998 618.5 DL
+87.998 607.5 87.998 617.5 DL 77 607.5 72 607.5 DL 77.998 607.5 72.998
+607.5 DL 82.998 607.5 77.998 607.5 DL 87.998 607.5 82.998 607.5 DL F1
+(CSI)75.331 615 Q F2(P)4.997 1 M 101.216 608.5 101.216 618.5 DL 101.216
+607.5 101.216 617.5 DL F3(m)93.774 619 Q 117.214 608.5 117.214 618.5 DL
+106.216 618.5 101.216 618.5 DL 107.214 618.5 102.214 618.5 DL 112.214
+618.5 107.214 618.5 DL 117.214 618.5 112.214 618.5 DL 117.214 607.5
+117.214 617.5 DL 106.216 607.5 101.216 607.5 DL 107.214 607.5 102.214
+607.5 DL 112.214 607.5 107.214 607.5 DL 117.214 607.5 112.214 607.5 DL
+F0 69.12<9243>107.55 616 S(haracter Position Absolute)-69.12 E
+([column] \(def)5 E(ault = [ro)-.1 E -.65(w,)-.25 G(1]\) \(HP).65 E(A\))
+-.92 E 72 624.5 72 634.5 DL 72 623.5 72 633.5 DL 87.998 624.5 87.998
+634.5 DL 77 634.5 72 634.5 DL 77.998 634.5 72.998 634.5 DL 82.998 634.5
+77.998 634.5 DL 87.998 634.5 82.998 634.5 DL 87.998 623.5 87.998 633.5
+DL 77 623.5 72 623.5 DL 77.998 623.5 72.998 623.5 DL 82.998 623.5 77.998
+623.5 DL 87.998 623.5 82.998 623.5 DL F1(CSI)75.331 631 Q F2(P)4.997 1 M
+98.552 624.5 98.552 634.5 DL 98.552 623.5 98.552 633.5 DL F3(s)93.774
+635 Q 114.55 624.5 114.55 634.5 DL 103.552 634.5 98.552 634.5 DL 104.55
+634.5 99.55 634.5 DL 109.55 634.5 104.55 634.5 DL 114.55 634.5 109.55
+634.5 DL 114.55 623.5 114.55 633.5 DL 103.552 623.5 98.552 623.5 DL
+104.55 623.5 99.55 623.5 DL 109.55 623.5 104.55 623.5 DL 114.55 623.5
+109.55 623.5 DL F0 70.949(bR)104.051 632 S
+(epeat the preceding graphic character)-70.949 E F2(P)2.5 E F3(s)-2 3 M
+F0(times \(REP\))2.5 -3 M 72 640.5 72 650.5 DL 72 639.5 72 649.5 DL
+87.998 640.5 87.998 650.5 DL 77 650.5 72 650.5 DL 77.998 650.5 72.998
+650.5 DL 82.998 650.5 77.998 650.5 DL 87.998 650.5 82.998 650.5 DL
+87.998 639.5 87.998 649.5 DL 77 639.5 72 639.5 DL 77.998 639.5 72.998
+639.5 DL 82.998 639.5 77.998 639.5 DL 87.998 639.5 82.998 639.5 DL F1
+(CSI)75.331 647 Q F2(P)4.997 1 M 98.552 640.5 98.552 650.5 DL 98.552
+639.5 98.552 649.5 DL F3(s)93.774 651 Q 114.55 640.5 114.55 650.5 DL
+103.552 650.5 98.552 650.5 DL 104.55 650.5 99.55 650.5 DL 109.55 650.5
+104.55 650.5 DL 114.55 650.5 109.55 650.5 DL 114.55 639.5 114.55 649.5
+DL 103.552 639.5 98.552 639.5 DL 104.55 639.5 99.55 639.5 DL 109.55
+639.5 104.55 639.5 DL 114.55 639.5 109.55 639.5 DL F0 71.229(cS)104.331
+648 S(end De)-71.229 E(vice Attrib)-.25 E(utes \(Primary D)-.2 E(A\))-.4
+E F2(P)185 664 Q F3(s)-2 3 M 203.064 656.5 203.064 666.5 DL 203.064
+655.5 203.064 665.5 DL 219.062 656.5 219.062 666.5 DL 208.064 666.5
+203.064 666.5 DL 209.062 666.5 204.062 666.5 DL 214.062 666.5 209.062
+666.5 DL 219.062 666.5 214.062 666.5 DL 219.062 655.5 219.062 665.5 DL
+208.064 655.5 203.064 655.5 DL 209.062 655.5 204.062 655.5 DL 214.062
+655.5 209.062 655.5 DL 219.062 655.5 214.062 655.5 DL F0 8.1(=0)194.823
+664 S 2.601(,1o)-.935 G 2.601(ro)-2.601 G(mitted)-2.601 E F4<ae>2.601 E
+F0 .101(request attrib)2.601 F .101(utes from terminal.)-.2 F .101
+(The response depends on the)5.101 F F5(decT)180 680 Q(erminalId)-.92 E
+F0(resource setting.)2.5 E 197.37 688.5 197.37 698.5 DL 197.37 687.5
+197.37 697.5 DL F4<ae>185 696 Q 213.368 688.5 213.368 698.5 DL 202.37
+698.5 197.37 698.5 DL 203.368 698.5 198.368 698.5 DL 208.368 698.5
+203.368 698.5 DL 213.368 698.5 208.368 698.5 DL 213.368 687.5 213.368
+697.5 DL 202.37 687.5 197.37 687.5 DL 203.368 687.5 198.368 687.5 DL
+208.368 687.5 203.368 687.5 DL 213.368 687.5 208.368 687.5 DL 215.034
+688.5 215.034 698.5 DL 215.034 687.5 215.034 697.5 DL F1(CSI)200.701 695
+Q 231.032 688.5 231.032 698.5 DL 220.034 698.5 215.034 698.5 DL 221.032
+698.5 216.032 698.5 DL 226.032 698.5 221.032 698.5 DL 231.032 698.5
+226.032 698.5 DL 231.032 687.5 231.032 697.5 DL 220.034 687.5 215.034
+687.5 DL 221.032 687.5 216.032 687.5 DL 226.032 687.5 221.032 687.5 DL
+231.032 687.5 226.032 687.5 DL 232.698 688.5 232.698 698.5 DL 232.698
+687.5 232.698 697.5 DL 248.696 688.5 248.696 698.5 DL 237.698 698.5
+232.698 698.5 DL 238.696 698.5 233.696 698.5 DL 243.696 698.5 238.696
+698.5 DL 248.696 698.5 243.696 698.5 DL 248.696 687.5 248.696 697.5 DL
+237.698 687.5 232.698 687.5 DL 238.696 687.5 233.696 687.5 DL 243.696
+687.5 238.696 687.5 DL 248.696 687.5 243.696 687.5 DL 250.362 688.5
+250.362 698.5 DL 250.362 687.5 250.362 697.5 DL 266.36 688.5 266.36
+698.5 DL 255.362 698.5 250.362 698.5 DL 256.36 698.5 251.36 698.5 DL
+261.36 698.5 256.36 698.5 DL 266.36 698.5 261.36 698.5 DL 266.36 687.5
+266.36 697.5 DL 255.362 687.5 250.362 687.5 DL 256.36 687.5 251.36 687.5
+DL 261.36 687.5 256.36 687.5 DL 266.36 687.5 261.36 687.5 DL 268.026
+688.5 268.026 698.5 DL 268.026 687.5 268.026 697.5 DL 284.024 688.5
+284.024 698.5 DL 273.026 698.5 268.026 698.5 DL 274.024 698.5 269.024
+698.5 DL 279.024 698.5 274.024 698.5 DL 284.024 698.5 279.024 698.5 DL
+284.024 687.5 284.024 697.5 DL 273.026 687.5 268.026 687.5 DL 274.024
+687.5 269.024 687.5 DL 279.024 687.5 274.024 687.5 DL 284.024 687.5
+279.024 687.5 DL 285.69 688.5 285.69 698.5 DL 285.69 687.5 285.69 697.5
+DL 301.688 688.5 301.688 698.5 DL 290.69 698.5 285.69 698.5 DL 291.688
+698.5 286.688 698.5 DL 296.688 698.5 291.688 698.5 DL 301.688 698.5
+296.688 698.5 DL 301.688 687.5 301.688 697.5 DL 290.69 687.5 285.69
+687.5 DL 291.688 687.5 286.688 687.5 DL 296.688 687.5 291.688 687.5 DL
+301.688 687.5 296.688 687.5 DL F0 -14.614 12.944(?1 ; 2c)220.813 696 T
+(\(`)-2.999 E(`VT100 with Adv)-.74 E(anced V)-.25 E(ideo Option')-.6 E
+('\))-.74 E 197.37 704.5 197.37 714.5 DL 197.37 703.5 197.37 713.5 DL F4
+<ae>185 712 Q 213.368 704.5 213.368 714.5 DL 202.37 714.5 197.37 714.5
+DL 203.368 714.5 198.368 714.5 DL 208.368 714.5 203.368 714.5 DL 213.368
+714.5 208.368 714.5 DL 213.368 703.5 213.368 713.5 DL 202.37 703.5
+197.37 703.5 DL 203.368 703.5 198.368 703.5 DL 208.368 703.5 203.368
+703.5 DL 213.368 703.5 208.368 703.5 DL 215.034 704.5 215.034 714.5 DL
+215.034 703.5 215.034 713.5 DL F1(CSI)200.701 711 Q 231.032 704.5
+231.032 714.5 DL 220.034 714.5 215.034 714.5 DL 221.032 714.5 216.032
+714.5 DL 226.032 714.5 221.032 714.5 DL 231.032 714.5 226.032 714.5 DL
+231.032 703.5 231.032 713.5 DL 220.034 703.5 215.034 703.5 DL 221.032
+703.5 216.032 703.5 DL 226.032 703.5 221.032 703.5 DL 231.032 703.5
+226.032 703.5 DL 232.698 704.5 232.698 714.5 DL 232.698 703.5 232.698
+713.5 DL 248.696 704.5 248.696 714.5 DL 237.698 714.5 232.698 714.5 DL
+238.696 714.5 233.696 714.5 DL 243.696 714.5 238.696 714.5 DL 248.696
+714.5 243.696 714.5 DL 248.696 703.5 248.696 713.5 DL 237.698 703.5
+232.698 703.5 DL 238.696 703.5 233.696 703.5 DL 243.696 703.5 238.696
+703.5 DL 248.696 703.5 243.696 703.5 DL 250.362 704.5 250.362 714.5 DL
+250.362 703.5 250.362 713.5 DL 266.36 704.5 266.36 714.5 DL 255.362
+714.5 250.362 714.5 DL 256.36 714.5 251.36 714.5 DL 261.36 714.5 256.36
+714.5 DL 266.36 714.5 261.36 714.5 DL 266.36 703.5 266.36 713.5 DL
+255.362 703.5 250.362 703.5 DL 256.36 703.5 251.36 703.5 DL 261.36 703.5
+256.36 703.5 DL 266.36 703.5 261.36 703.5 DL 268.026 704.5 268.026 714.5
+DL 268.026 703.5 268.026 713.5 DL 284.024 704.5 284.024 714.5 DL 273.026
+714.5 268.026 714.5 DL 274.024 714.5 269.024 714.5 DL 279.024 714.5
+274.024 714.5 DL 284.024 714.5 279.024 714.5 DL 284.024 703.5 284.024
+713.5 DL 273.026 703.5 268.026 703.5 DL 274.024 703.5 269.024 703.5 DL
+279.024 703.5 274.024 703.5 DL 284.024 703.5 279.024 703.5 DL 285.69
+704.5 285.69 714.5 DL 285.69 703.5 285.69 713.5 DL 301.688 704.5 301.688
+714.5 DL 290.69 714.5 285.69 714.5 DL 291.688 714.5 286.688 714.5 DL
+296.688 714.5 291.688 714.5 DL 301.688 714.5 296.688 714.5 DL 301.688
+703.5 301.688 713.5 DL 290.69 703.5 285.69 703.5 DL 291.688 703.5
+286.688 703.5 DL 296.688 703.5 291.688 703.5 DL 301.688 703.5 296.688
+703.5 DL F0 -14.614 12.944(?1 ; 0c)220.813 712 T(\(`)-2.999 E
+(`VT101 with No Options')-.74 E('\))-.74 E 197.37 720.5 197.37 730.5 DL
+197.37 719.5 197.37 729.5 DL F4<ae>185 728 Q 213.368 720.5 213.368 730.5
+DL 202.37 730.5 197.37 730.5 DL 203.368 730.5 198.368 730.5 DL 208.368
+730.5 203.368 730.5 DL 213.368 730.5 208.368 730.5 DL 213.368 719.5
+213.368 729.5 DL 202.37 719.5 197.37 719.5 DL 203.368 719.5 198.368
+719.5 DL 208.368 719.5 203.368 719.5 DL 213.368 719.5 208.368 719.5 DL
+215.034 720.5 215.034 730.5 DL 215.034 719.5 215.034 729.5 DL F1(CSI)
+200.701 727 Q 231.032 720.5 231.032 730.5 DL 220.034 730.5 215.034 730.5
+DL 221.032 730.5 216.032 730.5 DL 226.032 730.5 221.032 730.5 DL 231.032
+730.5 226.032 730.5 DL 231.032 719.5 231.032 729.5 DL 220.034 719.5
+215.034 719.5 DL 221.032 719.5 216.032 719.5 DL 226.032 719.5 221.032
+719.5 DL 231.032 719.5 226.032 719.5 DL 232.698 720.5 232.698 730.5 DL
+232.698 719.5 232.698 729.5 DL 248.696 720.5 248.696 730.5 DL 237.698
+730.5 232.698 730.5 DL 238.696 730.5 233.696 730.5 DL 243.696 730.5
+238.696 730.5 DL 248.696 730.5 243.696 730.5 DL 248.696 719.5 248.696
+729.5 DL 237.698 719.5 232.698 719.5 DL 238.696 719.5 233.696 719.5 DL
+243.696 719.5 238.696 719.5 DL 248.696 719.5 243.696 719.5 DL 250.362
+720.5 250.362 730.5 DL 250.362 719.5 250.362 729.5 DL 266.36 720.5
+266.36 730.5 DL 255.362 730.5 250.362 730.5 DL 256.36 730.5 251.36 730.5
+DL 261.36 730.5 256.36 730.5 DL 266.36 730.5 261.36 730.5 DL 266.36
+719.5 266.36 729.5 DL 255.362 719.5 250.362 719.5 DL 256.36 719.5 251.36
+719.5 DL 261.36 719.5 256.36 719.5 DL 266.36 719.5 261.36 719.5 DL F0
+12.944(?6c)220.813 728 S(\(`)-2.999 E(`VT102')-.74 E('\))-.74 E(5)303.5
+772 Q EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E .4 LW 204.384 80.5 204.384 90.5 DL 204.384 79.5 204.384 89.5 DL
+/F1 10/Symbol SF<ae>185 88 Q 220.382 80.5 220.382 90.5 DL 209.384 90.5
+204.384 90.5 DL 210.382 90.5 205.382 90.5 DL 215.382 90.5 210.382 90.5
+DL 220.382 90.5 215.382 90.5 DL 220.382 79.5 220.382 89.5 DL 209.384
+79.5 204.384 79.5 DL 210.382 79.5 205.382 79.5 DL 215.382 79.5 210.382
+79.5 DL 220.382 79.5 215.382 79.5 DL 222.048 80.5 222.048 90.5 DL
+222.048 79.5 222.048 89.5 DL/F2 6/Times-Roman@0 SF(CSI)207.715 87 Q
+238.046 80.5 238.046 90.5 DL 227.048 90.5 222.048 90.5 DL 228.046 90.5
+223.046 90.5 DL 233.046 90.5 228.046 90.5 DL 238.046 90.5 233.046 90.5
+DL 238.046 79.5 238.046 89.5 DL 227.048 79.5 222.048 79.5 DL 228.046
+79.5 223.046 79.5 DL 233.046 79.5 228.046 79.5 DL 238.046 79.5 233.046
+79.5 DL 239.712 80.5 239.712 90.5 DL 239.712 79.5 239.712 89.5 DL 255.71
+80.5 255.71 90.5 DL 244.712 90.5 239.712 90.5 DL 245.71 90.5 240.71 90.5
+DL 250.71 90.5 245.71 90.5 DL 255.71 90.5 250.71 90.5 DL 255.71 79.5
+255.71 89.5 DL 244.712 79.5 239.712 79.5 DL 245.71 79.5 240.71 79.5 DL
+250.71 79.5 245.71 79.5 DL 255.71 79.5 250.71 79.5 DL 257.376 80.5
+257.376 90.5 DL 257.376 79.5 257.376 89.5 DL F0 12.944(?6)227.827 88 S
+273.374 80.5 273.374 90.5 DL 262.376 90.5 257.376 90.5 DL 263.374 90.5
+258.374 90.5 DL 268.374 90.5 263.374 90.5 DL 273.374 90.5 268.374 90.5
+DL 273.374 79.5 273.374 89.5 DL 262.376 79.5 257.376 79.5 DL 263.374
+79.5 258.374 79.5 DL 268.374 79.5 263.374 79.5 DL 273.374 79.5 268.374
+79.5 DL 275.04 80.5 275.04 90.5 DL 275.04 79.5 275.04 89.5 DL 291.038
+80.5 291.038 90.5 DL 280.04 90.5 275.04 90.5 DL 281.038 90.5 276.038
+90.5 DL 286.038 90.5 281.038 90.5 DL 291.038 90.5 286.038 90.5 DL
+291.038 79.5 291.038 89.5 DL 280.04 79.5 275.04 79.5 DL 281.038 79.5
+276.038 79.5 DL 286.038 79.5 281.038 79.5 DL 291.038 79.5 286.038 79.5
+DL 292.704 80.5 292.704 90.5 DL 292.704 79.5 292.704 89.5 DL 308.702
+80.5 308.702 90.5 DL 297.704 90.5 292.704 90.5 DL 298.702 90.5 293.702
+90.5 DL 303.702 90.5 298.702 90.5 DL 308.702 90.5 303.702 90.5 DL
+308.702 79.5 308.702 89.5 DL 297.704 79.5 292.704 79.5 DL 298.702 79.5
+293.702 79.5 DL 303.702 79.5 298.702 79.5 DL 308.702 79.5 303.702 79.5
+DL 310.368 80.5 310.368 90.5 DL 310.368 79.5 310.368 89.5 DL 326.366
+80.5 326.366 90.5 DL 315.368 90.5 310.368 90.5 DL 316.366 90.5 311.366
+90.5 DL 321.366 90.5 316.366 90.5 DL 326.366 90.5 321.366 90.5 DL
+326.366 79.5 326.366 89.5 DL 315.368 79.5 310.368 79.5 DL 316.366 79.5
+311.366 79.5 DL 321.366 79.5 316.366 79.5 DL 326.366 79.5 321.366 79.5
+DL 328.032 80.5 328.032 90.5 DL 328.032 79.5 328.032 89.5 DL 344.03 80.5
+344.03 90.5 DL 333.032 90.5 328.032 90.5 DL 334.03 90.5 329.03 90.5 DL
+339.03 90.5 334.03 90.5 DL 344.03 90.5 339.03 90.5 DL 344.03 79.5 344.03
+89.5 DL 333.032 79.5 328.032 79.5 DL 334.03 79.5 329.03 79.5 DL 339.03
+79.5 334.03 79.5 DL 344.03 79.5 339.03 79.5 DL 345.696 80.5 345.696 90.5
+DL 345.696 79.5 345.696 89.5 DL 361.694 80.5 361.694 90.5 DL 350.696
+90.5 345.696 90.5 DL 351.694 90.5 346.694 90.5 DL 356.694 90.5 351.694
+90.5 DL 361.694 90.5 356.694 90.5 DL 361.694 79.5 361.694 89.5 DL
+350.696 79.5 345.696 79.5 DL 351.694 79.5 346.694 79.5 DL 356.694 79.5
+351.694 79.5 DL 361.694 79.5 356.694 79.5 DL 363.36 80.5 363.36 90.5 DL
+363.36 79.5 363.36 89.5 DL 379.358 80.5 379.358 90.5 DL 368.36 90.5
+363.36 90.5 DL 369.358 90.5 364.358 90.5 DL 374.358 90.5 369.358 90.5 DL
+379.358 90.5 374.358 90.5 DL 379.358 79.5 379.358 89.5 DL 368.36 79.5
+363.36 79.5 DL 369.358 79.5 364.358 79.5 DL 374.358 79.5 369.358 79.5 DL
+379.358 79.5 374.358 79.5 DL 381.024 80.5 381.024 90.5 DL 381.024 79.5
+381.024 89.5 DL 397.022 80.5 397.022 90.5 DL 386.024 90.5 381.024 90.5
+DL 387.022 90.5 382.022 90.5 DL 392.022 90.5 387.022 90.5 DL 397.022
+90.5 392.022 90.5 DL 397.022 79.5 397.022 89.5 DL 386.024 79.5 381.024
+79.5 DL 387.022 79.5 382.022 79.5 DL 392.022 79.5 387.022 79.5 DL
+397.022 79.5 392.022 79.5 DL 398.688 80.5 398.688 90.5 DL 398.688 79.5
+398.688 89.5 DL 414.686 80.5 414.686 90.5 DL 403.688 90.5 398.688 90.5
+DL 404.686 90.5 399.686 90.5 DL 409.686 90.5 404.686 90.5 DL 414.686
+90.5 409.686 90.5 DL 414.686 79.5 414.686 89.5 DL 403.688 79.5 398.688
+79.5 DL 404.686 79.5 399.686 79.5 DL 409.686 79.5 404.686 79.5 DL
+414.686 79.5 409.686 79.5 DL 416.352 80.5 416.352 90.5 DL 416.352 79.5
+416.352 89.5 DL 432.35 80.5 432.35 90.5 DL 421.352 90.5 416.352 90.5 DL
+422.35 90.5 417.35 90.5 DL 427.35 90.5 422.35 90.5 DL 432.35 90.5 427.35
+90.5 DL 432.35 79.5 432.35 89.5 DL 421.352 79.5 416.352 79.5 DL 422.35
+79.5 417.35 79.5 DL 427.35 79.5 422.35 79.5 DL 432.35 79.5 427.35 79.5
+DL 434.016 80.5 434.016 90.5 DL 434.016 79.5 434.016 89.5 DL 450.014
+80.5 450.014 90.5 DL 439.016 90.5 434.016 90.5 DL 440.014 90.5 435.014
+90.5 DL 445.014 90.5 440.014 90.5 DL 450.014 90.5 445.014 90.5 DL
+450.014 79.5 450.014 89.5 DL 439.016 79.5 434.016 79.5 DL 440.014 79.5
+435.014 79.5 DL 445.014 79.5 440.014 79.5 DL 450.014 79.5 445.014 79.5
+DL 451.68 80.5 451.68 90.5 DL 451.68 79.5 451.68 89.5 DL 467.678 80.5
+467.678 90.5 DL 456.68 90.5 451.68 90.5 DL 457.678 90.5 452.678 90.5 DL
+462.678 90.5 457.678 90.5 DL 467.678 90.5 462.678 90.5 DL 467.678 79.5
+467.678 89.5 DL 456.68 79.5 451.68 79.5 DL 457.678 79.5 452.678 79.5 DL
+462.678 79.5 457.678 79.5 DL 467.678 79.5 462.678 79.5 DL 469.344 80.5
+469.344 90.5 DL 469.344 79.5 469.344 89.5 DL 485.342 80.5 485.342 90.5
+DL 474.344 90.5 469.344 90.5 DL 475.342 90.5 470.342 90.5 DL 480.342
+90.5 475.342 90.5 DL 485.342 90.5 480.342 90.5 DL 485.342 79.5 485.342
+89.5 DL 474.344 79.5 469.344 79.5 DL 475.342 79.5 470.342 79.5 DL
+480.342 79.5 475.342 79.5 DL 485.342 79.5 480.342 79.5 DL 487.008 80.5
+487.008 90.5 DL 487.008 79.5 487.008 89.5 DL 13.774(0;1;2;6;8;9;1)
+262.875 88 S 503.006 80.5 503.006 90.5 DL 492.008 90.5 487.008 90.5 DL
+493.006 90.5 488.006 90.5 DL 498.006 90.5 493.006 90.5 DL 503.006 90.5
+498.006 90.5 DL 503.006 79.5 503.006 89.5 DL 492.008 79.5 487.008 79.5
+DL 493.006 79.5 488.006 79.5 DL 498.006 79.5 493.006 79.5 DL 503.006
+79.5 498.006 79.5 DL 504.672 80.5 504.672 90.5 DL 504.672 79.5 504.672
+89.5 DL 520.67 80.5 520.67 90.5 DL 509.672 90.5 504.672 90.5 DL 510.67
+90.5 505.67 90.5 DL 515.67 90.5 510.67 90.5 DL 520.67 90.5 515.67 90.5
+DL 520.67 79.5 520.67 89.5 DL 509.672 79.5 504.672 79.5 DL 510.67 79.5
+505.67 79.5 DL 515.67 79.5 510.67 79.5 DL 520.67 79.5 515.67 79.5 DL
+522.336 80.5 522.336 90.5 DL 522.336 79.5 522.336 89.5 DL 538.334 80.5
+538.334 90.5 DL 527.336 90.5 522.336 90.5 DL 528.334 90.5 523.334 90.5
+DL 533.334 90.5 528.334 90.5 DL 538.334 90.5 533.334 90.5 DL 538.334
+79.5 538.334 89.5 DL 527.336 79.5 522.336 79.5 DL 528.334 79.5 523.334
+79.5 DL 533.334 79.5 528.334 79.5 DL 538.334 79.5 533.334 79.5 DL
+-15.994 13.774(5; c)492.507 88 T(\(`)180 104 Q(`VT220')-.74 E('\))-.74 E
+2.313(The VT100-style response parameters do not mean an)180 120 R 2.313
+(ything by themselv)-.15 F 4.813(es. VT220)-.15 F
+(parameters do, telling the host what features the terminal supports:)
+180 136 Q 197.37 144.5 197.37 154.5 DL 197.37 143.5 197.37 153.5 DL F1
+<ae>185 152 Q 213.368 144.5 213.368 154.5 DL 202.37 154.5 197.37 154.5
+DL 203.368 154.5 198.368 154.5 DL 208.368 154.5 203.368 154.5 DL 213.368
+154.5 208.368 154.5 DL 213.368 143.5 213.368 153.5 DL 202.37 143.5
+197.37 143.5 DL 203.368 143.5 198.368 143.5 DL 208.368 143.5 203.368
+143.5 DL 213.368 143.5 208.368 143.5 DL F0 9.665(11)202.869 152 S
+(32-columns)-9.665 E 197.37 160.5 197.37 170.5 DL 197.37 159.5 197.37
+169.5 DL F1<ae>185 168 Q 213.368 160.5 213.368 170.5 DL 202.37 170.5
+197.37 170.5 DL 203.368 170.5 198.368 170.5 DL 208.368 170.5 203.368
+170.5 DL 213.368 170.5 208.368 170.5 DL 213.368 159.5 213.368 169.5 DL
+202.37 159.5 197.37 159.5 DL 203.368 159.5 198.368 159.5 DL 208.368
+159.5 203.368 159.5 DL 213.368 159.5 208.368 159.5 DL F0 9.665(2P)
+202.869 168 S(rinter)-9.665 E 197.37 176.5 197.37 186.5 DL 197.37 175.5
+197.37 185.5 DL F1<ae>185 184 Q 213.368 176.5 213.368 186.5 DL 202.37
+186.5 197.37 186.5 DL 203.368 186.5 198.368 186.5 DL 208.368 186.5
+203.368 186.5 DL 213.368 186.5 208.368 186.5 DL 213.368 175.5 213.368
+185.5 DL 202.37 175.5 197.37 175.5 DL 203.368 175.5 198.368 175.5 DL
+208.368 175.5 203.368 175.5 DL 213.368 175.5 208.368 175.5 DL F0 9.665
+(6S)202.869 184 S(electi)-9.665 E .3 -.15(ve e)-.25 H(rase).15 E 197.37
+192.5 197.37 202.5 DL 197.37 191.5 197.37 201.5 DL F1<ae>185 200 Q
+213.368 192.5 213.368 202.5 DL 202.37 202.5 197.37 202.5 DL 203.368
+202.5 198.368 202.5 DL 208.368 202.5 203.368 202.5 DL 213.368 202.5
+208.368 202.5 DL 213.368 191.5 213.368 201.5 DL 202.37 191.5 197.37
+191.5 DL 203.368 191.5 198.368 191.5 DL 208.368 191.5 203.368 191.5 DL
+213.368 191.5 208.368 191.5 DL F0 9.665(8U)202.869 200 S(ser)-9.665 E
+(-de\214ned k)-.2 E -.15(ey)-.1 G(s).15 E 197.37 208.5 197.37 218.5 DL
+197.37 207.5 197.37 217.5 DL F1<ae>185 216 Q 213.368 208.5 213.368 218.5
+DL 202.37 218.5 197.37 218.5 DL 203.368 218.5 198.368 218.5 DL 208.368
+218.5 203.368 218.5 DL 213.368 218.5 208.368 218.5 DL 213.368 207.5
+213.368 217.5 DL 202.37 207.5 197.37 207.5 DL 203.368 207.5 198.368
+207.5 DL 208.368 207.5 203.368 207.5 DL 213.368 207.5 208.368 207.5 DL
+F0 9.665(9N)202.869 216 S(ational replacement character sets)-9.665 E
+197.37 224.5 197.37 234.5 DL 197.37 223.5 197.37 233.5 DL F1<ae>185 232
+Q 213.368 224.5 213.368 234.5 DL 202.37 234.5 197.37 234.5 DL 203.368
+234.5 198.368 234.5 DL 208.368 234.5 203.368 234.5 DL 213.368 234.5
+208.368 234.5 DL 213.368 223.5 213.368 233.5 DL 202.37 223.5 197.37
+223.5 DL 203.368 223.5 198.368 223.5 DL 208.368 223.5 203.368 223.5 DL
+213.368 223.5 208.368 223.5 DL 215.034 224.5 215.034 234.5 DL 215.034
+223.5 215.034 233.5 DL 231.032 224.5 231.032 234.5 DL 220.034 234.5
+215.034 234.5 DL 221.032 234.5 216.032 234.5 DL 226.032 234.5 221.032
+234.5 DL 231.032 234.5 226.032 234.5 DL 231.032 223.5 231.032 233.5 DL
+220.034 223.5 215.034 223.5 DL 221.032 223.5 216.032 223.5 DL 226.032
+223.5 221.032 223.5 DL 231.032 223.5 226.032 223.5 DL F0 12.664(15)
+202.869 232 S -.7(Te)-2.999 G(chnical characters).7 E 72 240.5 72 250.5
+DL 72 239.5 72 249.5 DL 87.998 240.5 87.998 250.5 DL 77 250.5 72 250.5
+DL 77.998 250.5 72.998 250.5 DL 82.998 250.5 77.998 250.5 DL 87.998
+250.5 82.998 250.5 DL 87.998 239.5 87.998 249.5 DL 77 239.5 72 239.5 DL
+77.998 239.5 72.998 239.5 DL 82.998 239.5 77.998 239.5 DL 87.998 239.5
+82.998 239.5 DL 89.664 240.5 89.664 250.5 DL 89.664 239.5 89.664 249.5
+DL F2(CSI)75.331 247 Q 105.662 240.5 105.662 250.5 DL 94.664 250.5
+89.664 250.5 DL 95.662 250.5 90.662 250.5 DL 100.662 250.5 95.662 250.5
+DL 105.662 250.5 100.662 250.5 DL 105.662 239.5 105.662 249.5 DL 94.664
+239.5 89.664 239.5 DL 95.662 239.5 90.662 239.5 DL 100.662 239.5 95.662
+239.5 DL 105.662 239.5 100.662 239.5 DL F0(>)94.843 248 Q/F3 10
+/Times-Italic@0 SF(P)6.845 E 116.216 240.5 116.216 250.5 DL 116.216
+239.5 116.216 249.5 DL/F4 8/Times-Italic@0 SF(s)111.438 251 Q 132.214
+240.5 132.214 250.5 DL 121.216 250.5 116.216 250.5 DL 122.214 250.5
+117.214 250.5 DL 127.214 250.5 122.214 250.5 DL 132.214 250.5 127.214
+250.5 DL 132.214 239.5 132.214 249.5 DL 121.216 239.5 116.216 239.5 DL
+122.214 239.5 117.214 239.5 DL 127.214 239.5 122.214 239.5 DL 132.214
+239.5 127.214 239.5 DL F0 53.565(cS)121.995 248 S(end De)-53.565 E
+(vice Attrib)-.25 E(utes \(Secondary D)-.2 E(A\))-.4 E F3(P)185 264 Q F4
+(s)-2 3 M 207.078 256.5 207.078 266.5 DL 207.078 255.5 207.078 265.5 DL
+223.076 256.5 223.076 266.5 DL 212.078 266.5 207.078 266.5 DL 213.076
+266.5 208.076 266.5 DL 218.076 266.5 213.076 266.5 DL 223.076 266.5
+218.076 266.5 DL 223.076 255.5 223.076 265.5 DL 212.078 255.5 207.078
+255.5 DL 213.076 255.5 208.076 255.5 DL 218.076 255.5 213.076 255.5 DL
+223.076 255.5 218.076 255.5 DL F0 10.107(=0)196.83 264 S -7.107 4.608
+(,1 o)-2.942 H 4.609(ro)-4.608 G(mitted)-4.609 E F1<ae>4.609 E F0 2.109
+(request the terminal')4.609 F 4.609(si)-.55 G 2.109
+(denti\214cation code.)-4.609 F 2.109(The response)7.109 F .629
+(depends on the)180 280 R/F5 10/Times-Bold@0 SF(decT)3.129 E(erminalId)
+-.92 E F0 .629(resource setting.)3.129 F .628
+(It should apply only to VT220 and up,)5.629 F -.2(bu)180 296 S(t).2 E
+F3(xterm)2.5 E F0 -.15(ex)2.5 G(tends this to VT100.).15 E 197.37 304.5
+197.37 314.5 DL 197.37 303.5 197.37 313.5 DL F1<ae>185 312 Q 213.368
+304.5 213.368 314.5 DL 202.37 314.5 197.37 314.5 DL 203.368 314.5
+198.368 314.5 DL 208.368 314.5 203.368 314.5 DL 213.368 314.5 208.368
+314.5 DL 213.368 303.5 213.368 313.5 DL 202.37 303.5 197.37 303.5 DL
+203.368 303.5 198.368 303.5 DL 208.368 303.5 203.368 303.5 DL 213.368
+303.5 208.368 303.5 DL F2(CSI)200.701 311 Q F3(P)4.997 1 M 224.81 304.5
+224.81 314.5 DL 224.81 303.5 224.81 313.5 DL F4(p)219.144 315 Q 240.808
+304.5 240.808 314.5 DL 229.81 314.5 224.81 314.5 DL 230.808 314.5
+225.808 314.5 DL 235.808 314.5 230.808 314.5 DL 240.808 314.5 235.808
+314.5 DL 240.808 303.5 240.808 313.5 DL 229.81 303.5 224.81 303.5 DL
+230.808 303.5 225.808 303.5 DL 235.808 303.5 230.808 303.5 DL 240.808
+303.5 235.808 303.5 DL F0(;)231.419 312 Q F3(P)8.275 E 251.802 304.5
+251.802 314.5 DL 251.802 303.5 251.802 313.5 DL F4(v)246.584 315 Q 267.8
+304.5 267.8 314.5 DL 256.802 314.5 251.802 314.5 DL 257.8 314.5 252.8
+314.5 DL 262.8 314.5 257.8 314.5 DL 267.8 314.5 262.8 314.5 DL 267.8
+303.5 267.8 313.5 DL 256.802 303.5 251.802 303.5 DL 257.8 303.5 252.8
+303.5 DL 262.8 303.5 257.8 303.5 DL 267.8 303.5 262.8 303.5 DL F0(;)
+258.411 312 Q F3(P)8.275 E 278.794 304.5 278.794 314.5 DL 278.794 303.5
+278.794 313.5 DL F4(c)273.576 315 Q 294.792 304.5 294.792 314.5 DL
+283.794 314.5 278.794 314.5 DL 284.792 314.5 279.792 314.5 DL 289.792
+314.5 284.792 314.5 DL 294.792 314.5 289.792 314.5 DL 294.792 303.5
+294.792 313.5 DL 283.794 303.5 278.794 303.5 DL 284.792 303.5 279.792
+303.5 DL 289.792 303.5 284.792 303.5 DL 294.792 303.5 289.792 303.5 DL
+F0(c)284.573 312 Q(where)180 328 Q F3(P)2.5 E F4(p)-2 3 M F0
+(denotes the terminal type)2.5 -3 M 197.37 336.5 197.37 346.5 DL 197.37
+335.5 197.37 345.5 DL F1<ae>185 344 Q 213.368 336.5 213.368 346.5 DL
+202.37 346.5 197.37 346.5 DL 203.368 346.5 198.368 346.5 DL 208.368
+346.5 203.368 346.5 DL 213.368 346.5 208.368 346.5 DL 213.368 335.5
+213.368 345.5 DL 202.37 335.5 197.37 335.5 DL 203.368 335.5 198.368
+335.5 DL 208.368 335.5 203.368 335.5 DL 213.368 335.5 208.368 335.5 DL
+F0 9.665(0\()202.869 344 S -.74(``)-9.665 G(VT100').74 E('\))-.74 E
+197.37 352.5 197.37 362.5 DL 197.37 351.5 197.37 361.5 DL F1<ae>185 360
+Q 213.368 352.5 213.368 362.5 DL 202.37 362.5 197.37 362.5 DL 203.368
+362.5 198.368 362.5 DL 208.368 362.5 203.368 362.5 DL 213.368 362.5
+208.368 362.5 DL 213.368 351.5 213.368 361.5 DL 202.37 351.5 197.37
+351.5 DL 203.368 351.5 198.368 351.5 DL 208.368 351.5 203.368 351.5 DL
+213.368 351.5 208.368 351.5 DL F0 9.665(1\()202.869 360 S -.74(``)-9.665
+G(VT220').74 E('\))-.74 E(and)180 376 Q F3(P)2.869 E F4(v)-2 3 M F0 .369
+(is the \214rmw)2.869 -3 N .369(are v)-.1 F .369(ersion \(for)-.15 F F3
+(xterm)2.869 E F0 2.869(,t)C .369(his is the XFree86 patch number)-2.869
+F 2.87(,s)-.4 G .37(tarting with)-2.87 F 2.507(95\). In)180 392 R 2.507
+(aD)2.507 G .007(EC terminal,)-2.507 F F3(P)2.506 E F4(c)-2 3 M F0 .006
+(indicates the R)2.506 -3 N .006(OM cartridge re)-.4 F .006
+(gistration number and is al)-.15 F -.1(wa)-.1 G(ys).1 E(zero.)180 408 Q
+72 416.5 72 426.5 DL 72 415.5 72 425.5 DL 87.998 416.5 87.998 426.5 DL
+77 426.5 72 426.5 DL 77.998 426.5 72.998 426.5 DL 82.998 426.5 77.998
+426.5 DL 87.998 426.5 82.998 426.5 DL 87.998 415.5 87.998 425.5 DL 77
+415.5 72 415.5 DL 77.998 415.5 72.998 415.5 DL 82.998 415.5 77.998 415.5
+DL 87.998 415.5 82.998 415.5 DL F2(CSI)75.331 423 Q F3(P)4.997 1 M
+101.216 416.5 101.216 426.5 DL 101.216 415.5 101.216 425.5 DL F4(m)
+93.774 427 Q 117.214 416.5 117.214 426.5 DL 106.216 426.5 101.216 426.5
+DL 107.214 426.5 102.214 426.5 DL 112.214 426.5 107.214 426.5 DL 117.214
+426.5 112.214 426.5 DL 117.214 415.5 117.214 425.5 DL 106.216 415.5
+101.216 415.5 DL 107.214 415.5 102.214 415.5 DL 112.214 415.5 107.214
+415.5 DL 117.214 415.5 112.214 415.5 DL F0 68.285(dL)106.715 424 S
+(ine Position Absolute)-68.285 E([ro)5 E(w] \(def)-.25 E
+(ault = [1,column]\) \(VP)-.1 E(A\))-.92 E 72 432.5 72 442.5 DL 72 431.5
+72 441.5 DL 87.998 432.5 87.998 442.5 DL 77 442.5 72 442.5 DL 77.998
+442.5 72.998 442.5 DL 82.998 442.5 77.998 442.5 DL 87.998 442.5 82.998
+442.5 DL 87.998 431.5 87.998 441.5 DL 77 431.5 72 431.5 DL 77.998 431.5
+72.998 431.5 DL 82.998 431.5 77.998 431.5 DL 87.998 431.5 82.998 431.5
+DL F2(CSI)75.331 439 Q F3(P)4.997 1 M 98.552 432.5 98.552 442.5 DL
+98.552 431.5 98.552 441.5 DL F4(s)93.774 443 Q 114.55 432.5 114.55 442.5
+DL 103.552 442.5 98.552 442.5 DL 104.55 442.5 99.55 442.5 DL 109.55
+442.5 104.55 442.5 DL 114.55 442.5 109.55 442.5 DL 114.55 431.5 114.55
+441.5 DL 103.552 431.5 98.552 431.5 DL 104.55 431.5 99.55 431.5 DL
+109.55 431.5 104.55 431.5 DL 114.55 431.5 109.55 431.5 DL F0(;)105.161
+440 Q F3(P)8.275 E 125.104 432.5 125.104 442.5 DL 125.104 431.5 125.104
+441.5 DL F4(s)120.326 443 Q 141.102 432.5 141.102 442.5 DL 130.104 442.5
+125.104 442.5 DL 131.102 442.5 126.102 442.5 DL 136.102 442.5 131.102
+442.5 DL 141.102 442.5 136.102 442.5 DL 141.102 431.5 141.102 441.5 DL
+130.104 431.5 125.104 431.5 DL 131.102 431.5 126.102 431.5 DL 136.102
+431.5 131.102 431.5 DL 141.102 431.5 136.102 431.5 DL F0 45.232(fH)
+131.438 440 S(orizontal and V)-45.232 E(ertical Position [ro)-1.11 E
+(w;column] \(def)-.25 E(ault = [1,1]\) \(HVP\))-.1 E 72 448.5 72 458.5
+DL 72 447.5 72 457.5 DL 87.998 448.5 87.998 458.5 DL 77 458.5 72 458.5
+DL 77.998 458.5 72.998 458.5 DL 82.998 458.5 77.998 458.5 DL 87.998
+458.5 82.998 458.5 DL 87.998 447.5 87.998 457.5 DL 77 447.5 72 447.5 DL
+77.998 447.5 72.998 447.5 DL 82.998 447.5 77.998 447.5 DL 87.998 447.5
+82.998 447.5 DL F2(CSI)75.331 455 Q F3(P)4.997 1 M 98.552 448.5 98.552
+458.5 DL 98.552 447.5 98.552 457.5 DL F4(s)93.774 459 Q 114.55 448.5
+114.55 458.5 DL 103.552 458.5 98.552 458.5 DL 104.55 458.5 99.55 458.5
+DL 109.55 458.5 104.55 458.5 DL 114.55 458.5 109.55 458.5 DL 114.55
+447.5 114.55 457.5 DL 103.552 447.5 98.552 447.5 DL 104.55 447.5 99.55
+447.5 DL 109.55 447.5 104.55 447.5 DL 114.55 447.5 109.55 447.5 DL F0
+70.949(gT)104.051 456 S(ab Clear \(TBC\))-71.749 E F3(P)185 472 Q F4(s)
+-2 3 M 202.862 464.5 202.862 474.5 DL 202.862 463.5 202.862 473.5 DL
+218.86 464.5 218.86 474.5 DL 207.862 474.5 202.862 474.5 DL 208.86 474.5
+203.86 474.5 DL 213.86 474.5 208.86 474.5 DL 218.86 474.5 213.86 474.5
+DL 218.86 463.5 218.86 473.5 DL 207.862 463.5 202.862 463.5 DL 208.86
+463.5 203.86 463.5 DL 213.86 463.5 208.86 463.5 DL 218.86 463.5 213.86
+463.5 DL F0 7.999(=0)194.722 472 S F1<ae>1.666 E F0
+(Clear Current Column \(def)2.5 E(ault\))-.1 E F3(P)185 488 Q F4(s)-2 3
+M 202.862 480.5 202.862 490.5 DL 202.862 479.5 202.862 489.5 DL 218.86
+480.5 218.86 490.5 DL 207.862 490.5 202.862 490.5 DL 208.86 490.5 203.86
+490.5 DL 213.86 490.5 208.86 490.5 DL 218.86 490.5 213.86 490.5 DL
+218.86 479.5 218.86 489.5 DL 207.862 479.5 202.862 479.5 DL 208.86 479.5
+203.86 479.5 DL 213.86 479.5 208.86 479.5 DL 218.86 479.5 213.86 479.5
+DL F0 7.999(=3)194.722 488 S F1<ae>1.666 E F0(Clear All)2.5 E 72 496.5
+72 506.5 DL 72 495.5 72 505.5 DL 87.998 496.5 87.998 506.5 DL 77 506.5
+72 506.5 DL 77.998 506.5 72.998 506.5 DL 82.998 506.5 77.998 506.5 DL
+87.998 506.5 82.998 506.5 DL 87.998 495.5 87.998 505.5 DL 77 495.5 72
+495.5 DL 77.998 495.5 72.998 495.5 DL 82.998 495.5 77.998 495.5 DL
+87.998 495.5 82.998 495.5 DL F2(CSI)75.331 503 Q F3(P)4.997 1 M 101.216
+496.5 101.216 506.5 DL 101.216 495.5 101.216 505.5 DL F4(m)93.774 507 Q
+117.214 496.5 117.214 506.5 DL 106.216 506.5 101.216 506.5 DL 107.214
+506.5 102.214 506.5 DL 112.214 506.5 107.214 506.5 DL 117.214 506.5
+112.214 506.5 DL 117.214 495.5 117.214 505.5 DL 106.216 495.5 101.216
+495.5 DL 107.214 495.5 102.214 495.5 DL 112.214 495.5 107.214 495.5 DL
+117.214 495.5 112.214 495.5 DL F0 68.285(hS)106.715 504 S
+(et Mode \(SM\))-68.285 E F3(P)185 520 Q F4(s)-2 3 M 202.862 512.5
+202.862 522.5 DL 202.862 511.5 202.862 521.5 DL 218.86 512.5 218.86
+522.5 DL 207.862 522.5 202.862 522.5 DL 208.86 522.5 203.86 522.5 DL
+213.86 522.5 208.86 522.5 DL 218.86 522.5 213.86 522.5 DL 218.86 511.5
+218.86 521.5 DL 207.862 511.5 202.862 511.5 DL 208.86 511.5 203.86 511.5
+DL 213.86 511.5 208.86 511.5 DL 218.86 511.5 213.86 511.5 DL F0 7.999
+(=2)194.722 520 S F1<ae>1.666 E F0 -2.15 -.25(Ke y)2.5 H
+(board Action Mode \(AM\)).25 E F3(P)185 536 Q F4(s)-2 3 M 202.862 528.5
+202.862 538.5 DL 202.862 527.5 202.862 537.5 DL 218.86 528.5 218.86
+538.5 DL 207.862 538.5 202.862 538.5 DL 208.86 538.5 203.86 538.5 DL
+213.86 538.5 208.86 538.5 DL 218.86 538.5 213.86 538.5 DL 218.86 527.5
+218.86 537.5 DL 207.862 527.5 202.862 527.5 DL 208.86 527.5 203.86 527.5
+DL 213.86 527.5 208.86 527.5 DL 218.86 527.5 213.86 527.5 DL F0 7.999
+(=4)194.722 536 S F1<ae>1.666 E F0(Insert Mode \(IRM\))2.5 E F3(P)185
+552 Q F4(s)-2 3 M 202.862 544.5 202.862 554.5 DL 202.862 543.5 202.862
+553.5 DL 218.86 544.5 218.86 554.5 DL 207.862 554.5 202.862 554.5 DL
+208.86 554.5 203.86 554.5 DL 213.86 554.5 208.86 554.5 DL 218.86 554.5
+213.86 554.5 DL 218.86 543.5 218.86 553.5 DL 207.862 543.5 202.862 543.5
+DL 208.86 543.5 203.86 543.5 DL 213.86 543.5 208.86 543.5 DL 218.86
+543.5 213.86 543.5 DL 220.526 544.5 220.526 554.5 DL 220.526 543.5
+220.526 553.5 DL 236.524 544.5 236.524 554.5 DL 225.526 554.5 220.526
+554.5 DL 226.524 554.5 221.524 554.5 DL 231.524 554.5 226.524 554.5 DL
+236.524 554.5 231.524 554.5 DL 236.524 543.5 236.524 553.5 DL 225.526
+543.5 220.526 543.5 DL 226.524 543.5 221.524 543.5 DL 231.524 543.5
+226.524 543.5 DL 236.524 543.5 231.524 543.5 DL F0 -5.834 7.999(=1 2)
+194.722 552 T F1<ae>1.666 E F0(Send/recei)2.5 E .3 -.15(ve \()-.25 H
+(SRM\)).15 E F3(P)185 568 Q F4(s)-2 3 M 202.862 560.5 202.862 570.5 DL
+202.862 559.5 202.862 569.5 DL 218.86 560.5 218.86 570.5 DL 207.862
+570.5 202.862 570.5 DL 208.86 570.5 203.86 570.5 DL 213.86 570.5 208.86
+570.5 DL 218.86 570.5 213.86 570.5 DL 218.86 559.5 218.86 569.5 DL
+207.862 559.5 202.862 559.5 DL 208.86 559.5 203.86 559.5 DL 213.86 559.5
+208.86 559.5 DL 218.86 559.5 213.86 559.5 DL 220.526 560.5 220.526 570.5
+DL 220.526 559.5 220.526 569.5 DL 236.524 560.5 236.524 570.5 DL 225.526
+570.5 220.526 570.5 DL 226.524 570.5 221.524 570.5 DL 231.524 570.5
+226.524 570.5 DL 236.524 570.5 231.524 570.5 DL 236.524 559.5 236.524
+569.5 DL 225.526 559.5 220.526 559.5 DL 226.524 559.5 221.524 559.5 DL
+231.524 559.5 226.524 559.5 DL 236.524 559.5 231.524 559.5 DL F0 -5.834
+7.999(=2 0)194.722 568 T F1<ae>1.666 E F0(Automatic Ne)2.5 E
+(wline \(LNM\))-.25 E 72 576.5 72 586.5 DL 72 575.5 72 585.5 DL 87.998
+576.5 87.998 586.5 DL 77 586.5 72 586.5 DL 77.998 586.5 72.998 586.5 DL
+82.998 586.5 77.998 586.5 DL 87.998 586.5 82.998 586.5 DL 87.998 575.5
+87.998 585.5 DL 77 575.5 72 575.5 DL 77.998 575.5 72.998 575.5 DL 82.998
+575.5 77.998 575.5 DL 87.998 575.5 82.998 575.5 DL 89.664 576.5 89.664
+586.5 DL 89.664 575.5 89.664 585.5 DL F2(CSI)75.331 583 Q 105.662 576.5
+105.662 586.5 DL 94.664 586.5 89.664 586.5 DL 95.662 586.5 90.662 586.5
+DL 100.662 586.5 95.662 586.5 DL 105.662 586.5 100.662 586.5 DL 105.662
+575.5 105.662 585.5 DL 94.664 575.5 89.664 575.5 DL 95.662 575.5 90.662
+575.5 DL 100.662 575.5 95.662 575.5 DL 105.662 575.5 100.662 575.5 DL F0
+(?)95.443 584 Q F3(P)7.445 E 118.88 576.5 118.88 586.5 DL 118.88 575.5
+118.88 585.5 DL F4(m)111.438 587 Q 134.878 576.5 134.878 586.5 DL 123.88
+586.5 118.88 586.5 DL 124.878 586.5 119.878 586.5 DL 129.878 586.5
+124.878 586.5 DL 134.878 586.5 129.878 586.5 DL 134.878 575.5 134.878
+585.5 DL 123.88 575.5 118.88 575.5 DL 124.878 575.5 119.878 575.5 DL
+129.878 575.5 124.878 575.5 DL 134.878 575.5 129.878 575.5 DL F0 50.621
+(hD)124.379 584 S(EC Pri)-50.621 E -.25(va)-.25 G
+(te Mode Set \(DECSET\)).25 E F3(P)185 600 Q F4(s)-2 3 M 202.862 592.5
+202.862 602.5 DL 202.862 591.5 202.862 601.5 DL 218.86 592.5 218.86
+602.5 DL 207.862 602.5 202.862 602.5 DL 208.86 602.5 203.86 602.5 DL
+213.86 602.5 208.86 602.5 DL 218.86 602.5 213.86 602.5 DL 218.86 591.5
+218.86 601.5 DL 207.862 591.5 202.862 591.5 DL 208.86 591.5 203.86 591.5
+DL 213.86 591.5 208.86 591.5 DL 218.86 591.5 213.86 591.5 DL F0 7.999
+(=1)194.722 600 S F1<ae>1.666 E F0(Application Cursor K)2.5 E -.15(ey)
+-.25 G 2.5(s\().15 G(DECCKM\))-2.5 E F3(P)185 616 Q F4(s)-2 3 M 203.751
+608.5 203.751 618.5 DL 203.751 607.5 203.751 617.5 DL 219.749 608.5
+219.749 618.5 DL 208.751 618.5 203.751 618.5 DL 209.749 618.5 204.749
+618.5 DL 214.749 618.5 209.749 618.5 DL 219.749 618.5 214.749 618.5 DL
+219.749 607.5 219.749 617.5 DL 208.751 607.5 203.751 607.5 DL 209.749
+607.5 204.749 607.5 DL 214.749 607.5 209.749 607.5 DL 219.749 607.5
+214.749 607.5 DL F0 8.444(=2)195.166 616 S F1<ae>1.666 E F0 .445
+(Designate USASCII for character sets G0-G3 \(DECANM\), and set VT100)
+2.945 F(mode.)180 632 Q F3(P)185 648 Q F4(s)-2 3 M 202.862 640.5 202.862
+650.5 DL 202.862 639.5 202.862 649.5 DL 218.86 640.5 218.86 650.5 DL
+207.862 650.5 202.862 650.5 DL 208.86 650.5 203.86 650.5 DL 213.86 650.5
+208.86 650.5 DL 218.86 650.5 213.86 650.5 DL 218.86 639.5 218.86 649.5
+DL 207.862 639.5 202.862 639.5 DL 208.86 639.5 203.86 639.5 DL 213.86
+639.5 208.86 639.5 DL 218.86 639.5 213.86 639.5 DL F0 7.999(=3)194.722
+648 S F1<ae>1.666 E F0(132 Column Mode \(DECCOLM\))2.5 E F3(P)185 664 Q
+F4(s)-2 3 M 202.862 656.5 202.862 666.5 DL 202.862 655.5 202.862 665.5
+DL 218.86 656.5 218.86 666.5 DL 207.862 666.5 202.862 666.5 DL 208.86
+666.5 203.86 666.5 DL 213.86 666.5 208.86 666.5 DL 218.86 666.5 213.86
+666.5 DL 218.86 655.5 218.86 665.5 DL 207.862 655.5 202.862 655.5 DL
+208.86 655.5 203.86 655.5 DL 213.86 655.5 208.86 655.5 DL 218.86 655.5
+213.86 655.5 DL F0 7.999(=4)194.722 664 S F1<ae>1.666 E F0(Smooth \(Slo)
+2.5 E(w\) Scroll \(DECSCLM\))-.25 E F3(P)185 680 Q F4(s)-2 3 M 202.862
+672.5 202.862 682.5 DL 202.862 671.5 202.862 681.5 DL 218.86 672.5
+218.86 682.5 DL 207.862 682.5 202.862 682.5 DL 208.86 682.5 203.86 682.5
+DL 213.86 682.5 208.86 682.5 DL 218.86 682.5 213.86 682.5 DL 218.86
+671.5 218.86 681.5 DL 207.862 671.5 202.862 671.5 DL 208.86 671.5 203.86
+671.5 DL 213.86 671.5 208.86 671.5 DL 218.86 671.5 213.86 671.5 DL F0
+7.999(=5)194.722 680 S F1<ae>1.666 E F0(Re)2.5 E -.15(ve)-.25 G(rse V)
+.15 E(ideo \(DECSCNM\))-.6 E F3(P)185 696 Q F4(s)-2 3 M 202.862 688.5
+202.862 698.5 DL 202.862 687.5 202.862 697.5 DL 218.86 688.5 218.86
+698.5 DL 207.862 698.5 202.862 698.5 DL 208.86 698.5 203.86 698.5 DL
+213.86 698.5 208.86 698.5 DL 218.86 698.5 213.86 698.5 DL 218.86 687.5
+218.86 697.5 DL 207.862 687.5 202.862 687.5 DL 208.86 687.5 203.86 687.5
+DL 213.86 687.5 208.86 687.5 DL 218.86 687.5 213.86 687.5 DL F0 7.999
+(=6)194.722 696 S F1<ae>1.666 E F0(Origin Mode \(DECOM\))2.5 E F3(P)185
+712 Q F4(s)-2 3 M 202.862 704.5 202.862 714.5 DL 202.862 703.5 202.862
+713.5 DL 218.86 704.5 218.86 714.5 DL 207.862 714.5 202.862 714.5 DL
+208.86 714.5 203.86 714.5 DL 213.86 714.5 208.86 714.5 DL 218.86 714.5
+213.86 714.5 DL 218.86 703.5 218.86 713.5 DL 207.862 703.5 202.862 703.5
+DL 208.86 703.5 203.86 703.5 DL 213.86 703.5 208.86 703.5 DL 218.86
+703.5 213.86 703.5 DL F0 7.999(=7)194.722 712 S F1<ae>1.666 E F0
+(Wraparound Mode \(DECA)2.5 E(WM\))-.9 E F3(P)185 728 Q F4(s)-2 3 M
+202.862 720.5 202.862 730.5 DL 202.862 719.5 202.862 729.5 DL 218.86
+720.5 218.86 730.5 DL 207.862 730.5 202.862 730.5 DL 208.86 730.5 203.86
+730.5 DL 213.86 730.5 208.86 730.5 DL 218.86 730.5 213.86 730.5 DL
+218.86 719.5 218.86 729.5 DL 207.862 719.5 202.862 719.5 DL 208.86 719.5
+203.86 719.5 DL 213.86 719.5 208.86 719.5 DL 218.86 719.5 213.86 719.5
+DL F0 7.999(=8)194.722 728 S F1<ae>1.666 E F0(Auto-repeat K)2.5 E -.15
+(ey)-.25 G 2.5(s\().15 G(DECARM\))-2.5 E(6)303.5 772 Q EP
+%%Page: 7 7
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E/F1 10/Times-Italic@0 SF(P)185 88 Q/F2 8/Times-Italic@0 SF(s)-2
+3 M .4 LW 202.862 80.5 202.862 90.5 DL 202.862 79.5 202.862 89.5 DL
+218.86 80.5 218.86 90.5 DL 207.862 90.5 202.862 90.5 DL 208.86 90.5
+203.86 90.5 DL 213.86 90.5 208.86 90.5 DL 218.86 90.5 213.86 90.5 DL
+218.86 79.5 218.86 89.5 DL 207.862 79.5 202.862 79.5 DL 208.86 79.5
+203.86 79.5 DL 213.86 79.5 208.86 79.5 DL 218.86 79.5 213.86 79.5 DL F0
+7.999(=9)194.722 88 S/F3 10/Symbol SF<ae>1.666 E F0
+(Send Mouse X & Y on b)2.5 E(utton press.)-.2 E(See the section)5 E/F4
+10/Times-Bold@0 SF(Mouse T)2.5 E(racking)-.74 E F0(.)A F1(P)185 104 Q F2
+(s)-2 3 M 202.862 96.5 202.862 106.5 DL 202.862 95.5 202.862 105.5 DL
+218.86 96.5 218.86 106.5 DL 207.862 106.5 202.862 106.5 DL 208.86 106.5
+203.86 106.5 DL 213.86 106.5 208.86 106.5 DL 218.86 106.5 213.86 106.5
+DL 218.86 95.5 218.86 105.5 DL 207.862 95.5 202.862 95.5 DL 208.86 95.5
+203.86 95.5 DL 213.86 95.5 208.86 95.5 DL 218.86 95.5 213.86 95.5 DL
+220.526 96.5 220.526 106.5 DL 220.526 95.5 220.526 105.5 DL 236.524 96.5
+236.524 106.5 DL 225.526 106.5 220.526 106.5 DL 226.524 106.5 221.524
+106.5 DL 231.524 106.5 226.524 106.5 DL 236.524 106.5 231.524 106.5 DL
+236.524 95.5 236.524 105.5 DL 225.526 95.5 220.526 95.5 DL 226.524 95.5
+221.524 95.5 DL 231.524 95.5 226.524 95.5 DL 236.524 95.5 231.524 95.5
+DL F0 -5.834 7.999(=1 8)194.722 104 T F3<ae>1.666 E F0
+(Print form feed \(DECPFF\))2.5 E F1(P)185 120 Q F2(s)-2 3 M 202.862
+112.5 202.862 122.5 DL 202.862 111.5 202.862 121.5 DL 218.86 112.5
+218.86 122.5 DL 207.862 122.5 202.862 122.5 DL 208.86 122.5 203.86 122.5
+DL 213.86 122.5 208.86 122.5 DL 218.86 122.5 213.86 122.5 DL 218.86
+111.5 218.86 121.5 DL 207.862 111.5 202.862 111.5 DL 208.86 111.5 203.86
+111.5 DL 213.86 111.5 208.86 111.5 DL 218.86 111.5 213.86 111.5 DL
+220.526 112.5 220.526 122.5 DL 220.526 111.5 220.526 121.5 DL 236.524
+112.5 236.524 122.5 DL 225.526 122.5 220.526 122.5 DL 226.524 122.5
+221.524 122.5 DL 231.524 122.5 226.524 122.5 DL 236.524 122.5 231.524
+122.5 DL 236.524 111.5 236.524 121.5 DL 225.526 111.5 220.526 111.5 DL
+226.524 111.5 221.524 111.5 DL 231.524 111.5 226.524 111.5 DL 236.524
+111.5 231.524 111.5 DL F0 -5.834 7.999(=1 9)194.722 120 T F3<ae>1.666 E
+F0(Set print e)2.5 E(xtent to full screen \(DECPEX\))-.15 E F1(P)185 136
+Q F2(s)-2 3 M 202.862 128.5 202.862 138.5 DL 202.862 127.5 202.862 137.5
+DL 218.86 128.5 218.86 138.5 DL 207.862 138.5 202.862 138.5 DL 208.86
+138.5 203.86 138.5 DL 213.86 138.5 208.86 138.5 DL 218.86 138.5 213.86
+138.5 DL 218.86 127.5 218.86 137.5 DL 207.862 127.5 202.862 127.5 DL
+208.86 127.5 203.86 127.5 DL 213.86 127.5 208.86 127.5 DL 218.86 127.5
+213.86 127.5 DL 220.526 128.5 220.526 138.5 DL 220.526 127.5 220.526
+137.5 DL 236.524 128.5 236.524 138.5 DL 225.526 138.5 220.526 138.5 DL
+226.524 138.5 221.524 138.5 DL 231.524 138.5 226.524 138.5 DL 236.524
+138.5 231.524 138.5 DL 236.524 127.5 236.524 137.5 DL 225.526 127.5
+220.526 127.5 DL 226.524 127.5 221.524 127.5 DL 231.524 127.5 226.524
+127.5 DL 236.524 127.5 231.524 127.5 DL F0 -5.834 7.999(=2 5)194.722 136
+T F3<ae>1.666 E F0(Sho)2.5 E 2.5(wC)-.25 G(ursor \(DECTCEM\))-2.5 E F1
+(P)185 152 Q F2(s)-2 3 M 202.862 144.5 202.862 154.5 DL 202.862 143.5
+202.862 153.5 DL 218.86 144.5 218.86 154.5 DL 207.862 154.5 202.862
+154.5 DL 208.86 154.5 203.86 154.5 DL 213.86 154.5 208.86 154.5 DL
+218.86 154.5 213.86 154.5 DL 218.86 143.5 218.86 153.5 DL 207.862 143.5
+202.862 143.5 DL 208.86 143.5 203.86 143.5 DL 213.86 143.5 208.86 143.5
+DL 218.86 143.5 213.86 143.5 DL 220.526 144.5 220.526 154.5 DL 220.526
+143.5 220.526 153.5 DL 236.524 144.5 236.524 154.5 DL 225.526 154.5
+220.526 154.5 DL 226.524 154.5 221.524 154.5 DL 231.524 154.5 226.524
+154.5 DL 236.524 154.5 231.524 154.5 DL 236.524 143.5 236.524 153.5 DL
+225.526 143.5 220.526 143.5 DL 226.524 143.5 221.524 143.5 DL 231.524
+143.5 226.524 143.5 DL 236.524 143.5 231.524 143.5 DL F0 -5.834 7.999
+(=3 0)194.722 152 T F3<ae>1.666 E F0(Sho)2.5 E 2.5(ws)-.25 G
+(crollbar \(rxvt\).)-2.5 E F1(P)185 168 Q F2(s)-2 3 M 202.862 160.5
+202.862 170.5 DL 202.862 159.5 202.862 169.5 DL 218.86 160.5 218.86
+170.5 DL 207.862 170.5 202.862 170.5 DL 208.86 170.5 203.86 170.5 DL
+213.86 170.5 208.86 170.5 DL 218.86 170.5 213.86 170.5 DL 218.86 159.5
+218.86 169.5 DL 207.862 159.5 202.862 159.5 DL 208.86 159.5 203.86 159.5
+DL 213.86 159.5 208.86 159.5 DL 218.86 159.5 213.86 159.5 DL 220.526
+160.5 220.526 170.5 DL 220.526 159.5 220.526 169.5 DL 236.524 160.5
+236.524 170.5 DL 225.526 170.5 220.526 170.5 DL 226.524 170.5 221.524
+170.5 DL 231.524 170.5 226.524 170.5 DL 236.524 170.5 231.524 170.5 DL
+236.524 159.5 236.524 169.5 DL 225.526 159.5 220.526 159.5 DL 226.524
+159.5 221.524 159.5 DL 231.524 159.5 226.524 159.5 DL 236.524 159.5
+231.524 159.5 DL F0 -5.834 7.999(=3 5)194.722 168 T F3<ae>1.666 E F0
+(Enable font-shifting functions \(rxvt\).)2.5 E F1(P)185 184 Q F2(s)-2 3
+M 202.862 176.5 202.862 186.5 DL 202.862 175.5 202.862 185.5 DL 218.86
+176.5 218.86 186.5 DL 207.862 186.5 202.862 186.5 DL 208.86 186.5 203.86
+186.5 DL 213.86 186.5 208.86 186.5 DL 218.86 186.5 213.86 186.5 DL
+218.86 175.5 218.86 185.5 DL 207.862 175.5 202.862 175.5 DL 208.86 175.5
+203.86 175.5 DL 213.86 175.5 208.86 175.5 DL 218.86 175.5 213.86 175.5
+DL 220.526 176.5 220.526 186.5 DL 220.526 175.5 220.526 185.5 DL 236.524
+176.5 236.524 186.5 DL 225.526 186.5 220.526 186.5 DL 226.524 186.5
+221.524 186.5 DL 231.524 186.5 226.524 186.5 DL 236.524 186.5 231.524
+186.5 DL 236.524 175.5 236.524 185.5 DL 225.526 175.5 220.526 175.5 DL
+226.524 175.5 221.524 175.5 DL 231.524 175.5 226.524 175.5 DL 236.524
+175.5 231.524 175.5 DL F0 -5.834 7.999(=3 8)194.722 184 T F3<ae>1.666 E
+F0(Enter T)2.5 E(ektronix Mode \(DECTEK\))-.7 E F1(P)185 200 Q F2(s)-2 3
+M 202.862 192.5 202.862 202.5 DL 202.862 191.5 202.862 201.5 DL 218.86
+192.5 218.86 202.5 DL 207.862 202.5 202.862 202.5 DL 208.86 202.5 203.86
+202.5 DL 213.86 202.5 208.86 202.5 DL 218.86 202.5 213.86 202.5 DL
+218.86 191.5 218.86 201.5 DL 207.862 191.5 202.862 191.5 DL 208.86 191.5
+203.86 191.5 DL 213.86 191.5 208.86 191.5 DL 218.86 191.5 213.86 191.5
+DL 220.526 192.5 220.526 202.5 DL 220.526 191.5 220.526 201.5 DL 236.524
+192.5 236.524 202.5 DL 225.526 202.5 220.526 202.5 DL 226.524 202.5
+221.524 202.5 DL 231.524 202.5 226.524 202.5 DL 236.524 202.5 231.524
+202.5 DL 236.524 191.5 236.524 201.5 DL 225.526 191.5 220.526 191.5 DL
+226.524 191.5 221.524 191.5 DL 231.524 191.5 226.524 191.5 DL 236.524
+191.5 231.524 191.5 DL F0 -5.834 7.999(=4 0)194.722 200 T F3<ae>1.666 E
+F0(Allo)2.5 E 2.5(w8)-.25 G(0)-2.5 E F3 -9.87<acae>2.5 G F0(132 Mode)
+12.37 E F1(P)185 216 Q F2(s)-2 3 M 202.862 208.5 202.862 218.5 DL
+202.862 207.5 202.862 217.5 DL 218.86 208.5 218.86 218.5 DL 207.862
+218.5 202.862 218.5 DL 208.86 218.5 203.86 218.5 DL 213.86 218.5 208.86
+218.5 DL 218.86 218.5 213.86 218.5 DL 218.86 207.5 218.86 217.5 DL
+207.862 207.5 202.862 207.5 DL 208.86 207.5 203.86 207.5 DL 213.86 207.5
+208.86 207.5 DL 218.86 207.5 213.86 207.5 DL 220.526 208.5 220.526 218.5
+DL 220.526 207.5 220.526 217.5 DL 236.524 208.5 236.524 218.5 DL 225.526
+218.5 220.526 218.5 DL 226.524 218.5 221.524 218.5 DL 231.524 218.5
+226.524 218.5 DL 236.524 218.5 231.524 218.5 DL 236.524 207.5 236.524
+217.5 DL 225.526 207.5 220.526 207.5 DL 226.524 207.5 221.524 207.5 DL
+231.524 207.5 226.524 207.5 DL 236.524 207.5 231.524 207.5 DL F0 -5.834
+7.999(=4 1)194.722 216 T F3<ae>1.666 E F1(mor)2.5 E(e)-.37 E F0
+(\(1\) \214x \(see)A F1(cur)2.5 E(ses)-.1 E F0(resource\))2.5 E F1(P)185
+232 Q F2(s)-2 3 M 202.862 224.5 202.862 234.5 DL 202.862 223.5 202.862
+233.5 DL 218.86 224.5 218.86 234.5 DL 207.862 234.5 202.862 234.5 DL
+208.86 234.5 203.86 234.5 DL 213.86 234.5 208.86 234.5 DL 218.86 234.5
+213.86 234.5 DL 218.86 223.5 218.86 233.5 DL 207.862 223.5 202.862 223.5
+DL 208.86 223.5 203.86 223.5 DL 213.86 223.5 208.86 223.5 DL 218.86
+223.5 213.86 223.5 DL 220.526 224.5 220.526 234.5 DL 220.526 223.5
+220.526 233.5 DL 236.524 224.5 236.524 234.5 DL 225.526 234.5 220.526
+234.5 DL 226.524 234.5 221.524 234.5 DL 231.524 234.5 226.524 234.5 DL
+236.524 234.5 231.524 234.5 DL 236.524 223.5 236.524 233.5 DL 225.526
+223.5 220.526 223.5 DL 226.524 223.5 221.524 223.5 DL 231.524 223.5
+226.524 223.5 DL 236.524 223.5 231.524 223.5 DL F0 -5.834 7.999(=4 2)
+194.722 232 T F3<ae>1.666 E F0
+(Enable Nation Replacement Character sets \(DECNRCM\))2.5 E F1(P)185 248
+Q F2(s)-2 3 M 202.862 240.5 202.862 250.5 DL 202.862 239.5 202.862 249.5
+DL 218.86 240.5 218.86 250.5 DL 207.862 250.5 202.862 250.5 DL 208.86
+250.5 203.86 250.5 DL 213.86 250.5 208.86 250.5 DL 218.86 250.5 213.86
+250.5 DL 218.86 239.5 218.86 249.5 DL 207.862 239.5 202.862 239.5 DL
+208.86 239.5 203.86 239.5 DL 213.86 239.5 208.86 239.5 DL 218.86 239.5
+213.86 239.5 DL 220.526 240.5 220.526 250.5 DL 220.526 239.5 220.526
+249.5 DL 236.524 240.5 236.524 250.5 DL 225.526 250.5 220.526 250.5 DL
+226.524 250.5 221.524 250.5 DL 231.524 250.5 226.524 250.5 DL 236.524
+250.5 231.524 250.5 DL 236.524 239.5 236.524 249.5 DL 225.526 239.5
+220.526 239.5 DL 226.524 239.5 221.524 239.5 DL 231.524 239.5 226.524
+239.5 DL 236.524 239.5 231.524 239.5 DL F0 -5.834 7.999(=4 4)194.722 248
+T F3<ae>1.666 E F0 -.45(Tu)2.5 G(rn On Mar).45 E(gin Bell)-.18 E F1(P)
+185 264 Q F2(s)-2 3 M 202.862 256.5 202.862 266.5 DL 202.862 255.5
+202.862 265.5 DL 218.86 256.5 218.86 266.5 DL 207.862 266.5 202.862
+266.5 DL 208.86 266.5 203.86 266.5 DL 213.86 266.5 208.86 266.5 DL
+218.86 266.5 213.86 266.5 DL 218.86 255.5 218.86 265.5 DL 207.862 255.5
+202.862 255.5 DL 208.86 255.5 203.86 255.5 DL 213.86 255.5 208.86 255.5
+DL 218.86 255.5 213.86 255.5 DL 220.526 256.5 220.526 266.5 DL 220.526
+255.5 220.526 265.5 DL 236.524 256.5 236.524 266.5 DL 225.526 266.5
+220.526 266.5 DL 226.524 266.5 221.524 266.5 DL 231.524 266.5 226.524
+266.5 DL 236.524 266.5 231.524 266.5 DL 236.524 255.5 236.524 265.5 DL
+225.526 255.5 220.526 255.5 DL 226.524 255.5 221.524 255.5 DL 231.524
+255.5 226.524 255.5 DL 236.524 255.5 231.524 255.5 DL F0 -5.834 7.999
+(=4 5)194.722 264 T F3<ae>1.666 E F0(Re)2.5 E -.15(ve)-.25 G
+(rse-wraparound Mode).15 E F1(P)185 280 Q F2(s)-2 3 M 202.862 272.5
+202.862 282.5 DL 202.862 271.5 202.862 281.5 DL 218.86 272.5 218.86
+282.5 DL 207.862 282.5 202.862 282.5 DL 208.86 282.5 203.86 282.5 DL
+213.86 282.5 208.86 282.5 DL 218.86 282.5 213.86 282.5 DL 218.86 271.5
+218.86 281.5 DL 207.862 271.5 202.862 271.5 DL 208.86 271.5 203.86 271.5
+DL 213.86 271.5 208.86 271.5 DL 218.86 271.5 213.86 271.5 DL 220.526
+272.5 220.526 282.5 DL 220.526 271.5 220.526 281.5 DL 236.524 272.5
+236.524 282.5 DL 225.526 282.5 220.526 282.5 DL 226.524 282.5 221.524
+282.5 DL 231.524 282.5 226.524 282.5 DL 236.524 282.5 231.524 282.5 DL
+236.524 271.5 236.524 281.5 DL 225.526 271.5 220.526 271.5 DL 226.524
+271.5 221.524 271.5 DL 231.524 271.5 226.524 271.5 DL 236.524 271.5
+231.524 271.5 DL F0 -5.834 7.999(=4 6)194.722 280 T F3<ae>1.666 E F0
+(Start Logging \(normally disabled by a compile-time option\))2.5 E F1
+(P)185 296 Q F2(s)-2 3 M 208.512 288.5 208.512 298.5 DL 208.512 287.5
+208.512 297.5 DL 224.51 288.5 224.51 298.5 DL 213.512 298.5 208.512
+298.5 DL 214.51 298.5 209.51 298.5 DL 219.51 298.5 214.51 298.5 DL
+224.51 298.5 219.51 298.5 DL 224.51 287.5 224.51 297.5 DL 213.512 287.5
+208.512 287.5 DL 214.51 287.5 209.51 287.5 DL 219.51 287.5 214.51 287.5
+DL 224.51 287.5 219.51 287.5 DL 226.176 288.5 226.176 298.5 DL 226.176
+287.5 226.176 297.5 DL 242.174 288.5 242.174 298.5 DL 231.176 298.5
+226.176 298.5 DL 232.174 298.5 227.174 298.5 DL 237.174 298.5 232.174
+298.5 DL 242.174 298.5 237.174 298.5 DL 242.174 287.5 242.174 297.5 DL
+231.176 287.5 226.176 287.5 DL 232.174 287.5 227.174 287.5 DL 237.174
+287.5 232.174 287.5 DL 242.174 287.5 237.174 287.5 DL F0 -11.484 10.824
+(=4 7)197.547 296 T F3<ae>1.666 E F0 2.825(Use Alternate Screen Buf)
+5.325 F 2.825(fer \(unless disabled by the)-.25 F F4(titeInhibit)5.325 E
+F0(resource\))180 312 Q F1(P)185 328 Q F2(s)-2 3 M 202.862 320.5 202.862
+330.5 DL 202.862 319.5 202.862 329.5 DL 218.86 320.5 218.86 330.5 DL
+207.862 330.5 202.862 330.5 DL 208.86 330.5 203.86 330.5 DL 213.86 330.5
+208.86 330.5 DL 218.86 330.5 213.86 330.5 DL 218.86 319.5 218.86 329.5
+DL 207.862 319.5 202.862 319.5 DL 208.86 319.5 203.86 319.5 DL 213.86
+319.5 208.86 319.5 DL 218.86 319.5 213.86 319.5 DL 220.526 320.5 220.526
+330.5 DL 220.526 319.5 220.526 329.5 DL 236.524 320.5 236.524 330.5 DL
+225.526 330.5 220.526 330.5 DL 226.524 330.5 221.524 330.5 DL 231.524
+330.5 226.524 330.5 DL 236.524 330.5 231.524 330.5 DL 236.524 319.5
+236.524 329.5 DL 225.526 319.5 220.526 319.5 DL 226.524 319.5 221.524
+319.5 DL 231.524 319.5 226.524 319.5 DL 236.524 319.5 231.524 319.5 DL
+F0 -5.834 7.999(=6 6)194.722 328 T F3<ae>1.666 E F0(Application k)2.5 E
+-.15(ey)-.1 G(pad \(DECNKM\)).15 E F1(P)185 344 Q F2(s)-2 3 M 202.862
+336.5 202.862 346.5 DL 202.862 335.5 202.862 345.5 DL 218.86 336.5
+218.86 346.5 DL 207.862 346.5 202.862 346.5 DL 208.86 346.5 203.86 346.5
+DL 213.86 346.5 208.86 346.5 DL 218.86 346.5 213.86 346.5 DL 218.86
+335.5 218.86 345.5 DL 207.862 335.5 202.862 335.5 DL 208.86 335.5 203.86
+335.5 DL 213.86 335.5 208.86 335.5 DL 218.86 335.5 213.86 335.5 DL
+220.526 336.5 220.526 346.5 DL 220.526 335.5 220.526 345.5 DL 236.524
+336.5 236.524 346.5 DL 225.526 346.5 220.526 346.5 DL 226.524 346.5
+221.524 346.5 DL 231.524 346.5 226.524 346.5 DL 236.524 346.5 231.524
+346.5 DL 236.524 335.5 236.524 345.5 DL 225.526 335.5 220.526 335.5 DL
+226.524 335.5 221.524 335.5 DL 231.524 335.5 226.524 335.5 DL 236.524
+335.5 231.524 335.5 DL F0 -5.834 7.999(=6 7)194.722 344 T F3<ae>1.666 E
+F0(Backarro)2.5 E 2.5(wk)-.25 G .3 -.15(ey s)-2.6 H
+(ends delete \(DECBKM\)).15 E F1(P)185 360 Q F2(s)-2 3 M 203.648 352.5
+203.648 362.5 DL 203.648 351.5 203.648 361.5 DL 219.646 352.5 219.646
+362.5 DL 208.648 362.5 203.648 362.5 DL 209.646 362.5 204.646 362.5 DL
+214.646 362.5 209.646 362.5 DL 219.646 362.5 214.646 362.5 DL 219.646
+351.5 219.646 361.5 DL 208.648 351.5 203.648 351.5 DL 209.646 351.5
+204.646 351.5 DL 214.646 351.5 209.646 351.5 DL 219.646 351.5 214.646
+351.5 DL 221.312 352.5 221.312 362.5 DL 221.312 351.5 221.312 361.5 DL
+237.31 352.5 237.31 362.5 DL 226.312 362.5 221.312 362.5 DL 227.31 362.5
+222.31 362.5 DL 232.31 362.5 227.31 362.5 DL 237.31 362.5 232.31 362.5
+DL 237.31 351.5 237.31 361.5 DL 226.312 351.5 221.312 351.5 DL 227.31
+351.5 222.31 351.5 DL 232.31 351.5 227.31 351.5 DL 237.31 351.5 232.31
+351.5 DL 238.976 352.5 238.976 362.5 DL 238.976 351.5 238.976 361.5 DL
+254.974 352.5 254.974 362.5 DL 243.976 362.5 238.976 362.5 DL 244.974
+362.5 239.974 362.5 DL 249.974 362.5 244.974 362.5 DL 254.974 362.5
+249.974 362.5 DL 254.974 351.5 254.974 361.5 DL 243.976 351.5 238.976
+351.5 DL 244.974 351.5 239.974 351.5 DL 249.974 351.5 244.974 351.5 DL
+254.974 351.5 249.974 351.5 DL 256.64 352.5 256.64 362.5 DL 256.64 351.5
+256.64 361.5 DL 272.638 352.5 272.638 362.5 DL 261.64 362.5 256.64 362.5
+DL 262.638 362.5 257.638 362.5 DL 267.638 362.5 262.638 362.5 DL 272.638
+362.5 267.638 362.5 DL 272.638 351.5 272.638 361.5 DL 261.64 351.5
+256.64 351.5 DL 262.638 351.5 257.638 351.5 DL 267.638 351.5 262.638
+351.5 DL 272.638 351.5 267.638 351.5 DL F0 -6.62 8.392(=1 0 0 0)195.115
+360 T F3<ae>1.667 E F0 .394(Send Mouse X & Y on b)2.894 F .394
+(utton press and release.)-.2 F .394(See the sec-)5.394 F(tion)180 376 Q
+F4(Mouse T)2.5 E(racking)-.74 E F0(.)A F1(P)185 392 Q F2(s)-2 3 M
+202.862 384.5 202.862 394.5 DL 202.862 383.5 202.862 393.5 DL 218.86
+384.5 218.86 394.5 DL 207.862 394.5 202.862 394.5 DL 208.86 394.5 203.86
+394.5 DL 213.86 394.5 208.86 394.5 DL 218.86 394.5 213.86 394.5 DL
+218.86 383.5 218.86 393.5 DL 207.862 383.5 202.862 383.5 DL 208.86 383.5
+203.86 383.5 DL 213.86 383.5 208.86 383.5 DL 218.86 383.5 213.86 383.5
+DL 220.526 384.5 220.526 394.5 DL 220.526 383.5 220.526 393.5 DL 236.524
+384.5 236.524 394.5 DL 225.526 394.5 220.526 394.5 DL 226.524 394.5
+221.524 394.5 DL 231.524 394.5 226.524 394.5 DL 236.524 394.5 231.524
+394.5 DL 236.524 383.5 236.524 393.5 DL 225.526 383.5 220.526 383.5 DL
+226.524 383.5 221.524 383.5 DL 231.524 383.5 226.524 383.5 DL 236.524
+383.5 231.524 383.5 DL 238.19 384.5 238.19 394.5 DL 238.19 383.5 238.19
+393.5 DL 254.188 384.5 254.188 394.5 DL 243.19 394.5 238.19 394.5 DL
+244.188 394.5 239.188 394.5 DL 249.188 394.5 244.188 394.5 DL 254.188
+394.5 249.188 394.5 DL 254.188 383.5 254.188 393.5 DL 243.19 383.5
+238.19 383.5 DL 244.188 383.5 239.188 383.5 DL 249.188 383.5 244.188
+383.5 DL 254.188 383.5 249.188 383.5 DL 255.854 384.5 255.854 394.5 DL
+255.854 383.5 255.854 393.5 DL 271.852 384.5 271.852 394.5 DL 260.854
+394.5 255.854 394.5 DL 261.852 394.5 256.852 394.5 DL 266.852 394.5
+261.852 394.5 DL 271.852 394.5 266.852 394.5 DL 271.852 383.5 271.852
+393.5 DL 260.854 383.5 255.854 383.5 DL 261.852 383.5 256.852 383.5 DL
+266.852 383.5 261.852 383.5 DL 271.852 383.5 266.852 383.5 DL F0 -5.834
+7.999(=1 0 0 1)194.722 392 T F3<ae>1.666 E F0(Use Hilite Mouse T)2.5 E
+(racking.)-.35 E F1(P)185 408 Q F2(s)-2 3 M 202.862 400.5 202.862 410.5
+DL 202.862 399.5 202.862 409.5 DL 218.86 400.5 218.86 410.5 DL 207.862
+410.5 202.862 410.5 DL 208.86 410.5 203.86 410.5 DL 213.86 410.5 208.86
+410.5 DL 218.86 410.5 213.86 410.5 DL 218.86 399.5 218.86 409.5 DL
+207.862 399.5 202.862 399.5 DL 208.86 399.5 203.86 399.5 DL 213.86 399.5
+208.86 399.5 DL 218.86 399.5 213.86 399.5 DL 220.526 400.5 220.526 410.5
+DL 220.526 399.5 220.526 409.5 DL 236.524 400.5 236.524 410.5 DL 225.526
+410.5 220.526 410.5 DL 226.524 410.5 221.524 410.5 DL 231.524 410.5
+226.524 410.5 DL 236.524 410.5 231.524 410.5 DL 236.524 399.5 236.524
+409.5 DL 225.526 399.5 220.526 399.5 DL 226.524 399.5 221.524 399.5 DL
+231.524 399.5 226.524 399.5 DL 236.524 399.5 231.524 399.5 DL 238.19
+400.5 238.19 410.5 DL 238.19 399.5 238.19 409.5 DL 254.188 400.5 254.188
+410.5 DL 243.19 410.5 238.19 410.5 DL 244.188 410.5 239.188 410.5 DL
+249.188 410.5 244.188 410.5 DL 254.188 410.5 249.188 410.5 DL 254.188
+399.5 254.188 409.5 DL 243.19 399.5 238.19 399.5 DL 244.188 399.5
+239.188 399.5 DL 249.188 399.5 244.188 399.5 DL 254.188 399.5 249.188
+399.5 DL 255.854 400.5 255.854 410.5 DL 255.854 399.5 255.854 409.5 DL
+271.852 400.5 271.852 410.5 DL 260.854 410.5 255.854 410.5 DL 261.852
+410.5 256.852 410.5 DL 266.852 410.5 261.852 410.5 DL 271.852 410.5
+266.852 410.5 DL 271.852 399.5 271.852 409.5 DL 260.854 399.5 255.854
+399.5 DL 261.852 399.5 256.852 399.5 DL 266.852 399.5 261.852 399.5 DL
+271.852 399.5 266.852 399.5 DL F0 -5.834 7.999(=1 0 0 2)194.722 408 T F3
+<ae>1.666 E F0(Use Cell Motion Mouse T)2.5 E(racking.)-.35 E F1(P)185
+424 Q F2(s)-2 3 M 202.862 416.5 202.862 426.5 DL 202.862 415.5 202.862
+425.5 DL 218.86 416.5 218.86 426.5 DL 207.862 426.5 202.862 426.5 DL
+208.86 426.5 203.86 426.5 DL 213.86 426.5 208.86 426.5 DL 218.86 426.5
+213.86 426.5 DL 218.86 415.5 218.86 425.5 DL 207.862 415.5 202.862 415.5
+DL 208.86 415.5 203.86 415.5 DL 213.86 415.5 208.86 415.5 DL 218.86
+415.5 213.86 415.5 DL 220.526 416.5 220.526 426.5 DL 220.526 415.5
+220.526 425.5 DL 236.524 416.5 236.524 426.5 DL 225.526 426.5 220.526
+426.5 DL 226.524 426.5 221.524 426.5 DL 231.524 426.5 226.524 426.5 DL
+236.524 426.5 231.524 426.5 DL 236.524 415.5 236.524 425.5 DL 225.526
+415.5 220.526 415.5 DL 226.524 415.5 221.524 415.5 DL 231.524 415.5
+226.524 415.5 DL 236.524 415.5 231.524 415.5 DL 238.19 416.5 238.19
+426.5 DL 238.19 415.5 238.19 425.5 DL 254.188 416.5 254.188 426.5 DL
+243.19 426.5 238.19 426.5 DL 244.188 426.5 239.188 426.5 DL 249.188
+426.5 244.188 426.5 DL 254.188 426.5 249.188 426.5 DL 254.188 415.5
+254.188 425.5 DL 243.19 415.5 238.19 415.5 DL 244.188 415.5 239.188
+415.5 DL 249.188 415.5 244.188 415.5 DL 254.188 415.5 249.188 415.5 DL
+255.854 416.5 255.854 426.5 DL 255.854 415.5 255.854 425.5 DL 271.852
+416.5 271.852 426.5 DL 260.854 426.5 255.854 426.5 DL 261.852 426.5
+256.852 426.5 DL 266.852 426.5 261.852 426.5 DL 271.852 426.5 266.852
+426.5 DL 271.852 415.5 271.852 425.5 DL 260.854 415.5 255.854 415.5 DL
+261.852 415.5 256.852 415.5 DL 266.852 415.5 261.852 415.5 DL 271.852
+415.5 266.852 415.5 DL F0 -5.834 7.999(=1 0 0 3)194.722 424 T F3<ae>
+1.666 E F0(Use All Motion Mouse T)2.5 E(racking.)-.35 E F1(P)185 440 Q
+F2(s)-2 3 M 202.862 432.5 202.862 442.5 DL 202.862 431.5 202.862 441.5
+DL 218.86 432.5 218.86 442.5 DL 207.862 442.5 202.862 442.5 DL 208.86
+442.5 203.86 442.5 DL 213.86 442.5 208.86 442.5 DL 218.86 442.5 213.86
+442.5 DL 218.86 431.5 218.86 441.5 DL 207.862 431.5 202.862 431.5 DL
+208.86 431.5 203.86 431.5 DL 213.86 431.5 208.86 431.5 DL 218.86 431.5
+213.86 431.5 DL 220.526 432.5 220.526 442.5 DL 220.526 431.5 220.526
+441.5 DL 236.524 432.5 236.524 442.5 DL 225.526 442.5 220.526 442.5 DL
+226.524 442.5 221.524 442.5 DL 231.524 442.5 226.524 442.5 DL 236.524
+442.5 231.524 442.5 DL 236.524 431.5 236.524 441.5 DL 225.526 431.5
+220.526 431.5 DL 226.524 431.5 221.524 431.5 DL 231.524 431.5 226.524
+431.5 DL 236.524 431.5 231.524 431.5 DL 238.19 432.5 238.19 442.5 DL
+238.19 431.5 238.19 441.5 DL 254.188 432.5 254.188 442.5 DL 243.19 442.5
+238.19 442.5 DL 244.188 442.5 239.188 442.5 DL 249.188 442.5 244.188
+442.5 DL 254.188 442.5 249.188 442.5 DL 254.188 431.5 254.188 441.5 DL
+243.19 431.5 238.19 431.5 DL 244.188 431.5 239.188 431.5 DL 249.188
+431.5 244.188 431.5 DL 254.188 431.5 249.188 431.5 DL 255.854 432.5
+255.854 442.5 DL 255.854 431.5 255.854 441.5 DL 271.852 432.5 271.852
+442.5 DL 260.854 442.5 255.854 442.5 DL 261.852 442.5 256.852 442.5 DL
+266.852 442.5 261.852 442.5 DL 271.852 442.5 266.852 442.5 DL 271.852
+431.5 271.852 441.5 DL 260.854 431.5 255.854 431.5 DL 261.852 431.5
+256.852 431.5 DL 266.852 431.5 261.852 431.5 DL 271.852 431.5 266.852
+431.5 DL F0 -5.834 7.999(=1 0 1 0)194.722 440 T F3<ae>1.666 E F0
+(Scroll to bottom on tty output \(rxvt\).)2.5 E F1(P)185 456 Q F2(s)-2 3
+M 202.862 448.5 202.862 458.5 DL 202.862 447.5 202.862 457.5 DL 218.86
+448.5 218.86 458.5 DL 207.862 458.5 202.862 458.5 DL 208.86 458.5 203.86
+458.5 DL 213.86 458.5 208.86 458.5 DL 218.86 458.5 213.86 458.5 DL
+218.86 447.5 218.86 457.5 DL 207.862 447.5 202.862 447.5 DL 208.86 447.5
+203.86 447.5 DL 213.86 447.5 208.86 447.5 DL 218.86 447.5 213.86 447.5
+DL 220.526 448.5 220.526 458.5 DL 220.526 447.5 220.526 457.5 DL 236.524
+448.5 236.524 458.5 DL 225.526 458.5 220.526 458.5 DL 226.524 458.5
+221.524 458.5 DL 231.524 458.5 226.524 458.5 DL 236.524 458.5 231.524
+458.5 DL 236.524 447.5 236.524 457.5 DL 225.526 447.5 220.526 447.5 DL
+226.524 447.5 221.524 447.5 DL 231.524 447.5 226.524 447.5 DL 236.524
+447.5 231.524 447.5 DL 238.19 448.5 238.19 458.5 DL 238.19 447.5 238.19
+457.5 DL 254.188 448.5 254.188 458.5 DL 243.19 458.5 238.19 458.5 DL
+244.188 458.5 239.188 458.5 DL 249.188 458.5 244.188 458.5 DL 254.188
+458.5 249.188 458.5 DL 254.188 447.5 254.188 457.5 DL 243.19 447.5
+238.19 447.5 DL 244.188 447.5 239.188 447.5 DL 249.188 447.5 244.188
+447.5 DL 254.188 447.5 249.188 447.5 DL 255.854 448.5 255.854 458.5 DL
+255.854 447.5 255.854 457.5 DL 271.852 448.5 271.852 458.5 DL 260.854
+458.5 255.854 458.5 DL 261.852 458.5 256.852 458.5 DL 266.852 458.5
+261.852 458.5 DL 271.852 458.5 266.852 458.5 DL 271.852 447.5 271.852
+457.5 DL 260.854 447.5 255.854 447.5 DL 261.852 447.5 256.852 447.5 DL
+266.852 447.5 261.852 447.5 DL 271.852 447.5 266.852 447.5 DL F0 -5.834
+7.999(=1 0 1 1)194.722 456 T F3<ae>1.666 E F0(Scroll to bottom on k)2.5
+E .3 -.15(ey p)-.1 H(ress \(rxvt\).).15 E F1(P)185 472 Q F2(s)-2 3 M
+202.862 464.5 202.862 474.5 DL 202.862 463.5 202.862 473.5 DL 218.86
+464.5 218.86 474.5 DL 207.862 474.5 202.862 474.5 DL 208.86 474.5 203.86
+474.5 DL 213.86 474.5 208.86 474.5 DL 218.86 474.5 213.86 474.5 DL
+218.86 463.5 218.86 473.5 DL 207.862 463.5 202.862 463.5 DL 208.86 463.5
+203.86 463.5 DL 213.86 463.5 208.86 463.5 DL 218.86 463.5 213.86 463.5
+DL 220.526 464.5 220.526 474.5 DL 220.526 463.5 220.526 473.5 DL 236.524
+464.5 236.524 474.5 DL 225.526 474.5 220.526 474.5 DL 226.524 474.5
+221.524 474.5 DL 231.524 474.5 226.524 474.5 DL 236.524 474.5 231.524
+474.5 DL 236.524 463.5 236.524 473.5 DL 225.526 463.5 220.526 463.5 DL
+226.524 463.5 221.524 463.5 DL 231.524 463.5 226.524 463.5 DL 236.524
+463.5 231.524 463.5 DL 238.19 464.5 238.19 474.5 DL 238.19 463.5 238.19
+473.5 DL 254.188 464.5 254.188 474.5 DL 243.19 474.5 238.19 474.5 DL
+244.188 474.5 239.188 474.5 DL 249.188 474.5 244.188 474.5 DL 254.188
+474.5 249.188 474.5 DL 254.188 463.5 254.188 473.5 DL 243.19 463.5
+238.19 463.5 DL 244.188 463.5 239.188 463.5 DL 249.188 463.5 244.188
+463.5 DL 254.188 463.5 249.188 463.5 DL 255.854 464.5 255.854 474.5 DL
+255.854 463.5 255.854 473.5 DL 271.852 464.5 271.852 474.5 DL 260.854
+474.5 255.854 474.5 DL 261.852 474.5 256.852 474.5 DL 266.852 474.5
+261.852 474.5 DL 271.852 474.5 266.852 474.5 DL 271.852 463.5 271.852
+473.5 DL 260.854 463.5 255.854 463.5 DL 261.852 463.5 256.852 463.5 DL
+266.852 463.5 261.852 463.5 DL 271.852 463.5 266.852 463.5 DL F0 -5.834
+7.999(=1 0 3 5)194.722 472 T F3<ae>1.666 E F0
+(Enable special modi\214ers for Alt and NumLock k)2.5 E -.15(ey)-.1 G
+(s.).15 E F1(P)185 488 Q F2(s)-2 3 M 203.538 480.5 203.538 490.5 DL
+203.538 479.5 203.538 489.5 DL 219.536 480.5 219.536 490.5 DL 208.538
+490.5 203.538 490.5 DL 209.536 490.5 204.536 490.5 DL 214.536 490.5
+209.536 490.5 DL 219.536 490.5 214.536 490.5 DL 219.536 479.5 219.536
+489.5 DL 208.538 479.5 203.538 479.5 DL 209.536 479.5 204.536 479.5 DL
+214.536 479.5 209.536 479.5 DL 219.536 479.5 214.536 479.5 DL 221.202
+480.5 221.202 490.5 DL 221.202 479.5 221.202 489.5 DL 237.2 480.5 237.2
+490.5 DL 226.202 490.5 221.202 490.5 DL 227.2 490.5 222.2 490.5 DL 232.2
+490.5 227.2 490.5 DL 237.2 490.5 232.2 490.5 DL 237.2 479.5 237.2 489.5
+DL 226.202 479.5 221.202 479.5 DL 227.2 479.5 222.2 479.5 DL 232.2 479.5
+227.2 479.5 DL 237.2 479.5 232.2 479.5 DL 238.866 480.5 238.866 490.5 DL
+238.866 479.5 238.866 489.5 DL 254.864 480.5 254.864 490.5 DL 243.866
+490.5 238.866 490.5 DL 244.864 490.5 239.864 490.5 DL 249.864 490.5
+244.864 490.5 DL 254.864 490.5 249.864 490.5 DL 254.864 479.5 254.864
+489.5 DL 243.866 479.5 238.866 479.5 DL 244.864 479.5 239.864 479.5 DL
+249.864 479.5 244.864 479.5 DL 254.864 479.5 249.864 479.5 DL 256.53
+480.5 256.53 490.5 DL 256.53 479.5 256.53 489.5 DL 272.528 480.5 272.528
+490.5 DL 261.53 490.5 256.53 490.5 DL 262.528 490.5 257.528 490.5 DL
+267.528 490.5 262.528 490.5 DL 272.528 490.5 267.528 490.5 DL 272.528
+479.5 272.528 489.5 DL 261.53 479.5 256.53 479.5 DL 262.528 479.5
+257.528 479.5 DL 267.528 479.5 262.528 479.5 DL 272.528 479.5 267.528
+479.5 DL F0 -6.51 8.337(=1 0 3 6)195.06 488 T F3<ae>1.666 E F0 .338
+(Send ESC when Meta modi\214es a k)2.838 F .638 -.15(ey \()-.1 H .337
+(enables the).15 F F4(metaSend-)2.837 E(sEscape)180 504 Q F0
+(resource\).)2.5 E F1(P)185 520 Q F2(s)-2 3 M 202.862 512.5 202.862
+522.5 DL 202.862 511.5 202.862 521.5 DL 218.86 512.5 218.86 522.5 DL
+207.862 522.5 202.862 522.5 DL 208.86 522.5 203.86 522.5 DL 213.86 522.5
+208.86 522.5 DL 218.86 522.5 213.86 522.5 DL 218.86 511.5 218.86 521.5
+DL 207.862 511.5 202.862 511.5 DL 208.86 511.5 203.86 511.5 DL 213.86
+511.5 208.86 511.5 DL 218.86 511.5 213.86 511.5 DL 220.526 512.5 220.526
+522.5 DL 220.526 511.5 220.526 521.5 DL 236.524 512.5 236.524 522.5 DL
+225.526 522.5 220.526 522.5 DL 226.524 522.5 221.524 522.5 DL 231.524
+522.5 226.524 522.5 DL 236.524 522.5 231.524 522.5 DL 236.524 511.5
+236.524 521.5 DL 225.526 511.5 220.526 511.5 DL 226.524 511.5 221.524
+511.5 DL 231.524 511.5 226.524 511.5 DL 236.524 511.5 231.524 511.5 DL
+238.19 512.5 238.19 522.5 DL 238.19 511.5 238.19 521.5 DL 254.188 512.5
+254.188 522.5 DL 243.19 522.5 238.19 522.5 DL 244.188 522.5 239.188
+522.5 DL 249.188 522.5 244.188 522.5 DL 254.188 522.5 249.188 522.5 DL
+254.188 511.5 254.188 521.5 DL 243.19 511.5 238.19 511.5 DL 244.188
+511.5 239.188 511.5 DL 249.188 511.5 244.188 511.5 DL 254.188 511.5
+249.188 511.5 DL 255.854 512.5 255.854 522.5 DL 255.854 511.5 255.854
+521.5 DL 271.852 512.5 271.852 522.5 DL 260.854 522.5 255.854 522.5 DL
+261.852 522.5 256.852 522.5 DL 266.852 522.5 261.852 522.5 DL 271.852
+522.5 266.852 522.5 DL 271.852 511.5 271.852 521.5 DL 260.854 511.5
+255.854 511.5 DL 261.852 511.5 256.852 511.5 DL 266.852 511.5 261.852
+511.5 DL 271.852 511.5 266.852 511.5 DL F0 -5.834 7.999(=1 0 3 7)194.722
+520 T F3<ae>1.666 E F0(Send DEL from the editing-k)2.5 E -.15(ey)-.1 G
+(pad Delete k).15 E -.15(ey)-.1 G F1(P)185 536 Q F2(s)-2 3 M 205.404
+528.5 205.404 538.5 DL 205.404 527.5 205.404 537.5 DL 221.402 528.5
+221.402 538.5 DL 210.404 538.5 205.404 538.5 DL 211.402 538.5 206.402
+538.5 DL 216.402 538.5 211.402 538.5 DL 221.402 538.5 216.402 538.5 DL
+221.402 527.5 221.402 537.5 DL 210.404 527.5 205.404 527.5 DL 211.402
+527.5 206.402 527.5 DL 216.402 527.5 211.402 527.5 DL 221.402 527.5
+216.402 527.5 DL 223.068 528.5 223.068 538.5 DL 223.068 527.5 223.068
+537.5 DL 239.066 528.5 239.066 538.5 DL 228.068 538.5 223.068 538.5 DL
+229.066 538.5 224.066 538.5 DL 234.066 538.5 229.066 538.5 DL 239.066
+538.5 234.066 538.5 DL 239.066 527.5 239.066 537.5 DL 228.068 527.5
+223.068 527.5 DL 229.066 527.5 224.066 527.5 DL 234.066 527.5 229.066
+527.5 DL 239.066 527.5 234.066 527.5 DL 240.732 528.5 240.732 538.5 DL
+240.732 527.5 240.732 537.5 DL 256.73 528.5 256.73 538.5 DL 245.732
+538.5 240.732 538.5 DL 246.73 538.5 241.73 538.5 DL 251.73 538.5 246.73
+538.5 DL 256.73 538.5 251.73 538.5 DL 256.73 527.5 256.73 537.5 DL
+245.732 527.5 240.732 527.5 DL 246.73 527.5 241.73 527.5 DL 251.73 527.5
+246.73 527.5 DL 256.73 527.5 251.73 527.5 DL 258.396 528.5 258.396 538.5
+DL 258.396 527.5 258.396 537.5 DL 274.394 528.5 274.394 538.5 DL 263.396
+538.5 258.396 538.5 DL 264.394 538.5 259.394 538.5 DL 269.394 538.5
+264.394 538.5 DL 274.394 538.5 269.394 538.5 DL 274.394 527.5 274.394
+537.5 DL 263.396 527.5 258.396 527.5 DL 264.394 527.5 259.394 527.5 DL
+269.394 527.5 264.394 527.5 DL 274.394 527.5 269.394 527.5 DL F0 -8.376
+9.27(=1 0 4 7)195.993 536 T F3<ae>1.666 E F0 1.271
+(Use Alternate Screen Buf)3.771 F 1.271(fer \(unless disabled by the)
+-.25 F F4(titeIn-)3.771 E(hibit)180 552 Q F0(resource\))2.5 E F1(P)185
+568 Q F2(s)-2 3 M 204.32 560.5 204.32 570.5 DL 204.32 559.5 204.32 569.5
+DL 220.318 560.5 220.318 570.5 DL 209.32 570.5 204.32 570.5 DL 210.318
+570.5 205.318 570.5 DL 215.318 570.5 210.318 570.5 DL 220.318 570.5
+215.318 570.5 DL 220.318 559.5 220.318 569.5 DL 209.32 559.5 204.32
+559.5 DL 210.318 559.5 205.318 559.5 DL 215.318 559.5 210.318 559.5 DL
+220.318 559.5 215.318 559.5 DL 221.984 560.5 221.984 570.5 DL 221.984
+559.5 221.984 569.5 DL 237.982 560.5 237.982 570.5 DL 226.984 570.5
+221.984 570.5 DL 227.982 570.5 222.982 570.5 DL 232.982 570.5 227.982
+570.5 DL 237.982 570.5 232.982 570.5 DL 237.982 559.5 237.982 569.5 DL
+226.984 559.5 221.984 559.5 DL 227.982 559.5 222.982 559.5 DL 232.982
+559.5 227.982 559.5 DL 237.982 559.5 232.982 559.5 DL 239.648 560.5
+239.648 570.5 DL 239.648 559.5 239.648 569.5 DL 255.646 560.5 255.646
+570.5 DL 244.648 570.5 239.648 570.5 DL 245.646 570.5 240.646 570.5 DL
+250.646 570.5 245.646 570.5 DL 255.646 570.5 250.646 570.5 DL 255.646
+559.5 255.646 569.5 DL 244.648 559.5 239.648 559.5 DL 245.646 559.5
+240.646 559.5 DL 250.646 559.5 245.646 559.5 DL 255.646 559.5 250.646
+559.5 DL 257.312 560.5 257.312 570.5 DL 257.312 559.5 257.312 569.5 DL
+273.31 560.5 273.31 570.5 DL 262.312 570.5 257.312 570.5 DL 263.31 570.5
+258.31 570.5 DL 268.31 570.5 263.31 570.5 DL 273.31 570.5 268.31 570.5
+DL 273.31 559.5 273.31 569.5 DL 262.312 559.5 257.312 559.5 DL 263.31
+559.5 258.31 559.5 DL 268.31 559.5 263.31 559.5 DL 273.31 559.5 268.31
+559.5 DL F0 -7.292 8.728(=1 0 4 8)195.451 568 T F3<ae>1.666 E F0(Sa)
+3.229 E 1.029 -.15(ve c)-.2 H .728
+(ursor as in DECSC \(unless disabled by the).15 F F4(titeInhibit)3.228 E
+F0(resource\))180 584 Q F1(P)185 600 Q F2(s)-2 3 M 205.408 592.5 205.408
+602.5 DL 205.408 591.5 205.408 601.5 DL 221.406 592.5 221.406 602.5 DL
+210.408 602.5 205.408 602.5 DL 211.406 602.5 206.406 602.5 DL 216.406
+602.5 211.406 602.5 DL 221.406 602.5 216.406 602.5 DL 221.406 591.5
+221.406 601.5 DL 210.408 591.5 205.408 591.5 DL 211.406 591.5 206.406
+591.5 DL 216.406 591.5 211.406 591.5 DL 221.406 591.5 216.406 591.5 DL
+223.072 592.5 223.072 602.5 DL 223.072 591.5 223.072 601.5 DL 239.07
+592.5 239.07 602.5 DL 228.072 602.5 223.072 602.5 DL 229.07 602.5 224.07
+602.5 DL 234.07 602.5 229.07 602.5 DL 239.07 602.5 234.07 602.5 DL
+239.07 591.5 239.07 601.5 DL 228.072 591.5 223.072 591.5 DL 229.07 591.5
+224.07 591.5 DL 234.07 591.5 229.07 591.5 DL 239.07 591.5 234.07 591.5
+DL 240.736 592.5 240.736 602.5 DL 240.736 591.5 240.736 601.5 DL 256.734
+592.5 256.734 602.5 DL 245.736 602.5 240.736 602.5 DL 246.734 602.5
+241.734 602.5 DL 251.734 602.5 246.734 602.5 DL 256.734 602.5 251.734
+602.5 DL 256.734 591.5 256.734 601.5 DL 245.736 591.5 240.736 591.5 DL
+246.734 591.5 241.734 591.5 DL 251.734 591.5 246.734 591.5 DL 256.734
+591.5 251.734 591.5 DL 258.4 592.5 258.4 602.5 DL 258.4 591.5 258.4
+601.5 DL 274.398 592.5 274.398 602.5 DL 263.4 602.5 258.4 602.5 DL
+264.398 602.5 259.398 602.5 DL 269.398 602.5 264.398 602.5 DL 274.398
+602.5 269.398 602.5 DL 274.398 591.5 274.398 601.5 DL 263.4 591.5 258.4
+591.5 DL 264.398 591.5 259.398 591.5 DL 269.398 591.5 264.398 591.5 DL
+274.398 591.5 269.398 591.5 DL F0 -8.38 9.272(=1 0 4 9)195.995 600 T F3
+<ae>1.666 E F0(Sa)3.773 E 1.573 -.15(ve c)-.2 H 1.273
+(ursor as in DECSC and use Alternate Screen Buf).15 F(fer)-.25 E(,)-.4 E
+(clearing it \214rst \(unless disabled by the)180 616 Q F4(titeInhibit)
+2.5 E F0(resource\))2.5 E F1(P)185 632 Q F2(s)-2 3 M 202.862 624.5
+202.862 634.5 DL 202.862 623.5 202.862 633.5 DL 218.86 624.5 218.86
+634.5 DL 207.862 634.5 202.862 634.5 DL 208.86 634.5 203.86 634.5 DL
+213.86 634.5 208.86 634.5 DL 218.86 634.5 213.86 634.5 DL 218.86 623.5
+218.86 633.5 DL 207.862 623.5 202.862 623.5 DL 208.86 623.5 203.86 623.5
+DL 213.86 623.5 208.86 623.5 DL 218.86 623.5 213.86 623.5 DL 220.526
+624.5 220.526 634.5 DL 220.526 623.5 220.526 633.5 DL 236.524 624.5
+236.524 634.5 DL 225.526 634.5 220.526 634.5 DL 226.524 634.5 221.524
+634.5 DL 231.524 634.5 226.524 634.5 DL 236.524 634.5 231.524 634.5 DL
+236.524 623.5 236.524 633.5 DL 225.526 623.5 220.526 623.5 DL 226.524
+623.5 221.524 623.5 DL 231.524 623.5 226.524 623.5 DL 236.524 623.5
+231.524 623.5 DL 238.19 624.5 238.19 634.5 DL 238.19 623.5 238.19 633.5
+DL 254.188 624.5 254.188 634.5 DL 243.19 634.5 238.19 634.5 DL 244.188
+634.5 239.188 634.5 DL 249.188 634.5 244.188 634.5 DL 254.188 634.5
+249.188 634.5 DL 254.188 623.5 254.188 633.5 DL 243.19 623.5 238.19
+623.5 DL 244.188 623.5 239.188 623.5 DL 249.188 623.5 244.188 623.5 DL
+254.188 623.5 249.188 623.5 DL 255.854 624.5 255.854 634.5 DL 255.854
+623.5 255.854 633.5 DL 271.852 624.5 271.852 634.5 DL 260.854 634.5
+255.854 634.5 DL 261.852 634.5 256.852 634.5 DL 266.852 634.5 261.852
+634.5 DL 271.852 634.5 266.852 634.5 DL 271.852 623.5 271.852 633.5 DL
+260.854 623.5 255.854 623.5 DL 261.852 623.5 256.852 623.5 DL 266.852
+623.5 261.852 623.5 DL 271.852 623.5 266.852 623.5 DL F0 -5.834 7.999
+(=1 0 5 1)194.722 632 T F3<ae>1.666 E F0(Set Sun function-k)2.5 E .3
+-.15(ey m)-.1 H(ode.).15 E F1(P)185 648 Q F2(s)-2 3 M 202.862 640.5
+202.862 650.5 DL 202.862 639.5 202.862 649.5 DL 218.86 640.5 218.86
+650.5 DL 207.862 650.5 202.862 650.5 DL 208.86 650.5 203.86 650.5 DL
+213.86 650.5 208.86 650.5 DL 218.86 650.5 213.86 650.5 DL 218.86 639.5
+218.86 649.5 DL 207.862 639.5 202.862 639.5 DL 208.86 639.5 203.86 639.5
+DL 213.86 639.5 208.86 639.5 DL 218.86 639.5 213.86 639.5 DL 220.526
+640.5 220.526 650.5 DL 220.526 639.5 220.526 649.5 DL 236.524 640.5
+236.524 650.5 DL 225.526 650.5 220.526 650.5 DL 226.524 650.5 221.524
+650.5 DL 231.524 650.5 226.524 650.5 DL 236.524 650.5 231.524 650.5 DL
+236.524 639.5 236.524 649.5 DL 225.526 639.5 220.526 639.5 DL 226.524
+639.5 221.524 639.5 DL 231.524 639.5 226.524 639.5 DL 236.524 639.5
+231.524 639.5 DL 238.19 640.5 238.19 650.5 DL 238.19 639.5 238.19 649.5
+DL 254.188 640.5 254.188 650.5 DL 243.19 650.5 238.19 650.5 DL 244.188
+650.5 239.188 650.5 DL 249.188 650.5 244.188 650.5 DL 254.188 650.5
+249.188 650.5 DL 254.188 639.5 254.188 649.5 DL 243.19 639.5 238.19
+639.5 DL 244.188 639.5 239.188 639.5 DL 249.188 639.5 244.188 639.5 DL
+254.188 639.5 249.188 639.5 DL 255.854 640.5 255.854 650.5 DL 255.854
+639.5 255.854 649.5 DL 271.852 640.5 271.852 650.5 DL 260.854 650.5
+255.854 650.5 DL 261.852 650.5 256.852 650.5 DL 266.852 650.5 261.852
+650.5 DL 271.852 650.5 266.852 650.5 DL 271.852 639.5 271.852 649.5 DL
+260.854 639.5 255.854 639.5 DL 261.852 639.5 256.852 639.5 DL 266.852
+639.5 261.852 639.5 DL 271.852 639.5 266.852 639.5 DL F0 -5.834 7.999
+(=1 0 5 2)194.722 648 T F3<ae>1.666 E F0(Set HP function-k)2.5 E .3 -.15
+(ey m)-.1 H(ode.).15 E F1(P)185 664 Q F2(s)-2 3 M 202.862 656.5 202.862
+666.5 DL 202.862 655.5 202.862 665.5 DL 218.86 656.5 218.86 666.5 DL
+207.862 666.5 202.862 666.5 DL 208.86 666.5 203.86 666.5 DL 213.86 666.5
+208.86 666.5 DL 218.86 666.5 213.86 666.5 DL 218.86 655.5 218.86 665.5
+DL 207.862 655.5 202.862 655.5 DL 208.86 655.5 203.86 655.5 DL 213.86
+655.5 208.86 655.5 DL 218.86 655.5 213.86 655.5 DL 220.526 656.5 220.526
+666.5 DL 220.526 655.5 220.526 665.5 DL 236.524 656.5 236.524 666.5 DL
+225.526 666.5 220.526 666.5 DL 226.524 666.5 221.524 666.5 DL 231.524
+666.5 226.524 666.5 DL 236.524 666.5 231.524 666.5 DL 236.524 655.5
+236.524 665.5 DL 225.526 655.5 220.526 655.5 DL 226.524 655.5 221.524
+655.5 DL 231.524 655.5 226.524 655.5 DL 236.524 655.5 231.524 655.5 DL
+238.19 656.5 238.19 666.5 DL 238.19 655.5 238.19 665.5 DL 254.188 656.5
+254.188 666.5 DL 243.19 666.5 238.19 666.5 DL 244.188 666.5 239.188
+666.5 DL 249.188 666.5 244.188 666.5 DL 254.188 666.5 249.188 666.5 DL
+254.188 655.5 254.188 665.5 DL 243.19 655.5 238.19 655.5 DL 244.188
+655.5 239.188 655.5 DL 249.188 655.5 244.188 655.5 DL 254.188 655.5
+249.188 655.5 DL 255.854 656.5 255.854 666.5 DL 255.854 655.5 255.854
+665.5 DL 271.852 656.5 271.852 666.5 DL 260.854 666.5 255.854 666.5 DL
+261.852 666.5 256.852 666.5 DL 266.852 666.5 261.852 666.5 DL 271.852
+666.5 266.852 666.5 DL 271.852 655.5 271.852 665.5 DL 260.854 655.5
+255.854 655.5 DL 261.852 655.5 256.852 655.5 DL 266.852 655.5 261.852
+655.5 DL 271.852 655.5 266.852 655.5 DL F0 -5.834 7.999(=1 0 6 0)194.722
+664 T F3<ae>1.666 E F0(Set le)2.5 E -.05(ga)-.15 G .3 -.15(cy k).05 H
+-.15(ey).05 G(board emulation \(X11R6\).).15 E F1(P)185 680 Q F2(s)-2 3
+M 202.862 672.5 202.862 682.5 DL 202.862 671.5 202.862 681.5 DL 218.86
+672.5 218.86 682.5 DL 207.862 682.5 202.862 682.5 DL 208.86 682.5 203.86
+682.5 DL 213.86 682.5 208.86 682.5 DL 218.86 682.5 213.86 682.5 DL
+218.86 671.5 218.86 681.5 DL 207.862 671.5 202.862 671.5 DL 208.86 671.5
+203.86 671.5 DL 213.86 671.5 208.86 671.5 DL 218.86 671.5 213.86 671.5
+DL 220.526 672.5 220.526 682.5 DL 220.526 671.5 220.526 681.5 DL 236.524
+672.5 236.524 682.5 DL 225.526 682.5 220.526 682.5 DL 226.524 682.5
+221.524 682.5 DL 231.524 682.5 226.524 682.5 DL 236.524 682.5 231.524
+682.5 DL 236.524 671.5 236.524 681.5 DL 225.526 671.5 220.526 671.5 DL
+226.524 671.5 221.524 671.5 DL 231.524 671.5 226.524 671.5 DL 236.524
+671.5 231.524 671.5 DL 238.19 672.5 238.19 682.5 DL 238.19 671.5 238.19
+681.5 DL 254.188 672.5 254.188 682.5 DL 243.19 682.5 238.19 682.5 DL
+244.188 682.5 239.188 682.5 DL 249.188 682.5 244.188 682.5 DL 254.188
+682.5 249.188 682.5 DL 254.188 671.5 254.188 681.5 DL 243.19 671.5
+238.19 671.5 DL 244.188 671.5 239.188 671.5 DL 249.188 671.5 244.188
+671.5 DL 254.188 671.5 249.188 671.5 DL 255.854 672.5 255.854 682.5 DL
+255.854 671.5 255.854 681.5 DL 271.852 672.5 271.852 682.5 DL 260.854
+682.5 255.854 682.5 DL 261.852 682.5 256.852 682.5 DL 266.852 682.5
+261.852 682.5 DL 271.852 682.5 266.852 682.5 DL 271.852 671.5 271.852
+681.5 DL 260.854 671.5 255.854 671.5 DL 261.852 671.5 256.852 671.5 DL
+266.852 671.5 261.852 671.5 DL 271.852 671.5 266.852 671.5 DL F0 -5.834
+7.999(=1 0 6 1)194.722 680 T F3<ae>1.666 E F0(Set Sun/PC k)2.5 E -.15
+(ey)-.1 G(board emulation of VT220 k).15 E -.15(ey)-.1 G(board.).15 E 72
+688.5 72 698.5 DL 72 687.5 72 697.5 DL 87.998 688.5 87.998 698.5 DL 77
+698.5 72 698.5 DL 77.998 698.5 72.998 698.5 DL 82.998 698.5 77.998 698.5
+DL 87.998 698.5 82.998 698.5 DL 87.998 687.5 87.998 697.5 DL 77 687.5 72
+687.5 DL 77.998 687.5 72.998 687.5 DL 82.998 687.5 77.998 687.5 DL
+87.998 687.5 82.998 687.5 DL/F5 6/Times-Roman@0 SF(CSI)75.331 695 Q F1
+(P)4.997 1 M 101.216 688.5 101.216 698.5 DL 101.216 687.5 101.216 697.5
+DL F2(m)93.774 699 Q 117.214 688.5 117.214 698.5 DL 106.216 698.5
+101.216 698.5 DL 107.214 698.5 102.214 698.5 DL 112.214 698.5 107.214
+698.5 DL 117.214 698.5 112.214 698.5 DL 117.214 687.5 117.214 697.5 DL
+106.216 687.5 101.216 687.5 DL 107.214 687.5 102.214 687.5 DL 112.214
+687.5 107.214 687.5 DL 117.214 687.5 112.214 687.5 DL F0 69.395(iM)
+107.825 696 S(edia Cop)-69.395 E 2.5(y\()-.1 G(MC\))-2.5 E F1(P)185 712
+Q F2(s)-2 3 M 202.862 704.5 202.862 714.5 DL 202.862 703.5 202.862 713.5
+DL 218.86 704.5 218.86 714.5 DL 207.862 714.5 202.862 714.5 DL 208.86
+714.5 203.86 714.5 DL 213.86 714.5 208.86 714.5 DL 218.86 714.5 213.86
+714.5 DL 218.86 703.5 218.86 713.5 DL 207.862 703.5 202.862 703.5 DL
+208.86 703.5 203.86 703.5 DL 213.86 703.5 208.86 703.5 DL 218.86 703.5
+213.86 703.5 DL F0 7.999(=0)194.722 712 S F3<ae>1.666 E F0
+(Print screen \(def)2.5 E(ault\))-.1 E F1(P)185 728 Q F2(s)-2 3 M
+202.862 720.5 202.862 730.5 DL 202.862 719.5 202.862 729.5 DL 218.86
+720.5 218.86 730.5 DL 207.862 730.5 202.862 730.5 DL 208.86 730.5 203.86
+730.5 DL 213.86 730.5 208.86 730.5 DL 218.86 730.5 213.86 730.5 DL
+218.86 719.5 218.86 729.5 DL 207.862 719.5 202.862 719.5 DL 208.86 719.5
+203.86 719.5 DL 213.86 719.5 208.86 719.5 DL 218.86 719.5 213.86 719.5
+DL F0 7.999(=4)194.722 728 S F3<ae>1.666 E F0 -.45(Tu)2.5 G(rn of).45 E
+2.5(fp)-.25 G(rinter controller mode)-2.5 E(7)303.5 772 Q EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E/F1 10/Times-Italic@0 SF(P)185 88 Q/F2 8/Times-Italic@0 SF(s)-2
+3 M .4 LW 202.862 80.5 202.862 90.5 DL 202.862 79.5 202.862 89.5 DL
+218.86 80.5 218.86 90.5 DL 207.862 90.5 202.862 90.5 DL 208.86 90.5
+203.86 90.5 DL 213.86 90.5 208.86 90.5 DL 218.86 90.5 213.86 90.5 DL
+218.86 79.5 218.86 89.5 DL 207.862 79.5 202.862 79.5 DL 208.86 79.5
+203.86 79.5 DL 213.86 79.5 208.86 79.5 DL 218.86 79.5 213.86 79.5 DL F0
+7.999(=5)194.722 88 S/F3 10/Symbol SF<ae>1.666 E F0 -.45(Tu)2.5 G
+(rn on printer controller mode).45 E 72 96.5 72 106.5 DL 72 95.5 72
+105.5 DL 87.998 96.5 87.998 106.5 DL 77 106.5 72 106.5 DL 77.998 106.5
+72.998 106.5 DL 82.998 106.5 77.998 106.5 DL 87.998 106.5 82.998 106.5
+DL 87.998 95.5 87.998 105.5 DL 77 95.5 72 95.5 DL 77.998 95.5 72.998
+95.5 DL 82.998 95.5 77.998 95.5 DL 87.998 95.5 82.998 95.5 DL 89.664
+96.5 89.664 106.5 DL 89.664 95.5 89.664 105.5 DL/F4 6/Times-Roman@0 SF
+(CSI)75.331 103 Q 105.662 96.5 105.662 106.5 DL 94.664 106.5 89.664
+106.5 DL 95.662 106.5 90.662 106.5 DL 100.662 106.5 95.662 106.5 DL
+105.662 106.5 100.662 106.5 DL 105.662 95.5 105.662 105.5 DL 94.664 95.5
+89.664 95.5 DL 95.662 95.5 90.662 95.5 DL 100.662 95.5 95.662 95.5 DL
+105.662 95.5 100.662 95.5 DL F0(?)95.443 104 Q F1(P)7.445 E 118.88 96.5
+118.88 106.5 DL 118.88 95.5 118.88 105.5 DL F2(m)111.438 107 Q 134.878
+96.5 134.878 106.5 DL 123.88 106.5 118.88 106.5 DL 124.878 106.5 119.878
+106.5 DL 129.878 106.5 124.878 106.5 DL 134.878 106.5 129.878 106.5 DL
+134.878 95.5 134.878 105.5 DL 123.88 95.5 118.88 95.5 DL 124.878 95.5
+119.878 95.5 DL 129.878 95.5 124.878 95.5 DL 134.878 95.5 129.878 95.5
+DL F0 51.731(iM)125.489 104 S(edia Cop)-51.731 E 2.5(y\()-.1 G
+(MC, DEC-speci\214c\))-2.5 E F1(P)185 120 Q F2(s)-2 3 M 202.862 112.5
+202.862 122.5 DL 202.862 111.5 202.862 121.5 DL 218.86 112.5 218.86
+122.5 DL 207.862 122.5 202.862 122.5 DL 208.86 122.5 203.86 122.5 DL
+213.86 122.5 208.86 122.5 DL 218.86 122.5 213.86 122.5 DL 218.86 111.5
+218.86 121.5 DL 207.862 111.5 202.862 111.5 DL 208.86 111.5 203.86 111.5
+DL 213.86 111.5 208.86 111.5 DL 218.86 111.5 213.86 111.5 DL F0 7.999
+(=1)194.722 120 S F3<ae>1.666 E F0(Print line containing cursor)2.5 E F1
+(P)185 136 Q F2(s)-2 3 M 202.862 128.5 202.862 138.5 DL 202.862 127.5
+202.862 137.5 DL 218.86 128.5 218.86 138.5 DL 207.862 138.5 202.862
+138.5 DL 208.86 138.5 203.86 138.5 DL 213.86 138.5 208.86 138.5 DL
+218.86 138.5 213.86 138.5 DL 218.86 127.5 218.86 137.5 DL 207.862 127.5
+202.862 127.5 DL 208.86 127.5 203.86 127.5 DL 213.86 127.5 208.86 127.5
+DL 218.86 127.5 213.86 127.5 DL F0 7.999(=4)194.722 136 S F3<ae>1.666 E
+F0 -.45(Tu)2.5 G(rn of).45 E 2.5(fa)-.25 G(utoprint mode)-2.5 E F1(P)185
+152 Q F2(s)-2 3 M 202.862 144.5 202.862 154.5 DL 202.862 143.5 202.862
+153.5 DL 218.86 144.5 218.86 154.5 DL 207.862 154.5 202.862 154.5 DL
+208.86 154.5 203.86 154.5 DL 213.86 154.5 208.86 154.5 DL 218.86 154.5
+213.86 154.5 DL 218.86 143.5 218.86 153.5 DL 207.862 143.5 202.862 143.5
+DL 208.86 143.5 203.86 143.5 DL 213.86 143.5 208.86 143.5 DL 218.86
+143.5 213.86 143.5 DL F0 7.999(=5)194.722 152 S F3<ae>1.666 E F0 -.45
+(Tu)2.5 G(rn on autoprint mode).45 E F1(P)185 168 Q F2(s)-2 3 M 202.862
+160.5 202.862 170.5 DL 202.862 159.5 202.862 169.5 DL 218.86 160.5
+218.86 170.5 DL 207.862 170.5 202.862 170.5 DL 208.86 170.5 203.86 170.5
+DL 213.86 170.5 208.86 170.5 DL 218.86 170.5 213.86 170.5 DL 218.86
+159.5 218.86 169.5 DL 207.862 159.5 202.862 159.5 DL 208.86 159.5 203.86
+159.5 DL 213.86 159.5 208.86 159.5 DL 218.86 159.5 213.86 159.5 DL
+223.026 160.5 223.026 170.5 DL 223.026 159.5 223.026 169.5 DL 239.024
+160.5 239.024 170.5 DL 228.026 170.5 223.026 170.5 DL 229.024 170.5
+224.024 170.5 DL 234.024 170.5 229.024 170.5 DL 239.024 170.5 234.024
+170.5 DL 239.024 159.5 239.024 169.5 DL 228.026 159.5 223.026 159.5 DL
+229.024 159.5 224.024 159.5 DL 234.024 159.5 229.024 159.5 DL 239.024
+159.5 234.024 159.5 DL F0 -3.334 7.999(=1 0)194.722 168 T F3<ae>1.666 E
+F0(Print composed display)2.5 E 2.5(,i)-.65 G(gnores DECPEX)-2.5 E F1(P)
+185 184 Q F2(s)-2 3 M 202.862 176.5 202.862 186.5 DL 202.862 175.5
+202.862 185.5 DL 218.86 176.5 218.86 186.5 DL 207.862 186.5 202.862
+186.5 DL 208.86 186.5 203.86 186.5 DL 213.86 186.5 208.86 186.5 DL
+218.86 186.5 213.86 186.5 DL 218.86 175.5 218.86 185.5 DL 207.862 175.5
+202.862 175.5 DL 208.86 175.5 203.86 175.5 DL 213.86 175.5 208.86 175.5
+DL 218.86 175.5 213.86 175.5 DL 223.026 176.5 223.026 186.5 DL 223.026
+175.5 223.026 185.5 DL 239.024 176.5 239.024 186.5 DL 228.026 186.5
+223.026 186.5 DL 229.024 186.5 224.024 186.5 DL 234.024 186.5 229.024
+186.5 DL 239.024 186.5 234.024 186.5 DL 239.024 175.5 239.024 185.5 DL
+228.026 175.5 223.026 175.5 DL 229.024 175.5 224.024 175.5 DL 234.024
+175.5 229.024 175.5 DL 239.024 175.5 234.024 175.5 DL F0 -3.334 7.999
+(=1 1)194.722 184 T F3<ae>1.666 E F0(Print all pages)2.5 E 72 192.5 72
+202.5 DL 72 191.5 72 201.5 DL 87.998 192.5 87.998 202.5 DL 77 202.5 72
+202.5 DL 77.998 202.5 72.998 202.5 DL 82.998 202.5 77.998 202.5 DL
+87.998 202.5 82.998 202.5 DL 87.998 191.5 87.998 201.5 DL 77 191.5 72
+191.5 DL 77.998 191.5 72.998 191.5 DL 82.998 191.5 77.998 191.5 DL
+87.998 191.5 82.998 191.5 DL F4(CSI)75.331 199 Q F1(P)4.997 1 M 101.216
+192.5 101.216 202.5 DL 101.216 191.5 101.216 201.5 DL F2(m)93.774 203 Q
+117.214 192.5 117.214 202.5 DL 106.216 202.5 101.216 202.5 DL 107.214
+202.5 102.214 202.5 DL 112.214 202.5 107.214 202.5 DL 117.214 202.5
+112.214 202.5 DL 117.214 191.5 117.214 201.5 DL 106.216 191.5 101.216
+191.5 DL 107.214 191.5 102.214 191.5 DL 112.214 191.5 107.214 191.5 DL
+117.214 191.5 112.214 191.5 DL F0 69.395(lR)107.825 200 S
+(eset Mode \(RM\))-69.395 E F1(P)185 216 Q F2(s)-2 3 M 202.862 208.5
+202.862 218.5 DL 202.862 207.5 202.862 217.5 DL 218.86 208.5 218.86
+218.5 DL 207.862 218.5 202.862 218.5 DL 208.86 218.5 203.86 218.5 DL
+213.86 218.5 208.86 218.5 DL 218.86 218.5 213.86 218.5 DL 218.86 207.5
+218.86 217.5 DL 207.862 207.5 202.862 207.5 DL 208.86 207.5 203.86 207.5
+DL 213.86 207.5 208.86 207.5 DL 218.86 207.5 213.86 207.5 DL F0 7.999
+(=2)194.722 216 S F3<ae>1.666 E F0 -2.15 -.25(Ke y)2.5 H
+(board Action Mode \(AM\)).25 E F1(P)185 232 Q F2(s)-2 3 M 202.862 224.5
+202.862 234.5 DL 202.862 223.5 202.862 233.5 DL 218.86 224.5 218.86
+234.5 DL 207.862 234.5 202.862 234.5 DL 208.86 234.5 203.86 234.5 DL
+213.86 234.5 208.86 234.5 DL 218.86 234.5 213.86 234.5 DL 218.86 223.5
+218.86 233.5 DL 207.862 223.5 202.862 223.5 DL 208.86 223.5 203.86 223.5
+DL 213.86 223.5 208.86 223.5 DL 218.86 223.5 213.86 223.5 DL F0 7.999
+(=4)194.722 232 S F3<ae>1.666 E F0(Replace Mode \(IRM\))2.5 E F1(P)185
+248 Q F2(s)-2 3 M 202.862 240.5 202.862 250.5 DL 202.862 239.5 202.862
+249.5 DL 218.86 240.5 218.86 250.5 DL 207.862 250.5 202.862 250.5 DL
+208.86 250.5 203.86 250.5 DL 213.86 250.5 208.86 250.5 DL 218.86 250.5
+213.86 250.5 DL 218.86 239.5 218.86 249.5 DL 207.862 239.5 202.862 239.5
+DL 208.86 239.5 203.86 239.5 DL 213.86 239.5 208.86 239.5 DL 218.86
+239.5 213.86 239.5 DL 220.526 240.5 220.526 250.5 DL 220.526 239.5
+220.526 249.5 DL 236.524 240.5 236.524 250.5 DL 225.526 250.5 220.526
+250.5 DL 226.524 250.5 221.524 250.5 DL 231.524 250.5 226.524 250.5 DL
+236.524 250.5 231.524 250.5 DL 236.524 239.5 236.524 249.5 DL 225.526
+239.5 220.526 239.5 DL 226.524 239.5 221.524 239.5 DL 231.524 239.5
+226.524 239.5 DL 236.524 239.5 231.524 239.5 DL F0 -5.834 7.999(=1 2)
+194.722 248 T F3<ae>1.666 E F0(Send/recei)2.5 E .3 -.15(ve \()-.25 H
+(SRM\)).15 E F1(P)185 264 Q F2(s)-2 3 M 202.862 256.5 202.862 266.5 DL
+202.862 255.5 202.862 265.5 DL 218.86 256.5 218.86 266.5 DL 207.862
+266.5 202.862 266.5 DL 208.86 266.5 203.86 266.5 DL 213.86 266.5 208.86
+266.5 DL 218.86 266.5 213.86 266.5 DL 218.86 255.5 218.86 265.5 DL
+207.862 255.5 202.862 255.5 DL 208.86 255.5 203.86 255.5 DL 213.86 255.5
+208.86 255.5 DL 218.86 255.5 213.86 255.5 DL 220.526 256.5 220.526 266.5
+DL 220.526 255.5 220.526 265.5 DL 236.524 256.5 236.524 266.5 DL 225.526
+266.5 220.526 266.5 DL 226.524 266.5 221.524 266.5 DL 231.524 266.5
+226.524 266.5 DL 236.524 266.5 231.524 266.5 DL 236.524 255.5 236.524
+265.5 DL 225.526 255.5 220.526 255.5 DL 226.524 255.5 221.524 255.5 DL
+231.524 255.5 226.524 255.5 DL 236.524 255.5 231.524 255.5 DL F0 -5.834
+7.999(=2 0)194.722 264 T F3<ae>1.666 E F0(Normal Linefeed \(LNM\))2.5 E
+72 272.5 72 282.5 DL 72 271.5 72 281.5 DL 87.998 272.5 87.998 282.5 DL
+77 282.5 72 282.5 DL 77.998 282.5 72.998 282.5 DL 82.998 282.5 77.998
+282.5 DL 87.998 282.5 82.998 282.5 DL 87.998 271.5 87.998 281.5 DL 77
+271.5 72 271.5 DL 77.998 271.5 72.998 271.5 DL 82.998 271.5 77.998 271.5
+DL 87.998 271.5 82.998 271.5 DL 89.664 272.5 89.664 282.5 DL 89.664
+271.5 89.664 281.5 DL F4(CSI)75.331 279 Q 105.662 272.5 105.662 282.5 DL
+94.664 282.5 89.664 282.5 DL 95.662 282.5 90.662 282.5 DL 100.662 282.5
+95.662 282.5 DL 105.662 282.5 100.662 282.5 DL 105.662 271.5 105.662
+281.5 DL 94.664 271.5 89.664 271.5 DL 95.662 271.5 90.662 271.5 DL
+100.662 271.5 95.662 271.5 DL 105.662 271.5 100.662 271.5 DL F0(?)95.443
+280 Q F1(P)7.445 E 118.88 272.5 118.88 282.5 DL 118.88 271.5 118.88
+281.5 DL F2(m)111.438 283 Q 134.878 272.5 134.878 282.5 DL 123.88 282.5
+118.88 282.5 DL 124.878 282.5 119.878 282.5 DL 129.878 282.5 124.878
+282.5 DL 134.878 282.5 129.878 282.5 DL 134.878 271.5 134.878 281.5 DL
+123.88 271.5 118.88 271.5 DL 124.878 271.5 119.878 271.5 DL 129.878
+271.5 124.878 271.5 DL 134.878 271.5 129.878 271.5 DL F0 51.731(lD)
+125.489 280 S(EC Pri)-51.731 E -.25(va)-.25 G(te Mode Reset \(DECRST\))
+.25 E F1(P)185 296 Q F2(s)-2 3 M 202.862 288.5 202.862 298.5 DL 202.862
+287.5 202.862 297.5 DL 218.86 288.5 218.86 298.5 DL 207.862 298.5
+202.862 298.5 DL 208.86 298.5 203.86 298.5 DL 213.86 298.5 208.86 298.5
+DL 218.86 298.5 213.86 298.5 DL 218.86 287.5 218.86 297.5 DL 207.862
+287.5 202.862 287.5 DL 208.86 287.5 203.86 287.5 DL 213.86 287.5 208.86
+287.5 DL 218.86 287.5 213.86 287.5 DL F0 7.999(=1)194.722 296 S F3<ae>
+1.666 E F0(Normal Cursor K)2.5 E -.15(ey)-.25 G 2.5(s\().15 G(DECCKM\))
+-2.5 E F1(P)185 312 Q F2(s)-2 3 M 202.862 304.5 202.862 314.5 DL 202.862
+303.5 202.862 313.5 DL 218.86 304.5 218.86 314.5 DL 207.862 314.5
+202.862 314.5 DL 208.86 314.5 203.86 314.5 DL 213.86 314.5 208.86 314.5
+DL 218.86 314.5 213.86 314.5 DL 218.86 303.5 218.86 313.5 DL 207.862
+303.5 202.862 303.5 DL 208.86 303.5 203.86 303.5 DL 213.86 303.5 208.86
+303.5 DL 218.86 303.5 213.86 303.5 DL F0 7.999(=2)194.722 312 S F3<ae>
+1.666 E F0(Designate VT52 mode \(DECANM\).)2.5 E F1(P)185 328 Q F2(s)-2
+3 M 202.862 320.5 202.862 330.5 DL 202.862 319.5 202.862 329.5 DL 218.86
+320.5 218.86 330.5 DL 207.862 330.5 202.862 330.5 DL 208.86 330.5 203.86
+330.5 DL 213.86 330.5 208.86 330.5 DL 218.86 330.5 213.86 330.5 DL
+218.86 319.5 218.86 329.5 DL 207.862 319.5 202.862 319.5 DL 208.86 319.5
+203.86 319.5 DL 213.86 319.5 208.86 319.5 DL 218.86 319.5 213.86 319.5
+DL F0 7.999(=3)194.722 328 S F3<ae>1.666 E F0
+(80 Column Mode \(DECCOLM\))2.5 E F1(P)185 344 Q F2(s)-2 3 M 202.862
+336.5 202.862 346.5 DL 202.862 335.5 202.862 345.5 DL 218.86 336.5
+218.86 346.5 DL 207.862 346.5 202.862 346.5 DL 208.86 346.5 203.86 346.5
+DL 213.86 346.5 208.86 346.5 DL 218.86 346.5 213.86 346.5 DL 218.86
+335.5 218.86 345.5 DL 207.862 335.5 202.862 335.5 DL 208.86 335.5 203.86
+335.5 DL 213.86 335.5 208.86 335.5 DL 218.86 335.5 213.86 335.5 DL F0
+7.999(=4)194.722 344 S F3<ae>1.666 E F0(Jump \(F)2.5 E
+(ast\) Scroll \(DECSCLM\))-.15 E F1(P)185 360 Q F2(s)-2 3 M 202.862
+352.5 202.862 362.5 DL 202.862 351.5 202.862 361.5 DL 218.86 352.5
+218.86 362.5 DL 207.862 362.5 202.862 362.5 DL 208.86 362.5 203.86 362.5
+DL 213.86 362.5 208.86 362.5 DL 218.86 362.5 213.86 362.5 DL 218.86
+351.5 218.86 361.5 DL 207.862 351.5 202.862 351.5 DL 208.86 351.5 203.86
+351.5 DL 213.86 351.5 208.86 351.5 DL 218.86 351.5 213.86 351.5 DL F0
+7.999(=5)194.722 360 S F3<ae>1.666 E F0(Normal V)2.5 E(ideo \(DECSCNM\))
+-.6 E F1(P)185 376 Q F2(s)-2 3 M 202.862 368.5 202.862 378.5 DL 202.862
+367.5 202.862 377.5 DL 218.86 368.5 218.86 378.5 DL 207.862 378.5
+202.862 378.5 DL 208.86 378.5 203.86 378.5 DL 213.86 378.5 208.86 378.5
+DL 218.86 378.5 213.86 378.5 DL 218.86 367.5 218.86 377.5 DL 207.862
+367.5 202.862 367.5 DL 208.86 367.5 203.86 367.5 DL 213.86 367.5 208.86
+367.5 DL 218.86 367.5 213.86 367.5 DL F0 7.999(=6)194.722 376 S F3<ae>
+1.666 E F0(Normal Cursor Mode \(DECOM\))2.5 E F1(P)185 392 Q F2(s)-2 3 M
+202.862 384.5 202.862 394.5 DL 202.862 383.5 202.862 393.5 DL 218.86
+384.5 218.86 394.5 DL 207.862 394.5 202.862 394.5 DL 208.86 394.5 203.86
+394.5 DL 213.86 394.5 208.86 394.5 DL 218.86 394.5 213.86 394.5 DL
+218.86 383.5 218.86 393.5 DL 207.862 383.5 202.862 383.5 DL 208.86 383.5
+203.86 383.5 DL 213.86 383.5 208.86 383.5 DL 218.86 383.5 213.86 383.5
+DL F0 7.999(=7)194.722 392 S F3<ae>1.666 E F0(No Wraparound Mode \(DECA)
+2.5 E(WM\))-.9 E F1(P)185 408 Q F2(s)-2 3 M 202.862 400.5 202.862 410.5
+DL 202.862 399.5 202.862 409.5 DL 218.86 400.5 218.86 410.5 DL 207.862
+410.5 202.862 410.5 DL 208.86 410.5 203.86 410.5 DL 213.86 410.5 208.86
+410.5 DL 218.86 410.5 213.86 410.5 DL 218.86 399.5 218.86 409.5 DL
+207.862 399.5 202.862 399.5 DL 208.86 399.5 203.86 399.5 DL 213.86 399.5
+208.86 399.5 DL 218.86 399.5 213.86 399.5 DL F0 7.999(=8)194.722 408 S
+F3<ae>1.666 E F0(No Auto-repeat K)2.5 E -.15(ey)-.25 G 2.5(s\().15 G
+(DECARM\))-2.5 E F1(P)185 424 Q F2(s)-2 3 M 202.862 416.5 202.862 426.5
+DL 202.862 415.5 202.862 425.5 DL 218.86 416.5 218.86 426.5 DL 207.862
+426.5 202.862 426.5 DL 208.86 426.5 203.86 426.5 DL 213.86 426.5 208.86
+426.5 DL 218.86 426.5 213.86 426.5 DL 218.86 415.5 218.86 425.5 DL
+207.862 415.5 202.862 415.5 DL 208.86 415.5 203.86 415.5 DL 213.86 415.5
+208.86 415.5 DL 218.86 415.5 213.86 415.5 DL F0 7.999(=9)194.722 424 S
+F3<ae>1.666 E F0(Don')2.5 E 2.5(tS)-.18 G(end Mouse X & Y on b)-2.5 E
+(utton press)-.2 E F1(P)185 440 Q F2(s)-2 3 M 202.862 432.5 202.862
+442.5 DL 202.862 431.5 202.862 441.5 DL 218.86 432.5 218.86 442.5 DL
+207.862 442.5 202.862 442.5 DL 208.86 442.5 203.86 442.5 DL 213.86 442.5
+208.86 442.5 DL 218.86 442.5 213.86 442.5 DL 218.86 431.5 218.86 441.5
+DL 207.862 431.5 202.862 431.5 DL 208.86 431.5 203.86 431.5 DL 213.86
+431.5 208.86 431.5 DL 218.86 431.5 213.86 431.5 DL 220.526 432.5 220.526
+442.5 DL 220.526 431.5 220.526 441.5 DL 236.524 432.5 236.524 442.5 DL
+225.526 442.5 220.526 442.5 DL 226.524 442.5 221.524 442.5 DL 231.524
+442.5 226.524 442.5 DL 236.524 442.5 231.524 442.5 DL 236.524 431.5
+236.524 441.5 DL 225.526 431.5 220.526 431.5 DL 226.524 431.5 221.524
+431.5 DL 231.524 431.5 226.524 431.5 DL 236.524 431.5 231.524 431.5 DL
+F0 -5.834 7.999(=1 8)194.722 440 T F3<ae>1.666 E F0(Don')2.5 E 2.5(tp)
+-.18 G(rint form feed \(DECPFF\))-2.5 E F1(P)185 456 Q F2(s)-2 3 M
+202.862 448.5 202.862 458.5 DL 202.862 447.5 202.862 457.5 DL 218.86
+448.5 218.86 458.5 DL 207.862 458.5 202.862 458.5 DL 208.86 458.5 203.86
+458.5 DL 213.86 458.5 208.86 458.5 DL 218.86 458.5 213.86 458.5 DL
+218.86 447.5 218.86 457.5 DL 207.862 447.5 202.862 447.5 DL 208.86 447.5
+203.86 447.5 DL 213.86 447.5 208.86 447.5 DL 218.86 447.5 213.86 447.5
+DL 220.526 448.5 220.526 458.5 DL 220.526 447.5 220.526 457.5 DL 236.524
+448.5 236.524 458.5 DL 225.526 458.5 220.526 458.5 DL 226.524 458.5
+221.524 458.5 DL 231.524 458.5 226.524 458.5 DL 236.524 458.5 231.524
+458.5 DL 236.524 447.5 236.524 457.5 DL 225.526 447.5 220.526 447.5 DL
+226.524 447.5 221.524 447.5 DL 231.524 447.5 226.524 447.5 DL 236.524
+447.5 231.524 447.5 DL F0 -5.834 7.999(=1 9)194.722 456 T F3<ae>1.666 E
+F0(Limit print to scrolling re)2.5 E(gion \(DECPEX\))-.15 E F1(P)185 472
+Q F2(s)-2 3 M 202.862 464.5 202.862 474.5 DL 202.862 463.5 202.862 473.5
+DL 218.86 464.5 218.86 474.5 DL 207.862 474.5 202.862 474.5 DL 208.86
+474.5 203.86 474.5 DL 213.86 474.5 208.86 474.5 DL 218.86 474.5 213.86
+474.5 DL 218.86 463.5 218.86 473.5 DL 207.862 463.5 202.862 463.5 DL
+208.86 463.5 203.86 463.5 DL 213.86 463.5 208.86 463.5 DL 218.86 463.5
+213.86 463.5 DL 220.526 464.5 220.526 474.5 DL 220.526 463.5 220.526
+473.5 DL 236.524 464.5 236.524 474.5 DL 225.526 474.5 220.526 474.5 DL
+226.524 474.5 221.524 474.5 DL 231.524 474.5 226.524 474.5 DL 236.524
+474.5 231.524 474.5 DL 236.524 463.5 236.524 473.5 DL 225.526 463.5
+220.526 463.5 DL 226.524 463.5 221.524 463.5 DL 231.524 463.5 226.524
+463.5 DL 236.524 463.5 231.524 463.5 DL F0 -5.834 7.999(=2 5)194.722 472
+T F3<ae>1.666 E F0(Hide Cursor \(DECTCEM\))2.5 E F1(P)185 488 Q F2(s)-2
+3 M 202.862 480.5 202.862 490.5 DL 202.862 479.5 202.862 489.5 DL 218.86
+480.5 218.86 490.5 DL 207.862 490.5 202.862 490.5 DL 208.86 490.5 203.86
+490.5 DL 213.86 490.5 208.86 490.5 DL 218.86 490.5 213.86 490.5 DL
+218.86 479.5 218.86 489.5 DL 207.862 479.5 202.862 479.5 DL 208.86 479.5
+203.86 479.5 DL 213.86 479.5 208.86 479.5 DL 218.86 479.5 213.86 479.5
+DL 220.526 480.5 220.526 490.5 DL 220.526 479.5 220.526 489.5 DL 236.524
+480.5 236.524 490.5 DL 225.526 490.5 220.526 490.5 DL 226.524 490.5
+221.524 490.5 DL 231.524 490.5 226.524 490.5 DL 236.524 490.5 231.524
+490.5 DL 236.524 479.5 236.524 489.5 DL 225.526 479.5 220.526 479.5 DL
+226.524 479.5 221.524 479.5 DL 231.524 479.5 226.524 479.5 DL 236.524
+479.5 231.524 479.5 DL F0 -5.834 7.999(=3 0)194.722 488 T F3<ae>1.666 E
+F0(Don')2.5 E 2.5(ts)-.18 G(ho)-2.5 E 2.5(ws)-.25 G(crollbar \(rxvt\).)
+-2.5 E F1(P)185 504 Q F2(s)-2 3 M 202.862 496.5 202.862 506.5 DL 202.862
+495.5 202.862 505.5 DL 218.86 496.5 218.86 506.5 DL 207.862 506.5
+202.862 506.5 DL 208.86 506.5 203.86 506.5 DL 213.86 506.5 208.86 506.5
+DL 218.86 506.5 213.86 506.5 DL 218.86 495.5 218.86 505.5 DL 207.862
+495.5 202.862 495.5 DL 208.86 495.5 203.86 495.5 DL 213.86 495.5 208.86
+495.5 DL 218.86 495.5 213.86 495.5 DL 220.526 496.5 220.526 506.5 DL
+220.526 495.5 220.526 505.5 DL 236.524 496.5 236.524 506.5 DL 225.526
+506.5 220.526 506.5 DL 226.524 506.5 221.524 506.5 DL 231.524 506.5
+226.524 506.5 DL 236.524 506.5 231.524 506.5 DL 236.524 495.5 236.524
+505.5 DL 225.526 495.5 220.526 495.5 DL 226.524 495.5 221.524 495.5 DL
+231.524 495.5 226.524 495.5 DL 236.524 495.5 231.524 495.5 DL F0 -5.834
+7.999(=3 5)194.722 504 T F3<ae>1.666 E F0
+(Disable font-shifting functions \(rxvt\).)2.5 E F1(P)185 520 Q F2(s)-2
+3 M 202.862 512.5 202.862 522.5 DL 202.862 511.5 202.862 521.5 DL 218.86
+512.5 218.86 522.5 DL 207.862 522.5 202.862 522.5 DL 208.86 522.5 203.86
+522.5 DL 213.86 522.5 208.86 522.5 DL 218.86 522.5 213.86 522.5 DL
+218.86 511.5 218.86 521.5 DL 207.862 511.5 202.862 511.5 DL 208.86 511.5
+203.86 511.5 DL 213.86 511.5 208.86 511.5 DL 218.86 511.5 213.86 511.5
+DL 220.526 512.5 220.526 522.5 DL 220.526 511.5 220.526 521.5 DL 236.524
+512.5 236.524 522.5 DL 225.526 522.5 220.526 522.5 DL 226.524 522.5
+221.524 522.5 DL 231.524 522.5 226.524 522.5 DL 236.524 522.5 231.524
+522.5 DL 236.524 511.5 236.524 521.5 DL 225.526 511.5 220.526 511.5 DL
+226.524 511.5 221.524 511.5 DL 231.524 511.5 226.524 511.5 DL 236.524
+511.5 231.524 511.5 DL F0 -5.834 7.999(=4 0)194.722 520 T F3<ae>1.666 E
+F0(Disallo)2.5 E 2.5(w8)-.25 G(0)-2.5 E F3 -9.87<acae>2.5 G F0(132 Mode)
+12.37 E F1(P)185 536 Q F2(s)-2 3 M 202.862 528.5 202.862 538.5 DL
+202.862 527.5 202.862 537.5 DL 218.86 528.5 218.86 538.5 DL 207.862
+538.5 202.862 538.5 DL 208.86 538.5 203.86 538.5 DL 213.86 538.5 208.86
+538.5 DL 218.86 538.5 213.86 538.5 DL 218.86 527.5 218.86 537.5 DL
+207.862 527.5 202.862 527.5 DL 208.86 527.5 203.86 527.5 DL 213.86 527.5
+208.86 527.5 DL 218.86 527.5 213.86 527.5 DL 220.526 528.5 220.526 538.5
+DL 220.526 527.5 220.526 537.5 DL 236.524 528.5 236.524 538.5 DL 225.526
+538.5 220.526 538.5 DL 226.524 538.5 221.524 538.5 DL 231.524 538.5
+226.524 538.5 DL 236.524 538.5 231.524 538.5 DL 236.524 527.5 236.524
+537.5 DL 225.526 527.5 220.526 527.5 DL 226.524 527.5 221.524 527.5 DL
+231.524 527.5 226.524 527.5 DL 236.524 527.5 231.524 527.5 DL F0 -5.834
+7.999(=4 1)194.722 536 T F3<ae>1.666 E F0(No)2.5 E F1(mor)2.5 E(e)-.37 E
+F0(\(1\) \214x \(see)A F1(cur)2.5 E(ses)-.1 E F0(resource\))2.5 E F1(P)
+185 552 Q F2(s)-2 3 M 202.862 544.5 202.862 554.5 DL 202.862 543.5
+202.862 553.5 DL 218.86 544.5 218.86 554.5 DL 207.862 554.5 202.862
+554.5 DL 208.86 554.5 203.86 554.5 DL 213.86 554.5 208.86 554.5 DL
+218.86 554.5 213.86 554.5 DL 218.86 543.5 218.86 553.5 DL 207.862 543.5
+202.862 543.5 DL 208.86 543.5 203.86 543.5 DL 213.86 543.5 208.86 543.5
+DL 218.86 543.5 213.86 543.5 DL 220.526 544.5 220.526 554.5 DL 220.526
+543.5 220.526 553.5 DL 236.524 544.5 236.524 554.5 DL 225.526 554.5
+220.526 554.5 DL 226.524 554.5 221.524 554.5 DL 231.524 554.5 226.524
+554.5 DL 236.524 554.5 231.524 554.5 DL 236.524 543.5 236.524 553.5 DL
+225.526 543.5 220.526 543.5 DL 226.524 543.5 221.524 543.5 DL 231.524
+543.5 226.524 543.5 DL 236.524 543.5 231.524 543.5 DL F0 -5.834 7.999
+(=4 2)194.722 552 T F3<ae>1.666 E F0
+(Disable Nation Replacement Character sets \(DECNRCM\))2.5 E F1(P)185
+568 Q F2(s)-2 3 M 202.862 560.5 202.862 570.5 DL 202.862 559.5 202.862
+569.5 DL 218.86 560.5 218.86 570.5 DL 207.862 570.5 202.862 570.5 DL
+208.86 570.5 203.86 570.5 DL 213.86 570.5 208.86 570.5 DL 218.86 570.5
+213.86 570.5 DL 218.86 559.5 218.86 569.5 DL 207.862 559.5 202.862 559.5
+DL 208.86 559.5 203.86 559.5 DL 213.86 559.5 208.86 559.5 DL 218.86
+559.5 213.86 559.5 DL 220.526 560.5 220.526 570.5 DL 220.526 559.5
+220.526 569.5 DL 236.524 560.5 236.524 570.5 DL 225.526 570.5 220.526
+570.5 DL 226.524 570.5 221.524 570.5 DL 231.524 570.5 226.524 570.5 DL
+236.524 570.5 231.524 570.5 DL 236.524 559.5 236.524 569.5 DL 225.526
+559.5 220.526 559.5 DL 226.524 559.5 221.524 559.5 DL 231.524 559.5
+226.524 559.5 DL 236.524 559.5 231.524 559.5 DL F0 -5.834 7.999(=4 4)
+194.722 568 T F3<ae>1.666 E F0 -.45(Tu)2.5 G(rn Of).45 E 2.5(fM)-.25 G
+(ar)-2.5 E(gin Bell)-.18 E F1(P)185 584 Q F2(s)-2 3 M 202.862 576.5
+202.862 586.5 DL 202.862 575.5 202.862 585.5 DL 218.86 576.5 218.86
+586.5 DL 207.862 586.5 202.862 586.5 DL 208.86 586.5 203.86 586.5 DL
+213.86 586.5 208.86 586.5 DL 218.86 586.5 213.86 586.5 DL 218.86 575.5
+218.86 585.5 DL 207.862 575.5 202.862 575.5 DL 208.86 575.5 203.86 575.5
+DL 213.86 575.5 208.86 575.5 DL 218.86 575.5 213.86 575.5 DL 220.526
+576.5 220.526 586.5 DL 220.526 575.5 220.526 585.5 DL 236.524 576.5
+236.524 586.5 DL 225.526 586.5 220.526 586.5 DL 226.524 586.5 221.524
+586.5 DL 231.524 586.5 226.524 586.5 DL 236.524 586.5 231.524 586.5 DL
+236.524 575.5 236.524 585.5 DL 225.526 575.5 220.526 575.5 DL 226.524
+575.5 221.524 575.5 DL 231.524 575.5 226.524 575.5 DL 236.524 575.5
+231.524 575.5 DL F0 -5.834 7.999(=4 5)194.722 584 T F3<ae>1.666 E F0
+(No Re)2.5 E -.15(ve)-.25 G(rse-wraparound Mode).15 E F1(P)185 600 Q F2
+(s)-2 3 M 202.862 592.5 202.862 602.5 DL 202.862 591.5 202.862 601.5 DL
+218.86 592.5 218.86 602.5 DL 207.862 602.5 202.862 602.5 DL 208.86 602.5
+203.86 602.5 DL 213.86 602.5 208.86 602.5 DL 218.86 602.5 213.86 602.5
+DL 218.86 591.5 218.86 601.5 DL 207.862 591.5 202.862 591.5 DL 208.86
+591.5 203.86 591.5 DL 213.86 591.5 208.86 591.5 DL 218.86 591.5 213.86
+591.5 DL 220.526 592.5 220.526 602.5 DL 220.526 591.5 220.526 601.5 DL
+236.524 592.5 236.524 602.5 DL 225.526 602.5 220.526 602.5 DL 226.524
+602.5 221.524 602.5 DL 231.524 602.5 226.524 602.5 DL 236.524 602.5
+231.524 602.5 DL 236.524 591.5 236.524 601.5 DL 225.526 591.5 220.526
+591.5 DL 226.524 591.5 221.524 591.5 DL 231.524 591.5 226.524 591.5 DL
+236.524 591.5 231.524 591.5 DL F0 -5.834 7.999(=4 6)194.722 600 T F3<ae>
+1.666 E F0(Stop Logging \(normally disabled by a compile-time option\))
+2.5 E F1(P)185 616 Q F2(s)-2 3 M 202.862 608.5 202.862 618.5 DL 202.862
+607.5 202.862 617.5 DL 218.86 608.5 218.86 618.5 DL 207.862 618.5
+202.862 618.5 DL 208.86 618.5 203.86 618.5 DL 213.86 618.5 208.86 618.5
+DL 218.86 618.5 213.86 618.5 DL 218.86 607.5 218.86 617.5 DL 207.862
+607.5 202.862 607.5 DL 208.86 607.5 203.86 607.5 DL 213.86 607.5 208.86
+607.5 DL 218.86 607.5 213.86 607.5 DL 220.526 608.5 220.526 618.5 DL
+220.526 607.5 220.526 617.5 DL 236.524 608.5 236.524 618.5 DL 225.526
+618.5 220.526 618.5 DL 226.524 618.5 221.524 618.5 DL 231.524 618.5
+226.524 618.5 DL 236.524 618.5 231.524 618.5 DL 236.524 607.5 236.524
+617.5 DL 225.526 607.5 220.526 607.5 DL 226.524 607.5 221.524 607.5 DL
+231.524 607.5 226.524 607.5 DL 236.524 607.5 231.524 607.5 DL F0 -5.834
+7.999(=4 7)194.722 616 T F3<ae>1.666 E F0(Use Normal Screen Buf)2.5 E
+(fer)-.25 E F1(P)185 632 Q F2(s)-2 3 M 202.862 624.5 202.862 634.5 DL
+202.862 623.5 202.862 633.5 DL 218.86 624.5 218.86 634.5 DL 207.862
+634.5 202.862 634.5 DL 208.86 634.5 203.86 634.5 DL 213.86 634.5 208.86
+634.5 DL 218.86 634.5 213.86 634.5 DL 218.86 623.5 218.86 633.5 DL
+207.862 623.5 202.862 623.5 DL 208.86 623.5 203.86 623.5 DL 213.86 623.5
+208.86 623.5 DL 218.86 623.5 213.86 623.5 DL 220.526 624.5 220.526 634.5
+DL 220.526 623.5 220.526 633.5 DL 236.524 624.5 236.524 634.5 DL 225.526
+634.5 220.526 634.5 DL 226.524 634.5 221.524 634.5 DL 231.524 634.5
+226.524 634.5 DL 236.524 634.5 231.524 634.5 DL 236.524 623.5 236.524
+633.5 DL 225.526 623.5 220.526 623.5 DL 226.524 623.5 221.524 623.5 DL
+231.524 623.5 226.524 623.5 DL 236.524 623.5 231.524 623.5 DL F0 -5.834
+7.999(=6 6)194.722 632 T F3<ae>1.666 E F0(Numeric k)2.5 E -.15(ey)-.1 G
+(pad \(DECNKM\)).15 E F1(P)185 648 Q F2(s)-2 3 M 202.862 640.5 202.862
+650.5 DL 202.862 639.5 202.862 649.5 DL 218.86 640.5 218.86 650.5 DL
+207.862 650.5 202.862 650.5 DL 208.86 650.5 203.86 650.5 DL 213.86 650.5
+208.86 650.5 DL 218.86 650.5 213.86 650.5 DL 218.86 639.5 218.86 649.5
+DL 207.862 639.5 202.862 639.5 DL 208.86 639.5 203.86 639.5 DL 213.86
+639.5 208.86 639.5 DL 218.86 639.5 213.86 639.5 DL 220.526 640.5 220.526
+650.5 DL 220.526 639.5 220.526 649.5 DL 236.524 640.5 236.524 650.5 DL
+225.526 650.5 220.526 650.5 DL 226.524 650.5 221.524 650.5 DL 231.524
+650.5 226.524 650.5 DL 236.524 650.5 231.524 650.5 DL 236.524 639.5
+236.524 649.5 DL 225.526 639.5 220.526 639.5 DL 226.524 639.5 221.524
+639.5 DL 231.524 639.5 226.524 639.5 DL 236.524 639.5 231.524 639.5 DL
+F0 -5.834 7.999(=6 7)194.722 648 T F3<ae>1.666 E F0(Backarro)2.5 E 2.5
+(wk)-.25 G .3 -.15(ey s)-2.6 H(ends backspace \(DECBKM\)).15 E F1(P)185
+664 Q F2(s)-2 3 M 204.726 656.5 204.726 666.5 DL 204.726 655.5 204.726
+665.5 DL 220.724 656.5 220.724 666.5 DL 209.726 666.5 204.726 666.5 DL
+210.724 666.5 205.724 666.5 DL 215.724 666.5 210.724 666.5 DL 220.724
+666.5 215.724 666.5 DL 220.724 655.5 220.724 665.5 DL 209.726 655.5
+204.726 655.5 DL 210.724 655.5 205.724 655.5 DL 215.724 655.5 210.724
+655.5 DL 220.724 655.5 215.724 655.5 DL 222.39 656.5 222.39 666.5 DL
+222.39 655.5 222.39 665.5 DL 238.388 656.5 238.388 666.5 DL 227.39 666.5
+222.39 666.5 DL 228.388 666.5 223.388 666.5 DL 233.388 666.5 228.388
+666.5 DL 238.388 666.5 233.388 666.5 DL 238.388 655.5 238.388 665.5 DL
+227.39 655.5 222.39 655.5 DL 228.388 655.5 223.388 655.5 DL 233.388
+655.5 228.388 655.5 DL 238.388 655.5 233.388 655.5 DL 240.054 656.5
+240.054 666.5 DL 240.054 655.5 240.054 665.5 DL 256.052 656.5 256.052
+666.5 DL 245.054 666.5 240.054 666.5 DL 246.052 666.5 241.052 666.5 DL
+251.052 666.5 246.052 666.5 DL 256.052 666.5 251.052 666.5 DL 256.052
+655.5 256.052 665.5 DL 245.054 655.5 240.054 655.5 DL 246.052 655.5
+241.052 655.5 DL 251.052 655.5 246.052 655.5 DL 256.052 655.5 251.052
+655.5 DL 257.718 656.5 257.718 666.5 DL 257.718 655.5 257.718 665.5 DL
+273.716 656.5 273.716 666.5 DL 262.718 666.5 257.718 666.5 DL 263.716
+666.5 258.716 666.5 DL 268.716 666.5 263.716 666.5 DL 273.716 666.5
+268.716 666.5 DL 273.716 655.5 273.716 665.5 DL 262.718 655.5 257.718
+655.5 DL 263.716 655.5 258.716 655.5 DL 268.716 655.5 263.716 655.5 DL
+273.716 655.5 268.716 655.5 DL F0 -7.698 8.931(=1 0 0 0)195.654 664 T F3
+<ae>1.666 E F0(Don')3.432 E 3.432(tS)-.18 G .931(end Mouse X & Y on b)
+-3.432 F .931(utton press and release.)-.2 F(See)5.931 E(the section)180
+680 Q/F5 10/Times-Bold@0 SF(Mouse T)2.5 E(racking)-.74 E F0(.)A F1(P)185
+696 Q F2(s)-2 3 M 202.862 688.5 202.862 698.5 DL 202.862 687.5 202.862
+697.5 DL 218.86 688.5 218.86 698.5 DL 207.862 698.5 202.862 698.5 DL
+208.86 698.5 203.86 698.5 DL 213.86 698.5 208.86 698.5 DL 218.86 698.5
+213.86 698.5 DL 218.86 687.5 218.86 697.5 DL 207.862 687.5 202.862 687.5
+DL 208.86 687.5 203.86 687.5 DL 213.86 687.5 208.86 687.5 DL 218.86
+687.5 213.86 687.5 DL 220.526 688.5 220.526 698.5 DL 220.526 687.5
+220.526 697.5 DL 236.524 688.5 236.524 698.5 DL 225.526 698.5 220.526
+698.5 DL 226.524 698.5 221.524 698.5 DL 231.524 698.5 226.524 698.5 DL
+236.524 698.5 231.524 698.5 DL 236.524 687.5 236.524 697.5 DL 225.526
+687.5 220.526 687.5 DL 226.524 687.5 221.524 687.5 DL 231.524 687.5
+226.524 687.5 DL 236.524 687.5 231.524 687.5 DL 238.19 688.5 238.19
+698.5 DL 238.19 687.5 238.19 697.5 DL 254.188 688.5 254.188 698.5 DL
+243.19 698.5 238.19 698.5 DL 244.188 698.5 239.188 698.5 DL 249.188
+698.5 244.188 698.5 DL 254.188 698.5 249.188 698.5 DL 254.188 687.5
+254.188 697.5 DL 243.19 687.5 238.19 687.5 DL 244.188 687.5 239.188
+687.5 DL 249.188 687.5 244.188 687.5 DL 254.188 687.5 249.188 687.5 DL
+255.854 688.5 255.854 698.5 DL 255.854 687.5 255.854 697.5 DL 271.852
+688.5 271.852 698.5 DL 260.854 698.5 255.854 698.5 DL 261.852 698.5
+256.852 698.5 DL 266.852 698.5 261.852 698.5 DL 271.852 698.5 266.852
+698.5 DL 271.852 687.5 271.852 697.5 DL 260.854 687.5 255.854 687.5 DL
+261.852 687.5 256.852 687.5 DL 266.852 687.5 261.852 687.5 DL 271.852
+687.5 266.852 687.5 DL F0 -5.834 7.999(=1 0 0 1)194.722 696 T F3<ae>
+1.666 E F0(Don')2.5 E 2.5(tU)-.18 G(se Hilite Mouse T)-2.5 E(racking)
+-.35 E F1(P)185 712 Q F2(s)-2 3 M 202.862 704.5 202.862 714.5 DL 202.862
+703.5 202.862 713.5 DL 218.86 704.5 218.86 714.5 DL 207.862 714.5
+202.862 714.5 DL 208.86 714.5 203.86 714.5 DL 213.86 714.5 208.86 714.5
+DL 218.86 714.5 213.86 714.5 DL 218.86 703.5 218.86 713.5 DL 207.862
+703.5 202.862 703.5 DL 208.86 703.5 203.86 703.5 DL 213.86 703.5 208.86
+703.5 DL 218.86 703.5 213.86 703.5 DL 220.526 704.5 220.526 714.5 DL
+220.526 703.5 220.526 713.5 DL 236.524 704.5 236.524 714.5 DL 225.526
+714.5 220.526 714.5 DL 226.524 714.5 221.524 714.5 DL 231.524 714.5
+226.524 714.5 DL 236.524 714.5 231.524 714.5 DL 236.524 703.5 236.524
+713.5 DL 225.526 703.5 220.526 703.5 DL 226.524 703.5 221.524 703.5 DL
+231.524 703.5 226.524 703.5 DL 236.524 703.5 231.524 703.5 DL 238.19
+704.5 238.19 714.5 DL 238.19 703.5 238.19 713.5 DL 254.188 704.5 254.188
+714.5 DL 243.19 714.5 238.19 714.5 DL 244.188 714.5 239.188 714.5 DL
+249.188 714.5 244.188 714.5 DL 254.188 714.5 249.188 714.5 DL 254.188
+703.5 254.188 713.5 DL 243.19 703.5 238.19 703.5 DL 244.188 703.5
+239.188 703.5 DL 249.188 703.5 244.188 703.5 DL 254.188 703.5 249.188
+703.5 DL 255.854 704.5 255.854 714.5 DL 255.854 703.5 255.854 713.5 DL
+271.852 704.5 271.852 714.5 DL 260.854 714.5 255.854 714.5 DL 261.852
+714.5 256.852 714.5 DL 266.852 714.5 261.852 714.5 DL 271.852 714.5
+266.852 714.5 DL 271.852 703.5 271.852 713.5 DL 260.854 703.5 255.854
+703.5 DL 261.852 703.5 256.852 703.5 DL 266.852 703.5 261.852 703.5 DL
+271.852 703.5 266.852 703.5 DL F0 -5.834 7.999(=1 0 0 2)194.722 712 T F3
+<ae>1.666 E F0(Don')2.5 E 2.5(tU)-.18 G(se Cell Motion Mouse T)-2.5 E
+(racking)-.35 E F1(P)185 728 Q F2(s)-2 3 M 202.862 720.5 202.862 730.5
+DL 202.862 719.5 202.862 729.5 DL 218.86 720.5 218.86 730.5 DL 207.862
+730.5 202.862 730.5 DL 208.86 730.5 203.86 730.5 DL 213.86 730.5 208.86
+730.5 DL 218.86 730.5 213.86 730.5 DL 218.86 719.5 218.86 729.5 DL
+207.862 719.5 202.862 719.5 DL 208.86 719.5 203.86 719.5 DL 213.86 719.5
+208.86 719.5 DL 218.86 719.5 213.86 719.5 DL 220.526 720.5 220.526 730.5
+DL 220.526 719.5 220.526 729.5 DL 236.524 720.5 236.524 730.5 DL 225.526
+730.5 220.526 730.5 DL 226.524 730.5 221.524 730.5 DL 231.524 730.5
+226.524 730.5 DL 236.524 730.5 231.524 730.5 DL 236.524 719.5 236.524
+729.5 DL 225.526 719.5 220.526 719.5 DL 226.524 719.5 221.524 719.5 DL
+231.524 719.5 226.524 719.5 DL 236.524 719.5 231.524 719.5 DL 238.19
+720.5 238.19 730.5 DL 238.19 719.5 238.19 729.5 DL 254.188 720.5 254.188
+730.5 DL 243.19 730.5 238.19 730.5 DL 244.188 730.5 239.188 730.5 DL
+249.188 730.5 244.188 730.5 DL 254.188 730.5 249.188 730.5 DL 254.188
+719.5 254.188 729.5 DL 243.19 719.5 238.19 719.5 DL 244.188 719.5
+239.188 719.5 DL 249.188 719.5 244.188 719.5 DL 254.188 719.5 249.188
+719.5 DL 255.854 720.5 255.854 730.5 DL 255.854 719.5 255.854 729.5 DL
+271.852 720.5 271.852 730.5 DL 260.854 730.5 255.854 730.5 DL 261.852
+730.5 256.852 730.5 DL 266.852 730.5 261.852 730.5 DL 271.852 730.5
+266.852 730.5 DL 271.852 719.5 271.852 729.5 DL 260.854 719.5 255.854
+719.5 DL 261.852 719.5 256.852 719.5 DL 266.852 719.5 261.852 719.5 DL
+271.852 719.5 266.852 719.5 DL F0 -5.834 7.999(=1 0 0 3)194.722 728 T F3
+<ae>1.666 E F0(Don')2.5 E 2.5(tU)-.18 G(se All Motion Mouse T)-2.5 E
+(racking)-.35 E(8)303.5 772 Q EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E/F1 10/Times-Italic@0 SF(P)185 88 Q/F2 8/Times-Italic@0 SF(s)-2
+3 M .4 LW 202.862 80.5 202.862 90.5 DL 202.862 79.5 202.862 89.5 DL
+218.86 80.5 218.86 90.5 DL 207.862 90.5 202.862 90.5 DL 208.86 90.5
+203.86 90.5 DL 213.86 90.5 208.86 90.5 DL 218.86 90.5 213.86 90.5 DL
+218.86 79.5 218.86 89.5 DL 207.862 79.5 202.862 79.5 DL 208.86 79.5
+203.86 79.5 DL 213.86 79.5 208.86 79.5 DL 218.86 79.5 213.86 79.5 DL
+220.526 80.5 220.526 90.5 DL 220.526 79.5 220.526 89.5 DL 236.524 80.5
+236.524 90.5 DL 225.526 90.5 220.526 90.5 DL 226.524 90.5 221.524 90.5
+DL 231.524 90.5 226.524 90.5 DL 236.524 90.5 231.524 90.5 DL 236.524
+79.5 236.524 89.5 DL 225.526 79.5 220.526 79.5 DL 226.524 79.5 221.524
+79.5 DL 231.524 79.5 226.524 79.5 DL 236.524 79.5 231.524 79.5 DL 238.19
+80.5 238.19 90.5 DL 238.19 79.5 238.19 89.5 DL 254.188 80.5 254.188 90.5
+DL 243.19 90.5 238.19 90.5 DL 244.188 90.5 239.188 90.5 DL 249.188 90.5
+244.188 90.5 DL 254.188 90.5 249.188 90.5 DL 254.188 79.5 254.188 89.5
+DL 243.19 79.5 238.19 79.5 DL 244.188 79.5 239.188 79.5 DL 249.188 79.5
+244.188 79.5 DL 254.188 79.5 249.188 79.5 DL 255.854 80.5 255.854 90.5
+DL 255.854 79.5 255.854 89.5 DL 271.852 80.5 271.852 90.5 DL 260.854
+90.5 255.854 90.5 DL 261.852 90.5 256.852 90.5 DL 266.852 90.5 261.852
+90.5 DL 271.852 90.5 266.852 90.5 DL 271.852 79.5 271.852 89.5 DL
+260.854 79.5 255.854 79.5 DL 261.852 79.5 256.852 79.5 DL 266.852 79.5
+261.852 79.5 DL 271.852 79.5 266.852 79.5 DL F0 -5.834 7.999(=1 0 1 0)
+194.722 88 T/F3 10/Symbol SF<ae>1.666 E F0(Don')2.5 E 2.5(ts)-.18 G
+(croll to bottom on tty output \(rxvt\).)-2.5 E F1(P)185 104 Q F2(s)-2 3
+M 202.862 96.5 202.862 106.5 DL 202.862 95.5 202.862 105.5 DL 218.86
+96.5 218.86 106.5 DL 207.862 106.5 202.862 106.5 DL 208.86 106.5 203.86
+106.5 DL 213.86 106.5 208.86 106.5 DL 218.86 106.5 213.86 106.5 DL
+218.86 95.5 218.86 105.5 DL 207.862 95.5 202.862 95.5 DL 208.86 95.5
+203.86 95.5 DL 213.86 95.5 208.86 95.5 DL 218.86 95.5 213.86 95.5 DL
+220.526 96.5 220.526 106.5 DL 220.526 95.5 220.526 105.5 DL 236.524 96.5
+236.524 106.5 DL 225.526 106.5 220.526 106.5 DL 226.524 106.5 221.524
+106.5 DL 231.524 106.5 226.524 106.5 DL 236.524 106.5 231.524 106.5 DL
+236.524 95.5 236.524 105.5 DL 225.526 95.5 220.526 95.5 DL 226.524 95.5
+221.524 95.5 DL 231.524 95.5 226.524 95.5 DL 236.524 95.5 231.524 95.5
+DL 238.19 96.5 238.19 106.5 DL 238.19 95.5 238.19 105.5 DL 254.188 96.5
+254.188 106.5 DL 243.19 106.5 238.19 106.5 DL 244.188 106.5 239.188
+106.5 DL 249.188 106.5 244.188 106.5 DL 254.188 106.5 249.188 106.5 DL
+254.188 95.5 254.188 105.5 DL 243.19 95.5 238.19 95.5 DL 244.188 95.5
+239.188 95.5 DL 249.188 95.5 244.188 95.5 DL 254.188 95.5 249.188 95.5
+DL 255.854 96.5 255.854 106.5 DL 255.854 95.5 255.854 105.5 DL 271.852
+96.5 271.852 106.5 DL 260.854 106.5 255.854 106.5 DL 261.852 106.5
+256.852 106.5 DL 266.852 106.5 261.852 106.5 DL 271.852 106.5 266.852
+106.5 DL 271.852 95.5 271.852 105.5 DL 260.854 95.5 255.854 95.5 DL
+261.852 95.5 256.852 95.5 DL 266.852 95.5 261.852 95.5 DL 271.852 95.5
+266.852 95.5 DL F0 -5.834 7.999(=1 0 1 1)194.722 104 T F3<ae>1.666 E F0
+(Don')2.5 E 2.5(ts)-.18 G(croll to bottom on k)-2.5 E .3 -.15(ey p)-.1 H
+(ress \(rxvt\).).15 E F1(P)185 120 Q F2(s)-2 3 M 202.862 112.5 202.862
+122.5 DL 202.862 111.5 202.862 121.5 DL 218.86 112.5 218.86 122.5 DL
+207.862 122.5 202.862 122.5 DL 208.86 122.5 203.86 122.5 DL 213.86 122.5
+208.86 122.5 DL 218.86 122.5 213.86 122.5 DL 218.86 111.5 218.86 121.5
+DL 207.862 111.5 202.862 111.5 DL 208.86 111.5 203.86 111.5 DL 213.86
+111.5 208.86 111.5 DL 218.86 111.5 213.86 111.5 DL 220.526 112.5 220.526
+122.5 DL 220.526 111.5 220.526 121.5 DL 236.524 112.5 236.524 122.5 DL
+225.526 122.5 220.526 122.5 DL 226.524 122.5 221.524 122.5 DL 231.524
+122.5 226.524 122.5 DL 236.524 122.5 231.524 122.5 DL 236.524 111.5
+236.524 121.5 DL 225.526 111.5 220.526 111.5 DL 226.524 111.5 221.524
+111.5 DL 231.524 111.5 226.524 111.5 DL 236.524 111.5 231.524 111.5 DL
+238.19 112.5 238.19 122.5 DL 238.19 111.5 238.19 121.5 DL 254.188 112.5
+254.188 122.5 DL 243.19 122.5 238.19 122.5 DL 244.188 122.5 239.188
+122.5 DL 249.188 122.5 244.188 122.5 DL 254.188 122.5 249.188 122.5 DL
+254.188 111.5 254.188 121.5 DL 243.19 111.5 238.19 111.5 DL 244.188
+111.5 239.188 111.5 DL 249.188 111.5 244.188 111.5 DL 254.188 111.5
+249.188 111.5 DL 255.854 112.5 255.854 122.5 DL 255.854 111.5 255.854
+121.5 DL 271.852 112.5 271.852 122.5 DL 260.854 122.5 255.854 122.5 DL
+261.852 122.5 256.852 122.5 DL 266.852 122.5 261.852 122.5 DL 271.852
+122.5 266.852 122.5 DL 271.852 111.5 271.852 121.5 DL 260.854 111.5
+255.854 111.5 DL 261.852 111.5 256.852 111.5 DL 266.852 111.5 261.852
+111.5 DL 271.852 111.5 266.852 111.5 DL F0 -5.834 7.999(=1 0 3 5)194.722
+120 T F3<ae>1.666 E F0
+(Disable special modi\214ers for Alt and NumLock k)2.5 E -.15(ey)-.1 G
+(s.).15 E F1(P)185 136 Q F2(s)-2 3 M 206.896 128.5 206.896 138.5 DL
+206.896 127.5 206.896 137.5 DL 222.894 128.5 222.894 138.5 DL 211.896
+138.5 206.896 138.5 DL 212.894 138.5 207.894 138.5 DL 217.894 138.5
+212.894 138.5 DL 222.894 138.5 217.894 138.5 DL 222.894 127.5 222.894
+137.5 DL 211.896 127.5 206.896 127.5 DL 212.894 127.5 207.894 127.5 DL
+217.894 127.5 212.894 127.5 DL 222.894 127.5 217.894 127.5 DL 224.56
+128.5 224.56 138.5 DL 224.56 127.5 224.56 137.5 DL 240.558 128.5 240.558
+138.5 DL 229.56 138.5 224.56 138.5 DL 230.558 138.5 225.558 138.5 DL
+235.558 138.5 230.558 138.5 DL 240.558 138.5 235.558 138.5 DL 240.558
+127.5 240.558 137.5 DL 229.56 127.5 224.56 127.5 DL 230.558 127.5
+225.558 127.5 DL 235.558 127.5 230.558 127.5 DL 240.558 127.5 235.558
+127.5 DL 242.224 128.5 242.224 138.5 DL 242.224 127.5 242.224 137.5 DL
+258.222 128.5 258.222 138.5 DL 247.224 138.5 242.224 138.5 DL 248.222
+138.5 243.222 138.5 DL 253.222 138.5 248.222 138.5 DL 258.222 138.5
+253.222 138.5 DL 258.222 127.5 258.222 137.5 DL 247.224 127.5 242.224
+127.5 DL 248.222 127.5 243.222 127.5 DL 253.222 127.5 248.222 127.5 DL
+258.222 127.5 253.222 127.5 DL 259.888 128.5 259.888 138.5 DL 259.888
+127.5 259.888 137.5 DL 275.886 128.5 275.886 138.5 DL 264.888 138.5
+259.888 138.5 DL 265.886 138.5 260.886 138.5 DL 270.886 138.5 265.886
+138.5 DL 275.886 138.5 270.886 138.5 DL 275.886 127.5 275.886 137.5 DL
+264.888 127.5 259.888 127.5 DL 265.886 127.5 260.886 127.5 DL 270.886
+127.5 265.886 127.5 DL 275.886 127.5 270.886 127.5 DL F0 -9.868 10.016
+(=1 0 3 6)196.739 136 T F3<ae>1.667 E F0(Don')4.518 E 4.518(ts)-.18 G
+2.018(end ESC when Meta modi\214es a k)-4.518 F 2.318 -.15(ey \()-.1 H
+2.018(disables the).15 F/F4 10/Times-Bold@0 SF(metaSendsEscape)180 152 Q
+F0(resource\).)2.5 E F1(P)185 168 Q F2(s)-2 3 M 202.862 160.5 202.862
+170.5 DL 202.862 159.5 202.862 169.5 DL 218.86 160.5 218.86 170.5 DL
+207.862 170.5 202.862 170.5 DL 208.86 170.5 203.86 170.5 DL 213.86 170.5
+208.86 170.5 DL 218.86 170.5 213.86 170.5 DL 218.86 159.5 218.86 169.5
+DL 207.862 159.5 202.862 159.5 DL 208.86 159.5 203.86 159.5 DL 213.86
+159.5 208.86 159.5 DL 218.86 159.5 213.86 159.5 DL 220.526 160.5 220.526
+170.5 DL 220.526 159.5 220.526 169.5 DL 236.524 160.5 236.524 170.5 DL
+225.526 170.5 220.526 170.5 DL 226.524 170.5 221.524 170.5 DL 231.524
+170.5 226.524 170.5 DL 236.524 170.5 231.524 170.5 DL 236.524 159.5
+236.524 169.5 DL 225.526 159.5 220.526 159.5 DL 226.524 159.5 221.524
+159.5 DL 231.524 159.5 226.524 159.5 DL 236.524 159.5 231.524 159.5 DL
+238.19 160.5 238.19 170.5 DL 238.19 159.5 238.19 169.5 DL 254.188 160.5
+254.188 170.5 DL 243.19 170.5 238.19 170.5 DL 244.188 170.5 239.188
+170.5 DL 249.188 170.5 244.188 170.5 DL 254.188 170.5 249.188 170.5 DL
+254.188 159.5 254.188 169.5 DL 243.19 159.5 238.19 159.5 DL 244.188
+159.5 239.188 159.5 DL 249.188 159.5 244.188 159.5 DL 254.188 159.5
+249.188 159.5 DL 255.854 160.5 255.854 170.5 DL 255.854 159.5 255.854
+169.5 DL 271.852 160.5 271.852 170.5 DL 260.854 170.5 255.854 170.5 DL
+261.852 170.5 256.852 170.5 DL 266.852 170.5 261.852 170.5 DL 271.852
+170.5 266.852 170.5 DL 271.852 159.5 271.852 169.5 DL 260.854 159.5
+255.854 159.5 DL 261.852 159.5 256.852 159.5 DL 266.852 159.5 261.852
+159.5 DL 271.852 159.5 266.852 159.5 DL F0 -5.834 7.999(=1 0 3 7)194.722
+168 T F3<ae>1.666 E F0(Send VT220 Remo)2.5 E .3 -.15(ve f)-.15 H
+(rom the editing-k).15 E -.15(ey)-.1 G(pad Delete k).15 E -.15(ey)-.1 G
+F1(P)185 184 Q F2(s)-2 3 M 203.184 176.5 203.184 186.5 DL 203.184 175.5
+203.184 185.5 DL 219.182 176.5 219.182 186.5 DL 208.184 186.5 203.184
+186.5 DL 209.182 186.5 204.182 186.5 DL 214.182 186.5 209.182 186.5 DL
+219.182 186.5 214.182 186.5 DL 219.182 175.5 219.182 185.5 DL 208.184
+175.5 203.184 175.5 DL 209.182 175.5 204.182 175.5 DL 214.182 175.5
+209.182 175.5 DL 219.182 175.5 214.182 175.5 DL 220.848 176.5 220.848
+186.5 DL 220.848 175.5 220.848 185.5 DL 236.846 176.5 236.846 186.5 DL
+225.848 186.5 220.848 186.5 DL 226.846 186.5 221.846 186.5 DL 231.846
+186.5 226.846 186.5 DL 236.846 186.5 231.846 186.5 DL 236.846 175.5
+236.846 185.5 DL 225.848 175.5 220.848 175.5 DL 226.846 175.5 221.846
+175.5 DL 231.846 175.5 226.846 175.5 DL 236.846 175.5 231.846 175.5 DL
+238.512 176.5 238.512 186.5 DL 238.512 175.5 238.512 185.5 DL 254.51
+176.5 254.51 186.5 DL 243.512 186.5 238.512 186.5 DL 244.51 186.5 239.51
+186.5 DL 249.51 186.5 244.51 186.5 DL 254.51 186.5 249.51 186.5 DL
+254.51 175.5 254.51 185.5 DL 243.512 175.5 238.512 175.5 DL 244.51 175.5
+239.51 175.5 DL 249.51 175.5 244.51 175.5 DL 254.51 175.5 249.51 175.5
+DL 256.176 176.5 256.176 186.5 DL 256.176 175.5 256.176 185.5 DL 272.174
+176.5 272.174 186.5 DL 261.176 186.5 256.176 186.5 DL 262.174 186.5
+257.174 186.5 DL 267.174 186.5 262.174 186.5 DL 272.174 186.5 267.174
+186.5 DL 272.174 175.5 272.174 185.5 DL 261.176 175.5 256.176 175.5 DL
+262.174 175.5 257.174 175.5 DL 267.174 175.5 262.174 175.5 DL 272.174
+175.5 267.174 175.5 DL F0 -6.156 8.16(=1 0 4 7)194.883 184 T F3<ae>1.666
+E F0 .161(Use Normal Screen Buf)2.661 F(fer)-.25 E 2.661(,c)-.4 G .161
+(learing screen \214rst if in the Alter)-2.661 F(-)-.2 E
+(nate Screen \(unless disabled by the)180 200 Q F4(titeInhibit)2.5 E F0
+(resource\))2.5 E F1(P)185 216 Q F2(s)-2 3 M 204.95 208.5 204.95 218.5
+DL 204.95 207.5 204.95 217.5 DL 220.948 208.5 220.948 218.5 DL 209.95
+218.5 204.95 218.5 DL 210.948 218.5 205.948 218.5 DL 215.948 218.5
+210.948 218.5 DL 220.948 218.5 215.948 218.5 DL 220.948 207.5 220.948
+217.5 DL 209.95 207.5 204.95 207.5 DL 210.948 207.5 205.948 207.5 DL
+215.948 207.5 210.948 207.5 DL 220.948 207.5 215.948 207.5 DL 222.614
+208.5 222.614 218.5 DL 222.614 207.5 222.614 217.5 DL 238.612 208.5
+238.612 218.5 DL 227.614 218.5 222.614 218.5 DL 228.612 218.5 223.612
+218.5 DL 233.612 218.5 228.612 218.5 DL 238.612 218.5 233.612 218.5 DL
+238.612 207.5 238.612 217.5 DL 227.614 207.5 222.614 207.5 DL 228.612
+207.5 223.612 207.5 DL 233.612 207.5 228.612 207.5 DL 238.612 207.5
+233.612 207.5 DL 240.278 208.5 240.278 218.5 DL 240.278 207.5 240.278
+217.5 DL 256.276 208.5 256.276 218.5 DL 245.278 218.5 240.278 218.5 DL
+246.276 218.5 241.276 218.5 DL 251.276 218.5 246.276 218.5 DL 256.276
+218.5 251.276 218.5 DL 256.276 207.5 256.276 217.5 DL 245.278 207.5
+240.278 207.5 DL 246.276 207.5 241.276 207.5 DL 251.276 207.5 246.276
+207.5 DL 256.276 207.5 251.276 207.5 DL 257.942 208.5 257.942 218.5 DL
+257.942 207.5 257.942 217.5 DL 273.94 208.5 273.94 218.5 DL 262.942
+218.5 257.942 218.5 DL 263.94 218.5 258.94 218.5 DL 268.94 218.5 263.94
+218.5 DL 273.94 218.5 268.94 218.5 DL 273.94 207.5 273.94 217.5 DL
+262.942 207.5 257.942 207.5 DL 263.94 207.5 258.94 207.5 DL 268.94 207.5
+263.94 207.5 DL 273.94 207.5 268.94 207.5 DL F0 -7.922 9.043(=1 0 4 8)
+195.766 216 T F3<ae>1.666 E F0 1.045
+(Restore cursor as in DECRC \(unless disabled by the)3.545 F F4(titeIn-)
+3.545 E(hibit)180 232 Q F0(resource\))2.5 E F1(P)185 248 Q F2(s)-2 3 M
+204.996 240.5 204.996 250.5 DL 204.996 239.5 204.996 249.5 DL 220.994
+240.5 220.994 250.5 DL 209.996 250.5 204.996 250.5 DL 210.994 250.5
+205.994 250.5 DL 215.994 250.5 210.994 250.5 DL 220.994 250.5 215.994
+250.5 DL 220.994 239.5 220.994 249.5 DL 209.996 239.5 204.996 239.5 DL
+210.994 239.5 205.994 239.5 DL 215.994 239.5 210.994 239.5 DL 220.994
+239.5 215.994 239.5 DL 222.66 240.5 222.66 250.5 DL 222.66 239.5 222.66
+249.5 DL 238.658 240.5 238.658 250.5 DL 227.66 250.5 222.66 250.5 DL
+228.658 250.5 223.658 250.5 DL 233.658 250.5 228.658 250.5 DL 238.658
+250.5 233.658 250.5 DL 238.658 239.5 238.658 249.5 DL 227.66 239.5
+222.66 239.5 DL 228.658 239.5 223.658 239.5 DL 233.658 239.5 228.658
+239.5 DL 238.658 239.5 233.658 239.5 DL 240.324 240.5 240.324 250.5 DL
+240.324 239.5 240.324 249.5 DL 256.322 240.5 256.322 250.5 DL 245.324
+250.5 240.324 250.5 DL 246.322 250.5 241.322 250.5 DL 251.322 250.5
+246.322 250.5 DL 256.322 250.5 251.322 250.5 DL 256.322 239.5 256.322
+249.5 DL 245.324 239.5 240.324 239.5 DL 246.322 239.5 241.322 239.5 DL
+251.322 239.5 246.322 239.5 DL 256.322 239.5 251.322 239.5 DL 257.988
+240.5 257.988 250.5 DL 257.988 239.5 257.988 249.5 DL 273.986 240.5
+273.986 250.5 DL 262.988 250.5 257.988 250.5 DL 263.986 250.5 258.986
+250.5 DL 268.986 250.5 263.986 250.5 DL 273.986 250.5 268.986 250.5 DL
+273.986 239.5 273.986 249.5 DL 262.988 239.5 257.988 239.5 DL 263.986
+239.5 258.986 239.5 DL 268.986 239.5 263.986 239.5 DL 273.986 239.5
+268.986 239.5 DL F0 -7.968 9.066(=1 0 4 9)195.789 248 T F3<ae>1.666 E F0
+1.066(Use Normal Screen Buf)3.567 F 1.066
+(fer and restore cursor as in DECRC)-.25 F(\(unless disabled by the)180
+264 Q F4(titeInhibit)2.5 E F0(resource\))2.5 E F1(P)185 280 Q F2(s)-2 3
+M 202.862 272.5 202.862 282.5 DL 202.862 271.5 202.862 281.5 DL 218.86
+272.5 218.86 282.5 DL 207.862 282.5 202.862 282.5 DL 208.86 282.5 203.86
+282.5 DL 213.86 282.5 208.86 282.5 DL 218.86 282.5 213.86 282.5 DL
+218.86 271.5 218.86 281.5 DL 207.862 271.5 202.862 271.5 DL 208.86 271.5
+203.86 271.5 DL 213.86 271.5 208.86 271.5 DL 218.86 271.5 213.86 271.5
+DL 220.526 272.5 220.526 282.5 DL 220.526 271.5 220.526 281.5 DL 236.524
+272.5 236.524 282.5 DL 225.526 282.5 220.526 282.5 DL 226.524 282.5
+221.524 282.5 DL 231.524 282.5 226.524 282.5 DL 236.524 282.5 231.524
+282.5 DL 236.524 271.5 236.524 281.5 DL 225.526 271.5 220.526 271.5 DL
+226.524 271.5 221.524 271.5 DL 231.524 271.5 226.524 271.5 DL 236.524
+271.5 231.524 271.5 DL 238.19 272.5 238.19 282.5 DL 238.19 271.5 238.19
+281.5 DL 254.188 272.5 254.188 282.5 DL 243.19 282.5 238.19 282.5 DL
+244.188 282.5 239.188 282.5 DL 249.188 282.5 244.188 282.5 DL 254.188
+282.5 249.188 282.5 DL 254.188 271.5 254.188 281.5 DL 243.19 271.5
+238.19 271.5 DL 244.188 271.5 239.188 271.5 DL 249.188 271.5 244.188
+271.5 DL 254.188 271.5 249.188 271.5 DL 255.854 272.5 255.854 282.5 DL
+255.854 271.5 255.854 281.5 DL 271.852 272.5 271.852 282.5 DL 260.854
+282.5 255.854 282.5 DL 261.852 282.5 256.852 282.5 DL 266.852 282.5
+261.852 282.5 DL 271.852 282.5 266.852 282.5 DL 271.852 271.5 271.852
+281.5 DL 260.854 271.5 255.854 271.5 DL 261.852 271.5 256.852 271.5 DL
+266.852 271.5 261.852 271.5 DL 271.852 271.5 266.852 271.5 DL F0 -5.834
+7.999(=1 0 5 1)194.722 280 T F3<ae>1.666 E F0(Reset Sun function-k)2.5 E
+.3 -.15(ey m)-.1 H(ode.).15 E F1(P)185 296 Q F2(s)-2 3 M 202.862 288.5
+202.862 298.5 DL 202.862 287.5 202.862 297.5 DL 218.86 288.5 218.86
+298.5 DL 207.862 298.5 202.862 298.5 DL 208.86 298.5 203.86 298.5 DL
+213.86 298.5 208.86 298.5 DL 218.86 298.5 213.86 298.5 DL 218.86 287.5
+218.86 297.5 DL 207.862 287.5 202.862 287.5 DL 208.86 287.5 203.86 287.5
+DL 213.86 287.5 208.86 287.5 DL 218.86 287.5 213.86 287.5 DL 220.526
+288.5 220.526 298.5 DL 220.526 287.5 220.526 297.5 DL 236.524 288.5
+236.524 298.5 DL 225.526 298.5 220.526 298.5 DL 226.524 298.5 221.524
+298.5 DL 231.524 298.5 226.524 298.5 DL 236.524 298.5 231.524 298.5 DL
+236.524 287.5 236.524 297.5 DL 225.526 287.5 220.526 287.5 DL 226.524
+287.5 221.524 287.5 DL 231.524 287.5 226.524 287.5 DL 236.524 287.5
+231.524 287.5 DL 238.19 288.5 238.19 298.5 DL 238.19 287.5 238.19 297.5
+DL 254.188 288.5 254.188 298.5 DL 243.19 298.5 238.19 298.5 DL 244.188
+298.5 239.188 298.5 DL 249.188 298.5 244.188 298.5 DL 254.188 298.5
+249.188 298.5 DL 254.188 287.5 254.188 297.5 DL 243.19 287.5 238.19
+287.5 DL 244.188 287.5 239.188 287.5 DL 249.188 287.5 244.188 287.5 DL
+254.188 287.5 249.188 287.5 DL 255.854 288.5 255.854 298.5 DL 255.854
+287.5 255.854 297.5 DL 271.852 288.5 271.852 298.5 DL 260.854 298.5
+255.854 298.5 DL 261.852 298.5 256.852 298.5 DL 266.852 298.5 261.852
+298.5 DL 271.852 298.5 266.852 298.5 DL 271.852 287.5 271.852 297.5 DL
+260.854 287.5 255.854 287.5 DL 261.852 287.5 256.852 287.5 DL 266.852
+287.5 261.852 287.5 DL 271.852 287.5 266.852 287.5 DL F0 -5.834 7.999
+(=1 0 5 2)194.722 296 T F3<ae>1.666 E F0(Reset HP function-k)2.5 E .3
+-.15(ey m)-.1 H(ode.).15 E F1(P)185 312 Q F2(s)-2 3 M 202.862 304.5
+202.862 314.5 DL 202.862 303.5 202.862 313.5 DL 218.86 304.5 218.86
+314.5 DL 207.862 314.5 202.862 314.5 DL 208.86 314.5 203.86 314.5 DL
+213.86 314.5 208.86 314.5 DL 218.86 314.5 213.86 314.5 DL 218.86 303.5
+218.86 313.5 DL 207.862 303.5 202.862 303.5 DL 208.86 303.5 203.86 303.5
+DL 213.86 303.5 208.86 303.5 DL 218.86 303.5 213.86 303.5 DL 220.526
+304.5 220.526 314.5 DL 220.526 303.5 220.526 313.5 DL 236.524 304.5
+236.524 314.5 DL 225.526 314.5 220.526 314.5 DL 226.524 314.5 221.524
+314.5 DL 231.524 314.5 226.524 314.5 DL 236.524 314.5 231.524 314.5 DL
+236.524 303.5 236.524 313.5 DL 225.526 303.5 220.526 303.5 DL 226.524
+303.5 221.524 303.5 DL 231.524 303.5 226.524 303.5 DL 236.524 303.5
+231.524 303.5 DL 238.19 304.5 238.19 314.5 DL 238.19 303.5 238.19 313.5
+DL 254.188 304.5 254.188 314.5 DL 243.19 314.5 238.19 314.5 DL 244.188
+314.5 239.188 314.5 DL 249.188 314.5 244.188 314.5 DL 254.188 314.5
+249.188 314.5 DL 254.188 303.5 254.188 313.5 DL 243.19 303.5 238.19
+303.5 DL 244.188 303.5 239.188 303.5 DL 249.188 303.5 244.188 303.5 DL
+254.188 303.5 249.188 303.5 DL 255.854 304.5 255.854 314.5 DL 255.854
+303.5 255.854 313.5 DL 271.852 304.5 271.852 314.5 DL 260.854 314.5
+255.854 314.5 DL 261.852 314.5 256.852 314.5 DL 266.852 314.5 261.852
+314.5 DL 271.852 314.5 266.852 314.5 DL 271.852 303.5 271.852 313.5 DL
+260.854 303.5 255.854 303.5 DL 261.852 303.5 256.852 303.5 DL 266.852
+303.5 261.852 303.5 DL 271.852 303.5 266.852 303.5 DL F0 -5.834 7.999
+(=1 0 6 0)194.722 312 T F3<ae>1.666 E F0(Reset le)2.5 E -.05(ga)-.15 G
+.3 -.15(cy k).05 H -.15(ey).05 G(board emulation \(X11R6\).).15 E F1(P)
+185 328 Q F2(s)-2 3 M 202.862 320.5 202.862 330.5 DL 202.862 319.5
+202.862 329.5 DL 218.86 320.5 218.86 330.5 DL 207.862 330.5 202.862
+330.5 DL 208.86 330.5 203.86 330.5 DL 213.86 330.5 208.86 330.5 DL
+218.86 330.5 213.86 330.5 DL 218.86 319.5 218.86 329.5 DL 207.862 319.5
+202.862 319.5 DL 208.86 319.5 203.86 319.5 DL 213.86 319.5 208.86 319.5
+DL 218.86 319.5 213.86 319.5 DL 220.526 320.5 220.526 330.5 DL 220.526
+319.5 220.526 329.5 DL 236.524 320.5 236.524 330.5 DL 225.526 330.5
+220.526 330.5 DL 226.524 330.5 221.524 330.5 DL 231.524 330.5 226.524
+330.5 DL 236.524 330.5 231.524 330.5 DL 236.524 319.5 236.524 329.5 DL
+225.526 319.5 220.526 319.5 DL 226.524 319.5 221.524 319.5 DL 231.524
+319.5 226.524 319.5 DL 236.524 319.5 231.524 319.5 DL 238.19 320.5
+238.19 330.5 DL 238.19 319.5 238.19 329.5 DL 254.188 320.5 254.188 330.5
+DL 243.19 330.5 238.19 330.5 DL 244.188 330.5 239.188 330.5 DL 249.188
+330.5 244.188 330.5 DL 254.188 330.5 249.188 330.5 DL 254.188 319.5
+254.188 329.5 DL 243.19 319.5 238.19 319.5 DL 244.188 319.5 239.188
+319.5 DL 249.188 319.5 244.188 319.5 DL 254.188 319.5 249.188 319.5 DL
+255.854 320.5 255.854 330.5 DL 255.854 319.5 255.854 329.5 DL 271.852
+320.5 271.852 330.5 DL 260.854 330.5 255.854 330.5 DL 261.852 330.5
+256.852 330.5 DL 266.852 330.5 261.852 330.5 DL 271.852 330.5 266.852
+330.5 DL 271.852 319.5 271.852 329.5 DL 260.854 319.5 255.854 319.5 DL
+261.852 319.5 256.852 319.5 DL 266.852 319.5 261.852 319.5 DL 271.852
+319.5 266.852 319.5 DL F0 -5.834 7.999(=1 0 6 1)194.722 328 T F3<ae>
+1.666 E F0(Reset Sun/PC k)2.5 E -.15(ey)-.1 G
+(board emulation of VT220 k).15 E -.15(ey)-.1 G(board.).15 E 72 336.5 72
+346.5 DL 72 335.5 72 345.5 DL 87.998 336.5 87.998 346.5 DL 77 346.5 72
+346.5 DL 77.998 346.5 72.998 346.5 DL 82.998 346.5 77.998 346.5 DL
+87.998 346.5 82.998 346.5 DL 87.998 335.5 87.998 345.5 DL 77 335.5 72
+335.5 DL 77.998 335.5 72.998 335.5 DL 82.998 335.5 77.998 335.5 DL
+87.998 335.5 82.998 335.5 DL/F5 6/Times-Roman@0 SF(CSI)75.331 343 Q F1
+(P)4.997 1 M 101.216 336.5 101.216 346.5 DL 101.216 335.5 101.216 345.5
+DL F2(m)93.774 347 Q 117.214 336.5 117.214 346.5 DL 106.216 346.5
+101.216 346.5 DL 107.214 346.5 102.214 346.5 DL 112.214 346.5 107.214
+346.5 DL 117.214 346.5 112.214 346.5 DL 117.214 335.5 117.214 345.5 DL
+106.216 335.5 101.216 335.5 DL 107.214 335.5 102.214 335.5 DL 112.214
+335.5 107.214 335.5 DL 117.214 335.5 112.214 335.5 DL F0 66.895(mC)
+105.325 344 S(haracter Attrib)-66.895 E(utes \(SGR\))-.2 E F1(P)185 360
+Q F2(s)-2 3 M 202.862 352.5 202.862 362.5 DL 202.862 351.5 202.862 361.5
+DL 218.86 352.5 218.86 362.5 DL 207.862 362.5 202.862 362.5 DL 208.86
+362.5 203.86 362.5 DL 213.86 362.5 208.86 362.5 DL 218.86 362.5 213.86
+362.5 DL 218.86 351.5 218.86 361.5 DL 207.862 351.5 202.862 351.5 DL
+208.86 351.5 203.86 351.5 DL 213.86 351.5 208.86 351.5 DL 218.86 351.5
+213.86 351.5 DL F0 7.999(=0)194.722 360 S F3<ae>1.666 E F0(Normal \(def)
+2.5 E(ault\))-.1 E F1(P)185 376 Q F2(s)-2 3 M 202.862 368.5 202.862
+378.5 DL 202.862 367.5 202.862 377.5 DL 218.86 368.5 218.86 378.5 DL
+207.862 378.5 202.862 378.5 DL 208.86 378.5 203.86 378.5 DL 213.86 378.5
+208.86 378.5 DL 218.86 378.5 213.86 378.5 DL 218.86 367.5 218.86 377.5
+DL 207.862 367.5 202.862 367.5 DL 208.86 367.5 203.86 367.5 DL 213.86
+367.5 208.86 367.5 DL 218.86 367.5 213.86 367.5 DL F0 7.999(=1)194.722
+376 S F3<ae>1.666 E F0(Bold)2.5 E F1(P)185 392 Q F2(s)-2 3 M 202.862
+384.5 202.862 394.5 DL 202.862 383.5 202.862 393.5 DL 218.86 384.5
+218.86 394.5 DL 207.862 394.5 202.862 394.5 DL 208.86 394.5 203.86 394.5
+DL 213.86 394.5 208.86 394.5 DL 218.86 394.5 213.86 394.5 DL 218.86
+383.5 218.86 393.5 DL 207.862 383.5 202.862 383.5 DL 208.86 383.5 203.86
+383.5 DL 213.86 383.5 208.86 383.5 DL 218.86 383.5 213.86 383.5 DL F0
+7.999(=4)194.722 392 S F3<ae>1.666 E F0(Underlined)2.5 E F1(P)185 408 Q
+F2(s)-2 3 M 202.862 400.5 202.862 410.5 DL 202.862 399.5 202.862 409.5
+DL 218.86 400.5 218.86 410.5 DL 207.862 410.5 202.862 410.5 DL 208.86
+410.5 203.86 410.5 DL 213.86 410.5 208.86 410.5 DL 218.86 410.5 213.86
+410.5 DL 218.86 399.5 218.86 409.5 DL 207.862 399.5 202.862 399.5 DL
+208.86 399.5 203.86 399.5 DL 213.86 399.5 208.86 399.5 DL 218.86 399.5
+213.86 399.5 DL F0 7.999(=5)194.722 408 S F3<ae>1.666 E F0
+(Blink \(appears as Bold\))2.5 E F1(P)185 424 Q F2(s)-2 3 M 202.862
+416.5 202.862 426.5 DL 202.862 415.5 202.862 425.5 DL 218.86 416.5
+218.86 426.5 DL 207.862 426.5 202.862 426.5 DL 208.86 426.5 203.86 426.5
+DL 213.86 426.5 208.86 426.5 DL 218.86 426.5 213.86 426.5 DL 218.86
+415.5 218.86 425.5 DL 207.862 415.5 202.862 415.5 DL 208.86 415.5 203.86
+415.5 DL 213.86 415.5 208.86 415.5 DL 218.86 415.5 213.86 415.5 DL F0
+7.999(=7)194.722 424 S F3<ae>1.666 E F0(In)2.5 E -.15(ve)-.4 G(rse).15 E
+F1(P)185 440 Q F2(s)-2 3 M 202.862 432.5 202.862 442.5 DL 202.862 431.5
+202.862 441.5 DL 218.86 432.5 218.86 442.5 DL 207.862 442.5 202.862
+442.5 DL 208.86 442.5 203.86 442.5 DL 213.86 442.5 208.86 442.5 DL
+218.86 442.5 213.86 442.5 DL 218.86 431.5 218.86 441.5 DL 207.862 431.5
+202.862 431.5 DL 208.86 431.5 203.86 431.5 DL 213.86 431.5 208.86 431.5
+DL 218.86 431.5 213.86 431.5 DL F0 7.999(=8)194.722 440 S F3<ae>1.666 E
+F0(In)2.5 E(visible \(hidden\))-.4 E F1(P)185 456 Q F2(s)-2 3 M 202.862
+448.5 202.862 458.5 DL 202.862 447.5 202.862 457.5 DL 218.86 448.5
+218.86 458.5 DL 207.862 458.5 202.862 458.5 DL 208.86 458.5 203.86 458.5
+DL 213.86 458.5 208.86 458.5 DL 218.86 458.5 213.86 458.5 DL 218.86
+447.5 218.86 457.5 DL 207.862 447.5 202.862 447.5 DL 208.86 447.5 203.86
+447.5 DL 213.86 447.5 208.86 447.5 DL 218.86 447.5 213.86 447.5 DL
+220.526 448.5 220.526 458.5 DL 220.526 447.5 220.526 457.5 DL 236.524
+448.5 236.524 458.5 DL 225.526 458.5 220.526 458.5 DL 226.524 458.5
+221.524 458.5 DL 231.524 458.5 226.524 458.5 DL 236.524 458.5 231.524
+458.5 DL 236.524 447.5 236.524 457.5 DL 225.526 447.5 220.526 447.5 DL
+226.524 447.5 221.524 447.5 DL 231.524 447.5 226.524 447.5 DL 236.524
+447.5 231.524 447.5 DL F0 -5.834 7.999(=2 2)194.722 456 T F3<ae>1.666 E
+F0(Normal \(neither bold nor f)2.5 E(aint\))-.1 E F1(P)185 472 Q F2(s)-2
+3 M 202.862 464.5 202.862 474.5 DL 202.862 463.5 202.862 473.5 DL 218.86
+464.5 218.86 474.5 DL 207.862 474.5 202.862 474.5 DL 208.86 474.5 203.86
+474.5 DL 213.86 474.5 208.86 474.5 DL 218.86 474.5 213.86 474.5 DL
+218.86 463.5 218.86 473.5 DL 207.862 463.5 202.862 463.5 DL 208.86 463.5
+203.86 463.5 DL 213.86 463.5 208.86 463.5 DL 218.86 463.5 213.86 463.5
+DL 220.526 464.5 220.526 474.5 DL 220.526 463.5 220.526 473.5 DL 236.524
+464.5 236.524 474.5 DL 225.526 474.5 220.526 474.5 DL 226.524 474.5
+221.524 474.5 DL 231.524 474.5 226.524 474.5 DL 236.524 474.5 231.524
+474.5 DL 236.524 463.5 236.524 473.5 DL 225.526 463.5 220.526 463.5 DL
+226.524 463.5 221.524 463.5 DL 231.524 463.5 226.524 463.5 DL 236.524
+463.5 231.524 463.5 DL F0 -5.834 7.999(=2 4)194.722 472 T F3<ae>1.666 E
+F0(Not underlined)2.5 E F1(P)185 488 Q F2(s)-2 3 M 202.862 480.5 202.862
+490.5 DL 202.862 479.5 202.862 489.5 DL 218.86 480.5 218.86 490.5 DL
+207.862 490.5 202.862 490.5 DL 208.86 490.5 203.86 490.5 DL 213.86 490.5
+208.86 490.5 DL 218.86 490.5 213.86 490.5 DL 218.86 479.5 218.86 489.5
+DL 207.862 479.5 202.862 479.5 DL 208.86 479.5 203.86 479.5 DL 213.86
+479.5 208.86 479.5 DL 218.86 479.5 213.86 479.5 DL 220.526 480.5 220.526
+490.5 DL 220.526 479.5 220.526 489.5 DL 236.524 480.5 236.524 490.5 DL
+225.526 490.5 220.526 490.5 DL 226.524 490.5 221.524 490.5 DL 231.524
+490.5 226.524 490.5 DL 236.524 490.5 231.524 490.5 DL 236.524 479.5
+236.524 489.5 DL 225.526 479.5 220.526 479.5 DL 226.524 479.5 221.524
+479.5 DL 231.524 479.5 226.524 479.5 DL 236.524 479.5 231.524 479.5 DL
+F0 -5.834 7.999(=2 5)194.722 488 T F3<ae>1.666 E F0
+(Steady \(not blinking\))2.5 E F1(P)185 504 Q F2(s)-2 3 M 202.862 496.5
+202.862 506.5 DL 202.862 495.5 202.862 505.5 DL 218.86 496.5 218.86
+506.5 DL 207.862 506.5 202.862 506.5 DL 208.86 506.5 203.86 506.5 DL
+213.86 506.5 208.86 506.5 DL 218.86 506.5 213.86 506.5 DL 218.86 495.5
+218.86 505.5 DL 207.862 495.5 202.862 495.5 DL 208.86 495.5 203.86 495.5
+DL 213.86 495.5 208.86 495.5 DL 218.86 495.5 213.86 495.5 DL 220.526
+496.5 220.526 506.5 DL 220.526 495.5 220.526 505.5 DL 236.524 496.5
+236.524 506.5 DL 225.526 506.5 220.526 506.5 DL 226.524 506.5 221.524
+506.5 DL 231.524 506.5 226.524 506.5 DL 236.524 506.5 231.524 506.5 DL
+236.524 495.5 236.524 505.5 DL 225.526 495.5 220.526 495.5 DL 226.524
+495.5 221.524 495.5 DL 231.524 495.5 226.524 495.5 DL 236.524 495.5
+231.524 495.5 DL F0 -5.834 7.999(=2 7)194.722 504 T F3<ae>1.666 E F0
+(Positi)2.5 E .3 -.15(ve \()-.25 H(not in).15 E -.15(ve)-.4 G(rse\)).15
+E F1(P)185 520 Q F2(s)-2 3 M 202.862 512.5 202.862 522.5 DL 202.862
+511.5 202.862 521.5 DL 218.86 512.5 218.86 522.5 DL 207.862 522.5
+202.862 522.5 DL 208.86 522.5 203.86 522.5 DL 213.86 522.5 208.86 522.5
+DL 218.86 522.5 213.86 522.5 DL 218.86 511.5 218.86 521.5 DL 207.862
+511.5 202.862 511.5 DL 208.86 511.5 203.86 511.5 DL 213.86 511.5 208.86
+511.5 DL 218.86 511.5 213.86 511.5 DL 220.526 512.5 220.526 522.5 DL
+220.526 511.5 220.526 521.5 DL 236.524 512.5 236.524 522.5 DL 225.526
+522.5 220.526 522.5 DL 226.524 522.5 221.524 522.5 DL 231.524 522.5
+226.524 522.5 DL 236.524 522.5 231.524 522.5 DL 236.524 511.5 236.524
+521.5 DL 225.526 511.5 220.526 511.5 DL 226.524 511.5 221.524 511.5 DL
+231.524 511.5 226.524 511.5 DL 236.524 511.5 231.524 511.5 DL F0 -5.834
+7.999(=2 8)194.722 520 T F3<ae>1.666 E F0 -.6(Vi)2.5 G
+(sible \(not hidden\)).6 E F1(P)185 536 Q F2(s)-2 3 M 202.862 528.5
+202.862 538.5 DL 202.862 527.5 202.862 537.5 DL 218.86 528.5 218.86
+538.5 DL 207.862 538.5 202.862 538.5 DL 208.86 538.5 203.86 538.5 DL
+213.86 538.5 208.86 538.5 DL 218.86 538.5 213.86 538.5 DL 218.86 527.5
+218.86 537.5 DL 207.862 527.5 202.862 527.5 DL 208.86 527.5 203.86 527.5
+DL 213.86 527.5 208.86 527.5 DL 218.86 527.5 213.86 527.5 DL 220.526
+528.5 220.526 538.5 DL 220.526 527.5 220.526 537.5 DL 236.524 528.5
+236.524 538.5 DL 225.526 538.5 220.526 538.5 DL 226.524 538.5 221.524
+538.5 DL 231.524 538.5 226.524 538.5 DL 236.524 538.5 231.524 538.5 DL
+236.524 527.5 236.524 537.5 DL 225.526 527.5 220.526 527.5 DL 226.524
+527.5 221.524 527.5 DL 231.524 527.5 226.524 527.5 DL 236.524 527.5
+231.524 527.5 DL F0 -5.834 7.999(=3 0)194.722 536 T F3<ae>1.666 E F0
+(Set fore)2.5 E(ground color to Black)-.15 E F1(P)185 552 Q F2(s)-2 3 M
+202.862 544.5 202.862 554.5 DL 202.862 543.5 202.862 553.5 DL 218.86
+544.5 218.86 554.5 DL 207.862 554.5 202.862 554.5 DL 208.86 554.5 203.86
+554.5 DL 213.86 554.5 208.86 554.5 DL 218.86 554.5 213.86 554.5 DL
+218.86 543.5 218.86 553.5 DL 207.862 543.5 202.862 543.5 DL 208.86 543.5
+203.86 543.5 DL 213.86 543.5 208.86 543.5 DL 218.86 543.5 213.86 543.5
+DL 220.526 544.5 220.526 554.5 DL 220.526 543.5 220.526 553.5 DL 236.524
+544.5 236.524 554.5 DL 225.526 554.5 220.526 554.5 DL 226.524 554.5
+221.524 554.5 DL 231.524 554.5 226.524 554.5 DL 236.524 554.5 231.524
+554.5 DL 236.524 543.5 236.524 553.5 DL 225.526 543.5 220.526 543.5 DL
+226.524 543.5 221.524 543.5 DL 231.524 543.5 226.524 543.5 DL 236.524
+543.5 231.524 543.5 DL F0 -5.834 7.999(=3 1)194.722 552 T F3<ae>1.666 E
+F0(Set fore)2.5 E(ground color to Red)-.15 E F1(P)185 568 Q F2(s)-2 3 M
+202.862 560.5 202.862 570.5 DL 202.862 559.5 202.862 569.5 DL 218.86
+560.5 218.86 570.5 DL 207.862 570.5 202.862 570.5 DL 208.86 570.5 203.86
+570.5 DL 213.86 570.5 208.86 570.5 DL 218.86 570.5 213.86 570.5 DL
+218.86 559.5 218.86 569.5 DL 207.862 559.5 202.862 559.5 DL 208.86 559.5
+203.86 559.5 DL 213.86 559.5 208.86 559.5 DL 218.86 559.5 213.86 559.5
+DL 220.526 560.5 220.526 570.5 DL 220.526 559.5 220.526 569.5 DL 236.524
+560.5 236.524 570.5 DL 225.526 570.5 220.526 570.5 DL 226.524 570.5
+221.524 570.5 DL 231.524 570.5 226.524 570.5 DL 236.524 570.5 231.524
+570.5 DL 236.524 559.5 236.524 569.5 DL 225.526 559.5 220.526 559.5 DL
+226.524 559.5 221.524 559.5 DL 231.524 559.5 226.524 559.5 DL 236.524
+559.5 231.524 559.5 DL F0 -5.834 7.999(=3 2)194.722 568 T F3<ae>1.666 E
+F0(Set fore)2.5 E(ground color to Green)-.15 E F1(P)185 584 Q F2(s)-2 3
+M 202.862 576.5 202.862 586.5 DL 202.862 575.5 202.862 585.5 DL 218.86
+576.5 218.86 586.5 DL 207.862 586.5 202.862 586.5 DL 208.86 586.5 203.86
+586.5 DL 213.86 586.5 208.86 586.5 DL 218.86 586.5 213.86 586.5 DL
+218.86 575.5 218.86 585.5 DL 207.862 575.5 202.862 575.5 DL 208.86 575.5
+203.86 575.5 DL 213.86 575.5 208.86 575.5 DL 218.86 575.5 213.86 575.5
+DL 220.526 576.5 220.526 586.5 DL 220.526 575.5 220.526 585.5 DL 236.524
+576.5 236.524 586.5 DL 225.526 586.5 220.526 586.5 DL 226.524 586.5
+221.524 586.5 DL 231.524 586.5 226.524 586.5 DL 236.524 586.5 231.524
+586.5 DL 236.524 575.5 236.524 585.5 DL 225.526 575.5 220.526 575.5 DL
+226.524 575.5 221.524 575.5 DL 231.524 575.5 226.524 575.5 DL 236.524
+575.5 231.524 575.5 DL F0 -5.834 7.999(=3 3)194.722 584 T F3<ae>1.666 E
+F0(Set fore)2.5 E(ground color to Y)-.15 E(ello)-1 E(w)-.25 E F1(P)185
+600 Q F2(s)-2 3 M 202.862 592.5 202.862 602.5 DL 202.862 591.5 202.862
+601.5 DL 218.86 592.5 218.86 602.5 DL 207.862 602.5 202.862 602.5 DL
+208.86 602.5 203.86 602.5 DL 213.86 602.5 208.86 602.5 DL 218.86 602.5
+213.86 602.5 DL 218.86 591.5 218.86 601.5 DL 207.862 591.5 202.862 591.5
+DL 208.86 591.5 203.86 591.5 DL 213.86 591.5 208.86 591.5 DL 218.86
+591.5 213.86 591.5 DL 220.526 592.5 220.526 602.5 DL 220.526 591.5
+220.526 601.5 DL 236.524 592.5 236.524 602.5 DL 225.526 602.5 220.526
+602.5 DL 226.524 602.5 221.524 602.5 DL 231.524 602.5 226.524 602.5 DL
+236.524 602.5 231.524 602.5 DL 236.524 591.5 236.524 601.5 DL 225.526
+591.5 220.526 591.5 DL 226.524 591.5 221.524 591.5 DL 231.524 591.5
+226.524 591.5 DL 236.524 591.5 231.524 591.5 DL F0 -5.834 7.999(=3 4)
+194.722 600 T F3<ae>1.666 E F0(Set fore)2.5 E(ground color to Blue)-.15
+E F1(P)185 616 Q F2(s)-2 3 M 202.862 608.5 202.862 618.5 DL 202.862
+607.5 202.862 617.5 DL 218.86 608.5 218.86 618.5 DL 207.862 618.5
+202.862 618.5 DL 208.86 618.5 203.86 618.5 DL 213.86 618.5 208.86 618.5
+DL 218.86 618.5 213.86 618.5 DL 218.86 607.5 218.86 617.5 DL 207.862
+607.5 202.862 607.5 DL 208.86 607.5 203.86 607.5 DL 213.86 607.5 208.86
+607.5 DL 218.86 607.5 213.86 607.5 DL 220.526 608.5 220.526 618.5 DL
+220.526 607.5 220.526 617.5 DL 236.524 608.5 236.524 618.5 DL 225.526
+618.5 220.526 618.5 DL 226.524 618.5 221.524 618.5 DL 231.524 618.5
+226.524 618.5 DL 236.524 618.5 231.524 618.5 DL 236.524 607.5 236.524
+617.5 DL 225.526 607.5 220.526 607.5 DL 226.524 607.5 221.524 607.5 DL
+231.524 607.5 226.524 607.5 DL 236.524 607.5 231.524 607.5 DL F0 -5.834
+7.999(=3 5)194.722 616 T F3<ae>1.666 E F0(Set fore)2.5 E
+(ground color to Magenta)-.15 E F1(P)185 632 Q F2(s)-2 3 M 202.862 624.5
+202.862 634.5 DL 202.862 623.5 202.862 633.5 DL 218.86 624.5 218.86
+634.5 DL 207.862 634.5 202.862 634.5 DL 208.86 634.5 203.86 634.5 DL
+213.86 634.5 208.86 634.5 DL 218.86 634.5 213.86 634.5 DL 218.86 623.5
+218.86 633.5 DL 207.862 623.5 202.862 623.5 DL 208.86 623.5 203.86 623.5
+DL 213.86 623.5 208.86 623.5 DL 218.86 623.5 213.86 623.5 DL 220.526
+624.5 220.526 634.5 DL 220.526 623.5 220.526 633.5 DL 236.524 624.5
+236.524 634.5 DL 225.526 634.5 220.526 634.5 DL 226.524 634.5 221.524
+634.5 DL 231.524 634.5 226.524 634.5 DL 236.524 634.5 231.524 634.5 DL
+236.524 623.5 236.524 633.5 DL 225.526 623.5 220.526 623.5 DL 226.524
+623.5 221.524 623.5 DL 231.524 623.5 226.524 623.5 DL 236.524 623.5
+231.524 623.5 DL F0 -5.834 7.999(=3 6)194.722 632 T F3<ae>1.666 E F0
+(Set fore)2.5 E(ground color to Cyan)-.15 E F1(P)185 648 Q F2(s)-2 3 M
+202.862 640.5 202.862 650.5 DL 202.862 639.5 202.862 649.5 DL 218.86
+640.5 218.86 650.5 DL 207.862 650.5 202.862 650.5 DL 208.86 650.5 203.86
+650.5 DL 213.86 650.5 208.86 650.5 DL 218.86 650.5 213.86 650.5 DL
+218.86 639.5 218.86 649.5 DL 207.862 639.5 202.862 639.5 DL 208.86 639.5
+203.86 639.5 DL 213.86 639.5 208.86 639.5 DL 218.86 639.5 213.86 639.5
+DL 220.526 640.5 220.526 650.5 DL 220.526 639.5 220.526 649.5 DL 236.524
+640.5 236.524 650.5 DL 225.526 650.5 220.526 650.5 DL 226.524 650.5
+221.524 650.5 DL 231.524 650.5 226.524 650.5 DL 236.524 650.5 231.524
+650.5 DL 236.524 639.5 236.524 649.5 DL 225.526 639.5 220.526 639.5 DL
+226.524 639.5 221.524 639.5 DL 231.524 639.5 226.524 639.5 DL 236.524
+639.5 231.524 639.5 DL F0 -5.834 7.999(=3 7)194.722 648 T F3<ae>1.666 E
+F0(Set fore)2.5 E(ground color to White)-.15 E F1(P)185 664 Q F2(s)-2 3
+M 202.862 656.5 202.862 666.5 DL 202.862 655.5 202.862 665.5 DL 218.86
+656.5 218.86 666.5 DL 207.862 666.5 202.862 666.5 DL 208.86 666.5 203.86
+666.5 DL 213.86 666.5 208.86 666.5 DL 218.86 666.5 213.86 666.5 DL
+218.86 655.5 218.86 665.5 DL 207.862 655.5 202.862 655.5 DL 208.86 655.5
+203.86 655.5 DL 213.86 655.5 208.86 655.5 DL 218.86 655.5 213.86 655.5
+DL 220.526 656.5 220.526 666.5 DL 220.526 655.5 220.526 665.5 DL 236.524
+656.5 236.524 666.5 DL 225.526 666.5 220.526 666.5 DL 226.524 666.5
+221.524 666.5 DL 231.524 666.5 226.524 666.5 DL 236.524 666.5 231.524
+666.5 DL 236.524 655.5 236.524 665.5 DL 225.526 655.5 220.526 655.5 DL
+226.524 655.5 221.524 655.5 DL 231.524 655.5 226.524 655.5 DL 236.524
+655.5 231.524 655.5 DL F0 -5.834 7.999(=3 9)194.722 664 T F3<ae>1.666 E
+F0(Set fore)2.5 E(ground color to def)-.15 E(ault \(original\))-.1 E F1
+(P)185 680 Q F2(s)-2 3 M 202.862 672.5 202.862 682.5 DL 202.862 671.5
+202.862 681.5 DL 218.86 672.5 218.86 682.5 DL 207.862 682.5 202.862
+682.5 DL 208.86 682.5 203.86 682.5 DL 213.86 682.5 208.86 682.5 DL
+218.86 682.5 213.86 682.5 DL 218.86 671.5 218.86 681.5 DL 207.862 671.5
+202.862 671.5 DL 208.86 671.5 203.86 671.5 DL 213.86 671.5 208.86 671.5
+DL 218.86 671.5 213.86 671.5 DL 220.526 672.5 220.526 682.5 DL 220.526
+671.5 220.526 681.5 DL 236.524 672.5 236.524 682.5 DL 225.526 682.5
+220.526 682.5 DL 226.524 682.5 221.524 682.5 DL 231.524 682.5 226.524
+682.5 DL 236.524 682.5 231.524 682.5 DL 236.524 671.5 236.524 681.5 DL
+225.526 671.5 220.526 671.5 DL 226.524 671.5 221.524 671.5 DL 231.524
+671.5 226.524 671.5 DL 236.524 671.5 231.524 671.5 DL F0 -5.834 7.999
+(=4 0)194.722 680 T F3<ae>1.666 E F0(Set background color to Black)2.5 E
+F1(P)185 696 Q F2(s)-2 3 M 202.862 688.5 202.862 698.5 DL 202.862 687.5
+202.862 697.5 DL 218.86 688.5 218.86 698.5 DL 207.862 698.5 202.862
+698.5 DL 208.86 698.5 203.86 698.5 DL 213.86 698.5 208.86 698.5 DL
+218.86 698.5 213.86 698.5 DL 218.86 687.5 218.86 697.5 DL 207.862 687.5
+202.862 687.5 DL 208.86 687.5 203.86 687.5 DL 213.86 687.5 208.86 687.5
+DL 218.86 687.5 213.86 687.5 DL 220.526 688.5 220.526 698.5 DL 220.526
+687.5 220.526 697.5 DL 236.524 688.5 236.524 698.5 DL 225.526 698.5
+220.526 698.5 DL 226.524 698.5 221.524 698.5 DL 231.524 698.5 226.524
+698.5 DL 236.524 698.5 231.524 698.5 DL 236.524 687.5 236.524 697.5 DL
+225.526 687.5 220.526 687.5 DL 226.524 687.5 221.524 687.5 DL 231.524
+687.5 226.524 687.5 DL 236.524 687.5 231.524 687.5 DL F0 -5.834 7.999
+(=4 1)194.722 696 T F3<ae>1.666 E F0(Set background color to Red)2.5 E
+F1(P)185 712 Q F2(s)-2 3 M 202.862 704.5 202.862 714.5 DL 202.862 703.5
+202.862 713.5 DL 218.86 704.5 218.86 714.5 DL 207.862 714.5 202.862
+714.5 DL 208.86 714.5 203.86 714.5 DL 213.86 714.5 208.86 714.5 DL
+218.86 714.5 213.86 714.5 DL 218.86 703.5 218.86 713.5 DL 207.862 703.5
+202.862 703.5 DL 208.86 703.5 203.86 703.5 DL 213.86 703.5 208.86 703.5
+DL 218.86 703.5 213.86 703.5 DL 220.526 704.5 220.526 714.5 DL 220.526
+703.5 220.526 713.5 DL 236.524 704.5 236.524 714.5 DL 225.526 714.5
+220.526 714.5 DL 226.524 714.5 221.524 714.5 DL 231.524 714.5 226.524
+714.5 DL 236.524 714.5 231.524 714.5 DL 236.524 703.5 236.524 713.5 DL
+225.526 703.5 220.526 703.5 DL 226.524 703.5 221.524 703.5 DL 231.524
+703.5 226.524 703.5 DL 236.524 703.5 231.524 703.5 DL F0 -5.834 7.999
+(=4 2)194.722 712 T F3<ae>1.666 E F0(Set background color to Green)2.5 E
+F1(P)185 728 Q F2(s)-2 3 M 202.862 720.5 202.862 730.5 DL 202.862 719.5
+202.862 729.5 DL 218.86 720.5 218.86 730.5 DL 207.862 730.5 202.862
+730.5 DL 208.86 730.5 203.86 730.5 DL 213.86 730.5 208.86 730.5 DL
+218.86 730.5 213.86 730.5 DL 218.86 719.5 218.86 729.5 DL 207.862 719.5
+202.862 719.5 DL 208.86 719.5 203.86 719.5 DL 213.86 719.5 208.86 719.5
+DL 218.86 719.5 213.86 719.5 DL 220.526 720.5 220.526 730.5 DL 220.526
+719.5 220.526 729.5 DL 236.524 720.5 236.524 730.5 DL 225.526 730.5
+220.526 730.5 DL 226.524 730.5 221.524 730.5 DL 231.524 730.5 226.524
+730.5 DL 236.524 730.5 231.524 730.5 DL 236.524 719.5 236.524 729.5 DL
+225.526 719.5 220.526 719.5 DL 226.524 719.5 221.524 719.5 DL 231.524
+719.5 226.524 719.5 DL 236.524 719.5 231.524 719.5 DL F0 -5.834 7.999
+(=4 3)194.722 728 T F3<ae>1.666 E F0(Set background color to Y)2.5 E
+(ello)-1 E(w)-.25 E(9)303.5 772 Q EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E/F1 10/Times-Italic@0 SF(P)185 88 Q/F2 8/Times-Italic@0 SF(s)-2
+3 M .4 LW 202.862 80.5 202.862 90.5 DL 202.862 79.5 202.862 89.5 DL
+218.86 80.5 218.86 90.5 DL 207.862 90.5 202.862 90.5 DL 208.86 90.5
+203.86 90.5 DL 213.86 90.5 208.86 90.5 DL 218.86 90.5 213.86 90.5 DL
+218.86 79.5 218.86 89.5 DL 207.862 79.5 202.862 79.5 DL 208.86 79.5
+203.86 79.5 DL 213.86 79.5 208.86 79.5 DL 218.86 79.5 213.86 79.5 DL
+220.526 80.5 220.526 90.5 DL 220.526 79.5 220.526 89.5 DL 236.524 80.5
+236.524 90.5 DL 225.526 90.5 220.526 90.5 DL 226.524 90.5 221.524 90.5
+DL 231.524 90.5 226.524 90.5 DL 236.524 90.5 231.524 90.5 DL 236.524
+79.5 236.524 89.5 DL 225.526 79.5 220.526 79.5 DL 226.524 79.5 221.524
+79.5 DL 231.524 79.5 226.524 79.5 DL 236.524 79.5 231.524 79.5 DL F0
+-5.834 7.999(=4 4)194.722 88 T/F3 10/Symbol SF<ae>1.666 E F0
+(Set background color to Blue)2.5 E F1(P)185 104 Q F2(s)-2 3 M 202.862
+96.5 202.862 106.5 DL 202.862 95.5 202.862 105.5 DL 218.86 96.5 218.86
+106.5 DL 207.862 106.5 202.862 106.5 DL 208.86 106.5 203.86 106.5 DL
+213.86 106.5 208.86 106.5 DL 218.86 106.5 213.86 106.5 DL 218.86 95.5
+218.86 105.5 DL 207.862 95.5 202.862 95.5 DL 208.86 95.5 203.86 95.5 DL
+213.86 95.5 208.86 95.5 DL 218.86 95.5 213.86 95.5 DL 220.526 96.5
+220.526 106.5 DL 220.526 95.5 220.526 105.5 DL 236.524 96.5 236.524
+106.5 DL 225.526 106.5 220.526 106.5 DL 226.524 106.5 221.524 106.5 DL
+231.524 106.5 226.524 106.5 DL 236.524 106.5 231.524 106.5 DL 236.524
+95.5 236.524 105.5 DL 225.526 95.5 220.526 95.5 DL 226.524 95.5 221.524
+95.5 DL 231.524 95.5 226.524 95.5 DL 236.524 95.5 231.524 95.5 DL F0
+-5.834 7.999(=4 5)194.722 104 T F3<ae>1.666 E F0
+(Set background color to Magenta)2.5 E F1(P)185 120 Q F2(s)-2 3 M
+202.862 112.5 202.862 122.5 DL 202.862 111.5 202.862 121.5 DL 218.86
+112.5 218.86 122.5 DL 207.862 122.5 202.862 122.5 DL 208.86 122.5 203.86
+122.5 DL 213.86 122.5 208.86 122.5 DL 218.86 122.5 213.86 122.5 DL
+218.86 111.5 218.86 121.5 DL 207.862 111.5 202.862 111.5 DL 208.86 111.5
+203.86 111.5 DL 213.86 111.5 208.86 111.5 DL 218.86 111.5 213.86 111.5
+DL 220.526 112.5 220.526 122.5 DL 220.526 111.5 220.526 121.5 DL 236.524
+112.5 236.524 122.5 DL 225.526 122.5 220.526 122.5 DL 226.524 122.5
+221.524 122.5 DL 231.524 122.5 226.524 122.5 DL 236.524 122.5 231.524
+122.5 DL 236.524 111.5 236.524 121.5 DL 225.526 111.5 220.526 111.5 DL
+226.524 111.5 221.524 111.5 DL 231.524 111.5 226.524 111.5 DL 236.524
+111.5 231.524 111.5 DL F0 -5.834 7.999(=4 6)194.722 120 T F3<ae>1.666 E
+F0(Set background color to Cyan)2.5 E F1(P)185 136 Q F2(s)-2 3 M 202.862
+128.5 202.862 138.5 DL 202.862 127.5 202.862 137.5 DL 218.86 128.5
+218.86 138.5 DL 207.862 138.5 202.862 138.5 DL 208.86 138.5 203.86 138.5
+DL 213.86 138.5 208.86 138.5 DL 218.86 138.5 213.86 138.5 DL 218.86
+127.5 218.86 137.5 DL 207.862 127.5 202.862 127.5 DL 208.86 127.5 203.86
+127.5 DL 213.86 127.5 208.86 127.5 DL 218.86 127.5 213.86 127.5 DL
+220.526 128.5 220.526 138.5 DL 220.526 127.5 220.526 137.5 DL 236.524
+128.5 236.524 138.5 DL 225.526 138.5 220.526 138.5 DL 226.524 138.5
+221.524 138.5 DL 231.524 138.5 226.524 138.5 DL 236.524 138.5 231.524
+138.5 DL 236.524 127.5 236.524 137.5 DL 225.526 127.5 220.526 127.5 DL
+226.524 127.5 221.524 127.5 DL 231.524 127.5 226.524 127.5 DL 236.524
+127.5 231.524 127.5 DL F0 -5.834 7.999(=4 7)194.722 136 T F3<ae>1.666 E
+F0(Set background color to White)2.5 E F1(P)185 152 Q F2(s)-2 3 M
+202.862 144.5 202.862 154.5 DL 202.862 143.5 202.862 153.5 DL 218.86
+144.5 218.86 154.5 DL 207.862 154.5 202.862 154.5 DL 208.86 154.5 203.86
+154.5 DL 213.86 154.5 208.86 154.5 DL 218.86 154.5 213.86 154.5 DL
+218.86 143.5 218.86 153.5 DL 207.862 143.5 202.862 143.5 DL 208.86 143.5
+203.86 143.5 DL 213.86 143.5 208.86 143.5 DL 218.86 143.5 213.86 143.5
+DL 220.526 144.5 220.526 154.5 DL 220.526 143.5 220.526 153.5 DL 236.524
+144.5 236.524 154.5 DL 225.526 154.5 220.526 154.5 DL 226.524 154.5
+221.524 154.5 DL 231.524 154.5 226.524 154.5 DL 236.524 154.5 231.524
+154.5 DL 236.524 143.5 236.524 153.5 DL 225.526 143.5 220.526 143.5 DL
+226.524 143.5 221.524 143.5 DL 231.524 143.5 226.524 143.5 DL 236.524
+143.5 231.524 143.5 DL F0 -5.834 7.999(=4 9)194.722 152 T F3<ae>1.666 E
+F0(Set background color to def)2.5 E(ault \(original\).)-.1 E .751
+(If 16-color support is compiled, the follo)180 184 R .751(wing apply)
+-.25 F 5.751(.A)-.65 G .751(ssume that)-5.751 F F1(xterm)3.251 E F0
+1.851 -.55('s r)D .751(esources are).55 F .559
+(set so that the ISO color codes are the \214rst 8 of a set of 16.)180
+200 R .559(Then the)5.559 F F1(aixterm)3.059 E F0 .559(colors are)3.059
+F(the bright v)180 216 Q(ersions of the ISO colors:)-.15 E F1(P)185 232
+Q F2(s)-2 3 M 202.862 224.5 202.862 234.5 DL 202.862 223.5 202.862 233.5
+DL 218.86 224.5 218.86 234.5 DL 207.862 234.5 202.862 234.5 DL 208.86
+234.5 203.86 234.5 DL 213.86 234.5 208.86 234.5 DL 218.86 234.5 213.86
+234.5 DL 218.86 223.5 218.86 233.5 DL 207.862 223.5 202.862 223.5 DL
+208.86 223.5 203.86 223.5 DL 213.86 223.5 208.86 223.5 DL 218.86 223.5
+213.86 223.5 DL 220.526 224.5 220.526 234.5 DL 220.526 223.5 220.526
+233.5 DL 236.524 224.5 236.524 234.5 DL 225.526 234.5 220.526 234.5 DL
+226.524 234.5 221.524 234.5 DL 231.524 234.5 226.524 234.5 DL 236.524
+234.5 231.524 234.5 DL 236.524 223.5 236.524 233.5 DL 225.526 223.5
+220.526 223.5 DL 226.524 223.5 221.524 223.5 DL 231.524 223.5 226.524
+223.5 DL 236.524 223.5 231.524 223.5 DL F0 -5.834 7.999(=9 0)194.722 232
+T F3<ae>1.666 E F0(Set fore)2.5 E(ground color to Black)-.15 E F1(P)185
+248 Q F2(s)-2 3 M 202.862 240.5 202.862 250.5 DL 202.862 239.5 202.862
+249.5 DL 218.86 240.5 218.86 250.5 DL 207.862 250.5 202.862 250.5 DL
+208.86 250.5 203.86 250.5 DL 213.86 250.5 208.86 250.5 DL 218.86 250.5
+213.86 250.5 DL 218.86 239.5 218.86 249.5 DL 207.862 239.5 202.862 239.5
+DL 208.86 239.5 203.86 239.5 DL 213.86 239.5 208.86 239.5 DL 218.86
+239.5 213.86 239.5 DL 220.526 240.5 220.526 250.5 DL 220.526 239.5
+220.526 249.5 DL 236.524 240.5 236.524 250.5 DL 225.526 250.5 220.526
+250.5 DL 226.524 250.5 221.524 250.5 DL 231.524 250.5 226.524 250.5 DL
+236.524 250.5 231.524 250.5 DL 236.524 239.5 236.524 249.5 DL 225.526
+239.5 220.526 239.5 DL 226.524 239.5 221.524 239.5 DL 231.524 239.5
+226.524 239.5 DL 236.524 239.5 231.524 239.5 DL F0 -5.834 7.999(=9 1)
+194.722 248 T F3<ae>1.666 E F0(Set fore)2.5 E(ground color to Red)-.15 E
+F1(P)185 264 Q F2(s)-2 3 M 202.862 256.5 202.862 266.5 DL 202.862 255.5
+202.862 265.5 DL 218.86 256.5 218.86 266.5 DL 207.862 266.5 202.862
+266.5 DL 208.86 266.5 203.86 266.5 DL 213.86 266.5 208.86 266.5 DL
+218.86 266.5 213.86 266.5 DL 218.86 255.5 218.86 265.5 DL 207.862 255.5
+202.862 255.5 DL 208.86 255.5 203.86 255.5 DL 213.86 255.5 208.86 255.5
+DL 218.86 255.5 213.86 255.5 DL 220.526 256.5 220.526 266.5 DL 220.526
+255.5 220.526 265.5 DL 236.524 256.5 236.524 266.5 DL 225.526 266.5
+220.526 266.5 DL 226.524 266.5 221.524 266.5 DL 231.524 266.5 226.524
+266.5 DL 236.524 266.5 231.524 266.5 DL 236.524 255.5 236.524 265.5 DL
+225.526 255.5 220.526 255.5 DL 226.524 255.5 221.524 255.5 DL 231.524
+255.5 226.524 255.5 DL 236.524 255.5 231.524 255.5 DL F0 -5.834 7.999
+(=9 2)194.722 264 T F3<ae>1.666 E F0(Set fore)2.5 E
+(ground color to Green)-.15 E F1(P)185 280 Q F2(s)-2 3 M 202.862 272.5
+202.862 282.5 DL 202.862 271.5 202.862 281.5 DL 218.86 272.5 218.86
+282.5 DL 207.862 282.5 202.862 282.5 DL 208.86 282.5 203.86 282.5 DL
+213.86 282.5 208.86 282.5 DL 218.86 282.5 213.86 282.5 DL 218.86 271.5
+218.86 281.5 DL 207.862 271.5 202.862 271.5 DL 208.86 271.5 203.86 271.5
+DL 213.86 271.5 208.86 271.5 DL 218.86 271.5 213.86 271.5 DL 220.526
+272.5 220.526 282.5 DL 220.526 271.5 220.526 281.5 DL 236.524 272.5
+236.524 282.5 DL 225.526 282.5 220.526 282.5 DL 226.524 282.5 221.524
+282.5 DL 231.524 282.5 226.524 282.5 DL 236.524 282.5 231.524 282.5 DL
+236.524 271.5 236.524 281.5 DL 225.526 271.5 220.526 271.5 DL 226.524
+271.5 221.524 271.5 DL 231.524 271.5 226.524 271.5 DL 236.524 271.5
+231.524 271.5 DL F0 -5.834 7.999(=9 3)194.722 280 T F3<ae>1.666 E F0
+(Set fore)2.5 E(ground color to Y)-.15 E(ello)-1 E(w)-.25 E F1(P)185 296
+Q F2(s)-2 3 M 202.862 288.5 202.862 298.5 DL 202.862 287.5 202.862 297.5
+DL 218.86 288.5 218.86 298.5 DL 207.862 298.5 202.862 298.5 DL 208.86
+298.5 203.86 298.5 DL 213.86 298.5 208.86 298.5 DL 218.86 298.5 213.86
+298.5 DL 218.86 287.5 218.86 297.5 DL 207.862 287.5 202.862 287.5 DL
+208.86 287.5 203.86 287.5 DL 213.86 287.5 208.86 287.5 DL 218.86 287.5
+213.86 287.5 DL 220.526 288.5 220.526 298.5 DL 220.526 287.5 220.526
+297.5 DL 236.524 288.5 236.524 298.5 DL 225.526 298.5 220.526 298.5 DL
+226.524 298.5 221.524 298.5 DL 231.524 298.5 226.524 298.5 DL 236.524
+298.5 231.524 298.5 DL 236.524 287.5 236.524 297.5 DL 225.526 287.5
+220.526 287.5 DL 226.524 287.5 221.524 287.5 DL 231.524 287.5 226.524
+287.5 DL 236.524 287.5 231.524 287.5 DL F0 -5.834 7.999(=9 4)194.722 296
+T F3<ae>1.666 E F0(Set fore)2.5 E(ground color to Blue)-.15 E F1(P)185
+312 Q F2(s)-2 3 M 202.862 304.5 202.862 314.5 DL 202.862 303.5 202.862
+313.5 DL 218.86 304.5 218.86 314.5 DL 207.862 314.5 202.862 314.5 DL
+208.86 314.5 203.86 314.5 DL 213.86 314.5 208.86 314.5 DL 218.86 314.5
+213.86 314.5 DL 218.86 303.5 218.86 313.5 DL 207.862 303.5 202.862 303.5
+DL 208.86 303.5 203.86 303.5 DL 213.86 303.5 208.86 303.5 DL 218.86
+303.5 213.86 303.5 DL 220.526 304.5 220.526 314.5 DL 220.526 303.5
+220.526 313.5 DL 236.524 304.5 236.524 314.5 DL 225.526 314.5 220.526
+314.5 DL 226.524 314.5 221.524 314.5 DL 231.524 314.5 226.524 314.5 DL
+236.524 314.5 231.524 314.5 DL 236.524 303.5 236.524 313.5 DL 225.526
+303.5 220.526 303.5 DL 226.524 303.5 221.524 303.5 DL 231.524 303.5
+226.524 303.5 DL 236.524 303.5 231.524 303.5 DL F0 -5.834 7.999(=9 5)
+194.722 312 T F3<ae>1.666 E F0(Set fore)2.5 E(ground color to Magenta)
+-.15 E F1(P)185 328 Q F2(s)-2 3 M 202.862 320.5 202.862 330.5 DL 202.862
+319.5 202.862 329.5 DL 218.86 320.5 218.86 330.5 DL 207.862 330.5
+202.862 330.5 DL 208.86 330.5 203.86 330.5 DL 213.86 330.5 208.86 330.5
+DL 218.86 330.5 213.86 330.5 DL 218.86 319.5 218.86 329.5 DL 207.862
+319.5 202.862 319.5 DL 208.86 319.5 203.86 319.5 DL 213.86 319.5 208.86
+319.5 DL 218.86 319.5 213.86 319.5 DL 220.526 320.5 220.526 330.5 DL
+220.526 319.5 220.526 329.5 DL 236.524 320.5 236.524 330.5 DL 225.526
+330.5 220.526 330.5 DL 226.524 330.5 221.524 330.5 DL 231.524 330.5
+226.524 330.5 DL 236.524 330.5 231.524 330.5 DL 236.524 319.5 236.524
+329.5 DL 225.526 319.5 220.526 319.5 DL 226.524 319.5 221.524 319.5 DL
+231.524 319.5 226.524 319.5 DL 236.524 319.5 231.524 319.5 DL F0 -5.834
+7.999(=9 6)194.722 328 T F3<ae>1.666 E F0(Set fore)2.5 E
+(ground color to Cyan)-.15 E F1(P)185 344 Q F2(s)-2 3 M 202.862 336.5
+202.862 346.5 DL 202.862 335.5 202.862 345.5 DL 218.86 336.5 218.86
+346.5 DL 207.862 346.5 202.862 346.5 DL 208.86 346.5 203.86 346.5 DL
+213.86 346.5 208.86 346.5 DL 218.86 346.5 213.86 346.5 DL 218.86 335.5
+218.86 345.5 DL 207.862 335.5 202.862 335.5 DL 208.86 335.5 203.86 335.5
+DL 213.86 335.5 208.86 335.5 DL 218.86 335.5 213.86 335.5 DL 220.526
+336.5 220.526 346.5 DL 220.526 335.5 220.526 345.5 DL 236.524 336.5
+236.524 346.5 DL 225.526 346.5 220.526 346.5 DL 226.524 346.5 221.524
+346.5 DL 231.524 346.5 226.524 346.5 DL 236.524 346.5 231.524 346.5 DL
+236.524 335.5 236.524 345.5 DL 225.526 335.5 220.526 335.5 DL 226.524
+335.5 221.524 335.5 DL 231.524 335.5 226.524 335.5 DL 236.524 335.5
+231.524 335.5 DL F0 -5.834 7.999(=9 7)194.722 344 T F3<ae>1.666 E F0
+(Set fore)2.5 E(ground color to White)-.15 E F1(P)185 360 Q F2(s)-2 3 M
+202.862 352.5 202.862 362.5 DL 202.862 351.5 202.862 361.5 DL 218.86
+352.5 218.86 362.5 DL 207.862 362.5 202.862 362.5 DL 208.86 362.5 203.86
+362.5 DL 213.86 362.5 208.86 362.5 DL 218.86 362.5 213.86 362.5 DL
+218.86 351.5 218.86 361.5 DL 207.862 351.5 202.862 351.5 DL 208.86 351.5
+203.86 351.5 DL 213.86 351.5 208.86 351.5 DL 218.86 351.5 213.86 351.5
+DL 220.526 352.5 220.526 362.5 DL 220.526 351.5 220.526 361.5 DL 236.524
+352.5 236.524 362.5 DL 225.526 362.5 220.526 362.5 DL 226.524 362.5
+221.524 362.5 DL 231.524 362.5 226.524 362.5 DL 236.524 362.5 231.524
+362.5 DL 236.524 351.5 236.524 361.5 DL 225.526 351.5 220.526 351.5 DL
+226.524 351.5 221.524 351.5 DL 231.524 351.5 226.524 351.5 DL 236.524
+351.5 231.524 351.5 DL 238.19 352.5 238.19 362.5 DL 238.19 351.5 238.19
+361.5 DL 254.188 352.5 254.188 362.5 DL 243.19 362.5 238.19 362.5 DL
+244.188 362.5 239.188 362.5 DL 249.188 362.5 244.188 362.5 DL 254.188
+362.5 249.188 362.5 DL 254.188 351.5 254.188 361.5 DL 243.19 351.5
+238.19 351.5 DL 244.188 351.5 239.188 351.5 DL 249.188 351.5 244.188
+351.5 DL 254.188 351.5 249.188 351.5 DL F0 -5.834 7.999(=1 0 0)194.722
+360 T F3<ae>1.666 E F0(Set background color to Black)2.5 E F1(P)185 376
+Q F2(s)-2 3 M 202.862 368.5 202.862 378.5 DL 202.862 367.5 202.862 377.5
+DL 218.86 368.5 218.86 378.5 DL 207.862 378.5 202.862 378.5 DL 208.86
+378.5 203.86 378.5 DL 213.86 378.5 208.86 378.5 DL 218.86 378.5 213.86
+378.5 DL 218.86 367.5 218.86 377.5 DL 207.862 367.5 202.862 367.5 DL
+208.86 367.5 203.86 367.5 DL 213.86 367.5 208.86 367.5 DL 218.86 367.5
+213.86 367.5 DL 220.526 368.5 220.526 378.5 DL 220.526 367.5 220.526
+377.5 DL 236.524 368.5 236.524 378.5 DL 225.526 378.5 220.526 378.5 DL
+226.524 378.5 221.524 378.5 DL 231.524 378.5 226.524 378.5 DL 236.524
+378.5 231.524 378.5 DL 236.524 367.5 236.524 377.5 DL 225.526 367.5
+220.526 367.5 DL 226.524 367.5 221.524 367.5 DL 231.524 367.5 226.524
+367.5 DL 236.524 367.5 231.524 367.5 DL 238.19 368.5 238.19 378.5 DL
+238.19 367.5 238.19 377.5 DL 254.188 368.5 254.188 378.5 DL 243.19 378.5
+238.19 378.5 DL 244.188 378.5 239.188 378.5 DL 249.188 378.5 244.188
+378.5 DL 254.188 378.5 249.188 378.5 DL 254.188 367.5 254.188 377.5 DL
+243.19 367.5 238.19 367.5 DL 244.188 367.5 239.188 367.5 DL 249.188
+367.5 244.188 367.5 DL 254.188 367.5 249.188 367.5 DL F0 -5.834 7.999
+(=1 0 1)194.722 376 T F3<ae>1.666 E F0(Set background color to Red)2.5 E
+F1(P)185 392 Q F2(s)-2 3 M 202.862 384.5 202.862 394.5 DL 202.862 383.5
+202.862 393.5 DL 218.86 384.5 218.86 394.5 DL 207.862 394.5 202.862
+394.5 DL 208.86 394.5 203.86 394.5 DL 213.86 394.5 208.86 394.5 DL
+218.86 394.5 213.86 394.5 DL 218.86 383.5 218.86 393.5 DL 207.862 383.5
+202.862 383.5 DL 208.86 383.5 203.86 383.5 DL 213.86 383.5 208.86 383.5
+DL 218.86 383.5 213.86 383.5 DL 220.526 384.5 220.526 394.5 DL 220.526
+383.5 220.526 393.5 DL 236.524 384.5 236.524 394.5 DL 225.526 394.5
+220.526 394.5 DL 226.524 394.5 221.524 394.5 DL 231.524 394.5 226.524
+394.5 DL 236.524 394.5 231.524 394.5 DL 236.524 383.5 236.524 393.5 DL
+225.526 383.5 220.526 383.5 DL 226.524 383.5 221.524 383.5 DL 231.524
+383.5 226.524 383.5 DL 236.524 383.5 231.524 383.5 DL 238.19 384.5
+238.19 394.5 DL 238.19 383.5 238.19 393.5 DL 254.188 384.5 254.188 394.5
+DL 243.19 394.5 238.19 394.5 DL 244.188 394.5 239.188 394.5 DL 249.188
+394.5 244.188 394.5 DL 254.188 394.5 249.188 394.5 DL 254.188 383.5
+254.188 393.5 DL 243.19 383.5 238.19 383.5 DL 244.188 383.5 239.188
+383.5 DL 249.188 383.5 244.188 383.5 DL 254.188 383.5 249.188 383.5 DL
+F0 -5.834 7.999(=1 0 2)194.722 392 T F3<ae>1.666 E F0
+(Set background color to Green)2.5 E F1(P)185 408 Q F2(s)-2 3 M 202.862
+400.5 202.862 410.5 DL 202.862 399.5 202.862 409.5 DL 218.86 400.5
+218.86 410.5 DL 207.862 410.5 202.862 410.5 DL 208.86 410.5 203.86 410.5
+DL 213.86 410.5 208.86 410.5 DL 218.86 410.5 213.86 410.5 DL 218.86
+399.5 218.86 409.5 DL 207.862 399.5 202.862 399.5 DL 208.86 399.5 203.86
+399.5 DL 213.86 399.5 208.86 399.5 DL 218.86 399.5 213.86 399.5 DL
+220.526 400.5 220.526 410.5 DL 220.526 399.5 220.526 409.5 DL 236.524
+400.5 236.524 410.5 DL 225.526 410.5 220.526 410.5 DL 226.524 410.5
+221.524 410.5 DL 231.524 410.5 226.524 410.5 DL 236.524 410.5 231.524
+410.5 DL 236.524 399.5 236.524 409.5 DL 225.526 399.5 220.526 399.5 DL
+226.524 399.5 221.524 399.5 DL 231.524 399.5 226.524 399.5 DL 236.524
+399.5 231.524 399.5 DL 238.19 400.5 238.19 410.5 DL 238.19 399.5 238.19
+409.5 DL 254.188 400.5 254.188 410.5 DL 243.19 410.5 238.19 410.5 DL
+244.188 410.5 239.188 410.5 DL 249.188 410.5 244.188 410.5 DL 254.188
+410.5 249.188 410.5 DL 254.188 399.5 254.188 409.5 DL 243.19 399.5
+238.19 399.5 DL 244.188 399.5 239.188 399.5 DL 249.188 399.5 244.188
+399.5 DL 254.188 399.5 249.188 399.5 DL F0 -5.834 7.999(=1 0 3)194.722
+408 T F3<ae>1.666 E F0(Set background color to Y)2.5 E(ello)-1 E(w)-.25
+E F1(P)185 424 Q F2(s)-2 3 M 202.862 416.5 202.862 426.5 DL 202.862
+415.5 202.862 425.5 DL 218.86 416.5 218.86 426.5 DL 207.862 426.5
+202.862 426.5 DL 208.86 426.5 203.86 426.5 DL 213.86 426.5 208.86 426.5
+DL 218.86 426.5 213.86 426.5 DL 218.86 415.5 218.86 425.5 DL 207.862
+415.5 202.862 415.5 DL 208.86 415.5 203.86 415.5 DL 213.86 415.5 208.86
+415.5 DL 218.86 415.5 213.86 415.5 DL 220.526 416.5 220.526 426.5 DL
+220.526 415.5 220.526 425.5 DL 236.524 416.5 236.524 426.5 DL 225.526
+426.5 220.526 426.5 DL 226.524 426.5 221.524 426.5 DL 231.524 426.5
+226.524 426.5 DL 236.524 426.5 231.524 426.5 DL 236.524 415.5 236.524
+425.5 DL 225.526 415.5 220.526 415.5 DL 226.524 415.5 221.524 415.5 DL
+231.524 415.5 226.524 415.5 DL 236.524 415.5 231.524 415.5 DL 238.19
+416.5 238.19 426.5 DL 238.19 415.5 238.19 425.5 DL 254.188 416.5 254.188
+426.5 DL 243.19 426.5 238.19 426.5 DL 244.188 426.5 239.188 426.5 DL
+249.188 426.5 244.188 426.5 DL 254.188 426.5 249.188 426.5 DL 254.188
+415.5 254.188 425.5 DL 243.19 415.5 238.19 415.5 DL 244.188 415.5
+239.188 415.5 DL 249.188 415.5 244.188 415.5 DL 254.188 415.5 249.188
+415.5 DL F0 -5.834 7.999(=1 0 4)194.722 424 T F3<ae>1.666 E F0
+(Set background color to Blue)2.5 E F1(P)185 440 Q F2(s)-2 3 M 202.862
+432.5 202.862 442.5 DL 202.862 431.5 202.862 441.5 DL 218.86 432.5
+218.86 442.5 DL 207.862 442.5 202.862 442.5 DL 208.86 442.5 203.86 442.5
+DL 213.86 442.5 208.86 442.5 DL 218.86 442.5 213.86 442.5 DL 218.86
+431.5 218.86 441.5 DL 207.862 431.5 202.862 431.5 DL 208.86 431.5 203.86
+431.5 DL 213.86 431.5 208.86 431.5 DL 218.86 431.5 213.86 431.5 DL
+220.526 432.5 220.526 442.5 DL 220.526 431.5 220.526 441.5 DL 236.524
+432.5 236.524 442.5 DL 225.526 442.5 220.526 442.5 DL 226.524 442.5
+221.524 442.5 DL 231.524 442.5 226.524 442.5 DL 236.524 442.5 231.524
+442.5 DL 236.524 431.5 236.524 441.5 DL 225.526 431.5 220.526 431.5 DL
+226.524 431.5 221.524 431.5 DL 231.524 431.5 226.524 431.5 DL 236.524
+431.5 231.524 431.5 DL 238.19 432.5 238.19 442.5 DL 238.19 431.5 238.19
+441.5 DL 254.188 432.5 254.188 442.5 DL 243.19 442.5 238.19 442.5 DL
+244.188 442.5 239.188 442.5 DL 249.188 442.5 244.188 442.5 DL 254.188
+442.5 249.188 442.5 DL 254.188 431.5 254.188 441.5 DL 243.19 431.5
+238.19 431.5 DL 244.188 431.5 239.188 431.5 DL 249.188 431.5 244.188
+431.5 DL 254.188 431.5 249.188 431.5 DL F0 -5.834 7.999(=1 0 5)194.722
+440 T F3<ae>1.666 E F0(Set background color to Magenta)2.5 E F1(P)185
+456 Q F2(s)-2 3 M 202.862 448.5 202.862 458.5 DL 202.862 447.5 202.862
+457.5 DL 218.86 448.5 218.86 458.5 DL 207.862 458.5 202.862 458.5 DL
+208.86 458.5 203.86 458.5 DL 213.86 458.5 208.86 458.5 DL 218.86 458.5
+213.86 458.5 DL 218.86 447.5 218.86 457.5 DL 207.862 447.5 202.862 447.5
+DL 208.86 447.5 203.86 447.5 DL 213.86 447.5 208.86 447.5 DL 218.86
+447.5 213.86 447.5 DL 220.526 448.5 220.526 458.5 DL 220.526 447.5
+220.526 457.5 DL 236.524 448.5 236.524 458.5 DL 225.526 458.5 220.526
+458.5 DL 226.524 458.5 221.524 458.5 DL 231.524 458.5 226.524 458.5 DL
+236.524 458.5 231.524 458.5 DL 236.524 447.5 236.524 457.5 DL 225.526
+447.5 220.526 447.5 DL 226.524 447.5 221.524 447.5 DL 231.524 447.5
+226.524 447.5 DL 236.524 447.5 231.524 447.5 DL 238.19 448.5 238.19
+458.5 DL 238.19 447.5 238.19 457.5 DL 254.188 448.5 254.188 458.5 DL
+243.19 458.5 238.19 458.5 DL 244.188 458.5 239.188 458.5 DL 249.188
+458.5 244.188 458.5 DL 254.188 458.5 249.188 458.5 DL 254.188 447.5
+254.188 457.5 DL 243.19 447.5 238.19 447.5 DL 244.188 447.5 239.188
+447.5 DL 249.188 447.5 244.188 447.5 DL 254.188 447.5 249.188 447.5 DL
+F0 -5.834 7.999(=1 0 6)194.722 456 T F3<ae>1.666 E F0
+(Set background color to Cyan)2.5 E F1(P)185 472 Q F2(s)-2 3 M 202.862
+464.5 202.862 474.5 DL 202.862 463.5 202.862 473.5 DL 218.86 464.5
+218.86 474.5 DL 207.862 474.5 202.862 474.5 DL 208.86 474.5 203.86 474.5
+DL 213.86 474.5 208.86 474.5 DL 218.86 474.5 213.86 474.5 DL 218.86
+463.5 218.86 473.5 DL 207.862 463.5 202.862 463.5 DL 208.86 463.5 203.86
+463.5 DL 213.86 463.5 208.86 463.5 DL 218.86 463.5 213.86 463.5 DL
+220.526 464.5 220.526 474.5 DL 220.526 463.5 220.526 473.5 DL 236.524
+464.5 236.524 474.5 DL 225.526 474.5 220.526 474.5 DL 226.524 474.5
+221.524 474.5 DL 231.524 474.5 226.524 474.5 DL 236.524 474.5 231.524
+474.5 DL 236.524 463.5 236.524 473.5 DL 225.526 463.5 220.526 463.5 DL
+226.524 463.5 221.524 463.5 DL 231.524 463.5 226.524 463.5 DL 236.524
+463.5 231.524 463.5 DL 238.19 464.5 238.19 474.5 DL 238.19 463.5 238.19
+473.5 DL 254.188 464.5 254.188 474.5 DL 243.19 474.5 238.19 474.5 DL
+244.188 474.5 239.188 474.5 DL 249.188 474.5 244.188 474.5 DL 254.188
+474.5 249.188 474.5 DL 254.188 463.5 254.188 473.5 DL 243.19 463.5
+238.19 463.5 DL 244.188 463.5 239.188 463.5 DL 249.188 463.5 244.188
+463.5 DL 254.188 463.5 249.188 463.5 DL F0 -5.834 7.999(=1 0 7)194.722
+472 T F3<ae>1.666 E F0(Set background color to White)2.5 E(If)180 504 Q
+F1(xterm)3.44 E F0 .94
+(is compiled with the 16-color support disabled, it supports the follo)
+3.44 F .94(wing, from)-.25 F F1(rxvt)180 520 Q F0(:)A F1(P)185 536 Q F2
+(s)-2 3 M 202.862 528.5 202.862 538.5 DL 202.862 527.5 202.862 537.5 DL
+218.86 528.5 218.86 538.5 DL 207.862 538.5 202.862 538.5 DL 208.86 538.5
+203.86 538.5 DL 213.86 538.5 208.86 538.5 DL 218.86 538.5 213.86 538.5
+DL 218.86 527.5 218.86 537.5 DL 207.862 527.5 202.862 527.5 DL 208.86
+527.5 203.86 527.5 DL 213.86 527.5 208.86 527.5 DL 218.86 527.5 213.86
+527.5 DL 220.526 528.5 220.526 538.5 DL 220.526 527.5 220.526 537.5 DL
+236.524 528.5 236.524 538.5 DL 225.526 538.5 220.526 538.5 DL 226.524
+538.5 221.524 538.5 DL 231.524 538.5 226.524 538.5 DL 236.524 538.5
+231.524 538.5 DL 236.524 527.5 236.524 537.5 DL 225.526 527.5 220.526
+527.5 DL 226.524 527.5 221.524 527.5 DL 231.524 527.5 226.524 527.5 DL
+236.524 527.5 231.524 527.5 DL 238.19 528.5 238.19 538.5 DL 238.19 527.5
+238.19 537.5 DL 254.188 528.5 254.188 538.5 DL 243.19 538.5 238.19 538.5
+DL 244.188 538.5 239.188 538.5 DL 249.188 538.5 244.188 538.5 DL 254.188
+538.5 249.188 538.5 DL 254.188 527.5 254.188 537.5 DL 243.19 527.5
+238.19 527.5 DL 244.188 527.5 239.188 527.5 DL 249.188 527.5 244.188
+527.5 DL 254.188 527.5 249.188 527.5 DL F0 -5.834 7.999(=1 0 0)194.722
+536 T F3<ae>1.666 E F0(Set fore)2.5 E
+(ground and background color to def)-.15 E(ault)-.1 E
+(If 88- or 256-color support is compiled, the follo)180 568 Q
+(wing apply)-.25 E(.)-.65 E F1(P)185 584 Q F2(s)-2 3 M 202.862 576.5
+202.862 586.5 DL 202.862 575.5 202.862 585.5 DL 218.86 576.5 218.86
+586.5 DL 207.862 586.5 202.862 586.5 DL 208.86 586.5 203.86 586.5 DL
+213.86 586.5 208.86 586.5 DL 218.86 586.5 213.86 586.5 DL 218.86 575.5
+218.86 585.5 DL 207.862 575.5 202.862 575.5 DL 208.86 575.5 203.86 575.5
+DL 213.86 575.5 208.86 575.5 DL 218.86 575.5 213.86 575.5 DL 220.526
+576.5 220.526 586.5 DL 220.526 575.5 220.526 585.5 DL 236.524 576.5
+236.524 586.5 DL 225.526 586.5 220.526 586.5 DL 226.524 586.5 221.524
+586.5 DL 231.524 586.5 226.524 586.5 DL 236.524 586.5 231.524 586.5 DL
+236.524 575.5 236.524 585.5 DL 225.526 575.5 220.526 575.5 DL 226.524
+575.5 221.524 575.5 DL 231.524 575.5 226.524 575.5 DL 236.524 575.5
+231.524 575.5 DL F0 -5.834 7.999(=3 8)194.722 584 T 245.97 576.5 245.97
+586.5 DL 245.97 575.5 245.97 585.5 DL 261.968 576.5 261.968 586.5 DL
+250.97 586.5 245.97 586.5 DL 251.968 586.5 246.968 586.5 DL 256.968
+586.5 251.968 586.5 DL 261.968 586.5 256.968 586.5 DL 261.968 575.5
+261.968 585.5 DL 250.97 575.5 245.97 575.5 DL 251.968 575.5 246.968
+575.5 DL 256.968 575.5 251.968 575.5 DL 261.968 575.5 256.968 575.5 DL
+-8.833 7.999(;5 ;)240.69 584 T F1(P)-5.499 E F2(s)-2 3 M F3<ae>2.5 -3 M
+F0(Set fore)2.5 E(ground color to the second)-.15 E F1(P)2.5 E F2(s)-2 3
+M F1(P)185 600 Q F2(s)-2 3 M 202.862 592.5 202.862 602.5 DL 202.862
+591.5 202.862 601.5 DL 218.86 592.5 218.86 602.5 DL 207.862 602.5
+202.862 602.5 DL 208.86 602.5 203.86 602.5 DL 213.86 602.5 208.86 602.5
+DL 218.86 602.5 213.86 602.5 DL 218.86 591.5 218.86 601.5 DL 207.862
+591.5 202.862 591.5 DL 208.86 591.5 203.86 591.5 DL 213.86 591.5 208.86
+591.5 DL 218.86 591.5 213.86 591.5 DL 220.526 592.5 220.526 602.5 DL
+220.526 591.5 220.526 601.5 DL 236.524 592.5 236.524 602.5 DL 225.526
+602.5 220.526 602.5 DL 226.524 602.5 221.524 602.5 DL 231.524 602.5
+226.524 602.5 DL 236.524 602.5 231.524 602.5 DL 236.524 591.5 236.524
+601.5 DL 225.526 591.5 220.526 591.5 DL 226.524 591.5 221.524 591.5 DL
+231.524 591.5 226.524 591.5 DL 236.524 591.5 231.524 591.5 DL F0 -5.834
+7.999(=4 8)194.722 600 T 245.97 592.5 245.97 602.5 DL 245.97 591.5
+245.97 601.5 DL 261.968 592.5 261.968 602.5 DL 250.97 602.5 245.97 602.5
+DL 251.968 602.5 246.968 602.5 DL 256.968 602.5 251.968 602.5 DL 261.968
+602.5 256.968 602.5 DL 261.968 591.5 261.968 601.5 DL 250.97 591.5
+245.97 591.5 DL 251.968 591.5 246.968 591.5 DL 256.968 591.5 251.968
+591.5 DL 261.968 591.5 256.968 591.5 DL -8.833 7.999(;5 ;)240.69 600 T
+F1(P)-5.499 E F2(s)-2 3 M F3<ae>2.5 -3 M F0
+(Set background color to the second)2.5 E F1(P)2.5 E F2(s)-2 3 M 72
+624.5 72 634.5 DL 72 623.5 72 633.5 DL 87.998 624.5 87.998 634.5 DL 77
+634.5 72 634.5 DL 77.998 634.5 72.998 634.5 DL 82.998 634.5 77.998 634.5
+DL 87.998 634.5 82.998 634.5 DL 87.998 623.5 87.998 633.5 DL 77 623.5 72
+623.5 DL 77.998 623.5 72.998 623.5 DL 82.998 623.5 77.998 623.5 DL
+87.998 623.5 82.998 623.5 DL/F4 6/Times-Roman@0 SF(CSI)75.331 631 Q F1
+(P)4.997 1 M 98.552 624.5 98.552 634.5 DL 98.552 623.5 98.552 633.5 DL
+F2(s)93.774 635 Q 114.55 624.5 114.55 634.5 DL 103.552 634.5 98.552
+634.5 DL 104.55 634.5 99.55 634.5 DL 109.55 634.5 104.55 634.5 DL 114.55
+634.5 109.55 634.5 DL 114.55 623.5 114.55 633.5 DL 103.552 623.5 98.552
+623.5 DL 104.55 623.5 99.55 623.5 DL 109.55 623.5 104.55 623.5 DL 114.55
+623.5 109.55 623.5 DL F0 70.949(nD)104.051 632 S -.25(ev)-70.949 G
+(ice Status Report \(DSR\)).25 E F1(P)185 648 Q F2(s)-2 3 M 202.862
+640.5 202.862 650.5 DL 202.862 639.5 202.862 649.5 DL 218.86 640.5
+218.86 650.5 DL 207.862 650.5 202.862 650.5 DL 208.86 650.5 203.86 650.5
+DL 213.86 650.5 208.86 650.5 DL 218.86 650.5 213.86 650.5 DL 218.86
+639.5 218.86 649.5 DL 207.862 639.5 202.862 639.5 DL 208.86 639.5 203.86
+639.5 DL 213.86 639.5 208.86 639.5 DL 218.86 639.5 213.86 639.5 DL F0
+7.999(=5)194.722 648 S F3<ae>1.666 E 292.066 640.5 292.066 650.5 DL
+292.066 639.5 292.066 649.5 DL F0(Status Report)235.396 648 Q 308.064
+640.5 308.064 650.5 DL 297.066 650.5 292.066 650.5 DL 298.064 650.5
+293.064 650.5 DL 303.064 650.5 298.064 650.5 DL 308.064 650.5 303.064
+650.5 DL 308.064 639.5 308.064 649.5 DL 297.066 639.5 292.066 639.5 DL
+298.064 639.5 293.064 639.5 DL 303.064 639.5 298.064 639.5 DL 308.064
+639.5 303.064 639.5 DL 309.73 640.5 309.73 650.5 DL 309.73 639.5 309.73
+649.5 DL F4(CSI)295.397 647 Q 325.728 640.5 325.728 650.5 DL 314.73
+650.5 309.73 650.5 DL 315.728 650.5 310.728 650.5 DL 320.728 650.5
+315.728 650.5 DL 325.728 650.5 320.728 650.5 DL 325.728 639.5 325.728
+649.5 DL 314.73 639.5 309.73 639.5 DL 315.728 639.5 310.728 639.5 DL
+320.728 639.5 315.728 639.5 DL 325.728 639.5 320.728 639.5 DL 327.394
+640.5 327.394 650.5 DL 327.394 639.5 327.394 649.5 DL 343.392 640.5
+343.392 650.5 DL 332.394 650.5 327.394 650.5 DL 333.392 650.5 328.392
+650.5 DL 338.392 650.5 333.392 650.5 DL 343.392 650.5 338.392 650.5 DL
+343.392 639.5 343.392 649.5 DL 332.394 639.5 327.394 639.5 DL 333.392
+639.5 328.392 639.5 DL 338.392 639.5 333.392 639.5 DL 343.392 639.5
+338.392 639.5 DL F0 12.664(0n)315.229 648 S(\(`)-2.999 E(`OK')-.74 E
+('\))-.74 E F1(P)185 664 Q F2(s)-2 3 M 202.862 656.5 202.862 666.5 DL
+202.862 655.5 202.862 665.5 DL 218.86 656.5 218.86 666.5 DL 207.862
+666.5 202.862 666.5 DL 208.86 666.5 203.86 666.5 DL 213.86 666.5 208.86
+666.5 DL 218.86 666.5 213.86 666.5 DL 218.86 655.5 218.86 665.5 DL
+207.862 655.5 202.862 655.5 DL 208.86 655.5 203.86 655.5 DL 213.86 655.5
+208.86 655.5 DL 218.86 655.5 213.86 655.5 DL F0 7.999(=6)194.722 664 S
+F3<ae>1.666 E F0(Report Cursor Position \(CPR\) [ro)2.5 E(w;column] as)
+-.25 E 180 672.5 180 682.5 DL 180 671.5 180 681.5 DL 195.998 672.5
+195.998 682.5 DL 185 682.5 180 682.5 DL 185.998 682.5 180.998 682.5 DL
+190.998 682.5 185.998 682.5 DL 195.998 682.5 190.998 682.5 DL 195.998
+671.5 195.998 681.5 DL 185 671.5 180 671.5 DL 185.998 671.5 180.998
+671.5 DL 190.998 671.5 185.998 671.5 DL 195.998 671.5 190.998 671.5 DL
+F4(CSI)183.331 679 Q 203.22 672.5 203.22 682.5 DL 203.22 671.5 203.22
+681.5 DL F1(r)197.664 680 Q 219.218 672.5 219.218 682.5 DL 208.22 682.5
+203.22 682.5 DL 209.218 682.5 204.218 682.5 DL 214.218 682.5 209.218
+682.5 DL 219.218 682.5 214.218 682.5 DL 219.218 671.5 219.218 681.5 DL
+208.22 671.5 203.22 671.5 DL 209.218 671.5 204.218 671.5 DL 214.218
+671.5 209.218 671.5 DL 219.218 671.5 214.218 671.5 DL F0(;)209.829 680 Q
+226.99 672.5 226.99 682.5 DL 226.99 671.5 226.99 681.5 DL F1(c)220.884
+680 Q 242.988 672.5 242.988 682.5 DL 231.99 682.5 226.99 682.5 DL
+232.988 682.5 227.988 682.5 DL 237.988 682.5 232.988 682.5 DL 242.988
+682.5 237.988 682.5 DL 242.988 671.5 242.988 681.5 DL 231.99 671.5
+226.99 671.5 DL 232.988 671.5 227.988 671.5 DL 237.988 671.5 232.988
+671.5 DL 242.988 671.5 237.988 671.5 DL F0(R)231.654 680 Q 72 688.5 72
+698.5 DL 72 687.5 72 697.5 DL 87.998 688.5 87.998 698.5 DL 77 698.5 72
+698.5 DL 77.998 698.5 72.998 698.5 DL 82.998 698.5 77.998 698.5 DL
+87.998 698.5 82.998 698.5 DL 87.998 687.5 87.998 697.5 DL 77 687.5 72
+687.5 DL 77.998 687.5 72.998 687.5 DL 82.998 687.5 77.998 687.5 DL
+87.998 687.5 82.998 687.5 DL 89.664 688.5 89.664 698.5 DL 89.664 687.5
+89.664 697.5 DL F4(CSI)75.331 695 Q 105.662 688.5 105.662 698.5 DL
+94.664 698.5 89.664 698.5 DL 95.662 698.5 90.662 698.5 DL 100.662 698.5
+95.662 698.5 DL 105.662 698.5 100.662 698.5 DL 105.662 687.5 105.662
+697.5 DL 94.664 687.5 89.664 687.5 DL 95.662 687.5 90.662 687.5 DL
+100.662 687.5 95.662 687.5 DL 105.662 687.5 100.662 687.5 DL F0(?)95.443
+696 Q F1(P)7.445 E 116.216 688.5 116.216 698.5 DL 116.216 687.5 116.216
+697.5 DL F2(s)111.438 699 Q 132.214 688.5 132.214 698.5 DL 121.216 698.5
+116.216 698.5 DL 122.214 698.5 117.214 698.5 DL 127.214 698.5 122.214
+698.5 DL 132.214 698.5 127.214 698.5 DL 132.214 687.5 132.214 697.5 DL
+121.216 687.5 116.216 687.5 DL 122.214 687.5 117.214 687.5 DL 127.214
+687.5 122.214 687.5 DL 132.214 687.5 127.214 687.5 DL F0 53.285(nD)
+121.715 696 S -.25(ev)-53.285 G
+(ice Status Report \(DSR, DEC-speci\214c\)).25 E F1(P)185 712 Q F2(s)-2
+3 M 209.148 704.5 209.148 714.5 DL 209.148 703.5 209.148 713.5 DL
+225.146 704.5 225.146 714.5 DL 214.148 714.5 209.148 714.5 DL 215.146
+714.5 210.146 714.5 DL 220.146 714.5 215.146 714.5 DL 225.146 714.5
+220.146 714.5 DL 225.146 703.5 225.146 713.5 DL 214.148 703.5 209.148
+703.5 DL 215.146 703.5 210.146 703.5 DL 220.146 703.5 215.146 703.5 DL
+225.146 703.5 220.146 703.5 DL F0 11.142(=6)197.865 712 S F3<ae>1.666 E
+F0 3.143(Report Cursor Position \(CPR\) [ro)5.643 F 457.682 704.5
+457.682 714.5 DL 457.682 703.5 457.682 713.5 DL 3.142(w;column] as)
+394.738 712 R 473.68 704.5 473.68 714.5 DL 462.682 714.5 457.682 714.5
+DL 463.68 714.5 458.68 714.5 DL 468.68 714.5 463.68 714.5 DL 473.68
+714.5 468.68 714.5 DL 473.68 703.5 473.68 713.5 DL 462.682 703.5 457.682
+703.5 DL 463.68 703.5 458.68 703.5 DL 468.68 703.5 463.68 703.5 DL
+473.68 703.5 468.68 703.5 DL 475.346 704.5 475.346 714.5 DL 475.346
+703.5 475.346 713.5 DL F4(CSI)461.013 711 Q 491.344 704.5 491.344 714.5
+DL 480.346 714.5 475.346 714.5 DL 481.344 714.5 476.344 714.5 DL 486.344
+714.5 481.344 714.5 DL 491.344 714.5 486.344 714.5 DL 491.344 703.5
+491.344 713.5 DL 480.346 703.5 475.346 703.5 DL 481.344 703.5 476.344
+703.5 DL 486.344 703.5 481.344 703.5 DL 491.344 703.5 486.344 703.5 DL
+F0(?)481.125 712 Q 498.566 704.5 498.566 714.5 DL 498.566 703.5 498.566
+713.5 DL F1(r)493.01 712 Q 514.564 704.5 514.564 714.5 DL 503.566 714.5
+498.566 714.5 DL 504.564 714.5 499.564 714.5 DL 509.564 714.5 504.564
+714.5 DL 514.564 714.5 509.564 714.5 DL 514.564 703.5 514.564 713.5 DL
+503.566 703.5 498.566 703.5 DL 504.564 703.5 499.564 703.5 DL 509.564
+703.5 504.564 703.5 DL 514.564 703.5 509.564 703.5 DL F0(;)505.175 712 Q
+522.336 704.5 522.336 714.5 DL 522.336 703.5 522.336 713.5 DL F1(c)
+516.23 712 Q 538.334 704.5 538.334 714.5 DL 527.336 714.5 522.336 714.5
+DL 528.334 714.5 523.334 714.5 DL 533.334 714.5 528.334 714.5 DL 538.334
+714.5 533.334 714.5 DL 538.334 703.5 538.334 713.5 DL 527.336 703.5
+522.336 703.5 DL 528.334 703.5 523.334 703.5 DL 533.334 703.5 528.334
+703.5 DL 538.334 703.5 533.334 703.5 DL F0(R)527 712 Q
+(\(assumes page is zero\).)180 728 Q(10)301 772 Q EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E/F1 10/Times-Italic@0 SF(P)185 88 Q/F2 8/Times-Italic@0 SF(s)-2
+3 M .4 LW 214.702 80.5 214.702 90.5 DL 214.702 79.5 214.702 89.5 DL
+230.7 80.5 230.7 90.5 DL 219.702 90.5 214.702 90.5 DL 220.7 90.5 215.7
+90.5 DL 225.7 90.5 220.7 90.5 DL 230.7 90.5 225.7 90.5 DL 230.7 79.5
+230.7 89.5 DL 219.702 79.5 214.702 79.5 DL 220.7 79.5 215.7 79.5 DL
+225.7 79.5 220.7 79.5 DL 230.7 79.5 225.7 79.5 DL 232.366 80.5 232.366
+90.5 DL 232.366 79.5 232.366 89.5 DL F0 13.919(=1)200.642 88 S 248.364
+80.5 248.364 90.5 DL 237.366 90.5 232.366 90.5 DL 238.364 90.5 233.364
+90.5 DL 243.364 90.5 238.364 90.5 DL 248.364 90.5 243.364 90.5 DL
+248.364 79.5 248.364 89.5 DL 237.366 79.5 232.366 79.5 DL 238.364 79.5
+233.364 79.5 DL 243.364 79.5 238.364 79.5 DL 248.364 79.5 243.364 79.5
+DL(5)237.865 88 Q/F3 10/Symbol SF<ae>15.585 E 395.972 80.5 395.972 90.5
+DL 395.972 79.5 395.972 89.5 DL F0 5.92(Report Printer status as)276.74
+88 R 411.97 80.5 411.97 90.5 DL 400.972 90.5 395.972 90.5 DL 401.97 90.5
+396.97 90.5 DL 406.97 90.5 401.97 90.5 DL 411.97 90.5 406.97 90.5 DL
+411.97 79.5 411.97 89.5 DL 400.972 79.5 395.972 79.5 DL 401.97 79.5
+396.97 79.5 DL 406.97 79.5 401.97 79.5 DL 411.97 79.5 406.97 79.5 DL
+413.636 80.5 413.636 90.5 DL 413.636 79.5 413.636 89.5 DL/F4 6
+/Times-Roman@0 SF(CSI)399.303 87 Q 429.634 80.5 429.634 90.5 DL 418.636
+90.5 413.636 90.5 DL 419.634 90.5 414.634 90.5 DL 424.634 90.5 419.634
+90.5 DL 429.634 90.5 424.634 90.5 DL 429.634 79.5 429.634 89.5 DL
+418.636 79.5 413.636 79.5 DL 419.634 79.5 414.634 79.5 DL 424.634 79.5
+419.634 79.5 DL 429.634 79.5 424.634 79.5 DL 431.3 80.5 431.3 90.5 DL
+431.3 79.5 431.3 89.5 DL 447.298 80.5 447.298 90.5 DL 436.3 90.5 431.3
+90.5 DL 437.298 90.5 432.298 90.5 DL 442.298 90.5 437.298 90.5 DL
+447.298 90.5 442.298 90.5 DL 447.298 79.5 447.298 89.5 DL 436.3 79.5
+431.3 79.5 DL 437.298 79.5 432.298 79.5 DL 442.298 79.5 437.298 79.5 DL
+447.298 79.5 442.298 79.5 DL 448.964 80.5 448.964 90.5 DL 448.964 79.5
+448.964 89.5 DL F0 12.944(?1)419.415 88 S 464.962 80.5 464.962 90.5 DL
+453.964 90.5 448.964 90.5 DL 454.962 90.5 449.962 90.5 DL 459.962 90.5
+454.962 90.5 DL 464.962 90.5 459.962 90.5 DL 464.962 79.5 464.962 89.5
+DL 453.964 79.5 448.964 79.5 DL 454.962 79.5 449.962 79.5 DL 459.962
+79.5 454.962 79.5 DL 464.962 79.5 459.962 79.5 DL 468.294 80.5 468.294
+90.5 DL 468.294 79.5 468.294 89.5 DL 484.292 80.5 484.292 90.5 DL
+473.294 90.5 468.294 90.5 DL 474.292 90.5 469.292 90.5 DL 479.292 90.5
+474.292 90.5 DL 484.292 90.5 479.292 90.5 DL 484.292 79.5 484.292 89.5
+DL 473.294 79.5 468.294 79.5 DL 474.292 79.5 469.292 79.5 DL 479.292
+79.5 474.292 79.5 DL 484.292 79.5 479.292 79.5 DL -15.574 14.33(0n \()
+454.463 88 T 5.921(ready\) or)-14.33 F 180 96.5 180 106.5 DL 180 95.5
+180 105.5 DL 195.998 96.5 195.998 106.5 DL 185 106.5 180 106.5 DL
+185.998 106.5 180.998 106.5 DL 190.998 106.5 185.998 106.5 DL 195.998
+106.5 190.998 106.5 DL 195.998 95.5 195.998 105.5 DL 185 95.5 180 95.5
+DL 185.998 95.5 180.998 95.5 DL 190.998 95.5 185.998 95.5 DL 195.998
+95.5 190.998 95.5 DL 197.664 96.5 197.664 106.5 DL 197.664 95.5 197.664
+105.5 DL F4(CSI)183.331 103 Q 213.662 96.5 213.662 106.5 DL 202.664
+106.5 197.664 106.5 DL 203.662 106.5 198.662 106.5 DL 208.662 106.5
+203.662 106.5 DL 213.662 106.5 208.662 106.5 DL 213.662 95.5 213.662
+105.5 DL 202.664 95.5 197.664 95.5 DL 203.662 95.5 198.662 95.5 DL
+208.662 95.5 203.662 95.5 DL 213.662 95.5 208.662 95.5 DL 215.328 96.5
+215.328 106.5 DL 215.328 95.5 215.328 105.5 DL 231.326 96.5 231.326
+106.5 DL 220.328 106.5 215.328 106.5 DL 221.326 106.5 216.326 106.5 DL
+226.326 106.5 221.326 106.5 DL 231.326 106.5 226.326 106.5 DL 231.326
+95.5 231.326 105.5 DL 220.328 95.5 215.328 95.5 DL 221.326 95.5 216.326
+95.5 DL 226.326 95.5 221.326 95.5 DL 231.326 95.5 226.326 95.5 DL
+232.992 96.5 232.992 106.5 DL 232.992 95.5 232.992 105.5 DL F0 12.944
+(?1)203.443 104 S 248.99 96.5 248.99 106.5 DL 237.992 106.5 232.992
+106.5 DL 238.99 106.5 233.99 106.5 DL 243.99 106.5 238.99 106.5 DL
+248.99 106.5 243.99 106.5 DL 248.99 95.5 248.99 105.5 DL 237.992 95.5
+232.992 95.5 DL 238.99 95.5 233.99 95.5 DL 243.99 95.5 238.99 95.5 DL
+248.99 95.5 243.99 95.5 DL 252.322 96.5 252.322 106.5 DL 252.322 95.5
+252.322 105.5 DL 268.32 96.5 268.32 106.5 DL 257.322 106.5 252.322 106.5
+DL 258.32 106.5 253.32 106.5 DL 263.32 106.5 258.32 106.5 DL 268.32
+106.5 263.32 106.5 DL 268.32 95.5 268.32 105.5 DL 257.322 95.5 252.322
+95.5 DL 258.32 95.5 253.32 95.5 DL 263.32 95.5 258.32 95.5 DL 268.32
+95.5 263.32 95.5 DL 14.33(1n)238.491 104 S(\(not ready\))-4.665 E F1(P)
+185 120 Q F2(s)-2 3 M 212.946 112.5 212.946 122.5 DL 212.946 111.5
+212.946 121.5 DL 228.944 112.5 228.944 122.5 DL 217.946 122.5 212.946
+122.5 DL 218.944 122.5 213.944 122.5 DL 223.944 122.5 218.944 122.5 DL
+228.944 122.5 223.944 122.5 DL 228.944 111.5 228.944 121.5 DL 217.946
+111.5 212.946 111.5 DL 218.944 111.5 213.944 111.5 DL 223.944 111.5
+218.944 111.5 DL 228.944 111.5 223.944 111.5 DL 230.61 112.5 230.61
+122.5 DL 230.61 111.5 230.61 121.5 DL F0 13.041(=2)199.764 120 S 246.608
+112.5 246.608 122.5 DL 235.61 122.5 230.61 122.5 DL 236.608 122.5
+231.608 122.5 DL 241.608 122.5 236.608 122.5 DL 246.608 122.5 241.608
+122.5 DL 246.608 111.5 246.608 121.5 DL 235.61 111.5 230.61 111.5 DL
+236.608 111.5 231.608 111.5 DL 241.608 111.5 236.608 111.5 DL 246.608
+111.5 241.608 111.5 DL(5)236.109 120 Q F3<ae>14.707 E 383.382 112.5
+383.382 122.5 DL 383.382 111.5 383.382 121.5 DL F0 5.041
+(Report UDK status as)273.228 120 R 399.38 112.5 399.38 122.5 DL 388.382
+122.5 383.382 122.5 DL 389.38 122.5 384.38 122.5 DL 394.38 122.5 389.38
+122.5 DL 399.38 122.5 394.38 122.5 DL 399.38 111.5 399.38 121.5 DL
+388.382 111.5 383.382 111.5 DL 389.38 111.5 384.38 111.5 DL 394.38 111.5
+389.38 111.5 DL 399.38 111.5 394.38 111.5 DL 401.046 112.5 401.046 122.5
+DL 401.046 111.5 401.046 121.5 DL F4(CSI)386.713 119 Q 417.044 112.5
+417.044 122.5 DL 406.046 122.5 401.046 122.5 DL 407.044 122.5 402.044
+122.5 DL 412.044 122.5 407.044 122.5 DL 417.044 122.5 412.044 122.5 DL
+417.044 111.5 417.044 121.5 DL 406.046 111.5 401.046 111.5 DL 407.044
+111.5 402.044 111.5 DL 412.044 111.5 407.044 111.5 DL 417.044 111.5
+412.044 111.5 DL 418.71 112.5 418.71 122.5 DL 418.71 111.5 418.71 121.5
+DL 434.708 112.5 434.708 122.5 DL 423.71 122.5 418.71 122.5 DL 424.708
+122.5 419.708 122.5 DL 429.708 122.5 424.708 122.5 DL 434.708 122.5
+429.708 122.5 DL 434.708 111.5 434.708 121.5 DL 423.71 111.5 418.71
+111.5 DL 424.708 111.5 419.708 111.5 DL 429.708 111.5 424.708 111.5 DL
+434.708 111.5 429.708 111.5 DL 436.374 112.5 436.374 122.5 DL 436.374
+111.5 436.374 121.5 DL F0 12.944(?2)406.825 120 S 452.372 112.5 452.372
+122.5 DL 441.374 122.5 436.374 122.5 DL 442.372 122.5 437.372 122.5 DL
+447.372 122.5 442.372 122.5 DL 452.372 122.5 447.372 122.5 DL 452.372
+111.5 452.372 121.5 DL 441.374 111.5 436.374 111.5 DL 442.372 111.5
+437.372 111.5 DL 447.372 111.5 442.372 111.5 DL 452.372 111.5 447.372
+111.5 DL 455.704 112.5 455.704 122.5 DL 455.704 111.5 455.704 121.5 DL
+471.702 112.5 471.702 122.5 DL 460.704 122.5 455.704 122.5 DL 461.702
+122.5 456.702 122.5 DL 466.702 122.5 461.702 122.5 DL 471.702 122.5
+466.702 122.5 DL 471.702 111.5 471.702 121.5 DL 460.704 111.5 455.704
+111.5 DL 461.702 111.5 456.702 111.5 DL 466.702 111.5 461.702 111.5 DL
+471.702 111.5 466.702 111.5 DL -16.454 14.33(0n \()441.873 120 T(unlock)
+-14.33 E 5.041(ed\) or)-.1 F 180 128.5 180 138.5 DL 180 127.5 180 137.5
+DL 195.998 128.5 195.998 138.5 DL 185 138.5 180 138.5 DL 185.998 138.5
+180.998 138.5 DL 190.998 138.5 185.998 138.5 DL 195.998 138.5 190.998
+138.5 DL 195.998 127.5 195.998 137.5 DL 185 127.5 180 127.5 DL 185.998
+127.5 180.998 127.5 DL 190.998 127.5 185.998 127.5 DL 195.998 127.5
+190.998 127.5 DL 197.664 128.5 197.664 138.5 DL 197.664 127.5 197.664
+137.5 DL F4(CSI)183.331 135 Q 213.662 128.5 213.662 138.5 DL 202.664
+138.5 197.664 138.5 DL 203.662 138.5 198.662 138.5 DL 208.662 138.5
+203.662 138.5 DL 213.662 138.5 208.662 138.5 DL 213.662 127.5 213.662
+137.5 DL 202.664 127.5 197.664 127.5 DL 203.662 127.5 198.662 127.5 DL
+208.662 127.5 203.662 127.5 DL 213.662 127.5 208.662 127.5 DL 215.328
+128.5 215.328 138.5 DL 215.328 127.5 215.328 137.5 DL 231.326 128.5
+231.326 138.5 DL 220.328 138.5 215.328 138.5 DL 221.326 138.5 216.326
+138.5 DL 226.326 138.5 221.326 138.5 DL 231.326 138.5 226.326 138.5 DL
+231.326 127.5 231.326 137.5 DL 220.328 127.5 215.328 127.5 DL 221.326
+127.5 216.326 127.5 DL 226.326 127.5 221.326 127.5 DL 231.326 127.5
+226.326 127.5 DL 232.992 128.5 232.992 138.5 DL 232.992 127.5 232.992
+137.5 DL F0 12.944(?2)203.443 136 S 248.99 128.5 248.99 138.5 DL 237.992
+138.5 232.992 138.5 DL 238.99 138.5 233.99 138.5 DL 243.99 138.5 238.99
+138.5 DL 248.99 138.5 243.99 138.5 DL 248.99 127.5 248.99 137.5 DL
+237.992 127.5 232.992 127.5 DL 238.99 127.5 233.99 127.5 DL 243.99 127.5
+238.99 127.5 DL 248.99 127.5 243.99 127.5 DL 252.322 128.5 252.322 138.5
+DL 252.322 127.5 252.322 137.5 DL 268.32 128.5 268.32 138.5 DL 257.322
+138.5 252.322 138.5 DL 258.32 138.5 253.32 138.5 DL 263.32 138.5 258.32
+138.5 DL 268.32 138.5 263.32 138.5 DL 268.32 127.5 268.32 137.5 DL
+257.322 127.5 252.322 127.5 DL 258.32 127.5 253.32 127.5 DL 263.32 127.5
+258.32 127.5 DL 268.32 127.5 263.32 127.5 DL 14.33(1n)238.491 136 S
+(\(lock)-4.665 E(ed\))-.1 E F1(P)185 152 Q F2(s)-2 3 M 202.862 144.5
+202.862 154.5 DL 202.862 143.5 202.862 153.5 DL 218.86 144.5 218.86
+154.5 DL 207.862 154.5 202.862 154.5 DL 208.86 154.5 203.86 154.5 DL
+213.86 154.5 208.86 154.5 DL 218.86 154.5 213.86 154.5 DL 218.86 143.5
+218.86 153.5 DL 207.862 143.5 202.862 143.5 DL 208.86 143.5 203.86 143.5
+DL 213.86 143.5 208.86 143.5 DL 218.86 143.5 213.86 143.5 DL 220.526
+144.5 220.526 154.5 DL 220.526 143.5 220.526 153.5 DL 236.524 144.5
+236.524 154.5 DL 225.526 154.5 220.526 154.5 DL 226.524 154.5 221.524
+154.5 DL 231.524 154.5 226.524 154.5 DL 236.524 154.5 231.524 154.5 DL
+236.524 143.5 236.524 153.5 DL 225.526 143.5 220.526 143.5 DL 226.524
+143.5 221.524 143.5 DL 231.524 143.5 226.524 143.5 DL 236.524 143.5
+231.524 143.5 DL F0 -5.834 7.999(=2 6)194.722 152 T F3<ae>1.666 E F0
+(Report K)2.5 E -.15(ey)-.25 G(board status as).15 E 180 160.5 180 170.5
+DL 180 159.5 180 169.5 DL 195.998 160.5 195.998 170.5 DL 185 170.5 180
+170.5 DL 185.998 170.5 180.998 170.5 DL 190.998 170.5 185.998 170.5 DL
+195.998 170.5 190.998 170.5 DL 195.998 159.5 195.998 169.5 DL 185 159.5
+180 159.5 DL 185.998 159.5 180.998 159.5 DL 190.998 159.5 185.998 159.5
+DL 195.998 159.5 190.998 159.5 DL 197.664 160.5 197.664 170.5 DL 197.664
+159.5 197.664 169.5 DL F4(CSI)183.331 167 Q 213.662 160.5 213.662 170.5
+DL 202.664 170.5 197.664 170.5 DL 203.662 170.5 198.662 170.5 DL 208.662
+170.5 203.662 170.5 DL 213.662 170.5 208.662 170.5 DL 213.662 159.5
+213.662 169.5 DL 202.664 159.5 197.664 159.5 DL 203.662 159.5 198.662
+159.5 DL 208.662 159.5 203.662 159.5 DL 213.662 159.5 208.662 159.5 DL
+215.328 160.5 215.328 170.5 DL 215.328 159.5 215.328 169.5 DL 231.326
+160.5 231.326 170.5 DL 220.328 170.5 215.328 170.5 DL 221.326 170.5
+216.326 170.5 DL 226.326 170.5 221.326 170.5 DL 231.326 170.5 226.326
+170.5 DL 231.326 159.5 231.326 169.5 DL 220.328 159.5 215.328 159.5 DL
+221.326 159.5 216.326 159.5 DL 226.326 159.5 221.326 159.5 DL 231.326
+159.5 226.326 159.5 DL 232.992 160.5 232.992 170.5 DL 232.992 159.5
+232.992 169.5 DL F0 12.944(?2)203.443 168 S 248.99 160.5 248.99 170.5 DL
+237.992 170.5 232.992 170.5 DL 238.99 170.5 233.99 170.5 DL 243.99 170.5
+238.99 170.5 DL 248.99 170.5 243.99 170.5 DL 248.99 159.5 248.99 169.5
+DL 237.992 159.5 232.992 159.5 DL 238.99 159.5 233.99 159.5 DL 243.99
+159.5 238.99 159.5 DL 248.99 159.5 243.99 159.5 DL 252.322 160.5 252.322
+170.5 DL 252.322 159.5 252.322 169.5 DL 268.32 160.5 268.32 170.5 DL
+257.322 170.5 252.322 170.5 DL 258.32 170.5 253.32 170.5 DL 263.32 170.5
+258.32 170.5 DL 268.32 170.5 263.32 170.5 DL 268.32 159.5 268.32 169.5
+DL 257.322 159.5 252.322 159.5 DL 258.32 159.5 253.32 159.5 DL 263.32
+159.5 258.32 159.5 DL 268.32 159.5 263.32 159.5 DL 271.652 160.5 271.652
+170.5 DL 271.652 159.5 271.652 169.5 DL 287.65 160.5 287.65 170.5 DL
+276.652 170.5 271.652 170.5 DL 277.65 170.5 272.65 170.5 DL 282.65 170.5
+277.65 170.5 DL 287.65 170.5 282.65 170.5 DL 287.65 159.5 287.65 169.5
+DL 276.652 159.5 271.652 159.5 DL 277.65 159.5 272.65 159.5 DL 282.65
+159.5 277.65 159.5 DL 287.65 159.5 282.65 159.5 DL 290.982 160.5 290.982
+170.5 DL 290.982 159.5 290.982 169.5 DL 306.98 160.5 306.98 170.5 DL
+295.982 170.5 290.982 170.5 DL 296.98 170.5 291.98 170.5 DL 301.98 170.5
+296.98 170.5 DL 306.98 170.5 301.98 170.5 DL 306.98 159.5 306.98 169.5
+DL 295.982 159.5 290.982 159.5 DL 296.98 159.5 291.98 159.5 DL 301.98
+159.5 296.98 159.5 DL 306.98 159.5 301.98 159.5 DL 310.312 160.5 310.312
+170.5 DL 310.312 159.5 310.312 169.5 DL 326.31 160.5 326.31 170.5 DL
+315.312 170.5 310.312 170.5 DL 316.31 170.5 311.31 170.5 DL 321.31 170.5
+316.31 170.5 DL 326.31 170.5 321.31 170.5 DL 326.31 159.5 326.31 169.5
+DL 315.312 159.5 310.312 159.5 DL 316.31 159.5 311.31 159.5 DL 321.31
+159.5 316.31 159.5 DL 326.31 159.5 321.31 159.5 DL 329.642 160.5 329.642
+170.5 DL 329.642 159.5 329.642 169.5 DL 345.64 160.5 345.64 170.5 DL
+334.642 170.5 329.642 170.5 DL 335.64 170.5 330.64 170.5 DL 340.64 170.5
+335.64 170.5 DL 345.64 170.5 340.64 170.5 DL 345.64 159.5 345.64 169.5
+DL 334.642 159.5 329.642 159.5 DL 335.64 159.5 330.64 159.5 DL 340.64
+159.5 335.64 159.5 DL 345.64 159.5 340.64 159.5 DL 348.972 160.5 348.972
+170.5 DL 348.972 159.5 348.972 169.5 DL 364.97 160.5 364.97 170.5 DL
+353.972 170.5 348.972 170.5 DL 354.97 170.5 349.97 170.5 DL 359.97 170.5
+354.97 170.5 DL 364.97 170.5 359.97 170.5 DL 364.97 159.5 364.97 169.5
+DL 353.972 159.5 348.972 159.5 DL 354.97 159.5 349.97 159.5 DL 359.97
+159.5 354.97 159.5 DL 364.97 159.5 359.97 159.5 DL 368.302 160.5 368.302
+170.5 DL 368.302 159.5 368.302 169.5 DL 15.44(7;1;0;0)238.491 168 S
+384.3 160.5 384.3 170.5 DL 373.302 170.5 368.302 170.5 DL 374.3 170.5
+369.3 170.5 DL 379.3 170.5 374.3 170.5 DL 384.3 170.5 379.3 170.5 DL
+384.3 159.5 384.3 169.5 DL 373.302 159.5 368.302 159.5 DL 374.3 159.5
+369.3 159.5 DL 379.3 159.5 374.3 159.5 DL 384.3 159.5 379.3 159.5 DL
+9.665(n\()373.801 168 S(North American\))-9.665 E 180 176.5 180 186.5 DL
+180 175.5 180 185.5 DL 195.998 176.5 195.998 186.5 DL 185 186.5 180
+186.5 DL 185.998 186.5 180.998 186.5 DL 190.998 186.5 185.998 186.5 DL
+195.998 186.5 190.998 186.5 DL 195.998 175.5 195.998 185.5 DL 185 175.5
+180 175.5 DL 185.998 175.5 180.998 175.5 DL 190.998 175.5 185.998 175.5
+DL 195.998 175.5 190.998 175.5 DL 197.664 176.5 197.664 186.5 DL 197.664
+175.5 197.664 185.5 DL F4(CSI)183.331 183 Q 213.662 176.5 213.662 186.5
+DL 202.664 186.5 197.664 186.5 DL 203.662 186.5 198.662 186.5 DL 208.662
+186.5 203.662 186.5 DL 213.662 186.5 208.662 186.5 DL 213.662 175.5
+213.662 185.5 DL 202.664 175.5 197.664 175.5 DL 203.662 175.5 198.662
+175.5 DL 208.662 175.5 203.662 175.5 DL 213.662 175.5 208.662 175.5 DL
+215.328 176.5 215.328 186.5 DL 215.328 175.5 215.328 185.5 DL 231.326
+176.5 231.326 186.5 DL 220.328 186.5 215.328 186.5 DL 221.326 186.5
+216.326 186.5 DL 226.326 186.5 221.326 186.5 DL 231.326 186.5 226.326
+186.5 DL 231.326 175.5 231.326 185.5 DL 220.328 175.5 215.328 175.5 DL
+221.326 175.5 216.326 175.5 DL 226.326 175.5 221.326 175.5 DL 231.326
+175.5 226.326 175.5 DL 232.992 176.5 232.992 186.5 DL 232.992 175.5
+232.992 185.5 DL F0 12.944(?5)203.443 184 S 248.99 176.5 248.99 186.5 DL
+237.992 186.5 232.992 186.5 DL 238.99 186.5 233.99 186.5 DL 243.99 186.5
+238.99 186.5 DL 248.99 186.5 243.99 186.5 DL 248.99 175.5 248.99 185.5
+DL 237.992 175.5 232.992 175.5 DL 238.99 175.5 233.99 175.5 DL 243.99
+175.5 238.99 175.5 DL 248.99 175.5 243.99 175.5 DL 252.322 176.5 252.322
+186.5 DL 252.322 175.5 252.322 185.5 DL 268.32 176.5 268.32 186.5 DL
+257.322 186.5 252.322 186.5 DL 258.32 186.5 253.32 186.5 DL 263.32 186.5
+258.32 186.5 DL 268.32 186.5 263.32 186.5 DL 268.32 175.5 268.32 185.5
+DL 257.322 175.5 252.322 175.5 DL 258.32 175.5 253.32 175.5 DL 263.32
+175.5 258.32 175.5 DL 268.32 175.5 263.32 175.5 DL 14.33(3n)238.491 184
+S(Locator a)-4.665 E -.25(va)-.2 G(ilable, if compiled-in, or).25 E 180
+192.5 180 202.5 DL 180 191.5 180 201.5 DL 195.998 192.5 195.998 202.5 DL
+185 202.5 180 202.5 DL 185.998 202.5 180.998 202.5 DL 190.998 202.5
+185.998 202.5 DL 195.998 202.5 190.998 202.5 DL 195.998 191.5 195.998
+201.5 DL 185 191.5 180 191.5 DL 185.998 191.5 180.998 191.5 DL 190.998
+191.5 185.998 191.5 DL 195.998 191.5 190.998 191.5 DL 197.664 192.5
+197.664 202.5 DL 197.664 191.5 197.664 201.5 DL F4(CSI)183.331 199 Q
+213.662 192.5 213.662 202.5 DL 202.664 202.5 197.664 202.5 DL 203.662
+202.5 198.662 202.5 DL 208.662 202.5 203.662 202.5 DL 213.662 202.5
+208.662 202.5 DL 213.662 191.5 213.662 201.5 DL 202.664 191.5 197.664
+191.5 DL 203.662 191.5 198.662 191.5 DL 208.662 191.5 203.662 191.5 DL
+213.662 191.5 208.662 191.5 DL 215.328 192.5 215.328 202.5 DL 215.328
+191.5 215.328 201.5 DL 231.326 192.5 231.326 202.5 DL 220.328 202.5
+215.328 202.5 DL 221.326 202.5 216.326 202.5 DL 226.326 202.5 221.326
+202.5 DL 231.326 202.5 226.326 202.5 DL 231.326 191.5 231.326 201.5 DL
+220.328 191.5 215.328 191.5 DL 221.326 191.5 216.326 191.5 DL 226.326
+191.5 221.326 191.5 DL 231.326 191.5 226.326 191.5 DL 232.992 192.5
+232.992 202.5 DL 232.992 191.5 232.992 201.5 DL F0 12.944(?5)203.443 200
+S 248.99 192.5 248.99 202.5 DL 237.992 202.5 232.992 202.5 DL 238.99
+202.5 233.99 202.5 DL 243.99 202.5 238.99 202.5 DL 248.99 202.5 243.99
+202.5 DL 248.99 191.5 248.99 201.5 DL 237.992 191.5 232.992 191.5 DL
+238.99 191.5 233.99 191.5 DL 243.99 191.5 238.99 191.5 DL 248.99 191.5
+243.99 191.5 DL 252.322 192.5 252.322 202.5 DL 252.322 191.5 252.322
+201.5 DL 268.32 192.5 268.32 202.5 DL 257.322 202.5 252.322 202.5 DL
+258.32 202.5 253.32 202.5 DL 263.32 202.5 258.32 202.5 DL 268.32 202.5
+263.32 202.5 DL 268.32 191.5 268.32 201.5 DL 257.322 191.5 252.322 191.5
+DL 258.32 191.5 253.32 191.5 DL 263.32 191.5 258.32 191.5 DL 268.32
+191.5 263.32 191.5 DL 14.33(0n)238.491 200 S(No Locator)-4.665 E 2.5(,i)
+-.4 G 2.5(fn)-2.5 G(ot.)-2.5 E 72 208.5 72 218.5 DL 72 207.5 72 217.5 DL
+87.998 208.5 87.998 218.5 DL 77 218.5 72 218.5 DL 77.998 218.5 72.998
+218.5 DL 82.998 218.5 77.998 218.5 DL 87.998 218.5 82.998 218.5 DL
+87.998 207.5 87.998 217.5 DL 77 207.5 72 207.5 DL 77.998 207.5 72.998
+207.5 DL 82.998 207.5 77.998 207.5 DL 87.998 207.5 82.998 207.5 DL 91.33
+208.5 91.33 218.5 DL 91.33 207.5 91.33 217.5 DL F4(CSI)75.331 215 Q
+107.328 208.5 107.328 218.5 DL 96.33 218.5 91.33 218.5 DL 97.328 218.5
+92.328 218.5 DL 102.328 218.5 97.328 218.5 DL 107.328 218.5 102.328
+218.5 DL 107.328 207.5 107.328 217.5 DL 96.33 207.5 91.33 207.5 DL
+97.328 207.5 92.328 207.5 DL 102.328 207.5 97.328 207.5 DL 107.328 207.5
+102.328 207.5 DL 108.994 208.5 108.994 218.5 DL 108.994 207.5 108.994
+217.5 DL 124.992 208.5 124.992 218.5 DL 113.994 218.5 108.994 218.5 DL
+114.992 218.5 109.992 218.5 DL 119.992 218.5 114.992 218.5 DL 124.992
+218.5 119.992 218.5 DL 124.992 207.5 124.992 217.5 DL 113.994 207.5
+108.994 207.5 DL 114.992 207.5 109.992 207.5 DL 119.992 207.5 114.992
+207.5 DL 124.992 207.5 119.992 207.5 DL F0 31.009 13.499(!p S)97.664 216
+T(oft terminal reset \(DECSTR\))-13.499 E 72 224.5 72 234.5 DL 72 223.5
+72 233.5 DL 87.998 224.5 87.998 234.5 DL 77 234.5 72 234.5 DL 77.998
+234.5 72.998 234.5 DL 82.998 234.5 77.998 234.5 DL 87.998 234.5 82.998
+234.5 DL 87.998 223.5 87.998 233.5 DL 77 223.5 72 223.5 DL 77.998 223.5
+72.998 223.5 DL 82.998 223.5 77.998 223.5 DL 87.998 223.5 82.998 223.5
+DL F4(CSI)75.331 231 Q F1(P)4.997 1 M 98.552 224.5 98.552 234.5 DL
+98.552 223.5 98.552 233.5 DL F2(s)93.774 235 Q 114.55 224.5 114.55 234.5
+DL 103.552 234.5 98.552 234.5 DL 104.55 234.5 99.55 234.5 DL 109.55
+234.5 104.55 234.5 DL 114.55 234.5 109.55 234.5 DL 114.55 223.5 114.55
+233.5 DL 103.552 223.5 98.552 223.5 DL 104.55 223.5 99.55 223.5 DL
+109.55 223.5 104.55 223.5 DL 114.55 223.5 109.55 223.5 DL F0(;)105.161
+232 Q F1(P)8.275 E 125.104 224.5 125.104 234.5 DL 125.104 223.5 125.104
+233.5 DL F2(s)120.326 235 Q 141.102 224.5 141.102 234.5 DL 130.104 234.5
+125.104 234.5 DL 131.102 234.5 126.102 234.5 DL 136.102 234.5 131.102
+234.5 DL 141.102 234.5 136.102 234.5 DL 141.102 223.5 141.102 233.5 DL
+130.104 223.5 125.104 223.5 DL 131.102 223.5 126.102 223.5 DL 136.102
+223.5 131.102 223.5 DL 141.102 223.5 136.102 223.5 DL 142.768 224.5
+142.768 234.5 DL 142.768 223.5 142.768 233.5 DL 158.766 224.5 158.766
+234.5 DL 147.768 234.5 142.768 234.5 DL 148.766 234.5 143.766 234.5 DL
+153.766 234.5 148.766 234.5 DL 158.766 234.5 153.766 234.5 DL 158.766
+223.5 158.766 233.5 DL 147.768 223.5 142.768 223.5 DL 148.766 223.5
+143.766 223.5 DL 153.766 223.5 148.766 223.5 DL 158.766 223.5 153.766
+223.5 DL F0 -1.655 12.944(\231p S)130.883 232 T(et conformance le)
+-12.944 E -.15(ve)-.25 G 2.5(l\().15 G(DECSCL\) V)-2.5 E(alid v)-1.11 E
+(alues for the \214rst parameter:)-.25 E F1(P)185 248 Q F2(s)-2 3 M
+202.862 240.5 202.862 250.5 DL 202.862 239.5 202.862 249.5 DL 218.86
+240.5 218.86 250.5 DL 207.862 250.5 202.862 250.5 DL 208.86 250.5 203.86
+250.5 DL 213.86 250.5 208.86 250.5 DL 218.86 250.5 213.86 250.5 DL
+218.86 239.5 218.86 249.5 DL 207.862 239.5 202.862 239.5 DL 208.86 239.5
+203.86 239.5 DL 213.86 239.5 208.86 239.5 DL 218.86 239.5 213.86 239.5
+DL 220.526 240.5 220.526 250.5 DL 220.526 239.5 220.526 249.5 DL 236.524
+240.5 236.524 250.5 DL 225.526 250.5 220.526 250.5 DL 226.524 250.5
+221.524 250.5 DL 231.524 250.5 226.524 250.5 DL 236.524 250.5 231.524
+250.5 DL 236.524 239.5 236.524 249.5 DL 225.526 239.5 220.526 239.5 DL
+226.524 239.5 221.524 239.5 DL 231.524 239.5 226.524 239.5 DL 236.524
+239.5 231.524 239.5 DL F0 -5.834 7.999(=6 1)194.722 248 T F3<ae>1.666 E
+F0(VT100)2.5 E F1(P)185 264 Q F2(s)-2 3 M 202.862 256.5 202.862 266.5 DL
+202.862 255.5 202.862 265.5 DL 218.86 256.5 218.86 266.5 DL 207.862
+266.5 202.862 266.5 DL 208.86 266.5 203.86 266.5 DL 213.86 266.5 208.86
+266.5 DL 218.86 266.5 213.86 266.5 DL 218.86 255.5 218.86 265.5 DL
+207.862 255.5 202.862 255.5 DL 208.86 255.5 203.86 255.5 DL 213.86 255.5
+208.86 255.5 DL 218.86 255.5 213.86 255.5 DL 220.526 256.5 220.526 266.5
+DL 220.526 255.5 220.526 265.5 DL 236.524 256.5 236.524 266.5 DL 225.526
+266.5 220.526 266.5 DL 226.524 266.5 221.524 266.5 DL 231.524 266.5
+226.524 266.5 DL 236.524 266.5 231.524 266.5 DL 236.524 255.5 236.524
+265.5 DL 225.526 255.5 220.526 255.5 DL 226.524 255.5 221.524 255.5 DL
+231.524 255.5 226.524 255.5 DL 236.524 255.5 231.524 255.5 DL F0 -5.834
+7.999(=6 2)194.722 264 T F3<ae>1.666 E F0(VT200)2.5 E F1(P)185 280 Q F2
+(s)-2 3 M 202.862 272.5 202.862 282.5 DL 202.862 271.5 202.862 281.5 DL
+218.86 272.5 218.86 282.5 DL 207.862 282.5 202.862 282.5 DL 208.86 282.5
+203.86 282.5 DL 213.86 282.5 208.86 282.5 DL 218.86 282.5 213.86 282.5
+DL 218.86 271.5 218.86 281.5 DL 207.862 271.5 202.862 271.5 DL 208.86
+271.5 203.86 271.5 DL 213.86 271.5 208.86 271.5 DL 218.86 271.5 213.86
+271.5 DL 220.526 272.5 220.526 282.5 DL 220.526 271.5 220.526 281.5 DL
+236.524 272.5 236.524 282.5 DL 225.526 282.5 220.526 282.5 DL 226.524
+282.5 221.524 282.5 DL 231.524 282.5 226.524 282.5 DL 236.524 282.5
+231.524 282.5 DL 236.524 271.5 236.524 281.5 DL 225.526 271.5 220.526
+271.5 DL 226.524 271.5 221.524 271.5 DL 231.524 271.5 226.524 271.5 DL
+236.524 271.5 231.524 271.5 DL F0 -5.834 7.999(=6 3)194.722 280 T F3<ae>
+1.666 E F0(VT300)2.5 E -1.11(Va)180 296 S(lid v)1.11 E
+(alues for the second parameter:)-.25 E F1(P)185 312 Q F2(s)-2 3 M
+202.862 304.5 202.862 314.5 DL 202.862 303.5 202.862 313.5 DL 218.86
+304.5 218.86 314.5 DL 207.862 314.5 202.862 314.5 DL 208.86 314.5 203.86
+314.5 DL 213.86 314.5 208.86 314.5 DL 218.86 314.5 213.86 314.5 DL
+218.86 303.5 218.86 313.5 DL 207.862 303.5 202.862 303.5 DL 208.86 303.5
+203.86 303.5 DL 213.86 303.5 208.86 303.5 DL 218.86 303.5 213.86 303.5
+DL F0 7.999(=0)194.722 312 S F3<ae>1.666 E F0(8-bit controls)2.5 E F1(P)
+185 328 Q F2(s)-2 3 M 202.862 320.5 202.862 330.5 DL 202.862 319.5
+202.862 329.5 DL 218.86 320.5 218.86 330.5 DL 207.862 330.5 202.862
+330.5 DL 208.86 330.5 203.86 330.5 DL 213.86 330.5 208.86 330.5 DL
+218.86 330.5 213.86 330.5 DL 218.86 319.5 218.86 329.5 DL 207.862 319.5
+202.862 319.5 DL 208.86 319.5 203.86 319.5 DL 213.86 319.5 208.86 319.5
+DL 218.86 319.5 213.86 319.5 DL F0 7.999(=1)194.722 328 S F3<ae>1.666 E
+F0(7-bit controls \(al)2.5 E -.1(wa)-.1 G(ys set for VT100\)).1 E F1(P)
+185 344 Q F2(s)-2 3 M 202.862 336.5 202.862 346.5 DL 202.862 335.5
+202.862 345.5 DL 218.86 336.5 218.86 346.5 DL 207.862 346.5 202.862
+346.5 DL 208.86 346.5 203.86 346.5 DL 213.86 346.5 208.86 346.5 DL
+218.86 346.5 213.86 346.5 DL 218.86 335.5 218.86 345.5 DL 207.862 335.5
+202.862 335.5 DL 208.86 335.5 203.86 335.5 DL 213.86 335.5 208.86 335.5
+DL 218.86 335.5 213.86 335.5 DL F0 7.999(=2)194.722 344 S F3<ae>1.666 E
+F0(8-bit controls)2.5 E 72 352.5 72 362.5 DL 72 351.5 72 361.5 DL 87.998
+352.5 87.998 362.5 DL 77 362.5 72 362.5 DL 77.998 362.5 72.998 362.5 DL
+82.998 362.5 77.998 362.5 DL 87.998 362.5 82.998 362.5 DL 87.998 351.5
+87.998 361.5 DL 77 351.5 72 351.5 DL 77.998 351.5 72.998 351.5 DL 82.998
+351.5 77.998 351.5 DL 87.998 351.5 82.998 351.5 DL F4(CSI)75.331 359 Q
+F1(P)4.997 1 M 98.552 352.5 98.552 362.5 DL 98.552 351.5 98.552 361.5 DL
+F2(s)93.774 363 Q 114.55 352.5 114.55 362.5 DL 103.552 362.5 98.552
+362.5 DL 104.55 362.5 99.55 362.5 DL 109.55 362.5 104.55 362.5 DL 114.55
+362.5 109.55 362.5 DL 114.55 351.5 114.55 361.5 DL 103.552 351.5 98.552
+351.5 DL 104.55 351.5 99.55 351.5 DL 109.55 351.5 104.55 351.5 DL 114.55
+351.5 109.55 351.5 DL 116.216 352.5 116.216 362.5 DL 116.216 351.5
+116.216 361.5 DL 132.214 352.5 132.214 362.5 DL 121.216 362.5 116.216
+362.5 DL 122.214 362.5 117.214 362.5 DL 127.214 362.5 122.214 362.5 DL
+132.214 362.5 127.214 362.5 DL 132.214 351.5 132.214 361.5 DL 121.216
+351.5 116.216 351.5 DL 122.214 351.5 117.214 351.5 DL 127.214 351.5
+122.214 351.5 DL 132.214 351.5 127.214 351.5 DL F0 24.897 12.944
+(\231q S)104.331 360 T(elect character protection attrib)-12.944 E
+(ute \(DECSCA\).)-.2 E -1.11(Va)5 G(lid v)1.11 E
+(alues for the parameter:)-.25 E F1(P)185 376 Q F2(s)-2 3 M 202.862
+368.5 202.862 378.5 DL 202.862 367.5 202.862 377.5 DL 218.86 368.5
+218.86 378.5 DL 207.862 378.5 202.862 378.5 DL 208.86 378.5 203.86 378.5
+DL 213.86 378.5 208.86 378.5 DL 218.86 378.5 213.86 378.5 DL 218.86
+367.5 218.86 377.5 DL 207.862 367.5 202.862 367.5 DL 208.86 367.5 203.86
+367.5 DL 213.86 367.5 208.86 367.5 DL 218.86 367.5 213.86 367.5 DL F0
+7.999(=0)194.722 376 S F3<ae>1.666 E F0
+(DECSED and DECSEL can erase \(def)2.5 E(ault\))-.1 E F1(P)185 392 Q F2
+(s)-2 3 M 202.862 384.5 202.862 394.5 DL 202.862 383.5 202.862 393.5 DL
+218.86 384.5 218.86 394.5 DL 207.862 394.5 202.862 394.5 DL 208.86 394.5
+203.86 394.5 DL 213.86 394.5 208.86 394.5 DL 218.86 394.5 213.86 394.5
+DL 218.86 383.5 218.86 393.5 DL 207.862 383.5 202.862 383.5 DL 208.86
+383.5 203.86 383.5 DL 213.86 383.5 208.86 383.5 DL 218.86 383.5 213.86
+383.5 DL F0 7.999(=1)194.722 392 S F3<ae>1.666 E F0
+(DECSED and DECSEL cannot erase)2.5 E F1(P)185 408 Q F2(s)-2 3 M 202.862
+400.5 202.862 410.5 DL 202.862 399.5 202.862 409.5 DL 218.86 400.5
+218.86 410.5 DL 207.862 410.5 202.862 410.5 DL 208.86 410.5 203.86 410.5
+DL 213.86 410.5 208.86 410.5 DL 218.86 410.5 213.86 410.5 DL 218.86
+399.5 218.86 409.5 DL 207.862 399.5 202.862 399.5 DL 208.86 399.5 203.86
+399.5 DL 213.86 399.5 208.86 399.5 DL 218.86 399.5 213.86 399.5 DL F0
+7.999(=2)194.722 408 S F3<ae>1.666 E F0(DECSED and DECSEL can erase)2.5
+E 72 416.5 72 426.5 DL 72 415.5 72 425.5 DL 87.998 416.5 87.998 426.5 DL
+77 426.5 72 426.5 DL 77.998 426.5 72.998 426.5 DL 82.998 426.5 77.998
+426.5 DL 87.998 426.5 82.998 426.5 DL 87.998 415.5 87.998 425.5 DL 77
+415.5 72 415.5 DL 77.998 415.5 72.998 415.5 DL 82.998 415.5 77.998 415.5
+DL 87.998 415.5 82.998 415.5 DL F4(CSI)75.331 423 Q F1(P)4.997 1 M
+98.552 416.5 98.552 426.5 DL 98.552 415.5 98.552 425.5 DL F2(s)93.774
+427 Q 114.55 416.5 114.55 426.5 DL 103.552 426.5 98.552 426.5 DL 104.55
+426.5 99.55 426.5 DL 109.55 426.5 104.55 426.5 DL 114.55 426.5 109.55
+426.5 DL 114.55 415.5 114.55 425.5 DL 103.552 415.5 98.552 415.5 DL
+104.55 415.5 99.55 415.5 DL 109.55 415.5 104.55 415.5 DL 114.55 415.5
+109.55 415.5 DL F0(;)105.161 424 Q F1(P)8.275 E 125.104 416.5 125.104
+426.5 DL 125.104 415.5 125.104 425.5 DL F2(s)120.326 427 Q 141.102 416.5
+141.102 426.5 DL 130.104 426.5 125.104 426.5 DL 131.102 426.5 126.102
+426.5 DL 136.102 426.5 131.102 426.5 DL 141.102 426.5 136.102 426.5 DL
+141.102 415.5 141.102 425.5 DL 130.104 415.5 125.104 415.5 DL 131.102
+415.5 126.102 415.5 DL 136.102 415.5 131.102 415.5 DL 141.102 415.5
+136.102 415.5 DL F0 45.232(rS)131.438 424 S(et Scrolling Re)-45.232 E
+(gion [top;bottom] \(def)-.15 E(ault = full size of windo)-.1 E
+(w\) \(DECSTBM\))-.25 E 72 432.5 72 442.5 DL 72 431.5 72 441.5 DL 87.998
+432.5 87.998 442.5 DL 77 442.5 72 442.5 DL 77.998 442.5 72.998 442.5 DL
+82.998 442.5 77.998 442.5 DL 87.998 442.5 82.998 442.5 DL 87.998 431.5
+87.998 441.5 DL 77 431.5 72 431.5 DL 77.998 431.5 72.998 431.5 DL 82.998
+431.5 77.998 431.5 DL 87.998 431.5 82.998 431.5 DL 89.664 432.5 89.664
+442.5 DL 89.664 431.5 89.664 441.5 DL F4(CSI)75.331 439 Q 105.662 432.5
+105.662 442.5 DL 94.664 442.5 89.664 442.5 DL 95.662 442.5 90.662 442.5
+DL 100.662 442.5 95.662 442.5 DL 105.662 442.5 100.662 442.5 DL 105.662
+431.5 105.662 441.5 DL 94.664 431.5 89.664 431.5 DL 95.662 431.5 90.662
+431.5 DL 100.662 431.5 95.662 431.5 DL 105.662 431.5 100.662 431.5 DL F0
+(?)95.443 440 Q F1(P)7.445 E 118.88 432.5 118.88 442.5 DL 118.88 431.5
+118.88 441.5 DL F2(m)111.438 443 Q 134.878 432.5 134.878 442.5 DL 123.88
+442.5 118.88 442.5 DL 124.878 442.5 119.878 442.5 DL 129.878 442.5
+124.878 442.5 DL 134.878 442.5 129.878 442.5 DL 134.878 431.5 134.878
+441.5 DL 123.88 431.5 118.88 431.5 DL 124.878 431.5 119.878 431.5 DL
+129.878 431.5 124.878 431.5 DL 134.878 431.5 129.878 431.5 DL F0 51.456
+(rR)125.214 440 S .594(estore DEC Pri)-51.456 F -.25(va)-.25 G .594
+(te Mode V).25 F 3.095(alues. The)-1.11 F -.25(va)3.095 G .595(lue of)
+.25 F F1(P)3.095 E F2(s)-2 3 M F0(pre)3.095 -3 M .595(viously sa)-.25 F
+-.15(ve)-.2 G 3.095(di).15 G 3.095(sr)-3.095 G(estored.)-3.095 E F1(P)
+5.595 E F2(s)-2 3 M F0 -.25(va)3.095 -3 O(l-).25 E
+(ues are the same as for DECSET)180 456 Q(.)-.74 E 72 464.5 72 474.5 DL
+72 463.5 72 473.5 DL 87.998 464.5 87.998 474.5 DL 77 474.5 72 474.5 DL
+77.998 474.5 72.998 474.5 DL 82.998 474.5 77.998 474.5 DL 87.998 474.5
+82.998 474.5 DL 87.998 463.5 87.998 473.5 DL 77 463.5 72 463.5 DL 77.998
+463.5 72.998 463.5 DL 82.998 463.5 77.998 463.5 DL 87.998 463.5 82.998
+463.5 DL 89.664 464.5 89.664 474.5 DL 89.664 463.5 89.664 473.5 DL F4
+(CSI)75.331 471 Q 105.662 464.5 105.662 474.5 DL 94.664 474.5 89.664
+474.5 DL 95.662 474.5 90.662 474.5 DL 100.662 474.5 95.662 474.5 DL
+105.662 474.5 100.662 474.5 DL 105.662 463.5 105.662 473.5 DL 94.664
+463.5 89.664 463.5 DL 95.662 463.5 90.662 463.5 DL 100.662 463.5 95.662
+463.5 DL 105.662 463.5 100.662 463.5 DL F0(?)95.443 472 Q F1(P)7.445 E
+118.88 464.5 118.88 474.5 DL 118.88 463.5 118.88 473.5 DL F2(m)111.438
+475 Q 134.878 464.5 134.878 474.5 DL 123.88 474.5 118.88 474.5 DL
+124.878 474.5 119.878 474.5 DL 129.878 474.5 124.878 474.5 DL 134.878
+474.5 129.878 474.5 DL 134.878 463.5 134.878 473.5 DL 123.88 463.5
+118.88 463.5 DL 124.878 463.5 119.878 463.5 DL 129.878 463.5 124.878
+463.5 DL 134.878 463.5 129.878 463.5 DL F0 51.176(sS)124.934 472 S -2.25
+-.2(av e)-51.176 H(DEC Pri)2.7 E -.25(va)-.25 G(te Mode V).25 E(alues.)
+-1.11 E F1(P)5 E F2(s)-2 3 M F0 -.25(va)2.5 -3 O
+(lues are the same as for DECSET).25 E(.)-.74 E 72 480.5 72 490.5 DL 72
+479.5 72 489.5 DL 87.998 480.5 87.998 490.5 DL 77 490.5 72 490.5 DL
+77.998 490.5 72.998 490.5 DL 82.998 490.5 77.998 490.5 DL 87.998 490.5
+82.998 490.5 DL 87.998 479.5 87.998 489.5 DL 77 479.5 72 479.5 DL 77.998
+479.5 72.998 479.5 DL 82.998 479.5 77.998 479.5 DL 87.998 479.5 82.998
+479.5 DL F4(CSI)75.331 487 Q F1(P)4.997 1 M 98.552 480.5 98.552 490.5 DL
+98.552 479.5 98.552 489.5 DL F2(s)93.774 491 Q 114.55 480.5 114.55 490.5
+DL 103.552 490.5 98.552 490.5 DL 104.55 490.5 99.55 490.5 DL 109.55
+490.5 104.55 490.5 DL 114.55 490.5 109.55 490.5 DL 114.55 479.5 114.55
+489.5 DL 103.552 479.5 98.552 479.5 DL 104.55 479.5 99.55 479.5 DL
+109.55 479.5 104.55 479.5 DL 114.55 479.5 109.55 479.5 DL F0(;)105.161
+488 Q F1(P)8.275 E 125.104 480.5 125.104 490.5 DL 125.104 479.5 125.104
+489.5 DL F2(s)120.326 491 Q 141.102 480.5 141.102 490.5 DL 130.104 490.5
+125.104 490.5 DL 131.102 490.5 126.102 490.5 DL 136.102 490.5 131.102
+490.5 DL 141.102 490.5 136.102 490.5 DL 141.102 479.5 141.102 489.5 DL
+130.104 479.5 125.104 479.5 DL 131.102 479.5 126.102 479.5 DL 136.102
+479.5 131.102 479.5 DL 141.102 479.5 136.102 479.5 DL F0(;)131.713 488 Q
+F1(P)8.275 E 151.656 480.5 151.656 490.5 DL 151.656 479.5 151.656 489.5
+DL F2(s)146.878 491 Q 167.654 480.5 167.654 490.5 DL 156.656 490.5
+151.656 490.5 DL 157.654 490.5 152.654 490.5 DL 162.654 490.5 157.654
+490.5 DL 167.654 490.5 162.654 490.5 DL 167.654 479.5 167.654 489.5 DL
+156.656 479.5 151.656 479.5 DL 157.654 479.5 152.654 479.5 DL 162.654
+479.5 157.654 479.5 DL 167.654 479.5 162.654 479.5 DL F0 18.955(tW)
+158.265 488 S(indo)-19.355 E 2.627(wm)-.25 G .127(anipulation \(from)
+-2.627 F F1(dtterm)2.627 E F0 2.627(,a)C 2.627(sw)-2.627 G .127
+(ell as e)-2.627 F 2.627(xtensions\). V)-.15 F .127(alid v)-1.11 F .127
+(alues for the \214rst \(and)-.25 F(an)180 504 Q 2.5(ya)-.15 G
+(dditional parameters\) are:)-2.5 E F1(P)185 520 Q F2(s)-2 3 M 202.862
+512.5 202.862 522.5 DL 202.862 511.5 202.862 521.5 DL 218.86 512.5
+218.86 522.5 DL 207.862 522.5 202.862 522.5 DL 208.86 522.5 203.86 522.5
+DL 213.86 522.5 208.86 522.5 DL 218.86 522.5 213.86 522.5 DL 218.86
+511.5 218.86 521.5 DL 207.862 511.5 202.862 511.5 DL 208.86 511.5 203.86
+511.5 DL 213.86 511.5 208.86 511.5 DL 218.86 511.5 213.86 511.5 DL F0
+7.999(=1)194.722 520 S F3<ae>1.666 E F0(De-iconify windo)2.5 E -.65(w.)
+-.25 G F1(P)185 536 Q F2(s)-2 3 M 202.862 528.5 202.862 538.5 DL 202.862
+527.5 202.862 537.5 DL 218.86 528.5 218.86 538.5 DL 207.862 538.5
+202.862 538.5 DL 208.86 538.5 203.86 538.5 DL 213.86 538.5 208.86 538.5
+DL 218.86 538.5 213.86 538.5 DL 218.86 527.5 218.86 537.5 DL 207.862
+527.5 202.862 527.5 DL 208.86 527.5 203.86 527.5 DL 213.86 527.5 208.86
+527.5 DL 218.86 527.5 213.86 527.5 DL F0 7.999(=2)194.722 536 S F3<ae>
+1.666 E F0(Iconify windo)2.5 E -.65(w.)-.25 G F1(P)185 552 Q F2(s)-2 3 M
+202.862 544.5 202.862 554.5 DL 202.862 543.5 202.862 553.5 DL 218.86
+544.5 218.86 554.5 DL 207.862 554.5 202.862 554.5 DL 208.86 554.5 203.86
+554.5 DL 213.86 554.5 208.86 554.5 DL 218.86 554.5 213.86 554.5 DL
+218.86 543.5 218.86 553.5 DL 207.862 543.5 202.862 543.5 DL 208.86 543.5
+203.86 543.5 DL 213.86 543.5 208.86 543.5 DL 218.86 543.5 213.86 543.5
+DL F0 -8.833 7.999(=3 ;)194.722 552 T F1 2.5(x;y)-5.499 G F3<ae>A F0(Mo)
+2.5 E .3 -.15(ve w)-.15 H(indo).15 E 2.5(wt)-.25 G 2.5(o[)-2.5 G(x, y].)
+-2.5 E F1(P)185 568 Q F2(s)-2 3 M 202.862 560.5 202.862 570.5 DL 202.862
+559.5 202.862 569.5 DL 218.86 560.5 218.86 570.5 DL 207.862 570.5
+202.862 570.5 DL 208.86 570.5 203.86 570.5 DL 213.86 570.5 208.86 570.5
+DL 218.86 570.5 213.86 570.5 DL 218.86 559.5 218.86 569.5 DL 207.862
+559.5 202.862 559.5 DL 208.86 559.5 203.86 559.5 DL 213.86 559.5 208.86
+559.5 DL 218.86 559.5 213.86 559.5 DL F0 -8.833 7.999(=4 ;)194.722 568 T
+F1(height ; width)-5.499 E F3<ae>2.5 E F0(Resize the)2.5 E F1(xterm)2.5
+E F0(windo)2.5 E 2.5(wt)-.25 G 2.5(oh)-2.5 G(eight and width in pix)-2.5
+E(els.)-.15 E F1(P)185 584 Q F2(s)-2 3 M 202.862 576.5 202.862 586.5 DL
+202.862 575.5 202.862 585.5 DL 218.86 576.5 218.86 586.5 DL 207.862
+586.5 202.862 586.5 DL 208.86 586.5 203.86 586.5 DL 213.86 586.5 208.86
+586.5 DL 218.86 586.5 213.86 586.5 DL 218.86 575.5 218.86 585.5 DL
+207.862 575.5 202.862 575.5 DL 208.86 575.5 203.86 575.5 DL 213.86 575.5
+208.86 575.5 DL 218.86 575.5 213.86 575.5 DL F0 7.999(=5)194.722 584 S
+F3<ae>1.666 E F0(Raise the)2.5 E F1(xterm)2.5 E F0(windo)2.5 E 2.5(wt)
+-.25 G 2.5(ot)-2.5 G(he front of the stacking order)-2.5 E(.)-.55 E F1
+(P)185 600 Q F2(s)-2 3 M 202.862 592.5 202.862 602.5 DL 202.862 591.5
+202.862 601.5 DL 218.86 592.5 218.86 602.5 DL 207.862 602.5 202.862
+602.5 DL 208.86 602.5 203.86 602.5 DL 213.86 602.5 208.86 602.5 DL
+218.86 602.5 213.86 602.5 DL 218.86 591.5 218.86 601.5 DL 207.862 591.5
+202.862 591.5 DL 208.86 591.5 203.86 591.5 DL 213.86 591.5 208.86 591.5
+DL 218.86 591.5 213.86 591.5 DL F0 7.999(=6)194.722 600 S F3<ae>1.666 E
+F0(Lo)2.5 E(wer the)-.25 E F1(xterm)2.5 E F0(windo)2.5 E 2.5(wt)-.25 G
+2.5(ot)-2.5 G(he bottom of the stacking order)-2.5 E(.)-.55 E F1(P)185
+616 Q F2(s)-2 3 M 202.862 608.5 202.862 618.5 DL 202.862 607.5 202.862
+617.5 DL 218.86 608.5 218.86 618.5 DL 207.862 618.5 202.862 618.5 DL
+208.86 618.5 203.86 618.5 DL 213.86 618.5 208.86 618.5 DL 218.86 618.5
+213.86 618.5 DL 218.86 607.5 218.86 617.5 DL 207.862 607.5 202.862 607.5
+DL 208.86 607.5 203.86 607.5 DL 213.86 607.5 208.86 607.5 DL 218.86
+607.5 213.86 607.5 DL F0 7.999(=7)194.722 616 S F3<ae>1.666 E F0
+(Refresh the)2.5 E F1(xterm)2.5 E F0(windo)2.5 E -.65(w.)-.25 G F1(P)185
+632 Q F2(s)-2 3 M 202.862 624.5 202.862 634.5 DL 202.862 623.5 202.862
+633.5 DL 218.86 624.5 218.86 634.5 DL 207.862 634.5 202.862 634.5 DL
+208.86 634.5 203.86 634.5 DL 213.86 634.5 208.86 634.5 DL 218.86 634.5
+213.86 634.5 DL 218.86 623.5 218.86 633.5 DL 207.862 623.5 202.862 623.5
+DL 208.86 623.5 203.86 623.5 DL 213.86 623.5 208.86 623.5 DL 218.86
+623.5 213.86 623.5 DL F0 -8.833 7.999(=8 ;)194.722 632 T F1
+(height ; width)-5.499 E F3<ae>2.5 E F0(Resize the te)2.5 E
+(xt area to [height;width] in characters.)-.15 E F1(P)185 648 Q F2(s)-2
+3 M 202.862 640.5 202.862 650.5 DL 202.862 639.5 202.862 649.5 DL 218.86
+640.5 218.86 650.5 DL 207.862 650.5 202.862 650.5 DL 208.86 650.5 203.86
+650.5 DL 213.86 650.5 208.86 650.5 DL 218.86 650.5 213.86 650.5 DL
+218.86 639.5 218.86 649.5 DL 207.862 639.5 202.862 639.5 DL 208.86 639.5
+203.86 639.5 DL 213.86 639.5 208.86 639.5 DL 218.86 639.5 213.86 639.5
+DL 228.306 640.5 228.306 650.5 DL 228.306 639.5 228.306 649.5 DL 244.304
+640.5 244.304 650.5 DL 233.306 650.5 228.306 650.5 DL 234.304 650.5
+229.304 650.5 DL 239.304 650.5 234.304 650.5 DL 244.304 650.5 239.304
+650.5 DL 244.304 639.5 244.304 649.5 DL 233.306 639.5 228.306 639.5 DL
+234.304 639.5 229.304 639.5 DL 239.304 639.5 234.304 639.5 DL 244.304
+639.5 239.304 639.5 DL F0 -8.833 7.999(=9 ;0)194.722 648 T F3<ae>1.666 E
+F0(Restore maximized windo)2.5 E -.65(w.)-.25 G F1(P)185 664 Q F2(s)-2 3
+M 202.862 656.5 202.862 666.5 DL 202.862 655.5 202.862 665.5 DL 218.86
+656.5 218.86 666.5 DL 207.862 666.5 202.862 666.5 DL 208.86 666.5 203.86
+666.5 DL 213.86 666.5 208.86 666.5 DL 218.86 666.5 213.86 666.5 DL
+218.86 655.5 218.86 665.5 DL 207.862 655.5 202.862 655.5 DL 208.86 655.5
+203.86 655.5 DL 213.86 655.5 208.86 655.5 DL 218.86 655.5 213.86 655.5
+DL 228.306 656.5 228.306 666.5 DL 228.306 655.5 228.306 665.5 DL 244.304
+656.5 244.304 666.5 DL 233.306 666.5 228.306 666.5 DL 234.304 666.5
+229.304 666.5 DL 239.304 666.5 234.304 666.5 DL 244.304 666.5 239.304
+666.5 DL 244.304 655.5 244.304 665.5 DL 233.306 655.5 228.306 655.5 DL
+234.304 655.5 229.304 655.5 DL 239.304 655.5 234.304 655.5 DL 244.304
+655.5 239.304 655.5 DL F0 -8.833 7.999(=9 ;1)194.722 664 T F3<ae>1.666 E
+F0(Maximize windo)2.5 E 2.5(w\()-.25 G(i.e., resize to screen size\).)
+-2.5 E F1(P)185 680 Q F2(s)-2 3 M 204.566 672.5 204.566 682.5 DL 204.566
+671.5 204.566 681.5 DL 220.564 672.5 220.564 682.5 DL 209.566 682.5
+204.566 682.5 DL 210.564 682.5 205.564 682.5 DL 215.564 682.5 210.564
+682.5 DL 220.564 682.5 215.564 682.5 DL 220.564 671.5 220.564 681.5 DL
+209.566 671.5 204.566 671.5 DL 210.564 671.5 205.564 671.5 DL 215.564
+671.5 210.564 671.5 DL 220.564 671.5 215.564 671.5 DL 222.23 672.5
+222.23 682.5 DL 222.23 671.5 222.23 681.5 DL 238.228 672.5 238.228 682.5
+DL 227.23 682.5 222.23 682.5 DL 228.228 682.5 223.228 682.5 DL 233.228
+682.5 228.228 682.5 DL 238.228 682.5 233.228 682.5 DL 238.228 671.5
+238.228 681.5 DL 227.23 671.5 222.23 671.5 DL 228.228 671.5 223.228
+671.5 DL 233.228 671.5 228.228 671.5 DL 238.228 671.5 233.228 671.5 DL
+F0 -7.538 8.851(=1 1)195.574 680 T F3<ae>1.666 E F0(Report)3.352 E F1
+(xterm)3.352 E F0(windo)3.352 E 3.352(ws)-.25 G 3.352(tate. If)-3.352 F
+(the)3.352 E F1(xterm)3.352 E F0(windo)3.352 E 3.352(wi)-.25 G 3.353(so)
+-3.352 G .853(pen \(non-iconi-)-3.353 F 241.66 688.5 241.66 698.5 DL
+241.66 687.5 241.66 697.5 DL(\214ed\), it returns)180 696 Q 257.658
+688.5 257.658 698.5 DL 246.66 698.5 241.66 698.5 DL 247.658 698.5
+242.658 698.5 DL 252.658 698.5 247.658 698.5 DL 257.658 698.5 252.658
+698.5 DL 257.658 687.5 257.658 697.5 DL 246.66 687.5 241.66 687.5 DL
+247.658 687.5 242.658 687.5 DL 252.658 687.5 247.658 687.5 DL 257.658
+687.5 252.658 687.5 DL 259.324 688.5 259.324 698.5 DL 259.324 687.5
+259.324 697.5 DL F4(CSI)244.991 695 Q 275.322 688.5 275.322 698.5 DL
+264.324 698.5 259.324 698.5 DL 265.322 698.5 260.322 698.5 DL 270.322
+698.5 265.322 698.5 DL 275.322 698.5 270.322 698.5 DL 275.322 687.5
+275.322 697.5 DL 264.324 687.5 259.324 687.5 DL 265.322 687.5 260.322
+687.5 DL 270.322 687.5 265.322 687.5 DL 275.322 687.5 270.322 687.5 DL
+276.988 688.5 276.988 698.5 DL 276.988 687.5 276.988 697.5 DL 292.986
+688.5 292.986 698.5 DL 281.988 698.5 276.988 698.5 DL 282.986 698.5
+277.986 698.5 DL 287.986 698.5 282.986 698.5 DL 292.986 698.5 287.986
+698.5 DL 292.986 687.5 292.986 697.5 DL 281.988 687.5 276.988 687.5 DL
+282.986 687.5 277.986 687.5 DL 287.986 687.5 282.986 687.5 DL 292.986
+687.5 287.986 687.5 DL F0 13.774(1t)264.823 696 S 5(.I)-5.499 G 2.5(ft)
+-5 G(he)-2.5 E F1(xterm)2.5 E F0(windo)2.5 E 2.5(wi)-.25 G 2.5(si)-2.5 G
+473.272 688.5 473.272 698.5 DL 473.272 687.5 473.272 697.5 DL
+(coni\214ed, it returns)397.722 696 Q 489.27 688.5 489.27 698.5 DL
+478.272 698.5 473.272 698.5 DL 479.27 698.5 474.27 698.5 DL 484.27 698.5
+479.27 698.5 DL 489.27 698.5 484.27 698.5 DL 489.27 687.5 489.27 697.5
+DL 478.272 687.5 473.272 687.5 DL 479.27 687.5 474.27 687.5 DL 484.27
+687.5 479.27 687.5 DL 489.27 687.5 484.27 687.5 DL 490.936 688.5 490.936
+698.5 DL 490.936 687.5 490.936 697.5 DL F4(CSI)476.603 695 Q 506.934
+688.5 506.934 698.5 DL 495.936 698.5 490.936 698.5 DL 496.934 698.5
+491.934 698.5 DL 501.934 698.5 496.934 698.5 DL 506.934 698.5 501.934
+698.5 DL 506.934 687.5 506.934 697.5 DL 495.936 687.5 490.936 687.5 DL
+496.934 687.5 491.934 687.5 DL 501.934 687.5 496.934 687.5 DL 506.934
+687.5 501.934 687.5 DL 508.6 688.5 508.6 698.5 DL 508.6 687.5 508.6
+697.5 DL 524.598 688.5 524.598 698.5 DL 513.6 698.5 508.6 698.5 DL
+514.598 698.5 509.598 698.5 DL 519.598 698.5 514.598 698.5 DL 524.598
+698.5 519.598 698.5 DL 524.598 687.5 524.598 697.5 DL 513.6 687.5 508.6
+687.5 DL 514.598 687.5 509.598 687.5 DL 519.598 687.5 514.598 687.5 DL
+524.598 687.5 519.598 687.5 DL F0 13.774(2t)496.435 696 S(.)-5.499 E F1
+(P)185 712 Q F2(s)-2 3 M 202.862 704.5 202.862 714.5 DL 202.862 703.5
+202.862 713.5 DL 218.86 704.5 218.86 714.5 DL 207.862 714.5 202.862
+714.5 DL 208.86 714.5 203.86 714.5 DL 213.86 714.5 208.86 714.5 DL
+218.86 714.5 213.86 714.5 DL 218.86 703.5 218.86 713.5 DL 207.862 703.5
+202.862 703.5 DL 208.86 703.5 203.86 703.5 DL 213.86 703.5 208.86 703.5
+DL 218.86 703.5 213.86 703.5 DL 220.526 704.5 220.526 714.5 DL 220.526
+703.5 220.526 713.5 DL 236.524 704.5 236.524 714.5 DL 225.526 714.5
+220.526 714.5 DL 226.524 714.5 221.524 714.5 DL 231.524 714.5 226.524
+714.5 DL 236.524 714.5 231.524 714.5 DL 236.524 703.5 236.524 713.5 DL
+225.526 703.5 220.526 703.5 DL 226.524 703.5 221.524 703.5 DL 231.524
+703.5 226.524 703.5 DL 236.524 703.5 231.524 703.5 DL F0 -5.834 7.999
+(=1 3)194.722 712 T F3<ae>1.666 E F0(Report)2.5 E F1(xterm)2.5 E F0
+(windo)2.5 E 2.5(wp)-.25 G 388.08 704.5 388.08 714.5 DL 388.08 703.5
+388.08 713.5 DL(osition as)347.52 712 Q 404.078 704.5 404.078 714.5 DL
+393.08 714.5 388.08 714.5 DL 394.078 714.5 389.078 714.5 DL 399.078
+714.5 394.078 714.5 DL 404.078 714.5 399.078 714.5 DL 404.078 703.5
+404.078 713.5 DL 393.08 703.5 388.08 703.5 DL 394.078 703.5 389.078
+703.5 DL 399.078 703.5 394.078 703.5 DL 404.078 703.5 399.078 703.5 DL
+405.744 704.5 405.744 714.5 DL 405.744 703.5 405.744 713.5 DL F4(CSI)
+391.411 711 Q 421.742 704.5 421.742 714.5 DL 410.744 714.5 405.744 714.5
+DL 411.742 714.5 406.742 714.5 DL 416.742 714.5 411.742 714.5 DL 421.742
+714.5 416.742 714.5 DL 421.742 703.5 421.742 713.5 DL 410.744 703.5
+405.744 703.5 DL 411.742 703.5 406.742 703.5 DL 416.742 703.5 411.742
+703.5 DL 421.742 703.5 416.742 703.5 DL 423.408 704.5 423.408 714.5 DL
+423.408 703.5 423.408 713.5 DL 439.406 704.5 439.406 714.5 DL 428.408
+714.5 423.408 714.5 DL 429.406 714.5 424.406 714.5 DL 434.406 714.5
+429.406 714.5 DL 439.406 714.5 434.406 714.5 DL 439.406 703.5 439.406
+713.5 DL 428.408 703.5 423.408 703.5 DL 429.406 703.5 424.406 703.5 DL
+434.406 703.5 429.406 703.5 DL 439.406 703.5 434.406 703.5 DL F0 13.774
+(3;)411.243 712 S 445.512 704.5 445.512 714.5 DL 445.512 703.5 445.512
+713.5 DL F1(x)441.072 712 Q 461.51 704.5 461.51 714.5 DL 450.512 714.5
+445.512 714.5 DL 451.51 714.5 446.51 714.5 DL 456.51 714.5 451.51 714.5
+DL 461.51 714.5 456.51 714.5 DL 461.51 703.5 461.51 713.5 DL 450.512
+703.5 445.512 703.5 DL 451.51 703.5 446.51 703.5 DL 456.51 703.5 451.51
+703.5 DL 461.51 703.5 456.51 703.5 DL F0(;)452.121 712 Q 467.616 704.5
+467.616 714.5 DL 467.616 703.5 467.616 713.5 DL F1(y)463.176 712 Q
+483.614 704.5 483.614 714.5 DL 472.616 714.5 467.616 714.5 DL 473.614
+714.5 468.614 714.5 DL 478.614 714.5 473.614 714.5 DL 483.614 714.5
+478.614 714.5 DL 483.614 703.5 483.614 713.5 DL 472.616 703.5 467.616
+703.5 DL 473.614 703.5 468.614 703.5 DL 478.614 703.5 473.614 703.5 DL
+483.614 703.5 478.614 703.5 DL F0(t)474.225 712 Q F1(P)185 728 Q F2(s)-2
+3 M 202.862 720.5 202.862 730.5 DL 202.862 719.5 202.862 729.5 DL 218.86
+720.5 218.86 730.5 DL 207.862 730.5 202.862 730.5 DL 208.86 730.5 203.86
+730.5 DL 213.86 730.5 208.86 730.5 DL 218.86 730.5 213.86 730.5 DL
+218.86 719.5 218.86 729.5 DL 207.862 719.5 202.862 719.5 DL 208.86 719.5
+203.86 719.5 DL 213.86 719.5 208.86 719.5 DL 218.86 719.5 213.86 719.5
+DL 220.526 720.5 220.526 730.5 DL 220.526 719.5 220.526 729.5 DL 236.524
+720.5 236.524 730.5 DL 225.526 730.5 220.526 730.5 DL 226.524 730.5
+221.524 730.5 DL 231.524 730.5 226.524 730.5 DL 236.524 730.5 231.524
+730.5 DL 236.524 719.5 236.524 729.5 DL 225.526 719.5 220.526 719.5 DL
+226.524 719.5 221.524 719.5 DL 231.524 719.5 226.524 719.5 DL 236.524
+719.5 231.524 719.5 DL F0 -5.834 7.999(=1 4)194.722 728 T F3<ae>1.666 E
+F0(Report)2.5 E F1(xterm)2.5 E F0(windo)2.5 E 2.5(wi)-.25 G 2.5(np)-2.5
+G(ix)-2.5 E 389.87 720.5 389.87 730.5 DL 389.87 719.5 389.87 729.5 DL
+(els as)365.43 728 Q 405.868 720.5 405.868 730.5 DL 394.87 730.5 389.87
+730.5 DL 395.868 730.5 390.868 730.5 DL 400.868 730.5 395.868 730.5 DL
+405.868 730.5 400.868 730.5 DL 405.868 719.5 405.868 729.5 DL 394.87
+719.5 389.87 719.5 DL 395.868 719.5 390.868 719.5 DL 400.868 719.5
+395.868 719.5 DL 405.868 719.5 400.868 719.5 DL 409.2 720.5 409.2 730.5
+DL 409.2 719.5 409.2 729.5 DL F4(CSI)393.201 727 Q 425.198 720.5 425.198
+730.5 DL 414.2 730.5 409.2 730.5 DL 415.198 730.5 410.198 730.5 DL
+420.198 730.5 415.198 730.5 DL 425.198 730.5 420.198 730.5 DL 425.198
+719.5 425.198 729.5 DL 414.2 719.5 409.2 719.5 DL 415.198 719.5 410.198
+719.5 DL 420.198 719.5 415.198 719.5 DL 425.198 719.5 420.198 719.5 DL
+428.53 720.5 428.53 730.5 DL 428.53 719.5 428.53 729.5 DL 444.528 720.5
+444.528 730.5 DL 433.53 730.5 428.53 730.5 DL 434.528 730.5 429.528
+730.5 DL 439.528 730.5 434.528 730.5 DL 444.528 730.5 439.528 730.5 DL
+444.528 719.5 444.528 729.5 DL 433.53 719.5 428.53 719.5 DL 434.528
+719.5 429.528 719.5 DL 439.528 719.5 434.528 719.5 DL 444.528 719.5
+439.528 719.5 DL F0 15.44(4;)414.699 728 S 474.526 720.5 474.526 730.5
+DL 474.526 719.5 474.526 729.5 DL F1(height)447.86 728 Q 490.524 720.5
+490.524 730.5 DL 479.526 730.5 474.526 730.5 DL 480.524 730.5 475.524
+730.5 DL 485.524 730.5 480.524 730.5 DL 490.524 730.5 485.524 730.5 DL
+490.524 719.5 490.524 729.5 DL 479.526 719.5 474.526 719.5 DL 480.524
+719.5 475.524 719.5 DL 485.524 719.5 480.524 719.5 DL 490.524 719.5
+485.524 719.5 DL F0(;)481.135 728 Q 517.752 720.5 517.752 730.5 DL
+517.752 719.5 517.752 729.5 DL F1(width)493.856 728 Q 533.75 720.5
+533.75 730.5 DL 522.752 730.5 517.752 730.5 DL 523.75 730.5 518.75 730.5
+DL 528.75 730.5 523.75 730.5 DL 533.75 730.5 528.75 730.5 DL 533.75
+719.5 533.75 729.5 DL 522.752 719.5 517.752 719.5 DL 523.75 719.5 518.75
+719.5 DL 528.75 719.5 523.75 719.5 DL 533.75 719.5 528.75 719.5 DL F0(t)
+524.361 728 Q(11)301 772 Q EP
+%%Page: 12 12
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E/F1 10/Times-Italic@0 SF(P)185 88 Q/F2 8/Times-Italic@0 SF(s)-2
+3 M .4 LW 218.364 80.5 218.364 90.5 DL 218.364 79.5 218.364 89.5 DL
+234.362 80.5 234.362 90.5 DL 223.364 90.5 218.364 90.5 DL 224.362 90.5
+219.362 90.5 DL 229.362 90.5 224.362 90.5 DL 234.362 90.5 229.362 90.5
+DL 234.362 79.5 234.362 89.5 DL 223.364 79.5 218.364 79.5 DL 224.362
+79.5 219.362 79.5 DL 229.362 79.5 224.362 79.5 DL 234.362 79.5 229.362
+79.5 DL 236.028 80.5 236.028 90.5 DL 236.028 79.5 236.028 89.5 DL F0
+15.75(=1)202.473 88 S 252.026 80.5 252.026 90.5 DL 241.028 90.5 236.028
+90.5 DL 242.026 90.5 237.026 90.5 DL 247.026 90.5 242.026 90.5 DL
+252.026 90.5 247.026 90.5 DL 252.026 79.5 252.026 89.5 DL 241.028 79.5
+236.028 79.5 DL 242.026 79.5 237.026 79.5 DL 247.026 79.5 242.026 79.5
+DL 252.026 79.5 247.026 79.5 DL(8)241.527 88 Q/F3 10/Symbol SF<ae>17.416
+E F0 7.751(Report the size of the te)10.251 F 7.75
+(xt area in characters as)-.15 F 180 96.5 180 106.5 DL 180 95.5 180
+105.5 DL 195.998 96.5 195.998 106.5 DL 185 106.5 180 106.5 DL 185.998
+106.5 180.998 106.5 DL 190.998 106.5 185.998 106.5 DL 195.998 106.5
+190.998 106.5 DL 195.998 95.5 195.998 105.5 DL 185 95.5 180 95.5 DL
+185.998 95.5 180.998 95.5 DL 190.998 95.5 185.998 95.5 DL 195.998 95.5
+190.998 95.5 DL 199.33 96.5 199.33 106.5 DL 199.33 95.5 199.33 105.5 DL
+/F4 6/Times-Roman@0 SF(CSI)183.331 103 Q 215.328 96.5 215.328 106.5 DL
+204.33 106.5 199.33 106.5 DL 205.328 106.5 200.328 106.5 DL 210.328
+106.5 205.328 106.5 DL 215.328 106.5 210.328 106.5 DL 215.328 95.5
+215.328 105.5 DL 204.33 95.5 199.33 95.5 DL 205.328 95.5 200.328 95.5 DL
+210.328 95.5 205.328 95.5 DL 215.328 95.5 210.328 95.5 DL 218.66 96.5
+218.66 106.5 DL 218.66 95.5 218.66 105.5 DL 234.658 96.5 234.658 106.5
+DL 223.66 106.5 218.66 106.5 DL 224.658 106.5 219.658 106.5 DL 229.658
+106.5 224.658 106.5 DL 234.658 106.5 229.658 106.5 DL 234.658 95.5
+234.658 105.5 DL 223.66 95.5 218.66 95.5 DL 224.658 95.5 219.658 95.5 DL
+229.658 95.5 224.658 95.5 DL 234.658 95.5 229.658 95.5 DL F0 15.44(8;)
+204.829 104 S 264.656 96.5 264.656 106.5 DL 264.656 95.5 264.656 105.5
+DL F1(height)237.99 104 Q 280.654 96.5 280.654 106.5 DL 269.656 106.5
+264.656 106.5 DL 270.654 106.5 265.654 106.5 DL 275.654 106.5 270.654
+106.5 DL 280.654 106.5 275.654 106.5 DL 280.654 95.5 280.654 105.5 DL
+269.656 95.5 264.656 95.5 DL 270.654 95.5 265.654 95.5 DL 275.654 95.5
+270.654 95.5 DL 280.654 95.5 275.654 95.5 DL F0(;)271.265 104 Q 307.882
+96.5 307.882 106.5 DL 307.882 95.5 307.882 105.5 DL F1(width)283.986 104
+Q 323.88 96.5 323.88 106.5 DL 312.882 106.5 307.882 106.5 DL 313.88
+106.5 308.88 106.5 DL 318.88 106.5 313.88 106.5 DL 323.88 106.5 318.88
+106.5 DL 323.88 95.5 323.88 105.5 DL 312.882 95.5 307.882 95.5 DL 313.88
+95.5 308.88 95.5 DL 318.88 95.5 313.88 95.5 DL 323.88 95.5 318.88 95.5
+DL F0(t)314.491 104 Q F1(P)185 120 Q F2(s)-2 3 M 221.064 112.5 221.064
+122.5 DL 221.064 111.5 221.064 121.5 DL 237.062 112.5 237.062 122.5 DL
+226.064 122.5 221.064 122.5 DL 227.062 122.5 222.062 122.5 DL 232.062
+122.5 227.062 122.5 DL 237.062 122.5 232.062 122.5 DL 237.062 111.5
+237.062 121.5 DL 226.064 111.5 221.064 111.5 DL 227.062 111.5 222.062
+111.5 DL 232.062 111.5 227.062 111.5 DL 237.062 111.5 232.062 111.5 DL
+238.728 112.5 238.728 122.5 DL 238.728 111.5 238.728 121.5 DL F0 17.1
+(=1)203.823 120 S 254.726 112.5 254.726 122.5 DL 243.728 122.5 238.728
+122.5 DL 244.726 122.5 239.726 122.5 DL 249.726 122.5 244.726 122.5 DL
+254.726 122.5 249.726 122.5 DL 254.726 111.5 254.726 121.5 DL 243.728
+111.5 238.728 111.5 DL 244.726 111.5 239.726 111.5 DL 249.726 111.5
+244.726 111.5 DL 254.726 111.5 249.726 111.5 DL(9)244.227 120 Q F3<ae>
+18.766 E F0 9.102(Report the size of the screen in characters as)11.601
+F 180 128.5 180 138.5 DL 180 127.5 180 137.5 DL 195.998 128.5 195.998
+138.5 DL 185 138.5 180 138.5 DL 185.998 138.5 180.998 138.5 DL 190.998
+138.5 185.998 138.5 DL 195.998 138.5 190.998 138.5 DL 195.998 127.5
+195.998 137.5 DL 185 127.5 180 127.5 DL 185.998 127.5 180.998 127.5 DL
+190.998 127.5 185.998 127.5 DL 195.998 127.5 190.998 127.5 DL 199.33
+128.5 199.33 138.5 DL 199.33 127.5 199.33 137.5 DL F4(CSI)183.331 135 Q
+215.328 128.5 215.328 138.5 DL 204.33 138.5 199.33 138.5 DL 205.328
+138.5 200.328 138.5 DL 210.328 138.5 205.328 138.5 DL 215.328 138.5
+210.328 138.5 DL 215.328 127.5 215.328 137.5 DL 204.33 127.5 199.33
+127.5 DL 205.328 127.5 200.328 127.5 DL 210.328 127.5 205.328 127.5 DL
+215.328 127.5 210.328 127.5 DL 218.66 128.5 218.66 138.5 DL 218.66 127.5
+218.66 137.5 DL 234.658 128.5 234.658 138.5 DL 223.66 138.5 218.66 138.5
+DL 224.658 138.5 219.658 138.5 DL 229.658 138.5 224.658 138.5 DL 234.658
+138.5 229.658 138.5 DL 234.658 127.5 234.658 137.5 DL 223.66 127.5
+218.66 127.5 DL 224.658 127.5 219.658 127.5 DL 229.658 127.5 224.658
+127.5 DL 234.658 127.5 229.658 127.5 DL F0 15.44(9;)204.829 136 S
+264.656 128.5 264.656 138.5 DL 264.656 127.5 264.656 137.5 DL F1(height)
+237.99 136 Q 280.654 128.5 280.654 138.5 DL 269.656 138.5 264.656 138.5
+DL 270.654 138.5 265.654 138.5 DL 275.654 138.5 270.654 138.5 DL 280.654
+138.5 275.654 138.5 DL 280.654 127.5 280.654 137.5 DL 269.656 127.5
+264.656 127.5 DL 270.654 127.5 265.654 127.5 DL 275.654 127.5 270.654
+127.5 DL 280.654 127.5 275.654 127.5 DL F0(;)271.265 136 Q 307.882 128.5
+307.882 138.5 DL 307.882 127.5 307.882 137.5 DL F1(width)283.986 136 Q
+323.88 128.5 323.88 138.5 DL 312.882 138.5 307.882 138.5 DL 313.88 138.5
+308.88 138.5 DL 318.88 138.5 313.88 138.5 DL 323.88 138.5 318.88 138.5
+DL 323.88 127.5 323.88 137.5 DL 312.882 127.5 307.882 127.5 DL 313.88
+127.5 308.88 127.5 DL 318.88 127.5 313.88 127.5 DL 323.88 127.5 318.88
+127.5 DL F0(t)314.491 136 Q F1(P)185 152 Q F2(s)-2 3 M 202.862 144.5
+202.862 154.5 DL 202.862 143.5 202.862 153.5 DL 218.86 144.5 218.86
+154.5 DL 207.862 154.5 202.862 154.5 DL 208.86 154.5 203.86 154.5 DL
+213.86 154.5 208.86 154.5 DL 218.86 154.5 213.86 154.5 DL 218.86 143.5
+218.86 153.5 DL 207.862 143.5 202.862 143.5 DL 208.86 143.5 203.86 143.5
+DL 213.86 143.5 208.86 143.5 DL 218.86 143.5 213.86 143.5 DL 220.526
+144.5 220.526 154.5 DL 220.526 143.5 220.526 153.5 DL 236.524 144.5
+236.524 154.5 DL 225.526 154.5 220.526 154.5 DL 226.524 154.5 221.524
+154.5 DL 231.524 154.5 226.524 154.5 DL 236.524 154.5 231.524 154.5 DL
+236.524 143.5 236.524 153.5 DL 225.526 143.5 220.526 143.5 DL 226.524
+143.5 221.524 143.5 DL 231.524 143.5 226.524 143.5 DL 236.524 143.5
+231.524 143.5 DL F0 -5.834 7.999(=2 0)194.722 152 T F3<ae>1.666 E F0
+(Report)2.5 E F1(xterm)2.5 E F0(windo)2.5 E(w')-.25 E 2.5(si)-.55 G
+401.68 144.5 401.68 154.5 DL 401.68 143.5 401.68 153.5 DL(con label as)
+351.97 152 Q 417.678 144.5 417.678 154.5 DL 406.68 154.5 401.68 154.5 DL
+407.678 154.5 402.678 154.5 DL 412.678 154.5 407.678 154.5 DL 417.678
+154.5 412.678 154.5 DL 417.678 143.5 417.678 153.5 DL 406.68 143.5
+401.68 143.5 DL 407.678 143.5 402.678 143.5 DL 412.678 143.5 407.678
+143.5 DL 417.678 143.5 412.678 143.5 DL 421.01 144.5 421.01 154.5 DL
+421.01 143.5 421.01 153.5 DL F4(OSC)403.844 151 Q 437.008 144.5 437.008
+154.5 DL 426.01 154.5 421.01 154.5 DL 427.008 154.5 422.008 154.5 DL
+432.008 154.5 427.008 154.5 DL 437.008 154.5 432.008 154.5 DL 437.008
+143.5 437.008 153.5 DL 426.01 143.5 421.01 143.5 DL 427.008 143.5
+422.008 143.5 DL 432.008 143.5 427.008 143.5 DL 437.008 143.5 432.008
+143.5 DL F0(L)425.954 152 Q 462.006 144.5 462.006 154.5 DL 462.006 143.5
+462.006 153.5 DL F1(label)440.34 152 Q 478.004 144.5 478.004 154.5 DL
+467.006 154.5 462.006 154.5 DL 468.004 154.5 463.004 154.5 DL 473.004
+154.5 468.004 154.5 DL 478.004 154.5 473.004 154.5 DL 478.004 143.5
+478.004 153.5 DL 467.006 143.5 462.006 143.5 DL 468.004 143.5 463.004
+143.5 DL 473.004 143.5 468.004 143.5 DL 478.004 143.5 473.004 143.5 DL
+F4(ST)466.504 151 Q F1(P)185 168 Q F2(s)-2 3 M 202.862 160.5 202.862
+170.5 DL 202.862 159.5 202.862 169.5 DL 218.86 160.5 218.86 170.5 DL
+207.862 170.5 202.862 170.5 DL 208.86 170.5 203.86 170.5 DL 213.86 170.5
+208.86 170.5 DL 218.86 170.5 213.86 170.5 DL 218.86 159.5 218.86 169.5
+DL 207.862 159.5 202.862 159.5 DL 208.86 159.5 203.86 159.5 DL 213.86
+159.5 208.86 159.5 DL 218.86 159.5 213.86 159.5 DL 220.526 160.5 220.526
+170.5 DL 220.526 159.5 220.526 169.5 DL 236.524 160.5 236.524 170.5 DL
+225.526 170.5 220.526 170.5 DL 226.524 170.5 221.524 170.5 DL 231.524
+170.5 226.524 170.5 DL 236.524 170.5 231.524 170.5 DL 236.524 159.5
+236.524 169.5 DL 225.526 159.5 220.526 159.5 DL 226.524 159.5 221.524
+159.5 DL 231.524 159.5 226.524 159.5 DL 236.524 159.5 231.524 159.5 DL
+F0 -5.834 7.999(=2 1)194.722 168 T F3<ae>1.666 E F0(Report)2.5 E F1
+(xterm)2.5 E F0(windo)2.5 E(w')-.25 E 2.5(st)-.55 G 378.08 160.5 378.08
+170.5 DL 378.08 159.5 378.08 169.5 DL(itle as)351.97 168 Q 394.078 160.5
+394.078 170.5 DL 383.08 170.5 378.08 170.5 DL 384.078 170.5 379.078
+170.5 DL 389.078 170.5 384.078 170.5 DL 394.078 170.5 389.078 170.5 DL
+394.078 159.5 394.078 169.5 DL 383.08 159.5 378.08 159.5 DL 384.078
+159.5 379.078 159.5 DL 389.078 159.5 384.078 159.5 DL 394.078 159.5
+389.078 159.5 DL 397.41 160.5 397.41 170.5 DL 397.41 159.5 397.41 169.5
+DL F4(OSC)380.244 167 Q 413.408 160.5 413.408 170.5 DL 402.41 170.5
+397.41 170.5 DL 403.408 170.5 398.408 170.5 DL 408.408 170.5 403.408
+170.5 DL 413.408 170.5 408.408 170.5 DL 413.408 159.5 413.408 169.5 DL
+402.41 159.5 397.41 159.5 DL 403.408 159.5 398.408 159.5 DL 408.408
+159.5 403.408 159.5 DL 413.408 159.5 408.408 159.5 DL F0(l)404.019 168 Q
+433.966 160.5 433.966 170.5 DL 433.966 159.5 433.966 169.5 DL F1(title)
+416.74 168 Q 449.964 160.5 449.964 170.5 DL 438.966 170.5 433.966 170.5
+DL 439.964 170.5 434.964 170.5 DL 444.964 170.5 439.964 170.5 DL 449.964
+170.5 444.964 170.5 DL 449.964 159.5 449.964 169.5 DL 438.966 159.5
+433.966 159.5 DL 439.964 159.5 434.964 159.5 DL 444.964 159.5 439.964
+159.5 DL 449.964 159.5 444.964 159.5 DL F4(ST)438.464 167 Q F1(P)185 184
+Q F2(s)-2 3 M 208.502 176.5 208.502 186.5 DL 208.502 175.5 208.502 185.5
+DL 224.5 176.5 224.5 186.5 DL 213.502 186.5 208.502 186.5 DL 214.5 186.5
+209.5 186.5 DL 219.5 186.5 214.5 186.5 DL 224.5 186.5 219.5 186.5 DL
+224.5 175.5 224.5 185.5 DL 213.502 175.5 208.502 175.5 DL 214.5 175.5
+209.5 175.5 DL 219.5 175.5 214.5 175.5 DL 224.5 175.5 219.5 175.5 DL
+226.166 176.5 226.166 186.5 DL 226.166 175.5 226.166 185.5 DL F0 5.499
+(>= 2)194.722 184 R 242.164 176.5 242.164 186.5 DL 231.166 186.5 226.166
+186.5 DL 232.164 186.5 227.164 186.5 DL 237.164 186.5 232.164 186.5 DL
+242.164 186.5 237.164 186.5 DL 242.164 175.5 242.164 185.5 DL 231.166
+175.5 226.166 175.5 DL 232.164 175.5 227.164 175.5 DL 237.164 175.5
+232.164 175.5 DL 242.164 175.5 237.164 175.5 DL(4)231.665 184 Q F3<ae>
+9.665 E F0(Resize to)2.5 E F1(P)2.5 E F2(s)-2 3 M F0(lines \(DECSLPP\))
+2.5 -3 M 72 192.5 72 202.5 DL 72 191.5 72 201.5 DL 87.998 192.5 87.998
+202.5 DL 77 202.5 72 202.5 DL 77.998 202.5 72.998 202.5 DL 82.998 202.5
+77.998 202.5 DL 87.998 202.5 82.998 202.5 DL 87.998 191.5 87.998 201.5
+DL 77 191.5 72 191.5 DL 77.998 191.5 72.998 191.5 DL 82.998 191.5 77.998
+191.5 DL 87.998 191.5 82.998 191.5 DL F4(CSI)75.331 199 Q F1(P)4.997 1 M
+97.664 192.5 97.664 202.5 DL 97.664 191.5 97.664 201.5 DL F2(t)93.774
+203 Q 113.662 192.5 113.662 202.5 DL 102.664 202.5 97.664 202.5 DL
+103.662 202.5 98.662 202.5 DL 108.662 202.5 103.662 202.5 DL 113.662
+202.5 108.662 202.5 DL 113.662 191.5 113.662 201.5 DL 102.664 191.5
+97.664 191.5 DL 103.662 191.5 98.662 191.5 DL 108.662 191.5 103.662
+191.5 DL 113.662 191.5 108.662 191.5 DL F0(;)104.273 200 Q F1(P)8.275 E
+123.328 192.5 123.328 202.5 DL 123.328 191.5 123.328 201.5 DL F2(l)
+119.438 203 Q 139.326 192.5 139.326 202.5 DL 128.328 202.5 123.328 202.5
+DL 129.326 202.5 124.326 202.5 DL 134.326 202.5 129.326 202.5 DL 139.326
+202.5 134.326 202.5 DL 139.326 191.5 139.326 201.5 DL 128.328 191.5
+123.328 191.5 DL 129.326 191.5 124.326 191.5 DL 134.326 191.5 129.326
+191.5 DL 139.326 191.5 134.326 191.5 DL F0(;)129.937 200 Q F1(P)8.275 E
+150.768 192.5 150.768 202.5 DL 150.768 191.5 150.768 201.5 DL F2(b)
+145.102 203 Q 166.766 192.5 166.766 202.5 DL 155.768 202.5 150.768 202.5
+DL 156.766 202.5 151.766 202.5 DL 161.766 202.5 156.766 202.5 DL 166.766
+202.5 161.766 202.5 DL 166.766 191.5 166.766 201.5 DL 155.768 191.5
+150.768 191.5 DL 156.766 191.5 151.766 191.5 DL 161.766 191.5 156.766
+191.5 DL 166.766 191.5 161.766 191.5 DL F0(;)157.377 200 Q F1(P)8.275 E
+177.32 192.5 177.32 202.5 DL 177.32 191.5 177.32 201.5 DL F2(r)172.542
+203 Q 193.318 192.5 193.318 202.5 DL 182.32 202.5 177.32 202.5 DL
+183.318 202.5 178.318 202.5 DL 188.318 202.5 183.318 202.5 DL 193.318
+202.5 188.318 202.5 DL 193.318 191.5 193.318 201.5 DL 182.32 191.5
+177.32 191.5 DL 183.318 191.5 178.318 191.5 DL 188.318 191.5 183.318
+191.5 DL 193.318 191.5 188.318 191.5 DL 194.984 192.5 194.984 202.5 DL
+194.984 191.5 194.984 201.5 DL 210.982 192.5 210.982 202.5 DL 199.984
+202.5 194.984 202.5 DL 200.982 202.5 195.982 202.5 DL 205.982 202.5
+200.982 202.5 DL 210.982 202.5 205.982 202.5 DL 210.982 191.5 210.982
+201.5 DL 199.984 191.5 194.984 191.5 DL 200.982 191.5 195.982 191.5 DL
+205.982 191.5 200.982 191.5 DL 210.982 191.5 205.982 191.5 DL F0 12.389
+<b477>183.654 200 S(Enable Filter Rectangle \(DECEFR\))180 216 Q -.15
+(Pa)180 232 S(rameters are [top;left;bottom;right].).15 E 2.256
+(De\214nes the coordinates of a \214lter rectangle and acti)180 248 R
+-.25(va)-.25 G 2.255(tes it.).25 F(An)7.255 E 2.255
+(ytime the locator is)-.15 F 1.404
+(detected outside of the \214lter rectangle, an outside rectangle e)180
+264 R -.15(ve)-.25 G 1.405(nt is generated and the).15 F 2.137
+(rectangle is disabled.)180 280 R 2.136(Filter rectangles are al)7.137 F
+-.1(wa)-.1 G 2.136(ys treated as "one-shot" e).1 F -.15(ve)-.25 G 4.636
+(nts. An).15 F(y)-.15 E .933(parameters that are omitted def)180 296 R
+.933(ault to the current locator position.)-.1 F .933
+(If all parameters are)5.933 F .293(omitted, an)180 312 R 2.793(yl)-.15
+G .293(ocator motion will be reported.)-2.793 F .292(DECELR al)5.292 F
+-.1(wa)-.1 G .292(ys cancels an).1 F 2.792(yp)-.15 G(re)-2.792 E -.2(vo)
+-.25 G .292(us rect-).2 F(angle de\214nition.)180 328 Q 72 336.5 72
+346.5 DL 72 335.5 72 345.5 DL 87.998 336.5 87.998 346.5 DL 77 346.5 72
+346.5 DL 77.998 346.5 72.998 346.5 DL 82.998 346.5 77.998 346.5 DL
+87.998 346.5 82.998 346.5 DL 87.998 335.5 87.998 345.5 DL 77 335.5 72
+335.5 DL 77.998 335.5 72.998 335.5 DL 82.998 335.5 77.998 335.5 DL
+87.998 335.5 82.998 335.5 DL F4(CSI)75.331 343 Q F1(P)4.997 1 M 98.552
+336.5 98.552 346.5 DL 98.552 335.5 98.552 345.5 DL F2(s)93.774 347 Q
+114.55 336.5 114.55 346.5 DL 103.552 346.5 98.552 346.5 DL 104.55 346.5
+99.55 346.5 DL 109.55 346.5 104.55 346.5 DL 114.55 346.5 109.55 346.5 DL
+114.55 335.5 114.55 345.5 DL 103.552 335.5 98.552 335.5 DL 104.55 335.5
+99.55 335.5 DL 109.55 335.5 104.55 335.5 DL 114.55 335.5 109.55 335.5 DL
+F0 70.949(xR)104.051 344 S(equest T)-70.949 E(erminal P)-.7 E
+(arameters \(DECREQTP)-.15 E(ARM\))-.92 E 72 352.5 72 362.5 DL 72 351.5
+72 361.5 DL 87.998 352.5 87.998 362.5 DL 77 362.5 72 362.5 DL 77.998
+362.5 72.998 362.5 DL 82.998 362.5 77.998 362.5 DL 87.998 362.5 82.998
+362.5 DL 87.998 351.5 87.998 361.5 DL 77 351.5 72 351.5 DL 77.998 351.5
+72.998 351.5 DL 82.998 351.5 77.998 351.5 DL 87.998 351.5 82.998 351.5
+DL F4(CSI)75.331 359 Q F1(P)4.997 1 M 98.552 352.5 98.552 362.5 DL
+98.552 351.5 98.552 361.5 DL F2(s)93.774 363 Q 114.55 352.5 114.55 362.5
+DL 103.552 362.5 98.552 362.5 DL 104.55 362.5 99.55 362.5 DL 109.55
+362.5 104.55 362.5 DL 114.55 362.5 109.55 362.5 DL 114.55 351.5 114.55
+361.5 DL 103.552 351.5 98.552 351.5 DL 104.55 351.5 99.55 351.5 DL
+109.55 351.5 104.55 351.5 DL 114.55 351.5 109.55 351.5 DL F0(;)105.161
+360 Q F1(P)8.275 E 125.992 352.5 125.992 362.5 DL 125.992 351.5 125.992
+361.5 DL F2(u)120.326 363 Q 141.99 352.5 141.99 362.5 DL 130.992 362.5
+125.992 362.5 DL 131.99 362.5 126.99 362.5 DL 136.99 362.5 131.99 362.5
+DL 141.99 362.5 136.99 362.5 DL 141.99 351.5 141.99 361.5 DL 130.992
+351.5 125.992 351.5 DL 131.99 351.5 126.99 351.5 DL 136.99 351.5 131.99
+351.5 DL 141.99 351.5 136.99 351.5 DL 143.656 352.5 143.656 362.5 DL
+143.656 351.5 143.656 361.5 DL 159.654 352.5 159.654 362.5 DL 148.656
+362.5 143.656 362.5 DL 149.654 362.5 144.654 362.5 DL 154.654 362.5
+149.654 362.5 DL 159.654 362.5 154.654 362.5 DL 159.654 351.5 159.654
+361.5 DL 148.656 351.5 143.656 351.5 DL 149.654 351.5 144.654 351.5 DL
+154.654 351.5 149.654 351.5 DL 159.654 351.5 154.654 351.5 DL F0 -3.933
+13.779(\264z E)132.326 360 T(nable Locator Reporting \(DECELR\))-13.779
+E -1.11(Va)180 376 S(lid v)1.11 E(alues for the \214rst parameter:)-.25
+E F1(P)185 392 Q F2(s)-2 3 M 202.862 384.5 202.862 394.5 DL 202.862
+383.5 202.862 393.5 DL 218.86 384.5 218.86 394.5 DL 207.862 394.5
+202.862 394.5 DL 208.86 394.5 203.86 394.5 DL 213.86 394.5 208.86 394.5
+DL 218.86 394.5 213.86 394.5 DL 218.86 383.5 218.86 393.5 DL 207.862
+383.5 202.862 383.5 DL 208.86 383.5 203.86 383.5 DL 213.86 383.5 208.86
+383.5 DL 218.86 383.5 213.86 383.5 DL F0 7.999(=0)194.722 392 S F3<ae>
+1.666 E F0(Locator disabled \(def)2.5 E(ault\))-.1 E F1(P)185 408 Q F2
+(s)-2 3 M 202.862 400.5 202.862 410.5 DL 202.862 399.5 202.862 409.5 DL
+218.86 400.5 218.86 410.5 DL 207.862 410.5 202.862 410.5 DL 208.86 410.5
+203.86 410.5 DL 213.86 410.5 208.86 410.5 DL 218.86 410.5 213.86 410.5
+DL 218.86 399.5 218.86 409.5 DL 207.862 399.5 202.862 399.5 DL 208.86
+399.5 203.86 399.5 DL 213.86 399.5 208.86 399.5 DL 218.86 399.5 213.86
+399.5 DL F0 7.999(=1)194.722 408 S F3<ae>1.666 E F0(Locator enabled)2.5
+E F1(P)185 424 Q F2(s)-2 3 M 202.862 416.5 202.862 426.5 DL 202.862
+415.5 202.862 425.5 DL 218.86 416.5 218.86 426.5 DL 207.862 426.5
+202.862 426.5 DL 208.86 426.5 203.86 426.5 DL 213.86 426.5 208.86 426.5
+DL 218.86 426.5 213.86 426.5 DL 218.86 415.5 218.86 425.5 DL 207.862
+415.5 202.862 415.5 DL 208.86 415.5 203.86 415.5 DL 213.86 415.5 208.86
+415.5 DL 218.86 415.5 213.86 415.5 DL F0 7.999(=2)194.722 424 S F3<ae>
+1.666 E F0(Locator enabled for one report, then disabled)2.5 E(The seco\
+nd parameter speci\214es the coordinate unit for locator reports.)180
+440 Q -1.11(Va)180 456 S(lid v)1.11 E(alues for the second parameter:)
+-.25 E F1(P)185 472 Q F2(u)-2 3 M 203.75 464.5 203.75 474.5 DL 203.75
+463.5 203.75 473.5 DL 219.748 464.5 219.748 474.5 DL 208.75 474.5 203.75
+474.5 DL 209.748 474.5 204.748 474.5 DL 214.748 474.5 209.748 474.5 DL
+219.748 474.5 214.748 474.5 DL 219.748 463.5 219.748 473.5 DL 208.75
+463.5 203.75 463.5 DL 209.748 463.5 204.748 463.5 DL 214.748 463.5
+209.748 463.5 DL 219.748 463.5 214.748 463.5 DL F0 -8.833 7.999(=0 o)
+195.61 472 T 2.5(ro)-7.999 G(mitted)-2.5 E F3<ae>2.5 E F0(def)2.5 E
+(ault to character cells)-.1 E F1(P)185 488 Q F2(u)-2 3 M 203.75 480.5
+203.75 490.5 DL 203.75 479.5 203.75 489.5 DL 219.748 480.5 219.748 490.5
+DL 208.75 490.5 203.75 490.5 DL 209.748 490.5 204.748 490.5 DL 214.748
+490.5 209.748 490.5 DL 219.748 490.5 214.748 490.5 DL 219.748 479.5
+219.748 489.5 DL 208.75 479.5 203.75 479.5 DL 209.748 479.5 204.748
+479.5 DL 214.748 479.5 209.748 479.5 DL 219.748 479.5 214.748 479.5 DL
+F0 7.999(=1)195.61 488 S F3<ae>1.666 E F0(de)2.5 E(vice ph)-.25 E
+(ysical pix)-.05 E(els)-.15 E F1(P)185 504 Q F2(u)-2 3 M 203.75 496.5
+203.75 506.5 DL 203.75 495.5 203.75 505.5 DL 219.748 496.5 219.748 506.5
+DL 208.75 506.5 203.75 506.5 DL 209.748 506.5 204.748 506.5 DL 214.748
+506.5 209.748 506.5 DL 219.748 506.5 214.748 506.5 DL 219.748 495.5
+219.748 505.5 DL 208.75 495.5 203.75 495.5 DL 209.748 495.5 204.748
+495.5 DL 214.748 495.5 209.748 495.5 DL 219.748 495.5 214.748 495.5 DL
+F0 7.999(=2)195.61 504 S F3<ae>1.666 E F0(character cells)2.5 E 72 512.5
+72 522.5 DL 72 511.5 72 521.5 DL 87.998 512.5 87.998 522.5 DL 77 522.5
+72 522.5 DL 77.998 522.5 72.998 522.5 DL 82.998 522.5 77.998 522.5 DL
+87.998 522.5 82.998 522.5 DL 87.998 511.5 87.998 521.5 DL 77 511.5 72
+511.5 DL 77.998 511.5 72.998 511.5 DL 82.998 511.5 77.998 511.5 DL
+87.998 511.5 82.998 511.5 DL F4(CSI)75.331 519 Q F1(P)4.997 1 M 101.216
+512.5 101.216 522.5 DL 101.216 511.5 101.216 521.5 DL F2(m)93.774 523 Q
+117.214 512.5 117.214 522.5 DL 106.216 522.5 101.216 522.5 DL 107.214
+522.5 102.214 522.5 DL 112.214 522.5 107.214 522.5 DL 117.214 522.5
+112.214 522.5 DL 117.214 511.5 117.214 521.5 DL 106.216 511.5 101.216
+511.5 DL 107.214 511.5 102.214 511.5 DL 112.214 511.5 107.214 511.5 DL
+117.214 511.5 112.214 511.5 DL 118.88 512.5 118.88 522.5 DL 118.88 511.5
+118.88 521.5 DL 134.878 512.5 134.878 522.5 DL 123.88 522.5 118.88 522.5
+DL 124.878 522.5 119.878 522.5 DL 129.878 522.5 124.878 522.5 DL 134.878
+522.5 129.878 522.5 DL 134.878 511.5 134.878 521.5 DL 123.88 511.5
+118.88 511.5 DL 124.878 511.5 119.878 511.5 DL 129.878 511.5 124.878
+511.5 DL 134.878 511.5 129.878 511.5 DL F0 21.023 13.599(\264{ S)107.55
+520 T(elect Locator Ev)-13.599 E(ents \(DECSLE\))-.15 E -1.11(Va)180 536
+S(lid v)1.11 E(alues for the \214rst \(and an)-.25 E 2.5(ya)-.15 G
+(dditional parameters\) are:)-2.5 E F1(P)185 552 Q F2(s)-2 3 M 202.862
+544.5 202.862 554.5 DL 202.862 543.5 202.862 553.5 DL 218.86 544.5
+218.86 554.5 DL 207.862 554.5 202.862 554.5 DL 208.86 554.5 203.86 554.5
+DL 213.86 554.5 208.86 554.5 DL 218.86 554.5 213.86 554.5 DL 218.86
+543.5 218.86 553.5 DL 207.862 543.5 202.862 543.5 DL 208.86 543.5 203.86
+543.5 DL 213.86 543.5 208.86 543.5 DL 218.86 543.5 213.86 543.5 DL F0
+7.999(=0)194.722 552 S F3<ae>1.666 E F0(only respond to e)2.5 E
+(xplicit host requests \(DECRQLP\))-.15 E(\(def)212.5 568 Q
+(ault\) also cancels an)-.1 E 2.5<798c>-.15 G(lter rectangle)-2.5 E F1
+(P)185 584 Q F2(s)-2 3 M 202.862 576.5 202.862 586.5 DL 202.862 575.5
+202.862 585.5 DL 218.86 576.5 218.86 586.5 DL 207.862 586.5 202.862
+586.5 DL 208.86 586.5 203.86 586.5 DL 213.86 586.5 208.86 586.5 DL
+218.86 586.5 213.86 586.5 DL 218.86 575.5 218.86 585.5 DL 207.862 575.5
+202.862 575.5 DL 208.86 575.5 203.86 575.5 DL 213.86 575.5 208.86 575.5
+DL 218.86 575.5 213.86 575.5 DL F0 7.999(=1)194.722 584 S F3<ae>1.666 E
+F0(report b)2.5 E(utton do)-.2 E(wn transitions)-.25 E F1(P)185 600 Q F2
+(s)-2 3 M 202.862 592.5 202.862 602.5 DL 202.862 591.5 202.862 601.5 DL
+218.86 592.5 218.86 602.5 DL 207.862 602.5 202.862 602.5 DL 208.86 602.5
+203.86 602.5 DL 213.86 602.5 208.86 602.5 DL 218.86 602.5 213.86 602.5
+DL 218.86 591.5 218.86 601.5 DL 207.862 591.5 202.862 591.5 DL 208.86
+591.5 203.86 591.5 DL 213.86 591.5 208.86 591.5 DL 218.86 591.5 213.86
+591.5 DL F0 7.999(=2)194.722 600 S F3<ae>1.666 E F0(do not report b)2.5
+E(utton do)-.2 E(wn transitions)-.25 E F1(P)185 616 Q F2(s)-2 3 M
+202.862 608.5 202.862 618.5 DL 202.862 607.5 202.862 617.5 DL 218.86
+608.5 218.86 618.5 DL 207.862 618.5 202.862 618.5 DL 208.86 618.5 203.86
+618.5 DL 213.86 618.5 208.86 618.5 DL 218.86 618.5 213.86 618.5 DL
+218.86 607.5 218.86 617.5 DL 207.862 607.5 202.862 607.5 DL 208.86 607.5
+203.86 607.5 DL 213.86 607.5 208.86 607.5 DL 218.86 607.5 213.86 607.5
+DL F0 7.999(=3)194.722 616 S F3<ae>1.666 E F0(report b)2.5 E
+(utton up transitions)-.2 E F1(P)185 632 Q F2(s)-2 3 M 202.862 624.5
+202.862 634.5 DL 202.862 623.5 202.862 633.5 DL 218.86 624.5 218.86
+634.5 DL 207.862 634.5 202.862 634.5 DL 208.86 634.5 203.86 634.5 DL
+213.86 634.5 208.86 634.5 DL 218.86 634.5 213.86 634.5 DL 218.86 623.5
+218.86 633.5 DL 207.862 623.5 202.862 623.5 DL 208.86 623.5 203.86 623.5
+DL 213.86 623.5 208.86 623.5 DL 218.86 623.5 213.86 623.5 DL F0 7.999
+(=4)194.722 632 S F3<ae>1.666 E F0(do not report b)2.5 E
+(utton up transitions)-.2 E 72 640.5 72 650.5 DL 72 639.5 72 649.5 DL
+87.998 640.5 87.998 650.5 DL 77 650.5 72 650.5 DL 77.998 650.5 72.998
+650.5 DL 82.998 650.5 77.998 650.5 DL 87.998 650.5 82.998 650.5 DL
+87.998 639.5 87.998 649.5 DL 77 639.5 72 639.5 DL 77.998 639.5 72.998
+639.5 DL 82.998 639.5 77.998 639.5 DL 87.998 639.5 82.998 639.5 DL F4
+(CSI)75.331 647 Q F1(P)4.997 1 M 98.552 640.5 98.552 650.5 DL 98.552
+639.5 98.552 649.5 DL F2(s)93.774 651 Q 114.55 640.5 114.55 650.5 DL
+103.552 650.5 98.552 650.5 DL 104.55 650.5 99.55 650.5 DL 109.55 650.5
+104.55 650.5 DL 114.55 650.5 109.55 650.5 DL 114.55 639.5 114.55 649.5
+DL 103.552 639.5 98.552 639.5 DL 104.55 639.5 99.55 639.5 DL 109.55
+639.5 104.55 639.5 DL 114.55 639.5 109.55 639.5 DL 116.216 640.5 116.216
+650.5 DL 116.216 639.5 116.216 649.5 DL 132.214 640.5 132.214 650.5 DL
+121.216 650.5 116.216 650.5 DL 122.214 650.5 117.214 650.5 DL 127.214
+650.5 122.214 650.5 DL 132.214 650.5 127.214 650.5 DL 132.214 639.5
+132.214 649.5 DL 121.216 639.5 116.216 639.5 DL 122.214 639.5 117.214
+639.5 DL 127.214 639.5 122.214 639.5 DL 132.214 639.5 127.214 639.5 DL
+F0 22.287 14.999(\264| R)104.886 648 T
+(equest Locator Position \(DECRQLP\))-14.999 E -1.11(Va)180 664 S(lid v)
+1.11 E(alues for the parameter are:)-.25 E F1(P)185 680 Q F2(s)-2 3 M
+202.862 672.5 202.862 682.5 DL 202.862 671.5 202.862 681.5 DL 218.86
+672.5 218.86 682.5 DL 207.862 682.5 202.862 682.5 DL 208.86 682.5 203.86
+682.5 DL 213.86 682.5 208.86 682.5 DL 218.86 682.5 213.86 682.5 DL
+218.86 671.5 218.86 681.5 DL 207.862 671.5 202.862 671.5 DL 208.86 671.5
+203.86 671.5 DL 213.86 671.5 208.86 671.5 DL 218.86 671.5 213.86 671.5
+DL F0 7.999(=0)194.722 680 S 2.5(,1o)-.834 G 2.5(ro)-2.5 G(mitted)-2.5 E
+F3<ae>2.5 E F0(transmit a single DECLRP locator report)2.5 E 2.91(If Lo\
+cator Reporting has been enabled by a DECELR, xterm will respond with a)
+180 712 R .5(DECLRP Locator Report.)180 728 R .5
+(This report is also generated on b)5.5 F .5(utton up and do)-.2 F .5
+(wn e)-.25 F -.15(ve)-.25 G .5(nts if).15 F(12)301 772 Q EP
+%%Page: 13 13
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E(the)180 88 Q 2.587(yh)-.15 G -2.25 -.2(av e)-2.587 H .088(been\
+ enabled with a DECSLE, or when the locator is detected outside of a \
+\214lter)2.787 F(rectangle, if \214lter rectangles ha)180 104 Q .3 -.15
+(ve b)-.2 H(een enabled with a DECEFR.).15 E .4 LW 197.37 128.5 197.37
+138.5 DL 197.37 127.5 197.37 137.5 DL/F1 10/Symbol SF<ae>185 136 Q
+213.368 128.5 213.368 138.5 DL 202.37 138.5 197.37 138.5 DL 203.368
+138.5 198.368 138.5 DL 208.368 138.5 203.368 138.5 DL 213.368 138.5
+208.368 138.5 DL 213.368 127.5 213.368 137.5 DL 202.37 127.5 197.37
+127.5 DL 203.368 127.5 198.368 127.5 DL 208.368 127.5 203.368 127.5 DL
+213.368 127.5 208.368 127.5 DL/F2 6/Times-Roman@0 SF(CSI)200.701 135 Q
+/F3 10/Times-Italic@0 SF(P)4.997 1 M 224.362 128.5 224.362 138.5 DL
+224.362 127.5 224.362 137.5 DL/F4 8/Times-Italic@0 SF(e)219.144 139 Q
+240.36 128.5 240.36 138.5 DL 229.362 138.5 224.362 138.5 DL 230.36 138.5
+225.36 138.5 DL 235.36 138.5 230.36 138.5 DL 240.36 138.5 235.36 138.5
+DL 240.36 127.5 240.36 137.5 DL 229.362 127.5 224.362 127.5 DL 230.36
+127.5 225.36 127.5 DL 235.36 127.5 230.36 127.5 DL 240.36 127.5 235.36
+127.5 DL F0(;)230.971 136 Q F3(P)8.275 E 251.802 128.5 251.802 138.5 DL
+251.802 127.5 251.802 137.5 DL F4(b)246.136 139 Q 267.8 128.5 267.8
+138.5 DL 256.802 138.5 251.802 138.5 DL 257.8 138.5 252.8 138.5 DL 262.8
+138.5 257.8 138.5 DL 267.8 138.5 262.8 138.5 DL 267.8 127.5 267.8 137.5
+DL 256.802 127.5 251.802 127.5 DL 257.8 127.5 252.8 127.5 DL 262.8 127.5
+257.8 127.5 DL 267.8 127.5 262.8 127.5 DL F0(;)258.411 136 Q F3(P)8.275
+E 278.354 128.5 278.354 138.5 DL 278.354 127.5 278.354 137.5 DL F4(r)
+273.576 139 Q 294.352 128.5 294.352 138.5 DL 283.354 138.5 278.354 138.5
+DL 284.352 138.5 279.352 138.5 DL 289.352 138.5 284.352 138.5 DL 294.352
+138.5 289.352 138.5 DL 294.352 127.5 294.352 137.5 DL 283.354 127.5
+278.354 127.5 DL 284.352 127.5 279.352 127.5 DL 289.352 127.5 284.352
+127.5 DL 294.352 127.5 289.352 127.5 DL F0(;)284.963 136 Q F3(P)8.275 E
+305.346 128.5 305.346 138.5 DL 305.346 127.5 305.346 137.5 DL F4(c)
+300.128 139 Q 321.344 128.5 321.344 138.5 DL 310.346 138.5 305.346 138.5
+DL 311.344 138.5 306.344 138.5 DL 316.344 138.5 311.344 138.5 DL 321.344
+138.5 316.344 138.5 DL 321.344 127.5 321.344 137.5 DL 310.346 127.5
+305.346 127.5 DL 311.344 127.5 306.344 127.5 DL 316.344 127.5 311.344
+127.5 DL 321.344 127.5 316.344 127.5 DL F0(;)311.955 136 Q F3(P)8.275 E
+332.786 128.5 332.786 138.5 DL 332.786 127.5 332.786 137.5 DL F4(p)
+327.12 139 Q 348.784 128.5 348.784 138.5 DL 337.786 138.5 332.786 138.5
+DL 338.784 138.5 333.784 138.5 DL 343.784 138.5 338.784 138.5 DL 348.784
+138.5 343.784 138.5 DL 348.784 127.5 348.784 137.5 DL 337.786 127.5
+332.786 127.5 DL 338.784 127.5 333.784 127.5 DL 343.784 127.5 338.784
+127.5 DL 348.784 127.5 343.784 127.5 DL 352.116 128.5 352.116 138.5 DL
+352.116 127.5 352.116 137.5 DL 368.114 128.5 368.114 138.5 DL 357.116
+138.5 352.116 138.5 DL 358.114 138.5 353.114 138.5 DL 363.114 138.5
+358.114 138.5 DL 368.114 138.5 363.114 138.5 DL 368.114 127.5 368.114
+137.5 DL 357.116 127.5 352.116 127.5 DL 358.114 127.5 353.114 127.5 DL
+363.114 127.5 358.114 127.5 DL 368.114 127.5 363.114 127.5 DL F0 11.83
+(&w)336.895 136 S -.15(Pa)180 168 S(rameters are [e).15 E -.15(ve)-.25 G
+(nt;b).15 E(utton;ro)-.2 E(w;column;page].)-.25 E -1.11(Va)180 184 S
+(lid v)1.11 E(alues for the e)-.25 E -.15(ve)-.25 G(nt:).15 E F3(P)185
+200 Q F4(e)-2 3 M 203.302 192.5 203.302 202.5 DL 203.302 191.5 203.302
+201.5 DL 219.3 192.5 219.3 202.5 DL 208.302 202.5 203.302 202.5 DL 209.3
+202.5 204.3 202.5 DL 214.3 202.5 209.3 202.5 DL 219.3 202.5 214.3 202.5
+DL 219.3 191.5 219.3 201.5 DL 208.302 191.5 203.302 191.5 DL 209.3 191.5
+204.3 191.5 DL 214.3 191.5 209.3 191.5 DL 219.3 191.5 214.3 191.5 DL F0
+7.999(=0)195.162 200 S F1<ae>1.666 E F0(locator una)2.5 E -.25(va)-.2 G
+(ilable - no other parameters sent).25 E F3(P)185 216 Q F4(e)-2 3 M
+203.302 208.5 203.302 218.5 DL 203.302 207.5 203.302 217.5 DL 219.3
+208.5 219.3 218.5 DL 208.302 218.5 203.302 218.5 DL 209.3 218.5 204.3
+218.5 DL 214.3 218.5 209.3 218.5 DL 219.3 218.5 214.3 218.5 DL 219.3
+207.5 219.3 217.5 DL 208.302 207.5 203.302 207.5 DL 209.3 207.5 204.3
+207.5 DL 214.3 207.5 209.3 207.5 DL 219.3 207.5 214.3 207.5 DL F0 7.999
+(=1)195.162 216 S F1<ae>1.666 E F0(request - xterm recei)2.5 E -.15(ve)
+-.25 G 2.5(daD).15 G(ECRQLP)-2.5 E F3(P)185 232 Q F4(e)-2 3 M 203.302
+224.5 203.302 234.5 DL 203.302 223.5 203.302 233.5 DL 219.3 224.5 219.3
+234.5 DL 208.302 234.5 203.302 234.5 DL 209.3 234.5 204.3 234.5 DL 214.3
+234.5 209.3 234.5 DL 219.3 234.5 214.3 234.5 DL 219.3 223.5 219.3 233.5
+DL 208.302 223.5 203.302 223.5 DL 209.3 223.5 204.3 223.5 DL 214.3 223.5
+209.3 223.5 DL 219.3 223.5 214.3 223.5 DL F0 7.999(=2)195.162 232 S F1
+<ae>1.666 E F0(left b)2.5 E(utton do)-.2 E(wn)-.25 E F3(P)185 248 Q F4
+(e)-2 3 M 203.302 240.5 203.302 250.5 DL 203.302 239.5 203.302 249.5 DL
+219.3 240.5 219.3 250.5 DL 208.302 250.5 203.302 250.5 DL 209.3 250.5
+204.3 250.5 DL 214.3 250.5 209.3 250.5 DL 219.3 250.5 214.3 250.5 DL
+219.3 239.5 219.3 249.5 DL 208.302 239.5 203.302 239.5 DL 209.3 239.5
+204.3 239.5 DL 214.3 239.5 209.3 239.5 DL 219.3 239.5 214.3 239.5 DL F0
+7.999(=3)195.162 248 S F1<ae>1.666 E F0(left b)2.5 E(utton up)-.2 E F3
+(P)185 264 Q F4(e)-2 3 M 203.302 256.5 203.302 266.5 DL 203.302 255.5
+203.302 265.5 DL 219.3 256.5 219.3 266.5 DL 208.302 266.5 203.302 266.5
+DL 209.3 266.5 204.3 266.5 DL 214.3 266.5 209.3 266.5 DL 219.3 266.5
+214.3 266.5 DL 219.3 255.5 219.3 265.5 DL 208.302 255.5 203.302 255.5 DL
+209.3 255.5 204.3 255.5 DL 214.3 255.5 209.3 255.5 DL 219.3 255.5 214.3
+255.5 DL F0 7.999(=4)195.162 264 S F1<ae>1.666 E F0(middle b)2.5 E
+(utton do)-.2 E(wn)-.25 E F3(P)185 280 Q F4(e)-2 3 M 203.302 272.5
+203.302 282.5 DL 203.302 271.5 203.302 281.5 DL 219.3 272.5 219.3 282.5
+DL 208.302 282.5 203.302 282.5 DL 209.3 282.5 204.3 282.5 DL 214.3 282.5
+209.3 282.5 DL 219.3 282.5 214.3 282.5 DL 219.3 271.5 219.3 281.5 DL
+208.302 271.5 203.302 271.5 DL 209.3 271.5 204.3 271.5 DL 214.3 271.5
+209.3 271.5 DL 219.3 271.5 214.3 271.5 DL F0 7.999(=5)195.162 280 S F1
+<ae>1.666 E F0(middle b)2.5 E(utton up)-.2 E F3(P)185 296 Q F4(e)-2 3 M
+203.302 288.5 203.302 298.5 DL 203.302 287.5 203.302 297.5 DL 219.3
+288.5 219.3 298.5 DL 208.302 298.5 203.302 298.5 DL 209.3 298.5 204.3
+298.5 DL 214.3 298.5 209.3 298.5 DL 219.3 298.5 214.3 298.5 DL 219.3
+287.5 219.3 297.5 DL 208.302 287.5 203.302 287.5 DL 209.3 287.5 204.3
+287.5 DL 214.3 287.5 209.3 287.5 DL 219.3 287.5 214.3 287.5 DL F0 7.999
+(=6)195.162 296 S F1<ae>1.666 E F0(right b)2.5 E(utton do)-.2 E(wn)-.25
+E F3(P)185 312 Q F4(e)-2 3 M 203.302 304.5 203.302 314.5 DL 203.302
+303.5 203.302 313.5 DL 219.3 304.5 219.3 314.5 DL 208.302 314.5 203.302
+314.5 DL 209.3 314.5 204.3 314.5 DL 214.3 314.5 209.3 314.5 DL 219.3
+314.5 214.3 314.5 DL 219.3 303.5 219.3 313.5 DL 208.302 303.5 203.302
+303.5 DL 209.3 303.5 204.3 303.5 DL 214.3 303.5 209.3 303.5 DL 219.3
+303.5 214.3 303.5 DL F0 7.999(=7)195.162 312 S F1<ae>1.666 E F0(right b)
+2.5 E(utton up)-.2 E F3(P)185 328 Q F4(e)-2 3 M 203.302 320.5 203.302
+330.5 DL 203.302 319.5 203.302 329.5 DL 219.3 320.5 219.3 330.5 DL
+208.302 330.5 203.302 330.5 DL 209.3 330.5 204.3 330.5 DL 214.3 330.5
+209.3 330.5 DL 219.3 330.5 214.3 330.5 DL 219.3 319.5 219.3 329.5 DL
+208.302 319.5 203.302 319.5 DL 209.3 319.5 204.3 319.5 DL 214.3 319.5
+209.3 319.5 DL 219.3 319.5 214.3 319.5 DL F0 7.999(=8)195.162 328 S F1
+<ae>1.666 E F0(M4 b)2.5 E(utton do)-.2 E(wn)-.25 E F3(P)185 344 Q F4(e)
+-2 3 M 203.302 336.5 203.302 346.5 DL 203.302 335.5 203.302 345.5 DL
+219.3 336.5 219.3 346.5 DL 208.302 346.5 203.302 346.5 DL 209.3 346.5
+204.3 346.5 DL 214.3 346.5 209.3 346.5 DL 219.3 346.5 214.3 346.5 DL
+219.3 335.5 219.3 345.5 DL 208.302 335.5 203.302 335.5 DL 209.3 335.5
+204.3 335.5 DL 214.3 335.5 209.3 335.5 DL 219.3 335.5 214.3 335.5 DL F0
+7.999(=9)195.162 344 S F1<ae>1.666 E F0(M4 b)2.5 E(utton up)-.2 E F3(P)
+185 360 Q F4(e)-2 3 M 203.302 352.5 203.302 362.5 DL 203.302 351.5
+203.302 361.5 DL 219.3 352.5 219.3 362.5 DL 208.302 362.5 203.302 362.5
+DL 209.3 362.5 204.3 362.5 DL 214.3 362.5 209.3 362.5 DL 219.3 362.5
+214.3 362.5 DL 219.3 351.5 219.3 361.5 DL 208.302 351.5 203.302 351.5 DL
+209.3 351.5 204.3 351.5 DL 214.3 351.5 209.3 351.5 DL 219.3 351.5 214.3
+351.5 DL 220.966 352.5 220.966 362.5 DL 220.966 351.5 220.966 361.5 DL
+236.964 352.5 236.964 362.5 DL 225.966 362.5 220.966 362.5 DL 226.964
+362.5 221.964 362.5 DL 231.964 362.5 226.964 362.5 DL 236.964 362.5
+231.964 362.5 DL 236.964 351.5 236.964 361.5 DL 225.966 351.5 220.966
+351.5 DL 226.964 351.5 221.964 351.5 DL 231.964 351.5 226.964 351.5 DL
+236.964 351.5 231.964 351.5 DL F0 -5.834 7.999(=1 0)195.162 360 T F1<ae>
+1.666 E F0(locator outside \214lter rectangle)2.5 E -.74(``)180 376 S
+-.2(bu).74 G(tton').2 E 2.5('p)-.74 G
+(arameter is a bitmask indicating which b)-2.5 E(uttons are pressed:)-.2
+E F3(P)185 392 Q F4(b)-2 3 M 203.75 384.5 203.75 394.5 DL 203.75 383.5
+203.75 393.5 DL 219.748 384.5 219.748 394.5 DL 208.75 394.5 203.75 394.5
+DL 209.748 394.5 204.748 394.5 DL 214.748 394.5 209.748 394.5 DL 219.748
+394.5 214.748 394.5 DL 219.748 383.5 219.748 393.5 DL 208.75 383.5
+203.75 383.5 DL 209.748 383.5 204.748 383.5 DL 214.748 383.5 209.748
+383.5 DL 219.748 383.5 214.748 383.5 DL F0 7.999(=0)195.61 392 S F1<ae>
+1.666 E F0(no b)2.5 E(uttons do)-.2 E(wn)-.25 E F3(P)185 408 Q F4(b)-2 3
+M 205.89 400.5 205.89 410.5 DL 205.89 399.5 205.89 409.5 DL 221.888
+400.5 221.888 410.5 DL 210.89 410.5 205.89 410.5 DL 211.888 410.5
+206.888 410.5 DL 216.888 410.5 211.888 410.5 DL 221.888 410.5 216.888
+410.5 DL 221.888 399.5 221.888 409.5 DL 210.89 399.5 205.89 399.5 DL
+211.888 399.5 206.888 399.5 DL 216.888 399.5 211.888 399.5 DL 221.888
+399.5 216.888 399.5 DL F0 7.999(&1)195.61 408 S F1<ae>1.666 E F0
+(right b)2.5 E(utton do)-.2 E(wn)-.25 E F3(P)185 424 Q F4(b)-2 3 M
+205.89 416.5 205.89 426.5 DL 205.89 415.5 205.89 425.5 DL 221.888 416.5
+221.888 426.5 DL 210.89 426.5 205.89 426.5 DL 211.888 426.5 206.888
+426.5 DL 216.888 426.5 211.888 426.5 DL 221.888 426.5 216.888 426.5 DL
+221.888 415.5 221.888 425.5 DL 210.89 415.5 205.89 415.5 DL 211.888
+415.5 206.888 415.5 DL 216.888 415.5 211.888 415.5 DL 221.888 415.5
+216.888 415.5 DL F0 7.999(&2)195.61 424 S F1<ae>1.666 E F0(middle b)2.5
+E(utton do)-.2 E(wn)-.25 E F3(P)185 440 Q F4(b)-2 3 M 205.89 432.5
+205.89 442.5 DL 205.89 431.5 205.89 441.5 DL 221.888 432.5 221.888 442.5
+DL 210.89 442.5 205.89 442.5 DL 211.888 442.5 206.888 442.5 DL 216.888
+442.5 211.888 442.5 DL 221.888 442.5 216.888 442.5 DL 221.888 431.5
+221.888 441.5 DL 210.89 431.5 205.89 431.5 DL 211.888 431.5 206.888
+431.5 DL 216.888 431.5 211.888 431.5 DL 221.888 431.5 216.888 431.5 DL
+F0 7.999(&4)195.61 440 S F1<ae>1.666 E F0(left b)2.5 E(utton do)-.2 E
+(wn)-.25 E F3(P)185 456 Q F4(b)-2 3 M 205.89 448.5 205.89 458.5 DL
+205.89 447.5 205.89 457.5 DL 221.888 448.5 221.888 458.5 DL 210.89 458.5
+205.89 458.5 DL 211.888 458.5 206.888 458.5 DL 216.888 458.5 211.888
+458.5 DL 221.888 458.5 216.888 458.5 DL 221.888 447.5 221.888 457.5 DL
+210.89 447.5 205.89 447.5 DL 211.888 447.5 206.888 447.5 DL 216.888
+447.5 211.888 447.5 DL 221.888 447.5 216.888 447.5 DL F0 7.999(&8)195.61
+456 S F1<ae>1.666 E F0(M4 b)2.5 E(utton do)-.2 E(wn)-.25 E -.74(``)180
+472 S(ro).74 E(w')-.25 E 2.947('a)-.74 G .447(nd `)-2.947 F(`column')
+-.74 E 2.946('p)-.74 G .446
+(arameters are the coordinates of the locator position in the xterm)
+-2.946 F(windo)180 488 Q 1.3 -.65(w, e)-.25 H(ncoded as ASCII decimal.)
+.65 E(The `)180 504 Q(`page')-.74 E 2.5('p)-.74 G
+(arameter is not used by xterm, and will be omitted.)-2.5 E/F5 10
+/Times-Bold@0 SF(Operating System Contr)72 536 Q(ols)-.18 E 72 544.5 72
+554.5 DL 72 543.5 72 553.5 DL 87.998 544.5 87.998 554.5 DL 77 554.5 72
+554.5 DL 77.998 554.5 72.998 554.5 DL 82.998 554.5 77.998 554.5 DL
+87.998 554.5 82.998 554.5 DL 87.998 543.5 87.998 553.5 DL 77 543.5 72
+543.5 DL 77.998 543.5 72.998 543.5 DL 82.998 543.5 77.998 543.5 DL
+87.998 543.5 82.998 543.5 DL F2(OSC)74.164 551 Q F3(P)3.83 1 M 98.552
+544.5 98.552 554.5 DL 98.552 543.5 98.552 553.5 DL F4(s)93.774 555 Q
+114.55 544.5 114.55 554.5 DL 103.552 554.5 98.552 554.5 DL 104.55 554.5
+99.55 554.5 DL 109.55 554.5 104.55 554.5 DL 114.55 554.5 109.55 554.5 DL
+114.55 543.5 114.55 553.5 DL 103.552 543.5 98.552 543.5 DL 104.55 543.5
+99.55 543.5 DL 109.55 543.5 104.55 543.5 DL 114.55 543.5 109.55 543.5 DL
+F0(;)105.161 552 Q F3(P)8.275 E 124.216 544.5 124.216 554.5 DL 124.216
+543.5 124.216 553.5 DL F4(t)120.326 555 Q 140.214 544.5 140.214 554.5 DL
+129.216 554.5 124.216 554.5 DL 130.214 554.5 125.214 554.5 DL 135.214
+554.5 130.214 554.5 DL 140.214 554.5 135.214 554.5 DL 140.214 543.5
+140.214 553.5 DL 129.216 543.5 124.216 543.5 DL 130.214 543.5 125.214
+543.5 DL 135.214 543.5 130.214 543.5 DL 140.214 543.5 135.214 543.5 DL
+F2(ST)128.714 551 Q 72 560.5 72 570.5 DL 72 559.5 72 569.5 DL 87.998
+560.5 87.998 570.5 DL 77 570.5 72 570.5 DL 77.998 570.5 72.998 570.5 DL
+82.998 570.5 77.998 570.5 DL 87.998 570.5 82.998 570.5 DL 87.998 559.5
+87.998 569.5 DL 77 559.5 72 559.5 DL 77.998 559.5 72.998 559.5 DL 82.998
+559.5 77.998 559.5 DL 87.998 559.5 82.998 559.5 DL(OSC)74.164 567 Q F3
+(P)3.83 1 M 98.552 560.5 98.552 570.5 DL 98.552 559.5 98.552 569.5 DL F4
+(s)93.774 571 Q 114.55 560.5 114.55 570.5 DL 103.552 570.5 98.552 570.5
+DL 104.55 570.5 99.55 570.5 DL 109.55 570.5 104.55 570.5 DL 114.55 570.5
+109.55 570.5 DL 114.55 559.5 114.55 569.5 DL 103.552 559.5 98.552 559.5
+DL 104.55 559.5 99.55 559.5 DL 109.55 559.5 104.55 559.5 DL 114.55 559.5
+109.55 559.5 DL F0(;)105.161 568 Q F3(P)8.275 E 124.216 560.5 124.216
+570.5 DL 124.216 559.5 124.216 569.5 DL F4(t)120.326 571 Q 140.214 560.5
+140.214 570.5 DL 129.216 570.5 124.216 570.5 DL 130.214 570.5 125.214
+570.5 DL 135.214 570.5 130.214 570.5 DL 140.214 570.5 135.214 570.5 DL
+140.214 559.5 140.214 569.5 DL 129.216 559.5 124.216 559.5 DL 130.214
+559.5 125.214 559.5 DL 135.214 559.5 130.214 559.5 DL 140.214 559.5
+135.214 559.5 DL F2(BEL)126.548 567 Q F0 1.565(Set T)42.118 1 N -.15(ex)
+-.7 G 4.065(tP).15 G 4.065(arameters. F)-4.215 F 1.565
+(or colors and font, if)-.15 F F3(P)4.065 E F4(t)-2 3 M F0 1.566
+(is a "?", the control sequence elicits a)4.065 -3 N 2.363
+(response which consists of the control sequence which w)180 584 R 2.362
+(ould set the corresponding)-.1 F -.25(va)180 600 S 3.139(lue. The).25 F
+F3(dtterm)3.139 E F0 .639(control sequences allo)3.139 F 3.139(wy)-.25 G
+.639(ou to determine the icon name and windo)-3.139 F(w)-.25 E(title.)
+180 616 Q F3(P)185 632 Q F4(s)-2 3 M 202.862 624.5 202.862 634.5 DL
+202.862 623.5 202.862 633.5 DL 218.86 624.5 218.86 634.5 DL 207.862
+634.5 202.862 634.5 DL 208.86 634.5 203.86 634.5 DL 213.86 634.5 208.86
+634.5 DL 218.86 634.5 213.86 634.5 DL 218.86 623.5 218.86 633.5 DL
+207.862 623.5 202.862 623.5 DL 208.86 623.5 203.86 623.5 DL 213.86 623.5
+208.86 623.5 DL 218.86 623.5 213.86 623.5 DL F0 7.999(=0)194.722 632 S
+F1<ae>1.666 E F0(Change Icon Name and W)2.5 E(indo)-.4 E 2.5(wT)-.25 G
+(itle to)-2.85 E F3(P)2.5 E F4(t)-2 3 M F3(P)185 648 Q F4(s)-2 3 M
+202.862 640.5 202.862 650.5 DL 202.862 639.5 202.862 649.5 DL 218.86
+640.5 218.86 650.5 DL 207.862 650.5 202.862 650.5 DL 208.86 650.5 203.86
+650.5 DL 213.86 650.5 208.86 650.5 DL 218.86 650.5 213.86 650.5 DL
+218.86 639.5 218.86 649.5 DL 207.862 639.5 202.862 639.5 DL 208.86 639.5
+203.86 639.5 DL 213.86 639.5 208.86 639.5 DL 218.86 639.5 213.86 639.5
+DL F0 7.999(=1)194.722 648 S F1<ae>1.666 E F0(Change Icon Name to)2.5 E
+F3(P)2.5 E F4(t)-2 3 M F3(P)185 664 Q F4(s)-2 3 M 202.862 656.5 202.862
+666.5 DL 202.862 655.5 202.862 665.5 DL 218.86 656.5 218.86 666.5 DL
+207.862 666.5 202.862 666.5 DL 208.86 666.5 203.86 666.5 DL 213.86 666.5
+208.86 666.5 DL 218.86 666.5 213.86 666.5 DL 218.86 655.5 218.86 665.5
+DL 207.862 655.5 202.862 655.5 DL 208.86 655.5 203.86 655.5 DL 213.86
+655.5 208.86 655.5 DL 218.86 655.5 213.86 655.5 DL F0 7.999(=2)194.722
+664 S F1<ae>1.666 E F0(Change W)2.5 E(indo)-.4 E 2.5(wT)-.25 G(itle to)
+-2.85 E F3(P)2.5 E F4(t)-2 3 M F3(P)185 680 Q F4(s)-2 3 M 203.158 672.5
+203.158 682.5 DL 203.158 671.5 203.158 681.5 DL 219.156 672.5 219.156
+682.5 DL 208.158 682.5 203.158 682.5 DL 209.156 682.5 204.156 682.5 DL
+214.156 682.5 209.156 682.5 DL 219.156 682.5 214.156 682.5 DL 219.156
+671.5 219.156 681.5 DL 208.158 671.5 203.158 671.5 DL 209.156 671.5
+204.156 671.5 DL 214.156 671.5 209.156 671.5 DL 219.156 671.5 214.156
+671.5 DL F0 8.147(=3)194.87 680 S F1<ae>1.666 E F0 .148
+(Set X property on top-le)2.648 F -.15(ve)-.25 G 2.647(lw).15 G(indo)
+-2.647 E -.65(w.)-.25 G F3(P)3.297 E F4(t)-2 3 M F0 .147
+(should be in the form ")2.647 -3 N F3(pr)A(op=value)-.45 E F0(",)A
+(or just ")180 696 Q F3(pr)A(op)-.45 E F0 2.5("t)C 2.5(od)-2.5 G
+(elete the property)-2.5 E F3(P)185 712 Q F4(s)-2 3 M 203.12 704.5
+203.12 714.5 DL 203.12 703.5 203.12 713.5 DL 219.118 704.5 219.118 714.5
+DL 208.12 714.5 203.12 714.5 DL 209.118 714.5 204.118 714.5 DL 214.118
+714.5 209.118 714.5 DL 219.118 714.5 214.118 714.5 DL 219.118 703.5
+219.118 713.5 DL 208.12 703.5 203.12 703.5 DL 209.118 703.5 204.118
+703.5 DL 214.118 703.5 209.118 703.5 DL 219.118 703.5 214.118 703.5 DL
+F0 -8.962 8.128(=4 ;)194.851 712 T F3 2.629(c;n)-5.499 G(ame)-2.629 E F1
+<ae>2.63 E F0 .13(Change Color #)2.63 F F3(c)A F0(to)2.63 E F3(cname)
+2.63 E F0 5.13(.A)C .43 -.15(ny n)-5.13 H .13(umber of).15 F F3 2.63(cn)
+2.63 G(ame)-2.63 E F0 .13(pairs may be)2.63 F(gi)180 728 Q -.15(ve)-.25
+G(n.).15 E(13)301 772 Q EP
+%%Page: 14 14
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT100 Mode)
+310.52 E/F1 10/Times-Italic@0 SF(P)185 88 Q/F2 8/Times-Italic@0 SF(s)-2
+3 M .4 LW 203.53 80.5 203.53 90.5 DL 203.53 79.5 203.53 89.5 DL 219.528
+80.5 219.528 90.5 DL 208.53 90.5 203.53 90.5 DL 209.528 90.5 204.528
+90.5 DL 214.528 90.5 209.528 90.5 DL 219.528 90.5 214.528 90.5 DL
+219.528 79.5 219.528 89.5 DL 208.53 79.5 203.53 79.5 DL 209.528 79.5
+204.528 79.5 DL 214.528 79.5 209.528 79.5 DL 219.528 79.5 214.528 79.5
+DL 221.194 80.5 221.194 90.5 DL 221.194 79.5 221.194 89.5 DL 237.192
+80.5 237.192 90.5 DL 226.194 90.5 221.194 90.5 DL 227.192 90.5 222.192
+90.5 DL 232.192 90.5 227.192 90.5 DL 237.192 90.5 232.192 90.5 DL
+237.192 79.5 237.192 89.5 DL 226.194 79.5 221.194 79.5 DL 227.192 79.5
+222.192 79.5 DL 232.192 79.5 227.192 79.5 DL 237.192 79.5 232.192 79.5
+DL F0 -6.502 8.333(=1 0)195.056 88 T/F3 10/Symbol SF<ae>1.666 E F0 .333
+(Change color names starting with te)2.834 F .333(xt fore)-.15 F .333
+(ground to)-.15 F F1(P)2.833 E F2(t)-2 3 M F0 .333(\(a list of one or)
+2.833 -3 N 1.713(more color names or RGB speci\214cations, separated by\
+ semicolon, up to eight, as per)180 104 R F1(XP)180 120 Q(ar)-.8 E
+(seColor)-.1 E F0(\).)A F1(P)185 136 Q F2(s)-2 3 M 202.862 128.5 202.862
+138.5 DL 202.862 127.5 202.862 137.5 DL 218.86 128.5 218.86 138.5 DL
+207.862 138.5 202.862 138.5 DL 208.86 138.5 203.86 138.5 DL 213.86 138.5
+208.86 138.5 DL 218.86 138.5 213.86 138.5 DL 218.86 127.5 218.86 137.5
+DL 207.862 127.5 202.862 127.5 DL 208.86 127.5 203.86 127.5 DL 213.86
+127.5 208.86 127.5 DL 218.86 127.5 213.86 127.5 DL 220.526 128.5 220.526
+138.5 DL 220.526 127.5 220.526 137.5 DL 236.524 128.5 236.524 138.5 DL
+225.526 138.5 220.526 138.5 DL 226.524 138.5 221.524 138.5 DL 231.524
+138.5 226.524 138.5 DL 236.524 138.5 231.524 138.5 DL 236.524 127.5
+236.524 137.5 DL 225.526 127.5 220.526 127.5 DL 226.524 127.5 221.524
+127.5 DL 231.524 127.5 226.524 127.5 DL 236.524 127.5 231.524 127.5 DL
+F0 -5.834 7.999(=1 1)194.722 136 T F3<ae>1.666 E F0
+(Change colors starting with te)2.5 E(xt background to)-.15 E F1(P)2.5 E
+F2(t)-2 3 M F1(P)185 152 Q F2(s)-2 3 M 202.862 144.5 202.862 154.5 DL
+202.862 143.5 202.862 153.5 DL 218.86 144.5 218.86 154.5 DL 207.862
+154.5 202.862 154.5 DL 208.86 154.5 203.86 154.5 DL 213.86 154.5 208.86
+154.5 DL 218.86 154.5 213.86 154.5 DL 218.86 143.5 218.86 153.5 DL
+207.862 143.5 202.862 143.5 DL 208.86 143.5 203.86 143.5 DL 213.86 143.5
+208.86 143.5 DL 218.86 143.5 213.86 143.5 DL 220.526 144.5 220.526 154.5
+DL 220.526 143.5 220.526 153.5 DL 236.524 144.5 236.524 154.5 DL 225.526
+154.5 220.526 154.5 DL 226.524 154.5 221.524 154.5 DL 231.524 154.5
+226.524 154.5 DL 236.524 154.5 231.524 154.5 DL 236.524 143.5 236.524
+153.5 DL 225.526 143.5 220.526 143.5 DL 226.524 143.5 221.524 143.5 DL
+231.524 143.5 226.524 143.5 DL 236.524 143.5 231.524 143.5 DL F0 -5.834
+7.999(=1 2)194.722 152 T F3<ae>1.666 E F0
+(Change colors starting with te)2.5 E(xt cursor to)-.15 E F1(P)2.5 E F2
+(t)-2 3 M F1(P)185 168 Q F2(s)-2 3 M 202.862 160.5 202.862 170.5 DL
+202.862 159.5 202.862 169.5 DL 218.86 160.5 218.86 170.5 DL 207.862
+170.5 202.862 170.5 DL 208.86 170.5 203.86 170.5 DL 213.86 170.5 208.86
+170.5 DL 218.86 170.5 213.86 170.5 DL 218.86 159.5 218.86 169.5 DL
+207.862 159.5 202.862 159.5 DL 208.86 159.5 203.86 159.5 DL 213.86 159.5
+208.86 159.5 DL 218.86 159.5 213.86 159.5 DL 220.526 160.5 220.526 170.5
+DL 220.526 159.5 220.526 169.5 DL 236.524 160.5 236.524 170.5 DL 225.526
+170.5 220.526 170.5 DL 226.524 170.5 221.524 170.5 DL 231.524 170.5
+226.524 170.5 DL 236.524 170.5 231.524 170.5 DL 236.524 159.5 236.524
+169.5 DL 225.526 159.5 220.526 159.5 DL 226.524 159.5 221.524 159.5 DL
+231.524 159.5 226.524 159.5 DL 236.524 159.5 231.524 159.5 DL F0 -5.834
+7.999(=1 3)194.722 168 T F3<ae>1.666 E F0
+(Change colors starting with mouse fore)2.5 E(ground to)-.15 E F1(P)2.5
+E F2(t)-2 3 M F1(P)185 184 Q F2(s)-2 3 M 202.862 176.5 202.862 186.5 DL
+202.862 175.5 202.862 185.5 DL 218.86 176.5 218.86 186.5 DL 207.862
+186.5 202.862 186.5 DL 208.86 186.5 203.86 186.5 DL 213.86 186.5 208.86
+186.5 DL 218.86 186.5 213.86 186.5 DL 218.86 175.5 218.86 185.5 DL
+207.862 175.5 202.862 175.5 DL 208.86 175.5 203.86 175.5 DL 213.86 175.5
+208.86 175.5 DL 218.86 175.5 213.86 175.5 DL 220.526 176.5 220.526 186.5
+DL 220.526 175.5 220.526 185.5 DL 236.524 176.5 236.524 186.5 DL 225.526
+186.5 220.526 186.5 DL 226.524 186.5 221.524 186.5 DL 231.524 186.5
+226.524 186.5 DL 236.524 186.5 231.524 186.5 DL 236.524 175.5 236.524
+185.5 DL 225.526 175.5 220.526 175.5 DL 226.524 175.5 221.524 175.5 DL
+231.524 175.5 226.524 175.5 DL 236.524 175.5 231.524 175.5 DL F0 -5.834
+7.999(=1 4)194.722 184 T F3<ae>1.666 E F0
+(Change colors starting with mouse background to)2.5 E F1(P)2.5 E F2(t)
+-2 3 M F1(P)185 200 Q F2(s)-2 3 M 202.862 192.5 202.862 202.5 DL 202.862
+191.5 202.862 201.5 DL 218.86 192.5 218.86 202.5 DL 207.862 202.5
+202.862 202.5 DL 208.86 202.5 203.86 202.5 DL 213.86 202.5 208.86 202.5
+DL 218.86 202.5 213.86 202.5 DL 218.86 191.5 218.86 201.5 DL 207.862
+191.5 202.862 191.5 DL 208.86 191.5 203.86 191.5 DL 213.86 191.5 208.86
+191.5 DL 218.86 191.5 213.86 191.5 DL 220.526 192.5 220.526 202.5 DL
+220.526 191.5 220.526 201.5 DL 236.524 192.5 236.524 202.5 DL 225.526
+202.5 220.526 202.5 DL 226.524 202.5 221.524 202.5 DL 231.524 202.5
+226.524 202.5 DL 236.524 202.5 231.524 202.5 DL 236.524 191.5 236.524
+201.5 DL 225.526 191.5 220.526 191.5 DL 226.524 191.5 221.524 191.5 DL
+231.524 191.5 226.524 191.5 DL 236.524 191.5 231.524 191.5 DL F0 -5.834
+7.999(=1 5)194.722 200 T F3<ae>1.666 E F0(Change colors starting with T)
+2.5 E(ek fore)-.7 E(ground to)-.15 E F1(P)2.5 E F2(t)-2 3 M F1(P)185 216
+Q F2(s)-2 3 M 202.862 208.5 202.862 218.5 DL 202.862 207.5 202.862 217.5
+DL 218.86 208.5 218.86 218.5 DL 207.862 218.5 202.862 218.5 DL 208.86
+218.5 203.86 218.5 DL 213.86 218.5 208.86 218.5 DL 218.86 218.5 213.86
+218.5 DL 218.86 207.5 218.86 217.5 DL 207.862 207.5 202.862 207.5 DL
+208.86 207.5 203.86 207.5 DL 213.86 207.5 208.86 207.5 DL 218.86 207.5
+213.86 207.5 DL 220.526 208.5 220.526 218.5 DL 220.526 207.5 220.526
+217.5 DL 236.524 208.5 236.524 218.5 DL 225.526 218.5 220.526 218.5 DL
+226.524 218.5 221.524 218.5 DL 231.524 218.5 226.524 218.5 DL 236.524
+218.5 231.524 218.5 DL 236.524 207.5 236.524 217.5 DL 225.526 207.5
+220.526 207.5 DL 226.524 207.5 221.524 207.5 DL 231.524 207.5 226.524
+207.5 DL 236.524 207.5 231.524 207.5 DL F0 -5.834 7.999(=1 6)194.722 216
+T F3<ae>1.666 E F0(Change colors starting with T)2.5 E(ek background to)
+-.7 E F1(P)2.5 E F2(t)-2 3 M F1(P)185 232 Q F2(s)-2 3 M 202.862 224.5
+202.862 234.5 DL 202.862 223.5 202.862 233.5 DL 218.86 224.5 218.86
+234.5 DL 207.862 234.5 202.862 234.5 DL 208.86 234.5 203.86 234.5 DL
+213.86 234.5 208.86 234.5 DL 218.86 234.5 213.86 234.5 DL 218.86 223.5
+218.86 233.5 DL 207.862 223.5 202.862 223.5 DL 208.86 223.5 203.86 223.5
+DL 213.86 223.5 208.86 223.5 DL 218.86 223.5 213.86 223.5 DL 220.526
+224.5 220.526 234.5 DL 220.526 223.5 220.526 233.5 DL 236.524 224.5
+236.524 234.5 DL 225.526 234.5 220.526 234.5 DL 226.524 234.5 221.524
+234.5 DL 231.524 234.5 226.524 234.5 DL 236.524 234.5 231.524 234.5 DL
+236.524 223.5 236.524 233.5 DL 225.526 223.5 220.526 223.5 DL 226.524
+223.5 221.524 223.5 DL 231.524 223.5 226.524 223.5 DL 236.524 223.5
+231.524 223.5 DL F0 -5.834 7.999(=1 7)194.722 232 T F3<ae>1.666 E F0
+(Change colors starting with highlight to)2.5 E F1(P)2.5 E F2(t)-2 3 M
+F1(P)185 248 Q F2(s)-2 3 M 202.862 240.5 202.862 250.5 DL 202.862 239.5
+202.862 249.5 DL 218.86 240.5 218.86 250.5 DL 207.862 250.5 202.862
+250.5 DL 208.86 250.5 203.86 250.5 DL 213.86 250.5 208.86 250.5 DL
+218.86 250.5 213.86 250.5 DL 218.86 239.5 218.86 249.5 DL 207.862 239.5
+202.862 239.5 DL 208.86 239.5 203.86 239.5 DL 213.86 239.5 208.86 239.5
+DL 218.86 239.5 213.86 239.5 DL 220.526 240.5 220.526 250.5 DL 220.526
+239.5 220.526 249.5 DL 236.524 240.5 236.524 250.5 DL 225.526 250.5
+220.526 250.5 DL 226.524 250.5 221.524 250.5 DL 231.524 250.5 226.524
+250.5 DL 236.524 250.5 231.524 250.5 DL 236.524 239.5 236.524 249.5 DL
+225.526 239.5 220.526 239.5 DL 226.524 239.5 221.524 239.5 DL 231.524
+239.5 226.524 239.5 DL 236.524 239.5 231.524 239.5 DL F0 -5.834 7.999
+(=4 6)194.722 248 T F3<ae>1.666 E F0(Change Log File to)2.5 E F1(P)2.5 E
+F2(t)-2 3 M F0(\(normally disabled by a compile-time option\))2.5 -3 M
+F1(P)185 264 Q F2(s)-2 3 M 203.172 256.5 203.172 266.5 DL 203.172 255.5
+203.172 265.5 DL 219.17 256.5 219.17 266.5 DL 208.172 266.5 203.172
+266.5 DL 209.17 266.5 204.17 266.5 DL 214.17 266.5 209.17 266.5 DL
+219.17 266.5 214.17 266.5 DL 219.17 255.5 219.17 265.5 DL 208.172 255.5
+203.172 255.5 DL 209.17 255.5 204.17 255.5 DL 214.17 255.5 209.17 255.5
+DL 219.17 255.5 214.17 255.5 DL 220.836 256.5 220.836 266.5 DL 220.836
+255.5 220.836 265.5 DL 236.834 256.5 236.834 266.5 DL 225.836 266.5
+220.836 266.5 DL 226.834 266.5 221.834 266.5 DL 231.834 266.5 226.834
+266.5 DL 236.834 266.5 231.834 266.5 DL 236.834 255.5 236.834 265.5 DL
+225.836 255.5 220.836 255.5 DL 226.834 255.5 221.834 255.5 DL 231.834
+255.5 226.834 255.5 DL 236.834 255.5 231.834 255.5 DL F0 -6.144 8.154
+(=5 0)194.877 264 T F3<ae>1.666 E F0 .155(Set F)2.655 F .155(ont to)-.15
+F F1(P)2.655 E F2(t)-2 3 M F0(If)2.655 -3 M F1(P)2.655 E F2(t)-2 3 M F0
+(be)2.655 -3 M .155(gins with a "#", inde)-.15 F 2.654(xi)-.15 G 2.654
+(nt)-2.654 G .154(he font menu, relati)-2.654 F .454 -.15(ve \()-.25 H
+(if).15 E 1.353(the ne)180 280 R 1.354
+(xt character is a plus or minus sign\) or absolute.)-.15 F 3.854(An)
+6.354 G 1.354(umber is e)-3.854 F 1.354(xpected b)-.15 F 1.354(ut not)
+-.2 F 1.967(required after the sign \(the def)180 296 R 1.967
+(ault is the current entry for relati)-.1 F -.15(ve)-.25 G 4.467(,z).15
+G 1.967(ero for absolute)-4.467 F(inde)180 312 Q(xing\).)-.15 E/F4 10
+/Times-Bold@0 SF(Pri)72 344 Q -.1(va)-.1 G(cy Message).1 E 72 352.5 72
+362.5 DL 72 351.5 72 361.5 DL 87.998 352.5 87.998 362.5 DL 77 362.5 72
+362.5 DL 77.998 362.5 72.998 362.5 DL 82.998 362.5 77.998 362.5 DL
+87.998 362.5 82.998 362.5 DL 87.998 351.5 87.998 361.5 DL 77 351.5 72
+351.5 DL 77.998 351.5 72.998 351.5 DL 82.998 351.5 77.998 351.5 DL
+87.998 351.5 82.998 351.5 DL/F5 6/Times-Roman@0 SF(PM)75.664 359 Q F1(P)
+5.33 1 M 97.664 352.5 97.664 362.5 DL 97.664 351.5 97.664 361.5 DL F2(t)
+93.774 363 Q 113.662 352.5 113.662 362.5 DL 102.664 362.5 97.664 362.5
+DL 103.662 362.5 98.662 362.5 DL 108.662 362.5 103.662 362.5 DL 113.662
+362.5 108.662 362.5 DL 113.662 351.5 113.662 361.5 DL 102.664 351.5
+97.664 351.5 DL 103.662 351.5 98.662 351.5 DL 108.662 351.5 103.662
+351.5 DL 113.662 351.5 108.662 351.5 DL F5(ST)102.162 359 Q F1(xterm)
+70.836 1 M F0(implements no PM functions;)2.5 E F1(P)2.5 E F2(t)-2 3 M
+F0(is ignored.)2.5 -3 M F1(P)5 E F2(t)-2 3 M F0
+(need not be printable characters.)2.5 -3 M F4(PC-Style Function K)72
+384 Q(eys)-.25 E F0(If)72 400.8 Q F1(xterm)3.528 E F0 1.029
+(does minimal translation of the function k)3.528 F -.15(ey)-.1 G 1.029
+(s, it usually does this with a PC-style k).15 F -.15(ey)-.1 G 1.029
+(board, so PC-style).15 F .295(function k)72 412.8 R -.15(ey)-.1 G 2.795
+(sr).15 G 2.795(esult. Sun)-2.795 F -.1(ke)2.795 G .294
+(yboards are similar to PC k)-.05 F -.15(ey)-.1 G 2.794(boards. Both).15
+F(ha)2.794 E .594 -.15(ve c)-.2 H .294
+(ursor and scrolling operations printed).15 F(on the k)72 424.8 Q -.15
+(ey)-.1 G(pad, which duplicate the smaller cursor and scrolling k).15 E
+-.15(ey)-.1 G(pads.).15 E 2.707(Xd)72 441.6 S .207
+(oes not prede\214ne NumLock \(used for VT220 k)-2.707 F -.15(ey)-.1 G
+.207(boards\) or Alt \(used as an e).15 F .208
+(xtension for the Sun/PC k)-.15 F -.15(ey)-.1 G(boards\)).15 E .556
+(as modi\214ers.)72 453.6 R .556(These k)5.556 F -.15(ey)-.1 G 3.056(sa)
+.15 G .555(re recognized as modi\214ers when enabled by the)-3.056 F F4
+(numLock)3.055 E F0 .555(resource, or by the DECSET)3.055 F 72 458.1 72
+468.1 DL 72 457.1 72 467.1 DL 87.998 458.1 87.998 468.1 DL 77 468.1 72
+468.1 DL 77.998 468.1 72.998 468.1 DL 82.998 468.1 77.998 468.1 DL
+87.998 468.1 82.998 468.1 DL 87.998 457.1 87.998 467.1 DL 77 457.1 72
+457.1 DL 77.998 457.1 72.998 457.1 DL 82.998 457.1 77.998 457.1 DL
+87.998 457.1 82.998 457.1 DL 89.664 458.1 89.664 468.1 DL 89.664 457.1
+89.664 467.1 DL 105.662 458.1 105.662 468.1 DL 94.664 468.1 89.664 468.1
+DL 95.662 468.1 90.662 468.1 DL 100.662 468.1 95.662 468.1 DL 105.662
+468.1 100.662 468.1 DL 105.662 457.1 105.662 467.1 DL 94.664 457.1
+89.664 457.1 DL 95.662 457.1 90.662 457.1 DL 100.662 457.1 95.662 457.1
+DL 105.662 457.1 100.662 457.1 DL 107.328 458.1 107.328 468.1 DL 107.328
+457.1 107.328 467.1 DL 123.326 458.1 123.326 468.1 DL 112.328 468.1
+107.328 468.1 DL 113.326 468.1 108.326 468.1 DL 118.326 468.1 113.326
+468.1 DL 123.326 468.1 118.326 468.1 DL 123.326 457.1 123.326 467.1 DL
+112.328 457.1 107.328 457.1 DL 113.326 457.1 108.326 457.1 DL 118.326
+457.1 113.326 457.1 DL 123.326 457.1 118.326 457.1 DL 124.992 458.1
+124.992 468.1 DL 124.992 457.1 124.992 467.1 DL 140.99 458.1 140.99
+468.1 DL 129.992 468.1 124.992 468.1 DL 130.99 468.1 125.99 468.1 DL
+135.99 468.1 130.99 468.1 DL 140.99 468.1 135.99 468.1 DL 140.99 457.1
+140.99 467.1 DL 129.992 457.1 124.992 457.1 DL 130.99 457.1 125.99 457.1
+DL 135.99 457.1 130.99 457.1 DL 140.99 457.1 135.99 457.1 DL 12.664
+(1035)77.499 465.6 S(control sequence.)-2.999 E .016(The cursor k)72
+482.4 R -.15(ey)-.1 G 2.516(st).15 G .016(ransmit the follo)-2.516 F
+.016(wing escape sequences depending on the mode speci\214ed via the)
+-.25 F F4(DECCKM)2.517 E F0(escape)2.517 E(sequence.)72 494.4 Q 11.525
+(center; cf3)72 512.4 R 9.73(cf3 cf3)12.23 F 13.07
+(lf3w\(2c\) lf3w\(2c\) lf3w\(2c\))14.025 F 16.525(.K)14.025 G 6.54 -.15
+(ey N)-16.775 H 16.95(ormal Application).15 F 14.025(_C)14.025 G(ursor)
+-14.025 E 92.28 516.9 92.28 526.9 DL 92.28 515.9 92.28 525.9 DL(Up)72
+524.4 Q 108.278 516.9 108.278 526.9 DL 97.28 526.9 92.28 526.9 DL 98.278
+526.9 93.278 526.9 DL 103.278 526.9 98.278 526.9 DL 108.278 526.9
+103.278 526.9 DL 108.278 515.9 108.278 525.9 DL 97.28 515.9 92.28 515.9
+DL 98.278 515.9 93.278 515.9 DL 103.278 515.9 98.278 515.9 DL 108.278
+515.9 103.278 515.9 DL 109.944 516.9 109.944 526.9 DL 109.944 515.9
+109.944 525.9 DL F5(CSI)95.611 523.4 Q 125.942 516.9 125.942 526.9 DL
+114.944 526.9 109.944 526.9 DL 115.942 526.9 110.942 526.9 DL 120.942
+526.9 115.942 526.9 DL 125.942 526.9 120.942 526.9 DL 125.942 515.9
+125.942 525.9 DL 114.944 515.9 109.944 515.9 DL 115.942 515.9 110.942
+515.9 DL 120.942 515.9 115.942 515.9 DL 125.942 515.9 120.942 515.9 DL
+142.28 516.9 142.28 526.9 DL 142.28 515.9 142.28 525.9 DL F0(A)114.333
+524.4 Q 158.278 516.9 158.278 526.9 DL 147.28 526.9 142.28 526.9 DL
+148.278 526.9 143.278 526.9 DL 153.278 526.9 148.278 526.9 DL 158.278
+526.9 153.278 526.9 DL 158.278 515.9 158.278 525.9 DL 147.28 515.9
+142.28 515.9 DL 148.278 515.9 143.278 515.9 DL 153.278 515.9 148.278
+515.9 DL 158.278 515.9 153.278 515.9 DL 159.944 516.9 159.944 526.9 DL
+159.944 515.9 159.944 525.9 DL F5(SS3)145.443 523.4 Q 175.942 516.9
+175.942 526.9 DL 164.944 526.9 159.944 526.9 DL 165.942 526.9 160.942
+526.9 DL 170.942 526.9 165.942 526.9 DL 175.942 526.9 170.942 526.9 DL
+175.942 515.9 175.942 525.9 DL 164.944 515.9 159.944 515.9 DL 165.942
+515.9 160.942 515.9 DL 170.942 515.9 165.942 515.9 DL 175.942 515.9
+170.942 515.9 DL F0 9.958(AC)164.333 524.4 S 1.403(ursor Do)-9.958 F
+257.914 516.9 257.914 526.9 DL 257.914 515.9 257.914 525.9 DL(wn)224.604
+524.4 Q 273.912 516.9 273.912 526.9 DL 262.914 526.9 257.914 526.9 DL
+263.912 526.9 258.912 526.9 DL 268.912 526.9 263.912 526.9 DL 273.912
+526.9 268.912 526.9 DL 273.912 515.9 273.912 525.9 DL 262.914 515.9
+257.914 515.9 DL 263.912 515.9 258.912 515.9 DL 268.912 515.9 263.912
+515.9 DL 273.912 515.9 268.912 515.9 DL 275.578 516.9 275.578 526.9 DL
+275.578 515.9 275.578 525.9 DL F5(CSI)261.245 523.4 Q 291.576 516.9
+291.576 526.9 DL 280.578 526.9 275.578 526.9 DL 281.576 526.9 276.576
+526.9 DL 286.576 526.9 281.576 526.9 DL 291.576 526.9 286.576 526.9 DL
+291.576 515.9 291.576 525.9 DL 280.578 515.9 275.578 515.9 DL 281.576
+515.9 276.576 515.9 DL 286.576 515.9 281.576 515.9 DL 291.576 515.9
+286.576 515.9 DL 307.914 516.9 307.914 526.9 DL 307.914 515.9 307.914
+525.9 DL F0(B)280.242 524.4 Q 323.912 516.9 323.912 526.9 DL 312.914
+526.9 307.914 526.9 DL 313.912 526.9 308.912 526.9 DL 318.912 526.9
+313.912 526.9 DL 323.912 526.9 318.912 526.9 DL 323.912 515.9 323.912
+525.9 DL 312.914 515.9 307.914 515.9 DL 313.912 515.9 308.912 515.9 DL
+318.912 515.9 313.912 515.9 DL 323.912 515.9 318.912 515.9 DL 325.578
+516.9 325.578 526.9 DL 325.578 515.9 325.578 525.9 DL F5(SS3)311.077
+523.4 Q 341.576 516.9 341.576 526.9 DL 330.578 526.9 325.578 526.9 DL
+331.576 526.9 326.576 526.9 DL 336.576 526.9 331.576 526.9 DL 341.576
+526.9 336.576 526.9 DL 341.576 515.9 341.576 525.9 DL 330.578 515.9
+325.578 515.9 DL 331.576 515.9 326.576 515.9 DL 336.576 515.9 331.576
+515.9 DL 341.576 515.9 336.576 515.9 DL F0 10.233(BC)330.242 524.4 S
+423.548 516.9 423.548 526.9 DL 423.548 515.9 423.548 525.9 DL 1.403
+(ursor Right)353.815 524.4 R 439.546 516.9 439.546 526.9 DL 428.548
+526.9 423.548 526.9 DL 429.546 526.9 424.546 526.9 DL 434.546 526.9
+429.546 526.9 DL 439.546 526.9 434.546 526.9 DL 439.546 515.9 439.546
+525.9 DL 428.548 515.9 423.548 515.9 DL 429.546 515.9 424.546 515.9 DL
+434.546 515.9 429.546 515.9 DL 439.546 515.9 434.546 515.9 DL 441.212
+516.9 441.212 526.9 DL 441.212 515.9 441.212 525.9 DL F5(CSI)426.879
+523.4 Q 457.21 516.9 457.21 526.9 DL 446.212 526.9 441.212 526.9 DL
+447.21 526.9 442.21 526.9 DL 452.21 526.9 447.21 526.9 DL 457.21 526.9
+452.21 526.9 DL 457.21 515.9 457.21 525.9 DL 446.212 515.9 441.212 515.9
+DL 447.21 515.9 442.21 515.9 DL 452.21 515.9 447.21 515.9 DL 457.21
+515.9 452.21 515.9 DL 473.548 516.9 473.548 526.9 DL 473.548 515.9
+473.548 525.9 DL F0(C)445.876 524.4 Q 489.546 516.9 489.546 526.9 DL
+478.548 526.9 473.548 526.9 DL 479.546 526.9 474.546 526.9 DL 484.546
+526.9 479.546 526.9 DL 489.546 526.9 484.546 526.9 DL 489.546 515.9
+489.546 525.9 DL 478.548 515.9 473.548 515.9 DL 479.546 515.9 474.546
+515.9 DL 484.546 515.9 479.546 515.9 DL 489.546 515.9 484.546 515.9 DL
+491.212 516.9 491.212 526.9 DL 491.212 515.9 491.212 525.9 DL F5(SS3)
+476.711 523.4 Q 507.21 516.9 507.21 526.9 DL 496.212 526.9 491.212 526.9
+DL 497.21 526.9 492.21 526.9 DL 502.21 526.9 497.21 526.9 DL 507.21
+526.9 502.21 526.9 DL 507.21 515.9 507.21 525.9 DL 496.212 515.9 491.212
+515.9 DL 497.21 515.9 492.21 515.9 DL 502.21 515.9 497.21 515.9 DL
+507.21 515.9 502.21 515.9 DL F0 10.234(CC)495.876 524.4 S(ursor)-10.234
+E 92.28 528.9 92.28 538.9 DL 92.28 527.9 92.28 537.9 DL(Left)72 536.4 Q
+108.278 528.9 108.278 538.9 DL 97.28 538.9 92.28 538.9 DL 98.278 538.9
+93.278 538.9 DL 103.278 538.9 98.278 538.9 DL 108.278 538.9 103.278
+538.9 DL 108.278 527.9 108.278 537.9 DL 97.28 527.9 92.28 527.9 DL
+98.278 527.9 93.278 527.9 DL 103.278 527.9 98.278 527.9 DL 108.278 527.9
+103.278 527.9 DL 109.944 528.9 109.944 538.9 DL 109.944 527.9 109.944
+537.9 DL F5(CSI)95.611 535.4 Q 125.942 528.9 125.942 538.9 DL 114.944
+538.9 109.944 538.9 DL 115.942 538.9 110.942 538.9 DL 120.942 538.9
+115.942 538.9 DL 125.942 538.9 120.942 538.9 DL 125.942 527.9 125.942
+537.9 DL 114.944 527.9 109.944 527.9 DL 115.942 527.9 110.942 527.9 DL
+120.942 527.9 115.942 527.9 DL 125.942 527.9 120.942 527.9 DL 137.764
+528.9 137.764 538.9 DL 137.764 527.9 137.764 537.9 DL F0(D)114.333 536.4
+Q 153.762 528.9 153.762 538.9 DL 142.764 538.9 137.764 538.9 DL 143.762
+538.9 138.762 538.9 DL 148.762 538.9 143.762 538.9 DL 153.762 538.9
+148.762 538.9 DL 153.762 527.9 153.762 537.9 DL 142.764 527.9 137.764
+527.9 DL 143.762 527.9 138.762 527.9 DL 148.762 527.9 143.762 527.9 DL
+153.762 527.9 148.762 527.9 DL 155.428 528.9 155.428 538.9 DL 155.428
+527.9 155.428 537.9 DL F5(SS3)140.927 535.4 Q 171.426 528.9 171.426
+538.9 DL 160.428 538.9 155.428 538.9 DL 161.426 538.9 156.426 538.9 DL
+166.426 538.9 161.426 538.9 DL 171.426 538.9 166.426 538.9 DL 171.426
+527.9 171.426 537.9 DL 160.428 527.9 155.428 527.9 DL 161.426 527.9
+156.426 527.9 DL 166.426 527.9 161.426 527.9 DL 171.426 527.9 166.426
+527.9 DL F0(D)159.817 536.4 Q 3.113(The application k)72 559.2 R -.15
+(ey)-.1 G 3.112(pad transmits the follo).15 F 3.112
+(wing escape sequences depending on the mode speci\214ed via the)-.25 F
+F4(DECPNM)72 571.2 Q F0(and)2.5 E F4(DECP)2.5 E(AM)-.74 E F0
+(escape sequences.)2.5 E(Use the NumLock k)5 E .3 -.15(ey t)-.1 H 2.5
+(oo).15 G -.15(ve)-2.65 G(rride the application mode.).15 E(Not all k)72
+588 Q -.15(ey)-.1 G 2.5(sa).15 G(re present on the Sun/PC k)-2.5 E -.15
+(ey)-.1 G(pad \(e.g., PF1, T).15 E(ab\), b)-.8 E
+(ut are supported by the program.)-.2 E 27.863(center; cf3)72 606 R 9.73
+(cf3 cf3 cf3 cf3)12.23 F 13.07
+(lf3w\(2c\) lf3w\(2c\) lf3w\(2c\) lf3w\(2c\) lf3w\(2c\))30.363 F(.)
+30.364 E -2.15 -.25(Ke y)72 618 T 12.51(Numeric Application)8.99 F -.7
+(Te)2.78 G 10.43(rminfo T).7 F 436.67 610.5 436.67 620.5 DL 436.67 609.5
+436.67 619.5 DL 59.915(ermcap _ Space)252.41 618 R 452.668 610.5 452.668
+620.5 DL 441.67 620.5 436.67 620.5 DL 442.668 620.5 437.668 620.5 DL
+447.668 620.5 442.668 620.5 DL 452.668 620.5 447.668 620.5 DL 452.668
+609.5 452.668 619.5 DL 441.67 609.5 436.67 609.5 DL 442.668 609.5
+437.668 609.5 DL 447.668 609.5 442.668 609.5 DL 452.668 609.5 447.668
+609.5 DL 461.67 610.5 461.67 620.5 DL 461.67 609.5 461.67 619.5 DL
+477.668 610.5 477.668 620.5 DL 466.67 620.5 461.67 620.5 DL 467.668
+620.5 462.668 620.5 DL 472.668 620.5 467.668 620.5 DL 477.668 620.5
+472.668 620.5 DL 477.668 609.5 477.668 619.5 DL 466.67 609.5 461.67
+609.5 DL 467.668 609.5 462.668 609.5 DL 472.668 609.5 467.668 609.5 DL
+477.668 609.5 472.668 609.5 DL 479.334 610.5 479.334 620.5 DL 479.334
+609.5 479.334 619.5 DL F5 15.328(SP SS3)441.333 617 R 495.332 610.5
+495.332 620.5 DL 484.334 620.5 479.334 620.5 DL 485.332 620.5 480.332
+620.5 DL 490.332 620.5 485.332 620.5 DL 495.332 620.5 490.332 620.5 DL
+495.332 609.5 495.332 619.5 DL 484.334 609.5 479.334 609.5 DL 485.332
+609.5 480.332 609.5 DL 490.332 609.5 485.332 609.5 DL 495.332 609.5
+490.332 609.5 DL(SP)483.997 617 Q F0 21.67(--)21.001 1 O -.8(Ta)72 630 S
+97 622.5 97 632.5 DL 97 621.5 97 631.5 DL(b)81.75 630 Q F5 -.558(TA)
+12.528 -1 O 112.998 622.5 112.998 632.5 DL 102 632.5 97 632.5 DL 102.998
+632.5 97.998 632.5 DL 107.998 632.5 102.998 632.5 DL 112.998 632.5
+107.998 632.5 DL 112.998 621.5 112.998 631.5 DL 102 621.5 97 621.5 DL
+102.998 621.5 97.998 621.5 DL 107.998 621.5 102.998 621.5 DL 112.998
+621.5 107.998 621.5 DL 122 622.5 122 632.5 DL 122 621.5 122 631.5 DL
+14.443(BS)106.718 629 S 137.998 622.5 137.998 632.5 DL 127 632.5 122
+632.5 DL 127.998 632.5 122.998 632.5 DL 132.998 632.5 127.998 632.5 DL
+137.998 632.5 132.998 632.5 DL 137.998 621.5 137.998 631.5 DL 127 621.5
+122 621.5 DL 127.998 621.5 122.998 621.5 DL 132.998 621.5 127.998 621.5
+DL 137.998 621.5 132.998 621.5 DL 139.664 622.5 139.664 632.5 DL 139.664
+621.5 139.664 631.5 DL(S3)128.499 629 Q 155.662 622.5 155.662 632.5 DL
+144.664 632.5 139.664 632.5 DL 145.662 632.5 140.662 632.5 DL 150.662
+632.5 145.662 632.5 DL 155.662 632.5 150.662 632.5 DL 155.662 621.5
+155.662 631.5 DL 144.664 621.5 139.664 621.5 DL 145.662 621.5 140.662
+621.5 DL 150.662 621.5 145.662 621.5 DL 155.662 621.5 150.662 621.5 DL
+F0 22.672(I-)145.998 630 S 20.23(-E)-1.002 G 245.56 622.5 245.56 632.5
+DL 245.56 621.5 245.56 631.5 DL(nter)226.67 630 Q 261.558 622.5 261.558
+632.5 DL 250.56 632.5 245.56 632.5 DL 251.558 632.5 246.558 632.5 DL
+256.558 632.5 251.558 632.5 DL 261.558 632.5 256.558 632.5 DL 261.558
+621.5 261.558 631.5 DL 250.56 621.5 245.56 621.5 DL 251.558 621.5
+246.558 621.5 DL 256.558 621.5 251.558 621.5 DL 261.558 621.5 256.558
+621.5 DL 270.56 622.5 270.56 632.5 DL 270.56 621.5 270.56 631.5 DL
+286.558 622.5 286.558 632.5 DL 275.56 632.5 270.56 632.5 DL 276.558
+632.5 271.558 632.5 DL 281.558 632.5 276.558 632.5 DL 286.558 632.5
+281.558 632.5 DL 286.558 621.5 286.558 631.5 DL 275.56 621.5 270.56
+621.5 DL 276.558 621.5 271.558 621.5 DL 281.558 621.5 276.558 621.5 DL
+286.558 621.5 281.558 621.5 DL 288.224 622.5 288.224 632.5 DL 288.224
+621.5 288.224 631.5 DL F5 14.662(CR SS3)249.557 629 R 304.222 622.5
+304.222 632.5 DL 293.224 632.5 288.224 632.5 DL 294.222 632.5 289.222
+632.5 DL 299.222 632.5 294.222 632.5 DL 304.222 632.5 299.222 632.5 DL
+304.222 621.5 304.222 631.5 DL 293.224 621.5 288.224 621.5 DL 294.222
+621.5 289.222 621.5 DL 299.222 621.5 294.222 621.5 DL 304.222 621.5
+299.222 621.5 DL F0 19.892(Mk)291.778 630 S 5.38(ent @8)-19.992 F 405
+622.5 405 632.5 DL 405 621.5 405 631.5 DL(PF1)380 630 Q 420.998 622.5
+420.998 632.5 DL 410 632.5 405 632.5 DL 410.998 632.5 405.998 632.5 DL
+415.998 632.5 410.998 632.5 DL 420.998 632.5 415.998 632.5 DL 420.998
+621.5 420.998 631.5 DL 410 621.5 405 621.5 DL 410.998 621.5 405.998
+621.5 DL 415.998 621.5 410.998 621.5 DL 420.998 621.5 415.998 621.5 DL
+422.664 622.5 422.664 632.5 DL 422.664 621.5 422.664 631.5 DL F5(SS3)
+408.163 629 Q 438.662 622.5 438.662 632.5 DL 427.664 632.5 422.664 632.5
+DL 428.662 632.5 423.662 632.5 DL 433.662 632.5 428.662 632.5 DL 438.662
+632.5 433.662 632.5 DL 438.662 621.5 438.662 631.5 DL 427.664 621.5
+422.664 621.5 DL 428.662 621.5 423.662 621.5 DL 433.662 621.5 428.662
+621.5 DL 438.662 621.5 433.662 621.5 DL 455 622.5 455 632.5 DL 455 621.5
+455 631.5 DL F0(P)427.883 630 Q 470.998 622.5 470.998 632.5 DL 460 632.5
+455 632.5 DL 460.998 632.5 455.998 632.5 DL 465.998 632.5 460.998 632.5
+DL 470.998 632.5 465.998 632.5 DL 470.998 621.5 470.998 631.5 DL 460
+621.5 455 621.5 DL 460.998 621.5 455.998 621.5 DL 465.998 621.5 460.998
+621.5 DL 470.998 621.5 465.998 621.5 DL 472.664 622.5 472.664 632.5 DL
+472.664 621.5 472.664 631.5 DL F5(SS3)458.163 629 Q 488.662 622.5
+488.662 632.5 DL 477.664 632.5 472.664 632.5 DL 478.662 632.5 473.662
+632.5 DL 483.662 632.5 478.662 632.5 DL 488.662 632.5 483.662 632.5 DL
+488.662 621.5 488.662 631.5 DL 477.664 621.5 472.664 621.5 DL 478.662
+621.5 473.662 621.5 DL 483.662 621.5 478.662 621.5 DL 488.662 621.5
+483.662 621.5 DL F0 21.557(Pk)477.883 630 S 9.17(f1 k1)-21.557 F 97
+634.5 97 644.5 DL 97 633.5 97 643.5 DL(PF2)72 642 Q 112.998 634.5
+112.998 644.5 DL 102 644.5 97 644.5 DL 102.998 644.5 97.998 644.5 DL
+107.998 644.5 102.998 644.5 DL 112.998 644.5 107.998 644.5 DL 112.998
+633.5 112.998 643.5 DL 102 633.5 97 633.5 DL 102.998 633.5 97.998 633.5
+DL 107.998 633.5 102.998 633.5 DL 112.998 633.5 107.998 633.5 DL 114.664
+634.5 114.664 644.5 DL 114.664 633.5 114.664 643.5 DL F5(SS3)100.163 641
+Q 130.662 634.5 130.662 644.5 DL 119.664 644.5 114.664 644.5 DL 120.662
+644.5 115.662 644.5 DL 125.662 644.5 120.662 644.5 DL 130.662 644.5
+125.662 644.5 DL 130.662 633.5 130.662 643.5 DL 119.664 633.5 114.664
+633.5 DL 120.662 633.5 115.662 633.5 DL 125.662 633.5 120.662 633.5 DL
+130.662 633.5 125.662 633.5 DL 139.04 634.5 139.04 644.5 DL 139.04 633.5
+139.04 643.5 DL F0(Q)119.053 642 Q 155.038 634.5 155.038 644.5 DL 144.04
+644.5 139.04 644.5 DL 145.038 644.5 140.038 644.5 DL 150.038 644.5
+145.038 644.5 DL 155.038 644.5 150.038 644.5 DL 155.038 633.5 155.038
+643.5 DL 144.04 633.5 139.04 633.5 DL 145.038 633.5 140.038 633.5 DL
+150.038 633.5 145.038 633.5 DL 155.038 633.5 150.038 633.5 DL 156.704
+634.5 156.704 644.5 DL 156.704 633.5 156.704 643.5 DL F5(SS3)142.203 641
+Q 172.702 634.5 172.702 644.5 DL 161.704 644.5 156.704 644.5 DL 162.702
+644.5 157.702 644.5 DL 167.702 644.5 162.702 644.5 DL 172.702 644.5
+167.702 644.5 DL 172.702 633.5 172.702 643.5 DL 161.704 633.5 156.704
+633.5 DL 162.702 633.5 157.702 633.5 DL 167.702 633.5 162.702 633.5 DL
+172.702 633.5 167.702 633.5 DL F0 20.727(Qk)161.093 642 S 9.17(f2 k2)
+-20.727 F 405 634.5 405 644.5 DL 405 633.5 405 643.5 DL(PF3)380 642 Q
+420.998 634.5 420.998 644.5 DL 410 644.5 405 644.5 DL 410.998 644.5
+405.998 644.5 DL 415.998 644.5 410.998 644.5 DL 420.998 644.5 415.998
+644.5 DL 420.998 633.5 420.998 643.5 DL 410 633.5 405 633.5 DL 410.998
+633.5 405.998 633.5 DL 415.998 633.5 410.998 633.5 DL 420.998 633.5
+415.998 633.5 DL 422.664 634.5 422.664 644.5 DL 422.664 633.5 422.664
+643.5 DL F5(SS3)408.163 641 Q 438.662 634.5 438.662 644.5 DL 427.664
+644.5 422.664 644.5 DL 428.662 644.5 423.662 644.5 DL 433.662 644.5
+428.662 644.5 DL 438.662 644.5 433.662 644.5 DL 438.662 633.5 438.662
+643.5 DL 427.664 633.5 422.664 633.5 DL 428.662 633.5 423.662 633.5 DL
+433.662 633.5 428.662 633.5 DL 438.662 633.5 433.662 633.5 DL 455 634.5
+455 644.5 DL 455 633.5 455 643.5 DL F0(R)427.328 642 Q 470.998 634.5
+470.998 644.5 DL 460 644.5 455 644.5 DL 460.998 644.5 455.998 644.5 DL
+465.998 644.5 460.998 644.5 DL 470.998 644.5 465.998 644.5 DL 470.998
+633.5 470.998 643.5 DL 460 633.5 455 633.5 DL 460.998 633.5 455.998
+633.5 DL 465.998 633.5 460.998 633.5 DL 470.998 633.5 465.998 633.5 DL
+472.664 634.5 472.664 644.5 DL 472.664 633.5 472.664 643.5 DL F5(SS3)
+458.163 641 Q 488.662 634.5 488.662 644.5 DL 477.664 644.5 472.664 644.5
+DL 478.662 644.5 473.662 644.5 DL 483.662 644.5 478.662 644.5 DL 488.662
+644.5 483.662 644.5 DL 488.662 633.5 488.662 643.5 DL 477.664 633.5
+472.664 633.5 DL 478.662 633.5 473.662 633.5 DL 483.662 633.5 478.662
+633.5 DL 488.662 633.5 483.662 633.5 DL F0 21.002(Rk)477.328 642 S 9.17
+(f3 k3)-21.002 F 97 646.5 97 656.5 DL 97 645.5 97 655.5 DL(PF4)72 654 Q
+112.998 646.5 112.998 656.5 DL 102 656.5 97 656.5 DL 102.998 656.5
+97.998 656.5 DL 107.998 656.5 102.998 656.5 DL 112.998 656.5 107.998
+656.5 DL 112.998 645.5 112.998 655.5 DL 102 645.5 97 645.5 DL 102.998
+645.5 97.998 645.5 DL 107.998 645.5 102.998 645.5 DL 112.998 645.5
+107.998 645.5 DL 114.664 646.5 114.664 656.5 DL 114.664 645.5 114.664
+655.5 DL F5(SS3)100.163 653 Q 130.662 646.5 130.662 656.5 DL 119.664
+656.5 114.664 656.5 DL 120.662 656.5 115.662 656.5 DL 125.662 656.5
+120.662 656.5 DL 130.662 656.5 125.662 656.5 DL 130.662 645.5 130.662
+655.5 DL 119.664 645.5 114.664 645.5 DL 120.662 645.5 115.662 645.5 DL
+125.662 645.5 120.662 645.5 DL 130.662 645.5 125.662 645.5 DL 147 646.5
+147 656.5 DL 147 645.5 147 655.5 DL F0(S)119.883 654 Q 162.998 646.5
+162.998 656.5 DL 152 656.5 147 656.5 DL 152.998 656.5 147.998 656.5 DL
+157.998 656.5 152.998 656.5 DL 162.998 656.5 157.998 656.5 DL 162.998
+645.5 162.998 655.5 DL 152 645.5 147 645.5 DL 152.998 645.5 147.998
+645.5 DL 157.998 645.5 152.998 645.5 DL 162.998 645.5 157.998 645.5 DL
+164.664 646.5 164.664 656.5 DL 164.664 645.5 164.664 655.5 DL F5(SS3)
+150.163 653 Q 180.662 646.5 180.662 656.5 DL 169.664 656.5 164.664 656.5
+DL 170.662 656.5 165.662 656.5 DL 175.662 656.5 170.662 656.5 DL 180.662
+656.5 175.662 656.5 DL 180.662 645.5 180.662 655.5 DL 169.664 645.5
+164.664 645.5 DL 170.662 645.5 165.662 645.5 DL 175.662 645.5 170.662
+645.5 DL 180.662 645.5 175.662 645.5 DL F0 21.557(Sk)169.883 654 S 9.17
+(f4 k4)-21.557 F 50.51(*\()50.51 G 405.52 646.5 405.52 656.5 DL 405.52
+645.5 405.52 655.5 DL -.56(multiply\) *)341.35 654 R 421.518 646.5
+421.518 656.5 DL 410.52 656.5 405.52 656.5 DL 411.518 656.5 406.518
+656.5 DL 416.518 656.5 411.518 656.5 DL 421.518 656.5 416.518 656.5 DL
+421.518 645.5 421.518 655.5 DL 410.52 645.5 405.52 645.5 DL 411.518
+645.5 406.518 645.5 DL 416.518 645.5 411.518 645.5 DL 421.518 645.5
+416.518 645.5 DL 423.184 646.5 423.184 656.5 DL 423.184 645.5 423.184
+655.5 DL F5(SS3)408.683 653 Q 439.182 646.5 439.182 656.5 DL 428.184
+656.5 423.184 656.5 DL 429.182 656.5 424.182 656.5 DL 434.182 656.5
+429.182 656.5 DL 439.182 656.5 434.182 656.5 DL 439.182 645.5 439.182
+655.5 DL 428.184 645.5 423.184 645.5 DL 429.182 645.5 424.182 645.5 DL
+434.182 645.5 429.182 645.5 DL 439.182 645.5 434.182 645.5 DL F0 22.947
+(j-)429.793 654 S 50.51(-+)-1.277 G 138.86 658.5 138.86 668.5 DL 138.86
+657.5 138.86 667.5 DL 18.26(\(add\) +)72 666 R 154.858 658.5 154.858
+668.5 DL 143.86 668.5 138.86 668.5 DL 144.858 668.5 139.858 668.5 DL
+149.858 668.5 144.858 668.5 DL 154.858 668.5 149.858 668.5 DL 154.858
+657.5 154.858 667.5 DL 143.86 657.5 138.86 657.5 DL 144.858 657.5
+139.858 657.5 DL 149.858 657.5 144.858 657.5 DL 154.858 657.5 149.858
+657.5 DL 156.524 658.5 156.524 668.5 DL 156.524 657.5 156.524 667.5 DL
+F5(SS3)142.023 665 Q 172.522 658.5 172.522 668.5 DL 161.524 668.5
+156.524 668.5 DL 162.522 668.5 157.522 668.5 DL 167.522 668.5 162.522
+668.5 DL 172.522 668.5 167.522 668.5 DL 172.522 657.5 172.522 667.5 DL
+161.524 657.5 156.524 657.5 DL 162.522 657.5 157.522 657.5 DL 167.522
+657.5 162.522 657.5 DL 172.522 657.5 167.522 657.5 DL F0 21.837(k-)
+162.023 666 S 3.674(-,\()-.167 G 297.038 658.5 297.038 668.5 DL 297.038
+657.5 297.038 667.5 DL 6.4(comma\) ,)230.368 666 R 313.036 658.5 313.036
+668.5 DL 302.038 668.5 297.038 668.5 DL 303.036 668.5 298.036 668.5 DL
+308.036 668.5 303.036 668.5 DL 313.036 668.5 308.036 668.5 DL 313.036
+657.5 313.036 667.5 DL 302.038 657.5 297.038 657.5 DL 303.036 657.5
+298.036 657.5 DL 308.036 657.5 303.036 657.5 DL 313.036 657.5 308.036
+657.5 DL 314.702 658.5 314.702 668.5 DL 314.702 657.5 314.702 667.5 DL
+F5(SS3)300.201 665 Q 330.7 658.5 330.7 668.5 DL 319.702 668.5 314.702
+668.5 DL 320.7 668.5 315.7 668.5 DL 325.7 668.5 320.7 668.5 DL 330.7
+668.5 325.7 668.5 DL 330.7 657.5 330.7 667.5 DL 319.702 657.5 314.702
+657.5 DL 320.7 657.5 315.7 657.5 DL 325.7 657.5 320.7 657.5 DL 330.7
+657.5 325.7 657.5 DL F0 22.947(l-)321.311 666 S 3.674(--\()-1.277 G
+455.216 658.5 455.216 668.5 DL 455.216 657.5 455.216 667.5 DL 10.56
+(minus\) -)389.376 666 R 471.214 658.5 471.214 668.5 DL 460.216 668.5
+455.216 668.5 DL 461.214 668.5 456.214 668.5 DL 466.214 668.5 461.214
+668.5 DL 471.214 668.5 466.214 668.5 DL 471.214 657.5 471.214 667.5 DL
+460.216 657.5 455.216 657.5 DL 461.214 657.5 456.214 657.5 DL 466.214
+657.5 461.214 657.5 DL 471.214 657.5 466.214 657.5 DL 472.88 658.5
+472.88 668.5 DL 472.88 657.5 472.88 667.5 DL F5(SS3)458.379 665 Q
+488.878 658.5 488.878 668.5 DL 477.88 668.5 472.88 668.5 DL 478.878
+668.5 473.878 668.5 DL 483.878 668.5 478.878 668.5 DL 488.878 668.5
+483.878 668.5 DL 488.878 657.5 488.878 667.5 DL 477.88 657.5 472.88
+657.5 DL 478.878 657.5 473.878 657.5 DL 483.878 657.5 478.878 657.5 DL
+488.878 657.5 483.878 657.5 DL F0 -21.724 20.447(m- -)476.989 666 T(/)
+-16.773 E(\(di)72 678 Q 141.72 670.5 141.72 680.5 DL 141.72 669.5 141.72
+679.5 DL 10.81(vide\) /)82.86 678 R 157.718 670.5 157.718 680.5 DL
+146.72 680.5 141.72 680.5 DL 147.718 680.5 142.718 680.5 DL 152.718
+680.5 147.718 680.5 DL 157.718 680.5 152.718 680.5 DL 157.718 669.5
+157.718 679.5 DL 146.72 669.5 141.72 669.5 DL 147.718 669.5 142.718
+669.5 DL 152.718 669.5 147.718 669.5 DL 157.718 669.5 152.718 669.5 DL
+159.384 670.5 159.384 680.5 DL 159.384 669.5 159.384 679.5 DL F5(SS3)
+144.883 677 Q 175.382 670.5 175.382 680.5 DL 164.384 680.5 159.384 680.5
+DL 165.382 680.5 160.382 680.5 DL 170.382 680.5 165.382 680.5 DL 175.382
+680.5 170.382 680.5 DL 175.382 669.5 175.382 679.5 DL 164.384 669.5
+159.384 669.5 DL 165.382 669.5 160.382 669.5 DL 170.382 669.5 165.382
+669.5 DL 175.382 669.5 170.382 669.5 DL F0 -17.764 18.467(o- -)164.883
+678 T 47.497(0\()29.029 G 384.173 670.5 384.173 680.5 DL 384.173 669.5
+384.173 679.5 DL 10.57(Insert\) 0)320.003 678 R 400.171 670.5 400.171
+680.5 DL 389.173 680.5 384.173 680.5 DL 390.171 680.5 385.171 680.5 DL
+395.171 680.5 390.171 680.5 DL 400.171 680.5 395.171 680.5 DL 400.171
+669.5 400.171 679.5 DL 389.173 669.5 384.173 669.5 DL 390.171 669.5
+385.171 669.5 DL 395.171 669.5 390.171 669.5 DL 400.171 669.5 395.171
+669.5 DL 401.837 670.5 401.837 680.5 DL 401.837 669.5 401.837 679.5 DL
+F5(CSI)387.504 677 Q 417.835 670.5 417.835 680.5 DL 406.837 680.5
+401.837 680.5 DL 407.835 680.5 402.835 680.5 DL 412.835 680.5 407.835
+680.5 DL 417.835 680.5 412.835 680.5 DL 417.835 669.5 417.835 679.5 DL
+406.837 669.5 401.837 669.5 DL 407.835 669.5 402.835 669.5 DL 412.835
+669.5 407.835 669.5 DL 417.835 669.5 412.835 669.5 DL 419.501 670.5
+419.501 680.5 DL 419.501 669.5 419.501 679.5 DL 435.499 670.5 435.499
+680.5 DL 424.501 680.5 419.501 680.5 DL 425.499 680.5 420.499 680.5 DL
+430.499 680.5 425.499 680.5 DL 435.499 680.5 430.499 680.5 DL 435.499
+669.5 435.499 679.5 DL 424.501 669.5 419.501 669.5 DL 425.499 669.5
+420.499 669.5 DL 430.499 669.5 425.499 669.5 DL 435.499 669.5 430.499
+669.5 DL F0 .51 13.499(2~ -)407.336 678 T 47.497(-1)8.171 G 139.5 682.5
+139.5 692.5 DL 139.5 681.5 139.5 691.5 DL 17.23(\(End\) 1)72 690 R
+155.498 682.5 155.498 692.5 DL 144.5 692.5 139.5 692.5 DL 145.498 692.5
+140.498 692.5 DL 150.498 692.5 145.498 692.5 DL 155.498 692.5 150.498
+692.5 DL 155.498 681.5 155.498 691.5 DL 144.5 681.5 139.5 681.5 DL
+145.498 681.5 140.498 681.5 DL 150.498 681.5 145.498 681.5 DL 155.498
+681.5 150.498 681.5 DL 157.164 682.5 157.164 692.5 DL 157.164 681.5
+157.164 691.5 DL F5(CSI)142.831 689 Q 173.162 682.5 173.162 692.5 DL
+162.164 692.5 157.164 692.5 DL 163.162 692.5 158.162 692.5 DL 168.162
+692.5 163.162 692.5 DL 173.162 692.5 168.162 692.5 DL 173.162 681.5
+173.162 691.5 DL 162.164 681.5 157.164 681.5 DL 163.162 681.5 158.162
+681.5 DL 168.162 681.5 163.162 681.5 DL 173.162 681.5 168.162 681.5 DL
+174.828 682.5 174.828 692.5 DL 174.828 681.5 174.828 691.5 DL 190.826
+682.5 190.826 692.5 DL 179.828 692.5 174.828 692.5 DL 180.826 692.5
+175.826 692.5 DL 185.826 692.5 180.826 692.5 DL 190.826 692.5 185.826
+692.5 DL 190.826 681.5 190.826 691.5 DL 179.828 681.5 174.828 681.5 DL
+180.826 681.5 175.826 681.5 DL 185.826 681.5 180.826 681.5 DL 190.826
+681.5 185.826 681.5 DL F0 .51 13.499(4~ k)162.663 690 T 8.06(c1 K4)
+-13.499 F 35.817(2\()35.817 G(Do)-35.817 E(wnArro)-.25 E 420.854 682.5
+420.854 692.5 DL 420.854 681.5 420.854 691.5 DL 8.3(w\) 2)374.504 690 R
+436.852 682.5 436.852 692.5 DL 425.854 692.5 420.854 692.5 DL 426.852
+692.5 421.852 692.5 DL 431.852 692.5 426.852 692.5 DL 436.852 692.5
+431.852 692.5 DL 436.852 681.5 436.852 691.5 DL 425.854 681.5 420.854
+681.5 DL 426.852 681.5 421.852 681.5 DL 431.852 681.5 426.852 681.5 DL
+436.852 681.5 431.852 681.5 DL 438.518 682.5 438.518 692.5 DL 438.518
+681.5 438.518 691.5 DL F5(CSI)424.185 689 Q 454.516 682.5 454.516 692.5
+DL 443.518 692.5 438.518 692.5 DL 444.516 692.5 439.516 692.5 DL 449.516
+692.5 444.516 692.5 DL 454.516 692.5 449.516 692.5 DL 454.516 681.5
+454.516 691.5 DL 443.518 681.5 438.518 681.5 DL 444.516 681.5 439.516
+681.5 DL 449.516 681.5 444.516 681.5 DL 454.516 681.5 449.516 681.5 DL
+F0 -22.834 21.002(B- -)443.182 690 T(3)14.814 E(\(P)72 702 Q(ageDo)-.15
+E 164.5 694.5 164.5 704.5 DL 164.5 693.5 164.5 703.5 DL 14.86(wn\) 3)
+106.59 702 R 180.498 694.5 180.498 704.5 DL 169.5 704.5 164.5 704.5 DL
+170.498 704.5 165.498 704.5 DL 175.498 704.5 170.498 704.5 DL 180.498
+704.5 175.498 704.5 DL 180.498 693.5 180.498 703.5 DL 169.5 693.5 164.5
+693.5 DL 170.498 693.5 165.498 693.5 DL 175.498 693.5 170.498 693.5 DL
+180.498 693.5 175.498 693.5 DL 182.164 694.5 182.164 704.5 DL 182.164
+693.5 182.164 703.5 DL F5(CSI)167.831 701 Q 198.162 694.5 198.162 704.5
+DL 187.164 704.5 182.164 704.5 DL 188.162 704.5 183.162 704.5 DL 193.162
+704.5 188.162 704.5 DL 198.162 704.5 193.162 704.5 DL 198.162 693.5
+198.162 703.5 DL 187.164 693.5 182.164 693.5 DL 188.162 693.5 183.162
+693.5 DL 193.162 693.5 188.162 693.5 DL 198.162 693.5 193.162 693.5 DL
+199.828 694.5 199.828 704.5 DL 199.828 693.5 199.828 703.5 DL 215.826
+694.5 215.826 704.5 DL 204.828 704.5 199.828 704.5 DL 205.826 704.5
+200.826 704.5 DL 210.826 704.5 205.826 704.5 DL 215.826 704.5 210.826
+704.5 DL 215.826 693.5 215.826 703.5 DL 204.828 693.5 199.828 693.5 DL
+205.826 693.5 200.826 693.5 DL 210.826 693.5 205.826 693.5 DL 215.826
+693.5 210.826 693.5 DL F0 3.06 13.499(5~ k)187.663 702 T 8.06(c3 K5)
+-13.499 F 26.633(4\()26.633 G(LeftArro)-26.633 E 430.036 694.5 430.036
+704.5 DL 430.036 693.5 430.036 703.5 DL 15.83(w\) 4)376.156 702 R
+446.034 694.5 446.034 704.5 DL 435.036 704.5 430.036 704.5 DL 436.034
+704.5 431.034 704.5 DL 441.034 704.5 436.034 704.5 DL 446.034 704.5
+441.034 704.5 DL 446.034 693.5 446.034 703.5 DL 435.036 693.5 430.036
+693.5 DL 436.034 693.5 431.034 693.5 DL 441.034 693.5 436.034 693.5 DL
+446.034 693.5 441.034 693.5 DL 447.7 694.5 447.7 704.5 DL 447.7 693.5
+447.7 703.5 DL F5(CSI)433.367 701 Q 463.698 694.5 463.698 704.5 DL 452.7
+704.5 447.7 704.5 DL 453.698 704.5 448.698 704.5 DL 458.698 704.5
+453.698 704.5 DL 463.698 704.5 458.698 704.5 DL 463.698 693.5 463.698
+703.5 DL 452.7 693.5 447.7 693.5 DL 453.698 693.5 448.698 693.5 DL
+458.698 693.5 453.698 693.5 DL 463.698 693.5 458.698 693.5 DL F0 -22.284
+20.727(D- -)452.089 702 T(5)5.907 E(\(Be)72 714 Q 139.5 706.5 139.5
+716.5 DL 139.5 705.5 139.5 715.5 DL 9.6(gin\) 5)86.29 714 R 155.498
+706.5 155.498 716.5 DL 144.5 716.5 139.5 716.5 DL 145.498 716.5 140.498
+716.5 DL 150.498 716.5 145.498 716.5 DL 155.498 716.5 150.498 716.5 DL
+155.498 705.5 155.498 715.5 DL 144.5 705.5 139.5 705.5 DL 145.498 705.5
+140.498 705.5 DL 150.498 705.5 145.498 705.5 DL 155.498 705.5 150.498
+705.5 DL 157.164 706.5 157.164 716.5 DL 157.164 705.5 157.164 715.5 DL
+F5(CSI)142.831 713 Q 173.162 706.5 173.162 716.5 DL 162.164 716.5
+157.164 716.5 DL 163.162 716.5 158.162 716.5 DL 168.162 716.5 163.162
+716.5 DL 173.162 716.5 168.162 716.5 DL 173.162 705.5 173.162 715.5 DL
+162.164 705.5 157.164 705.5 DL 163.162 705.5 158.162 705.5 DL 168.162
+705.5 163.162 705.5 DL 173.162 705.5 168.162 705.5 DL F0 26.382(Ek)
+162.108 714 S 7.5(b2 K2)-26.382 F 42.45(6\()42.45 G(RightArro)-42.45 E
+414.22 706.5 414.22 716.5 DL 414.22 705.5 414.22 715.5 DL 10.26(w\) 6)
+365.91 714 R 430.218 706.5 430.218 716.5 DL 419.22 716.5 414.22 716.5 DL
+420.218 716.5 415.218 716.5 DL 425.218 716.5 420.218 716.5 DL 430.218
+716.5 425.218 716.5 DL 430.218 705.5 430.218 715.5 DL 419.22 705.5
+414.22 705.5 DL 420.218 705.5 415.218 705.5 DL 425.218 705.5 420.218
+705.5 DL 430.218 705.5 425.218 705.5 DL 431.884 706.5 431.884 716.5 DL
+431.884 705.5 431.884 715.5 DL F5(CSI)417.551 713 Q 447.882 706.5
+447.882 716.5 DL 436.884 716.5 431.884 716.5 DL 437.882 716.5 432.882
+716.5 DL 442.882 716.5 437.882 716.5 DL 447.882 716.5 442.882 716.5 DL
+447.882 705.5 447.882 715.5 DL 436.884 705.5 431.884 705.5 DL 437.882
+705.5 432.882 705.5 DL 442.882 705.5 437.882 705.5 DL 447.882 705.5
+442.882 705.5 DL F0 -22.834 21.002(C- -)436.548 714 T(7)21.448 E 139.5
+718.5 139.5 728.5 DL 139.5 717.5 139.5 727.5 DL 8.9(\(Home\) 7)72 726 R
+155.498 718.5 155.498 728.5 DL 144.5 728.5 139.5 728.5 DL 145.498 728.5
+140.498 728.5 DL 150.498 728.5 145.498 728.5 DL 155.498 728.5 150.498
+728.5 DL 155.498 717.5 155.498 727.5 DL 144.5 717.5 139.5 717.5 DL
+145.498 717.5 140.498 717.5 DL 150.498 717.5 145.498 717.5 DL 155.498
+717.5 150.498 717.5 DL 157.164 718.5 157.164 728.5 DL 157.164 717.5
+157.164 727.5 DL F5(CSI)142.831 725 Q 173.162 718.5 173.162 728.5 DL
+162.164 728.5 157.164 728.5 DL 163.162 728.5 158.162 728.5 DL 168.162
+728.5 163.162 728.5 DL 173.162 728.5 168.162 728.5 DL 173.162 717.5
+173.162 727.5 DL 162.164 717.5 157.164 717.5 DL 163.162 717.5 158.162
+717.5 DL 168.162 717.5 163.162 717.5 DL 173.162 717.5 168.162 717.5 DL
+174.828 718.5 174.828 728.5 DL 174.828 717.5 174.828 727.5 DL 190.826
+718.5 190.826 728.5 DL 179.828 728.5 174.828 728.5 DL 180.826 728.5
+175.826 728.5 DL 185.826 728.5 180.826 728.5 DL 190.826 728.5 185.826
+728.5 DL 190.826 717.5 190.826 727.5 DL 179.828 717.5 174.828 717.5 DL
+180.826 717.5 175.826 717.5 DL 185.826 717.5 180.826 717.5 DL 190.826
+717.5 185.826 717.5 DL F0 13.499(1~)162.663 726 S 8.06(ka1 K1)-.841 F
+41.6(8\()41.6 G(UpArro)-41.6 E 415.07 718.5 415.07 728.5 DL 415.07 717.5
+415.07 727.5 DL 20.27(w\) 8)356.75 726 R 431.068 718.5 431.068 728.5 DL
+420.07 728.5 415.07 728.5 DL 421.068 728.5 416.068 728.5 DL 426.068
+728.5 421.068 728.5 DL 431.068 728.5 426.068 728.5 DL 431.068 717.5
+431.068 727.5 DL 420.07 717.5 415.07 717.5 DL 421.068 717.5 416.068
+717.5 DL 426.068 717.5 421.068 717.5 DL 431.068 717.5 426.068 717.5 DL
+432.734 718.5 432.734 728.5 DL 432.734 717.5 432.734 727.5 DL F5(CSI)
+418.401 725 Q 448.732 718.5 448.732 728.5 DL 437.734 728.5 432.734 728.5
+DL 438.732 728.5 433.732 728.5 DL 443.732 728.5 438.732 728.5 DL 448.732
+728.5 443.732 728.5 DL 448.732 717.5 448.732 727.5 DL 437.734 717.5
+432.734 717.5 DL 438.732 717.5 433.732 717.5 DL 443.732 717.5 438.732
+717.5 DL 448.732 717.5 443.732 717.5 DL F0 -22.284 20.727(A- -)437.123
+726 T(9)20.873 E(14)301 768 Q EP
+%%Page: 15 15
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 48 Q(Function K)
+306.47 E -.15(ey)-.25 G(s).15 E(\(P)72 84 Q .4 LW 139.5 76.5 139.5 86.5
+DL 139.5 75.5 139.5 85.5 DL 1.83(ageUp\) 9)80.74 84 R 155.498 76.5
+155.498 86.5 DL 144.5 86.5 139.5 86.5 DL 145.498 86.5 140.498 86.5 DL
+150.498 86.5 145.498 86.5 DL 155.498 86.5 150.498 86.5 DL 155.498 75.5
+155.498 85.5 DL 144.5 75.5 139.5 75.5 DL 145.498 75.5 140.498 75.5 DL
+150.498 75.5 145.498 75.5 DL 155.498 75.5 150.498 75.5 DL 157.164 76.5
+157.164 86.5 DL 157.164 75.5 157.164 85.5 DL/F1 6/Times-Roman@0 SF(CSI)
+142.831 83 Q 173.162 76.5 173.162 86.5 DL 162.164 86.5 157.164 86.5 DL
+163.162 86.5 158.162 86.5 DL 168.162 86.5 163.162 86.5 DL 173.162 86.5
+168.162 86.5 DL 173.162 75.5 173.162 85.5 DL 162.164 75.5 157.164 75.5
+DL 163.162 75.5 158.162 75.5 DL 168.162 75.5 163.162 75.5 DL 173.162
+75.5 168.162 75.5 DL 174.828 76.5 174.828 86.5 DL 174.828 75.5 174.828
+85.5 DL 190.826 76.5 190.826 86.5 DL 179.828 86.5 174.828 86.5 DL
+180.826 86.5 175.826 86.5 DL 185.826 86.5 180.826 86.5 DL 190.826 86.5
+185.826 86.5 DL 190.826 75.5 190.826 85.5 DL 179.828 75.5 174.828 75.5
+DL 180.826 75.5 175.826 75.5 DL 185.826 75.5 180.826 75.5 DL 190.826
+75.5 185.826 75.5 DL F0 -14.29 13.499(5~ k)162.663 84 T 8.06(a3 K3)
+-13.499 F 2.5(=\()2.5 G 314.42 76.5 314.42 86.5 DL 314.42 75.5 314.42
+85.5 DL 11.04(equal\) =)250.89 84 R 330.418 76.5 330.418 86.5 DL 319.42
+86.5 314.42 86.5 DL 320.418 86.5 315.418 86.5 DL 325.418 86.5 320.418
+86.5 DL 330.418 86.5 325.418 86.5 DL 330.418 75.5 330.418 85.5 DL 319.42
+75.5 314.42 75.5 DL 320.418 75.5 315.418 75.5 DL 325.418 75.5 320.418
+75.5 DL 330.418 75.5 325.418 75.5 DL 332.084 76.5 332.084 86.5 DL
+332.084 75.5 332.084 85.5 DL F1(SS3)317.583 83 Q 348.082 76.5 348.082
+86.5 DL 337.084 86.5 332.084 86.5 DL 338.082 86.5 333.082 86.5 DL
+343.082 86.5 338.082 86.5 DL 348.082 86.5 343.082 86.5 DL 348.082 75.5
+348.082 85.5 DL 337.084 75.5 332.084 75.5 DL 338.082 75.5 333.082 75.5
+DL 343.082 75.5 338.082 75.5 DL 348.082 75.5 343.082 75.5 DL F0 -22.284
+20.727(X- -)336.473 84 T(The)72 102 Q 2.5(ya)-.15 G(lso pro)-2.5 E
+(vide 12 function k)-.15 E -.15(ey)-.1 G(s, as well as a fe).15 E 2.5
+(wo)-.25 G(ther special-purpose k)-2.5 E -.15(ey)-.1 G(s.).15 E 1.497
+(center; cf3)72 120 R 1.497(cf3 lf3w\(2c\))12.23 F 1.496(lf3w\(2c\) .)
+15.57 F -2.15 -.25(Ke y)6.496 H 376.024 112.5 376.024 122.5 DL 376.024
+111.5 376.024 121.5 DL 1.496(Escape Sequence _ F1)267.396 120 R 392.022
+112.5 392.022 122.5 DL 381.024 122.5 376.024 122.5 DL 382.022 122.5
+377.022 122.5 DL 387.022 122.5 382.022 122.5 DL 392.022 122.5 387.022
+122.5 DL 392.022 111.5 392.022 121.5 DL 381.024 111.5 376.024 111.5 DL
+382.022 111.5 377.022 111.5 DL 387.022 111.5 382.022 111.5 DL 392.022
+111.5 387.022 111.5 DL 393.688 112.5 393.688 122.5 DL 393.688 111.5
+393.688 121.5 DL F1(SS3)379.187 119 Q 409.686 112.5 409.686 122.5 DL
+398.688 122.5 393.688 122.5 DL 399.686 122.5 394.686 122.5 DL 404.686
+122.5 399.686 122.5 DL 409.686 122.5 404.686 122.5 DL 409.686 111.5
+409.686 121.5 DL 398.688 111.5 393.688 111.5 DL 399.686 111.5 394.686
+111.5 DL 404.686 111.5 399.686 111.5 DL 409.686 111.5 404.686 111.5 DL
+F0 10.881(PF)398.907 120 S 440.348 112.5 440.348 122.5 DL 440.348 111.5
+440.348 121.5 DL(2)420.908 120 Q 456.346 112.5 456.346 122.5 DL 445.348
+122.5 440.348 122.5 DL 446.346 122.5 441.346 122.5 DL 451.346 122.5
+446.346 122.5 DL 456.346 122.5 451.346 122.5 DL 456.346 111.5 456.346
+121.5 DL 445.348 111.5 440.348 111.5 DL 446.346 111.5 441.346 111.5 DL
+451.346 111.5 446.346 111.5 DL 456.346 111.5 451.346 111.5 DL 458.012
+112.5 458.012 122.5 DL 458.012 111.5 458.012 121.5 DL F1(SS3)443.511 119
+Q 474.01 112.5 474.01 122.5 DL 463.012 122.5 458.012 122.5 DL 464.01
+122.5 459.01 122.5 DL 469.01 122.5 464.01 122.5 DL 474.01 122.5 469.01
+122.5 DL 474.01 111.5 474.01 121.5 DL 463.012 111.5 458.012 111.5 DL
+464.01 111.5 459.01 111.5 DL 469.01 111.5 464.01 111.5 DL 474.01 111.5
+469.01 111.5 DL F0 10.051(QF)462.401 120 S 504.672 112.5 504.672 122.5
+DL 504.672 111.5 504.672 121.5 DL(3)485.232 120 Q 520.67 112.5 520.67
+122.5 DL 509.672 122.5 504.672 122.5 DL 510.67 122.5 505.67 122.5 DL
+515.67 122.5 510.67 122.5 DL 520.67 122.5 515.67 122.5 DL 520.67 111.5
+520.67 121.5 DL 509.672 111.5 504.672 111.5 DL 510.67 111.5 505.67 111.5
+DL 515.67 111.5 510.67 111.5 DL 520.67 111.5 515.67 111.5 DL 522.336
+112.5 522.336 122.5 DL 522.336 111.5 522.336 121.5 DL F1(SS3)507.835 119
+Q 538.334 112.5 538.334 122.5 DL 527.336 122.5 522.336 122.5 DL 528.334
+122.5 523.334 122.5 DL 533.334 122.5 528.334 122.5 DL 538.334 122.5
+533.334 122.5 DL 538.334 111.5 538.334 121.5 DL 527.336 111.5 522.336
+111.5 DL 528.334 111.5 523.334 111.5 DL 533.334 111.5 528.334 111.5 DL
+538.334 111.5 533.334 111.5 DL F0(R)527 120 Q 97 124.5 97 134.5 DL 97
+123.5 97 133.5 DL(F4)72 132 Q 112.998 124.5 112.998 134.5 DL 102 134.5
+97 134.5 DL 102.998 134.5 97.998 134.5 DL 107.998 134.5 102.998 134.5 DL
+112.998 134.5 107.998 134.5 DL 112.998 123.5 112.998 133.5 DL 102 123.5
+97 123.5 DL 102.998 123.5 97.998 123.5 DL 107.998 123.5 102.998 123.5 DL
+112.998 123.5 107.998 123.5 DL 114.664 124.5 114.664 134.5 DL 114.664
+123.5 114.664 133.5 DL F1(SS3)100.163 131 Q 130.662 124.5 130.662 134.5
+DL 119.664 134.5 114.664 134.5 DL 120.662 134.5 115.662 134.5 DL 125.662
+134.5 120.662 134.5 DL 130.662 134.5 125.662 134.5 DL 130.662 123.5
+130.662 133.5 DL 119.664 123.5 114.664 123.5 DL 120.662 123.5 115.662
+123.5 DL 125.662 123.5 120.662 123.5 DL 130.662 123.5 125.662 123.5 DL
+F0 13.147(SF)119.883 132 S 163.59 124.5 163.59 134.5 DL 163.59 123.5
+163.59 133.5 DL(5)144.15 132 Q 179.588 124.5 179.588 134.5 DL 168.59
+134.5 163.59 134.5 DL 169.588 134.5 164.588 134.5 DL 174.588 134.5
+169.588 134.5 DL 179.588 134.5 174.588 134.5 DL 179.588 123.5 179.588
+133.5 DL 168.59 123.5 163.59 123.5 DL 169.588 123.5 164.588 123.5 DL
+174.588 123.5 169.588 123.5 DL 179.588 123.5 174.588 123.5 DL 181.254
+124.5 181.254 134.5 DL 181.254 123.5 181.254 133.5 DL F1(CSI)166.921 131
+Q 197.252 124.5 197.252 134.5 DL 186.254 134.5 181.254 134.5 DL 187.252
+134.5 182.252 134.5 DL 192.252 134.5 187.252 134.5 DL 197.252 134.5
+192.252 134.5 DL 197.252 123.5 197.252 133.5 DL 186.254 123.5 181.254
+123.5 DL 187.252 123.5 182.252 123.5 DL 192.252 123.5 187.252 123.5 DL
+197.252 123.5 192.252 123.5 DL 198.918 124.5 198.918 134.5 DL 198.918
+123.5 198.918 133.5 DL 214.916 124.5 214.916 134.5 DL 203.918 134.5
+198.918 134.5 DL 204.916 134.5 199.916 134.5 DL 209.916 134.5 204.916
+134.5 DL 214.916 134.5 209.916 134.5 DL 214.916 123.5 214.916 133.5 DL
+203.918 123.5 198.918 123.5 DL 204.916 123.5 199.916 123.5 DL 209.916
+123.5 204.916 123.5 DL 214.916 123.5 209.916 123.5 DL 216.582 124.5
+216.582 134.5 DL 216.582 123.5 216.582 133.5 DL 232.58 124.5 232.58
+134.5 DL 221.582 134.5 216.582 134.5 DL 222.58 134.5 217.58 134.5 DL
+227.58 134.5 222.58 134.5 DL 232.58 134.5 227.58 134.5 DL 232.58 123.5
+232.58 133.5 DL 221.582 123.5 216.582 123.5 DL 222.58 123.5 217.58 123.5
+DL 227.58 123.5 222.58 123.5 DL 232.58 123.5 227.58 123.5 DL F0 -14.329
+12.664(15 ~)186.753 132 T 265.508 124.5 265.508 134.5 DL 265.508 123.5
+265.508 133.5 DL(F6)240.508 132 Q 281.506 124.5 281.506 134.5 DL 270.508
+134.5 265.508 134.5 DL 271.506 134.5 266.506 134.5 DL 276.506 134.5
+271.506 134.5 DL 281.506 134.5 276.506 134.5 DL 281.506 123.5 281.506
+133.5 DL 270.508 123.5 265.508 123.5 DL 271.506 123.5 266.506 123.5 DL
+276.506 123.5 271.506 123.5 DL 281.506 123.5 276.506 123.5 DL 283.172
+124.5 283.172 134.5 DL 283.172 123.5 283.172 133.5 DL F1(CSI)268.839 131
+Q 299.17 124.5 299.17 134.5 DL 288.172 134.5 283.172 134.5 DL 289.17
+134.5 284.17 134.5 DL 294.17 134.5 289.17 134.5 DL 299.17 134.5 294.17
+134.5 DL 299.17 123.5 299.17 133.5 DL 288.172 123.5 283.172 123.5 DL
+289.17 123.5 284.17 123.5 DL 294.17 123.5 289.17 123.5 DL 299.17 123.5
+294.17 123.5 DL 300.836 124.5 300.836 134.5 DL 300.836 123.5 300.836
+133.5 DL 316.834 124.5 316.834 134.5 DL 305.836 134.5 300.836 134.5 DL
+306.834 134.5 301.834 134.5 DL 311.834 134.5 306.834 134.5 DL 316.834
+134.5 311.834 134.5 DL 316.834 123.5 316.834 133.5 DL 305.836 123.5
+300.836 123.5 DL 306.834 123.5 301.834 123.5 DL 311.834 123.5 306.834
+123.5 DL 316.834 123.5 311.834 123.5 DL 318.5 124.5 318.5 134.5 DL 318.5
+123.5 318.5 133.5 DL 334.498 124.5 334.498 134.5 DL 323.5 134.5 318.5
+134.5 DL 324.498 134.5 319.498 134.5 DL 329.498 134.5 324.498 134.5 DL
+334.498 134.5 329.498 134.5 DL 334.498 123.5 334.498 133.5 DL 323.5
+123.5 318.5 123.5 DL 324.498 123.5 319.498 123.5 DL 329.498 123.5
+324.498 123.5 DL 334.498 123.5 329.498 123.5 DL F0 -14.329 12.664(17 ~)
+288.671 132 T 367.426 124.5 367.426 134.5 DL 367.426 123.5 367.426 133.5
+DL(F7)342.426 132 Q 383.424 124.5 383.424 134.5 DL 372.426 134.5 367.426
+134.5 DL 373.424 134.5 368.424 134.5 DL 378.424 134.5 373.424 134.5 DL
+383.424 134.5 378.424 134.5 DL 383.424 123.5 383.424 133.5 DL 372.426
+123.5 367.426 123.5 DL 373.424 123.5 368.424 123.5 DL 378.424 123.5
+373.424 123.5 DL 383.424 123.5 378.424 123.5 DL 385.09 124.5 385.09
+134.5 DL 385.09 123.5 385.09 133.5 DL F1(CSI)370.757 131 Q 401.088 124.5
+401.088 134.5 DL 390.09 134.5 385.09 134.5 DL 391.088 134.5 386.088
+134.5 DL 396.088 134.5 391.088 134.5 DL 401.088 134.5 396.088 134.5 DL
+401.088 123.5 401.088 133.5 DL 390.09 123.5 385.09 123.5 DL 391.088
+123.5 386.088 123.5 DL 396.088 123.5 391.088 123.5 DL 401.088 123.5
+396.088 123.5 DL 402.754 124.5 402.754 134.5 DL 402.754 123.5 402.754
+133.5 DL 418.752 124.5 418.752 134.5 DL 407.754 134.5 402.754 134.5 DL
+408.752 134.5 403.752 134.5 DL 413.752 134.5 408.752 134.5 DL 418.752
+134.5 413.752 134.5 DL 418.752 123.5 418.752 133.5 DL 407.754 123.5
+402.754 123.5 DL 408.752 123.5 403.752 123.5 DL 413.752 123.5 408.752
+123.5 DL 418.752 123.5 413.752 123.5 DL 420.418 124.5 420.418 134.5 DL
+420.418 123.5 420.418 133.5 DL 436.416 124.5 436.416 134.5 DL 425.418
+134.5 420.418 134.5 DL 426.416 134.5 421.416 134.5 DL 431.416 134.5
+426.416 134.5 DL 436.416 134.5 431.416 134.5 DL 436.416 123.5 436.416
+133.5 DL 425.418 123.5 420.418 123.5 DL 426.416 123.5 421.416 123.5 DL
+431.416 123.5 426.416 123.5 DL 436.416 123.5 431.416 123.5 DL F0 -14.329
+12.664(18 ~)390.589 132 T 469.344 124.5 469.344 134.5 DL 469.344 123.5
+469.344 133.5 DL(F8)444.344 132 Q 485.342 124.5 485.342 134.5 DL 474.344
+134.5 469.344 134.5 DL 475.342 134.5 470.342 134.5 DL 480.342 134.5
+475.342 134.5 DL 485.342 134.5 480.342 134.5 DL 485.342 123.5 485.342
+133.5 DL 474.344 123.5 469.344 123.5 DL 475.342 123.5 470.342 123.5 DL
+480.342 123.5 475.342 123.5 DL 485.342 123.5 480.342 123.5 DL 487.008
+124.5 487.008 134.5 DL 487.008 123.5 487.008 133.5 DL F1(CSI)472.675 131
+Q 503.006 124.5 503.006 134.5 DL 492.008 134.5 487.008 134.5 DL 493.006
+134.5 488.006 134.5 DL 498.006 134.5 493.006 134.5 DL 503.006 134.5
+498.006 134.5 DL 503.006 123.5 503.006 133.5 DL 492.008 123.5 487.008
+123.5 DL 493.006 123.5 488.006 123.5 DL 498.006 123.5 493.006 123.5 DL
+503.006 123.5 498.006 123.5 DL 504.672 124.5 504.672 134.5 DL 504.672
+123.5 504.672 133.5 DL 520.67 124.5 520.67 134.5 DL 509.672 134.5
+504.672 134.5 DL 510.67 134.5 505.67 134.5 DL 515.67 134.5 510.67 134.5
+DL 520.67 134.5 515.67 134.5 DL 520.67 123.5 520.67 133.5 DL 509.672
+123.5 504.672 123.5 DL 510.67 123.5 505.67 123.5 DL 515.67 123.5 510.67
+123.5 DL 520.67 123.5 515.67 123.5 DL 522.336 124.5 522.336 134.5 DL
+522.336 123.5 522.336 133.5 DL 538.334 124.5 538.334 134.5 DL 527.336
+134.5 522.336 134.5 DL 528.334 134.5 523.334 134.5 DL 533.334 134.5
+528.334 134.5 DL 538.334 134.5 533.334 134.5 DL 538.334 123.5 538.334
+133.5 DL 527.336 123.5 522.336 123.5 DL 528.334 123.5 523.334 123.5 DL
+533.334 123.5 528.334 123.5 DL 538.334 123.5 533.334 123.5 DL F0 -14.329
+12.664(19 ~)492.507 132 T 97 136.5 97 146.5 DL 97 135.5 97 145.5 DL(F9)
+72 144 Q 112.998 136.5 112.998 146.5 DL 102 146.5 97 146.5 DL 102.998
+146.5 97.998 146.5 DL 107.998 146.5 102.998 146.5 DL 112.998 146.5
+107.998 146.5 DL 112.998 135.5 112.998 145.5 DL 102 135.5 97 135.5 DL
+102.998 135.5 97.998 135.5 DL 107.998 135.5 102.998 135.5 DL 112.998
+135.5 107.998 135.5 DL 114.664 136.5 114.664 146.5 DL 114.664 135.5
+114.664 145.5 DL F1(CSI)100.331 143 Q 130.662 136.5 130.662 146.5 DL
+119.664 146.5 114.664 146.5 DL 120.662 146.5 115.662 146.5 DL 125.662
+146.5 120.662 146.5 DL 130.662 146.5 125.662 146.5 DL 130.662 135.5
+130.662 145.5 DL 119.664 135.5 114.664 135.5 DL 120.662 135.5 115.662
+135.5 DL 125.662 135.5 120.662 135.5 DL 130.662 135.5 125.662 135.5 DL
+132.328 136.5 132.328 146.5 DL 132.328 135.5 132.328 145.5 DL 148.326
+136.5 148.326 146.5 DL 137.328 146.5 132.328 146.5 DL 138.326 146.5
+133.326 146.5 DL 143.326 146.5 138.326 146.5 DL 148.326 146.5 143.326
+146.5 DL 148.326 135.5 148.326 145.5 DL 137.328 135.5 132.328 135.5 DL
+138.326 135.5 133.326 135.5 DL 143.326 135.5 138.326 135.5 DL 148.326
+135.5 143.326 135.5 DL 149.992 136.5 149.992 146.5 DL 149.992 135.5
+149.992 145.5 DL 165.99 136.5 165.99 146.5 DL 154.992 146.5 149.992
+146.5 DL 155.99 146.5 150.99 146.5 DL 160.99 146.5 155.99 146.5 DL
+165.99 146.5 160.99 146.5 DL 165.99 135.5 165.99 145.5 DL 154.992 135.5
+149.992 135.5 DL 155.99 135.5 150.99 135.5 DL 160.99 135.5 155.99 135.5
+DL 165.99 135.5 160.99 135.5 DL F0 -14.329 12.664(20 ~)120.163 144 T
+195.156 136.5 195.156 146.5 DL 195.156 135.5 195.156 145.5 DL(F10)
+170.156 144 Q 211.154 136.5 211.154 146.5 DL 200.156 146.5 195.156 146.5
+DL 201.154 146.5 196.154 146.5 DL 206.154 146.5 201.154 146.5 DL 211.154
+146.5 206.154 146.5 DL 211.154 135.5 211.154 145.5 DL 200.156 135.5
+195.156 135.5 DL 201.154 135.5 196.154 135.5 DL 206.154 135.5 201.154
+135.5 DL 211.154 135.5 206.154 135.5 DL 212.82 136.5 212.82 146.5 DL
+212.82 135.5 212.82 145.5 DL F1(CSI)198.487 143 Q 228.818 136.5 228.818
+146.5 DL 217.82 146.5 212.82 146.5 DL 218.818 146.5 213.818 146.5 DL
+223.818 146.5 218.818 146.5 DL 228.818 146.5 223.818 146.5 DL 228.818
+135.5 228.818 145.5 DL 217.82 135.5 212.82 135.5 DL 218.818 135.5
+213.818 135.5 DL 223.818 135.5 218.818 135.5 DL 228.818 135.5 223.818
+135.5 DL 230.484 136.5 230.484 146.5 DL 230.484 135.5 230.484 145.5 DL
+246.482 136.5 246.482 146.5 DL 235.484 146.5 230.484 146.5 DL 236.482
+146.5 231.482 146.5 DL 241.482 146.5 236.482 146.5 DL 246.482 146.5
+241.482 146.5 DL 246.482 135.5 246.482 145.5 DL 235.484 135.5 230.484
+135.5 DL 236.482 135.5 231.482 135.5 DL 241.482 135.5 236.482 135.5 DL
+246.482 135.5 241.482 135.5 DL 248.148 136.5 248.148 146.5 DL 248.148
+135.5 248.148 145.5 DL 264.146 136.5 264.146 146.5 DL 253.148 146.5
+248.148 146.5 DL 254.146 146.5 249.146 146.5 DL 259.146 146.5 254.146
+146.5 DL 264.146 146.5 259.146 146.5 DL 264.146 135.5 264.146 145.5 DL
+253.148 135.5 248.148 135.5 DL 254.146 135.5 249.146 135.5 DL 259.146
+135.5 254.146 135.5 DL 264.146 135.5 259.146 135.5 DL F0 -14.329 12.664
+(21 ~)218.319 144 T 293.312 136.5 293.312 146.5 DL 293.312 135.5 293.312
+145.5 DL(F11)268.312 144 Q 309.31 136.5 309.31 146.5 DL 298.312 146.5
+293.312 146.5 DL 299.31 146.5 294.31 146.5 DL 304.31 146.5 299.31 146.5
+DL 309.31 146.5 304.31 146.5 DL 309.31 135.5 309.31 145.5 DL 298.312
+135.5 293.312 135.5 DL 299.31 135.5 294.31 135.5 DL 304.31 135.5 299.31
+135.5 DL 309.31 135.5 304.31 135.5 DL 310.976 136.5 310.976 146.5 DL
+310.976 135.5 310.976 145.5 DL F1(CSI)296.643 143 Q 326.974 136.5
+326.974 146.5 DL 315.976 146.5 310.976 146.5 DL 316.974 146.5 311.974
+146.5 DL 321.974 146.5 316.974 146.5 DL 326.974 146.5 321.974 146.5 DL
+326.974 135.5 326.974 145.5 DL 315.976 135.5 310.976 135.5 DL 316.974
+135.5 311.974 135.5 DL 321.974 135.5 316.974 135.5 DL 326.974 135.5
+321.974 135.5 DL 328.64 136.5 328.64 146.5 DL 328.64 135.5 328.64 145.5
+DL 344.638 136.5 344.638 146.5 DL 333.64 146.5 328.64 146.5 DL 334.638
+146.5 329.638 146.5 DL 339.638 146.5 334.638 146.5 DL 344.638 146.5
+339.638 146.5 DL 344.638 135.5 344.638 145.5 DL 333.64 135.5 328.64
+135.5 DL 334.638 135.5 329.638 135.5 DL 339.638 135.5 334.638 135.5 DL
+344.638 135.5 339.638 135.5 DL 346.304 136.5 346.304 146.5 DL 346.304
+135.5 346.304 145.5 DL 362.302 136.5 362.302 146.5 DL 351.304 146.5
+346.304 146.5 DL 352.302 146.5 347.302 146.5 DL 357.302 146.5 352.302
+146.5 DL 362.302 146.5 357.302 146.5 DL 362.302 135.5 362.302 145.5 DL
+351.304 135.5 346.304 135.5 DL 352.302 135.5 347.302 135.5 DL 357.302
+135.5 352.302 135.5 DL 362.302 135.5 357.302 135.5 DL F0 -14.329 12.664
+(23 ~)316.475 144 T 391.468 136.5 391.468 146.5 DL 391.468 135.5 391.468
+145.5 DL(F12)366.468 144 Q 407.466 136.5 407.466 146.5 DL 396.468 146.5
+391.468 146.5 DL 397.466 146.5 392.466 146.5 DL 402.466 146.5 397.466
+146.5 DL 407.466 146.5 402.466 146.5 DL 407.466 135.5 407.466 145.5 DL
+396.468 135.5 391.468 135.5 DL 397.466 135.5 392.466 135.5 DL 402.466
+135.5 397.466 135.5 DL 407.466 135.5 402.466 135.5 DL 409.132 136.5
+409.132 146.5 DL 409.132 135.5 409.132 145.5 DL F1(CSI)394.799 143 Q
+425.13 136.5 425.13 146.5 DL 414.132 146.5 409.132 146.5 DL 415.13 146.5
+410.13 146.5 DL 420.13 146.5 415.13 146.5 DL 425.13 146.5 420.13 146.5
+DL 425.13 135.5 425.13 145.5 DL 414.132 135.5 409.132 135.5 DL 415.13
+135.5 410.13 135.5 DL 420.13 135.5 415.13 135.5 DL 425.13 135.5 420.13
+135.5 DL 426.796 136.5 426.796 146.5 DL 426.796 135.5 426.796 145.5 DL
+442.794 136.5 442.794 146.5 DL 431.796 146.5 426.796 146.5 DL 432.794
+146.5 427.794 146.5 DL 437.794 146.5 432.794 146.5 DL 442.794 146.5
+437.794 146.5 DL 442.794 135.5 442.794 145.5 DL 431.796 135.5 426.796
+135.5 DL 432.794 135.5 427.794 135.5 DL 437.794 135.5 432.794 135.5 DL
+442.794 135.5 437.794 135.5 DL 444.46 136.5 444.46 146.5 DL 444.46 135.5
+444.46 145.5 DL 460.458 136.5 460.458 146.5 DL 449.46 146.5 444.46 146.5
+DL 450.458 146.5 445.458 146.5 DL 455.458 146.5 450.458 146.5 DL 460.458
+146.5 455.458 146.5 DL 460.458 135.5 460.458 145.5 DL 449.46 135.5
+444.46 135.5 DL 450.458 135.5 445.458 135.5 DL 455.458 135.5 450.458
+135.5 DL 460.458 135.5 455.458 135.5 DL F0 -14.329 12.664(24 ~)414.631
+144 T .35(Older v)72 166.8 R .35(ersions of)-.15 F/F2 10/Times-Italic@0
+SF(xterm)2.85 E F0 .35(implement dif)2.85 F .349
+(ferent escape sequences for F1 through F4.)-.25 F .349
+(These can be acti)5.349 F -.25(va)-.25 G .349(ted by setting).25 F(the)
+72 178.8 Q F2(oldXtermFK)2.788 E -.3(ey)-.35 G(s).3 E F0 2.788
+(resource. Ho)2.788 F(we)-.25 E -.15(ve)-.25 G 1.088 -.4(r, s).15 H .288
+(ince the).4 F 2.788(yd)-.15 G 2.788(on)-2.788 G .288
+(ot correspond to an)-2.788 F 2.788(yh)-.15 G(ardw)-2.788 E .288
+(are terminal, the)-.1 F 2.788(yh)-.15 G -2.25 -.2(av e)-2.788 H .289
+(been dep-)2.989 F 2.5(recated. \(The)72 190.8 R(DEC VT220 reserv)2.5 E
+(es F1 through F5 for local functions such as)-.15 E/F3 10/Times-Bold@0
+SF(Setup)2.5 E F0(\).)A .705(center; cf3)72 208.8 R .705(cf3 lf3w\(2c\))
+12.23 F .705(lf3w\(2c\) .)15.57 F -2.15 -.25(Ke y)5.705 H 370.484 201.3
+370.484 211.3 DL 370.484 200.3 370.484 210.3 DL .705
+(Escape Sequence _ F1)264.23 208.8 R 386.482 201.3 386.482 211.3 DL
+375.484 211.3 370.484 211.3 DL 376.482 211.3 371.482 211.3 DL 381.482
+211.3 376.482 211.3 DL 386.482 211.3 381.482 211.3 DL 386.482 200.3
+386.482 210.3 DL 375.484 200.3 370.484 200.3 DL 376.482 200.3 371.482
+200.3 DL 381.482 200.3 376.482 200.3 DL 386.482 200.3 381.482 200.3 DL
+388.148 201.3 388.148 211.3 DL 388.148 200.3 388.148 210.3 DL F1(CSI)
+373.815 207.8 Q 404.146 201.3 404.146 211.3 DL 393.148 211.3 388.148
+211.3 DL 394.146 211.3 389.146 211.3 DL 399.146 211.3 394.146 211.3 DL
+404.146 211.3 399.146 211.3 DL 404.146 200.3 404.146 210.3 DL 393.148
+200.3 388.148 200.3 DL 394.146 200.3 389.146 200.3 DL 399.146 200.3
+394.146 200.3 DL 404.146 200.3 399.146 200.3 DL 405.812 201.3 405.812
+211.3 DL 405.812 200.3 405.812 210.3 DL 421.81 201.3 421.81 211.3 DL
+410.812 211.3 405.812 211.3 DL 411.81 211.3 406.81 211.3 DL 416.81 211.3
+411.81 211.3 DL 421.81 211.3 416.81 211.3 DL 421.81 200.3 421.81 210.3
+DL 410.812 200.3 405.812 200.3 DL 411.81 200.3 406.81 200.3 DL 416.81
+200.3 411.81 200.3 DL 421.81 200.3 416.81 200.3 DL 423.476 201.3 423.476
+211.3 DL 423.476 200.3 423.476 210.3 DL 439.474 201.3 439.474 211.3 DL
+428.476 211.3 423.476 211.3 DL 429.474 211.3 424.474 211.3 DL 434.474
+211.3 429.474 211.3 DL 439.474 211.3 434.474 211.3 DL 439.474 200.3
+439.474 210.3 DL 428.476 200.3 423.476 200.3 DL 429.474 200.3 424.474
+200.3 DL 434.474 200.3 429.474 200.3 DL 439.474 200.3 434.474 200.3 DL
+F0 -14.329 12.664(11 ~)393.647 208.8 T 469.344 201.3 469.344 211.3 DL
+469.344 200.3 469.344 210.3 DL(F2)444.344 208.8 Q 485.342 201.3 485.342
+211.3 DL 474.344 211.3 469.344 211.3 DL 475.342 211.3 470.342 211.3 DL
+480.342 211.3 475.342 211.3 DL 485.342 211.3 480.342 211.3 DL 485.342
+200.3 485.342 210.3 DL 474.344 200.3 469.344 200.3 DL 475.342 200.3
+470.342 200.3 DL 480.342 200.3 475.342 200.3 DL 485.342 200.3 480.342
+200.3 DL 487.008 201.3 487.008 211.3 DL 487.008 200.3 487.008 210.3 DL
+F1(CSI)472.675 207.8 Q 503.006 201.3 503.006 211.3 DL 492.008 211.3
+487.008 211.3 DL 493.006 211.3 488.006 211.3 DL 498.006 211.3 493.006
+211.3 DL 503.006 211.3 498.006 211.3 DL 503.006 200.3 503.006 210.3 DL
+492.008 200.3 487.008 200.3 DL 493.006 200.3 488.006 200.3 DL 498.006
+200.3 493.006 200.3 DL 503.006 200.3 498.006 200.3 DL 504.672 201.3
+504.672 211.3 DL 504.672 200.3 504.672 210.3 DL 520.67 201.3 520.67
+211.3 DL 509.672 211.3 504.672 211.3 DL 510.67 211.3 505.67 211.3 DL
+515.67 211.3 510.67 211.3 DL 520.67 211.3 515.67 211.3 DL 520.67 200.3
+520.67 210.3 DL 509.672 200.3 504.672 200.3 DL 510.67 200.3 505.67 200.3
+DL 515.67 200.3 510.67 200.3 DL 520.67 200.3 515.67 200.3 DL 522.336
+201.3 522.336 211.3 DL 522.336 200.3 522.336 210.3 DL 538.334 201.3
+538.334 211.3 DL 527.336 211.3 522.336 211.3 DL 528.334 211.3 523.334
+211.3 DL 533.334 211.3 528.334 211.3 DL 538.334 211.3 533.334 211.3 DL
+538.334 200.3 538.334 210.3 DL 527.336 200.3 522.336 200.3 DL 528.334
+200.3 523.334 200.3 DL 533.334 200.3 528.334 200.3 DL 538.334 200.3
+533.334 200.3 DL F0 -14.329 12.664(12 ~)492.507 208.8 T 97 213.3 97
+223.3 DL 97 212.3 97 222.3 DL(F3)72 220.8 Q 112.998 213.3 112.998 223.3
+DL 102 223.3 97 223.3 DL 102.998 223.3 97.998 223.3 DL 107.998 223.3
+102.998 223.3 DL 112.998 223.3 107.998 223.3 DL 112.998 212.3 112.998
+222.3 DL 102 212.3 97 212.3 DL 102.998 212.3 97.998 212.3 DL 107.998
+212.3 102.998 212.3 DL 112.998 212.3 107.998 212.3 DL 114.664 213.3
+114.664 223.3 DL 114.664 212.3 114.664 222.3 DL F1(CSI)100.331 219.8 Q
+130.662 213.3 130.662 223.3 DL 119.664 223.3 114.664 223.3 DL 120.662
+223.3 115.662 223.3 DL 125.662 223.3 120.662 223.3 DL 130.662 223.3
+125.662 223.3 DL 130.662 212.3 130.662 222.3 DL 119.664 212.3 114.664
+212.3 DL 120.662 212.3 115.662 212.3 DL 125.662 212.3 120.662 212.3 DL
+130.662 212.3 125.662 212.3 DL 132.328 213.3 132.328 223.3 DL 132.328
+212.3 132.328 222.3 DL 148.326 213.3 148.326 223.3 DL 137.328 223.3
+132.328 223.3 DL 138.326 223.3 133.326 223.3 DL 143.326 223.3 138.326
+223.3 DL 148.326 223.3 143.326 223.3 DL 148.326 212.3 148.326 222.3 DL
+137.328 212.3 132.328 212.3 DL 138.326 212.3 133.326 212.3 DL 143.326
+212.3 138.326 212.3 DL 148.326 212.3 143.326 212.3 DL 149.992 213.3
+149.992 223.3 DL 149.992 212.3 149.992 222.3 DL 165.99 213.3 165.99
+223.3 DL 154.992 223.3 149.992 223.3 DL 155.99 223.3 150.99 223.3 DL
+160.99 223.3 155.99 223.3 DL 165.99 223.3 160.99 223.3 DL 165.99 212.3
+165.99 222.3 DL 154.992 212.3 149.992 212.3 DL 155.99 212.3 150.99 212.3
+DL 160.99 212.3 155.99 212.3 DL 165.99 212.3 160.99 212.3 DL F0 -14.329
+12.664(13 ~)120.163 220.8 T 195.156 213.3 195.156 223.3 DL 195.156 212.3
+195.156 222.3 DL(F4)170.156 220.8 Q 211.154 213.3 211.154 223.3 DL
+200.156 223.3 195.156 223.3 DL 201.154 223.3 196.154 223.3 DL 206.154
+223.3 201.154 223.3 DL 211.154 223.3 206.154 223.3 DL 211.154 212.3
+211.154 222.3 DL 200.156 212.3 195.156 212.3 DL 201.154 212.3 196.154
+212.3 DL 206.154 212.3 201.154 212.3 DL 211.154 212.3 206.154 212.3 DL
+212.82 213.3 212.82 223.3 DL 212.82 212.3 212.82 222.3 DL F1(CSI)198.487
+219.8 Q 228.818 213.3 228.818 223.3 DL 217.82 223.3 212.82 223.3 DL
+218.818 223.3 213.818 223.3 DL 223.818 223.3 218.818 223.3 DL 228.818
+223.3 223.818 223.3 DL 228.818 212.3 228.818 222.3 DL 217.82 212.3
+212.82 212.3 DL 218.818 212.3 213.818 212.3 DL 223.818 212.3 218.818
+212.3 DL 228.818 212.3 223.818 212.3 DL 230.484 213.3 230.484 223.3 DL
+230.484 212.3 230.484 222.3 DL 246.482 213.3 246.482 223.3 DL 235.484
+223.3 230.484 223.3 DL 236.482 223.3 231.482 223.3 DL 241.482 223.3
+236.482 223.3 DL 246.482 223.3 241.482 223.3 DL 246.482 212.3 246.482
+222.3 DL 235.484 212.3 230.484 212.3 DL 236.482 212.3 231.482 212.3 DL
+241.482 212.3 236.482 212.3 DL 246.482 212.3 241.482 212.3 DL 248.148
+213.3 248.148 223.3 DL 248.148 212.3 248.148 222.3 DL 264.146 213.3
+264.146 223.3 DL 253.148 223.3 248.148 223.3 DL 254.146 223.3 249.146
+223.3 DL 259.146 223.3 254.146 223.3 DL 264.146 223.3 259.146 223.3 DL
+264.146 212.3 264.146 222.3 DL 253.148 212.3 248.148 212.3 DL 254.146
+212.3 249.146 212.3 DL 259.146 212.3 254.146 212.3 DL 264.146 212.3
+259.146 212.3 DL F0 -14.329 12.664(14 ~)218.319 220.8 T .852
+(In normal mode, i.e., a Sun/PC k)72 238.8 R -.15(ey)-.1 G .852
+(board when the).15 F F3(sunK)3.353 E(eyboard)-.25 E F0 .853
+(resource is f)3.353 F(alse,)-.1 E F2(xterm)3.353 E F0 .853
+(recognizes function k)3.353 F -.15(ey)-.1 G(modi\214ers which are para\
+meters appended before the \214nal character of the control sequence.)72
+250.8 Q 1.655(center; cf3)72 268.8 R 1.655(lf3 cf3w\(2c\))12.23 F 1.655
+(lf3w\(2c\) .)13.91 F 1.39(Code Modi\214ers)6.655 F 9.19 4.155(_2 S)
+4.155 H 1.654(hift 3)-4.155 F 1.654(Alt 4)20 F 1.654(Shift + Alt 5)20 F
+(Control)20 E 20(6S)72 280.8 S(hift + Control 7)-20 E(Alt + Control 8)20
+E(Shift + Alt + Control)20 E -.15(Fo)72 298.8 S 2.5(re).15 G
+(xample, shift-F5 w)-2.65 E 229.92 291.3 229.92 301.3 DL 229.92 290.3
+229.92 300.3 DL(ould be sent as)168.26 298.8 Q 245.918 291.3 245.918
+301.3 DL 234.92 301.3 229.92 301.3 DL 235.918 301.3 230.918 301.3 DL
+240.918 301.3 235.918 301.3 DL 245.918 301.3 240.918 301.3 DL 245.918
+290.3 245.918 300.3 DL 234.92 290.3 229.92 290.3 DL 235.918 290.3
+230.918 290.3 DL 240.918 290.3 235.918 290.3 DL 245.918 290.3 240.918
+290.3 DL 247.584 291.3 247.584 301.3 DL 247.584 290.3 247.584 300.3 DL
+F1(CSI)233.251 297.8 Q 263.582 291.3 263.582 301.3 DL 252.584 301.3
+247.584 301.3 DL 253.582 301.3 248.582 301.3 DL 258.582 301.3 253.582
+301.3 DL 263.582 301.3 258.582 301.3 DL 263.582 290.3 263.582 300.3 DL
+252.584 290.3 247.584 290.3 DL 253.582 290.3 248.582 290.3 DL 258.582
+290.3 253.582 290.3 DL 263.582 290.3 258.582 290.3 DL 265.248 291.3
+265.248 301.3 DL 265.248 290.3 265.248 300.3 DL 281.246 291.3 281.246
+301.3 DL 270.248 301.3 265.248 301.3 DL 271.246 301.3 266.246 301.3 DL
+276.246 301.3 271.246 301.3 DL 281.246 301.3 276.246 301.3 DL 281.246
+290.3 281.246 300.3 DL 270.248 290.3 265.248 290.3 DL 271.246 290.3
+266.246 290.3 DL 276.246 290.3 271.246 290.3 DL 281.246 290.3 276.246
+290.3 DL 282.912 291.3 282.912 301.3 DL 282.912 290.3 282.912 300.3 DL
+298.91 291.3 298.91 301.3 DL 287.912 301.3 282.912 301.3 DL 288.91 301.3
+283.91 301.3 DL 293.91 301.3 288.91 301.3 DL 298.91 301.3 293.91 301.3
+DL 298.91 290.3 298.91 300.3 DL 287.912 290.3 282.912 290.3 DL 288.91
+290.3 283.91 290.3 DL 293.91 290.3 288.91 290.3 DL 298.91 290.3 293.91
+290.3 DL 300.576 291.3 300.576 301.3 DL 300.576 290.3 300.576 300.3 DL
+316.574 291.3 316.574 301.3 DL 305.576 301.3 300.576 301.3 DL 306.574
+301.3 301.574 301.3 DL 311.574 301.3 306.574 301.3 DL 316.574 301.3
+311.574 301.3 DL 316.574 290.3 316.574 300.3 DL 305.576 290.3 300.576
+290.3 DL 306.574 290.3 301.574 290.3 DL 311.574 290.3 306.574 290.3 DL
+316.574 290.3 311.574 290.3 DL 318.24 291.3 318.24 301.3 DL 318.24 290.3
+318.24 300.3 DL F0 -14.054 12.664(15 ; 2)253.083 298.8 T 334.238 291.3
+334.238 301.3 DL 323.24 301.3 318.24 301.3 DL 324.238 301.3 319.238
+301.3 DL 329.238 301.3 324.238 301.3 DL 334.238 301.3 329.238 301.3 DL
+334.238 290.3 334.238 300.3 DL 323.24 290.3 318.24 290.3 DL 324.238
+290.3 319.238 290.3 DL 329.238 290.3 324.238 290.3 DL 334.238 290.3
+329.238 290.3 DL(~)324.574 298.8 Q(If the)72 322.8 Q F3(alwaysUseMods)
+2.5 E F0(resource is set, the Meta modi\214er also is recognized, makin\
+g parameters 9 through 16.)2.5 E F3(VT220-Style Function K)72 346.8 Q
+(eys)-.25 E F0(Ho)72 363.6 Q(we)-.25 E -.15(ve)-.25 G -.4(r,).15 G F2
+(xterm)3.071 E F0 .171(is most useful as a DEC VT102 or VT220 emulator)
+2.671 F 5.171(.S)-.55 G .171(et the)-5.171 F F3(sunK)2.671 E(eyboard)
+-.25 E F0 .171(resource to true to force)2.671 F 2.5(aS)72 375.6 S
+(un/PC k)-2.5 E -.15(ey)-.1 G(board to act lik).15 E 2.5(eaV)-.1 G
+(T220 k)-2.5 E -.15(ey)-.1 G(board.).15 E 1.025
+(The VT102/VT220 application k)72 392.4 R -.15(ey)-.1 G 1.025(pad trans\
+mits unique escape sequences in application mode, which are distinct).15
+F(from the cursor and scrolling k)72 404.4 Q -.15(ey)-.1 G(pad:).15 E
+1.84(center; cf3)72 422.4 R 9.73(cf3 cf3)12.23 F 13.07
+(lf3w\(2c\) lf3w\(2c\) lf3w\(2c\))4.34 F 6.84(.K)4.34 G 6.54 -.15(ey N)
+-7.09 H 12.51(umeric Application).15 F 4.341(_S)4.341 G 504.672 414.9
+504.672 424.9 DL 504.672 413.9 504.672 423.9 DL -1.38(pace Space)460.232
+422.4 R 520.67 414.9 520.67 424.9 DL 509.672 424.9 504.672 424.9 DL
+510.67 424.9 505.67 424.9 DL 515.67 424.9 510.67 424.9 DL 520.67 424.9
+515.67 424.9 DL 520.67 413.9 520.67 423.9 DL 509.672 413.9 504.672 413.9
+DL 510.67 413.9 505.67 413.9 DL 515.67 413.9 510.67 413.9 DL 520.67
+413.9 515.67 413.9 DL 522.336 414.9 522.336 424.9 DL 522.336 413.9
+522.336 423.9 DL 538.334 414.9 538.334 424.9 DL 527.336 424.9 522.336
+424.9 DL 528.334 424.9 523.334 424.9 DL 533.334 424.9 528.334 424.9 DL
+538.334 424.9 533.334 424.9 DL 538.334 413.9 538.334 423.9 DL 527.336
+413.9 522.336 413.9 DL 528.334 413.9 523.334 413.9 DL 533.334 413.9
+528.334 413.9 DL 538.334 413.9 533.334 413.9 DL F1 7.992(SS3 SP)507.835
+421.4 R F0 -.8(Ta)72 434.4 S 10.25(bT).8 G 122 426.9 122 436.9 DL 122
+425.9 122 435.9 DL(ab)102.31 434.4 Q 137.998 426.9 137.998 436.9 DL 127
+436.9 122 436.9 DL 127.998 436.9 122.998 436.9 DL 132.998 436.9 127.998
+436.9 DL 137.998 436.9 132.998 436.9 DL 137.998 425.9 137.998 435.9 DL
+127 425.9 122 425.9 DL 127.998 425.9 122.998 425.9 DL 132.998 425.9
+127.998 425.9 DL 137.998 425.9 132.998 425.9 DL 139.664 426.9 139.664
+436.9 DL 139.664 425.9 139.664 435.9 DL F1(SS3)125.163 433.4 Q 155.662
+426.9 155.662 436.9 DL 144.664 436.9 139.664 436.9 DL 145.662 436.9
+140.662 436.9 DL 150.662 436.9 145.662 436.9 DL 155.662 436.9 150.662
+436.9 DL 155.662 425.9 155.662 435.9 DL 144.664 425.9 139.664 425.9 DL
+145.662 425.9 140.662 425.9 DL 150.662 425.9 145.662 425.9 DL 155.662
+425.9 150.662 425.9 DL F0 33.563(IE)145.998 434.4 S 232.891 426.9
+232.891 436.9 DL 232.891 425.9 232.891 435.9 DL .84(nter CR)189.001
+434.4 R 248.889 426.9 248.889 436.9 DL 237.891 436.9 232.891 436.9 DL
+238.889 436.9 233.889 436.9 DL 243.889 436.9 238.889 436.9 DL 248.889
+436.9 243.889 436.9 DL 248.889 425.9 248.889 435.9 DL 237.891 425.9
+232.891 425.9 DL 238.889 425.9 233.889 425.9 DL 243.889 425.9 238.889
+425.9 DL 248.889 425.9 243.889 425.9 DL 250.555 426.9 250.555 436.9 DL
+250.555 425.9 250.555 435.9 DL F1(SS3)236.054 433.4 Q 266.553 426.9
+266.553 436.9 DL 255.555 436.9 250.555 436.9 DL 256.553 436.9 251.553
+436.9 DL 261.553 436.9 256.553 436.9 DL 266.553 436.9 261.553 436.9 DL
+266.553 425.9 266.553 435.9 DL 255.555 425.9 250.555 425.9 DL 256.553
+425.9 251.553 425.9 DL 261.553 425.9 256.553 425.9 DL 266.553 425.9
+261.553 425.9 DL F0 30.783(MP)254.109 434.4 S 318.782 426.9 318.782
+436.9 DL 318.782 425.9 318.782 435.9 DL(F1)299.342 434.4 Q 334.78 426.9
+334.78 436.9 DL 323.782 436.9 318.782 436.9 DL 324.78 436.9 319.78 436.9
+DL 329.78 436.9 324.78 436.9 DL 334.78 436.9 329.78 436.9 DL 334.78
+425.9 334.78 435.9 DL 323.782 425.9 318.782 425.9 DL 324.78 425.9 319.78
+425.9 DL 329.78 425.9 324.78 425.9 DL 334.78 425.9 329.78 425.9 DL
+336.446 426.9 336.446 436.9 DL 336.446 425.9 336.446 435.9 DL F1(SS3)
+321.945 433.4 Q 352.444 426.9 352.444 436.9 DL 341.446 436.9 336.446
+436.9 DL 342.444 436.9 337.444 436.9 DL 347.444 436.9 342.444 436.9 DL
+352.444 436.9 347.444 436.9 DL 352.444 425.9 352.444 435.9 DL 341.446
+425.9 336.446 425.9 DL 342.444 425.9 337.444 425.9 DL 347.444 425.9
+342.444 425.9 DL 352.444 425.9 347.444 425.9 DL 368.782 426.9 368.782
+436.9 DL 368.782 425.9 368.782 435.9 DL F0(P)341.665 434.4 Q 384.78
+426.9 384.78 436.9 DL 373.782 436.9 368.782 436.9 DL 374.78 436.9 369.78
+436.9 DL 379.78 436.9 374.78 436.9 DL 384.78 436.9 379.78 436.9 DL
+384.78 425.9 384.78 435.9 DL 373.782 425.9 368.782 425.9 DL 374.78 425.9
+369.78 425.9 DL 379.78 425.9 374.78 425.9 DL 384.78 425.9 379.78 425.9
+DL 386.446 426.9 386.446 436.9 DL 386.446 425.9 386.446 435.9 DL F1(SS3)
+371.945 433.4 Q 402.444 426.9 402.444 436.9 DL 391.446 436.9 386.446
+436.9 DL 392.444 436.9 387.444 436.9 DL 397.444 436.9 392.444 436.9 DL
+402.444 436.9 397.444 436.9 DL 402.444 425.9 402.444 435.9 DL 391.446
+425.9 386.446 425.9 DL 392.444 425.9 387.444 425.9 DL 397.444 425.9
+392.444 425.9 DL 402.444 425.9 397.444 425.9 DL F0 32.447(PP)391.665
+434.4 S 454.672 426.9 454.672 436.9 DL 454.672 425.9 454.672 435.9 DL
+(F2)435.232 434.4 Q 470.67 426.9 470.67 436.9 DL 459.672 436.9 454.672
+436.9 DL 460.67 436.9 455.67 436.9 DL 465.67 436.9 460.67 436.9 DL
+470.67 436.9 465.67 436.9 DL 470.67 425.9 470.67 435.9 DL 459.672 425.9
+454.672 425.9 DL 460.67 425.9 455.67 425.9 DL 465.67 425.9 460.67 425.9
+DL 470.67 425.9 465.67 425.9 DL 472.336 426.9 472.336 436.9 DL 472.336
+425.9 472.336 435.9 DL F1(SS3)457.835 433.4 Q 488.334 426.9 488.334
+436.9 DL 477.336 436.9 472.336 436.9 DL 478.334 436.9 473.334 436.9 DL
+483.334 436.9 478.334 436.9 DL 488.334 436.9 483.334 436.9 DL 488.334
+425.9 488.334 435.9 DL 477.336 425.9 472.336 425.9 DL 478.334 425.9
+473.334 425.9 DL 483.334 425.9 478.334 425.9 DL 488.334 425.9 483.334
+425.9 DL 504.672 426.9 504.672 436.9 DL 504.672 425.9 504.672 435.9 DL
+F0(Q)476.725 434.4 Q 520.67 426.9 520.67 436.9 DL 509.672 436.9 504.672
+436.9 DL 510.67 436.9 505.67 436.9 DL 515.67 436.9 510.67 436.9 DL
+520.67 436.9 515.67 436.9 DL 520.67 425.9 520.67 435.9 DL 509.672 425.9
+504.672 425.9 DL 510.67 425.9 505.67 425.9 DL 515.67 425.9 510.67 425.9
+DL 520.67 425.9 515.67 425.9 DL 522.336 426.9 522.336 436.9 DL 522.336
+425.9 522.336 435.9 DL F1(SS3)507.835 433.4 Q 538.334 426.9 538.334
+436.9 DL 527.336 436.9 522.336 436.9 DL 528.334 436.9 523.334 436.9 DL
+533.334 436.9 528.334 436.9 DL 538.334 436.9 533.334 436.9 DL 538.334
+425.9 538.334 435.9 DL 527.336 425.9 522.336 425.9 DL 528.334 425.9
+523.334 425.9 DL 533.334 425.9 528.334 425.9 DL 538.334 425.9 533.334
+425.9 DL F0(Q)526.725 434.4 Q 97 438.9 97 448.9 DL 97 437.9 97 447.9 DL
+(PF3)72 446.4 Q 112.998 438.9 112.998 448.9 DL 102 448.9 97 448.9 DL
+102.998 448.9 97.998 448.9 DL 107.998 448.9 102.998 448.9 DL 112.998
+448.9 107.998 448.9 DL 112.998 437.9 112.998 447.9 DL 102 437.9 97 437.9
+DL 102.998 437.9 97.998 437.9 DL 107.998 437.9 102.998 437.9 DL 112.998
+437.9 107.998 437.9 DL 114.664 438.9 114.664 448.9 DL 114.664 437.9
+114.664 447.9 DL F1(SS3)100.163 445.4 Q 130.662 438.9 130.662 448.9 DL
+119.664 448.9 114.664 448.9 DL 120.662 448.9 115.662 448.9 DL 125.662
+448.9 120.662 448.9 DL 130.662 448.9 125.662 448.9 DL 130.662 437.9
+130.662 447.9 DL 119.664 437.9 114.664 437.9 DL 120.662 437.9 115.662
+437.9 DL 125.662 437.9 120.662 437.9 DL 130.662 437.9 125.662 437.9 DL
+147 438.9 147 448.9 DL 147 437.9 147 447.9 DL F0(R)119.328 446.4 Q
+162.998 438.9 162.998 448.9 DL 152 448.9 147 448.9 DL 152.998 448.9
+147.998 448.9 DL 157.998 448.9 152.998 448.9 DL 162.998 448.9 157.998
+448.9 DL 162.998 437.9 162.998 447.9 DL 152 437.9 147 437.9 DL 152.998
+437.9 147.998 437.9 DL 157.998 437.9 152.998 437.9 DL 162.998 437.9
+157.998 437.9 DL 164.664 438.9 164.664 448.9 DL 164.664 437.9 164.664
+447.9 DL F1(SS3)150.163 445.4 Q 180.662 438.9 180.662 448.9 DL 169.664
+448.9 164.664 448.9 DL 170.662 448.9 165.662 448.9 DL 175.662 448.9
+170.662 448.9 DL 180.662 448.9 175.662 448.9 DL 180.662 437.9 180.662
+447.9 DL 169.664 437.9 164.664 437.9 DL 170.662 437.9 165.662 437.9 DL
+175.662 437.9 170.662 437.9 DL 180.662 437.9 175.662 437.9 DL F0 11.194
+(RP)169.328 446.4 S 212.192 438.9 212.192 448.9 DL 212.192 437.9 212.192
+447.9 DL(F4)192.752 446.4 Q 228.19 438.9 228.19 448.9 DL 217.192 448.9
+212.192 448.9 DL 218.19 448.9 213.19 448.9 DL 223.19 448.9 218.19 448.9
+DL 228.19 448.9 223.19 448.9 DL 228.19 437.9 228.19 447.9 DL 217.192
+437.9 212.192 437.9 DL 218.19 437.9 213.19 437.9 DL 223.19 437.9 218.19
+437.9 DL 228.19 437.9 223.19 437.9 DL 229.856 438.9 229.856 448.9 DL
+229.856 437.9 229.856 447.9 DL F1(SS3)215.355 445.4 Q 245.854 438.9
+245.854 448.9 DL 234.856 448.9 229.856 448.9 DL 235.854 448.9 230.854
+448.9 DL 240.854 448.9 235.854 448.9 DL 245.854 448.9 240.854 448.9 DL
+245.854 437.9 245.854 447.9 DL 234.856 437.9 229.856 437.9 DL 235.854
+437.9 230.854 437.9 DL 240.854 437.9 235.854 437.9 DL 245.854 437.9
+240.854 437.9 DL 262.192 438.9 262.192 448.9 DL 262.192 437.9 262.192
+447.9 DL F0(S)235.075 446.4 Q 278.19 438.9 278.19 448.9 DL 267.192 448.9
+262.192 448.9 DL 268.19 448.9 263.19 448.9 DL 273.19 448.9 268.19 448.9
+DL 278.19 448.9 273.19 448.9 DL 278.19 437.9 278.19 447.9 DL 267.192
+437.9 262.192 437.9 DL 268.19 437.9 263.19 437.9 DL 273.19 437.9 268.19
+437.9 DL 278.19 437.9 273.19 437.9 DL 279.856 438.9 279.856 448.9 DL
+279.856 437.9 279.856 447.9 DL F1(SS3)265.355 445.4 Q 295.854 438.9
+295.854 448.9 DL 284.856 448.9 279.856 448.9 DL 285.854 448.9 280.854
+448.9 DL 290.854 448.9 285.854 448.9 DL 295.854 448.9 290.854 448.9 DL
+295.854 437.9 295.854 447.9 DL 284.856 437.9 279.856 437.9 DL 285.854
+437.9 280.854 437.9 DL 290.854 437.9 285.854 437.9 DL 295.854 437.9
+290.854 437.9 DL F0 11.749(S*)285.075 446.4 S 379.749 438.9 379.749
+448.9 DL 379.749 437.9 379.749 447.9 DL -.56(\(multiply\) *)312.249
+446.4 R 395.747 438.9 395.747 448.9 DL 384.749 448.9 379.749 448.9 DL
+385.747 448.9 380.747 448.9 DL 390.747 448.9 385.747 448.9 DL 395.747
+448.9 390.747 448.9 DL 395.747 437.9 395.747 447.9 DL 384.749 437.9
+379.749 437.9 DL 385.747 437.9 380.747 437.9 DL 390.747 437.9 385.747
+437.9 DL 395.747 437.9 390.747 437.9 DL 397.413 438.9 397.413 448.9 DL
+397.413 437.9 397.413 447.9 DL F1(SS3)382.912 445.4 Q 413.411 438.9
+413.411 448.9 DL 402.413 448.9 397.413 448.9 DL 403.411 448.9 398.411
+448.9 DL 408.411 448.9 403.411 448.9 DL 413.411 448.9 408.411 448.9 DL
+413.411 437.9 413.411 447.9 DL 402.413 437.9 397.413 437.9 DL 403.411
+437.9 398.411 437.9 DL 408.411 437.9 403.411 437.9 DL 413.411 437.9
+408.411 437.9 DL F0 13.14(j+)404.022 446.4 S 497.307 438.9 497.307 448.9
+DL 497.307 437.9 497.307 447.9 DL 18.26(\(add\) +)430.447 446.4 R
+513.305 438.9 513.305 448.9 DL 502.307 448.9 497.307 448.9 DL 503.305
+448.9 498.305 448.9 DL 508.305 448.9 503.305 448.9 DL 513.305 448.9
+508.305 448.9 DL 513.305 437.9 513.305 447.9 DL 502.307 437.9 497.307
+437.9 DL 503.305 437.9 498.305 437.9 DL 508.305 437.9 503.305 437.9 DL
+513.305 437.9 508.305 437.9 DL 514.971 438.9 514.971 448.9 DL 514.971
+437.9 514.971 447.9 DL F1(SS3)500.47 445.4 Q 530.969 438.9 530.969 448.9
+DL 519.971 448.9 514.971 448.9 DL 520.969 448.9 515.969 448.9 DL 525.969
+448.9 520.969 448.9 DL 530.969 448.9 525.969 448.9 DL 530.969 437.9
+530.969 447.9 DL 519.971 437.9 514.971 437.9 DL 520.969 437.9 515.969
+437.9 DL 525.969 437.9 520.969 437.9 DL 530.969 437.9 525.969 437.9 DL
+F0 12.03(k,)520.47 446.4 S 142 450.9 142 460.9 DL 142 449.9 142 459.9 DL
+6.4(\(comma\) ,)72 458.4 R 157.998 450.9 157.998 460.9 DL 147 460.9 142
+460.9 DL 147.998 460.9 142.998 460.9 DL 152.998 460.9 147.998 460.9 DL
+157.998 460.9 152.998 460.9 DL 157.998 449.9 157.998 459.9 DL 147 449.9
+142 449.9 DL 147.998 449.9 142.998 449.9 DL 152.998 449.9 147.998 449.9
+DL 157.998 449.9 152.998 449.9 DL 159.664 450.9 159.664 460.9 DL 159.664
+449.9 159.664 459.9 DL F1(SS3)145.163 457.4 Q 175.662 450.9 175.662
+460.9 DL 164.664 460.9 159.664 460.9 DL 165.662 460.9 160.662 460.9 DL
+170.662 460.9 165.662 460.9 DL 175.662 460.9 170.662 460.9 DL 175.662
+449.9 175.662 459.9 DL 164.664 449.9 159.664 449.9 DL 165.662 449.9
+160.662 449.9 DL 170.662 449.9 165.662 449.9 DL 175.662 449.9 170.662
+449.9 DL F0 20.613(l-)166.273 458.4 S 274.504 450.9 274.504 460.9 DL
+274.504 449.9 274.504 459.9 DL 10.56(\(minus\) -)205.334 458.4 R 290.502
+450.9 290.502 460.9 DL 279.504 460.9 274.504 460.9 DL 280.502 460.9
+275.502 460.9 DL 285.502 460.9 280.502 460.9 DL 290.502 460.9 285.502
+460.9 DL 290.502 449.9 290.502 459.9 DL 279.504 449.9 274.504 449.9 DL
+280.502 449.9 275.502 449.9 DL 285.502 449.9 280.502 449.9 DL 290.502
+449.9 285.502 449.9 DL 292.168 450.9 292.168 460.9 DL 292.168 449.9
+292.168 459.9 DL F1(SS3)277.667 457.4 Q 308.166 450.9 308.166 460.9 DL
+297.168 460.9 292.168 460.9 DL 298.166 460.9 293.166 460.9 DL 303.166
+460.9 298.166 460.9 DL 308.166 460.9 303.166 460.9 DL 308.166 449.9
+308.166 459.9 DL 297.168 449.9 292.168 449.9 DL 298.166 449.9 293.166
+449.9 DL 303.166 449.9 298.166 449.9 DL 308.166 449.9 303.166 449.9 DL
+F0 18.113(m/)296.277 458.4 S(\(di)-5.776 E 407.007 450.9 407.007 460.9
+DL 407.007 449.9 407.007 459.9 DL 10.81(vide\) /)348.147 458.4 R 423.005
+450.9 423.005 460.9 DL 412.007 460.9 407.007 460.9 DL 413.005 460.9
+408.005 460.9 DL 418.005 460.9 413.005 460.9 DL 423.005 460.9 418.005
+460.9 DL 423.005 449.9 423.005 459.9 DL 412.007 449.9 407.007 449.9 DL
+413.005 449.9 408.005 449.9 DL 418.005 449.9 413.005 449.9 DL 423.005
+449.9 418.005 449.9 DL 424.671 450.9 424.671 460.9 DL 424.671 449.9
+424.671 459.9 DL F1(SS3)410.17 457.4 Q 440.669 450.9 440.669 460.9 DL
+429.671 460.9 424.671 460.9 DL 430.669 460.9 425.669 460.9 DL 435.669
+460.9 430.669 460.9 DL 440.669 460.9 435.669 460.9 DL 440.669 449.9
+440.669 459.9 DL 429.671 449.9 424.671 449.9 DL 430.669 449.9 425.669
+449.9 DL 435.669 449.9 430.669 449.9 DL 440.669 449.9 435.669 449.9 DL
+504.672 450.9 504.672 460.9 DL 504.672 449.9 504.672 459.9 DL F0 -21.504
+19.502(o0 0)430.17 458.4 T 520.67 450.9 520.67 460.9 DL 509.672 460.9
+504.672 460.9 DL 510.67 460.9 505.67 460.9 DL 515.67 460.9 510.67 460.9
+DL 520.67 460.9 515.67 460.9 DL 520.67 449.9 520.67 459.9 DL 509.672
+449.9 504.672 449.9 DL 510.67 449.9 505.67 449.9 DL 515.67 449.9 510.67
+449.9 DL 520.67 449.9 515.67 449.9 DL 522.336 450.9 522.336 460.9 DL
+522.336 449.9 522.336 459.9 DL F1(SS3)507.835 457.4 Q 538.334 450.9
+538.334 460.9 DL 527.336 460.9 522.336 460.9 DL 528.334 460.9 523.334
+460.9 DL 533.334 460.9 528.334 460.9 DL 538.334 460.9 533.334 460.9 DL
+538.334 449.9 538.334 459.9 DL 527.336 449.9 522.336 449.9 DL 528.334
+449.9 523.334 449.9 DL 533.334 449.9 528.334 449.9 DL 538.334 449.9
+533.334 449.9 DL F0(p)527.835 458.4 Q 122 462.9 122 472.9 DL 122 461.9
+122 471.9 DL 20(11)72 470.4 S 137.998 462.9 137.998 472.9 DL 127 472.9
+122 472.9 DL 127.998 472.9 122.998 472.9 DL 132.998 472.9 127.998 472.9
+DL 137.998 472.9 132.998 472.9 DL 137.998 461.9 137.998 471.9 DL 127
+461.9 122 461.9 DL 127.998 461.9 122.998 461.9 DL 132.998 461.9 127.998
+461.9 DL 137.998 461.9 132.998 461.9 DL 139.664 462.9 139.664 472.9 DL
+139.664 461.9 139.664 471.9 DL F1(SS3)125.163 469.4 Q 155.662 462.9
+155.662 472.9 DL 144.664 472.9 139.664 472.9 DL 145.662 472.9 140.662
+472.9 DL 150.662 472.9 145.662 472.9 DL 155.662 472.9 150.662 472.9 DL
+155.662 461.9 155.662 471.9 DL 144.664 461.9 139.664 461.9 DL 145.662
+461.9 140.662 461.9 DL 150.662 461.9 145.662 461.9 DL 155.662 461.9
+150.662 461.9 DL 217.668 462.9 217.668 472.9 DL 217.668 461.9 217.668
+471.9 DL F0 -17.51 17.505(q2 2)145.163 470.4 T 233.666 462.9 233.666
+472.9 DL 222.668 472.9 217.668 472.9 DL 223.666 472.9 218.666 472.9 DL
+228.666 472.9 223.666 472.9 DL 233.666 472.9 228.666 472.9 DL 233.666
+461.9 233.666 471.9 DL 222.668 461.9 217.668 461.9 DL 223.666 461.9
+218.666 461.9 DL 228.666 461.9 223.666 461.9 DL 233.666 461.9 228.666
+461.9 DL 235.332 462.9 235.332 472.9 DL 235.332 461.9 235.332 471.9 DL
+F1(SS3)220.831 469.4 Q 251.33 462.9 251.33 472.9 DL 240.332 472.9
+235.332 472.9 DL 241.33 472.9 236.33 472.9 DL 246.33 472.9 241.33 472.9
+DL 251.33 472.9 246.33 472.9 DL 251.33 461.9 251.33 471.9 DL 240.332
+461.9 235.332 461.9 DL 241.33 461.9 236.33 461.9 DL 246.33 461.9 241.33
+461.9 DL 251.33 461.9 246.33 461.9 DL 313.336 462.9 313.336 472.9 DL
+313.336 461.9 313.336 471.9 DL F0 -19.18 18.34(r3 3)241.666 470.4 T
+329.334 462.9 329.334 472.9 DL 318.336 472.9 313.336 472.9 DL 319.334
+472.9 314.334 472.9 DL 324.334 472.9 319.334 472.9 DL 329.334 472.9
+324.334 472.9 DL 329.334 461.9 329.334 471.9 DL 318.336 461.9 313.336
+461.9 DL 319.334 461.9 314.334 461.9 DL 324.334 461.9 319.334 461.9 DL
+329.334 461.9 324.334 461.9 DL 331 462.9 331 472.9 DL 331 461.9 331
+471.9 DL F1(SS3)316.499 469.4 Q 346.998 462.9 346.998 472.9 DL 336 472.9
+331 472.9 DL 336.998 472.9 331.998 472.9 DL 341.998 472.9 336.998 472.9
+DL 346.998 472.9 341.998 472.9 DL 346.998 461.9 346.998 471.9 DL 336
+461.9 331 461.9 DL 336.998 461.9 331.998 461.9 DL 341.998 461.9 336.998
+461.9 DL 346.998 461.9 341.998 461.9 DL 409.004 462.9 409.004 472.9 DL
+409.004 461.9 409.004 471.9 DL F0 -18.62 18.06(s4 4)337.054 470.4 T
+425.002 462.9 425.002 472.9 DL 414.004 472.9 409.004 472.9 DL 415.002
+472.9 410.002 472.9 DL 420.002 472.9 415.002 472.9 DL 425.002 472.9
+420.002 472.9 DL 425.002 461.9 425.002 471.9 DL 414.004 461.9 409.004
+461.9 DL 415.002 461.9 410.002 461.9 DL 420.002 461.9 415.002 461.9 DL
+425.002 461.9 420.002 461.9 DL 426.668 462.9 426.668 472.9 DL 426.668
+461.9 426.668 471.9 DL F1(SS3)412.167 469.4 Q 442.666 462.9 442.666
+472.9 DL 431.668 472.9 426.668 472.9 DL 432.666 472.9 427.666 472.9 DL
+437.666 472.9 432.666 472.9 DL 442.666 472.9 437.666 472.9 DL 442.666
+461.9 442.666 471.9 DL 431.668 461.9 426.668 461.9 DL 432.666 461.9
+427.666 461.9 DL 437.666 461.9 432.666 461.9 DL 442.666 461.9 437.666
+461.9 DL 504.672 462.9 504.672 472.9 DL 504.672 461.9 504.672 471.9 DL
+F0 -19.73 18.615(t5 5)433.277 470.4 T 520.67 462.9 520.67 472.9 DL
+509.672 472.9 504.672 472.9 DL 510.67 472.9 505.67 472.9 DL 515.67 472.9
+510.67 472.9 DL 520.67 472.9 515.67 472.9 DL 520.67 461.9 520.67 471.9
+DL 509.672 461.9 504.672 461.9 DL 510.67 461.9 505.67 461.9 DL 515.67
+461.9 510.67 461.9 DL 520.67 461.9 515.67 461.9 DL 522.336 462.9 522.336
+472.9 DL 522.336 461.9 522.336 471.9 DL F1(SS3)507.835 469.4 Q 538.334
+462.9 538.334 472.9 DL 527.336 472.9 522.336 472.9 DL 528.334 472.9
+523.334 472.9 DL 533.334 472.9 528.334 472.9 DL 538.334 472.9 533.334
+472.9 DL 538.334 461.9 538.334 471.9 DL 527.336 461.9 522.336 461.9 DL
+528.334 461.9 523.334 461.9 DL 533.334 461.9 528.334 461.9 DL 538.334
+461.9 533.334 461.9 DL F0(u)527.835 470.4 Q 122 474.9 122 484.9 DL 122
+473.9 122 483.9 DL 20(66)72 482.4 S 137.998 474.9 137.998 484.9 DL 127
+484.9 122 484.9 DL 127.998 484.9 122.998 484.9 DL 132.998 484.9 127.998
+484.9 DL 137.998 484.9 132.998 484.9 DL 137.998 473.9 137.998 483.9 DL
+127 473.9 122 473.9 DL 127.998 473.9 122.998 473.9 DL 132.998 473.9
+127.998 473.9 DL 137.998 473.9 132.998 473.9 DL 139.664 474.9 139.664
+484.9 DL 139.664 473.9 139.664 483.9 DL F1(SS3)125.163 481.4 Q 155.662
+474.9 155.662 484.9 DL 144.664 484.9 139.664 484.9 DL 145.662 484.9
+140.662 484.9 DL 150.662 484.9 145.662 484.9 DL 155.662 484.9 150.662
+484.9 DL 155.662 473.9 155.662 483.9 DL 144.664 473.9 139.664 473.9 DL
+145.662 473.9 140.662 473.9 DL 150.662 473.9 145.662 473.9 DL 155.662
+473.9 150.662 473.9 DL 209.828 474.9 209.828 484.9 DL 209.828 473.9
+209.828 483.9 DL F0 -1.83 9.665(v7 7)145.163 482.4 T 225.826 474.9
+225.826 484.9 DL 214.828 484.9 209.828 484.9 DL 215.826 484.9 210.826
+484.9 DL 220.826 484.9 215.826 484.9 DL 225.826 484.9 220.826 484.9 DL
+225.826 473.9 225.826 483.9 DL 214.828 473.9 209.828 473.9 DL 215.826
+473.9 210.826 473.9 DL 220.826 473.9 215.826 473.9 DL 225.826 473.9
+220.826 473.9 DL 227.492 474.9 227.492 484.9 DL 227.492 473.9 227.492
+483.9 DL F1(SS3)212.991 481.4 Q 243.49 474.9 243.49 484.9 DL 232.492
+484.9 227.492 484.9 DL 233.49 484.9 228.49 484.9 DL 238.49 484.9 233.49
+484.9 DL 243.49 484.9 238.49 484.9 DL 243.49 473.9 243.49 483.9 DL
+232.492 473.9 227.492 473.9 DL 233.49 473.9 228.49 473.9 DL 238.49 473.9
+233.49 473.9 DL 243.49 473.9 238.49 473.9 DL 297.656 474.9 297.656 484.9
+DL 297.656 473.9 297.656 483.9 DL F0 .39 8.555(w8 8)231.881 482.4 T
+313.654 474.9 313.654 484.9 DL 302.656 484.9 297.656 484.9 DL 303.654
+484.9 298.654 484.9 DL 308.654 484.9 303.654 484.9 DL 313.654 484.9
+308.654 484.9 DL 313.654 473.9 313.654 483.9 DL 302.656 473.9 297.656
+473.9 DL 303.654 473.9 298.654 473.9 DL 308.654 473.9 303.654 473.9 DL
+313.654 473.9 308.654 473.9 DL 315.32 474.9 315.32 484.9 DL 315.32 473.9
+315.32 483.9 DL F1(SS3)300.819 481.4 Q 331.318 474.9 331.318 484.9 DL
+320.32 484.9 315.32 484.9 DL 321.318 484.9 316.318 484.9 DL 326.318
+484.9 321.318 484.9 DL 331.318 484.9 326.318 484.9 DL 331.318 473.9
+331.318 483.9 DL 320.32 473.9 315.32 473.9 DL 321.318 473.9 316.318
+473.9 DL 326.318 473.9 321.318 473.9 DL 331.318 473.9 326.318 473.9 DL
+385.484 474.9 385.484 484.9 DL 385.484 473.9 385.484 483.9 DL F0 -1.83
+9.665(x9 9)320.819 482.4 T 401.482 474.9 401.482 484.9 DL 390.484 484.9
+385.484 484.9 DL 391.482 484.9 386.482 484.9 DL 396.482 484.9 391.482
+484.9 DL 401.482 484.9 396.482 484.9 DL 401.482 473.9 401.482 483.9 DL
+390.484 473.9 385.484 473.9 DL 391.482 473.9 386.482 473.9 DL 396.482
+473.9 391.482 473.9 DL 401.482 473.9 396.482 473.9 DL 403.148 474.9
+403.148 484.9 DL 403.148 473.9 403.148 483.9 DL F1(SS3)388.647 481.4 Q
+419.146 474.9 419.146 484.9 DL 408.148 484.9 403.148 484.9 DL 409.146
+484.9 404.146 484.9 DL 414.146 484.9 409.146 484.9 DL 419.146 484.9
+414.146 484.9 DL 419.146 473.9 419.146 483.9 DL 408.148 473.9 403.148
+473.9 DL 409.146 473.9 404.146 473.9 DL 414.146 473.9 409.146 473.9 DL
+419.146 473.9 414.146 473.9 DL F0 9.665(y=)408.647 482.4 S 498.312 474.9
+498.312 484.9 DL 498.312 473.9 498.312 483.9 DL 11.04(\(equal\) =)
+431.452 482.4 R 514.31 474.9 514.31 484.9 DL 503.312 484.9 498.312 484.9
+DL 504.31 484.9 499.31 484.9 DL 509.31 484.9 504.31 484.9 DL 514.31
+484.9 509.31 484.9 DL 514.31 473.9 514.31 483.9 DL 503.312 473.9 498.312
+473.9 DL 504.31 473.9 499.31 473.9 DL 509.31 473.9 504.31 473.9 DL
+514.31 473.9 509.31 473.9 DL 515.976 474.9 515.976 484.9 DL 515.976
+473.9 515.976 483.9 DL F1(SS3)501.475 481.4 Q 531.974 474.9 531.974
+484.9 DL 520.976 484.9 515.976 484.9 DL 521.974 484.9 516.974 484.9 DL
+526.974 484.9 521.974 484.9 DL 531.974 484.9 526.974 484.9 DL 531.974
+473.9 531.974 483.9 DL 520.976 473.9 515.976 473.9 DL 521.974 473.9
+516.974 473.9 DL 526.974 473.9 521.974 473.9 DL 531.974 473.9 526.974
+473.9 DL F0(X)520.365 482.4 Q .239(The VT220 pro)72 505.2 R .239
+(vides 8 additional function k)-.15 F -.15(ey)-.1 G 2.739(s. W).15 F
+.239(ith a Sun/PC k)-.4 F -.15(ey)-.1 G .239(board, access these k).15 F
+-.15(ey)-.1 G 2.739(sb).15 G 2.738(yC)-2.739 G .238(ontrol/F1 for F13,)
+-2.738 F(etc.)72 517.2 Q .704(center; cf3)72 535.2 R .704
+(cf3 lf3w\(2c\))12.23 F .705(lf3w\(2c\) .)15.57 F -2.15 -.25(Ke y)5.705
+H 370.483 527.7 370.483 537.7 DL 370.483 526.7 370.483 536.7 DL .705
+(Escape Sequence _ F13)264.228 535.2 R 386.481 527.7 386.481 537.7 DL
+375.483 537.7 370.483 537.7 DL 376.481 537.7 371.481 537.7 DL 381.481
+537.7 376.481 537.7 DL 386.481 537.7 381.481 537.7 DL 386.481 526.7
+386.481 536.7 DL 375.483 526.7 370.483 526.7 DL 376.481 526.7 371.481
+526.7 DL 381.481 526.7 376.481 526.7 DL 386.481 526.7 381.481 526.7 DL
+388.147 527.7 388.147 537.7 DL 388.147 526.7 388.147 536.7 DL F1(CSI)
+373.814 534.2 Q 404.145 527.7 404.145 537.7 DL 393.147 537.7 388.147
+537.7 DL 394.145 537.7 389.145 537.7 DL 399.145 537.7 394.145 537.7 DL
+404.145 537.7 399.145 537.7 DL 404.145 526.7 404.145 536.7 DL 393.147
+526.7 388.147 526.7 DL 394.145 526.7 389.145 526.7 DL 399.145 526.7
+394.145 526.7 DL 404.145 526.7 399.145 526.7 DL 405.811 527.7 405.811
+537.7 DL 405.811 526.7 405.811 536.7 DL 421.809 527.7 421.809 537.7 DL
+410.811 537.7 405.811 537.7 DL 411.809 537.7 406.809 537.7 DL 416.809
+537.7 411.809 537.7 DL 421.809 537.7 416.809 537.7 DL 421.809 526.7
+421.809 536.7 DL 410.811 526.7 405.811 526.7 DL 411.809 526.7 406.809
+526.7 DL 416.809 526.7 411.809 526.7 DL 421.809 526.7 416.809 526.7 DL
+423.475 527.7 423.475 537.7 DL 423.475 526.7 423.475 536.7 DL 439.473
+527.7 439.473 537.7 DL 428.475 537.7 423.475 537.7 DL 429.473 537.7
+424.473 537.7 DL 434.473 537.7 429.473 537.7 DL 439.473 537.7 434.473
+537.7 DL 439.473 526.7 439.473 536.7 DL 428.475 526.7 423.475 526.7 DL
+429.473 526.7 424.473 526.7 DL 434.473 526.7 429.473 526.7 DL 439.473
+526.7 434.473 526.7 DL F0 -14.329 12.664(25 ~)393.646 535.2 T 469.344
+527.7 469.344 537.7 DL 469.344 526.7 469.344 536.7 DL(F14)444.344 535.2
+Q 485.342 527.7 485.342 537.7 DL 474.344 537.7 469.344 537.7 DL 475.342
+537.7 470.342 537.7 DL 480.342 537.7 475.342 537.7 DL 485.342 537.7
+480.342 537.7 DL 485.342 526.7 485.342 536.7 DL 474.344 526.7 469.344
+526.7 DL 475.342 526.7 470.342 526.7 DL 480.342 526.7 475.342 526.7 DL
+485.342 526.7 480.342 526.7 DL 487.008 527.7 487.008 537.7 DL 487.008
+526.7 487.008 536.7 DL F1(CSI)472.675 534.2 Q 503.006 527.7 503.006
+537.7 DL 492.008 537.7 487.008 537.7 DL 493.006 537.7 488.006 537.7 DL
+498.006 537.7 493.006 537.7 DL 503.006 537.7 498.006 537.7 DL 503.006
+526.7 503.006 536.7 DL 492.008 526.7 487.008 526.7 DL 493.006 526.7
+488.006 526.7 DL 498.006 526.7 493.006 526.7 DL 503.006 526.7 498.006
+526.7 DL 504.672 527.7 504.672 537.7 DL 504.672 526.7 504.672 536.7 DL
+520.67 527.7 520.67 537.7 DL 509.672 537.7 504.672 537.7 DL 510.67 537.7
+505.67 537.7 DL 515.67 537.7 510.67 537.7 DL 520.67 537.7 515.67 537.7
+DL 520.67 526.7 520.67 536.7 DL 509.672 526.7 504.672 526.7 DL 510.67
+526.7 505.67 526.7 DL 515.67 526.7 510.67 526.7 DL 520.67 526.7 515.67
+526.7 DL 522.336 527.7 522.336 537.7 DL 522.336 526.7 522.336 536.7 DL
+538.334 527.7 538.334 537.7 DL 527.336 537.7 522.336 537.7 DL 528.334
+537.7 523.334 537.7 DL 533.334 537.7 528.334 537.7 DL 538.334 537.7
+533.334 537.7 DL 538.334 526.7 538.334 536.7 DL 527.336 526.7 522.336
+526.7 DL 528.334 526.7 523.334 526.7 DL 533.334 526.7 528.334 526.7 DL
+538.334 526.7 533.334 526.7 DL F0 -14.329 12.664(26 ~)492.507 535.2 T 97
+539.7 97 549.7 DL 97 538.7 97 548.7 DL(F15)72 547.2 Q 112.998 539.7
+112.998 549.7 DL 102 549.7 97 549.7 DL 102.998 549.7 97.998 549.7 DL
+107.998 549.7 102.998 549.7 DL 112.998 549.7 107.998 549.7 DL 112.998
+538.7 112.998 548.7 DL 102 538.7 97 538.7 DL 102.998 538.7 97.998 538.7
+DL 107.998 538.7 102.998 538.7 DL 112.998 538.7 107.998 538.7 DL 114.664
+539.7 114.664 549.7 DL 114.664 538.7 114.664 548.7 DL F1(CSI)100.331
+546.2 Q 130.662 539.7 130.662 549.7 DL 119.664 549.7 114.664 549.7 DL
+120.662 549.7 115.662 549.7 DL 125.662 549.7 120.662 549.7 DL 130.662
+549.7 125.662 549.7 DL 130.662 538.7 130.662 548.7 DL 119.664 538.7
+114.664 538.7 DL 120.662 538.7 115.662 538.7 DL 125.662 538.7 120.662
+538.7 DL 130.662 538.7 125.662 538.7 DL 132.328 539.7 132.328 549.7 DL
+132.328 538.7 132.328 548.7 DL 148.326 539.7 148.326 549.7 DL 137.328
+549.7 132.328 549.7 DL 138.326 549.7 133.326 549.7 DL 143.326 549.7
+138.326 549.7 DL 148.326 549.7 143.326 549.7 DL 148.326 538.7 148.326
+548.7 DL 137.328 538.7 132.328 538.7 DL 138.326 538.7 133.326 538.7 DL
+143.326 538.7 138.326 538.7 DL 148.326 538.7 143.326 538.7 DL 149.992
+539.7 149.992 549.7 DL 149.992 538.7 149.992 548.7 DL 165.99 539.7
+165.99 549.7 DL 154.992 549.7 149.992 549.7 DL 155.99 549.7 150.99 549.7
+DL 160.99 549.7 155.99 549.7 DL 165.99 549.7 160.99 549.7 DL 165.99
+538.7 165.99 548.7 DL 154.992 538.7 149.992 538.7 DL 155.99 538.7 150.99
+538.7 DL 160.99 538.7 155.99 538.7 DL 165.99 538.7 160.99 538.7 DL F0
+-14.329 12.664(28 ~)120.163 547.2 T 221.115 539.7 221.115 549.7 DL
+221.115 538.7 221.115 548.7 DL(F16)196.115 547.2 Q 237.113 539.7 237.113
+549.7 DL 226.115 549.7 221.115 549.7 DL 227.113 549.7 222.113 549.7 DL
+232.113 549.7 227.113 549.7 DL 237.113 549.7 232.113 549.7 DL 237.113
+538.7 237.113 548.7 DL 226.115 538.7 221.115 538.7 DL 227.113 538.7
+222.113 538.7 DL 232.113 538.7 227.113 538.7 DL 237.113 538.7 232.113
+538.7 DL 238.779 539.7 238.779 549.7 DL 238.779 538.7 238.779 548.7 DL
+F1(CSI)224.446 546.2 Q 254.777 539.7 254.777 549.7 DL 243.779 549.7
+238.779 549.7 DL 244.777 549.7 239.777 549.7 DL 249.777 549.7 244.777
+549.7 DL 254.777 549.7 249.777 549.7 DL 254.777 538.7 254.777 548.7 DL
+243.779 538.7 238.779 538.7 DL 244.777 538.7 239.777 538.7 DL 249.777
+538.7 244.777 538.7 DL 254.777 538.7 249.777 538.7 DL 256.443 539.7
+256.443 549.7 DL 256.443 538.7 256.443 548.7 DL 272.441 539.7 272.441
+549.7 DL 261.443 549.7 256.443 549.7 DL 262.441 549.7 257.441 549.7 DL
+267.441 549.7 262.441 549.7 DL 272.441 549.7 267.441 549.7 DL 272.441
+538.7 272.441 548.7 DL 261.443 538.7 256.443 538.7 DL 262.441 538.7
+257.441 538.7 DL 267.441 538.7 262.441 538.7 DL 272.441 538.7 267.441
+538.7 DL 274.107 539.7 274.107 549.7 DL 274.107 538.7 274.107 548.7 DL
+290.105 539.7 290.105 549.7 DL 279.107 549.7 274.107 549.7 DL 280.105
+549.7 275.105 549.7 DL 285.105 549.7 280.105 549.7 DL 290.105 549.7
+285.105 549.7 DL 290.105 538.7 290.105 548.7 DL 279.107 538.7 274.107
+538.7 DL 280.105 538.7 275.105 538.7 DL 285.105 538.7 280.105 538.7 DL
+290.105 538.7 285.105 538.7 DL F0 -14.329 12.664(29 ~)244.278 547.2 T
+345.23 539.7 345.23 549.7 DL 345.23 538.7 345.23 548.7 DL(F17)320.23
+547.2 Q 361.228 539.7 361.228 549.7 DL 350.23 549.7 345.23 549.7 DL
+351.228 549.7 346.228 549.7 DL 356.228 549.7 351.228 549.7 DL 361.228
+549.7 356.228 549.7 DL 361.228 538.7 361.228 548.7 DL 350.23 538.7
+345.23 538.7 DL 351.228 538.7 346.228 538.7 DL 356.228 538.7 351.228
+538.7 DL 361.228 538.7 356.228 538.7 DL 362.894 539.7 362.894 549.7 DL
+362.894 538.7 362.894 548.7 DL F1(CSI)348.561 546.2 Q 378.892 539.7
+378.892 549.7 DL 367.894 549.7 362.894 549.7 DL 368.892 549.7 363.892
+549.7 DL 373.892 549.7 368.892 549.7 DL 378.892 549.7 373.892 549.7 DL
+378.892 538.7 378.892 548.7 DL 367.894 538.7 362.894 538.7 DL 368.892
+538.7 363.892 538.7 DL 373.892 538.7 368.892 538.7 DL 378.892 538.7
+373.892 538.7 DL 380.558 539.7 380.558 549.7 DL 380.558 538.7 380.558
+548.7 DL 396.556 539.7 396.556 549.7 DL 385.558 549.7 380.558 549.7 DL
+386.556 549.7 381.556 549.7 DL 391.556 549.7 386.556 549.7 DL 396.556
+549.7 391.556 549.7 DL 396.556 538.7 396.556 548.7 DL 385.558 538.7
+380.558 538.7 DL 386.556 538.7 381.556 538.7 DL 391.556 538.7 386.556
+538.7 DL 396.556 538.7 391.556 538.7 DL 398.222 539.7 398.222 549.7 DL
+398.222 538.7 398.222 548.7 DL 414.22 539.7 414.22 549.7 DL 403.222
+549.7 398.222 549.7 DL 404.22 549.7 399.22 549.7 DL 409.22 549.7 404.22
+549.7 DL 414.22 549.7 409.22 549.7 DL 414.22 538.7 414.22 548.7 DL
+403.222 538.7 398.222 538.7 DL 404.22 538.7 399.22 538.7 DL 409.22 538.7
+404.22 538.7 DL 414.22 538.7 409.22 538.7 DL F0 -14.329 12.664(31 ~)
+368.393 547.2 T 469.344 539.7 469.344 549.7 DL 469.344 538.7 469.344
+548.7 DL(F18)444.344 547.2 Q 485.342 539.7 485.342 549.7 DL 474.344
+549.7 469.344 549.7 DL 475.342 549.7 470.342 549.7 DL 480.342 549.7
+475.342 549.7 DL 485.342 549.7 480.342 549.7 DL 485.342 538.7 485.342
+548.7 DL 474.344 538.7 469.344 538.7 DL 475.342 538.7 470.342 538.7 DL
+480.342 538.7 475.342 538.7 DL 485.342 538.7 480.342 538.7 DL 487.008
+539.7 487.008 549.7 DL 487.008 538.7 487.008 548.7 DL F1(CSI)472.675
+546.2 Q 503.006 539.7 503.006 549.7 DL 492.008 549.7 487.008 549.7 DL
+493.006 549.7 488.006 549.7 DL 498.006 549.7 493.006 549.7 DL 503.006
+549.7 498.006 549.7 DL 503.006 538.7 503.006 548.7 DL 492.008 538.7
+487.008 538.7 DL 493.006 538.7 488.006 538.7 DL 498.006 538.7 493.006
+538.7 DL 503.006 538.7 498.006 538.7 DL 504.672 539.7 504.672 549.7 DL
+504.672 538.7 504.672 548.7 DL 520.67 539.7 520.67 549.7 DL 509.672
+549.7 504.672 549.7 DL 510.67 549.7 505.67 549.7 DL 515.67 549.7 510.67
+549.7 DL 520.67 549.7 515.67 549.7 DL 520.67 538.7 520.67 548.7 DL
+509.672 538.7 504.672 538.7 DL 510.67 538.7 505.67 538.7 DL 515.67 538.7
+510.67 538.7 DL 520.67 538.7 515.67 538.7 DL 522.336 539.7 522.336 549.7
+DL 522.336 538.7 522.336 548.7 DL 538.334 539.7 538.334 549.7 DL 527.336
+549.7 522.336 549.7 DL 528.334 549.7 523.334 549.7 DL 533.334 549.7
+528.334 549.7 DL 538.334 549.7 533.334 549.7 DL 538.334 538.7 538.334
+548.7 DL 527.336 538.7 522.336 538.7 DL 528.334 538.7 523.334 538.7 DL
+533.334 538.7 528.334 538.7 DL 538.334 538.7 533.334 538.7 DL F0 -14.329
+12.664(32 ~)492.507 547.2 T 97 551.7 97 561.7 DL 97 550.7 97 560.7 DL
+(F19)72 559.2 Q 112.998 551.7 112.998 561.7 DL 102 561.7 97 561.7 DL
+102.998 561.7 97.998 561.7 DL 107.998 561.7 102.998 561.7 DL 112.998
+561.7 107.998 561.7 DL 112.998 550.7 112.998 560.7 DL 102 550.7 97 550.7
+DL 102.998 550.7 97.998 550.7 DL 107.998 550.7 102.998 550.7 DL 112.998
+550.7 107.998 550.7 DL 114.664 551.7 114.664 561.7 DL 114.664 550.7
+114.664 560.7 DL F1(CSI)100.331 558.2 Q 130.662 551.7 130.662 561.7 DL
+119.664 561.7 114.664 561.7 DL 120.662 561.7 115.662 561.7 DL 125.662
+561.7 120.662 561.7 DL 130.662 561.7 125.662 561.7 DL 130.662 550.7
+130.662 560.7 DL 119.664 550.7 114.664 550.7 DL 120.662 550.7 115.662
+550.7 DL 125.662 550.7 120.662 550.7 DL 130.662 550.7 125.662 550.7 DL
+132.328 551.7 132.328 561.7 DL 132.328 550.7 132.328 560.7 DL 148.326
+551.7 148.326 561.7 DL 137.328 561.7 132.328 561.7 DL 138.326 561.7
+133.326 561.7 DL 143.326 561.7 138.326 561.7 DL 148.326 561.7 143.326
+561.7 DL 148.326 550.7 148.326 560.7 DL 137.328 550.7 132.328 550.7 DL
+138.326 550.7 133.326 550.7 DL 143.326 550.7 138.326 550.7 DL 148.326
+550.7 143.326 550.7 DL 149.992 551.7 149.992 561.7 DL 149.992 550.7
+149.992 560.7 DL 165.99 551.7 165.99 561.7 DL 154.992 561.7 149.992
+561.7 DL 155.99 561.7 150.99 561.7 DL 160.99 561.7 155.99 561.7 DL
+165.99 561.7 160.99 561.7 DL 165.99 550.7 165.99 560.7 DL 154.992 550.7
+149.992 550.7 DL 155.99 550.7 150.99 550.7 DL 160.99 550.7 155.99 550.7
+DL 165.99 550.7 160.99 550.7 DL F0 -14.329 12.664(33 ~)120.163 559.2 T
+195.156 551.7 195.156 561.7 DL 195.156 550.7 195.156 560.7 DL(F20)
+170.156 559.2 Q 211.154 551.7 211.154 561.7 DL 200.156 561.7 195.156
+561.7 DL 201.154 561.7 196.154 561.7 DL 206.154 561.7 201.154 561.7 DL
+211.154 561.7 206.154 561.7 DL 211.154 550.7 211.154 560.7 DL 200.156
+550.7 195.156 550.7 DL 201.154 550.7 196.154 550.7 DL 206.154 550.7
+201.154 550.7 DL 211.154 550.7 206.154 550.7 DL 212.82 551.7 212.82
+561.7 DL 212.82 550.7 212.82 560.7 DL F1(CSI)198.487 558.2 Q 228.818
+551.7 228.818 561.7 DL 217.82 561.7 212.82 561.7 DL 218.818 561.7
+213.818 561.7 DL 223.818 561.7 218.818 561.7 DL 228.818 561.7 223.818
+561.7 DL 228.818 550.7 228.818 560.7 DL 217.82 550.7 212.82 550.7 DL
+218.818 550.7 213.818 550.7 DL 223.818 550.7 218.818 550.7 DL 228.818
+550.7 223.818 550.7 DL 230.484 551.7 230.484 561.7 DL 230.484 550.7
+230.484 560.7 DL 246.482 551.7 246.482 561.7 DL 235.484 561.7 230.484
+561.7 DL 236.482 561.7 231.482 561.7 DL 241.482 561.7 236.482 561.7 DL
+246.482 561.7 241.482 561.7 DL 246.482 550.7 246.482 560.7 DL 235.484
+550.7 230.484 550.7 DL 236.482 550.7 231.482 550.7 DL 241.482 550.7
+236.482 550.7 DL 246.482 550.7 241.482 550.7 DL 248.148 551.7 248.148
+561.7 DL 248.148 550.7 248.148 560.7 DL 264.146 551.7 264.146 561.7 DL
+253.148 561.7 248.148 561.7 DL 254.146 561.7 249.146 561.7 DL 259.146
+561.7 254.146 561.7 DL 264.146 561.7 259.146 561.7 DL 264.146 550.7
+264.146 560.7 DL 253.148 550.7 248.148 550.7 DL 254.146 550.7 249.146
+550.7 DL 259.146 550.7 254.146 550.7 DL 264.146 550.7 259.146 550.7 DL
+F0 -14.329 12.664(34 ~)218.319 559.2 T F3(VT52-Style Function K)72 589.2
+Q(eys)-.25 E F0 2.665(AV)72 606 S .165(T52 does not ha)-2.665 F .465
+-.15(ve f)-.2 H .165(unction k).15 F -.15(ey)-.1 G .166(s, b).15 F .166
+(ut it does ha)-.2 F .466 -.15(ve a n)-.2 H .166(umeric k).15 F -.15(ey)
+-.1 G .166(pad and cursor k).15 F -.15(ey)-.1 G 2.666(s. The).15 F 2.666
+(yd)-.15 G(if)-2.666 E .166(fer from the other)-.25 F
+(emulations by the pre\214x.)72 618 Q(Also, the cursor k)5 E -.15(ey)-.1
+G 2.5(sd).15 G 2.5(on)-2.5 G(ot change:)-2.5 E 9.124(center; cf3)72 636
+R 9.124(cf3 lf3w\(2c\))12.23 F 9.124(lf3w\(2c\) .)15.57 F -2.15 -.25
+(Ke y)14.124 H 465.828 628.5 465.828 638.5 DL 465.828 627.5 465.828
+637.5 DL 9.124(Normal/Application _ Cursor Up)297.906 636 R 481.826
+628.5 481.826 638.5 DL 470.828 638.5 465.828 638.5 DL 471.826 638.5
+466.826 638.5 DL 476.826 638.5 471.826 638.5 DL 481.826 638.5 476.826
+638.5 DL 481.826 627.5 481.826 637.5 DL 470.828 627.5 465.828 627.5 DL
+471.826 627.5 466.826 627.5 DL 476.826 627.5 471.826 627.5 DL 481.826
+627.5 476.826 627.5 DL 483.492 628.5 483.492 638.5 DL 483.492 627.5
+483.492 637.5 DL F1(ESC)468.325 635 Q 499.49 628.5 499.49 638.5 DL
+488.492 638.5 483.492 638.5 DL 489.49 638.5 484.49 638.5 DL 494.49 638.5
+489.49 638.5 DL 499.49 638.5 494.49 638.5 DL 499.49 627.5 499.49 637.5
+DL 488.492 627.5 483.492 627.5 DL 489.49 627.5 484.49 627.5 DL 494.49
+627.5 489.49 627.5 DL 499.49 627.5 494.49 627.5 DL F0 17.679(AC)487.881
+636 S(ursor)-17.679 E(Do)72 648 Q 117.28 640.5 117.28 650.5 DL 117.28
+639.5 117.28 649.5 DL(wn)83.97 648 Q 133.278 640.5 133.278 650.5 DL
+122.28 650.5 117.28 650.5 DL 123.278 650.5 118.278 650.5 DL 128.278
+650.5 123.278 650.5 DL 133.278 650.5 128.278 650.5 DL 133.278 639.5
+133.278 649.5 DL 122.28 639.5 117.28 639.5 DL 123.278 639.5 118.278
+639.5 DL 128.278 639.5 123.278 639.5 DL 133.278 639.5 128.278 639.5 DL
+134.944 640.5 134.944 650.5 DL 134.944 639.5 134.944 649.5 DL F1(ESC)
+119.777 647 Q 150.942 640.5 150.942 650.5 DL 139.944 650.5 134.944 650.5
+DL 140.942 650.5 135.942 650.5 DL 145.942 650.5 140.942 650.5 DL 150.942
+650.5 145.942 650.5 DL 150.942 639.5 150.942 649.5 DL 139.944 639.5
+134.944 639.5 DL 140.942 639.5 135.942 639.5 DL 145.942 639.5 140.942
+639.5 DL 150.942 639.5 145.942 639.5 DL F0 8.83(BC)139.608 648 S 230.108
+640.5 230.108 650.5 DL 230.108 639.5 230.108 649.5 DL(ursor Right)
+161.778 648 Q 246.106 640.5 246.106 650.5 DL 235.108 650.5 230.108 650.5
+DL 236.106 650.5 231.106 650.5 DL 241.106 650.5 236.106 650.5 DL 246.106
+650.5 241.106 650.5 DL 246.106 639.5 246.106 649.5 DL 235.108 639.5
+230.108 639.5 DL 236.106 639.5 231.106 639.5 DL 241.106 639.5 236.106
+639.5 DL 246.106 639.5 241.106 639.5 DL 247.772 640.5 247.772 650.5 DL
+247.772 639.5 247.772 649.5 DL F1(ESC)232.605 647 Q 263.77 640.5 263.77
+650.5 DL 252.772 650.5 247.772 650.5 DL 253.77 650.5 248.77 650.5 DL
+258.77 650.5 253.77 650.5 DL 263.77 650.5 258.77 650.5 DL 263.77 639.5
+263.77 649.5 DL 252.772 639.5 247.772 639.5 DL 253.77 639.5 248.77 639.5
+DL 258.77 639.5 253.77 639.5 DL 263.77 639.5 258.77 639.5 DL F0 8.83(CC)
+252.436 648 S 317.936 640.5 317.936 650.5 DL 317.936 639.5 317.936 649.5
+DL(ursor Left)274.606 648 Q 333.934 640.5 333.934 650.5 DL 322.936 650.5
+317.936 650.5 DL 323.934 650.5 318.934 650.5 DL 328.934 650.5 323.934
+650.5 DL 333.934 650.5 328.934 650.5 DL 333.934 639.5 333.934 649.5 DL
+322.936 639.5 317.936 639.5 DL 323.934 639.5 318.934 639.5 DL 328.934
+639.5 323.934 639.5 DL 333.934 639.5 328.934 639.5 DL 335.6 640.5 335.6
+650.5 DL 335.6 639.5 335.6 649.5 DL F1(ESC)320.433 647 Q 351.598 640.5
+351.598 650.5 DL 340.6 650.5 335.6 650.5 DL 341.598 650.5 336.598 650.5
+DL 346.598 650.5 341.598 650.5 DL 351.598 650.5 346.598 650.5 DL 351.598
+639.5 351.598 649.5 DL 340.6 639.5 335.6 639.5 DL 341.598 639.5 336.598
+639.5 DL 346.598 639.5 341.598 639.5 DL 351.598 639.5 346.598 639.5 DL
+F0(D)339.989 648 Q(The k)72 666 Q -.15(ey)-.1 G(pad is similar:).15 E
+19.774(center; cf3)72 684 R 9.73(cf3 cf3)12.23 F 13.07
+(lf3w\(2c\) lf3w\(2c\) lf3w\(2c\))22.274 F 24.774(.K)22.274 G 6.54 -.15
+(ey N)-25.024 H 12.51(umeric Application).15 F(_)22.274 E 122 688.5 122
+698.5 DL 122 687.5 122 697.5 DL -1.38(Space Space)72 696 R 137.998 688.5
+137.998 698.5 DL 127 698.5 122 698.5 DL 127.998 698.5 122.998 698.5 DL
+132.998 698.5 127.998 698.5 DL 137.998 698.5 132.998 698.5 DL 137.998
+687.5 137.998 697.5 DL 127 687.5 122 687.5 DL 127.998 687.5 122.998
+687.5 DL 132.998 687.5 127.998 687.5 DL 137.998 687.5 132.998 687.5 DL
+139.664 688.5 139.664 698.5 DL 139.664 687.5 139.664 697.5 DL F1(ESC)
+124.497 695 Q 155.662 688.5 155.662 698.5 DL 144.664 698.5 139.664 698.5
+DL 145.662 698.5 140.662 698.5 DL 150.662 698.5 145.662 698.5 DL 155.662
+698.5 150.662 698.5 DL 155.662 687.5 155.662 697.5 DL 144.664 687.5
+139.664 687.5 DL 145.662 687.5 140.662 687.5 DL 150.662 687.5 145.662
+687.5 DL 155.662 687.5 150.662 687.5 DL 157.328 688.5 157.328 698.5 DL
+157.328 687.5 157.328 697.5 DL F0(?)145.443 696 Q 173.326 688.5 173.326
+698.5 DL 162.328 698.5 157.328 698.5 DL 163.326 698.5 158.326 698.5 DL
+168.326 698.5 163.326 698.5 DL 173.326 698.5 168.326 698.5 DL 173.326
+687.5 173.326 697.5 DL 162.328 687.5 157.328 687.5 DL 163.326 687.5
+158.326 687.5 DL 168.326 687.5 163.326 687.5 DL 173.326 687.5 168.326
+687.5 DL F1(SP)161.991 695 Q F0 -.8(Ta)22.561 1 O 10.25(bT).8 G 241.224
+688.5 241.224 698.5 DL 241.224 687.5 241.224 697.5 DL(ab)221.534 696 Q
+257.222 688.5 257.222 698.5 DL 246.224 698.5 241.224 698.5 DL 247.222
+698.5 242.222 698.5 DL 252.222 698.5 247.222 698.5 DL 257.222 698.5
+252.222 698.5 DL 257.222 687.5 257.222 697.5 DL 246.224 687.5 241.224
+687.5 DL 247.222 687.5 242.222 687.5 DL 252.222 687.5 247.222 687.5 DL
+257.222 687.5 252.222 687.5 DL 258.888 688.5 258.888 698.5 DL 258.888
+687.5 258.888 697.5 DL F1(ESC)243.721 695 Q 274.886 688.5 274.886 698.5
+DL 263.888 698.5 258.888 698.5 DL 264.886 698.5 259.886 698.5 DL 269.886
+698.5 264.886 698.5 DL 274.886 698.5 269.886 698.5 DL 274.886 687.5
+274.886 697.5 DL 263.888 687.5 258.888 687.5 DL 264.886 687.5 259.886
+687.5 DL 269.886 687.5 264.886 687.5 DL 274.886 687.5 269.886 687.5 DL
+276.552 688.5 276.552 698.5 DL 276.552 687.5 276.552 697.5 DL 292.55
+688.5 292.55 698.5 DL 281.552 698.5 276.552 698.5 DL 282.55 698.5 277.55
+698.5 DL 287.55 698.5 282.55 698.5 DL 292.55 698.5 287.55 698.5 DL
+292.55 687.5 292.55 697.5 DL 281.552 687.5 276.552 687.5 DL 282.55 687.5
+277.55 687.5 DL 287.55 687.5 282.55 687.5 DL 292.55 687.5 287.55 687.5
+DL F0 -5.826 13.779(?I E)264.667 696 T 360.448 688.5 360.448 698.5 DL
+360.448 687.5 360.448 697.5 DL .84(nter CR)316.558 696 R 376.446 688.5
+376.446 698.5 DL 365.448 698.5 360.448 698.5 DL 366.446 698.5 361.446
+698.5 DL 371.446 698.5 366.446 698.5 DL 376.446 698.5 371.446 698.5 DL
+376.446 687.5 376.446 697.5 DL 365.448 687.5 360.448 687.5 DL 366.446
+687.5 361.446 687.5 DL 371.446 687.5 366.446 687.5 DL 376.446 687.5
+371.446 687.5 DL 378.112 688.5 378.112 698.5 DL 378.112 687.5 378.112
+697.5 DL F1(ESC)362.945 695 Q 394.11 688.5 394.11 698.5 DL 383.112 698.5
+378.112 698.5 DL 384.11 698.5 379.11 698.5 DL 389.11 698.5 384.11 698.5
+DL 394.11 698.5 389.11 698.5 DL 394.11 687.5 394.11 697.5 DL 383.112
+687.5 378.112 687.5 DL 384.11 687.5 379.11 687.5 DL 389.11 687.5 384.11
+687.5 DL 394.11 687.5 389.11 687.5 DL 395.776 688.5 395.776 698.5 DL
+395.776 687.5 395.776 697.5 DL 411.774 688.5 411.774 698.5 DL 400.776
+698.5 395.776 698.5 DL 401.774 698.5 396.774 698.5 DL 406.774 698.5
+401.774 698.5 DL 411.774 698.5 406.774 698.5 DL 411.774 687.5 411.774
+697.5 DL 400.776 687.5 395.776 687.5 DL 401.774 687.5 396.774 687.5 DL
+406.774 687.5 401.774 687.5 DL 411.774 687.5 406.774 687.5 DL F0 -3.046
+10.999(?M P)383.891 696 T 454.672 688.5 454.672 698.5 DL 454.672 687.5
+454.672 697.5 DL(F1)435.232 696 Q 470.67 688.5 470.67 698.5 DL 459.672
+698.5 454.672 698.5 DL 460.67 698.5 455.67 698.5 DL 465.67 698.5 460.67
+698.5 DL 470.67 698.5 465.67 698.5 DL 470.67 687.5 470.67 697.5 DL
+459.672 687.5 454.672 687.5 DL 460.67 687.5 455.67 687.5 DL 465.67 687.5
+460.67 687.5 DL 470.67 687.5 465.67 687.5 DL 472.336 688.5 472.336 698.5
+DL 472.336 687.5 472.336 697.5 DL F1(ESC)457.169 695 Q 488.334 688.5
+488.334 698.5 DL 477.336 698.5 472.336 698.5 DL 478.334 698.5 473.334
+698.5 DL 483.334 698.5 478.334 698.5 DL 488.334 698.5 483.334 698.5 DL
+488.334 687.5 488.334 697.5 DL 477.336 687.5 472.336 687.5 DL 478.334
+687.5 473.334 687.5 DL 483.334 687.5 478.334 687.5 DL 488.334 687.5
+483.334 687.5 DL 504.672 688.5 504.672 698.5 DL 504.672 687.5 504.672
+697.5 DL F0(P)477.555 696 Q 520.67 688.5 520.67 698.5 DL 509.672 698.5
+504.672 698.5 DL 510.67 698.5 505.67 698.5 DL 515.67 698.5 510.67 698.5
+DL 520.67 698.5 515.67 698.5 DL 520.67 687.5 520.67 697.5 DL 509.672
+687.5 504.672 687.5 DL 510.67 687.5 505.67 687.5 DL 515.67 687.5 510.67
+687.5 DL 520.67 687.5 515.67 687.5 DL 522.336 688.5 522.336 698.5 DL
+522.336 687.5 522.336 697.5 DL F1(ESC)507.169 695 Q 538.334 688.5
+538.334 698.5 DL 527.336 698.5 522.336 698.5 DL 528.334 698.5 523.334
+698.5 DL 533.334 698.5 528.334 698.5 DL 538.334 698.5 533.334 698.5 DL
+538.334 687.5 538.334 697.5 DL 527.336 687.5 522.336 687.5 DL 528.334
+687.5 523.334 687.5 DL 533.334 687.5 528.334 687.5 DL 538.334 687.5
+533.334 687.5 DL F0(P)527.555 696 Q 97 700.5 97 710.5 DL 97 699.5 97
+709.5 DL(PF2)72 708 Q 112.998 700.5 112.998 710.5 DL 102 710.5 97 710.5
+DL 102.998 710.5 97.998 710.5 DL 107.998 710.5 102.998 710.5 DL 112.998
+710.5 107.998 710.5 DL 112.998 699.5 112.998 709.5 DL 102 699.5 97 699.5
+DL 102.998 699.5 97.998 699.5 DL 107.998 699.5 102.998 699.5 DL 112.998
+699.5 107.998 699.5 DL 114.664 700.5 114.664 710.5 DL 114.664 699.5
+114.664 709.5 DL F1(ESC)99.497 707 Q 130.662 700.5 130.662 710.5 DL
+119.664 710.5 114.664 710.5 DL 120.662 710.5 115.662 710.5 DL 125.662
+710.5 120.662 710.5 DL 130.662 710.5 125.662 710.5 DL 130.662 699.5
+130.662 709.5 DL 119.664 699.5 114.664 699.5 DL 120.662 699.5 115.662
+699.5 DL 125.662 699.5 120.662 699.5 DL 130.662 699.5 125.662 699.5 DL
+133.304 700.5 133.304 710.5 DL 133.304 699.5 133.304 709.5 DL F0(Q)
+119.053 708 Q 149.302 700.5 149.302 710.5 DL 138.304 710.5 133.304 710.5
+DL 139.302 710.5 134.302 710.5 DL 144.302 710.5 139.302 710.5 DL 149.302
+710.5 144.302 710.5 DL 149.302 699.5 149.302 709.5 DL 138.304 699.5
+133.304 699.5 DL 139.302 699.5 134.302 699.5 DL 144.302 699.5 139.302
+699.5 DL 149.302 699.5 144.302 699.5 DL 150.968 700.5 150.968 710.5 DL
+150.968 699.5 150.968 709.5 DL F1(ESC)135.801 707 Q 166.966 700.5
+166.966 710.5 DL 155.968 710.5 150.968 710.5 DL 156.966 710.5 151.966
+710.5 DL 161.966 710.5 156.966 710.5 DL 166.966 710.5 161.966 710.5 DL
+166.966 699.5 166.966 709.5 DL 155.968 699.5 150.968 699.5 DL 156.966
+699.5 151.966 699.5 DL 161.966 699.5 156.966 699.5 DL 166.966 699.5
+161.966 699.5 DL F0 9.971(QP)155.357 708 S 197.548 700.5 197.548 710.5
+DL 197.548 699.5 197.548 709.5 DL(F3)178.108 708 Q 213.546 700.5 213.546
+710.5 DL 202.548 710.5 197.548 710.5 DL 203.546 710.5 198.546 710.5 DL
+208.546 710.5 203.546 710.5 DL 213.546 710.5 208.546 710.5 DL 213.546
+699.5 213.546 709.5 DL 202.548 699.5 197.548 699.5 DL 203.546 699.5
+198.546 699.5 DL 208.546 699.5 203.546 699.5 DL 213.546 699.5 208.546
+699.5 DL 215.212 700.5 215.212 710.5 DL 215.212 699.5 215.212 709.5 DL
+F1(ESC)200.045 707 Q 231.21 700.5 231.21 710.5 DL 220.212 710.5 215.212
+710.5 DL 221.21 710.5 216.21 710.5 DL 226.21 710.5 221.21 710.5 DL
+231.21 710.5 226.21 710.5 DL 231.21 699.5 231.21 709.5 DL 220.212 699.5
+215.212 699.5 DL 221.21 699.5 216.21 699.5 DL 226.21 699.5 221.21 699.5
+DL 231.21 699.5 226.21 699.5 DL 247.548 700.5 247.548 710.5 DL 247.548
+699.5 247.548 709.5 DL F0(R)219.876 708 Q 263.546 700.5 263.546 710.5 DL
+252.548 710.5 247.548 710.5 DL 253.546 710.5 248.546 710.5 DL 258.546
+710.5 253.546 710.5 DL 263.546 710.5 258.546 710.5 DL 263.546 699.5
+263.546 709.5 DL 252.548 699.5 247.548 699.5 DL 253.546 699.5 248.546
+699.5 DL 258.546 699.5 253.546 699.5 DL 263.546 699.5 258.546 699.5 DL
+265.212 700.5 265.212 710.5 DL 265.212 699.5 265.212 709.5 DL F1(ESC)
+250.045 707 Q 281.21 700.5 281.21 710.5 DL 270.212 710.5 265.212 710.5
+DL 271.21 710.5 266.21 710.5 DL 276.21 710.5 271.21 710.5 DL 281.21
+710.5 276.21 710.5 DL 281.21 699.5 281.21 709.5 DL 270.212 699.5 265.212
+699.5 DL 271.21 699.5 266.21 699.5 DL 276.21 699.5 271.21 699.5 DL
+281.21 699.5 276.21 699.5 DL F0 10.246(RP)269.876 708 S 311.792 700.5
+311.792 710.5 DL 311.792 699.5 311.792 709.5 DL(F4)292.352 708 Q 327.79
+700.5 327.79 710.5 DL 316.792 710.5 311.792 710.5 DL 317.79 710.5 312.79
+710.5 DL 322.79 710.5 317.79 710.5 DL 327.79 710.5 322.79 710.5 DL
+327.79 699.5 327.79 709.5 DL 316.792 699.5 311.792 699.5 DL 317.79 699.5
+312.79 699.5 DL 322.79 699.5 317.79 699.5 DL 327.79 699.5 322.79 699.5
+DL 329.456 700.5 329.456 710.5 DL 329.456 699.5 329.456 709.5 DL F1(ESC)
+314.289 707 Q 345.454 700.5 345.454 710.5 DL 334.456 710.5 329.456 710.5
+DL 335.454 710.5 330.454 710.5 DL 340.454 710.5 335.454 710.5 DL 345.454
+710.5 340.454 710.5 DL 345.454 699.5 345.454 709.5 DL 334.456 699.5
+329.456 699.5 DL 335.454 699.5 330.454 699.5 DL 340.454 699.5 335.454
+699.5 DL 345.454 699.5 340.454 699.5 DL 361.792 700.5 361.792 710.5 DL
+361.792 699.5 361.792 709.5 DL F0(S)334.675 708 Q 377.79 700.5 377.79
+710.5 DL 366.792 710.5 361.792 710.5 DL 367.79 710.5 362.79 710.5 DL
+372.79 710.5 367.79 710.5 DL 377.79 710.5 372.79 710.5 DL 377.79 699.5
+377.79 709.5 DL 366.792 699.5 361.792 699.5 DL 367.79 699.5 362.79 699.5
+DL 372.79 699.5 367.79 699.5 DL 377.79 699.5 372.79 699.5 DL 379.456
+700.5 379.456 710.5 DL 379.456 699.5 379.456 709.5 DL F1(ESC)364.289 707
+Q 395.454 700.5 395.454 710.5 DL 384.456 710.5 379.456 710.5 DL 385.454
+710.5 380.454 710.5 DL 390.454 710.5 385.454 710.5 DL 395.454 710.5
+390.454 710.5 DL 395.454 699.5 395.454 709.5 DL 384.456 699.5 379.456
+699.5 DL 385.454 699.5 380.454 699.5 DL 390.454 699.5 385.454 699.5 DL
+395.454 699.5 390.454 699.5 DL F0 10.801(S*)384.675 708 S 477.452 700.5
+477.452 710.5 DL 477.452 699.5 477.452 709.5 DL -.56(\(multiply\) *)
+409.952 708 R 493.45 700.5 493.45 710.5 DL 482.452 710.5 477.452 710.5
+DL 483.45 710.5 478.45 710.5 DL 488.45 710.5 483.45 710.5 DL 493.45
+710.5 488.45 710.5 DL 493.45 699.5 493.45 709.5 DL 482.452 699.5 477.452
+699.5 DL 483.45 699.5 478.45 699.5 DL 488.45 699.5 483.45 699.5 DL
+493.45 699.5 488.45 699.5 DL 495.116 700.5 495.116 710.5 DL 495.116
+699.5 495.116 709.5 DL F1(ESC)479.949 707 Q 511.114 700.5 511.114 710.5
+DL 500.116 710.5 495.116 710.5 DL 501.114 710.5 496.114 710.5 DL 506.114
+710.5 501.114 710.5 DL 511.114 710.5 506.114 710.5 DL 511.114 699.5
+511.114 709.5 DL 500.116 699.5 495.116 699.5 DL 501.114 699.5 496.114
+699.5 DL 506.114 699.5 501.114 699.5 DL 511.114 699.5 506.114 699.5 DL
+512.78 700.5 512.78 710.5 DL 512.78 699.5 512.78 709.5 DL 528.778 700.5
+528.778 710.5 DL 517.78 710.5 512.78 710.5 DL 518.778 710.5 513.778
+710.5 DL 523.778 710.5 518.778 710.5 DL 528.778 710.5 523.778 710.5 DL
+528.778 699.5 528.778 709.5 DL 517.78 699.5 512.78 699.5 DL 518.778
+699.5 513.778 699.5 DL 523.778 699.5 518.778 699.5 DL 528.778 699.5
+523.778 699.5 DL F0 14.054(?j)500.895 708 S(+)-1.863 E 138.86 712.5
+138.86 722.5 DL 138.86 711.5 138.86 721.5 DL 18.26(\(add\) +)72 720 R
+154.858 712.5 154.858 722.5 DL 143.86 722.5 138.86 722.5 DL 144.858
+722.5 139.858 722.5 DL 149.858 722.5 144.858 722.5 DL 154.858 722.5
+149.858 722.5 DL 154.858 711.5 154.858 721.5 DL 143.86 711.5 138.86
+711.5 DL 144.858 711.5 139.858 711.5 DL 149.858 711.5 144.858 711.5 DL
+154.858 711.5 149.858 711.5 DL 156.524 712.5 156.524 722.5 DL 156.524
+711.5 156.524 721.5 DL F1(ESC)141.357 719 Q 172.522 712.5 172.522 722.5
+DL 161.524 722.5 156.524 722.5 DL 162.522 722.5 157.522 722.5 DL 167.522
+722.5 162.522 722.5 DL 172.522 722.5 167.522 722.5 DL 172.522 711.5
+172.522 721.5 DL 161.524 711.5 156.524 711.5 DL 162.522 711.5 157.522
+711.5 DL 167.522 711.5 162.522 711.5 DL 172.522 711.5 167.522 711.5 DL
+174.188 712.5 174.188 722.5 DL 174.188 711.5 174.188 721.5 DL 190.186
+712.5 190.186 722.5 DL 179.188 722.5 174.188 722.5 DL 180.186 722.5
+175.186 722.5 DL 185.186 722.5 180.186 722.5 DL 190.186 722.5 185.186
+722.5 DL 190.186 711.5 190.186 721.5 DL 179.188 711.5 174.188 711.5 DL
+180.186 711.5 175.186 711.5 DL 185.186 711.5 180.186 711.5 DL 190.186
+711.5 185.186 711.5 DL F0 -2.346 12.944(?k ,)162.303 720 T 302.106 712.5
+302.106 722.5 DL 302.106 711.5 302.106 721.5 DL 6.4(\(comma\) ,)232.106
+720 R 318.104 712.5 318.104 722.5 DL 307.106 722.5 302.106 722.5 DL
+308.104 722.5 303.104 722.5 DL 313.104 722.5 308.104 722.5 DL 318.104
+722.5 313.104 722.5 DL 318.104 711.5 318.104 721.5 DL 307.106 711.5
+302.106 711.5 DL 308.104 711.5 303.104 711.5 DL 313.104 711.5 308.104
+711.5 DL 318.104 711.5 313.104 711.5 DL 319.77 712.5 319.77 722.5 DL
+319.77 711.5 319.77 721.5 DL F1(ESC)304.603 719 Q 335.768 712.5 335.768
+722.5 DL 324.77 722.5 319.77 722.5 DL 325.768 722.5 320.768 722.5 DL
+330.768 722.5 325.768 722.5 DL 335.768 722.5 330.768 722.5 DL 335.768
+711.5 335.768 721.5 DL 324.77 711.5 319.77 711.5 DL 325.768 711.5
+320.768 711.5 DL 330.768 711.5 325.768 711.5 DL 335.768 711.5 330.768
+711.5 DL 337.434 712.5 337.434 722.5 DL 337.434 711.5 337.434 721.5 DL
+353.432 712.5 353.432 722.5 DL 342.434 722.5 337.434 722.5 DL 343.432
+722.5 338.432 722.5 DL 348.432 722.5 343.432 722.5 DL 353.432 722.5
+348.432 722.5 DL 353.432 711.5 353.432 721.5 DL 342.434 711.5 337.434
+711.5 DL 343.432 711.5 338.432 711.5 DL 348.432 711.5 343.432 711.5 DL
+353.432 711.5 348.432 711.5 DL F0 -3.456 14.054(?l -)325.549 720 T
+465.352 712.5 465.352 722.5 DL 465.352 711.5 465.352 721.5 DL 10.56
+(\(minus\) -)396.182 720 R 481.35 712.5 481.35 722.5 DL 470.352 722.5
+465.352 722.5 DL 471.35 722.5 466.35 722.5 DL 476.35 722.5 471.35 722.5
+DL 481.35 722.5 476.35 722.5 DL 481.35 711.5 481.35 721.5 DL 470.352
+711.5 465.352 711.5 DL 471.35 711.5 466.35 711.5 DL 476.35 711.5 471.35
+711.5 DL 481.35 711.5 476.35 711.5 DL 483.016 712.5 483.016 722.5 DL
+483.016 711.5 483.016 721.5 DL F1(ESC)467.849 719 Q 499.014 712.5
+499.014 722.5 DL 488.016 722.5 483.016 722.5 DL 489.014 722.5 484.014
+722.5 DL 494.014 722.5 489.014 722.5 DL 499.014 722.5 494.014 722.5 DL
+499.014 711.5 499.014 721.5 DL 488.016 711.5 483.016 711.5 DL 489.014
+711.5 484.014 711.5 DL 494.014 711.5 489.014 711.5 DL 499.014 711.5
+494.014 711.5 DL 500.68 712.5 500.68 722.5 DL 500.68 711.5 500.68 721.5
+DL 516.678 712.5 516.678 722.5 DL 505.68 722.5 500.68 722.5 DL 506.678
+722.5 501.678 722.5 DL 511.678 722.5 506.678 722.5 DL 516.678 722.5
+511.678 722.5 DL 516.678 711.5 516.678 721.5 DL 505.68 711.5 500.68
+711.5 DL 506.678 711.5 501.678 711.5 DL 511.678 711.5 506.678 711.5 DL
+516.678 711.5 511.678 711.5 DL F0 -.957 11.554(?m /)488.795 720 T(15)301
+768 Q EP
+%%Page: 16 16
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 48 Q(Function K)
+306.47 E -.15(ey)-.25 G(s).15 E(\(di)72 84 Q .4 LW 141.72 76.5 141.72
+86.5 DL 141.72 75.5 141.72 85.5 DL 10.81(vide\) /)82.86 84 R 157.718
+76.5 157.718 86.5 DL 146.72 86.5 141.72 86.5 DL 147.718 86.5 142.718
+86.5 DL 152.718 86.5 147.718 86.5 DL 157.718 86.5 152.718 86.5 DL
+157.718 75.5 157.718 85.5 DL 146.72 75.5 141.72 75.5 DL 147.718 75.5
+142.718 75.5 DL 152.718 75.5 147.718 75.5 DL 157.718 75.5 152.718 75.5
+DL 159.384 76.5 159.384 86.5 DL 159.384 75.5 159.384 85.5 DL/F1 6
+/Times-Roman@0 SF(ESC)144.217 83 Q 175.382 76.5 175.382 86.5 DL 164.384
+86.5 159.384 86.5 DL 165.382 86.5 160.382 86.5 DL 170.382 86.5 165.382
+86.5 DL 175.382 86.5 170.382 86.5 DL 175.382 75.5 175.382 85.5 DL
+164.384 75.5 159.384 75.5 DL 165.382 75.5 160.382 75.5 DL 170.382 75.5
+165.382 75.5 DL 175.382 75.5 170.382 75.5 DL 177.048 76.5 177.048 86.5
+DL 177.048 75.5 177.048 85.5 DL 193.046 76.5 193.046 86.5 DL 182.048
+86.5 177.048 86.5 DL 183.046 86.5 178.046 86.5 DL 188.046 86.5 183.046
+86.5 DL 193.046 86.5 188.046 86.5 DL 193.046 75.5 193.046 85.5 DL
+182.048 75.5 177.048 75.5 DL 183.046 75.5 178.046 75.5 DL 188.046 75.5
+183.046 75.5 DL 193.046 75.5 188.046 75.5 DL F0 -9.119 12.944(?o 0)
+165.163 84 T 256.816 76.5 256.816 86.5 DL 256.816 75.5 256.816 85.5 DL
+(0)231.816 84 Q 272.814 76.5 272.814 86.5 DL 261.816 86.5 256.816 86.5
+DL 262.814 86.5 257.814 86.5 DL 267.814 86.5 262.814 86.5 DL 272.814
+86.5 267.814 86.5 DL 272.814 75.5 272.814 85.5 DL 261.816 75.5 256.816
+75.5 DL 262.814 75.5 257.814 75.5 DL 267.814 75.5 262.814 75.5 DL
+272.814 75.5 267.814 75.5 DL 274.48 76.5 274.48 86.5 DL 274.48 75.5
+274.48 85.5 DL F1(ESC)259.313 83 Q 290.478 76.5 290.478 86.5 DL 279.48
+86.5 274.48 86.5 DL 280.478 86.5 275.478 86.5 DL 285.478 86.5 280.478
+86.5 DL 290.478 86.5 285.478 86.5 DL 290.478 75.5 290.478 85.5 DL 279.48
+75.5 274.48 75.5 DL 280.478 75.5 275.478 75.5 DL 285.478 75.5 280.478
+75.5 DL 290.478 75.5 285.478 75.5 DL 292.144 76.5 292.144 86.5 DL
+292.144 75.5 292.144 85.5 DL 308.142 76.5 308.142 86.5 DL 297.144 86.5
+292.144 86.5 DL 298.142 86.5 293.142 86.5 DL 303.142 86.5 298.142 86.5
+DL 308.142 86.5 303.142 86.5 DL 308.142 75.5 308.142 85.5 DL 297.144
+75.5 292.144 75.5 DL 298.142 75.5 293.142 75.5 DL 303.142 75.5 298.142
+75.5 DL 308.142 75.5 303.142 75.5 DL F0 -9.119 12.944(?p 1)280.259 84 T
+371.912 76.5 371.912 86.5 DL 371.912 75.5 371.912 85.5 DL(1)346.912 84 Q
+387.91 76.5 387.91 86.5 DL 376.912 86.5 371.912 86.5 DL 377.91 86.5
+372.91 86.5 DL 382.91 86.5 377.91 86.5 DL 387.91 86.5 382.91 86.5 DL
+387.91 75.5 387.91 85.5 DL 376.912 75.5 371.912 75.5 DL 377.91 75.5
+372.91 75.5 DL 382.91 75.5 377.91 75.5 DL 387.91 75.5 382.91 75.5 DL
+389.576 76.5 389.576 86.5 DL 389.576 75.5 389.576 85.5 DL F1(ESC)374.409
+83 Q 405.574 76.5 405.574 86.5 DL 394.576 86.5 389.576 86.5 DL 395.574
+86.5 390.574 86.5 DL 400.574 86.5 395.574 86.5 DL 405.574 86.5 400.574
+86.5 DL 405.574 75.5 405.574 85.5 DL 394.576 75.5 389.576 75.5 DL
+395.574 75.5 390.574 75.5 DL 400.574 75.5 395.574 75.5 DL 405.574 75.5
+400.574 75.5 DL 407.24 76.5 407.24 86.5 DL 407.24 75.5 407.24 85.5 DL
+423.238 76.5 423.238 86.5 DL 412.24 86.5 407.24 86.5 DL 413.238 86.5
+408.238 86.5 DL 418.238 86.5 413.238 86.5 DL 423.238 86.5 418.238 86.5
+DL 423.238 75.5 423.238 85.5 DL 412.24 75.5 407.24 75.5 DL 413.238 75.5
+408.238 75.5 DL 418.238 75.5 413.238 75.5 DL 423.238 75.5 418.238 75.5
+DL F0 -9.119 12.944(?q 2)395.355 84 T 487.008 76.5 487.008 86.5 DL
+487.008 75.5 487.008 85.5 DL(2)462.008 84 Q 503.006 76.5 503.006 86.5 DL
+492.008 86.5 487.008 86.5 DL 493.006 86.5 488.006 86.5 DL 498.006 86.5
+493.006 86.5 DL 503.006 86.5 498.006 86.5 DL 503.006 75.5 503.006 85.5
+DL 492.008 75.5 487.008 75.5 DL 493.006 75.5 488.006 75.5 DL 498.006
+75.5 493.006 75.5 DL 503.006 75.5 498.006 75.5 DL 504.672 76.5 504.672
+86.5 DL 504.672 75.5 504.672 85.5 DL F1(ESC)489.505 83 Q 520.67 76.5
+520.67 86.5 DL 509.672 86.5 504.672 86.5 DL 510.67 86.5 505.67 86.5 DL
+515.67 86.5 510.67 86.5 DL 520.67 86.5 515.67 86.5 DL 520.67 75.5 520.67
+85.5 DL 509.672 75.5 504.672 75.5 DL 510.67 75.5 505.67 75.5 DL 515.67
+75.5 510.67 75.5 DL 520.67 75.5 515.67 75.5 DL 522.336 76.5 522.336 86.5
+DL 522.336 75.5 522.336 85.5 DL 538.334 76.5 538.334 86.5 DL 527.336
+86.5 522.336 86.5 DL 528.334 86.5 523.334 86.5 DL 533.334 86.5 528.334
+86.5 DL 538.334 86.5 533.334 86.5 DL 538.334 75.5 538.334 85.5 DL
+527.336 75.5 522.336 75.5 DL 528.334 75.5 523.334 75.5 DL 533.334 75.5
+528.334 75.5 DL 538.334 75.5 533.334 75.5 DL F0 13.779(?r)510.451 84 S
+122 88.5 122 98.5 DL 122 87.5 122 97.5 DL 20(33)72 96 S 137.998 88.5
+137.998 98.5 DL 127 98.5 122 98.5 DL 127.998 98.5 122.998 98.5 DL
+132.998 98.5 127.998 98.5 DL 137.998 98.5 132.998 98.5 DL 137.998 87.5
+137.998 97.5 DL 127 87.5 122 87.5 DL 127.998 87.5 122.998 87.5 DL
+132.998 87.5 127.998 87.5 DL 137.998 87.5 132.998 87.5 DL 139.664 88.5
+139.664 98.5 DL 139.664 87.5 139.664 97.5 DL F1(ESC)124.497 95 Q 155.662
+88.5 155.662 98.5 DL 144.664 98.5 139.664 98.5 DL 145.662 98.5 140.662
+98.5 DL 150.662 98.5 145.662 98.5 DL 155.662 98.5 150.662 98.5 DL
+155.662 87.5 155.662 97.5 DL 144.664 87.5 139.664 87.5 DL 145.662 87.5
+140.662 87.5 DL 150.662 87.5 145.662 87.5 DL 155.662 87.5 150.662 87.5
+DL 157.328 88.5 157.328 98.5 DL 157.328 87.5 157.328 97.5 DL 173.326
+88.5 173.326 98.5 DL 162.328 98.5 157.328 98.5 DL 163.326 98.5 158.326
+98.5 DL 168.326 98.5 163.326 98.5 DL 173.326 98.5 168.326 98.5 DL
+173.326 87.5 173.326 97.5 DL 162.328 87.5 157.328 87.5 DL 163.326 87.5
+158.326 87.5 DL 168.326 87.5 163.326 87.5 DL 173.326 87.5 168.326 87.5
+DL F0 -3.1 13.499(?s 4)145.443 96 T 243.67 88.5 243.67 98.5 DL 243.67
+87.5 243.67 97.5 DL(4)218.67 96 Q 259.668 88.5 259.668 98.5 DL 248.67
+98.5 243.67 98.5 DL 249.668 98.5 244.668 98.5 DL 254.668 98.5 249.668
+98.5 DL 259.668 98.5 254.668 98.5 DL 259.668 87.5 259.668 97.5 DL 248.67
+87.5 243.67 87.5 DL 249.668 87.5 244.668 87.5 DL 254.668 87.5 249.668
+87.5 DL 259.668 87.5 254.668 87.5 DL 261.334 88.5 261.334 98.5 DL
+261.334 87.5 261.334 97.5 DL F1(ESC)246.167 95 Q 277.332 88.5 277.332
+98.5 DL 266.334 98.5 261.334 98.5 DL 267.332 98.5 262.332 98.5 DL
+272.332 98.5 267.332 98.5 DL 277.332 98.5 272.332 98.5 DL 277.332 87.5
+277.332 97.5 DL 266.334 87.5 261.334 87.5 DL 267.332 87.5 262.332 87.5
+DL 272.332 87.5 267.332 87.5 DL 277.332 87.5 272.332 87.5 DL 278.998
+88.5 278.998 98.5 DL 278.998 87.5 278.998 97.5 DL 294.996 88.5 294.996
+98.5 DL 283.998 98.5 278.998 98.5 DL 284.996 98.5 279.996 98.5 DL
+289.996 98.5 284.996 98.5 DL 294.996 98.5 289.996 98.5 DL 294.996 87.5
+294.996 97.5 DL 283.998 87.5 278.998 87.5 DL 284.996 87.5 279.996 87.5
+DL 289.996 87.5 284.996 87.5 DL 294.996 87.5 289.996 87.5 DL F0 -3.656
+14.054(?t 5)267.113 96 T 365.339 88.5 365.339 98.5 DL 365.339 87.5
+365.339 97.5 DL(5)340.339 96 Q 381.337 88.5 381.337 98.5 DL 370.339 98.5
+365.339 98.5 DL 371.337 98.5 366.337 98.5 DL 376.337 98.5 371.337 98.5
+DL 381.337 98.5 376.337 98.5 DL 381.337 87.5 381.337 97.5 DL 370.339
+87.5 365.339 87.5 DL 371.337 87.5 366.337 87.5 DL 376.337 87.5 371.337
+87.5 DL 381.337 87.5 376.337 87.5 DL 383.003 88.5 383.003 98.5 DL
+383.003 87.5 383.003 97.5 DL F1(ESC)367.836 95 Q 399.001 88.5 399.001
+98.5 DL 388.003 98.5 383.003 98.5 DL 389.001 98.5 384.001 98.5 DL
+394.001 98.5 389.001 98.5 DL 399.001 98.5 394.001 98.5 DL 399.001 87.5
+399.001 97.5 DL 388.003 87.5 383.003 87.5 DL 389.001 87.5 384.001 87.5
+DL 394.001 87.5 389.001 87.5 DL 399.001 87.5 394.001 87.5 DL 400.667
+88.5 400.667 98.5 DL 400.667 87.5 400.667 97.5 DL 416.665 88.5 416.665
+98.5 DL 405.667 98.5 400.667 98.5 DL 406.665 98.5 401.665 98.5 DL
+411.665 98.5 406.665 98.5 DL 416.665 98.5 411.665 98.5 DL 416.665 87.5
+416.665 97.5 DL 405.667 87.5 400.667 87.5 DL 406.665 87.5 401.665 87.5
+DL 411.665 87.5 406.665 87.5 DL 416.665 87.5 411.665 87.5 DL F0 -2.546
+12.944(?u 6)388.782 96 T 487.008 88.5 487.008 98.5 DL 487.008 87.5
+487.008 97.5 DL(6)462.008 96 Q 503.006 88.5 503.006 98.5 DL 492.008 98.5
+487.008 98.5 DL 493.006 98.5 488.006 98.5 DL 498.006 98.5 493.006 98.5
+DL 503.006 98.5 498.006 98.5 DL 503.006 87.5 503.006 97.5 DL 492.008
+87.5 487.008 87.5 DL 493.006 87.5 488.006 87.5 DL 498.006 87.5 493.006
+87.5 DL 503.006 87.5 498.006 87.5 DL 504.672 88.5 504.672 98.5 DL
+504.672 87.5 504.672 97.5 DL F1(ESC)489.505 95 Q 520.67 88.5 520.67 98.5
+DL 509.672 98.5 504.672 98.5 DL 510.67 98.5 505.67 98.5 DL 515.67 98.5
+510.67 98.5 DL 520.67 98.5 515.67 98.5 DL 520.67 87.5 520.67 97.5 DL
+509.672 87.5 504.672 87.5 DL 510.67 87.5 505.67 87.5 DL 515.67 87.5
+510.67 87.5 DL 520.67 87.5 515.67 87.5 DL 522.336 88.5 522.336 98.5 DL
+522.336 87.5 522.336 97.5 DL 538.334 88.5 538.334 98.5 DL 527.336 98.5
+522.336 98.5 DL 528.334 98.5 523.334 98.5 DL 533.334 98.5 528.334 98.5
+DL 538.334 98.5 533.334 98.5 DL 538.334 87.5 538.334 97.5 DL 527.336
+87.5 522.336 87.5 DL 528.334 87.5 523.334 87.5 DL 533.334 87.5 528.334
+87.5 DL 538.334 87.5 533.334 87.5 DL F0 12.944(?v)510.451 96 S 122 100.5
+122 110.5 DL 122 99.5 122 109.5 DL 20(77)72 108 S 137.998 100.5 137.998
+110.5 DL 127 110.5 122 110.5 DL 127.998 110.5 122.998 110.5 DL 132.998
+110.5 127.998 110.5 DL 137.998 110.5 132.998 110.5 DL 137.998 99.5
+137.998 109.5 DL 127 99.5 122 99.5 DL 127.998 99.5 122.998 99.5 DL
+132.998 99.5 127.998 99.5 DL 137.998 99.5 132.998 99.5 DL 139.664 100.5
+139.664 110.5 DL 139.664 99.5 139.664 109.5 DL F1(ESC)124.497 107 Q
+155.662 100.5 155.662 110.5 DL 144.664 110.5 139.664 110.5 DL 145.662
+110.5 140.662 110.5 DL 150.662 110.5 145.662 110.5 DL 155.662 110.5
+150.662 110.5 DL 155.662 99.5 155.662 109.5 DL 144.664 99.5 139.664 99.5
+DL 145.662 99.5 140.662 99.5 DL 150.662 99.5 145.662 99.5 DL 155.662
+99.5 150.662 99.5 DL 157.328 100.5 157.328 110.5 DL 157.328 99.5 157.328
+109.5 DL 173.326 100.5 173.326 110.5 DL 162.328 110.5 157.328 110.5 DL
+163.326 110.5 158.326 110.5 DL 168.326 110.5 163.326 110.5 DL 173.326
+110.5 168.326 110.5 DL 173.326 99.5 173.326 109.5 DL 162.328 99.5
+157.328 99.5 DL 163.326 99.5 158.326 99.5 DL 168.326 99.5 163.326 99.5
+DL 173.326 99.5 168.326 99.5 DL F0 11.834(?w)145.443 108 S 227.492 100.5
+227.492 110.5 DL 227.492 99.5 227.492 109.5 DL 20(88)177.492 108 S
+243.49 100.5 243.49 110.5 DL 232.492 110.5 227.492 110.5 DL 233.49 110.5
+228.49 110.5 DL 238.49 110.5 233.49 110.5 DL 243.49 110.5 238.49 110.5
+DL 243.49 99.5 243.49 109.5 DL 232.492 99.5 227.492 99.5 DL 233.49 99.5
+228.49 99.5 DL 238.49 99.5 233.49 99.5 DL 243.49 99.5 238.49 99.5 DL
+245.156 100.5 245.156 110.5 DL 245.156 99.5 245.156 109.5 DL F1(ESC)
+229.989 107 Q 261.154 100.5 261.154 110.5 DL 250.156 110.5 245.156 110.5
+DL 251.154 110.5 246.154 110.5 DL 256.154 110.5 251.154 110.5 DL 261.154
+110.5 256.154 110.5 DL 261.154 99.5 261.154 109.5 DL 250.156 99.5
+245.156 99.5 DL 251.154 99.5 246.154 99.5 DL 256.154 99.5 251.154 99.5
+DL 261.154 99.5 256.154 99.5 DL 262.82 100.5 262.82 110.5 DL 262.82 99.5
+262.82 109.5 DL 278.818 100.5 278.818 110.5 DL 267.82 110.5 262.82 110.5
+DL 268.818 110.5 263.818 110.5 DL 273.818 110.5 268.818 110.5 DL 278.818
+110.5 273.818 110.5 DL 278.818 99.5 278.818 109.5 DL 267.82 99.5 262.82
+99.5 DL 268.818 99.5 263.818 99.5 DL 273.818 99.5 268.818 99.5 DL
+278.818 99.5 273.818 99.5 DL F0 12.944(?x)250.935 108 S 332.984 100.5
+332.984 110.5 DL 332.984 99.5 332.984 109.5 DL 20(99)282.984 108 S
+348.982 100.5 348.982 110.5 DL 337.984 110.5 332.984 110.5 DL 338.982
+110.5 333.982 110.5 DL 343.982 110.5 338.982 110.5 DL 348.982 110.5
+343.982 110.5 DL 348.982 99.5 348.982 109.5 DL 337.984 99.5 332.984 99.5
+DL 338.982 99.5 333.982 99.5 DL 343.982 99.5 338.982 99.5 DL 348.982
+99.5 343.982 99.5 DL 350.648 100.5 350.648 110.5 DL 350.648 99.5 350.648
+109.5 DL F1(ESC)335.481 107 Q 366.646 100.5 366.646 110.5 DL 355.648
+110.5 350.648 110.5 DL 356.646 110.5 351.646 110.5 DL 361.646 110.5
+356.646 110.5 DL 366.646 110.5 361.646 110.5 DL 366.646 99.5 366.646
+109.5 DL 355.648 99.5 350.648 99.5 DL 356.646 99.5 351.646 99.5 DL
+361.646 99.5 356.646 99.5 DL 366.646 99.5 361.646 99.5 DL 368.312 100.5
+368.312 110.5 DL 368.312 99.5 368.312 109.5 DL 384.31 100.5 384.31 110.5
+DL 373.312 110.5 368.312 110.5 DL 374.31 110.5 369.31 110.5 DL 379.31
+110.5 374.31 110.5 DL 384.31 110.5 379.31 110.5 DL 384.31 99.5 384.31
+109.5 DL 373.312 99.5 368.312 99.5 DL 374.31 99.5 369.31 99.5 DL 379.31
+99.5 374.31 99.5 DL 384.31 99.5 379.31 99.5 DL F0 12.944(?y)356.427 108
+S 2.5(=\()-3.279 G 463.476 100.5 463.476 110.5 DL 463.476 99.5 463.476
+109.5 DL 11.04(equal\) =)399.946 108 R 479.474 100.5 479.474 110.5 DL
+468.476 110.5 463.476 110.5 DL 469.474 110.5 464.474 110.5 DL 474.474
+110.5 469.474 110.5 DL 479.474 110.5 474.474 110.5 DL 479.474 99.5
+479.474 109.5 DL 468.476 99.5 463.476 99.5 DL 469.474 99.5 464.474 99.5
+DL 474.474 99.5 469.474 99.5 DL 479.474 99.5 474.474 99.5 DL 481.14
+100.5 481.14 110.5 DL 481.14 99.5 481.14 109.5 DL F1(ESC)465.973 107 Q
+497.138 100.5 497.138 110.5 DL 486.14 110.5 481.14 110.5 DL 487.138
+110.5 482.138 110.5 DL 492.138 110.5 487.138 110.5 DL 497.138 110.5
+492.138 110.5 DL 497.138 99.5 497.138 109.5 DL 486.14 99.5 481.14 99.5
+DL 487.138 99.5 482.138 99.5 DL 492.138 99.5 487.138 99.5 DL 497.138
+99.5 492.138 99.5 DL 498.804 100.5 498.804 110.5 DL 498.804 99.5 498.804
+109.5 DL 514.802 100.5 514.802 110.5 DL 503.804 110.5 498.804 110.5 DL
+504.802 110.5 499.802 110.5 DL 509.802 110.5 504.802 110.5 DL 514.802
+110.5 509.802 110.5 DL 514.802 99.5 514.802 109.5 DL 503.804 99.5
+498.804 99.5 DL 504.802 99.5 499.802 99.5 DL 509.802 99.5 504.802 99.5
+DL 514.802 99.5 509.802 99.5 DL F0 11.834(?X)486.919 108 S/F2 10
+/Times-Bold@0 SF(Sun-Style Function K)72 138 Q(eys)-.25 E F0(The)72
+154.8 Q/F3 10/Times-Italic@0 SF(xterm)3.008 E F0 .509(program pro)3.009
+F .509(vides support for Sun k)-.15 F -.15(ey)-.1 G .509
+(boards more directly).15 F 3.009(,b)-.65 G 3.009(yam)-3.009 G .509
+(enu toggle that causes it to send Sun-)-3.009 F .676(style function k)
+72 166.8 R .976 -.15(ey c)-.1 H .676(odes rather than VT220.).15 F .676
+(Note, ho)5.676 F(we)-.25 E -.15(ve)-.25 G 1.476 -.4(r, t).15 H .676
+(hat the).4 F F3(sun)3.175 E F0(and)3.175 E F3(vt100)3.175 E F0 .675
+(emulations are not really com-)3.175 F 2.5(patible. F)72 178.8 R(or e)
+-.15 E(xample, their wrap-mar)-.15 E(gin beha)-.18 E(vior dif)-.2 E
+(fers.)-.25 E .672(Only function k)72 195.6 R -.15(ey)-.1 G 3.173(sa).15
+G .673(re altered; k)-3.173 F -.15(ey)-.1 G .673(pad and cursor k).15 F
+-.15(ey)-.1 G 3.173(sa).15 G .673(re the same.)-3.173 F .673
+(The emulation responds identically)5.673 F 5.673(.S)-.65 G .673(ee the)
+-5.673 F(xterm-sun terminfo entry for details.)72 207.6 Q F2
+(HP-Style Function K)72 231.6 Q(eys)-.25 E F0(Similarly)72 248.4 Q(,)
+-.65 E F3(xterm)2.5 E F0(can be compiled to support HP k)2.5 E -.15(ey)
+-.1 G 2.5(boards. See).15 F(the xterm-hp terminfo entry for details.)2.5
+E F2(Mouse T)72 272.4 Q(racking)-.74 E F0 .052(The VT widget can be set\
+ to send the mouse position and other information on b)72 289.2 R .052
+(utton presses.)-.2 F .052(These modes are typ-)5.052 F
+(ically used by editors and other full-screen applications that w)72
+301.2 Q(ant to mak)-.1 E 2.5(eu)-.1 G(se of the mouse.)-2.5 E .93
+(There are six mutually e)72 325.2 R(xclusi)-.15 E 1.23 -.15(ve m)-.25 H
+3.43(odes. One).15 F 465.9 317.7 465.9 327.7 DL 465.9 316.7 465.9 326.7
+DL .93(is DEC Locator mode, enabled by the DECELR)263.76 325.2 R 481.898
+317.7 481.898 327.7 DL 470.9 327.7 465.9 327.7 DL 471.898 327.7 466.898
+327.7 DL 476.898 327.7 471.898 327.7 DL 481.898 327.7 476.898 327.7 DL
+481.898 316.7 481.898 326.7 DL 470.9 316.7 465.9 316.7 DL 471.898 316.7
+466.898 316.7 DL 476.898 316.7 471.898 316.7 DL 481.898 316.7 476.898
+316.7 DL F1(CSI)469.231 324.2 Q F3(P)4.997 1 M 492.452 317.7 492.452
+327.7 DL 492.452 316.7 492.452 326.7 DL/F4 8/Times-Italic@0 SF(s)487.674
+328.2 Q 508.45 317.7 508.45 327.7 DL 497.452 327.7 492.452 327.7 DL
+498.45 327.7 493.45 327.7 DL 503.45 327.7 498.45 327.7 DL 508.45 327.7
+503.45 327.7 DL 508.45 316.7 508.45 326.7 DL 497.452 316.7 492.452 316.7
+DL 498.45 316.7 493.45 316.7 DL 503.45 316.7 498.45 316.7 DL 508.45
+316.7 503.45 316.7 DL F0(;)499.061 325.2 Q F3(P)8.275 E F4(s)-2 3 M
+522.336 317.7 522.336 327.7 DL 522.336 316.7 522.336 326.7 DL 538.334
+317.7 538.334 327.7 DL 527.336 327.7 522.336 327.7 DL 528.334 327.7
+523.334 327.7 DL 533.334 327.7 528.334 327.7 DL 538.334 327.7 533.334
+327.7 DL 538.334 316.7 538.334 326.7 DL 527.336 316.7 522.336 316.7 DL
+528.334 316.7 523.334 316.7 DL 533.334 316.7 528.334 316.7 DL 538.334
+316.7 533.334 316.7 DL F0 3.28<b47a>521.505 325.2 S .304
+(control sequence, and is not described here.)72 337.2 R .304
+(The remaining \214v)5.304 F 2.804(em)-.15 G .304
+(odes are each enabled \(or disabled\) by a dif)-2.804 F(ferent)-.25 E
+165.04 341.7 165.04 351.7 DL 165.04 340.7 165.04 350.7 DL
+(parameter in DECSET)72 349.2 Q 181.038 341.7 181.038 351.7 DL 170.04
+351.7 165.04 351.7 DL 171.038 351.7 166.038 351.7 DL 176.038 351.7
+171.038 351.7 DL 181.038 351.7 176.038 351.7 DL 181.038 340.7 181.038
+350.7 DL 170.04 340.7 165.04 340.7 DL 171.038 340.7 166.038 340.7 DL
+176.038 340.7 171.038 340.7 DL 181.038 340.7 176.038 340.7 DL 182.704
+341.7 182.704 351.7 DL 182.704 340.7 182.704 350.7 DL F1(CSI)168.371
+348.2 Q 198.702 341.7 198.702 351.7 DL 187.704 351.7 182.704 351.7 DL
+188.702 351.7 183.702 351.7 DL 193.702 351.7 188.702 351.7 DL 198.702
+351.7 193.702 351.7 DL 198.702 340.7 198.702 350.7 DL 187.704 340.7
+182.704 340.7 DL 188.702 340.7 183.702 340.7 DL 193.702 340.7 188.702
+340.7 DL 198.702 340.7 193.702 340.7 DL F0(?)188.483 349.2 Q F3(P)7.445
+E 211.92 341.7 211.92 351.7 DL 211.92 340.7 211.92 350.7 DL F4(m)204.478
+352.2 Q 227.918 341.7 227.918 351.7 DL 216.92 351.7 211.92 351.7 DL
+217.918 351.7 212.918 351.7 DL 222.918 351.7 217.918 351.7 DL 227.918
+351.7 222.918 351.7 DL 227.918 340.7 227.918 350.7 DL 216.92 340.7
+211.92 340.7 DL 217.918 340.7 212.918 340.7 DL 222.918 340.7 217.918
+340.7 DL 227.918 340.7 222.918 340.7 DL F0 9.665(ho)217.419 349.2 S 2.5
+(rD)-9.665 G 283.754 341.7 283.754 351.7 DL 283.754 340.7 283.754 350.7
+DL(ECRST)250.134 349.2 Q 299.752 341.7 299.752 351.7 DL 288.754 351.7
+283.754 351.7 DL 289.752 351.7 284.752 351.7 DL 294.752 351.7 289.752
+351.7 DL 299.752 351.7 294.752 351.7 DL 299.752 340.7 299.752 350.7 DL
+288.754 340.7 283.754 340.7 DL 289.752 340.7 284.752 340.7 DL 294.752
+340.7 289.752 340.7 DL 299.752 340.7 294.752 340.7 DL 301.418 341.7
+301.418 351.7 DL 301.418 340.7 301.418 350.7 DL F1(CSI)287.085 348.2 Q
+317.416 341.7 317.416 351.7 DL 306.418 351.7 301.418 351.7 DL 307.416
+351.7 302.416 351.7 DL 312.416 351.7 307.416 351.7 DL 317.416 351.7
+312.416 351.7 DL 317.416 340.7 317.416 350.7 DL 306.418 340.7 301.418
+340.7 DL 307.416 340.7 302.416 340.7 DL 312.416 340.7 307.416 340.7 DL
+317.416 340.7 312.416 340.7 DL F0(?)307.197 349.2 Q F3(P)7.445 E 330.634
+341.7 330.634 351.7 DL 330.634 340.7 330.634 350.7 DL F4(m)323.192 352.2
+Q 346.632 341.7 346.632 351.7 DL 335.634 351.7 330.634 351.7 DL 336.632
+351.7 331.632 351.7 DL 341.632 351.7 336.632 351.7 DL 346.632 351.7
+341.632 351.7 DL 346.632 340.7 346.632 350.7 DL 335.634 340.7 330.634
+340.7 DL 336.632 340.7 331.632 340.7 DL 341.632 340.7 336.632 340.7 DL
+346.632 340.7 341.632 340.7 DL F0 10.775(lc)337.243 349.2 S
+(ontrol sequence.)-10.775 E(Manifest constants for the parameter v)72
+373.2 Q(alues are de\214ned in)-.25 E F2(xcharmouse.h)2.5 E F0(as follo)
+2.5 E(ws:)-.25 E(#de\214ne SET_X10_MOUSE)200.735 391.2 Q(9)37.5 E
+(#de\214ne SET_VT200_MOUSE)200.735 403.2 Q(1000)32.5 E
+(#de\214ne SET_VT200_HIGHLIGHT_MOUSE)200.735 415.2 Q(1001)7.5 E
+(#de\214ne SET_BTN_EVENT_MOUSE)200.735 427.2 Q(1002)22.5 E
+(#de\214ne SET_ANY_EVENT_MOUSE)200.735 439.2 Q(1003)22.5 E .721
+(The motion reporting modes are strictly)72 462 R F3(xterm)3.221 E F0
+-.15(ex)3.221 G .721(tensions, and are not part of an).15 F 3.221(ys)
+-.15 G .721(tandard, though the)-3.221 F 3.222(ya)-.15 G .722(re analo-)
+-3.222 F(gous to the DEC VT200 DECELR locator reports.)72 474 Q -.15(Pa)
+72 498 S .008(rameters \(such as pointer position and b).15 F .007
+(utton number\) for all mouse tracking escape sequences generated by)-.2
+F F3(xterm)2.507 E F0 .772
+(encode numeric parameters in a single character as)72 510 R F3(value)
+3.273 E F0 3.273(+32. F)B .773(or e)-.15 F 386.308 502.5 386.308 512.5
+DL 386.308 501.5 386.308 511.5 DL 402.306 502.5 402.306 512.5 DL 391.308
+512.5 386.308 512.5 DL 392.306 512.5 387.306 512.5 DL 397.306 512.5
+392.306 512.5 DL 402.306 512.5 397.306 512.5 DL 402.306 501.5 402.306
+511.5 DL 391.308 501.5 386.308 501.5 DL 392.306 501.5 387.306 501.5 DL
+397.306 501.5 392.306 501.5 DL 402.306 501.5 397.306 501.5 DL 7.107
+(xample, !)351.095 510 R .773(speci\214es the v)11.273 F .773(alue 1.)
+-.25 F .773(The upper)5.773 F
+(left character position on the terminal is denoted as 1,1.)72 522 Q
+.138(X10 compatibility mode sends an escape sequence only on b)72 546 R
+.137(utton press, encoding the location and the mouse b)-.2 F(utton)-.2
+E 2.819(pressed. It)72 558 R .32
+(is enabled by specifying parameter 9 to DECSET)2.819 F 5.32(.O)-.74 G
+2.82(nb)-5.32 G .32(utton press,)-3.02 F F3(xterm)2.82 E 445.248 550.5
+445.248 560.5 DL 445.248 549.5 445.248 559.5 DL F0(sends)420.208 558 Q
+461.246 550.5 461.246 560.5 DL 450.248 560.5 445.248 560.5 DL 451.246
+560.5 446.246 560.5 DL 456.246 560.5 451.246 560.5 DL 461.246 560.5
+456.246 560.5 DL 461.246 549.5 461.246 559.5 DL 450.248 549.5 445.248
+549.5 DL 451.246 549.5 446.246 549.5 DL 456.246 549.5 451.246 549.5 DL
+461.246 549.5 456.246 549.5 DL 462.912 550.5 462.912 560.5 DL 462.912
+549.5 462.912 559.5 DL F1(CSI)448.579 557 Q 478.91 550.5 478.91 560.5 DL
+467.912 560.5 462.912 560.5 DL 468.91 560.5 463.91 560.5 DL 473.91 560.5
+468.91 560.5 DL 478.91 560.5 473.91 560.5 DL 478.91 549.5 478.91 559.5
+DL 467.912 549.5 462.912 549.5 DL 468.91 549.5 463.91 549.5 DL 473.91
+549.5 468.91 549.5 DL 478.91 549.5 473.91 549.5 DL F0(M)466.466 558 Q F3
+(C)5.22 E F4(b)-2 3 M F3(C)-3 I F4(x)-2 3 M F3(C)-3 I F4(y)-2 3 M F0 .32
+(\(6 char)2.82 -3 N(-)-.2 E(acters\).)72 570 Q F3(C)5 E F4(b)-2 3 M F0
+(is b)2.5 -3 M(utton\2551.)-.2 E F3(C)5 E F4(x)-2 3 M F0(and)2.5 -3 M F3
+(C)2.5 E F4(y)-2 3 M F0
+(are the x and y coordinates of the mouse when the b)2.5 -3 M(utton w)
+-.2 E(as pressed.)-.1 E .748
+(Normal tracking mode sends an escape sequence on both b)72 594 R .748
+(utton press and release.)-.2 F .747(Modi\214er k)5.747 F 1.047 -.15
+(ey \()-.1 H .747(shift, ctrl, meta\)).15 F .392
+(information is also sent.)72 606 R .392
+(It is enabled by specifying parameter 1000 to DECSET)5.392 F 5.392(.O)
+-.74 G 2.892(nb)-5.392 G .393(utton press or release,)-3.092 F F3(xterm)
+2.893 E 96.982 610.5 96.982 620.5 DL 96.982 609.5 96.982 619.5 DL F0
+(sends)72 618 Q 112.98 610.5 112.98 620.5 DL 101.982 620.5 96.982 620.5
+DL 102.98 620.5 97.98 620.5 DL 107.98 620.5 102.98 620.5 DL 112.98 620.5
+107.98 620.5 DL 112.98 609.5 112.98 619.5 DL 101.982 609.5 96.982 609.5
+DL 102.98 609.5 97.98 609.5 DL 107.98 609.5 102.98 609.5 DL 112.98 609.5
+107.98 609.5 DL 114.646 610.5 114.646 620.5 DL 114.646 609.5 114.646
+619.5 DL F1(CSI)100.313 617 Q 130.644 610.5 130.644 620.5 DL 119.646
+620.5 114.646 620.5 DL 120.644 620.5 115.644 620.5 DL 125.644 620.5
+120.644 620.5 DL 130.644 620.5 125.644 620.5 DL 130.644 609.5 130.644
+619.5 DL 119.646 609.5 114.646 609.5 DL 120.644 609.5 115.644 609.5 DL
+125.644 609.5 120.644 609.5 DL 130.644 609.5 125.644 609.5 DL F0(M)118.2
+618 Q F3(C)5.22 E F4(b)-2 3 M F3(C)-3 I F4(x)-2 3 M F3(C)-3 I F4(y)-2 3
+M F0 5.262(.T)-3 K .262(he lo)-5.262 F 2.762(wt)-.25 G .462 -.1(wo b)
+-2.762 H .262(its of).1 F F3(C)2.762 E F4(b)-2 3 M F0 .262(encode b)
+2.762 -3 N .262(utton information: 0=MB1 pressed, 1=MB2 pressed, 2=MB3)
+-.2 F .253(pressed, 3=release.)72 630 R .253(The ne)5.253 F .253
+(xt three bits encode the modi\214ers which were do)-.15 F .254
+(wn when the b)-.25 F .254(utton w)-.2 F .254(as pressed and are)-.1 F
+.112(added together:)72 642 R .112(4=Shift, 8=Meta, 16=Control.)5.112 F
+.112(Note ho)5.112 F(we)-.25 E -.15(ve)-.25 G 2.612(rt).15 G .112
+(hat the shift and control bits are normally una)-2.612 F -.25(va)-.2 G
+(ilable).25 E(because)72 654 Q F3(xterm)3.25 E F0 .751(uses the control\
+ modi\214er with mouse for popup menus, and the shift modi\214er is use\
+d in the def)3.25 F(ault)-.1 E .435(translations for b)72 666 R .435
+(utton e)-.2 F -.15(ve)-.25 G 2.935(nts. The).15 F F3(Meta)2.935 E F0
+.435(modi\214er recognized by)2.935 F F3(xterm)2.935 E F0 .435(is the)
+2.935 F F3(mod1)2.935 E F0 .435(mask, and is not necessarily the)2.935 F
+("Meta" k)72 678 Q .3 -.15(ey \()-.1 H(see).15 E F3(xmodmap)2.5 E F0
+(\).)A F3(C)5 E F4(x)-2 3 M F0(and)2.5 -3 M F3(C)2.5 E F4(y)-2 3 M F0
+(are the x and y coordinates of the mouse e)2.5 -3 M -.15(ve)-.25 G
+(nt, encoded as in X10 mode.).15 E(Wheel mice may return b)72 702 Q
+(uttons 4 and 5.)-.2 E(Those b)5 E
+(uttons are represented by adding 64 to the e)-.2 E -.15(ve)-.25 G
+(nt code.).15 E .237(Mouse hilite tracking noti\214es a program of a b)
+72 726 R .237(utton press, recei)-.2 F -.15(ve)-.25 G 2.737(sar).15 G
+.237(ange of lines from the program, highlights the)-2.737 F(16)301 768
+Q EP
+%%Page: 17 17
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 48 Q(Mouse T)299.21 E
+(racking)-.35 E(re)72 84 Q .687(gion co)-.15 F -.15(ve)-.15 G .686
+(red by the mouse within that range until b).15 F .686
+(utton release, and then sends the program the release coordi-)-.2 F
+2.799(nates. It)72 96 R .299
+(is enabled by specifying parameter 1001 to DECSET)2.799 F 5.299(.H)-.74
+G .3(ighlighting is performed only for b)-5.299 F .3(utton 1, though)-.2
+F 1.352(other b)72 108 R 1.352(utton e)-.2 F -.15(ve)-.25 G 1.351
+(nts can be recei).15 F -.15(ve)-.25 G(d.).15 E/F1 10/Times-Bold@0 SF
+-.65(Wa)6.351 G -.15(rn).65 G(ing:).15 E F0 1.351
+(use of this mode requires a cooperating program or it will hang)3.851 F
+/F2 10/Times-Italic@0 SF(xterm.)72 120 Q F0 .357(On b)5.357 F .358
+(utton press, the same information as for normal tracking is generated;)
+-.2 F F2(xterm)2.858 E F0 .358(then w)2.858 F .358(aits for the program)
+-.1 F .414(to send mouse tracking information.)72 132 R F2 .414(All X e)
+5.414 F .414(vents ar)-.15 F 2.914(ei)-.37 G(gnor)-2.914 E .414
+(ed until the pr)-.37 F .414(oper escape sequence is r)-.45 F .413
+(eceived fr)-.37 F .413(om the)-.45 F .4 LW 90.077 136.5 90.077 146.5 DL
+90.077 135.5 90.077 145.5 DL(pty:)72 144 Q 106.075 136.5 106.075 146.5
+DL 95.077 146.5 90.077 146.5 DL 96.075 146.5 91.075 146.5 DL 101.075
+146.5 96.075 146.5 DL 106.075 146.5 101.075 146.5 DL 106.075 135.5
+106.075 145.5 DL 95.077 135.5 90.077 135.5 DL 96.075 135.5 91.075 135.5
+DL 101.075 135.5 96.075 135.5 DL 106.075 135.5 101.075 135.5 DL/F3 6
+/Times-Roman@0 SF(CSI)93.408 143 Q F2(P)4.997 1 M 116.629 136.5 116.629
+146.5 DL 116.629 135.5 116.629 145.5 DL/F4 8/Times-Italic@0 SF(s)111.851
+147 Q 132.627 136.5 132.627 146.5 DL 121.629 146.5 116.629 146.5 DL
+122.627 146.5 117.627 146.5 DL 127.627 146.5 122.627 146.5 DL 132.627
+146.5 127.627 146.5 DL 132.627 135.5 132.627 145.5 DL 121.629 135.5
+116.629 135.5 DL 122.627 135.5 117.627 135.5 DL 127.627 135.5 122.627
+135.5 DL 132.627 135.5 127.627 135.5 DL F0(;)123.238 144 Q F2(P)8.275 E
+143.181 136.5 143.181 146.5 DL 143.181 135.5 143.181 145.5 DL F4(s)
+138.403 147 Q 159.179 136.5 159.179 146.5 DL 148.181 146.5 143.181 146.5
+DL 149.179 146.5 144.179 146.5 DL 154.179 146.5 149.179 146.5 DL 159.179
+146.5 154.179 146.5 DL 159.179 135.5 159.179 145.5 DL 148.181 135.5
+143.181 135.5 DL 149.179 135.5 144.179 135.5 DL 154.179 135.5 149.179
+135.5 DL 159.179 135.5 154.179 135.5 DL F0(;)149.79 144 Q F2(P)8.275 E
+169.733 136.5 169.733 146.5 DL 169.733 135.5 169.733 145.5 DL F4(s)
+164.955 147 Q 185.731 136.5 185.731 146.5 DL 174.733 146.5 169.733 146.5
+DL 175.731 146.5 170.731 146.5 DL 180.731 146.5 175.731 146.5 DL 185.731
+146.5 180.731 146.5 DL 185.731 135.5 185.731 145.5 DL 174.733 135.5
+169.733 135.5 DL 175.731 135.5 170.731 135.5 DL 180.731 135.5 175.731
+135.5 DL 185.731 135.5 180.731 135.5 DL F0(;)176.342 144 Q F2(P)8.275 E
+196.285 136.5 196.285 146.5 DL 196.285 135.5 196.285 145.5 DL F4(s)
+191.507 147 Q 212.283 136.5 212.283 146.5 DL 201.285 146.5 196.285 146.5
+DL 202.283 146.5 197.283 146.5 DL 207.283 146.5 202.283 146.5 DL 212.283
+146.5 207.283 146.5 DL 212.283 135.5 212.283 145.5 DL 201.285 135.5
+196.285 135.5 DL 202.283 135.5 197.283 135.5 DL 207.283 135.5 202.283
+135.5 DL 212.283 135.5 207.283 135.5 DL F0(;)202.894 144 Q F2(P)8.275 E
+222.837 136.5 222.837 146.5 DL 222.837 135.5 222.837 145.5 DL F4(s)
+218.059 147 Q 238.835 136.5 238.835 146.5 DL 227.837 146.5 222.837 146.5
+DL 228.835 146.5 223.835 146.5 DL 233.835 146.5 228.835 146.5 DL 238.835
+146.5 233.835 146.5 DL 238.835 135.5 238.835 145.5 DL 227.837 135.5
+222.837 135.5 DL 228.835 135.5 223.835 135.5 DL 233.835 135.5 228.835
+135.5 DL 238.835 135.5 233.835 135.5 DL F0 6.61(T.)227.781 144 S .027
+(The parameters are)-1.583 F F2 .027(func, startx, starty)2.527 F 2.527
+<2c8c>-.55 G -.1(rs)-2.527 G(tr).1 E(ow)-.45 E(,)-.74 E F0(and)2.528 E
+F2(lastr)2.528 E(ow)-.45 E 5.028(.f)-.74 G(unc)-5.028 E F0 .028(is non-)
+2.528 F 1.13(zero to initiate hilite tracking and zero to abort.)72 156
+R F2(startx)6.13 E F0(and)3.63 E F2(starty)3.63 E F0(gi)3.63 E 1.43 -.15
+(ve t)-.25 H 1.13(he starting x and y location for the high-).15 F .167
+(lighted re)72 168 R 2.667(gion. The)-.15 F .168
+(ending location tracks the mouse, b)2.668 F .168(ut will ne)-.2 F -.15
+(ve)-.25 G 2.668(rb).15 G 2.668(ea)-2.668 G(bo)-2.668 E .468 -.15(ve r)
+-.15 H -.25(ow).15 G F2<8c72>2.918 E(str)-.1 E(ow)-.45 E F0 .168
+(and will al)2.668 F -.1(wa)-.1 G .168(ys be abo).1 F -.15(ve)-.15 G(ro)
+72 180 Q(w)-.25 E F2(lastr)2.737 E(ow)-.45 E(.)-.74 E F0 .236
+(\(The top of the screen is ro)5.237 F 2.736(w1)-.25 G 2.736(.\) When)
+-2.736 F .236(the b)2.736 F .236(utton is released,)-.2 F F2(xterm)2.736
+E F0 .236(reports the ending position one of)2.736 F(tw)72 192 Q 2.936
+(ow)-.1 G .436(ays: if the start and end coordinates are v)-3.036 F .436
+(alid te)-.25 F 341.592 184.5 341.592 194.5 DL 341.592 183.5 341.592
+193.5 DL .436(xt locations:)289.05 192 R 357.59 184.5 357.59 194.5 DL
+346.592 194.5 341.592 194.5 DL 347.59 194.5 342.59 194.5 DL 352.59 194.5
+347.59 194.5 DL 357.59 194.5 352.59 194.5 DL 357.59 183.5 357.59 193.5
+DL 346.592 183.5 341.592 183.5 DL 347.59 183.5 342.59 183.5 DL 352.59
+183.5 347.59 183.5 DL 357.59 183.5 352.59 183.5 DL 359.256 184.5 359.256
+194.5 DL 359.256 183.5 359.256 193.5 DL F3(CSI)344.923 191 Q 375.254
+184.5 375.254 194.5 DL 364.256 194.5 359.256 194.5 DL 365.254 194.5
+360.254 194.5 DL 370.254 194.5 365.254 194.5 DL 375.254 194.5 370.254
+194.5 DL 375.254 183.5 375.254 193.5 DL 364.256 183.5 359.256 183.5 DL
+365.254 183.5 360.254 183.5 DL 370.254 183.5 365.254 183.5 DL 375.254
+183.5 370.254 183.5 DL F0(t)365.865 192 Q F2(C)8.275 E F4(x)-2 3 M F2(C)
+-3 I F4(y)-2 3 M F0 5.436(.I)-3 K 2.936(fe)-5.436 G .437
+(ither coordinate is past the end)-2.936 F 119.387 196.5 119.387 206.5
+DL 119.387 195.5 119.387 205.5 DL .519(of the line:)72 204 R 135.385
+196.5 135.385 206.5 DL 124.387 206.5 119.387 206.5 DL 125.385 206.5
+120.385 206.5 DL 130.385 206.5 125.385 206.5 DL 135.385 206.5 130.385
+206.5 DL 135.385 195.5 135.385 205.5 DL 124.387 195.5 119.387 195.5 DL
+125.385 195.5 120.385 195.5 DL 130.385 195.5 125.385 195.5 DL 135.385
+195.5 130.385 195.5 DL 137.051 196.5 137.051 206.5 DL 137.051 195.5
+137.051 205.5 DL F3(CSI)122.718 203 Q 153.049 196.5 153.049 206.5 DL
+142.051 206.5 137.051 206.5 DL 143.049 206.5 138.049 206.5 DL 148.049
+206.5 143.049 206.5 DL 153.049 206.5 148.049 206.5 DL 153.049 195.5
+153.049 205.5 DL 142.051 195.5 137.051 195.5 DL 143.049 195.5 138.049
+195.5 DL 148.049 195.5 143.049 195.5 DL 153.049 195.5 148.049 195.5 DL
+F0(T)141.995 204 Q F2(C)6.61 E F4(x)-2 3 M F2(C)-3 I F4(y)-2 3 M F2(C)-3
+I F4(x)-2 3 M F2(C)-3 I F4(y)-2 3 M F2(C)-3 I F4(x)-2 3 M F2(C)-3 I F4
+(y)-2 3 M F0 5.519(.T)-3 K .519(he parameters are)-5.519 F F2 .519
+(startx, starty)3.019 F 3.019(,e)-.55 G .519(ndx, endy)-3.019 F 3.018
+(,m)-.55 G(ouse)-3.018 E(x,)-.2 E F0(and)3.018 E F2(mouse)3.018 E 4.118
+-.55(y. s)-.3 H .518(tartx, starty).55 F(,)-.55 E(endx,)72 216 Q F0(and)
+2.983 E F2(endy)2.983 E F0(gi)2.984 E .784 -.15(ve t)-.25 H .484
+(he starting and ending character positions of the re).15 F(gion.)-.15 E
+F2(mouse)5.484 E(x)-.2 E F0(and)2.984 E F2(mouse)2.984 E(y)-.3 E F0(gi)
+2.984 E .784 -.15(ve t)-.25 H .484(he location).15 F(of the mouse at b)
+72 228 Q(utton up, which may not be o)-.2 E -.15(ve)-.15 G 2.5(rac).15 G
+(haracter)-2.5 E(.)-.55 E(Button-e)72 252 Q -.15(ve)-.25 G 2.208
+(nt tracking is essentially the same as normal tracking, b).15 F(ut)-.2
+E F2(xterm)4.708 E F0 2.208(also reports b)4.708 F 2.207(utton-motion e)
+-.2 F -.15(ve)-.25 G(nts.).15 E .341(Motion e)72 264 R -.15(ve)-.25 G
+.341(nts are reported only if the mouse pointer has mo).15 F -.15(ve)
+-.15 G 2.842(dt).15 G 2.842(oad)-2.842 G(if)-2.842 E .342
+(ferent character cell.)-.25 F .342(It is enabled by speci-)5.342 F .301
+(fying parameter 1002 to DECSET)72 276 R 5.301(.O)-.74 G 2.801(nb)-5.301
+G .301(utton press or release,)-3.001 F F2(xterm)2.801 E F0 .3
+(sends the same codes used by normal tracking)2.8 F 2.505(mode. On)72
+288 R -.2(bu)2.505 G .005(tton-motion e).2 F -.15(ve)-.25 G(nts,).15 E
+F2(xterm)2.505 E F0 .005(adds 32 to the e)2.505 F -.15(ve)-.25 G .005
+(nt code \(the third character).15 F(,)-.4 E F2(C)2.505 E F4(b)-2 3 M F0
+2.505(\). The)-3 J .005(other bits of the e)2.505 F -.15(ve)-.25 G(nt)
+.15 E .461(code specify b)72 300 R .461(utton and modi\214er k)-.2 F
+-.15(ey)-.1 G 2.961(sa).15 G 2.961(si)-2.961 G 2.961(nn)-2.961 G .461
+(ormal mode.)-2.961 F -.15(Fo)5.461 G 2.961(re).15 G .461
+(xample, motion into cell x,y with b)-3.111 F .461(utton 1 do)-.2 F .461
+(wn is)-.25 F 119.404 304.5 119.404 314.5 DL 119.404 303.5 119.404 313.5
+DL .377(reported as)72 312 R 135.402 304.5 135.402 314.5 DL 124.404
+314.5 119.404 314.5 DL 125.402 314.5 120.402 314.5 DL 130.402 314.5
+125.402 314.5 DL 135.402 314.5 130.402 314.5 DL 135.402 303.5 135.402
+313.5 DL 124.404 303.5 119.404 303.5 DL 125.402 303.5 120.402 303.5 DL
+130.402 303.5 125.402 303.5 DL 135.402 303.5 130.402 303.5 DL 137.068
+304.5 137.068 314.5 DL 137.068 303.5 137.068 313.5 DL F3(CSI)122.735 311
+Q 153.066 304.5 153.066 314.5 DL 142.068 314.5 137.068 314.5 DL 143.066
+314.5 138.066 314.5 DL 148.066 314.5 143.066 314.5 DL 153.066 314.5
+148.066 314.5 DL 153.066 303.5 153.066 313.5 DL 142.068 303.5 137.068
+303.5 DL 143.066 303.5 138.066 303.5 DL 148.066 303.5 143.066 303.5 DL
+153.066 303.5 148.066 303.5 DL 154.732 304.5 154.732 314.5 DL 154.732
+303.5 154.732 313.5 DL 170.73 304.5 170.73 314.5 DL 159.732 314.5
+154.732 314.5 DL 160.73 314.5 155.73 314.5 DL 165.73 314.5 160.73 314.5
+DL 170.73 314.5 165.73 314.5 DL 170.73 303.5 170.73 313.5 DL 159.732
+303.5 154.732 303.5 DL 160.73 303.5 155.73 303.5 DL 165.73 303.5 160.73
+303.5 DL 170.73 303.5 165.73 303.5 DL F0 8.614(M@)140.622 312 S F2(C)
+-3.554 E F4(x)-2 3 M F2(C)-3 I F4(y)-2 3 M 202.924 304.5 202.924 314.5
+DL 202.924 303.5 202.924 313.5 DL 218.922 304.5 218.922 314.5 DL 207.924
+314.5 202.924 314.5 DL 208.922 314.5 203.922 314.5 DL 213.922 314.5
+208.922 314.5 DL 218.922 314.5 213.922 314.5 DL 218.922 303.5 218.922
+313.5 DL 207.924 303.5 202.924 303.5 DL 208.922 303.5 203.922 303.5 DL
+213.922 303.5 208.922 303.5 DL 218.922 303.5 213.922 303.5 DL F0 -6.983
+5.377(.\( @)188.84 312 T 2.877(=3)2.56 G 2.877(2+0\()-2.877 G -.2(bu)
+-2.877 G .377(tton 1\) + 32 \(motion indicator\) \).).2 F(Similarly)
+5.377 E 2.877(,m)-.65 G .377(otion with b)-2.877 F .377(utton 3)-.2 F
+(do)72 324 Q 152.29 316.5 152.29 326.5 DL 152.29 315.5 152.29 325.5 DL
+(wn is reported as)81.75 324 Q 168.288 316.5 168.288 326.5 DL 157.29
+326.5 152.29 326.5 DL 158.288 326.5 153.288 326.5 DL 163.288 326.5
+158.288 326.5 DL 168.288 326.5 163.288 326.5 DL 168.288 315.5 168.288
+325.5 DL 157.29 315.5 152.29 315.5 DL 158.288 315.5 153.288 315.5 DL
+163.288 315.5 158.288 315.5 DL 168.288 315.5 163.288 315.5 DL 169.954
+316.5 169.954 326.5 DL 169.954 315.5 169.954 325.5 DL F3(CSI)155.621 323
+Q 185.952 316.5 185.952 326.5 DL 174.954 326.5 169.954 326.5 DL 175.952
+326.5 170.952 326.5 DL 180.952 326.5 175.952 326.5 DL 185.952 326.5
+180.952 326.5 DL 185.952 315.5 185.952 325.5 DL 174.954 315.5 169.954
+315.5 DL 175.952 315.5 170.952 315.5 DL 180.952 315.5 175.952 315.5 DL
+185.952 315.5 180.952 315.5 DL 187.618 316.5 187.618 326.5 DL 187.618
+315.5 187.618 325.5 DL 203.616 316.5 203.616 326.5 DL 192.618 326.5
+187.618 326.5 DL 193.616 326.5 188.616 326.5 DL 198.616 326.5 193.616
+326.5 DL 203.616 326.5 198.616 326.5 DL 203.616 315.5 203.616 325.5 DL
+192.618 315.5 187.618 315.5 DL 193.616 315.5 188.616 315.5 DL 198.616
+315.5 193.616 315.5 DL 203.616 315.5 198.616 315.5 DL F0 9.884(MB)
+173.508 324 S F2(C)-3.554 E F4(x)-2 3 M F2(C)-3 I F4(y)-2 3 M 235.056
+316.5 235.056 326.5 DL 235.056 315.5 235.056 325.5 DL 251.054 316.5
+251.054 326.5 DL 240.056 326.5 235.056 326.5 DL 241.054 326.5 236.054
+326.5 DL 246.054 326.5 241.054 326.5 DL 251.054 326.5 246.054 326.5 DL
+251.054 315.5 251.054 325.5 DL 240.056 315.5 235.056 315.5 DL 241.054
+315.5 236.054 315.5 DL 246.054 315.5 241.054 315.5 DL 251.054 315.5
+246.054 315.5 DL F0 -5.336 5(.\( B)221.726 324 T 2.5(=3)3.83 G 2.5
+(2+2\()-2.5 G -.2(bu)-2.5 G(tton 3\) + 32 \(motion indicator\) \).).2 E
+(An)72 348 Q(y-e)-.15 E -.15(ve)-.25 G .805(nt mode is the same as b).15
+F(utton-e)-.2 E -.15(ve)-.25 G .805(nt mode, e).15 F .805
+(xcept that all motion e)-.15 F -.15(ve)-.25 G .805
+(nts are reported instead of just those).15 F(that enter a ne)72 360 Q
+2.5(wc)-.25 G(haracter cell.)-2.5 E
+(It is enabled by specifying 1003 to DECSET)5 E(.)-.74 E F1 -.92(Te)72
+384 S(ktr).92 E(onix 4014 Mode)-.18 E F0 .122
+(Most of these sequences are standard T)72 400.8 R .123
+(ektronix 4014 control sequences.)-.7 F .123
+(Graph mode supports the 12-bit addressing)5.123 F .063(of the T)72
+412.8 R .063(ektronix 4014.)-.7 F .062
+(The major features missing are the write-through and defocused modes.)
+5.063 F .062(This document does)5.062 F .393
+(not describe the commands used in the v)72 424.8 R .393(arious T)-.25 F
+.394(ektronix plotting modes b)-.7 F .394
+(ut does describe the commands to switch)-.2 F(modes.)72 436.8 Q 72
+457.3 72 467.3 DL 72 456.3 72 466.3 DL 87.998 457.3 87.998 467.3 DL 77
+467.3 72 467.3 DL 77.998 467.3 72.998 467.3 DL 82.998 467.3 77.998 467.3
+DL 87.998 467.3 82.998 467.3 DL 87.998 456.3 87.998 466.3 DL 77 456.3 72
+456.3 DL 77.998 456.3 72.998 456.3 DL 82.998 456.3 77.998 456.3 DL
+87.998 456.3 82.998 456.3 DL F3(BEL)74.332 463.8 Q F0(Bell \(Ctrl-G\))
+94.334 1 M 72 473.3 72 483.3 DL 72 472.3 72 482.3 DL 87.998 473.3 87.998
+483.3 DL 77 483.3 72 483.3 DL 77.998 483.3 72.998 483.3 DL 82.998 483.3
+77.998 483.3 DL 87.998 483.3 82.998 483.3 DL 87.998 472.3 87.998 482.3
+DL 77 472.3 72 472.3 DL 77.998 472.3 72.998 472.3 DL 82.998 472.3 77.998
+472.3 DL 87.998 472.3 82.998 472.3 DL F3(BS)76.33 479.8 Q F0
+(Backspace \(Ctrl-H\))96.332 1 M 72 489.3 72 499.3 DL 72 488.3 72 498.3
+DL F3 -.558(TA)74.278 495.8 S 87.998 489.3 87.998 499.3 DL 77 499.3 72
+499.3 DL 77.998 499.3 72.998 499.3 DL 82.998 499.3 77.998 499.3 DL
+87.998 499.3 82.998 499.3 DL 87.998 488.3 87.998 498.3 DL 77 488.3 72
+488.3 DL 77.998 488.3 72.998 488.3 DL 82.998 488.3 77.998 488.3 DL
+87.998 488.3 82.998 488.3 DL(B)81.718 495.8 Q F0(Horizontal T)94.28 1 M
+(ab \(Ctrl-I\))-.8 E 72 505.3 72 515.3 DL 72 504.3 72 514.3 DL 87.998
+505.3 87.998 515.3 DL 77 515.3 72 515.3 DL 77.998 515.3 72.998 515.3 DL
+82.998 515.3 77.998 515.3 DL 87.998 515.3 82.998 515.3 DL 87.998 504.3
+87.998 514.3 DL 77 504.3 72 504.3 DL 77.998 504.3 72.998 504.3 DL 82.998
+504.3 77.998 504.3 DL 87.998 504.3 82.998 504.3 DL F3(LF)76.498 511.8 Q
+F0(Line Feed or Ne)96.5 1 M 2.5(wL)-.25 G(ine \(Ctrl-J\))-2.5 E 72 521.3
+72 531.3 DL 72 520.3 72 530.3 DL 87.998 521.3 87.998 531.3 DL 77 531.3
+72 531.3 DL 77.998 531.3 72.998 531.3 DL 82.998 531.3 77.998 531.3 DL
+87.998 531.3 82.998 531.3 DL 87.998 520.3 87.998 530.3 DL 77 520.3 72
+520.3 DL 77.998 520.3 72.998 520.3 DL 82.998 520.3 77.998 520.3 DL
+87.998 520.3 82.998 520.3 DL F3(VT)76 527.8 Q F0(Cursor up \(Ctrl-K\))
+96.002 1 M 72 537.3 72 547.3 DL 72 536.3 72 546.3 DL 87.998 537.3 87.998
+547.3 DL 77 547.3 72 547.3 DL 77.998 547.3 72.998 547.3 DL 82.998 547.3
+77.998 547.3 DL 87.998 547.3 82.998 547.3 DL 87.998 536.3 87.998 546.3
+DL 77 536.3 72 536.3 DL 77.998 536.3 72.998 536.3 DL 82.998 536.3 77.998
+536.3 DL 87.998 536.3 82.998 536.3 DL F3(FF)76.663 543.8 Q F0 -.15(Fo)
+96.665 1 O(rm Feed or Ne).15 E 2.5(wP)-.25 G(age \(Ctrl-L\))-2.65 E 72
+553.3 72 563.3 DL 72 552.3 72 562.3 DL 87.998 553.3 87.998 563.3 DL 77
+563.3 72 563.3 DL 77.998 563.3 72.998 563.3 DL 82.998 563.3 77.998 563.3
+DL 87.998 563.3 82.998 563.3 DL 87.998 552.3 87.998 562.3 DL 77 552.3 72
+552.3 DL 77.998 552.3 72.998 552.3 DL 82.998 552.3 77.998 552.3 DL
+87.998 552.3 82.998 552.3 DL F3(CR)75.997 559.8 Q F0
+(Carriage Return \(Ctrl-M\))95.999 1 M 72 569.3 72 579.3 DL 72 568.3 72
+578.3 DL 87.998 569.3 87.998 579.3 DL 77 579.3 72 579.3 DL 77.998 579.3
+72.998 579.3 DL 82.998 579.3 77.998 579.3 DL 87.998 579.3 82.998 579.3
+DL 87.998 568.3 87.998 578.3 DL 77 568.3 72 568.3 DL 77.998 568.3 72.998
+568.3 DL 82.998 568.3 77.998 568.3 DL 87.998 568.3 82.998 568.3 DL
+89.664 569.3 89.664 579.3 DL 89.664 568.3 89.664 578.3 DL 105.662 569.3
+105.662 579.3 DL 94.664 579.3 89.664 579.3 DL 95.662 579.3 90.662 579.3
+DL 100.662 579.3 95.662 579.3 DL 105.662 579.3 100.662 579.3 DL 105.662
+568.3 105.662 578.3 DL 94.664 568.3 89.664 568.3 DL 95.662 568.3 90.662
+568.3 DL 100.662 568.3 95.662 568.3 DL 105.662 568.3 100.662 568.3 DL F3
+4.83(ESC ETX)74.497 575.8 R F0(Switch to VT100 Mode \(ESC Ctrl-C\))
+76.505 1 M 72 585.3 72 595.3 DL 72 584.3 72 594.3 DL 87.998 585.3 87.998
+595.3 DL 77 595.3 72 595.3 DL 77.998 595.3 72.998 595.3 DL 82.998 595.3
+77.998 595.3 DL 87.998 595.3 82.998 595.3 DL 87.998 584.3 87.998 594.3
+DL 77 584.3 72 584.3 DL 77.998 584.3 72.998 584.3 DL 82.998 584.3 77.998
+584.3 DL 87.998 584.3 82.998 584.3 DL 89.664 585.3 89.664 595.3 DL
+89.664 584.3 89.664 594.3 DL 105.662 585.3 105.662 595.3 DL 94.664 595.3
+89.664 595.3 DL 95.662 595.3 90.662 595.3 DL 100.662 595.3 95.662 595.3
+DL 105.662 595.3 100.662 595.3 DL 105.662 584.3 105.662 594.3 DL 94.664
+584.3 89.664 584.3 DL 95.662 584.3 90.662 584.3 DL 100.662 584.3 95.662
+584.3 DL 105.662 584.3 100.662 584.3 DL F3 4.497(ESC ENQ)74.497 591.8 R
+F0(Return T)76.172 1 M(erminal Status \(ESC Ctrl-E\))-.7 E 72 601.3 72
+611.3 DL 72 600.3 72 610.3 DL 87.998 601.3 87.998 611.3 DL 77 611.3 72
+611.3 DL 77.998 611.3 72.998 611.3 DL 82.998 611.3 77.998 611.3 DL
+87.998 611.3 82.998 611.3 DL 87.998 600.3 87.998 610.3 DL 77 600.3 72
+600.3 DL 77.998 600.3 72.998 600.3 DL 82.998 600.3 77.998 600.3 DL
+87.998 600.3 82.998 600.3 DL 89.664 601.3 89.664 611.3 DL 89.664 600.3
+89.664 610.3 DL 105.662 601.3 105.662 611.3 DL 94.664 611.3 89.664 611.3
+DL 95.662 611.3 90.662 611.3 DL 100.662 611.3 95.662 611.3 DL 105.662
+611.3 100.662 611.3 DL 105.662 600.3 105.662 610.3 DL 94.664 600.3
+89.664 600.3 DL 95.662 600.3 90.662 600.3 DL 100.662 600.3 95.662 600.3
+DL 105.662 600.3 100.662 600.3 DL F3 7.326(ESC FF)74.497 607.8 R F0
+-1.06 -.92(PA G)79.001 1 P 2.5(E\().92 G(Clear Screen\) \(ESC Ctrl-L\))
+-2.5 E 72 617.3 72 627.3 DL 72 616.3 72 626.3 DL 87.998 617.3 87.998
+627.3 DL 77 627.3 72 627.3 DL 77.998 627.3 72.998 627.3 DL 82.998 627.3
+77.998 627.3 DL 87.998 627.3 82.998 627.3 DL 87.998 616.3 87.998 626.3
+DL 77 616.3 72 616.3 DL 77.998 616.3 72.998 616.3 DL 82.998 616.3 77.998
+616.3 DL 87.998 616.3 82.998 616.3 DL 89.664 617.3 89.664 627.3 DL
+89.664 616.3 89.664 626.3 DL 105.662 617.3 105.662 627.3 DL 94.664 627.3
+89.664 627.3 DL 95.662 627.3 90.662 627.3 DL 100.662 627.3 95.662 627.3
+DL 105.662 627.3 100.662 627.3 DL 105.662 616.3 105.662 626.3 DL 94.664
+616.3 89.664 616.3 DL 95.662 616.3 90.662 616.3 DL 100.662 616.3 95.662
+616.3 DL 105.662 616.3 100.662 616.3 DL F3 6.828(ESC SO)74.497 623.8 R
+F0(Be)78.503 1 M(gin 4015 APL mode \(ignored by)-.15 E F2(xterm)2.5 E F0
+2.5(\)\()C(ESC Ctrl-N\))-2.5 E 72 633.3 72 643.3 DL 72 632.3 72 642.3 DL
+87.998 633.3 87.998 643.3 DL 77 643.3 72 643.3 DL 77.998 643.3 72.998
+643.3 DL 82.998 643.3 77.998 643.3 DL 87.998 643.3 82.998 643.3 DL
+87.998 632.3 87.998 642.3 DL 77 632.3 72 632.3 DL 77.998 632.3 72.998
+632.3 DL 82.998 632.3 77.998 632.3 DL 87.998 632.3 82.998 632.3 DL
+89.664 633.3 89.664 643.3 DL 89.664 632.3 89.664 642.3 DL 105.662 633.3
+105.662 643.3 DL 94.664 643.3 89.664 643.3 DL 95.662 643.3 90.662 643.3
+DL 100.662 643.3 95.662 643.3 DL 105.662 643.3 100.662 643.3 DL 105.662
+632.3 105.662 642.3 DL 94.664 632.3 89.664 632.3 DL 95.662 632.3 90.662
+632.3 DL 100.662 632.3 95.662 632.3 DL 105.662 632.3 100.662 632.3 DL F3
+7.995(ESC SI)74.497 639.8 R F0(End 4015 APL mode \(ignored by)79.67 1 M
+F2(xterm)2.5 E F0 2.5(\)\()C(ESC Ctrl-O\))-2.5 E 72 649.3 72 659.3 DL 72
+648.3 72 658.3 DL 87.998 649.3 87.998 659.3 DL 77 659.3 72 659.3 DL
+77.998 659.3 72.998 659.3 DL 82.998 659.3 77.998 659.3 DL 87.998 659.3
+82.998 659.3 DL 87.998 648.3 87.998 658.3 DL 77 648.3 72 648.3 DL 77.998
+648.3 72.998 648.3 DL 82.998 648.3 77.998 648.3 DL 87.998 648.3 82.998
+648.3 DL 89.664 649.3 89.664 659.3 DL 89.664 648.3 89.664 658.3 DL
+105.662 649.3 105.662 659.3 DL 94.664 659.3 89.664 659.3 DL 95.662 659.3
+90.662 659.3 DL 100.662 659.3 95.662 659.3 DL 105.662 659.3 100.662
+659.3 DL 105.662 648.3 105.662 658.3 DL 94.664 648.3 89.664 648.3 DL
+95.662 648.3 90.662 648.3 DL 100.662 648.3 95.662 648.3 DL 105.662 648.3
+100.662 648.3 DL F3 4.995(ESC ETB)74.497 655.8 R F0(COPY \(Sa)76.67 1 M
+.3 -.15(ve T)-.2 H
+(ektronix Codes to \214le COPYyyyy-mm-dd.hh:mm:ss\) \(ESC Ctrl-W\))-.55
+E 72 665.3 72 675.3 DL 72 664.3 72 674.3 DL 87.998 665.3 87.998 675.3 DL
+77 675.3 72 675.3 DL 77.998 675.3 72.998 675.3 DL 82.998 675.3 77.998
+675.3 DL 87.998 675.3 82.998 675.3 DL 87.998 664.3 87.998 674.3 DL 77
+664.3 72 664.3 DL 77.998 664.3 72.998 664.3 DL 82.998 664.3 77.998 664.3
+DL 87.998 664.3 82.998 664.3 DL 89.664 665.3 89.664 675.3 DL 89.664
+664.3 89.664 674.3 DL 105.662 665.3 105.662 675.3 DL 94.664 675.3 89.664
+675.3 DL 95.662 675.3 90.662 675.3 DL 100.662 675.3 95.662 675.3 DL
+105.662 675.3 100.662 675.3 DL 105.662 664.3 105.662 674.3 DL 94.664
+664.3 89.664 664.3 DL 95.662 664.3 90.662 664.3 DL 100.662 664.3 95.662
+664.3 DL 105.662 664.3 100.662 664.3 DL F3 4.329(ESC CAN)74.497 671.8 R
+F0(Bypass Condition \(ESC Ctrl-X\))76.004 1 M 72 681.3 72 691.3 DL 72
+680.3 72 690.3 DL 87.998 681.3 87.998 691.3 DL 77 691.3 72 691.3 DL
+77.998 691.3 72.998 691.3 DL 82.998 691.3 77.998 691.3 DL 87.998 691.3
+82.998 691.3 DL 87.998 680.3 87.998 690.3 DL 77 680.3 72 680.3 DL 77.998
+680.3 72.998 680.3 DL 82.998 680.3 77.998 680.3 DL 87.998 680.3 82.998
+680.3 DL 89.664 681.3 89.664 691.3 DL 89.664 680.3 89.664 690.3 DL
+105.662 681.3 105.662 691.3 DL 94.664 691.3 89.664 691.3 DL 95.662 691.3
+90.662 691.3 DL 100.662 691.3 95.662 691.3 DL 105.662 691.3 100.662
+691.3 DL 105.662 680.3 105.662 690.3 DL 94.664 680.3 89.664 680.3 DL
+95.662 680.3 90.662 680.3 DL 100.662 680.3 95.662 680.3 DL 105.662 680.3
+100.662 680.3 DL F3 4.827(ESC SUB)74.497 687.8 R F0
+(GIN mode \(ESC Ctrl-Z\))76.502 1 M 72 697.3 72 707.3 DL 72 696.3 72
+706.3 DL 87.998 697.3 87.998 707.3 DL 77 707.3 72 707.3 DL 77.998 707.3
+72.998 707.3 DL 82.998 707.3 77.998 707.3 DL 87.998 707.3 82.998 707.3
+DL 87.998 696.3 87.998 706.3 DL 77 696.3 72 696.3 DL 77.998 696.3 72.998
+696.3 DL 82.998 696.3 77.998 696.3 DL 87.998 696.3 82.998 696.3 DL
+89.664 697.3 89.664 707.3 DL 89.664 696.3 89.664 706.3 DL 105.662 697.3
+105.662 707.3 DL 94.664 707.3 89.664 707.3 DL 95.662 707.3 90.662 707.3
+DL 100.662 707.3 95.662 707.3 DL 105.662 707.3 100.662 707.3 DL 105.662
+696.3 105.662 706.3 DL 94.664 696.3 89.664 696.3 DL 95.662 696.3 90.662
+696.3 DL 100.662 696.3 95.662 696.3 DL 105.662 696.3 100.662 696.3 DL F3
+7.326(ESC FS)74.497 703.8 R F0(Special Point Plot Mode \(ESC Ctrl-\\\))
+79.001 1 M(17)301 772 Q EP
+%%Page: 18 18
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q -.7(Te)277.61 G
+(ktronix 4014 Mode).7 E .4 LW 72 80.5 72 90.5 DL 72 79.5 72 89.5 DL
+87.998 80.5 87.998 90.5 DL 77 90.5 72 90.5 DL 77.998 90.5 72.998 90.5 DL
+82.998 90.5 77.998 90.5 DL 87.998 90.5 82.998 90.5 DL 87.998 79.5 87.998
+89.5 DL 77 79.5 72 79.5 DL 77.998 79.5 72.998 79.5 DL 82.998 79.5 77.998
+79.5 DL 87.998 79.5 82.998 79.5 DL 89.664 80.5 89.664 90.5 DL 89.664
+79.5 89.664 89.5 DL/F1 6/Times-Roman@0 SF(ESC)74.497 87 Q 105.662 80.5
+105.662 90.5 DL 94.664 90.5 89.664 90.5 DL 95.662 90.5 90.662 90.5 DL
+100.662 90.5 95.662 90.5 DL 105.662 90.5 100.662 90.5 DL 105.662 79.5
+105.662 89.5 DL 94.664 79.5 89.664 79.5 DL 95.662 79.5 90.662 79.5 DL
+100.662 79.5 95.662 79.5 DL 105.662 79.5 100.662 79.5 DL F0 79.837(8S)
+95.163 88 S(elect Lar)-79.837 E(ge Character Set)-.18 E 72 96.5 72 106.5
+DL 72 95.5 72 105.5 DL 87.998 96.5 87.998 106.5 DL 77 106.5 72 106.5 DL
+77.998 106.5 72.998 106.5 DL 82.998 106.5 77.998 106.5 DL 87.998 106.5
+82.998 106.5 DL 87.998 95.5 87.998 105.5 DL 77 95.5 72 95.5 DL 77.998
+95.5 72.998 95.5 DL 82.998 95.5 77.998 95.5 DL 87.998 95.5 82.998 95.5
+DL 89.664 96.5 89.664 106.5 DL 89.664 95.5 89.664 105.5 DL F1(ESC)74.497
+103 Q 105.662 96.5 105.662 106.5 DL 94.664 106.5 89.664 106.5 DL 95.662
+106.5 90.662 106.5 DL 100.662 106.5 95.662 106.5 DL 105.662 106.5
+100.662 106.5 DL 105.662 95.5 105.662 105.5 DL 94.664 95.5 89.664 95.5
+DL 95.662 95.5 90.662 95.5 DL 100.662 95.5 95.662 95.5 DL 105.662 95.5
+100.662 95.5 DL F0 79.837(9S)95.163 104 S(elect #2 Character Set)-79.837
+E 72 112.5 72 122.5 DL 72 111.5 72 121.5 DL 87.998 112.5 87.998 122.5 DL
+77 122.5 72 122.5 DL 77.998 122.5 72.998 122.5 DL 82.998 122.5 77.998
+122.5 DL 87.998 122.5 82.998 122.5 DL 87.998 111.5 87.998 121.5 DL 77
+111.5 72 111.5 DL 77.998 111.5 72.998 111.5 DL 82.998 111.5 77.998 111.5
+DL 87.998 111.5 82.998 111.5 DL 89.664 112.5 89.664 122.5 DL 89.664
+111.5 89.664 121.5 DL F1(ESC)74.497 119 Q 105.662 112.5 105.662 122.5 DL
+94.664 122.5 89.664 122.5 DL 95.662 122.5 90.662 122.5 DL 100.662 122.5
+95.662 122.5 DL 105.662 122.5 100.662 122.5 DL 105.662 111.5 105.662
+121.5 DL 94.664 111.5 89.664 111.5 DL 95.662 111.5 90.662 111.5 DL
+100.662 111.5 95.662 111.5 DL 105.662 111.5 100.662 111.5 DL F0 80.947
+(:S)96.273 120 S(elect #3 Character Set)-80.947 E 72 128.5 72 138.5 DL
+72 127.5 72 137.5 DL 87.998 128.5 87.998 138.5 DL 77 138.5 72 138.5 DL
+77.998 138.5 72.998 138.5 DL 82.998 138.5 77.998 138.5 DL 87.998 138.5
+82.998 138.5 DL 87.998 127.5 87.998 137.5 DL 77 127.5 72 127.5 DL 77.998
+127.5 72.998 127.5 DL 82.998 127.5 77.998 127.5 DL 87.998 127.5 82.998
+127.5 DL 89.664 128.5 89.664 138.5 DL 89.664 127.5 89.664 137.5 DL F1
+(ESC)74.497 135 Q 105.662 128.5 105.662 138.5 DL 94.664 138.5 89.664
+138.5 DL 95.662 138.5 90.662 138.5 DL 100.662 138.5 95.662 138.5 DL
+105.662 138.5 100.662 138.5 DL 105.662 127.5 105.662 137.5 DL 94.664
+127.5 89.664 127.5 DL 95.662 127.5 90.662 127.5 DL 100.662 127.5 95.662
+127.5 DL 105.662 127.5 100.662 127.5 DL F0 80.947(;S)96.273 136 S
+(elect Small Character Set)-80.947 E 72 144.5 72 154.5 DL 72 143.5 72
+153.5 DL 87.998 144.5 87.998 154.5 DL 77 154.5 72 154.5 DL 77.998 154.5
+72.998 154.5 DL 82.998 154.5 77.998 154.5 DL 87.998 154.5 82.998 154.5
+DL 87.998 143.5 87.998 153.5 DL 77 143.5 72 143.5 DL 77.998 143.5 72.998
+143.5 DL 82.998 143.5 77.998 143.5 DL 87.998 143.5 82.998 143.5 DL F1
+(OSC)74.164 151 Q/F2 10/Times-Italic@0 SF(P)3.83 1 M 98.552 144.5 98.552
+154.5 DL 98.552 143.5 98.552 153.5 DL/F3 8/Times-Italic@0 SF(s)93.774
+155 Q 114.55 144.5 114.55 154.5 DL 103.552 154.5 98.552 154.5 DL 104.55
+154.5 99.55 154.5 DL 109.55 154.5 104.55 154.5 DL 114.55 154.5 109.55
+154.5 DL 114.55 143.5 114.55 153.5 DL 103.552 143.5 98.552 143.5 DL
+104.55 143.5 99.55 143.5 DL 109.55 143.5 104.55 143.5 DL 114.55 143.5
+109.55 143.5 DL F0(;)105.161 152 Q F2(P)8.275 E 124.216 144.5 124.216
+154.5 DL 124.216 143.5 124.216 153.5 DL F3(t)120.326 155 Q 140.214 144.5
+140.214 154.5 DL 129.216 154.5 124.216 154.5 DL 130.214 154.5 125.214
+154.5 DL 135.214 154.5 130.214 154.5 DL 140.214 154.5 135.214 154.5 DL
+140.214 143.5 140.214 153.5 DL 129.216 143.5 124.216 143.5 DL 130.214
+143.5 125.214 143.5 DL 135.214 143.5 130.214 143.5 DL 140.214 143.5
+135.214 143.5 DL F1(BEL)126.548 151 Q F0(Set T)42.118 1 M -.15(ex)-.7 G
+2.5(tP).15 G(arameters of VT windo)-2.65 E(w)-.25 E F2(P)185 168 Q F3(s)
+-2 3 M 202.862 160.5 202.862 170.5 DL 202.862 159.5 202.862 169.5 DL
+218.86 160.5 218.86 170.5 DL 207.862 170.5 202.862 170.5 DL 208.86 170.5
+203.86 170.5 DL 213.86 170.5 208.86 170.5 DL 218.86 170.5 213.86 170.5
+DL 218.86 159.5 218.86 169.5 DL 207.862 159.5 202.862 159.5 DL 208.86
+159.5 203.86 159.5 DL 213.86 159.5 208.86 159.5 DL 218.86 159.5 213.86
+159.5 DL F0 7.999(=0)194.722 168 S/F4 10/Symbol SF<ae>1.666 E F0
+(Change Icon Name and W)2.5 E(indo)-.4 E 2.5(wT)-.25 G(itle to)-2.85 E
+F2(P)2.5 E F3(t)-2 3 M F2(P)185 184 Q F3(s)-2 3 M 202.862 176.5 202.862
+186.5 DL 202.862 175.5 202.862 185.5 DL 218.86 176.5 218.86 186.5 DL
+207.862 186.5 202.862 186.5 DL 208.86 186.5 203.86 186.5 DL 213.86 186.5
+208.86 186.5 DL 218.86 186.5 213.86 186.5 DL 218.86 175.5 218.86 185.5
+DL 207.862 175.5 202.862 175.5 DL 208.86 175.5 203.86 175.5 DL 213.86
+175.5 208.86 175.5 DL 218.86 175.5 213.86 175.5 DL F0 7.999(=1)194.722
+184 S F4<ae>1.666 E F0(Change Icon Name to)2.5 E F2(P)2.5 E F3(t)-2 3 M
+F2(P)185 200 Q F3(s)-2 3 M 202.862 192.5 202.862 202.5 DL 202.862 191.5
+202.862 201.5 DL 218.86 192.5 218.86 202.5 DL 207.862 202.5 202.862
+202.5 DL 208.86 202.5 203.86 202.5 DL 213.86 202.5 208.86 202.5 DL
+218.86 202.5 213.86 202.5 DL 218.86 191.5 218.86 201.5 DL 207.862 191.5
+202.862 191.5 DL 208.86 191.5 203.86 191.5 DL 213.86 191.5 208.86 191.5
+DL 218.86 191.5 213.86 191.5 DL F0 7.999(=2)194.722 200 S F4<ae>1.666 E
+F0(Change W)2.5 E(indo)-.4 E 2.5(wT)-.25 G(itle to)-2.85 E F2(P)2.5 E F3
+(t)-2 3 M F2(P)185 216 Q F3(s)-2 3 M 202.862 208.5 202.862 218.5 DL
+202.862 207.5 202.862 217.5 DL 218.86 208.5 218.86 218.5 DL 207.862
+218.5 202.862 218.5 DL 208.86 218.5 203.86 218.5 DL 213.86 218.5 208.86
+218.5 DL 218.86 218.5 213.86 218.5 DL 218.86 207.5 218.86 217.5 DL
+207.862 207.5 202.862 207.5 DL 208.86 207.5 203.86 207.5 DL 213.86 207.5
+208.86 207.5 DL 218.86 207.5 213.86 207.5 DL 220.526 208.5 220.526 218.5
+DL 220.526 207.5 220.526 217.5 DL 236.524 208.5 236.524 218.5 DL 225.526
+218.5 220.526 218.5 DL 226.524 218.5 221.524 218.5 DL 231.524 218.5
+226.524 218.5 DL 236.524 218.5 231.524 218.5 DL 236.524 207.5 236.524
+217.5 DL 225.526 207.5 220.526 207.5 DL 226.524 207.5 221.524 207.5 DL
+231.524 207.5 226.524 207.5 DL 236.524 207.5 231.524 207.5 DL F0 -5.834
+7.999(=4 6)194.722 216 T F4<ae>1.666 E F0(Change Log File to)2.5 E F2(P)
+2.5 E F3(t)-2 3 M F0(\(normally disabled by a compile-time option\))2.5
+-3 M 72 224.5 72 234.5 DL 72 223.5 72 233.5 DL 87.998 224.5 87.998 234.5
+DL 77 234.5 72 234.5 DL 77.998 234.5 72.998 234.5 DL 82.998 234.5 77.998
+234.5 DL 87.998 234.5 82.998 234.5 DL 87.998 223.5 87.998 233.5 DL 77
+223.5 72 223.5 DL 77.998 223.5 72.998 223.5 DL 82.998 223.5 77.998 223.5
+DL 87.998 223.5 82.998 223.5 DL 89.664 224.5 89.664 234.5 DL 89.664
+223.5 89.664 233.5 DL F1(ESC)74.497 231 Q 105.662 224.5 105.662 234.5 DL
+94.664 234.5 89.664 234.5 DL 95.662 234.5 90.662 234.5 DL 100.662 234.5
+95.662 234.5 DL 105.662 234.5 100.662 234.5 DL 105.662 223.5 105.662
+233.5 DL 94.664 223.5 89.664 223.5 DL 95.662 223.5 90.662 223.5 DL
+100.662 223.5 95.662 223.5 DL 105.662 223.5 100.662 223.5 DL F0 80.672
+<924e>95.998 232 S(ormal Z Axis and Normal \(solid\) V)-80.672 E(ectors)
+-1.11 E 72 240.5 72 250.5 DL 72 239.5 72 249.5 DL 87.998 240.5 87.998
+250.5 DL 77 250.5 72 250.5 DL 77.998 250.5 72.998 250.5 DL 82.998 250.5
+77.998 250.5 DL 87.998 250.5 82.998 250.5 DL 87.998 239.5 87.998 249.5
+DL 77 239.5 72 239.5 DL 77.998 239.5 72.998 239.5 DL 82.998 239.5 77.998
+239.5 DL 87.998 239.5 82.998 239.5 DL 89.664 240.5 89.664 250.5 DL
+89.664 239.5 89.664 249.5 DL F1(ESC)74.497 247 Q 105.662 240.5 105.662
+250.5 DL 94.664 250.5 89.664 250.5 DL 95.662 250.5 90.662 250.5 DL
+100.662 250.5 95.662 250.5 DL 105.662 250.5 100.662 250.5 DL 105.662
+239.5 105.662 249.5 DL 94.664 239.5 89.664 239.5 DL 95.662 239.5 90.662
+239.5 DL 100.662 239.5 95.662 239.5 DL 105.662 239.5 100.662 239.5 DL F0
+80.117(aN)95.443 248 S(ormal Z Axis and Dotted Line V)-80.117 E(ectors)
+-1.11 E 72 256.5 72 266.5 DL 72 255.5 72 265.5 DL 87.998 256.5 87.998
+266.5 DL 77 266.5 72 266.5 DL 77.998 266.5 72.998 266.5 DL 82.998 266.5
+77.998 266.5 DL 87.998 266.5 82.998 266.5 DL 87.998 255.5 87.998 265.5
+DL 77 255.5 72 255.5 DL 77.998 255.5 72.998 255.5 DL 82.998 255.5 77.998
+255.5 DL 87.998 255.5 82.998 255.5 DL 89.664 256.5 89.664 266.5 DL
+89.664 255.5 89.664 265.5 DL F1(ESC)74.497 263 Q 105.662 256.5 105.662
+266.5 DL 94.664 266.5 89.664 266.5 DL 95.662 266.5 90.662 266.5 DL
+100.662 266.5 95.662 266.5 DL 105.662 266.5 100.662 266.5 DL 105.662
+255.5 105.662 265.5 DL 94.664 255.5 89.664 255.5 DL 95.662 255.5 90.662
+255.5 DL 100.662 255.5 95.662 255.5 DL 105.662 255.5 100.662 255.5 DL F0
+79.837(bN)95.163 264 S(ormal Z Axis and Dot-Dashed V)-79.837 E(ectors)
+-1.11 E 72 272.5 72 282.5 DL 72 271.5 72 281.5 DL 87.998 272.5 87.998
+282.5 DL 77 282.5 72 282.5 DL 77.998 282.5 72.998 282.5 DL 82.998 282.5
+77.998 282.5 DL 87.998 282.5 82.998 282.5 DL 87.998 271.5 87.998 281.5
+DL 77 271.5 72 271.5 DL 77.998 271.5 72.998 271.5 DL 82.998 271.5 77.998
+271.5 DL 87.998 271.5 82.998 271.5 DL 89.664 272.5 89.664 282.5 DL
+89.664 271.5 89.664 281.5 DL F1(ESC)74.497 279 Q 105.662 272.5 105.662
+282.5 DL 94.664 282.5 89.664 282.5 DL 95.662 282.5 90.662 282.5 DL
+100.662 282.5 95.662 282.5 DL 105.662 282.5 100.662 282.5 DL 105.662
+271.5 105.662 281.5 DL 94.664 271.5 89.664 271.5 DL 95.662 271.5 90.662
+271.5 DL 100.662 271.5 95.662 271.5 DL 105.662 271.5 100.662 271.5 DL F0
+80.117(cN)95.443 280 S(ormal Z Axis and Short-Dashed V)-80.117 E(ectors)
+-1.11 E 72 288.5 72 298.5 DL 72 287.5 72 297.5 DL 87.998 288.5 87.998
+298.5 DL 77 298.5 72 298.5 DL 77.998 298.5 72.998 298.5 DL 82.998 298.5
+77.998 298.5 DL 87.998 298.5 82.998 298.5 DL 87.998 287.5 87.998 297.5
+DL 77 287.5 72 287.5 DL 77.998 287.5 72.998 287.5 DL 82.998 287.5 77.998
+287.5 DL 87.998 287.5 82.998 287.5 DL 89.664 288.5 89.664 298.5 DL
+89.664 287.5 89.664 297.5 DL F1(ESC)74.497 295 Q 105.662 288.5 105.662
+298.5 DL 94.664 298.5 89.664 298.5 DL 95.662 298.5 90.662 298.5 DL
+100.662 298.5 95.662 298.5 DL 105.662 298.5 100.662 298.5 DL 105.662
+287.5 105.662 297.5 DL 94.664 287.5 89.664 287.5 DL 95.662 287.5 90.662
+287.5 DL 100.662 287.5 95.662 287.5 DL 105.662 287.5 100.662 287.5 DL F0
+79.837(dN)95.163 296 S(ormal Z Axis and Long-Dashed V)-79.837 E(ectors)
+-1.11 E 72 304.5 72 314.5 DL 72 303.5 72 313.5 DL 87.998 304.5 87.998
+314.5 DL 77 314.5 72 314.5 DL 77.998 314.5 72.998 314.5 DL 82.998 314.5
+77.998 314.5 DL 87.998 314.5 82.998 314.5 DL 87.998 303.5 87.998 313.5
+DL 77 303.5 72 303.5 DL 77.998 303.5 72.998 303.5 DL 82.998 303.5 77.998
+303.5 DL 87.998 303.5 82.998 303.5 DL 89.664 304.5 89.664 314.5 DL
+89.664 303.5 89.664 313.5 DL F1(ESC)74.497 311 Q 105.662 304.5 105.662
+314.5 DL 94.664 314.5 89.664 314.5 DL 95.662 314.5 90.662 314.5 DL
+100.662 314.5 95.662 314.5 DL 105.662 314.5 100.662 314.5 DL 105.662
+303.5 105.662 313.5 DL 94.664 303.5 89.664 303.5 DL 95.662 303.5 90.662
+303.5 DL 100.662 303.5 95.662 303.5 DL 105.662 303.5 100.662 303.5 DL F0
+79.837(hD)95.163 312 S(efocused Z Axis and Normal \(solid\) V)-79.837 E
+(ectors)-1.11 E 72 320.5 72 330.5 DL 72 319.5 72 329.5 DL 87.998 320.5
+87.998 330.5 DL 77 330.5 72 330.5 DL 77.998 330.5 72.998 330.5 DL 82.998
+330.5 77.998 330.5 DL 87.998 330.5 82.998 330.5 DL 87.998 319.5 87.998
+329.5 DL 77 319.5 72 319.5 DL 77.998 319.5 72.998 319.5 DL 82.998 319.5
+77.998 319.5 DL 87.998 319.5 82.998 319.5 DL 89.664 320.5 89.664 330.5
+DL 89.664 319.5 89.664 329.5 DL F1(ESC)74.497 327 Q 105.662 320.5
+105.662 330.5 DL 94.664 330.5 89.664 330.5 DL 95.662 330.5 90.662 330.5
+DL 100.662 330.5 95.662 330.5 DL 105.662 330.5 100.662 330.5 DL 105.662
+319.5 105.662 329.5 DL 94.664 319.5 89.664 319.5 DL 95.662 319.5 90.662
+319.5 DL 100.662 319.5 95.662 319.5 DL 105.662 319.5 100.662 319.5 DL F0
+80.947(iD)96.273 328 S(efocused Z Axis and Dotted Line V)-80.947 E
+(ectors)-1.11 E 72 336.5 72 346.5 DL 72 335.5 72 345.5 DL 87.998 336.5
+87.998 346.5 DL 77 346.5 72 346.5 DL 77.998 346.5 72.998 346.5 DL 82.998
+346.5 77.998 346.5 DL 87.998 346.5 82.998 346.5 DL 87.998 335.5 87.998
+345.5 DL 77 335.5 72 335.5 DL 77.998 335.5 72.998 335.5 DL 82.998 335.5
+77.998 335.5 DL 87.998 335.5 82.998 335.5 DL 89.664 336.5 89.664 346.5
+DL 89.664 335.5 89.664 345.5 DL F1(ESC)74.497 343 Q 105.662 336.5
+105.662 346.5 DL 94.664 346.5 89.664 346.5 DL 95.662 346.5 90.662 346.5
+DL 100.662 346.5 95.662 346.5 DL 105.662 346.5 100.662 346.5 DL 105.662
+335.5 105.662 345.5 DL 94.664 335.5 89.664 335.5 DL 95.662 335.5 90.662
+335.5 DL 100.662 335.5 95.662 335.5 DL 105.662 335.5 100.662 335.5 DL F0
+80.947(jD)96.273 344 S(efocused Z Axis and Dot-Dashed V)-80.947 E
+(ectors)-1.11 E 72 352.5 72 362.5 DL 72 351.5 72 361.5 DL 87.998 352.5
+87.998 362.5 DL 77 362.5 72 362.5 DL 77.998 362.5 72.998 362.5 DL 82.998
+362.5 77.998 362.5 DL 87.998 362.5 82.998 362.5 DL 87.998 351.5 87.998
+361.5 DL 77 351.5 72 351.5 DL 77.998 351.5 72.998 351.5 DL 82.998 351.5
+77.998 351.5 DL 87.998 351.5 82.998 351.5 DL 89.664 352.5 89.664 362.5
+DL 89.664 351.5 89.664 361.5 DL F1(ESC)74.497 359 Q 105.662 352.5
+105.662 362.5 DL 94.664 362.5 89.664 362.5 DL 95.662 362.5 90.662 362.5
+DL 100.662 362.5 95.662 362.5 DL 105.662 362.5 100.662 362.5 DL 105.662
+351.5 105.662 361.5 DL 94.664 351.5 89.664 351.5 DL 95.662 351.5 90.662
+351.5 DL 100.662 351.5 95.662 351.5 DL 105.662 351.5 100.662 351.5 DL F0
+79.837(kD)95.163 360 S(efocused Z Axis and Short-Dashed V)-79.837 E
+(ectors)-1.11 E 72 368.5 72 378.5 DL 72 367.5 72 377.5 DL 87.998 368.5
+87.998 378.5 DL 77 378.5 72 378.5 DL 77.998 378.5 72.998 378.5 DL 82.998
+378.5 77.998 378.5 DL 87.998 378.5 82.998 378.5 DL 87.998 367.5 87.998
+377.5 DL 77 367.5 72 367.5 DL 77.998 367.5 72.998 367.5 DL 82.998 367.5
+77.998 367.5 DL 87.998 367.5 82.998 367.5 DL 89.664 368.5 89.664 378.5
+DL 89.664 367.5 89.664 377.5 DL F1(ESC)74.497 375 Q 105.662 368.5
+105.662 378.5 DL 94.664 378.5 89.664 378.5 DL 95.662 378.5 90.662 378.5
+DL 100.662 378.5 95.662 378.5 DL 105.662 378.5 100.662 378.5 DL 105.662
+367.5 105.662 377.5 DL 94.664 367.5 89.664 367.5 DL 95.662 367.5 90.662
+367.5 DL 100.662 367.5 95.662 367.5 DL 105.662 367.5 100.662 367.5 DL F0
+80.947(lD)96.273 376 S(efocused Z Axis and Long-Dashed V)-80.947 E
+(ectors)-1.11 E 72 384.5 72 394.5 DL 72 383.5 72 393.5 DL 87.998 384.5
+87.998 394.5 DL 77 394.5 72 394.5 DL 77.998 394.5 72.998 394.5 DL 82.998
+394.5 77.998 394.5 DL 87.998 394.5 82.998 394.5 DL 87.998 383.5 87.998
+393.5 DL 77 383.5 72 383.5 DL 77.998 383.5 72.998 383.5 DL 82.998 383.5
+77.998 383.5 DL 87.998 383.5 82.998 383.5 DL 89.664 384.5 89.664 394.5
+DL 89.664 383.5 89.664 393.5 DL F1(ESC)74.497 391 Q 105.662 384.5
+105.662 394.5 DL 94.664 394.5 89.664 394.5 DL 95.662 394.5 90.662 394.5
+DL 100.662 394.5 95.662 394.5 DL 105.662 394.5 100.662 394.5 DL 105.662
+383.5 105.662 393.5 DL 94.664 383.5 89.664 383.5 DL 95.662 383.5 90.662
+383.5 DL 100.662 383.5 95.662 383.5 DL 105.662 383.5 100.662 383.5 DL F0
+79.837(pW)95.163 392 S(rite-Thru Mode and Normal \(solid\) V)-79.837 E
+(ectors)-1.11 E 72 400.5 72 410.5 DL 72 399.5 72 409.5 DL 87.998 400.5
+87.998 410.5 DL 77 410.5 72 410.5 DL 77.998 410.5 72.998 410.5 DL 82.998
+410.5 77.998 410.5 DL 87.998 410.5 82.998 410.5 DL 87.998 399.5 87.998
+409.5 DL 77 399.5 72 399.5 DL 77.998 399.5 72.998 399.5 DL 82.998 399.5
+77.998 399.5 DL 87.998 399.5 82.998 399.5 DL 89.664 400.5 89.664 410.5
+DL 89.664 399.5 89.664 409.5 DL F1(ESC)74.497 407 Q 105.662 400.5
+105.662 410.5 DL 94.664 410.5 89.664 410.5 DL 95.662 410.5 90.662 410.5
+DL 100.662 410.5 95.662 410.5 DL 105.662 410.5 100.662 410.5 DL 105.662
+399.5 105.662 409.5 DL 94.664 399.5 89.664 399.5 DL 95.662 399.5 90.662
+399.5 DL 100.662 399.5 95.662 399.5 DL 105.662 399.5 100.662 399.5 DL F0
+79.837(qW)95.163 408 S(rite-Thru Mode and Dotted Line V)-79.837 E
+(ectors)-1.11 E 72 416.5 72 426.5 DL 72 415.5 72 425.5 DL 87.998 416.5
+87.998 426.5 DL 77 426.5 72 426.5 DL 77.998 426.5 72.998 426.5 DL 82.998
+426.5 77.998 426.5 DL 87.998 426.5 82.998 426.5 DL 87.998 415.5 87.998
+425.5 DL 77 415.5 72 415.5 DL 77.998 415.5 72.998 415.5 DL 82.998 415.5
+77.998 415.5 DL 87.998 415.5 82.998 415.5 DL 89.664 416.5 89.664 426.5
+DL 89.664 415.5 89.664 425.5 DL F1(ESC)74.497 423 Q 105.662 416.5
+105.662 426.5 DL 94.664 426.5 89.664 426.5 DL 95.662 426.5 90.662 426.5
+DL 100.662 426.5 95.662 426.5 DL 105.662 426.5 100.662 426.5 DL 105.662
+415.5 105.662 425.5 DL 94.664 415.5 89.664 415.5 DL 95.662 415.5 90.662
+415.5 DL 100.662 415.5 95.662 415.5 DL 105.662 415.5 100.662 415.5 DL F0
+80.672(rW)95.998 424 S(rite-Thru Mode and Dot-Dashed V)-80.672 E(ectors)
+-1.11 E 72 432.5 72 442.5 DL 72 431.5 72 441.5 DL 87.998 432.5 87.998
+442.5 DL 77 442.5 72 442.5 DL 77.998 442.5 72.998 442.5 DL 82.998 442.5
+77.998 442.5 DL 87.998 442.5 82.998 442.5 DL 87.998 431.5 87.998 441.5
+DL 77 431.5 72 431.5 DL 77.998 431.5 72.998 431.5 DL 82.998 431.5 77.998
+431.5 DL 87.998 431.5 82.998 431.5 DL 89.664 432.5 89.664 442.5 DL
+89.664 431.5 89.664 441.5 DL F1(ESC)74.497 439 Q 105.662 432.5 105.662
+442.5 DL 94.664 442.5 89.664 442.5 DL 95.662 442.5 90.662 442.5 DL
+100.662 442.5 95.662 442.5 DL 105.662 442.5 100.662 442.5 DL 105.662
+431.5 105.662 441.5 DL 94.664 431.5 89.664 431.5 DL 95.662 431.5 90.662
+431.5 DL 100.662 431.5 95.662 431.5 DL 105.662 431.5 100.662 431.5 DL F0
+80.392(sW)95.718 440 S(rite-Thru Mode and Short-Dashed V)-80.392 E
+(ectors)-1.11 E 72 448.5 72 458.5 DL 72 447.5 72 457.5 DL 87.998 448.5
+87.998 458.5 DL 77 458.5 72 458.5 DL 77.998 458.5 72.998 458.5 DL 82.998
+458.5 77.998 458.5 DL 87.998 458.5 82.998 458.5 DL 87.998 447.5 87.998
+457.5 DL 77 447.5 72 447.5 DL 77.998 447.5 72.998 447.5 DL 82.998 447.5
+77.998 447.5 DL 87.998 447.5 82.998 447.5 DL 89.664 448.5 89.664 458.5
+DL 89.664 447.5 89.664 457.5 DL F1(ESC)74.497 455 Q 105.662 448.5
+105.662 458.5 DL 94.664 458.5 89.664 458.5 DL 95.662 458.5 90.662 458.5
+DL 100.662 458.5 95.662 458.5 DL 105.662 458.5 100.662 458.5 DL 105.662
+447.5 105.662 457.5 DL 94.664 447.5 89.664 447.5 DL 95.662 447.5 90.662
+447.5 DL 100.662 447.5 95.662 447.5 DL 105.662 447.5 100.662 447.5 DL F0
+80.947(tW)96.273 456 S(rite-Thru Mode and Long-Dashed V)-80.947 E
+(ectors)-1.11 E 72 464.5 72 474.5 DL 72 463.5 72 473.5 DL 87.998 464.5
+87.998 474.5 DL 77 474.5 72 474.5 DL 77.998 474.5 72.998 474.5 DL 82.998
+474.5 77.998 474.5 DL 87.998 474.5 82.998 474.5 DL 87.998 463.5 87.998
+473.5 DL 77 463.5 72 463.5 DL 77.998 463.5 72.998 463.5 DL 82.998 463.5
+77.998 463.5 DL 87.998 463.5 82.998 463.5 DL F1(FS)76.663 471 Q F0
+(Point Plot Mode \(Ctrl-\\\))96.665 1 M 72 480.5 72 490.5 DL 72 479.5 72
+489.5 DL 87.998 480.5 87.998 490.5 DL 77 490.5 72 490.5 DL 77.998 490.5
+72.998 490.5 DL 82.998 490.5 77.998 490.5 DL 87.998 490.5 82.998 490.5
+DL 87.998 479.5 87.998 489.5 DL 77 479.5 72 479.5 DL 77.998 479.5 72.998
+479.5 DL 82.998 479.5 77.998 479.5 DL 87.998 479.5 82.998 479.5 DL F1
+(GS)76.165 487 Q F0(Graph Mode \(Ctrl-]\))96.167 1 M 72 496.5 72 506.5
+DL 72 495.5 72 505.5 DL 87.998 496.5 87.998 506.5 DL 77 506.5 72 506.5
+DL 77.998 506.5 72.998 506.5 DL 82.998 506.5 77.998 506.5 DL 87.998
+506.5 82.998 506.5 DL 87.998 495.5 87.998 505.5 DL 77 495.5 72 495.5 DL
+77.998 495.5 72.998 495.5 DL 82.998 495.5 77.998 495.5 DL 87.998 495.5
+82.998 495.5 DL F1(RS)76.33 503 Q F0(Incremental Plot Mode \(Ctrl-^\))
+96.332 1 M 72 512.5 72 522.5 DL 72 511.5 72 521.5 DL 87.998 512.5 87.998
+522.5 DL 77 522.5 72 522.5 DL 77.998 522.5 72.998 522.5 DL 82.998 522.5
+77.998 522.5 DL 87.998 522.5 82.998 522.5 DL 87.998 511.5 87.998 521.5
+DL 77 511.5 72 511.5 DL 77.998 511.5 72.998 511.5 DL 82.998 511.5 77.998
+511.5 DL 87.998 511.5 82.998 511.5 DL F1(US)76.165 519 Q F0
+(Alpha Mode \(Ctrl-_\))96.167 1 M/F5 10/Times-Bold@0 SF(VT52 Mode)72 544
+Q F0 -.15(Pa)72 560.8 S .391(rameters for cursor mo).15 F -.15(ve)-.15 G
+290.392 553.3 290.392 563.3 DL 290.392 552.3 290.392 562.3 DL .39
+(ment are at the end of the)183.522 560.8 R 306.39 553.3 306.39 563.3 DL
+295.392 563.3 290.392 563.3 DL 296.39 563.3 291.39 563.3 DL 301.39 563.3
+296.39 563.3 DL 306.39 563.3 301.39 563.3 DL 306.39 552.3 306.39 562.3
+DL 295.392 552.3 290.392 552.3 DL 296.39 552.3 291.39 552.3 DL 301.39
+552.3 296.39 552.3 DL 306.39 552.3 301.39 552.3 DL 308.056 553.3 308.056
+563.3 DL 308.056 552.3 308.056 562.3 DL F1(ESC)292.889 559.8 Q 324.054
+553.3 324.054 563.3 DL 313.056 563.3 308.056 563.3 DL 314.054 563.3
+309.054 563.3 DL 319.054 563.3 314.054 563.3 DL 324.054 563.3 319.054
+563.3 DL 324.054 552.3 324.054 562.3 DL 313.056 552.3 308.056 552.3 DL
+314.054 552.3 309.054 552.3 DL 319.054 552.3 314.054 552.3 DL 324.054
+552.3 319.054 552.3 DL F0 8.945(Ye)312.445 560.8 S .39(scape sequence.)
+-8.945 F .39(Each ordinate is encoded in a sin-)5.39 F(gle character as)
+72 572.8 Q F2(value)2.5 E F0 2.5(+32. F)B(or e)-.15 E 236.46 565.3
+236.46 575.3 DL 236.46 564.3 236.46 574.3 DL 252.458 565.3 252.458 575.3
+DL 241.46 575.3 236.46 575.3 DL 242.458 575.3 237.458 575.3 DL 247.458
+575.3 242.458 575.3 DL 252.458 575.3 247.458 575.3 DL 252.458 564.3
+252.458 574.3 DL 241.46 564.3 236.46 564.3 DL 242.458 564.3 237.458
+564.3 DL 247.458 564.3 242.458 564.3 DL 252.458 564.3 247.458 564.3 DL
+6.334(xample, !)202.02 572.8 R(is 1.)10.5 E
+(The screen coodinate system is 0-based.)5 E 72 593.3 72 603.3 DL 72
+592.3 72 602.3 DL 87.998 593.3 87.998 603.3 DL 77 603.3 72 603.3 DL
+77.998 603.3 72.998 603.3 DL 82.998 603.3 77.998 603.3 DL 87.998 603.3
+82.998 603.3 DL 87.998 592.3 87.998 602.3 DL 77 592.3 72 592.3 DL 77.998
+592.3 72.998 592.3 DL 82.998 592.3 77.998 592.3 DL 87.998 592.3 82.998
+592.3 DL 89.664 593.3 89.664 603.3 DL 89.664 592.3 89.664 602.3 DL F1
+(ESC)74.497 599.8 Q 105.662 593.3 105.662 603.3 DL 94.664 603.3 89.664
+603.3 DL 95.662 603.3 90.662 603.3 DL 100.662 603.3 95.662 603.3 DL
+105.662 603.3 100.662 603.3 DL 105.662 592.3 105.662 602.3 DL 94.664
+592.3 89.664 592.3 DL 95.662 592.3 90.662 592.3 DL 100.662 592.3 95.662
+592.3 DL 105.662 592.3 100.662 592.3 DL F0 78.727(AC)94.053 600.8 S
+(ursor up.)-78.727 E 72 609.3 72 619.3 DL 72 608.3 72 618.3 DL 87.998
+609.3 87.998 619.3 DL 77 619.3 72 619.3 DL 77.998 619.3 72.998 619.3 DL
+82.998 619.3 77.998 619.3 DL 87.998 619.3 82.998 619.3 DL 87.998 608.3
+87.998 618.3 DL 77 608.3 72 608.3 DL 77.998 608.3 72.998 608.3 DL 82.998
+608.3 77.998 608.3 DL 87.998 608.3 82.998 608.3 DL 89.664 609.3 89.664
+619.3 DL 89.664 608.3 89.664 618.3 DL F1(ESC)74.497 615.8 Q 105.662
+609.3 105.662 619.3 DL 94.664 619.3 89.664 619.3 DL 95.662 619.3 90.662
+619.3 DL 100.662 619.3 95.662 619.3 DL 105.662 619.3 100.662 619.3 DL
+105.662 608.3 105.662 618.3 DL 94.664 608.3 89.664 608.3 DL 95.662 608.3
+90.662 608.3 DL 100.662 608.3 95.662 608.3 DL 105.662 608.3 100.662
+608.3 DL F0 79.002(BC)94.328 616.8 S(ursor do)-79.002 E(wn.)-.25 E 72
+625.3 72 635.3 DL 72 624.3 72 634.3 DL 87.998 625.3 87.998 635.3 DL 77
+635.3 72 635.3 DL 77.998 635.3 72.998 635.3 DL 82.998 635.3 77.998 635.3
+DL 87.998 635.3 82.998 635.3 DL 87.998 624.3 87.998 634.3 DL 77 624.3 72
+624.3 DL 77.998 624.3 72.998 624.3 DL 82.998 624.3 77.998 624.3 DL
+87.998 624.3 82.998 624.3 DL 89.664 625.3 89.664 635.3 DL 89.664 624.3
+89.664 634.3 DL F1(ESC)74.497 631.8 Q 105.662 625.3 105.662 635.3 DL
+94.664 635.3 89.664 635.3 DL 95.662 635.3 90.662 635.3 DL 100.662 635.3
+95.662 635.3 DL 105.662 635.3 100.662 635.3 DL 105.662 624.3 105.662
+634.3 DL 94.664 624.3 89.664 624.3 DL 95.662 624.3 90.662 624.3 DL
+100.662 624.3 95.662 624.3 DL 105.662 624.3 100.662 624.3 DL F0 79.002
+(CC)94.328 632.8 S(ursor right.)-79.002 E 72 641.3 72 651.3 DL 72 640.3
+72 650.3 DL 87.998 641.3 87.998 651.3 DL 77 651.3 72 651.3 DL 77.998
+651.3 72.998 651.3 DL 82.998 651.3 77.998 651.3 DL 87.998 651.3 82.998
+651.3 DL 87.998 640.3 87.998 650.3 DL 77 640.3 72 640.3 DL 77.998 640.3
+72.998 640.3 DL 82.998 640.3 77.998 640.3 DL 87.998 640.3 82.998 640.3
+DL 89.664 641.3 89.664 651.3 DL 89.664 640.3 89.664 650.3 DL F1(ESC)
+74.497 647.8 Q 105.662 641.3 105.662 651.3 DL 94.664 651.3 89.664 651.3
+DL 95.662 651.3 90.662 651.3 DL 100.662 651.3 95.662 651.3 DL 105.662
+651.3 100.662 651.3 DL 105.662 640.3 105.662 650.3 DL 94.664 640.3
+89.664 640.3 DL 95.662 640.3 90.662 640.3 DL 100.662 640.3 95.662 640.3
+DL 105.662 640.3 100.662 640.3 DL F0 78.727(DC)94.053 648.8 S
+(ursor left.)-78.727 E 72 657.3 72 667.3 DL 72 656.3 72 666.3 DL 87.998
+657.3 87.998 667.3 DL 77 667.3 72 667.3 DL 77.998 667.3 72.998 667.3 DL
+82.998 667.3 77.998 667.3 DL 87.998 667.3 82.998 667.3 DL 87.998 656.3
+87.998 666.3 DL 77 656.3 72 656.3 DL 77.998 656.3 72.998 656.3 DL 82.998
+656.3 77.998 656.3 DL 87.998 656.3 82.998 656.3 DL 89.664 657.3 89.664
+667.3 DL 89.664 656.3 89.664 666.3 DL F1(ESC)74.497 663.8 Q 105.662
+657.3 105.662 667.3 DL 94.664 667.3 89.664 667.3 DL 95.662 667.3 90.662
+667.3 DL 100.662 667.3 95.662 667.3 DL 105.662 667.3 100.662 667.3 DL
+105.662 656.3 105.662 666.3 DL 94.664 656.3 89.664 656.3 DL 95.662 656.3
+90.662 656.3 DL 100.662 656.3 95.662 656.3 DL 105.662 656.3 100.662
+656.3 DL F0 79.557(FE)94.883 664.8 S(nter graphics mode.)-79.557 E 72
+673.3 72 683.3 DL 72 672.3 72 682.3 DL 87.998 673.3 87.998 683.3 DL 77
+683.3 72 683.3 DL 77.998 683.3 72.998 683.3 DL 82.998 683.3 77.998 683.3
+DL 87.998 683.3 82.998 683.3 DL 87.998 672.3 87.998 682.3 DL 77 672.3 72
+672.3 DL 77.998 672.3 72.998 672.3 DL 82.998 672.3 77.998 672.3 DL
+87.998 672.3 82.998 672.3 DL 89.664 673.3 89.664 683.3 DL 89.664 672.3
+89.664 682.3 DL F1(ESC)74.497 679.8 Q 105.662 673.3 105.662 683.3 DL
+94.664 683.3 89.664 683.3 DL 95.662 683.3 90.662 683.3 DL 100.662 683.3
+95.662 683.3 DL 105.662 683.3 100.662 683.3 DL 105.662 672.3 105.662
+682.3 DL 94.664 672.3 89.664 672.3 DL 95.662 672.3 90.662 672.3 DL
+100.662 672.3 95.662 672.3 DL 105.662 672.3 100.662 672.3 DL F0 78.727
+(GE)94.053 680.8 S(xit graphics mode.)-78.727 E 72 689.3 72 699.3 DL 72
+688.3 72 698.3 DL 87.998 689.3 87.998 699.3 DL 77 699.3 72 699.3 DL
+77.998 699.3 72.998 699.3 DL 82.998 699.3 77.998 699.3 DL 87.998 699.3
+82.998 699.3 DL 87.998 688.3 87.998 698.3 DL 77 688.3 72 688.3 DL 77.998
+688.3 72.998 688.3 DL 82.998 688.3 77.998 688.3 DL 87.998 688.3 82.998
+688.3 DL 89.664 689.3 89.664 699.3 DL 89.664 688.3 89.664 698.3 DL F1
+(ESC)74.497 695.8 Q 105.662 689.3 105.662 699.3 DL 94.664 699.3 89.664
+699.3 DL 95.662 699.3 90.662 699.3 DL 100.662 699.3 95.662 699.3 DL
+105.662 699.3 100.662 699.3 DL 105.662 688.3 105.662 698.3 DL 94.664
+688.3 89.664 688.3 DL 95.662 688.3 90.662 688.3 DL 100.662 688.3 95.662
+688.3 DL 105.662 688.3 100.662 688.3 DL F0 78.727(HM)94.053 696.8 S .3
+-.15(ove t)-78.727 H(he cursor to the home position.).15 E 72 705.3 72
+715.3 DL 72 704.3 72 714.3 DL 87.998 705.3 87.998 715.3 DL 77 715.3 72
+715.3 DL 77.998 715.3 72.998 715.3 DL 82.998 715.3 77.998 715.3 DL
+87.998 715.3 82.998 715.3 DL 87.998 704.3 87.998 714.3 DL 77 704.3 72
+704.3 DL 77.998 704.3 72.998 704.3 DL 82.998 704.3 77.998 704.3 DL
+87.998 704.3 82.998 704.3 DL 89.664 705.3 89.664 715.3 DL 89.664 704.3
+89.664 714.3 DL F1(ESC)74.497 711.8 Q 105.662 705.3 105.662 715.3 DL
+94.664 715.3 89.664 715.3 DL 95.662 715.3 90.662 715.3 DL 100.662 715.3
+95.662 715.3 DL 105.662 715.3 100.662 715.3 DL 105.662 704.3 105.662
+714.3 DL 94.664 704.3 89.664 704.3 DL 95.662 704.3 90.662 704.3 DL
+100.662 704.3 95.662 704.3 DL 105.662 704.3 100.662 704.3 DL F0 80.672
+(IR)95.998 712.8 S -2.15 -.25(ev e)-80.672 H(rse line feed.).25 E(18)301
+772 Q EP
+%%Page: 19 19
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(Xterm Control Sequences)72 52 Q(VT52 Mode)315.52
+E .4 LW 72 80.5 72 90.5 DL 72 79.5 72 89.5 DL 87.998 80.5 87.998 90.5 DL
+77 90.5 72 90.5 DL 77.998 90.5 72.998 90.5 DL 82.998 90.5 77.998 90.5 DL
+87.998 90.5 82.998 90.5 DL 87.998 79.5 87.998 89.5 DL 77 79.5 72 79.5 DL
+77.998 79.5 72.998 79.5 DL 82.998 79.5 77.998 79.5 DL 87.998 79.5 82.998
+79.5 DL 89.664 80.5 89.664 90.5 DL 89.664 79.5 89.664 89.5 DL/F1 6
+/Times-Roman@0 SF(ESC)74.497 87 Q 105.662 80.5 105.662 90.5 DL 94.664
+90.5 89.664 90.5 DL 95.662 90.5 90.662 90.5 DL 100.662 90.5 95.662 90.5
+DL 105.662 90.5 100.662 90.5 DL 105.662 79.5 105.662 89.5 DL 94.664 79.5
+89.664 79.5 DL 95.662 79.5 90.662 79.5 DL 100.662 79.5 95.662 79.5 DL
+105.662 79.5 100.662 79.5 DL F0 80.392(JE)95.718 88 S
+(rase from the cursor to the end of the screen.)-80.392 E 72 96.5 72
+106.5 DL 72 95.5 72 105.5 DL 87.998 96.5 87.998 106.5 DL 77 106.5 72
+106.5 DL 77.998 106.5 72.998 106.5 DL 82.998 106.5 77.998 106.5 DL
+87.998 106.5 82.998 106.5 DL 87.998 95.5 87.998 105.5 DL 77 95.5 72 95.5
+DL 77.998 95.5 72.998 95.5 DL 82.998 95.5 77.998 95.5 DL 87.998 95.5
+82.998 95.5 DL 89.664 96.5 89.664 106.5 DL 89.664 95.5 89.664 105.5 DL
+F1(ESC)74.497 103 Q 105.662 96.5 105.662 106.5 DL 94.664 106.5 89.664
+106.5 DL 95.662 106.5 90.662 106.5 DL 100.662 106.5 95.662 106.5 DL
+105.662 106.5 100.662 106.5 DL 105.662 95.5 105.662 105.5 DL 94.664 95.5
+89.664 95.5 DL 95.662 95.5 90.662 95.5 DL 100.662 95.5 95.662 95.5 DL
+105.662 95.5 100.662 95.5 DL F0 78.727(KE)94.053 104 S
+(rase from the cursor to the end of the line.)-78.727 E 72 112.5 72
+122.5 DL 72 111.5 72 121.5 DL 87.998 112.5 87.998 122.5 DL 77 122.5 72
+122.5 DL 77.998 122.5 72.998 122.5 DL 82.998 122.5 77.998 122.5 DL
+87.998 122.5 82.998 122.5 DL 87.998 111.5 87.998 121.5 DL 77 111.5 72
+111.5 DL 77.998 111.5 72.998 111.5 DL 82.998 111.5 77.998 111.5 DL
+87.998 111.5 82.998 111.5 DL 89.664 112.5 89.664 122.5 DL 89.664 111.5
+89.664 121.5 DL F1(ESC)74.497 119 Q 105.662 112.5 105.662 122.5 DL
+94.664 122.5 89.664 122.5 DL 95.662 122.5 90.662 122.5 DL 100.662 122.5
+95.662 122.5 DL 105.662 122.5 100.662 122.5 DL 105.662 111.5 105.662
+121.5 DL 94.664 111.5 89.664 111.5 DL 95.662 111.5 90.662 111.5 DL
+100.662 111.5 95.662 111.5 DL 105.662 111.5 100.662 111.5 DL F0(Y)94.053
+120 Q/F2 10/Times-Italic@0 SF(P)6.055 E/F3 8/Times-Italic@0 SF(s)-2 3 M
+F2(P)1.666 -3 M F3(s)-2 3 M F0(Mo)56.562 -3 M .3 -.15(ve t)-.15 H
+(he cursor to gi).15 E -.15(ve)-.25 G 2.5(nr).15 G .5 -.25(ow a)-2.5 H
+(nd column.).25 E 72 128.5 72 138.5 DL 72 127.5 72 137.5 DL 87.998 128.5
+87.998 138.5 DL 77 138.5 72 138.5 DL 77.998 138.5 72.998 138.5 DL 82.998
+138.5 77.998 138.5 DL 87.998 138.5 82.998 138.5 DL 87.998 127.5 87.998
+137.5 DL 77 127.5 72 127.5 DL 77.998 127.5 72.998 127.5 DL 82.998 127.5
+77.998 127.5 DL 87.998 127.5 82.998 127.5 DL 89.664 128.5 89.664 138.5
+DL 89.664 127.5 89.664 137.5 DL F1(ESC)74.497 135 Q 105.662 128.5
+105.662 138.5 DL 94.664 138.5 89.664 138.5 DL 95.662 138.5 90.662 138.5
+DL 100.662 138.5 95.662 138.5 DL 105.662 138.5 100.662 138.5 DL 105.662
+127.5 105.662 137.5 DL 94.664 127.5 89.664 127.5 DL 95.662 127.5 90.662
+127.5 DL 100.662 127.5 95.662 127.5 DL 105.662 127.5 100.662 127.5 DL F0
+79.282(ZI)94.608 136 S(dentify)-79.282 E 197.37 144.5 197.37 154.5 DL
+197.37 143.5 197.37 153.5 DL/F4 10/Symbol SF<ae>185 152 Q 213.368 144.5
+213.368 154.5 DL 202.37 154.5 197.37 154.5 DL 203.368 154.5 198.368
+154.5 DL 208.368 154.5 203.368 154.5 DL 213.368 154.5 208.368 154.5 DL
+213.368 143.5 213.368 153.5 DL 202.37 143.5 197.37 143.5 DL 203.368
+143.5 198.368 143.5 DL 208.368 143.5 203.368 143.5 DL 213.368 143.5
+208.368 143.5 DL 216.7 144.5 216.7 154.5 DL 216.7 143.5 216.7 153.5 DL
+F1(ESC)199.867 151 Q 232.698 144.5 232.698 154.5 DL 221.7 154.5 216.7
+154.5 DL 222.698 154.5 217.698 154.5 DL 227.698 154.5 222.698 154.5 DL
+232.698 154.5 227.698 154.5 DL 232.698 143.5 232.698 153.5 DL 221.7
+143.5 216.7 143.5 DL 222.698 143.5 217.698 143.5 DL 227.698 143.5
+222.698 143.5 DL 232.698 143.5 227.698 143.5 DL 236.03 144.5 236.03
+154.5 DL 236.03 143.5 236.03 153.5 DL 252.028 144.5 252.028 154.5 DL
+241.03 154.5 236.03 154.5 DL 242.028 154.5 237.028 154.5 DL 247.028
+154.5 242.028 154.5 DL 252.028 154.5 247.028 154.5 DL 252.028 143.5
+252.028 153.5 DL 241.03 143.5 236.03 143.5 DL 242.028 143.5 237.028
+143.5 DL 247.028 143.5 242.028 143.5 DL 252.028 143.5 247.028 143.5 DL
+F0 14.885(/Z)223.309 152 S(\(`)-5.775 E(`I am a VT52.)-.74 E -.74('')-.7
+G(\)).74 E 72 160.5 72 170.5 DL 72 159.5 72 169.5 DL 87.998 160.5 87.998
+170.5 DL 77 170.5 72 170.5 DL 77.998 170.5 72.998 170.5 DL 82.998 170.5
+77.998 170.5 DL 87.998 170.5 82.998 170.5 DL 87.998 159.5 87.998 169.5
+DL 77 159.5 72 159.5 DL 77.998 159.5 72.998 159.5 DL 82.998 159.5 77.998
+159.5 DL 87.998 159.5 82.998 159.5 DL 89.664 160.5 89.664 170.5 DL
+89.664 159.5 89.664 169.5 DL F1(ESC)74.497 167 Q 105.662 160.5 105.662
+170.5 DL 94.664 170.5 89.664 170.5 DL 95.662 170.5 90.662 170.5 DL
+100.662 170.5 95.662 170.5 DL 105.662 170.5 100.662 170.5 DL 105.662
+159.5 105.662 169.5 DL 94.664 159.5 89.664 159.5 DL 95.662 159.5 90.662
+159.5 DL 100.662 159.5 95.662 159.5 DL 105.662 159.5 100.662 159.5 DL F0
+79.517(=E)94.843 168 S(nter alternate k)-79.517 E -.15(ey)-.1 G
+(pad mode.).15 E 72 176.5 72 186.5 DL 72 175.5 72 185.5 DL 87.998 176.5
+87.998 186.5 DL 77 186.5 72 186.5 DL 77.998 186.5 72.998 186.5 DL 82.998
+186.5 77.998 186.5 DL 87.998 186.5 82.998 186.5 DL 87.998 175.5 87.998
+185.5 DL 77 175.5 72 175.5 DL 77.998 175.5 72.998 175.5 DL 82.998 175.5
+77.998 175.5 DL 87.998 175.5 82.998 175.5 DL 89.664 176.5 89.664 186.5
+DL 89.664 175.5 89.664 185.5 DL F1(ESC)74.497 183 Q 105.662 176.5
+105.662 186.5 DL 94.664 186.5 89.664 186.5 DL 95.662 186.5 90.662 186.5
+DL 100.662 186.5 95.662 186.5 DL 105.662 186.5 100.662 186.5 DL 105.662
+175.5 105.662 185.5 DL 94.664 175.5 89.664 175.5 DL 95.662 175.5 90.662
+175.5 DL 100.662 175.5 95.662 175.5 DL 105.662 175.5 100.662 175.5 DL F0
+79.517(>E)94.843 184 S(xit alternate k)-79.517 E -.15(ey)-.1 G
+(pad mode.).15 E 72 192.5 72 202.5 DL 72 191.5 72 201.5 DL 87.998 192.5
+87.998 202.5 DL 77 202.5 72 202.5 DL 77.998 202.5 72.998 202.5 DL 82.998
+202.5 77.998 202.5 DL 87.998 202.5 82.998 202.5 DL 87.998 191.5 87.998
+201.5 DL 77 191.5 72 191.5 DL 77.998 191.5 72.998 191.5 DL 82.998 191.5
+77.998 191.5 DL 87.998 191.5 82.998 191.5 DL 89.664 192.5 89.664 202.5
+DL 89.664 191.5 89.664 201.5 DL F1(ESC)74.497 199 Q 105.662 192.5
+105.662 202.5 DL 94.664 202.5 89.664 202.5 DL 95.662 202.5 90.662 202.5
+DL 100.662 202.5 95.662 202.5 DL 105.662 202.5 100.662 202.5 DL 105.662
+191.5 105.662 201.5 DL 94.664 191.5 89.664 191.5 DL 95.662 191.5 90.662
+191.5 DL 100.662 191.5 95.662 191.5 DL 105.662 191.5 100.662 191.5 DL F0
+79.517(<E)94.843 200 S(xit VT52 mode \(Enter VT100 mode\).)-79.517 E(19)
+301 768 Q EP
+%%Trailer
+end
+%%EOF
diff --git a/doc/readme.txt b/doc/readme.txt
new file mode 100644
index 0000000..3e9913a
--- /dev/null
+++ b/doc/readme.txt
@@ -0,0 +1,4 @@
+Most of the documents in this directory come from Thomas E. Dickey's xterm pages
+at http://www.invisible-island.net/xterm/.
+ctlseqs.ms From the xterm source tree.
+vttest.tar.gz From http://invisible-island.net/vttest/vttest.html
diff --git a/doc/vttest-20011130/BUGS b/doc/vttest-20011130/BUGS
new file mode 100644
index 0000000..43f2826
--- /dev/null
+++ b/doc/vttest-20011130/BUGS
@@ -0,0 +1,19 @@
+-- $Id$
+
+Please report bugs to tom@invisible-island.net
+
+This is a list of known problems with VTTEST:
+
+ + SD and SU tests pass with dtterm, but not with VT420, which uses a
+ different scrolling model.
+
+ + the skip_csi/skip_dcs functions are too permissive (they're allowing
+ either 8-bit or 7-bit responses).
+
+ + when I test the DECRQSS responses on a VT420, they usually come back
+ with a code '1' (according to my manual, that's invalid), though the
+ data looks correct otherwise.
+
+ + testing on a VT420 (console on VMS), there's a problem with the VT52 test:
+ I see highlighted glitches at the positions where erase line (ESC K)
+ controls are printed. Increasing the padding doesn't change this behavior.
diff --git a/doc/vttest-20011130/CHANGES b/doc/vttest-20011130/CHANGES
new file mode 100644
index 0000000..dc54aaf
--- /dev/null
+++ b/doc/vttest-20011130/CHANGES
@@ -0,0 +1,344 @@
+$Id$
+-------------------------------------------------------------------------------
+
+20011130
+ add tests for xterm alternate screen
+
+ split-out xterm mouse tests into mouse.c menu.
+
+20000208
+ change coding of wheel-mouse events, XFree86 xterm patch #126.
+
+991228
+ modify to report wheel-mouse events for XFree86 xterm (patch #122).
+
+991025
+ clarify top-level reports menu, which mixes tests that apply to various
+ models (VT100-VT420).
+
+ show decoded modifiers for the xterm mouse tests
+
+991014
+ modify position of cursor for printer tests, so autoprint tests work
+ as expected.
+
+ correct escape sequence for mc_print_page().
+
+991007
+ implement tests for Media Copy, e.g., transparent printing.
+
+ add examples for DEC locator events and DSR responses.
+
+ add DA responses for VT50 and VT55 (I'd forgotten that I once bought a
+ DECscope booklet).
+
+990712
+ modify menu 3.12 (non-VT100 "Test Keyboard Layout with G0 Selection")
+ to show numeric codes as well as the actual character.
+
+ remove spurious test for SD which indicated that ISO's coding differed
+ from DEC's. The difference was a typographical error in ECMA-48
+ (reported by Paul Williams <paul@celigne.co.uk>).
+
+990120
+ correct initialization of G0, for character-set shift-in/shift-out test.
+
+ change keyboard layout screen so that, when invoked from the character
+ set menu, it will display NRC characters properly.
+
+ correct logic of reset_charset() function, which used the wrong index
+ for do_scs() (reported by Jeffrey Altman).
+
+ set/restore character set for keyboard layout test in character-set
+ menu.
+
+990119
+ add menu entry for enabling NRC mode, and (for VT220 & up) a menu
+ entry to allow testing keyboard layout with NRC mode enabled.
+
+ remove logic that sets NRC mode from setup for character-set tests,
+ since that interferes with new menu entry.
+
+ change delimiting characters for single-shift test screen from "{" and
+ "}" to "(" and ")" to avoid confusion (the DECterm program which I have
+ tested with maps the curly braces even in an unshifted state according
+ to the state of the NRC mode).
+
+ reset character-set of G0 after tst_vt100_charsets
+
+ restore terminal modes after answerback test.
+
+980719
+ add tests to illustrate any-event and button-event tracking in XFree86
+ xterm.
+
+980328
+ add logic to ensure we pick up the proper choice (e.g., in Norwegian)
+ where the choice depends on the terminal id (e.g., VT220 vs VT320).
+
+ minor correction for VT220 vs VT320 logic in do_scs for Latin-1 vs
+ British character set.
+
+980327
+ implement test for single-shift (SS2 and SS3).
+
+980326
+ implement shift-in/shift-out character-set tests oriented toward VT220.
+
+ several corrections to VT220 character-set tests, from reports by
+ Kenneth R. Robinette <zkrr01@mailbox.neosoft.com>:
+
+ + move SCS strings to immediately before/after the tests to
+ avoid conflict with menu selection, and to keep the tests
+ distinct.
+
+ + use 96-character control sequences only for character sets
+ (Latin 1), and 94-character control sequences for the
+ National Replacement character sets.
+
+ + add ISO Latin-1 as a font option
+
+ + add Swiss as a font option
+
+980310
+ decode known values for secondary DA response.
+
+ make mouse-highlight test a little clearer by putting '+' marks at the
+ corners of the highlight-region.
+
+970524
+ eliminate 'gets()' calls, which can overflow buffer.
+
+970520
+ implement CF_FCNTL_VS_IOCTL check to make this build on SCO 3.x and
+ CLIX, which are both non-POSIX systems.
+
+970518
+ add CF_POSIX_VDISABLE test to work around gcc 2.6.2 bug.
+
+970419
+ correct sign-extension in xterm mouse-position
+
+961215
+ correct err introduced between d960905 and v2_5 that broke test for IRM
+ mode by using decsclm (reported by Jeffrey Altman).
+
+961125
+ add VT220 character-set tests for locking-shifts
+
+VERSION 2.7
+
+961113
+ corrected early return from test for DECRPM when badly-formatted
+ reply is received.
+
+ add DA1 codes from VT500 manual (from Jeffrey Altman).
+
+ refined test to restore ANSI mode based on VT420 testing.
+
+961029
+ extend VT52 test to check operating level when restoring ANSI mode.
+
+961028
+ implemented tests for VT220/VT420 function keys, editing keypad.
+
+961027
+ change suggested by Jeffrey Altman: set the terminal's default
+ operating level to the maximum rather than VT100 (this is slightly
+ incompatible with VTTEST 1.7).
+
+960930
+ amended reset_colors() to do SGR 0 at the end.
+
+960928
+ allow 8-bit input for keyboard (function keys, cursor keys) tests.
+
+ correct I/O modes on timeout
+
+ added padding, corrected some states on return from VT52 tests.
+
+ increase buffer size for DECTSR.
+
+960927
+ modified scan_chr (used in DECCIR test) to properly diagnose Pericom's
+ 3.2 emulator.
+
+ check in setup-menu for VT52.
+
+ modify inputline to retain whitespace
+
+ modify 'reset_colors()' to accommodate grossly-nonstandard emulators
+ that don't reset colors with SGR 0.
+
+ added test for SGR 0
+
+960921
+ implement REP test
+
+ corrected highlighting refresh in function-key test
+
+ use raw-mode for VT52 DECID test.
+
+VERSION 2.6
+
+960911
+ corrected DECBI, DECFI (documentation from Jeffrey Altman), SRM (on
+ VT420) tests.
+
+960908
+ implement DECDLD tests. Tested with fonts from "The VT200 TOOLKIT" by
+ Tabik & DiGiantomasso, Professional Software (available via DECUS).
+
+960905
+ implement DECCARA, DECRARA, DECSACE, DECSERA tests.
+
+960901
+ implement DECBKM, DECCRA, DECERA, DECFRA, DECKBUM, DECKPM, DECNKM,
+ SRM tests
+
+960830
+ implement 2nd, 3rd DA, DECFI, DECBI, DECSNLS, DECRQTSR tests.
+
+960828
+ provide analysis of DECCIR
+
+ implement tests for DECSASD, DECSSDT
+
+960825
+ corrected error (I) introduced in tst_movements (main.c 1.6) that broke
+ test of cursor-control characters inside ESC sequences (reported by
+ Albert D. Cahalan).
+
+ implement DECDC, DECIC tests.
+
+960825
+ added -l (logging) option.
+
+ added -p (padding) option.
+
+ port to VAX/VMS, for testing VT420
+
+960821
+ Corrected test for DECUDK, omitted lock-parameter caused keys to be
+ locked, so that only the first key definition was used (reported by
+ Jeffrey Altman).
+
+ Corrected test for DECRPM, missing '?' (reported by Jeffrey Altman
+ <jaltman@watsun.cc.columbia.edu>).
+
+VERSION 2.5
+
+960818
+ implements most VT420 report-tests.
+
+ make menu-skeleton for VT420 tests (some are needed for xterm tests),
+ marking the non-implemented entries with an '*'.
+
+960817
+ add tests/examples for xterm mouse controls
+
+960816
+ remove obsolete support for Sargasso C (TOPS-20)
+
+960813
+ use usleep() if the system has it, to make responses faster.
+
+ add menu-entry for toggling 7/8-bit input/output controls
+
+ split-out keyboard.c, organized by a set of submenus.
+
+ split-out reports.c, parameterized to allow testing 8-bit controls.
+ make submenu for individual reports.
+
+ modified menu decoding to accept '*' to step through all submenus.
+
+VERSION 2.4
+
+960807
+ Implement test for VT5xx C7C1T and S8C1T
+
+ Remove check for scrolling-behavior in CPL and CNL (no one but kermit
+ seems to consider doing this).
+
+ Modified tst_reports() to use raw mode (the original sgtty logic
+ doesn't do this) so that termios works. Modified termios settings for
+ crmod so it doesn't touch INLCR and IGNCR, and for raw mode to leave
+ c_oflag alone - this works on Linux.
+
+ corrected some typos in DECSCA test.
+
+960806
+ Testing by Albert D. Cahalan <acahalan@cs.uml.edu> with VT510,
+ suggested initializing with the 80/132 mode enabled. Says real
+ terminals need padding...
+
+960804
+ Implement tests for: SL, SD, SU, SR
+
+ Modified "Test of screen features with ISO 6429 SGR 22-27 codes"
+ to test concealed text.
+
+VERSION 2.3
+
+960803
+ Implement tests for the following ISO 6429 controls: CBT, CHA, CHT,
+ CNL, CPL, ECH, HPA, SL, SPA, SR, VPA.
+
+ Implement tests for DEC VT220 controls: DECSCA, DECTCEM
+
+960802
+ Restructure non-VT100 menus, making them separate from the base VT100
+ tests.
+
+VERSION 2.2
+
+960721
+ Initialize terminal with 80/132 switching enabled
+
+ Casper Dik <casper@holland.Sun.COM> explained why tests fail on Solaris
+ 2.5 (can workaround with lots of fflush calls ;-)
+
+960716
+ Add tests for CDE-compatible xterm
+
+VERSION 2.1
+
+960708
+ Change background color to blue for tests (some yellows and greens
+ are too close together).
+
+960702
+ Added extended graphic-rendition tests (ISO 6429)
+
+VERSION 2.0
+
+960624
+ Added color/graphic-rendition, and color-scrolling tests.
+
+960623
+ Implemented color tests (test-pattern, bce-test, insert/delete lines)
+
+960621
+ Implemented auto-config for termios (tested on SunOS 4.1.1, IRIX 5.2,
+ Solaris 5.4).
+
+960618
+ Modified to support nonstandard screen geometry. For example, you can
+ test Linux console (which has 25 lines) by typing 'vttest 25'.
+
+ Implemented auto-config for termio (tested on SunOS 4.1.1).
+
+960617
+ Corrected broken write-to-string-constant in tst_keyboard().
+
+ Split-out logic for ttymodes.c
+
+ Converted to ANSI C (it's a lot easier to avoid breaking code when all
+ of the interfaces are fully specified).
+
+ Split-out sargasso.h from header.h, to avoid nested-comment syntax. (I
+ don't think anyone will be using that again, anyway).
+
+ from original version (I've found nothing more recent ;-), marked 1.7b
+ 1985-04-19, begin making changes to support testing for ANSI color
+ features.
diff --git a/doc/vttest-20011130/COPYING b/doc/vttest-20011130/COPYING
new file mode 100644
index 0000000..408e66b
--- /dev/null
+++ b/doc/vttest-20011130/COPYING
@@ -0,0 +1,23 @@
+$Id$
+-----------------------------------------------------------------------------
+
+Copyright 1996 by Thomas E. Dickey <dickey@clark.net>
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of the above listed
+copyright holder(s) not be used in advertising or publicity pertaining
+to distribution of the software without specific, written prior
+permission.
+
+THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
+TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
+LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/doc/vttest-20011130/MANIFEST b/doc/vttest-20011130/MANIFEST
new file mode 100644
index 0000000..d947f5f
--- /dev/null
+++ b/doc/vttest-20011130/MANIFEST
@@ -0,0 +1,43 @@
+MANIFEST for vttest, version d20011130
+--------------------------------------------------------------------------------
+MANIFEST this file
+aclocal.m4 local macros for autoconf script
+BUGS current bug-list
+CHANGES record of changes I've made to vttest
+charsets.c character-set tests
+color.c color tests
+config.hin template for config.h
+configure.in template for configure script
+configure Configuration script for UNIX
+COPYING copyright notice
+descrip.mms VAX MMS script for VTTEST
+esc.c escape-sequence formatting & I/O
+esc.h interface of esc.c
+install.sh install script, needed for configure
+keyboard.c test keyboard functions
+main.c main-program & most tests, for VTTEST
+makefile.in template for makefile
+mkdirs.sh mkinstalldirs script, from X11
+mouse.c mouse tests for xterm
+nonvt100.c non-VT100 tests
+patchlev.h patch-level of VTTEST
+printer.c test printer functions
+README original version of vttest posted to comp.sources.unix, volume 7
+reports.c test device-reports
+reset.c test-functions for terminal-reset
+setup.c modify test-parameters
+sixel.c tests for soft characters (sixel)
+status.c status-line tests
+tech.set DEC technical set font definition from VT220 toolkit
+ttymodes.c module for changing tty modes
+ttymodes.h interface of ttymodes.c
+unix_io.c UNIX-specific I/O support
+vmsbuild.com VMS DCL script for building VTTEST
+vms_io.c VMS I/O routines
+vt220.c vt220 tests
+vt420.c vt420 tests
+vt52.c tests for VT52
+vttest.1 manual-page for VTTEST
+vttest.h renamed from header.h, common definitions of VTTEST
+vttest.lsm Linux Software Map description of VTTEST
+xterm.c tests for xterm and clones
diff --git a/doc/vttest-20011130/README b/doc/vttest-20011130/README
new file mode 100644
index 0000000..e650086
--- /dev/null
+++ b/doc/vttest-20011130/README
@@ -0,0 +1,67 @@
+$Id$
+
+I extended the original vttest program (I've found no modifications) with
+several new features listed in CHANGES
+
+- Thomas E. Dickey <tom@invisible-island.net>
+
+--------------------------------------------------------------------------------
+The remainder of this file is the original README:
+--------------------------------------------------------------------------------
+NOTES FROM THE MOD.SOURCES MODERATOR:
+I split the source up into the three separate pieces it now is.
+In doing this, I put lines like "int reading;" in a header file
+that both C modules include. If your Unix requires one of these
+to be "extern int reading;" then you will have some editing to do.
+Also note that this program uses FIONREAD, which must be implemented
+differently in SystemV, etc., and check out the setjmp() call...
+ /Rich $alz
+Oh, yeah: I also wrote the Makefile and manpage, such as they are.
+-------------------------------------------------------------------
+
+This is a program to test the compatibility (or to demonstrate the
+non-compatibility) of so-called "VT100-compatible" terminals. In
+conformance of the good old hacker traditions, the only documentation
+of this program is the source code itself. To understand it, you also
+need a copy of the original VT100 manual from DEC.
+
+Comments and bug reports: Since this is a release (via USENET) to the
+whole world, a lot of people are going to have opinions and fresh
+ideas about it. (What -- bugs in MY program? Aww...) I can't deal
+with everyone sending me a hacked version, but if you have found a
+serious bug, or ported it to VMS, do tell me. I can't promise any new
+version release, though. From this version on (1.7b) VTTEST will have
+to live its own life without its father holding its hand.
+
+My address is:
+
+Network-mail address: (mcvax,seismo)!enea!suadb!lindberg
+
+Real-world-mail address: Per Lindberg
+ QZ, Stockholm University Computing Center
+ Box 27322
+ S - 102 54 Stockholm
+ SWEDEN
+
+The original version of this program is written for the Sargasso C
+compiler for the DECsystem-10. Many thanks to all sales persons with
+quote VT100-compatible unquote terminals, who prompted me to write
+this program, and also to:
+
+-- Bo Kleve, LIDAC, Linkoping University, Sweden
+ for the portation to DECSYSTEM-20 with the Sargasso C compiler
+
+-- Johan Widen, TTDS, Royal Institute of Technology, Stockholm, Sweden
+ for the portation to various UNIX systems (incl. System III and Xenix)
+
+-- Russ Herman, AES Data Inc., Missisauga, Ont. Canada
+ for fixes and code for the VT102 test
+
+Thanx also to JMR "Gremlin" at KTH, and Goran Wallberg at QZ
+for suggestions, bug fixes, etc.
+
+This program does not have support for all the different variations
+of VT100, like VT125, VT131 nor the new VT200 series. Feel free to
+add that yourself. Happy Hacking!
+
+ /TMP
diff --git a/doc/vttest-20011130/aclocal.m4 b/doc/vttest-20011130/aclocal.m4
new file mode 100644
index 0000000..69fcdcb
--- /dev/null
+++ b/doc/vttest-20011130/aclocal.m4
@@ -0,0 +1,59 @@
+dnl $Id$
+dnl ---------------------------------------------------------------------------
+dnl Test if we have a usable ioctl with FIONREAD, or if fcntl.h is preferred.
+AC_DEFUN([CF_FCNTL_VS_IOCTL],
+[
+AC_MSG_CHECKING(if we may use FIONREAD)
+AC_CACHE_VAL(cf_cv_use_fionread,[
+ AC_TRY_COMPILE([
+#if HAVE_SYS_FILIO_H
+# include <sys/filio.h> /* FIONREAD */
+#endif
+ ],[
+long l1;
+ioctl (0, FIONREAD, &l1);
+ ],
+ [cf_cv_use_fionread=yes],
+ [cf_cv_use_fionread=no])
+])
+AC_MSG_RESULT($cf_cv_use_fionread)
+test $cf_cv_use_fionread = yes && AC_DEFINE(USE_FIONREAD)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl Special test to workaround gcc 2.6.2, which cannot parse C-preprocessor
+dnl conditionals.
+AC_DEFUN([CF_POSIX_VDISABLE],
+[
+AC_MSG_CHECKING(if POSIX VDISABLE symbol should be used)
+AC_CACHE_VAL(cf_cv_posix_vdisable,[
+ AC_TRY_RUN([
+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
+#include <termios.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if defined(_POSIX_VDISABLE)
+int main() { exit(_POSIX_VDISABLE == -1); }
+#endif],
+ [cf_cv_posix_vdisable=yes],
+ [cf_cv_posix_vdisable=no],
+ [AC_TRY_COMPILE([
+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
+#include <termios.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif],[
+#if defined(_POSIX_VDISABLE) && (_POSIX_VDISABLE != -1)
+int temp = _POSIX_VDISABLE;
+#else
+this did not work
+#endif],
+ [cf_cv_posix_vdisable=yes],
+ [cf_cv_posix_vdisable=no],
+ )])
+])
+AC_MSG_RESULT($cf_cv_posix_vdisable)
+test $cf_cv_posix_vdisable = yes && AC_DEFINE(HAVE_POSIX_VDISABLE)
+])dnl
diff --git a/doc/vttest-20011130/charsets.c b/doc/vttest-20011130/charsets.c
new file mode 100644
index 0000000..7bcbbbf
--- /dev/null
+++ b/doc/vttest-20011130/charsets.c
@@ -0,0 +1,478 @@
+/* $Id$ */
+
+/*
+ * Test character-sets (e.g., SCS control, DECNRCM mode)
+ */
+#include <vttest.h>
+#include <esc.h>
+
+/* the values, where specified, correspond to the keyboard-language codes */
+typedef enum {
+ ASCII = 1,
+ British = 2,
+ Flemish = 3,
+ French_Canadian = 4,
+ Danish = 5,
+ Finnish = 6,
+ German = 7,
+ Dutch = 8,
+ Italian = 9,
+ Swiss_French = 10,
+ Swiss_German = 11,
+ Swiss,
+ Swedish = 12,
+ Norwegian_Danish = 13,
+ French = 14,
+ Spanish = 15,
+ Portugese = 16,
+ Hebrew = 17,
+ DEC_Spec_Graphic,
+ DEC_Supp,
+ DEC_Supp_Graphic,
+ DEC_Tech,
+ British_Latin_1,
+ Unknown
+} National;
+
+static const struct {
+ National code; /* internal name (chosen to sort properly!) */
+ int allow96; /* flag for 96-character sets (e.g., GR mapping) */
+ int order; /* check-column so we can mechanically-sort this table */
+ int model; /* 0=base, 2=vt220, 3=vt320, etc. */
+ char *final; /* end of SCS string */
+ char *name; /* the string we'll show the user */
+} KnownCharsets[] = {
+ { ASCII, 0, 0, 0, "B", "US ASCII" },
+ { British, 0, 0, 0, "A", "British" },
+ { British_Latin_1, 1, 0, 3, "A", "Latin-1" },
+ { DEC_Spec_Graphic, 0, 0, 0, "0", "DEC Special Graphics" },
+ { DEC_Supp, 0, 0, 2, "<", "DEC Supplemental" },
+ { DEC_Supp_Graphic, 0, 0, 3, "%5", "DEC Supplemental Graphic" },
+ { DEC_Tech, 0, 0, 3, ">", "DEC Technical" },
+ { Danish, 0, 0, 0, "?", "Danish" },
+ { Dutch, 0, 0, 2, "4", "Dutch" },
+ { Finnish, 0, 0, 2, "5", "Finnish" },
+ { Finnish, 0, 1, 2, "C", "Finnish" },
+ { Flemish, 0, 0, 0, "?", "Flemish" },
+ { French, 0, 0, 2, "R", "French" },
+ { French_Canadian, 0, 0, 2, "Q", "French Canadian" },
+ { German, 0, 0, 2, "K", "German" },
+ { Hebrew, 0, 0, 3, "%=", "Hebrew" },
+ { Italian, 0, 0, 2, "Y", "Italian" },
+ { Norwegian_Danish, 0, 0, 3, "`", "Norwegian/Danish" },
+ { Norwegian_Danish, 0, 1, 2, "E", "Norwegian/Danish" },
+ { Norwegian_Danish, 0, 2, 2, "6", "Norwegian/Danish" },
+ { Portugese, 0, 0, 3, "%6", "Portugese" },
+ { Spanish, 0, 0, 2, "Z", "Spanish" },
+ { Swedish, 0, 0, 2, "7", "Swedish" }, /* or "H" */
+ { Swiss, 0, 0, 2, "=", "Swiss" },
+ { Swiss_French, 0, 0, 0, "?", "Swiss (French)" },
+ { Swiss_German, 0, 0, 0, "?", "Swiss (German)" },
+ { Unknown, 0, 0, 0, "?", "Unknown" }
+};
+
+static int national;
+
+static int current_Gx[4];
+
+static char *
+scs_params(char *dst, int g)
+{
+ int n = current_Gx[g];
+
+ sprintf(dst, "%c%s",
+ (KnownCharsets[n].allow96 && get_level() > 2)
+ ? "?-./"[g]
+ : "()*+"[g],
+ KnownCharsets[n].final);
+ return dst;
+}
+
+static void
+do_scs(int g)
+{
+ char buffer[80];
+
+ esc(scs_params(buffer, g));
+}
+
+static int
+lookupCode(National code)
+{
+ int n;
+ for (n = 0; n < TABLESIZE(KnownCharsets); n++) {
+ if (KnownCharsets[n].code == code)
+ return n;
+ }
+ return lookupCode(ASCII);
+}
+
+/* reset given Gg back to sane setting */
+static int
+sane_cs(int g)
+{
+ return lookupCode((g == 0)
+ ? ASCII
+ : (get_level() > 1)
+ ? British_Latin_1 /* ...to get 8-bit codes 128-255 */
+ : DEC_Supp_Graphic);
+}
+
+/* reset given Gg back to sane setting */
+static int
+reset_scs(int g)
+{
+ int n = sane_cs(g);
+ do_scs(n);
+ return n;
+}
+
+/* reset all of the Gn to sane settings */
+static int
+reset_charset(MENU_ARGS)
+{
+ int n, m;
+
+ decnrcm(national = FALSE);
+ for (n = 0; n < 4; n++) {
+ m = sane_cs(n);
+ if (m != current_Gx[n]) {
+ current_Gx[n] = m;
+ do_scs(n);
+ }
+ }
+ return MENU_NOHOLD;
+}
+
+static int the_code;
+static int the_list[TABLESIZE(KnownCharsets)+2];
+
+static int
+lookup_Gx(MENU_ARGS)
+{
+ int n;
+ the_code = -1;
+ for (n = 0; n < TABLESIZE(KnownCharsets); n++) {
+ if (the_list[n]
+ && !strcmp(the_title, KnownCharsets[n].name)) {
+ the_code = n;
+ break;
+ }
+ }
+ return MENU_NOHOLD;
+}
+
+static void
+specify_any_Gx(int g)
+{
+ MENU my_menu[TABLESIZE(KnownCharsets)+2];
+ int n, m;
+
+ /*
+ * Build up a menu of the character sets we will allow the user to specify.
+ * There are a couple of tentative table entries (the "?" ones), which we
+ * won't show in any event. Beyond that, we limit some of the character sets
+ * based on the emulation level (vt220 implements national replacement
+ * character sets, for example, but not the 96-character ISO Latin-1).
+ */
+ for (n = m = 0; n < TABLESIZE(KnownCharsets); n++) {
+ the_list[n] = 0;
+ if (!strcmp(KnownCharsets[n].final, "?"))
+ continue;
+ if (get_level() < KnownCharsets[n].model)
+ continue;
+ if ((g == 0) && KnownCharsets[n].allow96)
+ continue;
+ if (m && !strcmp(my_menu[m-1].description, KnownCharsets[n].name))
+ continue;
+ my_menu[m].description = KnownCharsets[n].name;
+ my_menu[m].dispatch = lookup_Gx;
+ the_list[n] = 1;
+ m++;
+ }
+ my_menu[m].description = "";
+ my_menu[m].dispatch = 0;
+
+ do {
+ vt_clear(2);
+ title(0); println("Choose character-set:");
+ } while (menu(my_menu) && the_code < 0);
+
+ current_Gx[g] = the_code;
+}
+
+static int
+toggle_nrc(MENU_ARGS)
+{
+ national = !national;
+ decnrcm(national);
+ return MENU_NOHOLD;
+}
+
+static int
+specify_G0(MENU_ARGS)
+{
+ specify_any_Gx(0);
+ return MENU_NOHOLD;
+}
+
+static int
+specify_G1(MENU_ARGS)
+{
+ specify_any_Gx(1);
+ return MENU_NOHOLD;
+}
+
+static int
+specify_G2(MENU_ARGS)
+{
+ specify_any_Gx(2);
+ return MENU_NOHOLD;
+}
+
+static int
+specify_G3(MENU_ARGS)
+{
+ specify_any_Gx(3);
+ return MENU_NOHOLD;
+}
+
+static int
+tst_layout(MENU_ARGS)
+{
+ char buffer[80];
+ return tst_keyboard_layout(scs_params(buffer, 0));
+}
+
+static int
+tst_vt100_charsets(MENU_ARGS)
+{
+ /* Test of:
+ SCS (Select character Set)
+ */
+ static const struct { char code; char *msg; } table[] = {
+ { 'A', "UK / national" },
+ { 'B', "US ASCII" },
+ { '0', "Special graphics and line drawing" },
+ { '1', "Alternate character ROM standard characters" },
+ { '2', "Alternate character ROM special graphics" },
+ };
+
+ int i, j, g, cset;
+
+ cup(1,10); printf("Selected as G0 (with SI)");
+ cup(1,48); printf("Selected as G1 (with SO)");
+ for (cset = 0; cset < TABLESIZE(table); cset++) {
+ int row = 3 + (4 * cset);
+
+ scs(1,'B');
+ cup(row, 1);
+ sgr("1");
+ printf("Character set %c (%s)", table[cset].code, table[cset].msg);
+ sgr("0");
+ for (g = 0; g <= 1; g++) {
+ int set_nrc = (get_level() >= 2 && table[cset].code == 'A');
+ if (set_nrc)
+ decnrcm(TRUE);
+ scs(g, table[cset].code);
+ for (i = 1; i <= 3; i++) {
+ cup(row + i, 10 + 38 * g);
+ for (j = 0; j <= 31; j++) {
+ printf("%c", i * 32 + j);
+ }
+ }
+ if (set_nrc != national)
+ decnrcm(national);
+ }
+ }
+ scs(0,'B');
+ scs(1,'B');
+ cup(max_lines,1); printf("These are the installed character sets. ");
+ return MENU_HOLD;
+}
+
+static int
+tst_shift_in_out(MENU_ARGS)
+{
+ /* Test of:
+ SCS (Select character Set)
+ */
+ static char *label[] = {
+ "Selected as G0 (with SI)",
+ "Selected as G1 (with SO)"
+ };
+ int i, j, cset;
+ char buffer[80];
+
+ cup(1,10); printf("These are the G0 and G1 character sets.");
+ for (cset = 0; cset < 2; cset++) {
+ int row = 3 + (4 * cset);
+
+ scs(cset,'B');
+ cup(row, 1);
+ sgr("1");
+ printf("Character set %s (%s)",
+ KnownCharsets[current_Gx[cset]].final,
+ KnownCharsets[current_Gx[cset]].name);
+ sgr("0");
+
+ cup(row, 48);
+ printf("%s", label[cset]);
+
+ esc(scs_params(buffer, cset));
+ for (i = 1; i <= 3; i++) {
+ cup(row + i, 10);
+ for (j = 0; j <= 31; j++) {
+ printf("%c", i * 32 + j);
+ }
+ }
+ scs(cset,'B');
+ }
+ cup(max_lines,1);
+ return MENU_HOLD;
+}
+
+static int
+tst_vt220_locking(MENU_ARGS)
+{
+ /* Test of:
+ SCS (Select character Set)
+ */
+ static const struct {
+ int upper;
+ int mapped;
+ char *code;
+ char *msg;
+ } table[] = {
+ { 1, 1, "~", "G1 into GR (LS1R)" },
+ { 0, 2, "n", "G2 into GL (LS2)" }, /* "{" vi */
+ { 1, 2, "}", "G2 into GR (LS2R)" },
+ { 0, 3, "o", "G3 into GL (LS3)" },
+ { 1, 3, "|", "G3 into GR (LS3R)" },
+ };
+
+ int i, j, cset;
+
+ cup(1,10); printf("Locking shifts, with NRC %s:",
+ national ? "enabled" : "disabled");
+ for (cset = 0; cset < TABLESIZE(table); cset++) {
+ int row = 3 + (4 * cset);
+ int map = table[cset].mapped;
+
+ scs(1,'B');
+ cup(row, 1);
+ sgr("1");
+ printf("Character set %s (%s)",
+ KnownCharsets[current_Gx[map]].final,
+ KnownCharsets[current_Gx[map]].name);
+ sgr("0");
+
+ cup(row, 48);
+ printf("Maps %s", table[cset].msg);
+
+ do_scs(map);
+ esc(table[cset].code);
+ for (i = 1; i <= 3; i++) {
+ cup(row + i, 10);
+ for (j = 0; j <= 31; j++) {
+ printf("%c", table[cset].upper * 128 + i * 32 + j);
+ }
+ }
+ reset_scs(cset);
+ }
+ scs(1,'B');
+ cup(max_lines,1);
+ return MENU_HOLD;
+}
+
+static int
+tst_vt220_single(MENU_ARGS)
+{
+ int pass, x, y;
+
+ for (pass = 0; pass < 2; pass++) {
+ int g = pass + 2;
+
+ vt_clear(2);
+ cup(1,1);
+ printf("Testing single-shift G%d into GL (SS%d) with NRC %s\n",
+ g, g, national ? "enabled" : "disabled");
+ printf("G%d is %s", g, KnownCharsets[current_Gx[g]].name);
+
+ do_scs(g);
+ for (y = 0; y < 16; y++) {
+ for (x = 0; x < 6; x++) {
+ int ch = y + (x * 16) + 32;
+ cup(y+5, (x * 12) + 5);
+ printf("%3d: (", ch);
+ esc(pass ? "O" : "N"); /* SS3 or SS2 */
+ printf("%c", ch);
+ printf(")");
+ }
+ }
+
+ cup(max_lines,1);
+ holdit();
+ }
+
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+/* Reset G0 to ASCII */
+void
+scs_normal(void)
+{
+ scs(0,'B');
+}
+
+/* Set G0 to Line Graphics */
+void
+scs_graphics(void)
+{
+ scs(0,'0');
+}
+
+int
+tst_characters(MENU_ARGS)
+{
+ static char whatis_Gx[4][80];
+ static char nrc_mesg[80];
+
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Reset (ASCII for G0, G1, no NRC mode)", reset_charset },
+ { nrc_mesg, toggle_nrc },
+ { whatis_Gx[0], specify_G0 },
+ { whatis_Gx[1], specify_G1 },
+ { whatis_Gx[2], specify_G2 },
+ { whatis_Gx[3], specify_G3 },
+ { "Test VT100 Character Sets", tst_vt100_charsets },
+ { "Test Shift In/Shift Out (SI/SO)", tst_shift_in_out },
+ { "Test VT220 Locking Shifts", tst_vt220_locking },
+ { "Test VT220 Single Shifts", tst_vt220_single },
+ { "Test Soft Character Sets", not_impl },
+ { "Test Keyboard Layout with G0 Selection", tst_layout },
+ { "", 0 }
+ };
+ int n;
+
+ reset_charset(PASS_ARGS); /* make the menu consistent */
+ if (get_level() > 1 || input_8bits || output_8bits) {
+ do {
+ vt_clear(2);
+ title(0); printf("Character-Set Tests");
+ title(2); println("Choose test type:");
+ sprintf(nrc_mesg, "%s National Replacement Character (NRC) mode",
+ national ? "Disable" : "Enable");
+ for (n = 0; n < 4; n++) {
+ sprintf(whatis_Gx[n], "Specify G%d (now %s)",
+ n, KnownCharsets[current_Gx[n]].name);
+ }
+ } while (menu(my_menu));
+ return reset_charset(PASS_ARGS);
+ } else {
+ return tst_vt100_charsets(PASS_ARGS);
+ }
+}
diff --git a/doc/vttest-20011130/color.c b/doc/vttest-20011130/color.c
new file mode 100644
index 0000000..0c9679a
--- /dev/null
+++ b/doc/vttest-20011130/color.c
@@ -0,0 +1,600 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <esc.h>
+
+#define MAX_COLORS 8
+
+#define COLOR_BLACK 0
+#define COLOR_RED 1
+#define COLOR_GREEN 2
+#define COLOR_YELLOW 3
+#define COLOR_BLUE 4
+#define COLOR_MAGENTA 5
+#define COLOR_CYAN 6
+#define COLOR_WHITE 7
+
+static char *colors[MAX_COLORS] =
+{
+ "black", /* 30, 40 */
+ "red", /* 31, 41 */
+ "green", /* 32, 42 */
+ "yellow", /* 33, 43 */
+ "blue", /* 34, 44 */
+ "magenta", /* 35, 45 */
+ "cyan", /* 36, 46 */
+ "white" /* 37, 47 */
+};
+
+static int do_colors = TRUE;
+
+static int next_word(char *s);
+static void draw_box_caption(int x0, int y0, int x1, int y1, char **c);
+static void draw_box_outline(int x0, int y0, int x1, int y1, int c);
+static void draw_hline(int x0, int y0, int x1, int c);
+static void draw_vline(int x0, int y0, int y1, int c);
+
+/*
+ * Pick an unusual color combination for testing, just in case the user's
+ * got the background set to something different.
+ */
+static void
+c_sgr(char *s)
+{
+ char temp[80];
+ char *t = strchr(strcpy(temp, s), '0');
+ int reset = FALSE;
+
+ if (*temp == ';' || *temp == 0) {
+ reset = TRUE;
+ } else {
+ for (t = temp; *t != 0; t++) {
+ if (((t[0] == '0')
+ && (t == temp || t[-1] == ';')
+ && (t[1] == 0 || t[1] == ';'))
+ || ((t[0] == ';')
+ && (t[1] == ';'))) {
+ reset = TRUE;
+ break;
+ }
+ }
+ }
+
+ if (reset && do_colors) {
+ sprintf(temp + strlen(temp), ";%d;%d", COLOR_YELLOW + 30, COLOR_BLUE + 40);
+ }
+ sgr(temp);
+}
+
+static void
+draw_box_caption(int x0, int y0, int x1, int y1, char ** c)
+{
+ int x = x0, y = y0;
+ int t;
+ char *s;
+
+ while ((s = *c++) != 0) {
+ while ((t = *s++) != 0) {
+ if (x == x0) {
+ if (t == ' ')
+ continue;
+ cup(y, x);
+ putchar(' '); x++;
+ }
+ putchar(t); x++;
+ if ((t == ' ') && (next_word(s) > (x1-x-2))) {
+ while (x < x1) {
+ putchar(' '); x++;
+ }
+ }
+ if (x >= x1) {
+ putchar(' ');
+ x = x0;
+ y++;
+ }
+ }
+ }
+ while (y <= y1) {
+ if (x == x0) {
+ cup(y, x);
+ }
+ putchar(' ');
+ if (++x >= x1) {
+ putchar(' ');
+ x = x0;
+ y++;
+ }
+ }
+}
+
+static void
+draw_box_outline(int x0, int y0, int x1, int y1, int c)
+{
+ draw_hline(x0, y0, x1, c);
+ draw_hline(x0, y1, x1, c);
+ draw_vline(x0, y0, y1, c);
+ draw_vline(x1, y0, y1, c);
+}
+
+static void
+draw_hline(int x0, int y0, int x1, int c)
+{
+ int n;
+
+ cup(y0, x0);
+ for (n = x0; n <= x1; n++)
+ putchar(c);
+}
+
+static void
+draw_vline(int x0, int y0, int y1, int c)
+{
+ int n;
+
+ for (n = y0; n <= y1; n++) {
+ cup(n, x0);
+ putchar(c);
+ }
+}
+
+static int
+next_word(char *s)
+{
+ char *base;
+ while (*s == ' ')
+ s++;
+ base = s;
+ while (*s && *s != ' ')
+ s++;
+ return (s - base);
+}
+
+/*
+ * Some terminals will reset colors with SGR-0; I've added the 39, 49 codes for
+ * those that are ISO compliant. (The black/white codes are for emulators
+ * written by people who don't bother reading standards).
+ */
+static void
+reset_colors(void)
+{
+ sgr("0;40;37;39;49");
+ sgr("0");
+}
+
+static void
+set_background(int bg)
+{
+ if (do_colors) {
+ char temp[80];
+ (void)sprintf(temp, "4%d", bg);
+ sgr(temp);
+ }
+}
+
+static void
+set_color_pair(int fg, int bg)
+{
+ if (do_colors) {
+ char temp[80];
+ (void)sprintf(temp, "3%d;4%d", fg, bg);
+ sgr(temp);
+ }
+}
+
+static void
+set_foreground(int fg)
+{
+ if (do_colors) {
+ char temp[80];
+ (void)sprintf(temp, "3%d", fg);
+ sgr(temp);
+ }
+}
+
+static void
+set_test_colors(void)
+{
+ c_sgr("0");
+}
+
+/* Graphic rendition requires special handling with color, since SGR-0
+ * is supposed to reset the colors as well.
+ */
+static void
+show_graphic_rendition(void)
+{
+ ed(2);
+ cup( 1,20); printf("Color/Graphic rendition test pattern:");
+ cup( 4, 1); c_sgr("0"); printf("vanilla");
+ cup( 4,40); c_sgr("0;1"); printf("bold");
+ cup( 6, 6); c_sgr(";4"); printf("underline");
+ cup( 6,45); c_sgr(";1");c_sgr("4");printf("bold underline");
+ cup( 8, 1); c_sgr("0;5"); printf("blink");
+ cup( 8,40); c_sgr("0;5;1"); printf("bold blink");
+ cup(10, 6); c_sgr("0;4;5"); printf("underline blink");
+ cup(10,45); c_sgr("0;1;4;5"); printf("bold underline blink");
+ cup(12, 1); c_sgr("1;4;5;0;7"); printf("negative");
+ cup(12,40); c_sgr("0;1;7"); printf("bold negative");
+ cup(14, 6); c_sgr("0;4;7"); printf("underline negative");
+ cup(14,45); c_sgr("0;1;4;7"); printf("bold underline negative");
+ cup(16, 1); c_sgr("1;4;;5;7"); printf("blink negative");
+ cup(16,40); c_sgr("0;1;5;7"); printf("bold blink negative");
+ cup(18, 6); c_sgr("0;4;5;7"); printf("underline blink negative");
+ cup(18,45); c_sgr("0;1;4;5;7"); printf("bold underline blink negative");
+ cup(20, 6); c_sgr(""); set_foreground(9); printf("original foreground");
+ cup(20,45); c_sgr(""); set_background(9); printf("original background");
+ c_sgr(""); /* same as c_sgr("0") */
+
+ decscnm(FALSE); /* Inverse video off */
+ cup(max_lines-1,1); el(0); printf("Dark background. "); holdit();
+
+ decscnm(TRUE); /* Inverse video */
+ cup(max_lines-1,1); el(0); printf("Light background. "); holdit();
+ decscnm(FALSE);
+}
+
+static void
+show_line_deletions(void)
+{
+ int row;
+
+ ed(2);
+ cup(1,1);
+ printf("This test deletes every third line from a list, marking cursor with '*'.\n");
+ printf("The foreground and background should be yellow(orange) and blue, respectively.\n");
+
+ for (row = 5; row <= max_lines; row++) {
+ cup(row,1);
+ printf(" row %3d: this is some text", row);
+ }
+ for (row = 7; row <= max_lines; row += 2 /* 3 - deletion */) {
+ cup(row,1);
+ dl(1);
+ putchar('*'); /* cursor should be in column 1 */
+ }
+ cup(3,1);
+ holdit();
+}
+
+static void
+show_line_insertions(void)
+{
+ int row;
+
+ ed(2);
+ cup(1,1);
+ printf("This test inserts after every second line in a list, marking cursor with '*'.\n");
+ printf("The foreground and background should be yellow(orange) and blue, respectively.\n");
+
+ for (row = 5; row <= max_lines; row++) {
+ cup(row,1);
+ printf(" row %3d: this is some text", row);
+ }
+ for (row = 7; row <= max_lines; row += 3 /* 2 + insertion */) {
+ cup(row,1);
+ il(1);
+ putchar('*'); /* cursor should be in column 1 */
+ }
+ cup(3,1);
+ holdit();
+}
+
+static int
+show_test_pattern(MENU_ARGS)
+/* generate a color test pattern */
+{
+ int i, j, k;
+
+ reset_colors();
+ ed(2);
+ cup(1,1);
+ printf("There are %d color combinations", MAX_COLORS * MAX_COLORS);
+
+ for (k = 0; k <= 11; k += 11) {
+ cup(k + 2, 1);
+ printf("%dx%d matrix of foreground/background colors, bright *",
+ MAX_COLORS, MAX_COLORS);
+
+ if (k) {
+ sgr("1");
+ printf("on");
+ sgr("0");
+ } else {
+ printf("off");
+ }
+ printf("*");
+
+ for (i = 0; i < MAX_COLORS; i++) {
+ cup(k + 3, (i+1) * 8 + 1);
+ printf("%s", colors[i]);
+ }
+
+ for (i = 0; i < MAX_COLORS; i++) {
+ cup(k + i + 4, 1);
+ printf("%s", colors[i]);
+ }
+
+ for (i = 0; i < MAX_COLORS; i++) {
+ for (j = 0; j < MAX_COLORS; j++) {
+ if (k)
+ sgr("1");
+ set_color_pair(j, i);
+ cup(k + 4 + i, (j+1) * 8 + 1);
+ printf("Hello");
+ reset_colors();
+ }
+ }
+ }
+ reset_colors();
+ cup(max_lines-1, 1);
+ return MENU_HOLD;
+}
+
+/*
+ * "Real" color terminals support bce (background color erase).
+ *
+ * Set the foreground and background colors to something that's unusual.
+ * Then clear the screen (the background should stick) and draw some nested
+ * boxes (because that's simple). Use the ED, EL controls to clear away the
+ * outer box, so we can exercise the various parameter combinations of each
+ * of these.
+ */
+static int
+simple_bce_test(MENU_ARGS)
+{
+ int i, j;
+ static int top = 3, top2 = 7; /* box margins */
+ static int left = 10, left2 = 18;
+ static char *text1[] = {
+ "The screen background should be blue, with a box made of asterisks",
+ " and this caption, in orange (non-bold yellow). ",
+ " There should be no cells with the default foreground or background.",
+ 0
+ };
+ static char *text2[] = {
+ "The screen background should be black, with a box made of asterisks",
+ " and this caption, in white (actually gray - it is not bold). ",
+ " Only the asterisk box should be in color.",
+ 0
+ };
+
+ set_test_colors();
+ ed(2);
+
+ for (i = top; i < max_lines-top; i++) {
+ cup(i, left);
+ for (j = left; j < min_cols-left; j++) {
+ putchar('X');
+ }
+ }
+
+ draw_box_outline(left2, top2, min_cols-left2, max_lines-top2, '*');
+
+ cup(top2-1, min_cols/2);
+ ed(1); /* clear from home to cursor */
+ cuf(1);
+ el(0); /* clear from cursor to end of line */
+
+ cup(max_lines - (top2-1), min_cols/2);
+ ed(0); /* clear from cursor to end */
+ cub(1);
+ el(1); /* clear to beginning of line */
+
+ for (i = top2; i <= max_lines-top2; i++) {
+ cup(i, left2-1);
+ el(1);
+ cup(i, min_cols - (left2-1));
+ el(0);
+ }
+
+ draw_box_caption(left2+1, top2+1, min_cols-left2-1, max_lines-top2-1, text1);
+
+ cup(max_lines-1, 1);
+ holdit();
+
+ /* Now, set the background again just in case there's a glitch */
+ set_foreground(COLOR_WHITE);
+ set_background(COLOR_BLACK);
+
+ cup(top2-1, min_cols/2);
+ ed(1); /* clear from home to cursor */
+ cuf(1);
+ el(0); /* clear from cursor to end of line */
+
+ cup(max_lines - (top2-1), min_cols/2);
+ ed(0); /* clear from cursor to end */
+ cub(1);
+ el(1); /* clear to beginning of line */
+
+ for (i = top2; i <= max_lines-top2; i++) {
+ cup(i, left2-1);
+ el(1);
+ cup(i, min_cols - (left2-1));
+ el(0);
+ }
+
+ draw_box_caption(left2+1, top2+1, min_cols-left2-1, max_lines-top2-1, text2);
+
+ cup(max_lines-1, 1);
+ holdit();
+
+ reset_colors();
+ return MENU_NOHOLD;
+}
+
+/*
+ * Test the insert/delete line/character operations for color (bce) terminals
+ * We'll test insert/delete line operations specially, because it is very hard
+ * to see what is happening with the accordion test when it does not work.
+ */
+static int
+test_color_insdel(MENU_ARGS)
+{
+ set_test_colors();
+
+ show_line_insertions();
+ show_line_deletions();
+
+ /* The rest of the test can be done nicely with the standard vt100 test
+ * for insert/delete, since it doesn't modify SGR.
+ */
+ tst_insdel(PASS_ARGS);
+ reset_colors();
+ return MENU_NOHOLD;
+}
+
+static int
+test_color_screen(MENU_ARGS)
+{
+ set_test_colors();
+
+ do_scrolling();
+ show_graphic_rendition();
+ reset_colors();
+ return MENU_NOHOLD;
+}
+
+/*
+ * VT220 and higher implement the 22, 24, 25 and 27 codes.
+ * VT510 implements concealed text.
+ *
+ * ISO 6429 specifies additional SGR codes so that one needn't use SGR 0
+ * to reset everything before switching, e.g., set/clear pairs are
+ * bold 1/22
+ * faint 2/22
+ * italics 3/23
+ * underline 4/24
+ * blink 5/25
+ * inverse 7/27
+ * concealed 8/28
+ */
+static int
+test_iso_6429_sgr(MENU_ARGS)
+{
+ set_test_colors();
+ ed(2);
+ cup( 1,20); printf("Extended/Graphic rendition test pattern:");
+ cup( 4, 1); c_sgr("0"); printf("vanilla");
+ cup( 4,40); c_sgr("0;1"); printf("bold");
+ cup( 6, 6); c_sgr("22;4"); printf("underline");
+ cup( 6,45); c_sgr("24;1;4"); printf("bold underline");
+ cup( 8, 1); c_sgr("22;24;5"); printf("blink");
+ cup( 8,40); c_sgr("25;5;1"); printf("bold blink");
+ cup(10, 6); c_sgr("22;4;5"); printf("underline blink");
+ cup(10,45); c_sgr("24;25;1;4;5"); printf("bold underline blink");
+ cup(12, 1); c_sgr("22;24;25;7"); printf("negative");
+ cup(12,40); c_sgr("1"); printf("bold negative");
+ cup(14, 6); c_sgr("22;4;7"); printf("underline negative");
+ cup(14,45); c_sgr("1;4;7"); printf("bold underline negative");
+ cup(16, 1); c_sgr("22;24;5;7"); printf("blink negative");
+ cup(16,40); c_sgr("1"); printf("bold blink negative");
+ cup(18, 6); c_sgr("22;4"); printf("underline blink negative");
+ cup(18,45); c_sgr("1"); printf("bold underline blink negative");
+ cup(20, 6); c_sgr(""); set_foreground(9); printf("original foreground");
+ cup(20,45); c_sgr(""); set_background(9); printf("original background");
+ cup(22, 1); c_sgr(";8"); printf("concealed");
+ cup(22,40); c_sgr("8;7"); printf("concealed negative");
+ c_sgr(""); /* same as c_sgr("0") */
+ printf(" <- concealed text");
+
+ decscnm(FALSE); /* Inverse video off */
+ cup(max_lines-1,1); el(0); printf("Dark background. "); holdit();
+
+ decscnm(TRUE); /* Inverse video */
+ cup(max_lines-1,1); el(0); printf("Light background. "); holdit();
+
+ decscnm(FALSE);
+ cup(max_lines-1,1); el(0); printf("Dark background. "); holdit();
+
+ reset_colors();
+ return MENU_NOHOLD;
+}
+
+/*
+ */
+static int
+test_SGR_0(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+ println("");
+ println("ECMA-48 states that SGR 0 \"cancels the effect of any preceding occurrence");
+ println("of SGR in the data stream regardless of the setting of the graphic rendition");
+ println("combination mode (GRCM)\".");
+ println("");
+ println("");
+
+ reset_colors();
+ printf("You should see only black:");
+ sgr("30;40");
+ printf("SGR 30 and SGR 40 don't work");
+ reset_colors();
+ println(":up to here");
+
+ reset_colors();
+ printf("You should see only white:");
+ sgr("37;47");
+ printf("SGR 37 and SGR 47 don't work");
+ reset_colors();
+ println(":up to here");
+
+ reset_colors();
+ printf("You should see text here: ");
+ sgr("30;40");
+ sgr("0");
+ printf("SGR 0 reset works (explicit 0)");
+ println("");
+
+ reset_colors();
+ printf("................and here: ");
+ sgr("37;47");
+ sgr("");
+ printf("SGR 0 reset works (default param)");
+ println("");
+
+ reset_colors();
+ holdit();
+ return MENU_NOHOLD;
+}
+
+/*
+ * Allow user to test the same screens w/o colors.
+ */
+static int
+toggle_color_mode(MENU_ARGS)
+{
+ do_colors = !do_colors;
+ return MENU_NOHOLD;
+}
+
+/*
+ * For terminals that support ANSI/ISO colors, work through a graduated
+ * set of tests that first display colors (if the terminal does indeed
+ * support them), then exercise the associated reset, clear operations.
+ */
+int
+tst_colors(MENU_ARGS)
+{
+ static char txt_override_color[80];
+
+ static MENU colormenu[] = {
+ { "Return to main menu", 0 },
+ { txt_override_color, toggle_color_mode, },
+ { "Display color test-pattern", show_test_pattern, },
+ { "Test SGR-0 color reset", test_SGR_0, },
+ { "Test BCE-style clear line/display", simple_bce_test, },
+ { "Test of VT102-style features with BCE (Insert/Delete Char/Line)", test_color_insdel, },
+ { "Test of screen features with BCE", test_color_screen, },
+ { "Test of screen features with ISO 6429 SGR 22-27 codes", test_iso_6429_sgr, },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ sprintf(txt_override_color, "%sable color-switching",
+ do_colors ? "Dis" : "En");
+ title(0); println("ISO 6429 colors");
+ title(2); println("Choose test type:");
+ } while (menu(colormenu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/config.cache b/doc/vttest-20011130/config.cache
new file mode 100644
index 0000000..1c374ae
--- /dev/null
+++ b/doc/vttest-20011130/config.cache
@@ -0,0 +1,40 @@
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+ac_cv_func_alarm=${ac_cv_func_alarm=yes}
+ac_cv_func_rdchk=${ac_cv_func_rdchk=no}
+ac_cv_func_tcgetattr=${ac_cv_func_tcgetattr=yes}
+ac_cv_func_usleep=${ac_cv_func_usleep=yes}
+ac_cv_header_fcntl_h=${ac_cv_header_fcntl_h=yes}
+ac_cv_header_ioctl_h=${ac_cv_header_ioctl_h=no}
+ac_cv_header_sgtty_h=${ac_cv_header_sgtty_h=yes}
+ac_cv_header_stdc=${ac_cv_header_stdc=yes}
+ac_cv_header_stdlib_h=${ac_cv_header_stdlib_h=yes}
+ac_cv_header_string_h=${ac_cv_header_string_h=yes}
+ac_cv_header_sys_filio_h=${ac_cv_header_sys_filio_h=no}
+ac_cv_header_sys_ioctl_h=${ac_cv_header_sys_ioctl_h=yes}
+ac_cv_header_termio_h=${ac_cv_header_termio_h=yes}
+ac_cv_header_termios_h=${ac_cv_header_termios_h=yes}
+ac_cv_header_unistd_h=${ac_cv_header_unistd_h=yes}
+ac_cv_path_install=${ac_cv_path_install='/usr/bin/install -c'}
+ac_cv_prog_CC=${ac_cv_prog_CC=gcc}
+ac_cv_prog_CPP=${ac_cv_prog_CPP='gcc -E'}
+ac_cv_prog_cc_cross=${ac_cv_prog_cc_cross=no}
+ac_cv_prog_cc_g=${ac_cv_prog_cc_g=yes}
+ac_cv_prog_cc_works=${ac_cv_prog_cc_works=yes}
+ac_cv_prog_gcc=${ac_cv_prog_gcc=yes}
+ac_cv_prog_gcc_traditional=${ac_cv_prog_gcc_traditional=no}
+ac_cv_type_signal=${ac_cv_type_signal=void}
+cf_cv_posix_vdisable=${cf_cv_posix_vdisable=yes}
+cf_cv_use_fionread=${cf_cv_use_fionread=no}
diff --git a/doc/vttest-20011130/config.h b/doc/vttest-20011130/config.h
new file mode 100644
index 0000000..9cf92f2
--- /dev/null
+++ b/doc/vttest-20011130/config.h
@@ -0,0 +1,53 @@
+/* config.h. Generated automatically by configure. */
+/* $Id$ */
+
+/* define this if you have the alarm() function */
+#define HAVE_ALARM 1
+
+/* define this if you have <fcntl.h> */
+#define HAVE_FCNTL_H 1
+
+/* define this if you have <ioctl.h> */
+/* #undef HAVE_IOCTL_H */
+
+/* define this if you have the Xenix rdchk() function */
+/* #undef HAVE_RDCHK */
+
+/* define this if the POSIX VDISABLE symbol is defined, not equal to -1 */
+#define HAVE_POSIX_VDISABLE 1
+
+/* define this if you have <sgtty.h> */
+#define HAVE_SGTTY_H 1
+
+/* define this if you have <stdlib.h> */
+#define HAVE_STDLIB_H 1
+
+/* define this if you have <string.h> */
+#define HAVE_STRING_H 1
+
+/* define this if you have <sys/filio.h> */
+/* #undef HAVE_SYS_FILIO_H */
+
+/* define this if you have <sys/ioctl.h> */
+#define HAVE_SYS_IOCTL_H 1
+
+/* define this if you have the tcgetattr() function */
+#define HAVE_TCGETATTR 1
+
+/* define this if you have <termio.h> */
+#define HAVE_TERMIO_H 1
+
+/* define this if you have <termios.h> */
+#define HAVE_TERMIOS_H 1
+
+/* define this if you have <unistd.h> */
+#define HAVE_UNISTD_H 1
+
+/* define this if you have the usleep() function */
+#define HAVE_USLEEP 1
+
+/* define this to be the return-type of functions manipulated by 'signal()' */
+#define RETSIGTYPE void
+
+/* define this if we can use ioctl(,FIONREAD,) */
+/* #undef USE_FIONREAD */
diff --git a/doc/vttest-20011130/config.hin b/doc/vttest-20011130/config.hin
new file mode 100644
index 0000000..0253e97
--- /dev/null
+++ b/doc/vttest-20011130/config.hin
@@ -0,0 +1,52 @@
+/* $Id$ */
+
+/* define this if you have the alarm() function */
+#undef HAVE_ALARM
+
+/* define this if you have <fcntl.h> */
+#undef HAVE_FCNTL_H
+
+/* define this if you have <ioctl.h> */
+#undef HAVE_IOCTL_H
+
+/* define this if you have the Xenix rdchk() function */
+#undef HAVE_RDCHK
+
+/* define this if the POSIX VDISABLE symbol is defined, not equal to -1 */
+#undef HAVE_POSIX_VDISABLE
+
+/* define this if you have <sgtty.h> */
+#undef HAVE_SGTTY_H
+
+/* define this if you have <stdlib.h> */
+#undef HAVE_STDLIB_H
+
+/* define this if you have <string.h> */
+#undef HAVE_STRING_H
+
+/* define this if you have <sys/filio.h> */
+#undef HAVE_SYS_FILIO_H
+
+/* define this if you have <sys/ioctl.h> */
+#undef HAVE_SYS_IOCTL_H
+
+/* define this if you have the tcgetattr() function */
+#undef HAVE_TCGETATTR
+
+/* define this if you have <termio.h> */
+#undef HAVE_TERMIO_H
+
+/* define this if you have <termios.h> */
+#undef HAVE_TERMIOS_H
+
+/* define this if you have <unistd.h> */
+#undef HAVE_UNISTD_H
+
+/* define this if you have the usleep() function */
+#undef HAVE_USLEEP
+
+/* define this to be the return-type of functions manipulated by 'signal()' */
+#define RETSIGTYPE void
+
+/* define this if we can use ioctl(,FIONREAD,) */
+#undef USE_FIONREAD
diff --git a/doc/vttest-20011130/config.log b/doc/vttest-20011130/config.log
new file mode 100644
index 0000000..cf44b9d
--- /dev/null
+++ b/doc/vttest-20011130/config.log
@@ -0,0 +1,105 @@
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+configure:529: checking for gcc
+configure:606: checking whether the C compiler (gcc ) works
+configure:620: gcc -o conftest conftest.c 1>&5
+configure:640: checking whether the C compiler (gcc ) is a cross-compiler
+configure:645: checking whether we are using GNU C
+configure:654: gcc -E conftest.c
+configure:669: checking whether gcc accepts -g
+configure:726: checking for a BSD compatible install
+configure:776: checking how to run the C preprocessor
+configure:797: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:838: checking whether gcc needs -traditional
+configure:897: checking return type of signal handlers
+configure:919: gcc -c -g -O2 conftest.c 1>&5
+configure:938: checking for ANSI C header files
+configure:951: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1018: gcc -o conftest -g -O2 conftest.c 1>&5
+configure:1056: checking for fcntl.h
+configure:1066: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1056: checking for ioctl.h
+configure:1066: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1062:19: ioctl.h: No such file or directory
+configure: failed program was:
+#line 1061 "configure"
+#include "confdefs.h"
+#include <ioctl.h>
+configure:1056: checking for sgtty.h
+configure:1066: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1056: checking for stdlib.h
+configure:1066: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1056: checking for string.h
+configure:1066: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1056: checking for sys/filio.h
+configure:1066: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1062:23: sys/filio.h: No such file or directory
+configure: failed program was:
+#line 1061 "configure"
+#include "confdefs.h"
+#include <sys/filio.h>
+configure:1056: checking for sys/ioctl.h
+configure:1066: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1056: checking for termio.h
+configure:1066: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1056: checking for termios.h
+configure:1066: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1056: checking for unistd.h
+configure:1066: gcc -E conftest.c >/dev/null 2>conftest.out
+configure:1101: checking for alarm
+configure:1129: gcc -o conftest -g -O2 conftest.c 1>&5
+configure:1101: checking for rdchk
+configure:1129: gcc -o conftest -g -O2 conftest.c 1>&5
+/tmp/nalin/ccmjFt1w.o: In function `main':
+/home/devel/nalin/projects/vte/doc/vttest-20011130/configure:1123: undefined reference to `rdchk'
+collect2: ld returned 1 exit status
+configure: failed program was:
+#line 1106 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char rdchk(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char rdchk();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_rdchk) || defined (__stub___rdchk)
+choke me
+#else
+rdchk();
+#endif
+
+; return 0; }
+configure:1101: checking for tcgetattr
+configure:1129: gcc -o conftest -g -O2 conftest.c 1>&5
+configure:1101: checking for usleep
+configure:1129: gcc -o conftest -g -O2 conftest.c 1>&5
+configure:1157: checking if POSIX VDISABLE symbol should be used
+configure:1207: gcc -o conftest -g -O2 conftest.c 1>&5
+configure:1230: checking if we may use FIONREAD
+configure:1250: gcc -c -g -O2 conftest.c 1>&5
+configure: In function `main':
+configure:1245: `FIONREAD' undeclared (first use in this function)
+configure:1245: (Each undeclared identifier is reported only once
+configure:1245: for each function it appears in.)
+configure: failed program was:
+#line 1236 "configure"
+#include "confdefs.h"
+
+#if HAVE_SYS_FILIO_H
+# include <sys/filio.h> /* FIONREAD */
+#endif
+
+int main() {
+
+long l1;
+ioctl (0, FIONREAD, &l1);
+
+; return 0; }
diff --git a/doc/vttest-20011130/config.status b/doc/vttest-20011130/config.status
new file mode 100755
index 0000000..a976b16
--- /dev/null
+++ b/doc/vttest-20011130/config.status
@@ -0,0 +1,279 @@
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host blade.devel.redhat.com:
+#
+# ./configure
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: ./config.status [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion"
+ exec ${CONFIG_SHELL-/bin/sh} ./configure --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "./config.status generated by autoconf version 2.12.970309"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "$ac_cs_usage"; exit 0 ;;
+ *) echo "$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=.
+ac_given_INSTALL="/usr/bin/install -c"
+
+trap 'rm -fr makefile config.h conftest*; exit 1' 1 2 15
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\&%]/\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g$/%g/' > conftest.subs <<\CEOF
+/^[ ]*VPATH[ ]*=[^:]*$/d
+
+s%@CFLAGS@%-g -O2%g
+s%@CPPFLAGS@%%g
+s%@CXXFLAGS@%%g
+s%@DEFS@%-DHAVE_CONFIG_H%g
+s%@LDFLAGS@%%g
+s%@LIBS@%%g
+s%@exec_prefix@%${prefix}%g
+s%@prefix@%/usr/local%g
+s%@program_transform_name@%s,x,x,%g
+s%@bindir@%${exec_prefix}/bin%g
+s%@sbindir@%${exec_prefix}/sbin%g
+s%@libexecdir@%${exec_prefix}/libexec%g
+s%@datadir@%${prefix}/share%g
+s%@sysconfdir@%${prefix}/etc%g
+s%@sharedstatedir@%${prefix}/com%g
+s%@localstatedir@%${prefix}/var%g
+s%@libdir@%${exec_prefix}/lib%g
+s%@includedir@%${prefix}/include%g
+s%@oldincludedir@%/usr/include%g
+s%@infodir@%${prefix}/info%g
+s%@mandir@%${prefix}/man%g
+s%@CC@%gcc%g
+s%@INSTALL_PROGRAM@%${INSTALL}%g
+s%@INSTALL_DATA@%${INSTALL} -m 644%g
+s%@CPP@%gcc -E%g
+
+CEOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+
+CONFIG_FILES=${CONFIG_FILES-"makefile"}
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='\([ ]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+ CONFIG_HEADERS="config.h:config.hin"
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ echo creating $ac_file
+
+ rm -f conftest.frag conftest.in conftest.out
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ cat $ac_file_inputs > conftest.in
+
+ cat > conftest.frag <<CEOF
+${ac_dA}RETSIGTYPE${ac_dB}RETSIGTYPE${ac_dC}void${ac_dD}
+${ac_uA}RETSIGTYPE${ac_uB}RETSIGTYPE${ac_uC}void${ac_uD}
+${ac_eA}RETSIGTYPE${ac_eB}RETSIGTYPE${ac_eC}void${ac_eD}
+${ac_dA}STDC_HEADERS${ac_dB}STDC_HEADERS${ac_dC}1${ac_dD}
+${ac_uA}STDC_HEADERS${ac_uB}STDC_HEADERS${ac_uC}1${ac_uD}
+${ac_eA}STDC_HEADERS${ac_eB}STDC_HEADERS${ac_eC}1${ac_eD}
+${ac_dA}HAVE_FCNTL_H${ac_dB}HAVE_FCNTL_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_FCNTL_H${ac_uB}HAVE_FCNTL_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_FCNTL_H${ac_eB}HAVE_FCNTL_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SGTTY_H${ac_dB}HAVE_SGTTY_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SGTTY_H${ac_uB}HAVE_SGTTY_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SGTTY_H${ac_eB}HAVE_SGTTY_H${ac_eC}1${ac_eD}
+CEOF
+ sed -f conftest.frag conftest.in > conftest.out
+ rm -f conftest.in
+ mv conftest.out conftest.in
+
+ cat > conftest.frag <<CEOF
+${ac_dA}HAVE_STDLIB_H${ac_dB}HAVE_STDLIB_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_STDLIB_H${ac_uB}HAVE_STDLIB_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_STDLIB_H${ac_eB}HAVE_STDLIB_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_STRING_H${ac_dB}HAVE_STRING_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_STRING_H${ac_uB}HAVE_STRING_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_STRING_H${ac_eB}HAVE_STRING_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_SYS_IOCTL_H${ac_dB}HAVE_SYS_IOCTL_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_SYS_IOCTL_H${ac_uB}HAVE_SYS_IOCTL_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_SYS_IOCTL_H${ac_eB}HAVE_SYS_IOCTL_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_TERMIO_H${ac_dB}HAVE_TERMIO_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_TERMIO_H${ac_uB}HAVE_TERMIO_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_TERMIO_H${ac_eB}HAVE_TERMIO_H${ac_eC}1${ac_eD}
+CEOF
+ sed -f conftest.frag conftest.in > conftest.out
+ rm -f conftest.in
+ mv conftest.out conftest.in
+
+ cat > conftest.frag <<CEOF
+${ac_dA}HAVE_TERMIOS_H${ac_dB}HAVE_TERMIOS_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_TERMIOS_H${ac_uB}HAVE_TERMIOS_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_TERMIOS_H${ac_eB}HAVE_TERMIOS_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_UNISTD_H${ac_dB}HAVE_UNISTD_H${ac_dC}1${ac_dD}
+${ac_uA}HAVE_UNISTD_H${ac_uB}HAVE_UNISTD_H${ac_uC}1${ac_uD}
+${ac_eA}HAVE_UNISTD_H${ac_eB}HAVE_UNISTD_H${ac_eC}1${ac_eD}
+${ac_dA}HAVE_ALARM${ac_dB}HAVE_ALARM${ac_dC}1${ac_dD}
+${ac_uA}HAVE_ALARM${ac_uB}HAVE_ALARM${ac_uC}1${ac_uD}
+${ac_eA}HAVE_ALARM${ac_eB}HAVE_ALARM${ac_eC}1${ac_eD}
+${ac_dA}HAVE_TCGETATTR${ac_dB}HAVE_TCGETATTR${ac_dC}1${ac_dD}
+${ac_uA}HAVE_TCGETATTR${ac_uB}HAVE_TCGETATTR${ac_uC}1${ac_uD}
+${ac_eA}HAVE_TCGETATTR${ac_eB}HAVE_TCGETATTR${ac_eC}1${ac_eD}
+CEOF
+ sed -f conftest.frag conftest.in > conftest.out
+ rm -f conftest.in
+ mv conftest.out conftest.in
+
+ cat > conftest.frag <<CEOF
+${ac_dA}HAVE_USLEEP${ac_dB}HAVE_USLEEP${ac_dC}1${ac_dD}
+${ac_uA}HAVE_USLEEP${ac_uB}HAVE_USLEEP${ac_uC}1${ac_uD}
+${ac_eA}HAVE_USLEEP${ac_eB}HAVE_USLEEP${ac_eC}1${ac_eD}
+${ac_dA}HAVE_POSIX_VDISABLE${ac_dB}HAVE_POSIX_VDISABLE${ac_dC}1${ac_dD}
+${ac_uA}HAVE_POSIX_VDISABLE${ac_uB}HAVE_POSIX_VDISABLE${ac_uC}1${ac_uD}
+${ac_eA}HAVE_POSIX_VDISABLE${ac_eB}HAVE_POSIX_VDISABLE${ac_eC}1${ac_eD}
+s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+CEOF
+ sed -f conftest.frag conftest.in > conftest.out
+ rm -f conftest.in
+ mv conftest.out conftest.in
+
+ rm -f conftest.frag conftest.h
+ echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
+ cat conftest.in >> conftest.h
+ rm -f conftest.in
+ if cmp -s $ac_file conftest.h 2>/dev/null; then
+ echo "$ac_file is unchanged"
+ rm -f conftest.h
+ else
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ fi
+ rm -f $ac_file
+ mv conftest.h $ac_file
+ fi
+fi; done
+
+
+
+exit 0
diff --git a/doc/vttest-20011130/configure b/doc/vttest-20011130/configure
new file mode 100755
index 0000000..7c565e2
--- /dev/null
+++ b/doc/vttest-20011130/configure
@@ -0,0 +1,1625 @@
+#! /bin/sh
+
+# From configure.in Revision: 1.10
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.12.970309
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+ --with-warnings use gcc warnings (used for developing this tool)"
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval "$ac_prev=\$ac_option"
+ ac_prev=
+ continue
+ fi
+
+ case "$ac_option" in
+ -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) ac_optarg= ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case "$ac_option" in
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir="$ac_optarg" ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build="$ac_optarg" ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file="$ac_optarg" ;;
+
+ -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+ | --da=*)
+ datadir="$ac_optarg" ;;
+
+ -disable-* | --disable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ eval "enable_${ac_feature}=no" ;;
+
+ -enable-* | --enable-*)
+ ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+ fi
+ ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix="$ac_optarg" ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he)
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+ --cache-file=FILE cache test results in FILE
+ --help print this message
+ --no-create do not create output files
+ --quiet, --silent do not print \`checking...' messages
+ --version print the version of autoconf that created configure
+Directory and file names:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [same as prefix]
+ --bindir=DIR user executables in DIR [EPREFIX/bin]
+ --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
+ --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
+ --datadir=DIR read-only architecture-independent data in DIR
+ [PREFIX/share]
+ --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data in DIR
+ [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
+ --libdir=DIR object code libraries in DIR [EPREFIX/lib]
+ --includedir=DIR C header files in DIR [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
+ --infodir=DIR info documentation in DIR [PREFIX/info]
+ --mandir=DIR man documentation in DIR [PREFIX/man]
+ --srcdir=DIR find the sources in DIR [configure dir or ..]
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM
+ run sed PROGRAM on installed program names
+EOF
+ cat << EOF
+Host type:
+ --build=BUILD configure for building on BUILD [BUILD=HOST]
+ --host=HOST configure for HOST [guessed]
+ --target=TARGET configure for TARGET [TARGET=HOST]
+Features and packages:
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --x-includes=DIR X include files are in DIR
+ --x-libraries=DIR X library files are in DIR
+EOF
+ if test -n "$ac_help"; then
+ echo "--enable and --with options recognized:$ac_help"
+ fi
+ exit 0 ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host="$ac_optarg" ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir="$ac_optarg" ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir="$ac_optarg" ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir="$ac_optarg" ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir="$ac_optarg" ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst \
+ | --locals | --local | --loca | --loc | --lo)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+ localstatedir="$ac_optarg" ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir="$ac_optarg" ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir="$ac_optarg" ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix="$ac_optarg" ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix="$ac_optarg" ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix="$ac_optarg" ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name="$ac_optarg" ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir="$ac_optarg" ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir="$ac_optarg" ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site="$ac_optarg" ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir="$ac_optarg" ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir="$ac_optarg" ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target="$ac_optarg" ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers)
+ echo "configure generated by autoconf version 2.12.970309"
+ exit 0 ;;
+
+ -with-* | --with-*)
+ ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ case "$ac_option" in
+ *=*) ;;
+ *) ac_optarg=yes ;;
+ esac
+ eval "with_${ac_package}='$ac_optarg'" ;;
+
+ -without-* | --without-*)
+ ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+ # Reject names that are not valid shell variable names.
+ if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+ { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+ fi
+ ac_package=`echo $ac_package| sed 's/-/_/g'`
+ eval "with_${ac_package}=no" ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes="$ac_optarg" ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries="$ac_optarg" ;;
+
+ -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+ ;;
+
+ *)
+ if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+ echo "configure: warning: $ac_option: invalid host type" 1>&2
+ fi
+ if test "x$nonopt" != xNONE; then
+ { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+ fi
+ nonopt="$ac_option"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+ exec 6>/dev/null
+else
+ exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+ case "$ac_arg" in
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c) ;;
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+ ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+ *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+ esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set. These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}" = set; then LANG=C; export LANG; fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=esc.c
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then its parent.
+ ac_prog=$0
+ ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+ test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+ srcdir=$ac_confdir
+ if test ! -r $srcdir/$ac_unique_file; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+ if test "$ac_srcdir_defaulted" = yes; then
+ { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+ else
+ { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+ fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+ if test "x$prefix" != xNONE; then
+ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+ else
+ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+ fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+ if test -r "$ac_site_file"; then
+ echo "loading site script $ac_site_file"
+ . "$ac_site_file"
+ fi
+done
+
+if test -r "$cache_file"; then
+ echo "loading cache $cache_file"
+ . $cache_file
+else
+ echo "creating cache $cache_file"
+ > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+ # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+ if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+ ac_n= ac_c='
+' ac_t=' '
+ else
+ ac_n=-n ac_c= ac_t=
+ fi
+else
+ ac_n= ac_c='\c' ac_t=
+fi
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:529: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ ac_cv_prog_CC="gcc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:558: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+ ac_prog_rejected=no
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/$ac_word; then
+ if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ break
+ fi
+ done
+ IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# -gt 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ set dummy "$ac_dir/$ac_word" "$@"
+ shift
+ ac_cv_prog_CC="$@"
+ fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+ echo "$ac_t""$CC" 1>&6
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:606: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext <<EOF
+#line 616 "configure"
+#include "confdefs.h"
+main(){return(0);}
+EOF
+if { (eval echo configure:620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+ ac_cv_prog_cc_cross=no
+ else
+ ac_cv_prog_cc_cross=yes
+ fi
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_prog_cc_works=no
+fi
+rm -fr conftest*
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:640: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:645: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:654: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+else
+ ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ GCC=yes
+ ac_test_CFLAGS="${CFLAGS+set}"
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=
+ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:669: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+ ac_cv_prog_cc_g=yes
+else
+ ac_cv_prog_cc_g=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+ elif test $ac_cv_prog_cc_g = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-O2"
+ fi
+else
+ GCC=
+ test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:726: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="${IFS}:"
+ for ac_dir in $PATH; do
+ # Account for people who put trailing slashes in PATH elements.
+ case "$ac_dir/" in
+ /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ for ac_prog in ginstall installbsd scoinst install; do
+ if test -f $ac_dir/$ac_prog; then
+ if test $ac_prog = install &&
+ grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ # OSF/1 installbsd also uses dspmsg, but is usable.
+ :
+ else
+ ac_cv_path_install="$ac_dir/$ac_prog -c"
+ break 2
+ fi
+ fi
+ done
+ ;;
+ esac
+ done
+ IFS="$ac_save_IFS"
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL="$ac_cv_path_install"
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL="$ac_install_sh"
+ fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:776: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ # This must be in double quotes, not single quotes, because CPP may get
+ # substituted into the Makefile and "${CC-cc}" will confuse make.
+ CPP="${CC-cc} -E"
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+#line 791 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:797: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+#line 808 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:814: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+ :
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+ ac_cv_prog_CPP="$CPP"
+fi
+ CPP="$ac_cv_prog_CPP"
+else
+ ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+ echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
+echo "configure:838: checking whether ${CC-cc} needs -traditional" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_pattern="Autoconf.*'x'"
+ cat > conftest.$ac_ext <<EOF
+#line 844 "configure"
+#include "confdefs.h"
+#include <sgtty.h>
+Autoconf TIOCGETP
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "$ac_pattern" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_prog_gcc_traditional=yes
+else
+ rm -rf conftest*
+ ac_cv_prog_gcc_traditional=no
+fi
+rm -f conftest*
+
+
+ if test $ac_cv_prog_gcc_traditional = no; then
+ cat > conftest.$ac_ext <<EOF
+#line 862 "configure"
+#include "confdefs.h"
+#include <termio.h>
+Autoconf TCGETA
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "$ac_pattern" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_prog_gcc_traditional=yes
+fi
+rm -f conftest*
+
+ fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
+ if test $ac_cv_prog_gcc_traditional = yes; then
+ CC="$CC -traditional"
+ fi
+fi
+
+
+### use option -with-warnings to turn on all gcc warnings
+if test -n "$GCC"
+then
+# Check whether --with-warnings or --without-warnings was given.
+if test "${with_warnings+set}" = set; then
+ withval="$with_warnings"
+ CFLAGS="$CFLAGS -Wall -Wshadow -Wconversion -Wstrict-prototypes -Wmissing-prototypes"
+fi
+
+fi
+
+### extra things that we'll substitute in the makefile
+echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
+echo "configure:897: checking return type of signal handlers" >&5
+if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 902 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <signal.h>
+#ifdef signal
+#undef signal
+#endif
+#ifdef __cplusplus
+extern "C" void (*signal (int, void (*)(int)))(int);
+#else
+void (*signal ()) ();
+#endif
+
+int main() {
+int i;
+; return 0; }
+EOF
+if { (eval echo configure:919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_type_signal=void
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_type_signal=int
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_type_signal" 1>&6
+cat >> confdefs.h <<EOF
+#define RETSIGTYPE $ac_cv_type_signal
+EOF
+
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:938: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 943 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:951: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ ac_cv_header_stdc=yes
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 968 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "memchr" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 986 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "free" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+ :
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1007 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:1018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+ cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+for ac_hdr in \
+fcntl.h \
+ioctl.h \
+sgtty.h \
+stdlib.h \
+string.h \
+sys/filio.h \
+sys/ioctl.h \
+termio.h \
+termios.h \
+unistd.h \
+
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:1056: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1061 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1066: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+for ac_func in \
+alarm \
+rdchk \
+tcgetattr \
+usleep \
+
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:1101: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1106 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+### special configuration tests
+
+echo $ac_n "checking if POSIX VDISABLE symbol should be used""... $ac_c" 1>&6
+echo "configure:1157: checking if POSIX VDISABLE symbol should be used" >&5
+if eval "test \"`echo '$''{'cf_cv_posix_vdisable'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ if test "$cross_compiling" = yes; then
+ cat > conftest.$ac_ext <<EOF
+#line 1164 "configure"
+#include "confdefs.h"
+
+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
+#include <termios.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+int main() {
+
+#if defined(_POSIX_VDISABLE) && (_POSIX_VDISABLE != -1)
+int temp = _POSIX_VDISABLE;
+#else
+this did not work
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1182: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ cf_cv_posix_vdisable=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ cf_cv_posix_vdisable=no
+fi
+rm -f conftest*
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1194 "configure"
+#include "confdefs.h"
+
+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
+#include <termios.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if defined(_POSIX_VDISABLE)
+int main() { exit(_POSIX_VDISABLE == -1); }
+#endif
+EOF
+if { (eval echo configure:1207: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+ cf_cv_posix_vdisable=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ cf_cv_posix_vdisable=no
+fi
+rm -fr conftest*
+fi
+
+
+fi
+
+echo "$ac_t""$cf_cv_posix_vdisable" 1>&6
+test $cf_cv_posix_vdisable = yes && cat >> confdefs.h <<\EOF
+#define HAVE_POSIX_VDISABLE 1
+EOF
+
+
+
+echo $ac_n "checking if we may use FIONREAD""... $ac_c" 1>&6
+echo "configure:1230: checking if we may use FIONREAD" >&5
+if eval "test \"`echo '$''{'cf_cv_use_fionread'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 1236 "configure"
+#include "confdefs.h"
+
+#if HAVE_SYS_FILIO_H
+# include <sys/filio.h> /* FIONREAD */
+#endif
+
+int main() {
+
+long l1;
+ioctl (0, FIONREAD, &l1);
+
+; return 0; }
+EOF
+if { (eval echo configure:1250: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ cf_cv_use_fionread=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ cf_cv_use_fionread=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$cf_cv_use_fionread" 1>&6
+test $cf_cv_use_fionread = yes && cat >> confdefs.h <<\EOF
+#define USE_FIONREAD 1
+EOF
+
+
+
+### debugging/testing
+
+### output makefile and config.h
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs. It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already. You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+ case `(ac_space=' '; set) 2>&1 | grep '^ac_space='` in
+ *ac_space=\ *)
+ # `set' does not quote correctly, so add quotes (double-quote substitution
+ # turns \\\\ into \\, and sed turns \\ into \).
+ sed -n \
+ -e "s/'/'\\\\''/g" \
+ -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+ ;;
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+ ;;
+ esac >> confcache
+if cmp -s $cache_file confcache; then
+ :
+else
+ if test -w $cache_file; then
+ echo "updating cache $cache_file"
+ cat confcache > $cache_file
+ else
+ echo "not updating unwritable cache $cache_file"
+ fi
+fi
+rm -f confcache
+
+trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
+fi
+
+trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+rm -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /bin/sh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+ case "\$ac_option" in
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+ exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+ -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+ echo "$CONFIG_STATUS generated by autoconf version 2.12.970309"
+ exit 0 ;;
+ -help | --help | --hel | --he | --h)
+ echo "\$ac_cs_usage"; exit 0 ;;
+ *) echo "\$ac_cs_usage"; exit 1 ;;
+ esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'rm -fr `echo "makefile config.h:config.hin" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@CC@%$CC%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@CPP@%$CPP%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+ if test $ac_beg -gt 1; then
+ sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+ else
+ sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+ fi
+ if test ! -s conftest.s$ac_file; then
+ ac_more_lines=false
+ rm -f conftest.s$ac_file
+ else
+ if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds="sed -f conftest.s$ac_file"
+ else
+ ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+ fi
+ ac_file=`expr $ac_file + 1`
+ ac_beg=$ac_end
+ ac_end=`expr $ac_end + $ac_max_sed_cmds`
+ fi
+done
+if test -z "$ac_sed_cmds"; then
+ ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"makefile"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+ # A "../" for each directory in $ac_dir_suffix.
+ ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+ else
+ ac_dir_suffix= ac_dots=
+ fi
+
+ case "$ac_given_srcdir" in
+ .) srcdir=.
+ if test -z "$ac_dots"; then top_srcdir=.
+ else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+ /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+ *) # Relative path.
+ srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+ top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ case "$ac_given_INSTALL" in
+ [/$]*) INSTALL="$ac_given_INSTALL" ;;
+ *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+ esac
+
+ echo creating "$ac_file"
+ rm -f "$ac_file"
+ configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+ case "$ac_file" in
+ *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+ *) ac_comsub= ;;
+ esac
+
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+rm -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uB='\([ ]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+ CONFIG_HEADERS="config.h:config.hin"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+ case "$ac_file" in
+ *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+ ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ *) ac_file_in="${ac_file}.in" ;;
+ esac
+
+ echo creating $ac_file
+
+ rm -f conftest.frag conftest.in conftest.out
+ ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+ cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h. And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+rm -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+rm -f conftest.hdr
+
+# This sed command replaces #undef with comments. This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+rm -f conftest.tail
+while :
+do
+ ac_lines=`grep -c . conftest.vals`
+ # grep -c gives empty output for an empty file on some AIX systems.
+ if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+ # Write a limited-size here document to conftest.frag.
+ echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+ sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+ echo 'CEOF
+ sed -f conftest.frag conftest.in > conftest.out
+ rm -f conftest.in
+ mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+ sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+ rm -f conftest.vals
+ mv conftest.tail conftest.vals
+done
+rm -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+ rm -f conftest.frag conftest.h
+ echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
+ cat conftest.in >> conftest.h
+ rm -f conftest.in
+ if cmp -s $ac_file conftest.h 2>/dev/null; then
+ echo "$ac_file is unchanged"
+ rm -f conftest.h
+ else
+ # Remove last slash and all that follows it. Not all systems have dirname.
+ ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+ if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+ # The file is in a subdirectory.
+ test ! -d "$ac_dir" && mkdir "$ac_dir"
+ fi
+ rm -f $ac_file
+ mv conftest.h $ac_file
+ fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+rm -fr confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
+
diff --git a/doc/vttest-20011130/configure.in b/doc/vttest-20011130/configure.in
new file mode 100644
index 0000000..b20093e
--- /dev/null
+++ b/doc/vttest-20011130/configure.in
@@ -0,0 +1,48 @@
+dnl Process this file with 'autoconf' to produce a 'configure' script
+dnl $Id$
+AC_REVISION($Revision$)
+AC_CONFIG_HEADER(config.h:config.hin)
+AC_INIT(esc.c)
+AC_PROG_CC
+AC_PROG_INSTALL
+AC_GCC_TRADITIONAL
+
+### use option -with-warnings to turn on all gcc warnings
+if test -n "$GCC"
+then
+AC_ARG_WITH(warnings,
+[ --with-warnings use gcc warnings (used for developing this tool)],
+[CFLAGS="$CFLAGS -Wall -Wshadow -Wconversion -Wstrict-prototypes -Wmissing-prototypes"])
+fi
+
+### extra things that we'll substitute in the makefile
+AC_TYPE_SIGNAL
+AC_STDC_HEADERS
+AC_HAVE_HEADERS( \
+fcntl.h \
+ioctl.h \
+sgtty.h \
+stdlib.h \
+string.h \
+sys/filio.h \
+sys/ioctl.h \
+termio.h \
+termios.h \
+unistd.h \
+)
+
+AC_HAVE_FUNCS( \
+alarm \
+rdchk \
+tcgetattr \
+usleep \
+)
+
+### special configuration tests
+CF_POSIX_VDISABLE
+CF_FCNTL_VS_IOCTL
+
+### debugging/testing
+
+### output makefile and config.h
+AC_OUTPUT(makefile)
diff --git a/doc/vttest-20011130/descrip.mms b/doc/vttest-20011130/descrip.mms
new file mode 100644
index 0000000..64e1b1e
--- /dev/null
+++ b/doc/vttest-20011130/descrip.mms
@@ -0,0 +1,94 @@
+# $Id$
+# VAX/VMS "mms" script for VTTEST
+
+THIS = vttest
+
+#### Start of system configuration section. ####
+
+DEFINES = /Define=(STDC_HEADERS,RELEASE=2)
+CFLAGS = /Listing /Include=([]) $(DEFINES)
+
+#### End of system configuration section. ####
+
+C_SRC = \
+ charsets.c \
+ color.c \
+ esc.c \
+ keyboard.c \
+ main.c \
+ mouse.c \
+ nonvt100.c \
+ printer.c \
+ reports.c \
+ reset.c \
+ setup.c \
+ sixel.c \
+ status.c \
+ ttymodes.c \
+ vt220.c \
+ vt420.c \
+ vt52.c \
+ unix_io.c \
+ vms_io.c \
+ xterm.c
+H_SRC = \
+ vttest.h \
+ esc.h \
+ ttymodes.h
+OBJS = \
+ charsets.obj, \
+ color.obj, \
+ esc.obj, \
+ keyboard.obj, \
+ main.obj, \
+ mouse.obj, \
+ nonvt100.obj, \
+ printer.obj, \
+ reports.obj, \
+ reset.obj, \
+ setup.obj, \
+ sixel.obj, \
+ status.obj, \
+ vt220.obj, \
+ vt420.obj, \
+ vt52.obj, \
+ vms_io.obj, \
+ xterm.obj
+
+SRC = patchlev.h \
+ CHANGES COPYING README BUGS \
+ $(THIS).lsm $(THIS).1 \
+ $(C_SRC) $(H_SRC) \
+ config.hin install.sh mkdirs.sh makefile.in configure.in
+
+all : $(THIS).exe
+ @ write sys$output "** produced $?"
+
+$(THIS).exe : $(OBJS)
+ $(LINK)/exec=$(THIS) $(OBJS),sys$library:vaxcrtl/lib
+
+$(THIS).com :
+ if "''f$search("vttest.com")'" .nes. "" then delete vttest.com;*
+ copy nl: vttest.com
+ open/append test_script vttest.com
+ write test_script "$ temp = f$environment(""procedure"")"
+ write test_script "$ temp = temp -"
+ write test_script " - f$parse(temp,,,""version"",""syntax_only"") -"
+ write test_script " - f$parse(temp,,,""type"",""syntax_only"")"
+ write test_script "$ vttest :== $ 'temp'.exe"
+ write test_script "$ define/user_mode sys$input sys$command"
+ write test_script "$ define/user_mode sys$output sys$command"
+ write test_script "$ vttest 'p1 'p2 'p3 'p4 'p5 'p6 'p7 'p8"
+ close test_script
+ write sys$output "** made vttest.com"
+
+clean :
+ - if f$search("*.obj").nes."" then dele/nolog *.obj;*
+ - if f$search("*.lis").nes."" then dele/nolog *.lis;*
+ - if f$search("*.log").nes."" then dele/nolog *.log;*
+ - if f$search("*.map").nes."" then dele/nolog *.map;*
+
+clobber : clean
+ - if f$search("$(THIS).exe").nes."" then dele/nolog $(THIS).exe;*
+
+$(OBJS) : vttest.h
diff --git a/doc/vttest-20011130/esc.c b/doc/vttest-20011130/esc.c
new file mode 100644
index 0000000..c8c2eeb
--- /dev/null
+++ b/doc/vttest-20011130/esc.c
@@ -0,0 +1,968 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <esc.h>
+
+/* FIXME: for Solaris 2.5, which is broken */
+#define FLUSH fflush(stdout)
+
+static int soft_scroll;
+
+/******************************************************************************/
+
+static char csi_7[] = { ESC, '[', 0 };
+static unsigned char csi_8[] = { 0x9b, 0 };
+
+char *
+csi_input(void)
+{
+ return input_8bits ? (char *)csi_8 : csi_7;
+}
+
+char *
+csi_output(void)
+{
+ return output_8bits ? (char *)csi_8 : csi_7;
+}
+
+/******************************************************************************/
+
+static char dcs_7[] = { ESC, 'P', 0 };
+static unsigned char dcs_8[] = { 0x90, 0 };
+
+char *
+dcs_input(void)
+{
+ return input_8bits ? (char *)dcs_8 : dcs_7;
+}
+
+char *
+dcs_output(void)
+{
+ return output_8bits ? (char *)dcs_8 : dcs_7;
+}
+
+/******************************************************************************/
+
+static char osc_7[] = { ESC, ']', 0 };
+static unsigned char osc_8[] = { 0x9d, 0 };
+
+char *
+osc_input(void)
+{
+ return input_8bits ? (char *)osc_8 : osc_7;
+}
+
+char *
+osc_output(void)
+{
+ return output_8bits ? (char *)osc_8 : osc_7;
+}
+
+/******************************************************************************/
+
+static char ss3_7[] = { ESC, 'O', 0 };
+static unsigned char ss3_8[] = { 0x8f, 0 };
+
+char *
+ss3_input(void)
+{
+ return input_8bits ? (char *)ss3_8 : ss3_7;
+}
+
+char *
+ss3_output(void)
+{
+ return output_8bits ? (char *)ss3_8 : ss3_7;
+}
+
+/******************************************************************************/
+
+static char st_7[] = { ESC, '\\', 0 };
+static unsigned char st_8[] = { 0x9c, 0 };
+
+char *
+st_input(void)
+{
+ return input_8bits ? (char *)st_8 : st_7;
+}
+
+char *
+st_output(void)
+{
+ return output_8bits ? (char *)st_8 : st_7;
+}
+
+/******************************************************************************/
+
+/*
+ * The actual number of nulls for padding is an estimate; it's working at
+ * 9600bd.
+ */
+void
+padding(int msecs)
+{
+ if (use_padding) {
+ int count = (3 * msecs * tty_speed + DEFAULT_SPEED - 1) / DEFAULT_SPEED;
+ while (count-- > 0)
+ putchar(0);
+ }
+}
+
+void
+extra_padding(int msecs)
+{
+ if (use_padding)
+ padding (soft_scroll ? (msecs * 4) : msecs);
+}
+
+void
+println(char *s)
+{
+ printf("%s\r\n", s);
+}
+
+void
+put_char(FILE *fp, int c)
+{
+ if (fp == stdout)
+ putchar(c);
+ else {
+ c &= 0xff;
+ if (c <= ' ' || c >= '\177')
+ fprintf(fp, "<%d> ", c);
+ else
+ fprintf(fp, "%c ", c);
+ }
+}
+
+void
+put_string(FILE *fp, char *s)
+{
+ while (*s != '\0')
+ put_char(fp, *s++);
+}
+
+static void
+va_out(FILE *fp, va_list ap, char *fmt)
+{
+ char temp[10];
+
+ while (*fmt != '\0') {
+ if (*fmt == '%') {
+ switch(*++fmt) {
+ case 'c':
+ put_char(fp, va_arg(ap, int));
+ break;
+ case 'd':
+ sprintf(temp, "%d", va_arg(ap, int));
+ put_string(fp, temp);
+ break;
+ case 's':
+ put_string(fp, va_arg(ap, char *));
+ break;
+ }
+ } else {
+ put_char(fp, *fmt);
+ }
+ fmt++;
+ }
+}
+
+/* CSI xxx */
+void
+do_csi(char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ fputs(csi_output(), stdout);
+ va_out(stdout, ap, fmt);
+ va_end(ap);
+ FLUSH;
+
+ if (LOG_ENABLED) {
+ fputs("Send: ", log_fp);
+ put_string(log_fp, csi_output());
+ va_start(ap, fmt);
+ va_out(log_fp, ap, fmt);
+ va_end(ap);
+ fputs("\n", log_fp);
+ }
+}
+
+/* DCS xxx ST */
+void
+do_dcs(char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ fputs(dcs_output(), stdout);
+ va_out(stdout, ap, fmt);
+ va_end(ap);
+ fputs(st_output(), stdout);
+ FLUSH;
+
+ if (LOG_ENABLED) {
+ va_start(ap, fmt);
+ fputs("Send: ", log_fp);
+ put_string(log_fp, dcs_output());
+ va_out(log_fp, ap, fmt);
+ va_end(ap);
+ put_string(log_fp, st_output());
+ fputs("\n", log_fp);
+ }
+}
+
+/* DCS xxx ST */
+void
+do_osc(char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ fputs(osc_output(), stdout);
+ va_out(stdout, ap, fmt);
+ va_end(ap);
+ fputs(st_output(), stdout);
+ FLUSH;
+
+ if (LOG_ENABLED) {
+ va_start(ap, fmt);
+ fputs("Send: ", log_fp);
+ put_string(log_fp, osc_output());
+ va_out(log_fp, ap, fmt);
+ va_end(ap);
+ put_string(log_fp, st_output());
+ fputs("\n", log_fp);
+ }
+}
+
+void
+esc(char *s)
+{
+ printf("%c%s", ESC, s);
+
+ if (LOG_ENABLED) {
+ fprintf(log_fp, "Send: ");
+ put_char(log_fp, ESC);
+ put_string(log_fp, s);
+ fputs("\n", log_fp);
+ }
+}
+
+void
+brc(int pn, int c)
+{
+ do_csi("%d%c", pn, c);
+}
+
+void
+brc2(int pn1, int pn2, int c)
+{
+ do_csi("%d;%d%c", pn1, pn2, c);
+}
+
+void
+brc3(int pn1, int pn2, int pn3, int c)
+{
+ do_csi("%d;%d;%d%c", pn1, pn2, pn3, c);
+}
+
+/******************************************************************************/
+
+void
+cbt(int pn) /* Cursor Back Tab */
+{
+ brc(pn, 'Z');
+}
+
+void
+cha(int pn) /* Cursor Character Absolute */
+{
+ brc(pn, 'G');
+}
+
+void
+cht(int pn) /* Cursor Forward Tabulation */
+{
+ brc(pn, 'I');
+}
+
+void
+cnl(int pn) /* Cursor Next Line */
+{
+ brc(pn,'E');
+}
+
+void
+cpl(int pn) /* Cursor Previous Line */
+{
+ brc(pn,'F');
+}
+
+void
+cub(int pn) /* Cursor Backward */
+{
+ brc(pn,'D');
+ padding(2);
+}
+
+void
+cud(int pn) /* Cursor Down */
+{
+ brc(pn,'B');
+ extra_padding(2);
+}
+
+void
+cuf(int pn) /* Cursor Forward */
+{
+ brc(pn,'C');
+ padding(2);
+}
+
+void
+cup(int pn1, int pn2) /* Cursor Position */
+{
+ brc2(pn1, pn2, 'H');
+ padding(5); /* 10 for vt220 */
+}
+
+void
+cuu(int pn) /* Cursor Up */
+{
+ brc(pn,'A');
+ extra_padding(2);
+}
+
+void
+da(void) /* Device Attributes */
+{
+ brc(0,'c');
+}
+
+void
+decaln(void) /* Screen Alignment Display */
+{
+ esc("#8");
+}
+
+void
+decbi(void) /* VT400: Back Index */
+{
+ esc("6");
+ padding(40);
+}
+
+void
+decbkm(int flag) /* VT400: Backarrow key */
+{
+ if (flag)
+ sm("?67"); /* backspace */
+ else
+ rm("?67"); /* delete */
+}
+
+void
+deccara(int top, int left, int bottom, int right, int attr)
+{
+ do_csi("%d;%d;%d;%d;%d$r", top, left, bottom, right, attr);
+}
+
+void
+deccolm(int flag) /* 80/132 Columns */
+{
+ if (flag)
+ sm("?3"); /* 132 columns */
+ else
+ rm("?3"); /* 80 columns */
+}
+
+void
+deccra(int Pts, int Pl, int Pbs, int Prs, int Pps, int Ptd, int Pld, int Ppd)
+{
+ do_csi("%d;%d;%d;%d;%d;%d;%d;%d;$v",
+ Pts, /* top-line border */
+ Pl, /* left-line border */
+ Pbs, /* bottom-line border */
+ Prs, /* right-line border */
+ Pps, /* source page number */
+ Ptd, /* destination top-line border */
+ Pld, /* destination left-line border */
+ Ppd); /* destination page number */
+}
+
+void
+decdc(int pn) /* VT400 Delete Column */
+{
+ do_csi("%d'~", pn);
+ padding(10 * pn);
+}
+
+void
+decefr(int top, int left, int bottom, int right) /* DECterm Enable filter rectangle */
+{
+ do_csi("%d;%d;%d;%d'w", top, left, bottom, right);
+}
+
+void
+decelr(int all_or_one, int pixels_or_cells) /* DECterm Enable Locator Reporting */
+{
+ do_csi("%d;%d'z", all_or_one, pixels_or_cells);
+}
+
+void
+decera(int top, int left, int bottom, int right) /* VT400 Erase Rectangular area */
+{
+ do_csi("%d;%d;%d;%d$z", top, left, bottom, right);
+}
+
+void
+decdhl(int lower) /* Double Height Line (also double width) */
+{
+ if (lower) esc("#4");
+ else esc("#3");
+}
+
+void
+decdwl(void) /* Double Wide Line */
+{
+ esc("#6");
+}
+
+void
+decfi(void) /* VT400: Forward Index */
+{
+ esc("9");
+ padding(40);
+}
+
+void
+decfra(int c, int top, int left, int bottom, int right) /* VT400 Fill Rectangular area */
+{
+ do_csi("%d;%d;%d;%d;%d$x", c, top, left, bottom, right);
+}
+
+void
+decid(void) /* required for VT52, not recommended above VT100 */
+{
+ esc("Z"); /* Identify */
+}
+
+void
+decic(int pn) /* VT400 Insert Column */
+{
+ do_csi("%d'}", pn);
+ padding(10 * pn);
+}
+
+void
+deckbum(int flag) /* VT400: Keyboard Usage */
+{
+ if (flag)
+ sm("?68"); /* data processing */
+ else
+ rm("?68"); /* typewriter */
+}
+
+void
+deckpam(void) /* Keypad Application Mode */
+{
+ esc("=");
+}
+
+void
+deckpm(int flag) /* VT400: Keyboard Position */
+{
+ if (flag)
+ sm("?81"); /* position reports */
+ else
+ rm("?81"); /* character codes */
+}
+
+void
+deckpnm(void) /* Keypad Numeric Mode */
+{
+ esc(">");
+}
+
+void
+decll(char *ps) /* Load LEDs */
+{
+ do_csi("%sq", ps);
+}
+
+void
+decnkm(int flag) /* VT400: Numeric Keypad */
+{
+ if (flag)
+ sm("?66"); /* application */
+ else
+ rm("?66"); /* numeric */
+}
+
+void
+decpex(int flag) /* VT220: printer extent mode */
+{
+ if (flag)
+ sm("?19"); /* full screen (page) */
+ else
+ rm("?19"); /* scrolling region */
+}
+
+void
+decpff(int flag) /* VT220: print form feed mode */
+{
+ if (flag)
+ sm("?18"); /* form feed */
+ else
+ rm("?18"); /* no form feed */
+}
+
+void
+decnrcm(int flag) /* VT220: National replacement character set */
+{
+ if (flag)
+ sm("?42"); /* national */
+ else
+ rm("?42"); /* multinational */
+}
+
+void
+decrara(int top, int left, int bottom, int right, int attr)
+{
+ do_csi("%d;%d;%d;%d;%d$t", top, left, bottom, right, attr);
+}
+
+void
+decrc(void) /* Restore Cursor */
+{
+ esc("8");
+}
+
+void
+decreqtparm(int pn) /* Request Terminal Parameters */
+{
+ brc(pn,'x');
+}
+
+void
+decrqlp(int mode) /* DECterm Request Locator Position */
+{
+ do_csi("%d'|", mode);
+}
+
+void
+decrqss(char *pn) /* VT200 Request Status-String */
+{
+ do_dcs("$q%s", pn);
+}
+
+void
+decsace(int flag) /* VT400 Select attribute change extent */
+{
+ do_csi("%d*x", flag ? 2 : 0);
+}
+
+void
+decsasd(int pn) /* VT200 Select active status display */
+{
+ do_csi("%d$}", pn);
+}
+
+void
+decsc(void) /* Save Cursor */
+{
+ esc("7");
+}
+
+void
+decsca(int pn1) /* VT200 select character attribute (protect) */
+{
+ do_csi("%d\"q", pn1);
+}
+
+void
+decsclm(int flag) /* Scrolling mode (smooth/jump) */
+{
+ if (flag)
+ sm("?4"); /* smooth scrolling */
+ else
+ rm("?4"); /* jump-scrolling scrolling */
+ soft_scroll = flag;
+}
+
+void
+decscnm(int flag) /* Screen mode (inverse-video) */
+{
+ if (flag)
+ sm("?5"); /* inverse video */
+ else
+ rm("?5"); /* normal video */
+ padding(200);
+}
+
+void
+decsed(int pn1) /* VT200 selective erase in display */
+{
+ do_csi("?%dJ", pn1);
+}
+
+void
+decsel(int pn1) /* VT200 selective erase in line */
+{
+ do_csi("?%dK", pn1);
+}
+
+void
+decsera(int top, int left, int bottom, int right) /* VT400 Selective erase rectangular area */
+{
+ do_csi("%d;%d;%d;%d${", top, left, bottom, right);
+}
+
+void
+decsle(int mode) /* DECterm Select Locator Events */
+{
+ do_csi("%d'{", mode);
+}
+
+void
+decsnls(int pn) /* VT400 Select number of lines per screen */
+{
+ do_csi("%d*|", pn);
+}
+
+void
+decssdt(int pn) /* VT200 Select status line type */
+{
+ do_csi("%d$~", pn);
+}
+
+void
+decstbm(int pn1, int pn2) /* Set Top and Bottom Margins */
+{
+ if (pn1 || pn2) brc2(pn1, pn2, 'r');
+ else esc("[r");
+ /* Good for >24-line terminals */
+}
+
+void
+decstr(void) /* VT200 Soft terminal reset */
+{
+ do_csi("!p");
+}
+
+void
+decswl(void) /* Single Width Line */
+{
+ esc("#5");
+}
+
+void
+dectst(int pn) /* Invoke Confidence Test */
+{
+ brc2(2, pn, 'y');
+#ifdef UNIX
+ fflush(stdout);
+#endif
+}
+
+void
+dsr(int pn) /* Device Status Report */
+{
+ brc(pn, 'n');
+}
+
+void
+ed(int pn) /* Erase in Display */
+{
+ brc(pn, 'J');
+ padding(50);
+}
+
+void
+el(int pn) /* Erase in Line */
+{
+ brc(pn,'K');
+ padding(3); /* 4 for vt400 */
+}
+
+void
+ech(int pn) /* Erase character(s) */
+{
+ brc(pn,'X');
+}
+
+void
+hpa(int pn) /* Character Position Absolute */
+{
+ brc(pn, '`');
+}
+
+void
+hts(void) /* Horizontal Tabulation Set */
+{
+ esc("H");
+}
+
+void
+hvp(int pn1, int pn2) /* Horizontal and Vertical Position */
+{
+ brc2(pn1, pn2, 'f');
+}
+
+void
+ind(void) /* Index */
+{
+ esc("D");
+ padding(20); /* vt220 */
+}
+
+/* The functions beginning "mc_" are variations of Media Copy (MC) */
+
+void
+mc_autoprint(int flag) /* VT220: auto print mode */
+{
+ do_csi("?%di", flag ? 5 : 4);
+}
+
+void
+mc_printer_controller(int flag) /* VT220: printer controller mode */
+{
+ do_csi("%di", flag ? 5 : 4);
+}
+
+void
+mc_print_page(void) /* VT220: print page */
+{
+ do_csi("i");
+}
+
+void
+mc_print_composed(void) /* VT300: print composed main display */
+{
+ do_csi("?10i");
+}
+
+void
+mc_print_all_pages(void) /* VT300: print composed all pages */
+{
+ do_csi("?11i");
+}
+
+void
+mc_print_cursor_line(void) /* VT220: print cursor line */
+{
+ do_csi("?1i");
+}
+
+void
+mc_printer_start(int flag) /* VT300: start/stop printer-to-host session */
+{
+ do_csi("?%di", flag ? 9 : 8);
+}
+
+void
+mc_printer_assign(int flag) /* VT300: assign/release printer to active session */
+{
+ do_csi("?%di", flag ? 18 : 19);
+}
+
+void
+nel(void) /* Next Line */
+{
+ esc("E");
+}
+
+void
+rep(int pn) /* Repeat */
+{
+ do_csi("%db", pn);
+}
+
+void
+ri(void) /* Reverse Index */
+{
+ esc("M");
+ extra_padding(5); /* 14 on vt220 */
+}
+
+void
+ris(void) /* Reset to Initial State */
+{
+ esc("c");
+#ifdef UNIX
+ fflush(stdout);
+#endif
+}
+
+void
+rm(char *ps) /* Reset Mode */
+{
+ do_csi("%sl", ps);
+}
+
+void s8c1t(int flag) /* Tell terminal to respond with 7-bit or 8-bit controls */
+{
+ if ((input_8bits = flag) != FALSE)
+ esc(" G"); /* select 8-bit controls */
+ else
+ esc(" F"); /* select 7-bit controls */
+ fflush(stdout);
+ zleep(300);
+}
+
+void
+scs(int g, int c) /* Select character Set */
+{
+ printf("%c%c%c%c%c%c%c", ESC, g ? ')' : '(', c,
+ ESC, g ? '(' : ')', 'B',
+ g ? 14 : 15);
+ padding(4);
+}
+
+void
+sd(int pn) /* Scroll Down */
+{
+ brc(pn, 'T');
+}
+
+void
+sgr(char *ps) /* Select Graphic Rendition */
+{
+ do_csi("%sm", ps);
+ padding(2);
+}
+
+void
+sl(int pn) /* Scroll Left */
+{
+ do_csi("%d @", pn);
+}
+
+void
+sm(char *ps) /* Set Mode */
+{
+ do_csi("%sh", ps);
+}
+
+void
+sr(int pn) /* Scroll Right */
+{
+ do_csi("%d A", pn);
+}
+
+void
+srm(int flag) /* VT400: Send/Receive mode */
+{
+ if (flag)
+ sm("12"); /* local echo off */
+ else
+ rm("12"); /* local echo on */
+}
+
+void
+su(int pn) /* Scroll Up */
+{
+ brc(pn, 'S');
+ extra_padding(5);
+}
+
+void
+tbc(int pn) /* Tabulation Clear */
+{
+ brc(pn, 'g');
+}
+
+void
+dch(int pn) /* Delete character */
+{
+ brc(pn, 'P');
+}
+
+void
+ich(int pn) /* Insert character -- not in VT102 */
+{
+ brc(pn, '@');
+}
+
+void
+dl(int pn) /* Delete line */
+{
+ brc(pn, 'M');
+}
+
+void
+il(int pn) /* Insert line */
+{
+ brc(pn, 'L');
+}
+
+void
+vpa(int pn) /* Line Position Absolute */
+{
+ brc(pn, 'd');
+}
+
+void
+vt52cub1(void) /* cursor left */
+{
+ esc("D");
+ padding(5);
+}
+
+void
+vt52cud1(void) /* cursor down */
+{
+ esc("B");
+ padding(5);
+}
+
+void
+vt52cuf1(void) /* cursor right */
+{
+ esc("C");
+ padding(5);
+}
+
+void
+vt52cup(int l, int c) /* direct cursor address */
+{
+ printf("%cY%c%c", ESC, l + 31, c + 31);
+ padding(5);
+}
+
+void
+vt52cuu1(void) /* cursor up */
+{
+ esc("A");
+ padding(5);
+}
+
+void
+vt52ed(void) /* erase to end of screen */
+{
+ esc("J");
+ padding(5);
+}
+
+void
+vt52el(void) /* erase to end of line */
+{
+ esc("K");
+ padding(5);
+}
+
+void
+vt52home(void) /* cursor to home */
+{
+ esc("H");
+ padding(5);
+}
+
+void
+vt52ri(void) /* reverse line feed */
+{
+ esc("I");
+ padding(5);
+}
+
diff --git a/doc/vttest-20011130/esc.h b/doc/vttest-20011130/esc.h
new file mode 100644
index 0000000..71ddfb1
--- /dev/null
+++ b/doc/vttest-20011130/esc.h
@@ -0,0 +1,190 @@
+/* $Id$ */
+
+#ifndef ESC_H
+#define ESC_H 1
+
+#define BEL 0007
+#define ESC 0033
+#define CSI 0233
+#define SS3 0217
+#define DCS 0220
+#define ST 0234
+
+/* ANSI modes for DECRQM, DECRPM, SM and RM */
+#define GATM 1 /* guarded area transfer (disabled) */
+#define AM 2 /* keyboard action */
+#define CRM 3 /* control representation */
+#define IRM 4 /* insert/replace */
+#define SRTM 5 /* status reporting transfer (disabled) */
+#define VEM 7 /* vertical editing (disabled) */
+#define HEM 10 /* horizontal editing (disabled) */
+#define PUM 11 /* positioning unit (disabled) */
+#define SRM 12 /* send/receive */
+#define FEAM 13 /* format effector action (disabled) */
+#define FETM 14 /* format effector transfer (disabled) */
+#define MATM 15 /* multiple area transfer (disabled) */
+#define TTM 16 /* transfer termination (disabled) */
+#define SATM 17 /* selected area transfer (disabled) */
+#define TSM 18 /* tabulation stop (disabled) */
+#define EBM 19 /* editing boundary (disabled) */
+#define LNM 20 /* line feed/new line */
+
+/* DEC modes for DECRQM, DECRPM, SM and RM */
+#define DECCKM 1 /* cursor keys */
+#define DECANM 2 /* ANSI */
+#define DECCOLM 3 /* column */
+#define DECSCLM 4 /* scrolling */
+#define DECSCNM 5 /* screen */
+#define DECOM 6 /* origin */
+#define DECAWM 7 /* autowrap */
+#define DECARM 8 /* autorepeat */
+#define DECPFF 18 /* print form feed */
+#define DECPEX 19 /* printer extent */
+#define DECTCEM 25 /* text cursor enable */
+#define DECNRCM 42 /* national replacement character set */
+#define DECHCCM 60 /* horizontal cursor coupling */
+#define DECVCCM 61 /* vertical cursor coupling */
+#define DECPCCM 64 /* page cursor coupling */
+#define DECNKM 66 /* numeric keypad */
+#define DECBKM 67 /* backarrow key */
+#define DECKBUM 68 /* keyboard usage */
+#define DECVSSM 69 /* vertical split */
+#define DECXRLM 73 /* transmit rate linking */
+#define DECKPM 81 /* keyboard positioning */
+
+/* esc.c */
+char *csi_input(void);
+char *csi_output(void);
+char *dcs_input(void);
+char *dcs_output(void);
+char *get_reply(void);
+char *instr(void);
+char *osc_input(void);
+char *osc_output(void);
+char *ss3_input(void);
+char *ss3_output(void);
+char *st_input(void);
+char *st_output(void);
+char inchar(void);
+void brc(int pn, int c);
+void brc2(int pn1, int pn2, int c);
+void brc3(int pn1, int pn2, int pn3, int c);
+void cbt(int pn);
+void cha(int pn);
+void cht(int pn);
+void cnl(int pn);
+void cpl(int pn);
+void cub(int pn);
+void cud(int pn);
+void cuf(int pn);
+void cup(int pn1, int pn2);
+void cuu(int pn);
+void da(void);
+void dch(int pn);
+void decaln(void);
+void decbi(void);
+void decbkm(int flag);
+void deccara(int top, int left, int bottom, int right, int attr);
+void deccolm(int flag);
+void deccra(int Pts, int Pl, int Pbs, int Prs, int Pps, int Ptd, int Pld, int Ppd);
+void decdc(int pn);
+void decdhl(int lower);
+void decdwl(void);
+void decefr(int top, int left, int bottom, int right);
+void decelr(int all_or_one, int pixels_or_cells);
+void decera(int top, int left, int bottom, int right);
+void decfi(void);
+void decfra(int c, int top, int left, int bottom, int right);
+void decic(int pn);
+void decid(void);
+void deckbum(int flag);
+void deckpam(void);
+void deckpm(int flag);
+void deckpnm(void);
+void decll(char *ps);
+void decnkm(int flag);
+void decnrcm(int flag);
+void decpex(int flag);
+void decpff(int flag);
+void decrara(int top, int left, int bottom, int right, int attr);
+void decrc(void);
+void decreqtparm(int pn);
+void decrqlp(int mode);
+void decrqss(char *pn);
+void decsace(int flag);
+void decsasd(int pn);
+void decsc(void);
+void decsca(int pn1);
+void decsclm(int flag);
+void decscnm(int flag);
+void decsed(int pn1);
+void decsel(int pn1);
+void decsera(int top, int left, int bottom, int right);
+void decsle(int mode);
+void decsnls(int pn);
+void decssdt(int pn);
+void decstbm(int pn1, int pn2);
+void decstr(void);
+void decswl(void);
+void dectst(int pn);
+void dl(int pn);
+void do_csi(char *fmt, ...) GCC_PRINTFLIKE(1,2);
+void do_dcs(char *fmt, ...) GCC_PRINTFLIKE(1,2);
+void do_osc(char *fmt, ...) GCC_PRINTFLIKE(1,2);
+void dsr(int pn);
+void ech(int pn);
+void ed(int pn);
+void el(int pn);
+void esc(char *s);
+void extra_padding(int msecs);
+void holdit(void);
+void hpa(int pn);
+void hts(void);
+void hvp(int pn1, int pn2);
+void ich(int pn);
+void il(int pn);
+void ind(void);
+void inflush(void);
+void inputline(char *s);
+void mc_autoprint(int flag);
+void mc_print_all_pages(void);
+void mc_print_composed(void);
+void mc_print_cursor_line(void);
+void mc_print_page(void);
+void mc_printer_assign(int flag);
+void mc_printer_controller(int flag);
+void mc_printer_start(int flag);
+void nel(void);
+void padding(int msecs);
+void println(char *s);
+void put_char(FILE *fp, int c);
+void put_string(FILE *fp, char *s);
+void readnl(void);
+void rep(int pn);
+void reset_inchar(void);
+void ri(void);
+void ris(void);
+void rm(char *ps);
+void s8c1t(int flag);
+void scs(int g, int c);
+void sd(int pn);
+void sgr(char *ps);
+void sl(int pn);
+void sm(char *ps);
+void sr(int pn);
+void srm(int flag);
+void su(int pn);
+void tbc(int pn);
+void vpa(int pn);
+void vt52cub1(void);
+void vt52cud1(void);
+void vt52cuf1(void);
+void vt52cup(int l, int c);
+void vt52cuu1(void);
+void vt52ed(void);
+void vt52el(void);
+void vt52home(void);
+void vt52ri(void);
+void zleep(int t);
+
+#endif /* ESC_H */
diff --git a/doc/vttest-20011130/install.sh b/doc/vttest-20011130/install.sh
new file mode 100755
index 0000000..ab74c88
--- /dev/null
+++ b/doc/vttest-20011130/install.sh
@@ -0,0 +1,238 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+#
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+tranformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+ case $1 in
+ -c) instcmd="$cpprog"
+ shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd="$stripprog"
+ shift
+ continue;;
+
+ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+ shift
+ continue;;
+
+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+ shift
+ continue;;
+
+ *) if [ x"$src" = x ]
+ then
+ src=$1
+ else
+ # this colon is to work around a 386BSD /bin/sh bug
+ :
+ dst=$1
+ fi
+ shift
+ continue;;
+ esac
+done
+
+if [ x"$src" = x ]
+then
+ echo "install: no input file specified"
+ exit 1
+else
+ true
+fi
+
+if [ x"$dir_arg" != x ]; then
+ dst=$src
+ src=""
+
+ if [ -d $dst ]; then
+ instcmd=:
+ else
+ instcmd=mkdir
+ fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+ if [ -f $src -o -d $src ]
+ then
+ true
+ else
+ echo "install: $src does not exist"
+ exit 1
+ fi
+
+ if [ x"$dst" = x ]
+ then
+ echo "install: no destination specified"
+ exit 1
+ else
+ true
+ fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+ if [ -d $dst ]
+ then
+ dst="$dst"/`basename $src`
+ else
+ true
+ fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+# this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+ pathcomp="${pathcomp}${1}"
+ shift
+
+ if [ ! -d "${pathcomp}" ] ;
+ then
+ $mkdirprog "${pathcomp}"
+ else
+ true
+ fi
+
+ pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+ $doit $instcmd $dst &&
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+ if [ x"$transformarg" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ dstfile=`basename $dst $transformbasename |
+ sed $transformarg`$transformbasename
+ fi
+
+# don't allow the sed command to completely eliminate the filename
+
+ if [ x"$dstfile" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ true
+ fi
+
+# Make a temp file name in the proper directory.
+
+ dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+ $doit $instcmd $src $dsttmp &&
+
+ trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing. If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+ $doit $rmcmd -f $dstdir/$dstfile &&
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
+
+fi &&
+
+
+exit 0
diff --git a/doc/vttest-20011130/keyboard.c b/doc/vttest-20011130/keyboard.c
new file mode 100644
index 0000000..1f3c503
--- /dev/null
+++ b/doc/vttest-20011130/keyboard.c
@@ -0,0 +1,1080 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <ttymodes.h>
+#include <esc.h>
+
+/* Test of:
+ - DECLL (Load LEDs)
+ - Keyboard return messages
+ - SM RM (Set/Reset Mode) - Cursor Keys
+ - Auto repeat
+ - DECKPAM (Keypad Application Mode)
+ - DECKPNM (Keypad Numeric Mode)
+
+The standard VT100 keyboard layout:
+
+ UP DN LE RI
+
+ESC 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ `~ BS
+
+TAB* qQ wW eE rR tT yY uU iI oO pP [{ ]} DEL
+
+** ** aA sS dD fF gG hH jJ kK lL ;: ," RETN \|
+
+** **** zZ xX cC vV bB nN mM ,< .> /? **** LF
+
+ ****************SPACE BAR****************
+
+ PF1 PF2 PF3 PF4
+
+ *7* *8* *9* *-*
+
+ *4* *5* *6* *,*
+
+ *1* *2* *3*
+
+ ***0*** *.* ENT
+
+The standard LK401 (VT420) keyboard layout:
+
+F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 Help Do F17 F18 F19 F20
+
+ `~ 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ DEL
+
+TAB* qQ wW eE rR tT yY uU iI oO pP [{ ]} Return
+
+** ** aA sS dD fF gG hH jJ kK lL ;: ," \|
+
+***** <> zZ xX cC vV bB nN mM ,< .> /? ******
+
+***** ***** ****************SPACE BAR**************** ****** ******
+
+ Find Insert Remove PF1 PF2 PF3 PF4
+
+ Select Prev Next *7* *8* *9* *-*
+
+ Up *4* *5* *6* *,*
+
+ Left Down Right *1* *2* *3*
+
+ ***0*** *.* ENT
+*/
+
+static struct key {
+ char c;
+ int row;
+ int col;
+ char *symbol;
+} VT100_keytab [] = {
+ { ESC, 1, 0, "ESC" },
+ { '1', 1, 6, "1" }, { '!', 1, 7, "!" },
+ { '2', 1, 11, "2" }, { '@', 1, 12, "@" },
+ { '3', 1, 16, "3" }, { '#', 1, 17, "#" },
+ { '4', 1, 21, "4" }, { '$', 1, 22, "$" },
+ { '5', 1, 26, "5" }, { '%', 1, 27, "%" },
+ { '6', 1, 31, "6" }, { '^', 1, 32, "^" },
+ { '7', 1, 36, "7" }, { '&', 1, 37, "&" },
+ { '8', 1, 41, "8" }, { '*', 1, 42, "*" },
+ { '9', 1, 46, "9" }, { '(', 1, 47, "(" },
+ { '0', 1, 51, "0" }, { ')', 1, 52, ")" },
+ { '-', 1, 56, "-" }, { '_', 1, 57, "_" },
+ { '=', 1, 61, "=" }, { '+', 1, 62, "+" },
+ { '`', 1, 66, "`" }, { '~', 1, 67, "~" },
+ { 8, 1, 70, "BS" },
+ { 9, 2, 0, " TAB " },
+ { 'q', 2, 8, "q" }, { 'Q', 2, 9, "Q" },
+ { 'w', 2, 13, "w" }, { 'W', 2, 14, "W" },
+ { 'e', 2, 18, "e" }, { 'E', 2, 19, "E" },
+ { 'r', 2, 23, "r" }, { 'R', 2, 24, "R" },
+ { 't', 2, 28, "t" }, { 'T', 2, 29, "T" },
+ { 'y', 2, 33, "y" }, { 'Y', 2, 34, "Y" },
+ { 'u', 2, 38, "u" }, { 'U', 2, 39, "U" },
+ { 'i', 2, 43, "i" }, { 'I', 2, 44, "I" },
+ { 'o', 2, 48, "o" }, { 'O', 2, 49, "O" },
+ { 'p', 2, 53, "p" }, { 'P', 2, 54, "P" },
+ { '[', 2, 58, "[" }, { '{', 2, 59, "{" },
+ { ']', 2, 63, "]" }, { '}', 2, 64, "}" },
+ { 127, 2, 71, "DEL" },
+ { 'a', 3, 10, "a" }, { 'A', 3, 11, "A" },
+ { 's', 3, 15, "s" }, { 'S', 3, 16, "S" },
+ { 'd', 3, 20, "d" }, { 'D', 3, 21, "D" },
+ { 'f', 3, 25, "f" }, { 'F', 3, 26, "F" },
+ { 'g', 3, 30, "g" }, { 'G', 3, 31, "G" },
+ { 'h', 3, 35, "h" }, { 'H', 3, 36, "H" },
+ { 'j', 3, 40, "j" }, { 'J', 3, 41, "J" },
+ { 'k', 3, 45, "k" }, { 'K', 3, 46, "K" },
+ { 'l', 3, 50, "l" }, { 'L', 3, 51, "L" },
+ { ';', 3, 55, ";" }, { ':', 3, 56, ":" },
+ {'\'', 3, 60, "'" }, { '"', 3, 61,"\"" },
+ { 13, 3, 65, "RETN"},
+ {'\\', 3, 71,"\\" }, { '|', 3, 72, "|" },
+ { 'z', 4, 12, "z" }, { 'Z', 4, 13, "Z" },
+ { 'x', 4, 17, "x" }, { 'X', 4, 18, "X" },
+ { 'c', 4, 22, "c" }, { 'C', 4, 23, "C" },
+ { 'v', 4, 27, "v" }, { 'V', 4, 28, "V" },
+ { 'b', 4, 32, "b" }, { 'B', 4, 33, "B" },
+ { 'n', 4, 37, "n" }, { 'N', 4, 38, "N" },
+ { 'm', 4, 42, "m" }, { 'M', 4, 43, "M" },
+ { ',', 4, 47, "," }, { '<', 4, 48, "<" },
+ { '.', 4, 52, "." }, { '>', 4, 53, ">" },
+ { '/', 4, 57, "/" }, { '?', 4, 58, "?" },
+ { 10, 4, 69, "LF" },
+ { ' ', 5, 13, " SPACE BAR "},
+ {'\0', 0, 0, "" }
+ },
+ LK401_keytab [] = {
+ { '`', 1, 3, "`" }, { '~', 1, 4, "~" },
+ { '1', 1, 7, "1" }, { '!', 1, 8, "!" },
+ { '2', 1, 12, "2" }, { '@', 1, 13, "@" },
+ { '3', 1, 17, "3" }, { '#', 1, 18, "#" },
+ { '4', 1, 22, "4" }, { '$', 1, 23, "$" },
+ { '5', 1, 27, "5" }, { '%', 1, 28, "%" },
+ { '6', 1, 32, "6" }, { '^', 1, 33, "^" },
+ { '7', 1, 37, "7" }, { '&', 1, 38, "&" },
+ { '8', 1, 42, "8" }, { '*', 1, 43, "*" },
+ { '9', 1, 47, "9" }, { '(', 1, 48, "(" },
+ { '0', 1, 52, "0" }, { ')', 1, 53, ")" },
+ { '-', 1, 57, "-" }, { '_', 1, 58, "_" },
+ { '=', 1, 62, "=" }, { '+', 1, 63, "+" },
+ { 127, 1, 67, "DEL" },
+ { 9, 2, 0, "TAB " },
+ { 'q', 2, 9, "q" }, { 'Q', 2, 10, "Q" },
+ { 'w', 2, 14, "w" }, { 'W', 2, 15, "W" },
+ { 'e', 2, 19, "e" }, { 'E', 2, 20, "E" },
+ { 'r', 2, 24, "r" }, { 'R', 2, 25, "R" },
+ { 't', 2, 29, "t" }, { 'T', 2, 30, "T" },
+ { 'y', 2, 34, "y" }, { 'Y', 2, 35, "Y" },
+ { 'u', 2, 39, "u" }, { 'U', 2, 40, "U" },
+ { 'i', 2, 44, "i" }, { 'I', 2, 45, "I" },
+ { 'o', 2, 49, "o" }, { 'O', 2, 50, "O" },
+ { 'p', 2, 54, "p" }, { 'P', 2, 55, "P" },
+ { '[', 2, 59, "[" }, { '{', 2, 60, "{" },
+ { ']', 2, 64, "]" }, { '}', 2, 65, "}" },
+ { 13, 2, 69, "Return" },
+ { 'a', 3, 11, "a" }, { 'A', 3, 12, "A" },
+ { 's', 3, 16, "s" }, { 'S', 3, 17, "S" },
+ { 'd', 3, 21, "d" }, { 'D', 3, 22, "D" },
+ { 'f', 3, 26, "f" }, { 'F', 3, 27, "F" },
+ { 'g', 3, 31, "g" }, { 'G', 3, 32, "G" },
+ { 'h', 3, 36, "h" }, { 'H', 3, 37, "H" },
+ { 'j', 3, 41, "j" }, { 'J', 3, 42, "J" },
+ { 'k', 3, 46, "k" }, { 'K', 3, 47, "K" },
+ { 'l', 3, 51, "l" }, { 'L', 3, 52, "L" },
+ { ';', 3, 56, ";" }, { ':', 3, 57, ":" },
+ {'\'', 3, 61, "'" }, { '"', 3, 62,"\"" },
+ {'\\', 3, 66,"\\" }, { '|', 3, 67, "|" },
+ { '<', 4, 9, "<" }, { '>', 4, 10, ">" },
+ { 'z', 4, 13, "z" }, { 'Z', 4, 14, "Z" },
+ { 'x', 4, 18, "x" }, { 'X', 4, 19, "X" },
+ { 'c', 4, 23, "c" }, { 'C', 4, 24, "C" },
+ { 'v', 4, 28, "v" }, { 'V', 4, 29, "V" },
+ { 'b', 4, 33, "b" }, { 'B', 4, 34, "B" },
+ { 'n', 4, 38, "n" }, { 'N', 4, 39, "N" },
+ { 'm', 4, 43, "m" }, { 'M', 4, 44, "M" },
+ { ',', 4, 48, "," }, { '<', 4, 49, "<" },
+ { '.', 4, 53, "." }, { '>', 4, 54, ">" },
+ { '/', 4, 58, "/" }, { '?', 4, 59, "?" },
+ { ' ', 5, 14, " SPACE BAR "},
+ {'\0', 0, 0, "" }
+ },
+ *keytab;
+
+typedef struct {
+ unsigned char prefix;
+ char *msg;
+} CTLKEY;
+
+static struct curkey {
+ CTLKEY curkeymsg[3];
+ int curkeyrow;
+ int curkeycol;
+ char *curkeysymbol;
+ char *curkeyname;
+} VT100_curkeytab [] = {
+
+ /* A Reset, A Set, VT52 */
+
+ {{{CSI,"A"}, {SS3,"A"}, {ESC,"A"}}, 0, 56, "UP", "Up arrow" },
+ {{{CSI,"B"}, {SS3,"B"}, {ESC,"B"}}, 0, 61, "DN", "Down arrow" },
+ {{{CSI,"D"}, {SS3,"D"}, {ESC,"D"}}, 0, 66, "LT", "Left arrow" },
+ {{{CSI,"C"}, {SS3,"C"}, {ESC,"C"}}, 0, 71, "RT", "Right arrow"},
+ {{{0, ""}, {0, ""}, {0, "" }}, 0, 0, "", "" }
+ },
+ LK401_curkeytab [] = {
+
+ /* A Reset, A Set, VT52 */
+
+ {{{CSI,"A"}, {SS3,"A"}, {ESC,"A"}}, 8, 32, "Up", "Up arrow" },
+ {{{CSI,"B"}, {SS3,"B"}, {ESC,"B"}}, 9, 31, "Down", "Down arrow" },
+ {{{CSI,"D"}, {SS3,"D"}, {ESC,"D"}}, 9, 24, "Left", "Left arrow" },
+ {{{CSI,"C"}, {SS3,"C"}, {ESC,"C"}}, 9, 38, "Right", "Right arrow"},
+ {{{0, ""}, {0, ""}, {0, "" }}, 0, 0, "", "" }
+ },
+ *curkeytab;
+
+static struct fnckey {
+ CTLKEY fnkeymsg[2];
+ int fnkeyrow;
+ int fnkeycol;
+ char *fnkeysymbol;
+ char *fnkeyname;
+} fnkeytab [] = {
+
+ /* Normal, VT100/VT52 */
+ {{{CSI,"11~"}, {0,""}}, 0, 1, "F1", "F1 (xterm)" },
+ {{{CSI,"12~"}, {0,""}}, 0, 4, "F2", "F2 (xterm)" },
+ {{{CSI,"13~"}, {0,""}}, 0, 7, "F3", "F3 (xterm)" },
+ {{{CSI,"14~"}, {0,""}}, 0, 10, "F4", "F4 (xterm)" },
+ {{{CSI,"15~"}, {0,""}}, 0, 13, "F5", "F5 (xterm)" },
+
+ {{{CSI,"17~"}, {0,""}}, 0, 18, "F6", "F6" },
+ {{{CSI,"18~"}, {0,""}}, 0, 21, "F7", "F7" },
+ {{{CSI,"19~"}, {0,""}}, 0, 24, "F8", "F8" },
+ {{{CSI,"20~"}, {0,""}}, 0, 27, "F9", "F9" },
+ {{{CSI,"21~"}, {0,""}}, 0, 30, "F10", "F10" },
+ {{{CSI,"23~"}, {0,""}}, 0, 36, "F11", "F11" },
+ {{{CSI,"24~"}, {0,""}}, 0, 40, "F12", "F12" },
+ {{{CSI,"25~"}, {0,""}}, 0, 44, "F13", "F13" },
+ {{{CSI,"26~"}, {0,""}}, 0, 48, "F14", "F14" },
+ {{{CSI,"28~"}, {0,""}}, 0, 54, "Help", "Help (F15)" },
+ {{{CSI,"29~"}, {0,""}}, 0, 59, "Do", "Do (F16)" },
+ {{{CSI,"31~"}, {0,""}}, 0, 64, "F17", "F17" },
+ {{{CSI,"32~"}, {0,""}}, 0, 68, "F18", "F18" },
+ {{{CSI,"33~"}, {0,""}}, 0, 72, "F19", "F19" },
+ {{{CSI,"34~"}, {0,""}}, 0, 76, "F20", "F20" },
+ {{{0, ""}, {0,"" }}, 0, 0, "", "" }
+ },
+ edt_keypadtab[] = {
+ {{{CSI,"1~"}, {0,""}}, 6, 24, "Find" , "Find" },
+ {{{CSI,"2~"}, {0,""}}, 6, 30, "Insert", "Insert Here" },
+ {{{CSI,"3~"}, {0,""}}, 6, 37, "Remove", "Remove" },
+ {{{CSI,"4~"}, {0,""}}, 7, 23, "Select", "Select" },
+ {{{CSI,"5~"}, {0,""}}, 7, 31, "Prev", "Prev" },
+ {{{CSI,"6~"}, {0,""}}, 7, 38, "Next", "Next" },
+ {{{0, ""}, {0,""}}, 0, 0, "", "" }
+ };
+
+static struct fnkey {
+ CTLKEY fnkeymsg[4];
+ int fnkeyrow;
+ int fnkeycol;
+ char *fnkeysymbol;
+ char *fnkeyname;
+} num_keypadtab [] = {
+
+ /* ANSI-num, ANSI-app, VT52-nu, VT52-ap, r, c, symb name */
+
+ {{{SS3,"P"}, {SS3,"P"}, {ESC,"P"}, {ESC,"P" }}, 6, 59, "PF1", "PF1" },
+ {{{SS3,"Q"}, {SS3,"Q"}, {ESC,"Q"}, {ESC,"Q" }}, 6, 63, "PF2", "PF2" },
+ {{{SS3,"R"}, {SS3,"R"}, {ESC,"R"}, {ESC,"R" }}, 6, 67, "PF3", "PF3" },
+ {{{SS3,"S"}, {SS3,"S"}, {ESC,"S"}, {ESC,"S" }}, 6, 71, "PF4", "PF4" },
+ {{{0, "7"}, {SS3,"w"}, {0, "7"}, {ESC,"?w"}}, 7, 59, " 7 ", "Numeric 7" },
+ {{{0, "8"}, {SS3,"x"}, {0, "8"}, {ESC,"?x"}}, 7, 63, " 8 ", "Numeric 8" },
+ {{{0, "9"}, {SS3,"y"}, {0, "9"}, {ESC,"?y"}}, 7, 67, " 9 ", "Numeric 9" },
+ {{{0, "-"}, {SS3,"m"}, {0, "-"}, {ESC,"?m"}}, 7, 71, " - ", "Minus" },
+ {{{0, "4"}, {SS3,"t"}, {0, "4"}, {ESC,"?t"}}, 8, 59, " 4 ", "Numeric 4" },
+ {{{0, "5"}, {SS3,"u"}, {0, "5"}, {ESC,"?u"}}, 8, 63, " 5 ", "Numeric 5" },
+ {{{0, "6"}, {SS3,"v"}, {0, "6"}, {ESC,"?v"}}, 8, 67, " 6 ", "Numeric 6" },
+ {{{0, ","}, {SS3,"l"}, {0, ","}, {ESC,"?l"}}, 8, 71, " , ", "Comma" },
+ {{{0, "1"}, {SS3,"q"}, {0, "1"}, {ESC,"?q"}}, 9, 59, " 1 ", "Numeric 1" },
+ {{{0, "2"}, {SS3,"r"}, {0, "2"}, {ESC,"?r"}}, 9, 63, " 2 ", "Numeric 2" },
+ {{{0, "3"}, {SS3,"s"}, {0, "3"}, {ESC,"?s"}}, 9, 67, " 3 ", "Numeric 3" },
+ {{{0, "0"}, {SS3,"p"}, {0, "0"}, {ESC,"?p"}},10, 59, " 0 ","Numeric 0"},
+ {{{0, "."}, {SS3,"n"}, {0, "."}, {ESC,"?n"}},10, 67, " . ", "Point" },
+ {{{0,"\015"},{SS3,"M"}, {0,"\015"},{ESC,"?M"}},10, 71, "ENT", "ENTER" },
+ {{{0, ""}, {0, ""}, {0, ""}, {0, ""}}, 0, 0, "", "" }
+};
+
+struct natkey {
+ char natc;
+ int natrow;
+ int natcol;
+ char *natsymbol;
+};
+
+static int same_CTLKEY(char *response, CTLKEY *code);
+
+static int
+find_cursor_key(char *curkeystr, int ckeymode)
+{
+ int i;
+
+ for (i = 0; curkeytab[i].curkeysymbol[0] != '\0'; i++) {
+ if (same_CTLKEY(curkeystr, &curkeytab[i].curkeymsg[ckeymode])) {
+ return i;
+ }
+ }
+ return -1;
+}
+
+static int
+find_editing_key(char *keypadstr, int fkeymode)
+{
+ int i;
+
+ for (i = 0; edt_keypadtab[i].fnkeysymbol[0] != '\0'; i++) {
+ if (same_CTLKEY(keypadstr, &edt_keypadtab[i].fnkeymsg[fkeymode])) {
+ return i;
+ }
+ }
+ return -1;
+}
+
+static int
+find_function_key(char *keypadstr, int fkeymode)
+{
+ int i;
+
+ for (i = 0; fnkeytab[i].fnkeysymbol[0] != '\0'; i++) {
+ if (same_CTLKEY(keypadstr, &fnkeytab[i].fnkeymsg[fkeymode])) {
+ return i;
+ }
+ }
+ return -1;
+}
+
+static int
+find_num_keypad_key(char *keypadstr, int fkeymode)
+{
+ int i;
+
+ for (i = 0; num_keypadtab[i].fnkeysymbol[0] != '\0'; i++) {
+ if (same_CTLKEY(keypadstr, &num_keypadtab[i].fnkeymsg[fkeymode])) {
+ return i;
+ }
+ }
+ return -1;
+}
+
+static void
+set_keyboard_layout(struct natkey *table)
+{
+ int i, j;
+
+ for (j = 0; table[j].natc != '\0'; j++) {
+ for (i = 0; keytab[i].c != '\0'; i++) {
+ if (keytab[i].row == table[j].natrow &&
+ keytab[i].col == table[j].natcol) {
+ keytab[i].c = table[j].natc;
+ keytab[i].symbol = table[j].natsymbol;
+ break;
+ }
+ }
+ }
+}
+
+static int
+default_layout(MENU_ARGS)
+{
+ /* FIXME: nothing resets the default keytab to original state */
+ return MENU_NOHOLD;
+}
+
+static int
+same_CTLKEY(char *response, CTLKEY *code)
+{
+ switch (code->prefix) {
+ case CSI:
+ if ((response = skip_csi(response)) == 0)
+ return FALSE;
+ break;
+ case SS3:
+ if ((response = skip_ss3(response)) == 0)
+ return FALSE;
+ break;
+ case ESC:
+ if (*response++ != ESC)
+ return FALSE;
+ default:
+ break;
+ }
+ return !strcmp(response, code->msg);
+}
+
+static int
+set_D47_layout(MENU_ARGS)
+{
+ static struct natkey table[] =
+ {
+ { '"', 1, 12, "\""},
+ { '&', 1, 32, "&" },
+ { '/', 1, 37, "/" },
+ { '(', 1, 42, "(" },
+ { ')', 1, 47, ")" },
+ { '=', 1, 52, "=" },
+ { '+', 1, 56, "+" }, { '?', 1, 57, "?" },
+ { '`', 1, 61, "`" }, { '@', 1, 62, "@" },
+ { '<', 1, 66, "<" }, { '>', 1, 67, ">" },
+ { '}', 2, 58, "}" }, { ']', 2, 59, "]" },
+ { '^', 2, 63, "^" }, { '~', 2, 64, "~" },
+ { '|', 3, 55, "|" }, {'\\', 3, 56,"\\" },
+ { '{', 3, 60, "{" }, { '[', 3, 61, "[" },
+ {'\'', 3, 71, "'" }, { '*', 3, 72, "*" },
+ { ',', 4, 47, "," }, { ';', 4, 48, ";" },
+ { '.', 4, 52, "." }, { ':', 4, 53, ":" },
+ { '-', 4, 57, "-" }, { '_', 4, 58, "_" },
+ {'\0', 0, 0, "" }
+ };
+
+ set_keyboard_layout(table);
+ return MENU_NOHOLD;
+}
+
+static int
+set_E47_layout(MENU_ARGS)
+{
+ static struct natkey table[] =
+ {
+ { '"', 1, 12, "\""},
+ { '&', 1, 32, "&" },
+ { '/', 1, 37, "/" },
+ { '(', 1, 42, "(" },
+ { ')', 1, 47, ")" },
+ { '=', 1, 52, "=" },
+ { '+', 1, 56, "+" }, { '?', 1, 57, "?" },
+ { '`', 1, 61, "`" }, { '@', 1, 62, "@" },
+ { '<', 1, 66, "<" }, { '>', 1, 67, ">" },
+ { '}', 2, 58, "}" }, { ']', 2, 59, "]" },
+ { '~', 2, 63, "~" }, { '^', 2, 64, "^" },
+ { '|', 3, 55, "|" }, {'\\', 3, 56,"\\" },
+ { '{', 3, 60, "{" }, { '[', 3, 61, "[" },
+ {'\'', 3, 71, "'" }, { '*', 3, 72, "*" },
+ { ',', 4, 47, "," }, { ';', 4, 48, ";" },
+ { '.', 4, 52, "." }, { ':', 4, 53, ":" },
+ { '-', 4, 57, "-" }, { '_', 4, 58, "_" },
+ {'\0', 0, 0, "" }
+ };
+
+ set_keyboard_layout(table);
+ return MENU_NOHOLD;
+}
+
+static void
+show_character(int i, char *scs_params, int hilite)
+{
+ int special = ((scs_params != 0) && (strlen(keytab[i].symbol) == 1));
+
+ vt_move(1 + 2 * keytab[i].row, 1 + keytab[i].col);
+ if (hilite) vt_hilite(TRUE);
+ if (special) esc(scs_params);
+ printf("%s", keytab[i].symbol);
+ if (special) scs(0, 'B');
+ if (hilite) vt_hilite(FALSE);
+}
+
+static void
+show_cursor_keys(int flag)
+{
+ int i;
+
+ curkeytab = (terminal_id() < 200) ? VT100_curkeytab : LK401_curkeytab;
+
+ for (i = 0; curkeytab[i].curkeysymbol[0] != '\0'; i++) {
+ vt_move(1 + 2 * curkeytab[i].curkeyrow, 1 + curkeytab[i].curkeycol);
+ if (flag) vt_hilite(TRUE);
+ printf("%s", curkeytab[i].curkeysymbol);
+ if (flag) vt_hilite(FALSE);
+ }
+}
+
+static void
+show_editing_keypad(int flag)
+{
+ if (terminal_id() >= 200) {
+ int i;
+
+ for (i = 0; edt_keypadtab[i].fnkeysymbol[0] != '\0'; i++) {
+ vt_move(1 + 2 * edt_keypadtab[i].fnkeyrow, 1 + edt_keypadtab[i].fnkeycol);
+ if (flag) vt_hilite(TRUE);
+ printf("%s", edt_keypadtab[i].fnkeysymbol);
+ if (flag) vt_hilite(FALSE);
+ }
+ }
+}
+
+static void
+show_function_keys(int flag)
+{
+ if (terminal_id() >= 200) {
+ int i;
+
+ for (i = 0; fnkeytab[i].fnkeysymbol[0] != '\0'; i++) {
+ vt_move(1 + 2 * fnkeytab[i].fnkeyrow, 1 + fnkeytab[i].fnkeycol);
+ if (flag) vt_hilite(TRUE);
+ printf("%s", fnkeytab[i].fnkeysymbol);
+ if (flag) vt_hilite(FALSE);
+ }
+ }
+}
+
+static void
+show_keyboard(int flag, char *scs_params)
+{
+ int i;
+
+ if (terminal_id() >= 200) /* LK201 _looks_ the same as LK401 (to me) */
+ keytab = LK401_keytab;
+ else
+ keytab = VT100_keytab;
+
+ for (i = 0; keytab[i].c != '\0'; i++) {
+ show_character(i, scs_params, TRUE);
+ }
+}
+
+static void
+show_numeric_keypad(int flag)
+{
+ int i;
+
+ for (i = 0; num_keypadtab[i].fnkeysymbol[0] != '\0'; i++) {
+ vt_move(1 + 2 * num_keypadtab[i].fnkeyrow, 1 + num_keypadtab[i].fnkeycol);
+ if (flag) vt_hilite(TRUE);
+ printf("%s", num_keypadtab[i].fnkeysymbol);
+ if (flag) vt_hilite(FALSE);
+ }
+}
+
+/******************************************************************************/
+
+static int
+tst_AnswerBack(MENU_ARGS)
+{
+ char *abmstr;
+
+ set_tty_crmod(TRUE);
+ vt_clear(2);
+ vt_move(5,1);
+ println("Finally, a check of the ANSWERBACK MESSAGE, which can be sent");
+ println("by pressing CTRL-BREAK. The answerback message can be loaded");
+ println("in SET-UP B by pressing SHIFT-A and typing e.g.");
+ println("");
+ println(" \" H e l l o , w o r l d Return \"");
+ println("");
+ println("(the double-quote characters included). Do that, and then try");
+ println("to send an answerback message with CTRL-BREAK. If it works,");
+ println("the answerback message should be displayed in reverse mode.");
+ println("Finish with a single RETURN.");
+
+ set_tty_crmod(FALSE);
+ do {
+ vt_move(17,1);
+ inflush();
+ abmstr = get_reply();
+ vt_move(17,1);
+ vt_el(0);
+ chrprint(abmstr);
+ } while (strcmp(abmstr,"\r"));
+ restore_ttymodes();
+ return MENU_NOHOLD;
+}
+
+static int
+tst_AutoRepeat(MENU_ARGS)
+{
+ char arptstring[BUFSIZ];
+
+ vt_clear(2);
+ vt_move(10,1);
+ println("Test of the AUTO REPEAT feature");
+
+ println("");
+ println("Hold down an alphanumeric key for a while, then push RETURN.");
+ printf("%s", "Auto Repeat OFF: ");
+ rm("?8"); /* DECARM */
+ inputline(arptstring);
+ if (LOG_ENABLED)
+ fprintf(log_fp, "Input: %s\n", arptstring);
+ if (strlen(arptstring) == 0) println("No characters read!??");
+ else if (strlen(arptstring) == 1) println("OK.");
+ else println("Too many characters read.");
+ println("");
+
+ println("Hold down an alphanumeric key for a while, then push RETURN.");
+ printf("%s", "Auto Repeat ON: ");
+ sm("?8"); /* DECARM */
+ inputline(arptstring);
+ if (LOG_ENABLED)
+ fprintf(log_fp, "Input: %s\n", arptstring);
+ if (strlen(arptstring) == 0) println("No characters read!??");
+ else if (strlen(arptstring) == 1) println("Not enough characters read.");
+ else println("OK.");
+ println("");
+
+ return MENU_HOLD;
+}
+
+static int
+tst_ControlKeys(MENU_ARGS)
+{
+ int i, okflag;
+ int kbdc;
+ char temp[80];
+ char *kbds = strcpy(temp, " ");
+
+ static struct ckey {
+ int ccount;
+ char *csymbol;
+ } ckeytab [] = {
+ { 0, "NUL (CTRL-@ or CTRL-Space)" },
+ { 0, "SOH (CTRL-A)" },
+ { 0, "STX (CTRL-B)" },
+ { 0, "ETX (CTRL-C)" },
+ { 0, "EOT (CTRL-D)" },
+ { 0, "ENQ (CTRL-E)" },
+ { 0, "ACK (CTRL-F)" },
+ { 0, "BEL (CTRL-G)" },
+ { 0, "BS (CTRL-H) (BACK SPACE)" },
+ { 0, "HT (CTRL-I) (TAB)" },
+ { 0, "LF (CTRL-J) (LINE FEED)" },
+ { 0, "VT (CTRL-K)" },
+ { 0, "FF (CTRL-L)" },
+ { 0, "CR (CTRL-M) (RETURN)" },
+ { 0, "SO (CTRL-N)" },
+ { 0, "SI (CTRL-O)" },
+ { 0, "DLE (CTRL-P)" },
+ { 0, "DC1 (CTRL-Q) (X-On)" },
+ { 0, "DC2 (CTRL-R)" },
+ { 0, "DC3 (CTRL-S) (X-Off)" },
+ { 0, "DC4 (CTRL-T)" },
+ { 0, "NAK (CTRL-U)" },
+ { 0, "SYN (CTRL-V)" },
+ { 0, "ETB (CTRL-W)" },
+ { 0, "CAN (CTRL-X)" },
+ { 0, "EM (CTRL-Y)" },
+ { 0, "SUB (CTRL-Z)" },
+ { 0, "ESC (CTRL-[) (ESCAPE)" },
+ { 0, "FS (CTRL-\\ or CTRL-? or CTRL-_)" },
+ { 0, "GS (CTRL-])" },
+ { 0, "RS (CTRL-^ or CTRL-~ or CTRL-`)" },
+ { 0, "US (CTRL-_ or CTRL-?)" }
+ };
+
+ vt_clear(2);
+ for (i = 0; i < 32; i++) {
+ vt_move(1 + (i % 16), 1 + 40 * (i / 16));
+ vt_hilite(TRUE);
+ printf("%s", ckeytab[i].csymbol);
+ vt_hilite(FALSE);
+ }
+ vt_move(19,1);
+ set_tty_crmod(TRUE);
+ println(
+ "Push each CTRL-key TWICE. Note that you should be able to send *all*");
+ println(
+ "CTRL-codes twice, including CTRL-S (X-Off) and CTRL-Q (X-Off)!");
+ println(
+ "Finish with DEL (also called DELETE or RUB OUT), or wait 1 minute.");
+ set_tty_raw(TRUE);
+ do {
+ vt_move(max_lines-1,1); kbdc = inchar();
+ vt_move(max_lines-1,1); vt_el(0);
+ if (kbdc < 32) {
+ printf(" %s", ckeytab[kbdc].csymbol);
+ if (LOG_ENABLED)
+ fprintf(log_fp, "Key: %s\n", ckeytab[kbdc].csymbol);
+ } else {
+ sprintf(kbds, "%c", kbdc);
+ chrprint(kbds);
+ printf("%s", " -- not a CTRL key");
+ }
+ if (kbdc < 32) ckeytab[kbdc].ccount++;
+ if (ckeytab[kbdc].ccount == 2) {
+ vt_move(1 + (kbdc % 16), 1 + 40 * (kbdc / 16));
+ printf("%s", ckeytab[kbdc].csymbol);
+ }
+ } while (kbdc != '\177');
+
+ restore_ttymodes();
+ vt_move(max_lines,1);
+ okflag = 1;
+ for (i = 0; i < 32; i++) if (ckeytab[i].ccount < 2) okflag = 0;
+ if (okflag) printf("%s", "OK. ");
+ else printf("%s", "You have not been able to send all CTRL keys! ");
+ return MENU_HOLD;
+}
+
+static int
+tst_CursorKeys(MENU_ARGS)
+{
+ int i;
+ int ckeymode;
+ char *curkeystr;
+ VTLEVEL save;
+
+ static char *curkeymodes[3] = {
+ "ANSI / Cursor key mode RESET",
+ "ANSI / Cursor key mode SET",
+ "VT52 Mode"
+ };
+
+ vt_clear(2);
+ save_level(&save);
+ show_keyboard(0, (char *)0);
+ show_function_keys(0);
+ show_editing_keypad(0);
+ show_numeric_keypad(0);
+ vt_move(max_lines-2,1);
+
+ set_tty_crmod(FALSE);
+ set_tty_echo(FALSE);
+
+ for (ckeymode = 0; ckeymode <= 2; ckeymode++) {
+ if (ckeymode) sm("?1"); /* DECCKM */
+ else rm("?1");
+
+ show_cursor_keys(1);
+ vt_move(21,1); printf("<%s>%20s", curkeymodes[ckeymode], "");
+ vt_move(max_lines-2,1); vt_el(0);
+ vt_move(max_lines-2,1); printf("%s", "Press each cursor key. Finish with TAB.");
+ for(;;) {
+ vt_move(max_lines-1,1);
+ if (ckeymode == 2) set_level(0); /* VT52 mode */
+ curkeystr = instr();
+ set_level(1); /* ANSI mode */
+
+ vt_move(max_lines-1,1); vt_el(0);
+ vt_move(max_lines-1,1); chrprint(curkeystr);
+
+ if (!strcmp(curkeystr,"\t")) break;
+ if ((i = find_cursor_key(curkeystr, ckeymode)) >= 0) {
+ vt_hilite(TRUE);
+ show_result(" (%s key) ", curkeytab[i].curkeyname);
+ vt_hilite(FALSE);
+ vt_move(1 + 2 * curkeytab[i].curkeyrow, 1 + curkeytab[i].curkeycol);
+ printf("%s", curkeytab[i].curkeysymbol);
+ } else {
+ vt_hilite(TRUE);
+ show_result("%s", " (Unknown cursor key) ");
+ vt_hilite(FALSE);
+ }
+ }
+ }
+
+ restore_level(&save);
+ vt_move(max_lines-1,1); vt_el(0);
+ restore_ttymodes();
+ return MENU_MERGE;
+}
+
+static int
+tst_EditingKeypad(MENU_ARGS)
+{
+ int i;
+ int fkeymode;
+ char *fnkeystr;
+ VTLEVEL save;
+
+ static char *fnkeymodes[] = {
+ "Normal mode",
+ "VT100/VT52 mode (none should be recognized)"
+ };
+
+ save_level(&save);
+ show_keyboard(0, (char *)0);
+ show_cursor_keys(0);
+ show_function_keys(0);
+ show_numeric_keypad(0);
+ vt_move(max_lines-2,1);
+
+ if (terminal_id() < 200) {
+ printf("Sorry, a real VT%d terminal doesn't have an editing keypad\n", terminal_id());
+ return MENU_HOLD;
+ }
+
+ set_tty_crmod(FALSE);
+ set_tty_echo(FALSE);
+
+ for (fkeymode = 0; fkeymode <= 1; fkeymode++) {
+ show_editing_keypad(1);
+ vt_move(21,1); printf("<%s>%20s", fnkeymodes[fkeymode], "");
+ vt_move(max_lines-2,1); vt_el(0);
+ vt_move(max_lines-2,1); printf("%s", "Press each function key. Finish with TAB.");
+
+ for(;;) {
+ vt_move(max_lines-1,1);
+ if (fkeymode == 0) default_level();
+ if (fkeymode != 0) set_level(1); /* VT100 mode */
+
+ fnkeystr = instr();
+
+ vt_move(max_lines-1,1); vt_el(0);
+ vt_move(max_lines-1,1); chrprint(fnkeystr);
+
+ if (!strcmp(fnkeystr,"\t")) break;
+ if ((i = find_editing_key(fnkeystr, fkeymode)) >= 0) {
+ vt_hilite(TRUE);
+ show_result(" (%s key) ", edt_keypadtab[i].fnkeyname);
+ vt_hilite(FALSE);
+ vt_move(1 + 2 * edt_keypadtab[i].fnkeyrow, 1 + edt_keypadtab[i].fnkeycol);
+ printf("%s", edt_keypadtab[i].fnkeysymbol);
+ } else {
+ vt_hilite(TRUE);
+ show_result("%s", " (Unknown function key) ");
+ vt_hilite(FALSE);
+ }
+ }
+ }
+
+ vt_move(max_lines-1,1); vt_el(0);
+ restore_level(&save);
+ restore_ttymodes();
+ return MENU_MERGE;
+}
+
+static int
+tst_FunctionKeys(MENU_ARGS)
+{
+ int i;
+ int fkeymode;
+ char *fnkeystr;
+ VTLEVEL save;
+
+ static char *fnkeymodes[] = {
+ "Normal mode (F6-F20, except xterm also F1-F5)",
+ "VT100/VT52 mode (F11-F13 only)"
+ };
+
+ save_level(&save);
+ show_keyboard(0, (char *)0);
+ show_cursor_keys(0);
+ show_editing_keypad(0);
+ show_numeric_keypad(0);
+ vt_move(max_lines-2,1);
+
+ if (terminal_id() < 200) {
+ printf("Sorry, a real VT%d terminal doesn't have function keys\n", terminal_id());
+ return MENU_HOLD;
+ }
+
+ set_tty_crmod(FALSE);
+ set_tty_echo(FALSE);
+
+ for (fkeymode = 0; fkeymode <= 1; fkeymode++) {
+ show_function_keys(1);
+ vt_move(21,1); printf("<%s>%20s", fnkeymodes[fkeymode], "");
+ vt_move(max_lines-2,1); vt_el(0);
+ vt_move(max_lines-2,1); printf("%s", "Press each function key. Finish with TAB.");
+
+ for(;;) {
+ vt_move(max_lines-1,1);
+ if (fkeymode == 0) default_level();
+ if (fkeymode != 0) set_level(1); /* VT100 mode */
+
+ fnkeystr = instr();
+
+ vt_move(max_lines-1,1); vt_el(0);
+ vt_move(max_lines-1,1); chrprint(fnkeystr);
+
+ if (!strcmp(fnkeystr,"\t")) break;
+ if ((i = find_function_key(fnkeystr, fkeymode)) >= 0) {
+ vt_hilite(TRUE);
+ show_result(" (%s key) ", fnkeytab[i].fnkeyname);
+ vt_hilite(FALSE);
+ vt_move(1 + 2 * fnkeytab[i].fnkeyrow, 1 + fnkeytab[i].fnkeycol);
+ printf("%s", fnkeytab[i].fnkeysymbol);
+ } else {
+ vt_hilite(TRUE);
+ show_result("%s", " (Unknown function key) ");
+ vt_hilite(FALSE);
+ }
+ }
+ }
+
+ vt_move(max_lines-1,1); vt_el(0);
+ restore_level(&save);
+ restore_ttymodes();
+ return MENU_MERGE;
+}
+
+static int
+tst_NumericKeypad(MENU_ARGS)
+{
+ int i;
+ int fkeymode;
+ char *fnkeystr;
+ VTLEVEL save;
+
+ static char *fnkeymodes[4] = {
+ "ANSI Numeric mode",
+ "ANSI Application mode",
+ "VT52 Numeric mode",
+ "VT52 Application mode"
+ };
+
+ vt_clear(2);
+ save_level(&save);
+ show_keyboard(0, (char *)0);
+ show_cursor_keys(0);
+ show_function_keys(0);
+ show_editing_keypad(0);
+ vt_move(max_lines-2,1);
+
+ set_tty_crmod(FALSE);
+ set_tty_echo(FALSE);
+
+ for (fkeymode = 0; fkeymode <= 3; fkeymode++) {
+ show_numeric_keypad(1);
+ vt_move(21,1); printf("<%s>%20s", fnkeymodes[fkeymode], "");
+ vt_move(max_lines-2,1); vt_el(0);
+ vt_move(max_lines-2,1); printf("%s", "Press each function key. Finish with TAB.");
+
+ for(;;) {
+ vt_move(max_lines-1,1);
+ if (fkeymode >= 2) set_level(0); /* VT52 mode */
+ if (fkeymode % 2) deckpam(); /* Application mode */
+ else deckpnm(); /* Numeric mode */
+ fnkeystr = instr();
+ set_level(1); /* ANSI mode */
+
+ vt_move(max_lines-1,1); vt_el(0);
+ vt_move(max_lines-1,1); chrprint(fnkeystr);
+
+ if (!strcmp(fnkeystr,"\t")) break;
+ if ((i = find_num_keypad_key(fnkeystr, fkeymode)) >= 0) {
+ vt_hilite(TRUE);
+ show_result(" (%s key) ", num_keypadtab[i].fnkeyname);
+ vt_hilite(FALSE);
+ vt_move(1 + 2 * num_keypadtab[i].fnkeyrow, 1 + num_keypadtab[i].fnkeycol);
+ printf("%s", num_keypadtab[i].fnkeysymbol);
+ } else {
+ vt_hilite(TRUE);
+ show_result("%s", " (Unknown function key) ");
+ vt_hilite(FALSE);
+ }
+ }
+ }
+
+ vt_move(max_lines-1,1); vt_el(0);
+ restore_level(&save);
+ restore_ttymodes();
+ return MENU_MERGE;
+}
+
+static int
+tst_KeyboardLayout(MENU_ARGS)
+{
+ static MENU keyboardmenu[] = {
+ { "Standard American ASCII layout", default_layout },
+ { "Swedish national layout D47", set_D47_layout },
+ { "Swedish national layout E47", set_E47_layout },
+ /* add new keyboard layouts here */
+ { "", 0 }
+ };
+
+ if (terminal_id() < 200) {
+ vt_clear(2);
+ keytab = VT100_keytab;
+ title(0); println("Choose keyboard layout:");
+ (void) menu(keyboardmenu);
+ }
+
+ tst_keyboard_layout((char *)0);
+
+ return MENU_MERGE;
+}
+
+static int
+tst_LED_Lights(MENU_ARGS)
+{
+ int i;
+ char *ledmsg[6], *ledseq[6];
+
+ ledmsg[0] = "L1 L2 L3 L4"; ledseq[0] = "1;2;3;4";
+ ledmsg[1] = " L2 L3 L4"; ledseq[1] = "1;0;4;3;2";
+ ledmsg[2] = " L2 L3"; ledseq[2] = "1;4;;2;3";
+ ledmsg[3] = "L1 L2"; ledseq[3] = ";;2;1";
+ ledmsg[4] = "L1"; ledseq[4] = "1";
+ ledmsg[5] = ""; ledseq[5] = "";
+
+#ifdef UNIX
+ fflush(stdout);
+#endif
+ vt_clear(2);
+ vt_move(10,1);
+ println("These LEDs (\"lamps\") on the keyboard should be on:");
+ for (i = 0; i <= 5; i++) {
+ vt_move(10,52); vt_el(0); printf("%s", ledmsg[i]);
+ decll("0");
+ decll(ledseq[i]);
+ vt_move(12,1); holdit();
+ }
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+int
+tst_keyboard_layout(char *scs_params)
+{
+ int i;
+ int kbdc;
+ char temp[80];
+ char *kbds = strcpy(temp, " ");
+
+ vt_clear(2);
+ show_keyboard(1, scs_params);
+ show_cursor_keys(0);
+ show_function_keys(0);
+ show_editing_keypad(0);
+ show_numeric_keypad(0);
+ vt_move(max_lines-2,1);
+
+ set_tty_crmod(FALSE);
+ set_tty_echo(FALSE);
+
+ inflush();
+ printf("Press each key, both shifted and unshifted. Finish with RETURN:");
+ do { /* while (kbdc != 13) */
+ vt_move(max_lines-1,1); kbdc = inchar();
+ vt_move(max_lines-1,1); vt_el(0);
+ if (scs_params != 0 && kbdc > ' ' && kbdc < '\177') {
+ vt_hilite(TRUE);
+ esc(scs_params);
+ printf(" %c ", kbdc);
+ scs(0, 'B');
+ printf("= %d ", kbdc);
+ scs(0, 'B');
+ vt_hilite(FALSE);
+ } else {
+ sprintf(kbds, "%c", kbdc);
+ chrprint(kbds);
+ }
+ for (i = 0; keytab[i].c != '\0'; i++) {
+ if (keytab[i].c == kbdc) {
+ show_character(i, scs_params, FALSE);
+ /* LK401 keyboard will have more than one hit for '<' and '>' */
+ }
+ }
+ } while (kbdc != 13);
+
+ vt_move(max_lines-1,1); vt_el(0);
+ restore_ttymodes();
+ return MENU_MERGE;
+}
+
+/******************************************************************************/
+int
+tst_keyboard(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "LED Lights", tst_LED_Lights },
+ { "Auto Repeat", tst_AutoRepeat },
+ { "KeyBoard Layout", tst_KeyboardLayout },
+ { "Cursor Keys", tst_CursorKeys },
+ { "Numeric Keypad", tst_NumericKeypad },
+ { "Editing Keypad", tst_EditingKeypad },
+ { "Function Keys", tst_FunctionKeys },
+ { "AnswerBack", tst_AnswerBack },
+ { "Control Keys", tst_ControlKeys },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("Keyboard Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/main.c b/doc/vttest-20011130/main.c
new file mode 100644
index 0000000..1ab3752
--- /dev/null
+++ b/doc/vttest-20011130/main.c
@@ -0,0 +1,1382 @@
+/* $Id$ */
+
+/*
+ VTTEST.C
+
+ Written November 1983 - July 1984 by Per Lindberg,
+ Stockholm University Computer Center (QZ), Sweden.
+
+ THE MAD PROGRAMMER STRIKES AGAIN!
+
+ This software is (c) 1984 by QZ
+ Non-commercial use and copying allowed.
+
+If you are developing a commercial product, and use this program to do
+it, and that product is successful, please send a sum of money of your
+choice to the address below.
+
+*/
+
+#include <vttest.h>
+#include <ttymodes.h>
+#include <esc.h>
+
+FILE *log_fp = 0;
+char *current_menu = "";
+int brkrd;
+int reading;
+int log_disabled = FALSE;
+int max_lines = 24;
+int max_cols = 132;
+int min_cols = 80;
+int input_8bits = FALSE;
+int output_8bits = FALSE;
+int tty_speed = DEFAULT_SPEED; /* nominal speed, for padding */
+int use_padding = FALSE;
+jmp_buf intrenv;
+
+static void
+usage(void)
+{
+ fprintf(stderr, "Usage: vttest [-l] [-p] [-8] [-f font] [24x80.132]\n");
+ exit(EXIT_FAILURE);
+}
+
+int
+main(int argc, char *argv[])
+{
+ static MENU mainmenu[] = {
+ { "Exit", 0 },
+ { "Test of cursor movements", tst_movements },
+ { "Test of screen features", tst_screen },
+ { "Test of character sets", tst_characters },
+ { "Test of double-sized characters", tst_doublesize },
+ { "Test of keyboard", tst_keyboard },
+ { "Test of terminal reports", tst_reports },
+ { "Test of VT52 mode", tst_vt52 },
+ { "Test of VT102 features (Insert/Delete Char/Line)", tst_insdel },
+ { "Test of known bugs", tst_bugs },
+ { "Test of reset and self-test", tst_rst },
+ { "Test non-VT100 (e.g., VT220, XTERM) terminals", tst_nonvt100 },
+ { "Modify test-parameters", tst_setup },
+ { "", 0 }
+ };
+
+ while (argc-- > 1) {
+ char *opt = *++argv;
+ if (*opt == '-') {
+ while (*++opt != '\0') {
+ switch (*opt) {
+ case 'f':
+ if (!*++opt) {
+ if (argc-- < 1)
+ usage();
+ opt = *++argv;
+ }
+ setup_softchars(opt);
+ opt = "?";
+ break;
+ case 'l':
+ enable_logging();
+ break;
+ case 'p':
+ use_padding = TRUE;
+ break;
+ case '8':
+ output_8bits = TRUE;
+ break;
+ default:
+ usage();
+ }
+ }
+ } else {
+ /*
+ * Allow user to specify geometry of terminal to accommodate quasi-VT100
+ * terminals such as Linux console and xterm.
+ */
+ char *p = argv[0];
+ char *q;
+ int values[3], n, m;
+ for (n = 0; n < 3; n++) {
+ if (!*p)
+ break;
+ if ((m = strtol(p, &q, 10)) > 0) {
+ values[n] = m;
+ p = q;
+ if (*p)
+ p++;
+ } else {
+ break;
+ }
+ }
+ switch (n) {
+ case 3:
+ max_cols = values[2];
+ /* FALLTHRU */
+ case 2:
+ min_cols = values[1];
+ /* FALLTHRU */
+ case 1:
+ max_lines = values[0];
+ break;
+ }
+ if ((max_cols < min_cols) || (n == 0)) {
+ usage();
+ }
+ }
+ }
+
+#ifdef UNIX
+ initterminal(setjmp(intrenv));
+ signal(SIGINT, onbrk);
+ signal(SIGTERM, onterm);
+ reading = FALSE;
+#else
+ initterminal(0);
+#endif
+ do {
+ vt_clear(2);
+ title(0); printf("VT100 test program, version %d.%d", RELEASE, PATCHLEVEL);
+#ifdef PATCH_DATE
+ if (PATCH_DATE)
+ printf(" (%d)", PATCH_DATE);
+#endif
+
+ title(1);
+ if (max_lines != 24
+ || min_cols != 80
+ || max_cols != 132)
+ printf("Screen size %dx%d (%d max) ", max_lines, min_cols, max_cols);
+ if (tty_speed != DEFAULT_SPEED)
+ printf("Line speed %dbd ", tty_speed);
+ if (use_padding)
+ printf(" (padded)");
+
+ title(2); println("Choose test type:");
+ } while (menu(mainmenu));
+ bye();
+}
+
+int
+tst_movements(MENU_ARGS)
+{
+ /* Test of:
+ CUF (Cursor Forward)
+ CUB (Cursor Backward)
+ CUD (Cursor Down) IND (Index) NEL (Next Line)
+ CUU (Cursor Up) RI (Reverse Index)
+ CUP (Cursor Position) HVP (Horizontal and Vertical Position)
+ ED (Erase in Display)
+ EL (Erase in Line)
+ DECALN (Screen Alignment Display)
+ <CR> <BS>
+ Cursor control characters inside CSI sequences
+ */
+
+ int i, row, col, pass, width, hlfxtra;
+ char *ctext = "This is a correct sentence";
+
+ for (pass = 0; pass <= 1; pass++) {
+ int inner_l, inner_r;
+
+ if (pass == 0) { deccolm(FALSE); width = min_cols; }
+ else { deccolm(TRUE); width = max_cols; }
+
+ /* Compute left/right columns for a 60-column box centered in 'width' */
+ inner_l = (width - 60) / 2;
+ inner_r = 61 + inner_l;
+ hlfxtra = (width - 80) / 2;
+
+ decaln();
+ cup( 9,inner_l); ed(1);
+ cup(18,60+hlfxtra); ed(0); el(1);
+ cup( 9,inner_r); el(0);
+ /* 132: 36..97 */
+ /* 80: 10..71 */
+ for (row = 10; row <= 16; row++) {
+ cup(row, inner_l); el(1);
+ cup(row, inner_r); el(0);
+ }
+ cup(17,30); el(2);
+ for (col = 1; col <= width; col++) {
+ hvp(max_lines, col); printf("*");
+ hvp( 1, col); printf("*");
+ }
+ cup(2,2);
+ for (row = 2; row <= max_lines-1; row++) {
+ printf("+");
+ cub(1);
+ ind();
+ }
+ cup(max_lines-1,width-1);
+ for (row = max_lines-1; row >=2; row--) {
+ printf("+");
+ cub(1); ri();
+ }
+ cup(2,1);
+ for (row = 2; row <= max_lines-1; row++) {
+ printf("*"); cup(row, width);
+ printf("*");
+ cub(10);
+ if (row < 10) nel();
+ else printf("\n");
+ }
+ cup(2,10);
+ cub(42+hlfxtra); cuf(2);
+ for (col = 3; col <= width-2; col++) {
+ printf("+");
+ cuf(0); cub(2); cuf(1);
+ }
+ cup(max_lines-1,inner_r-1);
+ cuf(42+hlfxtra); cub(2);
+ for (col = width-2; col >= 3; col--) {
+ printf("+");
+ cub(1); cuf(1); cub(0); printf("%c", 8);
+ }
+ cup( 1, 1); cuu(10); cuu(1); cuu(0);
+ cup(max_lines,width); cud(10); cud(1); cud(0);
+
+ cup(10,2+inner_l);
+ for (row = 10; row <= 15; row++) {
+ for (col = 2+inner_l; col <= inner_r-2; col++) printf(" ");
+ cud(1); cub(58);
+ }
+ cuu(5); cuf(1);
+ printf("The screen should be cleared, and have an unbroken bor-");
+ cup(12,inner_l+3);
+ printf("der of *'s and +'s around the edge, and exactly in the");
+ cup(13,inner_l+3);
+ printf("middle there should be a frame of E's around this text");
+ cup(14,inner_l+3);
+ printf("with one (1) free position around it. ");
+ holdit();
+ }
+ deccolm(FALSE);
+
+ vt_clear(2);
+ vt_move(1,1);
+ println("Test of cursor-control characters inside ESC sequences.");
+ println("Below should be two identical lines:");
+ println("");
+ println("A B C D E F G H I J K L M N O P Q R S");
+ for (i = 1; i < 20; i++) {
+ printf("%c", '@' + i);
+ do_csi("2\010C"); /* Two forward, one backspace */
+ }
+ println("");
+ println("");
+ holdit();
+
+ vt_clear(2);
+ vt_move(1,1);
+ println("Test of leading zeros in ESC sequences.");
+ printf("Two lines below you should see the sentence \"%s\".",ctext);
+ for (col = 1; *ctext; col++)
+ printf("%s00000000004;00000000%dH%c", csi_output(), col, *ctext++);
+ cup(20,1);
+ return MENU_HOLD;
+}
+
+/* Scrolling test (used also in color-testing) */
+void do_scrolling(void)
+{
+ int soft, row, down, i;
+
+ ed(2);
+ sm("?6"); /* Origin mode (relative) */
+ for (soft = -1; soft <= 0; soft++) {
+ if (soft) decsclm(TRUE);
+ else decsclm(FALSE);
+ for (row = 12; row >= 1; row -= 11) {
+ decstbm(row, max_lines-row+1);
+ ed(2);
+ for (down = 0; down >= -1; down--) {
+ if (down) cuu(max_lines);
+ else cud(max_lines);
+ for (i = 1; i <= 30; i++) {
+ printf("%s scroll %s region %d Line %d\n",
+ soft ? "Soft" : "Jump",
+ down ? "down" : "up",
+ 2*(13-row), i);
+ if (down) { ri(); ri(); }
+ else if (soft) extra_padding(10);
+ }
+ }
+ holdit();
+ }
+ }
+}
+
+int
+tst_screen(MENU_ARGS)
+{
+ /* Test of:
+ - DECSTBM (Set Top and Bottom Margins)
+ - TBC (Tabulation Clear)
+ - HTS (Horizontal Tabulation Set)
+ - SM RM (Set/Reset mode): - 80/132 chars
+ - Origin: Realtive/absolute
+ - Scroll: Smooth/jump
+ - Wraparound
+ - SGR (Select Graphic Rendition)
+ - SM RM (Set/Reset Mode) - Inverse
+ - DECSC (Save Cursor)
+ - DECRC (Restore Cursor)
+ */
+
+ int i, j, cset, row, col, background;
+
+ static char *tststr = "*qx`";
+ static char *attr[5] = { ";0", ";1", ";4", ";5", ";7" };
+
+ cup(1,1);
+ sm("?7"); /* DECAWM: Wrap Around ON */
+ for (col = 1; col <= min_cols*2; col++) printf("*");
+ rm("?7"); /* DECAWM: Wrap Around OFF */
+ cup(3,1);
+ for (col = 1; col <= min_cols*2; col++) printf("*");
+ sm("?7"); /* DECAWM: Wrap Around ON */
+ cup(5,1);
+ println("This should be three identical lines of *'s completely filling");
+ println("the top of the screen without any empty lines between.");
+ println("(Test of WRAP AROUND mode setting.)");
+ holdit();
+
+ ed(2);
+ tbc(3);
+ cup(1,1);
+ for (col = 1; col <= min_cols-2; col += 3) {
+ cuf(3); hts();
+ }
+ cup(1,4);
+ for (col = 4; col <= min_cols-2; col += 6) {
+ tbc(0); cuf(6);
+ }
+ cup(1,7); tbc(1); tbc(2); /* no-op */
+ cup(1,1); for (col = 1; col <= min_cols-2; col += 6) printf("\t*");
+ cup(2,2); for (col = 2; col <= min_cols-2; col += 6) printf(" *");
+ cup(4,1);
+ println("Test of TAB setting/resetting. These two lines");
+ printf("should look the same. ");
+ holdit();
+ for (background = 0; background <= 1; background++) {
+ if (background) decscnm(FALSE);
+ else decscnm(TRUE);
+ deccolm(TRUE); /* 132 cols */
+ ed(2); /* VT100 clears screen on SM3/RM3, but not obviously, so... */
+ cup(1,1); tbc(3);
+ for (col = 1; col <= max_cols; col += 8) {
+ cuf(8); hts();
+ }
+ cup(1,1);
+ for (col = 1; col <= max_cols; col += 10)
+ printf("%.*s", (max_cols > col) ? (max_cols - col): 10, "1234567890");
+ for (row = 3; row <= 20; row++) {
+ cup(row,row);
+ printf("This is %d column mode, %s background.", max_cols,
+ background ? "dark" : "light");
+ }
+ holdit();
+ deccolm(FALSE); /* 80 cols */
+ ed(2); /* VT100 clears screen on SM3/RM3, but not obviously, so... */
+ cup(1,1);
+ for (col = 1; col <= min_cols; col += 10)
+ printf("%.*s", (min_cols > col) ? (min_cols - col): 10, "1234567890");
+ for (row = 3; row <= 20; row++) {
+ cup(row,row);
+ printf("This is %d column mode, %s background.", min_cols,
+ background ? "dark" : "light");
+ }
+ holdit();
+ }
+ do_scrolling();
+ ed(2);
+ decstbm(max_lines-1,max_lines);
+ printf(
+ "\nOrigin mode test. This line should be at the bottom of the screen.");
+ cup(1,1);
+ printf("%s",
+ "This line should be the one above the bottom of the screen. ");
+ holdit();
+ ed(2);
+ rm("?6"); /* Origin mode (absolute) */
+ cup(max_lines,1);
+ printf(
+ "Origin mode test. This line should be at the bottom of the screen.");
+ cup(1,1);
+ printf("%s", "This line should be at the top of the screen. ");
+ holdit();
+ decstbm(1,max_lines);
+
+ ed(2);
+ cup( 1,20); printf("Graphic rendition test pattern:");
+ cup( 4, 1); sgr("0"); printf("vanilla");
+ cup( 4,40); sgr("0;1"); printf("bold");
+ cup( 6, 6); sgr(";4"); printf("underline");
+ cup( 6,45);sgr(";1");sgr("4");printf("bold underline");
+ cup( 8, 1); sgr("0;5"); printf("blink");
+ cup( 8,40); sgr("0;5;1"); printf("bold blink");
+ cup(10, 6); sgr("0;4;5"); printf("underline blink");
+ cup(10,45); sgr("0;1;4;5"); printf("bold underline blink");
+ cup(12, 1); sgr("1;4;5;0;7"); printf("negative");
+ cup(12,40); sgr("0;1;7"); printf("bold negative");
+ cup(14, 6); sgr("0;4;7"); printf("underline negative");
+ cup(14,45); sgr("0;1;4;7"); printf("bold underline negative");
+ cup(16, 1); sgr("1;4;;5;7"); printf("blink negative");
+ cup(16,40); sgr("0;1;5;7"); printf("bold blink negative");
+ cup(18, 6); sgr("0;4;5;7"); printf("underline blink negative");
+ cup(18,45); sgr("0;1;4;5;7"); printf("bold underline blink negative");
+ sgr("");
+
+ decscnm(FALSE); /* Inverse video off */
+ cup(max_lines-1,1); el(0); printf("Dark background. "); holdit();
+ decscnm(TRUE); /* Inverse video */
+ cup(max_lines-1,1); el(0); printf("Light background. "); holdit();
+ decscnm(FALSE);
+ ed(2);
+ cup(8,12); printf("normal");
+ cup(8,24); printf("bold");
+ cup(8,36); printf("underscored");
+ cup(8,48); printf("blinking");
+ cup(8,60); printf("reversed");
+ cup(10,1); printf("stars:");
+ cup(12,1); printf("line:");
+ cup(14,1); printf("x'es:");
+ cup(16,1); printf("diamonds:");
+ for (cset = 0; cset <= 3; cset++) {
+ for (i = 0; i <= 4; i++) {
+ cup(10 + 2 * cset, 12 + 12 * i);
+ sgr(attr[i]);
+ if (cset == 0 || cset == 2) scs_normal();
+ else scs_graphics();
+ for (j = 0; j <= 4; j++) {
+ printf("%c", tststr[cset]);
+ }
+ decsc();
+ cup(cset + 1, i + 1); sgr(""); scs_normal(); printf("A");
+ decrc();
+ for (j = 0; j <= 4; j++) {
+ printf("%c", tststr[cset]);
+ }
+ }
+ }
+ sgr("0"); scs_normal(); cup(21,1);
+ println("Test of the SAVE/RESTORE CURSOR feature. There should");
+ println("be ten characters of each flavour, and a rectangle");
+ println("of 5 x 4 A's filling the top left of the screen.");
+ return MENU_HOLD;
+}
+
+int
+tst_doublesize(MENU_ARGS)
+{
+ /* Test of:
+ DECSWL (Single Width Line)
+ DECDWL (Double Width Line)
+ DECDHL (Double Height Line) (also implicit double width)
+ */
+
+ int col, i, w, w1;
+
+ /* Print the test pattern in both 80 and 132 character width */
+
+ for(w = 0; w <= 1; w++) {
+ w1 = 13 * w;
+
+ ed(2);
+ cup(1, 1);
+ if (w) { deccolm(TRUE); printf("%3d column mode", max_cols); }
+ else { deccolm(FALSE); printf("%3d column mode", min_cols); }
+
+ cup( 5, 3 + 2 * w1);
+ printf("v------- left margin");
+
+ cup( 7, 3 + 2 * w1);
+ printf("This is a normal-sized line");
+ decdhl(0); decdhl(1); decdwl(); decswl();
+
+ cup( 9, 2 + w1);
+ printf("This is a Double-width line");
+ decswl(); decdhl(0); decdhl(1); decdwl();
+
+ cup(11, 2 + w1);
+ decdwl(); decswl(); decdhl(1); decdhl(0);
+ printf("This is a Double-width-and-height line");
+ cup(12, 2 + w1);
+ decdwl(); decswl(); decdhl(0); decdhl(1);
+ printf("This is a Double-width-and-height line");
+
+ cup(14, 2 + w1);
+ decdwl(); decswl(); decdhl(1); decdhl(0); el(2);
+ printf("This is another such line");
+ cup(15, 2 + w1);
+ decdwl(); decswl(); decdhl(0); decdhl(1);
+ printf("This is another such line");
+
+ cup(17, 3 + 2 * w1);
+ printf("^------- left margin");
+
+ cup(21, 1);
+ printf("This is not a double-width line");
+ for (i = 0; i <= 1; i++) {
+ cup(21,6);
+ if (i) { printf("**is**"); decdwl(); }
+ else { printf("is not"); decswl(); }
+ cup(max_lines-1,1); holdit();
+ }
+ }
+ /* Set vanilla tabs for next test */
+ cup(1,1); tbc(3); for (col = 1; col <= max_cols; col += 8) { cuf(8); hts(); }
+ deccolm(FALSE);
+ ed(2);
+ scs_graphics();
+
+ cup( 8,1); decdhl(0); printf("lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk");
+ cup( 9,1); decdhl(1); printf("lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk");
+ cup(10,1); decdhl(0); printf("x%c%c%c%c%cx",9,9,9,9,9);
+ cup(11,1); decdhl(1); printf("x%c%c%c%c%cx",9,9,9,9,9);
+ cup(12,1); decdhl(0); printf("x%c%c%c%c%cx",9,9,9,9,9);
+ cup(13,1); decdhl(1); printf("x%c%c%c%c%cx",9,9,9,9,9);
+ cup(14,1); decdhl(0); printf("x x");
+ cup(15,1); decdhl(1); printf("x x");
+ cup(16,1); decdhl(0); printf("mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj");
+ cup(17,1); decdhl(1); printf("mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj");
+ scs_normal(); sgr("1;5");
+ cup(12,3);
+ printf("* The mad programmer strikes again * ");
+ cup(13,3); printf("%c",9); cub(6);
+ printf("* The mad programmer strikes again *");
+ sgr("0");
+ cup(max_lines-2,1);
+ println("Another test pattern... a frame with blinking bold text,");
+ printf("all in double-height double-width size. ");
+ holdit();
+
+ decstbm(8,max_lines); /* Absolute origin mode, so cursor is set at (1,1) */
+ cup(8,1);
+ for (i = 1; i <= 12; i++)
+ ri();
+ decstbm(0,0); /* No scroll region */
+ cup(1,1);
+ printf("%s", "Exactly half of the box should remain. ");
+ return MENU_HOLD;
+}
+
+int
+tst_insdel(MENU_ARGS)
+{
+ /* Test of:
+ SM/RM(4) (= IRM (Insertion/replacement mode))
+ ICH (Insert Character)
+ DCH (Delete character)
+ IL (Insert line)
+ DL (Delete line)
+ */
+
+ int i, row, col, sw, dblchr, scr132;
+
+ for(scr132 = 0; scr132 <= 1; scr132++) {
+ if (scr132) { deccolm(TRUE); sw = max_cols; }
+ else { deccolm(FALSE); sw = min_cols; }
+ ed(2);
+ cup(1,1);
+ for (row=1; row<=max_lines; row++) {
+ cup(row,1);
+ for (col=1; col<=sw; col++)
+ printf("%c", 'A'-1+row);
+ }
+ cup(4,1);
+ printf("Screen accordion test (Insert & Delete Line). "); holdit();
+ ri(); el(2);
+ decstbm( 2,max_lines-1);
+ sm("?6");
+ cup(1,1);
+ for (row=1; row<=max_lines; row++) {
+ il(row);
+ dl(row);
+ }
+ rm("?6");
+ decstbm( 0, 0);
+ cup(2,1);
+ printf(
+ "Top line: A's, bottom line: %c's, this line, nothing more. ", 'A'-1+max_lines);
+ holdit();
+ cup(2,1); ed(0);
+ cup(1,2);
+ printf("B");
+ cub(1);
+ sm("4");
+ for (col=2; col<=sw-1; col++)
+ printf("*");
+ rm("4");
+ cup(4,1);
+ printf("Test of 'Insert Mode'. The top line should be 'A*** ... ***B'. ");
+ holdit(); ri(); el(2);
+ cup(1,2);
+ dch(sw-2);
+ cup(4,1);
+ printf("Test of 'Delete Character'. The top line should be 'AB'. ");
+ holdit();
+
+ for(dblchr = 1; dblchr <= 2; dblchr++) {
+ ed(2);
+ for (row=1; row<=max_lines; row++) {
+ cup(row,1);
+ if (dblchr == 2) decdwl();
+ for (col=1; col<=sw/dblchr; col++)
+ printf("%c", 'A'-1+row);
+ cup(row,sw/dblchr-row);
+ dch(row);
+ }
+ cup(4,1);
+ println("The right column should be staggered ");
+ printf("by one. ");
+ holdit();
+ }
+ ed(2);
+ cup(1,1);
+ println("If your terminal has the ANSI 'Insert Character' function");
+ println("(the VT102 does not), then you should see a line like this");
+ println(" A B C D E F G H I J K L M N O P Q R S T U V W X Y Z");
+ println("below:");
+ println("");
+ for (i = 'Z'; i >= 'A'; i--) {
+ printf("%c\010",i);
+ ich(2);
+ }
+ cup(10,1);
+ holdit();
+
+ if (sw == max_cols) deccolm(FALSE);
+ }
+ return MENU_NOHOLD;
+}
+
+/* Test of some known VT100 bugs and misfeatures */
+
+int
+tst_bugs(MENU_ARGS)
+{
+ int i;
+
+ static MENU menutable[] = {
+ { "Exit to main menu", 0 },
+ { "Bug A: Smooth scroll to jump scroll", bug_a },
+ { "Bug B: Scrolling region", bug_b },
+ { "Bug C: Wide to narrow screen", bug_c },
+ { "Bug D: Narrow to wide screen", bug_d },
+ { "Bug E: Cursor move from double- to single-wide line", bug_e },
+ { "Bug F: Column mode escape sequence", bug_f },
+ { "Wrap around with cursor addressing", bug_w },
+ { "Erase right half of double width lines", bug_l },
+ { "Funny scroll regions", bug_s },
+ /* Add more here */
+ { "", 0 }
+ };
+
+ static char *hmsg[] = {
+ "Test of known bugs in the DEC VT100 series. The numbering of some of",
+ "the bugs (A-F) refers to the article 'VT100 MAGIC' by Sami Tabih in",
+ "the 'Proceedings of the DEC Users Society' at St. Louis, Missouri, May",
+ "1983. To understand some of the tests, you have to look at the source",
+ "code or the article. Of course, a good VT100-compatible terminal",
+ "should not have these bugs (or have some means of disabling them)! If",
+ "a bug appears, you might want to RESET the terminal before continuing",
+ "the test. There is a test of the RESET function in the main menu.",
+ "" };
+
+ do {
+ vt_clear(2);
+ vt_move(1,1);
+ for (i = 0; *hmsg[i]; i++)
+ println(hmsg[i]);
+ println("");
+ println(" Choose bug test number:");
+ } while (menu(menutable));
+ return MENU_NOHOLD;
+}
+
+/* Bug A: Smooth scroll to jump scroll */
+
+int
+bug_a(MENU_ARGS)
+{
+ int i;
+
+ cup (10, 1);
+ println("This is a test of the VT100 'Scroll while toggle softscroll'");
+ println("bug. The cursor may disappear, or move UP the screen, or");
+ println("multiple copies of some lines may appear.");
+ holdit();
+
+ /* Invoke the bug */
+
+ esc ("[24H"); /* Simplified cursor movement */
+ decsclm(FALSE); for (i = 1; i <= 20; i++) printf("\n");
+ decsclm(TRUE); for (i = 1; i <= 10; i++) printf("\n");
+ decsclm(FALSE); for (i = 1; i <= 5; i++) printf("\n");
+
+ /* That should be enough to show the bug. But we'll try another way: */
+ decsclm(TRUE); /* Set soft scroll */
+ nel (); /* "NextLine", move down */
+ decsclm(FALSE); /* Reset soft scroll */
+ nel (); /* "NextLine", move down */
+ for (i = 1; i <= 10; i++) { /* Show the bug */
+ printf ("Softscroll bug test, line %d. ", i);
+ holdit();
+ }
+ println("That should have been enough to show the bug, if present.");
+ return MENU_HOLD;
+}
+
+/* Bug B: Scrolling region */
+
+int
+bug_b(MENU_ARGS)
+{
+ char c;
+
+ decaln();
+ cup( 1,1); el(0);
+ printf("Line 11 should be double-wide, line 12 should be cleared.");
+ cup( 2,1); el(0);
+ printf("Then, the letters A-P should be written at the beginning");
+ cup( 3,1); el(0);
+ printf("of lines 12-%d, and the empty line and A-E are scrolled away.", max_lines);
+ cup( 4,1); el(0);
+ printf("If the bug is present, some lines are confused, look at K-P.");
+ cup(11,1); decdwl();
+ decstbm(12,max_lines);
+ cup(12,1); el(0); printf("Here we go... "); holdit();
+ cup(12,1); ri(); /* Bug comes here */
+ for (c = 'A'; c <= 'P'; c++) printf("%c\n",c); /* Bug shows here */
+ holdit();
+ decstbm(0,0); /* No scr. region */
+ return MENU_NOHOLD;
+}
+
+/* Bug C: Wide to narrow screen */
+
+int
+bug_c(MENU_ARGS)
+{
+ deccolm(TRUE); /* 132 column mode */
+ cup(1,81);
+ deccolm(FALSE); /* 80 column mode */
+ cup(12,5);
+ printf("Except for this line, the screen should be blank. ");
+ return MENU_HOLD;
+}
+
+/* Bug D: Narrow to wide screen */
+
+int
+bug_d(MENU_ARGS)
+{
+ int i;
+ char result;
+ /* Make the bug appear */
+ do {
+ cup(14,1);
+
+ /* The original code in the article says
+ * PRINT ESC$; "[13;1H"; CHR$(10%);
+ * but I guess a cup(14,1); would do.
+ * (To output a pure LF might be tricky).
+ */
+
+ deccolm(TRUE); /* Make the bug visible */
+ cup(1,9); decdwl();
+ println("You should see blinking text at the bottom line.");
+ cup(3,9); decdwl();
+ println("Enter 0 to exit, 1 to try to invoke the bug again.");
+ cup(max_lines,9); decdwl(); sgr("1;5;7");
+ printf("If you can see this then the bug did not appear."); sgr("");
+ cup(4,9); decdwl();
+ result = inchar(); readnl();
+ deccolm(FALSE);
+ } while (result == '1');
+ decsclm(TRUE); /* Syrup scroll */
+ cup(max_lines-1,1);
+ for (i = 1; i <= 5; i++)
+ println("If the bug is present, this should make things much worse!");
+ holdit();
+ decsclm(FALSE); /* Jump scroll */
+ return MENU_NOHOLD;
+}
+
+/* Bug E: Cursor move from double- to single-wide line */
+
+int
+bug_e(MENU_ARGS)
+{
+ int i;
+ static char *rend[2] = { "m", "7m" };
+ deccolm(TRUE);
+ cup(1,1); decdwl();
+ println("This test should put an 'X' at line 3 column 100.");
+ for (i = 1; i <= 12; i++)
+ printf("1234567890%s%s", csi_output(), rend[i & 1]);
+ cup(1,1); /* The bug appears when we jump from a double-wide line */
+ cup(3,100); /* to a single-wide line, column > 66. */
+ printf("X");
+ cup(4, max_cols/2); printf("! !");
+ cup(5,1);
+ printf("--------------------------- The 'X' should NOT be above here -");
+ printf("---+------------ but above here -----+");
+ cup(10,1); decdwl(); holdit();
+ deccolm(FALSE);
+ return MENU_NOHOLD;
+}
+
+/* Bug F: Column mode escape sequence */
+
+int
+bug_f(MENU_ARGS)
+{
+ /*
+ * VT100 "toggle origin mode, forget rest" bug. If you try to set
+ * (or clear) parameters and one of them is the "origin mode"
+ * ("?6") parameter, parameters that appear after the "?6"
+ * remain unaffected. This is also true on CIT-101 terminals.
+ */
+ decscnm(TRUE); /* Set reverse mode */
+ deccolm(TRUE); /* Set 132 column mode */
+ println("Test VT100 'Toggle origin mode, forget rest' bug, part 1.");
+ printf("The screen should be in reverse, %d column mode.\n", max_cols);
+ holdit();
+ ed (2);
+ rm ("?6;5;3"); /* Reset (origin, reverse, 132 col) */
+ println("Test VT100 'Toggle origin mode, forget rest' bug, part 2.\n");
+ printf("The screen should be in non-reverse, %d column mode.\n", min_cols);
+ return MENU_HOLD;
+}
+
+ /* Bug W:
+ * The dreaded "wraparound" bug! You CUP to col 80, write a char,
+ * CUP to another line in col 80, write a char. And the brain-damaged
+ * terminal thinks that "Hokay, so he's written a char in col 80, so
+ * I stay in col 80 and wait for next character. Let's see now, here
+ * comes another character, and I'm still in col 80, so I must make
+ * a NewLine first." -- It doesn't clear that "still in col 80" flag
+ * on a CUP. Argh!
+ */
+
+int
+bug_w(MENU_ARGS)
+{
+ int row, col;
+
+ cup (16,1);
+ println(" This illustrates the \"wrap around bug\" which exists on a");
+ println(" standard VT100. At the top of the screen there should be");
+ println(" a row of +'s, and the rightmost column should be filled");
+ println(" with *'s. But if the bug is present, some of the *'s may");
+ println(" be placed in other places, e.g. in the leftmost column,");
+ println(" and the top line of +'s may be scrolled away.");
+
+ cup(1,1);
+ for (col = 1; col <= min_cols-1; col++)
+ printf ("+");
+ for (row = 1; row <= max_lines; row++) {
+ hvp (row, min_cols);
+ printf ("*");
+ }
+ cup(max_lines,1);
+ return MENU_HOLD;
+}
+
+ /* Bug L:
+ * Check if the right half of double-width lines comes back
+ * when a line is first set to single-width, filled with stuff,
+ * set to double-width, and finally reset to single-width.
+ *
+ * A VT100 has this misfeature, and many others. Foo!
+ */
+
+int
+bug_l(MENU_ARGS)
+{
+ cup(15, 1);
+ printf("This-is-a-long-line-This-is-a-long-line-");
+ printf("This-is-a-long-line-This-is-a-long-line-");
+ cup(1, 1);
+ printf("This is a test of what happens to the right half of double-width");
+ println(" lines.");
+ printf("A common misfeature is that the right half does not come back");
+ println(" when a long");
+ printf("single-width line is set to double-width and then reset to");
+ println(" single-width.");
+
+ cup(5, 1);
+ println("Now the line below should contain 80 characters in single width.");
+ holdit();
+ cup(15, 1); decdwl();
+ cup(8, 1);
+ println("Now the line below should contain 40 characters in double width.");
+ holdit();
+ cup(15, 1); decswl();
+ cup(11, 1);
+ println("Now the line below should contain 80 characters in single width.");
+ holdit();
+
+ /* ...and in 132 column mode */
+
+ deccolm(TRUE);
+ ed(2);
+ cup(15, 1);
+ printf("This-is-a-long-line-This-is-a-long-line-");
+ printf("This-is-a-long-line-This-is-a-long-line-");
+ printf("This-is-a-long-line-This-is-a-long-line-");
+ printf("ending-here-");
+
+ cup(1, 1);
+ printf("This is the same test in %d column mode.", max_cols);
+
+ cup(5, 1);
+ printf("Now the line below should contain %d characters in single width.\n", max_cols);
+ holdit();
+ cup(15, 1); decdwl();
+ cup(8, 1);
+ printf("Now the line below should contain %d characters in double width.\n", max_cols/2);
+ holdit();
+ cup(15, 1); decswl();
+ cup(11, 1);
+ printf("Now the line below should contain %d characters in single width.\n", max_cols);
+ holdit();
+ deccolm(FALSE);
+ return MENU_NOHOLD;
+}
+
+int
+bug_s(MENU_ARGS)
+{
+ int i;
+ decstbm(20,10); /* 20-10=-10, < 2, so no scroll region. */
+ cup(1,1);
+ for (i=1; i<=20; i++)
+ printf("This is 20 lines of text (line %d), no scroll region.\n", i);
+ holdit();
+ ed(2);
+ decstbm(0,1); /* Should be interpreted as decstbm(1,1) = none */
+ cup(1,1);
+ for (i=1; i<=20; i++)
+ printf("This is 20 lines of text (line %d), no scroll region.\n", i);
+ holdit();
+ decstbm(0,0); /* No scroll region (just in case...) */
+ return MENU_NOHOLD;
+}
+
+void
+initterminal(int pn)
+{
+ init_ttymodes(pn);
+ setup_terminal("");
+}
+
+ /* Set up my personal prejudices */
+int
+setup_terminal(MENU_ARGS)
+{
+ if (LOG_ENABLED)
+ fprintf(log_fp, "Setup Terminal with test-defaults\n");
+
+ default_level(); /* Enter ANSI mode (if in VT52 mode) */
+ rm("?1"); /* cursor keys normal */
+ deccolm(FALSE); /* 80 col mode */
+ decsclm(FALSE); /* Jump scroll */
+ decscnm(FALSE); /* Normal screen */
+ rm("?6"); /* Absolute origin mode */
+ sm("?7"); /* Wrap around on */
+ rm("?8"); /* Auto repeat off */
+ sm("?40"); /* Enable 80/132 switch */
+ decstbm(0,0); /* No scroll region */
+ sgr("0"); /* Normal character attributes */
+
+ return MENU_NOHOLD;
+}
+
+void
+bye (void)
+{
+ /* Force my personal prejudices upon the poor luser */
+ if (LOG_ENABLED)
+ fprintf(log_fp, "Cleanup & exit\n");
+
+ default_level(); /* Enter ANSI mode (if in VT52 mode) */
+ rm("?1"); /* cursor keys normal */
+ deccolm(FALSE); /* 80 col mode */
+ decscnm(FALSE); /* Normal screen */
+ rm("?6"); /* Absolute origin mode */
+ sm("?7"); /* Wrap around on */
+ sm("?8"); /* Auto repeat on */
+ decstbm(0,0); /* No scroll region */
+ sgr("0"); /* Normal character attributes */
+
+ /* Say goodbye */
+
+ vt_clear(2);
+ vt_move(12,30);
+ printf("That's all, folks!\n");
+ printf("\n\n\n");
+ inflush();
+ close_tty();
+ exit(EXIT_SUCCESS);
+}
+
+#ifdef UNIX
+RETSIGTYPE
+onbrk(SIG_ARGS)
+{
+ signal(SIGINT, onbrk);
+ if (reading) {
+ brkrd = TRUE;
+#if HAVE_ALARM
+ alarm(0);
+#endif
+ } else {
+ longjmp(intrenv, 1);
+ }
+}
+
+RETSIGTYPE
+onterm(SIG_ARGS)
+{
+ signal(SIGTERM, onterm);
+ longjmp(intrenv, 1);
+}
+#endif
+
+int
+scanto(char *str, int *pos, int toc)
+{
+ char c;
+ int result = 0;
+
+ while (toc != (c = str[(*pos)])) {
+ *pos += 1;
+ if (isdigit(c)) result = result * 10 + c - '0';
+ else break;
+ }
+ if (c == toc) {
+ *pos += 1; /* point past delimiter */
+ return(result);
+ }
+ return(0);
+}
+
+int
+scan_any(char *str, int *pos, int toc)
+{
+ int save = *pos;
+ int value = scanto(str, pos, ';');
+ if (value == 0) {
+ *pos = save;
+ value = scanto(str, pos, toc);
+ if (str[*pos] != '\0')
+ value = 0;
+ }
+ return value;
+}
+
+static char *
+push_menu(int number)
+{
+ char *saved = current_menu;
+ current_menu = malloc(strlen(saved) + 10);
+ sprintf(current_menu, "%s%s%d", saved, *saved ? "." : "", number);
+ return saved;
+}
+
+static void
+pop_menu(char *saved)
+{
+ if (current_menu && *current_menu)
+ free(current_menu);
+ current_menu = saved;
+}
+
+int
+menu(MENU *table)
+{
+ int i, tablesize, choice;
+ char c;
+ char storage[BUFSIZ];
+
+ println("");
+ tablesize = 0;
+ for (i = 0; table[i].description[0] != '\0'; i++) {
+ printf(" %d%c %s\n", i,
+ table[i].dispatch == not_impl ? '*' : '.', table[i].description);
+ tablesize++;
+ }
+ tablesize--;
+
+ printf("\n Enter choice number (0 - %d): ", tablesize);
+ for(;;) {
+ char *s = storage;
+ inputline(s);
+ choice = 0;
+ while ((c = *s++) != '\0') {
+ if (c == '*') {
+ choice = -1;
+ break;
+ } else if (c >= '0' && c <= '9') {
+ choice = 10 * choice + c - '0';
+ } else {
+ choice = tablesize+1;
+ break;
+ }
+ }
+
+ if (choice < 0) {
+ for (choice = 0; choice <= tablesize; choice++) {
+ vt_clear(2);
+ if (table[choice].dispatch != 0) {
+ char *save = push_menu(choice);
+ char *name = table[choice].description;
+ if (LOG_ENABLED)
+ fprintf(log_fp, "Menu %s: %s\n", current_menu, name);
+ if ((*table[choice].dispatch)(name) == MENU_HOLD)
+ holdit();
+ pop_menu(save);
+ }
+ }
+ return 1;
+ } else if (choice <= tablesize) {
+ vt_clear(2);
+ if (table[choice].dispatch != 0) {
+ char *save = push_menu(choice);
+ char *name = table[choice].description;
+ if (LOG_ENABLED)
+ fprintf(log_fp, "Menu %s: %s\n", current_menu, name);
+ if ((*table[choice].dispatch)(name) != MENU_NOHOLD)
+ holdit();
+ pop_menu(save);
+ }
+ return (table[choice].dispatch != 0);
+ }
+ printf(" Bad choice, try again: ");
+ }
+}
+
+void
+chrprint (char *s)
+{
+ int i;
+
+ printf(" ");
+ vt_hilite(TRUE);
+ printf(" ");
+ for (i = 0; s[i] != '\0'; i++) {
+ int c = (unsigned char)s[i];
+ if (c <= ' ' || c >= '\177')
+ printf("<%d> ", c);
+ else
+ printf("%c ", c);
+ }
+ vt_hilite(FALSE);
+}
+
+/*
+ * Returns a pointer past the prefix, or null if no match is found
+ */
+char *
+skip_prefix(char *prefix, char *input)
+{
+ while (*prefix != '\0') {
+ if (*prefix++ != *input++)
+ return 0;
+ }
+ return input;
+}
+
+char *skip_csi(char *input)
+{
+ if ((unsigned char)*input == CSI) {
+ return input+1;
+ }
+ return skip_prefix(csi_input(), input);
+}
+
+char *skip_dcs(char *input)
+{
+ if ((unsigned char)*input == DCS) {
+ return input+1;
+ }
+ return skip_prefix(dcs_input(), input);
+}
+
+char *skip_ss3(char *input)
+{
+ if ((unsigned char)*input == SS3) {
+ return input+1;
+ }
+ return skip_prefix(ss3_input(), input);
+}
+
+/*
+ * Returns a pointer past digits, or null if none are found
+ */
+char *
+skip_digits(char *src)
+{
+ char *base = src;
+ while (*src != '\0' && isdigit(*src))
+ src++;
+ return (base == src) ? 0 : src;
+}
+
+/*
+ * Strip the string terminator (ST) from the given string, returning true if
+ * we did this.
+ */
+int
+strip_suffix(char *src, char *suffix)
+{
+ int have = strlen(src);
+ int want = strlen(suffix);
+ if (have > want) {
+ have -= want;
+ if (!strcmp(src+have, suffix)) {
+ src[have] = '\0';
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+/*
+ * Strip the string terminator (ST) from the given string, returning true if
+ * we did this.
+ */
+int
+strip_terminator(char *src)
+{
+ int ok = strip_suffix(src, st_input());
+ if (!ok) {
+ int have = strlen(src);
+ if (have > 0 && (unsigned char)src[have-1] == ST) {
+ ok = TRUE;
+ src[--have] = '\0';
+ }
+ }
+ if (!ok && LOG_ENABLED)
+ fprintf(log_fp, "Missing ST\n");
+ return ok;
+}
+
+/* Parse the contents of a report from DECRQSS, returning the data as well */
+int parse_decrqss(char *report, char *func)
+{
+ int code = -1;
+ char *parse = report;
+
+ if ((parse = skip_dcs(parse)) != 0
+ && strip_terminator(parse)
+ && strip_suffix(parse, func)) {
+ if (!strncmp(parse, "1$r", 3))
+ code = 1;
+ else if (!strncmp(parse, "0$r", 3))
+ code = 0;
+ }
+
+ if (code >= 0) {
+ while ((*report++ = parse[3]) != '\0')
+ parse++;
+ }
+ return code;
+}
+
+void
+title(int offset)
+{
+ vt_move(TITLE_LINE+offset, 10);
+ if (offset == 0 && *current_menu)
+ printf("Menu %s: ", current_menu);
+}
+
+static void
+my_vfprintf(FILE *fp, va_list ap, const char *fmt)
+{
+ while (*fmt != '\0') {
+ if (*fmt == '%') {
+ switch(*++fmt) {
+ case 'c':
+ fputc(va_arg(ap, int), fp);
+ break;
+ case 'x':
+ fprintf(fp, "%x", va_arg(ap, int));
+ break;
+ case 'd':
+ fprintf(fp, "%d", va_arg(ap, int));
+ break;
+ case 's':
+ fputs(va_arg(ap, char *), fp);
+ break;
+ }
+ } else if (*fmt != '\n') {
+ fputc(*fmt, fp);
+ }
+ fmt++;
+ }
+}
+
+/*
+ * Show a test-result, optionally logging it as well.
+ */
+void
+show_result(const char *fmt, ...)
+{
+ va_list ap;
+
+ if (*fmt != ' ')
+ fputc(' ', stdout);
+ va_start(ap, fmt);
+ my_vfprintf(stdout, ap, fmt);
+ va_end(ap);
+
+ if (LOG_ENABLED) {
+ fputs("Result: ", log_fp);
+ va_start(ap, fmt);
+ my_vfprintf(log_fp, ap, fmt);
+ va_end(ap);
+ fputc('\n', log_fp);
+ }
+}
+
+/*
+ * Bypass normal logging for control sequences that are used only to format
+ * the test results.
+ */
+void
+vt_clear(int code)
+{
+ log_disabled++;
+ ed(code);
+ log_disabled--;
+}
+
+void
+vt_el(int code)
+{
+ log_disabled++;
+ el(code);
+ log_disabled--;
+}
+
+void
+vt_move(int row, int col)
+{
+ log_disabled++;
+ cup(row, col);
+ log_disabled--;
+}
+
+void
+vt_hilite(int flag)
+{
+ log_disabled++;
+ sgr(flag ? "7" : "");
+ log_disabled--;
+}
diff --git a/doc/vttest-20011130/makefile b/doc/vttest-20011130/makefile
new file mode 100644
index 0000000..e830864
--- /dev/null
+++ b/doc/vttest-20011130/makefile
@@ -0,0 +1,171 @@
+# $Id$
+# Makefile-template for 'vttest'
+
+THIS = vttest
+RELEASE = 2
+
+#### Start of system configuration section. ####
+
+srcdir = .
+
+CC = gcc
+LINK = $(CC)
+INSTALL = /usr/bin/install -c
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_DATA = ${INSTALL} -m 644
+
+LIBS =
+CFLAGS = -g -O2
+LDFLAGS =
+
+prefix = /usr/local
+exec_prefix = ${prefix}
+
+bindir = ${exec_prefix}/bin
+mandir = ${prefix}/man/man$(manext)
+manext = 1
+
+#### End of system configuration section. ####
+
+SHELL = /bin/sh
+
+DEFINES = -DHAVE_CONFIG_H -DRELEASE=$(RELEASE)
+INCLUDES = -I. -I$(srcdir)
+CPPFLAGS = $(DEFINES) $(INCLUDES)
+
+.c.o:
+ $(CC) -c $(CPPFLAGS) $(CFLAGS) $<
+
+C_SRC = \
+ charsets.c \
+ color.c \
+ esc.c \
+ keyboard.c \
+ main.c \
+ mouse.c \
+ nonvt100.c \
+ printer.c \
+ reports.c \
+ reset.c \
+ setup.c \
+ sixel.c \
+ status.c \
+ ttymodes.c \
+ unix_io.c \
+ vt220.c \
+ vt420.c \
+ vt52.c \
+ xterm.c
+H_SRC = \
+ vttest.h \
+ esc.h \
+ ttymodes.h
+OBJS = \
+ charsets.o \
+ color.o \
+ esc.o \
+ keyboard.o \
+ main.o \
+ mouse.o \
+ nonvt100.o \
+ printer.o \
+ reports.o \
+ reset.o \
+ setup.o \
+ sixel.o \
+ status.o \
+ ttymodes.o \
+ unix_io.o \
+ vt220.o \
+ vt420.o \
+ vt52.o \
+ xterm.o
+
+SRC = patchlev.h \
+ CHANGES COPYING README BUGS \
+ $(THIS).lsm $(THIS).1 \
+ $(C_SRC) $(H_SRC) \
+ tech.set \
+ config.hin install.sh mkdirs.sh makefile.in configure.in
+
+DISTFILES = MANIFEST configure $(SRC)
+
+all: $(THIS)
+
+$(THIS): $(OBJS)
+ -mv $(THIS) o$(THIS)
+ $(LINK) $(CFLAGS) $(LDFLAGS) -o $(THIS) $(OBJS) $(LIBS)
+
+$(OBJS): config.h $(THIS).h patchlev.h
+
+install: all installdirs
+ $(INSTALL_PROGRAM) $(THIS) $(bindir)/$(THIS)
+ $(INSTALL_DATA) $(srcdir)/$(THIS).1 $(mandir)/$(THIS).$(manext)
+
+installdirs:
+ $(SHELL) ${srcdir}/mkdirs.sh $(bindir) $(mandir)
+
+uninstall:
+ rm -f $(bindir)/$(THIS)
+ rm -f $(mandir)/$(THIS).$(manext)
+
+makefile: makefile.in config.status
+ ./config.status
+
+config.status: configure
+ ./config.status --recheck
+
+mostlyclean:
+ rm -f *.o o$(THIS) core *~ *.BAK *.trace *.atac
+
+clean: mostlyclean
+ rm -f $(THIS)
+
+distclean: clean
+ rm -f makefile config.log config.cache config.status config.h
+
+realclean: distclean
+ rm -f tags TAGS # don't remove configure!
+
+tags: $(C_SRC) $(HDRS)
+ ctags $(C_SRC) $(HDRS)
+
+TAGS: $(C_SRC) $(HDRS)
+ etags $(C_SRC) $(HDRS)
+
+# I keep my sources in RCS, and assign a symbolic release to the current patch
+# level. The 'manifest' script knows how to build a list of files for a given
+# revision.
+MANIFEST: patchlev.h
+# manifest -rv$(RELEASE)`fgrep PATCHLEVEL patchlev.h | sed -e s'/^[^0-9]*/_/'`
+ manifest -rd`fgrep PATCH_DATE patchlev.h | sed -e s'/^[^0-9]*//'`
+
+dist: MANIFEST
+ - rm -f .fname .files
+ fgrep PATCH_DATE patchlev.h | sed -e 's/[^0-9.]//g' -e 's/^/$(THIS)-/' >.fname
+ cat MANIFEST | grep ' ' | egrep -v ' subdirectory$$' | sed -e 's/\ .*//' | uniq >.files
+ rm -rf `cat .fname`
+ TOP=`cat .fname`; mkdir $$TOP `cat .files | grep / | sed -e 's@/.*@@' | sed -e s@\^@$$TOP/@ | uniq`
+ for file in `cat .files`; do \
+ ln $(srcdir)/$$file `cat .fname`/$$file \
+ || { echo copying $$file instead; cp $$file `cat .fname`/$$file; }; \
+ done
+ tar -cf - `cat .fname` | gzip >`cat .fname`.tgz
+ rm -rf `cat .fname` .fname .files
+
+# Some of the output will be uuencoded because the test scripts include
+# <CR><LF> terminated ".bat" files for MS-DOS.
+dist-shar: MANIFEST
+ - rm -f .fname .files
+ fgrep PATCH_DATE patchlev.h | sed -e 's/[^0-9.]//g' -e 's/^/$(THIS)-/' >.fname
+ cat MANIFEST | grep ' ' | egrep -v ' subdirectory$$' | sed -e 's/\ .*//' | uniq >.files
+ shar -M -n`cat .fname` -opart -l50 `cat .files`
+ - rm -f .fname .files
+
+$(THIS).o: config.h
+
+lint:
+ $(LINT) $(CPPFLAGS) $(C_SRC)
+
+check: $(THIS)
+ @echo 'Sorry -- You must run this interactively.'
diff --git a/doc/vttest-20011130/makefile.in b/doc/vttest-20011130/makefile.in
new file mode 100644
index 0000000..58e8405
--- /dev/null
+++ b/doc/vttest-20011130/makefile.in
@@ -0,0 +1,172 @@
+# $Id$
+# Makefile-template for 'vttest'
+
+THIS = vttest
+RELEASE = 2
+
+#### Start of system configuration section. ####
+
+srcdir = @srcdir@
+VPATH = @srcdir@
+
+CC = @CC@
+LINK = $(CC)
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+
+LIBS = @LIBS@
+CFLAGS = @CFLAGS@
+LDFLAGS = @LDFLAGS@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+mandir = @mandir@/man$(manext)
+manext = 1
+
+#### End of system configuration section. ####
+
+SHELL = /bin/sh
+
+DEFINES = -DHAVE_CONFIG_H -DRELEASE=$(RELEASE)
+INCLUDES = -I. -I$(srcdir)
+CPPFLAGS = $(DEFINES) $(INCLUDES) @CPPFLAGS@
+
+.c.o:
+ $(CC) -c $(CPPFLAGS) $(CFLAGS) $<
+
+C_SRC = \
+ charsets.c \
+ color.c \
+ esc.c \
+ keyboard.c \
+ main.c \
+ mouse.c \
+ nonvt100.c \
+ printer.c \
+ reports.c \
+ reset.c \
+ setup.c \
+ sixel.c \
+ status.c \
+ ttymodes.c \
+ unix_io.c \
+ vt220.c \
+ vt420.c \
+ vt52.c \
+ xterm.c
+H_SRC = \
+ vttest.h \
+ esc.h \
+ ttymodes.h
+OBJS = \
+ charsets.o \
+ color.o \
+ esc.o \
+ keyboard.o \
+ main.o \
+ mouse.o \
+ nonvt100.o \
+ printer.o \
+ reports.o \
+ reset.o \
+ setup.o \
+ sixel.o \
+ status.o \
+ ttymodes.o \
+ unix_io.o \
+ vt220.o \
+ vt420.o \
+ vt52.o \
+ xterm.o
+
+SRC = patchlev.h \
+ CHANGES COPYING README BUGS \
+ $(THIS).lsm $(THIS).1 \
+ $(C_SRC) $(H_SRC) \
+ tech.set \
+ config.hin install.sh mkdirs.sh makefile.in configure.in
+
+DISTFILES = MANIFEST configure $(SRC)
+
+all: $(THIS)
+
+$(THIS): $(OBJS)
+ -mv $(THIS) o$(THIS)
+ $(LINK) $(CFLAGS) $(LDFLAGS) -o $(THIS) $(OBJS) $(LIBS)
+
+$(OBJS): config.h $(THIS).h patchlev.h
+
+install: all installdirs
+ $(INSTALL_PROGRAM) $(THIS) $(bindir)/$(THIS)
+ $(INSTALL_DATA) $(srcdir)/$(THIS).1 $(mandir)/$(THIS).$(manext)
+
+installdirs:
+ $(SHELL) ${srcdir}/mkdirs.sh $(bindir) $(mandir)
+
+uninstall:
+ rm -f $(bindir)/$(THIS)
+ rm -f $(mandir)/$(THIS).$(manext)
+
+makefile: makefile.in config.status
+ ./config.status
+
+config.status: configure
+ ./config.status --recheck
+
+mostlyclean:
+ rm -f *.o o$(THIS) core *~ *.BAK *.trace *.atac
+
+clean: mostlyclean
+ rm -f $(THIS)
+
+distclean: clean
+ rm -f makefile config.log config.cache config.status config.h
+
+realclean: distclean
+ rm -f tags TAGS # don't remove configure!
+
+tags: $(C_SRC) $(HDRS)
+ ctags $(C_SRC) $(HDRS)
+
+TAGS: $(C_SRC) $(HDRS)
+ etags $(C_SRC) $(HDRS)
+
+# I keep my sources in RCS, and assign a symbolic release to the current patch
+# level. The 'manifest' script knows how to build a list of files for a given
+# revision.
+MANIFEST: patchlev.h
+# manifest -rv$(RELEASE)`fgrep PATCHLEVEL patchlev.h | sed -e s'/^[^0-9]*/_/'`
+ manifest -rd`fgrep PATCH_DATE patchlev.h | sed -e s'/^[^0-9]*//'`
+
+dist: MANIFEST
+ - rm -f .fname .files
+ fgrep PATCH_DATE patchlev.h | sed -e 's/[^0-9.]//g' -e 's/^/$(THIS)-/' >.fname
+ cat MANIFEST | grep ' ' | egrep -v ' subdirectory$$' | sed -e 's/\ .*//' | uniq >.files
+ rm -rf `cat .fname`
+ TOP=`cat .fname`; mkdir $$TOP `cat .files | grep / | sed -e 's@/.*@@' | sed -e s@\^@$$TOP/@ | uniq`
+ for file in `cat .files`; do \
+ ln $(srcdir)/$$file `cat .fname`/$$file \
+ || { echo copying $$file instead; cp $$file `cat .fname`/$$file; }; \
+ done
+ tar -cf - `cat .fname` | gzip >`cat .fname`.tgz
+ rm -rf `cat .fname` .fname .files
+
+# Some of the output will be uuencoded because the test scripts include
+# <CR><LF> terminated ".bat" files for MS-DOS.
+dist-shar: MANIFEST
+ - rm -f .fname .files
+ fgrep PATCH_DATE patchlev.h | sed -e 's/[^0-9.]//g' -e 's/^/$(THIS)-/' >.fname
+ cat MANIFEST | grep ' ' | egrep -v ' subdirectory$$' | sed -e 's/\ .*//' | uniq >.files
+ shar -M -n`cat .fname` -opart -l50 `cat .files`
+ - rm -f .fname .files
+
+$(THIS).o: config.h
+
+lint:
+ $(LINT) $(CPPFLAGS) $(C_SRC)
+
+check: $(THIS)
+ @echo 'Sorry -- You must run this interactively.'
diff --git a/doc/vttest-20011130/mkdirs.sh b/doc/vttest-20011130/mkdirs.sh
new file mode 100755
index 0000000..91f6d04
--- /dev/null
+++ b/doc/vttest-20011130/mkdirs.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Last modified: 1994-03-25
+# Public domain
+
+errstatus=0
+
+for file in ${1+"$@"} ; do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d in ${1+"$@"} ; do
+ pathcomp="$pathcomp$d"
+ case "$pathcomp" in
+ -* ) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp" 1>&2
+ mkdir "$pathcomp" || errstatus=$?
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# mkinstalldirs ends here
diff --git a/doc/vttest-20011130/mouse.c b/doc/vttest-20011130/mouse.c
new file mode 100644
index 0000000..c3e2ff8
--- /dev/null
+++ b/doc/vttest-20011130/mouse.c
@@ -0,0 +1,441 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <esc.h>
+#include <ttymodes.h>
+
+#define MCHR(c) (((c) - ' ') & 0xff)
+
+#define isQuit(c) (((c) == 'q') || ((c) == 'Q'))
+
+static void
+cat_button(char *dst, char *src)
+{
+ if (*dst != 0) strcat(dst, ", ");
+ strcat(dst, src);
+}
+
+static char *
+locator_button(int b)
+{
+ static char result[80];
+
+ if (b) {
+ result[0] = 0;
+ if (b & 1) cat_button(result, "right");
+ if (b & 2) cat_button(result, "middle");
+ if (b & 4) cat_button(result, "left");
+ if (b & 8) cat_button(result, "M4");
+ } else {
+ strcpy(result, "no buttons down");
+ }
+ return result;
+}
+
+static char *
+locator_event(int e)
+{
+ char *result;
+ switch (e) {
+ case 0: result = "locator unavailable"; break;
+ case 1: result = "request - received a DECRQLP"; break;
+ case 2: result = "left button down"; break;
+ case 3: result = "left button up"; break;
+ case 4: result = "middle button down"; break;
+ case 5: result = "middle button up"; break;
+ case 6: result = "right button down"; break;
+ case 7: result = "right button up"; break;
+ case 8: result = "M4 button down"; break;
+ case 9: result = "M4 button up"; break;
+ case 10: result = "locator outside filter rectangle"; break;
+ default: result = "unknown event"; break;
+ }
+ return result;
+}
+
+static void
+show_click(int y, int x, int c)
+{
+ cup(y,x);
+ putchar(c);
+ vt_move(y,x);
+ fflush(stdout);
+}
+
+/* Print the corners of the highlight-region. Note that xterm doesn't use
+ * the last row.
+ */
+static void show_hilite(int first, int last)
+{
+ vt_move(first, 1); printf("+");
+ vt_move(last-1, 1); printf("+");
+ vt_move(first, min_cols); printf("+");
+ vt_move(last-1, min_cols); printf("+");
+ fflush(stdout);
+}
+
+static void show_locator_rectangle(void)
+{
+ const int first = 10;
+ const int last = 20;
+
+ decefr(first, 1, last, min_cols);
+ show_hilite(first, last);
+}
+
+static int show_locator_report(char *report, int row, int pixels)
+{
+ int Pe, Pb, Pr, Pc, Pp;
+ int now = row;
+
+ vt_move(3,10); vt_el(2); chrprint(report);
+ while ((report = skip_csi(report)) != 0
+ && (sscanf(report, "%d;%d;%d;%d&w", &Pe, &Pb, &Pr, &Pc) == 4
+ || sscanf(report, "%d;%d;%d;%d;%d&w", &Pe, &Pb, &Pr, &Pc, &Pp) == 5)) {
+ vt_move(row,10); vt_el(2);
+ show_result("%s - %s (%d,%d)", locator_event(Pe), locator_button(Pb), Pr, Pc);
+ vt_el(0);
+ if (!pixels) /* FIXME: we should be able to scale from the screen size */
+ show_click(Pr, Pc, '*');
+ report = strchr(report, '&') + 2;
+ now = row++;
+ }
+ return now;
+}
+
+static void
+show_dec_locator_events(MENU_ARGS, int mode, int pixels)
+{
+ int row, now;
+
+ vt_move(1,1);
+ println(the_title);
+ println("Press 'q' to quit. Mouse events will be marked with the button number.");
+
+ decelr((mode > 0) ? mode : ((mode == 0) ? 2 : -mode), pixels ? 1 : 2);
+
+ if (mode < 0)
+ show_locator_rectangle();
+ else if (mode == 0)
+ do_csi("'w"); /* see decefr() */
+
+ decsle(1); /* report button-down events */
+ decsle(3); /* report button-up events */
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ now = 4;
+ for(;;) {
+ char *report = instr();
+ if (isQuit(*report)) {
+ decrqlp(1);
+ report = instr();
+ show_locator_report(report, now+1, pixels);
+ break;
+ }
+ row = 4;
+ while (now > row) {
+ vt_move(now,1); vt_el(2);
+ now--;
+ }
+ now = show_locator_report(report, row, pixels);
+ if (mode == 0) {
+ decelr(2, pixels ? 1 : 2);
+ do_csi("'w"); /* see decefr() */
+ }
+ }
+
+ decelr(0,0);
+ restore_ttymodes();
+
+ vt_move(max_lines-2,1);
+}
+
+/* Normal Mouse Tracking */
+static void
+show_mouse_tracking(MENU_ARGS, char *the_mode)
+{
+ int y = 0, x = 0;
+
+ vt_move(1,1);
+ println(the_title);
+ println("Press 'q' to quit. Mouse events will be marked with the button number.");
+
+ sm(the_mode);
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ for(;;) {
+ char *report = instr();
+ if (isQuit(*report))
+ break;
+ vt_move(3,10); vt_el(2); chrprint(report);
+ while ((report = skip_csi(report)) != 0
+ && *report == 'M'
+ && strlen(report) >= 4) {
+ int b = MCHR(report[1]);
+ int adj = 1;
+ vt_move(4,10); vt_el(2);
+ show_result("code 0x%x (%d,%d)", b, MCHR(report[3]), MCHR(report[2]));
+ if (b & ~3) {
+ if (b & 4)
+ printf(" shift");
+ if (b & 8)
+ printf(" meta");
+ if (b & 16)
+ printf(" control");
+ if (b & 32)
+ printf(" motion");
+ if (b & 64)
+ adj += 3;
+ }
+ b &= 3;
+ if (b != 3) {
+ b += adj;
+ printf(" button %d", b);
+ show_click(MCHR(report[3]), MCHR(report[2]), b + '0');
+ } else if (MCHR(report[2]) != x || MCHR(report[3]) != y) {
+ printf(" release");
+ show_click(MCHR(report[3]), MCHR(report[2]), '*');
+ }
+ x = MCHR(report[2]);
+ y = MCHR(report[3]);
+ report += 4;
+ }
+ }
+
+ rm(the_mode);
+ restore_ttymodes();
+
+ vt_move(max_lines-2,1);
+}
+
+static int
+test_dec_locator_event(MENU_ARGS)
+{
+ show_dec_locator_events(PASS_ARGS, 2, FALSE);
+ return MENU_HOLD;
+}
+
+static int
+test_dec_locator_events(MENU_ARGS)
+{
+ show_dec_locator_events(PASS_ARGS, 1, FALSE);
+ return MENU_HOLD;
+}
+
+static int
+test_dec_locator_event_p(MENU_ARGS)
+{
+ show_dec_locator_events(PASS_ARGS, 2, TRUE);
+ return MENU_HOLD;
+}
+
+static int
+test_dec_locator_events_p(MENU_ARGS)
+{
+ show_dec_locator_events(PASS_ARGS, 1, TRUE);
+ return MENU_HOLD;
+}
+
+static int
+test_dec_locator_rectangle(MENU_ARGS)
+{
+ show_dec_locator_events(PASS_ARGS, -2, FALSE);
+ return MENU_HOLD;
+}
+
+static int
+test_dec_locator_unfiltered(MENU_ARGS)
+{
+ show_dec_locator_events(PASS_ARGS, 0, FALSE);
+ return MENU_HOLD;
+}
+
+/* Any-Event Mouse Tracking */
+static int
+test_mouse_any_event(MENU_ARGS)
+{
+ show_mouse_tracking(PASS_ARGS, "?1003");
+ return MENU_HOLD;
+}
+
+/* Button-Event Mouse Tracking */
+static int
+test_mouse_button_event(MENU_ARGS)
+{
+ show_mouse_tracking(PASS_ARGS, "?1002");
+ return MENU_HOLD;
+}
+
+/* Mouse Highlight Tracking */
+static int
+test_mouse_hilite(MENU_ARGS)
+{
+ const int first = 10;
+ const int last = 20;
+ int y = 0, x = 0;
+
+ vt_move(1,1);
+ println(the_title);
+ println("Press 'q' to quit. Mouse events will be marked with the button number.");
+ printf("Highlighting range is [%d..%d)\n", first, last);
+ show_hilite(first,last);
+
+ sm("?1001");
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ for(;;) {
+ char *report = instr();
+ if (isQuit(*report))
+ break;
+ show_hilite(first,last);
+ vt_move(4,10); vt_el(2); chrprint(report);
+ if ((report = skip_csi(report)) != 0) {
+ if (*report == 'M'
+ && strlen(report) == 4) {
+ int b = MCHR(report[1]);
+ b &= 7;
+ x = MCHR(report[2]);
+ y = MCHR(report[3]);
+ if (b != 3) {
+ /* send the xterm the highlighting range (it MUST be done first) */
+ do_csi("1;%d;%d;%d;%d;T", x, y, 10, 20);
+ /* now, show the mouse-click */
+ if (b < 3) b++;
+ show_click(y, x, b + '0');
+ }
+ /* interpret the event */
+ vt_move(5,10); vt_el(2);
+ show_result("tracking: code 0x%x (%d,%d)", MCHR(report[1]), y, x);
+ fflush(stdout);
+ } else if (*report == 'T' && strlen(report) == 7) {
+ /* interpret the event */
+ vt_move(5,10); vt_el(2);
+ show_result("done: start(%d,%d), end(%d,%d), mouse(%d,%d)",
+ MCHR(report[2]), MCHR(report[1]),
+ MCHR(report[4]), MCHR(report[3]),
+ MCHR(report[6]), MCHR(report[5]));
+ if (MCHR(report[2]) != y
+ || MCHR(report[1]) != x)
+ show_click(MCHR(report[2]), MCHR(report[1]), 's');
+ if (MCHR(report[4]) != y
+ || MCHR(report[3]) != x)
+ show_click(MCHR(report[4]), MCHR(report[3]), 'e');
+ if (MCHR(report[6]) != y
+ || MCHR(report[5]) != x)
+ show_click(MCHR(report[6]), MCHR(report[5]), 'm');
+ } else if (*report == 't' && strlen(report) == 3) {
+ /* interpret the event */
+ vt_move(5,10); vt_el(2);
+ show_result("done: end(%d,%d)",
+ MCHR(report[2]), MCHR(report[1]));
+ if (MCHR(report[2]) != y
+ || MCHR(report[1]) != x)
+ show_click(MCHR(report[2]), MCHR(report[1]), 'e');
+ }
+ }
+ }
+
+ rm("?1001");
+ restore_ttymodes();
+
+ vt_move(max_lines-2,1);
+ return MENU_HOLD;
+}
+
+/* Normal Mouse Tracking */
+static int
+test_mouse_normal(MENU_ARGS)
+{
+ show_mouse_tracking(PASS_ARGS, "?1000");
+ return MENU_HOLD;
+}
+
+/* X10 Mouse Compatibility */
+static int
+test_X10_mouse(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+ println("Press 'q' to quit. Mouse events will be marked with the button number.");
+
+ sm("?9");
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ for(;;) {
+ char *report = instr();
+ if (isQuit(*report))
+ break;
+ vt_move(3,10); vt_el(2); chrprint(report);
+ if ((report = skip_csi(report)) != 0
+ && *report == 'M'
+ && strlen(report) == 4) {
+ int x = report[2] - ' ';
+ int y = report[3] - ' ';
+ cup(y,x);
+ printf("%d", report[1] - ' ' + 1);
+ vt_move(y,x);
+ fflush(stdout);
+ }
+ }
+
+ rm("?9");
+ restore_ttymodes();
+
+ vt_move(max_lines-2,1);
+ return MENU_HOLD;
+}
+
+/*
+ * DEC locator events are implemented on DECterm, to emulate VT220.
+ */
+static int
+tst_dec_locator_events (MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Return to main menu", 0 },
+ { "One-Shot", test_dec_locator_event },
+ { "Repeated", test_dec_locator_events },
+ { "One-Shot (pixels)", test_dec_locator_event_p },
+ { "Repeated (pixels)", test_dec_locator_events_p },
+ { "Filter Rectangle", test_dec_locator_rectangle },
+ { "Filter Rectangle (unfiltered)", test_dec_locator_unfiltered },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); println("DEC Locator Events");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/*
+ * xterm generally implements mouse escape sequences (except for dtterm and
+ * DECterm). XFree86 xterm implements some additional controls.
+ */
+int
+tst_mouse(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Return to main menu", 0 },
+ { "X10 Mouse Compatibility", test_X10_mouse },
+ { "Normal Mouse Tracking", test_mouse_normal },
+ { "Mouse Highlight Tracking", test_mouse_hilite },
+ { "Mouse Any-Event Tracking (XFree86 xterm)", test_mouse_any_event },
+ { "Mouse Button-Event Tracking (XFree86 xterm)", test_mouse_button_event },
+ { "DEC Locator Events (DECterm)", tst_dec_locator_events },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); println("XTERM mouse features");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/nonvt100.c b/doc/vttest-20011130/nonvt100.c
new file mode 100644
index 0000000..7e9676f
--- /dev/null
+++ b/doc/vttest-20011130/nonvt100.c
@@ -0,0 +1,437 @@
+/* $Id$ */
+
+/*
+ * The list of non-VT320 codes was compiled using the list of non-VT320 codes
+ * described in the Kermit 3.13 documentation, combined with the ISO-6429
+ * (ECMA-48) spec.
+ */
+#include <vttest.h>
+#include <ttymodes.h>
+#include <esc.h>
+
+int
+not_impl(MENU_ARGS)
+{
+ vt_move(1,1);
+ printf("Sorry, test not implemented:\r\n\r\n %s", the_title);
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+/* VT420 doesn't do this, VT510 does */
+static int
+tst_CBT(MENU_ARGS)
+{
+ int n;
+ int last = (min_cols + 7) / 8;
+
+ for (n = 1; n <= last; n++) {
+ cup(1,min_cols);
+ cbt(n);
+ printf("%d", last + 1 - n);
+ }
+ vt_move(max_lines-3,1);
+ vt_clear(0);
+ println(the_title);
+ println("The tab-stops should be numbered consecutively starting at 1.");
+ return MENU_HOLD;
+}
+
+/* Note: CHA and HPA have identical descriptions in ECMA-48 */
+/* dtterm implements this (VT400 doesn't, VT510 does) */
+static int
+tst_CHA(MENU_ARGS)
+{
+ int n;
+
+ for (n = 1; n < max_lines-3; n++) {
+ cup(n, min_cols - n);
+ cha(n);
+ printf("+");
+ }
+ vt_move(max_lines-3, 1);
+ for (n = 1; n <= min_cols; n++)
+ printf("%c", n == max_lines-3 ? '+' : '*');
+ vt_move(max_lines-2, 1);
+ println(the_title);
+ println("There should be a diagonal of +'s down to the row of *'s above this message");
+ return MENU_HOLD;
+}
+
+/*
+ * Kermit's documentation refers to this as CHI, ECMA-48 as CHT.
+ *
+ * VT420 doesn't do this, VT510 does
+ */
+static int
+tst_CHT(MENU_ARGS)
+{
+ int n;
+ int last = (min_cols * 2 + 7) / 8;
+
+ vt_move(1,1);
+ println("CHT with param == 1:");
+ for (n = 0; n < last; n++) {
+ cht(1);
+ printf("*");
+ }
+
+ vt_move(4,1);
+ println("CHT with param != 1:");
+ for (n = 0; n < last; n++) {
+ cup(5,1);
+ cht(n);
+ printf("+");
+ }
+
+ vt_move(7,1);
+ println("Normal tabs:");
+ for (n = 0; n < last; n++) {
+ printf("\t*");
+ }
+
+ vt_move(max_lines-3, 1);
+ println(the_title);
+ println("The lines with *'s above should look the same (they're designed to");
+ println("wrap-around once).");
+ return MENU_HOLD;
+}
+
+/* VT420 doesn't do this, VT510 does */
+static int
+tst_CNL(MENU_ARGS)
+{
+ int n;
+
+ vt_move(1, 1);
+ printf("1.");
+ for (n = 1; n <= max_lines - 3; n++) {
+ cup(1, min_cols);
+ cnl(n-1);
+ printf("%d.", n);
+ }
+
+ vt_move(max_lines-3, 1);
+ vt_clear(0);
+ println(the_title);
+ println("The lines above this should be numbered in sequence, from 1.");
+ return MENU_HOLD;
+}
+
+/*
+ * VT510 & up
+ *
+ * There's a comment in the MS-DOS Kermit 3.13 documentation that implies CPL
+ * is used to replace RI (reverse-index). ECMA-48 doesn't specify scrolling
+ * regions, DEC terminals do apparently, so for CPL and CNL we'll test this.
+ */
+static int
+tst_CPL(MENU_ARGS)
+{
+ int i;
+
+ vt_move(max_lines, 1);
+ for (i = max_lines-1; i > 0; i--) {
+ cpl(1);
+ printf("%d.", i);
+ }
+
+ vt_move(max_lines-3, 1);
+ vt_clear(0);
+ println(the_title);
+ println("The lines above this should be numbered in sequence, from 1.");
+ return MENU_HOLD;
+}
+
+/* VT420 doesn't do this, VT510 does */
+static int
+tst_HPA(MENU_ARGS)
+{
+ int n;
+ int last = max_lines-4;
+
+ for (n = 1; n < last; n++) {
+ cup(n, min_cols - n);
+ hpa(n);
+ printf("+");
+ }
+
+ vt_move(last, 1);
+ for (n = 1; n <= min_cols; n++)
+ printf("%c", n == last ? '+' : '*');
+ vt_move(last+1, 1);
+ println(the_title);
+ println("There should be a diagonal of +'s down to the row of *'s above this message.");
+ println("(The + in the row of *'s is the target)");
+ return MENU_HOLD;
+}
+
+/*
+ * Neither VT420 nor VT510.
+ */
+static int
+tst_REP(MENU_ARGS)
+{
+ int n;
+ int last = max_lines-4;
+
+ vt_move(1,1);
+ for (n = 1; n < last; n++) {
+ if (n > 1) {
+ printf(" ");
+ if (n > 2)
+ rep(n-2);
+ }
+ printf("+");
+ rep(1); /* make that 2 +'s */
+ rep(10); /* this should be ignored, since a control sequence precedes */
+ println("");
+ }
+
+ vt_move(last, 1);
+ for (n = 1; n <= min_cols; n++)
+ printf("%c", (n == last || n == last+1) ? '+' : '*');
+ vt_move(last+1, 1);
+ println(the_title);
+ println("There should be a diagonal of 2 +'s down to the row of *'s above this message.");
+ println("(The ++ in the row of *'s is the target)");
+ return MENU_HOLD;
+}
+
+/*
+ * Test the SD (scroll-down) by forcing characters written in a diagonal into
+ * a horizontal row.
+ *
+ * VT400 and dtterm use the (incorrect?) escape sequence (ending with 'T'
+ * instead of '^'), apparently someone misread 05/14 as 05/04 or vice versa.
+ */
+int
+tst_SD(MENU_ARGS)
+{
+ int n;
+ int last = max_lines - 3;
+
+ for (n = 1; n < last; n++) {
+ cup(n, n);
+ printf("*");
+ sd(1);
+ }
+ vt_move(last+1,1);
+ vt_clear(0);
+ println(the_title);
+ println("There should be a horizontal row of *'s above, just above the message.");
+ return MENU_HOLD;
+}
+
+/*
+ * not in VT510
+ *
+ * Test the SL (scroll-left) by forcing characters written in a diagonal into
+ * a vertical line.
+ */
+static int
+tst_SL(MENU_ARGS)
+{
+ int n;
+ int last = max_lines - 3;
+
+ for (n = 1; n < last; n++) {
+ cup(n, min_cols/2 + last - n);
+ printf("*");
+ sl(1);
+ }
+ vt_move(last,1);
+ vt_clear(0);
+ println(the_title);
+ println("There should be a vertical column of *'s centered above.");
+ return MENU_HOLD;
+}
+
+/*
+ * not in VT510
+ *
+ * Test the SR (scroll-right) by forcing characters written in a diagonal into
+ * a vertical line.
+ */
+static int
+tst_SR(MENU_ARGS)
+{
+ int n;
+ int last = max_lines - 3;
+
+ for (n = 1; n < last; n++) {
+ cup(n, min_cols/2 - last + n);
+ printf("*");
+ sr(1);
+ }
+ vt_move(last,1);
+ vt_clear(0);
+ println(the_title);
+ println("There should be a vertical column of *'s centered above.");
+ return MENU_HOLD;
+}
+
+/*
+ * Test the SU (scroll-up) by forcing characters written in a diagonal into
+ * a horizontal row.
+ */
+int
+tst_SU(MENU_ARGS)
+{
+ int n;
+ int last = max_lines - 3;
+
+ for (n = 1; n < last; n++) {
+ cup(last + 1 - n, n);
+ printf("*");
+ su(1);
+ }
+ vt_move(last+1,1);
+ vt_clear(0);
+ println(the_title);
+ println("There should be a horizontal row of *'s above, on the top row.");
+ return MENU_HOLD;
+}
+
+/*
+ * Test SPA (set-protected area)
+ */
+static int
+tst_SPA(MENU_ARGS)
+{
+ int i, j, pass;
+
+ for (pass = 0; pass < 2; pass++) {
+ if (pass == 0) {
+ esc("V"); /* SPA */
+ }
+ /* make two passes so we can paint over the protected-chars in the second */
+ for (i = 5; i <= max_lines - 6; i++) {
+ cup(i, 20);
+ for (j = 20; j < min_cols - 20; j++) {
+ printf("*");
+ }
+ }
+ if (pass == 0) {
+ esc("W"); /* EPA */
+
+ cup(max_lines/2, min_cols/2);
+ ed(0); /* after the cursor */
+ ed(1); /* before the cursor */
+ ed(2); /* the whole display */
+
+ el(0); /* after the cursor */
+ el(1); /* before the cursor */
+ el(2); /* the whole line */
+
+ ech(min_cols);
+
+ cup(max_lines-4, 1);
+ println(the_title);
+ println("There should be an solid box made of *'s in the middle of the screen.");
+ holdit();
+ }
+ }
+ return MENU_NOHOLD;
+}
+
+/*
+ * Kermit's documentation refers to this as CVA, ECMA-48 as VPA.
+ * Move the cursor in the current column to the specified line.
+ *
+ * VT420 doesn't do this, VT510 does
+ */
+static int
+tst_VPA(MENU_ARGS)
+{
+ int n;
+
+ vt_move(5, 20);
+ for (n = 20; n <= min_cols - 20; n++)
+ printf("*");
+ for (n = 5; n < max_lines - 6; n++) {
+ vpa(n);
+ printf("*\b");
+ }
+ for (n = min_cols - 20; n >= 20; n--)
+ printf("\b*\b");
+ for (n = 5; n < max_lines - 6; n++) {
+ vpa(n);
+ printf("*\b");
+ }
+
+ vt_move(max_lines-3, 1);
+ println(the_title);
+ println("There should be a box-outline made of *'s in the middle of the screen.");
+ return MENU_HOLD;
+}
+
+/******************************************************************************/
+
+static int
+tst_ecma48_curs(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Character-Position-Absolute (HPA)", tst_HPA },
+ { "Test Cursor-Back-Tab (CBT)", tst_CBT },
+ { "Test Cursor-Character-Absolute (CHA)", tst_CHA },
+ { "Test Cursor-Horizontal-Index (CHT)", tst_CHT },
+ { "Test Line-Position-Absolute (VPA)", tst_VPA },
+ { "Test Next-Line (CNL)", tst_CNL },
+ { "Test Previous-Line (CPL)", tst_CPL },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("ISO-6429 (ECMA-48) Cursor-Movement");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+static int
+tst_ecma48_misc(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Protected-Areas (SPA)", tst_SPA },
+ { "Test Repeat (REP)", tst_REP },
+ { "Test Scroll-Down (SD)", tst_SD },
+ { "Test Scroll-Left (SL)", tst_SL },
+ { "Test Scroll-Right (SR)", tst_SR },
+ { "Test Scroll-Up (SU)", tst_SU },
+ { "", 0 },
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("Miscellaneous ISO-6429 (ECMA-48) Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+int
+tst_nonvt100(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test of VT220/VT320 features", tst_vt220 },
+ { "Test of VT420 features", tst_vt420 },
+ { "Test ISO-6429 cursor-movement", tst_ecma48_curs },
+ { "Test ISO-6429 colors", tst_colors },
+ { "Test other ISO-6429 features", tst_ecma48_misc },
+ { "Test XTERM special features", tst_xterm },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("Non-VT100 Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/patchlev.h b/doc/vttest-20011130/patchlev.h
new file mode 100644
index 0000000..89f77cf
--- /dev/null
+++ b/doc/vttest-20011130/patchlev.h
@@ -0,0 +1,3 @@
+/* $Id$ */
+#define PATCHLEVEL 7
+#define PATCH_DATE 20011130
diff --git a/doc/vttest-20011130/printer.c b/doc/vttest-20011130/printer.c
new file mode 100644
index 0000000..f4a0ffb
--- /dev/null
+++ b/doc/vttest-20011130/printer.c
@@ -0,0 +1,198 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <esc.h>
+
+static int pex_mode;
+static int pff_mode;
+static int started;
+static int assigned;
+static int margin_lo;
+static int margin_hi;
+
+static void
+setup_printout(MENU_ARGS, int visible, char * whole)
+{
+ margin_lo = 7;
+ margin_hi = max_lines - 5;
+
+ vt_clear(2);
+ cup(1,1);
+ println(the_title);
+ println("Test screen for printing. We will set scrolling margins at");
+ printf("lines %d and %d, and write a test pattern there.\n", margin_lo, margin_hi);
+ printf("The test pattern should be %s.\n", visible
+ ? "visible"
+ : "invisible");
+ printf("The %s should be in the printer's output.\n", whole);
+ decstbm(margin_lo, margin_hi);
+ cup(margin_lo, 1);
+}
+
+static void
+test_printout(void)
+{
+ int row, col;
+ vt_move(margin_hi,1);
+ for (row = 0; row < max_lines; row++) {
+ printf("%3d:", row);
+ for (col = 0; col < min_cols - 5; col++) {
+ printf("%c", ((row + col) % 26) + 'a');
+ }
+ printf("\n");
+ }
+}
+
+static void
+cleanup_printout(void)
+{
+ decstbm(0, 0);
+ vt_move(max_lines-2,1);
+}
+
+static int
+tst_Assign(MENU_ARGS)
+{
+ mc_printer_assign(assigned = !assigned);
+ return MENU_HOLD;
+}
+
+static int
+tst_DECPEX(MENU_ARGS)
+{
+ decpex(pex_mode = !pex_mode);
+ return MENU_HOLD;
+}
+
+static int
+tst_DECPFF(MENU_ARGS)
+{
+ decpff(pff_mode = !pff_mode);
+ return MENU_HOLD;
+}
+
+static int
+tst_Start(MENU_ARGS)
+{
+ mc_printer_start(started = !started);
+ return MENU_HOLD;
+}
+
+static int
+tst_autoprint(MENU_ARGS)
+{
+ setup_printout(PASS_ARGS, TRUE, "scrolling region");
+ mc_autoprint(TRUE);
+ test_printout();
+ mc_autoprint(FALSE);
+ cleanup_printout();
+ return MENU_HOLD;
+}
+
+static int
+tst_printer_controller(MENU_ARGS)
+{
+ setup_printout(PASS_ARGS, FALSE, "scrolling region");
+ mc_printer_controller(TRUE);
+ test_printout();
+ mc_printer_controller(FALSE);
+ cleanup_printout();
+ return MENU_HOLD;
+}
+
+static int
+tst_print_all_pages(MENU_ARGS)
+{
+ setup_printout(PASS_ARGS, TRUE, "contents of all pages");
+ test_printout();
+ mc_print_all_pages();
+ cleanup_printout();
+ return MENU_HOLD;
+}
+
+static int
+tst_print_cursor(MENU_ARGS)
+{
+ int row;
+ setup_printout(PASS_ARGS, TRUE, "reverse of the scrolling region");
+ test_printout();
+ for (row = margin_hi; row >= margin_lo; row--) {
+ vt_move(row,1);
+ mc_print_cursor_line();
+ }
+ cleanup_printout();
+ return MENU_HOLD;
+}
+
+static int
+tst_print_display(MENU_ARGS)
+{
+ setup_printout(PASS_ARGS, TRUE, "whole display");
+ test_printout();
+ mc_print_composed();
+ cleanup_printout();
+ return MENU_HOLD;
+}
+
+static int
+tst_print_page(MENU_ARGS)
+{
+ setup_printout(PASS_ARGS, TRUE, pex_mode ? "whole page" : "scrolling region");
+ test_printout();
+ mc_print_page();
+ cleanup_printout();
+ return MENU_HOLD;
+}
+
+int
+tst_printing(MENU_ARGS)
+{
+ static char pex_mesg[80];
+ static char pff_mesg[80];
+ static char assign_mesg[80];
+ static char start_mesg[80];
+
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { assign_mesg, tst_Assign },
+ { start_mesg, tst_Start },
+ { pex_mesg, tst_DECPEX },
+ { pff_mesg, tst_DECPFF },
+ { "Test Auto-print mode (MC - DEC private mode)", tst_autoprint },
+ { "Test Printer-controller mode (MC)", tst_printer_controller },
+ { "Test Print-page (MC)", tst_print_page },
+ { "Test Print composed main-display (MC)", tst_print_display },
+ { "Test Print all pages (MC)", tst_print_all_pages },
+ { "Test Print cursor line (MC)", tst_print_cursor },
+ { "", 0 }
+ };
+
+ do {
+ sprintf(pex_mesg, "%s Printer-Extent mode (DECPEX)",
+ pex_mode ? "Disable" : "Enable");
+ sprintf(pff_mesg, "%s Print Form Feed Mode (DECPFF)",
+ pff_mode ? "Disable" : "Enable");
+ strcpy(assign_mesg, assigned
+ ? "Release printer (MC)"
+ : "Assign printer to active session (MC)");
+ sprintf(start_mesg, "%s printer-to-host session (MC)",
+ started ? "Stop" : "Start");
+ vt_clear(2);
+ title(0); printf("Printing-Control Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+
+ if (pex_mode)
+ decpex(pex_mode = 0);
+
+ if (pff_mode)
+ decpex(pff_mode = 0);
+
+ if (assigned)
+ mc_printer_start(assigned = 0);
+
+ if (started)
+ mc_printer_start(started = 0);
+
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/reports.c b/doc/vttest-20011130/reports.c
new file mode 100644
index 0000000..0cb921c
--- /dev/null
+++ b/doc/vttest-20011130/reports.c
@@ -0,0 +1,510 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <ttymodes.h>
+#include <esc.h>
+#include <ctype.h>
+
+static
+struct table {
+ int key;
+ char *msg;
+} paritytable[] = {
+ { 1, "NONE" },
+ { 4, "ODD" },
+ { 5, "EVEN" },
+ { -1, "" }
+},nbitstable[] = {
+ { 1, "8" },
+ { 2, "7" },
+ { -1,"" }
+},speedtable[] = {
+ { 0, "50" },
+ { 8, "75" },
+ { 16, "110" },
+ { 24, "134.5"},
+ { 32, "150" },
+ { 40, "200" },
+ { 48, "300" },
+ { 56, "600" },
+ { 64, "1200" },
+ { 72, "1800" },
+ { 80, "2000" },
+ { 88, "2400" },
+ { 96, "3600" },
+ { 104, "4800" },
+ { 112, "9600" },
+ { 120, "19200" },
+ { 128, "38400" },
+ { -1, "" }
+},operating_level[] = {
+ { 6, "VT102" },
+ { 12, "VT125" },
+ { 61, "VT100 family" },
+ { 62, "VT200 family" },
+ { 63, "VT300 family" },
+ { 64, "VT400 family" },
+ { 65, "VT500 family" },
+ { -1, "" }
+},extensions[] = {
+ { 1, "132 columns" }, /* vt400 */
+ { 2, "printer port" }, /* vt400 */
+ { 3, "ReGIS Graphics" }, /* kermit */
+ { 4, "Sixel Graphics" }, /* kermit */
+ { 6, "selective erase" }, /* vt400 */
+ { 7, "soft character set (DRCS)" }, /* vt400 */
+ { 8, "user-defined keys" }, /* vt400 */
+ { 9, "national replacement character-sets" }, /* kermit */
+ { 10, "text ruling vector" }, /* ? */
+ { 11, "25th status line" }, /* ? */
+ { 12, "Serbo-Croation (SCS)" }, /* vt500 */
+ { 13, "local editing mode" }, /* kermit */
+ { 14, "8-bit architecture" }, /* ? */
+ { 15, "DEC technical set" }, /* vt400 */
+ { 16, "locator device port (ReGIS)" }, /* kermit */
+ { 17, "terminal state reports" }, /* ? */
+ { 18, "user windows" }, /* vt400 */
+ { 19, "two sessions" }, /* vt400 */
+ { 21, "horizontal scrolling" }, /* vt400 */
+ { 22, "color" }, /* vt500 */
+ { 23, "Greek" }, /* vt500 */
+ { 24, "Turkish" }, /* vt500 */
+ { 29, "ANSI text locator" }, /* DXterm */
+ { 39, "page memory extension" }, /* ? */
+ { 42, "ISO Latin-2" }, /* vt500 */
+ { 44, "PC Term" }, /* vt500 */
+ { 45, "Soft key mapping" }, /* vt500 */
+ { 46, "ASCII Terminal emulation (WYSE,TVI,...)" }, /* vt500 */
+ { -1, "" }
+};
+
+static int
+legend(int n, char *input, char *word, char *description)
+{
+ int i;
+ unsigned len = strlen(word);
+ char buf[BUFSIZ];
+
+ for (i = 0; input[i] != 0; i++) {
+ if ((i == 0 || !isalpha(input[i-1]))
+ && !strncmp(word, input+i, len)) {
+ sprintf(buf, "%-8s %-3s = %s", n ? "" : "Legend:", word, description);
+ show_result("%s", buf);
+ println("");
+ return n+1;
+ }
+ }
+ return n;
+}
+
+static char *
+lookup(struct table t[], int k)
+{
+ int i;
+ for (i = 0; t[i].key != -1; i++) {
+ if (t[i].key == k) return(t[i].msg);
+ }
+ return("BAD VALUE");
+}
+
+static int
+scan_DA(char *str, int *pos)
+{
+ int save = *pos;
+ int value = scanto(str, pos, ';');
+ if (value == 0) {
+ *pos = save;
+ value = scanto(str, pos, 'c');
+ if (str[*pos] != '\0')
+ value = 0;
+ }
+ return value;
+}
+
+/******************************************************************************/
+
+static int
+tst_DA(MENU_ARGS)
+{
+ int i, found;
+ char *report, *cmp;
+
+ static char *attributes[][2] = { /* after CSI */
+ { "?1;0c", "No options (vanilla VT100)" },
+ { "?1;1c", "VT100 with STP" },
+ { "?1;2c", "VT100 with AVO (could be a VT102)" },
+ { "?1;3c", "VT100 with STP and AVO" },
+ { "?1;4c", "VT100 with GPO" },
+ { "?1;5c", "VT100 with STP and GPO" },
+ { "?1;6c", "VT100 with AVO and GPO" },
+ { "?1;7c", "VT100 with STP, AVO and GPO" },
+ { "?1;11c", "VT100 with PP and AVO" },
+ { "?1;15c", "VT100 with PP, GPO and AVO" },
+ { "?2c", "VT102" },
+ { "?4;2c", "VT132 with AVO" },
+ { "?4;3c", "VT132 with AVO and STP" },
+ { "?4;6c", "VT132 with GPO and AVO" },
+ { "?4;7c", "VT132 with GPO, AVO, and STP" },
+ { "?4;11c", "VT132 with PP and AVO" },
+ { "?4;15c", "VT132 with PP, GPO and AVO" },
+ { "?6c", "VT102" },
+ { "?7c", "VT131" },
+ { "?12;5c", "VT125" }, /* VT125 also has ROM version */
+ { "?12;7c", "VT125 with AVO" }, /* number, so this won't work */
+ { "?5;0c", "VK100 (GIGI)" },
+ { "?5c", "VK100 (GIGI)" },
+ { "?62;1;2;4;6;8;9;15c", "VT220" },
+ { "?63;1;2;8;9c", "VT320" },
+ { "?63;1;2;4;6;8;9;15c", "VT320" },
+ { "?63;1;3;4;6;8;9;15;16;29c", "DXterm" },
+ { "", "" }
+ };
+
+ vt_move(1,1);
+ println("Test of Device Attributes report (what are you)");
+
+ set_tty_raw(TRUE);
+ da();
+ report = get_reply();
+ vt_move(3,1);
+ vt_el(0);
+ printf("Report is: ");
+ chrprint(report);
+
+ found = FALSE;
+ if ((cmp = skip_csi(report)) != 0) {
+ for (i = 0; *attributes[i][0] != '\0'; i++) {
+ if (!strcmp(cmp, attributes[i][0])) {
+ int n = 0;
+ show_result(" -- means %s", attributes[i][1]);
+ println("");
+ n = legend(n, attributes[i][1], "STP", "Processor Option");
+ n = legend(n, attributes[i][1], "AVO", "Advanced Video Option");
+ n = legend(n, attributes[i][1], "GPO", "Graphics Processor Option");
+ n = legend(n, attributes[i][1], "PP", "Printer Port");
+ found = TRUE;
+ break;
+ }
+ }
+ }
+ if (!found) { /* this could be a vt200+ with some options disabled */
+ if (cmp != 0 && *cmp == '?') {
+ int reportpos = 1;
+ int value = scan_DA(cmp, &reportpos);
+ show_result("%s\n", lookup(operating_level, value));
+ println("");
+ while ((value = scan_DA(cmp, &reportpos)) != 0) {
+ printf(" ");
+ show_result("%d = %s\n", value, lookup(extensions, value));
+ println("");
+ }
+ found = TRUE;
+ }
+ }
+ if (!found)
+ show_result(" -- Unknown response, refer to the manual");
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+/*
+ * Applies to VT220 & up (probably no VT100's).
+ * Expected reply (from VT420 manual):
+ * CSI > 4 1 ; Pv ; 0 c (Pv = firmware version)
+ * From kermit:
+ * CSI > 2 4 ; Pv ; 0 c (Pv = "0 ; 0 ; 0", for "0.0")
+ * I've seen also:
+ * CSI > 8 3 ; Pv ; 0 c (e.g., Pv = "3 0 7 0 1")
+ */
+static int
+tst_DA_2(MENU_ARGS)
+{
+ static const struct {
+ int Pp;
+ const char *name;
+ } tbl[] = {
+ { 1, "VT220" },
+ { 18, "VT330" },
+ { 19, "VT340" },
+ { 24, "kermit" },
+ { 28, "DECterm" },
+ { 41, "VT420" },
+ };
+
+ char *report;
+ int Pp, Pv, Pc;
+ char ch;
+ char *show = SHOW_FAILURE;
+ size_t n;
+
+ vt_move(1,1); println("Testing Secondary Device Attributes (Firmware version)");
+
+ set_tty_raw(TRUE);
+ do_csi(">c"); /* or "CSI > 0 c" */
+ report = get_reply();
+ vt_move(3,10);
+ chrprint(report);
+ if ((report = skip_csi(report)) != 0) {
+ if (sscanf(report, ">%d;%d;%d%c", &Pp, &Pv, &Pc, &ch) == 4
+ && ch == 'c') {
+ const char *name = "unknown";
+ show = SHOW_SUCCESS;
+ for (n = 0; n < TABLESIZE(tbl); n++) {
+ if (Pp == tbl[n].Pp) {
+ name = tbl[n].name;
+ break;
+ }
+ }
+ vt_move(4,10); printf("Pp=%d (%s)", Pp, name);
+ vt_move(5,10); printf("Pv=%d, firmware version %d.%d", Pv, Pv/10, Pv%10);
+ vt_move(6,10); printf("Pc=%d, ROM cartridge registration number", Pc);
+ }
+ }
+ show_result(show);
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+/*
+ * VT400 (reply is a hexidecimal string)
+ */
+static int
+tst_DA_3(MENU_ARGS)
+{
+ char *report;
+ char *show;
+
+ vt_move(1,1); println("Testing Tertiary Device Attributes (unit ID)");
+
+ set_tty_raw(TRUE);
+ do_csi("=c"); /* or "CSI = 0 c" */
+ report = get_reply();
+ vt_move(3,10);
+ chrprint(report);
+ if ((report = skip_dcs(report)) != 0
+ && strip_terminator(report) != 0
+ && *report++ == '!'
+ && *report++ == '|'
+ && strlen(report) != 0) {
+ show = SHOW_SUCCESS;
+ } else {
+ show = SHOW_FAILURE;
+ }
+ show_result(show);
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+/* Not supported above VT320 */
+static int
+tst_DECREQTPARM(MENU_ARGS)
+{
+ int parity, nbits, xspeed, rspeed, clkmul, flags;
+ int reportpos;
+ char *report, *report2, *cmp;
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+ vt_move(2,1);
+ println("Test of the \"Request Terminal Parameters\" feature, argument 0.");
+ vt_move(3,1);
+ decreqtparm(0);
+ report = get_reply();
+ vt_move(5,1);
+ vt_el(0);
+ printf("Report is: ");
+ chrprint(report);
+
+ if ((cmp = skip_csi(report)) != 0)
+ report = cmp;
+
+ if (strlen(report) < 14
+ || report[0] != '2'
+ || report[1] != ';')
+ println(" -- Bad format");
+ else {
+ reportpos = 2;
+ parity = scanto(report, &reportpos, ';');
+ nbits = scanto(report, &reportpos, ';');
+ xspeed = scanto(report, &reportpos, ';');
+ rspeed = scanto(report, &reportpos, ';');
+ clkmul = scanto(report, &reportpos, ';');
+ flags = scanto(report, &reportpos, 'x');
+
+ if (parity == 0 || nbits == 0 || clkmul == 0) println(" -- Bad format");
+ else println(" -- OK");
+
+ show_result(
+ "This means: Parity %s, %s bits, xmitspeed %s, recvspeed %s.\n",
+ lookup(paritytable, parity),
+ lookup(nbitstable, nbits),
+ lookup(speedtable, xspeed),
+ lookup(speedtable, rspeed));
+ show_result("(CLoCk MULtiplier = %d, STP option flags = %d)\n", clkmul, flags);
+ }
+
+ vt_move(10,1);
+ println("Test of the \"Request Terminal Parameters\" feature, argument 1.");
+ vt_move(11,1);
+ decreqtparm(1); /* Does the same as decreqtparm(0), reports "3" */
+ report2 = get_reply();
+ vt_move(13,1);
+ vt_el(0);
+ printf("Report is: ");
+ chrprint(report2);
+
+ if ((cmp = skip_csi(report2)) != 0)
+ report2 = cmp;
+
+ if (strlen(report2) < 1
+ || report2[0] != '3')
+ println(" -- Bad format");
+ else {
+ report2[0] = '2';
+ if (!strcmp(report,report2)) println(" -- OK");
+ else println(" -- Bad format");
+ }
+ vt_move(max_lines,1);
+
+ restore_ttymodes();
+ return MENU_HOLD;
+}
+
+static int
+tst_DSR(MENU_ARGS)
+{
+ int found;
+ char *report, *cmp;
+
+ set_tty_raw(TRUE);
+ vt_move(1,1);
+ printf("Test of Device Status Report 5 (report terminal status).");
+ vt_move(2,1);
+ dsr(5);
+ report = get_reply();
+ vt_move(2,1);
+ vt_el(0);
+ printf("Report is: ");
+ chrprint(report);
+
+ if ((cmp = skip_csi(report)) != 0)
+ found = !strcmp(cmp, "0n") || !strcmp(cmp, "3n");
+ else
+ found = 0;
+
+ if (found)
+ show_result(" -- means \"TERMINAL OK\"");
+ else
+ show_result(" -- Unknown response!");
+
+ vt_move(4,1);
+ println("Test of Device Status Report 6 (report cursor position).");
+ vt_move(5,1);
+ dsr(6);
+ report = get_reply();
+ vt_move(5,1);
+ vt_el(0);
+ printf("Report is: ");
+ chrprint(report);
+
+ if ((cmp = skip_csi(report)) != 0)
+ found = !strcmp(cmp,"5;1R");
+ else
+ found = 0;
+
+ if (found)
+ show_result(" -- OK");
+ else
+ show_result(" -- Unknown response!");
+
+ vt_move(max_lines-1,1);
+ restore_ttymodes();
+ return MENU_HOLD;
+}
+
+static int
+tst_ENQ(MENU_ARGS)
+{
+ char *report;
+
+ vt_move(5,1);
+ println("This is a test of the ANSWERBACK MESSAGE. (To load the A.B.M.");
+ println("see the TEST KEYBOARD part of this program). Below here, the");
+ println("current answerback message in your terminal should be");
+ println("displayed. Finish this test with RETURN.");
+ vt_move(10,1);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+ inflush();
+ printf("%c", 5); /* ENQ */
+ report = get_reply();
+ vt_move(10,1);
+ chrprint(report);
+ vt_move(12,1);
+
+ restore_ttymodes();
+ return MENU_HOLD;
+}
+
+static int
+tst_NLM(MENU_ARGS)
+{
+ char *report;
+
+ vt_move(1,1);
+ println("Test of LineFeed/NewLine mode.");
+ vt_move(3,1);
+ sm("20");
+ set_tty_crmod(FALSE);
+ printf("NewLine mode set. Push the RETURN key: ");
+ report = instr();
+ vt_move(4,1);
+ vt_el(0);
+ chrprint(report);
+ if (!strcmp(report, "\015\012")) show_result(" -- OK");
+ else show_result(" -- Not expected");
+ vt_move(6,1);
+ rm("20");
+ printf("NewLine mode reset. Push the RETURN key: ");
+ report = instr();
+ vt_move(7,1);
+ vt_el(0);
+ chrprint(report);
+ if (!strcmp(report, "\015")) show_result(" -- OK");
+ else show_result(" -- Not expected");
+ vt_move(9,1);
+
+ restore_ttymodes();
+ return MENU_HOLD;
+}
+
+/******************************************************************************/
+int
+tst_reports(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "<ENQ> (AnswerBack Message)", tst_ENQ },
+ { "Set/Reset Mode - LineFeed / Newline", tst_NLM },
+ { "Device Status Report (DSR) VT100 & up", tst_DSR },
+ { "Primary Device Attributes (DA) VT100 & up", tst_DA },
+ { "Secondary Device Attributes (DA) VT220 & up", tst_DA_2 },
+ { "Tertiary Device Attributes (DA) VT420", tst_DA_3 },
+ { "Request Terminal Parameters (DECREQTPARM) VT100", tst_DECREQTPARM },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("Terminal Reports/Responses");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/reset.c b/doc/vttest-20011130/reset.c
new file mode 100644
index 0000000..7f9dcfb
--- /dev/null
+++ b/doc/vttest-20011130/reset.c
@@ -0,0 +1,84 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <esc.h>
+
+static int did_reset = FALSE;
+
+int
+tst_DECSTR(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+ println("(VT220 & up)");
+ println("");
+ println("The terminal will now soft-reset");
+ holdit();
+ decstr();
+ return MENU_HOLD;
+}
+
+static int
+tst_DECTST(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+ println("");
+
+ if (did_reset)
+ println("The terminal is now RESET. Next, the built-in confidence test");
+ else
+ printf("The built-in confidence test ");
+ printf("will be invoked. ");
+ holdit();
+
+ vt_clear(2);
+ dectst(1);
+ zleep(5000); /* Wait 5.0 seconds */
+ vt_move(10,1);
+ println("If the built-in confidence test found any errors, a code");
+ printf("%s", "is visible above. ");
+
+ did_reset = FALSE;
+ return MENU_HOLD;
+}
+
+static int
+tst_RIS(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+ println("(VT100 & up, not recommended)");
+ println("");
+ printf ("The terminal will now be RESET. ");
+ holdit();
+ ris();
+ zleep(5000); /* Wait 5.0 seconds */
+
+ did_reset = TRUE;
+ reset_level();
+ input_8bits = FALSE;
+ output_8bits = FALSE;
+ return MENU_HOLD;
+}
+
+int
+tst_rst(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Reset to Initial State (RIS)", tst_RIS },
+ { "Invoke Terminal Test (DECTST)", tst_DECTST },
+ { "Soft Terminal Reset (DECSTR)", tst_DECSTR },
+ { "", 0 }
+ };
+
+ did_reset = FALSE;
+
+ do {
+ vt_clear(2);
+ title(0); printf(the_title);
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/setup.c b/doc/vttest-20011130/setup.c
new file mode 100644
index 0000000..10297ec
--- /dev/null
+++ b/doc/vttest-20011130/setup.c
@@ -0,0 +1,298 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <esc.h>
+#include <ttymodes.h>
+
+static int cur_level = -1; /* current operating level (VT100=1) */
+static int max_level = -1; /* maximum operating level */
+
+static int
+check_8bit_toggle(void)
+{
+ char *report;
+
+ set_tty_raw(TRUE);
+ cup(1,1); dsr(6);
+ padding(5); /* FIXME: may not be needed */
+ report = get_reply();
+ restore_ttymodes();
+
+ if ((report = skip_csi(report)) != 0
+ && !strcmp(report, "1;1R"))
+ return TRUE;
+ return FALSE;
+}
+
+/*
+ * Determine the current and maximum operating levels of the terminal
+ */
+static void
+find_levels(void)
+{
+ char *report;
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ da();
+ report = get_reply();
+ if (!strcmp(report, "\033/Z")) {
+ cur_level =
+ max_level = 0; /* must be a VT52 */
+ } else if ((report = skip_csi(report)) == 0
+ || strncmp(report, "?6", 2)
+ || !isdigit(report[2])
+ || report[3] != ';') {
+ cur_level =
+ max_level = 1; /* must be a VT100 */
+ } else { /* "CSI ? 6 x ; ..." */
+ cur_level =
+ max_level = report[2] - '0'; /* VT220=2, VT320=3, VT420=4 */
+ if (max_level >= 4) {
+ decrqss("\"p");
+ report = get_reply();
+ if ((report = skip_dcs(report)) != 0
+ && isdigit(*report++) /* 0 or 1 (by observation, though 1 is an err) */
+ && *report++ == '$'
+ && *report++ == 'r'
+ && *report++ == '6'
+ && isdigit(*report))
+ cur_level = *report - '0';
+ }
+ }
+
+ if (LOG_ENABLED) {
+ fprintf(log_fp, "Max Operating Level: %d\n", max_level);
+ fprintf(log_fp, "Cur Operating Level: %d\n", cur_level);
+ }
+
+ restore_ttymodes();
+}
+
+static int
+toggle_DECSCL(MENU_ARGS)
+{
+ int request = cur_level;
+
+ if (max_level <= 1) {
+ vt_move(1,1);
+ printf("Sorry, terminal supports only VT%d", terminal_id());
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+ }
+
+ if (++request > max_level)
+ request = 1;
+ set_level(request);
+
+ restore_ttymodes();
+ return MENU_NOHOLD;
+}
+
+static int
+toggle_Logging(MENU_ARGS)
+{
+ if (log_fp == 0)
+ enable_logging();
+ else
+ log_disabled = !log_disabled;
+ return MENU_NOHOLD;
+}
+
+static int
+toggle_Padding(MENU_ARGS)
+{
+ use_padding = !use_padding;
+ return MENU_NOHOLD;
+}
+
+static int
+toggle_8bit_in(MENU_ARGS)
+{
+ int old = input_8bits;
+
+ s8c1t(!old);
+ fflush(stdout);
+ if (!check_8bit_toggle()) {
+ input_8bits = old;
+ vt_clear(2);
+ vt_move(1,1);
+ println("Sorry, this terminal does not support 8-bit input controls");
+ return MENU_HOLD;
+ }
+ return MENU_NOHOLD;
+}
+
+/*
+ * This changes the CSI code to/from an escape sequence.
+ */
+static int
+toggle_8bit_out(MENU_ARGS)
+{
+ int old = output_8bits;
+
+ fflush(stdout);
+ output_8bits = !output_8bits;
+ if (!check_8bit_toggle()) {
+ output_8bits = old;
+ vt_clear(2);
+ vt_move(1,1);
+ println("Sorry, this terminal does not support 8-bit output controls");
+ return MENU_HOLD;
+ }
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+void
+enable_logging(void)
+{
+ static char my_name[] = "vttest.log";
+ log_fp = fopen(my_name, "w");
+ if (log_fp == 0) {
+ perror(my_name);
+ exit(EXIT_FAILURE);
+ }
+}
+
+void
+reset_level(void)
+{
+ cur_level = max_level;
+}
+
+void
+restore_level(VTLEVEL *save)
+{
+ set_level(save->cur_level);
+ if (cur_level > 1
+ && save->input_8bits != input_8bits) /* just in case level didn't change */
+ s8c1t(save->input_8bits);
+ output_8bits = save->output_8bits; /* in case we thought this was VT100 */
+}
+
+void
+save_level(VTLEVEL *save)
+{
+ save->cur_level = cur_level;
+ save->input_8bits = input_8bits;
+ save->output_8bits = output_8bits;
+
+ if (LOG_ENABLED)
+ fprintf(log_fp, "save_level(%d) in=%d, out=%d\n", cur_level,
+ input_8bits ? 8 : 7,
+ output_8bits ? 8 : 7);
+}
+
+int
+get_level(void)
+{
+ return cur_level;
+}
+
+int
+set_level(int request)
+{
+ if (cur_level < 0)
+ find_levels();
+
+ if (LOG_ENABLED)
+ fprintf(log_fp, "set_level(%d)\n", request);
+
+ if (request > max_level) {
+ printf("Sorry, this terminal supports only VT%d\n", terminal_id());
+ return FALSE;
+ }
+
+ if (request != cur_level) {
+ if (request == 0) {
+ rm("?2"); /* Reset ANSI (VT100) mode, Set VT52 mode */
+ input_8bits = FALSE;
+ output_8bits = FALSE;
+ } else {
+ if (cur_level == 0) {
+ esc("<"); /* Enter ANSI mode (VT100 mode) */
+ }
+ if (request == 1) {
+ input_8bits = FALSE;
+ output_8bits = FALSE;
+ }
+ if (request > 1)
+ do_csi("6%d;%d\"p", request, !input_8bits);
+ else
+ do_csi("61\"p");
+ }
+ padding(5); /* FIXME: may not be needed */
+
+ cur_level = request;
+ }
+
+ if (LOG_ENABLED)
+ fprintf(log_fp, "...set_level(%d) in=%d, out=%d\n", cur_level,
+ input_8bits ? 8 : 7,
+ output_8bits ? 8 : 7);
+
+ return TRUE;
+}
+
+/*
+ * Set the terminal's operating level to the default (i.e., based on what the
+ * terminal returns as a response to DA).
+ */
+void
+default_level()
+{
+ if (max_level < 0)
+ find_levels();
+ set_level(max_level);
+}
+
+int
+terminal_id(void)
+{
+ if (max_level >= 1)
+ return max_level * 100;
+ else if (max_level == 0)
+ return 52;
+ return 100;
+}
+
+int
+tst_setup(MENU_ARGS)
+{
+ static char txt_output[80] = "send 7/8";
+ static char txt_input8[80] = "receive 7/8";
+ static char txt_DECSCL[80] = "DECSCL";
+ static char txt_logging[80] = "logging";
+ static char txt_padded[80] = "padding";
+
+ static MENU my_menu[] = {
+ { "Return to main menu", 0 },
+ { "Setup terminal to original test-configuration", setup_terminal },
+ { txt_output, toggle_8bit_out },
+ { txt_input8, toggle_8bit_in },
+ { txt_DECSCL, toggle_DECSCL },
+ { txt_logging, toggle_Logging },
+ { txt_padded, toggle_Padding },
+ { "", 0 }
+ };
+
+ if (cur_level < 0)
+ find_levels();
+
+ do {
+ sprintf(txt_output, "Send %d-bit controls", output_8bits ? 8 : 7);
+ sprintf(txt_input8, "Receive %d-bit controls", input_8bits ? 8 : 7);
+ sprintf(txt_DECSCL, "Operating level %d (VT%d)",
+ cur_level, cur_level ? cur_level * 100 : 52);
+ sprintf(txt_logging, "Logging %s", LOG_ENABLED ? "enabled" : "disabled");
+ sprintf(txt_padded, "Padding %s", use_padding ? "enabled" : "disabled");
+
+ vt_clear(2);
+ title(0); println("Modify test-parameters");
+ title(2); println("Select a number to modify it:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/sixel.c b/doc/vttest-20011130/sixel.c
new file mode 100644
index 0000000..9d43d5a
--- /dev/null
+++ b/doc/vttest-20011130/sixel.c
@@ -0,0 +1,303 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <ttymodes.h>
+#include <esc.h>
+
+#define is_inter(c) ((c) >= 0x20 && ((c) <= 0x2f))
+#define is_final(c) ((c) >= 0x30 && ((c) <= 0x7e))
+
+#define L_CURL '{'
+#define MAX_WIDTH 10
+
+static char *EraseCtl = "";
+static char *FontName = "";
+static char *StartingCharPtr = "";
+static char *TextCell = "";
+static char *WidthAttr = "";
+static char *font_string = "";
+static int FontNumber;
+static int MatrixHigh;
+static int MatrixWide;
+static int StartingCharNum;
+
+/*
+ * Lookup the given character 'chr' in the font-string and write a readable
+ * display of the glyph
+ */
+static void
+decode_header(void)
+{
+ int Pe, Pcms, Pw, Pt;
+ char *s;
+
+ switch (sscanf(font_string+2, "%d;%d;%d;%d;%d;%d", &FontNumber, &StartingCharNum, &Pe, &Pcms, &Pw, &Pt)) {
+ case 0: FontNumber = 0;
+ case 1: StartingCharNum = 0;
+ case 2: Pe = 0;
+ case 3: Pcms = 0;
+ case 4: Pw = 0;
+ case 5: Pt = 0;
+ case 6:
+ break;
+ }
+
+ switch (Pcms) {
+ case 1: MatrixWide = 0; MatrixHigh = 0; break; /* illegal */
+ case 2: MatrixWide = 5; MatrixHigh = 10; break;
+ case 3: MatrixWide = 6; MatrixHigh = 10; break;
+ case 0:
+ case 4: MatrixWide = 7; MatrixHigh = 10; break;
+ default: MatrixWide = Pcms; MatrixHigh = 10; break; /* 5 thru 10 */
+ }
+
+ switch (Pe) {
+ case 0: EraseCtl = "this DRCS set"; break;
+ case 1: EraseCtl = "only reloaded chars"; break;
+ case 2: EraseCtl = "all chars in all DRCS sets"; break;
+ default: EraseCtl = "?"; break;
+ }
+
+ switch (Pw) {
+ case 0: /* FALLTHRU */
+ case 1: WidthAttr = "80 cols, 24 lines"; break;
+ case 2: WidthAttr = "132 cols, 24 lines"; break;
+ case 11: WidthAttr = "80 cols, 36 lines"; break;
+ case 12: WidthAttr = "132 cols, 36 lines"; break;
+ case 21: WidthAttr = "80 cols, 24 lines"; break;
+ case 22: WidthAttr = "132 cols, 48 lines"; break;
+ default: WidthAttr = "?"; break;
+ }
+
+ if (Pt == 2)
+ TextCell = "Full Cell";
+ else
+ TextCell = "Text";
+ for (s = font_string; *s; s++) {
+ if (*s == L_CURL) {
+ char *t;
+ char tmp[BUFSIZ];
+ size_t use = 0;
+ for (t = s + 1; *t; t++) {
+ if (is_inter(*t)) {
+ tmp[use++] = *t;
+ }
+ if (is_final(*t)) {
+ tmp[use++] = *t++;
+ tmp[use] = '\0';
+ FontName = strcpy(malloc(use+1), tmp);
+ StartingCharPtr = t;
+ break;
+ }
+ }
+ break;
+ }
+ }
+}
+
+static char *
+find_char(int chr)
+{
+ char *s = StartingCharPtr;
+
+ chr -= (' ' + StartingCharNum);
+ if (chr < 0)
+ return 0;
+ while (chr > 0) {
+ do {
+ if (*s == '\0')
+ return 0;
+ } while (*s++ != ';');
+ chr--;
+ }
+ return s;
+}
+
+static void
+display_head(FILE *fp)
+{
+ fprintf(fp, "Font %d:%s, Matrix %dx%d (%s, %s)\n",
+ FontNumber, FontName, MatrixWide, MatrixHigh, WidthAttr, TextCell);
+ fprintf(fp, "Start %d, Erase %s\n",
+ StartingCharNum, EraseCtl);
+}
+
+static int
+display_char(FILE *fp, int chr)
+{
+ char *s;
+ int bit, n, high;
+ char bits[6][MAX_WIDTH];
+
+ s = find_char(chr);
+ if (s != 0) {
+ fprintf(fp, "Glyph '%c'\n", chr);
+ bit = 0;
+ high = 0;
+ do {
+ if (*s >= '?' && *s <= '~') {
+ for (n = 0; n < 6; n++)
+ bits[n][bit] = ((*s - '?') & 1 << n) ? 'O' : '.';
+ bit++;
+ } else if ((*s == ';' || *s == '/') && bit) {
+ for (n = 0; (n < 6) && (high++ < MatrixHigh); n++) {
+ bits[n][bit] = '\0';
+ fprintf(fp, "%s\n", bits[n]);
+ }
+ bit = 0;
+ }
+ } while (*s++ != ';');
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static int
+tst_DECDLD(MENU_ARGS)
+{
+ char *s;
+
+ vt_move(1,1);
+ printf("Working...\n");
+ for (s = font_string; *s; s++) {
+ putchar(*s);
+ if (*s == '\n') {
+ fflush(stdout);
+ padding(20);
+ }
+ }
+ fflush(stdout);
+ padding(20);
+ printf("...done ");
+
+ printf("%c*%s", ESC, FontName); /* designate G2 as the DRCS font */
+ padding(4);
+ fflush(stdout);
+
+ return MENU_HOLD;
+}
+
+static int
+tst_display(MENU_ARGS)
+{
+ int d, c = -1;
+
+ vt_move(1,1);
+ display_head(stdout);
+ println("");
+ println("Press any key to display its soft-character. Repeat a key to quit.");
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ do {
+ d = c;
+ c = inchar();
+ vt_move(6,1);
+ vt_clear(0);
+ if (display_char(stdout, c)) {
+ println("");
+ printf("Render: %cN%c", ESC, c); /* use SS2 to invoke G2 into GL */
+ }
+ } while (c != d);
+
+ restore_ttymodes();
+ return MENU_NOHOLD;
+}
+
+/*
+ * Remove all characters in all DRCS sets (the " @" is a dummy name)
+ */
+static int
+tst_cleanup(MENU_ARGS)
+{
+ do_dcs("1;1;2%c @", L_CURL);
+ padding(20);
+ return MENU_NOHOLD;
+}
+
+/*
+ * Read a soft-character definition string from a file. Strip off garbage
+ * at the beginning (to accommodate the "font2xx" output format).
+ */
+void
+setup_softchars(char *filename)
+{
+ FILE *fp;
+ int c;
+ size_t len = 1024;
+ size_t use = 0;
+ char *buffer = malloc(len);
+ char *s;
+ char *first = 0;
+ char *last = 0;
+ int save_8bits = input_8bits;
+ input_8bits = FALSE; /* use the 7-bit input-parsing */
+
+ /* read the file into memory */
+ if ((fp = fopen(filename, "r")) == 0) {
+ perror(filename);
+ exit(EXIT_FAILURE);
+ }
+ while ((c = fgetc(fp)) != EOF) {
+ if (use+1 >= len) {
+ buffer = realloc(buffer, len *= 2);
+ }
+ buffer[use++] = c;
+ }
+ buffer[use] = '\0';
+ fclose(fp);
+
+ /* find the DCS that begins the control string */
+ /* and the ST that ends the control string */
+ for (s = buffer; *s; s++) {
+ if (first == 0) {
+ if (skip_dcs(s) != 0)
+ first = s;
+ } else {
+ if (!strncmp(s, st_input(), 2)) {
+ last = s + 2;
+ *last = '\0';
+ break;
+ }
+ }
+ }
+ input_8bits = save_8bits;
+
+ if (first == 0 || last == 0) {
+ fprintf(stderr, "Not a vtXXX font description: %s\n", filename);
+ exit(EXIT_FAILURE);
+ }
+ for (s = buffer; (*s++ = *first++) != '\0'; )
+ ;
+ if (LOG_ENABLED && first != 0)
+ fprintf(log_fp, "Font String:\n%s\n", buffer);
+
+ font_string = buffer;
+
+ decode_header();
+}
+
+int
+tst_softchars(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Download the soft characters", tst_DECDLD },
+ { "Examine the soft characters", tst_display },
+ { "Clear the soft characters", tst_cleanup },
+ { "", 0 }
+ };
+
+ vt_move(1,1);
+ if (font_string == 0 || *font_string == 0) {
+ printf("You did not specify a font-file with the -f option\n");
+ return MENU_HOLD;
+ }
+ do {
+ vt_clear(2);
+ title(0); printf("Soft Character Sets");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/status.c b/doc/vttest-20011130/status.c
new file mode 100644
index 0000000..989a480
--- /dev/null
+++ b/doc/vttest-20011130/status.c
@@ -0,0 +1,102 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <esc.h>
+#include <ttymodes.h>
+
+static void
+restore_status(void)
+{
+ decsasd(0); /* main display */
+ decssdt(1); /* indicator (default) */
+ restore_ttymodes();
+}
+
+static int
+simple_statusline(MENU_ARGS)
+{
+ static char text[] = "TEXT IN THE STATUS LINE";
+
+ vt_move(1,1);
+ println("This is a simple test of the status-line");
+ println("");
+
+ decssdt(2);
+ decsasd(1);
+ printf(text);
+ decsasd(0);
+ printf("There should be %s\r\n", text);
+ holdit();
+
+ decssdt(0);
+ println("There should be no status line");
+ holdit();
+
+ decssdt(1);
+ println("The status line should be normal (i.e., indicator)");
+ holdit();
+
+ restore_status();
+ return MENU_NOHOLD;
+}
+
+static int
+SGR_statusline(MENU_ARGS)
+{
+ vt_move(1,1);
+ println("This test writes SGR controls to the status-line");
+ holdit();
+
+ decssdt(2);
+ decsasd(1);
+
+ el(2);
+ cup(1,1);
+ sgr("1");
+ printf("BOLD text ");
+ sgr("0");
+ printf("NORMAL text ");
+
+ decsasd(0);
+ holdit();
+
+ restore_status();
+ holdit();
+
+ restore_status();
+ return MENU_NOHOLD;
+}
+
+/* VT200 & up
+ *
+ * CSI Ps $ } DECSASD Select active status display
+ * Ps = 0 select main display
+ * Ps = 1 select status line
+ * Moves cursor to selected display area. This command will be ignored
+ * unless the status line has been enabled by CSI 2 $ ~. When the
+ * status line has been selected cursor remains there until the main
+ * display is reselected by CSI 0 $ }.
+ *
+ * CSI Ps $ ~ DECSSDT Select Status Line Type
+ * Ps meaning
+ * 0 no status line (empty)
+ * 1 indicator line
+ * 2 host-writable line
+ */
+int
+tst_statusline(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Simple Status line Test", simple_statusline },
+ { "Test Graphic-Rendition in Status line", SGR_statusline },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); println(the_title);
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/tech.set b/doc/vttest-20011130/tech.set
new file mode 100644
index 0000000..0737413
--- /dev/null
+++ b/doc/vttest-20011130/tech.set
@@ -0,0 +1,96 @@
+Working...P1;1;1;4{ @
+__?~????/??@B????;
+???wGGGG/???N????;
+GGGGGGGG/????????;
+???}@@A?/???N????;
+???~????/CGGF????;
+???~????/???N????;
+???}A???/???N????;
+???~????/???FC???;
+??A}????/???N????;
+???~????/??CF????;
+???{A@??/???N????;
+???~????/???BCG??;
+?@A{????/???N????;
+???~????/?GCB????;
+?_ON????/??@M????;
+???NO_??/???M@???;
+???WgGGG/?????@A?;
+???GKIHG/????????;
+@ACGO_??/??????@?;
+?_OGCA@?/@???????;
+GGGGGGW?/????????;
+GGGGGGK?/????????;
+@ACGo???/GCA@????;
+????????/????????;
+????????/????????;
+????????/????????;
+????????/????????;
+?OWSQOO?/?@@@@@@?;
+?ggwkig?/?A@?????;
+?OOQSWO?/?@@@@@@?;
+???}@@A?/CGGF????;
+???C????/A?????A?;
+_OGGGOoG/?@AAA@@A;
+oGGo?Go?/@AA@?A@?;
+OOOSOOO?/???@????;
+?oKAKo??/BAAAAAB?;
+KScCcSK?/???@????;
+Wcd~dcW?/??ABA???;
+?@~@@B??/?ABA????;
+OGGO__O?/????????;
+GCCGOOG?/@@@@@@@?;
+wCQQQCw?/?@AAA@??;
+?CgOgC??/?@???@??;
+?oKAKo??/BA???AB?;
+gkigikg?/?@A?A@??;
+?gggikg?/????A@??;
+?gggggg?/?AAAAAA?;
+A}AAA}A?/?B???B??;
+MO_}_OM?/??ABA???;
+????????/????????;
+AEiQAAA?/ABAAAAA?;
+????????/????????;
+????????/????????;
+_??_WEA?/?@A@????;
+wCAAACw?/AB???BA?;
+?AQQQQA?/?AAAAAA?;
+CA?{AAC?/???B????;
+oGCCCCC?/?@AAAAA?;
+CCCCCGo?/AAAAA@??;
+wCAAACw?/B?????B?;
+}?????}?/?@AAA@??;
+?oKAKo??/B?????B?;
+EW_?_WE?/??@A@???;
+?GGGGGW?/????????;
+_OGGoOG?/?@AA@@A?;
+?_WSqQK?/A@AAA@??;
+?GGO__W?/GCA@?@M?;
+?_O[QaC?/?@AAA@??;
+?ogggG??/?@AAAA??;
+_OOOoOg?/HEABAA@?;
+GCGo?_O?/??KN@???;
+GGoOGGo?/??B???N?;
+???w????/???@AA@?;
+oggggo??/@AAAA@??;
+C{?_OG??/?B@@AA??;
+?CCgO_??/AA@???B?;
+????????/????????;
+CcW??_[?/ABA@@???;
+CCcSGGo?/??@AAA@?;
+?GwGGwG?/?A@??B??;
+_??w??_?/?@ANA@??;
+??_OGGo?/KB??@@??;
+_OGGWgG?/@AAAA@??;
+OGGwGGC?/???BA???;
+????????/????????;
+???}PPA?/EGGF????;
+oG?_?Go?/@AA@AA@?;
+OgicCC??/?BAIIE??;
+Cw????w?/??@AA@??;
+cQIEEAA?/?@@DDB??;
+OwSOOOO?/??@?????;
+?GC}CG??/???B????;
+OOOOSwO?/????@???;
+?_?}?_??/??@B@???;
+\Characters Loaded.
diff --git a/doc/vttest-20011130/ttymodes.c b/doc/vttest-20011130/ttymodes.c
new file mode 100644
index 0000000..7d12e10
--- /dev/null
+++ b/doc/vttest-20011130/ttymodes.c
@@ -0,0 +1,300 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <ttymodes.h>
+#include <esc.h> /* inflush() */
+
+static TTY old_modes, new_modes;
+
+static struct {
+ int name;
+ int code;
+} speeds[] = {
+ {B0, 0},
+ {B50, 50},
+ {B75, 75},
+ {B110, 110},
+ {B134, 134},
+ {B150, 150},
+ {B200, 200},
+ {B300, 300},
+ {B600, 600},
+ {B1200, 1200},
+ {B1800, 1800},
+ {B2400, 2400},
+ {B4800, 4800},
+ {B9600, 9600},
+#ifdef B19200
+ {B19200, 19200},
+#else
+#ifdef EXTA
+ {EXTA, 19200},
+#endif
+#endif
+#ifdef B38400
+ {B38400, 38400},
+#else
+#ifdef EXTB
+ {EXTB, 38400},
+#endif
+#endif
+#ifdef B57600
+ {B57600, 57600},
+#endif
+#ifdef B115200
+ {B115200, 115200},
+#endif
+};
+
+#if !USE_POSIX_TERMIOS && !USE_TERMIO && USE_SGTTY
+static struct tchars old_tchars;
+static struct ltchars old_ltchars;
+#endif
+
+#if USE_POSIX_TERMIOS || USE_TERMIO
+static void
+disable_control_chars(TTY *modes)
+{
+# if USE_POSIX_TERMIOS
+ int n;
+ int temp;
+# if HAVE_POSIX_VDISABLE
+ temp = _POSIX_VDISABLE;
+# else
+ errno = 0;
+ temp = fpathconf(0, _PC_VDISABLE);
+ if (temp == -1) {
+ if (errno != 0) {
+ restore_ttymodes();
+ fprintf(stderr, "Cannot disable special characters!\n");
+ exit(EXIT_FAILURE);
+ }
+ temp = 0377;
+ }
+# endif
+ for (n = 0; n < NCCS; n++)
+ modes->c_cc[n] = temp;
+# else /* USE_TERMIO */
+# ifdef VSWTCH
+ modes->c_cc[VSWTCH] = VDISABLE;
+# endif
+ modes->c_cc[VSUSP] = VDISABLE;
+# if defined (VDSUSP) && defined(NCCS) && VDSUSP < NCCS
+ modes->c_cc[VDSUSP] = VDISABLE;
+# endif
+ modes->c_cc[VSTART] = VDISABLE;
+ modes->c_cc[VSTOP] = VDISABLE;
+# endif
+ modes->c_cc[VMIN] = 1;
+ modes->c_cc[VTIME] = 0;
+}
+#endif
+
+static void
+set_ttymodes(TTY *modes)
+{
+# if USE_POSIX_TERMIOS
+ fflush(stdout);
+ tcsetattr(0, TCSAFLUSH, modes);
+# else
+# if USE_TERMIO
+ tcsetattr(0, TCSETAF, modes);
+# else /* USE_SGTTY */
+ stty(0, modes);
+# endif
+# endif
+}
+
+#ifndef log_ttymodes
+void log_ttymodes(char *file, int line)
+{
+ if (LOG_ENABLED)
+ fprintf(log_fp, "%s @%d\n", file, line);
+}
+#endif
+
+#ifndef dump_ttymodes
+void dump_ttymodes(char *tag, int flag)
+{
+#ifdef UNIX
+ TTY tmp_modes;
+ if (LOG_ENABLED) {
+ fprintf(log_fp, "%s (%d):\n", tag, flag);
+# if USE_POSIX_TERMIOS || USE_TERMIO
+ tcgetattr(0, &tmp_modes);
+ fprintf(log_fp, " iflag %08lo\n", tmp_modes.c_iflag);
+ fprintf(log_fp, " oflag %08lo\n", tmp_modes.c_oflag);
+ fprintf(log_fp, " lflag %08lo\n", tmp_modes.c_lflag);
+ if (!tmp_modes.c_lflag & ICANON) {
+ fprintf(log_fp, " %d:min =%d\n", VMIN, tmp_modes.c_cc[VMIN]);
+ fprintf(log_fp, " %d:time =%d\n", VTIME, tmp_modes.c_cc[VTIME]);
+ }
+# else
+ gtty(0, &tmp_modes);
+ fprintf(log_fp, " flags %08o\n", tmp_modes.sg_flags);
+# endif
+ }
+#endif
+}
+#endif
+
+void
+close_tty(void)
+{
+ restore_ttymodes();
+}
+
+void init_ttymodes(int pn)
+{
+ int speed_code, n;
+
+ dump_ttymodes("init_ttymodes", pn);
+#ifdef UNIX
+ if (pn==0) {
+ fflush(stdout);
+# if USE_POSIX_TERMIOS || USE_TERMIO
+ tcgetattr(0, &old_modes);
+ speed_code = cfgetospeed(&old_modes);
+# else
+# if USE_SGTTY
+ gtty(0, &old_modes);
+ ioctl(0, TIOCGETC, &old_tchars);
+ ioctl(0, TIOCGLTC, &old_ltchars);
+ speed_code = old_modes.sg_ospeed;
+# endif
+# endif
+ new_modes = old_modes;
+ for (n = 0; n < TABLESIZE(speeds); n++) {
+ if (speeds[n].name == speed_code) {
+ tty_speed = speeds[n].code;
+ break;
+ }
+ }
+ } else {
+ putchar(BEL);
+ fflush(stdout);
+ inflush();
+ new_modes = old_modes;
+ sleep(2);
+ }
+# if USE_POSIX_TERMIOS || USE_TERMIO
+ new_modes.c_iflag = BRKINT | old_modes.c_iflag;
+# else /* USE_SGTTY */
+ new_modes.sg_flags = old_modes.sg_flags | CBREAK;
+# endif
+ set_ttymodes(&new_modes);
+# if HAVE_FCNTL_H
+ close(2);
+ open("/dev/tty", O_RDWR|O_NDELAY);
+# endif
+#endif /* UNIX */
+ dump_ttymodes("...init_ttymodes", pn);
+}
+
+void restore_ttymodes(void)
+{
+ dump_ttymodes("restore_ttymodes", -1);
+#ifdef UNIX
+ set_ttymodes(&old_modes);
+#endif
+ dump_ttymodes("...restore_ttymodes", -1);
+}
+
+void
+set_tty_crmod(int enabled)
+{
+ dump_ttymodes("set_tty_crmod", enabled);
+#ifdef UNIX
+# if USE_POSIX_TERMIOS || USE_TERMIO
+# if USE_POSIX_TERMIOS
+# define MASK_CRMOD ((unsigned long) (ICRNL | IXON))
+# else
+# define MASK_CRMOD ((unsigned long) (ICRNL))
+# endif
+ if (enabled) {
+ new_modes.c_iflag |= MASK_CRMOD;
+ new_modes.c_lflag |= ICANON;
+ memcpy(new_modes.c_cc, old_modes.c_cc, sizeof(new_modes.c_cc));
+ } else {
+ new_modes.c_iflag &= ~MASK_CRMOD;
+ new_modes.c_lflag &= ~ICANON;
+ disable_control_chars(&new_modes);
+ }
+# else
+ if (enabled)
+ new_modes.sg_flags |= CRMOD;
+ else
+ new_modes.sg_flags &= ~CRMOD;
+# endif
+ set_ttymodes(&new_modes);
+#endif
+ dump_ttymodes("...set_tty_crmod", enabled);
+}
+
+void
+set_tty_echo(int enabled)
+{
+ dump_ttymodes("set_tty_echo", enabled);
+#ifdef UNIX
+# if USE_POSIX_TERMIOS || USE_TERMIO
+ if (enabled)
+ new_modes.c_lflag |= ECHO;
+ else
+ new_modes.c_lflag &= ~ECHO;
+# else /* USE_SGTTY */
+ if (enabled)
+ new_modes.sg_flags |= ECHO;
+ else
+ new_modes.sg_flags &= ~ECHO;
+# endif
+ set_ttymodes(&new_modes);
+#endif
+ dump_ttymodes("...set_tty_echo", enabled);
+}
+
+void
+set_tty_raw(int enabled)
+{
+ dump_ttymodes("set_tty_raw", enabled);
+ if (enabled) {
+#ifdef UNIX
+# if USE_POSIX_TERMIOS || USE_TERMIO
+ new_modes.c_iflag = 0;
+ new_modes.c_lflag = 0;
+ new_modes.c_cc[VMIN] = 1;
+ new_modes.c_cc[VTIME] = 0;
+ set_ttymodes(&new_modes);
+ set_tty_crmod(FALSE);
+# else /* USE_SGTTY */
+# if HAVE_FCNTL_H
+ new_modes.sg_flags &= ~CBREAK;
+# endif
+ new_modes.sg_flags |= RAW;
+ set_ttymodes(&new_modes);
+ {
+ struct tchars tmp_tchars;
+ struct ltchars tmp_ltchars;
+ memset(&tmp_tchars, -1, sizeof(tmp_tchars));
+ memset(&tmp_ltchars, -1, sizeof(tmp_ltchars));
+ ioctl(0, TIOCSETC, &tmp_tchars);
+ ioctl(0, TIOCSLTC, &tmp_ltchars);
+ }
+# endif
+#endif
+ } else {
+#ifdef UNIX
+# if USE_POSIX_TERMIOS || USE_TERMIO
+ new_modes = old_modes; /* FIXME */
+# else /* USE_SGTTY */
+ new_modes.sg_flags &= ~RAW;
+# if HAVE_FCNTL_H
+ new_modes.sg_flags |= CBREAK;
+# endif
+ ioctl(0, TIOCSETC, &old_tchars);
+ ioctl(0, TIOCSLTC, &old_ltchars);
+# endif
+ set_ttymodes(&new_modes);
+#endif
+ }
+ dump_ttymodes("...set_tty_raw", enabled);
+}
diff --git a/doc/vttest-20011130/ttymodes.h b/doc/vttest-20011130/ttymodes.h
new file mode 100644
index 0000000..0c9056b
--- /dev/null
+++ b/doc/vttest-20011130/ttymodes.h
@@ -0,0 +1,21 @@
+/* $Id$ */
+
+#ifndef TTYMODES_H
+#define TTYMODES_H 1
+
+#ifdef DEBUG
+void log_ttymodes(char *file, int line);
+void dump_ttymodes(char *tag, int flag);
+#else
+#define log_ttymodes(file, line) /*nothing*/
+#define dump_ttymodes(tag, flag) /*nothing*/
+#endif
+
+void close_tty(void);
+void init_ttymodes(int pn);
+void restore_ttymodes(void);
+void set_tty_crmod(int enabled);
+void set_tty_echo(int enabled);
+void set_tty_raw(int enabled);
+
+#endif /* TTYMODES_H */
diff --git a/doc/vttest-20011130/unix_io.c b/doc/vttest-20011130/unix_io.c
new file mode 100644
index 0000000..70ee8a7
--- /dev/null
+++ b/doc/vttest-20011130/unix_io.c
@@ -0,0 +1,196 @@
+/* $Id$ */
+
+#include <stdarg.h>
+#include <vttest.h>
+#include <esc.h>
+
+static void
+give_up(int sig)
+{
+ if (LOG_ENABLED) {
+ fprintf(log_fp, "** killing program due to timeout\n");
+ fflush(log_fp);
+ }
+ kill(getpid(), (int) SIGTERM);
+}
+
+static int last_char;
+
+void
+reset_inchar(void)
+{
+ last_char = -1;
+}
+
+/*
+ * Wait until a character is typed on the terminal then read it, without
+ * waiting for CR.
+ */
+char
+inchar(void)
+{
+ int lval; char ch;
+
+ fflush(stdout);
+ lval = last_char;
+ brkrd = FALSE;
+ reading = TRUE;
+#if HAVE_ALARM
+ signal(SIGALRM, give_up);
+ alarm(60); /* timeout after 1 minute, in case user's keyboard is hung */
+#endif
+ read(0,&ch,1);
+#if HAVE_ALARM
+ alarm(0);
+#endif
+ reading = FALSE;
+#ifdef DEBUG
+ {
+ FILE *fp = fopen("ttymodes.log","a");
+ if (fp != 0) {
+ fprintf(fp, "%d>%#x\n", brkrd, ch);
+ fclose(fp);
+ }
+ }
+#endif
+ if (brkrd)
+ last_char = 0177;
+ else
+ last_char = ch;
+ if ((last_char==0177) && (last_char==lval))
+ give_up(SIGTERM);
+ return(last_char);
+}
+
+/*
+ * Get an unfinished string from the terminal: wait until a character is typed
+ * on the terminal, then read it, and all other available characters. Return a
+ * pointer to that string.
+ */
+char *
+instr(void)
+{
+#if USE_FIONREAD
+ long l1;
+#endif
+ int i;
+ static char result[1024];
+
+ i = 0;
+ result[i++] = inchar();
+/* Wait 0.1 seconds (1 second in vanilla UNIX) */
+ zleep(100);
+ fflush(stdout);
+#if HAVE_RDCHK
+ while(rdchk(0)) {
+ read(0,result+i,1);
+ if (i++ == sizeof(result)-2) break;
+ }
+#else
+#if USE_FIONREAD
+ while(ioctl(0,FIONREAD,&l1), l1 > 0L) {
+ while(l1-- > 0L) {
+ read(0,result+i,1);
+ if (i++ == sizeof(result)-2) goto out1;
+ }
+ }
+out1:
+#else
+ while(read(2,result+i,1) == 1)
+ if (i++ == sizeof(result)-2) break;
+#endif
+#endif
+ result[i] = '\0';
+
+ if (LOG_ENABLED) {
+ fputs("Reply: ", log_fp);
+ put_string(log_fp, result);
+ fputs("\n", log_fp);
+ }
+
+ return(result);
+}
+
+char *
+get_reply(void)
+{
+ return instr(); /* cf: vms_io.c */
+}
+
+/*
+ * Read to the next newline, truncating the buffer at BUFSIZ-1 characters
+ */
+void
+inputline(char *s)
+{
+ do {
+ int ch;
+ char *d = s;
+ while ((ch = getchar()) != EOF && ch != '\n') {
+ if ((d - s) < BUFSIZ-2)
+ *d++ = ch;
+ }
+ *d = 0;
+ } while (!*s);
+}
+
+/*
+ * Flush input buffer, make sure no pending input character
+ */
+void
+inflush(void)
+{
+ int val;
+
+#if HAVE_RDCHK
+ while(rdchk(0))
+ read(0,&val,1);
+#else
+#if USE_FIONREAD
+ long l1;
+ ioctl (0, FIONREAD, &l1);
+ while(l1-- > 0L)
+ read(0,&val,1);
+#else
+ while(read(2,&val,1) > 0)
+ ;
+#endif
+#endif
+}
+
+void
+holdit(void)
+{
+ inflush();
+ printf("Push <RETURN>");
+ readnl();
+}
+
+void
+readnl(void)
+{
+ char ch;
+ fflush(stdout);
+ brkrd = FALSE;
+ reading = TRUE;
+ do { read(0,&ch,1); } while(ch != '\n' && !brkrd);
+ if (brkrd)
+ give_up(SIGTERM);
+ reading = FALSE;
+}
+
+/*
+ * Sleep and do nothing (don't waste CPU) for t milliseconds
+ */
+void
+zleep(int t)
+{
+#if HAVE_USLEEP
+ unsigned msecs = t * 1000;
+ usleep(msecs);
+#else
+ unsigned secs = t / 1000;
+ if (secs == 0) secs = 1;
+ sleep(secs); /* UNIX can only sleep whole seconds */
+#endif
+}
diff --git a/doc/vttest-20011130/vms_io.c b/doc/vttest-20011130/vms_io.c
new file mode 100644
index 0000000..a4aef4e
--- /dev/null
+++ b/doc/vttest-20011130/vms_io.c
@@ -0,0 +1,405 @@
+/* $Id$ */
+
+#define DEBUG
+
+#include <stdarg.h>
+#include <vttest.h>
+#include <esc.h>
+#include <ttymodes.h>
+
+#include <starlet.h>
+#include <lib$routines.h>
+#include <stsdef.h>
+#include <ssdef.h>
+#include <descrip.h>
+#include <iodef.h>
+#include <ttdef.h>
+#include <tt2def.h>
+
+typedef struct {
+ unsigned short int status; /* I/O completion status */
+ unsigned short int count; /* byte transfer count */
+ int dev_dep_data; /* device dependant data */
+ } QIO_SB; /* This is a QIO I/O Status Block */
+
+#define NIBUF 1024 /* Input buffer size */
+#define NOBUF 1024 /* MM says big buffers win! */
+#define EFN 0 /* Event flag */
+
+static char obuf[NOBUF]; /* Output buffer */
+static int nobuf; /* # of bytes in above */
+static char ibuf[NIBUF]; /* Input buffer */
+static int nibuf; /* # of bytes in above */
+static int oldmode[3]; /* Old TTY mode bits */
+static int newmode[3]; /* New TTY mode bits */
+static short iochan; /* TTY I/O channel */
+
+static int in_flags;
+static int cr_flag = TRUE;
+
+static void
+give_up(int status)
+{
+ if (LOG_ENABLED)
+ fprintf(log_fp, "status=%#x\n", status);
+ close_tty();
+ exit(status);
+}
+
+static int
+lookup_speed(int code)
+{
+ static struct {
+ int code;
+ int speed;
+ } table[] = {
+ {TT$C_BAUD_50, 50 }
+ ,{TT$C_BAUD_75, 75 }
+ ,{TT$C_BAUD_110, 110 }
+ ,{TT$C_BAUD_134, 134 }
+ ,{TT$C_BAUD_150, 150 }
+ ,{TT$C_BAUD_300, 300 }
+ ,{TT$C_BAUD_600, 600 }
+ ,{TT$C_BAUD_1200, 1200 }
+ ,{TT$C_BAUD_1800, 1800 }
+ ,{TT$C_BAUD_2000, 2000 }
+ ,{TT$C_BAUD_2400, 2400 }
+ ,{TT$C_BAUD_3600, 3600 }
+ ,{TT$C_BAUD_4800, 4800 }
+ ,{TT$C_BAUD_7200, 7200 }
+ ,{TT$C_BAUD_9600, 9600 }
+ ,{TT$C_BAUD_19200, 19200 }
+ ,{TT$C_BAUD_38400, 38400 }
+#ifdef TT$C_BAUD_57600
+ ,{TT$C_BAUD_57600, 57600 }
+ ,{TT$C_BAUD_76800, 76800 }
+ ,{TT$C_BAUD_115200, 115200 }
+#endif
+ };
+ int n;
+ int speed = DEFAULT_SPEED;
+ for (n = 0; n < TABLESIZE(table); n++) {
+ if (table[n].code == code) {
+ if (table[n].speed > DEFAULT_SPEED)
+ speed = table[n].speed;
+ break;
+ }
+ }
+ return speed;
+}
+
+/*
+ * Read the tty-in. If we're looking for a single character, wait. Otherwise,
+ * read whatever is available, assuming that it's queued and ready.
+ *
+ * The VMS terminal driver operates with a one-second timer, and (from the
+ * manual) we must give at least two seconds for the timeout value. If we
+ * give a 0-second timeout, we'll only get (from testing) 16 bytes, which
+ * is enough for a CPR, but not for DA, etc.
+ */
+static void
+read_vms_tty(int length, int timed)
+{
+ int status;
+ QIO_SB iosb;
+ int term[2] = {0,0};
+ int my_flags = IO$_READLBLK | in_flags;
+ int timeout = 0;
+
+ if (length < 1)
+ return;
+ if (length > 1) {
+ my_flags |= IO$M_TIMED;
+ timeout = 1; /* seconds */
+ }
+ if (timed)
+ timeout = 2; /* seconds */
+
+#ifdef DEBUG
+ if (LOG_ENABLED) {
+ fprintf(log_fp, "reading: len=%d, flags=%#x\n", length, my_flags);
+ fflush(log_fp);
+ }
+#endif
+ status = sys$qiow(EFN, iochan, my_flags,
+ &iosb, 0, 0, ibuf, length, timeout, term, 0, 0);
+#ifdef DEBUG
+ if (LOG_ENABLED) {
+ fprintf(log_fp,
+ "read: st=%d, cnt=%#x, dev=%#x\n",
+ iosb.status, iosb.count, iosb.dev_dep_data);
+ fflush(log_fp);
+ }
+#endif
+
+ if (status != SS$_NORMAL
+ || iosb.status == SS$_ENDOFFILE)
+ give_up(status);
+
+ nibuf = iosb.count + (iosb.dev_dep_data >> 16);
+}
+
+/******************************************************************************/
+
+void reset_inchar(void)
+{
+ /* FIXME */
+}
+
+/*
+ * Wait until a character is typed on the terminal then read it, without
+ * waiting for CR.
+ */
+char
+inchar(void)
+{
+ int c;
+
+ fflush(stdout);
+ read_vms_tty(1, FALSE);
+ c = (ibuf[0] & 0xff);
+ if (c == '\r' && cr_flag && !(in_flags & IO$M_NOFILTR)) {
+ c = '\n';
+ if (in_flags & IO$M_NOECHO)
+ putchar(c);
+ }
+ return c;
+}
+
+/*
+ * Get an unfinished string from the terminal: wait until a character is typed
+ * on the terminal, then read it, and all other available characters. Return a
+ * pointer to that string.
+ *
+ * This function won't read long strings, but we use it for instances where
+ * we only expect short (16 bytes or less) replies (i.e., a function-key).
+ */
+char *
+instr(void)
+{
+ static char result[1024];
+
+ result[0] = inchar();
+ zleep(100); /* Wait 0.1 seconds */
+ fflush(stdout);
+ read_vms_tty (sizeof(result)-3, FALSE);
+ memcpy(result+1, ibuf, nibuf);
+ result[1 + nibuf] = '\0';
+
+ if (LOG_ENABLED) {
+ fputs("Reply: ", log_fp);
+ put_string(log_fp, result);
+ fputs("\n", log_fp);
+ }
+
+ return(result);
+}
+
+/*
+ * Get an unfinished string from the terminal: wait until a character is typed
+ * on the terminal, then read it, and all other available characters. Return a
+ * pointer to that string.
+ *
+ * Unlike 'instr()', this will really read long strings.
+ */
+char *
+get_reply(void)
+{
+ static char result[256];
+
+ result[0] = inchar();
+ zleep(100); /* Wait 0.1 seconds */
+ fflush(stdout);
+ read_vms_tty (sizeof(result)-3, TRUE);
+ memcpy(result+1, ibuf, nibuf);
+ result[1 + nibuf] = '\0';
+
+ if (LOG_ENABLED) {
+ fputs("Reply: ", log_fp);
+ put_string(log_fp, result);
+ fputs("\n", log_fp);
+ }
+
+ return(result);
+}
+
+/*
+ * Read to the next newline, truncating the buffer at BUFSIZ-1 characters
+ */
+void
+inputline(char *s)
+{
+ do {
+ int ch;
+ char *d = s;
+ while ((ch = getchar()) != EOF && ch != '\n') {
+ if ((d - s) < BUFSIZ-2)
+ *d++ = ch;
+ }
+ *d = 0;
+ } while (!*s);
+}
+
+/*
+ * Flush input buffer, make sure no pending input character
+ */
+void
+inflush(void)
+{
+ nibuf = 0;
+}
+
+void
+outflush(void)
+{
+ fflush(stdout);
+}
+
+void
+holdit(void)
+{
+ inflush();
+ printf("Push <RETURN>");
+ readnl();
+}
+
+void
+readnl(void)
+{
+ fflush(stdout);
+ while (inchar() != '\n')
+ ;
+}
+
+/*
+ * Sleep and do nothing (don't waste CPU) for t milliseconds
+ */
+void
+zleep(int t)
+{
+ float seconds = t/1000.;
+ lib$wait(&seconds);
+}
+
+/******************************************************************************/
+
+void
+init_ttymodes(int pn)
+{
+ struct dsc$descriptor idsc;
+ struct dsc$descriptor odsc;
+ char oname[40];
+ QIO_SB iosb;
+ int status;
+
+ odsc.dsc$a_pointer = "TT";
+ odsc.dsc$w_length = strlen(odsc.dsc$a_pointer);
+ odsc.dsc$b_dtype = DSC$K_DTYPE_T;
+ odsc.dsc$b_class = DSC$K_CLASS_S;
+ idsc.dsc$b_dtype = DSC$K_DTYPE_T;
+ idsc.dsc$b_class = DSC$K_CLASS_S;
+
+ do {
+ idsc.dsc$a_pointer = odsc.dsc$a_pointer;
+ idsc.dsc$w_length = odsc.dsc$w_length;
+ odsc.dsc$a_pointer = &oname[0];
+ odsc.dsc$w_length = sizeof(oname);
+
+ status = lib$sys_trnlog(&idsc, &odsc.dsc$w_length, &odsc);
+ if (status != SS$_NORMAL
+ && status != SS$_NOTRAN)
+ give_up(status);
+ if (oname[0] == 0x1B) {
+ odsc.dsc$a_pointer += 4;
+ odsc.dsc$w_length -= 4;
+ }
+ } while (status == SS$_NORMAL);
+
+ status = sys$assign(&odsc, &iochan, 0, 0);
+ if (status != SS$_NORMAL)
+ give_up(status);
+
+ status = sys$qiow(EFN, iochan, IO$_SENSEMODE, &iosb, 0, 0,
+ oldmode, sizeof(oldmode), 0, 0, 0, 0);
+ if (status != SS$_NORMAL
+ || iosb.status != SS$_NORMAL)
+ give_up(status);
+#ifdef DEBUG
+ if (LOG_ENABLED)
+ fprintf(log_fp,
+ "sense: st=%d, cnt=%#x, dev=%#x\n",
+ iosb.status, iosb.count, iosb.dev_dep_data);
+#endif
+
+ newmode[0] = oldmode[0];
+ newmode[1] = oldmode[1] | TT$M_EIGHTBIT;
+ newmode[1] &= ~(TT$M_TTSYNC|TT$M_HOSTSYNC);
+
+ /* FIXME: this assumes we're doing IO$_SETCHAR */
+ newmode[2] = oldmode[2] | TT2$M_PASTHRU;
+
+ status = sys$qiow(EFN, iochan, IO$_SETMODE, &iosb, 0, 0,
+ newmode, sizeof(newmode), 0, 0, 0, 0);
+ if (status != SS$_NORMAL
+ || iosb.status != SS$_NORMAL)
+ give_up(status);
+
+ max_lines = (newmode[1]>>24);
+ min_cols = newmode[0]>>16;
+ tty_speed = lookup_speed(iosb.count & 0xff);
+
+ if (LOG_ENABLED) {
+ fprintf(log_fp, "TTY modes %#x, %#x, %#x\n", oldmode[0], oldmode[1], oldmode[2]);
+ fprintf(log_fp, "iosb.count = %#x\n", iosb.count);
+ fprintf(log_fp, "iosb.dev_dep_data = %#x\n", iosb.dev_dep_data);
+ fprintf(log_fp, "TTY speed = %d\n", tty_speed);
+ }
+}
+
+/*
+ * Restore state to "normal", for menu-prompting
+ */
+void
+restore_ttymodes(void)
+{
+ outflush();
+ in_flags = 0;
+ cr_flag = TRUE;
+}
+
+void
+close_tty(void)
+{
+ int status;
+ QIO_SB iosb;
+
+ status = sys$qiow(EFN, iochan, IO$_SETMODE, &iosb, 0, 0,
+ oldmode, sizeof(oldmode), 0, 0, 0, 0);
+ if (status == SS$_IVCHAN)
+ return; /* already closed it */
+ (void) sys$dassgn(iochan);
+}
+
+void
+set_tty_crmod(int enabled)
+{
+ cr_flag = enabled;
+}
+
+void
+set_tty_echo(int enabled)
+{
+ if (enabled)
+ in_flags &= ~IO$M_NOECHO;
+ else
+ in_flags |= IO$M_NOECHO;
+}
+
+void
+set_tty_raw(int enabled)
+{
+ if (enabled)
+ in_flags |= IO$M_NOFILTR;
+ else
+ in_flags &= ~IO$M_NOFILTR;
+}
diff --git a/doc/vttest-20011130/vmsbuild.com b/doc/vttest-20011130/vmsbuild.com
new file mode 100644
index 0000000..4849b26
--- /dev/null
+++ b/doc/vttest-20011130/vmsbuild.com
@@ -0,0 +1,163 @@
+$! $Id$
+$! VMS build-script for VTTEST. Requires installed C compiler
+$!
+$! Tested with:
+$! VMS system version 5.4-2
+$! VAX-C version 3.2
+$!
+$! Build the option-file
+$!
+$ release := 2
+$ open/write optf vms_link.opt
+$ write optf "Identification=""VtTest ''release'.7"""
+$ write optf "charsets.obj"
+$ write optf "color.obj"
+$ write optf "esc.obj"
+$ write optf "keyboard.obj"
+$ write optf "mouse.obj"
+$ write optf "nonvt100.obj"
+$ write optf "printer.obj"
+$ write optf "reports.obj"
+$ write optf "reset.obj"
+$ write optf "setup.obj"
+$ write optf "sixel.obj"
+$ write optf "status.obj"
+$ write optf "vt220.obj"
+$ write optf "vt420.obj"
+$ write optf "vt52.obj"
+$ write optf "vms_io.obj"
+$ write optf "xterm.obj"
+$!
+$! Look for the compiler used
+$!
+$ CC = "CC"
+$ if f$getsyi("HW_MODEL").ge.1024
+$ then
+$ arch = "__alpha__=1"
+$ comp = "__decc__=1"
+$ CFLAGS = "/prefix=all"
+$ DEFS = ",HAVE_ALARM"
+$ if f$trnlnm("SYS").eqs."" then define sys sys$library:
+$ else
+$ arch = "__vax__=1"
+$ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs.""
+$ then
+$ if f$trnlnm("SYS").eqs."" then define sys sys$library:
+$ DEFS = ",HAVE_SYS_ERRLIST"
+$ write optf "sys$library:vaxcrtl.exe/share"
+$ if f$search("SYS$SYSTEM:VAXC.EXE").eqs.""
+$ then
+$ if f$trnlnm("GNU_CC").eqs.""
+$ then
+$ write sys$output "C compiler required to rebuild vttest"
+$ close optf
+$ exit
+$ else
+$ write optf "gnu_cc:[000000]gcclib.olb/lib"
+$ comp = "__gcc__=1"
+$ CC = "GCC"
+$ endif
+$ else
+$ comp = "__vaxc__=1"
+$ endif
+$ else
+$ if f$trnlnm("SYS").eqs."" then define sys decc$library_include:
+$ comp = "__decc__=1"
+$ endif
+$ endif
+$
+$ close optf
+$
+$! used /G_FLOAT with vaxcrtlg/share in vms_link.opt
+$! can also use /Debug /Listing, /Show=All
+$
+$ if f$search("SYS$SYSTEM:MMS.EXE").eqs.""
+$ then
+$
+$ CFLAGS := 'CFLAGS/Diagnostics /Define=("RELEASE=''RELEASE'''DEFS'") /Include=([])
+$
+$ if "''p1'" .nes. "" then goto 'p1
+$
+$ all :
+$ call make charsets
+$ call make color
+$ call make esc
+$ call make keyboard
+$ call make main
+$ call make mouse
+$ call make nonvt100
+$ call make printer
+$ call make reports
+$ call make reset
+$ call make setup
+$ call make sixel
+$ call make status
+$ call make vt220
+$ call make vt420
+$ call make vt52
+$ call make vms_io
+$ call make xterm
+$
+$ link /exec=VTTEST/map/cross main.obj, vms_link/opt
+$ goto build_last
+$
+$ install :
+$ WRITE SYS$ERROR "** no rule for install"
+$ goto build_last
+$
+$ clean :
+$ if f$search("*.obj") .nes. "" then delete *.obj;*
+$ if f$search("*.bak") .nes. "" then delete *.bak;*
+$ if f$search("*.lis") .nes. "" then delete *.lis;*
+$ if f$search("*.log") .nes. "" then delete *.log;*
+$ if f$search("*.map") .nes. "" then delete *.map;*
+$ if f$search("*.opt") .nes. "" then delete *.opt;*
+$ goto build_last
+$
+$ clobber :
+$ if f$search("vttest.com") .nes. "" then delete vttest.com;*
+$ if f$search("*.exe") .nes. "" then delete *.exe;*
+$ goto build_last
+$
+$ build_last :
+$ if f$search("*.dia") .nes. "" then delete *.dia;*
+$ if f$search("*.lis") .nes. "" then purge *.lis
+$ if f$search("*.obj") .nes. "" then purge *.obj
+$ if f$search("*.map") .nes. "" then purge *.map
+$ if f$search("*.opt") .nes. "" then purge *.opt
+$ if f$search("*.exe") .nes. "" then purge *.exe
+$ if f$search("*.log") .nes. "" then purge *.log
+$ exit
+$
+$! Runs VTTEST from the current directory (used for testing)
+$ vttest_com :
+$ if "''f$search("vttest.com")'" .nes. "" then delete vttest.com;*
+$ copy nl: vttest.com
+$ open/append test_script vttest.com
+$ write test_script "$ temp = f$environment(""procedure"")"
+$ write test_script "$ temp = temp -"
+$ write test_script " - f$parse(temp,,,""version"",""syntax_only"") -"
+$ write test_script " - f$parse(temp,,,""type"",""syntax_only"")"
+$ write test_script "$ vttest :== $ 'temp'.exe"
+$ write test_script "$ define/user_mode sys$input sys$command"
+$ write test_script "$ define/user_mode sys$output sys$command"
+$ write test_script "$ vttest 'p1 'p2 'p3 'p4 'p5 'p6 'p7 'p8"
+$ close test_script
+$ write sys$output "** made vttest.com"
+$ exit
+$!
+$! We have MMS installed
+$ else
+$ mms/macro=('comp','mmstar','arch') 'p2
+$ endif
+$ exit
+$
+$ make: subroutine
+$ if f$search("''p1'.obj") .eqs. ""
+$ then
+$ write sys$output "compiling ''p1'"
+$ 'CC 'CFLAGS 'p1.c
+$ if f$search("''p1'.dia") .nes. "" then delete 'p1.dia;*
+$ endif
+$ exit
+$ endsubroutine
diff --git a/doc/vttest-20011130/vt220.c b/doc/vttest-20011130/vt220.c
new file mode 100644
index 0000000..2f9bed6
--- /dev/null
+++ b/doc/vttest-20011130/vt220.c
@@ -0,0 +1,463 @@
+/* $Id$ */
+
+/*
+ * Reference: VT220 Programmer Pocket Guide (EK-VT220-HR-002)
+ */
+#include <vttest.h>
+#include <ttymodes.h>
+#include <esc.h>
+
+int
+any_DSR(MENU_ARGS, char *text, void (*explain)(char *report))
+{
+ char *report;
+
+ vt_move(1,1);
+ printf("Testing DSR: %s\n", the_title);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ do_csi("%s", text);
+ report = get_reply();
+ vt_move(3,10);
+ chrprint(report);
+ if ((report = skip_csi(report)) != 0
+ && strlen(report) > 2
+ && *report++ == '?') {
+ if (explain != 0)
+ (*explain)(report);
+ else
+ show_result(SHOW_SUCCESS);
+ } else {
+ show_result(SHOW_FAILURE);
+ }
+
+ restore_ttymodes();
+ vt_move(max_lines-1, 1);
+ return MENU_HOLD;
+}
+
+static void
+report_ok(char *ref, char *tst)
+{
+ if ((tst = skip_csi(tst)) == 0)
+ tst = "?";
+ show_result(!strcmp(ref, tst) ? SHOW_SUCCESS : SHOW_FAILURE);
+}
+
+/*
+ * Request CSI ? 26 n keyboard dialect
+ * Response CSI ? 27; Ps n
+ */
+static void
+show_KeyboardStatus(char *report)
+{
+ int pos = 0;
+ int code;
+ int save;
+ char *show = SHOW_FAILURE;
+
+ if ((code = scanto(report, &pos, ';')) == 27
+ && (code = scan_any(report, &pos, 'n')) != 0) {
+ switch(code) {
+ case 1: show = "North American/ASCII"; break;
+ case 2: show = "British"; break;
+ case 3: show = "Flemish"; break;
+ case 4: show = "French Canadian"; break;
+ case 5: show = "Danish"; break;
+ case 6: show = "Finnish"; break;
+ case 7: show = "German"; break;
+ case 8: show = "Dutch"; break;
+ case 9: show = "Italian"; break;
+ case 10: show = "Swiss (French)"; break;
+ case 11: show = "Swiss (German)"; break;
+ case 12: show = "Swedish"; break;
+ case 13: show = "Norwegian/Danish"; break;
+ case 14: show = "French"; break;
+ case 15: show = "Spanish"; break;
+ case 16: show = "Portugese"; break;
+ case 17: show = "Hebrew"; break; /* FIXME: kermit says 14 */
+ default: show = "unknown";
+ }
+ }
+ show_result(show);
+
+ /* VT420 implements additional parameters past those reported by the VT220 */
+ save = pos;
+ code = scan_any(report, &pos, 'n');
+ if (save != pos) {
+ vt_move(5,10);
+ switch(code) {
+ case 0: show = "keyboard ready"; break;
+ case 3: show = "no keyboard"; break;
+ case 8: show = "keyboard busy"; break;
+ default: show = "unknown keyboard status";
+ }
+ show_result(show);
+
+ vt_move(6,10);
+ switch (code = scan_any(report, &pos, 'n')) {
+ case 0: show = "LK201"; break;
+ case 1: show = "LK401"; break;
+ default: show = "unknown keyboard type";
+ }
+ show_result(show);
+ }
+}
+
+static void
+show_Locator_Status(char *report)
+{
+ int pos = 0;
+ int code = scanto(report, &pos, 'n');
+ char *show;
+
+ switch(code) {
+ case 53: show = "No locator"; break;
+ case 50: show = "Locator ready"; break;
+ case 58: show = "Locator busy"; break;
+ default: show = SHOW_FAILURE;
+ }
+ show_result(show);
+}
+
+static void
+show_PrinterStatus(char *report)
+{
+ int pos = 0;
+ int code = scanto(report, &pos, 'n');
+ char *show;
+
+ switch (code) {
+ case 13: show = "No printer"; break;
+ case 10: show = "Printer ready"; break;
+ case 11: show = "Printer not ready"; break;
+ case 18: show = "Printer busy"; break;
+ case 19: show = "Printer assigned to other session"; break;
+ default: show = SHOW_FAILURE;
+ }
+ show_result(show);
+}
+
+static void
+show_UDK_Status(char *report)
+{
+ int pos = 0;
+ int code = scanto(report, &pos, 'n');
+ char *show;
+
+ switch(code) {
+ case 20: show = "UDKs unlocked"; break;
+ case 21: show = "UDKs locked"; break;
+ default: show = SHOW_FAILURE;
+ }
+ show_result(show);
+}
+
+/* VT220 & up.
+ */
+int
+tst_S8C1T(MENU_ARGS)
+{
+ char *report;
+ int flag = input_8bits;
+ int pass;
+
+ vt_move(1,1);
+ println(the_title);
+
+ vt_move(5,1);
+ println("This tests the VT200+ control sequence to direct the terminal to emit 8-bit");
+ println("control-sequences instead of <esc> sequences.");
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ for (pass = 0; pass < 2; pass++) {
+ flag = !flag;
+ s8c1t(flag);
+ cup(1,1); dsr(6);
+ report = instr();
+ vt_move(10 + pass * 3, 1);
+ printf("8-bit controls %s: ", flag ? "enabled" : "disabled");
+ chrprint(report);
+ report_ok("1;1R", report);
+ }
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+/*
+ * Test DEC's selective-erase (set-protected area) by drawing a box of
+ * *'s that will remain, and a big X of *'s that gets cleared..
+ */
+int
+tst_DECSCA(MENU_ARGS)
+{
+ int i, j, pass;
+ int tmar = 5;
+ int bmar = max_lines - 8;
+ int lmar = 20;
+ int rmar = min_cols - lmar;
+
+ for (pass = 0; pass < 2; pass++) {
+ if (pass == 0)
+ decsca(1);
+ for (i = tmar; i <= bmar; i++) {
+ cup(i, lmar);
+ for (j = lmar; j <= rmar; j++) {
+ printf("*");
+ }
+ }
+ if (pass == 0) {
+ decsca(0);
+
+ for (j = 0; j <= 2; j++) {
+ for (i = 1; i < tmar; i++) {
+ cup(i, lmar - tmar + (i+j)); printf("*");
+ cup(i, rmar + tmar - (i+j)); printf("*");
+ }
+ for (i = bmar + 1; i < max_lines; i++) {
+ cup(i, lmar + bmar - i + j); printf("*");
+ cup(i, rmar - bmar + i - j); printf("*");
+ }
+ cup(max_lines/2, min_cols/2);
+ decsed(j);
+ }
+
+ for (i = rmar+1; i <= min_cols; i++) {
+ cup(tmar, i); printf("*");
+ cup(max_lines/2, i); printf("*");
+ }
+ cup(max_lines/2, min_cols/2);
+ decsel(0); /* after the cursor */
+
+ for (i = 1; i < lmar; i++) {
+ cup(tmar, i); printf("*");
+ cup(max_lines/2, i); printf("*");
+ }
+ cup(max_lines/2, min_cols/2);
+ decsel(1); /* before the cursor */
+
+ cup(tmar, min_cols/2);
+ decsel(2); /* the whole line */
+
+ vt_move(max_lines-3, 1);
+ vt_clear(0);
+ println("If your terminal supports DEC protected areas (DECSCA, DECSED, DECSEL),");
+ println("there will be an solid box made of *'s in the middle of the screen.");
+ holdit();
+ }
+ }
+ return MENU_NOHOLD;
+}
+
+/*
+ * VT220 & up
+ *
+ * Test if the terminal can make the cursor invisible
+ */
+int
+tst_DECTCEM(MENU_ARGS)
+{
+ vt_move(1,1);
+ rm("?25");
+ println("The cursor should be invisible");
+ holdit();
+ sm("?25");
+ println("The cursor should be visible again");
+ return MENU_HOLD;
+}
+
+int
+tst_DECUDK(MENU_ARGS)
+{
+ int key;
+
+ static struct {
+ int code;
+ char *name;
+ } keytable[] = {
+ /* xterm programs these: */
+ { 11, "F1" },
+ { 12, "F2" },
+ { 13, "F3" },
+ { 14, "F4" },
+ { 15, "F5" },
+ /* vt420 programs these: */
+ { 17, "F6" },
+ { 18, "F7" },
+ { 19, "F8" },
+ { 20, "F9" },
+ { 21, "F10" },
+ { 23, "F11" },
+ { 24, "F12" },
+ { 25, "F13" },
+ { 26, "F14" },
+ { 28, "F15" },
+ { 29, "F16" },
+ { 31, "F17" },
+ { 32, "F18" },
+ { 33, "F19" },
+ { 34, "F20" } };
+
+ for (key = 0; key < TABLESIZE(keytable); key++) {
+ char temp[80];
+ char *s;
+ temp[0] = '\0';
+ for (s = keytable[key].name; *s; s++)
+ sprintf(temp + strlen(temp), "%02x", *s & 0xff);
+ do_dcs("1;1|%d/%s", keytable[key].code, temp);
+ }
+
+ vt_move(1,1);
+ println(the_title);
+ println("Press 'q' to quit. Function keys should echo their labels.");
+ println("(On a DEC terminal you must press SHIFT as well).");
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ for (;;) {
+ char *report = instr();
+ if (*report == 'q')
+ break;
+ vt_move(5,10);
+ vt_clear(0);
+ chrprint(report);
+ }
+
+ do_dcs("0"); /* clear all keys */
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+int
+tst_DSR_keyboard(MENU_ARGS)
+{
+ return any_DSR(PASS_ARGS, "?26n", show_KeyboardStatus);
+}
+
+int
+tst_DSR_locator(MENU_ARGS)
+{
+ return any_DSR(PASS_ARGS, "?53n", show_Locator_Status);
+}
+
+int
+tst_DSR_printer(MENU_ARGS)
+{
+ return any_DSR(PASS_ARGS, "?15n", show_PrinterStatus);
+}
+
+int
+tst_DSR_userkeys(MENU_ARGS)
+{
+ return any_DSR(PASS_ARGS, "?25n", show_UDK_Status);
+}
+
+/*
+ * VT200 and up
+ *
+ * Test to ensure that 'ech' (erase character) is honored, with no parameter,
+ * explicit parameter, and longer than the screen width (to ensure that the
+ * terminal doesn't try to wrap-around the erasure).
+ */
+int
+tst_ECH(MENU_ARGS)
+{
+ int i;
+ int last = max_lines - 4;
+
+ decaln();
+ for (i = 1; i <= max_lines; i++) {
+ cup(i, min_cols - i - 2);
+ do_csi("X"); /* make sure default-parameter works */
+ cup(i, min_cols - i - 1);
+ printf("*");
+ ech(min_cols);
+ printf("*"); /* this should be adjacent, in the upper-right corner */
+ }
+
+ vt_move(last, 1);
+ vt_clear(0);
+
+ vt_move(last, min_cols - (last + 10));
+ println("diagonal: ^^ (clear)");
+ println("ECH test: there should be E's with a gap before diagonal of **'s");
+ println("The lower-right diagonal region should be cleared. Nothing else.");
+ return MENU_HOLD;
+}
+
+/******************************************************************************/
+
+static int
+tst_device_status(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Keyboard Status", tst_DSR_keyboard },
+ { "Test Printer Status", tst_DSR_printer },
+ { "Test UDK Status", tst_DSR_userkeys },
+ { "Test Locator Status", tst_DSR_locator },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT220 Device Status Reports");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+static int
+tst_terminal_modes(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Send/Receive mode (SRM)", tst_SRM },
+ { "Test Visible/Invisible Cursor (DECTCEM)", tst_DECTCEM },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT220 Terminal Mode Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+int
+tst_vt220(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test 8-bit controls (S7C1T/S8C1T)", tst_S8C1T },
+ { "Test Device Status Report (DSR)", tst_device_status },
+ { "Test Erase Char (ECH)", tst_ECH },
+ { "Test Printer (MC)", tst_printing },
+ { "Test Protected-Areas (DECSCA)", tst_DECSCA },
+ { "Test Soft Character Sets (DECDLD)", tst_softchars },
+ { "Test Terminal Modes", tst_terminal_modes },
+ { "Test user-defined keys (DECUDK)", tst_DECUDK },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT220/VT320 Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/vt420.c b/doc/vttest-20011130/vt420.c
new file mode 100644
index 0000000..e88de28
--- /dev/null
+++ b/doc/vttest-20011130/vt420.c
@@ -0,0 +1,1615 @@
+/* $Id$ */
+
+/*
+ * Reference: Installing and Using the VT420 Video Terminal (North American
+ * Model (EK-VT420-UG.002)
+ */
+#include <vttest.h>
+#include <esc.h>
+#include <ttymodes.h>
+
+typedef struct {
+ int mode;
+ char *name;
+ } MODES;
+
+static void show_DECCIR(char *report);
+static void show_DECTABSR(char *report);
+
+/******************************************************************************/
+
+static int
+any_decrqpsr(MENU_ARGS, int Ps)
+{
+ char *report;
+
+ vt_move(1,1);
+ printf("Testing DECRQPSR: %s\n", the_title);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ do_csi("%d$w", Ps);
+ report = get_reply();
+ vt_move(3,10);
+ chrprint(report);
+ if ((report = skip_dcs(report)) != 0) {
+ if (strip_terminator(report)
+ && *report == Ps + '0'
+ && !strncmp(report+1, "$u", 2)) {
+ show_result("%s (valid request)", SHOW_SUCCESS);
+ switch (Ps) {
+ case 1:
+ show_DECCIR(report);
+ break;
+ case 2:
+ show_DECTABSR(report);
+ break;
+ }
+ } else {
+ show_result(SHOW_FAILURE);
+ }
+ } else {
+ show_result(SHOW_FAILURE);
+ }
+
+ restore_ttymodes();
+ vt_move(max_lines-1, 1);
+ return MENU_HOLD;
+}
+
+/*
+ * FIXME: The VT420 manual says that a valid response begins "DCS 0 $ r",
+ * however I see "DCS 1 $ r" on a real VT420, consistently.
+ */
+static int
+any_decrqss(char *msg, char *func)
+{
+ char *report;
+ char *show;
+
+ vt_move(1,1);
+ printf("Testing DECRQSS: %s\n", msg);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ decrqss(func);
+ report = get_reply();
+ vt_move(3,10);
+ chrprint(report);
+ switch (parse_decrqss(report, func)) {
+ case 1:
+ show = "ok (valid request)";
+ break;
+ case 0:
+ show = "invalid request";
+ break;
+ default:
+ show = SHOW_FAILURE;
+ break;
+ }
+ show_result(show);
+
+ restore_ttymodes();
+ vt_move(max_lines-1, 1);
+ return MENU_HOLD;
+}
+
+/******************************************************************************/
+
+static int
+rpt_DECSASD(MENU_ARGS)
+{
+ return any_decrqss(the_title, "$}");
+}
+
+static int
+rpt_DECSACE(MENU_ARGS)
+{
+ return any_decrqss(the_title, "*x");
+}
+
+static int
+rpt_DECSCA(MENU_ARGS)
+{
+ return any_decrqss(the_title, "\"q");
+}
+
+static int
+rpt_DECSCL(MENU_ARGS)
+{
+ return any_decrqss(the_title, "\"p");
+}
+
+static int
+rpt_DECSCPP(MENU_ARGS)
+{
+ return any_decrqss(the_title, "$|");
+}
+
+static int
+rpt_DECSLPP(MENU_ARGS)
+{
+ return any_decrqss(the_title, "t");
+}
+
+static int
+rpt_DECSNLS(MENU_ARGS)
+{
+ return any_decrqss(the_title, "*|");
+}
+
+static int
+rpt_DECSLRM(MENU_ARGS)
+{
+ return any_decrqss(the_title, "s");
+}
+
+static int
+rpt_DECSSDT(MENU_ARGS)
+{
+ return any_decrqss(the_title, "$~");
+}
+
+static int
+rpt_DECSTBM(MENU_ARGS)
+{
+ return any_decrqss(the_title, "r");
+}
+
+static int
+rpt_SGR(MENU_ARGS)
+{
+ return any_decrqss(the_title, "m");
+}
+
+static int
+rpt_DECELF(MENU_ARGS)
+{
+ return any_decrqss(the_title, "+q");
+}
+
+/*
+ * VT420 manual shows "=}", but the terminal returns an error. VT510 sequences
+ * show "*}".
+ */
+static int
+rpt_DECLFKC(MENU_ARGS)
+{
+ return any_decrqss(the_title, "*}");
+}
+
+static int
+rpt_DECSMKR(MENU_ARGS)
+{
+ return any_decrqss(the_title, "+r");
+}
+
+/******************************************************************************/
+
+/*
+ * DECCIR returns single characters separated by semicolons. It's not clear
+ * (unless you test on a DEC terminal) from the documentation, which only cites
+ * their values. This function returns an equivalent-value, recovering from
+ * the bogus implementations that return a decimal number.
+ */
+static int
+scan_chr(char *str, int *pos, int toc)
+{
+ int value = 0;
+ while (str[*pos] != '\0' && str[*pos] != toc) {
+ value = (value * 256) + (unsigned char)str[*pos];
+ *pos += 1;
+ }
+ if (str[*pos] == toc)
+ *pos += 1;
+ return value;
+}
+
+static void
+show_DataIntegrity(char *report)
+{
+ int pos = 0;
+ int code = scanto(report, &pos, 'n');
+ char *show;
+
+ switch(code) {
+ case 70: show = "No communication errors"; break;
+ case 71: show = "Communication errors"; break;
+ case 73: show = "Not reported since last power-up or RIS"; break;
+ default: show = SHOW_FAILURE;
+ }
+ show_result(show);
+}
+
+/*
+ * From Kermit 3.13 & VT220 pocket guide
+ *
+ * Request CSI 1 $ w cursor information report
+ * Response DCS 1 $ u Pr; Pc; Pp; Srend; Satt; Sflag; Pgl; Pgr; Scss; Sdesig ST
+ * where Pr is cursor row (counted from origin as 1,1)
+ * Pc is cursor column
+ * Pp is 1, video page, a constant for VT320s
+ * Srend = 40h + 8 (rev video on) + 4 (blinking on)
+ * + 2 (underline on) + 1 (bold on)
+ * Satt = 40h + 1 (selective erase on)
+ * Sflag = 40h + 8 (autowrap pending) + 4 (SS3 pending)
+ * + 2 (SS2 pending) + 1 (Origin mode on)
+ * Pgl = char set in GL (0 = G0, 1 = G1, 2 = G2, 3 = G3)
+ * Pgr = char set in GR (same as for Pgl)
+ * Scss = 40h + 8 (G3 is 96 char) + 4 (G2 is 96 char)
+ * + 2 (G1 is 96 char) + 1 (G0 is 96 char)
+ * Sdesig is string of character idents for sets G0...G3, with
+ * no separators between set idents.
+ * If NRCs are active the set idents (all 94 byte types) are:
+ * British A Italian Y
+ * Dutch 4 Norwegian/Danish ' (hex 60) or E or 6
+ * Finnish 5 or C Portuguese %6 or g or L
+ * French R or f Spanish Z
+ * French Canadian 9 or Q Swedish 7 or H
+ * German K Swiss =
+ * Hebrew %=
+ * (MS Kermit uses any choice when there are multiple)
+ */
+
+#define show_DECCIR_flag(value, mask, string) \
+ if (value & mask) { value &= ~mask; show_result(string); }
+
+static void
+show_DECCIR(char *report)
+{
+ int Pr, Pc, Pp, Srend, Satt, Sflag, Pgl, Pgr, Scss, Sdesig;
+ int pos = 3; /* skip "1$u" */
+ int n;
+
+ Pr = scanto(report, &pos, ';');
+ Pc = scanto(report, &pos, ';');
+ Pp = scanto(report, &pos, ';');
+ vt_move(5,10); show_result("Cursor (%d,%d), page %d", Pr, Pc, Pp);
+
+ Srend = scan_chr(report, &pos, ';');
+ vt_move(6,10);
+ if (Srend & 0x40) {
+ show_DECCIR_flag(Srend, 0x40, "Rendition:");
+ if (Srend == 0) show_result(" normal");
+ show_DECCIR_flag(Srend, 0x08, " reverse");
+ show_DECCIR_flag(Srend, 0x04, " blinking");
+ show_DECCIR_flag(Srend, 0x02, " underline");
+ show_DECCIR_flag(Srend, 0x01, " bold");
+ }
+ if (Srend) show_result(" -> unknown rendition (0x%x)", Srend);
+
+ Satt = scan_chr(report, &pos, ';');
+ vt_move(7,10);
+ switch(Satt) {
+ case 0x40: show_result("Selective erase: off"); break;
+ case 0x41: show_result("Selective erase: ON"); break;
+ default: show_result("Selective erase: unknown (0x%x)", Satt);
+ }
+
+ Sflag = scan_chr(report, &pos, ';');
+ vt_move(8,10);
+ if (Sflag & 0x40) {
+ show_DECCIR_flag(Sflag, 0x40, "Flags:");
+ show_DECCIR_flag(Sflag, 0x08, " autowrap pending");
+ show_DECCIR_flag(Sflag, 0x04, " SS3 pending");
+ show_DECCIR_flag(Sflag, 0x02, " SS2 pending");
+ show_DECCIR_flag(Sflag, 0x01, " origin-mode on");
+ } else {
+ show_result(" -> unknown flag (0x%x)", Sflag);
+ }
+
+ Pgl = scanto(report, &pos, ';');
+ Pgr = scanto(report, &pos, ';');
+ vt_move(9,10);
+ show_result("Char set in GL: G%d, Char set in GR: G%d", Pgl, Pgr);
+
+ Scss = scan_chr(report, &pos, ';');
+ vt_move(10,10);
+ if (Scss & 0x40) {
+ show_DECCIR_flag(Scss, 0x40, "Char set sizes:");
+ show_DECCIR_flag(Scss, 0x08, " G3 is 96 char");
+ show_DECCIR_flag(Scss, 0x04, " G2 is 96 char");
+ show_DECCIR_flag(Scss, 0x02, " G1 is 96 char");
+ show_DECCIR_flag(Scss, 0x01, " G0 is 96 char"); /* VT420 manual says this cannot happen */
+ } else {
+ show_result(" -> unknown char set size (0x%x)", Scss);
+ }
+
+ n = 11;
+ vt_move(n, 10);
+ show_result("Character set idents for G0...G3: ");
+ while ((Sdesig = report[pos]) != '\0') {
+ vt_move(++n, 12);
+ ++pos;
+ switch (Sdesig) {
+ case 'B':
+ show_result("ASCII");
+ break;
+ case '<':
+ show_result("DEC supplemental");
+ break;
+ case '0':
+ show_result("DEC special graphics");
+ break;
+ case 'A':
+ show_result("British");
+ break;
+ case 'Y':
+ show_result("Italian");
+ break;
+ case '4':
+ show_result("Dutch");
+ break;
+ case '\'':
+ case 'E':
+ case '6':
+ show_result("Norwegian/Danish");
+ break;
+ case '5':
+ case 'C':
+ show_result("Finnish");
+ break;
+ case 'g':
+ case 'L':
+ show_result("Portuguese");
+ break;
+ case 'R':
+ case 'f':
+ show_result("French");
+ break;
+ case 'Z':
+ show_result("Spanish");
+ break;
+ case '9':
+ case 'Q':
+ show_result("French Canadian");
+ break;
+ case '7':
+ case 'H':
+ show_result("Swedish");
+ break;
+ case 'K':
+ show_result("German");
+ break;
+ case '=':
+ show_result("Swiss");
+ break;
+ case '%':
+ if ((Sdesig = report[pos]) != '\0') {
+ ++pos;
+ switch(Sdesig) {
+ case '=':
+ show_result("Hebrew");
+ break;
+ case '6':
+ show_result("Portuguese");
+ break;
+ default: show_result(" unknown (0x%x)", Sdesig);
+ }
+ }
+ break;
+ default: show_result(" unknown (0x%x)", Sdesig);
+ }
+ }
+}
+
+/*
+ * Request CSI 2 $ w tab stop report
+ * Response DCS 2 $ u Pc/Pc/...Pc ST
+ * Pc are column numbers (from 1) where tab stops occur. Note the
+ * separator "/" occurs in a real VT320 but should have been ";".
+ */
+static void
+show_DECTABSR(char *report)
+{
+ int pos = 3; /* skip "2$u" */
+ int stop;
+ char *buffer = malloc(strlen(report));
+
+ *buffer = '\0';
+ strcat(report, "/"); /* simplify scanning */
+ while ((stop = scanto(report, &pos, '/')) != 0) {
+ sprintf(buffer + strlen(buffer), " %d", stop);
+ }
+ println("");
+ show_result("Tab stops:%s", buffer);
+ free(buffer);
+}
+
+static void
+show_ExtendedCursorPosition(char *report)
+{
+ int pos = 0;
+ int Pl = scan_any(report, &pos, 'R');
+ int Pc = scan_any(report, &pos, 'R');
+ int Pp = scan_any(report, &pos, 'R');
+
+ if (Pl != 0 && Pc != 0) {
+ if (Pp != 0)
+ show_result("Line %d, Column %d, Page %d", Pl, Pc, Pp);
+ else
+ show_result("Line %d, Column %d (Page?)", Pl, Pc);
+ } else
+ show_result(SHOW_FAILURE);
+}
+
+static void
+show_keypress(int row, int col)
+{
+ char *report;
+ char last[BUFSIZ];
+
+ last[0] = '\0';
+ vt_move(row++,1);
+ println("When you are done, press any key twice to quit.");
+ vt_move(row,col);
+ fflush(stdout);
+ while (strcmp(report = instr(), last)) {
+ vt_move(row,col);
+ vt_clear(0);
+ chrprint(report);
+ strcpy(last, report);
+ }
+}
+
+static void
+show_MultisessionStatus(char *report)
+{
+ int pos = 0;
+ int Ps1 = scan_any(report, &pos, 'n');
+ int Ps2 = scanto(report, &pos, 'n');
+ char *show;
+
+ switch (Ps1) {
+ case 80: show = "SSU sessions enabled (%d max)"; break;
+ case 81: show = "SSU sessions available but pending (%d max)"; break;
+ case 83: show = "SSU sessions not ready"; break;
+ case 87: show = "Sessions on separate lines"; break;
+ default: show = SHOW_FAILURE;
+ }
+ show_result(show, Ps2);
+}
+
+/******************************************************************************/
+
+/*
+ * VT400 & up.
+ * DECBI - Back Index
+ * This control function moves the cursor backward one column. If the cursor
+ * is at the left margin, then all screen data within the margin moves one
+ * column to the right. The column that shifted past the right margin is lost.
+ *
+ * Format: ESC 6
+ * Description:
+ * DECBI adds a new column at the left margin with no visual attributes. DECBI
+ * is not affected by the margins. If the cursor is at the left border of the
+ * page when the terminal received DECBI, then the terminal ignores DECBI.
+ */
+static int
+tst_DECBI(MENU_ARGS)
+{
+ int n, m;
+ int last = max_lines - 4;
+ int final = min_cols / 4;
+
+ for (n = final; n > 0; n--) {
+ cup(1,1);
+ if (n != final) {
+ for (m = 0; m < 4; m++)
+ decbi();
+ }
+ printf("%3d", n);
+ }
+
+ vt_move(last,1);
+ vt_clear(0);
+
+ println(the_title);
+ println("If your terminal supports DECBI (backward index), then the top row");
+ printf("should be numbered 1 through %d.\n", final);
+ return MENU_HOLD;
+}
+
+static int
+tst_DECBKM(MENU_ARGS)
+{
+ char *report;
+
+ vt_move(1,1);
+ println(the_title);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ reset_inchar();
+ decbkm(TRUE);
+ println("Press the backspace key");
+ vt_move(3,10);
+ report = instr();
+ chrprint(report);
+ show_result(!strcmp(report, "\010") ? SHOW_SUCCESS : SHOW_FAILURE);
+
+ reset_inchar();
+ vt_move(5,1);
+ decbkm(FALSE);
+ println("Press the backspace key again");
+ vt_move(6,10);
+ report = instr();
+ chrprint(report);
+ show_result(!strcmp(report, "\177") ? SHOW_SUCCESS : SHOW_FAILURE);
+
+ vt_move(max_lines-1,1);
+ restore_ttymodes();
+ return MENU_HOLD;
+}
+
+/*
+ * VT400 & up
+ * Change Attributes in Rectangular Area
+ */
+static int
+tst_DECCARA(MENU_ARGS)
+{
+ int last = max_lines - 4;
+ int top = 5;
+ int left = 5;
+ int right = 45;
+ int bottom = max_lines-10;
+
+ decsace(TRUE);
+ decaln(); /* fill the screen */
+ deccara(top, left, bottom, right, 7); /* invert a rectangle) */
+ deccara(top+1, left+1, bottom-1, right-1, 0); /* invert a rectangle) */
+
+ vt_move(last, 1);
+ vt_clear(0);
+
+ println(the_title);
+ println("There should be an open rectangle formed by reverse-video E's");
+ holdit();
+
+ decsace(FALSE);
+ decaln(); /* fill the screen */
+ deccara(top, left, bottom, right, 7); /* invert a rectangle) */
+ deccara(top+1, left+1, bottom-1, right-1, 0); /* invert a rectangle) */
+
+ vt_move(last, 1);
+ vt_clear(0);
+
+ println(the_title);
+ println("There should be an open rectangle formed by reverse-video E's");
+ println("combined with wrapping at the margins.");
+ return MENU_HOLD;
+}
+
+static int
+tst_DECCIR(MENU_ARGS)
+{
+ return any_decrqpsr(PASS_ARGS, 1);
+}
+
+static int
+tst_DECCKSR(MENU_ARGS, int Pid, char *the_csi)
+{
+ char *report;
+ int pos = 0;
+
+ vt_move(1,1);
+ printf("Testing DECCKSR: %s\n", the_title);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ do_csi("%s", the_csi);
+ report = get_reply();
+ vt_move(3,10);
+ chrprint(report);
+ if ((report = skip_dcs(report)) != 0
+ && strip_terminator(report)
+ && strlen(report) > 1
+ && scanto(report, &pos, '!') == Pid
+ && report[pos++] == '~'
+ && (report = skip_digits(report+pos+1)) != 0
+ && *report == '\0') {
+ show_result(SHOW_SUCCESS);
+ } else {
+ show_result(SHOW_FAILURE);
+ }
+
+ restore_ttymodes();
+ vt_move(max_lines-1, 1);
+ return MENU_HOLD;
+}
+
+/*
+ * VT400 & up.
+ * Copy Rectangular area
+ */
+static int
+tst_DECCRA(MENU_ARGS)
+{
+ int j;
+ int top = 5;
+ int left = 5;
+ int right = 45;
+ int bottom = max_lines-10;
+
+ for (j = top; j < bottom; j++) {
+ cup(j, left); printf("*");
+ cup(j, right); printf("*");
+ }
+ cup(top,left);
+ for (j = left; j <= right; j++)
+ printf("*");
+ cup(bottom,left);
+ for (j = left; j <= right; j++)
+ printf("*");
+
+ vt_move(max_lines-3,1);
+ println(the_title);
+ println("The box of *'s will be copied");
+ holdit();
+
+ deccra(top, left, bottom, right, 1, top+3, left + 4, 1);
+
+ vt_move(max_lines-2, 1);
+ vt_clear(0);
+
+ println("The box should be copied, overlapping");
+ return MENU_HOLD;
+}
+
+/*
+ * VT400 & up.
+ * Delete column.
+ */
+static int
+tst_DECDC(MENU_ARGS)
+{
+ int n;
+ int last = max_lines - 3;
+
+ for (n = 1; n < last; n++) {
+ cup(n, last - n + 22); printf("*");
+ cup(1,1); decdc(1);
+ }
+ cup(1,1); decdc(20);
+
+ vt_move(last+1,1);
+ println("If your terminal supports DECDC, there will be a column of *'s on the left");
+ return MENU_HOLD;
+}
+
+/*
+ * VT400 & up
+ * Erase Rectangular area
+ */
+static int
+tst_DECERA(MENU_ARGS)
+{
+ decaln();
+ decera(5,5, max_lines-10, min_cols-5);
+
+ vt_move(max_lines-3,1);
+ vt_clear(0);
+
+ println(the_title);
+ println("There should be a rectangle cleared in the middle of the screen.");
+ return MENU_HOLD;
+}
+
+/*
+ * VT400 & up.
+ *
+ * DECFI - Forward Index
+ * This control function moves the column forward one column. If the cursor is
+ * at the right margin, then all screen data within the margins moves one
+ * column to the left. The column shifted past the left margin is lost.
+ *
+ * Format: ESC 9
+ * Description:
+ * DECFI adds a new column at the right margin with no visual attributes.
+ * DECFI is not affected by the margins. If the cursor is at the right border
+ * of the page when the terminal receives DECFI, then the terminal ignores
+ * DECFI.
+ */
+static int
+tst_DECFI(MENU_ARGS)
+{
+ int n, m;
+ int last = max_lines - 4;
+ int final = min_cols / 4;
+
+ for (n = 1; n <= final; n++) {
+ cup(1,min_cols-3);
+ printf("%3d", n); /* leaves cursor in rightmost column */
+ if (n != final) {
+ for (m = 0; m < 4; m++)
+ decfi();
+ }
+ }
+
+ vt_move(last,1);
+ vt_clear(0);
+
+ println(the_title);
+ println("If your terminal supports DECFI (forward index), then the top row");
+ printf("should be numbered 1 through %d.\n", final);
+ return MENU_HOLD;
+}
+
+/*
+ * VT400 & up
+ * Fill Rectangular area
+ */
+static int
+tst_DECFRA(MENU_ARGS)
+{
+ decfra('*', 5,5, max_lines-10, min_cols-5);
+
+ vt_move(max_lines-3,1);
+ vt_clear(0);
+
+ println(the_title);
+ println("There should be a rectangle filled in the middle of the screen.");
+ return MENU_HOLD;
+}
+
+/*
+ * VT400 & up.
+ * Insert column.
+ */
+static int
+tst_DECIC(MENU_ARGS)
+{
+ int n;
+ int last = max_lines - 3;
+
+ for (n = 1; n < last; n++) {
+ cup(n, min_cols - 22 - last + n); printf("*");
+ cup(1,1); decic(1);
+ }
+ decic(20);
+
+ vt_move(last+1,1);
+ println("If your terminal supports DECIC, there will be a column of *'s on the right");
+ return MENU_HOLD;
+}
+
+static int
+tst_DECKBUM(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ deckbum(TRUE);
+ println("The keyboard is set for data processing.");
+ show_keypress(3,10);
+
+ vt_move(10,1);
+ deckbum(FALSE);
+ println("The keyboard is set for normal (typewriter) processing.");
+ show_keypress(11,10);
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+static int
+tst_DECKPM(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ deckpm(TRUE);
+ println("The keyboard is set for position reports.");
+ show_keypress(3,10);
+
+ vt_move(10,1);
+ deckpm(FALSE);
+ println("The keyboard is set for character codes.");
+ show_keypress(11,10);
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+static int
+tst_DECNKM(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ decnkm(FALSE);
+ println("Press one or more keys on the keypad. They should generate numeric codes.");
+ show_keypress(3,10);
+
+ vt_move(10,1);
+ decnkm(TRUE);
+ println("Press one or more keys on the keypad. They should generate control codes.");
+ show_keypress(11,10);
+
+ decnkm(FALSE);
+ vt_move(max_lines-1,1);
+ restore_ttymodes();
+ return MENU_HOLD;
+}
+
+/*
+ * VT400 & up
+ * Reverse Attributes in Rectangular Area
+ */
+static int
+tst_DECRARA(MENU_ARGS)
+{
+ int last = max_lines - 4;
+ int top = 5;
+ int left = 5;
+ int right = 45;
+ int bottom = max_lines-10;
+
+ decsace(TRUE);
+ decaln(); /* fill the screen */
+ decrara(top, left, bottom, right, 7); /* invert a rectangle) */
+ decrara(top+1, left+1, bottom-1, right-1, 7); /* invert a rectangle) */
+
+ vt_move(last, 1);
+ vt_clear(0);
+
+ println(the_title);
+ println("There should be an open rectangle formed by reverse-video E's");
+ holdit();
+
+ decsace(FALSE);
+ decaln(); /* fill the screen */
+ decrara(top, left, bottom, right, 7); /* invert a rectangle) */
+ decrara(top+1, left+1, bottom-1, right-1, 7); /* invert a rectangle) */
+
+ vt_move(last, 1);
+ vt_clear(0);
+
+ println(the_title);
+ println("There should be an open rectangle formed by reverse-video E's");
+ println("combined with wrapping at the margins.");
+ return MENU_HOLD;
+}
+
+static int
+tst_ISO_DECRPM(MENU_ARGS)
+{
+ int mode, Pa, Ps;
+ char chr;
+ char *report;
+
+ static struct {
+ int mode;
+ char *name;
+ } ansi_modes[] = {
+ { GATM, "GATM" },
+ { AM, "AM" },
+ { CRM, "CRM" },
+ { IRM, "IRM" },
+ { SRTM, "SRTM" },
+ { VEM, "VEM" },
+ { HEM, "HEM" },
+ { PUM, "PUM" },
+ { SRM, "SRM" },
+ { FEAM, "FEAM" },
+ { FETM, "FETM" },
+ { MATM, "MATM" },
+ { TTM, "TTM" },
+ { SATM, "SATM" },
+ { TSM, "TSM" },
+ { EBM, "EBM" },
+ { LNM, "LNM" } };
+
+ vt_move(1,1);
+ printf("Testing %s\n", the_title);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ for (mode = 0; mode < TABLESIZE(ansi_modes); mode++) {
+ do_csi("%d$p", ansi_modes[mode].mode);
+ report = instr();
+ vt_move(mode+2,10);
+ printf("%8s", ansi_modes[mode].name);
+ if (LOG_ENABLED)
+ fprintf(log_fp, "Testing %8s\n", ansi_modes[mode].name);
+ chrprint(report);
+ if ((report = skip_csi(report)) != 0
+ && sscanf(report, "%d;%d$%c", &Pa, &Ps, &chr) == 3
+ && Pa == ansi_modes[mode].mode
+ && chr == 'y') {
+ switch(Ps) {
+ case 0: show_result(" unknown"); break;
+ case 1: show_result(" set"); break;
+ case 2: show_result(" reset"); break;
+ case 3: show_result(" permanently set"); break;
+ case 4: show_result(" permanently reset"); break;
+ default: show_result(" ?"); break;
+ }
+ } else {
+ show_result(SHOW_FAILURE);
+ }
+ }
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+static int
+tst_DEC_DECRPM(MENU_ARGS)
+{
+ int mode, Pa, Ps;
+ char chr;
+ char *report;
+ char *show;
+
+ static struct {
+ int mode;
+ char *name;
+ } dec_modes[] = {
+ { DECCKM, "DECCKM" },
+ { DECANM, "DECANM" },
+ { DECCOLM, "DECCOLM" },
+ { DECSCLM, "DECSCLM" },
+ { DECSCNM, "DECSCNM" },
+ { DECOM, "DECOM" },
+ { DECAWM, "DECAWM" },
+ { DECARM, "DECARM" },
+ { DECPFF, "DECPFF" },
+ { DECPEX, "DECPEX" },
+ { DECTCEM, "DECTCEM" },
+ { DECNRCM, "DECNRCM" },
+ { DECHCCM, "DECHCCM" },
+ { DECVCCM, "DECVCCM" },
+ { DECPCCM, "DECPCCM" },
+ { DECNKM, "DECNKM" },
+ { DECBKM, "DECBKM" },
+ { DECKBUM, "DECKBUM" },
+ { DECVSSM, "DECVSSM" },
+ { DECXRLM, "DECXRLM" },
+ { DECKPM, "DECKPM" } };
+
+ vt_move(1,1);
+ printf("Testing %s\n", the_title);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ for (mode = 0; mode < TABLESIZE(dec_modes); mode++) {
+ do_csi("?%d$p", dec_modes[mode].mode);
+ report = instr();
+ vt_move(mode+2,10);
+ printf("%8s", dec_modes[mode].name);
+ if (LOG_ENABLED)
+ fprintf(log_fp, "Testing %8s\n", dec_modes[mode].name);
+ chrprint(report);
+ if ((report = skip_csi(report)) != 0
+ && sscanf(report, "?%d;%d$%c", &Pa, &Ps, &chr) == 3
+ && Pa == dec_modes[mode].mode
+ && chr == 'y') {
+ switch(Ps) {
+ case 0: show = "unknown"; break;
+ case 1: show = "set"; break;
+ case 2: show = "reset"; break;
+ case 3: show = "permanently set"; break;
+ case 4: show = "permanently reset"; break;
+ default: show = "?"; break;
+ }
+ } else {
+ show = SHOW_FAILURE;
+ }
+ show_result(show);
+ }
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+/* Test Window Report - VT400 */
+static int
+tst_DECRQDE(MENU_ARGS)
+{
+ char *report;
+ char chr;
+ int Ph, Pw, Pml, Pmt, Pmp;
+
+ vt_move(1,1);
+ println("Testing DECRQDE/DECRPDE Window Report");
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ do_csi("\"v");
+ report = get_reply();
+ vt_move(3,10);
+ chrprint(report);
+
+ if ((report = skip_csi(report)) != 0
+ && sscanf(report, "%d;%d;%d;%d;%d\"%c",
+ &Ph, &Pw, &Pml, &Pmt, &Pmp, &chr) == 6
+ && chr == 'w') {
+ vt_move(5, 10);
+ show_result("lines:%d, cols:%d, left col:%d, top line:%d, page %d",
+ Ph, Pw, Pml, Pmt, Pmp);
+ } else {
+ show_result(SHOW_FAILURE);
+ }
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+static int
+tst_DECRQSS(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Select active status display (DECSASD)", rpt_DECSASD },
+ { "Select attribute change extent (DECSACE)", rpt_DECSACE },
+ { "Set character attribute (DECSCA)", rpt_DECSCA },
+ { "Set conformance level (DECSCL)", rpt_DECSCL },
+ { "Set columns per page (DECSCPP)", rpt_DECSCPP },
+ { "Set lines per page (DECSLPP)", rpt_DECSLPP },
+ { "Set number of lines per screen (DECSNLS)", rpt_DECSNLS },
+ { "Set status line type (DECSSDT)", rpt_DECSSDT },
+ { "Set left and right margins (DECSLRM)", rpt_DECSLRM },
+ { "Set top and bottom margins (DECSTBM)", rpt_DECSTBM },
+ { "Select graphic rendition (SGR)", rpt_SGR },
+ { "Enable local functions (DECELF)", rpt_DECELF },
+ { "Local function key control (DECLFKC)", rpt_DECLFKC },
+ { "Select modifier key reporting (DECSMKR)", rpt_DECSMKR },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Status-Strings Reports");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/* Request Terminal State Report */
+static int
+tst_DECRQTSR(MENU_ARGS)
+{
+ char *report;
+ char *show;
+
+ vt_move(1,1); println("Testing Terminal State Reports (DECRQTSR/DECTSR)");
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ do_csi("1$u");
+ report = get_reply();
+
+ vt_move(3,10);
+ chrprint(report);
+
+ if ((report = skip_dcs(report)) != 0
+ && strip_terminator(report)
+ && !strncmp(report, "1$s", 3)) {
+ show = SHOW_SUCCESS;
+ } else {
+ show = SHOW_FAILURE;
+ }
+ show_result(show);
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+/* Test User-Preferred Supplemental Set - VT400 */
+static int
+tst_DECRQUPSS(MENU_ARGS)
+{
+ char *report;
+ char *show;
+
+ vt_move(1,1);
+ println("Testing DECRQUPSS/DECAUPSS Window Report");
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ do_csi("&u");
+ report = get_reply();
+ vt_move(3,10);
+ chrprint(report);
+ if ((report = skip_dcs(report)) != 0
+ && strip_terminator(report)) {
+ if (!strcmp(report, "0!u%5"))
+ show = "DEC Supplemental Graphic";
+ else if (!strcmp(report, "1!uA"))
+ show = "ISO Latin-1 supplemental";
+ else
+ show = "unknown";
+ } else {
+ show = SHOW_FAILURE;
+ }
+ show_result(show);
+
+ restore_ttymodes();
+ vt_move(max_lines-1,1);
+ return MENU_HOLD;
+}
+
+/*
+ * Selective-Erase Rectangular area
+ */
+static int
+tst_DECSERA(MENU_ARGS)
+{
+ int top = 5;
+ int left = 5;
+ int right = 45;
+ int bottom = max_lines-10;
+ int last = max_lines - 3;
+
+ decaln();
+ decsca(1);
+ decfra('E', top+1, left+1, bottom-1, right-1);
+ decsca(1);
+ decsera(top, left, bottom, right); /* erase the inside */
+
+ vt_move(last, 1);
+ vt_clear(0);
+
+ println(the_title);
+ println("There should be an open rectangle formed by blanks on a background of E's");
+
+ holdit();
+ decaln();
+ return MENU_NOHOLD;
+}
+
+/* FIXME: use DECRQSS to get reports */
+static int
+tst_DECSNLS(MENU_ARGS)
+{
+ int rows;
+
+ vt_move(1,1); println("Testing Select Number of Lines per Screen (DECSNLS)");
+
+ for (rows = 48; rows >= 24; rows -= 12) {
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ printf("%d Lines/Screen: ", rows);
+ decsnls(rows);
+ decrqss("*|");
+ chrprint(instr());
+ println("");
+
+ restore_ttymodes();
+ holdit();
+ }
+
+ return MENU_NOHOLD;
+}
+
+static int
+tst_DECTABSR(MENU_ARGS)
+{
+ return any_decrqpsr(PASS_ARGS, 2);
+}
+
+static int
+tst_DSR_area_sum(MENU_ARGS)
+{
+ return tst_DECCKSR(PASS_ARGS, 1, "1;1;10;10;20;20*y");
+}
+
+static int
+tst_DSR_cursor(MENU_ARGS)
+{
+ return any_DSR(PASS_ARGS, "?6n", show_ExtendedCursorPosition);
+}
+
+static int
+tst_DSR_data_ok(MENU_ARGS)
+{
+ return any_DSR(PASS_ARGS, "?75n", show_DataIntegrity);
+}
+
+static int
+tst_DSR_macrospace(MENU_ARGS)
+{
+ char *report;
+ char *show;
+
+ vt_move(1,1);
+ printf("Testing DECMSR: %s\n", the_title);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ do_csi("?62n");
+ report = instr();
+ vt_move(3,10);
+ chrprint(report);
+ if ((report = skip_csi(report)) != 0
+ && (report = skip_digits(report)) != 0
+ && !strcmp(report, "*{")) {
+ show = SHOW_SUCCESS;
+ } else {
+ show = SHOW_FAILURE;
+ }
+ show_result(show);
+
+ restore_ttymodes();
+ vt_move(max_lines-1, 1);
+ return MENU_HOLD;
+}
+
+static int
+tst_DSR_memory_sum(MENU_ARGS)
+{
+ return tst_DECCKSR(PASS_ARGS, 1, "?63;1n");
+}
+
+static int
+tst_DSR_multisession(MENU_ARGS)
+{
+ return any_DSR(PASS_ARGS, "?85n", show_MultisessionStatus);
+}
+
+int
+tst_SRM(MENU_ARGS)
+{
+ int oldc, newc;
+
+ vt_move(1,1);
+ println(the_title);
+
+ set_tty_raw(TRUE);
+
+ set_tty_echo(FALSE);
+ srm(FALSE);
+
+ println("Local echo is enabled, remote echo disabled. Press any keys, repeat to quit.");
+ vt_move(3,10);
+
+ oldc = -1;
+ while ((newc = inchar()) != oldc)
+ oldc = newc;
+
+ set_tty_echo(TRUE);
+ srm(TRUE);
+
+ vt_move(10,1);
+ println("Local echo is disabled, remote echo enabled. Press any keys, repeat to quit.");
+ vt_move(11,10);
+
+ oldc = -1;
+ while ((newc = inchar()) != oldc)
+ oldc = newc;
+
+ vt_move(max_lines-1,1);
+ restore_ttymodes();
+ return MENU_HOLD;
+}
+
+/******************************************************************************/
+
+static int
+tst_PageFormat(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test set columns per page (DECSCPP)", not_impl },
+ { "Test columns mode (DECCOLM)", not_impl },
+ { "Test set lines per page (DECSLPP)", not_impl },
+ { "Test set left and right margins (DECSLRM)", not_impl },
+ { "Test set vertical split-screen (DECVSSM)", not_impl },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("Page Format Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+static int
+tst_PageMovement(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Next Page (NP)", not_impl },
+ { "Test Preceding Page (PP)", not_impl },
+ { "Test Page Position Absolute (PPA)", not_impl },
+ { "Test Page Position Backward (PPB)", not_impl },
+ { "Test Page Position Relative (PPR)", not_impl },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("Page Format Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+/*
+ * The main vt100 module tests CUP, HVP, CUF, CUB, CUU, CUD
+ */
+static int
+tst_VT420_cursor(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Back Index (DECBI)", tst_DECBI },
+ { "Test Forward Index (DECFI)", tst_DECFI },
+ { "Test Pan down (SU)", tst_SU },
+ { "Test Pan up (SD)", tst_SD},
+ { "Test Vertical Cursor Coupling (DECVCCM)", not_impl },
+ { "Test Page Cursor Coupling (DECPCCM)", not_impl },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Cursor-Movement Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+/*
+ * The main vt100 module tests IRM, DL, IL, DCH, ICH, ED, EL
+ */
+static int
+tst_VT420_editing(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Delete Column (DECDC)", tst_DECDC },
+ { "Erase Character", tst_ECH },
+ { "Test Insert Column (DECIC)", tst_DECIC },
+ { "Test Protected-Areas (DECSCA)", tst_DECSCA },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Editing Sequence Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+/*
+ * The main vt100 module tests AM, LNM, DECKPAM, DECARM, DECAWM
+ */
+static int
+tst_VT420_keyboard_ctl(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Backarrow key (DECBKM)", tst_DECBKM },
+ { "Test Numeric keypad (DECNKM)", tst_DECNKM },
+ { "Test Keyboard usage (DECKBUM)", tst_DECKBUM },
+ { "Test Key position (DECKPM)", tst_DECKPM },
+ { "Test Enable Local Functions (DECELF)", not_impl },
+ { "Test Local Function-Key Control (DECLFKC)", not_impl },
+ { "Test Select Modifier-Key Reporting (DECSMKR)", not_impl }, /* DECEKBD */
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Keyboard-Control Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+/*
+ * These apply only to VT400's & above
+ */
+static int
+tst_VT420_rectangle(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Change-Attributes in Rectangular Area (DECCARA)", tst_DECCARA },
+ { "Test Copy Rectangular area (DECCRA)", tst_DECCRA },
+ { "Test Erase Rectangular area (DECERA)", tst_DECERA },
+ { "Test Fill Rectangular area (DECFRA)", tst_DECFRA },
+ { "Test Reverse-Attributes in Rectangular Area (DECRARA)", tst_DECRARA },
+ { "Test Selective-Erase Rectangular area (DECSERA)", tst_DECSERA },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Rectangular Area Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+/* UDK and rectangle-checksum status are available only on VT400 */
+
+static int
+tst_VT420_report_device(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Extended Cursor-Position", tst_DSR_cursor },
+ { "Test Printer Status", tst_DSR_printer },
+ { "Test UDK Status", tst_DSR_userkeys },
+ { "Test Keyboard Status", tst_DSR_keyboard },
+ { "Test Locator Status", tst_DSR_locator },
+ { "Test Macro Space", tst_DSR_macrospace },
+ { "Test Memory Checksum", tst_DSR_memory_sum },
+ { "Test Data Integrity", tst_DSR_data_ok },
+ { "Test Multiple Session Status", tst_DSR_multisession },
+ { "Test Checksum of Rectangular Area", tst_DSR_area_sum },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Device Status Reports");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+static int
+tst_VT420_report_presentation(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Cursor Information Report (DECCIR)", tst_DECCIR },
+ { "Tab Stop Report (DECTABSR)", tst_DECTABSR },
+ { "ANSI Mode Report (DECRPM)", tst_ISO_DECRPM },
+ { "DEC Mode Report (DECRPM)", tst_DEC_DECRPM },
+ { "Restore Presentation State (DECRSPS)", not_impl },
+ { "Status-String Report (DECRQSS)", tst_DECRQSS },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Device Status Reports");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+static int
+tst_VT420_report_terminal(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Restore Terminal State (DECRSTS)", not_impl },
+ { "Terminal State Report (DECRQTS/DECTSR)", tst_DECRQTSR },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Terminal State Reports");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+static int
+tst_VT420_reports(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Device Status Reports", tst_VT420_report_device },
+ { "Test Presentation State Reports", tst_VT420_report_presentation },
+ { "Test Terminal State Reports", tst_VT420_report_terminal },
+ { "Test User-Preferred Supplemental Set (DECAUPSS)", tst_DECRQUPSS },
+ { "Test Window Report (DECRPDE)", tst_DECRQDE },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Reports");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+/* DECSASD and DECSSDT are for VT400's only */
+static int
+tst_VT420_screen(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test Send/Receive mode (SRM)", tst_SRM },
+ { "Test Select Number of Lines per Screen (DECSNLS)", tst_DECSNLS },
+ { "Test Status line (DECSASD/DECSSDT)", tst_statusline },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Screen-Display Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+/******************************************************************************/
+
+int
+tst_vt420(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Exit", 0 },
+ { "Test cursor-movement", tst_VT420_cursor },
+ { "Test downloading soft-chars (DECDLD)", tst_softchars },
+ { "Test editing sequences", tst_VT420_editing },
+ { "Test keyboard-control", tst_VT420_keyboard_ctl },
+ { "Test macro-definition (DECDMAC)", not_impl },
+ { "Test page-format controls", tst_PageFormat },
+ { "Test page-movement controls", tst_PageMovement },
+ { "Test printing functions", tst_printing },
+ { "Test rectangular area functions", tst_VT420_rectangle },
+ { "Test reporting functions", tst_VT420_reports },
+ { "Test screen-display functions", tst_VT420_screen },
+ { "Test soft terminal-reset", tst_DECSTR },
+ { "Test user-defined keys (DECUDK)", tst_DECUDK },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); printf("VT420 Tests");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest-20011130/vt52.c b/doc/vttest-20011130/vt52.c
new file mode 100644
index 0000000..c912486
--- /dev/null
+++ b/doc/vttest-20011130/vt52.c
@@ -0,0 +1,235 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <ttymodes.h>
+#include <esc.h>
+
+static int
+testing(char *name, int row)
+{
+ printf("Testing %s. ", name);
+ printf("A real VT%d will not recognize %s at this point", terminal_id(), name);
+ println("");
+ return row+1;
+}
+
+static int
+isreturn(char *reply)
+{
+ return (*reply == '\r' || *reply == '\n');
+}
+
+int
+tst_vt52(MENU_ARGS)
+{
+ static struct rtabl {
+ char *rcode;
+ char *rmsg;
+ } resptable[] = {
+ { "\033/A", " -- OK (VT50)" },
+ { "\033/C", " -- OK (VT55)" },
+ { "\033/H", " -- OK (VT50H without copier)" },
+ { "\033/J", " -- OK (VT50H with copier)" },
+ { "\033/K", " -- OK (means Standard VT52)" },
+ { "\033/L", " -- OK (VT52 with copier)" },
+ { "\033/Z", " -- OK (means VT100 emulating VT52)" },
+ { "", " -- Unknown response"}
+ };
+
+ int i,j;
+ char *response;
+ char *temp;
+ VTLEVEL save;
+
+ save_level(&save);
+ set_level(0); /* Reset ANSI (VT100) mode, Set VT52 mode */
+ vt52home(); /* Cursor home */
+ vt52ed(); /* Erase to end of screen */
+ vt52home(); /* Cursor home */
+ for (i = 0; i <= max_lines-1; i++) {
+ for (j = 0; j <= 9; j++)
+ printf("%s", "FooBar ");
+ println("Bletch");
+ }
+ vt52home(); /* Cursor home */
+ vt52ed(); /* Erase to end of screen */
+
+ vt52cup(7,47);
+ printf("nothing more.");
+ for (i = 1; i <= 10; i++) printf("THIS SHOULD GO AWAY! ");
+ for (i = 1; i <= 5; i++) {
+ vt52cup(1,1);
+ printf("%s", "Back scroll (this should go away)");
+ vt52ri(); /* Reverse LineFeed (with backscroll!) */
+ }
+ vt52cup(12,60);
+ vt52ed(); /* Erase to end of screen */
+ for (i = 2; i <= 6; i++) {
+ vt52cup(i,1);
+ vt52el(); /* Erase to end of line */
+ }
+
+ for (i = 2; i <= max_lines-1; i++) {
+ vt52cup(i,70); printf("%s", "**Foobar");
+ }
+ vt52cup(max_lines-1,10);
+ for (i = max_lines-1; i >= 2; i--) {
+ printf("%s", "*");
+ printf("%c", 8); /* BS */
+ vt52ri(); /* Reverse LineFeed (LineStarve) */
+ }
+ vt52cup(1,70);
+ for (i = 70; i >= 10; i--) {
+ printf("%s", "*");
+ vt52cub1(); vt52cub1(); /* Cursor Left */
+ }
+ vt52cup(max_lines,10);
+ for (i = 10; i <= 70; i++) {
+ printf("%s", "*");
+ printf("%c", 8); /* BS */
+ vt52cuf1(); /* Cursor Right */
+ }
+ vt52cup(2,11);
+ for (i = 2; i <= max_lines-1; i++) {
+ printf("%s", "!");
+ printf("%c", 8); /* BS */
+ vt52cud1(); /* Cursor Down */
+ }
+ vt52cup(max_lines-1,69);
+ for (i = max_lines-1; i >= 2; i--) {
+ printf("%s", "!");
+ printf("%c", 8); /* BS */
+ vt52cuu1(); /* Cursor Up */
+ }
+ for (i = 2; i <= max_lines-1; i++) {
+ vt52cup(i,71);
+ vt52el(); /* Erase to end of line */
+ }
+
+ vt52cup(10,16);
+ printf("%s", "The screen should be cleared, and have a centered");
+ vt52cup(11,16);
+ printf("%s", "rectangle of \"*\"s with \"!\"s on the inside to the");
+ vt52cup(12,16);
+ printf("%s", "left and right. Only this, and");
+ vt52cup(13,16);
+ holdit();
+
+ vt52home(); /* Cursor home */
+ vt52ed(); /* Erase to end of screen */
+ printf("%s", "This is the normal character set:");
+ for (j = 0; j <= 1; j++) {
+ vt52cup(3 + j, 16);
+ for (i = 0; i <= 47; i++)
+ printf("%c", 32 + i + 48 * j);
+ }
+ vt52cup(6,1);
+ printf("%s", "This is the special graphics character set:");
+ esc("F"); /* Select Special Graphics character set */
+ for (j = 0; j <= 1; j++) {
+ vt52cup(8 + j, 16);
+ for (i = 0; i <= 47; i++)
+ printf("%c", 32 + i + 48 * j);
+ }
+ esc("G"); /* Select ASCII character set */
+ vt52cup(12,1);
+ holdit();
+
+ vt52home(); /* Cursor home */
+ vt52ed(); /* Erase to end of screen */
+ println("Test of terminal response to IDENTIFY command");
+
+ /*
+ * According to J.Altman, DECID isn't recognized by VT5xx terminals. Real
+ * DEC terminals through VT420 do, though it isn't recommended. VT420's
+ * emulation of VT52 does not recognize DA -- so we use DECID in this case.
+ */
+ set_tty_raw(TRUE);
+ decid(); /* Identify */
+ response = get_reply();
+ println("");
+
+ restore_level(&save);
+ restore_ttymodes();
+ padding(10); /* some terminals miss part of the 'chrprint()' otherwise */
+
+ printf("Response was");
+ chrprint(response);
+ for(i = 0; resptable[i].rcode[0] != '\0'; i++) {
+ if (!strcmp(response, resptable[i].rcode)) {
+ show_result("%s", resptable[i].rmsg);
+ break;
+ }
+ }
+ println("");
+ println("");
+
+ /*
+ * Verify whether returning to ANSI mode restores the previous operating
+ * level. If it was a VT220, we can check this by seeing if 8-bit controls
+ * work; if a VT420 we can check the value of DECSCL. A real VT420 goes to
+ * VT100 mode.
+ */
+ if (terminal_id() >= 200) {
+ int row = 8;
+ set_level(0); /* Reset ANSI (VT100) mode, Set VT52 mode */
+ println("Verify operating level after restoring ANSI mode");
+ esc("<"); /* Enter ANSI mode (VT100 mode) */
+ set_tty_raw(TRUE);
+ if (save.cur_level >= 3) { /* VT340 implements DECRQSS */
+ vt_move(row,1);
+ row = testing("DECSCL", row);
+ println("You should have to press return to continue:");
+ println("");
+ decrqss("\"p");
+ response = get_reply();
+ vt_move(++row,10);
+ printf("Response was");
+ chrprint(response);
+ if (isreturn(response)) {
+ show_result(SHOW_SUCCESS);
+ } else {
+ if (parse_decrqss(response, "\"p") > 0)
+ printf("DECSCL recognized --");
+ show_result(SHOW_FAILURE);
+ }
+ println("");
+ row++;
+ }
+
+ if (save.cur_level >= 2) {
+ vt_move(++row,1);
+ row = testing("S8C1T", row);
+ s8c1t(1);
+ cup(1,1);
+ dsr(6);
+ response = instr();
+ vt_move(row,10);
+ printf("Response to CUP(1,1)/DSR(6)");
+ chrprint(response);
+ if ((temp = skip_prefix(csi_input(), response)) != 0) {
+ if (!strcmp("1;1R", temp)) {
+ printf("S8C1T recognized --");
+ show_result(SHOW_FAILURE);
+ } else {
+ printf("unknown response --");
+ show_result(SHOW_FAILURE);
+ }
+ } else {
+ input_8bits = FALSE; /* we expect this anyway */
+ if ((temp = skip_prefix(csi_input(), response)) != 0
+ && !strcmp("1;1R", temp)) {
+ show_result(SHOW_SUCCESS);
+ } else {
+ printf("unknown response --");
+ show_result(SHOW_FAILURE);
+ }
+ }
+ }
+ restore_level(&save);
+ restore_ttymodes();
+ println("");
+ println("");
+ }
+ return MENU_HOLD;
+}
diff --git a/doc/vttest-20011130/vttest b/doc/vttest-20011130/vttest
new file mode 100755
index 0000000..b4eeb9f
--- /dev/null
+++ b/doc/vttest-20011130/vttest
Binary files differ
diff --git a/doc/vttest-20011130/vttest.1 b/doc/vttest-20011130/vttest.1
new file mode 100644
index 0000000..02df6fe
--- /dev/null
+++ b/doc/vttest-20011130/vttest.1
@@ -0,0 +1,47 @@
+.\" $Id$
+.TH VTTEST 1 "LOCAL"
+.
+.SH NAME
+vttest \- test VT100-type terminal
+.
+.SH SYNOPSIS
+.B vttest \fI[options] [24x80.132]
+.
+.SH DESCRIPTION
+.I Vttest
+is a program designed to test the functionality of a VT100 terminal
+(or emulator thereof).
+It tests both display (escape sequence handling) and keyboard.
+.PP
+The program is menu\-driven and contains full on\-line operating instructions.
+To run a given menu\-item, you must enter its number.
+You can run all menu\-items (for a given level) by entering an asterisk,
+i.e, `*'.
+.
+.SH OPTIONS
+You can specify the screen geometry in the form \fI[24x80.132]\fP,
+i.e., 24 lines, 80 minimum columns, 132 maximum columns.
+If your terminal does not switch between 80 and 132 columns you
+may specify 24x80.80, for example, to avoid a misleading display.
+.PP
+Other options are:
+.TP 5
+.BI \-f " file"
+specify a file containing a DRCS (soft character definition) string.
+.TP 5
+.B \-l
+log test results to \fIvttest.log\fP.
+.TP 5
+.B \-p
+use padding, e.g., for a VT100 connected to a high-speed line.
+.TP 5
+.B \-8
+use 8-bit controls (this can be changed with a menu option).
+.
+.SH AUTHOR
+Per Lindberg
+(mcvax,seismo)!enea!suadb!lindberg
+sometime 1985.
+
+Modified by Thomas Dickey
+from June 1996, to support nonstandard screen geometry, VT220 and ISO color tests.
diff --git a/doc/vttest-20011130/vttest.h b/doc/vttest-20011130/vttest.h
new file mode 100644
index 0000000..d08e3a2
--- /dev/null
+++ b/doc/vttest-20011130/vttest.h
@@ -0,0 +1,270 @@
+/* $Id$ */
+
+#ifndef VTTEST_H
+#define VTTEST_H 1
+
+#define VERSION "1.7b 1985-04-19"
+#include <patchlev.h>
+
+/* Choose one of these */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#define UNIX
+#else
+
+/* Assume ANSI and (minimal) Posix */
+#define HAVE_STDLIB_H 1
+#define HAVE_STRING_H 1
+#define RETSIGTYPE void
+
+#endif
+
+#define SIG_ARGS int sig /* FIXME: configure-test */
+
+#include <stdio.h>
+#include <stdarg.h>
+
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#if HAVE_STRING_H
+#include <string.h>
+#endif
+
+#include <ctype.h>
+
+#if HAVE_TERMIOS_H && HAVE_TCGETATTR
+# define USE_POSIX_TERMIOS 1
+#else
+# if HAVE_TERMIO_H
+# define USE_TERMIO 1
+# else
+# if HAVE_SGTTY_H
+# define USE_SGTTY 1
+# define USE_FIONREAD 1
+# else
+# ifdef VMS
+ /* FIXME */
+# else
+ please fix me
+# endif
+# endif
+# endif
+#endif
+
+#include <signal.h>
+#include <setjmp.h>
+
+#if USE_POSIX_TERMIOS
+# include <termios.h>
+# define TTY struct termios
+#else
+# if USE_TERMIO
+# include <termio.h>
+/*# define TCSANOW TCSETA */
+/*# define TCSADRAIN TCSETAW */
+/*# define TCSAFLUSH TCSETAF */
+# define TTY struct termio
+# define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)
+# define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)
+# define VDISABLE (unsigned char)(-1)
+# else
+# if USE_SGTTY
+# include <sgtty.h>
+# define TTY struct sgttyb
+# endif
+# endif
+#endif
+
+#if HAVE_SYS_FILIO_H
+# include <sys/filio.h> /* FIONREAD */
+#endif
+
+#if HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+#if !defined(sun) || !defined(NL0)
+# if HAVE_IOCTL_H
+# include <ioctl.h>
+# else
+# if HAVE_SYS_IOCTL_H
+# include <sys/ioctl.h>
+# endif
+# endif
+#endif
+
+/*FIXME: really want 'extern' for errno*/
+#include <errno.h>
+
+#define LOG_ENABLED ((log_fp != 0) && !log_disabled)
+
+extern FILE *log_fp;
+extern int brkrd;
+extern int input_8bits;
+extern int log_disabled;
+extern int max_cols;
+extern int max_lines;
+extern int min_cols;
+extern int output_8bits;
+extern int reading;
+extern int tty_speed;
+extern int use_padding;
+extern jmp_buf intrenv;
+
+#ifndef TRUE
+#define TRUE (1)
+#endif
+
+#ifndef FALSE
+#define FALSE (0)
+#endif
+
+#ifndef EXIT_SUCCESS
+#define EXIT_SUCCESS 0
+#endif
+
+#ifndef EXIT_FAILURE
+#define EXIT_FAILURE 1
+#endif
+
+#define SHOW_SUCCESS "ok"
+#define SHOW_FAILURE "failed"
+
+#define TABLESIZE(table) (sizeof(table)/sizeof(table[0]))
+
+#define DEFAULT_SPEED 9600
+
+#if !defined(__GNUC__) && !defined(__attribute__)
+#define __attribute__(p) /* nothing */
+#endif
+
+#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+
+/* my SunOS 4.1.x doesn't have prototyped headers */
+#if defined(__GNUC__) && defined(sun) && !defined(__SVR4)
+extern void perror(const char *s);
+extern int _flsbuf(int c, FILE *s);
+extern int fclose(FILE *s);
+extern int fflush(FILE *s);
+extern int fprintf(FILE *s, const char *fmt, ...);
+extern int fgetc(FILE *s);
+extern int fputc(int c, FILE *s);
+extern int fputs(char *p, FILE *s);
+extern int ioctl(int fd, unsigned long mask, void *p);
+extern int printf(const char *fmt, ...);
+extern int scanf(const char *fmt, ...);
+extern int sscanf(const char *src, const char *fmt, ...);
+extern long strtol(const char *src, char **dst, int base);
+#endif
+
+#define MENU_ARGS char * the_title
+#define PASS_ARGS /* char * */the_title
+
+typedef struct {
+ char *description;
+ int (*dispatch)(MENU_ARGS);
+} MENU;
+
+typedef struct {
+ int cur_level;
+ int input_8bits;
+ int output_8bits;
+} VTLEVEL;
+
+#define MENU_NOHOLD 0
+#define MENU_HOLD 1
+#define MENU_MERGE 2
+
+#define TITLE_LINE 3
+
+/* main.c */
+extern RETSIGTYPE onbrk(SIG_ARGS);
+extern RETSIGTYPE onterm(SIG_ARGS);
+extern char *skip_csi(char *input);
+extern char *skip_dcs(char *input);
+extern char *skip_digits(char *src);
+extern char *skip_prefix(char *prefix, char *input);
+extern char *skip_ss3(char *input);
+extern int any_DSR(MENU_ARGS, char *text, void (*explain)(char *report));
+extern int bug_a(MENU_ARGS);
+extern int bug_b(MENU_ARGS);
+extern int bug_c(MENU_ARGS);
+extern int bug_d(MENU_ARGS);
+extern int bug_e(MENU_ARGS);
+extern int bug_f(MENU_ARGS);
+extern int bug_l(MENU_ARGS);
+extern int bug_s(MENU_ARGS);
+extern int bug_w(MENU_ARGS);
+extern int get_level(void);
+extern int main(int argc, char *argv[]);
+extern int menu(MENU *table);
+extern int not_impl(MENU_ARGS);
+extern int parse_decrqss(char *report, char *func);
+extern int set_level(int level);
+extern int scan_any(char *str, int *pos, int toc);
+extern int scanto(char *str, int *pos, int toc);
+extern int setup_terminal(MENU_ARGS);
+extern int strip_suffix(char *src, char *suffix);
+extern int strip_terminator(char *src);
+extern int terminal_id(void);
+extern int tst_DECSCA(MENU_ARGS);
+extern int tst_DECSTR(MENU_ARGS);
+extern int tst_DECTCEM(MENU_ARGS);
+extern int tst_DECUDK(MENU_ARGS);
+extern int tst_DSR_keyboard(MENU_ARGS);
+extern int tst_DSR_locator(MENU_ARGS);
+extern int tst_DSR_printer(MENU_ARGS);
+extern int tst_DSR_userkeys(MENU_ARGS);
+extern int tst_ECH(MENU_ARGS);
+extern int tst_S8C1T(MENU_ARGS);
+extern int tst_SD(MENU_ARGS);
+extern int tst_SRM(MENU_ARGS);
+extern int tst_SU(MENU_ARGS);
+extern int tst_bugs(MENU_ARGS);
+extern int tst_characters(MENU_ARGS);
+extern int tst_colors(MENU_ARGS);
+extern int tst_doublesize(MENU_ARGS);
+extern int tst_insdel(MENU_ARGS);
+extern int tst_keyboard(MENU_ARGS);
+extern int tst_keyboard_layout(char *scs_params);
+extern int tst_mouse(MENU_ARGS);
+extern int tst_movements(MENU_ARGS);
+extern int tst_nonvt100(MENU_ARGS);
+extern int tst_printing(MENU_ARGS);
+extern int tst_reports(MENU_ARGS);
+extern int tst_rst(MENU_ARGS);
+extern int tst_screen(MENU_ARGS);
+extern int tst_setup(MENU_ARGS);
+extern int tst_softchars(MENU_ARGS);
+extern int tst_statusline(MENU_ARGS);
+extern int tst_vt220(MENU_ARGS);
+extern int tst_vt420(MENU_ARGS);
+extern int tst_vt52(MENU_ARGS);
+extern int tst_xterm(MENU_ARGS);
+extern void bye(void);
+extern void chrprint(char *s);
+extern void default_level(void);
+extern void do_scrolling(void);
+extern void enable_logging(void);
+extern void initterminal(int pn);
+extern void reset_level(void);
+extern void restore_level(VTLEVEL *save);
+extern void save_level(VTLEVEL *save);
+extern void scs_graphics(void);
+extern void scs_normal(void);
+extern void setup_softchars(char *filename);
+extern void show_result(const char *fmt, ...);
+extern void title(int offset);
+extern void vt_clear(int code);
+extern void vt_el(int code);
+extern void vt_hilite(int flag);
+extern void vt_move(int row, int col);
+
+#endif /* VTTEST_H */
diff --git a/doc/vttest-20011130/vttest.lsm b/doc/vttest-20011130/vttest.lsm
new file mode 100644
index 0000000..ea367c7
--- /dev/null
+++ b/doc/vttest-20011130/vttest.lsm
@@ -0,0 +1,15 @@
+Begin3
+Title: vttest
+Version: v2_7
+Entered-date: 17NOV96
+Description: a program to test the compatibility (or to demonstrate the
+ non-compatibility) of so-called "VT100-compatible" terminals.
+ New version using configure script, in ANSI C, with tests for
+ ISO color, xterm, VT220 and VT420. Ported to VAX/VMS.
+Keywords: VT100, VT220, VT420, ISO 6429, ECMA-48
+Author: dickey@clark.net (Thomas E. Dickey)
+Primary-site: sunsite.unc.edu /pub/Linux/apps/comm
+Original-site: ftp.clark.net:/pub/dickey/vttest
+Platforms: *NIX, VAX/VMS, ANSI C
+Copying-policy: freely distributable copyrighted software
+End
diff --git a/doc/vttest-20011130/xterm.c b/doc/vttest-20011130/xterm.c
new file mode 100644
index 0000000..b02f755
--- /dev/null
+++ b/doc/vttest-20011130/xterm.c
@@ -0,0 +1,401 @@
+/* $Id$ */
+
+#include <vttest.h>
+#include <esc.h>
+#include <ttymodes.h>
+
+static void
+check_rc(int row, int col)
+{
+ char *report;
+ char *params;
+ char expected[80];
+
+ sprintf(expected, "%d;%dR", row, col);
+
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+ do_csi("6n");
+ report = get_reply();
+ restore_ttymodes();
+
+ vt_move(row, 1);
+ el(2);
+ if ((params = skip_csi(report)) == 0
+ || strcmp(params, expected) != 0) {
+ printf("cursor save/restore %s, expected \"%s\", got \"%s\"",
+ SHOW_FAILURE, params, expected);
+ } else {
+ printf("cursor save/restore %s", SHOW_SUCCESS);
+ }
+}
+
+static int
+test_altscrn_47(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+ vt_move(3,1);
+ println("Test private setmode 47 (to/from alternate screen)");
+ vt_move(4,1);
+ println("The next screen will be filled with E's down to the prompt.");
+ vt_move(7,5);
+ decsc();
+ vt_move(max_lines-2,1);
+ holdit();
+
+ sm("?47");
+ decaln(); /* fill the screen */
+ vt_move(15,7);
+ decsc();
+ vt_move(max_lines-2,1);
+ ed(0);
+ holdit();
+
+ rm("?47");
+ decrc();
+ check_rc(7,5);
+ vt_move(4,1);
+ el(2);
+ println("The original screen should be restored except for this line.");
+ vt_move(max_lines-2,1);
+ return MENU_HOLD;
+}
+
+static int
+test_altscrn_1047(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+ vt_move(3,1);
+ println("Test private setmode 1047 (to/from alternate screen)");
+ vt_move(4,1);
+ println("The next screen will be filled with E's down to the prompt");
+ vt_move(5,1);
+ println("unless titeInhibit resource is set, or alternate-screen is disabled.");
+ vt_move(7,5);
+ decsc();
+ vt_move(9,7); /* move away from the place we saved with DECSC */
+ sm("?1048"); /* this saves the cursor position */
+ vt_move(max_lines-2,1);
+ holdit();
+
+ sm("?1047");
+ decaln(); /* fill the screen */
+ vt_move(15,7);
+ decsc();
+ vt_move(max_lines-2,1);
+ ed(0);
+ holdit();
+
+ rm("?1047");
+ decrc();
+ rm("?1048");
+ check_rc(9,7);
+ vt_move(4,1);
+ el(2);
+ println("The original screen should be restored except for this line");
+ vt_move(max_lines-2,1);
+ return MENU_HOLD;
+}
+
+static int
+test_altscrn_1049(MENU_ARGS)
+{
+ vt_move(1,1);
+ println(the_title);
+ vt_move(3,1);
+ println("Test private setmode 1049 (to/from alternate screen)");
+ vt_move(4,1);
+ println("The next screen will be filled with E's down to the prompt.");
+ vt_move(5,1);
+ println("unless titeInhibit resource is set, or alternate-screen is disabled.");
+ vt_move(7,5);
+ decsc();
+ vt_move(max_lines-2,1);
+ holdit(); /* cursor location will be one line down */
+
+ sm("?1049"); /* this saves the cursor location */
+ decaln(); /* fill the screen */
+ vt_move(max_lines-2,1);
+ ed(0);
+ holdit();
+
+ rm("?1049");
+ decrc();
+ check_rc(max_lines-1,1);
+ vt_move(4,1);
+ el(2);
+ println("The original screen should be restored except for this line");
+ vt_move(max_lines-2,1);
+ return MENU_HOLD;
+}
+
+/*
+ * Xterm implements an alternate screen, which is used to save the command-line
+ * screen to restore it after running a full-screen application.
+ *
+ * The original scheme used separate save/restore-cursor and clear-screen
+ * operations in conjunction with a toggle to/from the alternate screen
+ * (private setmode 47). Since not all users want the feature, xterm also
+ * implements the titeInhibit resource to make it populate the $TERMCAP
+ * variable without the ti/te (smcup/rmcup) strings which hold those sequences.
+ * The limitation of titeInhibit is that it cannot work for terminfo, because
+ * that information is read from a file rather than the environment. I
+ * implemented a corresponding set of strings for private setmode 1047 and 1048
+ * to model the termcap behavior in terminfo.
+ *
+ * The behavior of the save/restore cursor operations still proved
+ * unsatisfactory since users would (even in the original private setmode 47)
+ * occasionally run shell programs from within their full-screen application
+ * which would do a save-cursor to a different location, causing the final
+ * restore-cursor to place the cursor in an unexpected location. The private
+ * setmode 1049 works around this by using a separate memory location to store
+ * its version of the cursor location.
+ */
+static int
+tst_altscrn(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Return to main menu", 0 },
+ { "Switch to/from alternate screen (xterm)", test_altscrn_47 },
+ { "Improved alternate screen (XFree86 xterm mode 1047)", test_altscrn_1047 },
+ { "Better alternate screen (XFree86 xterm mode 1049)", test_altscrn_1049 },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); println("XTERM Alternate-Screen features");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
+
+static int
+test_modify_ops(MENU_ARGS)
+{
+ int n;
+ int wide, high;
+ char temp[100];
+
+ vt_move(1,1);
+ println("Test of Window modifying.");
+
+ brc(2, 't'); /* iconify window */
+ println("Iconify");
+ fflush(stdout); sleep(2);
+
+ brc(1, 't'); /* de-iconify window */
+ println("De-Iconify");
+ fflush(stdout); sleep(1);
+
+ ed(2);
+ for (n = 0; n <= 200; n += 5) {
+ sprintf(temp, "Position (%d,%d)", n, n*2);
+ println(temp);
+ esc("K"); /* Erase to end of line */
+ brc3(3, n, n*2, 't');
+ fflush(stdout);
+ }
+ holdit();
+
+ ed(2);
+ brc3(3, 0, 0, 't');
+
+ for (n = 0; n <= 200; n += 10) {
+ wide = n+20;
+ high = n+50;
+ brc3(4, high, wide, 't');
+ sprintf(temp, "%d x %d pixels", high, wide);
+ println(temp);
+ fflush(stdout);
+ }
+ holdit();
+
+ ed(2);
+ for (n = 0; n <= 200; n += 10) {
+ high = n+50;
+ brc3(4, high, 0, 't');
+ sprintf(temp, "%d x (screen-width) pixels", high);
+ println(temp);
+ fflush(stdout);
+ }
+ holdit();
+
+ ed(2);
+ for (n = 0; n <= 300; n += 10) {
+ wide = n+50;
+ brc3(4, 0, wide, 't');
+ sprintf(temp, "(screen-height) x %d pixels", wide);
+ println(temp);
+ fflush(stdout);
+ }
+ holdit();
+
+ while (n >= 200) {
+ wide = n+50;
+ high = 500 - n;
+ brc3(4, high, wide, 't');
+ sprintf(temp, "%d x %d pixels", high, wide);
+ println(temp);
+ fflush(stdout);
+ n -= 5;
+ }
+ holdit();
+
+ while (n <= 300) {
+ wide = n+50;
+ high = 500 - n;
+ brc3(4, high, wide, 't');
+ sprintf(temp, "%d x %d pixels", high, wide);
+ println(temp);
+ fflush(stdout);
+ n += 5;
+ }
+ holdit();
+
+ ed(2);
+ for (n = 5; n <= 20; n++) {
+ wide = n*4;
+ high = n+5;
+ brc3(8, high, wide, 't');
+ sprintf(temp, "%d x %d chars", high, wide);
+ while (strlen(temp) < wide - 1)
+ strcat(temp, ".");
+ println(temp);
+ fflush(stdout);
+ }
+ holdit();
+
+ ed(2);
+ for (n = 5; n <= 24; n++) {
+ high = n;
+ brc3(8, high, 0, 't');
+ sprintf(temp, "%d x (screen-width) chars", high);
+ println(temp);
+ fflush(stdout);
+ }
+ holdit();
+
+ ed(2);
+ for (n = 5; n <= 80; n++) {
+ wide = n;
+ brc3(8, 0, wide, 't');
+ sprintf(temp, "(screen-height) x %d chars", wide);
+ println(temp);
+ fflush(stdout);
+ }
+ holdit();
+
+ brc3(3, 200, 200, 't');
+ brc3(8, 24, 80, 't');
+ println("Reset to 24 x 80");
+
+ ed(2);
+ println("Lower");
+ brc(6, 't');
+ holdit();
+
+ ed(2);
+ println("Raise");
+ brc(5, 't');
+ return MENU_HOLD;
+}
+
+static int
+test_report_ops(MENU_ARGS)
+{
+ char *report;
+
+ vt_move(1,1);
+ println("Test of Window reporting.");
+ set_tty_raw(TRUE);
+ set_tty_echo(FALSE);
+
+ vt_move(3,1);
+ println("Report icon label:");
+ vt_move(4,10);
+ brc(20, 't'); /* report icon label */
+ report = instr();
+ chrprint(report);
+
+ vt_move(5,1);
+ println("Report window label:");
+ vt_move(6,10);
+ brc(21, 't'); /* report window label */
+ report = instr();
+ chrprint(report);
+
+ vt_move(7,1);
+ println("Report size of window (chars):");
+ vt_move(8,10);
+ brc(18, 't'); /* report window's text-size */
+ report = instr();
+ chrprint(report);
+
+ vt_move(9,1);
+ println("Report size of window (pixels):");
+ vt_move(10,10);
+ brc(14, 't'); /* report window's pixel-size */
+ report = instr();
+ chrprint(report);
+
+ vt_move(11,1);
+ println("Report position of window (pixels):");
+ vt_move(12,10);
+ brc(13, 't'); /* report window's pixel-size */
+ report = instr();
+ chrprint(report);
+
+ vt_move(13,1);
+ println("Report state of window (normal/iconified):");
+ vt_move(14,10);
+ brc(11, 't'); /* report window's pixel-size */
+ report = instr();
+ chrprint(report);
+
+ vt_move(20,1);
+ restore_ttymodes();
+ return MENU_HOLD;
+}
+
+/* Set window title */
+static int
+test_window_name(MENU_ARGS)
+{
+ char temp[BUFSIZ];
+
+ vt_move(1,1);
+ println("Please enter the new window name. Newer xterms may beep when setting the title.");
+ inputline(temp);
+ do_osc("0;%s%c", temp, BEL);
+ return MENU_NOHOLD;
+}
+
+/*
+ * xterm (and derived programs such as hpterm, dtterm, rxvt) are the most
+ * widely used vt100 near-compatible terminal emulators (other than modem
+ * programs). dtterm emulates a vt220, as does XFree86 xterm. DECterm
+ * emulates a vt320.
+ */
+int
+tst_xterm(MENU_ARGS)
+{
+ static MENU my_menu[] = {
+ { "Return to main menu", 0 },
+ { "Set window title", test_window_name },
+ { "Mouse features", tst_mouse },
+ { "Alternate-Screen features (xterm)", tst_altscrn },
+ { "Window modify-operations (dtterm)", test_modify_ops },
+ { "Window report-operations (dtterm)", test_report_ops },
+ { "", 0 }
+ };
+
+ do {
+ vt_clear(2);
+ title(0); println("XTERM special features");
+ title(2); println("Choose test type:");
+ } while (menu(my_menu));
+ return MENU_NOHOLD;
+}
diff --git a/doc/vttest.tar.gz b/doc/vttest.tar.gz
new file mode 100644
index 0000000..130ace6
--- /dev/null
+++ b/doc/vttest.tar.gz
Binary files differ
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..a7de089
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,62 @@
+bin_PROGRAMS = vte
+noinst_PROGRAMS = interpret pty termcap trie utf8echo
+lib_LTLIBRARIES = libvte.la
+
+CFLAGS = @CFLAGS@ @X_CFLAGS@ @GTK_CFLAGS@
+
+libvte_la_SOURCES = \
+ caps.c \
+ caps.h \
+ marshal.c \
+ marshal.h \
+ pty.c \
+ pty.h \
+ termcap.c \
+ termcap.h \
+ trie.c \
+ trie.h \
+ vte.c \
+ vte.h
+
+CLEANFILES = marshal.c marshal.h
+
+marshal.c marshal.h: marshal.list
+ glib-genmarshal --prefix=_vte_marshal --body $^ > marshal.c
+ glib-genmarshal --prefix=_vte_marshal --header $^ > marshal.h
+
+vte_SOURCES = \
+ vteapp.c
+vte_LDADD = libvte.la @GTK_LIBS@ @X_LIBS@
+
+interpret_SOURCES = \
+ caps.c \
+ caps.h \
+ termcap.c \
+ termcap.h \
+ trie.c \
+ trie.h \
+ interpret.c
+interpret_LDADD = @GLIB_LIBS@
+
+trie_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ -DTRIE_MAIN
+trie_SOURCES = \
+ termcap.c \
+ termcap.h \
+ trie.c \
+ trie.h
+trie_LDADD = @GLIB_LIBS@
+
+termcap_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ -DTERMCAP_MAIN
+termcap_SOURCES = \
+ termcap.c \
+ termcap.h
+termcap_LDADD = @GLIB_LIBS@
+
+pty_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ -DPTY_MAIN
+pty_SOURCES = \
+ pty.c \
+ pty.h
+pty_LDADD = @GLIB_LIBS@
+
+utf8echo_SOURCES = \
+ utf8echo.c
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 0000000..6960cf4
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,577 @@
+# Makefile.in generated automatically by automake 1.5 from Makefile.am.
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+# 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@
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = @program_transform_name@
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_alias = @host_alias@
+host_triplet = @host@
+AMTAR = @AMTAR@
+AS = @AS@
+AWK = @AWK@
+CC = @CC@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+ECHO = @ECHO@
+EXEEXT = @EXEEXT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+MAINT = @MAINT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+STRIP = @STRIP@
+VERSION = @VERSION@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+am__include = @am__include@
+am__quote = @am__quote@
+install_sh = @install_sh@
+
+bin_PROGRAMS = vte
+noinst_PROGRAMS = interpret pty termcap trie utf8echo
+lib_LTLIBRARIES = libvte.la
+
+CFLAGS = @CFLAGS@ @X_CFLAGS@ @GTK_CFLAGS@
+
+libvte_la_SOURCES = \
+ caps.c \
+ caps.h \
+ marshal.c \
+ marshal.h \
+ pty.c \
+ pty.h \
+ termcap.c \
+ termcap.h \
+ trie.c \
+ trie.h \
+ vte.c \
+ vte.h
+
+
+CLEANFILES = marshal.c marshal.h
+
+vte_SOURCES = \
+ vteapp.c
+
+vte_LDADD = libvte.la @GTK_LIBS@ @X_LIBS@
+
+interpret_SOURCES = \
+ caps.c \
+ caps.h \
+ termcap.c \
+ termcap.h \
+ trie.c \
+ trie.h \
+ interpret.c
+
+interpret_LDADD = @GLIB_LIBS@
+
+trie_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ -DTRIE_MAIN
+trie_SOURCES = \
+ termcap.c \
+ termcap.h \
+ trie.c \
+ trie.h
+
+trie_LDADD = @GLIB_LIBS@
+
+termcap_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ -DTERMCAP_MAIN
+termcap_SOURCES = \
+ termcap.c \
+ termcap.h
+
+termcap_LDADD = @GLIB_LIBS@
+
+pty_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@ -DPTY_MAIN
+pty_SOURCES = \
+ pty.c \
+ pty.h
+
+pty_LDADD = @GLIB_LIBS@
+
+utf8echo_SOURCES = \
+ utf8echo.c
+
+subdir = src
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(lib_LTLIBRARIES)
+
+libvte_la_LDFLAGS =
+libvte_la_LIBADD =
+am_libvte_la_OBJECTS = caps.lo marshal.lo pty.lo termcap.lo trie.lo \
+ vte.lo
+libvte_la_OBJECTS = $(am_libvte_la_OBJECTS)
+bin_PROGRAMS = vte$(EXEEXT)
+noinst_PROGRAMS = interpret$(EXEEXT) pty$(EXEEXT) termcap$(EXEEXT) \
+ trie$(EXEEXT) utf8echo$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+
+am_interpret_OBJECTS = caps.$(OBJEXT) termcap.$(OBJEXT) trie.$(OBJEXT) \
+ interpret.$(OBJEXT)
+interpret_OBJECTS = $(am_interpret_OBJECTS)
+interpret_DEPENDENCIES =
+interpret_LDFLAGS =
+am_pty_OBJECTS = pty-pty.$(OBJEXT)
+pty_OBJECTS = $(am_pty_OBJECTS)
+pty_DEPENDENCIES =
+pty_LDFLAGS =
+am_termcap_OBJECTS = termcap-termcap.$(OBJEXT)
+termcap_OBJECTS = $(am_termcap_OBJECTS)
+termcap_DEPENDENCIES =
+termcap_LDFLAGS =
+am_trie_OBJECTS = trie-termcap.$(OBJEXT) trie-trie.$(OBJEXT)
+trie_OBJECTS = $(am_trie_OBJECTS)
+trie_DEPENDENCIES =
+trie_LDFLAGS =
+am_utf8echo_OBJECTS = utf8echo.$(OBJEXT)
+utf8echo_OBJECTS = $(am_utf8echo_OBJECTS)
+utf8echo_LDADD = $(LDADD)
+utf8echo_DEPENDENCIES =
+utf8echo_LDFLAGS =
+am_vte_OBJECTS = vteapp.$(OBJEXT)
+vte_OBJECTS = $(am_vte_OBJECTS)
+vte_DEPENDENCIES = libvte.la
+vte_LDFLAGS =
+
+DEFS = @DEFS@
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/caps.Plo $(DEPDIR)/caps.Po \
+@AMDEP_TRUE@ $(DEPDIR)/interpret.Po $(DEPDIR)/marshal.Plo \
+@AMDEP_TRUE@ $(DEPDIR)/pty-pty.Po $(DEPDIR)/pty.Plo \
+@AMDEP_TRUE@ $(DEPDIR)/termcap-termcap.Po $(DEPDIR)/termcap.Plo \
+@AMDEP_TRUE@ $(DEPDIR)/termcap.Po $(DEPDIR)/trie-termcap.Po \
+@AMDEP_TRUE@ $(DEPDIR)/trie-trie.Po $(DEPDIR)/trie.Plo \
+@AMDEP_TRUE@ $(DEPDIR)/trie.Po $(DEPDIR)/utf8echo.Po \
+@AMDEP_TRUE@ $(DEPDIR)/vte.Plo $(DEPDIR)/vteapp.Po
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
+ $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(libvte_la_SOURCES) $(interpret_SOURCES) $(pty_SOURCES) \
+ $(termcap_SOURCES) $(trie_SOURCES) $(utf8echo_SOURCES) \
+ $(vte_SOURCES)
+DIST_COMMON = Makefile.am Makefile.in
+SOURCES = $(libvte_la_SOURCES) $(interpret_SOURCES) $(pty_SOURCES) $(termcap_SOURCES) $(trie_SOURCES) $(utf8echo_SOURCES) $(vte_SOURCES)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4)
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/Makefile
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && \
+ CONFIG_HEADERS= CONFIG_LINKS= \
+ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(libdir)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ echo " $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$p"; \
+ $(LIBTOOL) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$p; \
+ else :; fi; \
+ done
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+ echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \
+ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+libvte.la: $(libvte_la_OBJECTS) $(libvte_la_DEPENDENCIES)
+ $(LINK) -rpath $(libdir) $(libvte_la_LDFLAGS) $(libvte_la_OBJECTS) $(libvte_la_LIBADD) $(LIBS)
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ if test -f $$p \
+ || test -f $$p1 \
+ ; then \
+ f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \
+ else :; fi; \
+ done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
+ rm -f $(DESTDIR)$(bindir)/$$f; \
+ done
+
+clean-binPROGRAMS:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+clean-noinstPROGRAMS:
+ -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+interpret$(EXEEXT): $(interpret_OBJECTS) $(interpret_DEPENDENCIES)
+ @rm -f interpret$(EXEEXT)
+ $(LINK) $(interpret_LDFLAGS) $(interpret_OBJECTS) $(interpret_LDADD) $(LIBS)
+pty-pty.$(OBJEXT): pty.c
+pty$(EXEEXT): $(pty_OBJECTS) $(pty_DEPENDENCIES)
+ @rm -f pty$(EXEEXT)
+ $(LINK) $(pty_LDFLAGS) $(pty_OBJECTS) $(pty_LDADD) $(LIBS)
+termcap-termcap.$(OBJEXT): termcap.c
+termcap$(EXEEXT): $(termcap_OBJECTS) $(termcap_DEPENDENCIES)
+ @rm -f termcap$(EXEEXT)
+ $(LINK) $(termcap_LDFLAGS) $(termcap_OBJECTS) $(termcap_LDADD) $(LIBS)
+trie-termcap.$(OBJEXT): termcap.c
+trie-trie.$(OBJEXT): trie.c
+trie$(EXEEXT): $(trie_OBJECTS) $(trie_DEPENDENCIES)
+ @rm -f trie$(EXEEXT)
+ $(LINK) $(trie_LDFLAGS) $(trie_OBJECTS) $(trie_LDADD) $(LIBS)
+utf8echo$(EXEEXT): $(utf8echo_OBJECTS) $(utf8echo_DEPENDENCIES)
+ @rm -f utf8echo$(EXEEXT)
+ $(LINK) $(utf8echo_LDFLAGS) $(utf8echo_OBJECTS) $(utf8echo_LDADD) $(LIBS)
+vte$(EXEEXT): $(vte_OBJECTS) $(vte_DEPENDENCIES)
+ @rm -f vte$(EXEEXT)
+ $(LINK) $(vte_LDFLAGS) $(vte_OBJECTS) $(vte_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/caps.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/caps.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/interpret.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/marshal.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/pty-pty.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/pty.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/termcap-termcap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/termcap.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/termcap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/trie-termcap.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/trie-trie.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/trie.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/trie.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/utf8echo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vte.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/vteapp.Po@am__quote@
+
+distclean-depend:
+ -rm -rf $(DEPDIR)
+
+.c.o:
+@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$<
+
+.c.obj:
+@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(COMPILE) -c `cygpath -w $<`
+
+.c.lo:
+@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(LTCOMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
+
+pty-pty.o: pty.c
+@AMDEP_TRUE@ source='pty.c' object='pty-pty.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/pty-pty.Po' tmpdepfile='$(DEPDIR)/pty-pty.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pty_CFLAGS) $(CFLAGS) -c -o pty-pty.o `test -f pty.c || echo '$(srcdir)/'`pty.c
+
+pty-pty.obj: pty.c
+@AMDEP_TRUE@ source='pty.c' object='pty-pty.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/pty-pty.Po' tmpdepfile='$(DEPDIR)/pty-pty.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pty_CFLAGS) $(CFLAGS) -c -o pty-pty.obj `cygpath -w pty.c`
+
+pty-pty.lo: pty.c
+@AMDEP_TRUE@ source='pty.c' object='pty-pty.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/pty-pty.Plo' tmpdepfile='$(DEPDIR)/pty-pty.TPlo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pty_CFLAGS) $(CFLAGS) -c -o pty-pty.lo `test -f pty.c || echo '$(srcdir)/'`pty.c
+
+termcap-termcap.o: termcap.c
+@AMDEP_TRUE@ source='termcap.c' object='termcap-termcap.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/termcap-termcap.Po' tmpdepfile='$(DEPDIR)/termcap-termcap.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(termcap_CFLAGS) $(CFLAGS) -c -o termcap-termcap.o `test -f termcap.c || echo '$(srcdir)/'`termcap.c
+
+termcap-termcap.obj: termcap.c
+@AMDEP_TRUE@ source='termcap.c' object='termcap-termcap.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/termcap-termcap.Po' tmpdepfile='$(DEPDIR)/termcap-termcap.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(termcap_CFLAGS) $(CFLAGS) -c -o termcap-termcap.obj `cygpath -w termcap.c`
+
+termcap-termcap.lo: termcap.c
+@AMDEP_TRUE@ source='termcap.c' object='termcap-termcap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/termcap-termcap.Plo' tmpdepfile='$(DEPDIR)/termcap-termcap.TPlo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(termcap_CFLAGS) $(CFLAGS) -c -o termcap-termcap.lo `test -f termcap.c || echo '$(srcdir)/'`termcap.c
+
+trie-termcap.o: termcap.c
+@AMDEP_TRUE@ source='termcap.c' object='trie-termcap.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/trie-termcap.Po' tmpdepfile='$(DEPDIR)/trie-termcap.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trie_CFLAGS) $(CFLAGS) -c -o trie-termcap.o `test -f termcap.c || echo '$(srcdir)/'`termcap.c
+
+trie-termcap.obj: termcap.c
+@AMDEP_TRUE@ source='termcap.c' object='trie-termcap.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/trie-termcap.Po' tmpdepfile='$(DEPDIR)/trie-termcap.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trie_CFLAGS) $(CFLAGS) -c -o trie-termcap.obj `cygpath -w termcap.c`
+
+trie-termcap.lo: termcap.c
+@AMDEP_TRUE@ source='termcap.c' object='trie-termcap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/trie-termcap.Plo' tmpdepfile='$(DEPDIR)/trie-termcap.TPlo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trie_CFLAGS) $(CFLAGS) -c -o trie-termcap.lo `test -f termcap.c || echo '$(srcdir)/'`termcap.c
+
+trie-trie.o: trie.c
+@AMDEP_TRUE@ source='trie.c' object='trie-trie.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/trie-trie.Po' tmpdepfile='$(DEPDIR)/trie-trie.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trie_CFLAGS) $(CFLAGS) -c -o trie-trie.o `test -f trie.c || echo '$(srcdir)/'`trie.c
+
+trie-trie.obj: trie.c
+@AMDEP_TRUE@ source='trie.c' object='trie-trie.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/trie-trie.Po' tmpdepfile='$(DEPDIR)/trie-trie.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trie_CFLAGS) $(CFLAGS) -c -o trie-trie.obj `cygpath -w trie.c`
+
+trie-trie.lo: trie.c
+@AMDEP_TRUE@ source='trie.c' object='trie-trie.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@ depfile='$(DEPDIR)/trie-trie.Plo' tmpdepfile='$(DEPDIR)/trie-trie.TPlo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(trie_CFLAGS) $(CFLAGS) -c -o trie-trie.lo `test -f trie.c || echo '$(srcdir)/'`trie.c
+CCDEPMODE = @CCDEPMODE@
+uninstall-info-am:
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(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; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique $(LISP)
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(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; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+ || etags $(ETAGS_ARGS) $$tags $$unique $(LISP)
+
+GTAGS:
+ here=`CDPATH=: && cd $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
+
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+
+top_distdir = ..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @for file in $(DISTFILES); do \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ $(mkinstalldirs) "$(distdir)/$$dir"; \
+ fi; \
+ if test -d $$d/$$file; then \
+ cp -pR $$d/$$file $(distdir) \
+ || 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 $(LTLIBRARIES) $(PROGRAMS)
+install-binPROGRAMS: install-libLTLIBRARIES
+
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir)
+
+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)" \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]*
+
+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-binPROGRAMS clean-generic clean-libLTLIBRARIES \
+ clean-libtool clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+
+distclean-am: clean-am distclean-compile distclean-depend \
+ distclean-generic distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-binPROGRAMS install-libLTLIBRARIES
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
+ uninstall-libLTLIBRARIES
+
+.PHONY: GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic clean-libLTLIBRARIES clean-libtool \
+ clean-noinstPROGRAMS distclean distclean-compile \
+ distclean-depend distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am info info-am install \
+ install-am install-binPROGRAMS install-data install-data-am \
+ install-exec install-exec-am install-info install-info-am \
+ install-libLTLIBRARIES install-man install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool tags uninstall \
+ uninstall-am uninstall-binPROGRAMS uninstall-info-am \
+ uninstall-libLTLIBRARIES
+
+
+marshal.c marshal.h: marshal.list
+ glib-genmarshal --prefix=_vte_marshal --body $^ > marshal.c
+ glib-genmarshal --prefix=_vte_marshal --header $^ > marshal.h
+# 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/src/caps.c b/src/caps.c
new file mode 100644
index 0000000..3fad4b3
--- /dev/null
+++ b/src/caps.c
@@ -0,0 +1,551 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+#include "../config.h"
+#include <stdlib.h>
+#include <glib.h>
+#include "caps.h"
+
+#define ESC ""
+#define CSI ESC "["
+#define ST ESC "\\"
+#define OSC ESC "]"
+#define PM ESC "T"
+#define APC ESC "_"
+
+#define BEL ""
+#define BS ""
+#define TAB " "
+#define LF "\n"
+#define VT " "
+#define FF " "
+#define CR "\r"
+#define SO ""
+#define SI ""
+
+/* 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", 0},
+ {"!2", 0},
+ {"!3", 0},
+
+ {"#1", 0},
+ {"#2", 0},
+ {"#3", 0},
+ {"#4", 0},
+
+ {"%0", 0},
+ {"%1", 0},
+ {"%2", 0},
+ {"%3", 0},
+ {"%4", 0},
+ {"%5", 0},
+ {"%6", 0},
+ {"%7", 0},
+ {"%8", 0},
+ {"%9", 0},
+ {"%a", 0},
+ {"%b", 0},
+ {"%c", 0},
+ {"%d", 0},
+ {"%e", 0},
+ {"%f", 0},
+ {"%g", 0},
+ {"%h", 0},
+ {"%i", 0},
+ {"%j", 0},
+
+ {"&0", 0},
+ {"&1", 0},
+ {"&2", 0},
+ {"&3", 0},
+ {"&4", 0},
+ {"&5", 0},
+ {"&6", 0},
+ {"&7", 0},
+ {"&8", 0},
+ {"&9", 0},
+
+ {"*0", 0},
+ {"*1", 0},
+ {"*2", 0},
+ {"*3", 0},
+ {"*4", 0},
+ {"*5", 0},
+ {"*6", 0},
+ {"*7", 0},
+ {"*8", 0},
+ {"*9", 0},
+
+ {"@0", 0},
+ {"@1", 0},
+ {"@2", 0},
+ {"@3", 0},
+ {"@4", 0},
+ {"@5", 0},
+ {"@6", 0},
+ {"@7", 0},
+ {"@8", 0},
+ {"@9", 0},
+
+ {"ac", 0},
+ {"ae", 0},
+ {"al", 0},
+ {"AL", 0},
+ {"as", 0},
+
+ {"bc", 0},
+ {"bl", 0},
+ {"bt", 0},
+
+ {"cb", 0},
+ {"cc", 0},
+ {"cd", 0},
+ {"ce", 0},
+ {"ch", 0},
+ {"cl", 0},
+ {"cm", 0},
+ {"CM", 0},
+ {"cr", 0},
+ {"cs", 0},
+ {"ct", 0},
+ {"cv", 0},
+
+ {"dc", 0},
+ {"DC", 0},
+ {"dl", 0},
+ {"DL", 0},
+ {"dm", 0},
+ {"do", 0},
+ {"DO", 0},
+ {"ds", 0},
+
+ {"eA", 0},
+ {"ec", 0},
+ {"ed", 0},
+ {"ei", 0},
+
+ {"F1", 0},
+ {"F2", 0},
+ {"F3", 0},
+ {"F4", 0},
+ {"F5", 0},
+ {"F6", 0},
+ {"F7", 0},
+ {"F8", 0},
+ {"F9", 0},
+ {"FA", 0},
+ {"FB", 0},
+ {"FC", 0},
+ {"FD", 0},
+ {"FE", 0},
+ {"FF", 0},
+ {"FG", 0},
+ {"FH", 0},
+ {"FI", 0},
+ {"FJ", 0},
+ {"FK", 0},
+ {"FL", 0},
+ {"FM", 0},
+ {"FN", 0},
+ {"FO", 0},
+ {"FP", 0},
+ {"FQ", 0},
+ {"FR", 0},
+ {"FS", 0},
+ {"FT", 0},
+ {"FU", 0},
+ {"FV", 0},
+ {"FW", 0},
+ {"FX", 0},
+ {"FY", 0},
+ {"FZ", 0},
+
+ {"Fa", 0},
+ {"Fb", 0},
+ {"Fc", 0},
+ {"Fd", 0},
+ {"Fe", 0},
+ {"Ff", 0},
+ {"Fg", 0},
+ {"Fh", 0},
+ {"Fi", 0},
+ {"Fj", 0},
+ {"Fk", 0},
+ {"Fl", 0},
+ {"Fm", 0},
+ {"Fn", 0},
+ {"Fo", 0},
+ {"Fp", 0},
+ {"Fq", 0},
+ {"Fr", 0},
+
+ {"ff", 0},
+ {"fs", 0},
+
+ {"hd", 0},
+ {"ho", 0},
+ {"hu", 0},
+
+ {"i1", 0},
+ {"i3", 0},
+
+ {"ic", 0},
+ {"IC", 0},
+ {"if", 0},
+ {"im", 0},
+ {"ip", 0},
+ {"iP", 0},
+ {"is", 0},
+
+ {"K1", 0},
+ {"K2", 0},
+ {"K3", 0},
+ {"K4", 0},
+ {"K5", 0},
+
+ {"k0", 0},
+ {"k1", 0},
+ {"k2", 0},
+ {"k3", 0},
+ {"k4", 0},
+ {"k5", 0},
+ {"k6", 0},
+ {"k7", 0},
+ {"k8", 0},
+ {"k9", 0},
+ {"k;", 0},
+ {"ka", 0},
+ {"kA", 0},
+ {"kb", 0},
+ {"kB", 0},
+ {"kC", 0},
+ {"kd", 0},
+ {"kD", 0},
+ {"ke", 0},
+ {"kE", 0},
+ {"kF", 0},
+ {"kh", 0},
+ {"kH", 0},
+ {"kI", 0},
+ {"kl", 0},
+ {"kL", 0},
+ {"kM", 0},
+ {"kN", 0},
+ {"kP", 0},
+ {"kr", 0},
+ {"kR", 0},
+ {"ks", 0},
+ {"kS", 0},
+ {"kt", 0},
+ {"kT", 0},
+ {"ku", 0},
+
+ {"l0", 0},
+ {"l1", 0},
+ {"l2", 0},
+ {"l3", 0},
+ {"l4", 0},
+ {"l5", 0},
+ {"l6", 0},
+ {"l7", 0},
+ {"l8", 0},
+ {"l9", 0},
+
+ {"la", 0},
+ {"le", 0},
+ {"LE", 0},
+ {"LF", 0},
+ {"ll", 0},
+ {"LO", 0},
+
+ {"ma", 0},
+ {"mb", 0},
+ {"MC", 0},
+ {"md", 0},
+ {"me", 0},
+ {"mh", 0},
+ {"mk", 0},
+ {"ml", 0},
+ {"ML", 0},
+ {"mm", 0},
+ {"mo", 0},
+ {"mp", 0},
+ {"mr", 0},
+ {"MR", 0},
+ {"mu", 0},
+
+ {"nd", 0},
+ {"nl", 0},
+ {"nw", 0},
+
+ {"pc", 0},
+ {"pf", 0},
+ {"pk", 0},
+ {"pl", 0},
+ {"pn", 0},
+ {"po", 0},
+ {"pO", 0},
+ {"ps", 0},
+ {"px", 0},
+
+ {"r1", 0},
+ {"r2", 0},
+ {"r3", 0},
+
+ {"RA", 0},
+ {"rc", 0},
+ {"rf", 0},
+ {"RF", 0},
+ {"RI", 0},
+ {"rp", 0},
+ {"rP", 0},
+ {"rs", 0},
+ {"RX", 0},
+
+ {"s0", 0},
+ {"s1", 0},
+ {"s2", 0},
+ {"s3", 0},
+
+ {"sa", 0},
+ {"SA", 0},
+ {"sc", 0},
+ {"se", 0},
+ {"sf", 0},
+ {"SF", 0},
+ /* {"so", 0}, standout is always the same as another attribute. */
+ {"sr", 0},
+ {"SR", 0},
+ {"st", 0},
+ {"SX", 0},
+
+ {"ta", 0},
+ {"te", 0},
+ {"ti", 0},
+ {"ts", 0},
+
+ {"uc", 0},
+ {"ue", 0},
+ {"up", 0},
+ {"UP", 0},
+ {"us", 0},
+
+ {"vb", 0},
+ /* {"ve", 0}, */
+ {"vi", 0},
+ /* {"vs", 0}, */
+
+ {"wi", 0},
+
+ {"XF", 0},
+ {"XN", 0},
+
+ {NULL, 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[] = {
+ {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},
+
+ {ESC "%@", "iso8859-1-character-set", 0},
+ {ESC "%G", "utf-8-character-set", 0},
+
+ {ESC "(%+\\0", "designate-g0-character-set", 0},
+ {ESC ")%+\\0", "designate-g1-character-set", 0},
+ {ESC "*%+\\0", "designate-g2-character-set", 0},
+ {ESC "+%+\\0", "designate-g3-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 "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},
+
+ /* 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 ";H", "cursor-position", 0},
+ {CSI "%d;H", "cursor-position", 0},
+ {CSI ";%dH", "cursor-position", 0},
+ {CSI "%d;%dH", "cursor-position", 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 "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 "h", "set-mode", 0},
+ {CSI "%mh", "set-mode", 0},
+ {CSI "?h", "decset", 0},
+ {CSI "?%mh", "decset", 0},
+
+ {CSI "i", "media-copy", 0},
+ {CSI "%mi", "media-copy", 0},
+ {CSI "?i", "dec-media-copy", 0},
+ {CSI "?%mi", "dec-media-copy", 0},
+
+ {CSI "l", "reset-mode", 0},
+ {CSI "%ml", "reset-mode", 0},
+ {CSI "?l", "decreset", 0},
+ {CSI "?%ml", "decreset", 0},
+
+ {CSI "m", "character-attributes", 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;%dr", "set-scrolling-region", 0},
+ {CSI "?%dr", "restore-mode", 0},
+ {CSI "?%ds", "save-mode", 0},
+
+ {CSI "1t", "deiconify-window", 0},
+ {CSI "2t", "iconify-window", 0},
+ {CSI "3;%d;%dt", "move-window", 0},
+ {CSI "4;%d;%dt", "resize-window", 0},
+ {CSI "5t", "raise-window", 0},
+ {CSI "6t", "lower-window", 0},
+ {CSI "7t", "refresh-window", 0},
+ {CSI "8;%d;%dt", "resize-text-area", 0},
+ {CSI "9;0t", "restore-maximized-window", 0},
+ {CSI "9;1t", "restore-window", 0},
+ {CSI "11t", "report-window-state", 0},
+ {CSI "13t", "report-window-position", 0},
+ {CSI "14t", "report-window-size", 0},
+ {CSI "18t", "report-text-area-size", 0},
+ {CSI "19t", "report-screen-size", 0},
+ {CSI "20t", "report-icon-title", 0},
+ {CSI "21t", "report-window-title", 0},
+ {CSI "%dt", "resize-text-area-lines", 0},
+
+ {CSI "%dx", "request-terminal-parameters", 0},
+
+ {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},
+
+ {NULL, NULL, 0},
+};
+
+void
+vte_capability_init(void)
+{
+ unsigned int i;
+ GQuark quark;
+ for (i = 0; i < G_N_ELEMENTS(vte_terminal_capability_strings); i++) {
+ const char *tmp;
+ tmp = vte_terminal_capability_strings[i].capability;
+ if (tmp != NULL) {
+ 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;
+ tmp = vte_xterm_capability_strings[i].value;
+ if (tmp != NULL) {
+ quark = g_quark_from_static_string(tmp);
+ vte_xterm_capability_strings[i].quark = quark;
+ }
+ }
+}
diff --git a/src/caps.h b/src/caps.h
new file mode 100644
index 0000000..68b40b7
--- /dev/null
+++ b/src/caps.h
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+
+#ifndef caps_h
+#define caps_h
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+/* 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;
+ GQuark quark;
+};
+struct vte_capability_string {
+ const char *code, *value;
+ GQuark quark;
+};
+
+/* The known capability strings in termcap entries. */
+extern struct vte_capability_quark vte_terminal_capability_strings[];
+
+/* The xterm-specific terminal control strings. */
+extern struct vte_capability_string vte_xterm_capability_strings[];
+
+/* Initialize the Quarks in the various tables. */
+void vte_capability_init(void);
+
+G_END_DECLS
+
+#endif
diff --git a/src/interpret.c b/src/interpret.c
new file mode 100644
index 0000000..8eabdd6
--- /dev/null
+++ b/src/interpret.c
@@ -0,0 +1,148 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+#include "../config.h"
+#include <sys/types.h>
+#include <assert.h>
+#include <ctype.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <glib.h>
+#include <glib-object.h>
+#include "caps.h"
+#include "termcap.h"
+#include "trie.h"
+
+static void
+convert_mbstowcs(const char *i, size_t ilen, wchar_t *o, size_t *olen)
+{
+ mbstate_t state;
+ memset(&state, 0, sizeof(state));
+ *olen = mbsrtowcs(o, &i, ilen, &state);
+}
+
+int
+main(int argc, char **argv)
+{
+ char *terminal = NULL;
+ struct vte_trie *trie = NULL;
+ struct vte_termcap *termcap = NULL;
+ GByteArray *array = NULL;
+ int i;
+ char c;
+ GValue *value;
+ FILE *infile = NULL;
+
+ if (argc < 2) {
+ g_print("usage: %s terminal [file]\n", argv[0]);
+ return 1;
+ }
+
+ if (argc > 2) {
+ infile = fopen(argv[2], "r");
+ } else {
+ infile = stdin;
+ }
+
+ g_type_init();
+ terminal = argv[1];
+ trie = vte_trie_new();
+ termcap = vte_termcap_new("/etc/termcap");
+ array = g_byte_array_new();
+
+ for (i = 0;
+ vte_terminal_capability_strings[i].capability != NULL;
+ i++) {
+ const char *capability;
+ char *tmp;
+ capability = vte_terminal_capability_strings[i].capability;
+ tmp = vte_termcap_find_string(termcap, terminal, capability);
+ if ((tmp != NULL) && (strlen(tmp) > 0)) {
+ vte_trie_add(trie, tmp, strlen(tmp), capability,
+ g_quark_from_static_string(capability));
+ }
+ g_free(tmp);
+ }
+ for (i = 0; vte_xterm_capability_strings[i].value != NULL; i++) {
+ const char *code, *value;
+ code = vte_xterm_capability_strings[i].code;
+ value = vte_xterm_capability_strings[i].value;
+ vte_trie_add(trie, code, strlen(code), value,
+ g_quark_from_static_string(code));
+ }
+
+ while (fread(&c, 1, 1, infile) == 1) {
+ g_byte_array_append(array, &c, 1);
+ for (i = 1; i <= array->len; i++) {
+ const char *tmp;
+ GQuark quark;
+ GValueArray *values;
+ wchar_t wbuf[LINE_MAX];
+ size_t wbuflen;
+ convert_mbstowcs(array->data, i, wbuf, &wbuflen);
+ vte_trie_match(trie, wbuf, wbuflen,
+ &tmp, &quark, &values);
+ if (tmp != NULL) {
+ if (strlen(tmp) > 0) {
+ int 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 (values != NULL) {
+ g_value_array_free(values);
+ }
+ for (j = 0; j < i; j++) {
+ g_byte_array_remove_index(array, 0);
+ }
+ g_print(")\n");
+ break;
+ }
+ } else {
+ while (array->len > 0) {
+ g_print("`%c'\n", array->data[0]);
+ g_byte_array_remove_index(array, 0);
+ }
+ }
+ }
+ }
+
+ if (infile != stdin) {
+ fclose(infile);
+ }
+
+ g_byte_array_free(array, TRUE);
+ vte_termcap_free(termcap);
+ vte_trie_free(trie);
+ return 0;
+}
diff --git a/src/marshal.list b/src/marshal.list
new file mode 100644
index 0000000..149bc32
--- /dev/null
+++ b/src/marshal.list
@@ -0,0 +1,4 @@
+VOID:VOID
+VOID:STRING
+VOID:UINT,UINT
+VOID:OBJECT,OBJECT
diff --git a/src/pty.c b/src/pty.c
new file mode 100644
index 0000000..90c246e
--- /dev/null
+++ b/src/pty.c
@@ -0,0 +1,209 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+#include "../config.h"
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <glib.h>
+#include "pty.h"
+
+/* Open the named PTY slave, fork off a child (storing its PID in child),
+ * and exec the named command in its own session as a process group leader */
+static int
+vte_pty_fork_on_fd(const char *path, const char *command, pid_t *child)
+{
+ int fd, i;
+ pid_t pid;
+
+
+ /* Start up a child. */
+ pid = fork();
+ if (pid == -1) {
+ /* Error fork()ing. Bail. */
+ return -1;
+ }
+ if (pid != 0) {
+ /* Parent. Close our connection to the slave and return the
+ * new child's PID. */
+ *child = pid;
+ return 0;
+ }
+
+ /* Child. Start a new session and become process-group leader. */
+ setsid();
+ setpgid(0, 0);
+
+ /* Close all descriptors except for the slave. */
+ for (i = 0; i < sysconf(_SC_OPEN_MAX); i++) {
+ close(i);
+ }
+
+ /* Open the slave PTY, acquiring it as the controlling terminal for
+ * this process and its children. */
+ fd = open(path, O_RDWR);
+ if (fd == -1) {
+ return -1;
+ }
+ if (fd != STDIN_FILENO) {
+ dup2(fd, STDIN_FILENO);
+ }
+ if (fd != STDOUT_FILENO) {
+ dup2(fd, STDOUT_FILENO);
+ }
+ if (fd != STDERR_FILENO) {
+ dup2(fd, STDERR_FILENO);
+ }
+
+ /* 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);
+ }
+
+ /* Outta here. */
+ execl(command, command, NULL);
+
+ /* Avoid calling any atexit() code. */
+ _exit(0);
+}
+
+static char *
+vte_pty_ptsname(int master)
+{
+#if defined(HAVE_PTSNAME_R)
+ char buf[PATH_MAX];
+ memset(buf, 0, sizeof(buf));
+ if (ptsname_r(master, buf, sizeof(buf) - 1) == 0) {
+ return g_strdup(buf);
+ }
+#elif defined(HAVE_PTSNAME)
+ char *p;
+ if ((p = ptsname(master)) == NULL) {
+ return g_strdup(p);
+ }
+#elif defined(TIOCGPTN)
+ int pty = 0;
+ if (ioctl(master, TIOCGPTN, &pty) == 0) {
+ return g_strdup_printf("/dev/pts/%d", pty);
+ }
+#endif
+ return NULL;
+}
+
+static int
+vte_pty_getpt()
+{
+#ifdef HAVE_GETPT
+ return getpt();
+#else
+ return open("/dev/ptmx", O_RDWR | O_NOCTTY);
+#endif
+}
+
+static int
+vte_pty_grantpt(int master)
+{
+#ifdef HAVE_GRANTPT
+ return grantpt(master);
+#else
+ return 0;
+#endif
+}
+
+static int
+vte_pty_unlockpt(int fd)
+{
+#ifdef HAVE_UNLOCKPT
+ return unlockpt(fd);
+#elif defined(TIOCSPTLCK)
+ int zero = 0;
+ return ioctl(fd, TIOCSPTLCK, &zero);
+#endif
+ return -1;
+}
+
+static int
+vte_pty_open_unix98(pid_t *child, const char *command)
+{
+ int fd;
+ char *buf;
+
+ /* Attempt to open the master. */
+ fd = vte_pty_getpt();
+ if (fd != -1) {
+ /* Use ioctls to read the slave number, and to unlock it. */
+ if (((buf = vte_pty_ptsname(fd)) == NULL) ||
+ (vte_pty_grantpt(fd) != 0) ||
+ (vte_pty_unlockpt(fd) != 0)) {
+ close(fd);
+ fd = -1;
+ } else {
+ /* Start up a child process with the given command. */
+ if (vte_pty_fork_on_fd(buf, command, child) != 0) {
+ close(fd);
+ fd = -1;
+ }
+ }
+ }
+ return fd;
+}
+
+static int
+vte_pty_open_old_school(pid_t *child, const char *command)
+{
+ return -1;
+}
+
+int
+vte_pty_open(pid_t *child, const char *command)
+{
+ int ret = -1;
+ if (ret == -1) {
+ ret = vte_pty_open_unix98(child, command);
+ }
+ if (ret == -1) {
+ ret = vte_pty_open_old_school(child, command);
+ }
+ return ret;
+}
+
+#ifdef PTY_MAIN
+int
+main(int argc, char **argv)
+{
+ pid_t child;
+ int fd;
+ char c;
+ fd = vte_pty_open(&child, "/usr/bin/tty");
+ g_print("Child pid is %d.\n", (int)child);
+ while(read(fd, &c, 1) == 1) {
+ write(STDOUT_FILENO, &c, 1);
+ }
+ return 0;
+}
+#endif
diff --git a/src/pty.h b/src/pty.h
new file mode 100644
index 0000000..2453c86
--- /dev/null
+++ b/src/pty.h
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+
+#ifndef pty_h_included
+#define 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, storing the child's PID in the given argument. */
+int vte_pty_open(pid_t *child, const char *command);
+
+G_END_DECLS
+
+#endif
diff --git a/src/termcap.c b/src/termcap.c
new file mode 100644
index 0000000..0964d64
--- /dev/null
+++ b/src/termcap.c
@@ -0,0 +1,641 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+#include "../config.h"
+#include <sys/types.h>
+#include <ctype.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <glib.h>
+
+#ifndef TERMCAP_MAYBE_STATIC
+#define TERMCAP_MAYBE_STATIC
+#include "termcap.h"
+#endif
+
+struct vte_termcap {
+ char *comment;
+ struct vte_termcap_entry {
+ char *comment;
+ char *string;
+ size_t length;
+ struct vte_termcap_entry *next;
+ } *entries;
+ struct vte_termcap_alias {
+ char *name;
+ struct vte_termcap_entry *entry;
+ struct vte_termcap_alias *next;
+ } *names;
+ GTree *nametree;
+};
+
+static char *
+nextline(FILE *fp, size_t *outlen)
+{
+ char buf[LINE_MAX];
+ size_t len = 0;
+ char *ret = NULL;
+ size_t retlen = 0;
+ char *tmp = NULL;
+
+ if (!feof(fp)) do {
+ if (fgets(buf, sizeof(buf), fp) != buf) {
+ break;
+ }
+ len = strlen(buf);
+ tmp = g_malloc(retlen + len + 1);
+ if (retlen > 0) {
+ memcpy(tmp, ret, retlen);
+ }
+ memcpy(tmp + retlen, buf, len + 1);
+ if (ret != NULL) {
+ g_free(ret);
+ }
+ retlen += len;
+ ret = tmp;
+ ret[retlen] = '\0';
+ } while ((len > 0) && (buf[retlen - 1] != '\n') && !feof(fp));
+
+ if ((ret != NULL) && (ret[retlen - 1] == '\n')) {
+ retlen--;
+ ret[retlen] = '\0';
+ }
+
+ if ((ret != NULL) && (ret[retlen - 1] == '\r')) {
+ retlen--;
+ ret[retlen] = '\0';
+ }
+
+ *outlen = retlen;
+ return ret;
+}
+
+static char *
+nextline_with_continuation(FILE *fp)
+{
+ char *ret = NULL;
+ size_t rlen = 0, slen = 0;
+ char *s, *tmp;
+ gboolean continuation = FALSE;
+ do {
+ s = nextline(fp, &slen);
+ if (s == NULL) {
+ break;
+ }
+ tmp = g_malloc(slen + rlen + 1);
+ if (rlen > 0) {
+ memcpy(tmp, ret, rlen);
+ }
+ memcpy(tmp + rlen, s, slen + 1);
+ if (ret != NULL) {
+ g_free(ret);
+ }
+ g_free(s);
+ ret = tmp;
+ rlen += slen;
+ if (ret[rlen - 1] == '\\') {
+ ret[rlen - 1] = '\0';
+ rlen--;
+ continuation = TRUE;
+ } else {
+ continuation = FALSE;
+ }
+ } while ((rlen == 0) || continuation);
+ return ret;
+}
+
+static void
+vte_termcap_add_aliases(struct vte_termcap *termcap,
+ struct vte_termcap_entry *entry,
+ const char *aliases)
+{
+ size_t l;
+ struct vte_termcap_alias *alias = NULL;
+ const char *p;
+
+ for (p = aliases, l = 0; p != NULL; l++) {
+ if (aliases[l] == '\\') {
+ l++;
+ } else
+ if ((aliases[l] == '|') ||
+ (aliases[l] == ':') ||
+ (aliases[l] == '\0')) {
+ alias = g_malloc(sizeof(struct vte_termcap_alias));
+ if (alias) {
+ memset(alias, 0, sizeof(*alias));
+ alias->name = g_strndup(p, &aliases[l] - p);
+ alias->entry = entry;
+ alias->next = termcap->names;
+ termcap->names = alias;
+ if (aliases[l] == '\0') {
+ p = NULL;
+ } else {
+ p = &aliases[l + 1];
+ }
+ g_tree_insert(termcap->nametree,
+ GINT_TO_POINTER(g_quark_from_string(alias->name)),
+ alias);
+ }
+ l++;
+ }
+ }
+}
+
+static void
+vte_termcap_add_entry(struct vte_termcap *termcap, const char *s, size_t length,
+ char *comment)
+{
+ struct vte_termcap_entry *entry = NULL;
+ char *p = NULL;
+ size_t l;
+
+ entry = g_malloc(sizeof(struct vte_termcap_entry));
+ if (entry != NULL) {
+ memset(entry, 0, sizeof(struct vte_termcap_entry));
+ entry->string = g_malloc(length + 1);
+ if (length > 0) {
+ memcpy(entry->string, s, length);
+ }
+ entry->string[length] = '\0';
+ entry->length = length;
+ entry->comment = comment;
+ entry->next = termcap->entries;
+ termcap->entries = entry;
+ for (l = 0; l < length; l++) {
+ if (s[l] == '\\') {
+ l++;
+ continue;
+ }
+ if (s[l] == ':') {
+ break;
+ }
+ }
+ if (l <= length) {
+ p = g_malloc(l + 1);
+ if (p) {
+ strncpy(p, s, l);
+ p[l] = '\0';
+ vte_termcap_add_aliases(termcap, entry, p);
+ g_free(p);
+ }
+ }
+ }
+}
+
+static void
+vte_termcap_strip(const char *termcap, char **stripped, size_t *len)
+{
+ char *ret;
+ size_t i, o, length;
+ length = strlen(termcap);
+
+ ret = g_malloc(length + 2);
+ for (i = o = 0; i < length; i++) {
+ ret[o++] = termcap[i];
+ if (termcap[i] == '\\') {
+ char *p;
+ switch(termcap[i + 1]) {
+ case '\n':
+ while ((termcap[i + 1] == ' ') ||
+ (termcap[i + 1] == '\t')) {
+ i++;
+ }
+ continue;
+ case 'E':
+ i++;
+ ret[o - 1] = 27;
+ continue;
+ case 'n':
+ i++;
+ ret[o - 1] = 10;
+ continue;
+ case 'r':
+ i++;
+ ret[o - 1] = 13;
+ continue;
+ case 't':
+ i++;
+ ret[o - 1] = 8;
+ continue;
+ case 'b':
+ i++;
+ ret[o - 1] = 9;
+ continue;
+ case 'f':
+ i++;
+ ret[o - 1] = 12;
+ continue;
+ case '0':
+ i++;
+ ret[o - 1] = strtol(termcap + i, &p, 8);
+ p--;
+ i = p - termcap;
+ continue;
+ }
+ } else
+ if (termcap[i] == '^') {
+ switch(termcap[i + 1]) {
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z':
+ i++;
+ ret[o - 1] = termcap[i] - ('A' - 1);
+ continue;
+ default:
+ break;
+ }
+ } else {
+ if (termcap[i] == ':') {
+ while ((termcap[i + 1] == ' ') ||
+ (termcap[i + 1] == '\t')) {
+ i++;
+ }
+ continue;
+ }
+ }
+ }
+ ret[o] = ':';
+ o++;
+ ret[o] = '\0';
+ *stripped = ret;
+ *len = o;
+}
+
+static gint
+vte_direct_compare(gconstpointer a, gconstpointer b)
+{
+ return GPOINTER_TO_INT(a) - GPOINTER_TO_INT(b);
+}
+
+TERMCAP_MAYBE_STATIC struct vte_termcap *
+vte_termcap_new(const char *filename)
+{
+ FILE *fp;
+ char *s, *stripped, *comment = NULL;
+ struct vte_termcap *ret = NULL;
+ fp = fopen(filename, "r");
+ if (fp != NULL) {
+ while ((s = nextline_with_continuation(fp)) != NULL) {
+ size_t slen;
+ if ((s[0] != '#') && (isprint(s[0]))) {
+ if (ret == NULL) {
+ ret = g_malloc(sizeof(struct vte_termcap));
+ if (ret == NULL) {
+ return NULL;
+ }
+ memset(ret, 0, sizeof(struct vte_termcap));
+ ret->nametree = g_tree_new(vte_direct_compare);
+ }
+ stripped = NULL;
+ vte_termcap_strip(s, &stripped, &slen);
+ if (stripped) {
+ vte_termcap_add_entry(ret, stripped,
+ slen, comment);
+ comment = NULL;
+ g_free(stripped);
+ }
+ } else {
+ slen = strlen(s);
+ if (comment == NULL) {
+ comment = g_malloc(slen + 2);
+ memcpy(comment, s, slen);
+ comment[slen] = '\n';
+ comment[slen + 1] = '\0';
+ } else {
+ char *tmp;
+ size_t clen;
+ clen = strlen(comment);
+ tmp = g_malloc(slen + clen + 2);
+ if (tmp == NULL) {
+ return NULL;
+ }
+ memcpy(tmp, comment, clen);
+ memcpy(tmp + clen, s, slen);
+ tmp[clen + slen] = '\n';
+ tmp[clen + slen + 1] = '\0';
+ g_free(comment);
+ comment = tmp;
+ }
+ }
+ g_free(s);
+ }
+ ret->comment = comment;
+ fclose(fp);
+ }
+ return ret;
+}
+
+TERMCAP_MAYBE_STATIC void
+vte_termcap_free(struct vte_termcap *termcap)
+{
+ struct vte_termcap_entry *entry, *nextentry;
+ struct vte_termcap_alias *alias, *nextalias;
+ for (entry = termcap->entries; entry != NULL; entry = nextentry) {
+ nextentry = entry->next;
+ g_free(entry->comment);
+ g_free(entry->string);
+ g_free(entry);
+ }
+ for (alias = termcap->names; alias != NULL; alias = nextalias) {
+ nextalias = alias->next;
+ g_free(alias->name);
+ g_free(alias);
+ }
+ g_tree_destroy(termcap->nametree);
+ g_free(termcap->comment);
+ g_free(termcap);
+}
+
+static const char *
+vte_termcap_find_l(struct vte_termcap *termcap, const char *tname, size_t len,
+ const char *cap)
+{
+ const char *ret;
+ struct vte_termcap_alias *alias;
+ char ttname[len + 1];
+ size_t clen;
+
+ /* Find the entry by this name. */
+ memcpy(ttname, tname, len);
+ ttname[len] = '\0';
+ alias = g_tree_lookup(termcap->nametree,
+ GINT_TO_POINTER(g_quark_from_string(ttname)));
+
+ /* If we found the entry, poke around in it. */
+ if (alias != NULL) {
+ char *str = alias->entry->string;
+ const char *nextcap = "tc";
+ size_t len = alias->entry->length;
+
+ clen = strlen(cap);
+ ret = str;
+
+ /* Search for the capability in this entry. */
+ for (ret = str - 1;
+ ret != NULL;
+ ret = memchr(ret, ':', str + len - ret - clen)) {
+ /* We've hit the first separator, or are before the
+ * very first part of the entry, so hit the next
+ * capability. */
+ ret++;
+ /* If the end of the entry's name isn't the end of the
+ * string, and it isn't a boolean/string/numeric, or
+ * its name is wrong, keep looking. */
+ if (((ret[clen] != '\0') &&
+ (ret[clen] != ':') &&
+ (ret[clen] != '=') &&
+ (ret[clen] != '#')) ||
+ (memcmp(ret, cap, clen) != 0)) {
+ continue;
+ }
+ /* Found it. */
+ return ret;
+ }
+
+ /* Now find the "tc=" entries, and scan those entries. */
+ clen = strlen(nextcap);
+ ret = str - 1;
+
+ while (ret != NULL) {
+ for (;
+ ret != NULL;
+ ret = memchr(ret, ':', str + len - ret - clen)) {
+ ret++;
+ if (((ret[clen] != '\0') &&
+ (ret[clen] != ':') &&
+ (ret[clen] != '=') &&
+ (ret[clen] != '#')) ||
+ (memcmp(ret, nextcap, clen) != 0)) {
+ continue;
+ }
+ break;
+ }
+
+ if (ret != NULL) {
+ const char *t;
+ char *end;
+ end = strchr(ret + clen + 1, ':');
+ if (end != NULL) {
+ t = vte_termcap_find_l(termcap,
+ ret + clen + 1,
+ end -
+ (ret + clen + 1),
+ cap);
+ } else {
+ t = vte_termcap_find_l(termcap,
+ ret + clen + 1,
+ strlen(ret +
+ clen + 1),
+ cap);
+ }
+ if ((t != NULL) && (t[0] != '\0')) {
+ return t;
+ }
+ ret++;
+ }
+ }
+ }
+ return "";
+}
+
+static const char *
+vte_termcap_find(struct vte_termcap *termcap,
+ const char *tname, const char *cap)
+{
+ return vte_termcap_find_l(termcap, tname, strlen(tname), cap);
+}
+
+TERMCAP_MAYBE_STATIC int
+vte_termcap_find_boolean(struct vte_termcap *termcap, const char *tname,
+ const char *cap)
+{
+ const char *val;
+ val = vte_termcap_find(termcap, tname, cap);
+ if ((val != NULL) && (val[0] != '\0')) {
+ return 1;
+ }
+ return 0;
+}
+
+TERMCAP_MAYBE_STATIC long
+vte_termcap_find_numeric(struct vte_termcap *termcap, const char *tname,
+ const char *cap)
+{
+ const char *val;
+ char *p;
+ size_t l;
+ long ret;
+ val = vte_termcap_find(termcap, tname, cap);
+ if ((val != NULL) && (val[0] != '\0')) {
+ l = strlen(cap);
+ ret = strtol(val + l + 1, &p, 0);
+ if ((p != NULL) && ((*p == '\0') || (*p == ':'))) {
+ return ret;
+ }
+ }
+ return 0;
+}
+
+TERMCAP_MAYBE_STATIC char *
+vte_termcap_find_string(struct vte_termcap *termcap, const char *tname,
+ const char *cap)
+{
+ const char *val, *p;
+ size_t l;
+ val = vte_termcap_find(termcap, tname, cap);
+ if ((val != NULL) && (val[0] != '\0')) {
+ l = strlen(cap);
+ val += (l + 1);
+ p = strchr(val, ':');
+ if (p) {
+ return g_strndup(val, p - val);
+ } else {
+ return g_strdup(val);
+ }
+ }
+ return g_strdup("");
+}
+
+TERMCAP_MAYBE_STATIC char *
+vte_termcap_find_string_length(struct vte_termcap *termcap, const char *tname,
+ const char *cap, size_t *length)
+{
+ const char *val, *p;
+ char *ret;
+ size_t l;
+ val = vte_termcap_find(termcap, tname, cap);
+ if (val != NULL) {
+ l = strlen(cap);
+ val += (l + 1);
+ p = val;
+ while (*p != ':') p++;
+ *length = l = p - val;
+ ret = g_malloc(l + 1);
+ if (l > 0) {
+ memcpy(ret, val, l);
+ }
+ ret[l] = '\0';
+ return ret;
+ }
+ return g_strdup("");
+}
+
+TERMCAP_MAYBE_STATIC const char *
+vte_termcap_comment(struct vte_termcap *termcap, const char *tname)
+{
+ struct vte_termcap_alias *alias;
+ size_t len;
+ if ((tname == NULL) || (tname[0] == '\0')) {
+ return termcap->comment;
+ }
+ len = strlen(tname);
+ for (alias = termcap->names; alias != NULL; alias = alias->next) {
+ if (strncmp(tname, alias->name, len) == 0) {
+ if (alias->name[len] == '\0') {
+ break;
+ }
+ }
+ }
+ if (alias && (alias->entry != NULL)) {
+ return alias->entry->comment;
+ }
+ return NULL;
+}
+
+/* FIXME: should escape characters we've previously decoded. */
+TERMCAP_MAYBE_STATIC char *
+vte_termcap_generate(struct vte_termcap *termcap)
+{
+ size_t size;
+ char *ret = NULL;
+ struct vte_termcap_entry *entry;
+ size = strlen(termcap->comment ?: "");
+ for (entry = termcap->entries; entry != NULL; entry = entry->next) {
+ size += strlen(entry->comment ?: "");
+ size += (strlen(entry->string ?: "") + 1);
+ }
+ ret = g_malloc(size + 1);
+ if (ret == NULL) {
+ return NULL;
+ }
+ memset(ret, '\0', size);
+ size = 0;
+ for (entry = termcap->entries; entry != NULL; entry = entry->next) {
+ if (entry->comment) {
+ memcpy(ret + size, entry->comment,
+ strlen(entry->comment));
+ size += strlen(entry->comment);
+ }
+ if (entry->string) {
+ memcpy(ret + size, entry->string,
+ strlen(entry->string));
+ size += strlen(entry->string);
+ ret[size] = '\n';
+ size++;
+ }
+ }
+ if (termcap->comment) {
+ memcpy(ret + size, termcap->comment,
+ strlen(termcap->comment));
+ size += strlen(termcap->comment);
+ }
+ return ret;
+}
+
+#ifdef TERMCAP_MAIN
+int
+main(int argc, char **argv)
+{
+ const char *tc = (argc > 1) ? argv[1] : "linux";
+ const char *cap = (argc > 2) ? argv[2] : "so";
+ char *value;
+ struct vte_termcap *termcap = vte_termcap_new("/etc/termcap");
+ value = vte_termcap_find_string(termcap, tc, cap);
+ printf("%s\n", value);
+ g_free(value);
+ vte_termcap_free(termcap);
+ return 0;
+}
+#endif
diff --git a/src/termcap.h b/src/termcap.h
new file mode 100644
index 0000000..9d9531b
--- /dev/null
+++ b/src/termcap.h
@@ -0,0 +1,56 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+
+#ifndef termcap_h
+#define termcap_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. */
+int 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, size_t *length);
+
+G_END_DECLS
+
+#endif
diff --git a/src/trie.c b/src/trie.c
new file mode 100644
index 0000000..5b36122
--- /dev/null
+++ b/src/trie.c
@@ -0,0 +1,868 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+#include "../config.h"
+#include <sys/types.h>
+#include <assert.h>
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+#include <glib.h>
+#include <glib-object.h>
+#include "trie.h"
+
+#ifndef TRIE_MAYBE_STATIC
+#define TRIE_MAYBE_STATIC
+#endif
+
+/* Structures and whatnot for tracking character classes. */
+struct char_class_data {
+ wchar_t 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. */
+ wchar_t *code; /* A magic string that indicates this
+ class should be found here. */
+ size_t code_length;
+ size_t ccount; /* The maximum number of characters
+ after the format specifier to
+ consume. */
+ gboolean (*check)(const wchar_t c, struct char_class_data *data);
+ /* Function to check if a character
+ is in this class. */
+ void (*setup)(const wchar_t *s, struct char_class_data *data, int inc);
+ /* Setup the data struct for use in the
+ * above check function. */
+ gboolean (*extract)(const wchar_t *s, size_t length,
+ struct char_class_data *data,
+ GValueArray *array);
+ /* Extract a parameter. */
+};
+
+/* A trie to hold control sequences. */
+struct vte_trie {
+ 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. */
+ size_t trie_path_count; /* Number of children of this node. */
+ struct {
+ 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(wchar_t c, struct char_class_data *data)
+{
+ return (c == data->c) ? TRUE : FALSE;
+}
+static void
+char_class_exact_setup(const wchar_t *s, struct char_class_data *data, int inc)
+{
+ data->c = s[0];
+ return;
+}
+static void
+char_class_percent_setup(const wchar_t *s, struct char_class_data *data,
+ int inc)
+{
+ data->c = '%';
+ return;
+}
+static gboolean
+char_class_none_extract(const wchar_t *s, size_t length,
+ struct char_class_data *data, GValueArray *array)
+{
+ return FALSE;
+}
+
+static gboolean
+char_class_digit_check(wchar_t 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;
+ }
+ return FALSE;
+}
+static void
+char_class_digit_setup(const wchar_t *s, struct char_class_data *data, int inc)
+{
+ data->inc = inc;
+ return;
+}
+static gboolean
+char_class_digit_extract(const wchar_t *s, size_t length,
+ struct char_class_data *data, GValueArray *array)
+{
+ long ret = 0;
+ size_t i;
+ GValue value;
+ for (i = 0; i < length; i++) {
+ ret *= 10;
+ ret += (s[i] - '0');
+ }
+ 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(wchar_t 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;
+ }
+ return FALSE;
+}
+static void
+char_class_multi_setup(const wchar_t *s, struct char_class_data *data, int inc)
+{
+ data->inc = inc;
+ return;
+}
+static gboolean
+char_class_multi_extract(const wchar_t *s, size_t length,
+ struct char_class_data *data, GValueArray *array)
+{
+ long ret = 0;
+ size_t 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(wchar_t c, struct char_class_data *data)
+{
+ return (c >= data->c) ? TRUE : FALSE;
+}
+static void
+char_class_any_setup(const wchar_t *s, struct char_class_data *data, int inc)
+{
+ data->c = s[0] + inc;
+ return;
+}
+static gboolean
+char_class_any_extract(const wchar_t *s, size_t 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(wchar_t c, struct char_class_data *data)
+{
+ return (c != data->c) ? TRUE : FALSE;
+}
+static void
+char_class_string_setup(const wchar_t *s, struct char_class_data *data, int inc)
+{
+ data->c = s[0];
+ return;
+}
+static gboolean
+char_class_string_extract(const wchar_t *s, size_t length,
+ struct char_class_data *data, GValueArray *array)
+{
+ wchar_t *ret = NULL;
+ size_t len;
+ GValue value;
+
+ len = wcslen(s);
+ if (len > length) {
+ len = length;
+ }
+
+ ret = g_malloc0((len + 1) * sizeof(wchar_t));
+ wcsncpy(ret, s, len);
+ 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 wchar_t empty_wstring[] = {'\0'};
+static wchar_t digit_wstring1[] = {'%', '2', '\0'};
+static wchar_t digit_wstring2[] = {'%', 'd', '\0'};
+static wchar_t any_wstring[] = {'%', '+', '\0'};
+static wchar_t exact_wstring[] = {'%', '%', '\0'};
+static wchar_t string_wstring[] = {'%', 's', '\0'};
+static wchar_t 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)
+{
+ return g_malloc0(sizeof(struct vte_trie));
+}
+
+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_free(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, wchar_t *pattern, size_t length,
+ const char *result, GQuark quark, int inc)
+{
+ unsigned long i;
+ struct char_class *cclass = NULL;
+ struct char_class_data data;
+ wchar_t *code;
+ size_t len = 0, ccount = 0;
+ wchar_t 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);
+#ifdef VTE_DEBUG
+ } else {
+ g_warning("Duplicate (%s/%s)!", result, trie->result);
+#endif
+ }
+ 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) && (wcsncmp(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) - 1; i >= 0; i--) {
+ len = char_classes[i].code_length;
+ code = char_classes[i].code;
+ ccount = char_classes[i].ccount;
+ if ((len <= length) && (wcsncmp(pattern, code, len) == 0)) {
+ cclass = &char_classes[i];
+ break;
+ }
+ }
+ g_assert(i >= 0);
+
+ /* 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, size_t length,
+ const char *result, GQuark quark)
+{
+ mbstate_t state;
+ wchar_t *wpattern;
+ char *tpattern;
+ const char *pat;
+ size_t 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);
+ }
+
+ wpattern = g_malloc0(sizeof(wchar_t) * (length + 1));
+ memset(&state, 0, sizeof(state));
+ pat = tpattern = g_strndup(pattern, length);
+
+ wlength = mbsrtowcs(wpattern, &pat, length, &state);
+ vte_trie_addx(trie, wpattern, wlength, result, quark, 0);
+
+ g_free(wpattern);
+ g_free(tpattern);
+}
+
+/* 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 wchar_t *pattern, size_t length,
+ const char **res, GQuark *quark, GValueArray *array)
+{
+ unsigned int i;
+ const char *hres;
+ enum cclass cc;
+ const char *best = NULL;
+ GValueArray *bestarray = NULL;
+ GQuark bestquark = 0;
+
+ /* Make sure that attempting to save output values doesn't kill us. */
+ if (res == NULL) {
+ res = &hres;
+ }
+
+ /* Trivial cases. We've matched the entire pattern, or we're out of
+ * pattern to match. */
+ if (length <= 0) {
+ if (trie->result) {
+ *res = trie->result;
+ *quark = trie->quark;
+ return *res;
+ } else {
+ if (trie->trie_path_count > 0) {
+ *res = "";
+ *quark = g_quark_from_static_string("");
+ return *res;
+ } else {
+ *res = NULL;
+ *quark = 0;
+ 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 wchar_t *prospect = pattern + 1;
+ const char *tmp;
+ GQuark tmpquark = 0;
+ GValueArray *tmparray;
+ /* Move past characters which might match this
+ * part of the string... */
+ while (cclass->multiple &&
+ ((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),
+ &tmp,
+ &tmpquark,
+ tmparray);
+ /* If it's a better match than any we've seen
+ * so far, call it the "best so far". */
+ if ((best == NULL) ||
+ ((best[0] == '\0') &&
+ (tmp != NULL) &&
+ (tmp[0] != '\0'))) {
+ best = tmp;
+ if (bestarray != NULL) {
+ g_value_array_free(bestarray);
+ }
+ bestarray = tmparray;
+ bestquark = tmpquark;
+ } else {
+ g_value_array_free(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++) {
+ g_value_array_append(array,
+ g_value_array_get_nth(bestarray,
+ i));
+ }
+ g_value_array_free(bestarray);
+ }
+#if 0
+ g_print("`%s' ", best);
+ dump_array(array);
+#endif
+ *quark = bestquark;
+ *res = best;
+ 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, wchar_t *pattern, size_t length,
+ const char **res, GQuark *quark, GValueArray **array)
+{
+ const char *ret = NULL;
+ GQuark tmpquark;
+ GValueArray *valuearray;
+
+ valuearray = g_value_array_new(0);
+ if (quark == NULL) {
+ quark = &tmpquark;
+ }
+ *quark = 0;
+
+ ret = vte_trie_matchx(trie, pattern, length, res, quark, valuearray);
+
+ if (((ret == NULL) || (ret[0] == '\0')) || (valuearray->n_values == 0)){
+ g_value_array_free(valuearray);
+ *array = NULL;
+ } else {
+ *array = 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)
+{
+ unsigned int i;
+ char buf[LINE_MAX];
+
+ 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 {
+ 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:
+ 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) {
+ g_print("%s = `%s'\n", buf,
+ trie->trie_paths[i].trie->result);
+ }
+ vte_trie_printx(trie->trie_paths[i].trie, buf);
+ }
+}
+
+/* Print the trie. */
+TRIE_MAYBE_STATIC void
+vte_trie_print(struct vte_trie *trie)
+{
+ vte_trie_printx(trie, "");
+ g_print("\n");
+}
+
+#ifdef TRIE_MAIN
+static void
+dump_array(GValueArray *array)
+{
+ unsigned int i;
+ if (array != NULL) {
+ g_print("args = {");
+ for (i = 0; i < array->n_values; i++) {
+ GValue *value;
+ value = g_value_array_get_nth(array, i);
+ if (i > 0) {
+ g_print(", ");
+ }
+ 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)) {
+ printf("`%ls'",
+ (wchar_t*)g_value_get_pointer(value));
+ }
+ }
+ g_print("}\n");
+ }
+}
+
+static void
+convert_mbstowcs(const char *i, size_t ilen, wchar_t *o, size_t *olen)
+{
+ mbstate_t state;
+ memset(&state, 0, sizeof(state));
+ *olen = mbsrtowcs(o, &i, ilen, &state);
+}
+
+int
+main(int argc, char **argv)
+{
+ struct vte_trie *trie;
+ GValueArray *array = NULL;
+ GQuark quark;
+ wchar_t buf[LINE_MAX];
+ size_t buflen;
+
+ g_type_init();
+ trie = vte_trie_new();
+
+ vte_trie_add(trie, "abcdef", 6, "abcdef",
+ g_quark_from_string("abcdef"));
+ vte_trie_add(trie, "abcde", 5, "abcde",
+ g_quark_from_string("abcde"));
+ vte_trie_add(trie, "abcdeg", 6, "abcdeg",
+ g_quark_from_string("abcdeg"));
+ vte_trie_add(trie, "abc%+Aeg", 8, "abc%+Aeg",
+ g_quark_from_string("abc%+Aeg"));
+ vte_trie_add(trie, "abc%deg", 7, "abc%deg",
+ g_quark_from_string("abc%deg"));
+ vte_trie_add(trie, "abc%%eg", 7, "abc%%eg",
+ g_quark_from_string("abc%%eg"));
+ vte_trie_add(trie, "abc%%%i%deg", 11, "abc%%%i%deg",
+ g_quark_from_string("abc%%%i%deg"));
+ vte_trie_add(trie, "<esc>[%i%d;%dH", 14, "vtmatch",
+ g_quark_from_string("vtmatch"));
+ vte_trie_add(trie, "<esc>[%i%mL", 11, "multimatch",
+ g_quark_from_string("multimatch"));
+ vte_trie_add(trie, "<esc>]2;%sh", 11, "decset-title",
+ g_quark_from_string("decset-title"));
+ vte_trie_print(trie);
+
+ quark = 0;
+ convert_mbstowcs("abc", 3, buf, &buflen);
+ g_print("`%s' = `%s'\n", "abc",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abcdef", 6, buf, &buflen);
+ g_print("`%s' = `%s'\n", "abcdef",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abcde", 5, buf, &buflen);
+ g_print("`%s' = `%s'\n", "abcde",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abcdeg", 6, buf, &buflen);
+ g_print("`%s' = `%s'\n", "abcdeg",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abc%deg", 7, buf, &buflen);
+ g_print("`%s' = `%s'\n", "abc%deg",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abc10eg", 7, buf, &buflen);
+ g_print("`%s' = `%s'\n", "abc10eg",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abc%eg", 6, buf, &buflen);
+ g_print("`%s' = `%s'\n", "abc%eg",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abc%10eg", 8, buf, &buflen);
+ g_print("`%s' = `%s'\n", "abc%10eg",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("abcBeg", 6, buf, &buflen);
+ g_print("`%s' = `%s'\n", "abcBeg",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>[25;26H", 12, buf, &buflen);
+ g_print("`%s' = `%s'\n", "<esc>[25;26H",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>[25;26L", 12, buf, &buflen);
+ g_print("`%s' = `%s'\n", "<esc>[25;26L",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ }
+
+ quark = 0;
+ convert_mbstowcs("<esc>]2;WoofWoofh", 17, buf, &buflen);
+ g_print("`%s' = `%s'\n", "<esc>]2;WoofWoofh",
+ vte_trie_match(trie, buf, buflen, NULL, &quark, &array));
+ g_print("=> `%s'\n", g_quark_to_string(quark));
+ if (array != NULL) {
+ dump_array(array);
+ g_value_array_free(array);
+ array = NULL;
+ }
+
+ vte_trie_free(trie);
+
+ return 0;
+}
+#endif
diff --git a/src/trie.h b/src/trie.h
new file mode 100644
index 0000000..1c608d5
--- /dev/null
+++ b/src/trie.h
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+
+#ifndef trie_h
+#define trie_h
+
+#include <wchar.h>
+#include <glib.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,
+ wchar_t *pattern, size_t length,
+ const char **res,
+ GQuark *quark,
+ GValueArray **array);
+
+/* Print the contents of the trie (mainly for diagnostic purposes). */
+void vte_trie_print(struct vte_trie *trie);
+
+G_END_DECLS
+
+#endif
diff --git a/src/typescript b/src/typescript
new file mode 100644
index 0000000..86ac59a
--- /dev/null
+++ b/src/typescript
@@ -0,0 +1,76 @@
+Script started on Mon Jan 28 23:02:33 2002
+]2;nalin@blade.devel.redhat.com:/home/devel/nalin/projects/vte/srcnalin has logged on pts/0 from local.
+nalin has logged on tty1 from local.
+]2;nalin@blade.devel.redhat.com:/home/devel/nalin/projects/vte/srcnalin@blade:~/projects/vte/src> less trie.c
+7[?47h[?1h=/*
+ * Copyright (C) 2001 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>
+trie.c #include <stdlib.h>
+#include <string.h>
+#include <wchar.h>
+#include <glib.h>
+#include <glib-object.h>
+#include "trie.h"
+
+#ifndef TRIE_MAYBE_STATIC
+#define TRIE_MAYBE_STATIC
+#endif
+
+/* Structures and whatnot for tracking character classes. */
+struct char_class_data {
+ wchar_t 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. */
+:M#include <stdio.h>
+M#include <ctype.h>
+M#include <assert.h>
+M#include <sys/types.h>
+M#include "../config.h"
+M
+M */
+M * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+M * License along with this program; if not, write to the Free Software
+M * You should have received a copy of the GNU Library General Public
+M *
+M * General Public License for more details.
+M * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+M * WITHOUT ANY WARRANTY; without even the implied warranty of
+M * This program is distributed in the hope that it will be useful, but
+M *
+M * (at your option) any later version.
+M * the Free Software Foundation; either version 2 of the License, or
+M * the terms of the GNU Library General Public License as published by
+M * This is free software; you can redistribute it and/or modify it under
+M *
+M * Copyright (C) 2001 Red Hat, Inc.
+M/*
+:[?1l>[?47l8]2;nalin@blade.devel.redhat.com:/home/devel/nalin/projects/vte/srcnalin@blade:~/projects/vte/src> ^Dexit
+
+Script done on Mon Jan 28 23:02:39 2002
diff --git a/src/utf8echo.c b/src/utf8echo.c
new file mode 100644
index 0000000..fdf9ba4
--- /dev/null
+++ b/src/utf8echo.c
@@ -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.
+ */
+
+#ident "$Id$"
+#include "../config.h"
+#include <iconv.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define ESC ""
+
+int
+main(int argc, char **argv)
+{
+ int i;
+ iconv_t conv;
+ char buf[LINE_MAX];
+ wchar_t w;
+ char *inbuf, *outbuf;
+ size_t insize, outsize;
+
+ if (argc < 2) {
+ printf("usage: %s index [...]\n", argv[0]);
+ return 1;
+ }
+
+ conv = iconv_open("UTF-8", "WCHAR_T");
+ if (conv == NULL) {
+ return 1;
+ }
+
+ printf(ESC "%%G ");
+ for (i = 1; i < argc; i++) {
+ w = (wint_t)atol(argv[i]);
+ inbuf = (char*)&w;
+ insize = sizeof(w);
+ memset(buf, 0, sizeof(buf));
+ outbuf = buf;
+ outsize = sizeof(buf);
+ if (iconv(conv, &inbuf, &insize, &outbuf, &outsize) != -1) {
+ printf("%*s", outbuf - buf, buf);
+ }
+ }
+ printf(" " ESC "%%@\n");
+
+ iconv_close(conv);
+
+ return 0;
+}
diff --git a/src/vte.c b/src/vte.c
new file mode 100644
index 0000000..79a3041
--- /dev/null
+++ b/src/vte.c
@@ -0,0 +1,3494 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+#include "../config.h"
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/param.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <iconv.h>
+#include <langinfo.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <termios.h>
+#include <unistd.h>
+#include <wchar.h>
+#include <X11/Xlib.h>
+#include <glib.h>
+#include <glib-object.h>
+#include <gdk/gdk.h>
+#include <gdk/gdkkeysyms.h>
+#include <gdk/gdkx.h>
+#include <gtk/gtk.h>
+#include "caps.h"
+#include "marshal.h"
+#include "pty.h"
+#include "termcap.h"
+#include "trie.h"
+#include "vte.h"
+
+#define VTE_TAB_WIDTH 8
+
+/* A function which can handle a terminal control sequence. */
+typedef void (*VteTerminalSequenceHandler)(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params);
+
+static void vte_sequence_handler_clear_screen(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params);
+static void vte_sequence_handler_ho(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params);
+static void vte_sequence_handler_do(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params);
+static void vte_sequence_handler_up(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params);
+
+/* Allocate a new line. */
+static GArray *
+vte_new_row_data()
+{
+ return g_array_new(FALSE, FALSE, sizeof(struct vte_charcell));
+}
+
+/* Reset defaults for character insertion. */
+static void
+vte_terminal_set_default_attributes(VteTerminal *terminal)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ memset(&terminal->screen->defaults, 0,
+ sizeof(terminal->screen->defaults));
+ terminal->screen->defaults.fore = 7;
+ terminal->screen->defaults.back = 0;
+ terminal->screen->defaults.reverse = 0;
+ terminal->screen->defaults.invisible = 0;
+ terminal->screen->defaults.half = 0;
+ terminal->screen->defaults.underline = 0;
+ terminal->screen->defaults.blink = 0;
+ terminal->screen->defaults.standout = 0;
+ terminal->screen->defaults.bold = 0;
+}
+
+/* Cause certain cells to be updated. */
+static void
+vte_invalidate_cells(VteTerminal *terminal,
+ gint column_start, gint column_count,
+ gint row_start, gint row_count)
+{
+ GdkRectangle rect;
+ GtkWidget *widget = GTK_WIDGET(terminal);
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ /* Clamp the start values to reasonable numbers. */
+ column_start = (column_start > 0) ? column_start : 0;
+ row_start = (row_start > 0) ? row_start : 0;
+
+ /* Convert the column and row start and end to pixel values
+ * by multiplying by the size of a character cell. */
+ rect.x = widget->allocation.x + column_start * terminal->char_width;
+ rect.width = column_count * terminal->char_width;
+ rect.y = widget->allocation.y + row_start * terminal->char_height;
+ rect.height = row_count * terminal->char_height;
+
+ /* Invalidate the rectangle. */
+ gdk_window_invalidate_rect(widget->window, &rect, TRUE);
+}
+
+/* Update the adjustment field of the widget. This function should be called
+ * whenever we add rows to the history or switch screens. */
+static void
+vte_terminal_adjust_adjustments(VteTerminal *terminal)
+{
+ gboolean changed;
+ guint page_size;
+ long rows;
+ /* Adjust the vertical, uh, adjustment. */
+ changed = FALSE;
+ /* The lower value should always be zero. */
+ if (terminal->adjustment->lower != 0) {
+ terminal->adjustment->lower = 0;
+ 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.) */
+ rows = MAX(terminal->screen->row_data->len,
+ terminal->screen->cursor_current.row + 1);
+ if (terminal->adjustment->upper != rows) {
+ terminal->adjustment->upper = rows;
+ changed = TRUE;
+ }
+ /* The step increment should always be one. */
+ if (terminal->adjustment->step_increment != 1) {
+ terminal->adjustment->step_increment = 1;
+ changed = TRUE;
+ }
+ /* Set the number of rows the user sees to the number of rows the
+ * user sees. */
+ page_size = terminal->row_count;
+ if (terminal->adjustment->page_size != page_size) {
+ terminal->adjustment->page_size = page_size;
+ changed = TRUE;
+ }
+ /* Clicking in the empty area should scroll one screen, so set the
+ * page size to the number of visible rows. */
+ if (terminal->adjustment->page_increment != page_size) {
+ terminal->adjustment->page_increment = page_size;
+ changed = TRUE;
+ }
+ /* If anything changed, signal that there was a change. */
+ if (changed == TRUE) {
+ gtk_adjustment_changed(terminal->adjustment);
+ }
+}
+
+/* Call another function, offsetting any long arguments by the given
+ * increment value. */
+static void
+vte_sequence_handler_offset(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params,
+ int increment,
+ VteTerminalSequenceHandler handler)
+{
+ int i;
+ long val;
+ GValue *value;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ /* 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, match, match_quark, params);
+}
+
+/* Call another function a given number of times, or once. */
+static void
+vte_sequence_handler_multiple(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params,
+ VteTerminalSequenceHandler handler)
+{
+ 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);
+ }
+ }
+ for (i = 0; i < val; i++) {
+ handler(terminal, match, match_quark, NULL);
+ }
+}
+
+/* Insert a blank line at an arbitrary position. */
+static void
+vte_insert_line_int(VteTerminal *terminal, long position)
+{
+ GArray *array;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ /* Pad out the line data to the insertion point. */
+ while (terminal->screen->row_data->len < position) {
+ array = vte_new_row_data();
+ g_array_append_val(terminal->screen->row_data, array);
+ }
+ /* If we haven't inserted a line yet, insert a new one. */
+ array = vte_new_row_data();
+ if (terminal->screen->row_data->len >= position) {
+ g_array_insert_val(terminal->screen->row_data, position, array);
+ } else {
+ g_array_append_val(terminal->screen->row_data, array);
+ }
+}
+
+/* Remove a line at an arbitrary position. */
+static void
+vte_remove_line_int(VteTerminal *terminal, long position)
+{
+ GArray *array;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ if (terminal->screen->row_data->len > position) {
+ array = g_array_index(terminal->screen->row_data,
+ GArray *,
+ position);
+ g_array_remove_index(terminal->screen->row_data, position);
+ g_array_free(array, TRUE);
+ }
+}
+
+/* Change the encoding used for the terminal to the given codeset, or the
+ * locale default if NULL is passed in. */
+static void
+vte_terminal_set_encoding(VteTerminal *terminal, const char *codeset)
+{
+ if (codeset == NULL) {
+ codeset = nl_langinfo(CODESET);
+ }
+
+ if (terminal->pending_conv != NULL) {
+ iconv_close(terminal->pending_conv);
+ }
+ terminal->pending_conv = iconv_open("WCHAR_T", codeset);
+
+ if (terminal->outgoing_conv != NULL) {
+ iconv_close(terminal->outgoing_conv);
+ }
+ terminal->outgoing_conv = iconv_open(codeset, "WCHAR_T");
+
+ terminal->encoding = g_quark_to_string(g_quark_from_string(codeset));
+#ifdef VTE_DEBUG
+ g_print("Set encoding to `%s'.\n", terminal->encoding);
+#endif
+}
+
+/* Add a line at the current cursor position. */
+static void
+vte_sequence_handler_al(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ struct _VteScreen *screen;
+ long start, end;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ if (screen->scrolling_restricted) {
+ start = screen->delta + screen->scrolling_region.start;
+ end = screen->delta + screen->scrolling_region.end;
+ } else {
+ start = screen->delta;
+ end = screen->delta + terminal->row_count - 1;
+ }
+ vte_remove_line_int(terminal, end);
+ vte_insert_line_int(terminal, screen->cursor_current.row);
+ screen->cursor_current.row++;
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ start - screen->delta, end - start + 1);
+}
+
+/* Add N lines at the current cursor position. */
+static void
+vte_sequence_handler_AL(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ vte_sequence_handler_multiple(terminal, match, match_quark, params,
+ vte_sequence_handler_al);
+}
+
+/* Beep. */
+static void
+vte_sequence_handler_bl(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ gdk_beep();
+}
+
+/* Clear from the cursor position to the beginning of the line. */
+static void
+vte_sequence_handler_cb(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GArray *rowdata;
+ long delta, i;
+ struct _VteScreen *screen;
+ struct vte_charcell *pcell;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ /* If the cursor is actually on the screen, clear data in the row
+ * which corresponds to the cursor. */
+ if (screen->row_data->len > screen->cursor_current.row) {
+ /* Get the data for the row which the cursor points to. */
+ rowdata = g_array_index(screen->row_data,
+ GArray*,
+ screen->cursor_current.row);
+ /* Clear the data up to the current column. */
+ for (i = 0; i < screen->cursor_current.col; i++) {
+ pcell = &g_array_index(rowdata, struct vte_charcell, i);
+ if (pcell != NULL) {
+ pcell->c = ' ';
+ pcell->columns = 1;
+ }
+ }
+ /* Repaint this row. */
+ delta = screen->delta;
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ screen->cursor_current.row - delta, 1);
+ }
+}
+
+/* Clear below the current line. */
+static void
+vte_sequence_handler_cd(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GArray *rowdata;
+ long delta, i;
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ /* If the cursor is actually on the screen, clear data in the rows
+ * below the cursor. */
+ delta = screen->delta;
+ for (i = screen->cursor_current.row + 1;
+ i < screen->row_data->len;
+ i++) {
+ /* Get the data for the row we're removing. */
+ rowdata = g_array_index(screen->row_data, GArray*, i);
+ /* Remove it. */
+ while ((rowdata != NULL) && (rowdata->len > 0)) {
+ g_array_remove_index(rowdata, rowdata->len - 1);
+ }
+ /* Repaint this row. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ i - delta, 1);
+ }
+}
+
+/* Clear from the cursor position to the end of the line. */
+static void
+vte_sequence_handler_ce(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GArray *rowdata;
+ long delta;
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ /* If the cursor is actually on the screen, clear data in the row
+ * which corresponds to the cursor. */
+ delta = screen->delta;
+ if (screen->row_data->len > screen->cursor_current.row) {
+ /* Get the data for the row which the cursor points to. */
+ rowdata = g_array_index(screen->row_data, GArray*,
+ screen->cursor_current.row);
+ /* Remove the data at the end of the array. */
+ while (rowdata->len > screen->cursor_current.col) {
+ g_array_remove_index(rowdata, rowdata->len - 1);
+ }
+ /* Repaint this row. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ screen->cursor_current.row - delta, 1);
+ }
+}
+
+/* Move the cursor to the given column (horizontal position). */
+static void
+vte_sequence_handler_ch(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ struct _VteScreen *screen;
+ GValue *value;
+ long delta;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ delta = screen->delta;
+ /* Repaint the current cursor position. */
+ vte_invalidate_cells(terminal,
+ screen->cursor_current.col, 1,
+ screen->cursor_current.row - delta, 1);
+ /* 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 and repaint it. */
+ screen->cursor_current.col = g_value_get_long(value);
+ vte_invalidate_cells(terminal,
+ screen->cursor_current.col,
+ 1,
+ screen->cursor_current.row - delta,
+ 1);
+ }
+ }
+}
+
+/* Clear the screen and home the cursor. */
+static void
+vte_sequence_handler_cl(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ vte_sequence_handler_clear_screen(terminal, NULL, 0, NULL);
+ vte_sequence_handler_ho(terminal, NULL, 0, NULL);
+}
+
+/* Move the cursor to the given position. */
+static void
+vte_sequence_handler_cm(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GValue *row, *col;
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ /* We need at least two parameters. */
+ if ((params != NULL) && (params->n_values >= 2)) {
+ /* The first is the row, the second is the column. */
+ row = g_value_array_get_nth(params, 0);
+ col = g_value_array_get_nth(params, 1);
+ if (G_VALUE_HOLDS_LONG(row) &&
+ G_VALUE_HOLDS_LONG(col)) {
+ screen->cursor_current.row = g_value_get_long(row) +
+ screen->delta;
+ screen->cursor_current.col = g_value_get_long(col);
+ }
+ }
+}
+
+/* Clear from the current line. */
+static void
+vte_sequence_handler_clear_current_line(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GArray *rowdata;
+ long delta;
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ /* If the cursor is actually on the screen, clear data in the row
+ * which corresponds to the cursor. */
+ delta = screen->delta;
+ if (screen->row_data->len > screen->cursor_current.row) {
+ /* Get the data for the row which the cursor points to. */
+ rowdata = g_array_index(screen->row_data, GArray*,
+ screen->cursor_current.row);
+ /* Remove it. */
+ while (rowdata->len > 0) {
+ g_array_remove_index(rowdata, rowdata->len - 1);
+ }
+ /* Repaint this row. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ screen->cursor_current.row - delta, 1);
+ }
+}
+
+/* Carriage return. */
+static void
+vte_sequence_handler_cr(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->cursor_current.col = 0;
+}
+
+/* Restrict scrolling and updates to a subset of the visible lines. */
+static void
+vte_sequence_handler_cs(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ long start, end, rows;
+ GValue *value;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ /* We require two parameters. */
+ if ((params == NULL) || (params->n_values < 2)) {
+ terminal->screen->scrolling_restricted = FALSE;
+ return;
+ }
+ /* Extract the two values. */
+ value = g_value_array_get_nth(params, 0);
+ start = g_value_get_long(value);
+ value = g_value_array_get_nth(params, 1);
+ end = g_value_get_long(value);
+ /* Set the right values. */
+ terminal->screen->scrolling_region.start = start;
+ terminal->screen->scrolling_region.end = end;
+ terminal->screen->scrolling_restricted = TRUE;
+ /* Special case -- run wild, run free. */
+ rows = terminal->row_count;
+ if ((terminal->screen->scrolling_region.start == 0) &&
+ (terminal->screen->scrolling_region.end == rows - 1)) {
+ terminal->screen->scrolling_restricted = FALSE;
+ }
+}
+
+/* Move the cursor to the given row (vertical position). */
+static void
+vte_sequence_handler_cv(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ struct _VteScreen *screen;
+ GValue *value;
+ long delta;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ delta = screen->delta;
+ /* Repaint the current cursor position. */
+ vte_invalidate_cells(terminal,
+ screen->cursor_current.col, 1,
+ screen->cursor_current.row - delta, 1);
+ /* 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 and repaint it. */
+ screen->cursor_current.row = g_value_get_long(value);
+ vte_invalidate_cells(terminal,
+ screen->cursor_current.col,
+ 1,
+ screen->cursor_current.row - delta,
+ 1);
+ }
+ }
+}
+
+/* Delete a line at the current cursor position. */
+static void
+vte_sequence_handler_dl(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ struct _VteScreen *screen;
+ long end;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ if (screen->scrolling_restricted) {
+ end = screen->delta + screen->scrolling_region.end;
+ } else {
+ end = screen->delta + terminal->row_count - 1;
+ }
+ vte_remove_line_int(terminal, screen->cursor_current.row);
+ vte_insert_line_int(terminal, end);
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ 0, terminal->row_count);
+}
+
+/* Delete N lines at the current cursor position. */
+static void
+vte_sequence_handler_DL(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ vte_sequence_handler_multiple(terminal, match, match_quark, params,
+ vte_sequence_handler_dl);
+}
+
+/* Scroll forward. */
+static void
+vte_sequence_handler_do(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GtkWidget *widget;
+ long delta, rows, col, row, start, end;
+ struct _VteScreen *screen;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ widget = GTK_WIDGET(terminal);
+ screen = terminal->screen;
+
+ delta = screen->delta;
+ start = screen->scrolling_region.start + delta;
+ end = screen->scrolling_region.end + delta;
+ col = screen->cursor_current.col;
+ row = screen->cursor_current.row;
+
+ if (screen->scrolling_restricted) {
+ if (row == end) {
+ /* If we're at the end of the scrolling region, add a
+ * line at the bottom to scroll the top off. */
+ vte_remove_line_int(terminal, start);
+ vte_insert_line_int(terminal, end);
+ /* Invalidate the rows the cursor was on and is on. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ start - delta, end - start + 1);
+ } else {
+ /* Otherwise, just move the cursor down. */
+ screen->cursor_current.row++;
+ /* Invalidate the rows the cursor was on and is on. */
+ vte_invalidate_cells(terminal,
+ col, 1,
+ row - delta, 2);
+ }
+ } else {
+ /* Move the cursor down. */
+ screen->cursor_current.row++;
+
+ /* Make sure that the bottom row is visible. This usually
+ * causes the top row to become a history row. */
+ rows = MAX(screen->row_data->len,
+ screen->cursor_current.row + 1);
+ delta = MAX(0, rows - terminal->row_count);
+
+ /* Invalidate the cells the cursor was on and is on. */
+ vte_invalidate_cells(terminal,
+ col, 1,
+ row - delta, 2);
+
+ /* Update scroll bar adjustments. */
+ vte_terminal_adjust_adjustments(terminal);
+
+ /* Keep the cursor on-screen. */
+ if (floor(gtk_adjustment_get_value(terminal->adjustment)) != delta) {
+ gtk_adjustment_set_value(terminal->adjustment, delta);
+ }
+ }
+}
+
+/* Cursor down. */
+static void
+vte_sequence_handler_DO(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ vte_sequence_handler_multiple(terminal, match, match_quark, params,
+ vte_sequence_handler_do);
+}
+
+/* End insert mode. */
+static void
+vte_sequence_handler_ei(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->insert = FALSE;
+}
+
+/* Move the cursor to the home position. */
+static void
+vte_sequence_handler_ho(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ screen->cursor_current.row = screen->delta;
+ screen->cursor_current.col = 0;
+}
+
+/* Begin insert mode. */
+static void
+vte_sequence_handler_im(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->insert = TRUE;
+}
+
+/* Cursor left. */
+static void
+vte_sequence_handler_le(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ screen->cursor_current.col = MAX(0, screen->cursor_current.col - 1);
+ vte_invalidate_cells(terminal,
+ screen->cursor_current.col, 2,
+ screen->cursor_current.row, 1);
+}
+
+/* Move the cursor left N columns. */
+static void
+vte_sequence_handler_LE(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ vte_sequence_handler_multiple(terminal, match, match_quark, params,
+ vte_sequence_handler_le);
+}
+
+/* Blink on. */
+static void
+vte_sequence_handler_mb(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->defaults.blink = 1;
+}
+
+/* Bold on. */
+static void
+vte_sequence_handler_md(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->defaults.bold = 1;
+}
+
+/* End modes. */
+static void
+vte_sequence_handler_me(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->defaults.blink = 0;
+ terminal->screen->defaults.half = 0;
+ terminal->screen->defaults.invisible = 0;
+ terminal->screen->defaults.reverse = 0;
+ terminal->screen->defaults.underline = 0;
+ terminal->screen->defaults.bold = 0;
+ terminal->screen->defaults.standout = 0;
+}
+
+/* Invisible on. */
+static void
+vte_sequence_handler_mk(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->defaults.invisible = 1;
+}
+
+/* Reverse on. */
+static void
+vte_sequence_handler_mr(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->defaults.reverse = 1;
+}
+
+/* Cursor right. */
+static void
+vte_sequence_handler_nd(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ screen->cursor_current.col++;
+}
+
+/* Restore cursor (position). */
+static void
+vte_sequence_handler_rc(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ screen->cursor_current.col = screen->cursor_saved.col;
+ screen->cursor_current.row = screen->cursor_saved.row + screen->delta;
+}
+
+/* Cursor right N characters. */
+static void
+vte_sequence_handler_RI(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ vte_sequence_handler_multiple(terminal, match, match_quark, params,
+ vte_sequence_handler_nd);
+}
+
+/* Save cursor (position). */
+static void
+vte_sequence_handler_sc(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ screen->cursor_saved.col = screen->cursor_current.col;
+ screen->cursor_saved.row = screen->cursor_current.row - screen->delta;
+}
+
+/* Standout end. */
+static void
+vte_sequence_handler_se(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->defaults.standout = 0;
+}
+
+/* Standout start. */
+static void
+vte_sequence_handler_so(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->defaults.standout = 1;
+}
+
+/* Tab. FIXME: implement custom tabstop setting and the whole nine yards. */
+static void
+vte_sequence_handler_ta(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ long newcol;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ /* Invalidate the cell the cursor is in. */
+ vte_invalidate_cells(terminal,
+ terminal->screen->cursor_current.col, 1,
+ terminal->screen->cursor_current.row, 1);
+ /* Calculate which column is the next tab stop. */
+ newcol = terminal->screen->cursor_current.col;
+ do {
+ newcol++;
+ } while ((newcol % VTE_TAB_WIDTH) != 0);
+ /* Wrap to the next line if need be. */
+ if (newcol >= terminal->column_count) {
+ terminal->screen->cursor_current.col = 0;
+ vte_sequence_handler_do(terminal, match, match_quark, params);
+ } else {
+ terminal->screen->cursor_current.col = newcol;
+ }
+ /* Invalidate the cell the cursor is in. */
+ vte_invalidate_cells(terminal,
+ terminal->screen->cursor_current.col, 1,
+ terminal->screen->cursor_current.row, 1);
+}
+
+/* Underline end. */
+static void
+vte_sequence_handler_ue(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->defaults.underline = 0;
+}
+
+/* Cursor up, scrolling if need be. */
+static void
+vte_sequence_handler_up(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GtkWidget *widget;
+ long delta, col, row, start, end;
+ struct _VteScreen *screen;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ widget = GTK_WIDGET(terminal);
+ screen = terminal->screen;
+
+ delta = screen->delta;
+ col = screen->cursor_current.col;
+ row = screen->cursor_current.row;
+
+ if (screen->scrolling_restricted) {
+ start = screen->scrolling_region.start + delta;
+ end = screen->scrolling_region.end + delta;
+ if (row == start) {
+ /* If we're at the top of the scrolling region, add a
+ * line at the top to scroll the bottom off. */
+ vte_remove_line_int(terminal, end);
+ vte_insert_line_int(terminal, start);
+ /* Invalidate the scrolling region. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ start - delta, end - start + 1);
+ } else {
+ /* Otherwise, just move the cursor up. */
+ screen->cursor_current.row--;
+ row = screen->cursor_current.row;
+ /* Invalidate the cells the cursor was in and is in. */
+ vte_invalidate_cells(terminal,
+ col, 1,
+ row - delta, 2);
+ }
+ } else {
+ start = delta;
+ end = delta + terminal->row_count - 1;
+ if (row == start) {
+ /* Insert a blank line and remove one from the bottom,
+ * to simulate a proper scroll without screwing up the
+ * history. */
+ vte_remove_line_int(terminal, end);
+ vte_insert_line_int(terminal, start);
+ /* We need to redraw everything here. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ 0, terminal->row_count);
+ } else {
+ /* Move the cursor up. */
+ screen->cursor_current.row--;
+ row = screen->cursor_current.row;
+ /* Invalidate the places the cursor is and was. */
+ vte_invalidate_cells(terminal,
+ col, 1,
+ row - delta, 2);
+ }
+ }
+}
+
+/* Cursor up. */
+static void
+vte_sequence_handler_UP(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ vte_sequence_handler_multiple(terminal, match, match_quark, params,
+ vte_sequence_handler_up);
+}
+
+/* Underline start. */
+static void
+vte_sequence_handler_us(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->defaults.underline = 1;
+}
+
+/* Cursor invisible. */
+static void
+vte_sequence_handler_vi(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->cursor_visible = FALSE;
+}
+
+/* Cursor standout. */
+static void
+vte_sequence_handler_vs(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->screen->cursor_visible = TRUE;
+}
+
+/* Handle ANSI color setting and related stuffs (SGR). */
+static void
+vte_sequence_handler_character_attributes(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ unsigned int i;
+ GValue *value;
+ long param;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ /* 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->screen->defaults.bold = 1;
+ break;
+ case 4:
+ terminal->screen->defaults.underline = 1;
+ break;
+ case 5:
+ terminal->screen->defaults.blink = 1;
+ break;
+ case 7:
+ terminal->screen->defaults.reverse = 1;
+ break;
+ case 8:
+ terminal->screen->defaults.invisible = 1;
+ break;
+ case 21: /* one of these is the linux console */
+ case 22: /* one of these is ecma, i forget which */
+ terminal->screen->defaults.bold = 0;
+ break;
+ case 24:
+ terminal->screen->defaults.underline = 0;
+ break;
+ case 25:
+ terminal->screen->defaults.blink = 0;
+ break;
+ case 27:
+ terminal->screen->defaults.reverse = 0;
+ break;
+ case 28:
+ terminal->screen->defaults.invisible = 0;
+ break;
+ case 30:
+ case 31:
+ case 32:
+ case 33:
+ case 34:
+ case 35:
+ case 36:
+ case 37:
+ terminal->screen->defaults.fore = param - 30;
+ break;
+ case 38:
+ /* default foreground, underscore */
+ terminal->screen->defaults.fore = 7;
+ terminal->screen->defaults.underline = 1;
+ break;
+ case 39:
+ /* default foreground, no underscore */
+ terminal->screen->defaults.fore = 7;
+ terminal->screen->defaults.underline = 0;
+ break;
+ case 40:
+ case 41:
+ case 42:
+ case 43:
+ case 44:
+ case 45:
+ case 46:
+ case 47:
+ terminal->screen->defaults.back = param - 40;
+ break;
+ case 49:
+ /* default background */
+ terminal->screen->defaults.back = 0;
+ break;
+ case 90:
+ case 91:
+ case 92:
+ case 93:
+ case 94:
+ case 95:
+ case 96:
+ case 97:
+ terminal->screen->defaults.fore = param - 90;
+ break;
+ case 100:
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ terminal->screen->defaults.back = param - 100;
+ break;
+ }
+ }
+ /* If we had no parameters, default to the defaults. */
+ if (i == 0) {
+ vte_terminal_set_default_attributes(terminal);
+ }
+}
+
+/* Clear above the current line. */
+static void
+vte_sequence_handler_clear_above_current(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GArray *rowdata;
+ long delta, i;
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ /* If the cursor is actually on the screen, clear data in the row
+ * which corresponds to the cursor. */
+ delta = screen->delta;
+ for (i = delta; i < screen->cursor_current.row; i++) {
+ if (screen->row_data->len > i) {
+ /* Get the data for the row we're erasing. */
+ rowdata = g_array_index(screen->row_data, GArray*, i);
+ /* Remove it. */
+ while (rowdata->len > 0) {
+ g_array_remove_index(rowdata, rowdata->len - 1);
+ }
+ /* Repaint this row. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ i - delta, 1);
+ }
+ }
+}
+
+/* Clear the entire screen. */
+static void
+vte_sequence_handler_clear_screen(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GArray *rowdata;
+ long delta, i;
+ struct _VteScreen *screen;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->screen;
+ /* If the cursor is actually on the screen, clear data in the row
+ * which corresponds to the cursor. */
+ delta = screen->delta;
+ for (i = delta; i < delta + terminal->row_count; i++) {
+ if (screen->row_data->len > i) {
+ /* Get the data for the row we're removing. */
+ rowdata = g_array_index(screen->row_data, GArray*, i);
+ /* Remove it. */
+ while (rowdata->len > 0) {
+ g_array_remove_index(rowdata, rowdata->len - 1);
+ }
+ /* Repaint this row. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ i - delta, 1);
+ }
+ }
+}
+
+/* Move the cursor to the given position, 1-based. */
+static void
+vte_sequence_handler_cursor_position(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ vte_sequence_handler_offset(terminal, match, match_quark, params,
+ -1, vte_sequence_handler_cm);
+}
+
+/* Set icon/window titles. */
+static void
+vte_sequence_handler_set_icon_title(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GValue *value;
+ iconv_t conv;
+ char buf[LINE_MAX];
+ char *inbuf, *outbuf;
+ size_t inbuf_len, outbuf_len;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ /* 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. */
+ snprintf(buf, sizeof(buf), "%ld",
+ g_value_get_long(value));
+ } else
+ if (G_VALUE_HOLDS_STRING(value)) {
+ /* Copy the string into the buffer. */
+ snprintf(buf, sizeof(buf), "%s",
+ g_value_get_string(value));
+ } else
+ if (G_VALUE_HOLDS_POINTER(value)) {
+ /* Convert the wide-character string into a
+ * multibyte string. */
+ conv = iconv_open("UTF-8", "WCHAR_T");
+ inbuf = g_value_get_pointer(value);
+ inbuf_len = wcslen((wchar_t*)inbuf) * sizeof(wchar_t);
+ memset(buf, 0, sizeof(buf));
+ outbuf = buf;
+ outbuf_len = sizeof(buf) - 1;
+ if (iconv(conv, &inbuf, &inbuf_len,
+ &outbuf, &outbuf_len) == -1) {
+ memset(buf, 0, sizeof(buf));
+ }
+ } else {
+ return;
+ }
+ /* Emit the signal, passing the string. */
+ g_signal_emit_by_name(terminal, "set_icon_title", buf);
+ }
+}
+static void
+vte_sequence_handler_set_window_title(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GValue *value;
+ iconv_t conv;
+ char buf[LINE_MAX];
+ char *inbuf, *outbuf;
+ size_t inbuf_len, outbuf_len;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ /* 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. */
+ snprintf(buf, sizeof(buf), "%ld",
+ g_value_get_long(value));
+ } else
+ if (G_VALUE_HOLDS_STRING(value)) {
+ /* Copy the string into the buffer. */
+ snprintf(buf, sizeof(buf), "%s",
+ g_value_get_string(value));
+ } else
+ if (G_VALUE_HOLDS_POINTER(value)) {
+ /* Convert the wide-character string into a
+ * multibyte string. */
+ conv = iconv_open("UTF-8", "WCHAR_T");
+ inbuf = g_value_get_pointer(value);
+ inbuf_len = wcslen((wchar_t*)inbuf) * sizeof(wchar_t);
+ memset(buf, 0, sizeof(buf));
+ outbuf = buf;
+ outbuf_len = sizeof(buf) - 1;
+ if (iconv(conv, &inbuf, &inbuf_len,
+ &outbuf, &outbuf_len) == -1) {
+ memset(buf, 0, sizeof(buf));
+ }
+ iconv_close(conv);
+ } else {
+ return;
+ }
+ /* Emit the signal, passing the string. */
+ g_signal_emit_by_name(terminal, "set_window_title", buf);
+ }
+}
+
+/* Set both the window and icon titles to the same string. */
+static void
+vte_sequence_handler_set_icon_and_window_title(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ vte_sequence_handler_set_icon_title(terminal, match,
+ match_quark, params);
+ vte_sequence_handler_set_window_title(terminal, match,
+ match_quark, params);
+}
+
+/* Restrict the scrolling region. */
+static void
+vte_sequence_handler_set_scrolling_region(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ vte_sequence_handler_offset(terminal, match, match_quark, params,
+ -1, vte_sequence_handler_cs);
+}
+
+/* Manipulate certain terminal attributes. */
+static void
+vte_sequence_handler_decset_internal(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params,
+ gboolean set)
+{
+ GValue *value;
+ long param;
+ int 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;
+ }
+ param = g_value_get_long(value);
+ switch (param) {
+ case 1:
+ /* Set the application keypad. */
+ terminal->keypad = set ?
+ VTE_KEYPAD_NORMAL :
+ VTE_KEYPAD_APPLICATION;
+ break;
+ case 2:
+ /* FIXME: reset alternate character sets to
+ * ASCII. */
+ break;
+ case 3:
+ /* FIXME: set 132 (reset to 80) column mode. */
+ break;
+ case 4:
+ /* FIXME: set or unset smooth-scrolling. */
+ break;
+ case 5:
+ /* normal or reverse video. */
+ terminal->screen->defaults.reverse = set;
+ break;
+ case 6:
+ /* FIXME: origin or normal cursor mode. */
+ break;
+ case 7:
+ /* FIXME: set or unset wraparound mode. */
+ break;
+ case 8:
+ /* FIXME: set or unset autorepeat keys. */
+ break;
+ case 9:
+ /* FIXME: send mouse X and Y on button. */
+ break;
+ case 38:
+ /* FIXME: Tektronix/Xterm mode. */
+ break;
+ case 40:
+ /* FIXME: Allow/disallow 80/132 column mode. */
+ break;
+ case 41:
+ /* FIXME: more(1) fix. */
+ break;
+ case 44:
+ /* FIXME: set/unset margin bell. */
+ break;
+ case 45:
+ /* FIXME: set/unset reverse-wraparound mode. */
+ break;
+ case 46:
+ /* FIXME(?): enable/disable logging. */
+ break;
+ case 47:
+ /* Set or restore alternate screen. */
+ terminal->screen = set ?
+ &terminal->alternate_screen :
+ &terminal->normal_screen;
+ /* Force the screen to be redrawn. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ 0, terminal->row_count);
+ /* Fixup the scrollbars. */
+ vte_terminal_adjust_adjustments(terminal);
+ break;
+ case 1000:
+ /* FIXME: send mouse X and Y on press and
+ * release. */
+ break;
+ case 1001:
+ /* FIXME: use (or not) hilite mouse tracking. */
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+/* Set the application or normal keypad. */
+static void
+vte_sequence_handler_application_keypad(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->keypad = VTE_KEYPAD_APPLICATION;
+}
+
+static void
+vte_sequence_handler_normal_keypad(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->keypad = VTE_KEYPAD_NORMAL;
+}
+
+/* Set certain terminal attributes. */
+static void
+vte_sequence_handler_decset(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ vte_sequence_handler_decset_internal(terminal, match, match_quark,
+ params, TRUE);
+}
+
+/* Unset certain terminal attributes. */
+static void
+vte_sequence_handler_decreset(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ vte_sequence_handler_decset_internal(terminal, match, match_quark,
+ params, FALSE);
+}
+
+/* Erase certain lines in the display. */
+static void
+vte_sequence_handler_erase_in_display(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GValue *value;
+ long param;
+ int 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, 0, NULL);
+ break;
+ case 1:
+ /* Clear above the current line. */
+ vte_sequence_handler_clear_above_current(terminal,
+ NULL,
+ 0,
+ NULL);
+ break;
+ case 2:
+ /* Clear the entire screen. */
+ vte_sequence_handler_clear_screen(terminal,
+ NULL,
+ 0,
+ NULL);
+ break;
+ default:
+ break;
+ }
+}
+
+/* Erase certain parts of the current line in the display. */
+static void
+vte_sequence_handler_erase_in_line(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GValue *value;
+ long param;
+ int 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, 0, NULL);
+ break;
+ case 1:
+ /* Clear to start of the line. */
+ vte_sequence_handler_cb(terminal, NULL, 0, NULL);
+ break;
+ case 2:
+ /* Clear the entire line. */
+ vte_sequence_handler_clear_current_line(terminal,
+ NULL, 0, NULL);
+ break;
+ default:
+ break;
+ }
+}
+
+/* Insert a certain number of lines below the current cursor. */
+static void
+vte_sequence_handler_insert_lines(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GValue *value;
+ struct _VteScreen *screen;
+ long param, delta, end, row;
+ int i;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->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);
+ param = g_value_get_long(value);
+ }
+ delta = screen->delta;
+ row = screen->cursor_current.row;
+ end = screen->scrolling_region.end + screen->delta;
+ /* Insert the new lines at the cursor. */
+ for (i = 0; i < param; i++) {
+ /* Clear lines off the bottom of the scrolling region. */
+ if (screen->scrolling_restricted) {
+ /* Clear a line off the end of the region. */
+ vte_remove_line_int(terminal, end);
+ }
+ vte_insert_line_int(terminal, row);
+ }
+ /* Refresh the modified area. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ row - delta, end - row + 1);
+}
+
+/* Delete certain lines from the scrolling region. */
+static void
+vte_sequence_handler_delete_lines(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ GValue *value;
+ struct _VteScreen *screen;
+ long param, delta, end, row;
+ int i;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ screen = terminal->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);
+ param = g_value_get_long(value);
+ }
+ /* Clear the lines which we need to clear. */
+ delta = screen->delta;
+ row = screen->cursor_current.row;
+ end = screen->delta + screen->scrolling_region.end;
+ /* Clear them from below the current cursor. */
+ for (i = 0; i < param; i++) {
+ /* Insert any new empty lines. */
+ if (screen->scrolling_restricted) {
+ vte_insert_line_int(terminal, end);
+ }
+ /* Remove the line at the top of the area. */
+ vte_remove_line_int(terminal, row);
+ }
+ /* Refresh the modified area. */
+ vte_invalidate_cells(terminal,
+ 0, terminal->column_count,
+ row - delta, end - row + 1);
+}
+
+/* Index. Move the cursor down a row, and if it's in a scrolling region,
+ * scroll to keep it on the screen. */
+static void
+vte_sequence_handler_index(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ vte_sequence_handler_DO(terminal, match, match_quark, params);
+}
+
+/* Reverse index. Move the cursor up a row, and if it's in a scrolling
+ * region, scroll to keep it on the screen. */
+static void
+vte_sequence_handler_reverse_index(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ vte_sequence_handler_UP(terminal, match, match_quark, params);
+}
+
+/* Set the terminal encoding. */
+static void
+vte_sequence_handler_iso8859_1(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ vte_terminal_set_encoding(terminal, "ISO-8859-1");
+}
+
+static void
+vte_sequence_handler_utf_8(VteTerminal *terminal,
+ const char *match,
+ GQuark match_quark,
+ GValueArray *params)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ vte_terminal_set_encoding(terminal, "UTF-8");
+}
+
+/* The table of handlers. Primarily used at initialization time. */
+static struct {
+ const char *code;
+ VteTerminalSequenceHandler handler;
+} vte_sequence_handlers[] = {
+ {"!1", NULL},
+ {"!2", NULL},
+ {"!3", NULL},
+
+ {"#1", NULL},
+ {"#2", NULL},
+ {"#3", NULL},
+ {"#4", NULL},
+
+ {"%1", NULL},
+ {"%2", NULL},
+ {"%3", NULL},
+ {"%4", NULL},
+ {"%5", NULL},
+ {"%6", NULL},
+ {"%7", NULL},
+ {"%8", NULL},
+ {"%9", NULL},
+ {"%a", NULL},
+ {"%b", NULL},
+ {"%c", NULL},
+ {"%d", NULL},
+ {"%e", NULL},
+ {"%f", NULL},
+ {"%g", NULL},
+ {"%h", NULL},
+ {"%i", NULL},
+ {"%j", NULL},
+
+ {"&0", NULL},
+ {"&1", NULL},
+ {"&2", NULL},
+ {"&3", NULL},
+ {"&4", NULL},
+ {"&5", NULL},
+ {"&6", NULL},
+ {"&7", NULL},
+ {"&8", NULL},
+ {"&9", NULL},
+
+ {"*0", NULL},
+ {"*1", NULL},
+ {"*2", NULL},
+ {"*3", NULL},
+ {"*4", NULL},
+ {"*5", NULL},
+ {"*6", NULL},
+ {"*7", NULL},
+ {"*8", NULL},
+ {"*9", NULL},
+
+ {"@0", NULL},
+ {"@1", NULL},
+ {"@2", NULL},
+ {"@3", NULL},
+ {"@4", NULL},
+ {"@5", NULL},
+ {"@6", NULL},
+ {"@7", NULL},
+ {"@8", NULL},
+ {"@9", NULL},
+
+ {"al", vte_sequence_handler_al},
+ {"AL", vte_sequence_handler_AL},
+ {"ac", NULL},
+ {"ae", NULL},
+ {"as", NULL},
+
+ {"bc", NULL},
+ {"bl", vte_sequence_handler_bl},
+ {"bt", NULL},
+
+ {"cb", vte_sequence_handler_cb},
+ {"cc", NULL},
+ {"cd", vte_sequence_handler_cd},
+ {"ce", vte_sequence_handler_ce},
+ {"ch", vte_sequence_handler_ch},
+ {"cl", vte_sequence_handler_cl},
+ {"cm", vte_sequence_handler_cm},
+ {"cr", vte_sequence_handler_cr},
+ {"cs", vte_sequence_handler_cs},
+ {"ct", NULL},
+ {"cv", vte_sequence_handler_cv},
+
+ {"dc", NULL},
+ {"DC", NULL},
+ {"dl", vte_sequence_handler_dl},
+ {"DL", vte_sequence_handler_DL},
+ {"dm", NULL},
+ {"do", vte_sequence_handler_do},
+ {"DO", vte_sequence_handler_DO},
+ {"ds", NULL},
+
+ {"eA", NULL},
+ {"ec", NULL},
+ {"ed", NULL},
+ {"ei", vte_sequence_handler_ei},
+
+ {"ff", NULL},
+ {"fs", NULL},
+ {"F1", NULL},
+ {"F2", NULL},
+ {"F3", NULL},
+ {"F4", NULL},
+ {"F5", NULL},
+ {"F6", NULL},
+ {"F7", NULL},
+ {"F8", NULL},
+ {"F9", NULL},
+ {"FA", NULL},
+ {"FB", NULL},
+ {"FC", NULL},
+ {"FD", NULL},
+ {"FE", NULL},
+ {"FF", NULL},
+ {"FG", NULL},
+ {"FH", NULL},
+ {"FI", NULL},
+ {"FJ", NULL},
+ {"FK", NULL},
+ {"FL", NULL},
+ {"FM", NULL},
+ {"FN", NULL},
+ {"FO", NULL},
+ {"FP", NULL},
+ {"FQ", NULL},
+ {"FR", NULL},
+ {"FS", NULL},
+ {"FT", NULL},
+ {"FU", NULL},
+ {"FV", NULL},
+ {"FW", NULL},
+ {"FX", NULL},
+ {"FY", NULL},
+ {"FZ", NULL},
+
+ {"Fa", NULL},
+ {"Fb", NULL},
+ {"Fc", NULL},
+ {"Fd", NULL},
+ {"Fe", NULL},
+ {"Ff", NULL},
+ {"Fg", NULL},
+ {"Fh", NULL},
+ {"Fi", NULL},
+ {"Fj", NULL},
+ {"Fk", NULL},
+ {"Fl", NULL},
+ {"Fm", NULL},
+ {"Fn", NULL},
+ {"Fo", NULL},
+ {"Fp", NULL},
+ {"Fq", NULL},
+ {"Fr", NULL},
+
+ {"hd", NULL},
+ {"ho", vte_sequence_handler_ho},
+ {"hu", NULL},
+
+ {"i1", NULL},
+ {"i3", NULL},
+
+ {"is", NULL},
+ {"ic", NULL},
+ {"IC", NULL},
+ {"if", NULL},
+ {"im", vte_sequence_handler_im},
+ {"ip", NULL},
+ {"iP", NULL},
+
+ {"K1", NULL},
+ {"K2", NULL},
+ {"K3", NULL},
+ {"K4", NULL},
+ {"K5", NULL},
+
+ {"k0", NULL},
+ {"k1", NULL},
+ {"k2", NULL},
+ {"k3", NULL},
+ {"k4", NULL},
+ {"k5", NULL},
+ {"k6", NULL},
+ {"k7", NULL},
+ {"k8", NULL},
+ {"k9", NULL},
+ {"k;", NULL},
+ {"ka", NULL},
+ {"kA", NULL},
+ {"kb", NULL},
+ {"kB", NULL},
+ {"kC", NULL},
+ {"kd", NULL},
+ {"kD", NULL},
+ {"ke", NULL},
+ {"kE", NULL},
+ {"kF", NULL},
+ {"kh", NULL},
+ {"kH", NULL},
+ {"kI", NULL},
+ {"kl", NULL},
+ {"kL", NULL},
+ {"kM", NULL},
+ {"kN", NULL},
+ {"kP", NULL},
+ {"kr", NULL},
+ {"kR", NULL},
+ {"ks", NULL},
+ {"kS", NULL},
+ {"kt", NULL},
+ {"kT", NULL},
+ {"ku", NULL},
+
+ {"l0", NULL},
+ {"l1", NULL},
+ {"l2", NULL},
+ {"l3", NULL},
+ {"l4", NULL},
+ {"l5", NULL},
+ {"l6", NULL},
+ {"l7", NULL},
+ {"l8", NULL},
+ {"l9", NULL},
+
+ {"la", NULL},
+ {"le", vte_sequence_handler_le},
+ {"LE", vte_sequence_handler_LE},
+ {"LF", NULL},
+ {"ll", NULL},
+ {"LO", NULL},
+
+ {"mb", vte_sequence_handler_mb},
+ {"MC", NULL},
+ {"md", vte_sequence_handler_md},
+ {"me", vte_sequence_handler_me},
+ {"mh", NULL},
+ {"mk", vte_sequence_handler_mk},
+ {"ML", NULL},
+ {"mm", NULL},
+ {"mo", NULL},
+ {"mp", NULL},
+ {"mr", vte_sequence_handler_mr},
+ {"MR", NULL},
+
+ {"nd", NULL},
+ {"nw", NULL},
+
+ {"pc", NULL},
+ {"pf", NULL},
+ {"pk", NULL},
+ {"pl", NULL},
+ {"pn", NULL},
+ {"po", NULL},
+ {"pO", NULL},
+ {"ps", NULL},
+ {"px", NULL},
+
+ {"r1", NULL},
+ {"r2", NULL},
+ {"r3", NULL},
+
+ {"..rp", NULL},
+ {"RA", NULL},
+ {"rc", vte_sequence_handler_rc},
+ {"rf", NULL},
+ {"RF", NULL},
+ {"RI", vte_sequence_handler_RI},
+ {"rp", NULL},
+ {"rP", NULL},
+ {"rs", NULL},
+ {"RX", NULL},
+
+ {"s0", NULL},
+ {"s1", NULL},
+ {"s2", NULL},
+ {"s3", NULL},
+
+ {"..sa", NULL},
+ {"sa", NULL},
+ {"SA", NULL},
+ {"sc", vte_sequence_handler_sc},
+ {"se", vte_sequence_handler_se},
+ {"sf", vte_sequence_handler_do},
+ {"SF", vte_sequence_handler_DO},
+ {"so", vte_sequence_handler_so},
+ {"sr", vte_sequence_handler_up},
+ {"SR", vte_sequence_handler_UP},
+ {"st", NULL},
+ {"SX", NULL},
+
+ {"ta", vte_sequence_handler_ta},
+ {"te", NULL},
+ {"ti", NULL},
+ {"ts", NULL},
+
+ {"uc", NULL},
+ {"ue", vte_sequence_handler_ue},
+ {"up", vte_sequence_handler_up},
+ {"UP", vte_sequence_handler_UP},
+ {"us", vte_sequence_handler_us},
+
+ {"vb", NULL},
+ {"ve", NULL},
+ {"vi", vte_sequence_handler_vi},
+ {"vs", vte_sequence_handler_vs},
+
+ {"wi", NULL},
+
+ {"XF", NULL},
+
+ {"character-attributes", vte_sequence_handler_character_attributes},
+
+ {"cursor-backward", vte_sequence_handler_le},
+ {"cursor-forward", vte_sequence_handler_RI},
+ {"cursor-up", vte_sequence_handler_UP},
+ {"cursor-down", vte_sequence_handler_DO},
+ {"cursor-position", vte_sequence_handler_cursor_position},
+
+ {"set-icon-title",
+ vte_sequence_handler_set_icon_title},
+ {"set-window-title",
+ vte_sequence_handler_set_window_title},
+ {"set-icon-and-window-title",
+ vte_sequence_handler_set_icon_and_window_title},
+
+ {"application-keypad", vte_sequence_handler_application_keypad},
+ {"normal-keypad", vte_sequence_handler_normal_keypad},
+ {"decset", vte_sequence_handler_decset},
+ {"decreset", vte_sequence_handler_decreset},
+ {"save-cursor", vte_sequence_handler_sc},
+ {"restore-cursor", vte_sequence_handler_rc},
+ {"normal-keypad", vte_sequence_handler_normal_keypad},
+ {"application-keypad", vte_sequence_handler_application_keypad},
+ {"erase-in-display", vte_sequence_handler_erase_in_display},
+ {"erase-in-line", vte_sequence_handler_erase_in_line},
+ {"set-scrolling-region", vte_sequence_handler_set_scrolling_region},
+ {"insert-lines", vte_sequence_handler_insert_lines},
+ {"delete-lines", vte_sequence_handler_delete_lines},
+ {"index", vte_sequence_handler_index},
+ {"reverse-index", vte_sequence_handler_reverse_index},
+ {"iso8859-1-character-set", vte_sequence_handler_iso8859_1},
+ {"utf-8-character-set", vte_sequence_handler_utf_8},
+
+};
+
+/* Create the basic widget. This more or less creates and initializes a
+ * GtkWidget and clears out the rest of the data which is specific to our
+ * widget class. */
+GtkWidget *
+vte_terminal_new(void)
+{
+ return GTK_WIDGET(g_object_new(vte_terminal_get_type(), NULL));
+}
+
+/* Reset palette defaults for character colors. */
+static void
+vte_terminal_set_default_palette(VteTerminal *terminal)
+{
+ int i;
+ XColor color;
+ GtkWidget *widget;
+ Display *display;
+ GdkColormap *gcolormap;
+ Colormap colormap;
+ int bright, red, green, blue;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ if (terminal->palette_initialized) {
+ return;
+ }
+ memset(&color, 0, sizeof(color));
+
+ widget = NULL;
+ display = NULL;
+ gcolormap = NULL;
+ colormap = 0;
+
+ /* Initialize each item in the palette. */
+ for (i = 0; i < G_N_ELEMENTS(terminal->palette); i++) {
+ /* Get X11 attributes used by GDK for the widget. */
+ if (widget == NULL) {
+ widget = GTK_WIDGET(terminal);
+ display = GDK_DISPLAY();
+ gcolormap = gtk_widget_get_colormap(widget);
+ colormap = gdk_x11_colormap_get_xcolormap(gcolormap);
+ }
+
+ /* Make the difference between normal and bright about three
+ * fourths of the total available brightness. */
+ bright = (i & 8) ? 0x3fff : 0;
+ blue = (i & 4) ? 0xc000 : 0;
+ green = (i & 2) ? 0xc000 : 0;
+ red = (i & 1) ? 0xc000 : 0;
+
+ /* Allocate a color from the colormap. */
+ color.pixel = i;
+ color.red = bright + red;
+ color.green = bright + green;
+ color.blue = bright + blue;
+
+ if (XAllocColor(display, colormap, &color)) {
+ terminal->palette[i] = color.pixel;
+ }
+ }
+ terminal->palette_initialized = TRUE;
+}
+
+/* Insert a single character into the stored data array. */
+static void
+vte_terminal_insert_char(GtkWidget *widget, wchar_t c)
+{
+ VteTerminal *terminal;
+ GArray *array;
+ struct vte_charcell cell, *pcell;
+ int columns, i;
+ long delta, col;
+ struct _VteScreen *screen;
+
+ g_return_if_fail(widget != NULL);
+ g_return_if_fail(VTE_IS_TERMINAL(widget));
+ terminal = VTE_TERMINAL(widget);
+ screen = terminal->screen;
+
+ /* Make sure we have enough rows to hold this data. */
+ while (screen->cursor_current.row >= screen->row_data->len) {
+ array = vte_new_row_data();
+ g_array_append_val(screen->row_data, array);
+ }
+
+ /* Get a handle on the array for the insertion row. */
+ array = g_array_index(screen->row_data,
+ GArray*,
+ screen->cursor_current.row);
+
+ /* Figure out how many columns this character should occupy. */
+ columns = wcwidth(c);
+
+ /* Read the deltas. */
+ delta = floor(gtk_adjustment_get_value(terminal->adjustment));
+
+ for (i = 0; i < columns; i++) {
+ col = terminal->screen->cursor_current.col;
+
+ /* Make sure we have enough columns in this row. */
+ if (array->len <= col) {
+ /* Add enough characters. */
+ memset(&cell, 0, sizeof(cell));
+ cell.c = ' ';
+ cell.columns = 1;
+ cell.fore = 7;
+ cell.back = 0;
+ while (array->len < col) {
+ g_array_append_val(array, cell);
+ }
+ /* Add one more cell to the end of the line to get
+ * it into the column, and use it. */
+ g_array_append_val(array, cell);
+ pcell = &g_array_index(array,
+ struct vte_charcell,
+ col);
+ } else {
+ /* If we're in insert mode, insert a new cell here
+ * and use it. */
+ if (screen->insert) {
+ memset(&cell, 0, sizeof(cell));
+ cell.c = ' ';
+ cell.columns = 1;
+ cell.fore = 7;
+ cell.back = 0;
+ g_array_insert_val(array, col, cell);
+ pcell = &g_array_index(array,
+ struct vte_charcell,
+ col);
+ } else {
+ /* We're in overtype mode, so use the existing
+ * character. */
+ pcell = &g_array_index(array,
+ struct vte_charcell,
+ col);
+ }
+ }
+
+ /* Initialize the character cell with the proper data. */
+ pcell->c = c;
+ pcell->columns = (i == 0) ? columns : 0;
+ pcell->fore = terminal->screen->defaults.fore;
+ pcell->back = terminal->screen->defaults.back;
+ pcell->reverse = terminal->screen->defaults.reverse;
+ pcell->invisible = terminal->screen->defaults.invisible;
+ pcell->half = terminal->screen->defaults.half;
+ pcell->underline = terminal->screen->defaults.underline;
+ pcell->bold = terminal->screen->defaults.bold;
+ pcell->standout = terminal->screen->defaults.standout;
+
+ /* Signal that this part of the window needs drawing. */
+ if (terminal->screen->insert) {
+ vte_invalidate_cells(terminal,
+ screen->cursor_current.col - 1,
+ terminal->column_count - screen->cursor_current.col + 1,
+ screen->cursor_current.row - delta,
+ 2);
+ } else {
+ vte_invalidate_cells(terminal,
+ screen->cursor_current.col - 1,
+ 3,
+ screen->cursor_current.row - delta,
+ 2);
+ }
+
+ /* And take a step to the to the right. We invalidated this
+ * part of the screen already, so no need to do it again. */
+ screen->cursor_current.col++;
+ }
+}
+
+static void
+display_control_sequence(const char *name, GValueArray *params)
+{
+ /* Display the control sequence with its parameters, to
+ * help me debug this thing. I don't have all of the
+ * sequences implemented yet. */
+ int i;
+ long l;
+ const char *s;
+ const wchar_t *w;
+ GValue *value;
+ fprintf(stderr, "%s(", name);
+ if (params != NULL) {
+ for (i = 0; i < params->n_values; i++) {
+ value = g_value_array_get_nth(params, i);
+ if (i > 0) {
+ fprintf(stderr, ", ");
+ }
+ if (G_VALUE_HOLDS_LONG(value)) {
+ l = g_value_get_long(value);
+ fprintf(stderr, "%ld", l);
+ } else
+ if (G_VALUE_HOLDS_STRING(value)) {
+ s = g_value_get_string(value);
+ fprintf(stderr, "\"%s\"", s);
+ } else
+ if (G_VALUE_HOLDS_POINTER(value)) {
+ w = g_value_get_pointer(value);
+ fprintf(stderr, "\"%ls\"", w);
+ }
+ }
+ }
+ fprintf(stderr, ")\n");
+}
+
+/* Handle a terminal control sequence and its parameters. */
+static void
+vte_terminal_handle_sequence(GtkWidget *widget,
+ const char *match_s,
+ GQuark match,
+ GValueArray *params)
+{
+ VteTerminal *terminal;
+ VteTerminalSequenceHandler handler;
+ long delta;
+ struct _VteScreen *screen;
+
+ g_return_if_fail(widget != NULL);
+ g_return_if_fail(VTE_IS_TERMINAL(widget));
+ terminal = VTE_TERMINAL(widget);
+ screen = terminal->screen;
+
+ /* Read the deltas. */
+ delta = floor(gtk_adjustment_get_value(terminal->adjustment));
+
+ /* Signal that the cursor's current position needs redrawing. */
+ vte_invalidate_cells(terminal,
+ screen->cursor_current.col - 1, 3,
+ screen->cursor_current.row - delta, 1);
+
+ /* Find the handler for this control sequence. */
+ handler = g_tree_lookup(terminal->sequences, GINT_TO_POINTER(match));
+#ifdef VTE_DEBUG
+ display_control_sequence(match_s, params);
+#endif
+ if (handler != NULL) {
+ /* Let the handler handle it. */
+ handler(terminal, match_s, match, params);
+ } else {
+ g_warning("No handler for control sequence `%s' defined.\n",
+ match_s);
+ }
+
+ /* We probably need to update the cursor's new position, too. */
+ vte_invalidate_cells(terminal,
+ screen->cursor_current.col - 1, 3,
+ screen->cursor_current.row - delta, 1);
+}
+
+/* Handle an EOF from the client. */
+static void
+vte_terminal_eof(gint source, gpointer data)
+{
+ VteTerminal *terminal;
+
+ g_return_if_fail(VTE_IS_TERMINAL(data));
+ terminal = VTE_TERMINAL(data);
+
+ /* Stop reading input. */
+ gtk_input_remove(source);
+ terminal->pty_input = -1;
+
+ /* Emit a signal that we read an EOF. */
+ g_signal_emit_by_name(terminal, "eof");
+}
+
+/* Read and handle data from the child. */
+static gboolean
+vte_terminal_io_read(GIOChannel *channel,
+ GdkInputCondition condition,
+ gpointer data)
+{
+ GValueArray *params;
+ VteTerminal *terminal;
+ GtkWidget *widget;
+ char *buf;
+ size_t bufsize;
+ char *inbuf, *outbuf;
+ size_t inbuf_len, outbuf_len;
+ wchar_t wbuf[LINE_MAX], c;
+ int i, j, wcount, bcount, fd;
+ const char *match;
+ GQuark quark;
+ gboolean leave_open = TRUE;
+
+ widget = GTK_WIDGET(data);
+ terminal = VTE_TERMINAL(data);
+
+ /* Allocate a buffer to hold both existing data and new data. */
+ bufsize = terminal->n_narrow_pending + LINE_MAX;
+ buf = g_malloc0(bufsize);
+ if (terminal->n_narrow_pending > 0) {
+ memcpy(buf, terminal->narrow_pending,
+ terminal->n_narrow_pending);
+ g_free(terminal->narrow_pending);
+ terminal->n_narrow_pending = 0;
+ }
+
+ /* Read some more data in. */
+ fd = g_io_channel_unix_get_fd(channel);
+ bcount = read(fd, buf + terminal->n_narrow_pending,
+ bufsize - terminal->n_narrow_pending);
+
+ /* Convert any read bytes into wide characters. FIXME: handle
+ * cases where the encoding changes mid-stream. */
+ if (bcount > 0) {
+ inbuf = buf;
+ inbuf_len = terminal->n_narrow_pending + bcount;
+ outbuf = (char*)wbuf;
+ outbuf_len = sizeof(wbuf);
+ if (iconv(terminal->pending_conv,
+ &inbuf, &inbuf_len,
+ &outbuf, &outbuf_len) != -1) {
+ /* Save the resulting bytes as the narrow pending data
+ * queue. */
+ terminal->n_narrow_pending = inbuf_len;
+ terminal->narrow_pending = g_malloc(inbuf_len);
+ memcpy(terminal->narrow_pending, inbuf, inbuf_len);
+ wcount = (outbuf - (char*)wbuf) / sizeof(wchar_t);
+ } else {
+ wcount = 0;
+ }
+ } else {
+ wcount = 0;
+ }
+
+ /* Add the read wchars to the pending array one at a time, then try
+ * to handle the entire array. */
+ terminal->pending = g_realloc(terminal->pending,
+ (terminal->n_pending + wcount) *
+ sizeof(wchar_t));
+ for (i = 0; i < wcount; i++) {
+ terminal->pending[terminal->n_pending] = wbuf[i];
+ terminal->n_pending++;
+ /* Check if the contents of the array is a control string or
+ * not. The match function returns NULL if the data is not
+ * a control sequence, the name of the control sequence if it
+ * is one, and an empty string if it might be the beginning of
+ * a control sequence. */
+ vte_trie_match(terminal->trie,
+ terminal->pending,
+ terminal->n_pending,
+ &match,
+ &quark,
+ &params);
+ if (match == NULL) {
+ /* No interesting stuff in the buffer, so dump the
+ * accumulated data out. */
+ for (j = 0; j < terminal->n_pending; j++) {
+ c = terminal->pending[j];
+#ifdef VTE_DEBUG
+ if (c > 127) {
+ fprintf(stderr, "%ld = ", (long) c);
+ }
+ if (c < 32) {
+ fprintf(stderr, "^%lc\n",
+ (wint_t)c + 64);
+ } else {
+ fprintf(stderr, "`%lc'\n", (wint_t)c);
+ }
+#endif
+ vte_terminal_insert_char(widget, c);
+ }
+ terminal->n_pending = 0;
+ } else if (match[0] != '\0') {
+ /* A terminal sequence. */
+ vte_terminal_handle_sequence(GTK_WIDGET(terminal),
+ match,
+ quark,
+ params);
+ if (params != NULL) {
+ g_value_array_free(params);
+ }
+ terminal->n_pending = 0;
+ } else {
+ /* It's a zero-length string, so we need to wait for
+ * more data from the client. */
+ }
+ }
+
+ /* Handle error conditions. */
+ if (bcount <= 0) {
+ if (bcount == 0) {
+ /* EOF */
+ g_source_remove(terminal->pty_input);
+ vte_terminal_eof(terminal->pty_input, data);
+ } else {
+ switch (errno) {
+ case EIO:
+ /* Fake EOF. */
+ g_source_remove(terminal->pty_input);
+ vte_terminal_eof(terminal->pty_input,
+ data);
+ leave_open = FALSE;
+ break;
+ case EAGAIN:
+ case EBUSY:
+ break;
+ default:
+ g_warning("Error reading from child: "
+ "%s.\n", strerror(errno));
+ }
+ }
+ }
+
+ return leave_open;
+}
+
+/* Send some data to the child. */
+static void
+vte_terminal_send(VteTerminal *terminal, const guchar *data, size_t length)
+{
+ size_t count;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ count = write(terminal->pty_master, data, length);
+ if (count != length) {
+ g_warning("%s sending data to child\n", strerror(errno));
+ }
+}
+
+/* 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;
+ unsigned char *normal = NULL;
+ size_t normal_length = 0;
+ unsigned char *special = NULL;
+
+ g_return_val_if_fail(widget != NULL, FALSE);
+ g_return_val_if_fail(VTE_IS_TERMINAL(widget), FALSE);
+ terminal = VTE_TERMINAL(widget);
+
+ if (event->type == GDK_KEY_PRESS) {
+ /* Read the modifiers. */
+ if (gdk_event_get_state((GdkEvent*)event,
+ &modifiers) == FALSE) {
+ modifiers = 0;
+ }
+ /* Map the key to a sequence name if we can. */
+ switch (event->keyval) {
+#if 0
+ case GDK_BackSpace:
+ special = "kb";
+ break;
+#endif
+ case GDK_Delete:
+ special = "kD";
+ break;
+ case GDK_KP_Home:
+ case GDK_Home:
+ special = "kh";
+ break;
+ case GDK_KP_End:
+ case GDK_End:
+ special = "@7";
+ break;
+ case GDK_F1:
+ special = "k1";
+ break;
+ case GDK_F2:
+ special = "k2";
+ break;
+ case GDK_F3:
+ special = "k3";
+ break;
+ case GDK_F4:
+ special = "k4";
+ break;
+ case GDK_F5:
+ special = "k5";
+ break;
+ case GDK_F6:
+ special = "k6";
+ break;
+ case GDK_F7:
+ special = "k7";
+ break;
+ case GDK_F8:
+ special = "k8";
+ break;
+ case GDK_F9:
+ special = "k9";
+ break;
+ case GDK_F10:
+ special = "k0";
+ break;
+ case GDK_F11:
+ special = "k;";
+ break;
+ /* Cursor keys. */
+ case GDK_KP_Up:
+ case GDK_Up:
+ special = "ku";
+ break;
+ case GDK_KP_Down:
+ case GDK_Down:
+ special = "kd";
+ break;
+ case GDK_KP_Left:
+ case GDK_Left:
+ special = "kl";
+ break;
+ case GDK_KP_Right:
+ case GDK_Right:
+ special = "kr";
+ break;
+ case GDK_Page_Up:
+ if (modifiers & GDK_SHIFT_MASK) {
+ fprintf(stderr, "Shift-PgUp\n");
+ } else {
+ special = "kP";
+ }
+ break;
+ case GDK_Page_Down:
+ if (modifiers & GDK_SHIFT_MASK) {
+ fprintf(stderr, "Shift-PgDn\n");
+ } else {
+ special = "kN";
+ }
+ break;
+ case GDK_Tab:
+ if (modifiers & GDK_SHIFT_MASK) {
+ special = "kB";
+ } else {
+ normal = g_strdup("\t");
+ normal_length = 1;
+ }
+ break;
+ /* The default is to just send the string. */
+ default:
+ if (event->string != NULL) {
+ normal = g_strdup(event->string);
+ normal_length = strlen(normal);
+ }
+ break;
+ }
+ /* If we got normal characters, send them to the child. */
+ if (normal != NULL) {
+ vte_terminal_send(terminal, normal, normal_length);
+ g_free(normal);
+ normal = NULL;
+ }
+ /* If the key maps to characters, send them to the child. */
+ if (special != NULL) {
+ termcap = terminal->termcap;
+ tterm = terminal->terminal;
+ normal = vte_termcap_find_string_length(termcap,
+ tterm,
+ special,
+ &normal_length);
+ special = g_strdup_printf(normal, 1);
+ vte_terminal_send(terminal, special, strlen(special));
+ g_free(special);
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* Read and handle a pointing device buttonpress event. */
+static gint
+vte_terminal_button_press(GtkWidget *widget, GdkEventButton *event)
+{
+ fprintf(stderr, "button pressed\n");
+ if (event->type == GDK_BUTTON_PRESS) {
+ if (!GTK_WIDGET_HAS_FOCUS(widget)) {
+ gtk_widget_grab_focus(widget);
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
+/* Handle receiving or losing focus. */
+static gint
+vte_terminal_focus_in(GtkWidget *widget, GdkEventFocus *event)
+{
+ g_return_val_if_fail(GTK_IS_WIDGET(widget), 0);
+ GTK_WIDGET_SET_FLAGS(widget, GTK_HAS_FOCUS);
+ return TRUE;
+}
+
+static gint
+vte_terminal_focus_out(GtkWidget *widget, GdkEventFocus *event)
+{
+ g_return_val_if_fail(GTK_WIDGET(widget), 0);
+ GTK_WIDGET_UNSET_FLAGS(widget, GTK_HAS_FOCUS);
+ return TRUE;
+}
+
+/* Set the fontset used for rendering text into the widget. */
+static void
+vte_terminal_set_fontset(VteTerminal *terminal, const char *xlfds)
+{
+ guint width, height, ascent, descent;
+ GtkWidget *widget;
+ XFontStruct **font_struct_list, font_struct;
+ char **missing_charset_list, *def_string;
+ int missing_charset_count;
+ char **font_name_list;
+
+ g_return_if_fail(terminal != NULL);
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ widget = GTK_WIDGET(terminal);
+
+ /* Choose default font metrics. I like '10x20' as a terminal font. */
+ if (xlfds == NULL) {
+ xlfds = "10x20";
+ }
+ width = 10;
+ height = 20;
+ descent = 0;
+ ascent = height - descent;
+
+ /* Load the font set, freeing another one if we loaded one before. */
+ if (terminal->fontset) {
+ XFreeFontSet(GDK_DISPLAY(), terminal->fontset);
+ }
+ terminal->fontset = XCreateFontSet(GDK_DISPLAY(),
+ xlfds,
+ &missing_charset_list,
+ &missing_charset_count,
+ &def_string);
+ g_return_if_fail(terminal->fontset != NULL);
+ XFreeStringList(missing_charset_list);
+ missing_charset_list = NULL;
+ /* Read the font metrics. */
+ if (XFontsOfFontSet(terminal->fontset,
+ &font_struct_list,
+ &font_name_list)) {
+ if (font_struct_list) {
+ if (font_struct_list[0]) {
+ font_struct = font_struct_list[0][0];
+ width = font_struct.max_bounds.width;
+ ascent = font_struct.max_bounds.ascent;
+ descent = font_struct.max_bounds.descent;
+ height = ascent + descent;
+ }
+ }
+ XFreeStringList(font_name_list);
+ font_name_list = NULL;
+ }
+
+ /* Now save the values. */
+ terminal->char_width = width;
+ terminal->char_height = height;
+ terminal->char_ascent = ascent;
+ terminal->char_descent = descent;
+
+ /* Emit a signal that the font changed. */
+ g_signal_emit_by_name(terminal,
+ "char_size_changed",
+ terminal->char_width,
+ terminal->char_height);
+}
+
+/* A comparison function which helps sort quarks. */
+static gint
+vte_compare_direct(gconstpointer a, gconstpointer b)
+{
+ return GPOINTER_TO_INT(a) - GPOINTER_TO_INT(b);
+}
+
+/* Read and refresh our perception of the size of the PTY. */
+static void
+vte_terminal_pty_size_get(VteTerminal *terminal)
+{
+ struct winsize size;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(terminal->pty_master != -1);
+ /* Use an ioctl to read the size of the terminal. */
+ if (ioctl(terminal->pty_master, TIOCGWINSZ, &size) != 0) {
+ g_warning("Error reading PTY size, assuming defaults: %s.",
+ strerror(errno));
+ terminal->row_count = 10;
+ terminal->column_count = 60;
+ } else {
+ terminal->row_count = size.ws_row;
+ terminal->column_count = size.ws_col;
+ }
+}
+
+/* Set the size of the PTY. */
+static void
+vte_terminal_pty_size_set(VteTerminal *terminal, guint columns, guint rows)
+{
+ struct winsize size;
+ size.ws_row = rows;
+ size.ws_col = columns;
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ g_return_if_fail(terminal->pty_master != -1);
+ /* Try to set the terminal size. */
+ if (ioctl(terminal->pty_master, TIOCSWINSZ, &size) != 0) {
+ g_warning("Error setting PTY size: %s.", strerror(errno));
+ }
+ /* Read the terminal size, in case something went awry. */
+ vte_terminal_pty_size_get(terminal);
+}
+
+/* Redraw the widget. */
+static void
+vte_handle_scroll(VteTerminal *terminal)
+{
+ long dy, adj;
+ GtkWidget *widget;
+ struct _VteScreen *screen;
+ /* Sanity checks. */
+ g_return_if_fail(GTK_IS_WIDGET(terminal));
+ widget = GTK_WIDGET(terminal);
+ screen = terminal->screen;
+ if (GTK_WIDGET_REALIZED(widget) == FALSE) {
+ return;
+ }
+ /* This may generate multiple redraws, so freeze it while we do them. */
+ gdk_window_freeze_updates(widget->window);
+ /* Read the new adjustment value and save the difference. */
+ adj = floor(gtk_adjustment_get_value(terminal->adjustment));
+ dy = screen->delta - adj;
+ screen->delta = adj;
+ if (dy != 0) {
+ /* Scroll whatever's already in the window to avoid redrawing
+ * as much as possible. */
+ gdk_window_scroll(widget->window,
+ 0, dy * terminal->char_height);
+ /* Trigger an expose on newly-exposed areas. */
+ if (dy > 0) {
+ vte_invalidate_cells(terminal,
+ 0,
+ terminal->column_count,
+ screen->cursor_current.row - dy,
+ dy);
+ } else {
+ vte_invalidate_cells(terminal,
+ 0,
+ terminal->column_count,
+ 0,
+ -dy);
+ }
+ }
+ /* Let the refreshing begin. */
+ gdk_window_thaw_updates(widget->window);
+}
+
+/* Set the adjustment objects used by the terminal widget. */
+static void
+vte_terminal_set_scroll_adjustment(VteTerminal *terminal,
+ GtkAdjustment *adjustment)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ if (adjustment != NULL) {
+ /* Add a reference to the new adjustment object. */
+ g_object_ref(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,
+ G_CALLBACK(vte_handle_scroll),
+ terminal);
+ g_object_unref(terminal->adjustment);
+ }
+ /* Set the new adjustment object. */
+ terminal->adjustment = adjustment;
+ g_signal_connect_swapped(terminal->adjustment,
+ "value_changed",
+ G_CALLBACK(vte_handle_scroll),
+ terminal);
+ g_signal_connect_swapped(terminal->adjustment,
+ "changed",
+ G_CALLBACK(vte_handle_scroll),
+ terminal);
+ }
+}
+
+/* Set the type of terminal we're emulating. */
+static void
+vte_terminal_set_emulation(VteTerminal *terminal, const char *emulation)
+{
+ const char *code, *value;
+ char *tmp;
+ int i;
+
+ /* Set the emulation type, for reference. */
+ if (emulation == NULL) {
+ emulation = "xterm";
+ }
+ terminal->terminal = g_quark_to_string(g_quark_from_string(emulation));
+#ifdef VTE_DEBUG
+ g_print("Setting emulation to `%s'...", emulation);
+#endif
+
+ /* Create a trie to hold the control sequences. */
+ if (terminal->trie) {
+ vte_trie_free(terminal->trie);
+ }
+ terminal->trie = vte_trie_new();
+
+ /* Create a tree to hold the handlers. */
+ if (terminal->sequences) {
+ g_tree_destroy(terminal->sequences);
+ }
+ terminal->sequences = g_tree_new(vte_compare_direct);
+ for (i = 0; i < G_N_ELEMENTS(vte_sequence_handlers); i++) {
+ if (vte_sequence_handlers[i].handler != NULL) {
+ code = vte_sequence_handlers[i].code;
+ g_tree_insert(terminal->sequences,
+ GINT_TO_POINTER(g_quark_from_string(code)),
+ vte_sequence_handlers[i].handler);
+ }
+ }
+
+ /* Load the known capability strings from the termcap structure into
+ * the trie for recognition. */
+ for (i = 0;
+ vte_terminal_capability_strings[i].capability != NULL;
+ i++) {
+ code = vte_terminal_capability_strings[i].capability;
+ tmp = vte_termcap_find_string(terminal->termcap,
+ terminal->terminal,
+ code);
+ if ((tmp != NULL) && (tmp[0] != '\0')) {
+ vte_trie_add(terminal->trie, tmp, strlen(tmp),
+ vte_terminal_capability_strings[i].capability,
+ 0);
+ }
+ g_free(tmp);
+ }
+
+ /* Add emulator-specific sequences. */
+ 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_trie_add(terminal->trie, code, strlen(code), value, 0);
+ }
+#ifdef VTE_DEBUG
+ g_print("\n");
+#endif
+}
+
+/* Set the path to the termcap file we read, and read it in. */
+static void
+vte_terminal_set_termcap(VteTerminal *terminal, const char *path)
+{
+ if (path == NULL) {
+ path = "/etc/termcap";
+ }
+ terminal->termcap_path = g_quark_to_string(g_quark_from_string(path));
+#ifdef VTE_DEBUG
+ g_print("Loading termcap `%s'...", terminal->termcap_path);
+#endif
+ if (terminal->termcap) {
+ vte_termcap_free(terminal->termcap);
+ }
+ terminal->termcap = vte_termcap_new(path);
+#ifdef VTE_DEBUG
+ g_print("\n");
+#endif
+ vte_terminal_set_emulation(terminal, terminal->terminal);
+}
+
+/* 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)
+{
+ GtkAdjustment *adjustment;
+ GIOChannel *channel;
+ int i;
+
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ GTK_WIDGET_SET_FLAGS(GTK_WIDGET(terminal), GTK_CAN_FOCUS);
+
+ /* Initialize data members with settings from the environment and
+ * structures to use for these. */
+ terminal->shell = g_strdup(getenv("SHELL") ?: "/bin/sh");
+ terminal->pty_master = -1;
+ terminal->pty_pid = -1;
+ terminal->pending = NULL;
+ terminal->n_pending = 0;
+ terminal->palette_initialized = FALSE;
+ terminal->keypad = VTE_KEYPAD_NORMAL;
+ adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0, 0, 0, 0, 0, 0));
+
+ vte_terminal_set_termcap(terminal, NULL);
+ vte_terminal_set_emulation(terminal, NULL);
+ vte_terminal_set_encoding(terminal, NULL);
+
+ terminal->normal_screen.row_data = g_array_new(FALSE, TRUE,
+ sizeof(GArray *));
+ terminal->normal_screen.cursor_current.row = 0;
+ terminal->normal_screen.cursor_current.col = 0;
+ terminal->normal_screen.cursor_saved.row = 0;
+ terminal->normal_screen.cursor_saved.col = 0;
+ terminal->normal_screen.cursor_visible = TRUE;
+ terminal->normal_screen.delta = 0;
+ terminal->normal_screen.insert = FALSE;
+
+ terminal->alternate_screen.row_data = g_array_new(FALSE, TRUE,
+ sizeof(GArray*));
+ terminal->alternate_screen.cursor_current.row = 0;
+ terminal->alternate_screen.cursor_current.col = 0;
+ terminal->alternate_screen.cursor_saved.row = 0;
+ terminal->alternate_screen.cursor_saved.col = 0;
+ terminal->alternate_screen.cursor_visible = TRUE;
+ terminal->alternate_screen.delta = 0;
+ terminal->alternate_screen.insert = FALSE;
+
+ terminal->screen = &terminal->alternate_screen;
+ vte_terminal_set_default_attributes(terminal);
+
+ terminal->screen = &terminal->normal_screen;
+ vte_terminal_set_default_attributes(terminal);
+
+ vte_terminal_set_scroll_adjustment(terminal, adjustment);
+
+ /* Start up the shell. */
+ terminal->pty_master = vte_pty_open(&terminal->pty_pid,
+ terminal->shell);
+ i = fcntl(terminal->pty_master, F_GETFL);
+ fcntl(terminal->pty_master, F_SETFL, i | O_NONBLOCK);
+ channel = g_io_channel_unix_new(terminal->pty_master);
+ terminal->pty_input = g_io_add_watch_full(channel,
+ G_PRIORITY_LOW,
+ G_IO_IN | G_IO_HUP,
+ vte_terminal_io_read,
+ terminal,
+ NULL);
+
+ /* Set the PTY window size based on the terminal type. */
+ vte_terminal_pty_size_set(terminal,
+ vte_termcap_find_numeric(terminal->termcap,
+ terminal->terminal,
+ "co") ?: 60,
+ vte_termcap_find_numeric(terminal->termcap,
+ terminal->terminal,
+ "li") ?: 18);
+
+ /* Set the font. */
+ vte_terminal_set_fontset(terminal, NULL);
+}
+
+/* Tell GTK+ how much space we need. */
+static void
+vte_terminal_size_request(GtkWidget *widget, GtkRequisition *requisition)
+{
+ VteTerminal *terminal;
+
+ g_return_if_fail(widget != NULL);
+ g_return_if_fail(VTE_IS_TERMINAL(widget));
+ terminal = VTE_TERMINAL(widget);
+
+ requisition->width = terminal->char_width * terminal->column_count;
+ requisition->height = terminal->char_height * terminal->row_count;
+}
+
+/* Accept a given size from GTK+. */
+static void
+vte_terminal_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
+{
+ VteTerminal *terminal;
+
+ g_return_if_fail(widget != NULL);
+ g_return_if_fail(VTE_IS_TERMINAL(widget));
+ terminal = VTE_TERMINAL(widget);
+
+ /* Set our allocation to match the structure. */
+ widget->allocation = *allocation;
+
+ /* Calculate how many rows and columns we should display. */
+ terminal->column_count = allocation->width / terminal->char_width;
+ terminal->row_count = allocation->height / terminal->char_height;
+
+ /* Set the size of the pseudo-terminal. */
+ vte_terminal_pty_size_set(terminal,
+ terminal->column_count,
+ terminal->row_count);
+
+ /* Resize the GDK window. */
+ if (widget->window != NULL) {
+ gdk_window_move_resize(widget->window,
+ allocation->x,
+ allocation->y,
+ allocation->width,
+ allocation->height);
+ }
+
+ /* Adjust the adjustments. */
+ vte_terminal_adjust_adjustments(terminal);
+}
+
+/* The window is being destroyed. */
+static void
+vte_terminal_unrealize(GtkWidget *widget)
+{
+ VteTerminal *terminal;
+ GArray *array;
+ int i;
+
+ g_return_if_fail(widget != NULL);
+ g_return_if_fail(VTE_IS_TERMINAL(widget));
+ terminal = VTE_TERMINAL(widget);
+
+ /* Unmap the widget if it hasn't been already. */
+ if (GTK_WIDGET_MAPPED(widget)) {
+ gtk_widget_unmap(widget);
+ }
+
+ /* Remove the GDK window. */
+ if (widget->window != NULL) {
+ gdk_window_destroy(widget->window);
+ widget->window = NULL;
+ }
+
+ /* Mark that we no longer have a GDK window. */
+ GTK_WIDGET_UNSET_FLAGS(widget, GTK_REALIZED);
+
+ /* Free some of our strings. */
+ terminal->termcap_path = NULL;
+ terminal->shell = NULL;
+ terminal->terminal = NULL;
+
+ /* Shut down the child terminal. */
+ close(terminal->pty_master);
+ terminal->pty_master = -1;
+ if (terminal->pty_pid > 0) {
+ kill(-terminal->pty_pid, SIGHUP);
+ }
+ terminal->pty_pid = 0;
+
+ /* Stop watching for input from the child. */
+ if (terminal->pty_input != -1) {
+ gtk_input_remove(terminal->pty_input);
+ terminal->pty_input = -1;
+ }
+
+ /* Discard any pending data. */
+ g_free(terminal->pending);
+ terminal->pending = NULL;
+
+ /* Clean up emulation structures. */
+ g_tree_destroy(terminal->sequences);
+ terminal->sequences= NULL;
+ vte_termcap_free(terminal->termcap);
+ terminal->termcap = NULL;
+ vte_trie_free(terminal->trie);
+ terminal->trie = NULL;
+
+ /* Clear the output histories. */
+ for (i = 0; i < terminal->normal_screen.row_data->len; i++) {
+ array = g_array_index(terminal->normal_screen.row_data,
+ GArray*,
+ i);
+ g_array_free(array, TRUE);
+ }
+ g_array_free(terminal->normal_screen.row_data, TRUE);
+ terminal->normal_screen.row_data = NULL;
+
+ for (i = 0; i < terminal->alternate_screen.row_data->len; i++) {
+ array = g_array_index(terminal->alternate_screen.row_data,
+ GArray*,
+ i);
+ g_array_free(array, TRUE);
+ }
+ g_array_free(terminal->alternate_screen.row_data, TRUE);
+ terminal->alternate_screen.row_data = NULL;
+}
+
+/* Handle realizing the widget. Most of this is copy-paste from GGAD. */
+static void
+vte_terminal_realize(GtkWidget *widget)
+{
+ VteTerminal *terminal = NULL;
+ GdkWindowAttr attributes;
+ GdkColor black = {0, 0, 0};
+ int attributes_mask = 0;
+
+ g_return_if_fail(widget != NULL);
+ g_return_if_fail(VTE_IS_TERMINAL(widget));
+ terminal = VTE_TERMINAL(widget);
+
+ /* Create a GDK window for the widget. */
+ attributes.window_type = GDK_WINDOW_CHILD;
+ attributes.x = 0;
+ attributes.y = 0;
+ attributes.width = widget->allocation.width;
+ attributes.height = widget->allocation.height;
+ attributes.wclass = GDK_INPUT_OUTPUT;
+ attributes.visual = gtk_widget_get_visual(widget);
+ attributes.colormap = gtk_widget_get_colormap(widget);
+ attributes.event_mask = gtk_widget_get_events(widget) |
+ GDK_EXPOSURE_MASK |
+ GDK_BUTTON_PRESS_MASK |
+ GDK_BUTTON_RELEASE_MASK |
+ GDK_KEY_PRESS_MASK |
+ GDK_KEY_RELEASE_MASK;
+ attributes.cursor = gdk_cursor_new(GDK_XTERM);
+ attributes_mask = GDK_WA_X |
+ GDK_WA_Y |
+ GDK_WA_VISUAL |
+ GDK_WA_COLORMAP |
+ GDK_WA_CURSOR;
+ widget->window = gdk_window_new(gtk_widget_get_parent_window(widget),
+ &attributes,
+ attributes_mask);
+ gdk_window_move_resize(widget->window,
+ widget->allocation.x,
+ widget->allocation.y,
+ widget->allocation.width,
+ widget->allocation.height);
+ gdk_window_set_user_data(widget->window, widget);
+ gdk_window_show(widget->window);
+
+ /* Set up styles, backgrounds, and whatnot. */
+ widget->style = gtk_style_attach(widget->style, widget->window);
+ gtk_style_set_background(widget->style,
+ widget->window,
+ GTK_STATE_NORMAL);
+ gdk_window_set_background(widget->window, &black);
+
+ /* Set the realized flag. */
+ GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED);
+
+ /* Grab input focus. */
+ gtk_widget_grab_focus(widget);
+}
+
+/* Find the character in the given "virtual" position. */
+struct vte_charcell *
+vte_terminal_find_charcell(VteTerminal *terminal, long row, long col)
+{
+ GArray *rowdata;
+ struct vte_charcell *ret = NULL;
+ struct _VteScreen *screen;
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
+ screen = terminal->screen;
+ if (screen->row_data->len > row) {
+ rowdata = g_array_index(screen->row_data, GArray*, row);
+ if (rowdata->len > col) {
+ ret = &g_array_index(rowdata, struct vte_charcell, col);
+ }
+ }
+ return ret;
+}
+
+/* Draw the widget. */
+static void
+vte_terminal_paint(GtkWidget *widget, GdkRectangle *area)
+{
+ VteTerminal *terminal = NULL;
+ struct _VteScreen *screen;
+ Display *display;
+ Drawable drawable;
+ GdkDrawable *gdrawable;
+ GC gc;
+ struct vte_charcell *cell;
+ int row, drow, col, dcol, row_stop, col_stop, x_offs = 0, y_offs = 0;
+ int fore, back, width, height, ascent, descent;
+ long delta;
+ XwcTextItem textitem;
+
+ /* Make a few sanity checks. */
+ g_return_if_fail(widget != NULL);
+ g_return_if_fail(VTE_IS_TERMINAL(widget));
+ g_return_if_fail(area != NULL);
+ terminal = VTE_TERMINAL(widget);
+ if (!GTK_WIDGET_DRAWABLE(widget)) {
+ return;
+ }
+ screen = terminal->screen;
+
+ /* Set up the default palette. */
+ vte_terminal_set_default_palette(terminal);
+
+ /* Get the X11 structures we need for the drawing area. */
+ gdk_window_get_internal_paint_info(widget->window, &gdrawable,
+ &x_offs, &y_offs);
+ display = gdk_x11_drawable_get_xdisplay(gdrawable);
+ drawable = gdk_x11_drawable_get_xid(gdrawable);
+ gc = XCreateGC(display, drawable, 0, NULL);
+
+ /* Keep local copies of rendering information. */
+ width = terminal->char_width;
+ height = terminal->char_height;
+ ascent = terminal->char_ascent;
+ descent = terminal->char_descent;
+ delta = screen->delta;
+
+#if 1
+ /* Paint the background for this area, using a filled rectangle. We
+ * have to do this even when the GDK background matches, otherwise
+ * we may miss character removals before an area is re-exposed. */
+ XSetForeground(display, gc, terminal->palette[0]);
+ XFillRectangle(display, drawable, gc,
+ area->x - x_offs,
+ area->y - y_offs,
+ area->width,
+ area->height);
+#endif
+
+ /* Now we're ready to draw the text. Iterate over the rows we
+ * need to draw. */
+ row = area->y / height;
+ row_stop = (area->y + area->height + height - 1) / height;
+ while (row < row_stop) {
+ /* Get the row data for the row we want to display, taking
+ * scrolling into account. */
+ drow = row + delta;
+ col = area->x / width;
+ col_stop = (area->x + area->width + width - 1) / width;
+ while (col < col_stop) {
+ /* Get the character cell's contents. */
+ cell = vte_terminal_find_charcell(terminal, drow, col);
+ if (cell != NULL) {
+ /* If this column is zero-width, backtrack
+ * until we find the multi-column character
+ * which renders into this column. */
+ if (cell->columns == 0) {
+ /* Search for a suitable cell. */
+ for (dcol = col - 1;
+ dcol >= 0;
+ dcol--) {
+ cell = vte_terminal_find_charcell(terminal, drow, dcol);
+ if (cell->columns > 0) {
+ break;
+ }
+ }
+ /* If we didn't find anything, bail. */
+ if (dcol < 0) {
+ continue;
+ }
+ }
+ /* Determine what the foreground and background
+ * colors for rendering text should be. */
+ if (cell->reverse) {
+ fore = cell->back;
+ back = cell->fore;
+ } else {
+ fore = cell->fore;
+ back = cell->back;
+ }
+ if (cell->invisible) {
+ fore = back;
+ }
+ if (cell->bold) {
+ fore += 8;
+ }
+ if (cell->standout) {
+ back += 8;
+ }
+
+ /* Set the textitem's fields. */
+ textitem.chars = &cell->c;
+ textitem.nchars = 1;
+ textitem.delta = 0;
+ textitem.font_set = terminal->fontset;
+
+ /* Paint the background for the cell. */
+ XSetForeground(display, gc,
+ terminal->palette[back]);
+ XFillRectangle(display, drawable, gc,
+ col * width - x_offs,
+ row * height - y_offs,
+ cell->columns * width,
+ height);
+
+ /* Draw the text. We've handled bold, standout
+ * and reverse already, but we need to handle
+ * half, and maybe blink. */
+ XSetForeground(display, gc,
+ terminal->palette[fore]);
+ XwcDrawText(display, drawable, gc,
+ col * width - x_offs,
+ row * height - y_offs + ascent,
+ &textitem, 1);
+ /* FX */
+ if (cell->underline) {
+ XDrawLine(display, drawable, gc,
+ col * width - x_offs,
+ row * height - y_offs + height - 1,
+ col * width - x_offs + width - 1,
+ row * height - y_offs + height - 1);
+ }
+ col += cell->columns;
+ } else {
+ /* Skip to the next column. */
+ col++;
+ }
+ }
+ row++;
+ }
+
+ if (terminal->screen->cursor_visible) {
+ /* Draw the insertion cursor in the foreground color for this
+ * cell, shrinking it by one pixel to keep from overflowing
+ * into the next character cell. */
+ col = screen->cursor_current.col;
+ row = screen->cursor_current.row;
+ cell = vte_terminal_find_charcell(terminal, row - delta, col);
+ XSetForeground(display, gc,
+ cell ?
+ terminal->palette[cell->fore] :
+ terminal->palette[screen->defaults.fore]);
+ XFillRectangle(display, drawable, gc,
+ col * width - x_offs,
+ (row - delta) * height - y_offs,
+ width - 1,
+ height - 1);
+ /* If we have a character in this spot, draw it in the reverse
+ * of the normal color. */
+ if (cell != NULL) {
+ /* Draw the text reversed. FIXME: handle half, bold,
+ * standout (isn't that just bold?), blink. */
+ XSetForeground(display, gc,
+ cell ?
+ terminal->palette[cell->back] :
+ terminal->palette[screen->defaults.back]);
+ textitem.chars = &cell->c;
+ textitem.nchars = 1;
+ textitem.delta = 0;
+ textitem.font_set = terminal->fontset;
+ XwcDrawText(display, drawable, gc,
+ col * width - x_offs,
+ row * height - y_offs + ascent,
+ &textitem, 1);
+ }
+ }
+
+ /* Done with various structures. */
+ XFreeGC(display, gc);
+}
+
+/* Handle an expose event by painting the exposed area. */
+static gint
+vte_terminal_expose(GtkWidget *widget, GdkEventExpose *event)
+{
+ g_return_val_if_fail(VTE_IS_TERMINAL(widget), 0);
+ if (event->window == widget->window) {
+ vte_terminal_paint(widget, &event->area);
+ } else {
+ g_assert_not_reached();
+ }
+ return TRUE;
+}
+
+/* Initialize methods. */
+static void
+vte_terminal_class_init(VteTerminalClass *klass, gconstpointer data)
+{
+ GtkWidgetClass *widget_class;
+ widget_class = GTK_WIDGET_CLASS(klass);
+ /* Override some of the default handlers. */
+ widget_class->realize = vte_terminal_realize;
+ widget_class->expose_event = vte_terminal_expose;
+ widget_class->key_press_event = vte_terminal_key_press;
+ widget_class->button_press_event = vte_terminal_button_press;
+ widget_class->focus_in_event = vte_terminal_focus_in;
+ widget_class->focus_out_event = vte_terminal_focus_out;
+ widget_class->unrealize = vte_terminal_unrealize;
+ widget_class->size_request = vte_terminal_size_request;
+ widget_class->size_allocate = vte_terminal_size_allocate;
+ klass->eof_signal =
+ g_signal_new("eof",
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ _vte_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+ klass->set_window_title_signal =
+ g_signal_new("set_window_title",
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ _vte_marshal_VOID__STRING,
+ G_TYPE_NONE, 1, G_TYPE_STRING);
+ klass->set_icon_title_signal =
+ g_signal_new("set_icon_title",
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ _vte_marshal_VOID__STRING,
+ G_TYPE_NONE, 1, G_TYPE_STRING);
+ klass->char_size_changed_signal =
+ g_signal_new("char_size_changed",
+ G_OBJECT_CLASS_TYPE(klass),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ _vte_marshal_VOID__UINT_UINT,
+ G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_UINT);
+}
+
+GtkType
+vte_terminal_get_type(void)
+{
+ static GtkType terminal_type = 0;
+ static const GTypeInfo terminal_info = {
+ sizeof(VteTerminalClass),
+ (GBaseInitFunc)NULL,
+ (GBaseFinalizeFunc)NULL,
+
+ (GClassInitFunc)vte_terminal_class_init,
+ (GClassFinalizeFunc)NULL,
+ (gconstpointer)NULL,
+
+ sizeof(VteTerminal),
+ 0,
+ (GInstanceInitFunc)vte_terminal_init,
+
+ (GTypeValueTable*)NULL,
+ };
+
+ if (terminal_type == 0) {
+ terminal_type = g_type_register_static(GTK_TYPE_WIDGET,
+ "VteTerminal",
+ &terminal_info,
+ 0);
+ }
+
+ return terminal_type;
+}
diff --git a/src/vte.h b/src/vte.h
new file mode 100644
index 0000000..e334f35
--- /dev/null
+++ b/src/vte.h
@@ -0,0 +1,169 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+
+#ifndef vte_h_included
+#define vte_h_included
+
+#include <sys/types.h>
+#include <iconv.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <X11/Xlib.h>
+#include <glib.h>
+#include <pango/pango.h>
+#include "termcap.h"
+#include "trie.h"
+
+G_BEGIN_DECLS
+
+typedef struct _VteTerminal VteTerminal;
+typedef struct _VteTerminalClass VteTerminalClass;
+
+/* The structure we use to hold characters we're supposed to display -- this
+ * includes any supported visible attributes. */
+struct vte_charcell {
+ wchar_t c; /* The wide character. */
+ guint16 columns: 2; /* Number of visible columns (as determined
+ by wcwidth(c)). */
+ guint16 fore: 3; /* Indices in the color palette for the */
+ guint16 back: 3; /* foreground and background of the cell. */
+ guint16 reverse: 1; /* Single-bit attributes. */
+ guint16 invisible: 1;
+ guint16 bold: 1;
+ guint16 standout: 1;
+ guint16 underline: 1;
+ guint16 half: 1;
+ guint16 blink: 1;
+};
+
+/* The terminal's keypad state. A terminal can either be using the normal
+ * keypad, or the "application" keypad. Arrow key sequences, for example,
+ * are really only defined for "application" mode. */
+typedef enum {
+ VTE_KEYPAD_NORMAL,
+ VTE_KEYPAD_APPLICATION,
+} VteKeypad;
+
+/* The terminal widget itself. */
+struct _VteTerminal {
+ /*< public >*/
+ GtkWidget widget;
+ GtkAdjustment *adjustment; /* Scrolling adjustment. */
+
+ /*< private >*/
+
+ /* Emulation setup data. */
+ struct vte_termcap *termcap; /* termcap storage */
+ struct vte_trie *trie; /* control sequence trie */
+ const char *termcap_path; /* path to termcap file */
+ const char *terminal; /* terminal type to emulate */
+ GTree *sequences; /* sequence handlers, keyed by GQuark
+ based on the sequence name */
+
+ /* PTY handling data. */
+ char *shell; /* shell we started */
+ int pty_master; /* pty master descriptor */
+ guint pty_input; /* master I/O channel */
+ pid_t pty_pid; /* pid of child using pty slave */
+ const char *encoding; /* the pty's encoding */
+
+ /* Input data queues. */
+ iconv_t pending_conv; /* narrow/wide conversion state */
+ wchar_t *pending; /* pending output characters */
+ size_t n_pending;
+ char *narrow_pending; /* pending output characters */
+ size_t n_narrow_pending;
+ iconv_t outgoing_conv; /* narrow/wide conversion state */
+
+ /* Defaults and settings to apply to new input data. */
+ gboolean palette_initialized;
+ unsigned long palette[16]; /* palette of colors we use for drawing
+ text */
+
+ /* Metric and sizing data. */
+ guint char_width, char_height; /* dimensions of character cells */
+ guint char_ascent, char_descent;/* important font metrics */
+ guint row_count, column_count; /* dimensions of the window */
+
+ /* Emulation state. */
+ VteKeypad keypad;
+
+ /* Screen data. We support the normal screen, and an alternate
+ * screen, which seems to be a DEC-specific feature. */
+ XFontSet fontset; /* the font set to draw text with */
+ struct _VteScreen {
+ GArray *row_data; /* row data, arranged as a GArray of
+ vte_charcell structures */
+ struct {
+ gint row, col;
+ } cursor_current, cursor_saved;
+ /* the current and saved positions of
+ the [insertion] cursor */
+ gboolean cursor_visible;
+ gboolean insert; /* insert mode */
+ struct {
+ gint start, end;
+ } scrolling_region; /* the region we scroll in */
+ gboolean scrolling_restricted;
+ long delta; /* cached Y offset (the saved cursor
+ position is relative to this) */
+ struct vte_charcell defaults; /* default characteristics
+ for insertion of any new
+ characters */
+ } normal_screen, alternate_screen, *screen;
+};
+
+/* The widget's class structure. */
+struct _VteTerminalClass {
+ /*< public > */
+ /* Inherited parent class. */
+ GtkWidgetClass parent_class;
+
+ /*< private > */
+ /* Signals we might omit. */
+ guint eof_signal;
+ guint char_size_changed_signal;
+ guint set_window_title_signal;
+ guint set_icon_title_signal;
+};
+
+/* The widget's type. */
+GtkType vte_terminal_get_type(void);
+
+#define VTE_TYPE_TERMINAL (vte_terminal_get_type())
+#define VTE_TERMINAL(obj) (GTK_CHECK_CAST((obj),\
+ VTE_TYPE_TERMINAL,\
+ VteTerminal))
+#define VTE_TERMINAL_CLASS(klass) GTK_CHECK_CLASS_CAST((klass),\
+ VTE_TYPE_TERMINAL,\
+ VteTerminalClass)
+#define VTE_IS_TERMINAL(obj) GTK_CHECK_TYPE((obj),\
+ VTE_TYPE_TERMINAL)
+#define VTE_IS_TERMINAL_CLASS(klass) GTK_CHECK_CLASS_TYPE((klass),\
+ VTE_TYPE_TERMINAL)
+#define VTE_TERMINAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VTE_TYPE_TERMINAL, VteTerminalClass))
+
+
+GtkWidget *vte_terminal_new(void);
+
+G_END_DECLS
+
+#endif
diff --git a/src/vteapp.c b/src/vteapp.c
new file mode 100644
index 0000000..485d84e
--- /dev/null
+++ b/src/vteapp.c
@@ -0,0 +1,104 @@
+/*
+ * 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.
+ */
+
+#ident "$Id$"
+#include "../config.h"
+#include <gtk/gtk.h>
+#include <glib-object.h>
+#include "vte.h"
+
+static void
+set_window_title(GtkWidget *widget, const char *title, gpointer win)
+{
+ GtkWindow *window;
+ g_return_if_fail(GTK_IS_WINDOW(win));
+ window = GTK_WINDOW(win);
+ gtk_window_set_title(window, title);
+}
+
+static void
+char_size_changed(GtkWidget *widget, guint width, guint height, gpointer win)
+{
+ VteTerminal *terminal;
+ GtkWindow *window;
+ GdkGeometry geometry;
+ g_return_if_fail(GTK_IS_WINDOW(win));
+ g_return_if_fail(VTE_IS_TERMINAL(widget));
+ terminal = VTE_TERMINAL(widget);
+ window = GTK_WINDOW(win);
+ geometry.base_width = 0;
+ geometry.base_height = 0;
+ geometry.min_width = terminal->char_width;
+ geometry.min_height = terminal->char_height;
+ geometry.width_inc = terminal->char_width;
+ geometry.height_inc = terminal->char_height;
+ gtk_window_set_geometry_hints(window, widget, &geometry,
+ GDK_HINT_RESIZE_INC |
+ GDK_HINT_BASE_SIZE |
+ GDK_HINT_MIN_SIZE);
+}
+
+int
+main(int argc, char **argv)
+{
+ GtkWidget *window, *hbox, *scrollbar, *widget;
+
+ gtk_init(&argc, &argv);
+
+ /* Create a window to hold the scrolling shell, and hook its
+ * delete event to the quit function.. */
+ window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ g_signal_connect(G_OBJECT(window), "delete_event",
+ GTK_SIGNAL_FUNC(gtk_main_quit), NULL);
+
+ /* 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();
+ char_size_changed(widget,
+ (VTE_TERMINAL(widget)->char_width),
+ (VTE_TERMINAL(widget)->char_height),
+ window);
+ 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. */
+ g_signal_connect_object(G_OBJECT(widget), "char_size_changed",
+ G_CALLBACK(char_size_changed), window, 0);
+
+ /* Connect to the "set_window_title" signal to set the main window's
+ * title. */
+ g_signal_connect(G_OBJECT(widget), "set_window_title",
+ G_CALLBACK(set_window_title), window);
+
+ /* Connect to the "eof" signal to quit when the session ends. */
+ g_signal_connect(G_OBJECT(widget), "eof",
+ G_CALLBACK(gtk_main_quit), NULL);
+
+ /* Create the scrollbar for the widget. */
+ scrollbar = gtk_vscrollbar_new((VTE_TERMINAL(widget))->adjustment);
+ gtk_box_pack_start(GTK_BOX(hbox), scrollbar, FALSE, FALSE, 0);
+
+ /* Go for it! */
+ gtk_widget_show_all(window);
+ gtk_main();
+
+ return 0;
+}
diff --git a/stamp-h.in b/stamp-h.in
new file mode 100644
index 0000000..9788f70
--- /dev/null
+++ b/stamp-h.in
@@ -0,0 +1 @@
+timestamp