diff --git a/README_os390.txt b/README_os390.txt index b03eb140be..f4e673610d 100644 --- a/README_os390.txt +++ b/README_os390.txt @@ -1,51 +1,84 @@ -README_os_390.txt for version 7.3a of Vim: Vi IMproved. +README_zOS.txt for version 7.3 of Vim: Vi IMproved. -Welcome to the OS/390 Unix port of VIM. +This readme explains how to build Vim on z/OS. Formerly called OS/390. +See "README.txt" for general information about Vim. -ATTENTION: THIS IS AN _ALPHA_ VERSION!!! -I expect you to know how to handle alpha software! +Most likley there are not many users out there using Vim on z/OS. So chances +are good, that some bugs are still undiscovered. -This port was done by Ralf Schandl . -This port is not maintained or supported by IBM!! +Getting the source to z/OS: +========================== +First get the source code in one big tar file and ftp it a binary to z/OS. If +the tar file is initially compressed with gzip (tar.gz) or bzip2 (tar.bz2) +uncompress it on your PC, as this tools are (most likely) not available on the +mainframe. -For the list of changes see runtime/doc/os_390.txt. +To reduce the size of the tar file you might compress it into a zip file. On +z/OS Unix you might have the command "jar" from java to uncompress a zip. Use: + jar xvf + +Unpack the tar file on z/OS with + pax -o from=ISO8859-1,to=IBM-1047 -rf vim.tar + +Note: The Vim source contains a few bitmaps etc which will be destroyed by +this command, but these files are not needed on zOS (at least not for the +console version). Compiling: ----------- +========== -Note: After the file configure was created via autoconf, it had been - handedited, to make the test for ICEConnectionNumber work. - DO NOT run autoconf again! +Vim can be compiled with or without GUI support. For 7.3 only the compilation +without GUI was tested. Below is a section about compiling with X11 but this +is from an earlier version of Vim. -Without X11: +Console only: +------------- If you build VIM without X11 support, compiling and building is nearly -straightforward. The only restriction is, that you can't call make from the -VIM toplevel directory. Change to the src directory first and call make from -there. Here is a what to do: +straightforward. + +Change to the vim directory and do: # Don't use c89! - # Make additional symbols visible. # Allow intermixing of compiler options and files. $ export CC=cc - $ export CFLAGS=-D_ALL_SOURCE $ export _CC_CCMODE=1 - $./configure --enable-max-features --without-x --enable-gui=no + $./configure --with-features=big --without-x --enable-gui=no $ cd src $ make + + There may be warnings: + - include files not found (libc, sys/param.h, ...) + - Redeclaration of ... differs from ... + -- just ignore them. + $ make test - Note: Test 28 will be reported as failed. This is because diff can't - compare files containing '\0' characters. Test 11 will fail if you - don't have gzip. + This will produce lots of garbage on your screen (including error + messages). Don't worry. + + If the test stops at one point in vim (might happen in test 11), just + press :q! + + Expected test failures: + 11: If you don't have gzip installed + 24: test of backslash sequences in regexp are ASCII dependent + 42: Multibyte is not supported on z/OS + 55: ASCII<->EBCDIC sorting + 57: ASCII<->EBCDIC sorting + 58: Spell checking is not supported with EBCDIC + 71: Blowfish encryption doesn't work $ make install With X11: +--------- + +WARNING: This instruction was not tested with Vim 7.3. There are two ways for building VIM with X11 support. The first way is simple and results in a big executable (~13 Mb), the second needs a few additional @@ -54,8 +87,6 @@ you want Motif. The easy way: $ export CC=cc - $ export CFLAGS="-D_ALL_SOURCE -W c,dll" - $ export LDFLAGS="-W l,dll" $ export _CC_CCMODE=1 $ ./configure --enable-max-features --enable-gui=motif $ cd src @@ -65,7 +96,7 @@ you want Motif. The smarter way: Make VIM as described above. Then create a file named 'link.sed' with the - following content: + following content (see src/link.390): s/-lXext *//g s/-lXmu *//g @@ -84,47 +115,3 @@ you want Motif. See the Makefile and the file link.sh on how link.sed is used. -Hint: ------ -Use the online help! (See weaknesses below.) - -Example: -Enter ':help syntax' and then press several times, you will switch -through all help items containing 'syntax'. Press on the one you are -interested at. Or press and you will get a list of all items printed -that contain 'syntax'. - -The helpfiles contains cross-references. Links are between '|'. Position the -cursor on them and press to follow this link. Use to jump -back. - -Known weaknesses: ------------------ - -- You can't call make from the toplevel directory, you have to do a 'cd src' - first. If you do it, make will call configure again. I don't know why and - didn't investigate it, there were more important things to do. If you can - make it work drop me a note. - -- The documentation was not updated for this alpha release. It contains lot of - ASCII dependencies, especially in examples. - -- Digraphs are dependent on code page 1047. Digraphs are used to enter - characters that normally cannot be entered by an ordinary keyboard. - See ":help digraphs". - -- Using 'ga' to show the code of the character under the cursor shows the - correct dec/hex/oct values, but the other informations might be missing or - wrong. - -- The sed syntax file doesn't work, it is ASCII dependent. - -Bugs: ------ -If you find a bug please inform me (schandl@de.ibm.com), don't disturb Bram -Moolenaar. It's most likely a bug I introduced during porting or some ASCII -dependency I didn't notice. - -Feedback: ---------- -Feedback welcome! Just drop me a note. diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile index 2f697508b0..a8a6410d53 100644 --- a/runtime/doc/Makefile +++ b/runtime/doc/Makefile @@ -37,6 +37,7 @@ DOCS = \ hangulin.txt \ hebrew.txt \ help.txt \ + helphelp.txt \ howto.txt \ if_cscop.txt \ if_mzsch.txt \ diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 1a30d7fc50..78d91ffdb6 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1286,7 +1286,7 @@ v:beval_winnr The number of the window, over which the mouse pointer is. Only *v:char* *char-variable* v:char Argument for evaluating 'formatexpr' and used for the typed - character when using in an abbreviation |map-|. + character when using in an abbreviation |:map-|. *v:charconvert_from* *charconvert_from-variable* v:charconvert_from @@ -5773,6 +5773,8 @@ undofile({name}) *undofile()* with name {name} when writing. This uses the 'undodir' option, finding directories that exist. It does not check if the undo file exist. + {name} is always expanded to the full path, since that is what + is used internally. Useful in combination with |:wundo| and |:rundo|. When compiled without the +persistent_undo option this always returns an empty string. diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt index 4ca68ab7b3..ea7693139a 100644 --- a/runtime/doc/help.txt +++ b/runtime/doc/help.txt @@ -26,6 +26,7 @@ Get specific help: It is possible to go directly to whatever you want help Option ' :help 'textwidth' Search for help: Type ":help word", then hit CTRL-D to see matching help entries for "word". + Or use ":helpgrep word". |:helpgrep| VIM stands for Vi IMproved. Most of VIM was made by Bram Moolenaar, but only through the help of many others. See |credits|. @@ -90,6 +91,7 @@ REFERENCE MANUAL: These files explain every detail of Vim. *reference_toc* General subjects ~ |intro.txt| general introduction to Vim; notation used in help files |help.txt| overview and quick reference (this file) +|helphelp.txt| about using the help files |index.txt| alphabetical index of all commands |help-tags| all the tags you can jump to (index of tags) |howto.txt| how to do the most common editing tasks @@ -209,10 +211,11 @@ Now that you've jumped here with CTRL-] or a double mouse click, you can use CTRL-T, CTRL-O, g, or to go back to where you were. Note that tags are within | characters, but when highlighting is enabled these -are hidden. That makes it easier to read a command. +characters are hidden. That makes it easier to read a command. Anyway, you can use CTRL-] on any word, also when it is not within |, and Vim -will try to find help for it. +will try to find help for it. Especially for options in single quotes, e.g. +'compatible'. ------------------------------------------------------------------------------ vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl: diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt new file mode 100644 index 0000000000..eea639fd21 --- /dev/null +++ b/runtime/doc/helphelp.txt @@ -0,0 +1,340 @@ +*helphelp.txt* For Vim version 7.3a. Last change: 2008 Jul 21 + + + VIM REFERENCE MANUAL by Bram Moolenaar + + +Help on help files *helphelp* + +1. Help commands |online-help| +2. Translating help files |help-translated| +3. Writing help files |help-writing| + +============================================================================== +1. Help commands *online-help* + + *help* ** *:h* *:help* ** *i_* *i_* + or +:h[elp] Open a window and display the help file in read-only + mode. If there is a help window open already, use + that one. Otherwise, if the current window uses the + full width of the screen or is at least 80 characters + wide, the help window will appear just above the + current window. Otherwise the new window is put at + the very top. + The 'helplang' option is used to select a language, if + the main help file is available in several languages. + {not in Vi} + + *{subject}* *E149* *E661* +:h[elp] {subject} Like ":help", additionally jump to the tag {subject}. + {subject} can include wildcards like "*", "?" and + "[a-z]": + :help z? jump to help for any "z" command + :help z. jump to the help for "z." + If there is no full match for the pattern, or there + are several matches, the "best" match will be used. + A sophisticated algorithm is used to decide which + match is better than another one. These items are + considered in the computation: + - A match with same case is much better than a match + with different case. + - A match that starts after a non-alphanumeric + character is better than a match in the middle of a + word. + - A match at or near the beginning of the tag is + better than a match further on. + - The more alphanumeric characters match, the better. + - The shorter the length of the match, the better. + + The 'helplang' option is used to select a language, if + the {subject} is available in several languages. + To find a tag in a specific language, append "@ab", + where "ab" is the two-letter language code. See + |help-translated|. + + Note that the longer the {subject} you give, the less + matches will be found. You can get an idea how this + all works by using commandline completion (type CTRL-D + after ":help subject" |c_CTRL-D|). + If there are several matches, you can have them listed + by hitting CTRL-D. Example: > + :help cont +< To use a regexp |pattern|, first do ":help" and then + use ":tag {pattern}" in the help window. The + ":tnext" command can then be used to jump to other + matches, "tselect" to list matches and choose one. > + :help index| :tse z. +< When there is no argument you will see matches for + "help", to avoid listing all possible matches (that + would be very slow). + The number of matches displayed is limited to 300. + + This command can be followed by '|' and another + command, but you don't need to escape the '|' inside a + help command. So these both work: > + :help | + :help k| only +< Note that a space before the '|' is seen as part of + the ":help" argument. + You can also use or to separate the help + command from a following command. You need to type + CTRL-V first to insert the or . Example: > + :help soonly +< {not in Vi} + +:h[elp]! [subject] Like ":help", but in non-English help files prefer to + find a tag in a file with the same language as the + current file. See |help-translated|. + + *:helpg* *:helpgrep* +:helpg[rep] {pattern}[@xx] + Search all help text files and make a list of lines + in which {pattern} matches. Jumps to the first match. + The optional [@xx] specifies that only matches in the + "xx" language are to be found. + You can navigate through the matches with the + |quickfix| commands, e.g., |:cnext| to jump to the + next one. Or use |:cwindow| to get the list of + matches in the quickfix window. + {pattern} is used as a Vim regexp |pattern|. + 'ignorecase' is not used, add "\c" to ignore case. + Example for case sensitive search: > + :helpgrep Uganda +< Example for case ignoring search: > + :helpgrep uganda\c +< Example for searching in French help: > + :helpgrep backspace@fr +< The pattern does not support line breaks, it must + match within one line. You can use |:grep| instead, + but then you need to get the list of help files in a + complicated way. + Cannot be followed by another command, everything is + used as part of the pattern. But you can use + |:execute| when needed. + Compressed help files will not be searched (Fedora + compresses the help files). + {not in Vi} + + *:lh* *:lhelpgrep* +:lh[elpgrep] {pattern}[@xx] + Same as ":helpgrep", except the location list is used + instead of the quickfix list. If the help window is + already opened, then the location list for that window + is used. Otherwise, a new help window is opened and + the location list for that window is set. The + location list for the current window is not changed. + + *:exu* *:exusage* +:exu[sage] Show help on Ex commands. Added to simulate the Nvi + command. {not in Vi} + + *:viu* *:viusage* +:viu[sage] Show help on Normal mode commands. Added to simulate + the Nvi command. {not in Vi} + +When no argument is given to |:help| the file given with the 'helpfile' option +will be opened. Otherwise the specified tag is searched for in all "doc/tags" +files in the directories specified in the 'runtimepath' option. + +The initial height of the help window can be set with the 'helpheight' option +(default 20). + +Jump to specific subjects by using tags. This can be done in two ways: +- Use the "CTRL-]" command while standing on the name of a command or option. + This only works when the tag is a keyword. "" and + "g" work just like "CTRL-]". +- use the ":ta {subject}" command. This also works with non-keyword + characters. + +Use CTRL-T or CTRL-O to jump back. +Use ":q" to close the help window. + +If there are several matches for an item you are looking for, this is how you +can jump to each one of them: +1. Open a help window +2. Use the ":tag" command with a slash prepended to the tag. E.g.: > + :tag /min +3. Use ":tnext" to jump to the next matching tag. + +It is possible to add help files for plugins and other items. You don't need +to change the distributed help files for that. See |add-local-help|. + +To write a local help file, see |write-local-help|. + +Note that the title lines from the local help files are automagically added to +the "LOCAL ADDITIONS" section in the "help.txt" help file |local-additions|. +This is done when viewing the file in Vim, the file itself is not changed. It +is done by going through all help files and obtaining the first line of each +file. The files in $VIMRUNTIME/doc are skipped. + + *help-xterm-window* +If you want to have the help in another xterm window, you could use this +command: > + :!xterm -e vim +help & +< + + *:helpfind* *:helpf* +:helpf[ind] Like |:help|, but use a dialog to enter the argument. + Only for backwards compatibility. It now executes the + ToolBar.FindHelp menu entry instead of using a builtin + dialog. {only when compiled with |+GUI_GTK|} +< {not in Vi} + + *:helpt* *:helptags* + *E154* *E150* *E151* *E152* *E153* *E670* +:helpt[ags] [++t] {dir} + Generate the help tags file(s) for directory {dir}. + All "*.txt" and "*.??x" files in the directory are + scanned for a help tag definition in between stars. + The "*.??x" files are for translated docs, they + generate the "tags-??" file, see |help-translated|. + The generated tags files are sorted. + When there are duplicates an error message is given. + An existing tags file is silently overwritten. + The optional "++t" argument forces adding the + "help-tags" tag. This is also done when the {dir} is + equal to $VIMRUNTIME/doc. + To rebuild the help tags in the runtime directory + (requires write permission there): > + :helptags $VIMRUNTIME/doc +< {not in Vi} + + +============================================================================== +2. Translated help files *help-translated* + +It is possible to add translated help files, next to the original English help +files. Vim will search for all help in "doc" directories in 'runtimepath'. +This is only available when compiled with the |+multi_lang| feature. + +At this moment translations are available for: + Chinese - multiple authors + French - translated by David Blanchet + Italian - translated by Antonio Colombo + Polish - translated by Mikolaj Machowski + Russian - translated by Vassily Ragosin +See the Vim website to find them: http://www.vim.org/translations.php + +A set of translated help files consists of these files: + + help.abx + howto.abx + ... + tags-ab + +"ab" is the two-letter language code. Thus for Italian the names are: + + help.itx + howto.itx + ... + tags-it + +The 'helplang' option can be set to the preferred language(s). The default is +set according to the environment. Vim will first try to find a matching tag +in the preferred language(s). English is used when it cannot be found. + +To find a tag in a specific language, append "@ab" to a tag, where "ab" is the +two-letter language code. Example: > + :he user-manual@it + :he user-manual@en +The first one finds the Italian user manual, even when 'helplang' is empty. +The second one finds the English user manual, even when 'helplang' is set to +"it". + +When using command-line completion for the ":help" command, the "@en" +extension is only shown when a tag exists for multiple languages. When the +tag only exists for English "@en" is omitted. + +When using |CTRL-]| or ":help!" in a non-English help file Vim will try to +find the tag in the same language. If not found then 'helplang' will be used +to select a language. + +Help files must use latin1 or utf-8 encoding. Vim assumes the encoding is +utf-8 when finding non-ASCII characters in the first line. Thus you must +translate the header with "For Vim version". + +The same encoding must be used for the help files of one language in one +directory. You can use a different encoding for different languages and use +a different encoding for help files of the same language but in a different +directory. + +Hints for translators: +- Do not translate the tags. This makes it possible to use 'helplang' to + specify the preferred language. You may add new tags in your language. +- When you do not translate a part of a file, add tags to the English version, + using the "tag@en" notation. +- Make a package with all the files and the tags file available for download. + Users can drop it in one of the "doc" directories and start use it. + Report this to Bram, so that he can add a link on www.vim.org. +- Use the |:helptags| command to generate the tags files. It will find all + languages in the specified directory. + +============================================================================== +3. Writing help files *help-writing* + +For ease of use, a Vim help file for a plugin should follow the format of the +standard Vim help files. If you are writing a new help file it's best to copy +one of the existing files and use it as a template. + +The first line in a help file should have the following format: + +*helpfile_name.txt* For Vim version 7.3 Last change: 2010 June 4 + +The first field is a link to the help file name. The second field describes +the applicable Vim version. The last field specifies the last modification +date of the file. Each field is separated by a tab. + +At the bottom of the help file, place a Vim modeline to set the 'textwidth' +and 'tabstop' options and the 'filetype' to 'help'. Never set a global option +in such a modeline, that can have consequences undesired by whoever reads that +help. + + +TAGS + +To define a help tag, place the name between asterisks (*tag-name*). The +tag-name should be different from all the Vim help tag names and ideally +should begin with the name of the Vim plugin. The tag name is usually right +aligned on a line. + +When referring to an existing help tag and to create a hot-link, place the +name between two bars (|) eg. |help-writing|. + +When referring to a Vim option in the help file, place the option name between +two single quotes. eg. 'statusline' + + +HIGHLIGHTING + +To define a column heading, use a tilde character at the end of the line. This +will highlight the column heading in a different color. E.g. + +Column heading~ + +To separate sections in a help file, place a series of '=' characters in a +line starting from the first column. The section separator line is highlighted +differently. + +To quote a block of ex-commands verbatim, place a greater than (>) character +at the end of the line before the block and a less than (<) character as the +first non-blank on a line following the block. Any line starting in column 1 +also implicitly stops the block of ex-commands before it. E.g. > + function Example_Func() + echo "Example" + endfunction +< + +The following are highlighted differently in a Vim help file: + - a special key name expressed either in <> notation as in , or + as a Ctrl character as in CTRL-X + - anything between {braces}, e.g. {lhs} and {rhs} + +The word "Note", "Notes" and similar automagically receive distinctive +highlighting. So do these: + *Todo something to do + *Error something wrong + +You can find the details in $VIMRUNTIME/syntax/help.vim + + vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt index ca384cf72f..599552fe21 100644 --- a/runtime/doc/if_mzsch.txt +++ b/runtime/doc/if_mzsch.txt @@ -233,7 +233,7 @@ Windows *mzscheme-window* ============================================================================== 5. mzeval() Vim function *mzscheme-mzeval* -To facilitate bi-directional interface, you can use |mzeval| function to +To facilitate bi-directional interface, you can use |mzeval()| function to evaluate MzScheme expressions and pass their values to VimL. ============================================================================== diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt index 10aebe5b44..4e25780adb 100644 --- a/runtime/doc/intro.txt +++ b/runtime/doc/intro.txt @@ -194,6 +194,7 @@ patches, suggestions and giving feedback about what is good and bad in Vim. Vim would never have become what it is now, without the help of these people! Ron Aaron Win32 GUI changes + Mohsin Ahmed encryption Zoltan Arpadffy work on VMS port Tony Andrews Stevie Gert van Antwerpen changes for DJGPP on MS-DOS @@ -226,13 +227,13 @@ Vim would never have become what it is now, without the help of these people! David Leonard Port of Python extensions to Unix Avner Lottem Edit in right-to-left windows Flemming Madsen X11 client-server, various features and patches - Microsoft Gave me a copy of DevStudio to compile Vim with + Tony Mechelynck answers many user questions Paul Moore Python interface extensions, many patches Katsuhito Nagano Work on multi-byte versions Sung-Hyun Nam Work on multi-byte versions Vince Negri Win32 GUI and generic console enhancements Steve Oualline Author of the first Vim book |frombook| - Dominique Pelle figuring out valgrind reports and fixes + Dominique Pelle valgrind reports and many fixes A.Politz Many bug reports and some fixes George V. Reilly Win32 port, Win32 GUI start-off Stephen Riehm bug collector diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 0339bb4dc5..2db48caa1f 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -7391,10 +7391,11 @@ A jump table for the options with a short description can be found at |Q_op|. set ul=0 < But you can also get Vi compatibility by including the 'u' flag in 'cpoptions', and still be able to use CTRL-R to repeat undo. + Also see |undo-two-ways|. Set to a negative number for no undo at all: > set ul=-1 < This helps when you run out of memory for a single change. - Also see |undo-two-ways|. + Also see |clear-undo|. *'updatecount'* *'uc'* 'updatecount' 'uc' number (default: 200) diff --git a/runtime/doc/os_390.txt b/runtime/doc/os_390.txt index a0a715549f..c39f3badab 100644 --- a/runtime/doc/os_390.txt +++ b/runtime/doc/os_390.txt @@ -1,4 +1,4 @@ -*os_390.txt* For Vim version 7.3a. Last change: 2008 Dec 17 +*os_390.txt* For Vim version 7.3a. Last change: 2010 May 30 VIM REFERENCE MANUAL by Ralf Schandl @@ -6,24 +6,12 @@ *zOS* *z/OS* *OS390* *os390* *MVS* This file contains the particulars for the z/OS UNIX version of Vim. -1. Open source on z/OS UNIX |zOS-open-source| -2. Your feedback is needed |zOS-feedback| -3. Building VIM for z/OS UNIX |zOS-building| -4. ASCII/EBCDIC dependent scripts |zOS-has-ebcdic| -5. XTerm Problems |zOS-xterm| -6. Motif Problems |zOS-Motif| -7. Bugs |zOS-Bugs| -8. Known weaknesses |zOS-weaknesses| -9. Changes |zOS-changes| - -DISCLAIMER: ~ -We are IBM employees, but IBM is not responsible for this port. This is our -private fun, and is provided in the hopes that it may be useful to others. - -Please note that this software has NOT been submitted to any formal IBM -testing and is published AS IS. Please do not contact IBM for support for this -software, as it is not an official component of any IBM product. IT IS NOT -SUPPORTED, GUARANTEED, OR RELATED WHATSOEVER TO IBM. +1. ASCII/EBCDIC dependent scripts |zOS-has-ebcdic| +2. Putty and Colors |zOS-PuTTY| +3. Motif Problems |zOS-Motif| +4. Bugs |zOS-Bugs| +5. Limitations |zOS-limitations| +6. Open source on z/OS UNIX |zOS-open-source| Contributors: ~ The port to z/OS UNIX was done by Ralf Schandl for the Redbook mentioned @@ -32,128 +20,11 @@ below. Changes, bug-reports, or both by: David Moore - Anthony Giorgio + Anthony Giorgio and others -This document was written by Ralf Schandl and revised by Anthony Giorgio. - ============================================================================== -1. Open source on z/OS UNIX *OS390-open-source* *zOS-open-source* - -If you are interested in other Open Source Software on z/OS UNIX, have a -look at the following Redbook: - - Mike MacIsaac et al - "Open Source Software for z/OS and OS/390 UNIX" - IBM Form Number: SG24-5944-01 - ISBN: 0738424633 - -You can find out more information, order a hard copy, or download a PDF -version of these Redbooks at: - - http://www.redbooks.ibm.com - -============================================================================== -2. Your feedback is needed *OS390-feedback* *zOS-feedback* - -Vim should compile, link, and run right out of the box on a standard IBM z/OS -UNIX mainframe. I've personally run it on z/OS V1R2 and V1R3 machines without -problems. - -Many changes had to be done to the code to port Vim to z/OS UNIX. As like -most UNIX programs, Vim contained heavy ASCII dependencies. I might have -missed an ASCII dependency, or it is possible that a new one has been added -with a feature or bug fix. Most programmers are simply not aware of possible -ASCII/EBCDIC conversion issues. If you hit a problem that seems related to -this, feel free to contact us at the email addresses above. - -One indication of ASCII/EBCDIC conversion problems is screen corruption with -"unprintable" characters. For example, at one point the errorbell was broken -in Vim. Any time Vim tried to ring the terminal bell an ASCII character 0x07 -would be printed. This works fine on most terminals, but is broken on an -EBCDIC one. The correct solution was to define a different value for the bell -character on EBCDIC systems. - -Remember, it's only possible to fix a bug if the community knows about it. -Don't rely on someone else to report it! See the section |bug-reports|. - -============================================================================== -3. Building VIM for z/OS UNIX *OS390-building* *zOS-building* - -A word on debugging code first: ~ - -The normal run of configure adds the flag '-g' to the compiler options, -to include debugging information into the executable. This information -are normally removed from the executable with the strip command during -installation. On z/OS UNIX, it is not possible to remove this from -the executable. The strip command exists on z/OS UNIX and is called -during the installation, but it does nothing. It is equivalent to the -'touch' command. This is due to the way debug symbols are stored in the -objects generated by the compiler. - -If you want to build Vim without debugging code, export the environment -variable CFLAGS set to an empty string before you call the configure script. -> - export CFLAGS="" - - -Building without X11: ~ - -Note: Use cc to build Vim. The c89 compiler has stricter syntax checking -and will not compile Vim cleanly. - -If you build VIM without X11 support, compiling and building is -straightforward. Don't forget to export _CC_CCMODE=1 before calling -configure and make. -> - $ export _CC_CCMODE=1 - $./configure --with-features=big --without-x --enable-gui=no - $ make - $ make test -< - Test notes: - Test 11 will fail if you do not have gzip installed. - Test 42 will fail, as VIM on z/OS UNIX doesn't support the multibyte - feature. (David Moore: "Doesn't work _yet_! :-) I'll see what I - can do.") -> - - $ make install - - -Building with X11: ~ - -There are two ways for building Vim with X11 support. You can link it -statically with the X11 libraries or can bind it with the X11 DLLs. The -statically linked version results in a huge executable (~13MB), while the -dynamically linked executable is much smaller (~4.5MB). - -Here is what you do, if you want Motif: - - a) Static link > - $ configure --with-features=big --enable-gui=motif - $ make -< - VIM is now linked statically with the X11 libraries. - - b) Dynamic link: - Make VIM as described for the static link. Then change the contents of - the 'auto/link.sed' file by appending: > - s%-lXm *%/usr/lib/Xm.x %g - s%-lX11 *%/usr/lib/X11.x %g - s%-lSM *%/usr/lib/SM.x %g - s%-lICE *%/usr/lib/ICE.x %g -< - Then do: > - $ rm vim - $ make -< - Now Vim is linked with the X11-DLLs. - -See the Makefile and the file link.sh on how link.sed is used. - -============================================================================== -4. ASCII/EBCDIC dependent scripts *OS390-has-ebcdic* *zOS-has-ebcdic* +1. ASCII/EBCDIC dependent scripts *OS390-has-ebcdic* *zOS-has-ebcdic* For the internal script language the feature "ebcdic" was added. With this you can fix ASCII dependent scripts like this: @@ -164,24 +35,28 @@ you can fix ASCII dependent scripts like this: let space = 32 endif < + ============================================================================== -5. XTerm problems *OS390-xterm* *zOS-xterm* +2. PuTTY and Colors *OS390-PuTTY* *zOS-PuTTY* -Note: This problem was resolved in version 6.1b. ~ +If you see problems with syntax highlighting or screen corruptions when you +connect to z/OS using Putty, try the following: -I saw one problem with XTerm on z/OS UNIX. The terminal code for moving the -cursor to the left is wrong in the termlib database. Perhaps not wrong, but -it didn't work with VIM syntax highlighting and command line cursor movement. +- Configure Putty as "vt220" terminal (Connection->Data) +- Add the following 3 lines to your vimrc: -If the highlighting is messed up while you type, but is okay after you refreshed -the screen with or if you can't move to the left with the cursor key on -the command line, try adding > - :set t_le=^H +> + set t_AB=[4%p1%dm + set t_AF=[3%p1%dm + set t_CO=8 < -to your .vimrc. Note: '^H' is one character, hit to get it. + +Note:  is one character use to enter it. ============================================================================== -6. Motif Problems *OS390-Motif* *zOS-Motif* +3. Motif Problems *OS390-Motif* *zOS-Motif* + +Note: Seen with Vim 6.*, never tested since. It seems that in porting the Motif library to z/OS, a translation from EBCDIC to ASCII for the accelerator characters of the pull-down menus was forgotten. @@ -193,14 +68,14 @@ the file browser). There is no solution for this yet. ============================================================================== -7. Bugs *OS390-bugs* *zOS-Bugs* +4. Bugs *OS390-bugs* *zOS-Bugs* - Vim will consistently hang when a large amount of text is selected in visual block mode. This may be due to a memory corruption issue. Note that this occurs in both the terminal and gui versions. ============================================================================== -8. Known weaknesses *OS390-weaknesses* *zOS-weaknesses* +5. Limitations *OS390-limitations* *zOS-limitations* - No binary search in tag files. The program /bin/sort sorts by ASCII value by default. This program is @@ -208,9 +83,6 @@ There is no solution for this yet. ctags out there, that does it right, but we can't be sure. So this seems to be a permanent restriction. -- Multibyte support (utf-8) doesn't work, it's disabled at compile time. - (|multibyte|) - - The cscope interface (|cscope|) doesn't work for the version of cscope that we use on our mainframe. We have a copy of version 15.0b12, and it causes Vim to hang when using the "cscope add" command. I'm guessing that @@ -221,6 +93,13 @@ There is no solution for this yet. - No glib/gtk support. I have not been able to successfully compile glib on z/OS UNIX. This means you'll have to live without the pretty gtk toolbar. + +Disabled at compile time: + - Multibyte support (|multibyte|) + - Right-to-left mode (|rileft|) + - Farsi key map (|Farsi|) + - Arabic language support (|Arabic|) + - Spell checking (|spell|) Never tested: - Perl interface (|perl|) @@ -233,108 +112,24 @@ Never tested: - TCL interface (|tcl|) ... -If you try any of these features and they work, drop us a note! - ============================================================================== -9. Changes *OS390-changes* *zOS-changes* +6. Open source on z/OS UNIX *OS390-open-source* *zOS-open-source* -This is a small reference of the changes made to the z/OS port of Vim. It is -not an exhaustive summary of all the modifications made to the code base. +If you are interested in other Open Source Software on z/OS UNIX, have a +look at the following Redbook: -6.1b (beta): - Changed KS_LE in term.c to be "\b" instead of "\010" This fixed the - screen corruption problems in gVim reported by Anthony Giorgio. + Mike MacIsaac et al + "Open Source Software for z/OS and OS/390 UNIX" + IBM Form Number: SG24-5944-01 + ISBN: 0738424633 + http://www-03.ibm.com/systems/resources/servers_eserver_zseries_zos_unix_redbook_sg245944.pdf - Anthony Giorgio updated this document: - - Changed OS/390 to z/OS where appropriate. IBM decided to rename - all of its servers and operating systems. z/OS and OS/390 - are the same product, but the version numbering system was - reset for the name change (e.g. OS/390 V2R11 == z/OS V1R1). - - Added information about second edition of the Open Source Redbook. - - Moved Redbook information to a separate section. - - Various tweaks and changes. - - Updated testing section. - -6.0au: - Changed configure.in - Changed documentation. - Anthony Giorgio fixed the errorbell. - - David Moore found some problems, which were fixed by Bram and/or David for - 6.0au. - -6.0q (alpha): - Minor changes for nrformats=alpha (see |'nrformats'|). - Problem with hard-coded keycode for the English pound sign. Added a define in - ascii.h - Disabled multibyte for EBCDIC in feature.h - -6.0f (alpha): - First compile of Vim 6 on z/OS UNIX. Some minor changes were needed. - - Finally found the reason why make from the top level didn't work (I must have - been blind before!). The Makefile contained a list of targets in one target - line. On all other UNIX's the macro $@ evaluates to the first target in this - list, only on z/OS UNIX it evaluates to the last one :-(. - -5.6-390d: - Cleaned up some hacks. - -5.6-390c: - I grepped through the source and examined every spot with a character - involved in an operation (+-). I hope I now found all EBCDIC/ASCII - stuff, but .... - - Fixed: - - fixed warning message in do_fixdel() - - fixed translation from Ctrl-Char to symbolic name (like ^h to CTRL-H) - for :help - - fixed yank/delete/... into register - - fixed :register command - - fixed viminfo register storing - - fixed quick-access table in findoptions() - - fixed 'g^H' select mode - - fixed tgetstr() 'get terminal capability string', ESC and - Ctrl chars where wrong. (Not used on OS/390 UNIX) +Also look at: + http://www.redbooks.ibm.com + http://www-03.ibm.com/systems/z/os/zos/features/unix/ + http://www-03.ibm.com/systems/z/os/zos/features/unix/library/IBM+Redbooks/index.html - ctags: - - added trigraphs support (used in prolog of system header files) - (get.c) - - fixed sorting order with LC_COLLATE=S390 to force EBCDIC sorting. - (sort.c) - -5.6-390b: - Changed: - - configure.in: - - added test for OS/390 UNIX - - added special compiler and linker options if building with X11 - - configure: - - after created via autoconf hand-edited it to make the test for - ICEConnectionNumber work. This is an autoconf problem. OS/390 UNIX - needs -lX11 for this. - - Makefile - - Don't include the lib directories ('-L...') into the variable - ALL_LIBS. Use own variable ALL_LIB_DIRS instead. A fully POSIX - compliant compiler must not accept objects/libraries and options - mixed. Now we can call the linker like this: - - $(CC) $(LDFLAGS) $(ALL_LIB_DIRS) $(OBJ) $(ALL_LIBS) - - Fixed: - - Double quote couldn't be entered - Missed ASCII dependencies while setting up terminal - In ASCII 127 is the delete char, in EBCDIC codepage 1047 the value 127 - is the double quote. - - fixed ':fixdel' - -5.6-390a: - first alpha release for OS/390 UNIX. - - Addition: - - For the internal script language I added the feature "ebcdic". - This can be queried with the has()-function of the internal - script language. ------------------------------------------------------------------------------ vim:tw=78:fo=tcq2:ts=8:ft=help:norl: diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt index b57585be22..e3032df3cf 100644 --- a/runtime/doc/pi_netrw.txt +++ b/runtime/doc/pi_netrw.txt @@ -589,7 +589,7 @@ password. PASSWORD *netrw-passwd* The script attempts to get passwords for ftp invisibly using |inputsecret()|, -a built-in Vim function. See |netrw-uidpass| for how to change the password +a built-in Vim function. See |NetUserPass()| for how to change the password after one has set it. Unfortunately there doesn't appear to be a way for netrw to feed a password to @@ -803,7 +803,7 @@ temporary file: get filename tempfile > --------------------------------------------------------------------- < -The |g:netrw_ftpmode| and |g:netrw_extracmd| are optional. +The |g:netrw_ftpmode| and g:netrw_extracmd are optional. Netrw then executes the lines above by use of a filter: > diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt index 4928d1153b..8eaa838a89 100644 --- a/runtime/doc/pi_vimball.txt +++ b/runtime/doc/pi_vimball.txt @@ -197,7 +197,7 @@ WINDOWS *vimball-windows* Apr 18, 2008 * RmVimball command is now protected by saving and restoring settings -- in particular, acd was causing problems as reported by Zhang Shuhan - 24 : Nov 15, 2007 * |g:vimball_path_escape| used by s:Path() to + 24 : Nov 15, 2007 * g:vimball_path_escape used by s:Path() to prevent certain characters from causing trouble 22 : Mar 21, 2007 * uses setlocal instead of set during BufEnter 21 : Nov 27, 2006 * (tnx to Bill McCarthy) vimball had a header diff --git a/runtime/doc/tags b/runtime/doc/tags index 2be4bc9116..8ed79af072 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -2143,8 +2143,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* :execute eval.txt /*:execute* :exi editing.txt /*:exi* :exit editing.txt /*:exit* -:exu various.txt /*:exu* -:exusage various.txt /*:exusage* +:exu helphelp.txt /*:exu* +:exusage helphelp.txt /*:exusage* :f editing.txt /*:f* :fi editing.txt /*:fi* :file editing.txt /*:file* @@ -2195,16 +2195,16 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* :gui gui_x11.txt /*:gui* :gv gui_x11.txt /*:gv* :gvim gui_x11.txt /*:gvim* -:h various.txt /*:h* +:h helphelp.txt /*:h* :ha print.txt /*:ha* :hardcopy print.txt /*:hardcopy* -:help various.txt /*:help* -:helpf various.txt /*:helpf* -:helpfind various.txt /*:helpfind* -:helpg various.txt /*:helpg* -:helpgrep various.txt /*:helpgrep* -:helpt various.txt /*:helpt* -:helptags various.txt /*:helptags* +:help helphelp.txt /*:help* +:helpf helphelp.txt /*:helpf* +:helpfind helphelp.txt /*:helpfind* +:helpg helphelp.txt /*:helpg* +:helpgrep helphelp.txt /*:helpgrep* +:helpt helphelp.txt /*:helpt* +:helptags helphelp.txt /*:helptags* :hi syntax.txt /*:hi* :hi-default syntax.txt /*:hi-default* :hi-link syntax.txt /*:hi-link* @@ -2326,8 +2326,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* :lgrep quickfix.txt /*:lgrep* :lgrepa quickfix.txt /*:lgrepa* :lgrepadd quickfix.txt /*:lgrepadd* -:lh various.txt /*:lh* -:lhelpgrep various.txt /*:lhelpgrep* +:lh helphelp.txt /*:lh* +:lhelpgrep helphelp.txt /*:lhelpgrep* :list various.txt /*:list* :ll quickfix.txt /*:ll* :lla quickfix.txt /*:lla* @@ -2949,8 +2949,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* :vimgrepadd quickfix.txt /*:vimgrepadd* :visual editing.txt /*:visual* :visual_example visual.txt /*:visual_example* -:viu various.txt /*:viu* -:viusage various.txt /*:viusage* +:viu helphelp.txt /*:viu* +:viusage helphelp.txt /*:viusage* :vm map.txt /*:vm* :vmap map.txt /*:vmap* :vmap_l map.txt /*:vmap_l* @@ -3082,7 +3082,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* term.txt /** term.txt /** term.txt /** - various.txt /** + helphelp.txt /** term.txt /** term.txt /** term.txt /** @@ -3091,7 +3091,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* term.txt /** term.txt /** term.txt /** - various.txt /** + helphelp.txt /** motion.txt /** insert.txt /** map.txt /** @@ -3473,13 +3473,13 @@ E145 starting.txt /*E145* E146 change.txt /*E146* E147 repeat.txt /*E147* E148 repeat.txt /*E148* -E149 various.txt /*E149* +E149 helphelp.txt /*E149* E15 eval.txt /*E15* -E150 various.txt /*E150* -E151 various.txt /*E151* -E152 various.txt /*E152* -E153 various.txt /*E153* -E154 various.txt /*E154* +E150 helphelp.txt /*E150* +E151 helphelp.txt /*E151* +E152 helphelp.txt /*E152* +E153 helphelp.txt /*E153* +E154 helphelp.txt /*E154* E155 sign.txt /*E155* E156 sign.txt /*E156* E157 sign.txt /*E157* @@ -4032,7 +4032,7 @@ E658 netbeans.txt /*E658* E659 if_pyth.txt /*E659* E66 syntax.txt /*E66* E660 netbeans.txt /*E660* -E661 various.txt /*E661* +E661 helphelp.txt /*E661* E662 motion.txt /*E662* E663 motion.txt /*E663* E664 motion.txt /*E664* @@ -4042,7 +4042,7 @@ E667 editing.txt /*E667* E668 netbeans.txt /*E668* E669 syntax.txt /*E669* E67 syntax.txt /*E67* -E670 various.txt /*E670* +E670 helphelp.txt /*E670* E671 starting.txt /*E671* E672 starting.txt /*E672* E673 print.txt /*E673* @@ -4336,14 +4336,11 @@ OS/2 os_os2.txt /*OS\/2* OS2 os_os2.txt /*OS2* OS390 os_390.txt /*OS390* OS390-Motif os_390.txt /*OS390-Motif* +OS390-PuTTY os_390.txt /*OS390-PuTTY* OS390-bugs os_390.txt /*OS390-bugs* -OS390-building os_390.txt /*OS390-building* -OS390-changes os_390.txt /*OS390-changes* -OS390-feedback os_390.txt /*OS390-feedback* OS390-has-ebcdic os_390.txt /*OS390-has-ebcdic* +OS390-limitations os_390.txt /*OS390-limitations* OS390-open-source os_390.txt /*OS390-open-source* -OS390-weaknesses os_390.txt /*OS390-weaknesses* -OS390-xterm os_390.txt /*OS390-xterm* OffTheSpot mbyte.txt /*OffTheSpot* OnTheSpot mbyte.txt /*OnTheSpot* Operator-pending intro.txt /*Operator-pending* @@ -4936,6 +4933,7 @@ chill.vim syntax.txt /*chill.vim* cindent() eval.txt /*cindent()* cinkeys-format indent.txt /*cinkeys-format* cinoptions-values indent.txt /*cinoptions-values* +clear-undo undo.txt /*clear-undo* clearmatches() eval.txt /*clearmatches()* client-server remote.txt /*client-server* clientserver remote.txt /*clientserver* @@ -6027,12 +6025,16 @@ haslocaldir() eval.txt /*haslocaldir()* hasmapto() eval.txt /*hasmapto()* hebrew hebrew.txt /*hebrew* hebrew.txt hebrew.txt /*hebrew.txt* -help various.txt /*help* +help helphelp.txt /*help* help-context help.txt /*help-context* help-summary usr_02.txt /*help-summary* -help-translated various.txt /*help-translated* -help-xterm-window various.txt /*help-xterm-window* +help-translated helphelp.txt /*help-translated* +help-writing helphelp.txt /*help-writing* +help-xterm-window helphelp.txt /*help-xterm-window* help.txt help.txt /*help.txt* +helpfile_name.txt helphelp.txt /*helpfile_name.txt* +helphelp helphelp.txt /*helphelp* +helphelp.txt helphelp.txt /*helphelp.txt* hex-editing tips.txt /*hex-editing* hidden-buffer windows.txt /*hidden-buffer* hidden-changed version5.txt /*hidden-changed* @@ -6155,8 +6157,8 @@ i_ insert.txt /*i_* i_ insert.txt /*i_* i_ insert.txt /*i_* i_ insert.txt /*i_* -i_ various.txt /*i_* -i_ various.txt /*i_* +i_ helphelp.txt /*i_* +i_ helphelp.txt /*i_* i_ insert.txt /*i_* i_ insert.txt /*i_* i_ insert.txt /*i_* @@ -6950,7 +6952,7 @@ ole-sendkeys if_ole.txt /*ole-sendkeys* ole-setforeground if_ole.txt /*ole-setforeground* omap-info map.txt /*omap-info* omni-sql-completion ft_sql.txt /*omni-sql-completion* -online-help various.txt /*online-help* +online-help helphelp.txt /*online-help* opening-window windows.txt /*opening-window* operator motion.txt /*operator* operator-variable eval.txt /*operator-variable* @@ -8439,13 +8441,10 @@ zO fold.txt /*zO* zOS os_390.txt /*zOS* zOS-Bugs os_390.txt /*zOS-Bugs* zOS-Motif os_390.txt /*zOS-Motif* -zOS-building os_390.txt /*zOS-building* -zOS-changes os_390.txt /*zOS-changes* -zOS-feedback os_390.txt /*zOS-feedback* +zOS-PuTTY os_390.txt /*zOS-PuTTY* zOS-has-ebcdic os_390.txt /*zOS-has-ebcdic* +zOS-limitations os_390.txt /*zOS-limitations* zOS-open-source os_390.txt /*zOS-open-source* -zOS-weaknesses os_390.txt /*zOS-weaknesses* -zOS-xterm os_390.txt /*zOS-xterm* zR fold.txt /*zR* zW spell.txt /*zW* zX fold.txt /*zX* @@ -8497,7 +8496,7 @@ zz scroll.txt /*zz* {offset} pattern.txt /*{offset}* {pat} autocmd.txt /*{pat}* {rhs} map.txt /*{rhs}* -{subject} various.txt /*{subject}* +{subject} helphelp.txt /*{subject}* {} intro.txt /*{}* } motion.txt /*}* ~ change.txt /*~* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index daec1bc680..27039a2492 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1082,24 +1082,36 @@ restored. (Luc St-Louis) Vim 7.3: -- undofile: keep markers where the file was written/read, so that it's easy to - go back to a saved version of the file ":earlier 1file"? - using NSIS 2.46: install on Windows 7 works, but no "Edit with Vim" menu. Use register_shell_extension()? (George Reilly, 2010 May 26) Ron's version: http://dev.ronware.org/p/vim/finfo?name=gvim.nsi - Also crypt the swap file, each block separately. Change mf_write() and - mf_read(). How to get b_p_key to these functions? - Generate seed for each block, store in pointer block. Block 1 is not - encrypted. - When changing the password need to read back with the old password and - write again with the new one. - Verify recovery works. + mf_read(). + - How to get b_p_key to these functions? -> Store buf_T pointer in mfp. + - Generate a seed for the swapfile, put it in block 0. + - For each block, use password + seed + byte offset to crypt/decrypt. + - When changing the password need to read back with the old password and + write again with the new one. + - Fill the gaps in the block with random bytes, otherwise it's easy to + check for correct password by finding NUL bytes. + - Verify recovery works. - Update for crypt code to use salt. (Mohsin May 30) - Make the strengthen_key value configurable and store it in the header. + Make the strengthen_key value configurable and store it in the header? + Or just use 10000, equivalent to crypting 10 Kbyte of text. +- undofile: keep markers where the file was written/read, so that it's easy to + go back to a saved version of the file: ":earlier 1f" (f for file)? + Also add ":earlier 1d" (d for day). + Something like changenr() to see the "file saved" marker? + Show "file saved" marker in :undolist + Function to get undo tree: undotree(). List of lists. Each entry is a + dictionary: {'nr': 2, 'time': 1234, 'saved': 1} +- Create a helphelp.txt file, move instructions there to write help files from + various.txt and list by Tony. Patches to include: - Include conceal patch? http://vince.negri.googlepages.com/ http://vim.wikia.com/wiki/Patch_to_conceal_parts_of_lines + http://sites.google.com/site/vincenegri/conceal-ownsyntax.diff?attredirects=0 - Patch for Lisp support with ECL (Mikael Jansson, 2008 Oct 25) - Minor patches from Dominique Pelle, 2010 May 15 - Gvimext patch to support wide file names. (Szabolcs Horvat 2008 Sep 10) diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt index e8fed4f067..6e2308ff1b 100644 --- a/runtime/doc/undo.txt +++ b/runtime/doc/undo.txt @@ -314,6 +314,16 @@ The number of changes that are remembered is set with the 'undolevels' option. If it is zero, the Vi-compatible way is always used. If it is negative no undo is possible. Use this if you are running out of memory. + *clear-undo* +When you set 'undolevels' to -1 the undo information is not immediately +cleared, this happens at the next change. To force clearing the undo +information you can use these commands: > + :let old_undolevels = &undolevels + :set undolevels=-1 + :exe "normal a \\" + :let &undolevels = old_undolevels + :unlet old_undolevels + Marks for the buffer ('a to 'z) are also saved and restored, together with the text. {Vi does this a little bit different} diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt index b723e4f1a4..b3fcdb0b1a 100644 --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -7,8 +7,7 @@ Various commands *various* 1. Various commands |various-cmds| -2. Online help |online-help| -3. Using Vim like less or more |less| +2. Using Vim like less or more |less| ============================================================================== 1. Various commands *various-cmds* @@ -605,265 +604,6 @@ g CTRL-A Only when Vim was compiled with MEM_PROFILING defined (which is very rare): print memory usage statistics. Only useful for debugging Vim. -============================================================================== -2. Online help *online-help* - - *help* ** *:h* *:help* ** *i_* *i_* - or -:h[elp] Open a window and display the help file in read-only - mode. If there is a help window open already, use - that one. Otherwise, if the current window uses the - full width of the screen or is at least 80 characters - wide, the help window will appear just above the - current window. Otherwise the new window is put at - the very top. - The 'helplang' option is used to select a language, if - the main help file is available in several languages. - {not in Vi} - - *{subject}* *E149* *E661* -:h[elp] {subject} Like ":help", additionally jump to the tag {subject}. - {subject} can include wildcards like "*", "?" and - "[a-z]": - :help z? jump to help for any "z" command - :help z. jump to the help for "z." - If there is no full match for the pattern, or there - are several matches, the "best" match will be used. - A sophisticated algorithm is used to decide which - match is better than another one. These items are - considered in the computation: - - A match with same case is much better than a match - with different case. - - A match that starts after a non-alphanumeric - character is better than a match in the middle of a - word. - - A match at or near the beginning of the tag is - better than a match further on. - - The more alphanumeric characters match, the better. - - The shorter the length of the match, the better. - - The 'helplang' option is used to select a language, if - the {subject} is available in several languages. - To find a tag in a specific language, append "@ab", - where "ab" is the two-letter language code. See - |help-translated|. - - Note that the longer the {subject} you give, the less - matches will be found. You can get an idea how this - all works by using commandline completion (type CTRL-D - after ":help subject" |c_CTRL-D|). - If there are several matches, you can have them listed - by hitting CTRL-D. Example: > - :help cont -< To use a regexp |pattern|, first do ":help" and then - use ":tag {pattern}" in the help window. The - ":tnext" command can then be used to jump to other - matches, "tselect" to list matches and choose one. > - :help index| :tse z. -< When there is no argument you will see matches for - "help", to avoid listing all possible matches (that - would be very slow). - The number of matches displayed is limited to 300. - - This command can be followed by '|' and another - command, but you don't need to escape the '|' inside a - help command. So these both work: > - :help | - :help k| only -< Note that a space before the '|' is seen as part of - the ":help" argument. - You can also use or to separate the help - command from a following command. You need to type - CTRL-V first to insert the or . Example: > - :help soonly -< {not in Vi} - -:h[elp]! [subject] Like ":help", but in non-English help files prefer to - find a tag in a file with the same language as the - current file. See |help-translated|. - - *:helpg* *:helpgrep* -:helpg[rep] {pattern}[@xx] - Search all help text files and make a list of lines - in which {pattern} matches. Jumps to the first match. - The optional [@xx] specifies that only matches in the - "xx" language are to be found. - You can navigate through the matches with the - |quickfix| commands, e.g., |:cnext| to jump to the - next one. Or use |:cwindow| to get the list of - matches in the quickfix window. - {pattern} is used as a Vim regexp |pattern|. - 'ignorecase' is not used, add "\c" to ignore case. - Example for case sensitive search: > - :helpgrep Uganda -< Example for case ignoring search: > - :helpgrep uganda\c -< Example for searching in French help: > - :helpgrep backspace@fr -< The pattern does not support line breaks, it must - match within one line. You can use |:grep| instead, - but then you need to get the list of help files in a - complicated way. - Cannot be followed by another command, everything is - used as part of the pattern. But you can use - |:execute| when needed. - Compressed help files will not be searched (Fedora - compresses the help files). - {not in Vi} - - *:lh* *:lhelpgrep* -:lh[elpgrep] {pattern}[@xx] - Same as ":helpgrep", except the location list is used - instead of the quickfix list. If the help window is - already opened, then the location list for that window - is used. Otherwise, a new help window is opened and - the location list for that window is set. The - location list for the current window is not changed. - - *:exu* *:exusage* -:exu[sage] Show help on Ex commands. Added to simulate the Nvi - command. {not in Vi} - - *:viu* *:viusage* -:viu[sage] Show help on Normal mode commands. Added to simulate - the Nvi command. {not in Vi} - -When no argument is given to |:help| the file given with the 'helpfile' option -will be opened. Otherwise the specified tag is searched for in all "doc/tags" -files in the directories specified in the 'runtimepath' option. - -The initial height of the help window can be set with the 'helpheight' option -(default 20). - -Jump to specific subjects by using tags. This can be done in two ways: -- Use the "CTRL-]" command while standing on the name of a command or option. - This only works when the tag is a keyword. "" and - "g" work just like "CTRL-]". -- use the ":ta {subject}" command. This also works with non-keyword - characters. - -Use CTRL-T or CTRL-O to jump back. -Use ":q" to close the help window. - -If there are several matches for an item you are looking for, this is how you -can jump to each one of them: -1. Open a help window -2. Use the ":tag" command with a slash prepended to the tag. E.g.: > - :tag /min -3. Use ":tnext" to jump to the next matching tag. - -It is possible to add help files for plugins and other items. You don't need -to change the distributed help files for that. See |add-local-help|. - -To write a local help file, see |write-local-help|. - -Note that the title lines from the local help files are automagically added to -the "LOCAL ADDITIONS" section in the "help.txt" help file |local-additions|. -This is done when viewing the file in Vim, the file itself is not changed. It -is done by going through all help files and obtaining the first line of each -file. The files in $VIMRUNTIME/doc are skipped. - - *help-xterm-window* -If you want to have the help in another xterm window, you could use this -command: > - :!xterm -e vim +help & -< - - *:helpfind* *:helpf* -:helpf[ind] Like |:help|, but use a dialog to enter the argument. - Only for backwards compatibility. It now executes the - ToolBar.FindHelp menu entry instead of using a builtin - dialog. {only when compiled with |+GUI_GTK|} -< {not in Vi} - - *:helpt* *:helptags* - *E154* *E150* *E151* *E152* *E153* *E670* -:helpt[ags] [++t] {dir} - Generate the help tags file(s) for directory {dir}. - All "*.txt" and "*.??x" files in the directory are - scanned for a help tag definition in between stars. - The "*.??x" files are for translated docs, they - generate the "tags-??" file, see |help-translated|. - The generated tags files are sorted. - When there are duplicates an error message is given. - An existing tags file is silently overwritten. - The optional "++t" argument forces adding the - "help-tags" tag. This is also done when the {dir} is - equal to $VIMRUNTIME/doc. - To rebuild the help tags in the runtime directory - (requires write permission there): > - :helptags $VIMRUNTIME/doc -< {not in Vi} - - -TRANSLATED HELP *help-translated* - -It is possible to add translated help files, next to the original English help -files. Vim will search for all help in "doc" directories in 'runtimepath'. -This is only available when compiled with the |+multi_lang| feature. - -At this moment translations are available for: - Chinese - multiple authors - French - translated by David Blanchet - Italian - translated by Antonio Colombo - Polish - translated by Mikolaj Machowski - Russian - translated by Vassily Ragosin -See the Vim website to find them: http://www.vim.org/translations.php - -A set of translated help files consists of these files: - - help.abx - howto.abx - ... - tags-ab - -"ab" is the two-letter language code. Thus for Italian the names are: - - help.itx - howto.itx - ... - tags-it - -The 'helplang' option can be set to the preferred language(s). The default is -set according to the environment. Vim will first try to find a matching tag -in the preferred language(s). English is used when it cannot be found. - -To find a tag in a specific language, append "@ab" to a tag, where "ab" is the -two-letter language code. Example: > - :he user-manual@it - :he user-manual@en -The first one finds the Italian user manual, even when 'helplang' is empty. -The second one finds the English user manual, even when 'helplang' is set to -"it". - -When using command-line completion for the ":help" command, the "@en" -extension is only shown when a tag exists for multiple languages. When the -tag only exists for English "@en" is omitted. - -When using |CTRL-]| or ":help!" in a non-English help file Vim will try to -find the tag in the same language. If not found then 'helplang' will be used -to select a language. - -Help files must use latin1 or utf-8 encoding. Vim assumes the encoding is -utf-8 when finding non-ASCII characters in the first line. Thus you must -translate the header with "For Vim version". - -The same encoding must be used for the help files of one language in one -directory. You can use a different encoding for different languages and use -a different encoding for help files of the same language but in a different -directory. - -Hints for translators: -- Do not translate the tags. This makes it possible to use 'helplang' to - specify the preferred language. You may add new tags in your language. -- When you do not translate a part of a file, add tags to the English version, - using the "tag@en" notation. -- Make a package with all the files and the tags file available for download. - Users can drop it in one of the "doc" directories and start use it. - Report this to Bram, so that he can add a link on www.vim.org. -- Use the |:helptags| command to generate the tags files. It will find all - languages in the specified directory. - ============================================================================== 3. Using Vim like less or more *less* diff --git a/runtime/indent/cmake.vim b/runtime/indent/cmake.vim index 4315ad23af..8c408fb1ec 100644 --- a/runtime/indent/cmake.vim +++ b/runtime/indent/cmake.vim @@ -1,19 +1,11 @@ -" ============================================================================= -" -" Program: CMake - Cross-Platform Makefile Generator -" Module: $RCSfile: cmake-indent.vim,v $ -" Language: VIM -" Date: $Date: 2006/09/23 21:09:08 $ -" Version: $Revision: 1.7 $ -" -" ============================================================================= - " Vim indent file +" Program: CMake - Cross-Platform Makefile Generator +" Module: $RCSfile: cmake-indent.vim,v $ " Language: CMake (ft=cmake) " Author: Andy Cedilnik -" Maintainer: Andy Cedilnik -" Last Change: $Date: 2006/09/23 21:09:08 $ -" Version: $Revision: 1.7 $ +" Maintainer: Karthik Krishnan +" Last Change: $Date: 2008-01-16 16:53:53 $ +" Version: $Revision: 1.9 $ " " Licence: The CMake license applies to this file. See " http://www.cmake.org/HTML/Copyright.html @@ -25,6 +17,7 @@ endif let b:did_indent = 1 setlocal indentexpr=CMakeGetIndent(v:lnum) +setlocal indentkeys+==ENDIF(,ENDFOREACH(,ENDMACRO(,ELSE(,ELSEIF(,ENDWHILE( " Only define the function once. if exists("*CMakeGetIndent") @@ -65,8 +58,8 @@ fun! CMakeGetIndent(lnum) \ ')\s*' . \ '\(' . cmake_regex_comment . '\)\?$' - let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\|ELSEIF\|WHILE\)\s*(' - let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ELSEIF\|ENDWHILE\)\s*(' + let cmake_indent_begin_regex = '^\s*\(IF\|MACRO\|FOREACH\|ELSE\|ELSEIF\|WHILE\|FUNCTION\)\s*(' + let cmake_indent_end_regex = '^\s*\(ENDIF\|ENDFOREACH\|ENDMACRO\|ELSE\|ELSEIF\|ENDWHILE\|ENDFUNCTION\)\s*(' " Add if previous_line =~? cmake_indent_comment_line " Handle comments diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim index ab96329446..d6e8cb45a9 100644 --- a/runtime/syntax/cmake.vim +++ b/runtime/syntax/cmake.vim @@ -1,19 +1,11 @@ -" ============================================================================= -" -" Program: CMake - Cross-Platform Makefile Generator -" Module: $RCSfile: cmake-syntax.vim,v $ -" Language: VIM -" Date: $Date: 2006/09/23 21:09:08 $ -" Version: $Revision: 1.6 $ -" -" ============================================================================= - " Vim syntax file +" Program: CMake - Cross-Platform Makefile Generator +" Module: $RCSfile: cmake-syntax.vim,v $ " Language: CMake " Author: Andy Cedilnik -" Maintainer: Andy Cedilnik -" Last Change: $Date: 2006/09/23 21:09:08 $ -" Version: $Revision: 1.6 $ +" Maintainer: Karthik Krishnan +" Last Change: $Date: 2008-08-25 14:31:28 $ +" Version: $Revision: 1.10 $ " " Licence: The CMake license applies to this file. See " http://www.cmake.org/HTML/Copyright.html @@ -28,31 +20,33 @@ elseif exists("b:current_syntax") endif syn case ignore -syn match cmakeComment /#.*$/ -syn region cmakeRegistry start=/\[/ end=/\]/ skip=/\\[\[\]]/ - \ contained -syn match cmakeArgument /[^()"]+/ - \ contained -syn match cmakeVariableValue /\${[^}]*}/ - \ contained oneline -syn match cmakeEnvironment /\$ENV{.*}/ - \ contained +syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained +syn region cmakeComment start="#" end="$" contains=cmakeTodo +syn region cmakeRegistry start=/\[/ end=/]/ + \ contained oneline contains=CONTAINED,cmakeTodo,cmakeEscaped +syn region cmakeVariableValue start=/\${/ end=/}/ + \ contained oneline contains=CONTAINED,cmakeTodo +syn region cmakeEnvironment start=/\$ENV{/ end=/}/ + \ contained oneline contains=CONTAINED,cmakeTodo +syn region cmakeString start=/"/ end=/"/ + \ contains=CONTAINED,cmakeTodo,cmakeOperators +syn region cmakeArguments start=/(/ end=/)/ + \ contains=ALLBUT,cmakeArguments,cmakeTodo syn keyword cmakeSystemVariables - \ WIN32 UNIX APPLE CYGWIN BORLAND MINGW MSVC MSVC_IDE MSVC60 MSVC70 MSVC71 MSVC80 + \ WIN32 UNIX APPLE CYGWIN BORLAND MINGW MSVC MSVC_IDE MSVC60 MSVC70 MSVC71 MSVC80 MSVC90 syn keyword cmakeOperators - \ AND BOOL CACHE COMMAND DEFINED DOC EQUAL EXISTS FALSE GREATER INTERNAL LESS MATCHES NAME NAMES NAME_WE NOT OFF ON OR PATH PATHS PROGRAM STREQUAL STRGREATER STRING STRLESS TRUE -" \ contained -syn region cmakeString start=/"/ end=/"/ skip=/\\"/ - \ contains=ALLBUT,cmakeString -syn region cmakeArguments start=/\s*(/ end=/)/ - \ contains=ALLBUT,cmakeArguments + \ ABSOLUTE AND BOOL CACHE COMMAND DEFINED DOC EQUAL EXISTS EXT FALSE GREATER INTERNAL LESS MATCHES NAME NAMES NAME_WE NOT OFF ON OR PATH PATHS PROGRAM STREQUAL STRGREATER STRING STRLESS TRUE + \ contained syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WRAP_EXCLUDE_FILES - \ nextgroup=cmakeArgument -syn keyword cmakeStatement - \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ELSEIF ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDIF ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE ENDMACRO - \ nextgroup=cmakeArgumnts + \ nextgroup=cmakeArguments -"syn match cmakeMacro /^\s*[A-Z_]\+/ nextgroup=cmakeArgumnts +" The keywords are generated as: cmake --help-command-list | tr "\n" " " +syn keyword cmakeStatement + \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ELSEIF ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDFUNCTION ENDIF ENDMACRO ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH FUNCTION GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN UNSET USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE + \ nextgroup=cmakeArguments +syn keyword cmakeTodo + \ TODO FIXME XXX + \ contained " Define the default highlighting. " For version 5.7 and earlier: only when not done already @@ -75,7 +69,9 @@ if version >= 508 || !exists("did_cmake_syntax_inits") HiLink cmakeEnvironment Special HiLink cmakeOperators Operator HiLink cmakeMacro PreProc - HiLink cmakeError Error + HiLink cmakeError Error + HiLink cmakeTodo TODO + HiLink cmakeEscaped Special delcommand HiLink endif diff --git a/src/INSTALL b/src/INSTALL index a4a9925296..82275d452d 100644 --- a/src/INSTALL +++ b/src/INSTALL @@ -15,7 +15,7 @@ See INSTALLmac.txt for Macintosh See INSTALLpc.txt for PC (MS-DOS, Windows 95/98/NT/XP) See INSTALLvms.txt for VMS See INSTALLx.txt for cross-compiling on Unix -See ../runtime/doc/os_390.txt for OS/390 Unix +See ../README_390.txt for OS/390 Unix See ../runtime/doc/os_beos.txt for BeBox diff --git a/src/auto/configure b/src/auto/configure index 03971e9f16..e8ffa5d54a 100755 --- a/src/auto/configure +++ b/src/auto/configure @@ -671,6 +671,7 @@ VIMNAME EXNAME VIEWNAME line_break +QUOTESED dovimdiff dogvimdiff compiledby @@ -4445,10 +4446,10 @@ esac if test "$cf_cv_ebcdic" = "yes"; then -{ echo "$as_me:$LINENO: checking for OS/390 Unix" >&5 -echo $ECHO_N "checking for OS/390 Unix... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: checking for z/OS Unix" >&5 +echo $ECHO_N "checking for z/OS Unix... $ECHO_C" >&6; } case `uname` in - OS/390) OS390Unix="yes"; + OS/390) zOSUnix="yes"; if test "$CC" = "cc"; then ccm="$_CC_CCMODE" ccn="CC" @@ -4463,7 +4464,7 @@ case `uname` in if test "$ccm" != "1"; then echo "" echo "------------------------------------------" - echo " On OS/390 Unix, the environment variable" + echo " On z/OS Unix, the environment variable" echo " __CC_${ccn}MODE must be set to \"1\"!" echo " Do:" echo " export _CC_${ccn}MODE=1" @@ -4471,17 +4472,26 @@ case `uname` in echo "------------------------------------------" exit 1 fi - CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO" + CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float\\(IEEE\\)"; + LDFLAGS="$LDFLAGS -Wl,EDIT=NO" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } ;; - *) OS390Unix="no"; + *) zOSUnix="no"; { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } ;; esac fi +if test "$zOSUnix" = "yes"; then + QUOTESED="sed -e 's/[\\\\\"]/\\\\\\\\&/g' -e 's/\\\\\\\\\"/\"/' -e 's/\\\\\\\\\";\$\$/\";/'" +else + QUOTESED="sed -e 's/[\\\\\"]/\\\\&/g' -e 's/\\\\\"/\"/' -e 's/\\\\\";\$\$/\";/'" +fi + + + { echo "$as_me:$LINENO: checking --disable-selinux argument" >&5 echo $ECHO_N "checking --disable-selinux argument... $ECHO_C" >&6; } # Check whether --enable-selinux was given. @@ -7617,7 +7627,7 @@ fi fi - if test "$OS390Unix" = "yes"; then + if test "$zOSUnix" = "yes"; then CFLAGS="$CFLAGS -W c,dll" LDFLAGS="$LDFLAGS -W l,dll" X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu" @@ -19773,6 +19783,7 @@ VIMNAME!$VIMNAME$ac_delim EXNAME!$EXNAME$ac_delim VIEWNAME!$VIEWNAME$ac_delim line_break!$line_break$ac_delim +QUOTESED!$QUOTESED$ac_delim dovimdiff!$dovimdiff$ac_delim dogvimdiff!$dogvimdiff$ac_delim compiledby!$compiledby$ac_delim @@ -19811,7 +19822,6 @@ RUBY_SRC!$RUBY_SRC$ac_delim RUBY_OBJ!$RUBY_OBJ$ac_delim RUBY_PRO!$RUBY_PRO$ac_delim RUBY_CFLAGS!$RUBY_CFLAGS$ac_delim -RUBY_LIBS!$RUBY_LIBS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then @@ -19853,6 +19863,7 @@ _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF +RUBY_LIBS!$RUBY_LIBS$ac_delim WORKSHOP_SRC!$WORKSHOP_SRC$ac_delim WORKSHOP_OBJ!$WORKSHOP_OBJ$ac_delim NETBEANS_SRC!$NETBEANS_SRC$ac_delim @@ -19895,7 +19906,7 @@ LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 40; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 41; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/src/config.mk.in b/src/config.mk.in index a1332d8457..826b11b783 100644 --- a/src/config.mk.in +++ b/src/config.mk.in @@ -101,6 +101,9 @@ INSTALLGVIMDIFF = @dogvimdiff@ INSTALL_LANGS = @INSTALL_LANGS@ INSTALL_TOOL_LANGS = @INSTALL_TOOL_LANGS@ +### sed command to fix quotes while creating pathdef.c +QUOTESED = @QUOTESED@ + ### Line break character as octal number for "tr" NL = @line_break@ diff --git a/src/configure.in b/src/configure.in index 16f6718e14..083ea59141 100644 --- a/src/configure.in +++ b/src/configure.in @@ -284,7 +284,7 @@ AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"), AC_MSG_RESULT(no)) -dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix +dnl Check for EBCDIC stolen from the LYNX port to z/OS Unix AC_MSG_CHECKING(if character set is EBCDIC) AC_TRY_COMPILE([ ], [ /* TryCompile function for CharSet. @@ -310,10 +310,10 @@ esac AC_SUBST(line_break) if test "$cf_cv_ebcdic" = "yes"; then -dnl If we have EBCDIC we most likley have OS390 Unix, let's test it! -AC_MSG_CHECKING(for OS/390 Unix) +dnl If we have EBCDIC we most likley have z/OS Unix, let's test it! +AC_MSG_CHECKING(for z/OS Unix) case `uname` in - OS/390) OS390Unix="yes"; + OS/390) zOSUnix="yes"; dnl If using cc the environment variable _CC_CCMODE must be dnl set to "1", so that some compiler extensions are enabled. dnl If using c89 the environment variable is named _CC_C89MODE. @@ -332,7 +332,7 @@ case `uname` in if test "$ccm" != "1"; then echo "" echo "------------------------------------------" - echo " On OS/390 Unix, the environment variable" + echo " On z/OS Unix, the environment variable" echo " __CC_${ccn}MODE must be set to \"1\"!" echo " Do:" echo " export _CC_${ccn}MODE=1" @@ -340,15 +340,25 @@ case `uname` in echo "------------------------------------------" exit 1 fi - CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO" + CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float\\(IEEE\\)"; + LDFLAGS="$LDFLAGS -Wl,EDIT=NO" AC_MSG_RESULT(yes) ;; - *) OS390Unix="no"; + *) zOSUnix="no"; AC_MSG_RESULT(no) ;; esac fi +dnl Set QUOTESED. Needs additional backslashes on zOS +if test "$zOSUnix" = "yes"; then + QUOTESED="sed -e 's/[[\\\\\"]]/\\\\\\\\&/g' -e 's/\\\\\\\\\"/\"/' -e 's/\\\\\\\\\";\$\$/\";/'" +else + QUOTESED="sed -e 's/[[\\\\\"]]/\\\\&/g' -e 's/\\\\\"/\"/' -e 's/\\\\\";\$\$/\";/'" +fi +AC_SUBST(QUOTESED) + + dnl Link with -lselinux for SELinux stuff; if not found AC_MSG_CHECKING(--disable-selinux argument) AC_ARG_ENABLE(selinux, @@ -1200,10 +1210,10 @@ else AC_PATH_XTRA - dnl On OS390Unix the X libraries are DLLs. To use them the code must + dnl On z/OS Unix the X libraries are DLLs. To use them the code must dnl be compiled with a special option. dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS. - if test "$OS390Unix" = "yes"; then + if test "$zOSUnix" = "yes"; then CFLAGS="$CFLAGS -W c,dll" LDFLAGS="$LDFLAGS -W l,dll" X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu" diff --git a/src/eval.c b/src/eval.c index de1104f08a..415e1f84a4 100644 --- a/src/eval.c +++ b/src/eval.c @@ -820,6 +820,13 @@ static int searchpair_cmn __ARGS((typval_T *argvars, pos_T *match_pos)); static int search_cmn __ARGS((typval_T *argvars, pos_T *match_pos, int *flagsp)); static void setwinvar __ARGS((typval_T *argvars, typval_T *rettv, int off)); + +#ifdef EBCDIC +static int compare_func_name __ARGS((const void *s1, const void *s2)); +static void sortFunctions __ARGS(()); +#endif + + /* Character used as separated in autoload function/variable names. */ #define AUTOLOAD_CHAR '#' @@ -856,6 +863,13 @@ eval_init() hash_add(&compat_hashtab, p->vv_di.di_key); } set_vim_var_nr(VV_SEARCHFORWARD, 1L); + +#ifdef EBCDIC + /* + * Sort the function table, to enable binary sort. + */ + sortFunctions(); +#endif } #if defined(EXITFREE) || defined(PROTO) @@ -7901,6 +7915,36 @@ get_expr_name(xp, idx) #endif /* FEAT_CMDL_COMPL */ +#if defined(EBCDIC) || defined(PROTO) +/* + * Compare struct fst by function name. + */ + static int +compare_func_name(s1, s2) + const void *s1; + const void *s2; +{ + struct fst *p1 = (struct fst *)s1; + struct fst *p2 = (struct fst *)s2; + + return STRCMP(p1->f_name, p2->f_name); +} + +/* + * Sort the function table by function name. + * The sorting of the table above is ASCII dependant. + * On machines using EBCDIC we have to sort it. + */ + static void +sortFunctions() +{ + int funcCnt = (int)(sizeof(functions) / sizeof(struct fst)) - 1; + + qsort(functions, (size_t)funcCnt, sizeof(struct fst), compare_func_name); +} +#endif + + /* * Find internal function in table above. * Return index, or -1 if not found @@ -17615,8 +17659,13 @@ f_undofile(argvars, rettv) { rettv->v_type = VAR_STRING; #ifdef FEAT_PERSISTENT_UNDO - rettv->vval.v_string = u_get_undo_file_name(get_tv_string(&argvars[0]), - FALSE); + { + char_u *ffname = FullName_save(get_tv_string(&argvars[0]), FALSE); + + if (ffname != NULL) + rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE); + vim_free(ffname); + } #else rettv->vval.v_string = NULL; #endif @@ -19263,7 +19312,7 @@ new_script_vars(id) while (ga_scripts.ga_len < id) { - sv = SCRIPT_SV(ga_scripts.ga_len + 1) = + sv = SCRIPT_SV(ga_scripts.ga_len + 1) = (scriptvar_T *)alloc_clear(sizeof(scriptvar_T)); init_var_dict(&sv->sv_dict, &sv->sv_var); ++ga_scripts.ga_len; @@ -22501,7 +22550,7 @@ get_short_pathname(fnamep, bufp, fnamelen) * append the remaining non-existing path. * * fname - Pointer to the filename to shorten. On return, contains the - * pointer to the shortened pathname + * pointer to the shortened pathname * bufp - Pointer to an allocated buffer for the filename. * fnamelen - Length of the filename pointed to by fname * diff --git a/src/feature.h b/src/feature.h index 300e6b51da..9f365c8d91 100644 --- a/src/feature.h +++ b/src/feature.h @@ -300,16 +300,20 @@ /* * +rightleft Right-to-left editing/typing support. + * + * Disabled for EBCDIC as it requires multibyte. */ -#ifdef FEAT_BIG +#if defined(FEAT_BIG) && !defined(EBCDIC) # define FEAT_RIGHTLEFT #endif /* * +farsi Farsi (Persian language) Keymap support. * Requires FEAT_RIGHTLEFT. + * + * Disabled for EBCDIC as it requires multibyte. */ -#ifdef FEAT_BIG +#if defined(FEAT_BIG) && !defined(EBCDIC) # define FEAT_FKMAP #endif #ifdef FEAT_FKMAP @@ -321,6 +325,8 @@ /* * +arabic Arabic keymap and shaping support. * Requires FEAT_RIGHTLEFT and FEAT_MBYTE. + * + * Disabled for EBCDIC as it requires multibyte. */ #if defined(FEAT_BIG) && !defined(WIN16) && SIZEOF_INT >= 4 && !defined(EBCDIC) # define FEAT_ARABIC @@ -343,7 +349,7 @@ * +tag_binary Can use a binary search for the tags file. * * Disabled for EBCDIC: - * On OS/390 Unix we have the problem that /bin/sort sorts ASCII instead of + * On z/OS Unix we have the problem that /bin/sort sorts ASCII instead of * EBCDIC. With this binary search doesn't work, as VIM expects a tag file * sorted by character values. I'm not sure how to fix this. Should we really * do a EBCDIC to ASCII conversion for this?? @@ -530,8 +536,11 @@ /* * +spell spell checking + * + * Disabled for EBCDIC: + * Doesn't work (SIGSEGV). */ -#if defined(FEAT_NORMAL) || defined(PROTO) +#if (defined(FEAT_NORMAL) || defined(PROTO)) && !defined(EBCDIC) # define FEAT_SPELL #endif @@ -622,7 +631,7 @@ * with 16 bit ints. Required for GTK+ 2. * * Disabled for EBCDIC: - * Multibyte support doesn't work on OS390 Unix currently. + * Multibyte support doesn't work on z/OS Unix currently. */ #if (defined(FEAT_BIG) || defined(HAVE_GTK2) || defined(FEAT_ARABIC) \ || defined(FEAT_GUI_MACVIM)) \ diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c index 48ba0b9d22..86cd59cea0 100644 --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -1444,6 +1444,10 @@ selection_received_cb(GtkWidget *widget UNUSED, } #endif /* !HAVE_GTK2 */ + /* Chop off any traiing NUL bytes. OpenOffice sends these. */ + while (len > 0 && text[len - 1] == NUL) + --len; + clip_yank_selection(motion_type, text, (long)len, cbd); received_selection = RS_OK; vim_free(tmpbuf); @@ -3473,6 +3477,66 @@ gui_mch_set_curtab(nr) #endif /* FEAT_GUI_TABLINE */ +/* + * Add selection targets for PRIMARY and CLIPBOARD selections. + */ + void +gui_gtk_set_selection_targets(void) +{ + int i, j = 0; + int n_targets = N_SELECTION_TARGETS; + GtkTargetEntry targets[N_SELECTION_TARGETS]; + + for (i = 0; i < (int)N_SELECTION_TARGETS; ++i) + { +#ifdef FEAT_MBYTE + /* OpenOffice tries to use TARGET_HTML and fails when it doesn't + * return something, instead of trying another target. Therefore only + * offer TARGET_HTML when it works. */ + if (!clip_html && selection_targets[i].info == TARGET_HTML) + n_targets--; + else +#endif + targets[j++] = selection_targets[i]; + } + + gtk_selection_clear_targets(gui.drawarea, (GdkAtom)GDK_SELECTION_PRIMARY); + gtk_selection_clear_targets(gui.drawarea, (GdkAtom)clip_plus.gtk_sel_atom); + gtk_selection_add_targets(gui.drawarea, + (GdkAtom)GDK_SELECTION_PRIMARY, + targets, n_targets); + gtk_selection_add_targets(gui.drawarea, + (GdkAtom)clip_plus.gtk_sel_atom, + targets, n_targets); +} + +/* + * Set up for receiving DND items. + */ + void +gui_gtk_set_dnd_targets(void) +{ + int i, j = 0; + int n_targets = N_DND_TARGETS; + GtkTargetEntry targets[N_DND_TARGETS]; + + for (i = 0; i < (int)N_DND_TARGETS; ++i) + { +#ifdef FEAT_MBYTE + if (!clip_html && selection_targets[i].info == TARGET_HTML) + n_targets--; + else +#endif + targets[j++] = dnd_targets[i]; + } + + gtk_drag_dest_unset(gui.drawarea); + gtk_drag_dest_set(gui.drawarea, + GTK_DEST_DEFAULT_ALL, + targets, n_targets, + GDK_ACTION_COPY); +} + /* * Initialize the GUI. Create all the windows, set up all the callbacks etc. * Returns OK for success, FAIL when the GUI can't be started. @@ -3936,15 +4000,7 @@ gui_mch_init(void) gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_received", GTK_SIGNAL_FUNC(selection_received_cb), NULL); - /* - * Add selection targets for PRIMARY and CLIPBOARD selections. - */ - gtk_selection_add_targets(gui.drawarea, - (GdkAtom)GDK_SELECTION_PRIMARY, - selection_targets, N_SELECTION_TARGETS); - gtk_selection_add_targets(gui.drawarea, - (GdkAtom)clip_plus.gtk_sel_atom, - selection_targets, N_SELECTION_TARGETS); + gui_gtk_set_selection_targets(); gtk_signal_connect(GTK_OBJECT(gui.drawarea), "selection_get", GTK_SIGNAL_FUNC(selection_get_cb), NULL); @@ -4068,7 +4124,6 @@ check_startup_plug_hints(gpointer data UNUSED) return TRUE; } - /* * Open the GUI window which was created by a call to gui_mch_init(). */ @@ -4236,13 +4291,8 @@ gui_mch_open(void) GTK_SIGNAL_FUNC(form_configure_event), NULL); #ifdef FEAT_DND - /* - * Set up for receiving DND items. - */ - gtk_drag_dest_set(gui.drawarea, - GTK_DEST_DEFAULT_ALL, - dnd_targets, N_DND_TARGETS, - GDK_ACTION_COPY); + /* Set up for receiving DND items. */ + gui_gtk_set_dnd_targets(); gtk_signal_connect(GTK_OBJECT(gui.drawarea), "drag_data_received", GTK_SIGNAL_FUNC(drag_data_received_cb), NULL); diff --git a/src/memfile.c b/src/memfile.c index bd03e65a6d..5412a61456 100644 --- a/src/memfile.c +++ b/src/memfile.c @@ -234,7 +234,7 @@ mf_open_file(mfp, fname) } /* - * close a memory file and delete the associated file if 'del_file' is TRUE + * Close a memory file and delete the associated file if 'del_file' is TRUE. */ void mf_close(mfp, del_file) @@ -415,7 +415,8 @@ mf_new(mfp, negative, page_count) * Init the data to all zero, to avoid reading uninitialized data. * This also avoids that the passwd file ends up in the swap file! */ - (void)vim_memset((char *)(hp->bh_data), 0, (size_t)mfp->mf_page_size); + (void)vim_memset((char *)(hp->bh_data), 0, + (size_t)mfp->mf_page_size * page_count); return hp; } diff --git a/src/option.c b/src/option.c index ac779286c6..44e70d974f 100644 --- a/src/option.c +++ b/src/option.c @@ -7237,6 +7237,13 @@ check_clipboard_option() clip_html = new_html; vim_free(clip_exclude_prog); clip_exclude_prog = new_exclude_prog; +#ifdef FEAT_GUI_GTK + if (gui.in_use) + { + gui_gtk_set_selection_targets(); + gui_gtk_set_dnd_targets(); + } +#endif } else vim_free(new_exclude_prog); diff --git a/src/proto/gui_gtk_x11.pro b/src/proto/gui_gtk_x11.pro index 93b65bf726..d80ba82e69 100644 --- a/src/proto/gui_gtk_x11.pro +++ b/src/proto/gui_gtk_x11.pro @@ -9,6 +9,8 @@ void gui_mch_show_tabline __ARGS((int showit)); int gui_mch_showing_tabline __ARGS((void)); void gui_mch_update_tabline __ARGS((void)); void gui_mch_set_curtab __ARGS((int nr)); +void gui_gtk_set_selection_targets __ARGS((void)); +void gui_gtk_set_dnd_targets __ARGS((void)); int gui_mch_init __ARGS((void)); void gui_mch_forked __ARGS((void)); void gui_mch_new_colors __ARGS((void)); diff --git a/src/regexp.c b/src/regexp.c index 53559455e0..ae1b03a111 100644 --- a/src/regexp.c +++ b/src/regexp.c @@ -731,6 +731,30 @@ get_equi_class(pp) return 0; } +#ifdef EBCDIC +/* + * Table for equivalence class "c". (IBM-1047) + */ +char *EQUIVAL_CLASS_C[16] = { + "A\x62\x63\x64\x65\x66\x67", + "C\x68", + "E\x71\x72\x73\x74", + "I\x75\x76\x77\x78", + "N\x69", + "O\xEB\xEC\xED\xEE\xEF", + "U\xFB\xFC\xFD\xFE", + "Y\xBA", + "a\x42\x43\x44\x45\x46\x47", + "c\x48", + "e\x51\x52\x53\x54", + "i\x55\x56\x57\x58", + "n\x49", + "o\xCB\xCC\xCD\xCE\xCF", + "u\xDB\xDC\xDD\xDE", + "y\x8D\xDF", +}; +#endif + /* * Produce the bytes for equivalence class "c". * Currently only handles latin1, latin9 and utf-8. @@ -744,6 +768,22 @@ reg_equi_class(c) || STRCMP(p_enc, "iso-8859-15") == 0) #endif { +#ifdef EBCDIC + int i; + + /* This might be slower than switch/case below. */ + for (i = 0; i < 16; i++) + { + if (vim_strchr(EQUIVAL_CLASS_C[i], c) != NULL) + { + char *p = EQUIVAL_CLASS_C[i]; + + while (*p != 0) + regmbc(*p++); + return; + } + } +#else switch (c) { case 'A': case '\300': case '\301': case '\302': @@ -811,6 +851,7 @@ reg_equi_class(c) regmbc('y'); regmbc('\375'); regmbc('\377'); return; } +#endif } regmbc(c); }