From 365acda190cbf173307782a2a881b05b4cf4ed0d Mon Sep 17 00:00:00 2001 From: IWAMOTO Kouichi Date: Wed, 1 Jun 2016 03:08:16 +0900 Subject: [PATCH] Initial Import (lv451.tar.gz) --- GPL.txt | 340 ++ README | 41 + build/README | 6 + hello.sample | 33 + hello.sample.gif | Bin 0 -> 15351 bytes index.html | 1225 ++++ lv.1 | 339 ++ lv.hlp | 378 ++ relnote.html | 1041 ++++ src/Makefile.dos | 34 + src/Makefile.in | 327 ++ src/ascii.h | 53 + src/attr.h | 25 + src/begin.h | 20 + src/big5.c | 281 + src/big5.h | 25 + src/big5.map | 13705 ++++++++++++++++++++++++++++++++++++++++++++ src/big5.rev | 13705 ++++++++++++++++++++++++++++++++++++++++++++ src/big5cns.map | 160 + src/big5cns.pl | 226 + src/boolean.h | 23 + src/command.c | 1203 ++++ src/command.h | 18 + src/conf.c | 447 ++ src/conf.h | 32 + src/config.guess | 571 ++ src/config.sub | 872 +++ src/configure | 1978 +++++++ src/configure.in | 61 + src/console.c | 700 +++ src/console.h | 72 + src/conv.c | 120 + src/conv.h | 19 + src/ctable.c | 130 + src/ctable.h | 15 + src/ctable_e.h | 13 + src/ctable_t.h | 76 + src/d2u.pl | 2 + src/d2uall.sh | 5 + src/decode.c | 272 + src/decode.h | 117 + src/dfa.c | 646 +++ src/dfa.h | 26 + src/display.c | 161 + src/display.h | 20 + src/encode.c | 197 + src/encode.h | 62 + src/escape.c | 195 + src/escape.h | 16 + src/eucjapan.c | 95 + src/eucjapan.h | 16 + src/fetch.c | 207 + src/fetch.h | 26 + src/file.c | 522 ++ src/file.h | 140 + src/find.c | 491 ++ src/find.h | 41 + src/gb2312.map | 7446 ++++++++++++++++++++++++ src/gb2312.rev | 7447 ++++++++++++++++++++++++ src/guess.c | 350 ++ src/guess.h | 22 + src/guesslocale.c | 173 + src/guesslocale.h | 15 + src/hz.c | 74 + src/hz.h | 16 + src/ichar.h | 44 + src/import.h | 18 + src/install-sh | 238 + src/iso2022.c | 148 + src/iso2022.h | 16 + src/iso2cn.c | 130 + src/iso2cn.h | 17 + src/iso2jp.c | 120 + src/iso2jp.h | 17 + src/iso2kr.c | 98 + src/iso2kr.h | 17 + src/iso8859.c | 66 + src/iso8859.h | 17 + src/iso885910.map | 98 + src/iso885910.rev | 98 + src/iso885911.map | 90 + src/iso885911.rev | 98 + src/iso885913.map | 98 + src/iso885913.rev | 98 + src/iso885914.map | 98 + src/iso885914.rev | 98 + src/iso885915.map | 98 + src/iso885915.rev | 98 + src/iso885916.map | 98 + src/iso885916.rev | 98 + src/iso88592.map | 98 + src/iso88592.rev | 98 + src/iso88593.map | 91 + src/iso88593.rev | 98 + src/iso88594.map | 98 + src/iso88594.rev | 98 + src/iso88595.map | 98 + src/iso88595.rev | 98 + src/iso88596.map | 53 + src/iso88596.rev | 98 + src/iso88597.map | 94 + src/iso88597.rev | 98 + src/iso88598.map | 60 + src/iso88598.rev | 98 + src/iso88599.map | 98 + src/iso88599.rev | 98 + src/istr.c | 289 + src/istr.h | 35 + src/itable.c | 170 + src/itable.h | 14 + src/itable_e.h | 13 + src/itable_t.h | 100 + src/jis.map | 12948 +++++++++++++++++++++++++++++++++++++++++ src/jis0208.rev | 6881 ++++++++++++++++++++++ src/jis0212.rev | 6069 ++++++++++++++++++++ src/kana.c | 183 + src/kana.h | 17 + src/keybind.h | 149 + src/ksc5601.map | 8226 ++++++++++++++++++++++++++ src/ksc5601.rev | 8226 ++++++++++++++++++++++++++ src/lv.c | 283 + src/map8859.pl | 53 + src/mapbig5.pl | 51 + src/mapgb.pl | 50 + src/mapjis.pl | 67 + src/mapksc.pl | 44 + src/nfa.c | 198 + src/nfa.h | 21 + src/position.h | 89 + src/raw.c | 73 + src/raw.h | 18 + src/re.c | 556 ++ src/re.h | 76 + src/rev0208.pl | 49 + src/rev0212.pl | 49 + src/rev8859.pl | 65 + src/revbig5.pl | 46 + src/revgb.pl | 50 + src/revksc.pl | 44 + src/screen.c | 255 + src/screen.h | 22 + src/shiftjis.c | 194 + src/shiftjis.h | 19 + src/str.h | 15 + src/stream.c | 197 + src/stream.h | 23 + src/unimap.c | 365 ++ src/unimap.h | 29 + src/unirev.c | 235 + src/unirev.h | 16 + src/utf.c | 341 ++ src/utf.h | 24 + src/uty.c | 233 + src/uty.h | 40 + src/version.c | 36 + src/version.h | 15 + 156 files changed, 107963 insertions(+) create mode 100644 GPL.txt create mode 100644 README create mode 100644 build/README create mode 100644 hello.sample create mode 100644 hello.sample.gif create mode 100644 index.html create mode 100644 lv.1 create mode 100644 lv.hlp create mode 100644 relnote.html create mode 100644 src/Makefile.dos create mode 100644 src/Makefile.in create mode 100644 src/ascii.h create mode 100644 src/attr.h create mode 100644 src/begin.h create mode 100644 src/big5.c create mode 100644 src/big5.h create mode 100644 src/big5.map create mode 100644 src/big5.rev create mode 100644 src/big5cns.map create mode 100755 src/big5cns.pl create mode 100644 src/boolean.h create mode 100644 src/command.c create mode 100644 src/command.h create mode 100644 src/conf.c create mode 100644 src/conf.h create mode 100644 src/config.guess create mode 100644 src/config.sub create mode 100755 src/configure create mode 100644 src/configure.in create mode 100644 src/console.c create mode 100644 src/console.h create mode 100644 src/conv.c create mode 100644 src/conv.h create mode 100644 src/ctable.c create mode 100644 src/ctable.h create mode 100644 src/ctable_e.h create mode 100644 src/ctable_t.h create mode 100755 src/d2u.pl create mode 100755 src/d2uall.sh create mode 100644 src/decode.c create mode 100644 src/decode.h create mode 100644 src/dfa.c create mode 100644 src/dfa.h create mode 100644 src/display.c create mode 100644 src/display.h create mode 100644 src/encode.c create mode 100644 src/encode.h create mode 100644 src/escape.c create mode 100644 src/escape.h create mode 100644 src/eucjapan.c create mode 100644 src/eucjapan.h create mode 100644 src/fetch.c create mode 100644 src/fetch.h create mode 100644 src/file.c create mode 100644 src/file.h create mode 100644 src/find.c create mode 100644 src/find.h create mode 100644 src/gb2312.map create mode 100644 src/gb2312.rev create mode 100644 src/guess.c create mode 100644 src/guess.h create mode 100644 src/guesslocale.c create mode 100644 src/guesslocale.h create mode 100644 src/hz.c create mode 100644 src/hz.h create mode 100644 src/ichar.h create mode 100644 src/import.h create mode 100755 src/install-sh create mode 100644 src/iso2022.c create mode 100644 src/iso2022.h create mode 100644 src/iso2cn.c create mode 100644 src/iso2cn.h create mode 100644 src/iso2jp.c create mode 100644 src/iso2jp.h create mode 100644 src/iso2kr.c create mode 100644 src/iso2kr.h create mode 100644 src/iso8859.c create mode 100644 src/iso8859.h create mode 100644 src/iso885910.map create mode 100644 src/iso885910.rev create mode 100644 src/iso885911.map create mode 100644 src/iso885911.rev create mode 100644 src/iso885913.map create mode 100644 src/iso885913.rev create mode 100644 src/iso885914.map create mode 100644 src/iso885914.rev create mode 100644 src/iso885915.map create mode 100644 src/iso885915.rev create mode 100644 src/iso885916.map create mode 100644 src/iso885916.rev create mode 100644 src/iso88592.map create mode 100644 src/iso88592.rev create mode 100644 src/iso88593.map create mode 100644 src/iso88593.rev create mode 100644 src/iso88594.map create mode 100644 src/iso88594.rev create mode 100644 src/iso88595.map create mode 100644 src/iso88595.rev create mode 100644 src/iso88596.map create mode 100644 src/iso88596.rev create mode 100644 src/iso88597.map create mode 100644 src/iso88597.rev create mode 100644 src/iso88598.map create mode 100644 src/iso88598.rev create mode 100644 src/iso88599.map create mode 100644 src/iso88599.rev create mode 100644 src/istr.c create mode 100644 src/istr.h create mode 100644 src/itable.c create mode 100644 src/itable.h create mode 100644 src/itable_e.h create mode 100644 src/itable_t.h create mode 100644 src/jis.map create mode 100644 src/jis0208.rev create mode 100644 src/jis0212.rev create mode 100644 src/kana.c create mode 100644 src/kana.h create mode 100644 src/keybind.h create mode 100644 src/ksc5601.map create mode 100644 src/ksc5601.rev create mode 100644 src/lv.c create mode 100755 src/map8859.pl create mode 100755 src/mapbig5.pl create mode 100755 src/mapgb.pl create mode 100755 src/mapjis.pl create mode 100755 src/mapksc.pl create mode 100644 src/nfa.c create mode 100644 src/nfa.h create mode 100644 src/position.h create mode 100644 src/raw.c create mode 100644 src/raw.h create mode 100644 src/re.c create mode 100644 src/re.h create mode 100755 src/rev0208.pl create mode 100755 src/rev0212.pl create mode 100755 src/rev8859.pl create mode 100755 src/revbig5.pl create mode 100755 src/revgb.pl create mode 100755 src/revksc.pl create mode 100644 src/screen.c create mode 100644 src/screen.h create mode 100644 src/shiftjis.c create mode 100644 src/shiftjis.h create mode 100644 src/str.h create mode 100644 src/stream.c create mode 100644 src/stream.h create mode 100644 src/unimap.c create mode 100644 src/unimap.h create mode 100644 src/unirev.c create mode 100644 src/unirev.h create mode 100644 src/utf.c create mode 100644 src/utf.h create mode 100644 src/uty.c create mode 100644 src/uty.h create mode 100644 src/version.c create mode 100644 src/version.h diff --git a/GPL.txt b/GPL.txt new file mode 100644 index 0000000..60549be --- /dev/null +++ b/GPL.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 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. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, 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 software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, 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 redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +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 give any other recipients of the Program a copy of this License +along with the Program. + +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 Program or any portion +of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +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 Program, 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 Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) 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; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, 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 executable. 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. + +If distribution of executable or 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 counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program 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. + + 5. 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 Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program 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. + + 7. 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 Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program 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 Program. + +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. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program 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. + + 9. The Free Software Foundation may publish revised and/or new versions +of the 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 Program +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 Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, 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 + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), 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 Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. 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. + + + Copyright (C) 19yy + + 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 + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/README b/README new file mode 100644 index 0000000..f119a55 --- /dev/null +++ b/README @@ -0,0 +1,41 @@ +------------------------------------------------------------------------------ + + Documentation of lv is provided on the web. See the following URL: + + http://www.ff.iij4u.or.jp/~nrt/lv/ + +------------------------------------------------------------------------------ + + All rights reserved. Copyright (C) 1996-2004 by NARITA Tomio. + + 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 + + See also GNU General Public License Version 2, included in this + archive as GPL.txt. + +------------------------------------------------------------------------------ + +INSTALLATION: + + 0) Expand lv archive, using gunzip/tar. + 1) Change your working directory to ``(extracted sub directory)/build''. + 2) Execute ``../src/configure'' to configure compiler flags. + 3) Launch ``make''. + 4) Then, launch ``make install'' as root. + +------------------------------------------------------------------------------ +NARITA Tomio +email: nrt@ff.iij4u.or.jp +Homepage: http://www.ff.iij4u.or.jp/~nrt/ diff --git a/build/README b/build/README new file mode 100644 index 0000000..6f33f9d --- /dev/null +++ b/build/README @@ -0,0 +1,6 @@ +INSTALLATION: + + 1. ../src/configure + 2. make + 3. make install # as root + diff --git a/hello.sample b/hello.sample new file mode 100644 index 0000000..7e69c9c --- /dev/null +++ b/hello.sample @@ -0,0 +1,33 @@ +``Hello'' in various character sets:: + +Danish (Dansk) Hej, Goddag +English Hello +Esperanto Saluton +Estonian Tere, Tervist +Finnish (Suomi) Hei +French (Fran-Agais) Bonjour, Salut$)C +German (Deutsch Nord) Guten Tag +German (Deutsch S-A|d) Gr|_ Gott$)C +Greek (-FGkk]mija) Cei\ sar$)C +Hebrew -Hylem$)C +Italiano Ciao, Buon giorno +Maltese Ciao +Nederlands, Vlaams Hallo, Dag +Norwegian (Norsk) Hei, God dag +Polish Dzie.ANq Dobry, Hej +Russian (-L@caaZXY) 7T`PRabRcYbU!$)C +Spanish (Espa-Aqol) !Hola!$)C +Swedish (Svenska) Hej, Goddag +Turkish (T-A|rkge) Merhaba$)C +Yoguslavian Zdravo + +Japanese ($BF|K\8l(B) $B$3$s$K$A$O(B, (I:]FAJ(B +Chinese ($AVPND(B,$AFUM(;0(B,$A::So(B) $ADc:C(B +Hangul ($(CGQ1[(B) $(C>H3gGO<H3gGO=J4O1n(B + +``Nihao'' in various character sets:: + +Simplified Chinese: $)ADc:C (GB 2312-80) +Traditional Chinese: §A¦n (Big5) + $)GI#Go (CNS 11643-1992) +Japanese: $(D0_$B9%(B (JIS X 0212-1990 & JIS X 0208-1983) diff --git a/hello.sample.gif b/hello.sample.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad61c5ff3fffb6847860308704832f2cb5e1003a GIT binary patch literal 15351 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 + + + + LV Homepage + + + + +

+All rights reserved. Copyright (C) 1996-2004 by NARITA Tomio
+Last modified at Jan.16th,2004. + +


+ +

+ +

+ LV Homepage +

+ +
+

+ lv - a Powerful Multilingual File Viewer / Grep +

+ The latest version is ver 4.51: + Download +

+ +
+ + +

+Table of Contents

+
+

+

+
    +
  1. Copyright +
  2. Feature +
  3. Download lv +
  4. Installation +
  5. Usage + +
  6. Limitations +
  7. Coding systems + +
  8. Annotation about encoding/decoding scheme + +
  9. Auto selection of a coding system + +
  10. Extension for text decoration +
  11. Customization + +
  12. Bug report +
  13. Release note +
  14. Acknowledgement +
  15. Reference +
+
+ +
+ + +

+Copyright

+
+ +

+ +

+
+All rights reserved. Copyright (C) 1996-2004 by NARITA Tomio.
+
+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
+
+

+ See also GNU General Public License Version 2. +

+ +
+ + +

+Feature

+
+ +
    +
  • Multilingual file viewer

    + lv is a powerful multilingual file viewer. + Apparently, lv looks like less (1), + a representative file viewer on UNIX as you know, + so UNIX people (and less people on other OSs) + don't have to learn a burdensome new interface. + lv can be used on MSDOS ANSI terminals and almost all UNIX platforms. + lv is a currently growing software, + so your feedback is welcome + and helpful for us to refine the future lv. +

    +

  • Multiple coding systems

    + lv can decode and encode multilingual streams + through many coding systems, for example, + ISO 2022 based coding systems such as iso-2022-jp, + and EUC (Extended Unix Code) like euc-japan. + Furthermore, + localized coding systems + such as shift-jis, big5 and HZ are also supported. + lv can be used not only as a file viewer + but also as a coding-system translation filter + like nkf (1) and tcs (1). +

    +

  • Multilingual regular expressions / Multilingual grep

    + lv can recognize multi-bytes patterns as regular expressions, + and lv also provides multilingual grep (1) functionality + by giving it another name, lgrep. + Pattern matching is conducted in the charset level, + so an EUC fragment, for example, + can be found in the ISO 2022 tailored streams, of course. +

    +

  • Supporting the Unicode standard

    + lv provides Unicode facilities + which enables you to handle Unicode streams encoded in UTF-7 or UTF-8, + and lv can also convert their code-points + between Unicode and other charsets. + So you can display Unicode or foreign texts on your terminal, + using the code conversion function + to your favorite charsets via Unicode. + (However, MSDOS version of lv has none of the Unicode facility.) +

    +

  • ANSI escape sequence through

    + lv can recognize ANSI escape sequences for text decoration. + So you can look ANSI-decorated streams + such as colored source codes generated by another software + just like intended image on ANSI terminals. +

    +

  • Completely original

    + lv is a completely original software + including no code drawn from less and grep + and other programs at all. +
+ +
+ + +

+Sample Images

+
+ + + +
+ + +

+Download lv

+
+ +
+You can download lv archive. +Changes between older versions are described in +release note +(in Japanese). +
+ + + +
+ + +

+Installation

+
+ +
    + Standard installation: +

    +

      +
    1. Expand lv archive, using gunzip/tar. +
    2. Change your working directory to ``(extracted sub directory)/build''. +
    3. Execute ``../src/configure'' to configure compiler flags. +
    4. Launch ``make''. +
    5. Then, launch ``make install'' as root. +
    +

    + MSDOS installation: +

    + Before making lv, + you need to install + + LSI C-86 Compiler + + (limited and freeware version of LSI C-86 for sample usage). +

    +

      +
    1. Expand lv archive, using gunzip/tar. +
    2. Change your working directory to ``(extracted sub directory)/src''. +
    3. Launch ``make -f Makefile.dos''. +
    4. Copy ``lv.hlp'', brief help description, to the same directory + as lv.exe settled. +
    +

    + MSDOS version of lv directly outputs ANSI escape sequences + without regard to termcap and terminfo. + Perhaps you need an ANSI escape sequence driver named ``ANSI.SYS'' + (or more sophisticated one) on MSDOS + including DOS prompt on MS-Windoze. + Since Windoze-NT does not seem to prepare such drivers + for DOS prompt in default, + please look into the driver configuration + when lv fails to handle the terminal capability correctly. +

+ +
+ + +

+Usage

+
+ +
    + +
  • How to launch lv?

    +
    + When you just wish to display a file on a terminal, + please launch lv from command line like this: +

    +

    + % lv [options] files ...
    +
    +

    + Or, using redirect or pipe-line: +

    +

    + % another_command | lv [options]
    + % lv [options] < file +
    +

    + Compressed files that have suffix ``gz'', ``z'', or ``GZ'', ``Z'' are + extracted by lv using zcat (1), + and ``bz2'' or ``BZ2'' with bzcat (1). + Please install zcat and bzcat that can expand all of them. +

    + In case that standard output is not connected to an ordinal terminal + but to redirect or pipe-line, + lv works as a coding-system or code-points conversion filter + like nkf (1) and tcs (1). +

    + lv also works like grep (1) + by giving it another name, lgrep. + Please install symbolic (or hard) link + whose name is lgrep to lv (1). + Or, lgrep functionality is also turned on the option '-g'. + lgrep is used like below: +

    +

    + % lgrep [options] grep_pattern files ...
    + % another_command | lgrep [options] grep_pattern
    + % lgrep [options] grep_pattern < file +
    +

    + The coding-system of grep_pattern can be specified + as ``keyboard coding system'' (see below). +

    + +

  • Command line options

    +
    +

    +

    +
    -A<coding-system> +
    Set all coding systems to coding-system. +
    -I<coding-system> +
    Set input coding system to coding-system. +
    -K<coding-system> +
    Set keyboard coding system to coding-system. + If it is not set, output coding system will be applied to it. +
    -O<coding-system> +
    Set output coding system to coding-system. +
    -P<coding-system> +
    Set pathname coding system to coding-system. +
    -D<coding-system> +
    Set default EUC coding system to coding-system. +

    +

    coding-system

    +
      +
    • a: auto-select
      + Its entity is iso-2022-kr + until an 8bit code is found. +
    • c: iso-2022-cn +
    • j: iso-2022-jp +
    • k: iso-2022-kr +
    • e: Extended Unix Code +
        +
      • ec: euc-china +
      • ej: euc-japan +
      • ek: euc-korea +
      • et: euc-taiwan +
      +
    • u: UCS transformation format +
        +
      • u7: UTF-7 +
      • u8: UTF-8 +
      +
    • l: iso-8859-1..9 +
        +
      • l1..9: iso-8859-1..9 +
      • l0: iso-8859-10 +
      • lb,ld,le,lf,lg: iso-8859-11,13,14,15,16 +
      +
    • s: shift-jis +
    • b: big5 +
    • h: HZ +
    • r: raw mode
      + No decoding and encoding are performed. +
    +
    +

    +

    Coding-system translations / Code-points conversions:

    +

    + iso-2022-cn, -jp, -kr can be converted into euc-china or -taiwan, + euc-japan, euc-korea, respectively (and vice versa). + shift-jis uses the same internal code-points + as iso-2022-jp and euc-japan. +

    + Since big5 characters can be converted into CNS 11643-1992 + with negligible incompleteness, + big5 streams can be translated into iso-2022-cn or euc-taiwan + (and vice versa) with code-points conversion. + Note that the iso-2022-cn referred here is not GB sequence, + only just CNS one. + You should remember that lv cannot translate big5 into GB directly. +

    + The search function of lv may not work correctly when lv additionally + performs ``code-points'' conversion + (not ``coding-system'' translation), + because visible code and internal code are different from each other. + lv will try to avoid this problem with + converting charsets of search patterns automatically, + but this function is not always perfect. +

    +

    -W<number>
    Screen width +
    -H<number>
    Screen height +
    -E'<editor>'
    Editor name (default 'vi -c %d')
    + ``%d'' means the line number of current position in a file. +
    -q
    Assert there is delete/insert-lines control
    + Please set this option on a MSDOS ANSI terminal + that has capability to delete and/or insert lines. + As to termcap and terminfo version, + it will be set automatically. +

    +

    -Ss<seq>
    Set ANSI Standout sequence to (default "7") +
    -Sr<seq>
    Set ANSI Reverse sequence to (default "7") +
    -Sb<seq>
    Set ANSI Blink sequence to (default "5") +
    -Su<seq>
    Set ANSI Underline sequence to (default "4") +
    -Sh<seq>
    Set ANSI Highlight sequence to (default "1")
    + These sequences are inserted + between ``ESC ['' and ``m'' + to construct full ANSI escape sequences. +

    +

    -T<number>
    + Set Threshold-code which divides Unicode code-points in + two regions. Characters belonging to the lower region are + assumed to have a width of one, and the higher characters + are equated to a width of two. (Default: 12288, = 0x3000) +
    -m
    + Force Unicode code-points which have the same glyphs as + iso-8859-* to be Mapped to iso-8859-* in a conversion from + Unicode to another character set which also has the + corresponding code-points, in particular, Asian charsets. +

    +

    -a
    Adjust character set for search pattern (default) +
    -c
    Allow ANSI escape sequences for text decoration (Color) +
    -d, -i
    Make regexp-searches ignore case (case folD search) + (default) +
    -f
    Substitute Fixed strings for regular expressions +
    -k
    Convert X0201 Katakana to X0208 +
    -l
    Allow physical lines of each logical line printed + on the screen to be concatenated for cut and paste + after screen refresh +
    -s
    Force old pages to be swept out from the screen Smoothly +
    -u
    Unify several character sets, eg. JIS X0208 and C6226. + In addition, lv equates ISO 646 variants, + eg. JIS X0201-Roman, + and unknown charsets with ASCII. +
    -g
    Turn on lgrep mode. +
    -n
    Prefix each line of output with the line number within its input file on lgrep. +
    -v
    Invert the sense of matching on lgrep. +
    -z
    Enable HZ auto-detection (also enabled by run-time C-t). +

    +

    -+
    Clear all options
    + You can also turn OFF specified options, + using ``+<option>'' like +c, +d, ... +z. +

    +

    -
    Treat the following arguments as filenames +

    +

    -V
    Show lv version +
    -h
    Show this help +
    +

    + +

  • Configuration

    +
    + Options can be described in the configuration file ``.lv'' + (``_lv'' on MSDOS) located at you home directory. If and only if you + use MSDOS, you can locate ``_lv'' at current working directory. + They can be also described in the environment variable LV. +

    + Every configuration will be overloaded in the following order if there is. + Command line options are always read finally. +

    +

      +
    1. .lv located at your home directory +
    2. (_lv located at current working directory: MSDOS only) +
    3. Environment variable LV +
    4. Command line options +
    +

    + Examples: +

    +

      +
    • MSDOS (Input is shift-jis, Screen height is 25 lines, Highlight seq is "1;45", Underline seq is "1")
      + set LV=-Is -H25 -Sh1;45 -Su1 +

      +

    • UNIX csh (Input is HZ-enabled auto-select, Output and Keyboard is both iso-2022-cn)
      + setenv LV '-z -Oc -Dec' +
    +

    + +

  • Run-time commands

    +
    +

    +

    +
    0-9:
    Argument +
    g, <:
    Jump to the line number (default: top of the file) +
    G, >:
    Jump to the line number (default: bottom of the file) +
    p:
    Jump to the percentage position in line numbers (0-100) +
    b, C-b:
    Previous page +
    u, C-u:
    Previous half page +
    k, w, C-k, y, C-y, C-p:
    Previous line +
    j, C-j, e, C-e, C-n, CR:
    Next line +
    d, C-d:
    Next half page +
    f, C-f, C-v, SP:
    Next page +
    F:
    Jump to the end of file, and wait for a data to be + appended to the file until interrupted. +
    /<string>:
    Find a string in the forward direction (regular expression) +
    ?<string>:
    Find a string in the backward direction (regular expression) +
    n:
    Repeat previous search in the forward direction +
    N:
    Repeat previous search in the backward direction (not REVERSE) +
    C-l:
    Redisplay all lines +
    r, C-r:
    Refresh screen and memory +
    R:
    Reload the current file +
    :n:
    Examine the next file +
    :p:
    Examine the previous file +
    t:
    Toggle input coding systems +
    T:
    Toggle input coding systems reversely +
    C-t:
    Toggle HZ decoding mode +
    v:
    Launch the editor defined by option -E +
    C-g, =:
    Show file information (filename, position, coding system) +
    V:
    Show LV version +
    C-z:
    Suspend (call SHELL or ``command.com'' under MSDOS) +
    q, Q:
    Quit +
    UP/DOWN:
    Previous/Next line +
    LEFT/RIGHT:
    Previous/Next half page +
    PageUp/PageDown:
    Previous/Next page +
    +

    + +

  • How to input search strings?

    +
    + You can input a string which consists of multi-bytes characters + and search the string as a regular expression. + lv's regular expression is similar to Mule's one. +

    + The following keys have special meanings in the keyboard input: +

    +

    +
    C-m, Enter
    Enter the current string +
    C-h, BS, DEL
    Delete one character (backspace) +
    C-u
    Cancel the current string and try again +
    C-p
    Restore a few old strings incrementally (history) +
    C-g
    Quit +
    +

    + +

  • Regular expressions

    +
    +
      +
    • `. (period)'
      + matches any single character. + For example, + ``a.b'' matches any three-character string which begins with + `a' and ends with `b'. +
    • `*'
      + constructs repetition of an expression more than 0 times. + For example, + ``ab*'' matches `a', `ab' `abb', etc. +
    • `+'
      + constructs repetition of an expression more than once. + For example, + ``ab+'' matches `ab', `abb', but not `a'. +
    • `?'
      + matches the preceding expression either once or not at all. + For example, + ``ca?r'' matches `car' or `cr'; nothing else. +
    • `[ ... ]'
      + makes a character set. + For example, + ``[ab]+'' matches any string composed of just `a's and `b's. + You can also include character ranges in a character set, + by writing two characters with a `-' between them. + For example, + ``[a-z]'' matches any lower-case letter. + If the characters implies a multi-bytes charset, + lv makes a multi-bytes range, + ordering code-points as unsigned integer. + Mutually overlapping ranges (or charset) are not guaranteed. +
    • `[^ ... ]'
      + makes a complemented character set. + For example, + ``[^a-z0-9A-Z]'' matches all characters + *except* letters and digits. +
    • `^'
      + matches the empty string at the beginning of a line. +
    • `$'
      + is similar to `^' but matches only at the end of a line. +
    • `\'
      + quotes the special characters. +
    • `\1'
      + matches characters each of which has a width of 1 column. +
    • `\2'
      + matches characters each of which has a width of 2 columns. +
    • `\|'
      + specifies an alternative. + For example, + ``foo\|bar'' matches either `foo' or `bar' but no other string. +
    • `\( ... \)'
      + \(, \) is a grouping construct. + For example, + ``ba\(na\)*'' matches `ba', `bana', `banana', etc. +
    +
+ +
+ + +

+Limitations

+
+ +
    +
  • Up to 8192 bytes per a logical line

    + lv manages file location pointers logically, + separating LOGICAL lines by LF (line feed) or CR (carriage return), + or CR/LF. + The length of a logical line is limited up to 8192 bytes. + And lv insert a LF forcibly when a line has a length over 8192 bytes. + Note that all of CRs or CR/LF are replaced with single LF on UNIX + during decoding. + As to MSDOS, + CRs are inserted before every LFs without thinking. +

    +

  • Physical lines per a logical line

    + A logical line is divided into PHYSICAL lines + to fall into the screen width. + lv limits physical lines up to "characters / 16" lines length + per a logical line for management of them. + Note that when a logical line has more lines, + the rest of the limit are truncated and not displayed at all. +

    +

  • Limitation of encoding space

    + Encoding space is limited upto "characters * 4" bytes length + for each decoded string. + Even if encoded string would be longer than that, + the encoding process is dropped at the limit. +

    +

  • Limitation of the number of logical lines

    + The number of logical lines is also limited. + Currently, + lv can handle up to about 2 Giga lines on UNIX + (65000 lines on MSDOS). + Note that lines which exceed this limitation cannot be displayed at all. +
+ +
+ + +

+Coding systems

+
+
    + +
  • ISO 2022 based coding systems

    +
    + lv handles ISO 2022 based coding systems as + they are stateless on the logical line level. + So you have to specify a coding system before decoding, + and lv maybe adds redundant codes during encoding. +

    +

      + +
    • iso-2022-cn
      +
      + RFC 1922 tailored coding system. +

      + +
      G0 G1 G2 G3 +
      Designation ASCII GB 2312-80, CNS 11643-1992 Plane 1, ISO-IR-165 CNS 11643-1992 Plane 2 CNS 11643-1992 Plane 3..7 +
      +

      + +

    • iso-2022-jp
      +
      + RFC 1468 and 1554 tailored coding system. + All 94charsets use G0, and all 96charsets use G2 with single shift + inside lv. +

      + +

    • iso-2022-kr
      +
      + RFC 1557 tailored coding system. + All charsets except ASCII use only G1 with locking shift + inside lv. +
    +

    + +

  • Extended Unix Code

    +
    + lv can decode mixture texts of euc-* and iso-2022-*, + when you select euc-* as the input coding system. +

    +

      + +
    • euc-china
      +
      + +
      G0 G1 G2 G3 +
      Designation ASCII GB 2312-80 not used not used +
      +

      + +

    • euc-japan
      +
      + +
      G0 G1 G2 G3 +
      Designation ASCII JIS X 0208 JIS X 0201 Katakana JIS X 0212 +
      +

      + +

    • euc-korea
      +
      + +
      G0 G1 G2 G3 +
      Designation ASCII KS C 5601-1987 not used not used +
      +

      + +

    • euc-taiwan
      +
      + +
      G0 G1 G2 G3 +
      Designation ASCII CNS 11643 Plane 1 CNS 11643 Plane 2-7 not used +
      +
    +

    + +

  • UCS transformation format

    +
    + +

    + lv can convert character codesets + between Unicode and the following charsets: + GB 2312-80, JIS X 0208, JIS X 0212, KSC 5601-1987, + Big Five, CNS 11643-1992 Plane 1-2, + and ISO 8859-1..16. +

    + Currently lv's mapping table is based on Unicode 1.1. +

    + +
    Encoding Charset used for mapping from Unicode +
    iso-2022-cn GB 2312-80 (primary), CNS 11643-1992 (secondary), (ISO 8859-*) +
    iso-2022-jp JIS X0208, JIS X0212, JIS X0201, (ISO 8859-*) +
    iso-2022-kr KSC 5601-1987, (ISO 8859-*) +
    euc-china GB 2312-80 +
    euc-japan JIS X0208, JIS X0212, JIS X0201 +
    euc-korea KSC 5601-1987 +
    euc-taiwan CNS 11643-1992 Plane 1-2 +
    shift-jis JIS X0208, JIS X0201 +
    big5 Big Five +
    +

    + When you output Unicode CJK unified ideographs through iso-2022-cn, + GB 2312-80 is used primarily, + and the rest which are not included in GB + are mapped into CNS 11643-1992. +

    + +

  • Other coding systems

    +
    +
      + +
    • iso-8859-*
      +
      + ASCII and one of ISO 8859/1-16 are designated on G0:G1 + invoked to GL:GR, respectively. +

      + +

    • shift-jis
      +
      + lv can decode mixture texts of shift-jis and iso-2022-jp, + when you select shift-jis as the input coding system. +

      + Note that euc-japan and shift-jis are mutually exclusive for decoding. +

      + +

    • big5
      +
      + Since big5 characters can be partially converted + into CNS 11643-1992 Plane 1-2, + lv can load big5 streams + and output them through ISO 2022 based coding systems or euc-taiwan. + Several big5 characters which have no correspondence to CNS + are output as ``?'' (question mark). +

      + +

    • HZ
      +
      + HZ is defined in RFC 1843. + It would consist of four escape sequences, ~~, ~{, ~}, and ~\n, + but lv does not support the last one, ~\n sequence, + and leaves it alone. + You should remember that lv does not conform full of RFC 1843. + HZ will be decoded as euc-china in lv. +

      + +

    • raw mode
      +
      + No decoding and encoding is performed. +
    +
+ +
+ + +

+Annotation about encoding/decoding scheme

+
+
    + +
  • Handling of invalid codes

    +
    + Characters belonging to invalid character sets, for example, + JIS X 0212 for shift-jis, + are printed as ASCII at its code-point + up to originally supposed width. +

    + Invalid characters which cause error state + under specified coding system + might be ignored partially. + If it is printable, + it will be output as a control character. +

    + +

  • Backspace

    +
    + BS (backspace) characters included in files + are interpreted as follows: +

    +

      +
    • <char> BS <char>
      + Highlighted <char> +
    • ``_'' BS <char>
      + Underlined <char> +
    • ``o'' BS ``+''
      + Highlighted ``o'' +
    • Otherwise
      + BS deletes a character on the left side of it. +
    +

    + +

  • How to look in a binary file?

    +
    + Decoding of lv is robust even for binary files. + You can look in a binary file and decode embedded strings in it. + However, + there might be ignored characters if you decode binary files + through a particular coding system. + Option -Ir, raw decoding, saves such ignored characters other than CRs. +
+ +
+ + +

+Auto selection of a coding system

+
+
    + +
  • Default coding system

    +
    + Default input coding system is auto-select described below. + In auto selection state, + lv decodes an input stream as iso-2022-kr. + Default output coding system is iso-2022-jp on UNIX, + or shift-jis on MSDOS (as long as Japanese version of lv). +

    + If you don't specify any input coding system, + that is, when auto-select is specified, + lv will select input coding system automatically. +

    + +

  • How does lv select a coding system?

    +
    + Auto selection state continues until an 8bit code is found, + and the auto selection of input coding system is performed on demand. +

    + When a 8bit code is found during file loading + and the input coding syste is auto-select (its entity is iso-2022-kr), + lv examines ``the first line that contains the first 8bit code''. + Then lv tries several 8bit decodings as below: +

    +

      +
    • simple euc decoding test (included euc-china and euc-korea) +
    • euc-japan (or euc-taiwan) decoding test +
    • big5 decoding test +
    • shift-jis decoding test +
    • utf-8 decoding test (only on platforms other than MSDOS) +
    +

    + The coding system cheking results are examined in the following order: +

    +

      +
    1. Only when there is no error state in simple euc decoding, + lv will assumes the input coding system is + default EUC coding system, + which is defined by option -D. +
    2. Only when there is no error state in euc-japan (or euc-taiwan) decoding, + lv will assumes the input coding system is euc-japan + (Japanese version). + Since there is no syntactical difference + between euc-taiwan and euc-japan, + this action is to be altered in Taiwanese environment. +
    3. Only when there is no error state in big5 decoding, + lv will assumes the input coding system is big5. + Since big5 sequences are similar to EUCs, + sometimes its streams will be misunderstood as EUCs. +
    4. Only when there is no error state in shift-jis decoding, + lv will assumes the input coding system is shift-jis. + Since shift-jis shares code-points with EUCs partially, + its streams may be possibly misunderstood as EUCs. +
    5. Only when there is no error state in utf-8 decoding, + lv will assumes the input coding system is utf-8. + Like big5 and shift-jis, + sometimes its steams will be misinterpreted + as another coding system. +
    6. Otherwise, + lv will assumes the input coding system is + ISO 8859-1 (latin-1). +
    +

    + If a text contains only EUC code points, + it is hard to identify the language + the EUC coding system represents. + So lv provides default EUC coding system + used when lv chooses the input coding system from EUCs. + Default EUC coding system is set by option -D + (euc-japan on Japanese version LV). +

    + You can toggle coding systems even while viewing a file + by run-time command `t' and `T', + which traverses through all coding sytems implemented in LV. + In addition, + you can toggle HZ decoding mode by C-t on demand. +

    + You should remember that + the auto-selection mechanism of LV works incorrectly in some cases. + Especially, + if a text contains only JIS X 0201 Katakana in shift-jis, + it will be misinterpreted as euc-japan. +

    + If the result of auto selection is incorrect + and you know the input coding system, + please set it by the option -I, + which disables auto selection. +

+ +
+ + +

+Extension for text decoration

+
+
    +
  • + Option -c enables ANSI escape sequences + in the form of ESC [ ps ; ... ; ps m, + where ps takes following values: +

    +

      +
    • 1: Highlight +
    • 4: Underline +
    • 5: Blink +
    • 7: Reverse +
    • 30: Black +
    • 31: Red +
    • 32: Green +
    • 33: Yellow +
    • 34: Blue +
    • 35: Magenta +
    • 36: Cyan +
    • 37: White +
    • 40-47: Reverse of 30-37 +
    +

    +

  • Every sequence is independent of one another. + lv will reset all values before new value is set. + Meanwhile, + multiple pss are accepted within one sequence. +
  • Every sequence is only effective within a logical line. + On crossing logical lines, + all attributes are reset automatically. + Please recall that lv handles each logical line as stateless. +
  • You can specify one color at once. + When multiple colors are specified, + the last one is effective. +
  • As to reversed characters, + a specified color is applied to the ``reversed background color''. + You cannot specify the color of ``out-clipped characters''. +
  • You can customize actual sequences to be output to the screen. + Please specify them by option -S. +
+ +
+ + +

+Customization

+
+
    +
  • Customization for command key bindings
    + Please modify the keybind table in keybind.h. +

    +

  • Customization for terminal controls
    + When you add a new terminal control, + please add codes to console.c. + When you wish to change interpretation of escape sequences, + please modify console.c and escape.c. + However, some ANSI escape sequences are configurable through options. +

    +

  • Changing default screen size of MSDOS ANSI terminals
    + Default screen size is 80 columns by 24 rows. + To change this, + please modify console.c. + However, screen size can be specified through options. +

    +

  • Changing default coding systems
    + Currently, Japanese version of lv uses following values: +

    +

    + +
    MSDOS UNIX +
    Input: auto-select auto-select +
    Keyboard: shift-jis iso-2022-jp +
    Output: shift-jis iso-2022-jp +
    Pathname: shift-jis iso-2022-jp +
    Default EUC: euc-japan euc-japan +
    +
    +

    + To change above, + please modify lv.c. + However, + those coding systems can be specified through options. +

    +

  • Customization for coding systems
    + Currently, + an ISO 2022 universal decoder, + and EUC, HZ, shift-jis, big5, UTF-7, UTF-8 decoders are implemented. + When you wish to add another coding systems, + please add source codes, + referencing ctable_t.h, ctable.c, encode.c, decode.c, iso2022.c, etc. +

    +

  • Customization for character sets
    + Please add your favorite character sets, + referencing itable_t.h, itable.c, etc. + Currently recognized character sets are itemized below. + You have to specify code length (bytes) and graphical width (columns) + of each character as attributes. + There is no necessity that + code length and graphical width equal each other. + Current implementation does not support per character length, + but you can specify the maximum length of them in itable, + it may not cause problems. + You cannot add charsets whose code length is more than 3 bytes. + (If you desire to do it, + you can add only little modification to lv, + so up to 4bytes charsets can be supported by lv.) +

    +

    + ISO 646 United States (ANSI X3.4-1968)
    + JIS X0201-1976 Japanese Roman
    + JIS X0201-1976 Japanese Katakana
    + ISO 8859/1 Latin alphabet No.1 Right part
    + ISO 8859/2 Latin alphabet No.2 Right part
    + ISO 8859/3 Latin alphabet No.3 Right part
    + ISO 8859/4 Latin alphabet No.4 Right part
    + ISO 8859/5 Cyrillic alphabet
    + ISO 8859/6 Arabic alphabet
    + ISO 8859/7 Greek alphabet
    + ISO 8859/8 Hebrew alphabet
    + ISO 8859/9 Latin alphabet No.5 Right part
    + ISO 8859/10 Latin alphabet No.6 Right part (Nordic)
    + ISO 8859/11 Thai alphabet
    + ISO 8859/13 Latin alphabet No.7 Right part (Baltic Rim)
    + ISO 8859/14 Latin alphabet No.8 Right part (Celtic)
    + ISO 8859/15 Latin alphabet No.9 Right part
    + ISO 8859/16 Latin alphabet No.10 Right part
    + JIS C 6226-1978 Japanese kanji
    + GB 2312-80 Chinese hanzi
    + JIS X 0208-1983 Japanese kanji
    + KS C 5601-1987 Korean graphic charset
    + JIS X 0212-1990 Supplementary charset
    + ISO-IR-165
    + CNS 11643-1992 Plane 1..7
    + JIS X 0213-2000 Plane 1..2
    + Big5 Traditional Chinese
    + Unicode 1.1
    +
    +

    + These charset are only recognized by lv, + and it is depend on your terminal's capability + that actually can display them or not. +

    + Inversely, + you can handle non-listed charsets above as latin-1 + in such case as a 8bit coding system is displayed on a 8bit terminal. + (If there is no code conversion and each character has one column.) +

+ + + +
+ + +

+Bug report

+ +
+Please send a bug report to +nrt@ff.iij4u.or.jp +when you find any bugs around lv. +
+ +
+ + +

+Release note

+
+ +
+ Click here. (in Japanese) +
+ +
+ + +

+Acknowledgement

+
+ +
+ I would like to express my $B46 + $B8eF#$5$s(B(gotom@debian.or.jp)
+

+ $BLnB<$5$s(B(nomu@ipl.mech.nagoya-u.ac.jp)
+ $B@PDM$5$s(B(ishizuka@db.is.kyushu-u.ac.jp)
+ $BLnCf$5$s(B(nona@in.it.okayama-u.ac.jp)
+ $B>>86$5$s(B(moody@osk.threewebnet.or.jp)
+ $BB<0f$5$s(B(murai@geophys.hokudai.ac.jp)
+

+ +
+ + +

+Reference

+
+ +
    +
  • JIS X 0202-1991 $B>pJs8r49MQId9f$N3HD%K!(B
    + Information processing - ISO 7-bit and 8-bit coded character sets + - Code extension techniques +
  • JIS X 0208-1990 $B>pJs8r49MQ4A;zId9f(B
    + Code of the Japanese graphic character set for information interchange +
  • JIS X 0212-1990 $B>pJs8r49MQ4A;zId9f(B - $BJd=u4A;z(B
    + Code of the supplementary Japanese graphic character set for + information interchange +
  • RFC 1468 Japanese Character Encoding for Internet Messages +
  • RFC 1554 ISO-2022-JP-2: Multilingual Extension of ISO-2022-JP +
  • RFC 1557 Korean Character Encoding for Internet Messages +
  • RFC 1843 HZ - A Data Format for Exchanging Files of Arbitrarily Mixed Chinese and ASCII characters +
  • RFC 1922 Chinese Character Encoding for Internet Messages +
  • RFC 2152 UTF-7 A Mail-Safe Transformation Format of Unicode
    +
  • RFC 2279 UTF-8, a transformation format of ISO 10646 +
  • Understanding Japanese Information Processing ($B!XF|K\8l>pJs=hM}!Y(B)
    + Ken Lunde O'Reilly & Associates, Inc. ISBN 1-56592-043-0 +
  • CJK.INF Version 2.1 (July 12, 1996)
    + Online Companion to "Understanding Japanese Information Processing"
    + Ken Lunde +
  • Unicode Mapping Data at the Unicode Consortium web site. +
  • Compilers - Principles, Techniques, and Tools
    + Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman + Addison-Wesley, ISBN 0-201-10088-6 +
+ +
+ +
+ +Back to +NARITA Tomio +
+email: nrt@ff.iij4u.or.jp
+Homepage: http://www.ff.iij4u.or.jp/~nrt/
+
+ + + diff --git a/lv.1 b/lv.1 new file mode 100644 index 0000000..8a3222f --- /dev/null +++ b/lv.1 @@ -0,0 +1,339 @@ +.TH LV 1 "v.4.51 (Jan.16th,2004)" +.SH NAME +lv \- a Powerful Multilingual File Viewer / Grep +.SH SYNOPSIS +.B lv, lgrep +.br +.B lv +-h +.br +.B lv +-V +.br +.B lv +[-[+]acdfgiklmnqsuvz] +.br + [-A\fIcoding-system\fP] [-I\fIcoding-system\fP] [-K\fIcoding-system\fP] +.br + [-O\fIcoding-system\fP] [-P\fIcoding-system\fP] [-D\fIcoding-system\fP] +.br + [-Ss\fIseq\fP] [-Sr\fIseq\fP] [-Sb\fIseq\fP] [-Su\fIseq\fP] [-Sh\fIseq\fP] +.br + [-T\fInumber\fP] [-W\fIwidth\fP] [-H\fIheight\fP] [-E'\fIeditor'\fP] [-+] +.br + [-] (\fIgrep pattern\fP) [\fIfiles ...\fP] +.SH DESCRIPTION +.IP "\fIMultilingual file viewer\fP" +\fIlv\fP is a powerful multilingual file viewer. +Apparently, lv looks like \fIless\fP (1), +a representative file viewer on UNIX as you know, +so UNIX people (and \fIless\fP people on other OSs) +don't have to learn a burdensome new interface. +lv can be used on MSDOS ANSI terminals and almost all UNIX platforms. +lv is a currently growing software, +so your feedback is welcome +and helpful for us to refine the future lv. +.IP "\fIMultiple coding systems\fP" +lv can decode and encode multilingual streams +through many coding systems, for example, +ISO 2022 based coding systems such as iso-2022-jp, +and EUC (Extended Unix Code) like euc-japan. +Furthermore, +localized coding systems +such as shift-jis, big5 and HZ are also supported. +lv can be used not only as a file viewer +but also as a coding-system translation filter +like \fInkf\fP (1) and \fItcs\fP (1). +.IP "\fIMultilingual regular expressions / Multilingual grep\fP" +lv can recognize multi-bytes patterns as regular expressions, +and lv also provides multilingual \fIgrep\fP (1) functionality +by giving it another name, \fIlgrep\fP. +Pattern matching is conducted in the charset level, +so an EUC fragment, for example, +can be found in the ISO 2022 tailored streams, of course. +.IP "\fISupporting the Unicode standard\fP" +lv provides Unicode facilities +which enables you to handle Unicode streams encoded in UTF-7 or UTF-8, +and lv can also convert their code-points +between Unicode and other charsets. +So you can display Unicode or foreign texts on your terminal, +using the code conversion function +to your favorite charsets via Unicode. +(However, MSDOS version of lv has none of the Unicode facility.) +.IP "\fIANSI escape sequence through\fP" +lv can recognize ANSI escape sequences for text decoration. +So you can look ANSI-decorated streams +such as colored source codes generated by another software +just like intended image on ANSI terminals. +.IP "\fICompletely original\fP" +lv is a completely original software +including no code drawn from \fIless\fP and \fIgrep\fP +and other programs at all. +.SH "OPTIONS" +.IP "-A<\fIcoding-system\fP>" +Set all coding systems to \fIcoding-system\fP. +.IP "-I<\fIcoding-system\fP>" +Set input coding system to \fIcoding-system\fP. +.IP "-K<\fIcoding-system\fP>" +Set keyboard coding system to \fIcoding-system\fP. +If it is not set, output coding system will be applied to it. +.IP "-O<\fIcoding-system\fP>" +Set output coding system to \fIcoding-system\fP. +.IP "-P<\fIcoding-system\fP>" +Set pathname coding system to \fIcoding-system\fP. +.IP "-D<\fIcoding-system\fP>" +Set default (fall-back) coding system to \fIcoding-system\fP. +.IP "coding-system:" +a: auto-select +.br +c: iso-2022-cn +.br +j: iso-2022-jp +.br +k: iso-2022-kr +.br +ec: euc-china +.br +ej: euc-japan +.br +ek: euc-korea +.br +et: euc-taiwan +.br +u7: UTF-7 +.br +u8: UTF-8 +.br +l1..9: iso-8859-1..9 +.br +l0: iso-8859-10 +.br +lb,ld,le,lf,lg: iso-8859-11,13,14,15,16 +.br +s: shift-jis +.br +b: big5 +.br +h: HZ +.br +r: raw mode +.IP "Examples:" +-Il2: input coding system is iso-8859-2 +.br +-Ks: keyboard coding system is shift-jis +.br +-Oek: output coding system is euc-korea +.br +-Ab: all coding systems are big5 +.IP "Coding-system translations / Code-points conversions:" +iso-2022-cn, -jp, -kr can be converted into euc-china or -taiwan, +euc-japan, euc-korea, respectively (and vice versa). +shift-jis uses the same internal code-points +as iso-2022-jp and euc-japan. +.sp +Since big5 characters can be converted into CNS 11643-1992 +with negligible incompleteness, +big5 streams can be translated into iso-2022-cn or euc-taiwan +(and vice versa) with code-points conversion. +Note that the iso-2022-cn referred here is not GB sequence, +only just CNS one. +You should remember that lv cannot translate big5 into GB directly. +.sp +The search function of lv may not work correctly when lv additionally +performs ``code-points'' conversion +(not ``coding-system'' translation), +because visible code and internal code are different from each other. +lv will try to avoid this problem with +converting charsets of search patterns automatically, +but this function is not always perfect. +.IP "-W<\fInumber\fP>" +Screen width +.IP "-H<\fInumber\fP>" +Screen height +.IP "-E'<\fIeditor\fP>' (default 'vi -c %d')" +Editor name (default 'vi -c %d') +.br +``%d'' means the line number of current position in a file. +.IP "-q" +Assert there is delete/insert-lines control. +.br +Please set this option on a MSDOS ANSI terminal +that has capability to delete and/or insert lines. +As to termcap and terminfo version, +it will be set automatically. +.IP "-Ss<\fIseq\fP>" +Set ANSI Standout sequence to \fIseq\fP (default "7") +.IP "-Sr<\fIseq\fP>" +Set ANSI Reverse sequence to \fIseq\fP (default "7") +.IP "-Sb<\fIseq\fP>" +Set ANSI Blink sequence to \fIseq\fP (default "5") +.IP "-Su<\fIseq\fP>" +Set ANSI Underline sequence to \fIseq\fP (default "4") +.IP "-Sh<\fIseq\fP>" +Set ANSI Highlight sequence to \fIseq\fP (default "1") +.sp +These sequences are inserted +between ``ESC ['' and ``m'' +to construct full ANSI escape sequences. +.br +.IP "-T<\fInumber\fP>" +Set Threshold-code which divides Unicode code-points in +two regions. Characters belonging to the lower region are +assumed to have a width of one, and the higher characters +are equated to a width of two. (Default: 12288, = 0x3000) +.IP "-m" +Force Unicode code-points which have the same glyphs as +iso-8859-* to be Mapped to iso-8859-* in a conversion from +Unicode to another character set which also has the +corresponding code-points, in particular, Asian charsets. +.br +.IP "-a" +Adjust character set for search pattern (default) +.IP "-c" +Allow ANSI escape sequences for text decoration (Color) +.IP "-d, -i" +Make regexp-searches ignore case (case folD search) (default) +.IP "-f" +Substitute Fixed strings for regular expressions +.IP "-k" +Convert X0201 Katakana to X0208 while decoding +.IP "-l" +Allow physical lines of each logical line printed on the screen +to be concatenated for cut and paste after screen refresh +.IP "-s" +Force old pages to be swept out from the screen Smoothly +.IP "-u" +Unify several character sets, eg. JIS X0208 and C6226. +In addition, lv equates ISO 646 variants, +eg. JIS X0201-Roman, +and unknown charsets with ASCII. +.IP "-g" +Turn on lgrep mode. +.IP "-n" +Prefix each line of output with the line number within its input file on lgrep. +.IP "-v" +Invert the sense of matching on lgrep. +.IP "-z" +Enable HZ auto-detection (also enabled by run-time C-t). +.br +.IP "-+" +Clear all options +.br +You can also turn OFF specified options, +using ``+