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 0000000..ad61c5f Binary files /dev/null and b/hello.sample.gif differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..751becb --- /dev/null +++ b/index.html @@ -0,0 +1,1225 @@ + + + + + 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 ``+